JPH0776942B2 - マルチプロセッサ・システムおよびそのデータ伝送装置 - Google Patents
マルチプロセッサ・システムおよびそのデータ伝送装置Info
- Publication number
- JPH0776942B2 JPH0776942B2 JP3116693A JP11669391A JPH0776942B2 JP H0776942 B2 JPH0776942 B2 JP H0776942B2 JP 3116693 A JP3116693 A JP 3116693A JP 11669391 A JP11669391 A JP 11669391A JP H0776942 B2 JPH0776942 B2 JP H0776942B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- data
- memory
- memories
- bus
- 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 - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
【0001】
【産業上の利用分野】この発明は、複数台のプロセッサ
がそれぞれプライベート・キャッシュを持ち、共有メモ
リ空間を共有する密結合型マルチプロセッサ・システム
に於て、複数キャッシュ間のデータの一致性を実現する
方式として、スヌープ・キャッシュ方式が用いられてい
る場合に、スヌープ・キャッシュ方式を維持した上で、
メモリ・バスの転送バンド幅を大幅に増大させる方式に
関する。
がそれぞれプライベート・キャッシュを持ち、共有メモ
リ空間を共有する密結合型マルチプロセッサ・システム
に於て、複数キャッシュ間のデータの一致性を実現する
方式として、スヌープ・キャッシュ方式が用いられてい
る場合に、スヌープ・キャッシュ方式を維持した上で、
メモリ・バスの転送バンド幅を大幅に増大させる方式に
関する。
【0002】
【従来の技術】共有メモリ型のマルチプロセッサ・シス
テムでは、共有メモリへのアクセス競合がシステム性能
の向上を妨げる最大のボトル・ネックとなるが、これを
緩和する目的で、各プロセッサにプライベート・キャッ
シュを付加することにより、共有メモリに対する要求バ
ンド幅を低減させるという方法がよく用いられる。新た
に導入された複数キャッシュ間のデータの一致性制御の
方式としては、「スヌープ・キャッシュ」方式がよく知
られる。この方式では、それぞれのキャッシュが常に共
有バス(ここでは「共有バス」は複数の資源が接続さ
れ、それら資源が同時に共有している通信媒体を指
す。)上に発生するメモリ・アクセスを監視し、必要に
応じて該当キャッシュ・ブロックに対する適当な操作を
実行することによって複数キャッシュ間のデータの一致
性がハードウェアによって実現される。この方式は,簡
便に、しかも高速にデータ一致性制御が実現される点に
於て優れた方式であり、現在広く用いられている。しか
し、反面、共有バス結合に基礎を置いた「スヌープ・キ
ャッシュ」方式では、バス・ネックという本質的問題点
は解決されず、十数台規模の小規模並列システムまでし
か実用に供しないという欠点を有する。
テムでは、共有メモリへのアクセス競合がシステム性能
の向上を妨げる最大のボトル・ネックとなるが、これを
緩和する目的で、各プロセッサにプライベート・キャッ
シュを付加することにより、共有メモリに対する要求バ
ンド幅を低減させるという方法がよく用いられる。新た
に導入された複数キャッシュ間のデータの一致性制御の
方式としては、「スヌープ・キャッシュ」方式がよく知
られる。この方式では、それぞれのキャッシュが常に共
有バス(ここでは「共有バス」は複数の資源が接続さ
れ、それら資源が同時に共有している通信媒体を指
す。)上に発生するメモリ・アクセスを監視し、必要に
応じて該当キャッシュ・ブロックに対する適当な操作を
実行することによって複数キャッシュ間のデータの一致
性がハードウェアによって実現される。この方式は,簡
便に、しかも高速にデータ一致性制御が実現される点に
於て優れた方式であり、現在広く用いられている。しか
し、反面、共有バス結合に基礎を置いた「スヌープ・キ
ャッシュ」方式では、バス・ネックという本質的問題点
は解決されず、十数台規模の小規模並列システムまでし
か実用に供しないという欠点を有する。
【0003】一方、バス・ネックの問題を本質的に解決
する方式としてインターコネクション・ネットワーク
(ここでは「インターコネクション・ネットワーク」は
複数の資源が接続され、それらの間を何らかのスイッチ
によって一対一また一対多に接続する通信媒体を指す)
の研究が古くから行われている。インターコネクション
・ネットワークで結合されたマルチプロセッサ・システ
ムでは、システムを構成するプロセッサの数の増加にし
たがって結合リンクの数も増加するので、プロセッサ台
数に比例した転送バンド幅が確保され、数百台規模の大
規模並列システムの実現が可能となる。しかし反面、各
プロセッサに付加されたプライベート・キャッシュにと
っては,他のプロセッサが行うメモリ・アクセスのすべ
てを監視することは不可能であり、「スヌープ・キャッ
シュ」方式が実現しているようなハードウェアによるデ
ータ一致性制御は、原理上、不可能である。そこで、ハ
ードウェアによる一致性制御は断念し、ソフトウェアに
よって一致性制御を行うのが一般的である。この方式で
は、同一メモリ・アドレスのコピーを複数キャッシュが
同時に保有することがないように、ソフトウェアによっ
てキャッシュが制御される。より具体的には、ソフトウ
ェア・プロトコルの制御の元に、適当時期にキャッシュ
中の該当コピーをソフトウェア命令によって無効化する
ことによって、一時点には、唯一、一つのキャッシュの
みがコピーを保有するように制御する。この方式の欠点
は、ソフトウェアに課する負荷の増大と、キャッシュの
使用がハードウェアによって動的に最適化されずに、ソ
フトウェアによって静的に無効化されることに伴う性能
の低下である。
する方式としてインターコネクション・ネットワーク
(ここでは「インターコネクション・ネットワーク」は
複数の資源が接続され、それらの間を何らかのスイッチ
によって一対一また一対多に接続する通信媒体を指す)
の研究が古くから行われている。インターコネクション
・ネットワークで結合されたマルチプロセッサ・システ
ムでは、システムを構成するプロセッサの数の増加にし
たがって結合リンクの数も増加するので、プロセッサ台
数に比例した転送バンド幅が確保され、数百台規模の大
規模並列システムの実現が可能となる。しかし反面、各
プロセッサに付加されたプライベート・キャッシュにと
っては,他のプロセッサが行うメモリ・アクセスのすべ
てを監視することは不可能であり、「スヌープ・キャッ
シュ」方式が実現しているようなハードウェアによるデ
ータ一致性制御は、原理上、不可能である。そこで、ハ
ードウェアによる一致性制御は断念し、ソフトウェアに
よって一致性制御を行うのが一般的である。この方式で
は、同一メモリ・アドレスのコピーを複数キャッシュが
同時に保有することがないように、ソフトウェアによっ
てキャッシュが制御される。より具体的には、ソフトウ
ェア・プロトコルの制御の元に、適当時期にキャッシュ
中の該当コピーをソフトウェア命令によって無効化する
ことによって、一時点には、唯一、一つのキャッシュの
みがコピーを保有するように制御する。この方式の欠点
は、ソフトウェアに課する負荷の増大と、キャッシュの
使用がハードウェアによって動的に最適化されずに、ソ
フトウェアによって静的に無効化されることに伴う性能
の低下である。
【0004】最後にこの発明と関連する先行技術とし
て、スヌープ・バスとインターコネクション・ネットワ
ークを組み合わせる方式(Bhuyan,L.N.;Bao Chyn Liu;A
hmea,I."Analysis of MIN based multiprocessors with
private cache memories",Proceedings of the 1989 I
nternational Conference on Parallel Processing,1
989年8月8日〜12日,51-58ページ.)について
概説する。この方式では、インターコネクション・ネッ
トワークの他にスヌープ・バスが付け加えられる。デー
タ一致性制御のためにキャッシュ間のコミュニケーショ
ンを必要とするメモリ・アクセスはスヌープ・バスを介
して処理され、キャッシュ間のコミュニケーションを必
要としない通常のメモリ・アクセスはインターコネクシ
ョン・ネットワークを介して処理される。キャッシュ間
のコミュニケーションが必要であるのかどうかを判断す
るために、各キャッシュにはシステム中のすべての共有
コピーの状態を記録したテーブルが付加される。この方
式では、転送バンド幅の上限は共有データのアクセスに
使用される共有バスあるいは、個有データのアクセスに
使用されるインターコネクション・ネットワークのどち
らか先に飽和した方で決定される。従って、この方式の
転送バンド幅の上限は、実行されるプログラムの性質に
大きく依存することになるが、常識的に考えて、キャッ
シュ・ミス率がかなり低くなるようにうまく設計された
スヌープ・キャッシュ方式のマルチプロセッサ・システ
ムでは、システム・バス上に発生するアクセス要求全体
のうちの数分の一がデータ一致性制御のためのキャッシ
ュ間コミュニケーションによって発生すると思われるの
で、この方式では,純粋な共有バス結合方式に比較して
高々数倍程度の転送バンド幅が実現されるだけである。
また、この方式では、共有バスを用いたアクセスが必要
であるのか、インターコネクション・ネットワークを用
いたアクセスのみで十分なのかを各キャッシュがローカ
ルに決定することを可能とするために、各キャッシュに
システム全体の状態を記述した管理テーブルが必要とな
る。さらに、制御機構としては、このテーブルを用いた
上で共有バスおよびインターコネクション・ネットワー
クを制御する機構が必要であり、制御機構が複雑にな
る。
て、スヌープ・バスとインターコネクション・ネットワ
ークを組み合わせる方式(Bhuyan,L.N.;Bao Chyn Liu;A
hmea,I."Analysis of MIN based multiprocessors with
private cache memories",Proceedings of the 1989 I
nternational Conference on Parallel Processing,1
989年8月8日〜12日,51-58ページ.)について
概説する。この方式では、インターコネクション・ネッ
トワークの他にスヌープ・バスが付け加えられる。デー
タ一致性制御のためにキャッシュ間のコミュニケーショ
ンを必要とするメモリ・アクセスはスヌープ・バスを介
して処理され、キャッシュ間のコミュニケーションを必
要としない通常のメモリ・アクセスはインターコネクシ
ョン・ネットワークを介して処理される。キャッシュ間
のコミュニケーションが必要であるのかどうかを判断す
るために、各キャッシュにはシステム中のすべての共有
コピーの状態を記録したテーブルが付加される。この方
式では、転送バンド幅の上限は共有データのアクセスに
使用される共有バスあるいは、個有データのアクセスに
使用されるインターコネクション・ネットワークのどち
らか先に飽和した方で決定される。従って、この方式の
転送バンド幅の上限は、実行されるプログラムの性質に
大きく依存することになるが、常識的に考えて、キャッ
シュ・ミス率がかなり低くなるようにうまく設計された
スヌープ・キャッシュ方式のマルチプロセッサ・システ
ムでは、システム・バス上に発生するアクセス要求全体
のうちの数分の一がデータ一致性制御のためのキャッシ
ュ間コミュニケーションによって発生すると思われるの
で、この方式では,純粋な共有バス結合方式に比較して
高々数倍程度の転送バンド幅が実現されるだけである。
また、この方式では、共有バスを用いたアクセスが必要
であるのか、インターコネクション・ネットワークを用
いたアクセスのみで十分なのかを各キャッシュがローカ
ルに決定することを可能とするために、各キャッシュに
システム全体の状態を記述した管理テーブルが必要とな
る。さらに、制御機構としては、このテーブルを用いた
上で共有バスおよびインターコネクション・ネットワー
クを制御する機構が必要であり、制御機構が複雑にな
る。
【0005】
【発明が解決しようとする課題】この発明は以上の事情
を考慮してなされたものであり、共有バス結合に基礎を
置いた「スヌープ・キャッシュ方式」のバス・ネック
を、インターコネクション・ネットワークで結合された
マルチプロセッサ・システムのようにソフトウェアによ
らずに、簡素なハードウェア(制御機構)によって解消
することを目的とする。
を考慮してなされたものであり、共有バス結合に基礎を
置いた「スヌープ・キャッシュ方式」のバス・ネック
を、インターコネクション・ネットワークで結合された
マルチプロセッサ・システムのようにソフトウェアによ
らずに、簡素なハードウェア(制御機構)によって解消
することを目的とする。
【0006】
【課題を解決するための手段】図1は「スヌープ・キャ
ッシュ」方式のマルチプロセッサを示す。図1において
複数のプロセッサ1a・・1nはそれぞれのプライベー
ト・キャッシュ2a・・2nを介して共有バス3および
共有メモリ4に接続されている。各プライベート・キャ
ッシュ2a・・2nは共有バス3上に発生するメモリ・
アクセスを監視し、必要に応じて該当キャッシュ・ブロ
ックに対する適当な操作を実行することによって複数キ
ャッシュ間のデータの一致性を実現する。即ち、スヌー
プ・キャッシュ方式に必要なのは、共有バス上のアドレ
ス/コマンドをすべてのキャッシュが監視することと、
そのスヌープの順序がキャッシュ間のデータの一致性を
維持するのに必要十分なだけデータ転送の順序に反映さ
れること(バスではスヌープの順序でデータが転送され
るため暗黙のうちに実現されている。)であり、データ
・バス自体の監視は不要である。一方、最近の高速マイ
クロプロセッサでは64バイト以上にも及ぶようなかな
り長いキャッシュ・ライン・サイズを用いることも希で
はないが、その場合、そのような長いキャッシュ・ライ
ンはビット幅に限度のあるシステム・バス上を複数のバ
ス・サイクルを使用して(例えば、8バイトx8サイク
ル)、ブロック転送される。即ち、バス・スヌープに必
要なアドレス/コマンド・サイクルは、1バス・サイク
ルないし2バス・サイクルという極めて短い期間である
にもかかわらず、長いキャッシュ・ラインを転送するか
なり長い期間、システム・バスが占有される。そこで、
この発明の方式では、上記の2つの事実を積極的に利用
して、バス・スヌープが必要なアドレス/コマンド・バ
スには共有バス結合を用い、バス・スヌープが不要なデ
ータ・バスにはインターコネクション・ネットワークで
結合されたマルチプル・データ・パスを用いる。ただし
このマルチプル・データ・パスは、スヌープの順序がキ
ャッシュ間のデータの一致性を維持するのに必要十分な
だけデータ転送の順序に反映されるものを用いる。本方
式によって、論理的には、スヌープ・キャッシュ方式を
そっくり踏襲したままで、転送バンド幅増大の目的で、
インターコネクション・ネットワークを使用することが
可能となる。
ッシュ」方式のマルチプロセッサを示す。図1において
複数のプロセッサ1a・・1nはそれぞれのプライベー
ト・キャッシュ2a・・2nを介して共有バス3および
共有メモリ4に接続されている。各プライベート・キャ
ッシュ2a・・2nは共有バス3上に発生するメモリ・
アクセスを監視し、必要に応じて該当キャッシュ・ブロ
ックに対する適当な操作を実行することによって複数キ
ャッシュ間のデータの一致性を実現する。即ち、スヌー
プ・キャッシュ方式に必要なのは、共有バス上のアドレ
ス/コマンドをすべてのキャッシュが監視することと、
そのスヌープの順序がキャッシュ間のデータの一致性を
維持するのに必要十分なだけデータ転送の順序に反映さ
れること(バスではスヌープの順序でデータが転送され
るため暗黙のうちに実現されている。)であり、データ
・バス自体の監視は不要である。一方、最近の高速マイ
クロプロセッサでは64バイト以上にも及ぶようなかな
り長いキャッシュ・ライン・サイズを用いることも希で
はないが、その場合、そのような長いキャッシュ・ライ
ンはビット幅に限度のあるシステム・バス上を複数のバ
ス・サイクルを使用して(例えば、8バイトx8サイク
ル)、ブロック転送される。即ち、バス・スヌープに必
要なアドレス/コマンド・サイクルは、1バス・サイク
ルないし2バス・サイクルという極めて短い期間である
にもかかわらず、長いキャッシュ・ラインを転送するか
なり長い期間、システム・バスが占有される。そこで、
この発明の方式では、上記の2つの事実を積極的に利用
して、バス・スヌープが必要なアドレス/コマンド・バ
スには共有バス結合を用い、バス・スヌープが不要なデ
ータ・バスにはインターコネクション・ネットワークで
結合されたマルチプル・データ・パスを用いる。ただし
このマルチプル・データ・パスは、スヌープの順序がキ
ャッシュ間のデータの一致性を維持するのに必要十分な
だけデータ転送の順序に反映されるものを用いる。本方
式によって、論理的には、スヌープ・キャッシュ方式を
そっくり踏襲したままで、転送バンド幅増大の目的で、
インターコネクション・ネットワークを使用することが
可能となる。
【0007】
【実施例】この発明の一実施例を図2および図3を参照
して以下に説明する。図2において各プロセッサ1a・
・1nに付加されているスヌープ・キャッシュ2a・・
2nは単一のアドレス/コマンド・バス5によって、互
いに結合される。このアドレス/コマンド・バス5によ
って、キャッシュ・コヒーレンシ制御のためのスヌープ
動作が維持される。一方、各スヌープ・キャッシュ2a
・・2nからのデータ・パス6a・・6nは、データ・
パス・スイッチ7とデータ・パス8a・・8mを経由し
て、複数のメモリ・モジュール9a・・9mにインター
リーブされた共有メモリ・システムに結合される。
して以下に説明する。図2において各プロセッサ1a・
・1nに付加されているスヌープ・キャッシュ2a・・
2nは単一のアドレス/コマンド・バス5によって、互
いに結合される。このアドレス/コマンド・バス5によ
って、キャッシュ・コヒーレンシ制御のためのスヌープ
動作が維持される。一方、各スヌープ・キャッシュ2a
・・2nからのデータ・パス6a・・6nは、データ・
パス・スイッチ7とデータ・パス8a・・8mを経由し
て、複数のメモリ・モジュール9a・・9mにインター
リーブされた共有メモリ・システムに結合される。
【0008】図3は図2のm、nがそれぞれ8だった場
合、つまりプロセッサ1a・・1n、メモリ・モジュー
ル9a・・9mがそれぞれ8台だった場合のデータ・パ
ス・スイッチ7の一例である。マルチプレクサ10a・
・10hはメモリ・モジュール9a・・9hのデータ・
パス8a・・8hを選択してスヌープ・キャッシュ2a
・・2hのデータ・パス6a・・6hに出力する。マル
チプレクサ11a・・11hはスヌープ・キャッシュ2
a・・2hのデータ・パス6a・・6hを選択してメモ
リ・モジュール9a・・9hのデータ・パス8a・・8
hに出力する。データ・パス・コントローラ12はアド
レス/コマンド・バス5上のアドレス、コマンドに基づ
いてマルチプレクサ10a・・10h、11a・・11
hをコントロールしてデータ転送に必要なデータ・パス
を確立する。
合、つまりプロセッサ1a・・1n、メモリ・モジュー
ル9a・・9mがそれぞれ8台だった場合のデータ・パ
ス・スイッチ7の一例である。マルチプレクサ10a・
・10hはメモリ・モジュール9a・・9hのデータ・
パス8a・・8hを選択してスヌープ・キャッシュ2a
・・2hのデータ・パス6a・・6hに出力する。マル
チプレクサ11a・・11hはスヌープ・キャッシュ2
a・・2hのデータ・パス6a・・6hを選択してメモ
リ・モジュール9a・・9hのデータ・パス8a・・8
hに出力する。データ・パス・コントローラ12はアド
レス/コマンド・バス5上のアドレス、コマンドに基づ
いてマルチプレクサ10a・・10h、11a・・11
hをコントロールしてデータ転送に必要なデータ・パス
を確立する。
【0009】次にキャッシュ−メモリ間、キャッシュ−
キャッシュ間のデータの転送方法について図2、図3を
用いて説明する。ここではキャッシュ・ライン長をデー
タ・バス幅の8倍とし、データをキャッシュ・ラインご
とにアドレスの若いものから順にメモリ・モジュール9
a、9b、・・、9h、9a・・にインターリーブして
置くものとする。たとえばn番目、(n+1)番目、・
・、(n+7)番目のキャッシュ・ラインを順にメモリ
・モジュール9a、9b、・・、9hにストアする。こ
の場合アドレスの各部は以下のように用いられる。
キャッシュ間のデータの転送方法について図2、図3を
用いて説明する。ここではキャッシュ・ライン長をデー
タ・バス幅の8倍とし、データをキャッシュ・ラインご
とにアドレスの若いものから順にメモリ・モジュール9
a、9b、・・、9h、9a・・にインターリーブして
置くものとする。たとえばn番目、(n+1)番目、・
・、(n+7)番目のキャッシュ・ラインを順にメモリ
・モジュール9a、9b、・・、9hにストアする。こ
の場合アドレスの各部は以下のように用いられる。
【0010】A)最下位の数ビットはデータ・バス幅の
データの各バイトを指定する。通常はバイト・イネーブ
ルとしてデコードされた形で転送される。 B)次の下位3ビットはデータ・バス幅のデータのキャ
ッシュ・ラインの中での位置を指定する。 C)次の下位3ビットは、キャッシュ・ラインの置かれ
ているメモリ・モジュールを指定する。 D)残りの上位ビットは、メモリ・モジュールの中での
キャッシュ・ラインの位置を指定する。 したがって最上位の所定の数ビットがマルチプレクサ1
0a・・10hの切り換えに使用される。
データの各バイトを指定する。通常はバイト・イネーブ
ルとしてデコードされた形で転送される。 B)次の下位3ビットはデータ・バス幅のデータのキャ
ッシュ・ラインの中での位置を指定する。 C)次の下位3ビットは、キャッシュ・ラインの置かれ
ているメモリ・モジュールを指定する。 D)残りの上位ビットは、メモリ・モジュールの中での
キャッシュ・ラインの位置を指定する。 したがって最上位の所定の数ビットがマルチプレクサ1
0a・・10hの切り換えに使用される。
【0011】1)データをメモリからキャッシュに読み
込む場合 スヌープ・キャッシュ2dがメモリ・モジュール9dか
らデータを読み込む場合を考える。スヌープ・キャッシ
ュ2dがアドレス/コマンド・バス5上に出力したアド
レス/コマンドを読み込んで、データ・パス・コントロ
ーラ12はマルチプレクサ10dをコントロールしてデ
ータ・パス8dをデータ・パス6dに接続する。このデ
ータ・パス(図3では点線で示される。)を通じてメモ
リ・モジュール9dのデータが8バス・サイクルかけて
スヌープ・キャッシュ2dに読み込まれる。 2)データをキャッシュからメモリに書き込む場合 スヌープ・キャッシュ2aがメモリ・モジュール9dに
データを書き込む場合を考える。スヌープ・キャッシュ
2aがアドレス/コマンド・バス5上に出力したアドレ
ス/コマンドを読み込んで、データ・パス・コントロー
ラ12はマルチプレクサ11dをコントロールしてデー
タ・パス6aをデータ・パス8dに接続する。このデー
タ・パス(図3では鎖線で示される。)を通じてスヌー
プ・キャッシュ2aのデータがメモリ・モジュール9d
に8バス・サイクルかけて書き込まれる。 3)キャッシュ−キャッシュ間のデータの転送 キャッシュ−キャッシュ間のデータの転送は、データを
キャッシュから対応するメモリ・モジュールに書き込ん
で、それを新たに読み込むことで行う。
込む場合 スヌープ・キャッシュ2dがメモリ・モジュール9dか
らデータを読み込む場合を考える。スヌープ・キャッシ
ュ2dがアドレス/コマンド・バス5上に出力したアド
レス/コマンドを読み込んで、データ・パス・コントロ
ーラ12はマルチプレクサ10dをコントロールしてデ
ータ・パス8dをデータ・パス6dに接続する。このデ
ータ・パス(図3では点線で示される。)を通じてメモ
リ・モジュール9dのデータが8バス・サイクルかけて
スヌープ・キャッシュ2dに読み込まれる。 2)データをキャッシュからメモリに書き込む場合 スヌープ・キャッシュ2aがメモリ・モジュール9dに
データを書き込む場合を考える。スヌープ・キャッシュ
2aがアドレス/コマンド・バス5上に出力したアドレ
ス/コマンドを読み込んで、データ・パス・コントロー
ラ12はマルチプレクサ11dをコントロールしてデー
タ・パス6aをデータ・パス8dに接続する。このデー
タ・パス(図3では鎖線で示される。)を通じてスヌー
プ・キャッシュ2aのデータがメモリ・モジュール9d
に8バス・サイクルかけて書き込まれる。 3)キャッシュ−キャッシュ間のデータの転送 キャッシュ−キャッシュ間のデータの転送は、データを
キャッシュから対応するメモリ・モジュールに書き込ん
で、それを新たに読み込むことで行う。
【0012】図4は、このような構成を用いて、メモリ
・アクセスおよびバス・スヌープがどのように多重化さ
れるかを示したタイミング・チャートである。横軸方向
はバス・サイクルを示しており、1から10までのバス
・サイクルが例として示されている。この例では、バス
・サイクル1に於て、あるメモリ・アドレスに対してア
クセスが発生し、すべてのキャッシュでのスヌープ動作
自体はバス・サイクル1のみで終了したが、バス・サイ
クル2から9までの8バス・サイクルを使用して長いキ
ャッシュ・ラインがブロック転送されている様子を示し
ている。次のバス・サイクル2で異なるメモリ・モジュ
ールに対してアクセスが発生したならば、このための処
理はすぐに開始される。スヌープ動作はバス・サイクル
2のみで終了し、バス・サイクル3から10までの8サ
イクルを使用してキャッシュ・ラインがメモリ・システ
ムから要求元キャッシュに転送される。以下、そのよう
な状況の繰り返しを示している。従って、実際の動作状
況では、アドレス/コマンド・バス上でのコンテンショ
ンとメモリ・モジュール上でのコンテンションの両方で
実効バンド幅が決定されるが、図4に示されたような理
想的な動作状況では、図の上に示された式のように、実
現可能なスヌープ・サイクルとキャッシュ・ライン・サ
イズでその理論的最大値が決定される。例として、スヌ
ープ・サイクルを40ns(25MHz)と仮定し、デ
ータ・バス幅を8バイト、キャッシュ・ライン・サイズ
を64バイトとすると、実現可能なバス・バンド幅の上
限は1.6Gバイト/秒である。ちなみに従来の「スヌ
ープ・キャッシュ」方式を用いた場合のタイミング・チ
ャートは図5のようになり同じ条件のもとでの実現可能
なバス・バンド幅の上限は200Mバイト/秒となる。
・アクセスおよびバス・スヌープがどのように多重化さ
れるかを示したタイミング・チャートである。横軸方向
はバス・サイクルを示しており、1から10までのバス
・サイクルが例として示されている。この例では、バス
・サイクル1に於て、あるメモリ・アドレスに対してア
クセスが発生し、すべてのキャッシュでのスヌープ動作
自体はバス・サイクル1のみで終了したが、バス・サイ
クル2から9までの8バス・サイクルを使用して長いキ
ャッシュ・ラインがブロック転送されている様子を示し
ている。次のバス・サイクル2で異なるメモリ・モジュ
ールに対してアクセスが発生したならば、このための処
理はすぐに開始される。スヌープ動作はバス・サイクル
2のみで終了し、バス・サイクル3から10までの8サ
イクルを使用してキャッシュ・ラインがメモリ・システ
ムから要求元キャッシュに転送される。以下、そのよう
な状況の繰り返しを示している。従って、実際の動作状
況では、アドレス/コマンド・バス上でのコンテンショ
ンとメモリ・モジュール上でのコンテンションの両方で
実効バンド幅が決定されるが、図4に示されたような理
想的な動作状況では、図の上に示された式のように、実
現可能なスヌープ・サイクルとキャッシュ・ライン・サ
イズでその理論的最大値が決定される。例として、スヌ
ープ・サイクルを40ns(25MHz)と仮定し、デ
ータ・バス幅を8バイト、キャッシュ・ライン・サイズ
を64バイトとすると、実現可能なバス・バンド幅の上
限は1.6Gバイト/秒である。ちなみに従来の「スヌ
ープ・キャッシュ」方式を用いた場合のタイミング・チ
ャートは図5のようになり同じ条件のもとでの実現可能
なバス・バンド幅の上限は200Mバイト/秒となる。
【0013】
【代替例】代替例として、3つの例を挙げる。1つはデ
ータ・パス・スイッチとしてマルチプレクサ以外の各種
インターコネクション・ネットワークを用いるものであ
る。たとえばクロスバー、オメガ・ネットワークなどを
用いる。ただし前述のように、このマルチプル・データ
・パスは、スヌープの順序がキャッシュ間のデータの一
致性を維持するのに必要十分なだけデータ転送の順序に
反映されるものでなければならない。
ータ・パス・スイッチとしてマルチプレクサ以外の各種
インターコネクション・ネットワークを用いるものであ
る。たとえばクロスバー、オメガ・ネットワークなどを
用いる。ただし前述のように、このマルチプル・データ
・パスは、スヌープの順序がキャッシュ間のデータの一
致性を維持するのに必要十分なだけデータ転送の順序に
反映されるものでなければならない。
【0014】2つめはキャッシュ−キャッシュ間のデー
タの転送を高速化するものである。図2、図3を用いて
説明する。スヌープ・キャッシュ2aからスヌープ・キ
ャッシュ2dへメモリ・モジュール9dに対応するデー
タを転送する場合を考える。まずデータ・パス・コント
ローラ12はマルチプレクサ11dをコントロールして
データ・パス6aをデータ・パス8dに接続する(図3
では鎖線で示される。)。同時にデータ・パス・コント
ローラ12はマルチプレクサ10dをコントロールして
データ・パス8dをデータ・パス6dに接続する(図3
では点線で示される。)。これでデータ・パス6aがデ
ータ・パス6dに接続され、スヌープ・キャッシュ2a
からスヌープ・キャッシュ2dへメモリ・モジュール9
dに対応するデータを転送できる。この変更によって、
実現例で述べたキャッシュのデータをメモリ・モジュー
ルに書き込んだ後に読み込むことでキャッシュ−キャッ
シュ間のデータを転送する方法に比べ、2倍の速度でデ
ータを転送できる。
タの転送を高速化するものである。図2、図3を用いて
説明する。スヌープ・キャッシュ2aからスヌープ・キ
ャッシュ2dへメモリ・モジュール9dに対応するデー
タを転送する場合を考える。まずデータ・パス・コント
ローラ12はマルチプレクサ11dをコントロールして
データ・パス6aをデータ・パス8dに接続する(図3
では鎖線で示される。)。同時にデータ・パス・コント
ローラ12はマルチプレクサ10dをコントロールして
データ・パス8dをデータ・パス6dに接続する(図3
では点線で示される。)。これでデータ・パス6aがデ
ータ・パス6dに接続され、スヌープ・キャッシュ2a
からスヌープ・キャッシュ2dへメモリ・モジュール9
dに対応するデータを転送できる。この変更によって、
実現例で述べたキャッシュのデータをメモリ・モジュー
ルに書き込んだ後に読み込むことでキャッシュ−キャッ
シュ間のデータを転送する方法に比べ、2倍の速度でデ
ータを転送できる。
【0015】最後はキャッシュ・ラインのメモリ・モジ
ュールへの対応付けを変えるものである。ここでもキャ
ッシュ・ライン長をデータ・バス幅の8倍とするが、1
つのキャッシュ・ラインを構成する8つのデータ・バス
幅のデータをアドレスの若いものから順にメモリ・モジ
ュール9a、9b、・・、9hにインターリーブして置
くものとする。たとえば1つのキャッシュ・ラインのデ
ータ・バス幅のデータD1、D2、・・D7を順にメモ
リ・モジュール9a、9b、・・、9hにストアする。
このときのアドレスは以下のように用いられる。
ュールへの対応付けを変えるものである。ここでもキャ
ッシュ・ライン長をデータ・バス幅の8倍とするが、1
つのキャッシュ・ラインを構成する8つのデータ・バス
幅のデータをアドレスの若いものから順にメモリ・モジ
ュール9a、9b、・・、9hにインターリーブして置
くものとする。たとえば1つのキャッシュ・ラインのデ
ータ・バス幅のデータD1、D2、・・D7を順にメモ
リ・モジュール9a、9b、・・、9hにストアする。
このときのアドレスは以下のように用いられる。
【0016】A)最下位の数ビットはデータ・バス幅の
データの各バイトを指定する。通常はバイト・イネーブ
ルとしてデコードされた形で転送される。 B)次の下位3ビットはデータ・バス幅のデータの置か
れているメモリ・モジュールを指定する。それと同時に
データ・バス幅のデータのキャッシュ・ラインの中での
位置を指定する。 C)残りの上位ビットは、メモリ・モジュールの中での
キャッシュ・ラインの位置を指定する。
データの各バイトを指定する。通常はバイト・イネーブ
ルとしてデコードされた形で転送される。 B)次の下位3ビットはデータ・バス幅のデータの置か
れているメモリ・モジュールを指定する。それと同時に
データ・バス幅のデータのキャッシュ・ラインの中での
位置を指定する。 C)残りの上位ビットは、メモリ・モジュールの中での
キャッシュ・ラインの位置を指定する。
【0017】この場合のキャッシュ−メモリ間、キャッ
シュ−キャッシュ間のデータの転送方法について図2、
図6を用いて説明する。図6は図3と同じものだが、点
線、鎖線になっているデータ・パスが異なる。
シュ−キャッシュ間のデータの転送方法について図2、
図6を用いて説明する。図6は図3と同じものだが、点
線、鎖線になっているデータ・パスが異なる。
【0018】1)データをメモリからキャッシュに読み
込む場合 データは常にすべてのメモリ・モジュールから読み込ま
れる。スヌープ・キャッシュ2dがデータを読み込む場
合を考える。スヌープ・キャッシュ2dがアドレス/コ
マンド・バス5上に出力したアドレス/コマンドを読み
込んで、データ・パス・コントローラ12はマルチプレ
クサ10dをコントロールして、まずデータ・パス8a
をデータ・パス6dに接続する。このデータ・パス(図
6では点線で示されるパスのうち一番左にあるものであ
る。)を通じてメモリ・モジュール9aのデータがスヌ
ープ・キャッシュ2dに読み込まれる。次のバス・サイ
クルではデータ・パス・コントローラ12はマルチプレ
クサ10dをコントロールしてデータ・パス8bをデー
タ・パス6dに接続し、このデータ・パス(図6では点
線で示されるパスのうち左から二番目にあるものであ
る。)を通じてメモリ・モジュール9bのデータがスヌ
ープ・キャッシュ2dに読み込まれる。同様にしてメモ
リ・モジュール9cから9hのデータがスヌープ・キャ
ッシュ2dに読み込まれる。
込む場合 データは常にすべてのメモリ・モジュールから読み込ま
れる。スヌープ・キャッシュ2dがデータを読み込む場
合を考える。スヌープ・キャッシュ2dがアドレス/コ
マンド・バス5上に出力したアドレス/コマンドを読み
込んで、データ・パス・コントローラ12はマルチプレ
クサ10dをコントロールして、まずデータ・パス8a
をデータ・パス6dに接続する。このデータ・パス(図
6では点線で示されるパスのうち一番左にあるものであ
る。)を通じてメモリ・モジュール9aのデータがスヌ
ープ・キャッシュ2dに読み込まれる。次のバス・サイ
クルではデータ・パス・コントローラ12はマルチプレ
クサ10dをコントロールしてデータ・パス8bをデー
タ・パス6dに接続し、このデータ・パス(図6では点
線で示されるパスのうち左から二番目にあるものであ
る。)を通じてメモリ・モジュール9bのデータがスヌ
ープ・キャッシュ2dに読み込まれる。同様にしてメモ
リ・モジュール9cから9hのデータがスヌープ・キャ
ッシュ2dに読み込まれる。
【0019】2)データをキャッシュからメモリに書き
込む場合 データは常にすべてのメモリ・モジュールに書き込まれ
る。スヌープ・キャッシュ2aがデータを書き込む場合
を考える。スヌープ・キャッシュ2aがアドレス/コマ
ンド・バス5上に出力したアドレス/コマンドを読み込
んで、データ・パス・コントローラ12はマルチプレク
サ11aをコントロールして、まずデータ・パス6aを
データ・パス8aに接続する。このデータ・パス(図6
では鎖線で示されるパスのうち一番左にあるものであ
る。)を通じてスヌープ・キャッシュ2aのデータがメ
モリ・モジュール9aに書き込まれる。次のバス・サイ
クルではデータ・パス・コントローラ12は前のサイク
ルの接続を解除し、マルチプレクサ11bをコントロー
ルしてデータ・パス6aをデータ・パス8bに接続し、
このデータ・パス(図6では鎖線で示されるパスのうち
左から二番目にあるものである。)を通じてスヌープ・
キャッシュ2aのデータがメモリ・モジュール9bに書
き込まれる。同様にしてスヌープ・キャッシュ2aのデ
ータがメモリ・モジュール9cから9hに書き込まれ
る。
込む場合 データは常にすべてのメモリ・モジュールに書き込まれ
る。スヌープ・キャッシュ2aがデータを書き込む場合
を考える。スヌープ・キャッシュ2aがアドレス/コマ
ンド・バス5上に出力したアドレス/コマンドを読み込
んで、データ・パス・コントローラ12はマルチプレク
サ11aをコントロールして、まずデータ・パス6aを
データ・パス8aに接続する。このデータ・パス(図6
では鎖線で示されるパスのうち一番左にあるものであ
る。)を通じてスヌープ・キャッシュ2aのデータがメ
モリ・モジュール9aに書き込まれる。次のバス・サイ
クルではデータ・パス・コントローラ12は前のサイク
ルの接続を解除し、マルチプレクサ11bをコントロー
ルしてデータ・パス6aをデータ・パス8bに接続し、
このデータ・パス(図6では鎖線で示されるパスのうち
左から二番目にあるものである。)を通じてスヌープ・
キャッシュ2aのデータがメモリ・モジュール9bに書
き込まれる。同様にしてスヌープ・キャッシュ2aのデ
ータがメモリ・モジュール9cから9hに書き込まれ
る。
【0020】3)キャッシュ−キャッシュ間のデータの
転送 キャッシュ−キャッシュ間のデータの転送は、データを
キャッシュから対応するメモリ・モジュールに書き込ん
で、それを新たに読み込むことで行える。なお、この方
式ではデータを書き込み始めたバス・サイクルの次のサ
イクルからデータを読み込み始めることができる。また
代替例の2つめのように書き込みのデータ・パスと読み
込みのデータパスを同時に確立して行うこともできる。
転送 キャッシュ−キャッシュ間のデータの転送は、データを
キャッシュから対応するメモリ・モジュールに書き込ん
で、それを新たに読み込むことで行える。なお、この方
式ではデータを書き込み始めたバス・サイクルの次のサ
イクルからデータを読み込み始めることができる。また
代替例の2つめのように書き込みのデータ・パスと読み
込みのデータパスを同時に確立して行うこともできる。
【0021】この手法を用いると、実現例のように、現
在継続されているメモリ・アクセスと、次に開始しよう
とするメモリ・アクセスがメモリ・モジュールで競合す
ることがなく、平均的なバス・バンド幅が増大するとい
う利点がある。ただしバス・サイクルと同じアクセス・
タイムのメモリが必要となるため、現在の半導体メモリ
を利用する場合メモリ・システムが非常に高価なものと
なるという欠点がある。
在継続されているメモリ・アクセスと、次に開始しよう
とするメモリ・アクセスがメモリ・モジュールで競合す
ることがなく、平均的なバス・バンド幅が増大するとい
う利点がある。ただしバス・サイクルと同じアクセス・
タイムのメモリが必要となるため、現在の半導体メモリ
を利用する場合メモリ・システムが非常に高価なものと
なるという欠点がある。
【0022】
【発明の効果】この発明は、複数台のプロセッサがそれ
ぞれプライベート・キャッシュを持ち、共有メモリ空間
を共有する密結合型マルチプロセッサ・システムに於
て、複数キャッシュ間のデータの一致性を実現する方式
として、スヌープ・キャッシュ方式が用いられている場
合に、スヌープ・キャッシュ方式を維持した上で、転送
バンド幅増大の目的でインターコネクション・ネットワ
ークを使用することを可能にし、メモリ・バスの転送バ
ンド幅を大幅に増大できるようになる。
ぞれプライベート・キャッシュを持ち、共有メモリ空間
を共有する密結合型マルチプロセッサ・システムに於
て、複数キャッシュ間のデータの一致性を実現する方式
として、スヌープ・キャッシュ方式が用いられている場
合に、スヌープ・キャッシュ方式を維持した上で、転送
バンド幅増大の目的でインターコネクション・ネットワ
ークを使用することを可能にし、メモリ・バスの転送バ
ンド幅を大幅に増大できるようになる。
【図1】スヌープ・キャッシュを有する共通バス・共通
メモリ型マルチプロセッサの一般的な構成を示すブロッ
ク図である。
メモリ型マルチプロセッサの一般的な構成を示すブロッ
ク図である。
【図2】この発明の実施例を示すブロック図である。
【図3】実施例に用いるデータ・パス・スイッチの一例
を示すブロック図である。
を示すブロック図である。
【図4】実施例のメモリ・アクセスおよびバス・スヌー
プのタイミング・チャートである。
プのタイミング・チャートである。
【図5】一般的なスヌープ・キャッシュ方式のマルチプ
ロセッサのメモリ・アクセスおよびバス・スヌープのタ
イミング・チャートである。
ロセッサのメモリ・アクセスおよびバス・スヌープのタ
イミング・チャートである。
【図6】代替例の動作を説明するためのデータ・パス・
スイッチのブロック図である。
スイッチのブロック図である。
【符合の説明】1a・・1n・・プロセッサ、2a・・
2n・・プライベート・キャッシュ、3・・共有バス、
4・・共有メモリ、5・・アドレス/コマンド・バス、
6a・・6n・・データ・パス、7・・データ・パス・
スイッチ、8a・・8m・・データ・パス、9a・・9
m・・メモリ・モジュール、10a・・10h・・マル
チプレクサ、11a・・11h・・マルチプレクサ、1
2・・データ・パス・コントローラ。
2n・・プライベート・キャッシュ、3・・共有バス、
4・・共有メモリ、5・・アドレス/コマンド・バス、
6a・・6n・・データ・パス、7・・データ・パス・
スイッチ、8a・・8m・・データ・パス、9a・・9
m・・メモリ・モジュール、10a・・10h・・マル
チプレクサ、11a・・11h・・マルチプレクサ、1
2・・データ・パス・コントローラ。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭54−140841(JP,A) 特開 平2−294762(JP,A) 特開 平2−186456(JP,A) 特開 平2−238534(JP,A)
Claims (6)
- 【請求項1】複数のプロセッサと、 複数のモジュールに分割された主メモリと、 上記プロセッサの各々に設けられたキャッシュ・メモリ
と、 伝送データのアドレス情報に基づいて上記キャッシュ・
メモリの各々と上記モジュールの各々との間を選択的に
結合し、データ情報を転送するためのインターコネクシ
ョン・ネットワーク構造と、 上記アドレス情報を上記キャッシュ・メモリの各々に伝
送するために上記キャッシュ・メモリの各々に結合され
る共有バス構造とを有し、 上記キャッシュ・メモリの各々が上記共有バス構造を介
して伝送されるアドレス情報を監視して所望の記憶デー
タ一貫性手続きを行うことと、上記データ情報が上記共
有バス構造を介して転送されないことを特徴とするマル
チプロセッサ・システム。 - 【請求項2】上記主メモリはアドレスの大きさに応じて
上記モジュールに分割されている請求項1記載のマルチ
プロセッサ・システム。 - 【請求項3】上記メモリは、上記キャッシュ・メモリの
伝送単位の各セグメントを対応する上記モジュールに分
配する態様で上記モジュールに分割される請求項1記載
のマルチプロセッサ・システム。 - 【請求項4】上記キャッシュ・メモリの間のデータの伝
送はソースのキャッシュ・メモリから上記主メモリへの
データの伝送と、上記主メモリから宛先のキャッシュ・
メモリへのデータの伝送により行われる請求項1記載の
マルチプロセッサ・システム。 - 【請求項5】複数のプロセッサと、 複数のモジュールに分割された主メモリと、 上記プロセッサの各々に設けられたキャッシュ・メモリ
と、 伝送データのアドレス情報に基づいて上記キャッシュ・
メモリの各々と上記モジュールの各々との間および上記
キャッシュ・メモリ同士の間を選択的に結合し、データ
情報を転送するインターコネクション・ネットワーク構
造と、 上記アドレス情報を上記キャッシュ・メモリの各々に伝
送するために上記キャッシュ・メモリの各々に結合され
る共有バス構造とを有し、 上記キャッシュ・メモリの各々が上記共有バス構造を介
して伝送されるアドレス情報を監視して所望の記憶デー
タ一貫性手続きを行うことと、上記データ情報が上記共
有バス構造を介して転送されないことを特徴とするマル
チプロセッサ・システム。 - 【請求項6】複数のプロセッサ、これらプロセッサの各
々に設けられたキャッシュ・メモリおよび主メモリを具
備するマルチプロセッサ・システムに用いるデータ伝送
装置において、 伝送データのアドレス情報に基づいて上記キャッシュ・
メモリの各々と上記主メモリのモジュールの各々との間
を選択的に結合し、データ情報を転送するインターコネ
クション・ネットワーク構造と、 上記アドレス情報を上記キャッシュ・メモリの各々に伝
送するために上記キャッシュ・メモリの各々に結合され
る共有バス構造とを有することと、上記データ情報が上
記共有バス構造を介して転送されないことを特徴とする
マルチプロセッサ・システムのデータ伝送装置。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3116693A JPH0776942B2 (ja) | 1991-04-22 | 1991-04-22 | マルチプロセッサ・システムおよびそのデータ伝送装置 |
| CA002062909A CA2062909C (en) | 1991-04-22 | 1992-03-12 | Multiprocessor system and data transmission apparatus thereof |
| EP92302855A EP0510821A1 (en) | 1991-04-22 | 1992-04-01 | Multiprocessor cache system |
| BR929201347A BR9201347A (pt) | 1991-04-22 | 1992-04-13 | Sistema multiprocessador e aparelho de transmissao de dados para o mesmo |
| US07/870,539 US5386511A (en) | 1991-04-22 | 1992-04-17 | Multiprocessor system and data transmission apparatus thereof |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP3116693A JPH0776942B2 (ja) | 1991-04-22 | 1991-04-22 | マルチプロセッサ・システムおよびそのデータ伝送装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04328653A JPH04328653A (ja) | 1992-11-17 |
| JPH0776942B2 true JPH0776942B2 (ja) | 1995-08-16 |
Family
ID=14693520
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP3116693A Expired - Lifetime JPH0776942B2 (ja) | 1991-04-22 | 1991-04-22 | マルチプロセッサ・システムおよびそのデータ伝送装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5386511A (ja) |
| EP (1) | EP0510821A1 (ja) |
| JP (1) | JPH0776942B2 (ja) |
| BR (1) | BR9201347A (ja) |
| CA (1) | CA2062909C (ja) |
Families Citing this family (45)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5724549A (en) * | 1992-04-06 | 1998-03-03 | Cyrix Corporation | Cache coherency without bus master arbitration signals |
| US5623698A (en) * | 1993-04-30 | 1997-04-22 | Cray Research, Inc. | Memory interconnect network having separate routing networks for inputs and outputs using switches with FIFO queues and message steering bits |
| US5797026A (en) * | 1994-02-28 | 1998-08-18 | Intel Corporation | Method and apparatus for self-snooping a bus during a boundary transaction |
| US5572702A (en) * | 1994-02-28 | 1996-11-05 | Intel Corporation | Method and apparatus for supporting read, write, and invalidation operations to memory which maintain cache consistency |
| WO1996030837A1 (en) * | 1995-03-31 | 1996-10-03 | Shablamm Computer Inc. | Upgradable, cpu portable multi-processor crossbar interleaved computer |
| WO1997011419A2 (en) * | 1995-09-08 | 1997-03-27 | Shablamm Computer, Inc. | Synchronous multi-port random access memory |
| US6728258B1 (en) | 1995-11-15 | 2004-04-27 | Hitachi, Ltd. | Multi-processor system and its network |
| US6011791A (en) * | 1995-11-15 | 2000-01-04 | Hitachi, Ltd. | Multi-processor system and its network |
| US5809537A (en) * | 1995-12-08 | 1998-09-15 | International Business Machines Corp. | Method and system for simultaneous processing of snoop and cache operations |
| US6038644A (en) * | 1996-03-19 | 2000-03-14 | Hitachi, Ltd. | Multiprocessor system with partial broadcast capability of a cache coherent processing request |
| US5930822A (en) * | 1996-09-27 | 1999-07-27 | Hewlett-Packard Co. | Method and system for maintaining strong ordering in a coherent memory system |
| US5991819A (en) * | 1996-12-03 | 1999-11-23 | Intel Corporation | Dual-ported memory controller which maintains cache coherency using a memory line status table |
| JP3864509B2 (ja) * | 1997-08-19 | 2007-01-10 | 株式会社日立製作所 | マルチプロセッサシステム |
| DE69720002T2 (de) * | 1997-12-11 | 2003-10-16 | Bull S.A., Louveciennes | Methode um Daten in einem Multiprozessorrechner über einen Crossbarschalter zu übertragen |
| US6434649B1 (en) * | 1998-10-14 | 2002-08-13 | Hitachi, Ltd. | Data streamer |
| US6389494B1 (en) | 1998-12-30 | 2002-05-14 | Emc Corporation | System for interfacing a data storage system to a host utilizing a plurality of busses for carrying end-user data and a separate bus for carrying interface state data |
| US7073020B1 (en) | 1999-01-04 | 2006-07-04 | Emc Corporation | Method for message transfer in computer storage system |
| US7117275B1 (en) | 1999-01-04 | 2006-10-03 | Emc Corporation | Data storage system having separate data transfer section and message network |
| US6597692B1 (en) | 1999-04-21 | 2003-07-22 | Hewlett-Packard Development, L.P. | Scalable, re-configurable crossbar switch architecture for multi-processor system interconnection networks |
| US6378029B1 (en) | 1999-04-21 | 2002-04-23 | Hewlett-Packard Company | Scalable system control unit for distributed shared memory multi-processor systems |
| US6263415B1 (en) | 1999-04-21 | 2001-07-17 | Hewlett-Packard Co | Backup redundant routing system crossbar switch architecture for multi-processor system interconnection networks |
| JP2001167069A (ja) * | 1999-12-13 | 2001-06-22 | Fujitsu Ltd | マルチプロセッサシステム及びデータ転送方法 |
| US7003601B1 (en) | 2000-03-31 | 2006-02-21 | Emc Corporation | Data storage system having separate data transfer section and message network with plural directions on a common printed circuit board |
| US6993621B1 (en) | 2000-03-31 | 2006-01-31 | Emc Corporation | Data storage system having separate data transfer section and message network with plural directors on a common printed circuit board and redundant switching networks |
| US7010575B1 (en) | 2000-03-31 | 2006-03-07 | Emc Corporation | Data storage system having separate data transfer section and message network having bus arbitration |
| US7007194B1 (en) | 2000-06-29 | 2006-02-28 | Emc Corporation | Data storage system having point-to-point configuration |
| US6779071B1 (en) | 2000-04-28 | 2004-08-17 | Emc Corporation | Data storage system having separate data transfer section and message network with status register |
| KR100335504B1 (ko) * | 2000-06-30 | 2002-05-09 | 윤종용 | 제어 및 어드레스 버스를 공유하는 2채널 메모리 시스템및 이에 채용되는 메모리 모듈 |
| US6973544B2 (en) * | 2002-01-09 | 2005-12-06 | International Business Machines Corporation | Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system |
| US6928519B2 (en) * | 2002-06-28 | 2005-08-09 | Sun Microsystems, Inc. | Mechanism for maintaining cache consistency in computer systems |
| WO2004107180A1 (ja) * | 2003-05-30 | 2004-12-09 | Fujitsu Limited | マルチプロセッサシステム |
| DE102004009497B3 (de) * | 2004-02-27 | 2005-06-30 | Infineon Technologies Ag | Chipintegriertes Mehrprozessorsystem und Verfahren zur Kommunikation zwischen mehreren Prozessoren eines chipintegrierten Mehrprozessorsystems |
| US8254411B2 (en) * | 2005-02-10 | 2012-08-28 | International Business Machines Corporation | Data processing system, method and interconnect fabric having a flow governor |
| KR100766666B1 (ko) * | 2005-06-15 | 2007-10-11 | 후지쯔 가부시끼가이샤 | 멀티프로세서 시스템 |
| US7747833B2 (en) * | 2005-09-30 | 2010-06-29 | Mosaid Technologies Incorporated | Independent link and bank selection |
| US20070076502A1 (en) | 2005-09-30 | 2007-04-05 | Pyeon Hong B | Daisy chain cascading devices |
| US7652922B2 (en) * | 2005-09-30 | 2010-01-26 | Mosaid Technologies Incorporated | Multiple independent serial link memory |
| US11948629B2 (en) | 2005-09-30 | 2024-04-02 | Mosaid Technologies Incorporated | Non-volatile memory device with concurrent bank operations |
| EP1932158A4 (en) | 2005-09-30 | 2008-10-15 | Mosaid Technologies Inc | MEMORY WITH OUTPUT CONTROL |
| US7500062B2 (en) * | 2005-11-17 | 2009-03-03 | International Business Machines Corporation | Fast path memory read request processing in a multi-level memory architecture |
| US8214660B2 (en) | 2006-07-26 | 2012-07-03 | International Business Machines Corporation | Structure for an apparatus for monitoring and controlling heat generation in a multi-core processor |
| US8266386B2 (en) | 2007-10-30 | 2012-09-11 | International Business Machines Corporation | Structure for maintaining memory data integrity in a processor integrated circuit using cache coherency protocols |
| US8108618B2 (en) * | 2007-10-30 | 2012-01-31 | International Business Machines Corporation | Method and apparatus for maintaining memory data integrity in an information handling system using cache coherency protocols |
| US20130111149A1 (en) * | 2011-10-26 | 2013-05-02 | Arteris SAS | Integrated circuits with cache-coherency |
| US10423550B2 (en) | 2017-10-25 | 2019-09-24 | International Business Machines Corporation | Managing efficient selection of a particular processor thread for handling an interrupt |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS54140841A (en) * | 1978-04-25 | 1979-11-01 | Nec Corp | Memory control system of multiprocessor system |
| US4959777A (en) * | 1987-07-27 | 1990-09-25 | Motorola Computer X | Write-shared cache circuit for multiprocessor system |
| JPH0680499B2 (ja) * | 1989-01-13 | 1994-10-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
| US5276828A (en) * | 1989-03-01 | 1994-01-04 | Digital Equipment Corporation | Methods of maintaining cache coherence and processor synchronization in a multiprocessor system using send and receive instructions |
| JPH0721781B2 (ja) * | 1989-03-13 | 1995-03-08 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセツサ・システム |
| EP0392184A3 (en) * | 1989-04-12 | 1992-07-15 | International Business Machines Corporation | Hierarchical memory organization |
| US5265235A (en) * | 1990-11-30 | 1993-11-23 | Xerox Corporation | Consistency protocols for shared memory multiprocessors |
-
1991
- 1991-04-22 JP JP3116693A patent/JPH0776942B2/ja not_active Expired - Lifetime
-
1992
- 1992-03-12 CA CA002062909A patent/CA2062909C/en not_active Expired - Fee Related
- 1992-04-01 EP EP92302855A patent/EP0510821A1/en not_active Withdrawn
- 1992-04-13 BR BR929201347A patent/BR9201347A/pt not_active Application Discontinuation
- 1992-04-17 US US07/870,539 patent/US5386511A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH04328653A (ja) | 1992-11-17 |
| CA2062909A1 (en) | 1992-10-23 |
| BR9201347A (pt) | 1992-12-01 |
| CA2062909C (en) | 1997-04-01 |
| EP0510821A1 (en) | 1992-10-28 |
| US5386511A (en) | 1995-01-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0776942B2 (ja) | マルチプロセッサ・システムおよびそのデータ伝送装置 | |
| US5749095A (en) | Multiprocessing system configured to perform efficient write operations | |
| US6480927B1 (en) | High-performance modular memory system with crossbar connections | |
| US6631448B2 (en) | Cache coherence unit for interconnecting multiprocessor nodes having pipelined snoopy protocol | |
| JP2516300B2 (ja) | 多重プロセツサ・システムの性能の最適化装置及び方法 | |
| US5577204A (en) | Parallel processing computer system interconnections utilizing unidirectional communication links with separate request and response lines for direct communication or using a crossbar switching device | |
| US7017011B2 (en) | Coherence controller for a multiprocessor system, module, and multiprocessor system with a multimodule architecture incorporating such a controller | |
| EP0598535B1 (en) | Pending write-back controller for a cache controller coupled to a packet switched memory bus | |
| US6253292B1 (en) | Distributed shared memory multiprocessor system based on a unidirectional ring bus using a snooping scheme | |
| US7032078B2 (en) | Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols | |
| US5734922A (en) | Multiprocessing system configured to detect and efficiently provide for migratory data access patterns | |
| KR20000036144A (ko) | 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법 | |
| US7222220B2 (en) | Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices | |
| US6092136A (en) | Multi-processor central processing unit | |
| CN117997852B (zh) | 一种交换芯片上的缓存控制装置、方法、芯片及存储介质 | |
| KR100257993B1 (ko) | 분산 공유 메모리 시스템에서 미세 통신과 대단위 통신의 병합을 위한 적응형 입도 방법 | |
| US5796979A (en) | Data processing system having demand based write through cache with enforced ordering | |
| EP1224553B1 (en) | Multi-processor system and method of accessing data therein | |
| EP4453706B1 (en) | Coherent block read fulfillment | |
| EP1701267B1 (en) | Address snoop method and multi-processor system | |
| JP3086261B2 (ja) | マルチプロセッサ・システム用バス構造 | |
| EP0531004A2 (en) | Multiprocessor data processing with cross interrogate synchronization mechanism | |
| KR100268812B1 (ko) | 분산 공유 메모리 구조를 갖는 다중 프로세서 시스템의 캐시 일관성 유지방법 및 장치 | |
| US6636948B2 (en) | Method and system for a processor to gain assured ownership of an up-to-date copy of data | |
| JPH06231033A (ja) | 分散共有メモリシステムを有するデータ処理装置 |