JPH0241538A - キャッシュメモリ制御方法 - Google Patents
キャッシュメモリ制御方法Info
- Publication number
- JPH0241538A JPH0241538A JP63190674A JP19067488A JPH0241538A JP H0241538 A JPH0241538 A JP H0241538A JP 63190674 A JP63190674 A JP 63190674A JP 19067488 A JP19067488 A JP 19067488A JP H0241538 A JPH0241538 A JP H0241538A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- block
- processing unit
- bus
- cache memory
- 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
【発明の詳細な説明】
〔産業上の利用分野〕
本発明は、マルチプロセッサにおいて、キャッシュメモ
リ内のデータとメインメモリ内のデータとの無矛盾性保
証制御を行うためのキャッシュメモリ制御方式に関する
ものである。
リ内のデータとメインメモリ内のデータとの無矛盾性保
証制御を行うためのキャッシュメモリ制御方式に関する
ものである。
複数の処理ユニットがメインメモリを共有して使用する
マルチプロセッサシステムにおいて、各処理ユニットが
キャッシュメモリを有する場合、他の処理ユニットによ
り書き換えられたデータをキャッシュメモリ内に持つこ
とにより、処理ユニットが誤った処理を実行しないよう
に、各処理ユニットのキャッシュメモリ内のデータとメ
インメモリ内のデータとの無矛盾性保証制′4B(−数
制御)を行うことは不可欠である。
マルチプロセッサシステムにおいて、各処理ユニットが
キャッシュメモリを有する場合、他の処理ユニットによ
り書き換えられたデータをキャッシュメモリ内に持つこ
とにより、処理ユニットが誤った処理を実行しないよう
に、各処理ユニットのキャッシュメモリ内のデータとメ
インメモリ内のデータとの無矛盾性保証制′4B(−数
制御)を行うことは不可欠である。
一般に、キャッシュメモリは複数のエントリから成り、
各エントリは、ブロックのアドレス情報を格納するタグ
部、ブロックデータを格納するデータ部、タグ部および
データ部に格納されている内容が有効であるか無効であ
るかを示すバリッド部から成る。
各エントリは、ブロックのアドレス情報を格納するタグ
部、ブロックデータを格納するデータ部、タグ部および
データ部に格納されている内容が有効であるか無効であ
るかを示すバリッド部から成る。
処理ユニットがアドレスaで指定されるメインメモリの
データを書き換える時、処理ユニット内のキャッシュメ
モリおよびメインメモリの書き換エバ処理ユニットによ
り行われる。他の処理ユニットのキャッシュメモリとメ
インメモリとの無矛盾性保証制御は以下のように行う。
データを書き換える時、処理ユニット内のキャッシュメ
モリおよびメインメモリの書き換エバ処理ユニットによ
り行われる。他の処理ユニットのキャッシュメモリとメ
インメモリとの無矛盾性保証制御は以下のように行う。
キャッシュメモリは、書き換えられたメインメモリのア
ドレスa (ライトアドレス)を入力し、バリッド部で
有効であることが示されているエントリのタグ部を検索
する。検索の結果ライトアドレスaで指定されるデータ
を含むブロックがキャッシュメモリに存在した時、当該
ブロックを格納しているエントリのバリッド部に無効を
セットする。
ドレスa (ライトアドレス)を入力し、バリッド部で
有効であることが示されているエントリのタグ部を検索
する。検索の結果ライトアドレスaで指定されるデータ
を含むブロックがキャッシュメモリに存在した時、当該
ブロックを格納しているエントリのバリッド部に無効を
セットする。
以上述べたように、従来のキャッシュメモリとメインメ
モリとの無矛盾性保証制御方式では、他の処理ユニット
により書き換えられたメインメモリのデータがキャッシ
ュメモリ内に存在するが否かをチエ7りし、存在してい
ればそのデータを無効化していた。
モリとの無矛盾性保証制御方式では、他の処理ユニット
により書き換えられたメインメモリのデータがキャッシ
ュメモリ内に存在するが否かをチエ7りし、存在してい
ればそのデータを無効化していた。
しかし従来の方式では、各処理ユニットのキャッシュメ
モリにおいて、他の処理ユニットが書き換えを行った全
てのライトアドレスに対して、ライトアドレスを含むブ
ロックがキャッシュメモリに格納されているか否かのチ
エツクを行う必要があった。この方式では、以下に示す
競合が発生し、プロセッサからキャッシュメモリへのア
クセス待ち時間が生じる。
モリにおいて、他の処理ユニットが書き換えを行った全
てのライトアドレスに対して、ライトアドレスを含むブ
ロックがキャッシュメモリに格納されているか否かのチ
エツクを行う必要があった。この方式では、以下に示す
競合が発生し、プロセッサからキャッシュメモリへのア
クセス待ち時間が生じる。
(1)無矛盾性保証制御を行うためのライトアドレスの
キャッシュメモリへの入力と、プロセッサがキャッシュ
メモリ内のデータにアクセスするためのアドレスの入力
との競合。
キャッシュメモリへの入力と、プロセッサがキャッシュ
メモリ内のデータにアクセスするためのアドレスの入力
との競合。
(2)ライトアドレスに対する無矛盾性保証制御を行う
ためのタグ部の検索と、プロセッサがキャッシュメモリ
内のデータにアクセスするためのタグ部の検索との競合
。
ためのタグ部の検索と、プロセッサがキャッシュメモリ
内のデータにアクセスするためのタグ部の検索との競合
。
競合を減少させる方法として、(1)に対しては、キャ
ッシュメモリにライトアドレスを入力するための専用ピ
ンを設ける方法、(2)に対しては、キャッシュメモリ
内に同一情報を格納するタグ部を2個設け、一方をプロ
セッサからのアクセスに使用し、他方をライトアドレス
のチエツクに使用する方法がある。しかし、専用ビンを
設ける方法では、キャッシュメモリのピン数が増加する
欠点がある。また、タグ部を2個設ける方法では、キャ
ッシュメモリ内に冗長な情報が含まれることになる。
ッシュメモリにライトアドレスを入力するための専用ピ
ンを設ける方法、(2)に対しては、キャッシュメモリ
内に同一情報を格納するタグ部を2個設け、一方をプロ
セッサからのアクセスに使用し、他方をライトアドレス
のチエツクに使用する方法がある。しかし、専用ビンを
設ける方法では、キャッシュメモリのピン数が増加する
欠点がある。また、タグ部を2個設ける方法では、キャ
ッシュメモリ内に冗長な情報が含まれることになる。
本発明はこれらの課題を解決するためになされたもので
、各処理ユニットは、キャッシュメモリ内に格納しであ
るブロックが、他のいずれの処理ユニットのキャッシュ
メモリに格納しているかの情報を持つものである。メイ
ンメモリを書き換える処理ユニットは、ライトアドレス
と共に無矛盾性保証制御を行う必要のある(書き換えた
データを含むブロックを格納している)キャッシュメモ
リを指定するためのキャッシュ指定情報を出力し、他の
処理ユニットは、キャッシュ指定情報により指定された
時のみライトアドレスのチエツクおよび無効化(または
書き換え)を行うものである。
、各処理ユニットは、キャッシュメモリ内に格納しであ
るブロックが、他のいずれの処理ユニットのキャッシュ
メモリに格納しているかの情報を持つものである。メイ
ンメモリを書き換える処理ユニットは、ライトアドレス
と共に無矛盾性保証制御を行う必要のある(書き換えた
データを含むブロックを格納している)キャッシュメモ
リを指定するためのキャッシュ指定情報を出力し、他の
処理ユニットは、キャッシュ指定情報により指定された
時のみライトアドレスのチエツクおよび無効化(または
書き換え)を行うものである。
各処理ユニットで行われるライトアドレスのチエツク回
数は減少し、ライトアドレスのチエツクとプロセッサか
らキャッシュメモリへのアクセスとの競合は減少される
。
数は減少し、ライトアドレスのチエツクとプロセッサか
らキャッシュメモリへのアクセスとの競合は減少される
。
次に本発明について図面を参照して以下に詳述する。
図は、本発明の実施例が適用される回路のブロック図で
ある。
ある。
同図において、1,2.3は処理ユニット、4はシステ
ムバス、5はメインメモリ、6はバスマスクコントロー
ラ、10.20.30はプロセッサ、11.21.31
はキャッシュメモリ、12゜22.32はキャッシュ指
定回路、13,23゜33はバスコントローラ、41は
アドレスバス、42はデータバス、43はブロック要求
バス、44はブロック転送応答バス、45はキャッシュ
メモリ11のキャッシュ指定バス、46はキャッシュメ
モリ21のキャッシュ指定バス、47はキャッシュメモ
リ31のキャッシュ指定バス、48は書き込み指示バス
、100,200,300はプロセッサバスである。キ
ャッシュメモリ11,21.31は複数のエントリから
成り、各エントリは、ブロックのアドレス情報を格納す
るタグ部、キャッシュ指定バス上の値を格納すキャッシ
ュ指定部、ブロックデータを格納するデー外部、エント
リに格納されている内容がを効であるか無効であるかを
示すバリッド部から成る。
ムバス、5はメインメモリ、6はバスマスクコントロー
ラ、10.20.30はプロセッサ、11.21.31
はキャッシュメモリ、12゜22.32はキャッシュ指
定回路、13,23゜33はバスコントローラ、41は
アドレスバス、42はデータバス、43はブロック要求
バス、44はブロック転送応答バス、45はキャッシュ
メモリ11のキャッシュ指定バス、46はキャッシュメ
モリ21のキャッシュ指定バス、47はキャッシュメモ
リ31のキャッシュ指定バス、48は書き込み指示バス
、100,200,300はプロセッサバスである。キ
ャッシュメモリ11,21.31は複数のエントリから
成り、各エントリは、ブロックのアドレス情報を格納す
るタグ部、キャッシュ指定バス上の値を格納すキャッシ
ュ指定部、ブロックデータを格納するデー外部、エント
リに格納されている内容がを効であるか無効であるかを
示すバリッド部から成る。
ここで、メインメモリ5のアドレスaで指定されるデー
タを含むブロックをBaとし、ブロックBaはキャッシ
ュメモリ21に格納されており、キャッシュメモリ11
.31には格納されていないものとする。
タを含むブロックをBaとし、ブロックBaはキャッシ
ュメモリ21に格納されており、キャッシュメモリ11
.31には格納されていないものとする。
プロセッサ10からアドレスaで指定されるデータが要
求された時、メインメモリ5から処理ユニットlのキャ
ッシュメモリ11へのブロックBaの転送は以下のよう
に行われる。
求された時、メインメモリ5から処理ユニットlのキャ
ッシュメモリ11へのブロックBaの転送は以下のよう
に行われる。
処理ユニット1からプロセッサバス100を介して要求
されたアドレスaのデータを含むブロックBaがキャッ
シュメモリ11に存在しないので、キャッシュメモリ1
1は信号線101を介してバスコントローラ13にブロ
ック転送を行うように指示する。バスコントローラ13
は、信号vA102を介してシステムバス4の使用要求
をバスマスクコントローラ6に知らせる。バスマスクコ
ントローラ6は、予め定められた手続に従い1つのバス
コントローラにのみシステムバス4の使用許可を与える
。信号&?l 103を介してシステムバス4の使用許
可がバスコントローラ13に与えられ時、アドレスバス
41上にアドレスaを出力し、ブロック要求バス43に
ブロック転送要求信号を出力し、信号線104を介して
キャッシュ指定回路12にブロック要求をシステムバス
4に出力したことを知らせ、キャッシュ指定回路3は信
号線105を介してキャッシュ指定バス45上に「1」
を出力する。
されたアドレスaのデータを含むブロックBaがキャッ
シュメモリ11に存在しないので、キャッシュメモリ1
1は信号線101を介してバスコントローラ13にブロ
ック転送を行うように指示する。バスコントローラ13
は、信号vA102を介してシステムバス4の使用要求
をバスマスクコントローラ6に知らせる。バスマスクコ
ントローラ6は、予め定められた手続に従い1つのバス
コントローラにのみシステムバス4の使用許可を与える
。信号&?l 103を介してシステムバス4の使用許
可がバスコントローラ13に与えられ時、アドレスバス
41上にアドレスaを出力し、ブロック要求バス43に
ブロック転送要求信号を出力し、信号線104を介して
キャッシュ指定回路12にブロック要求をシステムバス
4に出力したことを知らせ、キャッシュ指定回路3は信
号線105を介してキャッシュ指定バス45上に「1」
を出力する。
バスコントローラ23は、ブロック要求バス43上に出
力されているブロック要求信号により、ブロック転送が
行われることを知り、アドレスバス41上に出力されて
いるアドレスaのデータを含むブロックBaが転送され
ることを信号線206を介してキャッシュメモリ21に
知らせる。キャッシュメモリ21は、アドレスaのデー
タを含むブロックBaが内部に格納されているか否かの
チエツクを行う。キャッシュメモリ21には、ブロック
Baが格納されているので、キャッシュメモリ21は信
号線207を介してキャッシュ指定回路22にブロック
[3aが格納されていることを知らせる。キャッシュ指
定回路22は、信号線205を介してキャッシュ指定バ
ス46上に「1」を出力する。
力されているブロック要求信号により、ブロック転送が
行われることを知り、アドレスバス41上に出力されて
いるアドレスaのデータを含むブロックBaが転送され
ることを信号線206を介してキャッシュメモリ21に
知らせる。キャッシュメモリ21は、アドレスaのデー
タを含むブロックBaが内部に格納されているか否かの
チエツクを行う。キャッシュメモリ21には、ブロック
Baが格納されているので、キャッシュメモリ21は信
号線207を介してキャッシュ指定回路22にブロック
[3aが格納されていることを知らせる。キャッシュ指
定回路22は、信号線205を介してキャッシュ指定バ
ス46上に「1」を出力する。
パスコントローラ33は、ブロック要求バス43上に出
力されているブロック要求信号により、ブロック転送が
行われること知り、アドレスバス41上に出力されてい
るアドレスaのデータを含むブロック13aが転送され
ることを信号線306を介してキャッシュメモリ31に
知らせる。キャッシュメモリ31は、アドレスaのデー
タを含むブロックBaが内部に格納されているか否かの
チエツクを行う。キャッシュメモリ31にはブロックB
aが格納されていないので、キャッシュメモリ31は、
信号線307を介してキャッシュ指定回路32にブロッ
クBaが格納されていないことを知らせる。キャッシュ
指定回路32は、信号線305を介してキャッシュ指定
バス47上に「0」を出力する。
力されているブロック要求信号により、ブロック転送が
行われること知り、アドレスバス41上に出力されてい
るアドレスaのデータを含むブロック13aが転送され
ることを信号線306を介してキャッシュメモリ31に
知らせる。キャッシュメモリ31は、アドレスaのデー
タを含むブロックBaが内部に格納されているか否かの
チエツクを行う。キャッシュメモリ31にはブロックB
aが格納されていないので、キャッシュメモリ31は、
信号線307を介してキャッシュ指定回路32にブロッ
クBaが格納されていないことを知らせる。キャッシュ
指定回路32は、信号線305を介してキャッシュ指定
バス47上に「0」を出力する。
メインメモリ5はブロック要求バス43上に出力されて
いるブロック要求信号により、ブロックが要求されてい
ることを知り、アドレスバス41上に出力されているア
ドレスaのデータを含むブロックBaを読み出し、ブロ
ックBaの転送を開始する。
いるブロック要求信号により、ブロックが要求されてい
ることを知り、アドレスバス41上に出力されているア
ドレスaのデータを含むブロックBaを読み出し、ブロ
ックBaの転送を開始する。
以上処理ユニット1がブロック要求バス43上にブロッ
ク要求信号を出力してから、処理ユニット2,3および
メインメモリ5の動作は並列に実行され、処理ユニット
2および3の動作はメインメモリ5がブロックBaの転
送を開始するまでに終了する。
ク要求信号を出力してから、処理ユニット2,3および
メインメモリ5の動作は並列に実行され、処理ユニット
2および3の動作はメインメモリ5がブロックBaの転
送を開始するまでに終了する。
メインメモリ5はブロックBaの転送を開始することを
ブロック転送応答バス44を介して処理ユニソl−1,
2,3に通知し、データバス42上にブロックBaを出
力する。
ブロック転送応答バス44を介して処理ユニソl−1,
2,3に通知し、データバス42上にブロックBaを出
力する。
パスコントローラ13は、ブロック転送応答バス44を
介して要求したブロックBaがデータバス42上に出力
されることを知り、データバス42上に出力されたブロ
ックBaをチップバス100を介してキャッシュメモリ
11に入力する。キャッシュメモリ11は、予め定めら
れた手続により選択したエントリのタグ部にアドレスa
のタグ情報を、キャッシュ指定部には信号線108およ
び109を介して入力したキャッシュ指定バス46上の
値「1」およびキャッシュ指定バス47上の値「0」を
、データ部にはチップバス100を介して入力したブロ
ックBaを、バリッド部には有効を示す値「1」をそれ
ぞれ書き込む。
介して要求したブロックBaがデータバス42上に出力
されることを知り、データバス42上に出力されたブロ
ックBaをチップバス100を介してキャッシュメモリ
11に入力する。キャッシュメモリ11は、予め定めら
れた手続により選択したエントリのタグ部にアドレスa
のタグ情報を、キャッシュ指定部には信号線108およ
び109を介して入力したキャッシュ指定バス46上の
値「1」およびキャッシュ指定バス47上の値「0」を
、データ部にはチップバス100を介して入力したブロ
ックBaを、バリッド部には有効を示す値「1」をそれ
ぞれ書き込む。
キャッシュメモリ21は、ブロック転送応答バス44を
介してブロックBaが転送されることを知り、ブロック
Baが格納されているエントリのキャッシュ指定部に、
信号線208および209を介して入力したキャッシュ
指定バス45上の値「1」およびキャッシュ指定バス4
7上の値「0」を書き込む。
介してブロックBaが転送されることを知り、ブロック
Baが格納されているエントリのキャッシュ指定部に、
信号線208および209を介して入力したキャッシュ
指定バス45上の値「1」およびキャッシュ指定バス4
7上の値「0」を書き込む。
キャッシュメモリ31は、ブロックBaを格納していれ
ば、キャッシュメモリ21と同様に動作するが、ここで
はブロックBaを格納していなので動作しない。
ば、キャッシュメモリ21と同様に動作するが、ここで
はブロックBaを格納していなので動作しない。
以上、メインメモリ5がブロック要求応答バス44上に
ブロック転送を開始する信号を出力してからの処理ユニ
ット1.2および3の動作は並列に実行される。ブロッ
ク転送が終了すると、パスコントローラ13は、信号線
102を介してシステムバス4の使用が終了したことを
ハスマスクコントローラ6に知らせる。
ブロック転送を開始する信号を出力してからの処理ユニ
ット1.2および3の動作は並列に実行される。ブロッ
ク転送が終了すると、パスコントローラ13は、信号線
102を介してシステムバス4の使用が終了したことを
ハスマスクコントローラ6に知らせる。
以上述べたようにブロックBaを転送することにより、
全てのキャッシュメモリに対して、ブロックBaを格納
しているエントリのキャッシュ指定情報部に、ブロック
Baを格納しているキャッシュメモリを指定する情報が
格納される。
全てのキャッシュメモリに対して、ブロックBaを格納
しているエントリのキャッシュ指定情報部に、ブロック
Baを格納しているキャッシュメモリを指定する情報が
格納される。
請求項1に対応する一実施例においては、プロセッサ1
0が、メインメモリ5のアドレスaで指定されるデータ
を書き換える動作およびプロセッサ10により書き換え
られたメインメモリ5のデータとキャッシュメモリ11
,21.31内のデータとの無矛盾性保証制御は以下の
ようにして行われる。
0が、メインメモリ5のアドレスaで指定されるデータ
を書き換える動作およびプロセッサ10により書き換え
られたメインメモリ5のデータとキャッシュメモリ11
,21.31内のデータとの無矛盾性保証制御は以下の
ようにして行われる。
プロセッサ10がメインメモリ5上のアドレスaのデー
タを書き換える時、プロセッサ10は、プロセッサバス
100にアドレスaおよび書き換えデータを出力する。
タを書き換える時、プロセッサ10は、プロセッサバス
100にアドレスaおよび書き換えデータを出力する。
キャッシュメモリ11は、プロセッサバス上に出力され
ているアドレスaおよび書き換えデータを入力し、バリ
ッド部に有効であることを示す情報を格納しているエン
トリのタグ部を検索する。
ているアドレスaおよび書き換えデータを入力し、バリ
ッド部に有効であることを示す情報を格納しているエン
トリのタグ部を検索する。
アドレスaで指定されるデータを含むブロックBaを格
納するエントリが内部に存在すれば、ブロックBaに含
まれるアドレスaで指定されるデータをチップバスから
入力した書き換えデータに書き換える。アドレスaで指
定されるデータを含むブロックBaを格納するエントリ
が内部に存在していなければ、書き換えは行わない。こ
こでは、ブロックBaを格納するエントリがキャッシュ
メモリ11の内部に存在するので、ブロックBaに含ま
れるアドレスaで指定されるデータをチップバス100
を介して入力した書き換えデータに書き換える。
納するエントリが内部に存在すれば、ブロックBaに含
まれるアドレスaで指定されるデータをチップバスから
入力した書き換えデータに書き換える。アドレスaで指
定されるデータを含むブロックBaを格納するエントリ
が内部に存在していなければ、書き換えは行わない。こ
こでは、ブロックBaを格納するエントリがキャッシュ
メモリ11の内部に存在するので、ブロックBaに含ま
れるアドレスaで指定されるデータをチップバス100
を介して入力した書き換えデータに書き換える。
バスコントローラ13は、信号線102を介してシステ
ムバスの使用要求をバスマスクコントローラ6に知らせ
る。信号vA103を介してシステムバス4の使用許可
がバスコントローラ13に与えられた時、バスコントロ
ーラ13は、アドレスバス41上にアドレスaを、デー
タバス42上に書き換えデータを、書き込み指示バス4
8に書き込み指示信号を出力するとともに、システムバ
ス4に書き込み情報を出力していることを信号線110
を介してキャッシュメモリ11に知らせる。
ムバスの使用要求をバスマスクコントローラ6に知らせ
る。信号vA103を介してシステムバス4の使用許可
がバスコントローラ13に与えられた時、バスコントロ
ーラ13は、アドレスバス41上にアドレスaを、デー
タバス42上に書き換えデータを、書き込み指示バス4
8に書き込み指示信号を出力するとともに、システムバ
ス4に書き込み情報を出力していることを信号線110
を介してキャッシュメモリ11に知らせる。
キャッシュメモリ11は、ブロックBaを格納するエン
トリが内部に存在すれば、当該エントリのキャッシュ指
定部に格納しである情報を信号線108および109を
介してキャッシュ指定バス46および47に出力する。
トリが内部に存在すれば、当該エントリのキャッシュ指
定部に格納しである情報を信号線108および109を
介してキャッシュ指定バス46および47に出力する。
ブロックBaを格納するエントリが内部に存在していな
ければ、信号線108および109を介してキャッシュ
指定バス46および47に値「1」を出力する。ここで
は、ブロックBaを格納するエントリがキャッシュメモ
リ11の内部に存在するので、キャッシュ指定バス46
上に「1」を、キャッシュ指定バス47上に「0」を出
力する。
ければ、信号線108および109を介してキャッシュ
指定バス46および47に値「1」を出力する。ここで
は、ブロックBaを格納するエントリがキャッシュメモ
リ11の内部に存在するので、キャッシュ指定バス46
上に「1」を、キャッシュ指定バス47上に「0」を出
力する。
メインメモリ5は、書き込み指示バス48上の書き込み
指示を受は取り、アドレスバス41上に出力されている
アドレスaにデータバス42上に出力されている書き換
えデータを書き込む。
指示を受は取り、アドレスバス41上に出力されている
アドレスaにデータバス42上に出力されている書き換
えデータを書き込む。
処理ユニット2において、キャッシュ指定回路22は、
信号線205を介して書き込み指示バス46上の値を入
力する。信号線205を介して入力した値が「1」の時
、信号線211を介してバスコントローラ23にシステ
ムバス4に出力されている書き換え情報について無矛盾
性保証制御を行う必要のあることを知らせる。信号線2
05を介して入力した値が「0」の時、信号線211を
介してバスコントローラ23にシステムバス4に出力さ
れている書き換え情報について無矛盾性保証制御を行う
必要のないこを知らせる。この場合、書き込み指示バス
46上には値「1」が出力されているので、バスコント
ローラ23は無矛盾性保証制御を行うために、アドレス
バス41上のアドレスaについて無矛盾性保証制御を行
うことを信号線206を介してキャッシュメモリ21に
指示する。キャッシュメモリ21は、信号線206を介
して入力されたアドレスaを含むブロックが格納してあ
れば無効化する必要のあること知り、アドレスaのデー
タを含むブロックBaがキャッシュメモリ21に格納さ
れているか否かのチェッソクを行う。キャッシュメモリ
21には、フロックBaが格納されているので、ブロッ
クBaが格納されているエントリのバリッド部に無効を
示す情報を書き込む。
信号線205を介して書き込み指示バス46上の値を入
力する。信号線205を介して入力した値が「1」の時
、信号線211を介してバスコントローラ23にシステ
ムバス4に出力されている書き換え情報について無矛盾
性保証制御を行う必要のあることを知らせる。信号線2
05を介して入力した値が「0」の時、信号線211を
介してバスコントローラ23にシステムバス4に出力さ
れている書き換え情報について無矛盾性保証制御を行う
必要のないこを知らせる。この場合、書き込み指示バス
46上には値「1」が出力されているので、バスコント
ローラ23は無矛盾性保証制御を行うために、アドレス
バス41上のアドレスaについて無矛盾性保証制御を行
うことを信号線206を介してキャッシュメモリ21に
指示する。キャッシュメモリ21は、信号線206を介
して入力されたアドレスaを含むブロックが格納してあ
れば無効化する必要のあること知り、アドレスaのデー
タを含むブロックBaがキャッシュメモリ21に格納さ
れているか否かのチェッソクを行う。キャッシュメモリ
21には、フロックBaが格納されているので、ブロッ
クBaが格納されているエントリのバリッド部に無効を
示す情報を書き込む。
処理ユニット3において、キャッシュ指定回路32は、
信号線305を介して書き込み指示バス47上の「0」
を入力し、信号綿311を介してバスコントローラ33
にシステムバス4に出力されている書き換え情報につい
て無矛盾性保証制御を行う必要のないことを知らせる。
信号線305を介して書き込み指示バス47上の「0」
を入力し、信号綿311を介してバスコントローラ33
にシステムバス4に出力されている書き換え情報につい
て無矛盾性保証制御を行う必要のないことを知らせる。
バスコントローラ33は、アドレスバス41上に出力さ
れているアドレスをキャッシュメモリ31に入力しない
。
れているアドレスをキャッシュメモリ31に入力しない
。
処ffユニット1は、メインメモリ5の書き換えを終了
すると、バスコントローラ13は、信号線102を介し
てシステバス4の使用が終了したことをバスマスクコン
トローラ6に知らせる。
すると、バスコントローラ13は、信号線102を介し
てシステバス4の使用が終了したことをバスマスクコン
トローラ6に知らせる。
請求項2に対応する一実施例においては、処理ユニット
1からメインメモリ5の書き換えが終了すると、キャッ
シュメモリ11は、ブロックBaを格納するエントリが
内部に存在すれば、当該エントリのキャッシュ指定格納
部に値「0」を格納する。
1からメインメモリ5の書き換えが終了すると、キャッ
シュメモリ11は、ブロックBaを格納するエントリが
内部に存在すれば、当該エントリのキャッシュ指定格納
部に値「0」を格納する。
これにより、他のプロセッサにより書き換えが行われた
全てのメインメモリのアドレスに対して、当該アドレス
を含むブロックが各キャッシュメモリに格納されている
か否かのチエツクをする必要がなくなり、各キャッシュ
メモリにおける書き換えられたアドレスのチエツクとプ
ロセッサからのアクセスとの競合を減少させることが可
能となる。
全てのメインメモリのアドレスに対して、当該アドレス
を含むブロックが各キャッシュメモリに格納されている
か否かのチエツクをする必要がなくなり、各キャッシュ
メモリにおける書き換えられたアドレスのチエツクとプ
ロセッサからのアクセスとの競合を減少させることが可
能となる。
以上説明したように本発明は、各処理ユニットは、キャ
ッシュメモリ内に格納しであるブロックが、他のいずれ
の処理ユニットのキャッシュメモリに格納しているかの
情報を持つものである。メインメモリを書き換える処理
ユニットは、ライトアドレスと共に無矛盾性保証制御を
行う必要のあるキャッシュメモリを指定するためのキャ
ッシュ指定情報を出力し、他の処理ユニットは、キャッ
シュ指定情報により指定された時のみライトアドレスの
チ、117りおよび無効化を行うようにしたことにより
、各処理ユニットで行われるライトアドレスのチエツク
回数は減少し、ライトアドレスのチエツクとプロセッサ
からキャッシュメモリへのアクセスとの競合は減少され
る。
ッシュメモリ内に格納しであるブロックが、他のいずれ
の処理ユニットのキャッシュメモリに格納しているかの
情報を持つものである。メインメモリを書き換える処理
ユニットは、ライトアドレスと共に無矛盾性保証制御を
行う必要のあるキャッシュメモリを指定するためのキャ
ッシュ指定情報を出力し、他の処理ユニットは、キャッ
シュ指定情報により指定された時のみライトアドレスの
チ、117りおよび無効化を行うようにしたことにより
、各処理ユニットで行われるライトアドレスのチエツク
回数は減少し、ライトアドレスのチエツクとプロセッサ
からキャッシュメモリへのアクセスとの競合は減少され
る。
このため、他のプロセッサにより書き換えが行われた全
てのメインメモリのアドレスに対して、当該アドレスを
含むブロックが各キャッシュメモリに格納されているか
否かのチエツクをする必要がなくなり、各キャッシュメ
モリにおける書き換えられたアドレスのチエツク回数を
減少させることが可能となる。
てのメインメモリのアドレスに対して、当該アドレスを
含むブロックが各キャッシュメモリに格納されているか
否かのチエツクをする必要がなくなり、各キャッシュメ
モリにおける書き換えられたアドレスのチエツク回数を
減少させることが可能となる。
また、請求項2に記載の発明を用いることにより、1つ
の処理ユニットが同一のブロック内のデータを速読して
書き換える場合、最初の書き換え時のみ他の処理ユニッ
トのキャッシュメモリで無矛盾性保証制御(書き換えら
れたデータを含むブロックの無効化)を行い、2回目以
降の書き換え時には他の処理ユニットのキャッシュメモ
リで無矛盾性保証制御を行わないようにすることが可能
となる。
の処理ユニットが同一のブロック内のデータを速読して
書き換える場合、最初の書き換え時のみ他の処理ユニッ
トのキャッシュメモリで無矛盾性保証制御(書き換えら
れたデータを含むブロックの無効化)を行い、2回目以
降の書き換え時には他の処理ユニットのキャッシュメモ
リで無矛盾性保証制御を行わないようにすることが可能
となる。
このように本発明によれば、全てのブロック転送に対し
て、転送されるブロックが自キャッシュメモリ内に格納
されているか否かのチエツクをすることが必要となるが
、一般に、ブロック転送回数は、メインメモリの書き換
え回数に比較して少ないので、各キャッシュメモリでの
チエツク回数を減少させることが出来る。
て、転送されるブロックが自キャッシュメモリ内に格納
されているか否かのチエツクをすることが必要となるが
、一般に、ブロック転送回数は、メインメモリの書き換
え回数に比較して少ないので、各キャッシュメモリでの
チエツク回数を減少させることが出来る。
図は本発明の一実施例が適用される回路のブロック図で
ある。 1.2.3・・・処理ユニット、4・・・システムバス
、5・・・メインメモリ、6・・・バスマスクコントロ
ーラ、10,20.30・・・プロセッサ、11,21
.31・・・キャッシュメモリ、12.22.32・・
・バスコントローラ、41・・・アドレスバス、42・
・・データバス、43・・・ブロック要求ハス、44・
・・ブロック転送応答ハス、45,46.47・・・キ
ャッシュ指定バス、48・・・書き込み指示バス、10
0.200,300・・・プロセッサバス。 特許出願人 日本電信電話株式会社 代 理 人 山川政樹(ほか1名)
ある。 1.2.3・・・処理ユニット、4・・・システムバス
、5・・・メインメモリ、6・・・バスマスクコントロ
ーラ、10,20.30・・・プロセッサ、11,21
.31・・・キャッシュメモリ、12.22.32・・
・バスコントローラ、41・・・アドレスバス、42・
・・データバス、43・・・ブロック要求ハス、44・
・・ブロック転送応答ハス、45,46.47・・・キ
ャッシュ指定バス、48・・・書き込み指示バス、10
0.200,300・・・プロセッサバス。 特許出願人 日本電信電話株式会社 代 理 人 山川政樹(ほか1名)
Claims (2)
- (1)ブロック情報格納部およびキャッシュ指定情報部
を有する複数のエントリから成るキャッシュメモリ、キ
ャッシュ指定回路およびプロセッサから構成される複数
の処理ユニットと、この処理ユニットとシステムバスで
接続されたメインメモリとを備えた情報処理装置におい
て、 処理ユニットが上記メインメモリから自キャッシュメモ
リにブロックBを転送する時、 ブロック転送を行う処理ユニットのキャッシュ指定回路
はシステムバス上に予め定められたキャッシュ指定情報
を出力し、 ブロック転送を行わない他の処理ユニットは、転送され
るブロックBが自キャッシュメモリの内部に格納されて
いる場合、自キャッシュ指定回路から上記システムバス
上に予め定められたキャッシュ指定情報を出力すると共
に、他の処理ユニットのキャッシュ指定回路が上記シス
テムバス上に出力しているキャッシュ指定情報をブロッ
クBが格納されているエントリのキャッシュ指定情報格
納部に格納し、 ブロック転送を行う処理ユニットは、転送されたブロッ
クBおよび他の処理ユニットのキャッシュ指定回路が上
記システムバス上に出力しているキャッシュ指定情報を
予め定められた手続により選択されたエントリのブロッ
ク情報格納部、キャッシュ指定情報格納部に格納し、 上記処理ユニットが上記メインメモリを書き換える時、 書き換えを行う処理ユニットは、システムバス上に上記
メインメモリの書き換え情報を出力し、自キャッシュメ
モリに書き込みを行うブロックが格納されている場合、
書き込みが行われるブロックを格納しているエントリの
キャッシュ指定情報格納部に格納されているキャッシュ
指定情報を上記システムバスに出力し、自キャッシュメ
モリに書き込みを行うブロックが格納されていない場合
、予め定められたキャッシュ指定情報を上記システムバ
スに出力し、 書き込みを行わない処理ユニットは、上記システムバス
に各処理ユニット毎に予め定められたキャッシュ指定情
報が出力されている場合、上記システムバス上に出力さ
れている書き換え情報を用いて自キャッシュメモリ内の
データと上記メインメモリ内のデータの無矛盾性保証制
御を行うことを特徴とするキャッシュメモリ制御方式。 - (2)請求項1において、上記処理ユニットが上記メイ
ンメモリを書き換える時、書き換えを行う処理ユニット
は、自キャッシュメモリに書き込みを行うブロックが格
納されている場合、書き込みが行われるブロックを格納
しているエントリのキャッシュ指定情報格納部に格納さ
れているキャッシュ指定情報を上記システムバスに出力
した後、キャッシュ指定情報を予め定められたキャッシ
ュ指定情報に書き換えることを特徴とするキャッシュメ
モリ制御方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63190674A JP2961663B2 (ja) | 1988-08-01 | 1988-08-01 | キャッシュメモリ制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63190674A JP2961663B2 (ja) | 1988-08-01 | 1988-08-01 | キャッシュメモリ制御方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0241538A true JPH0241538A (ja) | 1990-02-09 |
| JP2961663B2 JP2961663B2 (ja) | 1999-10-12 |
Family
ID=16262003
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63190674A Expired - Fee Related JP2961663B2 (ja) | 1988-08-01 | 1988-08-01 | キャッシュメモリ制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2961663B2 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02141845A (ja) * | 1988-09-16 | 1990-05-31 | Digital Equip Corp <Dec> | マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法 |
| JPH02186456A (ja) * | 1989-01-13 | 1990-07-20 | Nippon I B M Kk | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
| JPH04227552A (ja) * | 1990-04-05 | 1992-08-17 | Internatl Business Mach Corp <Ibm> | ストアスルーキャッシュ管理システム |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5231137A (en) * | 1975-08-29 | 1977-03-09 | Zinser Textilmaschinen Gmbh | Ring fine spining and yarn twisting machine |
-
1988
- 1988-08-01 JP JP63190674A patent/JP2961663B2/ja not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5231137A (en) * | 1975-08-29 | 1977-03-09 | Zinser Textilmaschinen Gmbh | Ring fine spining and yarn twisting machine |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH02141845A (ja) * | 1988-09-16 | 1990-05-31 | Digital Equip Corp <Dec> | マルチプロセッサシステムにおいて中央処理ユニットにより主メモリからデータブロックを読み取る方法 |
| JPH02186456A (ja) * | 1989-01-13 | 1990-07-20 | Nippon I B M Kk | マルチプロセッサ・システムのキャッシュ制御システムおよび方法 |
| JPH04227552A (ja) * | 1990-04-05 | 1992-08-17 | Internatl Business Mach Corp <Ibm> | ストアスルーキャッシュ管理システム |
Also Published As
| Publication number | Publication date |
|---|---|
| JP2961663B2 (ja) | 1999-10-12 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5276836A (en) | Data processing device with common memory connecting mechanism | |
| US6088769A (en) | Multiprocessor cache coherence directed by combined local and global tables | |
| KR930016891A (ko) | 캐쉬 제어기 | |
| JPH0241538A (ja) | キャッシュメモリ制御方法 | |
| JP2736352B2 (ja) | マルチプロセッサシステムにおけるキャッシュメモリ制御方法 | |
| JPS6329297B2 (ja) | ||
| JPH02110646A (ja) | メモリの先行読出し装置 | |
| JPH04140860A (ja) | マルチプロセッサにおけるバス制御方法 | |
| JP3782178B2 (ja) | 情報処理装置 | |
| JPH06274415A (ja) | 共有メモリシステム | |
| JPS5815877B2 (ja) | バツフア・メモリ制御方式 | |
| JP3219422B2 (ja) | キャッシュメモリ制御方式 | |
| JPH0612363A (ja) | メモリ制御装置およびマルチプロセッサシステム | |
| JPH06139206A (ja) | マルチプロセッサシステムにおける排他制御方式 | |
| JPS6131495B2 (ja) | ||
| JPS59135684A (ja) | バツフアメモリ間のデ−タバイパス方式 | |
| JPH05225147A (ja) | マルチプロセッサ型データ処理システム | |
| JPH0553912A (ja) | キヤツシユメモリの制御方法 | |
| JPS63247852A (ja) | キヤツシユメモリ制御方法 | |
| JPS5822834B2 (ja) | バッフア・インバリッド制御方式 | |
| JPH04296950A (ja) | キャッシュメモリ装置 | |
| JPH04302044A (ja) | マルチプロセッサシステム | |
| JPS62226348A (ja) | 主記憶装置兼主記憶制御装置 | |
| JPH0242548A (ja) | バッファ記憶データの消去制御装置 | |
| JPS6017550A (ja) | キヤツシユメモリ管理方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |