JP2809961B2 - マルチプロセッサ - Google Patents
マルチプロセッサInfo
- Publication number
- JP2809961B2 JP2809961B2 JP5041188A JP4118893A JP2809961B2 JP 2809961 B2 JP2809961 B2 JP 2809961B2 JP 5041188 A JP5041188 A JP 5041188A JP 4118893 A JP4118893 A JP 4118893A JP 2809961 B2 JP2809961 B2 JP 2809961B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- processing
- directory
- group
- copy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0817—Cache consistency protocols using directory methods
- G06F12/0826—Limited pointers directories; State-only directories without pointers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】この発明は、メモリデータの複製
の存在場所を、データメモリに付随したディレクトリメ
モリに格納した情報により管理するマルチプロセッサに
関する。
の存在場所を、データメモリに付随したディレクトリメ
モリに格納した情報により管理するマルチプロセッサに
関する。
【0002】
【従来の技術】大規模な共有メモリ型のマルチプロセッ
サを構成する場合、メモリに対するアクセス速度とバン
ド幅(バス幅xバス速度)が性能を律する大きな要因と
なる。例えば、共有メモリに対するアクセス経路が単一
のバス結合型マルチプロセッサの場合、複数のプロセッ
サがバスを取り合うため、アクセス頻度が高くなると競
合が多く発生し、このための待ちが原因で性能が上がら
なくなる。また、一般に共有メモリのアクセス時間は、
プロセッサの処理速度に比べて非常に大きいため、プロ
セッサの性能が活かせないという欠点がある。
サを構成する場合、メモリに対するアクセス速度とバン
ド幅(バス幅xバス速度)が性能を律する大きな要因と
なる。例えば、共有メモリに対するアクセス経路が単一
のバス結合型マルチプロセッサの場合、複数のプロセッ
サがバスを取り合うため、アクセス頻度が高くなると競
合が多く発生し、このための待ちが原因で性能が上がら
なくなる。また、一般に共有メモリのアクセス時間は、
プロセッサの処理速度に比べて非常に大きいため、プロ
セッサの性能が活かせないという欠点がある。
【0003】これに対して、メモリデータの複製をプロ
セッサに近いところに有し、上記の欠点を解決しようと
する方式が一般的になっている。すなわち、メモリデー
タの複製をローカルメモリに持たせる方式やキャッシュ
メモリに持たせる方式が一般的になっている。これらの
方式では、共有メモリに対するグローバルなアクセス経
路を経ずにアクセスできるプロセッサローカルなメモリ
を有し、これに共有メモリデータの複製を保持する。ロ
ーカルなメモリの場合、大規模な共有メモリと比べて、
一般に高速アクセスが可能であり、またグローバルなア
クセス経路を使わないことからバンド幅の問題も緩和さ
れる。
セッサに近いところに有し、上記の欠点を解決しようと
する方式が一般的になっている。すなわち、メモリデー
タの複製をローカルメモリに持たせる方式やキャッシュ
メモリに持たせる方式が一般的になっている。これらの
方式では、共有メモリに対するグローバルなアクセス経
路を経ずにアクセスできるプロセッサローカルなメモリ
を有し、これに共有メモリデータの複製を保持する。ロ
ーカルなメモリの場合、大規模な共有メモリと比べて、
一般に高速アクセスが可能であり、またグローバルなア
クセス経路を使わないことからバンド幅の問題も緩和さ
れる。
【0004】しかし、メモリデータの複製が複数箇所に
存在することから、これらの間で一貫性を保たなければ
ならないという問題が生ずる。これを解決する方法とし
ては種々のものが考えられている。その中の1つに、共
有メモリに付随してディレクトリメモリを有し、ここに
メモリデータの複製がどのプロセッシングエレメントに
存在するかという情報を保持する方式がある。
存在することから、これらの間で一貫性を保たなければ
ならないという問題が生ずる。これを解決する方法とし
ては種々のものが考えられている。その中の1つに、共
有メモリに付随してディレクトリメモリを有し、ここに
メモリデータの複製がどのプロセッシングエレメントに
存在するかという情報を保持する方式がある。
【0005】図5は、この方式を採用したシステムの1
つの構成例を示す図である。この例では、システムは共
有メモリ10、8つのプロセッシングエレメント20,
21,...27、および結合ネットワーク30から構
成される。
つの構成例を示す図である。この例では、システムは共
有メモリ10、8つのプロセッシングエレメント20,
21,...27、および結合ネットワーク30から構
成される。
【0006】プロセッシングエレメント20はCPU2
01、およびキャッシュ202から構成され、他のプロ
セッシングエレメント21、...27も同様の構成を
有する。
01、およびキャッシュ202から構成され、他のプロ
セッシングエレメント21、...27も同様の構成を
有する。
【0007】結合ネットワーク30は、バス、クロスバ
スイッチ、その他の一般ネットワークなど任意の形式を
取ることができるが、この構成に関してはこの発明に直
接関係しないのでその詳細は省略する。
スイッチ、その他の一般ネットワークなど任意の形式を
取ることができるが、この構成に関してはこの発明に直
接関係しないのでその詳細は省略する。
【0008】共有メモリ10は、データメモリ102、
ディレクトリメモリ101、ディレクトリ情報制御部1
03から成る。データメモリ102は、複数のブロック
に分割されており、このブロックを単位として各プロセ
ッシングエレメントのキャッシュにデータがコピーされ
る。
ディレクトリメモリ101、ディレクトリ情報制御部1
03から成る。データメモリ102は、複数のブロック
に分割されており、このブロックを単位として各プロセ
ッシングエレメントのキャッシュにデータがコピーされ
る。
【0009】ディレクトリメモリ101は、メモリデー
タの各ブロックの複製がどのプロセッシングエレメント
に存在するかという情報を保持している。ディレクトリ
メモリ101はメモリデータ102の各ブロック数に対
応した数のエントリを有する。このディレクトリメモリ
のエントリの構成例を図3に示す。この例では、各エン
トリは8ビットから構成される。エントリの各ビット
は、各プロセッシングエレメントに対応している。この
ビットが”1”を表わしているときは、対応するメモリ
データブロックの複製がそのプロセッシングエレメント
に保持されていることを示す。
タの各ブロックの複製がどのプロセッシングエレメント
に存在するかという情報を保持している。ディレクトリ
メモリ101はメモリデータ102の各ブロック数に対
応した数のエントリを有する。このディレクトリメモリ
のエントリの構成例を図3に示す。この例では、各エン
トリは8ビットから構成される。エントリの各ビット
は、各プロセッシングエレメントに対応している。この
ビットが”1”を表わしているときは、対応するメモリ
データブロックの複製がそのプロセッシングエレメント
に保持されていることを示す。
【0010】なお、ディレクトリメモリにはこの他にエ
ントリが修正されたことを示すmodified bi
t”などの属性ビットを持つことがあるが、この発明と
は直接関係ないので説明を省略する。
ントリが修正されたことを示すmodified bi
t”などの属性ビットを持つことがあるが、この発明と
は直接関係ないので説明を省略する。
【0011】このように構成されたシステムでは、ある
ブロックのメモリデータの複製に対して無効化などの処
理が必要になった場合には、まずディレクトリ情報制御
部103が、ディレクトリメモリ101のエントリを読
み出す。これにより、そのメモリデータの複製の存在す
るプロセッシングエレメントを知ることができるので、
このプロセッシングエレメントに対して所定のメッセー
ジを送ることにより所望の処理を行なうことができる。
ブロックのメモリデータの複製に対して無効化などの処
理が必要になった場合には、まずディレクトリ情報制御
部103が、ディレクトリメモリ101のエントリを読
み出す。これにより、そのメモリデータの複製の存在す
るプロセッシングエレメントを知ることができるので、
このプロセッシングエレメントに対して所定のメッセー
ジを送ることにより所望の処理を行なうことができる。
【0012】しかし、このような構成を採用するシステ
ムでは、プロセッシングエレメント数に比例した容量の
ディレクトリメモリが必要となる。従って、プロセッシ
ングエレメント数が増加すると、それに伴ってディレク
トリメモリ量も増加し、その量的オーバヘッド(すなわ
ち、オペレーティングシステムが占めるメインメモリ領
域量や使用するファイル容量あるいはその比率)が増加
する。
ムでは、プロセッシングエレメント数に比例した容量の
ディレクトリメモリが必要となる。従って、プロセッシ
ングエレメント数が増加すると、それに伴ってディレク
トリメモリ量も増加し、その量的オーバヘッド(すなわ
ち、オペレーティングシステムが占めるメインメモリ領
域量や使用するファイル容量あるいはその比率)が増加
する。
【0013】例えば、256個のプロセッシングエレメ
ントに対応するためには、ディレクトリメモリのエント
リは1ブロックあたり、256ビット=32バイトの大
きさが必要となり、メモリブロックが32バイトから成
るシステムでは、データメモリとディレクトリメモリの
大きさが等しくなるという状態になる。
ントに対応するためには、ディレクトリメモリのエント
リは1ブロックあたり、256ビット=32バイトの大
きさが必要となり、メモリブロックが32バイトから成
るシステムでは、データメモリとディレクトリメモリの
大きさが等しくなるという状態になる。
【0014】
【発明が解決しようとする課題】このように従来のディ
レクトリ方式のマルチプロセッサでは、プロセッシング
エレメントの個数分のディレクトリ情報が必要となるた
め、多くのプロセッシングエレメントを有するシステム
では、ディレクトリメモリの量が増大し、量的なオーバ
ヘッドが大きくなるという欠点があった。
レクトリ方式のマルチプロセッサでは、プロセッシング
エレメントの個数分のディレクトリ情報が必要となるた
め、多くのプロセッシングエレメントを有するシステム
では、ディレクトリメモリの量が増大し、量的なオーバ
ヘッドが大きくなるという欠点があった。
【0015】この発明の目的は、プロセッシングエレメ
ントの個数に関係なく一定のディレクトリメモリを用意
するだけで良い、メモリ効率の高いディレクトリ方式の
マルチプロセッサを提供することである。
ントの個数に関係なく一定のディレクトリメモリを用意
するだけで良い、メモリ効率の高いディレクトリ方式の
マルチプロセッサを提供することである。
【0016】
【課題を解決するための手段および作用】この発明によ
れば、複数のブロックに分割されたメインメモリと、お
のおのにこのメインメモリのブロックデータの複製を保
持するメモリを有する複数のプロセッシングエレメント
と、このメインメモリのブロックデータの複製を保持す
るメモリに付随して、メモリブロックデータの複製がど
のプロセッシンググループに保持されているかの情報を
保持するディレクトリメモリを有するマルチプロセッサ
において、前記複数のプロセッシングエレメントは各々
少なくとも1つのプロセッシングエレメントを含む複数
のプロセッシンググループに分けられ、前記ディレクト
リメモリの各エントリはこのプロセッシンググループの
各々に対応するビットの列を含み、このビット列は、対
応する前記プロセッシンググループに属するプロセッシ
ングエレメントのうちの少なくとも1つがこのメモリブ
ロックの複製を有することを示し、前記ディレクトリメ
モリエントリに格納された情報からこのメモリブロック
データの複製を保持する可能性を有するプロセッシング
エレメントを同定するグループ情報制御部と、前記ディ
レクトリメモリからエントリを読みだし、かつ前記グル
ープ情報制御部により同定されたプロセッシングエレメ
ントに対して所定のメッセージを送るディレクトリ情報
制御部とを備えている。
れば、複数のブロックに分割されたメインメモリと、お
のおのにこのメインメモリのブロックデータの複製を保
持するメモリを有する複数のプロセッシングエレメント
と、このメインメモリのブロックデータの複製を保持す
るメモリに付随して、メモリブロックデータの複製がど
のプロセッシンググループに保持されているかの情報を
保持するディレクトリメモリを有するマルチプロセッサ
において、前記複数のプロセッシングエレメントは各々
少なくとも1つのプロセッシングエレメントを含む複数
のプロセッシンググループに分けられ、前記ディレクト
リメモリの各エントリはこのプロセッシンググループの
各々に対応するビットの列を含み、このビット列は、対
応する前記プロセッシンググループに属するプロセッシ
ングエレメントのうちの少なくとも1つがこのメモリブ
ロックの複製を有することを示し、前記ディレクトリメ
モリエントリに格納された情報からこのメモリブロック
データの複製を保持する可能性を有するプロセッシング
エレメントを同定するグループ情報制御部と、前記ディ
レクトリメモリからエントリを読みだし、かつ前記グル
ープ情報制御部により同定されたプロセッシングエレメ
ントに対して所定のメッセージを送るディレクトリ情報
制御部とを備えている。
【0017】この発明のマルチプロセッサによれば、デ
ータメモリとともにこれに付随したディレクトリメモリ
を有し、このディレクトリメモリにメモリデータの複製
がどのプロセッシンググループに保持されているかとい
う情報を格納する。複数のプロセッシングエレメントを
まとめて1つのグループとし、ディレクトリメモリの各
エントリを構成する各ビットは、各プロセッシンググル
ープに対応している。このプロセッシングループに属す
る複数のプロセッシングエレメントのうちの少なくとも
1つにデータの複製が存在することを示すように構成さ
れ、このグループ情報を制御するグループ情報制御部
と、ディレクト情報制御部とを有することを特徴とす
る。
ータメモリとともにこれに付随したディレクトリメモリ
を有し、このディレクトリメモリにメモリデータの複製
がどのプロセッシンググループに保持されているかとい
う情報を格納する。複数のプロセッシングエレメントを
まとめて1つのグループとし、ディレクトリメモリの各
エントリを構成する各ビットは、各プロセッシンググル
ープに対応している。このプロセッシングループに属す
る複数のプロセッシングエレメントのうちの少なくとも
1つにデータの複製が存在することを示すように構成さ
れ、このグループ情報を制御するグループ情報制御部
と、ディレクト情報制御部とを有することを特徴とす
る。
【0018】この発明によれば、あるメモリブロックの
複製に対して無効化などの処理を行なう場合には、ディ
レクトリ情報制御部は、ディレクトリメモリからディレ
クトリ情報(メモリデータの複製がどのプロセッシング
グループに保持されているかを示す情報)を読みだし、
グループ情報制御部はこの情報から複製を持つプロセッ
シングループを同定し、これに属するプロセッシングエ
レメント群を知る。ディレクトリ情報制御部はこの情報
にもとずき、このプロセッシングエレメント群の各々に
所定のメッセージを送る。これにより、プロセッシング
エレメント数に関わらず一定のディレクトリメモリを用
意するだけで済み、メモリ効率の高いディレクトリ方式
が実現される。
複製に対して無効化などの処理を行なう場合には、ディ
レクトリ情報制御部は、ディレクトリメモリからディレ
クトリ情報(メモリデータの複製がどのプロセッシング
グループに保持されているかを示す情報)を読みだし、
グループ情報制御部はこの情報から複製を持つプロセッ
シングループを同定し、これに属するプロセッシングエ
レメント群を知る。ディレクトリ情報制御部はこの情報
にもとずき、このプロセッシングエレメント群の各々に
所定のメッセージを送る。これにより、プロセッシング
エレメント数に関わらず一定のディレクトリメモリを用
意するだけで済み、メモリ効率の高いディレクトリ方式
が実現される。
【0019】
【実施例】図1は、この発明のディレクトリ方式マルチ
プロセッサの一実施例をしめすブロック図、図3はこの
実施例のディレクトリメモリのエントリの内容を示すブ
ロック図、図4は上記実施例のプロセッシングループの
構成方法を示すブロック図である。
プロセッサの一実施例をしめすブロック図、図3はこの
実施例のディレクトリメモリのエントリの内容を示すブ
ロック図、図4は上記実施例のプロセッシングループの
構成方法を示すブロック図である。
【0020】この例では、システムは共有メモリ40、
8つのプロセッシングエレメント20、21、...2
7、および結合ネットワーク30から構成される。な
お、このほかにネットワークアクセス制御部203、2
13、...273を有する。ネットワークアクセス制
御部203、213、...273は周知の技術で構成
可能である。
8つのプロセッシングエレメント20、21、...2
7、および結合ネットワーク30から構成される。な
お、このほかにネットワークアクセス制御部203、2
13、...273を有する。ネットワークアクセス制
御部203、213、...273は周知の技術で構成
可能である。
【0021】プロセッシングエレメント20は従来例と
同様にCPU201およびキャッシュ202から成り、
他のプロセッシングエレメント21、...27もこれ
と同様の構成を有する。
同様にCPU201およびキャッシュ202から成り、
他のプロセッシングエレメント21、...27もこれ
と同様の構成を有する。
【0022】プロセッシングエレメントは2個が組にな
って1グループを構成する。すなわち、プロセッシング
エレメント20と21がプロセッシングループ50を構
成し、以下同様に53までの4つのプロセッシングルー
プが存在する。プロセッシングループは一般的に次のよ
うな方法で構成できる。いま、プロセッシングエレメン
トに与えられたアドレス(以下、エンドアドレスと呼
ぶ)を構成するビット列を an-1 ,an-2 ,...a1 ,a0 また、ディレクトリメモリのエントリを構成するビット
列を dk-1 ,dk-2 ,...d1 ,d0 とする。ここで k=2m n≧m である。このとき、 an-1 ,an-2 ,...an−m
って1グループを構成する。すなわち、プロセッシング
エレメント20と21がプロセッシングループ50を構
成し、以下同様に53までの4つのプロセッシングルー
プが存在する。プロセッシングループは一般的に次のよ
うな方法で構成できる。いま、プロセッシングエレメン
トに与えられたアドレス(以下、エンドアドレスと呼
ぶ)を構成するビット列を an-1 ,an-2 ,...a1 ,a0 また、ディレクトリメモリのエントリを構成するビット
列を dk-1 ,dk-2 ,...d1 ,d0 とする。ここで k=2m n≧m である。このとき、 an-1 ,an-2 ,...an−m
【0023】で構成されるmビットのビット列で表わさ
れる値(0〜2m ー1)をプロセッシングループ番号
iと呼び、各プロセッシングエレメントはグループiに
属するものとする。
れる値(0〜2m ー1)をプロセッシングループ番号
iと呼び、各プロセッシングエレメントはグループiに
属するものとする。
【0024】共有メモリ40は、データメモリ402、
ディレクトリメモリ401、ディレクトリ情報制御部4
03、およびグループ情報制御部404から成る。デー
タメモリ402は複数のブロックに分割されている。こ
のブロックの分割単位は、キャッシュの転送単位(ブロ
ックキャッシュの1ラインの単位、この実施例では、3
2バイト)により決定される。このブロックを単位とし
て各プロセッシングエレメントのキャッシュ202、2
12、...272にデータがコピーされる。プロセッ
シングループiに対応するディレクトリメモリエントリ
のビット位置は、 複製が存在することを示す。
ディレクトリメモリ401、ディレクトリ情報制御部4
03、およびグループ情報制御部404から成る。デー
タメモリ402は複数のブロックに分割されている。こ
のブロックの分割単位は、キャッシュの転送単位(ブロ
ックキャッシュの1ラインの単位、この実施例では、3
2バイト)により決定される。このブロックを単位とし
て各プロセッシングエレメントのキャッシュ202、2
12、...272にデータがコピーされる。プロセッ
シングループiに対応するディレクトリメモリエントリ
のビット位置は、 複製が存在することを示す。
【0025】ディレクトリメモリ401のエントリの構
成例を図3に示す。各エントリは4ビットから成り、こ
の各ビットが各プロセッシングループに対応している。
この例では、プロセッシングループ1、2、および3
(図中では、各々51、52、53に対応)に当該メモ
リブロックの複製が保持されている。
成例を図3に示す。各エントリは4ビットから成り、こ
の各ビットが各プロセッシングループに対応している。
この例では、プロセッシングループ1、2、および3
(図中では、各々51、52、53に対応)に当該メモ
リブロックの複製が保持されている。
【0026】結合ネットワーク30は、バス、クロスバ
スイッチ、その他の一般ネットワークなど任意の形式を
とることができるが、この構成に関してはこの発明とは
関係無いため詳細は省略する。次に、上述の如く構成さ
れた実施例の動作について説明する。
スイッチ、その他の一般ネットワークなど任意の形式を
とることができるが、この構成に関してはこの発明とは
関係無いため詳細は省略する。次に、上述の如く構成さ
れた実施例の動作について説明する。
【0027】あるブロックのメモリデータの複製に対し
て無効化などの処理が必要になった場合には、まずディ
レクトリ情報制御部403が、ディレクトリメモリ40
1のエントリを読み出す。
て無効化などの処理が必要になった場合には、まずディ
レクトリ情報制御部403が、ディレクトリメモリ40
1のエントリを読み出す。
【0028】グループ情報制御部404は、このディレ
クトリメモリのエントリ情報から、そのメモリデータの
複製の存在するプロセッシングループを同定でき、さら
に、これからデータの複製を保持しているプロセッシン
グエレメントの候補を知ることができる。
クトリメモリのエントリ情報から、そのメモリデータの
複製の存在するプロセッシングループを同定でき、さら
に、これからデータの複製を保持しているプロセッシン
グエレメントの候補を知ることができる。
【0029】ディレクトリ情報制御部403は、グルー
プ情報制御部404からの情報にもとずき、候補プロセ
ッシングエレメントの1つに所定のメッセージを送る。
これを受けたプロセッシングエレメントは所定の処理を
行い、その終了時にはその旨をディレクトリ情報制御部
403に伝える。
プ情報制御部404からの情報にもとずき、候補プロセ
ッシングエレメントの1つに所定のメッセージを送る。
これを受けたプロセッシングエレメントは所定の処理を
行い、その終了時にはその旨をディレクトリ情報制御部
403に伝える。
【0030】このとき、メッセージを受けたプロセッシ
ングエレメントは、該当するメモリブロックを保持して
いない場合には、直ちに処理終了の旨をディレクトリ情
報制御部403に伝える。ディレクトリ情報制御部40
3は候補プロセッシングエレメントの全てに対してこの
処理を繰り返し行なうことにより、所望の動作が実現で
きる。
ングエレメントは、該当するメモリブロックを保持して
いない場合には、直ちに処理終了の旨をディレクトリ情
報制御部403に伝える。ディレクトリ情報制御部40
3は候補プロセッシングエレメントの全てに対してこの
処理を繰り返し行なうことにより、所望の動作が実現で
きる。
【0031】なお、上述した実施例では、プロセッシン
グエレメントは1つのCPUを有するように構成した
が、プロセッシングエレメントに複数のCPUを持たせ
るように構成してもよい。例えば、図2に示すように、
プロセッシングエレメント90は複数のCPU901、
902、...903およびキャッシュ904で構成さ
れている。これらは一本のバスで接続されている。この
ようなシステムにおいても、全く同様のディレクトリメ
モリ方式で実現される。
グエレメントは1つのCPUを有するように構成した
が、プロセッシングエレメントに複数のCPUを持たせ
るように構成してもよい。例えば、図2に示すように、
プロセッシングエレメント90は複数のCPU901、
902、...903およびキャッシュ904で構成さ
れている。これらは一本のバスで接続されている。この
ようなシステムにおいても、全く同様のディレクトリメ
モリ方式で実現される。
【0032】また、上述の実施例では、候補となるプロ
セッシングエレメントに対するメッセージを逐次的に行
なっていたが、結合ネットワークに複数のエレメントに
対して同時にメッセージを送るブロードキャスト機能が
備わっていれば、これを利用することもできる。さら
に、これまで、メモリは一箇所に集中して存在する例を
示したが、これはプロセッシングエレメントに分散して
存在する場合にもこの発明は適用できる。
セッシングエレメントに対するメッセージを逐次的に行
なっていたが、結合ネットワークに複数のエレメントに
対して同時にメッセージを送るブロードキャスト機能が
備わっていれば、これを利用することもできる。さら
に、これまで、メモリは一箇所に集中して存在する例を
示したが、これはプロセッシングエレメントに分散して
存在する場合にもこの発明は適用できる。
【0033】図4はこの発明の他の実施例を示すブロッ
ク図である。この例では、システムは、複数のプロセッ
シングエレメント60、61、...、67および結合
ネットワーク80から構成される。
ク図である。この例では、システムは、複数のプロセッ
シングエレメント60、61、...、67および結合
ネットワーク80から構成される。
【0034】プロセッシングエレメント60はCPU6
01、キャッシュメモリ602、データメモリ605、
ディレクトリメモリ606、ディレクトリ情報制御部6
03、およびグループ情報制御部604から成る。
01、キャッシュメモリ602、データメモリ605、
ディレクトリメモリ606、ディレクトリ情報制御部6
03、およびグループ情報制御部604から成る。
【0035】このシステムでは、各プロセッシングエレ
メントに分散して存在するメモリは全てのCPUから直
接に、あるいは結合ネットワーク80を介してアクセス
することができる。なお、このための機構は、一般に分
散共有メモリ型マルチプロセッサで使用されている周知
の技術で実現可能であるので、ここでは説明を省略す
る。
メントに分散して存在するメモリは全てのCPUから直
接に、あるいは結合ネットワーク80を介してアクセス
することができる。なお、このための機構は、一般に分
散共有メモリ型マルチプロセッサで使用されている周知
の技術で実現可能であるので、ここでは説明を省略す
る。
【0036】メモリデータの複製はブロック単位で各プ
ロセッシングエレメントのキャッシュに保持される。プ
ロセッシングエレメントをグループ化する方法、ディレ
クトリメモリエントリの構成等は、第1実施例と同様で
ある。
ロセッシングエレメントのキャッシュに保持される。プ
ロセッシングエレメントをグループ化する方法、ディレ
クトリメモリエントリの構成等は、第1実施例と同様で
ある。
【0037】なお、この発明は上記実施例に限定される
ものではなく、要旨を逸脱しない範で適宜変更して実施
できる。例えば、ここでは、プロセッシングエレメント
の数を8つ、プロセッシンググループの数を4つとした
が、この数に特に意味はなく、実施例中に示した計算式
を満たす範囲で自由に構成して実施することができる。
また、図4に示す実施例においても、各プロセッシング
エレメントに含まれるCPUの数は1つに限らず複数個
のCPUを含むように構成してもよい。
ものではなく、要旨を逸脱しない範で適宜変更して実施
できる。例えば、ここでは、プロセッシングエレメント
の数を8つ、プロセッシンググループの数を4つとした
が、この数に特に意味はなく、実施例中に示した計算式
を満たす範囲で自由に構成して実施することができる。
また、図4に示す実施例においても、各プロセッシング
エレメントに含まれるCPUの数は1つに限らず複数個
のCPUを含むように構成してもよい。
【0038】
【発明の効果】以上説明したように、この発明によれ
ば、プロセッシングエレメントの個数に関係なく一定の
ディレクトリメモリを用意するだけで、メモリ効率の高
いディレクトリ方式マルチプロセッサを実現できる。従
って、大規模なマルチプロセッサシステムを構築するこ
とが容易になり、システムの性能を向上させることがで
きる。
ば、プロセッシングエレメントの個数に関係なく一定の
ディレクトリメモリを用意するだけで、メモリ効率の高
いディレクトリ方式マルチプロセッサを実現できる。従
って、大規模なマルチプロセッサシステムを構築するこ
とが容易になり、システムの性能を向上させることがで
きる。
【図1】この発明のマルチプロセッサの一実施例を示す
ブロック図。
ブロック図。
【図2】この発明のマルチプロセッサのプロセッシング
エレメントの一例を示すブロック図。
エレメントの一例を示すブロック図。
【図3】この発明のマルチプロセッサのディレクトリメ
モリのエントリの構成図。
モリのエントリの構成図。
【図4】この発明のマルチプロセッサの他の実施例を示
すブロック図。
すブロック図。
【図5】従来技術よるマルチプロセッサの一例を示す
図。
図。
【図6】従来技術によるマルチプロセッサの一例を示す
概略図である。
概略図である。
20、21、27、60、61、67、90...プロ
セッシングエレメント、201、211、271、60
1、901、902、903...CPU、202、2
12、212、272、602、904...キャッシ
ュ、30、80...結合ネットワーク、10、4
0...メモリ、101,401,606...ディレ
クトリメモリ、102、402、605...データメ
モリ、103、403、603...ディレクトリ情報
制御部、404、604...グループ情報制御部、5
0、53、70、73...プロセッシンググループ
セッシングエレメント、201、211、271、60
1、901、902、903...CPU、202、2
12、212、272、602、904...キャッシ
ュ、30、80...結合ネットワーク、10、4
0...メモリ、101,401,606...ディレ
クトリメモリ、102、402、605...データメ
モリ、103、403、603...ディレクトリ情報
制御部、404、604...グループ情報制御部、5
0、53、70、73...プロセッシンググループ
Claims (14)
- 【請求項1】 複数のブロックに分割された主記憶メモ
リと、前記主記憶メモリの各ブロックのデータの複製を
保持する記憶装置を各々有する複数のプロセッシングエ
レメントと、前記主記憶メモリに付随してメモリブロッ
クデータの複製がどのプロセッシングエレメントに保持
されているかの情報を保持するディレクトリメモリを有
するマルチプロセッサにおいて、 前記複数のプロセッシングエレメントを各々少なくとも
1つのプロセッシングエレメントを含む複数のプロセッ
シンググループに分け、 前記ディレクトリメモリの各エントリは前記プロセッシ
ンググループの各々に対応するビット列を含み、前記ビ
ット列は対応する前記プロセッシンググループに属する
プロセッシングエレメントのうちの少なくとも1つが前
記メモリブロックの複製を有することを示し、 前記デイレクトリメモリに格納された情報から前記メモ
リブロックデータの複製を保持するプロセッシンググル
ープを同定するグループ情報制御部と、 前記ディレクトリメモリからエントリを読み出し、かつ
前記グループ情報制御部により同定されたプロセッシン
グループに対して所定のメッセージを送るディレクトリ
情報制御部とを備えたことを特徴とするマルチプロセッ
サ。 - 【請求項2】 前記ディレクトリ情報制御部は、前記同
定されたプロセッシンググループを構成する各プロセッ
シングエレメントに対して逐次的に所定のメッセージを
送ることを特徴とする請求項1記載のマルチプロセッ
サ。 - 【請求項3】 前記ディレクトリ情報制御部は、前記同
定されたプロセッシンググループを構成する各プロセッ
シングエレメントに対して所定のメッセージをブロード
キャストすることを特徴とする請求項1記載のマルチプ
ロセッサ。 - 【請求項4】 前記所定のメッセージは、あるブロック
のメモリデータの複製に対して無効化処理をプロセッシ
ングエレメントに指示するメッセージを含むことを特徴
とする請求項1記載のマルチプロセッサ。 - 【請求項5】 前記各プロセッシングエレメントは1つ
の中央処理装置(CPU)を有していることを特徴とす
る請求項1記載のマルチプロセサ。 - 【請求項6】 前記各プロセッシングエレメントは複数
の中央処理装置(CPU)を有していることを特徴とす
る請求項1記載のマルチプロセサ。 - 【請求項7】 複数のプロセッシングエレメントであ
り、各プロセッシングエレメントは中央処理装置(CP
U)と、ローカルメモリを有し、各々少なくとも1つの
プロセッシングエレメントを含む複数のプロセッシング
グループに分けられる複数のプロセッシングエレメント
と;結合ネットワークと;前記結合ネットワークを介し
て接続される共有メモリであり、複数のブロックに分割
され、分割されたブロックデータの複製が前記ローカル
メモリに保持される主記憶メモリと、各エントリがプロ
セッシンググループに属するプロセッシングエレメント
のうちの少なくとも1つが前記ブロックデータの複製を
有することを示すディレクトリメモリと、前記ディレク
トリメモリに格納された情報から前記ブロックデータの
複製を保持する可能性を持つプロセッシングエレメント
を同定するグループ情報制御部と、前記ディレクトリメ
モリからエントリを読みだし、かつ前記グループ情報制
御部により同定されたプロセッシングエレメントに対し
て所定のメッセージを送るディレクトリ情報制御部とを
有する共有メモリとで構成され、前記ディレクトリメモ
リの各エントリを前記各プロセッシンググループに対応
させたことを特徴とするマルチプロセサ。 - 【請求項8】前記各プロセッシングエレメントは1つの
CPUを有することを特徴とする請求項7に記載のマル
チプロセッサ。 - 【請求項9】前記各プロセッシングエレメントは複数の
CPUを有することを特徴とする請求項7に記載のマル
チプロセッサ。 - 【請求項10】前記ローカルメモリはキャッシュメモリ
であることを特徴とする請求項7に記載のマルチプロセ
ッサ - 【請求項11】 複数のプロセッシングエレメントであ
り、各々少なくとも1つのプロセッシングエレメントを
含む複数のプロセッシンググループに分けられ、各プロ
セッシングエレメントは、中央処理装置(CPU)と、
ローカルメモリと、複数のブロックに分割され、分割さ
れたブロックデータの複製が前記ローカルメモリに保持
される主記憶メモリと、各エントリがプロセッシンググ
ループに属するプロセッシングエレメントのうちの少な
くとも1つが前記ブロックデータの複製を有することを
示すディレクトリメモリと、前記ディレクトリメモリに
格納された情報から前記ブロックデータの複製を保持す
る可能性を持つプロセッシングエレメントを同定するグ
ループ情報制御部と、前記ディレクトリメモリからエン
トリを読みだし、かつ前記グループ情報制御部により同
定されたプロセッシングエレメントに対して所定のメッ
セージを送るディレクトリ情報制御部とを有する複数の
プロセッシングエレメントと;前記複数のプロセッシン
ググループを結合する結合ネットワークとを備え、前記
ディレクトリメモリの各エントリを前記各プロセッシン
ググループに対応させたことを特徴とするマルチプロセ
サ。 - 【請求項12】前記各プロセッシングエレメントは1つ
のCPUを有していることを特徴とする請求項11記載
のマルチプロセッサ。。 - 【請求項13】前記各プロセッシングエレメントは複数
のCPUを有していることを特徴とする請求項11記載
のマルチプロセッサ。。 - 【請求項14】前記ローカルメモリはキャッシュメモリ
であることを特徴とする請求項11記載のマルチプロセ
ッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5041188A JP2809961B2 (ja) | 1993-03-02 | 1993-03-02 | マルチプロセッサ |
US08/204,499 US5537569A (en) | 1993-03-02 | 1994-03-02 | Multiprocessor system utilizing a directory memory and including grouped processing elements each having cache |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5041188A JP2809961B2 (ja) | 1993-03-02 | 1993-03-02 | マルチプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06259384A JPH06259384A (ja) | 1994-09-16 |
JP2809961B2 true JP2809961B2 (ja) | 1998-10-15 |
Family
ID=12601446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5041188A Expired - Fee Related JP2809961B2 (ja) | 1993-03-02 | 1993-03-02 | マルチプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US5537569A (ja) |
JP (1) | JP2809961B2 (ja) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5815680A (en) * | 1993-09-27 | 1998-09-29 | Ntt Mobile Communications Network, Inc. | SIMD multiprocessor with an interconnection network to allow a datapath element to access local memories |
JP2960297B2 (ja) * | 1994-03-16 | 1999-10-06 | 株式会社東芝 | データベースシステム及び負荷分散制御方法 |
US5742843A (en) * | 1994-07-20 | 1998-04-21 | Fujitsu Limited | Control system for access between processing elements in a parallel computer |
JP3872118B2 (ja) * | 1995-03-20 | 2007-01-24 | 富士通株式会社 | キャッシュコヒーレンス装置 |
US5684977A (en) * | 1995-03-31 | 1997-11-04 | Sun Microsystems, Inc. | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system |
US6295585B1 (en) * | 1995-06-07 | 2001-09-25 | Compaq Computer Corporation | High-performance communication method and apparatus for write-only networks |
US5873117A (en) * | 1996-07-01 | 1999-02-16 | Sun Microsystems, Inc. | Method and apparatus for a directory-less memory access protocol in a distributed shared memory computer system |
US5892970A (en) * | 1996-07-01 | 1999-04-06 | Sun Microsystems, Inc. | Multiprocessing system configured to perform efficient block copy operations |
US5864671A (en) * | 1996-07-01 | 1999-01-26 | Sun Microsystems, Inc. | Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used |
US6088769A (en) * | 1996-10-01 | 2000-07-11 | International Business Machines Corporation | Multiprocessor cache coherence directed by combined local and global tables |
US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
US6092155A (en) * | 1997-07-10 | 2000-07-18 | International Business Machines Corporation | Cache coherent network adapter for scalable shared memory processing systems |
US6014709A (en) * | 1997-11-05 | 2000-01-11 | Unisys Corporation | Message flow protocol for avoiding deadlocks |
US6092156A (en) * | 1997-11-05 | 2000-07-18 | Unisys Corporation | System and method for avoiding deadlocks utilizing split lock operations to provide exclusive access to memory during non-atomic operations |
EP1029281B1 (en) * | 1997-11-05 | 2004-01-28 | Unisys Corporation | A directory-based cache coherency system |
US6052760A (en) * | 1997-11-05 | 2000-04-18 | Unisys Corporation | Computer system including plural caches and utilizing access history or patterns to determine data ownership for efficient handling of software locks |
US6049845A (en) * | 1997-11-05 | 2000-04-11 | Unisys Corporation | System and method for providing speculative arbitration for transferring data |
US6633945B1 (en) | 1997-12-07 | 2003-10-14 | Conexant Systems, Inc. | Fully connected cache coherent multiprocessing systems |
US6292705B1 (en) | 1998-09-29 | 2001-09-18 | Conexant Systems, Inc. | Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system |
US6065077A (en) | 1997-12-07 | 2000-05-16 | Hotrail, Inc. | Apparatus and method for a cache coherent shared memory multiprocessing system |
US6418537B1 (en) | 1997-12-07 | 2002-07-09 | Conexant Systems, Inc. | Accurate timing calibration for each of multiple high-speed clocked receivers using a single DLL |
US6516442B1 (en) | 1997-12-07 | 2003-02-04 | Conexant Systems, Inc. | Channel interface and protocols for cache coherency in a scalable symmetric multiprocessor system |
US6295598B1 (en) * | 1998-06-30 | 2001-09-25 | Src Computers, Inc. | Split directory-based cache coherency technique for a multi-processor computer system |
US6314501B1 (en) | 1998-07-23 | 2001-11-06 | Unisys Corporation | Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory |
US6226716B1 (en) * | 1998-12-22 | 2001-05-01 | Unisys Corporation | Test driver for use in validating a circuit design |
US6167489A (en) * | 1998-12-22 | 2000-12-26 | Unisys Corporation | System and method for bypassing supervisory memory intervention for data transfers between devices having local memories |
US6718398B1 (en) | 1999-06-21 | 2004-04-06 | Sun Microsystems, Inc. | Robust communications connection system and method for shared memory |
US6789256B1 (en) | 1999-06-21 | 2004-09-07 | Sun Microsystems, Inc. | System and method for allocating and using arrays in a shared-memory digital computer system |
US6469988B1 (en) | 1999-07-08 | 2002-10-22 | Conexant Systems, Inc. | Low-level circuit implementation of signal flow graphs for real-time signal processing of high-speed digital signals |
US6665761B1 (en) | 1999-07-28 | 2003-12-16 | Unisys Corporation | Method and apparatus for routing interrupts in a clustered multiprocessor system |
US6687818B1 (en) | 1999-07-28 | 2004-02-03 | Unisys Corporation | Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system |
US6587930B1 (en) * | 1999-09-23 | 2003-07-01 | International Business Machines Corporation | Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock |
US6678798B1 (en) * | 2000-07-20 | 2004-01-13 | Silicon Graphics, Inc. | System and method for reducing memory latency during read requests |
US6938128B1 (en) | 2000-07-20 | 2005-08-30 | Silicon Graphics, Inc. | System and method for reducing memory latency during read requests |
US6915387B1 (en) | 2000-07-20 | 2005-07-05 | Silicon Graphics, Inc. | System and method for handling updates to memory in a distributed shared memory system |
US8635410B1 (en) | 2000-07-20 | 2014-01-21 | Silicon Graphics International, Corp. | System and method for removing data from processor caches in a distributed multi-processor computer system |
JP4408692B2 (ja) * | 2003-12-19 | 2010-02-03 | 富士通株式会社 | 通信装置管理プログラム |
JP2005250830A (ja) * | 2004-03-04 | 2005-09-15 | Hitachi Ltd | プロセッサおよび主記憶共有マルチプロセッサ |
JP4335298B2 (ja) * | 2006-02-24 | 2009-09-30 | 富士通株式会社 | スヌープ制御方法および情報処理装置 |
US7945739B2 (en) * | 2007-08-28 | 2011-05-17 | International Business Machines Corporation | Structure for reducing coherence enforcement by selective directory update on replacement of unmodified cache blocks in a directory-based coherent multiprocessor |
JP5614452B2 (ja) | 2010-09-13 | 2014-10-29 | 富士通株式会社 | 情報処理装置および情報処理装置の制御方法 |
JP5929420B2 (ja) | 2012-03-29 | 2016-06-08 | 富士通株式会社 | 演算処理装置、演算処理装置の制御方法及び情報処理装置 |
CN103049422B (zh) * | 2012-12-17 | 2013-11-27 | 浪潮电子信息产业股份有限公司 | 一种具有多cache一致性域的多处理器节点系统构建方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155857A (en) * | 1987-05-29 | 1992-10-13 | Hitachi, Ltd. | Communication processing system in which communication by terminals is controlled according to a terminal management table |
US5025365A (en) * | 1988-11-14 | 1991-06-18 | Unisys Corporation | Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors |
JPH02275563A (ja) * | 1989-04-17 | 1990-11-09 | Nippon Telegr & Teleph Corp <Ntt> | 情報処理システムにおけるサーバ利用方式 |
JPH0380733A (ja) * | 1989-08-24 | 1991-04-05 | Fujitsu Ltd | データ転送方式 |
US5301290A (en) * | 1990-03-14 | 1994-04-05 | International Business Machines Corporation | Method for minimizing lock processing while ensuring consistency among pages common to local processor caches and a shared external store |
US5339397A (en) * | 1990-10-12 | 1994-08-16 | International Business Machines Corporation | Hardware primary directory lock |
US5265235A (en) * | 1990-11-30 | 1993-11-23 | Xerox Corporation | Consistency protocols for shared memory multiprocessors |
US5282272A (en) * | 1990-12-21 | 1994-01-25 | Intel Corporation | Interrupt distribution scheme for a computer bus |
US5303362A (en) * | 1991-03-20 | 1994-04-12 | Digital Equipment Corporation | Coupled memory multiprocessor computer system including cache coherency management protocols |
US5313609A (en) * | 1991-05-23 | 1994-05-17 | International Business Machines Corporation | Optimum write-back strategy for directory-based cache coherence protocols |
JPH0512117A (ja) * | 1991-07-04 | 1993-01-22 | Toshiba Corp | キヤツシユ一致化方式 |
US5261053A (en) * | 1991-08-19 | 1993-11-09 | Sequent Computer Systems, Inc. | Cache affinity scheduler |
-
1993
- 1993-03-02 JP JP5041188A patent/JP2809961B2/ja not_active Expired - Fee Related
-
1994
- 1994-03-02 US US08/204,499 patent/US5537569A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5537569A (en) | 1996-07-16 |
JPH06259384A (ja) | 1994-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2809961B2 (ja) | マルチプロセッサ | |
US4562539A (en) | Data processing system | |
US5604882A (en) | System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system | |
US6088770A (en) | Shared memory multiprocessor performing cache coherency | |
TW544589B (en) | Loosely coupled-multi processor server | |
US6684315B2 (en) | Method and system for supporting multiprocessor TLB-purge instructions using directed write transactions | |
US20040054855A1 (en) | Shared memory multiprocessor performing cache coherence control and node controller therefor | |
JP2002510079A (ja) | メモリ・インタフェース間で読み書きの順序付けられた実行を強制する方法と装置 | |
JPH04308956A (ja) | 受信バッファ | |
JPH1185710A (ja) | サーバ装置およびファイル管理方法 | |
US5901328A (en) | System for transferring data between main computer multiport memory and external device in parallel system utilizing memory protection scheme and changing memory protection area | |
JP2587190B2 (ja) | システム間チャネルページング機構 | |
KR100299358B1 (ko) | 컨택스트데이터검색을위하여링크된캐시 | |
JPS63289657A (ja) | 共用ファイルアクセス方式 | |
JPH09167143A (ja) | メッセージ受信制御方式 | |
JP2934382B2 (ja) | プロセッサ・ノード | |
US7073004B2 (en) | Method and data processing system for microprocessor communication in a cluster-based multi-processor network | |
JPH07200403A (ja) | マルチプロセッサシステム | |
JP2984594B2 (ja) | マルチクラスタ情報処理システム | |
JPS58223865A (ja) | 分散デ−タベ−スシステムにおける一括更新方式 | |
JP2001101148A (ja) | 分散共有メモリ型並列計算機 | |
JP3056348B2 (ja) | ブリッジ装置および記憶手段管理方法 | |
JPH09305489A (ja) | 情報処理システム及びその制御方法 | |
JP2000259596A (ja) | マルチプロセッサシステムおよびマルチプロセッサシステムにおけるデータの一貫性維持方法 | |
JPH0644136A (ja) | メモリ制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |