JPH04302044A - マルチプロセッサシステム - Google Patents
マルチプロセッサシステムInfo
- Publication number
- JPH04302044A JPH04302044A JP3066381A JP6638191A JPH04302044A JP H04302044 A JPH04302044 A JP H04302044A JP 3066381 A JP3066381 A JP 3066381A JP 6638191 A JP6638191 A JP 6638191A JP H04302044 A JPH04302044 A JP H04302044A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- address
- cache block
- word
- information
- 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.)
- Granted
Links
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【0001】[発明の目的]
【0002】
【産業上の利用分野】本発明は、共有メモリのキャッシ
ュ装置を持つ複数のプロセッサをバスを通じて接続して
なるマルチプロセッサシステムに関する。
ュ装置を持つ複数のプロセッサをバスを通じて接続して
なるマルチプロセッサシステムに関する。
【0003】
【従来の技術】マルチプロセッサシステムにおいて、共
有メモリのアクセスは共通のバスを通して行われる。こ
のバスは一度に1つのプロセッサしか使用できないこと
から、複数のプロセッサが同時に共有メモリをアクセス
しようとした時に、あるプロセッサがアクセスを待たさ
れる(アクセスの衝突)といった事態が起こる。これを
避けるために、プロセッサ毎にキャッシュ装置を設け、
共有メモリの内容をキャッシュ装置内のメモリに複写す
ることで、プロセッサによるメモリアクセスをキャッシ
ュ装置へのアクセスのみに止めてバスへのアクセスを抑
制することが行われる。この場合、複数のキャッシュ装
置に同一のアドレスの内容が保持される可能性があり、
これら同一アドレスの内容の一貫性を保持する必要があ
る。そこでキャッシュ装置内のメモリを複数のエリア(
キャッシュ単位)に分け、このキャッシュ単位毎に占有
か共有か、または有効か無効かの状態を保持し、占有状
態以外の状態のキャッシュ単位内のアドレスにwrit
e が行われた時はこのキャッシュ単位を占有状態にし
、かつ同一アドレスを含む他のプロセッサのキャッシュ
単位を無効にする命令をバス経由で伝達し、これらを無
効状態にするwrite−invalid型と呼ばれる
手法や、あるプロセッサのキャッシュにwrite が
行われた時に他のプロセッサのキャッシュにwrite
内容をバス経由で伝達し、同一アドレスを含む部分を
更新するwrite−update型と呼ばれる手法な
どが用いられている。
有メモリのアクセスは共通のバスを通して行われる。こ
のバスは一度に1つのプロセッサしか使用できないこと
から、複数のプロセッサが同時に共有メモリをアクセス
しようとした時に、あるプロセッサがアクセスを待たさ
れる(アクセスの衝突)といった事態が起こる。これを
避けるために、プロセッサ毎にキャッシュ装置を設け、
共有メモリの内容をキャッシュ装置内のメモリに複写す
ることで、プロセッサによるメモリアクセスをキャッシ
ュ装置へのアクセスのみに止めてバスへのアクセスを抑
制することが行われる。この場合、複数のキャッシュ装
置に同一のアドレスの内容が保持される可能性があり、
これら同一アドレスの内容の一貫性を保持する必要があ
る。そこでキャッシュ装置内のメモリを複数のエリア(
キャッシュ単位)に分け、このキャッシュ単位毎に占有
か共有か、または有効か無効かの状態を保持し、占有状
態以外の状態のキャッシュ単位内のアドレスにwrit
e が行われた時はこのキャッシュ単位を占有状態にし
、かつ同一アドレスを含む他のプロセッサのキャッシュ
単位を無効にする命令をバス経由で伝達し、これらを無
効状態にするwrite−invalid型と呼ばれる
手法や、あるプロセッサのキャッシュにwrite が
行われた時に他のプロセッサのキャッシュにwrite
内容をバス経由で伝達し、同一アドレスを含む部分を
更新するwrite−update型と呼ばれる手法な
どが用いられている。
【0004】このとき、プログラムのリードや連続アド
レスに割り当てられたデータの初期化時などにおいては
、あるアドレスのアクセス後、後続のアドレスへのアク
セスが行われる可能性が高い。このことから、キャッシ
ュブロックサイズが大きく、1キャッシュブロック内に
連続する複数ワードを含む方が、ヒット率が向上し、ア
クセス効率が高まる。
レスに割り当てられたデータの初期化時などにおいては
、あるアドレスのアクセス後、後続のアドレスへのアク
セスが行われる可能性が高い。このことから、キャッシ
ュブロックサイズが大きく、1キャッシュブロック内に
連続する複数ワードを含む方が、ヒット率が向上し、ア
クセス効率が高まる。
【0005】しかしながら、複数のプロセッサが同一ブ
ロック内の別ワードへ頻繁にアクセスする場合、あるプ
ロセッサがデータをwrite する度に他プロセッサ
の対応するキャッシュブロック全体が無効となってしま
い、該ワード自身は有効であるにも拘らず無効となって
しまう。また、キャッシュブロックを小さくすると、キ
ャッシュブロックの情報であるアドレスや、状態を格納
する領域の増大、あるいは連続領域へのアクセス時の効
率低下の問題なども生じる。
ロック内の別ワードへ頻繁にアクセスする場合、あるプ
ロセッサがデータをwrite する度に他プロセッサ
の対応するキャッシュブロック全体が無効となってしま
い、該ワード自身は有効であるにも拘らず無効となって
しまう。また、キャッシュブロックを小さくすると、キ
ャッシュブロックの情報であるアドレスや、状態を格納
する領域の増大、あるいは連続領域へのアクセス時の効
率低下の問題なども生じる。
【0006】このため、従来は、キャッシュブロックを
アクセスの単位であるワードなどのように小さくし、キ
ャッシュ装置にないアドレスをリードしたときに、共有
メモリとキャッシュ装置との間にある数ワード分のバッ
ファから連続の数ワードを読み込み、以降のリードで、
目的のデータがこのバッファにある場合には主メモリま
で読みに行かずにこのバッファからリードすることによ
り、バスへのアクセスを減らしバッファを含めてのヒッ
ト率を高める、などの手法がとられてきた。
アクセスの単位であるワードなどのように小さくし、キ
ャッシュ装置にないアドレスをリードしたときに、共有
メモリとキャッシュ装置との間にある数ワード分のバッ
ファから連続の数ワードを読み込み、以降のリードで、
目的のデータがこのバッファにある場合には主メモリま
で読みに行かずにこのバッファからリードすることによ
り、バスへのアクセスを減らしバッファを含めてのヒッ
ト率を高める、などの手法がとられてきた。
【0007】
【発明が解決しようとする課題】しかし、この手法でも
、キャッシュブロックの情報の増大、検索時間の増加、
と言った問題は解決されず、さらにバッファ内データの
有効/無効を保証する処理などが増えてしまうと言う問
題があった。
、キャッシュブロックの情報の増大、検索時間の増加、
と言った問題は解決されず、さらにバッファ内データの
有効/無効を保証する処理などが増えてしまうと言う問
題があった。
【0008】本発明はこのような事情に対処してなされ
たもので、ヒット率の向上、検索時間の短縮を図ると同
時に、本来有効なデータを無効にしてしまうような事態
を阻止することのできるマルチプロセッサシステムの提
供を目的としている。
たもので、ヒット率の向上、検索時間の短縮を図ると同
時に、本来有効なデータを無効にしてしまうような事態
を阻止することのできるマルチプロセッサシステムの提
供を目的としている。
【0009】[発明の構成]
【0010】
【課題を解決するための手段】本発明のマルチプロセッ
サシステムは、上記した目的を達成するために、バスに
、共有メモリと、前記共有メモリのキャッシュ装置を有
する複数のプロセッサとを接続して構成されるマルチプ
ロセッサシステムにおいて、前記プロセッサのキャッシ
ュ装置が、連続nワードからなるキャッシュブロックご
とに、該キャッシュブロック内のワードがすべて有効で
あるか否かの情報を保持する手段と、前記キャッシュブ
ロック内のワードごとに、該キャッシュブロック内のワ
ードがすべて有効であるときは該ワードが占有か共有か
の情報、該キャッシュブロック内のワードがすべては有
効でないときは該ワードが有効か無効かの情報を保持す
る手段とを有することを特徴としている。
サシステムは、上記した目的を達成するために、バスに
、共有メモリと、前記共有メモリのキャッシュ装置を有
する複数のプロセッサとを接続して構成されるマルチプ
ロセッサシステムにおいて、前記プロセッサのキャッシ
ュ装置が、連続nワードからなるキャッシュブロックご
とに、該キャッシュブロック内のワードがすべて有効で
あるか否かの情報を保持する手段と、前記キャッシュブ
ロック内のワードごとに、該キャッシュブロック内のワ
ードがすべて有効であるときは該ワードが占有か共有か
の情報、該キャッシュブロック内のワードがすべては有
効でないときは該ワードが有効か無効かの情報を保持す
る手段とを有することを特徴としている。
【0011】
【作用】本発明では、連続nワードをキャッシュブロッ
クとすることにより、ヒット率の向上、検索時間の短縮
を図り、さらに、キャッシュブロックごとの、キャッシ
ュブロック内のワードがすべて有効であるか否かを示す
情報と、ワードごとの、キャッシュブロック内のワード
がすべて有効である場合の占有か共有を示す情報若しく
はキャッシュブロック内のワードがすべてが有効でない
場合の有効か無効かを示す情報を持つことにより、本来
有効なデータが無効として扱われたり、既に占有となっ
ているデータのライト時に無効化信号を送出したりする
ことを避けることができる。
クとすることにより、ヒット率の向上、検索時間の短縮
を図り、さらに、キャッシュブロックごとの、キャッシ
ュブロック内のワードがすべて有効であるか否かを示す
情報と、ワードごとの、キャッシュブロック内のワード
がすべて有効である場合の占有か共有を示す情報若しく
はキャッシュブロック内のワードがすべてが有効でない
場合の有効か無効かを示す情報を持つことにより、本来
有効なデータが無効として扱われたり、既に占有となっ
ているデータのライト時に無効化信号を送出したりする
ことを避けることができる。
【0012】
【実施例】以下、本発明の実施例の詳細を図面に基づい
て説明する。
て説明する。
【0013】図1は本発明に係る一実施例のマルチプロ
セッサシステムの構成を示すブロック図である。同図に
示すように、このマルチプロセッサシステムは複数のプ
ロセッサ11a、11bと共有メモリ12とをそれぞれ
共通のバス13を通じ接続して構成されている。但し、
各プロセッサ11a、11bは、それぞれ共有メモリ1
2の内容を複写し保持するキャッシュ装置14a、14
bを介してバス13に接続されている。各キャッシュ装
置14a、14bは、それぞれキャッシュコントローラ
15a、15bとキャッシュメモリ16a、16bとか
ら構成されている。
セッサシステムの構成を示すブロック図である。同図に
示すように、このマルチプロセッサシステムは複数のプ
ロセッサ11a、11bと共有メモリ12とをそれぞれ
共通のバス13を通じ接続して構成されている。但し、
各プロセッサ11a、11bは、それぞれ共有メモリ1
2の内容を複写し保持するキャッシュ装置14a、14
bを介してバス13に接続されている。各キャッシュ装
置14a、14bは、それぞれキャッシュコントローラ
15a、15bとキャッシュメモリ16a、16bとか
ら構成されている。
【0014】また、各キャッシュ装置14a、14bの
キャッシュコントローラ15a、15bは、図2に示す
ように、連続nワードからなるキャッシュブロックごと
の情報を登録する第1の情報テーブル21と、ワードご
との情報およびデータを登録する第2の情報テーブル2
2とを管理している。第1の情報テーブル21は、キャ
ッシュメモリ16a、16b内のキャッシュブロックの
アドレス211とそのキャッシュブロックの有効/無効
を示す情報212とからなっている。また第2の情報テ
ーブル22は、ワードの占有/共有を示す情報および有
効/無効を示す情報221と、そのワードのデータ22
2とからなっている。
キャッシュコントローラ15a、15bは、図2に示す
ように、連続nワードからなるキャッシュブロックごと
の情報を登録する第1の情報テーブル21と、ワードご
との情報およびデータを登録する第2の情報テーブル2
2とを管理している。第1の情報テーブル21は、キャ
ッシュメモリ16a、16b内のキャッシュブロックの
アドレス211とそのキャッシュブロックの有効/無効
を示す情報212とからなっている。また第2の情報テ
ーブル22は、ワードの占有/共有を示す情報および有
効/無効を示す情報221と、そのワードのデータ22
2とからなっている。
【0015】次に、本実施例のマルチプロセッサシステ
ムにおいて、図3に示すアクセスパターンで各プロセッ
サ11a、11bによるアクセス(write操作また
はread操作)が行われた場合の各キャッシュ装置1
4a、14bの動作を説明する。
ムにおいて、図3に示すアクセスパターンで各プロセッ
サ11a、11bによるアクセス(write操作また
はread操作)が行われた場合の各キャッシュ装置1
4a、14bの動作を説明する。
【0016】尚、図4は各プロセッサ11a、11bの
各情報テーブル21、22の初期状態を示している。
各情報テーブル21、22の初期状態を示している。
【0017】まず図3のステップ1において、プロセッ
サ11aでアドレス100に対するreadアクセスが
発生すると、図5に示すように、まずプロセッサ11a
からreadアクセスを受けたキャッシュコントローラ
15aは、そのreadアドレスを含むキャッシュブロ
ックがキャッシュメモリ16aに存在するかを第1の情
報テーブル21を参照して調べる(ステップ501)。 すると、当該アドレス100を含むキャッシュブロック
の先頭アドレスである100は第1の情報テーブル21
に登録されていないので、アドレス100から始まるキ
ャッシュブロック分のデータをブロックリードしてこれ
を登録する(ステップ509)。ここで、キャッシュブ
ロックの先頭アドレスは(アクセスするワードのアドレ
ス)−(ワードのアドレス modキャッシュブロック
サイズ)で決まる。次にこのキャッシュブロック全体を
有効とし(ステップ510)、全ワードを共有とする(
ステップ511)。最後にプロセッサ11aにこのワー
ドのデータを渡す(ステップ508)。
サ11aでアドレス100に対するreadアクセスが
発生すると、図5に示すように、まずプロセッサ11a
からreadアクセスを受けたキャッシュコントローラ
15aは、そのreadアドレスを含むキャッシュブロ
ックがキャッシュメモリ16aに存在するかを第1の情
報テーブル21を参照して調べる(ステップ501)。 すると、当該アドレス100を含むキャッシュブロック
の先頭アドレスである100は第1の情報テーブル21
に登録されていないので、アドレス100から始まるキ
ャッシュブロック分のデータをブロックリードしてこれ
を登録する(ステップ509)。ここで、キャッシュブ
ロックの先頭アドレスは(アクセスするワードのアドレ
ス)−(ワードのアドレス modキャッシュブロック
サイズ)で決まる。次にこのキャッシュブロック全体を
有効とし(ステップ510)、全ワードを共有とする(
ステップ511)。最後にプロセッサ11aにこのワー
ドのデータを渡す(ステップ508)。
【0018】一方、ブロックリードと共に出されたre
ad信号を検出したキャッシュコントローラ15aは、
図6に示すように、第1の情報テーブル21にアドレス
100を含むキャッシュブロックが登録されているかを
調べる(ステップ601)。この場合、該当ブロックは
存在しないので何もしない。これにより、各情報テーブ
ル21、22は、図7に示すような内容に更新される。
ad信号を検出したキャッシュコントローラ15aは、
図6に示すように、第1の情報テーブル21にアドレス
100を含むキャッシュブロックが登録されているかを
調べる(ステップ601)。この場合、該当ブロックは
存在しないので何もしない。これにより、各情報テーブ
ル21、22は、図7に示すような内容に更新される。
【0019】次に、図3のステップ2において、プロセ
ッサ11aでアドレス101に対するreadアクセス
が発生すると、プロセッサ11aからreadアクセス
を受けたキャッシュコントローラ15aは、ステップ1
の場合同様、図5に示すように、readアドレス10
1を含むキャッシュブロックがキャッシュメモリ16a
に存在するかを調べる(ステップ501)。この場合、
該当するキャッシュブロックが存在し、しかもこのキャ
ッシュブロック全体が有効であるので(ステップ502
)、キャッシュメモリ16aに存在するread ア
ドレス101のデータをプロセッサ11aに渡す(ステ
ップ508)。このステップでは、各情報テーブル21
、22に変化はない。
ッサ11aでアドレス101に対するreadアクセス
が発生すると、プロセッサ11aからreadアクセス
を受けたキャッシュコントローラ15aは、ステップ1
の場合同様、図5に示すように、readアドレス10
1を含むキャッシュブロックがキャッシュメモリ16a
に存在するかを調べる(ステップ501)。この場合、
該当するキャッシュブロックが存在し、しかもこのキャ
ッシュブロック全体が有効であるので(ステップ502
)、キャッシュメモリ16aに存在するread ア
ドレス101のデータをプロセッサ11aに渡す(ステ
ップ508)。このステップでは、各情報テーブル21
、22に変化はない。
【0020】次に図3のステップ3において、プロセッ
サ11bでアドレス100に対するreadアクセスが
発生すると、プロセッサ11bからreadアクセスを
受けたキャッシュコントローラ15bは、ステップ1の
場合と同様、図5に示すように、readアドレス10
0を含むキャッシュブロックがキャッシュメモリ16b
に存在しないことを判定して(ステップ501)、アド
レス100から始まるキャッシュブロック分のデータを
ブロックリードし、これを登録する(ステップ509)
。そしてこのキャッシュブロック全体を有効とし(ステ
ップ510)、全ワードを共有とする(ステップ511
)。最後にプロセッサ11bにこのワードのデータを渡
す(ステップ508)。
サ11bでアドレス100に対するreadアクセスが
発生すると、プロセッサ11bからreadアクセスを
受けたキャッシュコントローラ15bは、ステップ1の
場合と同様、図5に示すように、readアドレス10
0を含むキャッシュブロックがキャッシュメモリ16b
に存在しないことを判定して(ステップ501)、アド
レス100から始まるキャッシュブロック分のデータを
ブロックリードし、これを登録する(ステップ509)
。そしてこのキャッシュブロック全体を有効とし(ステ
ップ510)、全ワードを共有とする(ステップ511
)。最後にプロセッサ11bにこのワードのデータを渡
す(ステップ508)。
【0021】一方、ブロックリードと共に出されたre
ad信号を検出したキャッシュコントローラ15aは、
図6に示すように、第1の情報テーブル21にアドレス
100を含むキャッシュブロックが登録されていること
(ステップ601)、該キャッシュブロック全体が有効
であることを確認したものの(ステップ602)、該ワ
ード(アドレス100)が占有でないため(ステップ6
03)、この場合は何の処理も行わない。この結果、各
情報テーブル21、22の内容は、図8に示すように更
新される。
ad信号を検出したキャッシュコントローラ15aは、
図6に示すように、第1の情報テーブル21にアドレス
100を含むキャッシュブロックが登録されていること
(ステップ601)、該キャッシュブロック全体が有効
であることを確認したものの(ステップ602)、該ワ
ード(アドレス100)が占有でないため(ステップ6
03)、この場合は何の処理も行わない。この結果、各
情報テーブル21、22の内容は、図8に示すように更
新される。
【0022】図3のステップ4から8は、ステップ2と
まったく同様に処理が行われ、各情報テーブル21、2
2の内容には変化はない。
まったく同様に処理が行われ、各情報テーブル21、2
2の内容には変化はない。
【0023】次のステップ9についてもステップ1と同
様に処理が行われ、その結果、各情報テーブル21、2
2の内容は、図9に示すように更新される。
様に処理が行われ、その結果、各情報テーブル21、2
2の内容は、図9に示すように更新される。
【0024】さらにステップ10はステップ3と同様に
処理が行われ、その結果、各情報テーブル21、22の
内容は、図10に示すように更新される。
処理が行われ、その結果、各情報テーブル21、22の
内容は、図10に示すように更新される。
【0025】次に図3のステップ11において、プロセ
ッサ11aでアドレス100に対するwrite アク
セスが発生すると、プロセッサ11aからwrite
アクセスを受けたキャッシュコントローラ15aは、図
11に示すように、write アドレス100を含む
キャッシュブロックがキャッシュメモリ16aに存在し
(ステップ1101)、さらに該キャッシュブロック全
体が有効であることを判定するものの(ステップ110
2)、アドレス100の該ワードが占有でないため(ス
テップ1106)、アドレス100に対して無効化信号
をバス13に送出し(ステップ1107)、該ワードを
占有とする(ステップ1108)。最後にキャッシュメ
モリ16aの該当ワード部分をプロセッサ11aから渡
されたデータで更新する(ステップ1109)。
ッサ11aでアドレス100に対するwrite アク
セスが発生すると、プロセッサ11aからwrite
アクセスを受けたキャッシュコントローラ15aは、図
11に示すように、write アドレス100を含む
キャッシュブロックがキャッシュメモリ16aに存在し
(ステップ1101)、さらに該キャッシュブロック全
体が有効であることを判定するものの(ステップ110
2)、アドレス100の該ワードが占有でないため(ス
テップ1106)、アドレス100に対して無効化信号
をバス13に送出し(ステップ1107)、該ワードを
占有とする(ステップ1108)。最後にキャッシュメ
モリ16aの該当ワード部分をプロセッサ11aから渡
されたデータで更新する(ステップ1109)。
【0026】一方、バス13より無効化信号を検出した
キャッシュコントローラ15bは、図12に示すように
、第1の情報テーブル21にアドレス100を含むキャ
ッシュブロックが登録されていること(ステップ120
1)、さらに該キャッシュブロック全体が有効であるこ
とを確認して(ステップ1202)、該キャッシュブロ
ックの全ワードは有効でないものとし(ステップ120
3)、該ワード(アドレス100)を無効として、他の
ワード(アドレス101、102、103)を有効にす
る(ステップ1204)。この結果、各情報テーブル2
1、22は、図13に示すように更新される。
キャッシュコントローラ15bは、図12に示すように
、第1の情報テーブル21にアドレス100を含むキャ
ッシュブロックが登録されていること(ステップ120
1)、さらに該キャッシュブロック全体が有効であるこ
とを確認して(ステップ1202)、該キャッシュブロ
ックの全ワードは有効でないものとし(ステップ120
3)、該ワード(アドレス100)を無効として、他の
ワード(アドレス101、102、103)を有効にす
る(ステップ1204)。この結果、各情報テーブル2
1、22は、図13に示すように更新される。
【0027】次に図3のステップ12において、プロセ
ッサ11bでアドレス101に対するreadアクセス
が発生すると、これを受けたキャッシュコントローラ1
5bは、図5に示すように、readアドレス101を
含むアドレス100からキャッシュブロックがキャッシ
ュメモリ16aに存在し(ステップ501)、このキャ
ッシュブロック全体が有効ではないものの(ステップ5
02)、アドレス101のワードは有効であるので(ス
テップ503)、キャッシュメモリ16aに存在するr
eadアドレス101のデータをプロセッサ11bに渡
す(ステップ508)。このステップでは各情報テーブ
ル21、22に変化はない。
ッサ11bでアドレス101に対するreadアクセス
が発生すると、これを受けたキャッシュコントローラ1
5bは、図5に示すように、readアドレス101を
含むアドレス100からキャッシュブロックがキャッシ
ュメモリ16aに存在し(ステップ501)、このキャ
ッシュブロック全体が有効ではないものの(ステップ5
02)、アドレス101のワードは有効であるので(ス
テップ503)、キャッシュメモリ16aに存在するr
eadアドレス101のデータをプロセッサ11bに渡
す(ステップ508)。このステップでは各情報テーブ
ル21、22に変化はない。
【0028】この後、図3のステップ13において、同
じくプロセッサ11bでアドレス101に対するwri
te アクセスが発生すると、これを受けたキャッシュ
コントローラ15bは、図11に示すように、writ
e アドレス101を含むキャッシュブロックがキャッ
シュメモリ16bに存在するものの(ステップ1101
)、該キャッシュ全体が有効ではないので(ステップ1
102)、キャッシュブロック内の無効ワードであるア
ドレス100のワードをリードする(ステップ1103
)。そしてアドレス101に対して無効化信号を送出し
(ステップ1104)、アドレス101のワードを占有
にして他のアドレス100、102、103のワードを
共有にする(ステップ1105)。そして最後にキャッ
シュメモリ16bの該当ワード部分をプロセッサ11b
から渡されたデータで更新する(ステップ1109)。
じくプロセッサ11bでアドレス101に対するwri
te アクセスが発生すると、これを受けたキャッシュ
コントローラ15bは、図11に示すように、writ
e アドレス101を含むキャッシュブロックがキャッ
シュメモリ16bに存在するものの(ステップ1101
)、該キャッシュ全体が有効ではないので(ステップ1
102)、キャッシュブロック内の無効ワードであるア
ドレス100のワードをリードする(ステップ1103
)。そしてアドレス101に対して無効化信号を送出し
(ステップ1104)、アドレス101のワードを占有
にして他のアドレス100、102、103のワードを
共有にする(ステップ1105)。そして最後にキャッ
シュメモリ16bの該当ワード部分をプロセッサ11b
から渡されたデータで更新する(ステップ1109)。
【0029】一方、無効化信号を検出したキャッシュコ
ントローラ15aは、図12に示すように、第1の情報
テーブル21にアドレス101を含むキャッシュブロッ
クが登録され(ステップ1201)、さらに該キャッシ
ュブロック全体が有効であることを確認して(ステップ
1202)、該キャッシュブロックを全ワードは有効で
ないものとし(ステップ1203)、該ワード(アドレ
ス101)を無効にして、他のワード(アドレス100
,102,103)を有効にする(ステップ1204)
。この結果、情報テーブル21、22は、図14に示す
ような内容に更新される。
ントローラ15aは、図12に示すように、第1の情報
テーブル21にアドレス101を含むキャッシュブロッ
クが登録され(ステップ1201)、さらに該キャッシ
ュブロック全体が有効であることを確認して(ステップ
1202)、該キャッシュブロックを全ワードは有効で
ないものとし(ステップ1203)、該ワード(アドレ
ス101)を無効にして、他のワード(アドレス100
,102,103)を有効にする(ステップ1204)
。この結果、情報テーブル21、22は、図14に示す
ような内容に更新される。
【0030】図3のステップ14は、ステップ12とま
ったく同様に自プロセッサ11aのキャッシュメモリ1
6aからリードされる。
ったく同様に自プロセッサ11aのキャッシュメモリ1
6aからリードされる。
【0031】図3のステップ15において、プロセッサ
11bでアドレス102に対するwrite アクセス
が発生すると、これを受けたキャッシュコントローラ1
5bは、図11に示すように、write アドレス1
02を含むキャッシュブロックがキャッシュメモリ16
bに存在し(ステップ1101)、しかも該キャッシュ
ブロック全体が有効であるものの(ステップ1102)
、該アドレス102のワードが共有なので(ステップ1
106)、アドレス102に対して無効化信号を送出し
(ステップ1107)、このワードを占有にして(ステ
ップ1108)、キャッシュメモリ16bの該当ワード
部分をプロセッサ11bから渡されたデータで更新する
(ステップ1109)。
11bでアドレス102に対するwrite アクセス
が発生すると、これを受けたキャッシュコントローラ1
5bは、図11に示すように、write アドレス1
02を含むキャッシュブロックがキャッシュメモリ16
bに存在し(ステップ1101)、しかも該キャッシュ
ブロック全体が有効であるものの(ステップ1102)
、該アドレス102のワードが共有なので(ステップ1
106)、アドレス102に対して無効化信号を送出し
(ステップ1107)、このワードを占有にして(ステ
ップ1108)、キャッシュメモリ16bの該当ワード
部分をプロセッサ11bから渡されたデータで更新する
(ステップ1109)。
【0032】一方、無効化信号を検出したキャッシュコ
ントローラ15aは、図12に示すように、第1の情報
テーブル21にアドレス102を含むキャッシュブロッ
クが登録されているものの(ステップ1201)、該キ
ャッシュブロック全体が有効でないので(ステップ12
02)、該ワード(アドレス102)を無効にする(ス
テップ1205)。この結果、情報テーブル21、22
の内容は、図15に示すように更新される。
ントローラ15aは、図12に示すように、第1の情報
テーブル21にアドレス102を含むキャッシュブロッ
クが登録されているものの(ステップ1201)、該キ
ャッシュブロック全体が有効でないので(ステップ12
02)、該ワード(アドレス102)を無効にする(ス
テップ1205)。この結果、情報テーブル21、22
の内容は、図15に示すように更新される。
【0033】次に図3のステップ16において、プロセ
ッサ11aでアドレス101に対するreadアクセス
が発生すると、これを受けたキャッシュコントローラ1
5aは、図5に示すように、read アドレス10
1を含むキャッシュブロックがキャッシュメモリ16a
に存在するものの(ステップ501)、このキャッシュ
ブロック全体が有効ではなく(ステップ502)、アド
レス101のワードが無効であるので(ステップ503
)、該アドレス101のワードをリードすると共にre
ad信号を送出し(ステップ504)、該ワードを有効
とする(ステップ505)。ところが、この段階でこの
ワードを含むアドレス100から始まるキャッシュブロ
ックの全ワードが有効にはなっていないので、キャッシ
ュブロックの情報の全体は有効でないままとする(ステ
ップ506)。 最後にリードしたデータをプロセッサ11aに渡す(ス
テップ508)。
ッサ11aでアドレス101に対するreadアクセス
が発生すると、これを受けたキャッシュコントローラ1
5aは、図5に示すように、read アドレス10
1を含むキャッシュブロックがキャッシュメモリ16a
に存在するものの(ステップ501)、このキャッシュ
ブロック全体が有効ではなく(ステップ502)、アド
レス101のワードが無効であるので(ステップ503
)、該アドレス101のワードをリードすると共にre
ad信号を送出し(ステップ504)、該ワードを有効
とする(ステップ505)。ところが、この段階でこの
ワードを含むアドレス100から始まるキャッシュブロ
ックの全ワードが有効にはなっていないので、キャッシ
ュブロックの情報の全体は有効でないままとする(ステ
ップ506)。 最後にリードしたデータをプロセッサ11aに渡す(ス
テップ508)。
【0034】一方、リードと共に出されたread信号
を検出したキャッシュコントーラ15bは、図6に示す
ように、第1の情報テーブル21にアドレス101を含
むキャッシュブロックが登録され(ステップ601)、
該キャッシュブロック全体が有効で(ステップ602)
、しかも該ワード(アドレス101)が占有なので(ス
テップ603)、該ワードを共有とする(ステップ60
4)。この結果、情報テーブルの内容は、図16に示す
ように更新される。
を検出したキャッシュコントーラ15bは、図6に示す
ように、第1の情報テーブル21にアドレス101を含
むキャッシュブロックが登録され(ステップ601)、
該キャッシュブロック全体が有効で(ステップ602)
、しかも該ワード(アドレス101)が占有なので(ス
テップ603)、該ワードを共有とする(ステップ60
4)。この結果、情報テーブルの内容は、図16に示す
ように更新される。
【0035】図17は本実施例によるバスへの操作を、
従来のwrite−invalid 方式(従来方式1
)、およびキャッシュブロックサイズを1ワードとして
4バイトの入力バッファを設けた従来方式2とそれぞれ
比較して示す図である。
従来のwrite−invalid 方式(従来方式1
)、およびキャッシュブロックサイズを1ワードとして
4バイトの入力バッファを設けた従来方式2とそれぞれ
比較して示す図である。
【0036】これによると、従来方式1の場合、ステッ
プ12、14などで本来は有効なワードが無効と判断さ
れ、不要なブロックリードが生じてしまうのに対し、本
実施例の場合はこのような事態を避けられるため、バス
へのアクセスが減ってマルチプロセッサシステム全体の
効率を高めることができる。また従来方式2は、バスの
使用などは本実施例の場合と同等であるが、キャッシュ
ブロックが小さいために、あるアドレスのデータがどの
キャッシュブロックに格納されているかを検索する時間
が増加し、バッファの追加によるハードウェアの複雑化
やブロックの情報量の増加といった問題が生じる。
プ12、14などで本来は有効なワードが無効と判断さ
れ、不要なブロックリードが生じてしまうのに対し、本
実施例の場合はこのような事態を避けられるため、バス
へのアクセスが減ってマルチプロセッサシステム全体の
効率を高めることができる。また従来方式2は、バスの
使用などは本実施例の場合と同等であるが、キャッシュ
ブロックが小さいために、あるアドレスのデータがどの
キャッシュブロックに格納されているかを検索する時間
が増加し、バッファの追加によるハードウェアの複雑化
やブロックの情報量の増加といった問題が生じる。
【0037】
【発明の効果】以上説明したように本発明によれば、連
続nワードをキャッシュブロックとすることにより、ヒ
ット率の向上、検索時間の短縮を図れる。また、本来有
効なデータが無効として扱われたり、既に占有となって
いるデータのライト時に無効化信号を送出したりするこ
とを避けることができる。
続nワードをキャッシュブロックとすることにより、ヒ
ット率の向上、検索時間の短縮を図れる。また、本来有
効なデータが無効として扱われたり、既に占有となって
いるデータのライト時に無効化信号を送出したりするこ
とを避けることができる。
【図1】本発明に係る一実施例のマルチプロセッサシス
テムの構成を示すブロック図である。
テムの構成を示すブロック図である。
【図2】図1におけるキャッシュ装置が保持する第1お
よび第2の情報テーブルの構造を示す図である。
よび第2の情報テーブルの構造を示す図である。
【図3】本実施例のマルチプロセッサシステムにおける
各プロセッサ間でのアクセスパターンの例を示す図であ
る。
各プロセッサ間でのアクセスパターンの例を示す図であ
る。
【図4】図2の各情報テーブルの初期状態を示す図であ
る。
る。
【図5】プロセッサのワードリード時の処理の流れを示
すフローチャートである。
すフローチャートである。
【図6】プロセッサのリード信号検出時の処理の流れを
示すフローチャートである。
示すフローチャートである。
【図7】図3におけるステップ1実行後の各情報テーブ
ルの内容を示す図である。
ルの内容を示す図である。
【図8】ステップ3実行後の各情報テーブルの内容を示
す図である。
す図である。
【図9】ステップ9実行後の各情報テーブルの内容を示
す図である。
す図である。
【図10】ステップ10実行後の各情報テーブルの内容
を示す図である。
を示す図である。
【図11】プロセッサのワードライト時の処理の流れを
示すフローチャートである。
示すフローチャートである。
【図12】プロセッサの無効化信号検出時の処理の流れ
を示すフローチャートである。
を示すフローチャートである。
【図13】ステップ11実行後の各情報テーブルの内容
を示す図である。
を示す図である。
【図14】ステップ13実行後の各情報テーブルの内容
を示す図である。
を示す図である。
【図15】ステップ15実行後の各情報テーブルの内容
を示す図である。
を示す図である。
【図16】ステップ16実行後の各情報テーブルの内容
を示す図である。
を示す図である。
【図17】本実施例によるバスへの操作を従来方式と比
較して示す図である。
較して示す図である。
11a、11b……プロセッサ
12……共有メモリ
13……バス
14a、14b……キャッシュ装置
15a、15b……キャッシュコントローラ16a、1
6b……キャッシュメモリ
6b……キャッシュメモリ
Claims (1)
- 【請求項1】 バスに、共有メモリと、前記共有メモ
リのキャッシュ装置を有する複数のプロセッサとを接続
して構成されるマルチプロセッサシステムにおいて、前
記プロセッサのキャッシュ装置が、連続nワードからな
るキャッシュブロックごとに、該キャッシュブロック内
のワードがすべて有効であるか否かの情報を保持する手
段と、前記キャッシュブロック内のワードごとに、該キ
ャッシュブロック内のワードがすべて有効であるときは
該ワードが占有か共有かの情報を、該キャッシュブロッ
ク内のワードがすべては有効でないときは該ワードが有
効か無効かの情報を保持する手段と、を有することを特
徴とするマルチプロセッサシステム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP06638191A JP3226557B2 (ja) | 1991-03-29 | 1991-03-29 | マルチプロセッサシステム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP06638191A JP3226557B2 (ja) | 1991-03-29 | 1991-03-29 | マルチプロセッサシステム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH04302044A true JPH04302044A (ja) | 1992-10-26 |
| JP3226557B2 JP3226557B2 (ja) | 2001-11-05 |
Family
ID=13314197
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP06638191A Expired - Fee Related JP3226557B2 (ja) | 1991-03-29 | 1991-03-29 | マルチプロセッサシステム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3226557B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07210526A (ja) * | 1994-01-20 | 1995-08-11 | Hitachi Ltd | 並列計算機 |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2008155844A1 (ja) | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 情報処理装置およびキャッシュ制御方法 |
-
1991
- 1991-03-29 JP JP06638191A patent/JP3226557B2/ja not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07210526A (ja) * | 1994-01-20 | 1995-08-11 | Hitachi Ltd | 並列計算機 |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3226557B2 (ja) | 2001-11-05 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100286962B1 (ko) | 캐쉬 제어기 | |
| JP4119380B2 (ja) | マルチプロセッサシステム | |
| KR0175983B1 (ko) | 데이타 처리 시스템 | |
| JPH04213136A (ja) | 参照ビット,変更ビットの更新方法 | |
| JP3814521B2 (ja) | データ処理方法および装置 | |
| JP3226557B2 (ja) | マルチプロセッサシステム | |
| JPH0281255A (ja) | マルチプロセッサコンピュータ複合装置 | |
| JPH03230238A (ja) | キャッシュメモリ制御方式 | |
| USRE38514E1 (en) | System for and method of efficiently controlling memory accesses in a multiprocessor computer system | |
| JPS6153747B2 (ja) | ||
| JP3187446B2 (ja) | キャッシュメモリ制御装置 | |
| JP3564343B2 (ja) | キャッシュバイパス時のデータ転送装置と方法 | |
| JPH0628258A (ja) | マイクロプロセッサ | |
| JP3219422B2 (ja) | キャッシュメモリ制御方式 | |
| JPH04302043A (ja) | マルチプロセッサシステム | |
| JP2588547B2 (ja) | マルチcpuシステム | |
| JPH087663B2 (ja) | コンピユータ・システムおよびその記憶装置アクセス方法 | |
| JPS6238743B2 (ja) | ||
| JPH08166905A (ja) | キャッシュメモリ制御方法 | |
| JPH07175759A (ja) | マルチプロセッサ・システム | |
| JPH02186455A (ja) | 多重プロセッサ/キャッシュ・メモリー・システム | |
| JPH0548498B2 (ja) | ||
| JPH05210590A (ja) | 書き込みキャッシュメモリのための装置および方法 | |
| JPH113288A (ja) | キャッシュメモリ装置およびキャッシュメモリの障害制御方法 | |
| JPH11149410A (ja) | コピータグメモリにExclusive Hitしたトランザクションに対するキャンセル信号送信方式 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20010814 |
|
| LAPS | Cancellation because of no payment of annual fees |