JP3391315B2 - バス制御装置 - Google Patents

バス制御装置

Info

Publication number
JP3391315B2
JP3391315B2 JP29879999A JP29879999A JP3391315B2 JP 3391315 B2 JP3391315 B2 JP 3391315B2 JP 29879999 A JP29879999 A JP 29879999A JP 29879999 A JP29879999 A JP 29879999A JP 3391315 B2 JP3391315 B2 JP 3391315B2
Authority
JP
Japan
Prior art keywords
request
bus
processor
buffer
issued
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP29879999A
Other languages
English (en)
Other versions
JP2001117859A (ja
Inventor
康弘 春日
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP29879999A priority Critical patent/JP3391315B2/ja
Priority to US09/641,953 priority patent/US6697899B1/en
Publication of JP2001117859A publication Critical patent/JP2001117859A/ja
Application granted granted Critical
Publication of JP3391315B2 publication Critical patent/JP3391315B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、バス制御装置に関
し、特に特定の資源を占有して排他的アクセスを行うた
めの制御を行うバス制御装置に関する。
【0002】
【従来の技術】マルチプロセッサシステムにおいて、入
出力装置などの特定の資源に対してあるプロセッサが排
他的にアクセスする場合がある。この場合、他のプロセ
ッサから当該特定の資源へのアクセスを抑止するため
に、対応するロック変数(ロックワードともいう。)を
ロック状態とし、排他的アクセス終了後にそのロック変
数をアンロック状態としている。
【0003】図8を参照すると、まずプロセッサAがア
クセスしようとする入出力装置に対応するロック変数を
読み出した際(ステップS801)、ロック状態でなか
ったとすると(ステップS802)、そのロック変数を
ロック状態へ変更する(ステップS803)。その後、
その入出力装置にアクセスが行われ(ステップS80
4)、最後のアクセス(ステップS805)が終了する
と、プロセッサAはロック変数を再びアンロック状態に
変更する(ステップS806)。
【0004】一方、プロセッサBが同一の入出力装置に
アクセスしようとする場合、プロセッサBは、まずロッ
ク変数を読み出すが(ステップS811)、既にプロセ
ッサAによってロック状態にされている場合には、そこ
でロックが解除されるまで待機する。プロセッサAにお
いてアンロック状態への変更がされてロックが解除され
ると(ステップS806)、今度はプロセッサBがロッ
ク変数をロック状態へ変更する(ステップS813)。
その後、その入出力装置にアクセスが行われ(ステップ
S814)、最後のアクセス(ステップS815)が終
了すると、プロセッサBはロック変数を再びアンロック
状態に変更する(ステップS816)。このように、ロ
ック機能を利用することにより、入出力装置などの資源
に対する排他的アクセスが保証される。
【0005】
【発明が解決しようとする課題】しかしながら、上述の
従来技術では、ロック変数がキャッシュメモリに存在す
る場合には、ロック変数の変更がプロセッサとキャッシ
ュメモリとの間で完了してしまい、高速に行われる反
面、I/Oアクセスはキャッシュメモリを介さないアン
キャッシャブルアクセスであってシステムバスを経由し
て行われるため、以下のように、ロック操作とI/Oア
クセスとの逆転現象が生じる場合がある。なお、このキ
ャッシュメモリを介するキャッシャブルなアクセスとキ
ャッシュメモリを介さないアンキャッシャブルなアクセ
スとの切分けは、例えば、ページ単位の属性やリクエス
ト中のフィールドによる指定により行われる。
【0006】図9を参照すると、プロセッサAが最後に
発行したI/Oアクセス(901)は、バス制御装置A
に転送された後(902)、未だシステムバス400に
発行されていない。プロセッサAは、最後のI/Oアク
セスを完了したので、ロック変数をアンロック状態にす
るが、実際にはロック変数は自己のキャッシュメモリ内
に存在するため、そのロック変数へのアクセスはキャッ
シュメモリに対して実行される(909)。一方、プロ
セッサBがロック変数の読出しを要求すると(91
1)、バス制御装置Bはその読出し要求をシステムバス
400に発行する(912)。この読出し要求はプロセ
ッサAのキャッシュメモリにヒットするので、バス制御
装置Aは、プロセッサAに読出し要求を発行し(91
3)、プロセッサAからはバス制御装置Aを経由してシ
ステムバス400にロック変数が含まれる読出しデータ
を返却する(914)。ここで、バス制御装置Aが、I
/Oアクセスをシステムバス400に発行するための経
路と読出しデータをシステムバス400に返却するため
の経路とが異なるため、先のI/Oアクセスをシステム
バスに発行する前にロック変数を含む読出しデータがシ
ステムバスに返却されることがある。このロック変数が
含まれるデータは、バス制御装置Bを経由してプロセッ
サBに返却され(915)、プロセッサBはロック変数
がアンロック状態であることを確認する。プロセッサB
は、ロック変数をロック状態にした(916)後、プロ
セッサBにとって最初のI/Oアクセスを発行(92
1)し、バス制御装置Bはシステムバス400に発行す
る(922)。この後で、バス制御装置Aが先のI/O
アクセス(902)をシステムバス400に発行する
と、時間的には先に実行されたI/Oアクセスを後に実
行されたI/Oアクセスが追い越すことになる。ここで
先のI/Oアクセスがライトで、後のI/Oアクセスが
リードであると、更新前の古いデータを読み出すことに
なり、データ不整合が発生する。
【0007】本発明の目的は、上述の課題を解決し、特
定の資源に対する排他的アクセスを保証することにあ
る。
【0008】
【課題を解決するための手段】上記課題を解決するため
に本発明のバス制御装置は、上位装置からの所定の書込
みが終了していない状態でバス上に所定の読出し要求が
発行されると、その読出し要求に対してリトライを指示
する。
【0009】また、本発明のバス制御装置は、上位装置
とバスとの間に接続されたバス制御装置であって、前記
上位装置から発行されたリクエストを保持するリクエス
トバッファと、このリクエストバッファに保持されたリ
クエストが所定の書込みに係るものである場合に前記バ
ス上に所定の読出し要求が発行されるとその読出し要求
に対してリトライを指示するリトライ制御回路とを含
む。
【0010】また、本発明の他のバス制御回路は、前記
バス上に所定の読出し要求が発行されたことを判別して
前記リトライ制御回路に通知するリクエスト制御回路を
さらに含む。
【0011】また、本発明の他のバス制御回路におい
て、前記リクエスト制御回路は、前記バス上に発行され
た要求が前記上位装置への転送を要するものである場合
に外部リクエストを生成して上位装置に転送する外部リ
クエスト生成回路を含む。
【0012】また、本発明の他のバス制御回路におい
て、前記外部リクエスト生成回路は、前記所定の書込み
に係るリクエストが前記リクエストバッファに保持され
ているときに前記バス上に前記所定の読出し要求が発行
された旨前記リトライ制御回路が判断すると、前記外部
リクエストの生成を行わない。
【0013】また、本発明の他のバス制御装置は複数の
上位装置に接続され、前記リクエストバッファは、保持
しているリクエストが前記複数の上位装置のうち何れの
上位装置からのものであるかを識別する識別子を前記リ
クエストに対応して保持し、前記リトライ制御回路は、
前記リクエストバッファに保持されたリクエストが所定
の書込みに係るものである場合に、前記バス上に所定の
読出し要求が発行されると、その要求が転送される上位
装置と前記リクエストバッファに保持されたリクエスト
に対応する識別子とが一致する場合にその読出し要求に
対してリトライを指示する。
【0014】また、本発明の情報処理システムは、上位
装置と、バスと、前記上位装置と前記バスとの間に接続
されたバス制御装置とを含む情報処理システムであっ
て、前記バス制御装置は、前記上位装置から発行された
リクエストを保持するリクエストバッファと、このリク
エストバッファに保持されたリクエストが所定の書込み
に係るものである場合に前記バス上に所定の読出し要求
が発行されるとその読出し要求に対してリトライを指示
するリトライ制御回路とを含む。
【0015】また、本発明の他のバス制御装置におい
て、前記所定の書込みはアンキャッシャブルであり、前
記所定の読出しはキャッシャブルである。
【0016】
【発明の実施の形態】次に本発明のバス制御装置の実施
の形態について図面を参照して詳細に説明する。
【0017】図1を参照すると、本発明の第1の実施の
形態のバス制御装置100は、プロセッサ300とシス
テムバス400との間に接続され、両者間のやりとりを
制御する。具体的には、バス制御装置100は、プロセ
ッサ300から発行されるリクエスト(以下、「プロセ
ッサリクエスト」という。)を受信して、システムバス
400にトランザクションを発行する。また、バス制御
装置100は、システムバス400からトランザクショ
ンを受信して、プロセッサ300にリクエスト(以下、
「外部リクエスト」という。)を発行する。バス制御装
置100には、プロセッサを接続するもの以外にも、メ
インメモリを接続するもの、PCIバス等のI/Oバス
を接続するもの等がある。このようにバス制御装置10
0に接続されるプロセッサ等を総称して上位装置とい
う。
【0018】バス制御装置100は、プロセッサ300
からのプロセッサリクエストをデコードするデコーダ1
10と、デコードされたプロセッサリクエストをフォー
マット変換するコマンド変換回路120と、プロセッサ
リクエストを保持するプロセッサリクエストバッファ1
30と、システムバス400に発行するトランザクショ
ンを保持する発行バッファ140と、システムバス40
0の調停を行うアービタ150と、トランザクションの
リトライを制御するリトライ制御回路160と、システ
ムバス400から受信したトランザクションを保持する
受信バッファ170と、トランザクションから外部リク
エストを生成するリクエスト制御回路180と、プロセ
ッサ300に対する外部リクエストを保持する外部リク
エストバッファ190とを含む。なお、プロセッサリク
エストには(図示しない)主記憶装置や入出力装置への
アクセスがあり、外部リクエストにはキャッシュメモリ
310に対する無効化やインターベンション(有効なエ
ントリを有するか否かのチェック)等がある。ここで、
キャッシュメモリ310は、プロセッサ300の内部に
含まれていてもよく、プロセッサ300の外部にあって
もよい。
【0019】プロセッサ300が発行したプロセッサリ
クエストは、デコーダ110でデコードされ、コマンド
変換回路120でシステムバス400のために規定され
たフォーマットのコマンドに変換された後、プロセッサ
リクエストバッファ130に格納される。プロセッサリ
クエストバッファ130は、発行バッファ140からの
指示に従い、トランザクションをトランザクション発行
バッファ140に転送する。発行バッファ140は、シ
ステムバス400の使用権を獲得するためにアービタ1
50に要求を出す。アービタ150は、システムバス4
00の調停を行い、システムバス400の使用権が獲得
できたならば、発行バッファ140に通知する。アービ
タ150からシステムバス400の使用権獲得通知を受
けた発行バッファ140は、システムバス400にトラ
ンザクションを発行する。
【0020】システムバス400に発行されたトランザ
クションは、受信バッファ170が受信し、リクエスト
制御回路180へ転送される。リクエスト制御回路18
0は、受信したトランザクションをプロセッサ300へ
外部リクエストとして発行するか否かを判断し、発行す
るのであればプロセッサ300のために規定されたフォ
ーマットのコマンドに変換した後、外部リクエストバッ
ファ190に格納する。外部リクエストバッファ190
は、プロセッサ300に対して外部リクエストを発行す
る。リトライ制御回路160は、システムバス400に
発行されたトランザクションをリトライさせるための機
能を有する。
【0021】図2を参照すると、プロセッサリクエスト
バッファ130は、有効なプロセッサリクエストが格納
されているかどうかを示すVビット135と、システム
バス400のために規定されたフォーマットに変換され
たコマンド136及びアドレス137と、プロセッサリ
クエストが入出力装置に対するアンキャッシャブルライ
トかどうかを示すUWフラグ138とを記憶する。ここ
では、プロセッサリクエストを4つまで格納できるもの
としているが、これはシステム構成により最適な値を採
用することができる。
【0022】図3を参照すると、リクエスト制御回路1
80は、デコード回路183と、判別回路182と、外
部リクエスト生成回路181とを含んでいる。デコード
回路183は、受信バッファ170で保持されていたト
ランザクションを信号線179から受け取り、デコード
する。判別回路182は、デコード回路183でデコー
ドされたトランザクションをプロセッサ300へ転送す
べきものであるか否かを判別するとともに、そのトラン
ザクションがキャッシュメモリに保持され得るリード、
すなわちキャッシャブルリードであるか否かを判別す
る。外部リクエスト生成回路181は、プロセッサ30
0へ転送すべきトランザクションであると判別された場
合に、プロセッサ300に対する外部リクエストを生成
して信号線189に出力する。
【0023】図4を参照すると、リトライ制御回路16
0は、プロセッサリクエストバッファ130のUWフラ
グ138の論理和を生成する論理和回路161と、その
結果とリクエスト制御回路180からのキャッシャブル
リードを示す信号188の論理積を生成する論理積回路
162と、その結果と外部リクエストバッファ190か
らのバッファフル(外部リクエストバッファに空きがな
い状態)を示す信号199の論理和を生成する論理和回
路163と、この論理和回路163の出力が論理”1”
を示す場合にトランザクションのリトライを信号線16
9により指示するリトライ回路164とを含む。
【0024】次に、本発明の第1の実施の形態における
動作について図面を参照して説明すR。
【0025】図1乃至図4を参照すると、プロセッサ3
00から発行されたプロセッサリクエストは、そのリク
エストがターゲットとするリソースを示すためのアドレ
スフィールドとリクエストの種別を示すコマンドフィー
ルドとを含む。これらアドレス及びコマンドは、共にデ
コーダ110でデコードされて、そのデコード結果に基
づいてコマンド変換回路120でコマンドの変換が行わ
れる。プロセッサ300とシステムバス400ではそれ
ぞれバスプロトコルが異なるため、それぞれのプロトコ
ルに合致したコマンドとして生成あるいは変換する必要
がある。変換されたコマンドは、プロセッサリクエスト
バッファ130内のコマンド136に、アドレスは同じ
くプロセッサリクエストバッファ130のアドレス13
7に格納される。さらにプロセッサリクエストが有効で
あることを示すためにプロセッサリクエストバッファ1
30のVビット135に”1”をセットする。また、デ
コードの結果、プロセッサリクエストが入出力装置への
アンキャッシャブルライトである場合にはプロセッサリ
クエストバッファ130のUWフラグ138を”1”に
セットする。プロセッサリクエストバッファ130には
1つ以上(図2では4つ)のプロセッサリクエストを格
納することができ、プロセッサ300から発行された順
番に発行バッファ140に転送される。
【0026】システムバス400には複数のバス制御装
置100が接続されるので、システムバス400にトラ
ンザクションを発行するためには待ち合わせが必要にな
る。そのため、発行バッファ140は、システムバス4
00の使用状況により、プロセッサリクエストバッファ
130からのプロセッサリクエストの転送を制御する。
発行バッファ140は、システムバス400に対するト
ランザクションの発行が完了すると、プロセッサリクエ
ストバッファ130に発行完了通知を送る。発行完了通
知を受け取ったプロセッサリクエストバッファ130
は、Vビット135を”0”にクリアし、UWフラグ1
38が”1”にセットされていたならばこれも”0”に
クリアする。そして次のプロセッサリクエストが格納さ
れていたならば、発行バッファ140に新しいリクエス
トを転送する。
【0027】発行バッファ140は、システムバス40
0にトランザクションを発行したい場合、アービタ15
0にシステムバス400の使用権獲得要求を送る。アー
ビタ150は、システムバス400の使用権調停規則に
従ってバス使用権の調停を行う。この調停規則として
は、固定優先、ラウンドロビン等の従来の技術を使用す
ることができる。システムバス400の使用権が得られ
たならば、アービタ150は、発行バッファ140にバ
ス使用権獲得通知を送る。バス使用権獲得通知を受け取
った発行バッファ140は、システムバス400にトラ
ンザクションを発行する。
【0028】システムバス400に発行されたトランザ
クションは、システムバス400に接続された全てのバ
ス制御装置100が監視し、自分に関係のあるトランザ
クションを取り込んで必要な処理を実行する。システム
バス400に発行されたトランザクションは、受信バッ
ファ170に保持され、その後リクエスト制御回路18
0に転送される。
【0029】リクエスト制御回路180では、デコード
回路183でトランザクションをデコードし、デコード
結果が判別回路182に送られる。判別回路182は、
トランザクションをプロセッサ300に転送する必要が
あるかどうかを判別するとともに、トランザクションが
キャッシャブルリードであるかどうかを判別する。判別
回路182にてトランザクションをプロセッサ300に
転送すると判断した場合には、外部リクエスト生成回路
181にて外部リクエストの生成を行う。一方、トラン
ザクションがキャッシャブルリードであった場合には信
号線188にてリトライ制御回路160に通知する。外
部リクエスト生成回路181は、外部リクエストの生成
を行うとともに、リトライ制御回路160からキャンセ
ル信号168が通知されない場合には外部リクエストバ
ッファ190に外部リクエストを格納する。キャンセル
信号168が通知された場合には外部リクエストを格納
せずに破棄する。
【0030】外部リクエストバッファ190は、1つ以
上の外部リクエストを格納でき、システムバス400に
発行された順番にプロセッサ300に外部リクエストを
発行する。また、外部リクエストバッファ190は、外
部リクエストを格納できる空きがなくなると、バッファ
フル信号199によりリトライ制御回路160に対して
トランザクションのリトライを要求する。リトライ制御
回路160は、外部リクエストバッファ190に空きが
ない場合、又は、プロセッサリクエストバッファ130
のUWフラグ138に”1”が立っているときにシステ
ムバス400からキャッシャブルリードを受信した場
合、システムバス400のトランザクションをリトライ
させる。UWフラグ138は、プロセッサリクエストバ
ッファ130の段数分存在するので、まず論理和回路1
61により全UWフラグ138の論理和を生成する。こ
の結果とリクエスト制御回路180の判別回路182か
らのキャッシャブルリード通知信号188との論理積を
論理積回路162で生成することによって、トランザク
ションをリトライさせる一方の条件を生成する。もう一
方の条件は、外部リクエストバッファ190からのバッ
ファフル信号199により示されるので、先の論理積回
路162の結果とバッファフル信号199との論理和を
論理和回路163で生成することによって、トランザク
ションのリトライ条件を生成する。何れかのリトライ条
件が成立すると、リトライ回路164がシステムバス4
00に対してトランザクションのリトライを指示すると
ともに、論理和回路163の出力信号がキャンセル信号
168としてリクエスト制御回路180に通知される。
これにより、外部リクエストバッファ190への外部リ
クエストの格納が抑止される。
【0031】このように、本発明の第1の実施の形態に
よれば、プロセッサリクエストバッファ130にアンキ
ャッシャブルライトが保持されている場合に、システム
バス400上にキャッシャブルリードのトランザクショ
ンが発行されると、リトライ制御回路160によりトラ
ンザクションのリトライを要求することにより、アンキ
ャッシャブルライトとキャッシャブルリードとの間の順
序関係を保証することができる。
【0032】次に本発明のバス制御装置の第2の実施の
形態について図面を参照して詳細に説明する。
【0033】図5を参照すると、本発明の第2の実施の
形態のバス制御装置200には、2つのプロセッサが接
続されている。プロセッサが2つある場合、アンキャッ
シャブルライトを保持していないプロセッサにはキャッ
シャブルリードを発行することができる。そこで、2つ
のプロセッサからのプロセッサリクエストを別々に管理
することにより、無駄な待ちを回避する。
【0034】図6を参照すると、第2の実施の形態にお
けるプロセッサリクエストバッファ230は、図2によ
り説明した第1の実施の形態におけるプロセッサリクエ
ストバッファ130と比較して、何れのプロセッサから
発行されたプロセッサリクエストであるかを識別するた
めのPビット239が追加されている。例えば、プロセ
ッサが2つ接続されている場合に、一方のプロセッサ
を”0”で表し、もう一方のプロセッサを”1”で表す
ことができる。
【0035】図7を参照すると、第2の実施の形態にお
けるリトライ制御回路260では、プロセッサ毎に独立
したリトライ条件を生成する。まず、プロセッサリクエ
ストバッファ230の各段のUWフラグ238とPビッ
ト239の論理積を論理積回路2611乃至2614及
び2621乃至2624によって生成する。ここで、一
方のプロセッサAからのプロセッサリクエストにはPビ
ット239を”0”、もう一方のプロセッサBからのプ
ロセッサリクエストにはPビット239を”1”とする
と、論理積回路2611乃至2614ではプロセッサA
が発行したアンキャッシャブルライトを、論理積回路2
621乃至2624ではプロセッサBが発行したアンキ
ャッシャブルライトをそれぞれ検出できる。さらに論理
和回路2615でプロセッサAのアンキャッシャブルラ
イトを、論理和回路2625でプロセッサBのアンキャ
ッシャブルライトをまとめ、論理和回路2615の結果
とプロセッサAに対するキャッシャブルリードを示す信
号288との論理積を論理積回路2616で生成し、論
理和回路2625の結果とプロセッサBに対するキャッ
シャブルリードを示す信号289との論理積を論理積回
路2626で生成する。最後に論理積回路2616の結
果と、論理積回路2626の結果と、外部リクエストバ
ッファ290のバッファフル信号299との論理和を論
理和回路2630で生成することにより、システムバス
400に対するトランザクションのリトライと外部リク
エストバッファ290への外部リクエスト格納を抑止す
ることができる
【0036】このように、本発明の第2の実施の形態に
よれば、プロセッサリクエストバッファ230において
アンキャッシャブルライトをペンディングしているプロ
セッサを識別する機能239を設けたことにより、アン
キャッシャブルライトをペンディングしているプロセッ
サにはキャッシャブルリードの発行を抑止し、そうでな
いプロセッサにはキャッシャブルリードを発行すること
ができ、余分なリトライを減らすことにより、リクエス
トおよびトランザクションの流れを妨げないで済む。
【0037】
【発明の効果】以上の説明で明らかなように、本発明に
よると、アンキャッシャブルライトとキャッシャブルリ
ードとの間の順序関係を保証することにより、入出力装
置等の資源に対する排他的アクセスを実現することがで
きる。
【図面の簡単な説明】
【図1】本発明のバス制御装置の第1の実施の形態を含
むマルチプロセッサシステムの構成を示すブロック図で
ある。
【図2】本発明のバス制御装置における第1の実施の形
態におけるプロセッサリクエストバッファの構成を示す
図である。
【図3】本発明のバス制御装置における第1の実施の形
態におけるリクエスト制御回路の構成を示す図である。
【図4】本発明のバス制御装置における第1の実施の形
態におけるリトライ制御回路の構成を示す図である。
【図5】本発明のバス制御装置の第2の実施の形態を含
むマルチプロセッサシステムの構成を示すブロック図で
ある。
【図6】本発明のバス制御装置における第2の実施の形
態におけるプロセッサリクエストバッファの構成を示す
図である。
【図7】本発明のバス制御装置における第2の実施の形
態におけるリトライ制御回路の構成を示す図である。
【図8】異なるプロセッサ間でロックの取得または解除
を行うロックシーケンスを説明するための図である。
【図9】従来の構成においてアクセスの逆転現象が生じ
る場合を説明するための図である。
【符号の説明】
100,200 バス制御装置 110,210 デコーダ 120,220 コマンド変換回路 130,230 プロセッサリクエストバッファ 140,240 発行バッファ 150,250 アービタ 160,260 リトライ制御回路 170,270 受信バッファ 180,280 リクエスト制御回路 190,290 外部リクエストバッファ 300 プロセッサ 400 システムバス
フロントページの続き (56)参考文献 特開 平7−287686(JP,A) 特開 平5−53912(JP,A) 特開 平7−44459(JP,A) 特開 平10−232832(JP,A) 特開 平10−293718(JP,A) 特開 平9−138779(JP,A) 特開 平8−286968(JP,A) 特開 平6−187230(JP,A) 特開 平4−163658(JP,A) 特開 平4−157543(JP,A) 特開 平4−140860(JP,A) 特開 平3−271859(JP,A) 特開 平3−232051(JP,A) 特開 平3−164963(JP,A) 特開 昭59−191186(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 15/16 - 15/177 G06F 12/08 - 12/12 G06F 9/46 G06F 13/20 - 13/378

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】上位装置からのアンキャッシャブルな書込
    みが終了していない状態でバス上にキャッシャブルな読
    出し要求が発行されると、その読出し要求に対してリト
    ライを指示することを特徴とするバス制御装置。
  2. 【請求項2】上位装置とバスとの間に接続されたバス制
    御装置であって、前記上位装置から発行されたリクエス
    トを保持するリクエストバッファと、 このリクエストバッファに保持されたリクエストがアン
    キャッシャブルな書込みに係るものである場合に、前記
    バス上にキャッシャブルな読出し要求が発行されると、
    その読出し要求に対してリトライを指示するリトライ制
    御回路とを含むことを特徴とするバス制御装置。
  3. 【請求項3】前記バス上にキャッシャブルな読出し要求
    が発行されたことを判別して前記リトライ制御回路に通
    知するリクエスト制御回路をさらに含むことを特徴とす
    る請求項2記載のバス制御装置。
  4. 【請求項4】前記リクエスト制御回路は、前記バス上に
    発行された要求が前記上位装置への転送を要するもので
    ある場合に外部リクエストを生成して上位装置に転送す
    る外部リクエスト生成回路を含むことを特徴とする請求
    項3記載のバス制御装置。
  5. 【請求項5】前記外部リクエスト生成回路は、前記アン
    キャッシャブルな書込みに係るリクエストが前記リクエ
    ストバッファに保持されているときに、前記バス上にキ
    ャッシャブルな読出し要求が発行された旨を前記リトラ
    イ制御回路が判断すると、前記外部リクエストの生成を
    行わないことを特徴とする請求項4記載のバス制御装
    置。
  6. 【請求項6】上位装置と、バスと、前記上位装置と前記
    バスとの間に接続されたバス制御装置とを含む情報処理
    システムであって、 前記バス制御装置は、前記上位装置から発行されたリク
    エストを保持するリクエストバッファと、このリクエス
    トバッファに保持されたリクエストがアンキャッシャブ
    ルな書込みに係るものである場合に前記バス上にキャッ
    シャブルな読出し要求が発行されるとその読出し要求に
    対してリトライを指示するリトライ制御回路とを含むこ
    とを特徴とする情報処理システム。
JP29879999A 1999-10-20 1999-10-20 バス制御装置 Expired - Fee Related JP3391315B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP29879999A JP3391315B2 (ja) 1999-10-20 1999-10-20 バス制御装置
US09/641,953 US6697899B1 (en) 1999-10-20 2000-08-21 Bus control device allowing resources to be occupied for exclusive access

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP29879999A JP3391315B2 (ja) 1999-10-20 1999-10-20 バス制御装置

Publications (2)

Publication Number Publication Date
JP2001117859A JP2001117859A (ja) 2001-04-27
JP3391315B2 true JP3391315B2 (ja) 2003-03-31

Family

ID=17864381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP29879999A Expired - Fee Related JP3391315B2 (ja) 1999-10-20 1999-10-20 バス制御装置

Country Status (2)

Country Link
US (1) US6697899B1 (ja)
JP (1) JP3391315B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020087766A1 (en) * 2000-12-29 2002-07-04 Akhilesh Kumar Method and apparatus to implement a locked-bus transaction
US20030097582A1 (en) * 2001-11-19 2003-05-22 Yves Audebert Method and system for reducing personal security device latency
US8312458B2 (en) 2008-02-01 2012-11-13 International Business Machines Corporation Central repository for wake-and-go mechanism
US8452947B2 (en) * 2008-02-01 2013-05-28 International Business Machines Corporation Hardware wake-and-go mechanism and content addressable memory with instruction pre-fetch look-ahead to detect programming idioms
US8225120B2 (en) 2008-02-01 2012-07-17 International Business Machines Corporation Wake-and-go mechanism with data exclusivity
US8127080B2 (en) 2008-02-01 2012-02-28 International Business Machines Corporation Wake-and-go mechanism with system address bus transaction master
US8725992B2 (en) 2008-02-01 2014-05-13 International Business Machines Corporation Programming language exposing idiom calls to a programming idiom accelerator
US8788795B2 (en) * 2008-02-01 2014-07-22 International Business Machines Corporation Programming idiom accelerator to examine pre-fetched instruction streams for multiple processors
US8516484B2 (en) 2008-02-01 2013-08-20 International Business Machines Corporation Wake-and-go mechanism for a data processing system
US8880853B2 (en) 2008-02-01 2014-11-04 International Business Machines Corporation CAM-based wake-and-go snooping engine for waking a thread put to sleep for spinning on a target address lock
US8386822B2 (en) * 2008-02-01 2013-02-26 International Business Machines Corporation Wake-and-go mechanism with data monitoring
US8640141B2 (en) 2008-02-01 2014-01-28 International Business Machines Corporation Wake-and-go mechanism with hardware private array
US8612977B2 (en) * 2008-02-01 2013-12-17 International Business Machines Corporation Wake-and-go mechanism with software save of thread state
US8250396B2 (en) * 2008-02-01 2012-08-21 International Business Machines Corporation Hardware wake-and-go mechanism for a data processing system
US8341635B2 (en) 2008-02-01 2012-12-25 International Business Machines Corporation Hardware wake-and-go mechanism with look-ahead polling
US8171476B2 (en) 2008-02-01 2012-05-01 International Business Machines Corporation Wake-and-go mechanism with prioritization of threads
US8145849B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Wake-and-go mechanism with system bus response
US8732683B2 (en) 2008-02-01 2014-05-20 International Business Machines Corporation Compiler providing idiom to idiom accelerator
US8316218B2 (en) * 2008-02-01 2012-11-20 International Business Machines Corporation Look-ahead wake-and-go engine with speculative execution
US8015379B2 (en) * 2008-02-01 2011-09-06 International Business Machines Corporation Wake-and-go mechanism with exclusive system bus response
US8589629B2 (en) * 2009-03-27 2013-11-19 Advanced Micro Devices, Inc. Method for way allocation and way locking in a cache
US8886919B2 (en) 2009-04-16 2014-11-11 International Business Machines Corporation Remote update programming idiom accelerator with allocated processor resources
US8082315B2 (en) * 2009-04-16 2011-12-20 International Business Machines Corporation Programming idiom accelerator for remote update
US8230201B2 (en) * 2009-04-16 2012-07-24 International Business Machines Corporation Migrating sleeping and waking threads between wake-and-go mechanisms in a multiple processor data processing system
US8145723B2 (en) * 2009-04-16 2012-03-27 International Business Machines Corporation Complex remote update programming idiom accelerator
US8176404B2 (en) * 2009-09-09 2012-05-08 Lsi Corporation Systems and methods for stepped data retry in a storage system
JP6127907B2 (ja) * 2012-11-12 2017-05-17 富士通株式会社 演算処理装置及び演算処理装置の制御方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59191186A (ja) 1983-04-15 1984-10-30 Hitachi Ltd 記憶制御装置
JPH03164963A (ja) 1989-11-24 1991-07-16 Nippon Telegr & Teleph Corp <Ntt> 情報処理装置における排他制御方式
JPH0810448B2 (ja) 1990-02-08 1996-01-31 富士通株式会社 セマフォアクセス制御方法
JPH03271859A (ja) 1990-03-20 1991-12-03 Fujitsu Ltd 情報処理装置
JPH04140860A (ja) 1990-10-02 1992-05-14 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサにおけるバス制御方法
JPH04157543A (ja) 1990-10-22 1992-05-29 Nec Corp キャッシュメモリ制御回路
JP2504323B2 (ja) 1990-10-29 1996-06-05 日本電信電話株式会社 システムバス制御方法
JPH0553912A (ja) 1991-08-26 1993-03-05 Oki Electric Ind Co Ltd キヤツシユメモリの制御方法
DE69319763T2 (de) 1992-03-04 1999-03-11 Motorola Inc Verfahren und Gerät zur Durchführung eines Busarbitrierungsprotokolls in einem Datenverarbeitungssystem
JPH06187230A (ja) 1992-12-18 1994-07-08 Omron Corp メモリ監視制御方法
JPH0744459A (ja) 1993-07-29 1995-02-14 Matsushita Electric Ind Co Ltd キャッシュ制御方法およびキャッシュ制御装置
US5659708A (en) * 1994-10-03 1997-08-19 International Business Machines Corp. Cache coherency in a multiprocessing system
US6209067B1 (en) * 1994-10-14 2001-03-27 Compaq Computer Corporation Computer system controller and method with processor write posting hold off on PCI master memory request
JP3872118B2 (ja) * 1995-03-20 2007-01-24 富士通株式会社 キャッシュコヒーレンス装置
US5649157A (en) * 1995-03-30 1997-07-15 Hewlett-Packard Co. Memory controller with priority queues
JP2776759B2 (ja) 1995-04-14 1998-07-16 甲府日本電気株式会社 ロックリクエスト制御装置
US5652859A (en) 1995-08-17 1997-07-29 Institute For The Development Of Emerging Architectures, L.L.C. Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues
US6175888B1 (en) * 1996-04-10 2001-01-16 International Business Machines Corporation Dual host bridge with peer to peer support
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus
US5978886A (en) 1997-01-17 1999-11-02 Hewlett-Packard Company Method and apparatus for duplicating tag systems to maintain addresses of CPU data stored in write buffers external to a cache
JP3105819B2 (ja) 1997-04-21 2000-11-06 甲府日本電気株式会社 バッファ制御装置
US6105094A (en) * 1998-01-26 2000-08-15 Adaptec, Inc. Method and apparatus for allocating exclusive shared resource requests in a computer system
US6247102B1 (en) * 1998-03-25 2001-06-12 Compaq Computer Corporation Computer system employing memory controller and bridge interface permitting concurrent operation
US6442656B1 (en) * 1999-08-18 2002-08-27 Ati Technologies Srl Method and apparatus for interfacing memory with a bus
US6374332B1 (en) * 1999-09-30 2002-04-16 Unisys Corporation Cache control system for performing multiple outstanding ownership requests

Also Published As

Publication number Publication date
US6697899B1 (en) 2004-02-24
JP2001117859A (ja) 2001-04-27

Similar Documents

Publication Publication Date Title
JP3391315B2 (ja) バス制御装置
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US6070209A (en) Delivering transactions between data buses in a computer system
KR100253753B1 (ko) 지연 트랜잭션을 실행하기 위한 장치 및 방법
JP3579198B2 (ja) データ処理システム及びデータ処理方法
US5953538A (en) Method and apparatus providing DMA transfers between devices coupled to different host bus bridges
US6128711A (en) Performance optimization and system bus duty cycle reduction by I/O bridge partial cache line writes
US6536000B1 (en) Communication error reporting mechanism in a multiprocessing computer system
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US6012118A (en) Method and apparatus for performing bus operations in a computer system using deferred replies returned without using the address bus
US20130080709A1 (en) System and Method for Performing Memory Operations In A Computing System
JP2000112910A (ja) 非一様メモリ・アクセス・コンピュ―タ・システム及びその操作方法
JPH11175454A (ja) 自動直接メモリ・アクセス機能を備えたコンピュータ・システム
US6996645B1 (en) Method and apparatus for spawning multiple requests from a single entry of a queue
JPH1031625A (ja) マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ
US20220114098A1 (en) System, apparatus and methods for performing shared memory operations
EP3644190B1 (en) I/o coherent request node for data processing network with improved handling of write operations
US6321302B1 (en) Stream read buffer for efficient interface with block oriented devices
US6892283B2 (en) High speed memory cloner with extended cache coherency protocols and responses
JPH08249231A (ja) マルチプロセッサ・システムにおける古いデータの処理システム及び方法
US6035376A (en) System and method for changing the states of directory-based caches and memories from read/write to read-only
JPH11328106A (ja) グラフィックス・バスにアクセスするために多重のバス・マスタを可能とするアービトレーション機構を備えたコンピュータ・システム
US6862646B2 (en) Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain
JP4565786B2 (ja) ロックの開始と終了を要求するためのバスコマンドコードポイントの使用の最小化
US7502917B2 (en) High speed memory cloning facility via a lockless multiprocessor mechanism

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20021001

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20021224

LAPS Cancellation because of no payment of annual fees