JP2736352B2 - マルチプロセッサシステムにおけるキャッシュメモリ制御方法 - Google Patents
マルチプロセッサシステムにおけるキャッシュメモリ制御方法Info
- Publication number
- JP2736352B2 JP2736352B2 JP63294344A JP29434488A JP2736352B2 JP 2736352 B2 JP2736352 B2 JP 2736352B2 JP 63294344 A JP63294344 A JP 63294344A JP 29434488 A JP29434488 A JP 29434488A JP 2736352 B2 JP2736352 B2 JP 2736352B2
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- data
- bus
- address
- processor
- 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
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Multi Processors (AREA)
Description
本発明は、プロセッサ及びキャッシュメモリを有する
複数個の処理ユニットと、それらとシステムバスを介し
て相互に接続されているメインメモリとを有するマルチ
プロセッサシステムにおけるキャッシュメモリ制御方法
であって、処理ユニットにおけるキャッシュメモリ内の
データとメインメモリ内のデータとに対する無矛盾性保
証制御を行うようにしたものである。
複数個の処理ユニットと、それらとシステムバスを介し
て相互に接続されているメインメモリとを有するマルチ
プロセッサシステムにおけるキャッシュメモリ制御方法
であって、処理ユニットにおけるキャッシュメモリ内の
データとメインメモリ内のデータとに対する無矛盾性保
証制御を行うようにしたものである。
複数個の処理ユニットがメインメモリを共有して使用
するマルチプロセッサシステムにおいては、各処理ユニ
ットがキャッシュメモリを有する場合、他の処理ユニッ
トにより書き換えられたメインメモリのデータをキャッ
シュメモリ内に持つことによって、処理ユニットが誤っ
た処理を実行しないように、各処理ユニットのキャッシ
ュメモリ内のデータとメインメモリ内のデータとの無矛
盾性保証制御(一致制御)を行うことが不可欠である。 一般に、キャッシュメモリは、ブロックのアドレスを
格納するタグ部と、ブロックのデータを格納するデータ
部と、タブ部及びデータ部にそれぞれ格納されているア
ドレス情報及びデータが有効であるか無効であるかを示
す情報を格納するバリッド部とからなる複数のエントリ
を有する。 処理ユニットがアドレス(これをアドレスaとする)
で指定されているメインメモリのデータを書き換える
時、処理ユニットのキャッシュメモリ内のデータとメイ
ンメモリ内のデータとの間の書き換えは、処理ユニット
の制御により行われる。 他の処理ユニットのキャッシュメモリ内のデータとメ
インメモリ内のデータとの無矛盾性保証制御は、以下の
ように行われる。 すなわち、キャッシュメモリが、書き換えられたメイ
ンメモリのアドレスa(これをライトアドレスaとす
る)を入力し、それによって、バリッド部で有効である
ことを示しているエントリのタグ部を検索する。 その検索の結果、キャッシュメモリにライドアドレス
aで指定されているデータを含むブロックが存在した
時、そのブロックのデータを格納しているエントリのバ
リッド部に無効であることを示す情報を格納する。 上述したように、従来のマルチプロセッサシステムに
おける、キャッシュメモリとメインメモリとの無矛盾性
保証制御を行うキャッシュメモリ制御方法の場合、他の
処理ユニットにより書き換えられたメインメモリのデー
タがキャッシュメモリ内に格納されているか否かを検索
し、格納されていればそのデータを無効化するようにし
ていた。
するマルチプロセッサシステムにおいては、各処理ユニ
ットがキャッシュメモリを有する場合、他の処理ユニッ
トにより書き換えられたメインメモリのデータをキャッ
シュメモリ内に持つことによって、処理ユニットが誤っ
た処理を実行しないように、各処理ユニットのキャッシ
ュメモリ内のデータとメインメモリ内のデータとの無矛
盾性保証制御(一致制御)を行うことが不可欠である。 一般に、キャッシュメモリは、ブロックのアドレスを
格納するタグ部と、ブロックのデータを格納するデータ
部と、タブ部及びデータ部にそれぞれ格納されているア
ドレス情報及びデータが有効であるか無効であるかを示
す情報を格納するバリッド部とからなる複数のエントリ
を有する。 処理ユニットがアドレス(これをアドレスaとする)
で指定されているメインメモリのデータを書き換える
時、処理ユニットのキャッシュメモリ内のデータとメイ
ンメモリ内のデータとの間の書き換えは、処理ユニット
の制御により行われる。 他の処理ユニットのキャッシュメモリ内のデータとメ
インメモリ内のデータとの無矛盾性保証制御は、以下の
ように行われる。 すなわち、キャッシュメモリが、書き換えられたメイ
ンメモリのアドレスa(これをライトアドレスaとす
る)を入力し、それによって、バリッド部で有効である
ことを示しているエントリのタグ部を検索する。 その検索の結果、キャッシュメモリにライドアドレス
aで指定されているデータを含むブロックが存在した
時、そのブロックのデータを格納しているエントリのバ
リッド部に無効であることを示す情報を格納する。 上述したように、従来のマルチプロセッサシステムに
おける、キャッシュメモリとメインメモリとの無矛盾性
保証制御を行うキャッシュメモリ制御方法の場合、他の
処理ユニットにより書き換えられたメインメモリのデー
タがキャッシュメモリ内に格納されているか否かを検索
し、格納されていればそのデータを無効化するようにし
ていた。
しかしながら、上述した従来のマルチプロセッサシス
テムにおけるキャッシュメモリ制御方法の場合、各処理
ユニットのキャッシュメモリにおいて、他の処理ユニッ
トからの全てのライトアドレスに対して、ライトアドレ
スを含むブロックのデータがキャッシュメモリに格納さ
れているか否かの検索を行う必要があった。 このため、以下に示す競合が発生し、プロセッサから
キャッシュメモリへのアクセスの待ち時間が生じる。 (1)無矛盾性保証制御を行うためのライトアドレスの
キャッシュメモリへの入力と、プロセッサがキャッシュ
メモリ内のデータにアクセスするためのアドレスの入力
との競合。 (2)ライトアドレスに対する無矛盾性保証制御を行う
ためのタグ部の検索と、プロセッサがキャッシュメモリ
内のデータにアクセスするためのタグ部の検索との競
合。 上述した競合を減少させる方法として、従来、(1)
の競合に対しては、キャッシュメモリにライトアドレス
を入力するための専用ピンを設ける方法が提案されてい
る。 また、(2)の競合に対しては、キャッシュメモリの
エントリに同一情報を格納するタグ部を2個設け、その
一方をプロセッサからのアクセスに使用し、他方をライ
トアドレスの検索に使用する方法が提案されている。 しかしながら、専用ピンを設ける方法の場合、キャッ
シュメモリのピン数が増加する欠点があった。 また、タグ部を2個設ける方法の場合、キャッシュメ
モリ内に冗長な情報が含まれる、という欠点があった。 よって、本発明は、上述した欠点のない、新規なマル
チプロセッサシステムにおけるキャッシュメモリ制御方
法を提案せんとするものである。
テムにおけるキャッシュメモリ制御方法の場合、各処理
ユニットのキャッシュメモリにおいて、他の処理ユニッ
トからの全てのライトアドレスに対して、ライトアドレ
スを含むブロックのデータがキャッシュメモリに格納さ
れているか否かの検索を行う必要があった。 このため、以下に示す競合が発生し、プロセッサから
キャッシュメモリへのアクセスの待ち時間が生じる。 (1)無矛盾性保証制御を行うためのライトアドレスの
キャッシュメモリへの入力と、プロセッサがキャッシュ
メモリ内のデータにアクセスするためのアドレスの入力
との競合。 (2)ライトアドレスに対する無矛盾性保証制御を行う
ためのタグ部の検索と、プロセッサがキャッシュメモリ
内のデータにアクセスするためのタグ部の検索との競
合。 上述した競合を減少させる方法として、従来、(1)
の競合に対しては、キャッシュメモリにライトアドレス
を入力するための専用ピンを設ける方法が提案されてい
る。 また、(2)の競合に対しては、キャッシュメモリの
エントリに同一情報を格納するタグ部を2個設け、その
一方をプロセッサからのアクセスに使用し、他方をライ
トアドレスの検索に使用する方法が提案されている。 しかしながら、専用ピンを設ける方法の場合、キャッ
シュメモリのピン数が増加する欠点があった。 また、タグ部を2個設ける方法の場合、キャッシュメ
モリ内に冗長な情報が含まれる、という欠点があった。 よって、本発明は、上述した欠点のない、新規なマル
チプロセッサシステムにおけるキャッシュメモリ制御方
法を提案せんとするものである。
本発明によるマルチプロセッサシステムにおけるキャ
ッシュメモリ制御方法は、メインメモリを書き換える処
理ユニットが、ライトアドレスと共に無矛盾性保証制御
を行う必要のある(書き換えたデータを含むブロックの
データをキャッシュメモリへの格納対象としている)か
否かの情報であるキャッシュメモリ格納情報を出力し、
他の処理ユニットが、キャッシュメモリ格納情報によ
り、自キャッシュメモリへの格納が禁止されていないデ
ータ(自キャッシュメモリへの格納対象となっているデ
ータ)の書き換えが行われた時のみ、ライトアドレスの
検索及び無効化(または書き換え)を行う。
ッシュメモリ制御方法は、メインメモリを書き換える処
理ユニットが、ライトアドレスと共に無矛盾性保証制御
を行う必要のある(書き換えたデータを含むブロックの
データをキャッシュメモリへの格納対象としている)か
否かの情報であるキャッシュメモリ格納情報を出力し、
他の処理ユニットが、キャッシュメモリ格納情報によ
り、自キャッシュメモリへの格納が禁止されていないデ
ータ(自キャッシュメモリへの格納対象となっているデ
ータ)の書き換えが行われた時のみ、ライトアドレスの
検索及び無効化(または書き換え)を行う。
本発明によるマルチプロセッサシステムにおけるキャ
ッシュメモリ制御方法によれば、各処理ユニットは、自
キャッシュメモリへの格納対象となっていないデータの
書か換えが他の処理ユニットにより行われた場合、その
自キャッシュメモリが、ライトアドレスに対して無矛盾
性保証制御を行う、という必要が無くなり、よって、各
処理ユニットで行われるライトアドレスに対する無矛盾
性保証制御を行うためのタグ部での検索の回数が減少
し、ライトアドレスの検索とプロセッサからキャッシュ
メモリへのアクセスとの競合を減少させることができ
る。
ッシュメモリ制御方法によれば、各処理ユニットは、自
キャッシュメモリへの格納対象となっていないデータの
書か換えが他の処理ユニットにより行われた場合、その
自キャッシュメモリが、ライトアドレスに対して無矛盾
性保証制御を行う、という必要が無くなり、よって、各
処理ユニットで行われるライトアドレスに対する無矛盾
性保証制御を行うためのタグ部での検索の回数が減少
し、ライトアドレスの検索とプロセッサからキャッシュ
メモリへのアクセスとの競合を減少させることができ
る。
次に、本発明によるマルチプロセッサシステムにおけ
るキャッシュメモリ制御方法の実施例を述べよう。 第1図は、本発明によるマルチプロセッサシステムに
おけるキャッシュメモリ制御方法における、キャッシュ
メモリ格納情報をプロセッサ内に格納する場合の実施例
を示している。 処理ユニットのプロセッサに格納するキャッシュメモ
リ格納情報は、16(24)個のエントリからなり、一方、
各エントリは、3ビットの情報からなる。 この場合、メインメモリは16(24)個のページに分割
され、それらのそれぞれが、3ビットのキャッシュメモ
リ格納情報に対応している。この場合、各ページは1つ
以上のブロックを含む。 3ビットのキャッシュメモリ格納情報は、第1ビット
で、処理ユニット1のキャッシュメモリへのブロックの
データの格納を禁止する(「0」)か許可する
(「1」)かの指定を行い、第2ビットで、処理ユニッ
ト2のキャッシュメモリへのブロックのデータの格納を
禁止する(「0」)か許可する(「1」)かの指定を行
い、第3ビットで、処理ユニット3のキャッシュメモリ
へのブロックのデータの格納を禁止する(「0」)か許
可する(「1」)かの指定を行う。 プロセッサは、その任意のアドレスにアクセスする場
合、アドレス情報とともに、後述するアドレスaの上位
4ビットにより指定されているエントリに格納されてい
る3ビットのキャッシュメモリ格納情報を出力する。 第2図は、本発明によるマルチプロセッサシステムに
おけるキャッシュメモリ制御方法の実施例を示す。 第2図において、1、2、3は、処理ユニットを示
す。 4は、システムバスを示す。 5は、メインメモリを示す。 6は、バスマスタコントローラを示す。 10、20、30は、プロセッサを示す。 11、21、31は、キャッシュメモリを示す。 12、22、32は、バスコントローラを示す。 13、23、33は、AND回路を示す。 41は、アドレスバスを示す。 42は、データバスを示す。 43は、ブロック要求バスを示す。 44は、転送応答バスを示す。 45は、処理ユニット1のキャッシュメモリ格納情報バ
スを示す。 46は、処理ユニット2のキャッシュメモリ格納情報バ
スを示す。 47は、処理ユニット3のキャッシュメモリ格納情報バ
スを示す。 48は、書き込み指示バスを示す。 100、200、300は、プロセッサバスを示す。 102、202、302、103、203、303、104、204、304、10
5、205、305は信号線を示す。 キャッシュメモリ11、21及び31のそれぞれは、複数の
エントリからなり、その各エントリは、ブロックのアド
レス情報を格納するタグ部と、ブロックのデータを格納
するデータ部と、エントリに格納されている内容が有効
であるか無効であるかを示す情報を格納するバリッド部
とからなる。 キャッシュメモリへのデータの格納が許可されている
ブロックのデータの転送は以下のように行われる。 プロセッサ10は、アドレス「1011010101010101010101
0101010101」(以下アドレスaと称す)で指定されてい
るデータを読み出す時、プロセッサバス100上に読み出
しを行うデータのアドレスaを出力するとともに、キャ
ッシュメモリ格納情報「110」(格納許可「1」)を出
力する。 キャッシュメモリ格納情報「110」の第1ビットが
「1」であり、従って、ブロックのデータのキャッシュ
メモリへの格納が許可されているので、キャッシュメモ
リ11にアドレスaで指定されているデータが格納されて
いれば、キャッシュメモリ11は、チップバス100を介し
て、そのアドレスaで指定されているデータを、プロセ
ッサ10に転送する。 キャッシュメモリ11にアドレスaで指定されているデ
ータが格納されていなければ、メインメモリ5から、処
理ユニット1のキャッシュメモリ11に、ブロックのデー
タの転送が以下のように行われる。 処理ユニット1からプロセッサバス100を介して要求
されたアドレスaで指定されたデータを含むブロックBa
のデータがキャッシュメモリ11に存在しないので、キャ
ッシュメモリ11は、信号線101を介して、バスコントロ
ーラ12に、ブロックのデータの転送を行うように指示す
る。 バスコントローラ12は、信号線102を介して、システ
ムバス4の使用要求を、バスマスタコントローラ6に知
らせる。 バスマスタコントローラ6は、予め定められた手続き
に従い、1つのバスコントローラにのみ、システムバス
4の使用許可を与える。 システムバス4の使用許可が、信号線103を介して、
バスコントローラ12に与えられた時、バスコントローラ
12は、アドレスバス41上にアドレスaを出力し、また、
ブロック要求バス43上にブロック転送要求信号「1」を
出力し、さらに、書き込み指示バス48上に読み出しを指
示する信号「0」を出力する。 メインメモリ5は、アドレスバス41上に出力されてい
るアドレスa、ブロック要求バス43上に出力されている
ブロック転送要求信号「1」及び書き込み指示バス48上
に出力されている読み出しを指示する信号「0」によ
り、アドレスaで指定されたデータを含むブロックBaの
データの転送が要求されていることを知り、アドレスバ
ス41上に出力されているアドレスaで指定されているデ
ータを含むブロックBaのデータを読み出し、ブロックBa
のデータの転送を開始する。 このとき、メインメモリ5は、ブロックBaのデータの
転送を開始することを、転送応答バス44を介して、処理
ユニット1のバスコントローラ12に通知するとともに、
データバス42上に、ブロックBaのデータを出力する。 バスコントローラ12は、転送応答バス44を介して、転
送を要求したブロックBaのデータがデータバス42上に出
力されていることを知り、データバス42上に出力された
ブロックBaのデータを、プロセッサバス100を介して、
キャッシュメモリ11に入力する。 キャッシュメモリ11は、予め定められた手続きによ
り、選択したエントリのタグ部に、アドレスaのタグ情
報を書込み、また、エントリのデータ部にプロセッサバ
ス100を介して入力したブロックBaのデータを書込み、
さらに、それらタグ部及びデータ部への書込み(格納)
が有効であることをエントリのバリッド部に値「1」で
書き込む。 このような書込みが終了すれば、バスコントローラ12
は、信号線102を介して、システムバス4の使用が終了
したことを、バスマスタコントローラ6に知らせ、ブロ
ックBaのデータのキャッシュメモリ11への転送が終了す
る。 キャッシュメモリへの格納が禁止されているデータの
転送は、以下のように行われる。 プロセッサ10がアドレス「000011010101010101010100
00000001」(以下アドレスbと称す)で指定されている
データを読み出す時、プロセッサ10は、プロセッサバス
100上に読み出しを行うデータのアドレスbを出力する
とともに、キャッシュメモリ格納情報「010」を出力す
る。 キャッシュメモリ格納情報「010」の第1ビットが
「0」であることによって、ブロックのデータのキャッ
シュメモリへの格納が禁止されているので、キャッシュ
メモリ11には、アドレスbのデータは格納されておら
ず、メインメモリ5から処理ユニット1のプロセッサ10
へのデータの転送が以下のように行われる。 バスコントローラ12は、信号線102を介して、システ
ムバス4の使用要求を、バスマスタコントローラ6に知
らせる。 これに応じ、バスマスタコントローラ6から、システ
ムバス4の使用許可が、信号線103を介して、バスコン
トローラ12に与えられた時、バスコントローラ12は、ア
ドレスバス41上にアドレスbを出力し、また、ブロック
要求バス43上に、ブロック転送要求信号「0」を出力
し、さらに、書き込み指示バス48上に読み出しを指示す
る信号「0」を出力する。 メインメモリ5は、ブロック要求バス43上に出力され
ているブロック転送要求信号「0」により、アドレスb
のデータを含むブロックBbのデータの転送が要求されて
いないことを知り、アドレスバス41上に出力されている
アドレスbのデータを読み出し、そのデータの転送を開
始する。 このとき、メインメモリ5は、アドレスbのデータの
転送を開始することを、転送応答バス44を介して、処理
ユニット1のバスコントローラ12に通知するとともに、
データバス42上に、アドレスbのデータを出力する。 このため、バスコントローラ12は、転送応答バス44を
介して転送を要求したデータがデータバス42上に出力さ
れることを知り、データバス42上に出力されたデータ
を、プロセッサバス100を介して、プロセッサ10に出力
する。 このようにして、データの転送が終了すると、バスコ
ントローラ12は、システムバス4の使用が終了したこと
を、信号線102を介して、バスマスタコントローラ6に
知らせる。 上述したように、キャッシュメモリへのブロックのデ
ータの格納は、プロセッサから出力されるキャッシュメ
モリ格納情報の自キャッシュメモリに割り付けられてい
る値が「1」の時のみ行われる。 プロセッサ10が、メインメモリ5のアドレスaで指定
されているデータを書き換える動作、及びプロセッサ10
により書き換えられたメインメモリ5のデータとキャッ
シュメモリ11、21及び31内のデータとの無矛盾性保証制
御は、以下のようにして行われる。 プロセッサ10が、メインメモリ5上のアドレスaで指
定されているデータを書き換える時、プロセッサ10は、
プロセッサバス100に、アドレスa、書き換えデータ及
びキャッシュメモリ格納情報「110」を出力する。 キャッシュメモリ11は、プロセッサバス100上に出力
されているアドレスa及び書き換えデータを入力すると
ともに、その入力されたアドレスaによって、バリッド
部に有効であることを示す情報が格納されているエント
リのタグ部を検索する。 その結果、キャッシュメモリ11内に、アドレスaで指
定されているデータを含むブロックBaのデータを格納し
ているエントリが存在すれば、キャッシュメモリ11は、
ブロックBaのデータに含まれるアドレスaで指定されて
いるデータを、プロセッサバス100から入力した書き換
えデータに書き換える。 しかし、キャッシュメモリ11内に、アドレスaで指定
されているデータを含むブロックBaのデータを格納して
いるエントリが存在していなければ、キャッシュメモリ
11は、上述した書き換えを行わない。 次で、バスコントローラ12は、信号線102を介して、
システムバス4の使用要求を、バスマスタコントローラ
6に知らせる。 これにより、バスマスタコントローラ6から、信号線
103を介して、システムバス4の使用許可が、バスコン
トローラ12に与えられた時、バスコントローラ12は、ア
ドレスバス41上にアドレスaを出力し、また、データバ
ス42上に書き換えるデータを出力し、さらに、書き込み
指示バス48上に書き込み指示信号「1」を出力し、ま
た、キャッシュメモリ格納情報バス46及び47上にキャッ
シュメモリ格納情報「110」の第2ビットの値「1」及
び第3ビットの値「0」をそれぞれ出力する。 これに応じ、メインメモリ5は、書き込み指示バス48
上の書き換え指示信号「1」を受け取り、アドレスバス
41上に出力されているアドレスaで指定されているアド
レスに、データバス42上に出力されている書き換えデー
タを書き込む。 処理ユニット2において、AND回路23は、書き込み指
示バス48上の書き込み指示信号「1」と、キャッシュメ
モリ格納情報バス46上のキャッシュメモリ格納情報「11
0」の第2ビットの値「1」とを入力とし、キャッシュ
メモリ21に、信号線204を介して、値「1」を入力し、
システムバス4のデータバス42上に出力されている書き
換えデータについて無矛盾性保証制御を行う必要のある
ことを知らせる。 キャッシュメモリ21は、無矛盾性保証制御を行う必要
があることを信号線204を介して指示(値「1」)され
ると、アドレスバス41上のアドレスaを、信号線205を
介して入力し、アドレスaで指定されているデータを含
むブロックBaのデータがキャッシュメモリ21のエントリ
に格納されているか否かの検索を行い、その結果、ブロ
ックBaのデータが格納されていれば、ブロックBaのデー
タが格納されているエントリのバリッド部に、無効を示
す情報を書込む。 処理ユニット3において、AND回路33は、書き込み指
示バス48上の書き込み指示信号「1」と、キャッシュメ
モリ格納情報バス47上のキャッシュメモリ格納情報「11
0」の第3ビットの値「0」とを入力とし、キャッシュ
メモリ31に、信号線304を介して、値「0」を出力し、
システムバス4のデータバス42上に出力されている書き
換えデータについて無矛盾性保証制御を行う必要の無い
ことを知らせる。 キャッシュメモリ31は、無矛盾性保証制御を行う必要
がないことを信号線304を介して指示(値「0」)され
ると、アドレスaで指定されているデータを含むブロッ
クBaのデータがキャッシュメモリ31に格納されているか
否かの検索を行わない。 処理ユニット1は、上述したメインメモリ5の書き換
えを終了すると、バスコントローラ12によって、信号線
102を介して、システムバス4の使用が終了したこと
を、バスマスタコントローラ6に知らせる。 以上のことから、無矛盾性保証制御を行うために、他
のプロセッサにより書き換えが行われた全てのメインメ
モリのアドレスに対して、そのアドレスを含むブロック
のデータが各キャッシュメモリに格納されているか否か
の検索を行う必要がなくなり、各キャッシュメモリにお
ける書き換えられたアドレスの検索とプロセッサからの
アクセスとの競合を減少させることができる。
るキャッシュメモリ制御方法の実施例を述べよう。 第1図は、本発明によるマルチプロセッサシステムに
おけるキャッシュメモリ制御方法における、キャッシュ
メモリ格納情報をプロセッサ内に格納する場合の実施例
を示している。 処理ユニットのプロセッサに格納するキャッシュメモ
リ格納情報は、16(24)個のエントリからなり、一方、
各エントリは、3ビットの情報からなる。 この場合、メインメモリは16(24)個のページに分割
され、それらのそれぞれが、3ビットのキャッシュメモ
リ格納情報に対応している。この場合、各ページは1つ
以上のブロックを含む。 3ビットのキャッシュメモリ格納情報は、第1ビット
で、処理ユニット1のキャッシュメモリへのブロックの
データの格納を禁止する(「0」)か許可する
(「1」)かの指定を行い、第2ビットで、処理ユニッ
ト2のキャッシュメモリへのブロックのデータの格納を
禁止する(「0」)か許可する(「1」)かの指定を行
い、第3ビットで、処理ユニット3のキャッシュメモリ
へのブロックのデータの格納を禁止する(「0」)か許
可する(「1」)かの指定を行う。 プロセッサは、その任意のアドレスにアクセスする場
合、アドレス情報とともに、後述するアドレスaの上位
4ビットにより指定されているエントリに格納されてい
る3ビットのキャッシュメモリ格納情報を出力する。 第2図は、本発明によるマルチプロセッサシステムに
おけるキャッシュメモリ制御方法の実施例を示す。 第2図において、1、2、3は、処理ユニットを示
す。 4は、システムバスを示す。 5は、メインメモリを示す。 6は、バスマスタコントローラを示す。 10、20、30は、プロセッサを示す。 11、21、31は、キャッシュメモリを示す。 12、22、32は、バスコントローラを示す。 13、23、33は、AND回路を示す。 41は、アドレスバスを示す。 42は、データバスを示す。 43は、ブロック要求バスを示す。 44は、転送応答バスを示す。 45は、処理ユニット1のキャッシュメモリ格納情報バ
スを示す。 46は、処理ユニット2のキャッシュメモリ格納情報バ
スを示す。 47は、処理ユニット3のキャッシュメモリ格納情報バ
スを示す。 48は、書き込み指示バスを示す。 100、200、300は、プロセッサバスを示す。 102、202、302、103、203、303、104、204、304、10
5、205、305は信号線を示す。 キャッシュメモリ11、21及び31のそれぞれは、複数の
エントリからなり、その各エントリは、ブロックのアド
レス情報を格納するタグ部と、ブロックのデータを格納
するデータ部と、エントリに格納されている内容が有効
であるか無効であるかを示す情報を格納するバリッド部
とからなる。 キャッシュメモリへのデータの格納が許可されている
ブロックのデータの転送は以下のように行われる。 プロセッサ10は、アドレス「1011010101010101010101
0101010101」(以下アドレスaと称す)で指定されてい
るデータを読み出す時、プロセッサバス100上に読み出
しを行うデータのアドレスaを出力するとともに、キャ
ッシュメモリ格納情報「110」(格納許可「1」)を出
力する。 キャッシュメモリ格納情報「110」の第1ビットが
「1」であり、従って、ブロックのデータのキャッシュ
メモリへの格納が許可されているので、キャッシュメモ
リ11にアドレスaで指定されているデータが格納されて
いれば、キャッシュメモリ11は、チップバス100を介し
て、そのアドレスaで指定されているデータを、プロセ
ッサ10に転送する。 キャッシュメモリ11にアドレスaで指定されているデ
ータが格納されていなければ、メインメモリ5から、処
理ユニット1のキャッシュメモリ11に、ブロックのデー
タの転送が以下のように行われる。 処理ユニット1からプロセッサバス100を介して要求
されたアドレスaで指定されたデータを含むブロックBa
のデータがキャッシュメモリ11に存在しないので、キャ
ッシュメモリ11は、信号線101を介して、バスコントロ
ーラ12に、ブロックのデータの転送を行うように指示す
る。 バスコントローラ12は、信号線102を介して、システ
ムバス4の使用要求を、バスマスタコントローラ6に知
らせる。 バスマスタコントローラ6は、予め定められた手続き
に従い、1つのバスコントローラにのみ、システムバス
4の使用許可を与える。 システムバス4の使用許可が、信号線103を介して、
バスコントローラ12に与えられた時、バスコントローラ
12は、アドレスバス41上にアドレスaを出力し、また、
ブロック要求バス43上にブロック転送要求信号「1」を
出力し、さらに、書き込み指示バス48上に読み出しを指
示する信号「0」を出力する。 メインメモリ5は、アドレスバス41上に出力されてい
るアドレスa、ブロック要求バス43上に出力されている
ブロック転送要求信号「1」及び書き込み指示バス48上
に出力されている読み出しを指示する信号「0」によ
り、アドレスaで指定されたデータを含むブロックBaの
データの転送が要求されていることを知り、アドレスバ
ス41上に出力されているアドレスaで指定されているデ
ータを含むブロックBaのデータを読み出し、ブロックBa
のデータの転送を開始する。 このとき、メインメモリ5は、ブロックBaのデータの
転送を開始することを、転送応答バス44を介して、処理
ユニット1のバスコントローラ12に通知するとともに、
データバス42上に、ブロックBaのデータを出力する。 バスコントローラ12は、転送応答バス44を介して、転
送を要求したブロックBaのデータがデータバス42上に出
力されていることを知り、データバス42上に出力された
ブロックBaのデータを、プロセッサバス100を介して、
キャッシュメモリ11に入力する。 キャッシュメモリ11は、予め定められた手続きによ
り、選択したエントリのタグ部に、アドレスaのタグ情
報を書込み、また、エントリのデータ部にプロセッサバ
ス100を介して入力したブロックBaのデータを書込み、
さらに、それらタグ部及びデータ部への書込み(格納)
が有効であることをエントリのバリッド部に値「1」で
書き込む。 このような書込みが終了すれば、バスコントローラ12
は、信号線102を介して、システムバス4の使用が終了
したことを、バスマスタコントローラ6に知らせ、ブロ
ックBaのデータのキャッシュメモリ11への転送が終了す
る。 キャッシュメモリへの格納が禁止されているデータの
転送は、以下のように行われる。 プロセッサ10がアドレス「000011010101010101010100
00000001」(以下アドレスbと称す)で指定されている
データを読み出す時、プロセッサ10は、プロセッサバス
100上に読み出しを行うデータのアドレスbを出力する
とともに、キャッシュメモリ格納情報「010」を出力す
る。 キャッシュメモリ格納情報「010」の第1ビットが
「0」であることによって、ブロックのデータのキャッ
シュメモリへの格納が禁止されているので、キャッシュ
メモリ11には、アドレスbのデータは格納されておら
ず、メインメモリ5から処理ユニット1のプロセッサ10
へのデータの転送が以下のように行われる。 バスコントローラ12は、信号線102を介して、システ
ムバス4の使用要求を、バスマスタコントローラ6に知
らせる。 これに応じ、バスマスタコントローラ6から、システ
ムバス4の使用許可が、信号線103を介して、バスコン
トローラ12に与えられた時、バスコントローラ12は、ア
ドレスバス41上にアドレスbを出力し、また、ブロック
要求バス43上に、ブロック転送要求信号「0」を出力
し、さらに、書き込み指示バス48上に読み出しを指示す
る信号「0」を出力する。 メインメモリ5は、ブロック要求バス43上に出力され
ているブロック転送要求信号「0」により、アドレスb
のデータを含むブロックBbのデータの転送が要求されて
いないことを知り、アドレスバス41上に出力されている
アドレスbのデータを読み出し、そのデータの転送を開
始する。 このとき、メインメモリ5は、アドレスbのデータの
転送を開始することを、転送応答バス44を介して、処理
ユニット1のバスコントローラ12に通知するとともに、
データバス42上に、アドレスbのデータを出力する。 このため、バスコントローラ12は、転送応答バス44を
介して転送を要求したデータがデータバス42上に出力さ
れることを知り、データバス42上に出力されたデータ
を、プロセッサバス100を介して、プロセッサ10に出力
する。 このようにして、データの転送が終了すると、バスコ
ントローラ12は、システムバス4の使用が終了したこと
を、信号線102を介して、バスマスタコントローラ6に
知らせる。 上述したように、キャッシュメモリへのブロックのデ
ータの格納は、プロセッサから出力されるキャッシュメ
モリ格納情報の自キャッシュメモリに割り付けられてい
る値が「1」の時のみ行われる。 プロセッサ10が、メインメモリ5のアドレスaで指定
されているデータを書き換える動作、及びプロセッサ10
により書き換えられたメインメモリ5のデータとキャッ
シュメモリ11、21及び31内のデータとの無矛盾性保証制
御は、以下のようにして行われる。 プロセッサ10が、メインメモリ5上のアドレスaで指
定されているデータを書き換える時、プロセッサ10は、
プロセッサバス100に、アドレスa、書き換えデータ及
びキャッシュメモリ格納情報「110」を出力する。 キャッシュメモリ11は、プロセッサバス100上に出力
されているアドレスa及び書き換えデータを入力すると
ともに、その入力されたアドレスaによって、バリッド
部に有効であることを示す情報が格納されているエント
リのタグ部を検索する。 その結果、キャッシュメモリ11内に、アドレスaで指
定されているデータを含むブロックBaのデータを格納し
ているエントリが存在すれば、キャッシュメモリ11は、
ブロックBaのデータに含まれるアドレスaで指定されて
いるデータを、プロセッサバス100から入力した書き換
えデータに書き換える。 しかし、キャッシュメモリ11内に、アドレスaで指定
されているデータを含むブロックBaのデータを格納して
いるエントリが存在していなければ、キャッシュメモリ
11は、上述した書き換えを行わない。 次で、バスコントローラ12は、信号線102を介して、
システムバス4の使用要求を、バスマスタコントローラ
6に知らせる。 これにより、バスマスタコントローラ6から、信号線
103を介して、システムバス4の使用許可が、バスコン
トローラ12に与えられた時、バスコントローラ12は、ア
ドレスバス41上にアドレスaを出力し、また、データバ
ス42上に書き換えるデータを出力し、さらに、書き込み
指示バス48上に書き込み指示信号「1」を出力し、ま
た、キャッシュメモリ格納情報バス46及び47上にキャッ
シュメモリ格納情報「110」の第2ビットの値「1」及
び第3ビットの値「0」をそれぞれ出力する。 これに応じ、メインメモリ5は、書き込み指示バス48
上の書き換え指示信号「1」を受け取り、アドレスバス
41上に出力されているアドレスaで指定されているアド
レスに、データバス42上に出力されている書き換えデー
タを書き込む。 処理ユニット2において、AND回路23は、書き込み指
示バス48上の書き込み指示信号「1」と、キャッシュメ
モリ格納情報バス46上のキャッシュメモリ格納情報「11
0」の第2ビットの値「1」とを入力とし、キャッシュ
メモリ21に、信号線204を介して、値「1」を入力し、
システムバス4のデータバス42上に出力されている書き
換えデータについて無矛盾性保証制御を行う必要のある
ことを知らせる。 キャッシュメモリ21は、無矛盾性保証制御を行う必要
があることを信号線204を介して指示(値「1」)され
ると、アドレスバス41上のアドレスaを、信号線205を
介して入力し、アドレスaで指定されているデータを含
むブロックBaのデータがキャッシュメモリ21のエントリ
に格納されているか否かの検索を行い、その結果、ブロ
ックBaのデータが格納されていれば、ブロックBaのデー
タが格納されているエントリのバリッド部に、無効を示
す情報を書込む。 処理ユニット3において、AND回路33は、書き込み指
示バス48上の書き込み指示信号「1」と、キャッシュメ
モリ格納情報バス47上のキャッシュメモリ格納情報「11
0」の第3ビットの値「0」とを入力とし、キャッシュ
メモリ31に、信号線304を介して、値「0」を出力し、
システムバス4のデータバス42上に出力されている書き
換えデータについて無矛盾性保証制御を行う必要の無い
ことを知らせる。 キャッシュメモリ31は、無矛盾性保証制御を行う必要
がないことを信号線304を介して指示(値「0」)され
ると、アドレスaで指定されているデータを含むブロッ
クBaのデータがキャッシュメモリ31に格納されているか
否かの検索を行わない。 処理ユニット1は、上述したメインメモリ5の書き換
えを終了すると、バスコントローラ12によって、信号線
102を介して、システムバス4の使用が終了したこと
を、バスマスタコントローラ6に知らせる。 以上のことから、無矛盾性保証制御を行うために、他
のプロセッサにより書き換えが行われた全てのメインメ
モリのアドレスに対して、そのアドレスを含むブロック
のデータが各キャッシュメモリに格納されているか否か
の検索を行う必要がなくなり、各キャッシュメモリにお
ける書き換えられたアドレスの検索とプロセッサからの
アクセスとの競合を減少させることができる。
上述したように、本発明によるマルチプロセッサシス
テムにおけるキャッシュメモリ制御方法によれば、処理
ユニットにより書き換えが行われた全てのメインメモリ
のアドレスについて、そのアドレスを含むブロックのデ
ータが書き換えを行っていない他の処理ユニットのキャ
ッシュメモリに格納されているか否かの検索を行う必要
がなく、各キャッシュメモリにおける書き換えられたア
ドレスの検索回数を減少させることができる。
テムにおけるキャッシュメモリ制御方法によれば、処理
ユニットにより書き換えが行われた全てのメインメモリ
のアドレスについて、そのアドレスを含むブロックのデ
ータが書き換えを行っていない他の処理ユニットのキャ
ッシュメモリに格納されているか否かの検索を行う必要
がなく、各キャッシュメモリにおける書き換えられたア
ドレスの検索回数を減少させることができる。
第1図は、マルチプロセッサシステムにおけるキャッシ
ュメモリ制御方法によってキャッシュメモリ格納情報を
プロセッサ内に格納する場合の実施例を示す。 第2図は、本発明によるマルチプロセッサシステムにお
けるキャッシュメモリ制御方法の実施例を示す系統的接
続図である。 1、2、3……処理ユニット 4……システムバス 5……メインメモリ 6……バスマスタコントローラ 10、20、30……プロセッサ 11、21、31……キャッシュメモリ 12、22、32……バスコントローラ 13、23、33……AND回路 41……アドレスバス 42……データバス 43……ブロック要求バス 44……ブロック転送応答バス 45……処理ユニット1のキャッシュメモリ格納情報バス 46……処理ユニット2のキャッシュメモリ格納情報バス 47……処理ユニット3のキャッシュメモリ格納情報バス 48……書き込み指示バス 100、200、300……プロセッサバス
ュメモリ制御方法によってキャッシュメモリ格納情報を
プロセッサ内に格納する場合の実施例を示す。 第2図は、本発明によるマルチプロセッサシステムにお
けるキャッシュメモリ制御方法の実施例を示す系統的接
続図である。 1、2、3……処理ユニット 4……システムバス 5……メインメモリ 6……バスマスタコントローラ 10、20、30……プロセッサ 11、21、31……キャッシュメモリ 12、22、32……バスコントローラ 13、23、33……AND回路 41……アドレスバス 42……データバス 43……ブロック要求バス 44……ブロック転送応答バス 45……処理ユニット1のキャッシュメモリ格納情報バス 46……処理ユニット2のキャッシュメモリ格納情報バス 47……処理ユニット3のキャッシュメモリ格納情報バス 48……書き込み指示バス 100、200、300……プロセッサバス
Claims (1)
- 【請求項1】プロセッサ及びキャッシュメモリを有する
複数N個の処理ユニットと、それらとシステムバスを介
して相互に接続されているメインメモリとを有し、上記
メインメモリが1つ以上のブロックを含む複数のページ
に分割され、上記プロセッサが、上記メインメモリの各
ページについて、それに含まれるブロックのデータを各
処理ユニットのキャッシュメモリへ格納するか否かを一
意に指定可能なキャッシュメモリ格納情報を有するマル
チプロセッサシステムにおけるキャッシュメモリ制御方
法であって、 上記プロセッサは、上記メインメモリのデータを読み出
す時、読み出すデータのアドレスとともに前記キャッシ
ュメモリ格納情報を出力し、上記キャッシュメモリは、
上記プロセッサが読み出すデータを格納していない場合
において、上記キャッシュメモリ格納情報が自キャッシ
ュメモリへの格納を禁止していない場合、上記メインメ
モリから自キャッシュメモリに上記プロセッサが要求し
たデータを含むブロックのデータを転送し、上記キャッ
シュメモリ格納情報が自キャッシュメモリへの格納を禁
止している場合、上記メインメモリから自キャッシュメ
モリへのブロックのデータの転送を行わず、 上記プロセッサが上記メインメモリ上のデータを書き換
える時、書き換えを行う処理ユニットは、上記システム
バス上に自プロセッサが出力している上記キャッシュメ
モリ格納情報を出力し、上記メインメモリの書き換えを
行わない(N−1)個の処理ユニットは、書き換えを行
う処理ユニットが上記システムバス上に出力している上
記キャッシュメモリ格納情報によって書き換えが行われ
るデータを含むブロックのデータを自キャッシュメモリ
内へ格納することが禁止されていない場合、自キャッシ
ュメモリ内のデータと書き換えの行われた上記メインメ
モリ内のデータとの無矛盾性保証制御を行うことを特徴
とするマルチプロセッサシステムにおけるキャッシュメ
モリ制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63294344A JP2736352B2 (ja) | 1988-11-21 | 1988-11-21 | マルチプロセッサシステムにおけるキャッシュメモリ制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63294344A JP2736352B2 (ja) | 1988-11-21 | 1988-11-21 | マルチプロセッサシステムにおけるキャッシュメモリ制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02140847A JPH02140847A (ja) | 1990-05-30 |
| JP2736352B2 true JP2736352B2 (ja) | 1998-04-02 |
Family
ID=17806491
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63294344A Expired - Fee Related JP2736352B2 (ja) | 1988-11-21 | 1988-11-21 | マルチプロセッサシステムにおけるキャッシュメモリ制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2736352B2 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9645866B2 (en) * | 2010-09-20 | 2017-05-09 | Qualcomm Incorporated | Inter-processor communication techniques in a multiple-processor computing platform |
-
1988
- 1988-11-21 JP JP63294344A patent/JP2736352B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH02140847A (ja) | 1990-05-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR950007448B1 (ko) | 집적회로 메모리 시스템 | |
| JPS63101944A (ja) | 記憶制御装置 | |
| JP2736352B2 (ja) | マルチプロセッサシステムにおけるキャッシュメモリ制御方法 | |
| JP2749819B2 (ja) | 共有メモリ制御方式 | |
| JP2961663B2 (ja) | キャッシュメモリ制御方法 | |
| US4628450A (en) | Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor | |
| JP3190847B2 (ja) | データ転送制御装置 | |
| JPH0210446A (ja) | バッファ記憶装置 | |
| JP2504323B2 (ja) | システムバス制御方法 | |
| JPS59116866A (ja) | 計算機システムの記憶装置 | |
| JPS58201157A (ja) | バンクメモリの制御回路 | |
| JPS6319857Y2 (ja) | ||
| JPS6131495B2 (ja) | ||
| JPH02108139A (ja) | キャッシュメモリ装置 | |
| JP3074897B2 (ja) | メモリ回路 | |
| JPH04195563A (ja) | メモリシステムの制御装置 | |
| JP2588547B2 (ja) | マルチcpuシステム | |
| JPS62151970A (ja) | ロツクバイトアクセス方式 | |
| JPS63259746A (ja) | バンクメモリ間のデ−タ転送方式 | |
| JPH05225147A (ja) | マルチプロセッサ型データ処理システム | |
| JPH01276348A (ja) | 2次キャッシュメモリ方式 | |
| JPH06243045A (ja) | キャッシュメモリ | |
| JPH0664552B2 (ja) | 情報処理装置の無効化処理方式 | |
| JPH0612363A (ja) | メモリ制御装置およびマルチプロセッサシステム | |
| JPH0414147A (ja) | 中央演算処理装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |