JPH07306810A - 待ち行列ベースの予測型フロー制御機構 - Google Patents
待ち行列ベースの予測型フロー制御機構Info
- Publication number
- JPH07306810A JPH07306810A JP7028066A JP2806695A JPH07306810A JP H07306810 A JPH07306810 A JP H07306810A JP 7028066 A JP7028066 A JP 7028066A JP 2806695 A JP2806695 A JP 2806695A JP H07306810 A JPH07306810 A JP H07306810A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- module
- transaction
- transactions
- queue
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
(57)【要約】
【目的】 遅延、及び設計上の複雑さを伴わずに、即時
に全てを処理できない複数トランザクションを扱うフロ
ー制御機構、及びハンドシェイク信号、又はビジー-中
断信号を使用する必要のないフロー制御機構を提供す
る。 【構成】 バス(112)を有する共用バス・システム(10
0)、及びそのバスに接続された1組のクライアント・モ
ジュール(116,120)により構成される。各クライアント・
モジュールは、処理のために、バス上で他のクライアン
ト・モジュールにトランザクションを送り、バス上で他
のクライアント・モジュールからトランザクションを受
け取ることができる。各モジュールは、処理のためにそ
のモジュールが受け取ったトランザクションを、記憶す
るための待ち行列(164,168)を有する。バス制御装置(11
4)は全てのモジュールの待ち行列がオーバフローしない
ように、バス上に送ることが可能なトランザクションの
タイプを制限する。
に全てを処理できない複数トランザクションを扱うフロ
ー制御機構、及びハンドシェイク信号、又はビジー-中
断信号を使用する必要のないフロー制御機構を提供す
る。 【構成】 バス(112)を有する共用バス・システム(10
0)、及びそのバスに接続された1組のクライアント・モ
ジュール(116,120)により構成される。各クライアント・
モジュールは、処理のために、バス上で他のクライアン
ト・モジュールにトランザクションを送り、バス上で他
のクライアント・モジュールからトランザクションを受
け取ることができる。各モジュールは、処理のためにそ
のモジュールが受け取ったトランザクションを、記憶す
るための待ち行列(164,168)を有する。バス制御装置(11
4)は全てのモジュールの待ち行列がオーバフローしない
ように、バス上に送ることが可能なトランザクションの
タイプを制限する。
Description
【0001】
【産業上の利用分野】本発明は、共用バスを有するコン
ピュータ・システムに関し、より詳しくは、共用バス上
で発行されるトランザクションの制御に関する。
ピュータ・システムに関し、より詳しくは、共用バス上
で発行されるトランザクションの制御に関する。
【0002】
【従来の技術】コンピュータ・システムは一般に、プロ
セッサ、メモリ、及び入出力装置等の複数の構成要素
と、2つ以上の構成要素間で情報を転送するための共用
バスを有している。通常、これらの構成要素は、それぞ
れが、1つ又は複数のプロセッサ、メモリ、及び/又は
入出力装置を含むことが可能な構成要素モジュールの形
でバスに接続される。情報はバス・サイクルの間に、バ
ス上で構成要素モジュール間に転送され、それぞれのバ
ス・サイクルは選択されたモジュールが、限られた量の
情報をバス上で転送、又は送出することが可能な期間で
ある。モジュールは通常、バス上で他のモジュールにト
ランザクションを送り、データの読み取り、及び書き込
み等の動作を実行する。
セッサ、メモリ、及び入出力装置等の複数の構成要素
と、2つ以上の構成要素間で情報を転送するための共用
バスを有している。通常、これらの構成要素は、それぞ
れが、1つ又は複数のプロセッサ、メモリ、及び/又は
入出力装置を含むことが可能な構成要素モジュールの形
でバスに接続される。情報はバス・サイクルの間に、バ
ス上で構成要素モジュール間に転送され、それぞれのバ
ス・サイクルは選択されたモジュールが、限られた量の
情報をバス上で転送、又は送出することが可能な期間で
ある。モジュールは通常、バス上で他のモジュールにト
ランザクションを送り、データの読み取り、及び書き込
み等の動作を実行する。
【0003】ある種のコンピュータ・システムは、シス
テム上で稼働するソフトウェアを実行するための2つ、
又はそれ以上のメイン・プロセッサ・モジュール(あるい
は1つ、又はそれ以上のプロセッサ・モジュールと1
つ、又はそれ以上のコヒーレント入出力モジュール)
と、システム内の全てのプロセッサ及びコヒーレント入
出力モジュールによって使用される共用メイン・メモリ
を有する。このメイン・メモリは通常、メイン・メモリ制
御装置を介してバスに接続される。多くの場合、1つ、
又はそれ以上のプロセッサは、プロセッサによる高速ア
クセスが可能なように、最近使用されたデータ値を記憶
するキャッシュ・メモリも有している。
テム上で稼働するソフトウェアを実行するための2つ、
又はそれ以上のメイン・プロセッサ・モジュール(あるい
は1つ、又はそれ以上のプロセッサ・モジュールと1
つ、又はそれ以上のコヒーレント入出力モジュール)
と、システム内の全てのプロセッサ及びコヒーレント入
出力モジュールによって使用される共用メイン・メモリ
を有する。このメイン・メモリは通常、メイン・メモリ制
御装置を介してバスに接続される。多くの場合、1つ、
又はそれ以上のプロセッサは、プロセッサによる高速ア
クセスが可能なように、最近使用されたデータ値を記憶
するキャッシュ・メモリも有している。
【0004】通常、キャッシュ・メモリは、頻繁に使用
されるデータと、これらのデータ項目がメイン・メモリ
に記憶されているアドレスの両方を記憶する。プロセッ
サが、メモリ内のアドレスからデータをシークする場
合、そのデータに関連するアドレスを使用してキャッシ
ュ・メモリからそのデータを要求する。キャッシュ・メモ
リは、キャッシュ・メモリ内に、そのアドレスに関連す
るデータが保持されているかどうかを調べる検査を行
う。保持されている場合、キャッシュ・メモリは、要求
されたデータを直接プロセッサにリターンする。キャッ
シュ・メモリが所望の情報を含んでいない(即ち、「キャ
ッシュ・ミス」が発生した)場合、キャッシュは、そのデ
ータをメイン・メモリに要求し、データを待つ間プロセ
ッサを停止させる。キャッシュ・メモリはメインRAMメモ
リより高速なので、結果的に、この方法を用いると、シ
ステム性能が向上する。
されるデータと、これらのデータ項目がメイン・メモリ
に記憶されているアドレスの両方を記憶する。プロセッ
サが、メモリ内のアドレスからデータをシークする場
合、そのデータに関連するアドレスを使用してキャッシ
ュ・メモリからそのデータを要求する。キャッシュ・メモ
リは、キャッシュ・メモリ内に、そのアドレスに関連す
るデータが保持されているかどうかを調べる検査を行
う。保持されている場合、キャッシュ・メモリは、要求
されたデータを直接プロセッサにリターンする。キャッ
シュ・メモリが所望の情報を含んでいない(即ち、「キャ
ッシュ・ミス」が発生した)場合、キャッシュは、そのデ
ータをメイン・メモリに要求し、データを待つ間プロセ
ッサを停止させる。キャッシュ・メモリはメインRAMメモ
リより高速なので、結果的に、この方法を用いると、シ
ステム性能が向上する。
【0005】各プロセッサがキャッシュ・メモリを有す
る共用メモリ多重プロセッサ・コンピュータの場合、状
況はいくらか複雑である。そのようなコンピュータで
は、1つ、又は複数のキャッシュ・メモリ、又はメイン・
メモリに最も新しいデータが記憶されうる。このプロセ
ッサ上で稼働しているソフトウェアは、特定のアドレス
に関連したデータに最新の値を使用しなければならな
い。従って、「キャッシュ・コヒーレンシ技法」を実施し
て、特定のアドレスに関したデータのコピーが全て同じ
になるよう保証しなければならない。
る共用メモリ多重プロセッサ・コンピュータの場合、状
況はいくらか複雑である。そのようなコンピュータで
は、1つ、又は複数のキャッシュ・メモリ、又はメイン・
メモリに最も新しいデータが記憶されうる。このプロセ
ッサ上で稼働しているソフトウェアは、特定のアドレス
に関連したデータに最新の値を使用しなければならな
い。従って、「キャッシュ・コヒーレンシ技法」を実施し
て、特定のアドレスに関したデータのコピーが全て同じ
になるよう保証しなければならない。
【0006】典型的なライト・バック・コヒーレンシ技法
では、モジュールによってデータが要求されると、キャ
ッシュ・メモリを有する各モジュールが、各自のキャッ
シュ・メモリに「コヒーレンシ検査」を実行して、キャッ
シュ・メモリが、要求されたアドレスに関連するデータ
を有するかどうかを判定し、そのコヒーレンシ検査の結
果を報告する。各モジュールは通常、メイン・メモリ及
びその他のキャッシュ・メモリに記憶されている同じア
ドレスに関連するデータに関して、各自のキャッシュ・
メモリに記憶されているデータの状況も報告する。例え
ば、モジュールは、そのデータが「専用」である(即ち、
このデータ値は、このモジュールのみ使用可能であ
る)、又はデータが「共用」である(即ち、このデータは、
複数のキャッシュ・メモリに同時に存在する可能性があ
る)ことを報告することができる。モジュールは又、デ
ータが「クリーン」である(即ち、メイン・メモリに記憶さ
れている同じアドレスに関連するデータと同じものであ
る)、又は「ダーティ」である(即ち、データを得た後、そ
のデータが変更された)かどうかを報告することもでき
る。
では、モジュールによってデータが要求されると、キャ
ッシュ・メモリを有する各モジュールが、各自のキャッ
シュ・メモリに「コヒーレンシ検査」を実行して、キャッ
シュ・メモリが、要求されたアドレスに関連するデータ
を有するかどうかを判定し、そのコヒーレンシ検査の結
果を報告する。各モジュールは通常、メイン・メモリ及
びその他のキャッシュ・メモリに記憶されている同じア
ドレスに関連するデータに関して、各自のキャッシュ・
メモリに記憶されているデータの状況も報告する。例え
ば、モジュールは、そのデータが「専用」である(即ち、
このデータ値は、このモジュールのみ使用可能であ
る)、又はデータが「共用」である(即ち、このデータは、
複数のキャッシュ・メモリに同時に存在する可能性があ
る)ことを報告することができる。モジュールは又、デ
ータが「クリーン」である(即ち、メイン・メモリに記憶さ
れている同じアドレスに関連するデータと同じものであ
る)、又は「ダーティ」である(即ち、データを得た後、そ
のデータが変更された)かどうかを報告することもでき
る。
【0007】各モジュールによって実行されたコヒーレ
ンシ検査の結果は、選択されたプロセッサによって分析
され、データを要求したモジュールに最新のデータが提
供される。「コヒーレント・トランザクション」は、メモ
リ・アドレスに関連するデータが他のキャッシュに記憶
されているかどうかを調べ、又はデータが最新のもので
あるかどうかを検証するために他のキャッシュの検査を
要求する全てのトランザクションである。メモリに対す
る殆どの読み取り、及び幾つかの書き込みはコヒーレン
ト・トランザクションである。当業者は、従来の専用読
み取りのようなコヒーレント・トランザクションや、従
来型ライト・バックのような非コヒーレント・トランザク
ション等の、多くのコヒーレント・トランザクションの
タイプに精通している。
ンシ検査の結果は、選択されたプロセッサによって分析
され、データを要求したモジュールに最新のデータが提
供される。「コヒーレント・トランザクション」は、メモ
リ・アドレスに関連するデータが他のキャッシュに記憶
されているかどうかを調べ、又はデータが最新のもので
あるかどうかを検証するために他のキャッシュの検査を
要求する全てのトランザクションである。メモリに対す
る殆どの読み取り、及び幾つかの書き込みはコヒーレン
ト・トランザクションである。当業者は、従来の専用読
み取りのようなコヒーレント・トランザクションや、従
来型ライト・バックのような非コヒーレント・トランザク
ション等の、多くのコヒーレント・トランザクションの
タイプに精通している。
【0008】従来型コヒーレンシ技法の多くは、コヒー
レンシ検査の結果を報告するために、モジュールと、ど
のようにメモリ要求を満たすべきかに関して最終決定を
下すコヒーレンシ・プロセッサとの間に大量の通信が必
要となる。キャッシュ・メモリを有する各モジュール
は、コヒーレンシ検査が必要である旨の通知を受けて、
コヒーレンシ検査の結果をコヒーレンシ・プロセッサに
報告しなければならない。通信の数が低減された場合で
も、コヒーレンシ検査の結果を処理し、報告する従来型
の手段では低速であることが多い。コヒーレンシ検査
は、モジュールによってモジュール間通信に使用される
共用バスの有効帯域幅を実質的に減少させないような方
法で実行されなければならない。
レンシ検査の結果を報告するために、モジュールと、ど
のようにメモリ要求を満たすべきかに関して最終決定を
下すコヒーレンシ・プロセッサとの間に大量の通信が必
要となる。キャッシュ・メモリを有する各モジュール
は、コヒーレンシ検査が必要である旨の通知を受けて、
コヒーレンシ検査の結果をコヒーレンシ・プロセッサに
報告しなければならない。通信の数が低減された場合で
も、コヒーレンシ検査の結果を処理し、報告する従来型
の手段では低速であることが多い。コヒーレンシ検査
は、モジュールによってモジュール間通信に使用される
共用バスの有効帯域幅を実質的に減少させないような方
法で実行されなければならない。
【0009】メモリ待ち時間増大の影響を低減させるた
めに、多数の従来型バスが「分割トランザクション」バス
になっている。即ち、トランザクションは、バス上に置
かれた直後に処理される必要はない。例えば、メモリ読
み取りトランザクションがバス上で発行された後、その
読み取りを発行したモジュールはバスを放棄して、他の
モジュールが他のトランザクションのためにバスを使用
できるようにする。要求されたデータが使用可能である
場合、読み取りに関する応答モジュールは、バスの制御
を獲得し、データを伝送する。共用バス・システム内の
モジュールは、応答モジュールによって実行されうるコ
ヒーレンシ検査、又は他のモジュールによって実行され
うるコヒーレンシ検査より速くトランザクションを開始
できる場合が多い。例えば、入出力装置は、マイクロプ
ロセッサよりずっと低速に動作することが多く、従っ
て、入出力装置をバスに接続しているモジュールは応答
が低速であることがある。同様に、メイン・メモリ・アク
セスは、比較的低速であり、プロセッサ・モジュール
は、メイン・メモリからデータを読み取るより速くデー
タを要求することができる。モジュール内のコヒーレン
シ検査プロセッサは他の動作でビジー状態である可能性
があるので、キャッシュ・コヒーレンシ検査も低速にな
る可能性がある。従って、あまりにも多くのトランザク
ションが短時間で開始されて、そのトランザクションが
適切に処理されず、又はコヒーレンシ検査が実行されな
い時、モジュールによる新しいトランザクションの開始
を遅らせるか、あるいはトランザクションのオーバフロ
ーを扱うかのどちらかが必要であることが多い。
めに、多数の従来型バスが「分割トランザクション」バス
になっている。即ち、トランザクションは、バス上に置
かれた直後に処理される必要はない。例えば、メモリ読
み取りトランザクションがバス上で発行された後、その
読み取りを発行したモジュールはバスを放棄して、他の
モジュールが他のトランザクションのためにバスを使用
できるようにする。要求されたデータが使用可能である
場合、読み取りに関する応答モジュールは、バスの制御
を獲得し、データを伝送する。共用バス・システム内の
モジュールは、応答モジュールによって実行されうるコ
ヒーレンシ検査、又は他のモジュールによって実行され
うるコヒーレンシ検査より速くトランザクションを開始
できる場合が多い。例えば、入出力装置は、マイクロプ
ロセッサよりずっと低速に動作することが多く、従っ
て、入出力装置をバスに接続しているモジュールは応答
が低速であることがある。同様に、メイン・メモリ・アク
セスは、比較的低速であり、プロセッサ・モジュール
は、メイン・メモリからデータを読み取るより速くデー
タを要求することができる。モジュール内のコヒーレン
シ検査プロセッサは他の動作でビジー状態である可能性
があるので、キャッシュ・コヒーレンシ検査も低速にな
る可能性がある。従って、あまりにも多くのトランザク
ションが短時間で開始されて、そのトランザクションが
適切に処理されず、又はコヒーレンシ検査が実行されな
い時、モジュールによる新しいトランザクションの開始
を遅らせるか、あるいはトランザクションのオーバフロ
ーを扱うかのどちらかが必要であることが多い。
【0010】トランザクションのオーバフローを取り扱
う典型的な従来技術の方法は、「ビジー-中断」機構を使
用して、非常に多い、あるタイプのトランザクションが
非常に速く開始される状況を扱う。トランザクションの
応答モジュールが、すぐに応答できない新しいトランザ
クション要求を発見すると、トランザクションの応答モ
ジュールは、トランザクションがその時間に動作できな
い(例えば、入出力モジュールが占有されている、又は
キャッシュ・メモリを有するプロセッサ・モジュールがコ
ヒーレンシ検査を十分高速に実行できない)ことを示す
「ビジー-中断」信号を送り返す。要求モジュールは次
に、その要求を中断し、後で再びその要求を試みる。こ
のアプローチは、「ビジー-中断」要求を受け取る可能性
が全てなくなるまで、要求モジュールがそのトランザク
ション情報を保持しなければならないので、設計上の複
雑さを増すことになる。更に、2つのトランザクション
を特定の順序で実行しなければならない場合、通常、
「ビジー-中断」要求を受け取る可能性が全てなくなるま
で、第2のトランザクションを発行することができな
い。最終的に、トランザクションが中断された結果、処
理の遅延が発生し、バスの使用時間が浪費される。
う典型的な従来技術の方法は、「ビジー-中断」機構を使
用して、非常に多い、あるタイプのトランザクションが
非常に速く開始される状況を扱う。トランザクションの
応答モジュールが、すぐに応答できない新しいトランザ
クション要求を発見すると、トランザクションの応答モ
ジュールは、トランザクションがその時間に動作できな
い(例えば、入出力モジュールが占有されている、又は
キャッシュ・メモリを有するプロセッサ・モジュールがコ
ヒーレンシ検査を十分高速に実行できない)ことを示す
「ビジー-中断」信号を送り返す。要求モジュールは次
に、その要求を中断し、後で再びその要求を試みる。こ
のアプローチは、「ビジー-中断」要求を受け取る可能性
が全てなくなるまで、要求モジュールがそのトランザク
ション情報を保持しなければならないので、設計上の複
雑さを増すことになる。更に、2つのトランザクション
を特定の順序で実行しなければならない場合、通常、
「ビジー-中断」要求を受け取る可能性が全てなくなるま
で、第2のトランザクションを発行することができな
い。最終的に、トランザクションが中断された結果、処
理の遅延が発生し、バスの使用時間が浪費される。
【0011】代替アプローチは、応答モジュールによっ
てトランザクションが処理されうるかどうかを確定させ
るために、各トランザクションの後で、モジュール間の
ハンドシェイクを要求するものである。このアプローチ
でも、処理遅延、及び不必要な設計上の複雑さが発生す
る。
てトランザクションが処理されうるかどうかを確定させ
るために、各トランザクションの後で、モジュール間の
ハンドシェイクを要求するものである。このアプローチ
でも、処理遅延、及び不必要な設計上の複雑さが発生す
る。
【0012】従って、コンピュータ・システムが、不必
要な処理遅延、又は設計上の複雑さをシステムに課すこ
となく、即時に処理ができない複数トランザクションを
扱う手段が必要とされる。
要な処理遅延、又は設計上の複雑さをシステムに課すこ
となく、即時に処理ができない複数トランザクションを
扱う手段が必要とされる。
【0013】
【発明が解決しようとする課題】従って、本発明の課題
は、不必要な遅延を課すことなく、即時に全てを処理で
きない複数トランザクションを扱うコンピュータ・シス
テムのためのフロー制御機構を提供することである。
は、不必要な遅延を課すことなく、即時に全てを処理で
きない複数トランザクションを扱うコンピュータ・シス
テムのためのフロー制御機構を提供することである。
【0014】本発明の別の課題は、ハンドシェイク信
号、又はビジー-中断信号を使用する必要のないコンピ
ュータ・システムのためのフロー制御機構を提供するこ
とである。
号、又はビジー-中断信号を使用する必要のないコンピ
ュータ・システムのためのフロー制御機構を提供するこ
とである。
【0015】本発明の更に別の課題は、不必要な設計上
の複雑さをシステムに課すことなく、即時に全てを処理
できない複数トランザクションを扱うコンピュータ・シ
ステムのためのフロー制御機構を提供することである。
の複雑さをシステムに課すことなく、即時に全てを処理
できない複数トランザクションを扱うコンピュータ・シ
ステムのためのフロー制御機構を提供することである。
【0016】本発明のこれら、及びその他の課題は、本
発明、及び好的実施例に関する以下の詳細な説明、添付
図面、及び特許請求の範囲から当業者には明らかになろ
う。
発明、及び好的実施例に関する以下の詳細な説明、添付
図面、及び特許請求の範囲から当業者には明らかになろ
う。
【0017】
【課題を解決するための手段】概して言えば、本発明
は、バス、及びバスに接続された複数のクライアント・
モジュールを有する共用バス・システムである。クライ
アント・モジュールのそれぞれは、バス上でトランザク
ションを他のクライアント・モジュールに送り、バス上
で他のクライアント・モジュールからトランザクション
を受け取ることができる。
は、バス、及びバスに接続された複数のクライアント・
モジュールを有する共用バス・システムである。クライ
アント・モジュールのそれぞれは、バス上でトランザク
ションを他のクライアント・モジュールに送り、バス上
で他のクライアント・モジュールからトランザクション
を受け取ることができる。
【0018】各モジュールは更に、モジュールによって
受け取られたトランザクションが、そのモジュールによ
って処理されるように、前記トランザクションを指定す
る情報を記憶するための待ち行列を有する。このバス・
システムは又、バス上で送られるトランザクションのタ
イプを制限するための手段を有するバス制御装置も有す
る。モジュールのうちの1つにある待ち行列が、所定の
容量より小さい空き空間を有する時、バス制御装置は、
その待ち行列内の空間を必要とするトランザクションが
発行されるのを防ぐように、バス上で送ることを許され
るトランザクションを制限する。
受け取られたトランザクションが、そのモジュールによ
って処理されるように、前記トランザクションを指定す
る情報を記憶するための待ち行列を有する。このバス・
システムは又、バス上で送られるトランザクションのタ
イプを制限するための手段を有するバス制御装置も有す
る。モジュールのうちの1つにある待ち行列が、所定の
容量より小さい空き空間を有する時、バス制御装置は、
その待ち行列内の空間を必要とするトランザクションが
発行されるのを防ぐように、バス上で送ることを許され
るトランザクションを制限する。
【0019】各クライアント・モジュールは、キャッシ
ュ・メモリ、バス上で送られたコヒーレント・トランザク
ションを検出し、そのトランザクションに関する前記モ
ジュールのキャッシュ・メモリのコヒーレンシ検査を実
行するための手段、及びコヒーレンシ検査の結果を報告
するためのコヒーレンシ・バスを有することが好まし
い。
ュ・メモリ、バス上で送られたコヒーレント・トランザク
ションを検出し、そのトランザクションに関する前記モ
ジュールのキャッシュ・メモリのコヒーレンシ検査を実
行するための手段、及びコヒーレンシ検査の結果を報告
するためのコヒーレンシ・バスを有することが好まし
い。
【0020】各クライアント・モジュールは、コヒーレ
ント・トランザクションに関するコヒーレンシ検査が実
行されるまで、バス上で検出されたコヒーレント・トラ
ンザクションを記憶するためのコヒーレンシ待ち行列を
有することが好ましい。この待ち行列は、トランザクシ
ョンを中断することなく、典型的なトランザクション発
行速度に適応するのに十分な大きさのものである。
ント・トランザクションに関するコヒーレンシ検査が実
行されるまで、バス上で検出されたコヒーレント・トラ
ンザクションを記憶するためのコヒーレンシ待ち行列を
有することが好ましい。この待ち行列は、トランザクシ
ョンを中断することなく、典型的なトランザクション発
行速度に適応するのに十分な大きさのものである。
【0021】この共用バス・システムは又、バスに接続
されたメイン・メモリ制御装置も有することが好まし
い。メイン・メモリ制御装置は、クライアント・モジュー
ルによって報告されるコヒーレンシ検査の結果を受け取
るために、コヒーレンシ・ラインのそれぞれに接続され
る。メイン・メモリ制御装置は、各サイクルの間にバス
上でどんなタイプのトランザクションを送ることが可能
かをクライアント・モジュールに通知するクライアント・
オプション信号を、クライアント・モジュールのそれぞ
れに送るためのクライアント・オプション・ラインを有す
る。メイン・メモリは、コヒーレンシ待ち行列の各々に
記憶されているコヒーレント・トランザクションの数を
記録し、コヒーレンシ待ち行列の1つをオーバフローさ
せるトランザクションがバス上に送られるのを防ぐクラ
イアント・オプション信号を送る。
されたメイン・メモリ制御装置も有することが好まし
い。メイン・メモリ制御装置は、クライアント・モジュー
ルによって報告されるコヒーレンシ検査の結果を受け取
るために、コヒーレンシ・ラインのそれぞれに接続され
る。メイン・メモリ制御装置は、各サイクルの間にバス
上でどんなタイプのトランザクションを送ることが可能
かをクライアント・モジュールに通知するクライアント・
オプション信号を、クライアント・モジュールのそれぞ
れに送るためのクライアント・オプション・ラインを有す
る。メイン・メモリは、コヒーレンシ待ち行列の各々に
記憶されているコヒーレント・トランザクションの数を
記録し、コヒーレンシ待ち行列の1つをオーバフローさ
せるトランザクションがバス上に送られるのを防ぐクラ
イアント・オプション信号を送る。
【0022】本発明は、その時点で扱うことのできない
トランザクションがある場合、共用バス・システムの構
成要素モジュールによって、トランザクションが発行さ
れるのを防ぐ予測型フロー制御機構を含む。従って、本
発明は、そのようなトランザクションが発行された後
に、そのトランザクションを中断させることを不要にす
る。これは、所与のサイクルの間に、バス上でどんなタ
イプのトランザクションが許可されているかを示す信号
を各モジュールに送り、処理できない全てのトランザク
ションを許可しないことによって行われる。
トランザクションがある場合、共用バス・システムの構
成要素モジュールによって、トランザクションが発行さ
れるのを防ぐ予測型フロー制御機構を含む。従って、本
発明は、そのようなトランザクションが発行された後
に、そのトランザクションを中断させることを不要にす
る。これは、所与のサイクルの間に、バス上でどんなタ
イプのトランザクションが許可されているかを示す信号
を各モジュールに送り、処理できない全てのトランザク
ションを許可しないことによって行われる。
【0023】本発明は、これらの結果を達成するため、
最初に、必要な通信の量を減らす方法で、メモリ・シス
テムとバス上の個別のモジュールの間にキャッシュ・コ
ヒーレンシ検査の負荷を分散させる。コヒーレンシのテ
ストに参加しなければならないバス上の各処理モジュー
ルは、バスを監視し(即ち、バス上で「スヌープ」し、又
は「盗み聞き」し)、モジュールによるコヒーレンシ検査
を要求するコヒーレント・トランザクション要求を検出
する回路を含んでいる。従って、中央メモリ・プロセッ
サでは、キャッシュ・コヒーレンシ検査の要求を様々な
モジュールに送るタスクの負荷が軽減される。このこと
は又、中央メモリ処理システムと様々なモジュールの間
の接続数を減少させることにもなる。
最初に、必要な通信の量を減らす方法で、メモリ・シス
テムとバス上の個別のモジュールの間にキャッシュ・コ
ヒーレンシ検査の負荷を分散させる。コヒーレンシのテ
ストに参加しなければならないバス上の各処理モジュー
ルは、バスを監視し(即ち、バス上で「スヌープ」し、又
は「盗み聞き」し)、モジュールによるコヒーレンシ検査
を要求するコヒーレント・トランザクション要求を検出
する回路を含んでいる。従って、中央メモリ・プロセッ
サでは、キャッシュ・コヒーレンシ検査の要求を様々な
モジュールに送るタスクの負荷が軽減される。このこと
は又、中央メモリ処理システムと様々なモジュールの間
の接続数を減少させることにもなる。
【0024】第2に、コヒーレンシ検査に参加しなけれ
ばならないバス上の各モジュールは、まだ完了していな
いキャッシュ・コヒーレンシ検査のタスクを記憶するた
めの待ち行列を含んでいる。このバッファリングによっ
て、キャッシュ・コヒーレンシ検査システムは、より高
い有効帯域幅で動作することができる。更に、この待ち
行列によって、ハンドシェイク、又はビジー-中断プロ
トコル、又はハードウェアがなくても、キャッシュ・コ
ヒーレンシ検査トランザクションが失われないことが保
証される。
ばならないバス上の各モジュールは、まだ完了していな
いキャッシュ・コヒーレンシ検査のタスクを記憶するた
めの待ち行列を含んでいる。このバッファリングによっ
て、キャッシュ・コヒーレンシ検査システムは、より高
い有効帯域幅で動作することができる。更に、この待ち
行列によって、ハンドシェイク、又はビジー-中断プロ
トコル、又はハードウェアがなくても、キャッシュ・コ
ヒーレンシ検査トランザクションが失われないことが保
証される。
【0025】最後に、中央メモリ処理システムは、様々
な待ち行列の状態を監視し、バス上に置かれるトランザ
クションのタイプを制限する信号を提供して、待ち行列
のオーバフローが発生しないよう保証する。このトラン
ザクション制限システムを使用して、他のタイプのトラ
ンザクションが失われないよう保証することもできる。
な待ち行列の状態を監視し、バス上に置かれるトランザ
クションのタイプを制限する信号を提供して、待ち行列
のオーバフローが発生しないよう保証する。このトラン
ザクション制限システムを使用して、他のタイプのトラ
ンザクションが失われないよう保証することもできる。
【0026】予測型フロー制御機構は、主要な3組のト
ランザクション待ち行列を使用する。第1に、キャッシ
ュ・メモリを有する各モジュールは、キャッシュ・コヒー
レンシ検査が実行されるまで、バス上で発行されている
コヒーレント・トランザクションを保持するためのキャ
ッシュ・コヒーレンシ待ち行列を有する。第2に、各入
出力モジュールは、入出力トランザクションが処理され
るまで、その入出力トランザクションを保持するための
入出力待ち行列を有する。入出力トランザクションは、
入出力装置からデータを読み取り、又は入出力装置にデ
ータを書き込むことを要求するあらゆるトランザクショ
ンを含む。好的実施態様では、ある種のメモリ・アドレ
スが入出力位置を指定することによって、これらのアド
レスに送られるトランザクションが、入出力トランザク
ションであることが分かる。最後に、メイン・メモリ制
御装置は、コヒーレンシ検査が完了し、メイン・メモリ
読み取りトランザクション及びメイン・メモリ書き込み
トランザクションが処理されるまで、それらのトランザ
クションを保持するためのメモリ待ち行列を有する。こ
れらの待ち行列の全ては、オーバフローすることなく、
典型的なトランザクションの発行速度を扱えるように設
計されている。
ランザクション待ち行列を使用する。第1に、キャッシ
ュ・メモリを有する各モジュールは、キャッシュ・コヒー
レンシ検査が実行されるまで、バス上で発行されている
コヒーレント・トランザクションを保持するためのキャ
ッシュ・コヒーレンシ待ち行列を有する。第2に、各入
出力モジュールは、入出力トランザクションが処理され
るまで、その入出力トランザクションを保持するための
入出力待ち行列を有する。入出力トランザクションは、
入出力装置からデータを読み取り、又は入出力装置にデ
ータを書き込むことを要求するあらゆるトランザクショ
ンを含む。好的実施態様では、ある種のメモリ・アドレ
スが入出力位置を指定することによって、これらのアド
レスに送られるトランザクションが、入出力トランザク
ションであることが分かる。最後に、メイン・メモリ制
御装置は、コヒーレンシ検査が完了し、メイン・メモリ
読み取りトランザクション及びメイン・メモリ書き込み
トランザクションが処理されるまで、それらのトランザ
クションを保持するためのメモリ待ち行列を有する。こ
れらの待ち行列の全ては、オーバフローすることなく、
典型的なトランザクションの発行速度を扱えるように設
計されている。
【0027】メイン・メモリ制御装置は、各待ち行列の
状況に関する情報を受け取り、処理するための中央位置
として働く。メイン・メモリ制御装置は、バス上でどん
なタイプのトランザクションの開始を許可するかを示す
「クライアント・オプション」信号をモジュールに送るこ
とによって、待ち行列がオーバフローしないことを保証
する。例えば、入出力待ち行列が満杯である場合、メイ
ン・メモリ制御装置は、入出力トランザクションが許可
されないことを示すクライアント・オプション信号を送
る。コヒーレンシ待ち行列が満杯である場合、メイン・
メモリ制御装置は、コヒーレンシ検査を要求する追加ト
ランザクションを許可しない。
状況に関する情報を受け取り、処理するための中央位置
として働く。メイン・メモリ制御装置は、バス上でどん
なタイプのトランザクションの開始を許可するかを示す
「クライアント・オプション」信号をモジュールに送るこ
とによって、待ち行列がオーバフローしないことを保証
する。例えば、入出力待ち行列が満杯である場合、メイ
ン・メモリ制御装置は、入出力トランザクションが許可
されないことを示すクライアント・オプション信号を送
る。コヒーレンシ待ち行列が満杯である場合、メイン・
メモリ制御装置は、コヒーレンシ検査を要求する追加ト
ランザクションを許可しない。
【0028】待ち行列の各タイプの満杯/空き状況を記
録するために、異なる手順が使用される。キャッシュ・
コヒーレンシ待ち行列に関しては、キャッシュ・メモリ
を有する各モジュールは、発行されているトランザクシ
ョンに関してバスを監視し、先入れ先出しの順でコヒー
レンシ検査を行うためにコヒーレント・トランザクショ
ンを前記モジュールのコヒーレンシ待ち行列に記憶す
る。コヒーレンシ検査の結果は、メイン・メモリ制御装
置に報告される。メイン・メモリ制御装置は又、コヒー
レント・トランザクションに関してもバスを監視して、
その記録を保持し、各モジュールによって実行されたコ
ヒーレンシ検査の結果も受け取る。従って、メイン・メ
モリ制御装置は、発行されたコヒーレント・トランザク
ションの数を、所与のモジュールから受け取ったコヒー
レンシ検査の応答数と比較することによって、各モジュ
ールのキャッシュ・コヒーレンシ待ち行列がどれだけ満
たされているのかを知ることができる。入出力待ち行列
の場合、入出力モジュールの入出力待ち行列が満杯に近
づくと、入出力モジュールがメイン・メモリ制御装置に
信号を送る。メイン・メモリ制御装置は任意の従来方式
で、それ自体のメモリ待ち行列の記録を保持することが
できる。
録するために、異なる手順が使用される。キャッシュ・
コヒーレンシ待ち行列に関しては、キャッシュ・メモリ
を有する各モジュールは、発行されているトランザクシ
ョンに関してバスを監視し、先入れ先出しの順でコヒー
レンシ検査を行うためにコヒーレント・トランザクショ
ンを前記モジュールのコヒーレンシ待ち行列に記憶す
る。コヒーレンシ検査の結果は、メイン・メモリ制御装
置に報告される。メイン・メモリ制御装置は又、コヒー
レント・トランザクションに関してもバスを監視して、
その記録を保持し、各モジュールによって実行されたコ
ヒーレンシ検査の結果も受け取る。従って、メイン・メ
モリ制御装置は、発行されたコヒーレント・トランザク
ションの数を、所与のモジュールから受け取ったコヒー
レンシ検査の応答数と比較することによって、各モジュ
ールのキャッシュ・コヒーレンシ待ち行列がどれだけ満
たされているのかを知ることができる。入出力待ち行列
の場合、入出力モジュールの入出力待ち行列が満杯に近
づくと、入出力モジュールがメイン・メモリ制御装置に
信号を送る。メイン・メモリ制御装置は任意の従来方式
で、それ自体のメモリ待ち行列の記録を保持することが
できる。
【0029】どんな場合でも、待ち行列が典型的なトラ
ンザクションの発行速度を扱うために使用され、単にフ
ロー制御機構をサポートするために追加されているわけ
ではないので、フロー制御機構は、ハードウェアの面か
ら見て効果的である。トランザクションが、受け入れら
れることを保証されているために、複数回でなく1回し
か発行されないので、バス帯域幅も節約される。
ンザクションの発行速度を扱うために使用され、単にフ
ロー制御機構をサポートするために追加されているわけ
ではないので、フロー制御機構は、ハードウェアの面か
ら見て効果的である。トランザクションが、受け入れら
れることを保証されているために、複数回でなく1回し
か発行されないので、バス帯域幅も節約される。
【0030】
【実施例】図1に示したコンピュータ・システム10に関
して、予測型フロー制御機構を説明する。この予測型フ
ロー制御機構を論じる前に、コンピュータ・システム10
の動作を詳細に説明する。コンピュータ・システム10の
基本動作は本発明の主要部分ではないが、予測型フロー
制御機構の動作をより詳細に説明する前に、前記基本動
作をある程度詳細に説明しておくことは有用である。
して、予測型フロー制御機構を説明する。この予測型フ
ロー制御機構を論じる前に、コンピュータ・システム10
の動作を詳細に説明する。コンピュータ・システム10の
基本動作は本発明の主要部分ではないが、予測型フロー
制御機構の動作をより詳細に説明する前に、前記基本動
作をある程度詳細に説明しておくことは有用である。
【0031】コンピュータ・システム10は、バス12、及
びバス12に接続された複数の構成要素を有する多重プロ
セッサ・コンピュータである。これらの構成要素は、メ
イン・メモリ制御装置14、入出力モジュール16及び18、
及びプロセッサ・モジュール20、22、24、及び26を含む。こ
れらの構成要素は、バス12上で相互にトランザクション
を送る。
びバス12に接続された複数の構成要素を有する多重プロ
セッサ・コンピュータである。これらの構成要素は、メ
イン・メモリ制御装置14、入出力モジュール16及び18、
及びプロセッサ・モジュール20、22、24、及び26を含む。こ
れらの構成要素は、バス12上で相互にトランザクション
を送る。
【0032】以下でより詳細に説明するように、メイン
・メモリ制御装置14は「ホスト・モジュール」とみなすこと
ができ、残りの構成要素は「クライアント・モジュール」
とみなすことができる。メイン・メモリ制御装置/ホスト
・モジュールは、もしあれば、所与のサイクルの間にバ
ス上で許可されているトランザクションのタイプを指定
するクライアント・オプション信号を各クライアント・モ
ジュールに送る。所与のサイクルの間におけるバスの所
有者は、そのサイクルを支配するクライアント・オプシ
ョン信号によって許可されるタイプのトランザクション
のみを開始できる。次の有効なサイクルの間におけるバ
スの所有者も、各クライアント・モジュールからの調停
信号、及びバスの制御を返す必要があるかどうかを示す
現在のバスの所有者によって送られる信号に加えて、ク
ライアント・オプション信号に基づく調停によって決定
される。
・メモリ制御装置14は「ホスト・モジュール」とみなすこと
ができ、残りの構成要素は「クライアント・モジュール」
とみなすことができる。メイン・メモリ制御装置/ホスト
・モジュールは、もしあれば、所与のサイクルの間にバ
ス上で許可されているトランザクションのタイプを指定
するクライアント・オプション信号を各クライアント・モ
ジュールに送る。所与のサイクルの間におけるバスの所
有者は、そのサイクルを支配するクライアント・オプシ
ョン信号によって許可されるタイプのトランザクション
のみを開始できる。次の有効なサイクルの間におけるバ
スの所有者も、各クライアント・モジュールからの調停
信号、及びバスの制御を返す必要があるかどうかを示す
現在のバスの所有者によって送られる信号に加えて、ク
ライアント・オプション信号に基づく調停によって決定
される。
【0033】プロセッサ・モジュール20、22、24、及び26
は、コンピュータ・システム10のメイン・プロセッサであ
り、このシステムのためのソフトウェアは全てのプロセ
ッサ上で同時に稼働する。プロセッサ・モジュール20、2
2、24、及び26はそれぞれ、調停信号送信(即ち、ARB)ライ
ン28、30、32、及び34を制御し、ARBラインは、各モジュー
ルを残りのプロセッサ・モジュールに接続する。プロセ
ッサがバス12を使用したい場合、このプロセッサのARB
ライン上の他のプロセッサ・モジュールに所定の信号を
送る。この信号は、次の有効なバス・サイクルの間にお
けるバスの所有者を決定するための調停に使用される。
は、コンピュータ・システム10のメイン・プロセッサであ
り、このシステムのためのソフトウェアは全てのプロセ
ッサ上で同時に稼働する。プロセッサ・モジュール20、2
2、24、及び26はそれぞれ、調停信号送信(即ち、ARB)ライ
ン28、30、32、及び34を制御し、ARBラインは、各モジュー
ルを残りのプロセッサ・モジュールに接続する。プロセ
ッサがバス12を使用したい場合、このプロセッサのARB
ライン上の他のプロセッサ・モジュールに所定の信号を
送る。この信号は、次の有効なバス・サイクルの間にお
けるバスの所有者を決定するための調停に使用される。
【0034】入出力モジュール16、及び18は、コンピュ
ータ・システム10と入出力装置(図示せず)の間のインタ
フェイスとして働く。入出力モジュール16、及び18はそ
れぞれ、入出力アダプタを含んでいる。入出力モジュー
ル16、及び18はそれぞれ、ARBライン36、及び38を制御
する。入出力モジュールがバス12を使用したい場合、こ
の入出力モジュールのARBライン上の残りのクライアン
ト・モジュールに所定の信号を送る。この信号は調停に
使用される。
ータ・システム10と入出力装置(図示せず)の間のインタ
フェイスとして働く。入出力モジュール16、及び18はそ
れぞれ、入出力アダプタを含んでいる。入出力モジュー
ル16、及び18はそれぞれ、ARBライン36、及び38を制御
する。入出力モジュールがバス12を使用したい場合、こ
の入出力モジュールのARBライン上の残りのクライアン
ト・モジュールに所定の信号を送る。この信号は調停に
使用される。
【0035】メイン・メモリ制御装置14は従来の方法
で、メイン・メモリ(図示せず)から情報を読み取り、メ
イン・メモリに情報を記憶する責任がある。メイン・メモ
リ制御装置14は直接、又は従来型のバスを介してメモリ
とのインタフェイスを行う。上述のように、メイン・メ
モリ制御装置14は、バス制御のためにホスト・モジュー
ルとしても働くことが好ましい。メイン・メモリ制御装
置14は、各クライアント・モジュールに直接接続されたC
LIENT_OPライン40を制御する。メイン・メモリ制御装置1
4は、次の有効なバス・サイクルの間にバス12上にどんな
タイプのトランザクションを置いていいかを示すための
信号を、CLIENT_OPライン40上の各クライアント・モジュ
ールに送る。
で、メイン・メモリ(図示せず)から情報を読み取り、メ
イン・メモリに情報を記憶する責任がある。メイン・メモ
リ制御装置14は直接、又は従来型のバスを介してメモリ
とのインタフェイスを行う。上述のように、メイン・メ
モリ制御装置14は、バス制御のためにホスト・モジュー
ルとしても働くことが好ましい。メイン・メモリ制御装
置14は、各クライアント・モジュールに直接接続されたC
LIENT_OPライン40を制御する。メイン・メモリ制御装置1
4は、次の有効なバス・サイクルの間にバス12上にどんな
タイプのトランザクションを置いていいかを示すための
信号を、CLIENT_OPライン40上の各クライアント・モジュ
ールに送る。
【0036】バス12は高性能のプロセッサ-メモリ入出
力相互接続バスである。バス12は、分割トランザクショ
ン・バスである。例えば、バス12上で読み取りトランザ
クションが発行された後、その読み取りトランザクショ
ンを発行したモジュールがバスを放棄して、他のモジュ
ールが他のトランザクションのためにバスを使用できる
ようにする。要求されたデータが使用可能である場合、
その読み取りトランザクションに関する応答モジュール
はバスの調停を行い、次にデータを送る。書き込みトラ
ンザクションは分割されておらず、従って、このマスタ
はアドレス・サイクルの直後に書き込みデータを送る。
力相互接続バスである。バス12は、分割トランザクショ
ン・バスである。例えば、バス12上で読み取りトランザ
クションが発行された後、その読み取りトランザクショ
ンを発行したモジュールがバスを放棄して、他のモジュ
ールが他のトランザクションのためにバスを使用できる
ようにする。要求されたデータが使用可能である場合、
その読み取りトランザクションに関する応答モジュール
はバスの調停を行い、次にデータを送る。書き込みトラ
ンザクションは分割されておらず、従って、このマスタ
はアドレス・サイクルの直後に書き込みデータを送る。
【0037】バス12は、主にデータ転送に関係する、AD
DR_DATAバス、MASTER_IDバス、及びTRANS_IDバスの少な
くとも3つのバスを含むことが好ましい。バス12は又、
バス12の制御の調停に関係するLONG_TRANSバスも含む。
DR_DATAバス、MASTER_IDバス、及びTRANS_IDバスの少な
くとも3つのバスを含むことが好ましい。バス12は又、
バス12の制御の調停に関係するLONG_TRANSバスも含む。
【0038】ADDR_DATAバスはアドレス情報、及びデー
タを送るために使用される。ADDR_DATAバスがアドレス
関連情報を運ぶサイクルを、アドレス・サイクルと呼
び、ADDR_DATAバスがデータを運ぶサイクルをデータ・サ
イクルと呼ぶ。例えば、書き込みトランザクションは一
般に、1回、又は複数回のデータ・サイクルの直前に単
一アドレス・サイクルを有している。バスの所有者は、
データを書き込みたいアドレスを示す書き込みトランザ
クションを開始して、以降のサイクルの間にデータを送
る。読み取りトランザクションは一般に、読み取るため
にシークされるアドレスを示すために、バスの所有者に
よって使用される単一アドレス・サイクルを有してい
る。このアドレス・サイクルの少し後に、要求に応答す
るモジュールによって要求モジュールにデータが送られ
る1回、又は複数回のデータ・サイクルが続く。アドレ
ス関連情報やデータが送られないアイドル・サイクルも
発生する。
タを送るために使用される。ADDR_DATAバスがアドレス
関連情報を運ぶサイクルを、アドレス・サイクルと呼
び、ADDR_DATAバスがデータを運ぶサイクルをデータ・サ
イクルと呼ぶ。例えば、書き込みトランザクションは一
般に、1回、又は複数回のデータ・サイクルの直前に単
一アドレス・サイクルを有している。バスの所有者は、
データを書き込みたいアドレスを示す書き込みトランザ
クションを開始して、以降のサイクルの間にデータを送
る。読み取りトランザクションは一般に、読み取るため
にシークされるアドレスを示すために、バスの所有者に
よって使用される単一アドレス・サイクルを有してい
る。このアドレス・サイクルの少し後に、要求に応答す
るモジュールによって要求モジュールにデータが送られ
る1回、又は複数回のデータ・サイクルが続く。アドレ
ス関連情報やデータが送られないアイドル・サイクルも
発生する。
【0039】MASTER_IDバス、及びTRANS_IDバスは、分
割トランザクションに関して、リターンされたデータが
元のトランザクションに固有に関連付けられるように一
緒に使用される。各分割トランザクションは、トランザ
クションを発行しているモジュールを識別するMASTER_I
Dバス上のMASTER_ID信号、及びそのモジュールによって
送られた他のトランザクションと前記トランザクション
を区別するTRANS_IDバス上のTRANS_ID信号によって識別
される。例えば、分割トランザクション「読み取り」は、
MASTER_ID信号とTRANS_ID信号の固有の組合せと共に送
られる。MASTER_IDとTRANS_IDは次に、要求されたデー
タのリターン時に一緒に送られ、その結果、リターンさ
れたデータが要求モジュールによって受け取られ、適当
なトランザクションと関連付けされる。この機構によっ
て、トランザクションの順序がトランザクションの識別
にとって重要なものでなくなったため、トランザクショ
ンのリターンは、トランザクションが発行された順序以
外の順序で戻ってくることができる。固有の識別を可能
にするには、所与のトランザクションIDを有するトラン
ザクション1つだけが、所与の時点においてモジュール
の中で識別可能となることである。しかし、トランザク
ションはMASTER_IDによって区別できるので、同じトラ
ンザクションIDを2つ以上の別々のモジュールで同時に
使用することができる。
割トランザクションに関して、リターンされたデータが
元のトランザクションに固有に関連付けられるように一
緒に使用される。各分割トランザクションは、トランザ
クションを発行しているモジュールを識別するMASTER_I
Dバス上のMASTER_ID信号、及びそのモジュールによって
送られた他のトランザクションと前記トランザクション
を区別するTRANS_IDバス上のTRANS_ID信号によって識別
される。例えば、分割トランザクション「読み取り」は、
MASTER_ID信号とTRANS_ID信号の固有の組合せと共に送
られる。MASTER_IDとTRANS_IDは次に、要求されたデー
タのリターン時に一緒に送られ、その結果、リターンさ
れたデータが要求モジュールによって受け取られ、適当
なトランザクションと関連付けされる。この機構によっ
て、トランザクションの順序がトランザクションの識別
にとって重要なものでなくなったため、トランザクショ
ンのリターンは、トランザクションが発行された順序以
外の順序で戻ってくることができる。固有の識別を可能
にするには、所与のトランザクションIDを有するトラン
ザクション1つだけが、所与の時点においてモジュール
の中で識別可能となることである。しかし、トランザク
ションはMASTER_IDによって区別できるので、同じトラ
ンザクションIDを2つ以上の別々のモジュールで同時に
使用することができる。
【0040】LONG_TRANSは、長いトランザクションが完
了するまで、バス12の制御を保持するために現在のバス
の所有者によって使用される。例えば、モジュールが一
連のサイクルの間に多量のデータを書き込む必要が生じ
ることがある。LONG_TRANSが示されると、以下でより詳
細に説明するように、より高い優先順位のクライアン
ト、又はホストによって、他のトランザクションをその
データの中に挿入させることができなくなる。
了するまで、バス12の制御を保持するために現在のバス
の所有者によって使用される。例えば、モジュールが一
連のサイクルの間に多量のデータを書き込む必要が生じ
ることがある。LONG_TRANSが示されると、以下でより詳
細に説明するように、より高い優先順位のクライアン
ト、又はホストによって、他のトランザクションをその
データの中に挿入させることができなくなる。
【0041】好的実施例では、CLIENT_OPバスは表1に
示した信号をサポートする。
示した信号をサポートする。
【0042】
【表1】
【0043】ANY_TRANS、HOST_CONTROL、ONE_CYCLE、及
びNONE_ALLOWEDクライアント・オプション信号は比較的
簡単である。ANY_TRANSクライアント・オプション信号
は、関連するサイクルの間に全てのトランザクションが
許可されることを示す。HOST_CONTROLクライアント・オ
プション信号は、関連するサイクルの間にホストがバス
の制御をシークすることを示す。ONE_CYCLEクライアン
ト・オプション信号は、1サイクルのトランザクション
しか許可されないことを示す。NONE_ALLOWEDクライアン
ト・オプション信号は、トランザクションがいっさい許
可されないことを示すために使用される。
びNONE_ALLOWEDクライアント・オプション信号は比較的
簡単である。ANY_TRANSクライアント・オプション信号
は、関連するサイクルの間に全てのトランザクションが
許可されることを示す。HOST_CONTROLクライアント・オ
プション信号は、関連するサイクルの間にホストがバス
の制御をシークすることを示す。ONE_CYCLEクライアン
ト・オプション信号は、1サイクルのトランザクション
しか許可されないことを示す。NONE_ALLOWEDクライアン
ト・オプション信号は、トランザクションがいっさい許
可されないことを示すために使用される。
【0044】RET_ONLYクライアント・オプション信号
は、以前に保持されていた専用ダーティ・キャッシュ・ラ
インのリターン(ライト・バック)、又は以前のトランザ
クションに対する応答のみが許可されていることを示
す。例えば、プロセッサ24がプロセッサ20のキャッシュ
で専用ダーティであるキャッシュ・ラインのコヒーレン
ト読み取りを発行した場合、プロセッサ20はキャッシュ
間コピーでそのキャッシュ・ラインを供給することがで
きる。そのキャッシュ間コピーのトランザクションは、
キャッシュ間コピーがコヒーレント読み取りに対する応
答であるため、RET_ONLYクライアント・オプション信号
の影響下で開始されうる。同様に、入出力モジュール16
は、そのリターンされるデータが入出力読み取りトラン
ザクションに対する応答なので、RET_ONLYクライアント
・オプション信号の影響下で以前の入出力読み取りトラ
ンザクションからデータをリターンすることができる。
は、以前に保持されていた専用ダーティ・キャッシュ・ラ
インのリターン(ライト・バック)、又は以前のトランザ
クションに対する応答のみが許可されていることを示
す。例えば、プロセッサ24がプロセッサ20のキャッシュ
で専用ダーティであるキャッシュ・ラインのコヒーレン
ト読み取りを発行した場合、プロセッサ20はキャッシュ
間コピーでそのキャッシュ・ラインを供給することがで
きる。そのキャッシュ間コピーのトランザクションは、
キャッシュ間コピーがコヒーレント読み取りに対する応
答であるため、RET_ONLYクライアント・オプション信号
の影響下で開始されうる。同様に、入出力モジュール16
は、そのリターンされるデータが入出力読み取りトラン
ザクションに対する応答なので、RET_ONLYクライアント
・オプション信号の影響下で以前の入出力読み取りトラ
ンザクションからデータをリターンすることができる。
【0045】NO_IOクライアント・オプション信号、及び
ATOMICクライアント・オプション信号は入出力モジュー
ル16、及び18に関連している。図1に示すように、入出
力モジュール16、及び18は、モジュールがもはや入出力
トランザクションを受け入れられないことを示す信号を
メモリ制御装置14に送るために、それぞれSTOP_IOライ
ン58、及び60を制御することが好ましい。入出力モジュ
ール16、及び18は、メモリ・システムを効果的に制御す
るための信号をメモリ制御装置14に対して、かつ相互に
送るために、それぞれSTOP_MOSTライン62、及び64も制
御することが好ましい。
ATOMICクライアント・オプション信号は入出力モジュー
ル16、及び18に関連している。図1に示すように、入出
力モジュール16、及び18は、モジュールがもはや入出力
トランザクションを受け入れられないことを示す信号を
メモリ制御装置14に送るために、それぞれSTOP_IOライ
ン58、及び60を制御することが好ましい。入出力モジュ
ール16、及び18は、メモリ・システムを効果的に制御す
るための信号をメモリ制御装置14に対して、かつ相互に
送るために、それぞれSTOP_MOSTライン62、及び64も制
御することが好ましい。
【0046】以下でより詳細に説明するように、ホスト
がSTOP_IO信号を受け取ると、ホストはNO_IOクライアン
ト・オプション信号を示す。クライアント・オプション信
号がNO_IOである場合、入出力トランザクションを除く
全てのトランザクションが許可される。フロー制御では
通常、ANY_TRANSが許可されていると仮定すると、ATOMI
Cクライアント・オプション信号は、STOP_MOSTを示すク
ライアントに直接応答して生成される。ATOMICクライア
ント・オプション信号によって、STOP_MOSTを示している
クライアントが、いくつかの連続トランザクションをバ
ス12上で実行できる。他の全てのクライアントは、ATOM
ICが示された任意のサイクルの間にバスを獲得した場
合、以前に送られたトランザクションに応答し、又は以
前に保持された専用ダーティ・キャッシュ・ラインをライ
ト・バックすることしかできない。ホストは通常、RET_O
NLYクライアント・オプション信号を使用して全てのクラ
イアントを応答タイプのトランザクションに制限するこ
ともできる。従って、不可分所有者がある時、その不可
分所有者に関する有効なクライアント・オプション信号
はANY_TRANSであり、他の全てのクライアントのに関す
る有効なクライアント・オプション信号はRET_ONLYであ
る。ATOMICクライアント・オプション信号が、必ずしも
本発明に必要なものではないことが理解されよう。
がSTOP_IO信号を受け取ると、ホストはNO_IOクライアン
ト・オプション信号を示す。クライアント・オプション信
号がNO_IOである場合、入出力トランザクションを除く
全てのトランザクションが許可される。フロー制御では
通常、ANY_TRANSが許可されていると仮定すると、ATOMI
Cクライアント・オプション信号は、STOP_MOSTを示すク
ライアントに直接応答して生成される。ATOMICクライア
ント・オプション信号によって、STOP_MOSTを示している
クライアントが、いくつかの連続トランザクションをバ
ス12上で実行できる。他の全てのクライアントは、ATOM
ICが示された任意のサイクルの間にバスを獲得した場
合、以前に送られたトランザクションに応答し、又は以
前に保持された専用ダーティ・キャッシュ・ラインをライ
ト・バックすることしかできない。ホストは通常、RET_O
NLYクライアント・オプション信号を使用して全てのクラ
イアントを応答タイプのトランザクションに制限するこ
ともできる。従って、不可分所有者がある時、その不可
分所有者に関する有効なクライアント・オプション信号
はANY_TRANSであり、他の全てのクライアントのに関す
る有効なクライアント・オプション信号はRET_ONLYであ
る。ATOMICクライアント・オプション信号が、必ずしも
本発明に必要なものではないことが理解されよう。
【0047】SHAR_RTNクライアント・オプション信号
は、各モジュールがキャッシュ・メモリを有するシステ
ムのコヒーレンシ技法に関連するある種の実施態様で使
用される。各クライアント・モジュール(プロセッサ・モ
ジュールと入出力モジュールの両方)がキャッシュ・メモ
リを有し、メモリ制御装置14が、1つ、又は複数のキャ
ッシュ・メモリに記憶される可能性のあるデータの読み
取り、又は書き込みを含むコヒーレント・トランザクシ
ョンを統合することができ、それにより、プロセッサに
よって最も新しいデータが使用されるようにする信号を
直接、メモリ制御装置14に送るための少なくとも1つの
コヒーレント・トランザクション信号の送信ライン(即
ち、COHライン)を制御する。プロセッサ・モジュール20、
22、24、及び26はそれぞれ、COHライン42、44、46、及び48を
制御する。入出力モジュール16はCOHライン50及び52を
制御する。入出力モジュール18はCOHライン54及び56を
制御する。SHAR_RTN信号は、メイン・メモリ制御装置に
共用状況を有するデータがリターンされることを示す。
は、各モジュールがキャッシュ・メモリを有するシステ
ムのコヒーレンシ技法に関連するある種の実施態様で使
用される。各クライアント・モジュール(プロセッサ・モ
ジュールと入出力モジュールの両方)がキャッシュ・メモ
リを有し、メモリ制御装置14が、1つ、又は複数のキャ
ッシュ・メモリに記憶される可能性のあるデータの読み
取り、又は書き込みを含むコヒーレント・トランザクシ
ョンを統合することができ、それにより、プロセッサに
よって最も新しいデータが使用されるようにする信号を
直接、メモリ制御装置14に送るための少なくとも1つの
コヒーレント・トランザクション信号の送信ライン(即
ち、COHライン)を制御する。プロセッサ・モジュール20、
22、24、及び26はそれぞれ、COHライン42、44、46、及び48を
制御する。入出力モジュール16はCOHライン50及び52を
制御する。入出力モジュール18はCOHライン54及び56を
制御する。SHAR_RTN信号は、メイン・メモリ制御装置に
共用状況を有するデータがリターンされることを示す。
【0048】次に、上述の予測型フロー制御機構の説明
に移ると、主要な3組のトランザクション待ち行列が、
典型的なトランザクション速度を扱うために使用され
る。メイン・メモリ制御装置14は、各待ち行列の満杯/空
き状況を監視し、待ち行列がオーバフローするのを防ぐ
クライアント・オプション信号を発行する。コンピュー
タ・システム10で使用されるこの3つのタイプの待ち行
列を以下で説明し、次に、メイン・メモリ制御装置14が
これらの待ち行列の満杯/空き状況の記録を保持するた
めの手段を説明する。最後に、適当なクライアント・オ
プション信号を生成するためのこの情報の使用方法を説
明する。
に移ると、主要な3組のトランザクション待ち行列が、
典型的なトランザクション速度を扱うために使用され
る。メイン・メモリ制御装置14は、各待ち行列の満杯/空
き状況を監視し、待ち行列がオーバフローするのを防ぐ
クライアント・オプション信号を発行する。コンピュー
タ・システム10で使用されるこの3つのタイプの待ち行
列を以下で説明し、次に、メイン・メモリ制御装置14が
これらの待ち行列の満杯/空き状況の記録を保持するた
めの手段を説明する。最後に、適当なクライアント・オ
プション信号を生成するためのこの情報の使用方法を説
明する。
【0049】ここでは、3つのタイプの待ち行列を説明
する。第1に、各入出力(I/O)モジュールは入出力待ち
行列を有し、これはバス12から入出力モジュールに向け
られたトランザクションを入出力装置、又は入出力バス
に送るために保持する。入出力装置に向けられたプロセ
ッサの読み取り、及び書き込みは、入出力バス、及び/
又は入出力装置上でトランザクションが処理されるま
で、入出力待ち行列内で待機する。このような待ち行列
は一般に、トランザクションがバス12上で送られる速度
で扱う必要がある。通常、バス12は60-120MHzの周波数
を有し、入出力バスは20MHzより低い周波数を有する。
従って、トランザクションは、それらが入出力バス、又
は入出力装置によって処理されるよりずっと速い速度で
入出力モジュールに送ることができる。
する。第1に、各入出力(I/O)モジュールは入出力待ち
行列を有し、これはバス12から入出力モジュールに向け
られたトランザクションを入出力装置、又は入出力バス
に送るために保持する。入出力装置に向けられたプロセ
ッサの読み取り、及び書き込みは、入出力バス、及び/
又は入出力装置上でトランザクションが処理されるま
で、入出力待ち行列内で待機する。このような待ち行列
は一般に、トランザクションがバス12上で送られる速度
で扱う必要がある。通常、バス12は60-120MHzの周波数
を有し、入出力バスは20MHzより低い周波数を有する。
従って、トランザクションは、それらが入出力バス、又
は入出力装置によって処理されるよりずっと速い速度で
入出力モジュールに送ることができる。
【0050】第2に、メイン・メモリ制御装置14は、メ
イン・メモリ読み取り、及びメイン・メモリ書き込みトラ
ンザクションを保持するための1つ又は複数のメモリ待
ち行列を有する。このようなメモリ関連トランザクショ
ンは、読み取り、又は書き込みがメモリ内で実行される
までメモリ待ち行列内に記憶される。読み取りと書き込
みに別々の待ち行列を使用することが好ましい。コヒー
レンシ検査が完了するまでコヒーレント読み取り、又は
コヒーレント書き込みは実行できない。
イン・メモリ読み取り、及びメイン・メモリ書き込みトラ
ンザクションを保持するための1つ又は複数のメモリ待
ち行列を有する。このようなメモリ関連トランザクショ
ンは、読み取り、又は書き込みがメモリ内で実行される
までメモリ待ち行列内に記憶される。読み取りと書き込
みに別々の待ち行列を使用することが好ましい。コヒー
レンシ検査が完了するまでコヒーレント読み取り、又は
コヒーレント書き込みは実行できない。
【0051】最後に、プロセッサ・モジュールと入出力
モジュールの両方を含む、キャッシュ・メモリを有する
各モジュールは、コヒーレント・トランザクションを先
入れ先出し(FIFO)順で記憶するためのキャッシュ・コヒ
ーレンシ待ち行列を有する。コヒーレント・トランザク
ションは、要求されたデータが他のキャッシュにあるか
どうかを調べ、又はキャッシュが最新のものかどうかを
検証するために、他のキャッシュを検査することが必要
になる全てのトランザクション(読み取り等)である。そ
のようなトランザクションは、バス12上で開始されたト
ランザクションのアドレス・サイクルの間に送られる信
号によって示される。キャッシュ・メモリを有する各モ
ジュールは、バスを監視し、本明細書ではCCC待ち行列
と呼ぶ、各モジュールのキャッシュ・コヒーレンシ待ち
行列にコヒーレント・トランザクションをロードする。
コヒーレント・トランザクションは、特定のモジュール
がそのキャッシュを検査し、そのコヒーレンシ検査の結
果をメイン・メモリ制御装置14に報告するまで、前記モ
ジュールのCCC待ち行列内で待機する。好的実施態様で
は、メイン・メモリ制御装置14は、読み取りトランザク
ションが発行された直後にメイン・メモリの読み取りを
開始する。メイン・メモリ制御装置14は、全てのモジュ
ールによってコヒーレンシ検査の結果が報告されるまで
待機し、次に、コヒーレント・トランザクションに応答
する。そのデータの専用ダーティ・コピーを有するクラ
イアント・モジュールがない場合、メイン・メモリ制御装
置14はメイン・メモリからデータを供給する。前記クラ
イアント・モジュールがある場合、専用ダーティ・コピー
を有するクライアント・モジュールがデータを供給し、
メイン・メモリ制御装置14がその新しいデータ値でメイ
ン・メモリを更新する。好的実施態様では、コヒーレン
シ応答は、トランザクションに対する応答に、明らかな
遅延がないほど迅速にメイン・メモリ制御装置14によっ
て受け取られる。
モジュールの両方を含む、キャッシュ・メモリを有する
各モジュールは、コヒーレント・トランザクションを先
入れ先出し(FIFO)順で記憶するためのキャッシュ・コヒ
ーレンシ待ち行列を有する。コヒーレント・トランザク
ションは、要求されたデータが他のキャッシュにあるか
どうかを調べ、又はキャッシュが最新のものかどうかを
検証するために、他のキャッシュを検査することが必要
になる全てのトランザクション(読み取り等)である。そ
のようなトランザクションは、バス12上で開始されたト
ランザクションのアドレス・サイクルの間に送られる信
号によって示される。キャッシュ・メモリを有する各モ
ジュールは、バスを監視し、本明細書ではCCC待ち行列
と呼ぶ、各モジュールのキャッシュ・コヒーレンシ待ち
行列にコヒーレント・トランザクションをロードする。
コヒーレント・トランザクションは、特定のモジュール
がそのキャッシュを検査し、そのコヒーレンシ検査の結
果をメイン・メモリ制御装置14に報告するまで、前記モ
ジュールのCCC待ち行列内で待機する。好的実施態様で
は、メイン・メモリ制御装置14は、読み取りトランザク
ションが発行された直後にメイン・メモリの読み取りを
開始する。メイン・メモリ制御装置14は、全てのモジュ
ールによってコヒーレンシ検査の結果が報告されるまで
待機し、次に、コヒーレント・トランザクションに応答
する。そのデータの専用ダーティ・コピーを有するクラ
イアント・モジュールがない場合、メイン・メモリ制御装
置14はメイン・メモリからデータを供給する。前記クラ
イアント・モジュールがある場合、専用ダーティ・コピー
を有するクライアント・モジュールがデータを供給し、
メイン・メモリ制御装置14がその新しいデータ値でメイ
ン・メモリを更新する。好的実施態様では、コヒーレン
シ応答は、トランザクションに対する応答に、明らかな
遅延がないほど迅速にメイン・メモリ制御装置14によっ
て受け取られる。
【0052】メイン・メモリ制御装置14は、メモリ待ち
行列、CCC待ち行列、及び入出力待ち行列の全ての待ち
行列の現在の満杯/空き状況に関する情報を受け取り、
処理するための中央位置として働く。以下でより詳細に
説明するように、各待ち行列のタイプを記録するために
異なる手順が使用される。
行列、CCC待ち行列、及び入出力待ち行列の全ての待ち
行列の現在の満杯/空き状況に関する情報を受け取り、
処理するための中央位置として働く。以下でより詳細に
説明するように、各待ち行列のタイプを記録するために
異なる手順が使用される。
【0053】内部メイン・メモリ待ち行列に関しては、
メイン・メモリ制御装置14は、そのメモリ待ち行列がど
れだけ満たされているかの記録を内部に保持する。これ
は、任意の従来の方法で行うことができる。
メイン・メモリ制御装置14は、そのメモリ待ち行列がど
れだけ満たされているかの記録を内部に保持する。これ
は、任意の従来の方法で行うことができる。
【0054】入出力待ち行列に関しては、各入出力モジ
ュールがその入出力待ち行列の状況をメイン・メモリ制
御装置14に報告する。入出力モジュールは、それ自体の
入出力待ち行列を監視し、前記入出力待ち行列が満杯に
近づくと、このために用意されたSTOP_IO信号をメイン・
メモリ制御装置14に対して示す。待ち行列内の残りの項
目が全て新しいトランザクションで満たされる可能性が
あり、ほぼ、該当するトランザクションのタイプの発行
停止を全てのモジュールに通知するのに必要な時間内
に、その待ち行列をターゲットとして最大許容発行速度
でそのトランザクションが発行された場合、待ち行列は
満杯に近づく。
ュールがその入出力待ち行列の状況をメイン・メモリ制
御装置14に報告する。入出力モジュールは、それ自体の
入出力待ち行列を監視し、前記入出力待ち行列が満杯に
近づくと、このために用意されたSTOP_IO信号をメイン・
メモリ制御装置14に対して示す。待ち行列内の残りの項
目が全て新しいトランザクションで満たされる可能性が
あり、ほぼ、該当するトランザクションのタイプの発行
停止を全てのモジュールに通知するのに必要な時間内
に、その待ち行列をターゲットとして最大許容発行速度
でそのトランザクションが発行された場合、待ち行列は
満杯に近づく。
【0055】CCC待ち行列に関しては、メイン・メモリ制
御装置14は、バス上で発行されたコヒーレント・トラン
ザクションの数を検出し、各モジュールがいくつのコヒ
ーレント・トランザクションに応答したかという記録を
保持し、それによって各モジュールのCCC待ち行列の満
杯の状況を間接的に監視する。より具体的には、メイン
・メモリ制御装置14は、全てのコヒーレント・トランザク
ションを、それが発行された時に受け取る。又、上述の
ように、キャッシュを有する各モジュールは、各コヒー
レント・トランザクションを受け取り、受け取ったコヒ
ーレント・トランザクションに関するモジュールのキャ
ッシュ・コヒーレンシ検査の結果をメイン・メモリ制御装
置14に送る。この応答は、各モジュールからメイン・メ
モリ制御装置14に用意されたバスであるCOHライン42な
いし56上でメイン・メモリ制御装置14に送られる。従っ
て、メイン・メモリ制御装置14は、モジュールから受け
取ったキャッシュ・コヒーレンシ応答を、発行されたコ
ヒーレント・トランザクションの数と比較することによ
って、モジュールのCCC待ち行列に残っているコヒーレ
ント・トランザクションの数を判定することができる。
御装置14は、バス上で発行されたコヒーレント・トラン
ザクションの数を検出し、各モジュールがいくつのコヒ
ーレント・トランザクションに応答したかという記録を
保持し、それによって各モジュールのCCC待ち行列の満
杯の状況を間接的に監視する。より具体的には、メイン
・メモリ制御装置14は、全てのコヒーレント・トランザク
ションを、それが発行された時に受け取る。又、上述の
ように、キャッシュを有する各モジュールは、各コヒー
レント・トランザクションを受け取り、受け取ったコヒ
ーレント・トランザクションに関するモジュールのキャ
ッシュ・コヒーレンシ検査の結果をメイン・メモリ制御装
置14に送る。この応答は、各モジュールからメイン・メ
モリ制御装置14に用意されたバスであるCOHライン42な
いし56上でメイン・メモリ制御装置14に送られる。従っ
て、メイン・メモリ制御装置14は、モジュールから受け
取ったキャッシュ・コヒーレンシ応答を、発行されたコ
ヒーレント・トランザクションの数と比較することによ
って、モジュールのCCC待ち行列に残っているコヒーレ
ント・トランザクションの数を判定することができる。
【0056】このプロセスは、「スコアボード」上で行わ
れるものとみなすことができる。コヒーレント・トラン
ザクションは、発行されると、このボード上に置かれ、
そのトランザクションが各モジュールのCCC待ち行列に
あることを示す。メイン・メモリ制御装置は、そのよう
なトランザクションがあるかどうかに関してバスを監視
する。メイン・メモリ制御装置14は、COHライン上の各モ
ジュールからコヒーレンシ応答を受け取ると、モジュー
ルの応答を記録し、そのモジュールによって処理される
べき次のCCC要求にポインタを移動し、そのモジュール
のCCC待ち行列にあるものとしてリストされているトラ
ンザクションの数を1だけ減ずる。メイン・メモリ制御
装置14は又、所与のコヒーレント・トランザクションに
関する全てのコヒーレンシ応答を受け取った時間も知っ
ているので、そのコヒーレント・トランザクションに応
答する時間、及び方法を知っている。
れるものとみなすことができる。コヒーレント・トラン
ザクションは、発行されると、このボード上に置かれ、
そのトランザクションが各モジュールのCCC待ち行列に
あることを示す。メイン・メモリ制御装置は、そのよう
なトランザクションがあるかどうかに関してバスを監視
する。メイン・メモリ制御装置14は、COHライン上の各モ
ジュールからコヒーレンシ応答を受け取ると、モジュー
ルの応答を記録し、そのモジュールによって処理される
べき次のCCC要求にポインタを移動し、そのモジュール
のCCC待ち行列にあるものとしてリストされているトラ
ンザクションの数を1だけ減ずる。メイン・メモリ制御
装置14は又、所与のコヒーレント・トランザクションに
関する全てのコヒーレンシ応答を受け取った時間も知っ
ているので、そのコヒーレント・トランザクションに応
答する時間、及び方法を知っている。
【0057】本明細書の開示に基づいて、スコアボード
の代わりに、各モジュールが、STOP_IOに類似している
が、CCC待ち行列が満杯に近づいていることを示す、用
意された信号をメイン・メモリ制御装置14に対して示せ
ることが当業者によって認識されよう。しかし、このス
コアボードのアプローチは、コヒーレンシ技法のために
既に送られているコヒーレンシ応答を使用するので、ハ
ードウェアの面からより効率的である。
の代わりに、各モジュールが、STOP_IOに類似している
が、CCC待ち行列が満杯に近づいていることを示す、用
意された信号をメイン・メモリ制御装置14に対して示せ
ることが当業者によって認識されよう。しかし、このス
コアボードのアプローチは、コヒーレンシ技法のために
既に送られているコヒーレンシ応答を使用するので、ハ
ードウェアの面からより効率的である。
【0058】メイン・メモリ制御装置14は、様々な待ち
行列の状態に基づいて、CLIENT_OPバスを使用し、待ち
行列の過負荷となる全てのトランザクションの発行を防
ぐ。バス12の調停に関して上述したように、メイン・メ
モリ制御装置14は、ホスト・モジュールとして働き、ど
んなタイプのトランザクションが安全に開始できるのか
を示す信号をCLIENT_OPバス上の他の全てのモジュール
に送る。モジュールがバスの調停に勝利すると、調停状
態の間にCLIENT_OPバス上でどんな符号が駆動されたか
を検査し、調停の勝利者がどんなトランザクション(又
はリターン)を開始できるかを調べる。使用可能なCLIEN
T_OP信号は上記の表1に要約してある。
行列の状態に基づいて、CLIENT_OPバスを使用し、待ち
行列の過負荷となる全てのトランザクションの発行を防
ぐ。バス12の調停に関して上述したように、メイン・メ
モリ制御装置14は、ホスト・モジュールとして働き、ど
んなタイプのトランザクションが安全に開始できるのか
を示す信号をCLIENT_OPバス上の他の全てのモジュール
に送る。モジュールがバスの調停に勝利すると、調停状
態の間にCLIENT_OPバス上でどんな符号が駆動されたか
を検査し、調停の勝利者がどんなトランザクション(又
はリターン)を開始できるかを調べる。使用可能なCLIEN
T_OP信号は上記の表1に要約してある。
【0059】フロー制御に直接関係するクライアント・
オプション信号は、ANY_TRANS、NO_IO、RET_ONLY、及びNON
E_ALLOWEDである。全ての待ち行列に十分な余裕があ
り、メイン・メモリ制御装置14がバス制御の獲得を試み
ていない場合、メイン・メモリ制御装置14は、全てのタ
イプのトランザクションが発行できることを示すANY_TR
ANSの符号を駆動する。入出力モジュールのどれかがそ
のSTOP_IO信号を示している場合、メイン・メモリ制御装
置14は、少なくとも1つの入出力待ち行列が満杯に近い
ことを知り、入出力トランザクションを除く全てのトラ
ンザクションが発行できることを示すNO_IOの符号を駆
動する。
オプション信号は、ANY_TRANS、NO_IO、RET_ONLY、及びNON
E_ALLOWEDである。全ての待ち行列に十分な余裕があ
り、メイン・メモリ制御装置14がバス制御の獲得を試み
ていない場合、メイン・メモリ制御装置14は、全てのタ
イプのトランザクションが発行できることを示すANY_TR
ANSの符号を駆動する。入出力モジュールのどれかがそ
のSTOP_IO信号を示している場合、メイン・メモリ制御装
置14は、少なくとも1つの入出力待ち行列が満杯に近い
ことを知り、入出力トランザクションを除く全てのトラ
ンザクションが発行できることを示すNO_IOの符号を駆
動する。
【0060】メイン・メモリ制御装置14が、1つ、又は
複数のCCC待ち行列が満杯に近い、又はそれ自体のメモ
リ待ち行列が、新しい読み取りトランザクションを扱う
ことができなくなったことを検出した場合、調停の勝利
者だけが、以前のトランザクションに対する応答を発行
するか、又は専用ダーティ・キャッシュ・ラインのライト
・バックのを実行が許可されることを示すRET_ONLYの符
号を駆動する。更に、新しい入出力トランザクションが
許可されない。
複数のCCC待ち行列が満杯に近い、又はそれ自体のメモ
リ待ち行列が、新しい読み取りトランザクションを扱う
ことができなくなったことを検出した場合、調停の勝利
者だけが、以前のトランザクションに対する応答を発行
するか、又は専用ダーティ・キャッシュ・ラインのライト
・バックのを実行が許可されることを示すRET_ONLYの符
号を駆動する。更に、新しい入出力トランザクションが
許可されない。
【0061】メイン・メモリ制御装置14が、それ自体の
メモリ待ち行列がどんな新しい書き込みトランザクショ
ンも扱うことができないことを検出した場合、NONE_ALL
OWEDを駆動して、新しいトランザクションの開始を禁止
する。新しいトランザクションが許可されないので、全
ての待ち行列はオーバフローを発生させることはない。
内部メモリ処理は最終的に、メモリ待ち行列を解放し、
キャッシュ・コヒーレンシ検査は最終的に、CCC待ち行列
を解放し、従ってより制限の少ないCLIENT_OPの符号が
発行されうる。
メモリ待ち行列がどんな新しい書き込みトランザクショ
ンも扱うことができないことを検出した場合、NONE_ALL
OWEDを駆動して、新しいトランザクションの開始を禁止
する。新しいトランザクションが許可されないので、全
ての待ち行列はオーバフローを発生させることはない。
内部メモリ処理は最終的に、メモリ待ち行列を解放し、
キャッシュ・コヒーレンシ検査は最終的に、CCC待ち行列
を解放し、従ってより制限の少ないCLIENT_OPの符号が
発行されうる。
【0062】次に、図2を参照して、本発明によるフロ
ー制御機構を有するコンピュータ・システムの動作を詳
細に説明する。図2は、コンピュータ・システム10、及
び図1に関して説明した要素に機能的に対応する、コン
ピュータ・システム100の主要な要素を示している。コン
ピュータ・システム100は、バス112、メイン・メモリ115
に接続されたメイン・メモリ制御装置114、入出力モジュ
ール116、プロセッサ・モジュール120、CLIENT_OPライン
140、コヒーレンシ「COH」ライン142、152、及びSTOP_IO
ライン158を備えている。これらの要素はそれぞれ、図
1に関して説明した、バス12、メイン・メモリ制御装置1
4、入出力モジュール16、プロセッサ・モジュール20、CL
IENT_OPライン40、COHライン42、52、及びSTOP_IOライ
ン58に対応している。図1に関して説明した、これらの
要素の態様、及びそれらの相互関係はここでは繰り返さ
ない。
ー制御機構を有するコンピュータ・システムの動作を詳
細に説明する。図2は、コンピュータ・システム10、及
び図1に関して説明した要素に機能的に対応する、コン
ピュータ・システム100の主要な要素を示している。コン
ピュータ・システム100は、バス112、メイン・メモリ115
に接続されたメイン・メモリ制御装置114、入出力モジュ
ール116、プロセッサ・モジュール120、CLIENT_OPライン
140、コヒーレンシ「COH」ライン142、152、及びSTOP_IO
ライン158を備えている。これらの要素はそれぞれ、図
1に関して説明した、バス12、メイン・メモリ制御装置1
4、入出力モジュール16、プロセッサ・モジュール20、CL
IENT_OPライン40、COHライン42、52、及びSTOP_IOライ
ン58に対応している。図1に関して説明した、これらの
要素の態様、及びそれらの相互関係はここでは繰り返さ
ない。
【0063】説明を明確にするために、図2には、1つ
のプロセッサ・モジュールと1つの入出力モジュールし
か示していない。好的実施態様では、モジュール120と
同じ追加プロセッサ・モジュール、及びモジュール116と
同じ追加入出力モジュールが、図1に示した方法でバス
112に接続されることが理解されよう。
のプロセッサ・モジュールと1つの入出力モジュールし
か示していない。好的実施態様では、モジュール120と
同じ追加プロセッサ・モジュール、及びモジュール116と
同じ追加入出力モジュールが、図1に示した方法でバス
112に接続されることが理解されよう。
【0064】コンピュータ・システム100は、図1に関し
て説明したこれらの要素の他に、入出力モジュール116
に従来の方法で接続された入出力バス160を含む。入出
力モジュール116は、入出力待ち行列162、CCC待ち行列1
64、及びメモリ・キャッシュ166も含む。加えてプロセッ
サ・モジュール120は、CCC待ち行列168とメモリ・キャッ
シュ170を含む。メイン・メモリ制御装置114は、調停プ
ロセッサ172、メモリ読み取り待ち行列174、メモリ書き
込み待ち行列176、及びスコアボード178を含む。図示し
ていないプロセッサ・モジュール、及び入出力モジュー
ルはそれぞれ、プロセッサ・モジュール120、及び入出力
モジュール116の要素と同じ要素を含むことが分かる。
て説明したこれらの要素の他に、入出力モジュール116
に従来の方法で接続された入出力バス160を含む。入出
力モジュール116は、入出力待ち行列162、CCC待ち行列1
64、及びメモリ・キャッシュ166も含む。加えてプロセッ
サ・モジュール120は、CCC待ち行列168とメモリ・キャッ
シュ170を含む。メイン・メモリ制御装置114は、調停プ
ロセッサ172、メモリ読み取り待ち行列174、メモリ書き
込み待ち行列176、及びスコアボード178を含む。図示し
ていないプロセッサ・モジュール、及び入出力モジュー
ルはそれぞれ、プロセッサ・モジュール120、及び入出力
モジュール116の要素と同じ要素を含むことが分かる。
【0065】動作時に、入出力モジュール、又はプロセ
ッサ・モジュールによって発行されたコヒーレント・トラ
ンザクションはバス112上に送られる。このコヒーレン
ト・トランザクションは、各モジュールによって検出さ
れ、各クライアント・モジュールのCCC待ち行列内とスコ
アボード178上に置かれる。CCC待ち行列164、及び168に
FIFO順で記憶されたコヒーレント・トランザクションは
それぞれ、メモリ・キャッシュ166、及び170と突き合わ
せて検査され、その結果がそれぞれライン152、及び142
でメイン・メモリ制御装置114に報告される。結果は、全
てのモジュールが当該のトランザクションに関して報告
するまでスコアボード上に記憶される。メイン・メモリ
制御装置114は、ライン152、及び142で応答されたコヒ
ーレント・トランザクションの数を、スコアボード178内
にリストされたコヒーレント・トランザクションの数と
比較して、CCC待ち行列164、及び168の満杯/空き状況を
判定する。
ッサ・モジュールによって発行されたコヒーレント・トラ
ンザクションはバス112上に送られる。このコヒーレン
ト・トランザクションは、各モジュールによって検出さ
れ、各クライアント・モジュールのCCC待ち行列内とスコ
アボード178上に置かれる。CCC待ち行列164、及び168に
FIFO順で記憶されたコヒーレント・トランザクションは
それぞれ、メモリ・キャッシュ166、及び170と突き合わ
せて検査され、その結果がそれぞれライン152、及び142
でメイン・メモリ制御装置114に報告される。結果は、全
てのモジュールが当該のトランザクションに関して報告
するまでスコアボード上に記憶される。メイン・メモリ
制御装置114は、ライン152、及び142で応答されたコヒ
ーレント・トランザクションの数を、スコアボード178内
にリストされたコヒーレント・トランザクションの数と
比較して、CCC待ち行列164、及び168の満杯/空き状況を
判定する。
【0066】例えば、バス112上で発行されたコヒーレ
ント・メモリ読み取りは、モジュール116、及び120によ
って検出され、コヒーレンシ検査のために前記モジュー
ルのCCC待ち行列内に置かれる。どのモジュールにもデ
ータの専用ダーティ・コピーがないことを示すコヒーレ
ンシ検査の結果が、メイン・メモリ制御装置114に報告さ
れる。全てのモジュールが報告し終わると、メイン・メ
モリ制御装置114は、要求モジュールにデータを提供
し、各モジュールがそのコヒーレント・トランザクショ
ンに応答したことをスコアボード上に示し、スコアボー
ドのこのラインを着信トランザクションによって自由に
使用できるものとしてマークする。
ント・メモリ読み取りは、モジュール116、及び120によ
って検出され、コヒーレンシ検査のために前記モジュー
ルのCCC待ち行列内に置かれる。どのモジュールにもデ
ータの専用ダーティ・コピーがないことを示すコヒーレ
ンシ検査の結果が、メイン・メモリ制御装置114に報告さ
れる。全てのモジュールが報告し終わると、メイン・メ
モリ制御装置114は、要求モジュールにデータを提供
し、各モジュールがそのコヒーレント・トランザクショ
ンに応答したことをスコアボード上に示し、スコアボー
ドのこのラインを着信トランザクションによって自由に
使用できるものとしてマークする。
【0067】入出力装置への書き込みを行うような入出
力トランザクションは、入出力待ち行列162を介して入
出力バス160に送られる。入出力モジュール116は、入出
力待ち行列162の状況を監視し、入出力待ち行列162が満
杯に近づくと、この情報をライン158でメイン・メモリ制
御装置114に報告する。例えば、プロセッサ・モジュール
が入出力モジュール116にデータを書き込むことでビジ
ー状態である場合、待ち行列162がトランザクションで
満杯になり、STOP_IO信号が発行されることがある。メ
イン・メモリ制御装置114は、NO_IOクライアント・オプシ
ョン信号を発行する。
力トランザクションは、入出力待ち行列162を介して入
出力バス160に送られる。入出力モジュール116は、入出
力待ち行列162の状況を監視し、入出力待ち行列162が満
杯に近づくと、この情報をライン158でメイン・メモリ制
御装置114に報告する。例えば、プロセッサ・モジュール
が入出力モジュール116にデータを書き込むことでビジ
ー状態である場合、待ち行列162がトランザクションで
満杯になり、STOP_IO信号が発行されることがある。メ
イン・メモリ制御装置114は、NO_IOクライアント・オプシ
ョン信号を発行する。
【0068】メイン・メモリ制御装置114は、それ自体の
メモリ待ち行列、即ち待ち行列174、及び待ち行列176の
状況も監視する。待ち行列174、及び待ち行列176はメモ
リ読み取り待ち行列、及びメモリ書き込み待ち行列であ
ることが好ましい。従って、メイン・メモリ制御装置114
は、他の場合にはオーバフローする可能性があるコンピ
ュータ・システム100内の全ての待ち行列の満杯/空き状
況に関する情報を有している。メイン・メモリ制御装置
は、そのメモリ待ち行列が満杯に近づいていることを検
出した場合、NONE_ALLOWEDクライアント・オプション信
号を発行する。以前に発行されたメモリに対するトラン
ザクションが処理されるにつれて、メモリ待ち行列は空
になっていき、より制限のないクライアント・オプショ
ン信号を発行することができる。
メモリ待ち行列、即ち待ち行列174、及び待ち行列176の
状況も監視する。待ち行列174、及び待ち行列176はメモ
リ読み取り待ち行列、及びメモリ書き込み待ち行列であ
ることが好ましい。従って、メイン・メモリ制御装置114
は、他の場合にはオーバフローする可能性があるコンピ
ュータ・システム100内の全ての待ち行列の満杯/空き状
況に関する情報を有している。メイン・メモリ制御装置
は、そのメモリ待ち行列が満杯に近づいていることを検
出した場合、NONE_ALLOWEDクライアント・オプション信
号を発行する。以前に発行されたメモリに対するトラン
ザクションが処理されるにつれて、メモリ待ち行列は空
になっていき、より制限のないクライアント・オプショ
ン信号を発行することができる。
【0069】より一般的に言うと、メイン・メモリ制御
装置114内のプロセッサ172は、メイン・メモリ制御装置1
14が使用可能な、全ての待ち行列の満杯/空き状況に関
する情報に基づき、次の有効サイクル内で、どの待ち行
列もオーバフローさせずに、どんなタイプのトランザク
ションが発行されうるかを判定する。上述のように、プ
ロセッサ172は、次の有効なバス・サイクルの間に、どの
待ち行列もオーバフローさせないトランザクションのみ
が許可されるように、どのクライアント・オプション信
号が発行されるべきかを判定する。上述のように、調停
の勝利者は、クライアント・オプション信号によって許
可されたトランザクションのみを発行する。従って、ど
んなトランザクションも中断させる必要がなく、モジュ
ール間のハンドシェイクは必要とされない。
装置114内のプロセッサ172は、メイン・メモリ制御装置1
14が使用可能な、全ての待ち行列の満杯/空き状況に関
する情報に基づき、次の有効サイクル内で、どの待ち行
列もオーバフローさせずに、どんなタイプのトランザク
ションが発行されうるかを判定する。上述のように、プ
ロセッサ172は、次の有効なバス・サイクルの間に、どの
待ち行列もオーバフローさせないトランザクションのみ
が許可されるように、どのクライアント・オプション信
号が発行されるべきかを判定する。上述のように、調停
の勝利者は、クライアント・オプション信号によって許
可されたトランザクションのみを発行する。従って、ど
んなトランザクションも中断させる必要がなく、モジュ
ール間のハンドシェイクは必要とされない。
【0070】例えば、入出力待ち行列162が満杯に近づ
きつつあると仮定する。入出力モジュール116はデータ
を受け取るためにビジー状態である。入出力装置への他
の書き込みがバス112で入出力モジュール116に送られ、
入出力待ち行列162に置かれる。入出力モジュール116
は、待ち行列162が満杯に近づいたことを検出すると、
メイン・メモリ制御装置114にSTOP_IO信号を送る。入出
力待ち行列162は、メイン・メモリ制御装置114がSTOP_IO
信号に応答してNO_IOクライアント・オプション信号を駆
動するまで、数サイクルにわたってトランザクションを
受け取り続ける。次のバスの所有者は、NO_IOクライア
ント・オプション信号に基づいて、入出力装置に対して
どんなトランザクションも駆動しない。
きつつあると仮定する。入出力モジュール116はデータ
を受け取るためにビジー状態である。入出力装置への他
の書き込みがバス112で入出力モジュール116に送られ、
入出力待ち行列162に置かれる。入出力モジュール116
は、待ち行列162が満杯に近づいたことを検出すると、
メイン・メモリ制御装置114にSTOP_IO信号を送る。入出
力待ち行列162は、メイン・メモリ制御装置114がSTOP_IO
信号に応答してNO_IOクライアント・オプション信号を駆
動するまで、数サイクルにわたってトランザクションを
受け取り続ける。次のバスの所有者は、NO_IOクライア
ント・オプション信号に基づいて、入出力装置に対して
どんなトランザクションも駆動しない。
【0071】更に例を挙げると、メイン・メモリ制御装
置114は1つ、又は複数のコヒーレンシ待ち行列が満杯
に近づきつつあることを(メイン・メモリ制御装置自体の
スコアボードを使用して)検出することができる。メイ
ン・メモリ制御装置114は、RET_ONLYクライアント・オプ
ション信号を駆動する。バスの所有者は追加のコヒーレ
ント・トランザクションを駆動しない。しかし、データ
のリターン、及びコヒーレンシ検査の応答は許可され
る。従って、CCC待ち行列は最終的に空になっていき、
より制限のないクライアント・オプション信号が発行さ
れる。
置114は1つ、又は複数のコヒーレンシ待ち行列が満杯
に近づきつつあることを(メイン・メモリ制御装置自体の
スコアボードを使用して)検出することができる。メイ
ン・メモリ制御装置114は、RET_ONLYクライアント・オプ
ション信号を駆動する。バスの所有者は追加のコヒーレ
ント・トランザクションを駆動しない。しかし、データ
のリターン、及びコヒーレンシ検査の応答は許可され
る。従って、CCC待ち行列は最終的に空になっていき、
より制限のないクライアント・オプション信号が発行さ
れる。
【0072】「バス」及び「ライン」の語は共に、この詳細
な説明では、上記でより詳細に説明した様々な1つ、又
は複数の電気的経路の組を示すために使用してきた。当
業者には、「バス」及び「ライン」の語が相互に排他的なも
のでも、その他の点でそれら自体を制限するものでもな
いことが理解されよう。例えば、「LONG_TRANSバス」の語
を使用してきたが、LONG_TRANSバスが従来の共用ライ
ン、即ち、複数のモジュールによって信号を送ることの
できる単一の電気的経路から成ることは明らかである。
同様に、「CLIENT_OPバス」及び「CLIENT_OPライン」の語
は、上記でより詳細に説明したように、ホストだけによ
って駆動される1組のハードウェア・ラインを示すため
に交換可能に使用されてきた。
な説明では、上記でより詳細に説明した様々な1つ、又
は複数の電気的経路の組を示すために使用してきた。当
業者には、「バス」及び「ライン」の語が相互に排他的なも
のでも、その他の点でそれら自体を制限するものでもな
いことが理解されよう。例えば、「LONG_TRANSバス」の語
を使用してきたが、LONG_TRANSバスが従来の共用ライ
ン、即ち、複数のモジュールによって信号を送ることの
できる単一の電気的経路から成ることは明らかである。
同様に、「CLIENT_OPバス」及び「CLIENT_OPライン」の語
は、上記でより詳細に説明したように、ホストだけによ
って駆動される1組のハードウェア・ラインを示すため
に交換可能に使用されてきた。
【0073】当業者には、前記の説明、及び添付図面か
ら、本発明に対する様々な修正が可能なことが明らかに
なろう。従って、本発明は、特許請求の範囲によっての
み制限されるべきものである。
ら、本発明に対する様々な修正が可能なことが明らかに
なろう。従って、本発明は、特許請求の範囲によっての
み制限されるべきものである。
【0074】以下に本発明の実施態様を列挙する。
【0075】1. データ処理システムにおいて、物理
的に異なる位置の間で情報を送るための複数の信号導体
を有するバスと、前記バスに接続された複数のモジュー
ルであって、前記モジュールがそれぞれ他のモジュー
ル、又は前記モジュール自体によって実行されるべきト
ランザクションを指定する情報を送り、かつ受け取るた
めの手段を備え、更に前記モジュールによって受け取ら
れた前記トランザクションを指定する情報を、前記モジ
ュールによって処理できるように記憶するための待ち行
列を備える前記複数のモジュールと、前記バス上で送ら
れる前記トランザクションのタイプを制限するための手
段と、前記モジュールのうち1つの待ち行列が所定の容
量より小さい空き空間を有することを判定し、前記待ち
行列内の空間を必要とするトランザクションが発行され
るのを防ぐように前記バス上で送られるトランザクショ
ンをバス制御装置に制限させるための手段を含むバス制
御装置とを備えることを特徴とするデータ処理システ
ム。
的に異なる位置の間で情報を送るための複数の信号導体
を有するバスと、前記バスに接続された複数のモジュー
ルであって、前記モジュールがそれぞれ他のモジュー
ル、又は前記モジュール自体によって実行されるべきト
ランザクションを指定する情報を送り、かつ受け取るた
めの手段を備え、更に前記モジュールによって受け取ら
れた前記トランザクションを指定する情報を、前記モジ
ュールによって処理できるように記憶するための待ち行
列を備える前記複数のモジュールと、前記バス上で送ら
れる前記トランザクションのタイプを制限するための手
段と、前記モジュールのうち1つの待ち行列が所定の容
量より小さい空き空間を有することを判定し、前記待ち
行列内の空間を必要とするトランザクションが発行され
るのを防ぐように前記バス上で送られるトランザクショ
ンをバス制御装置に制限させるための手段を含むバス制
御装置とを備えることを特徴とするデータ処理システ
ム。
【0076】2. 前記モジュールの少なくとも1つが
更に、メモリと、前記メモリ内の指定されたワードの存
在と前記ワードの状況の検査を必要とするコヒーレント
・トランザクションを前記バス上で検出し、前記モジュ
ール内に含まれる前記待ち行列内に前記検査を指定する
情報を記憶させるための手段と、前記コヒーレント送信
において指定された前記データ・ワードの存在及び状況
に関して前記メモリを検査するための手段と、前記検査
手段によって最後に実行された前記検査の結果を示す信
号を送るための手段とを備え、前記判定手段が更に、前
記検査を実行する前記各モジュールから送られた前記信
号を受け取るための手段を備えることを特徴とする項番
1に記載のデータ処理システム。
更に、メモリと、前記メモリ内の指定されたワードの存
在と前記ワードの状況の検査を必要とするコヒーレント
・トランザクションを前記バス上で検出し、前記モジュ
ール内に含まれる前記待ち行列内に前記検査を指定する
情報を記憶させるための手段と、前記コヒーレント送信
において指定された前記データ・ワードの存在及び状況
に関して前記メモリを検査するための手段と、前記検査
手段によって最後に実行された前記検査の結果を示す信
号を送るための手段とを備え、前記判定手段が更に、前
記検査を実行する前記各モジュールから送られた前記信
号を受け取るための手段を備えることを特徴とする項番
1に記載のデータ処理システム。
【0077】3. 前記モジュールの少なくとも1つ
が、前記モジュール内の前記待ち行列内の空間の容量を
判定するための手段と、判定された前記の空間の容量が
所定の容量より小さいことを示す信号を生成し、前記バ
ス制御装置に送るための手段とを備えることを特徴とす
る項番1に記載のデータ処理システム。
が、前記モジュール内の前記待ち行列内の空間の容量を
判定するための手段と、判定された前記の空間の容量が
所定の容量より小さいことを示す信号を生成し、前記バ
ス制御装置に送るための手段とを備えることを特徴とす
る項番1に記載のデータ処理システム。
【0078】4. 更に、前記メイン・メモリによる応
答を必要とする命令を記憶するための待ち行列を含むメ
イン・メモリを備え、前記判定手段が更に、コヒーレン
ト・トランザクション情報を記憶する前記各待ち行列内
の各スロットごとに1つの位置を有するバッファを備え
ることを特徴とする項番1に記載のデータ処理システ
ム。
答を必要とする命令を記憶するための待ち行列を含むメ
イン・メモリを備え、前記判定手段が更に、コヒーレン
ト・トランザクション情報を記憶する前記各待ち行列内
の各スロットごとに1つの位置を有するバッファを備え
ることを特徴とする項番1に記載のデータ処理システ
ム。
【0079】
【発明の効果】本発明によって、不必要な遅延、不必要
な設計上の複雑さをシステムに課すことなく、即時に全
てを処理できない複数トランザクションを扱うコンピュ
ータ・システムのフロー制御機構、及びハンドシェイク
信号、又はビジー-中断信号を使用する必要のないコン
ピュータ・システムのためのフロー制御機構が提供され
る。
な設計上の複雑さをシステムに課すことなく、即時に全
てを処理できない複数トランザクションを扱うコンピュ
ータ・システムのフロー制御機構、及びハンドシェイク
信号、又はビジー-中断信号を使用する必要のないコン
ピュータ・システムのためのフロー制御機構が提供され
る。
【図1】本発明によるフロー制御機構と共に使用するた
めのコンピュータ・システムの一実施例を示すブロック
図である。
めのコンピュータ・システムの一実施例を示すブロック
図である。
【図2】本発明によるフロー制御機構と共に使用するた
めのコンピュータ・システム構成要素、及び待ち行列を
示すブロック図である。
めのコンピュータ・システム構成要素、及び待ち行列を
示すブロック図である。
100 コンピュータ・システム 112 バス 114 メイン・メモリ制御装置 115 メイン・メモリ 116 入出力モジュール 142、152 コヒーレンシ「COH」ライン 162 入出力待ち行列 164、168 CCC待ち行列 166 メモリ・キャッシュ 170 メモリ・キャッシュ 174 メモリ読み取り待ち行列 176 メモリ書き込み待ち行列 178 スコアボード
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ウイリアム・アール・ブライグ アメリカ合衆国カリフォルニア州95070サ ラトガ,ペレゴ・ウエイ・18630 (72)発明者 クレーグ・アール・フリンク アメリカ合衆国マサチューセッツ州01824 チェムスフォード,ムーア・ストリート・ 53 (72)発明者 トーマス・アール・ホッチキス アメリカ合衆国マサチューセッツ州01450 グロートン,タウンゼンド・ロード・907 (72)発明者 ロバート・ディー・オーディニール アメリカ合衆国カリフォルニア州95661ホ ーセヴィレ,タマラック・コート・1001 (72)発明者 ジェイムズ・ビー・ウイリアムズ アメリカ合衆国マサチューセッツ州01852 ローウエル,ホーリールード・アヴェニュ ー・74 (72)発明者 ジョン・エル・ウッド アメリカ合衆国ニューハンプシャー州 03867ロチェスター,フィールドストー ン・ヴィレッジ・84
Claims (1)
- 【請求項1】データ処理システムにおいて、 物理的に異なる位置の間で情報を送るための複数の信号
導体を有するバスと、 前記バスに接続された複数のモジュールであって、前記
モジュールがそれぞれ他のモジュール、又は前記モジュ
ール自体によって実行されるべきトランザクションを指
定する情報を送り、かつ受け取るための手段を備え、更
に前記モジュールによって受け取られた前記トランザク
ションを指定する情報を、前記モジュールによって処理
できるように記憶するための待ち行列を備える前記複数
のモジュールと、 前記バス上で送られる前記トランザクションのタイプを
制限するための手段と、前記モジュールのうち1つの待
ち行列が所定の容量より小さい空き空間を有することを
判定し、前記待ち行列内の空間を必要とするトランザク
ションが発行されるのを防ぐように前記バス上で送られ
るトランザクションをバス制御装置に制限させるための
手段を含むバス制御装置とを備えることを特徴とするデ
ータ処理システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201185 | 1988-06-02 | ||
| US08/201,185 US6182176B1 (en) | 1994-02-24 | 1994-02-24 | Queue-based predictive flow control mechanism |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH07306810A true JPH07306810A (ja) | 1995-11-21 |
Family
ID=22744823
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP7028066A Pending JPH07306810A (ja) | 1994-02-24 | 1995-02-16 | 待ち行列ベースの予測型フロー制御機構 |
Country Status (6)
| Country | Link |
|---|---|
| US (2) | US6182176B1 (ja) |
| EP (1) | EP0674272B1 (ja) |
| JP (1) | JPH07306810A (ja) |
| KR (1) | KR100371844B1 (ja) |
| DE (1) | DE69424272T2 (ja) |
| TW (1) | TW253947B (ja) |
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100596947B1 (ko) * | 1998-07-31 | 2006-07-07 | 프리스케일 세미컨덕터, 인크. | 데이터 처리 시스템의 트랜잭션 수행 방법 및 장치 |
| JPWO2004107180A1 (ja) * | 2003-05-30 | 2006-07-20 | 富士通株式会社 | マルチプロセッサシステム |
| JP2009064308A (ja) * | 2007-09-07 | 2009-03-26 | Fujitsu Ltd | キャッシュシステム |
| JP2016173798A (ja) * | 2015-03-18 | 2016-09-29 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| JP2023539955A (ja) * | 2020-08-28 | 2023-09-20 | ディープ ヴィジョン インコーポレイテッド | スケジューリングされた並列プロセスの実行中にデータ転送帯域幅を増加させるためのプロセッサシステムおよび方法 |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5528766A (en) * | 1994-03-24 | 1996-06-18 | Hewlett-Packard Company | Multiple arbitration scheme |
| US5761444A (en) * | 1995-09-05 | 1998-06-02 | Intel Corporation | Method and apparatus for dynamically deferring transactions |
| US6836829B2 (en) * | 1998-11-20 | 2004-12-28 | Via Technologies, Inc. | Peripheral device interface chip cache and data synchronization method |
| US6732208B1 (en) * | 1999-02-25 | 2004-05-04 | Mips Technologies, Inc. | Low latency system bus interface for multi-master processing environments |
| US6460133B1 (en) * | 1999-05-20 | 2002-10-01 | International Business Machines Corporation | Queue resource tracking in a multiprocessor system |
| US6728253B1 (en) * | 1999-09-24 | 2004-04-27 | International Business Machines Corporation | Mixed queue scheduler |
| US6529990B1 (en) * | 1999-11-08 | 2003-03-04 | International Business Machines Corporation | Method and apparatus to eliminate failed snoops of transactions caused by bus timing conflicts in a distributed symmetric multiprocessor system |
| US6651124B1 (en) * | 2000-04-28 | 2003-11-18 | Hewlett-Packard Development Company, L.P. | Method and apparatus for preventing deadlock in a distributed shared memory system |
| US6748505B1 (en) * | 2000-07-11 | 2004-06-08 | Intel Corporation | Efficient system bus architecture for memory and register transfers |
| US6631440B2 (en) * | 2000-11-30 | 2003-10-07 | Hewlett-Packard Development Company | Method and apparatus for scheduling memory calibrations based on transactions |
| US6804736B2 (en) * | 2000-11-30 | 2004-10-12 | Hewlett-Packard Development Company, L.P. | Bus access arbitration based on workload |
| US20030095447A1 (en) * | 2001-11-20 | 2003-05-22 | Koninklijke Philips Electronics N.V. | Shared memory controller for display processor |
| US6862646B2 (en) * | 2001-12-28 | 2005-03-01 | Thomas J. Bonola | Method and apparatus for eliminating the software generated ready-signal to hardware devices that are not part of the memory coherency domain |
| US7546399B2 (en) * | 2002-03-25 | 2009-06-09 | Intel Corporation | Store and forward device utilizing cache to store status information for active queues |
| US7024499B2 (en) * | 2003-01-21 | 2006-04-04 | Red Hat, Inc. | Cache only queue option for cache controller |
| US7165131B2 (en) | 2004-04-27 | 2007-01-16 | Intel Corporation | Separating transactions into different virtual channels |
| US20070082131A1 (en) * | 2005-10-07 | 2007-04-12 | Sulzer Metco (Us), Inc. | Optimized high purity coating for high temperature thermal cycling applications |
| US7596647B1 (en) | 2006-09-18 | 2009-09-29 | Nvidia Corporation | Urgency based arbiter |
| US7949813B2 (en) * | 2007-02-06 | 2011-05-24 | Broadcom Corporation | Method and system for processing status blocks in a CPU based on index values and interrupt mapping |
| US8019910B2 (en) * | 2007-07-31 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Transaction flow control in PCI express fabric |
| US8275902B2 (en) * | 2008-09-22 | 2012-09-25 | Oracle America, Inc. | Method and system for heuristic throttling for distributed file systems |
| US20130054896A1 (en) * | 2011-08-25 | 2013-02-28 | STMicroelectronica Inc. | System memory controller having a cache |
| US12493432B2 (en) | 2017-05-31 | 2025-12-09 | Fmad Engineering (Sng) Pte Ltd. | High speed data packet flow processing with offload |
| US10423358B1 (en) | 2017-05-31 | 2019-09-24 | FMAD Engineering GK | High-speed data packet capture and storage with playback capabilities |
| US11128740B2 (en) | 2017-05-31 | 2021-09-21 | Fmad Engineering Kabushiki Gaisha | High-speed data packet generator |
| US12184520B2 (en) | 2022-02-21 | 2024-12-31 | FMAD Engineering (SNG) Pte. Ltd. | High-speed packet filtering |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB8814633D0 (en) * | 1987-11-18 | 1988-07-27 | Ibm | Bus flow control mechanism |
| US5204954A (en) * | 1987-11-18 | 1993-04-20 | International Business Machines Corporation | Remote storage management mechanism and method |
| US5257374A (en) * | 1987-11-18 | 1993-10-26 | International Business Machines Corporation | Bus flow control mechanism |
| US5265235A (en) * | 1990-11-30 | 1993-11-23 | Xerox Corporation | Consistency protocols for shared memory multiprocessors |
| US5195089A (en) * | 1990-12-31 | 1993-03-16 | Sun Microsystems, Inc. | Apparatus and method for a synchronous, high speed, packet-switched bus |
-
1994
- 1994-02-24 US US08/201,185 patent/US6182176B1/en not_active Expired - Lifetime
- 1994-08-25 EP EP94113319A patent/EP0674272B1/en not_active Expired - Lifetime
- 1994-08-25 DE DE69424272T patent/DE69424272T2/de not_active Expired - Lifetime
- 1994-10-24 TW TW083109856A patent/TW253947B/zh active
-
1995
- 1995-02-16 JP JP7028066A patent/JPH07306810A/ja active Pending
- 1995-02-23 KR KR1019950003485A patent/KR100371844B1/ko not_active Expired - Fee Related
-
2000
- 2000-10-25 US US09/697,560 patent/US6304932B1/en not_active Expired - Fee Related
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR100596947B1 (ko) * | 1998-07-31 | 2006-07-07 | 프리스케일 세미컨덕터, 인크. | 데이터 처리 시스템의 트랜잭션 수행 방법 및 장치 |
| JPWO2004107180A1 (ja) * | 2003-05-30 | 2006-07-20 | 富士通株式会社 | マルチプロセッサシステム |
| JP2009064308A (ja) * | 2007-09-07 | 2009-03-26 | Fujitsu Ltd | キャッシュシステム |
| JP2016173798A (ja) * | 2015-03-18 | 2016-09-29 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
| CN105988968A (zh) * | 2015-03-18 | 2016-10-05 | 瑞萨电子株式会社 | 半导体装置 |
| CN105988968B (zh) * | 2015-03-18 | 2020-09-18 | 瑞萨电子株式会社 | 半导体装置 |
| JP2023539955A (ja) * | 2020-08-28 | 2023-09-20 | ディープ ヴィジョン インコーポレイテッド | スケジューリングされた並列プロセスの実行中にデータ転送帯域幅を増加させるためのプロセッサシステムおよび方法 |
| US12561576B2 (en) | 2020-08-28 | 2026-02-24 | Deep Vision Inc. | Processor system and method for increasing data-transfer bandwidth during execution of a scheduled parallel process |
Also Published As
| Publication number | Publication date |
|---|---|
| TW253947B (en) | 1995-08-11 |
| DE69424272T2 (de) | 2000-11-30 |
| US6182176B1 (en) | 2001-01-30 |
| KR950033892A (ko) | 1995-12-26 |
| US6304932B1 (en) | 2001-10-16 |
| DE69424272D1 (de) | 2000-06-08 |
| EP0674272B1 (en) | 2000-05-03 |
| EP0674272A1 (en) | 1995-09-27 |
| KR100371844B1 (ko) | 2003-04-07 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH07306810A (ja) | 待ち行列ベースの予測型フロー制御機構 | |
| JP3640997B2 (ja) | データ処理システム | |
| KR100360064B1 (ko) | 고도로파이프라인된버스구조 | |
| EP0681240B1 (en) | Duplicate cache tag memory system | |
| JP3529566B2 (ja) | 情報処理方法および装置 | |
| US6018792A (en) | Apparatus for performing a low latency memory read with concurrent snoop | |
| KR100263633B1 (ko) | 각종프로세서와버스프로토콜에적용가능한범용구조를제공하는컴퓨터시스템 | |
| JP3641003B2 (ja) | 調停機構付きバス・システム | |
| KR980010805A (ko) | 범용 컴퓨터 구조용 프로세서 서브시스템 | |
| US5659708A (en) | Cache coherency in a multiprocessing system | |
| JPH1031625A (ja) | マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ | |
| KR100310399B1 (ko) | 프로세서 인터페이스 버스를 통해 데이터를 전달하기 위한 방법 및 장치 | |
| US5991855A (en) | Low latency memory read with concurrent pipe lined snoops | |
| EP0820020A2 (en) | Signaling protocol conversion between a processor and a high performance system bus | |
| JP3759193B2 (ja) | アトミック動作バス・システム | |
| US7490184B2 (en) | Systems and methods for data intervention for out-of-order castouts | |
| JPH06282528A (ja) | データ転送方法及びそのシステム | |
| US5623694A (en) | Aborting an I/O operation started before all system data is received by the I/O controller after detecting a remote retry operation | |
| KR100277446B1 (ko) | 데이타 처리 시스템 내의 캐쉬 메모리 데이타를 추론적으로공급하기 위한 방법 및 장치 | |
| JPH09146840A (ja) | マルチプロセッサシステム |