JP3055908B2 - キャッシュメモリ制御装置 - Google Patents
キャッシュメモリ制御装置Info
- Publication number
- JP3055908B2 JP3055908B2 JP1194618A JP19461889A JP3055908B2 JP 3055908 B2 JP3055908 B2 JP 3055908B2 JP 1194618 A JP1194618 A JP 1194618A JP 19461889 A JP19461889 A JP 19461889A JP 3055908 B2 JP3055908 B2 JP 3055908B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- invalidation
- cycle
- cache memory
- data
- 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)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、データ処理装置に内蔵されるキャッシュメ
モリのキャッシュメモリ制御装置に関し、特に、ムーブ
インしたばかりの有効なデータを誤って無効化しないよ
うにするキャッシュメモリ制御装置に関するものであ
る。
モリのキャッシュメモリ制御装置に関し、特に、ムーブ
インしたばかりの有効なデータを誤って無効化しないよ
うにするキャッシュメモリ制御装置に関するものであ
る。
近年、データ処理の高速化の要求に応じて、データ処
理装置内に主記憶の一部をコピーしたキャッシュメモリ
を内蔵していく構成を採ることが行われている。そし
て、高度なデータを実行していくために、この構成を採
るデータ処理装置をマルチプロセッサ構成で使用すると
いうシステム構成を採ることが多い。このようなシステ
ム構成を採ると、他のデータ処理装置により主記憶が書
き換えられることが起こり、主記憶とキャッシュメモリ
との間にデータの不一致が生ずる。そこで、このような
システム構成では、他のデータ処理装置が主記憶のデー
タを書き換えるときには、対応するキャッシュメモリの
データを無効なものとする無効化処理を行うキャッシュ
メモリ制御を実行することになる。
理装置内に主記憶の一部をコピーしたキャッシュメモリ
を内蔵していく構成を採ることが行われている。そし
て、高度なデータを実行していくために、この構成を採
るデータ処理装置をマルチプロセッサ構成で使用すると
いうシステム構成を採ることが多い。このようなシステ
ム構成を採ると、他のデータ処理装置により主記憶が書
き換えられることが起こり、主記憶とキャッシュメモリ
との間にデータの不一致が生ずる。そこで、このような
システム構成では、他のデータ処理装置が主記憶のデー
タを書き換えるときには、対応するキャッシュメモリの
データを無効なものとする無効化処理を行うキャッシュ
メモリ制御を実行することになる。
一方、キャッシュメモリ制御では、登録されていない
主記憶のデータをキャッシュメモリに登録するというム
ーブイン処理を実行することになる。これから、キャッ
シュメモリを内蔵するデータ処理装置をマルチプロセッ
サ構成で使用するデータ処理システムでは、ムーブイン
したばかりの有効なデータが誤って無効化されないよう
にするキャッシュメモリ制御を実装していく必要があ
る。
主記憶のデータをキャッシュメモリに登録するというム
ーブイン処理を実行することになる。これから、キャッ
シュメモリを内蔵するデータ処理装置をマルチプロセッ
サ構成で使用するデータ処理システムでは、ムーブイン
したばかりの有効なデータが誤って無効化されないよう
にするキャッシュメモリ制御を実装していく必要があ
る。
第3図及び第4図に従って、パイプライン処理によっ
て実行されることになる従来のキャッシュメモリ制御方
式について詳細に説明する。ここで、第4図は、第3図
のキャッシュメモリ制御回路15の詳細な構成を表してい
る。
て実行されることになる従来のキャッシュメモリ制御方
式について詳細に説明する。ここで、第4図は、第3図
のキャッシュメモリ制御回路15の詳細な構成を表してい
る。
最初に、キャッシュメモリに対してのフェッチ処理に
ついて説明する。ここで、キャッシュメモリは、キャッ
シュディレクトリ部6とキャッシュデータアレイ部7と
からなり、例えば、6ビットのラインアドレスと4個の
ウェイ番号とに従ってアクセスされる2次元構造を有し
ている。
ついて説明する。ここで、キャッシュメモリは、キャッ
シュディレクトリ部6とキャッシュデータアレイ部7と
からなり、例えば、6ビットのラインアドレスと4個の
ウェイ番号とに従ってアクセスされる2次元構造を有し
ている。
命令あるいは命令のオペランドのフェッチ要求がプラ
イオリティ回路151に伝えられると、このプライオリテ
ィ回路151は、フェッチ要求の処理の開始を決定する。
プライオリティ回路151は、キャッシュメモリに対する
フェッチ要求やムーブイン要求や無効化要求を受け付け
て、それらの要求をある決められた優先順位に従い、各
サイクル毎に最大1つの要求の処理の開始を決定する回
路である。フェッチ要求の処理の開始がプライオリティ
回路151により決定されると、P−FC−GO信号がオンに
なり、他のGO信号はオフになる。このP−FC−GO信号に
より、セレクタ2は、命令あるいは命令のオペランドの
フェッチ要求のアドレスを表すFC−ADRSの値を選択して
出力する。以下、説明の便宜上、ここまでの処理をPサ
イクルの処理と呼ぶことにする。
イオリティ回路151に伝えられると、このプライオリテ
ィ回路151は、フェッチ要求の処理の開始を決定する。
プライオリティ回路151は、キャッシュメモリに対する
フェッチ要求やムーブイン要求や無効化要求を受け付け
て、それらの要求をある決められた優先順位に従い、各
サイクル毎に最大1つの要求の処理の開始を決定する回
路である。フェッチ要求の処理の開始がプライオリティ
回路151により決定されると、P−FC−GO信号がオンに
なり、他のGO信号はオフになる。このP−FC−GO信号に
より、セレクタ2は、命令あるいは命令のオペランドの
フェッチ要求のアドレスを表すFC−ADRSの値を選択して
出力する。以下、説明の便宜上、ここまでの処理をPサ
イクルの処理と呼ぶことにする。
続いて、TAレジスタ3(図中ではTARと記述すること
がある)が、32ビットからなるこのセレクタ2からのア
ドレスの出力をラッチする。このラッチ処理により、キ
ャッシュメモリのキャッシュディレクトリ部6に対し
て、TAレジスタ3のアドレスの内のビット20〜25のアド
レスが入力されることになる。ここで、キャッシュディ
レクトリ部6は、TAレジスタ3のアドレスの内のビット
20〜25のアドレスをラインアドレスとしてアクセスされ
るRAMであり、キャッシュメモリのブロックの有効/無
効を表す有効ビット(V)と、20ビットよりなるそのブ
ロックの主記憶上におけるアドレス(ADRS、以下ブロッ
クアドレスと称する)とを格納する。この図の構成例で
は、このようなRAMが4つ並列して設けられるものを示
しており、これらの4つに対して順番にウェイ番号が付
けられることになる。従って、1つのラインアドレスに
よりアクセスすると、キャッシュディレクトリ部6から
4個のデータが読み出されることになる。
がある)が、32ビットからなるこのセレクタ2からのア
ドレスの出力をラッチする。このラッチ処理により、キ
ャッシュメモリのキャッシュディレクトリ部6に対し
て、TAレジスタ3のアドレスの内のビット20〜25のアド
レスが入力されることになる。ここで、キャッシュディ
レクトリ部6は、TAレジスタ3のアドレスの内のビット
20〜25のアドレスをラインアドレスとしてアクセスされ
るRAMであり、キャッシュメモリのブロックの有効/無
効を表す有効ビット(V)と、20ビットよりなるそのブ
ロックの主記憶上におけるアドレス(ADRS、以下ブロッ
クアドレスと称する)とを格納する。この図の構成例で
は、このようなRAMが4つ並列して設けられるものを示
しており、これらの4つに対して順番にウェイ番号が付
けられることになる。従って、1つのラインアドレスに
よりアクセスすると、キャッシュディレクトリ部6から
4個のデータが読み出されることになる。
キャッシュディレクトリ部6の4つのRAMに対して、T
Aレジスタ3のビット20〜25のアドレスが入力される
と、そのラインアドレスに対応する有効ビットとブロッ
クアドレスとが読み出され、この読み出された20ビット
のブロックアドレスは比較器8に入力されることにな
る。比較器8は、この読み出されたブロックアドレス
と、TAレジスタ3のアドレスの内のビット00〜19のアド
レスとを比較して、この2つの値が一致するときには
“1"、不一致のときには“0"を出力する。この比較器8
の出力とキャッシュディレクトリ部6から読み出される
有効ビットとを受けて、4つのウェイに対応して設けら
れるANDゲート9の内、TAレジスタ3にラッチされてい
るアドレスに対応するデータが存在するウェイのANDゲ
ート9がオンを出力する。以下、説明の便宜上、Pサイ
クルの終了からここまでの処理をTサイクルの処理と呼
ぶことにする。
Aレジスタ3のビット20〜25のアドレスが入力される
と、そのラインアドレスに対応する有効ビットとブロッ
クアドレスとが読み出され、この読み出された20ビット
のブロックアドレスは比較器8に入力されることにな
る。比較器8は、この読み出されたブロックアドレス
と、TAレジスタ3のアドレスの内のビット00〜19のアド
レスとを比較して、この2つの値が一致するときには
“1"、不一致のときには“0"を出力する。この比較器8
の出力とキャッシュディレクトリ部6から読み出される
有効ビットとを受けて、4つのウェイに対応して設けら
れるANDゲート9の内、TAレジスタ3にラッチされてい
るアドレスに対応するデータが存在するウェイのANDゲ
ート9がオンを出力する。以下、説明の便宜上、Pサイ
クルの終了からここまでの処理をTサイクルの処理と呼
ぶことにする。
続いて、BAレジスタ4(図中ではBARと記述すること
がある)が、TAレジスタ3がラッチしているアドレスを
ラッチし、BMレジスタ13(図中ではBMRと記述すること
がある)が、ANDゲート9の出力をラッチする。このBA
レジスタ4のラッチ処理により、キャッシュメモリのキ
ャッシュデータアレイ部7に対して、BAレジスタ4のア
ドレスの内のビット20〜25のアドレスが入力されること
になる。ここで、キャッシュデータアレイ部7は、BAレ
ジスタ4のアドレスの内のビット20〜25のアドレスをラ
インアドレスとしてアクセスされるRAMであり、キャッ
シュディレクトリ部6で指定されるブロックアドレスに
ついてのブロックデータ(64バイト分のデータ)を格納
する。この図の構成例では、このようなRAMがキャッシ
ュディレクトリ部6に対応させて4つ並列して設けられ
るものを示しており、キャッシュディレクトリ部6のも
のに対応したウェイ番号が付けられることになる。
がある)が、TAレジスタ3がラッチしているアドレスを
ラッチし、BMレジスタ13(図中ではBMRと記述すること
がある)が、ANDゲート9の出力をラッチする。このBA
レジスタ4のラッチ処理により、キャッシュメモリのキ
ャッシュデータアレイ部7に対して、BAレジスタ4のア
ドレスの内のビット20〜25のアドレスが入力されること
になる。ここで、キャッシュデータアレイ部7は、BAレ
ジスタ4のアドレスの内のビット20〜25のアドレスをラ
インアドレスとしてアクセスされるRAMであり、キャッ
シュディレクトリ部6で指定されるブロックアドレスに
ついてのブロックデータ(64バイト分のデータ)を格納
する。この図の構成例では、このようなRAMがキャッシ
ュディレクトリ部6に対応させて4つ並列して設けられ
るものを示しており、キャッシュディレクトリ部6のも
のに対応したウェイ番号が付けられることになる。
キャッシュデータアレイ部7の4つのRAMに対して、B
Aレジスタ4のビット20〜25のアドレスが入力される
と、それぞれのRAMから64バイトのブロックデータが読
み出されてセレクタ10に入力されることになる。セレク
タ10は、BMレジスタ13の出力がオンであるウェイに対応
するブロックデータを選択して次段のセレクタ11に入力
する。この入力を受け取ると、セレクタ11は、入力され
る64バイトのブロックデータの中から、BAレジスタ4の
ビット26〜31で指定されるアドレスを先頭にする連続し
た8バイトのデータを選択して出力する。以下、説明の
便宜上、Tサイクルの終了からここまでの処理をBサイ
クルの処理と呼ぶことにする。
Aレジスタ4のビット20〜25のアドレスが入力される
と、それぞれのRAMから64バイトのブロックデータが読
み出されてセレクタ10に入力されることになる。セレク
タ10は、BMレジスタ13の出力がオンであるウェイに対応
するブロックデータを選択して次段のセレクタ11に入力
する。この入力を受け取ると、セレクタ11は、入力され
る64バイトのブロックデータの中から、BAレジスタ4の
ビット26〜31で指定されるアドレスを先頭にする連続し
た8バイトのデータを選択して出力する。以下、説明の
便宜上、Tサイクルの終了からここまでの処理をBサイ
クルの処理と呼ぶことにする。
続いて、RDレジスタ12(図中ではRDRと記述すること
がある)が、セレクタ11から出力されるバイトのデータ
をラッチし、このラッチされたデータがフェッチ要求に
対しての応答データとして、図示しない命令処理部に渡
されることになる。以下、説明の便宜上、Bサイクルの
終了からここまでの処理をRサイクルの処理と呼ぶこと
にする。
がある)が、セレクタ11から出力されるバイトのデータ
をラッチし、このラッチされたデータがフェッチ要求に
対しての応答データとして、図示しない命令処理部に渡
されることになる。以下、説明の便宜上、Bサイクルの
終了からここまでの処理をRサイクルの処理と呼ぶこと
にする。
このようにして、フェッチ要求に対して、P,T,B,Rと
いう4つのサイクルの処理位を実行することで、キャッ
シュメモリ中にフェッチ要求のあるアドレスにより指定
される有効なデータが存在するのか否かを判断し、存在
すると判断するときには、対応するデータをRDレジスタ
12から命令処理部に渡すよう処理するとともに、存在し
ないと判断するときには、図示しない回路に従って、主
記憶に対してフェッチ要求のあるアドレスが指定する64
バイトのブロックデータの転送要求を実行することにな
る。
いう4つのサイクルの処理位を実行することで、キャッ
シュメモリ中にフェッチ要求のあるアドレスにより指定
される有効なデータが存在するのか否かを判断し、存在
すると判断するときには、対応するデータをRDレジスタ
12から命令処理部に渡すよう処理するとともに、存在し
ないと判断するときには、図示しない回路に従って、主
記憶に対してフェッチ要求のあるアドレスが指定する64
バイトのブロックデータの転送要求を実行することにな
る。
次に、キャッシュメモリに対してのムーブイン処理に
ついて説明する。ここで、ムーブイン処理とは、キャッ
シュメモリ上にフェッチ要求のアドレスのデータが存在
しないときに、主記憶から転送されてくることになるデ
ータをキャッシュメモリに登録する動作をいうもので、
以下に説明するように、このムーブイン処理もフェッチ
処理と同様に、P,T,B,Rという4つのサイクルの処理に
より実行されることになる。
ついて説明する。ここで、ムーブイン処理とは、キャッ
シュメモリ上にフェッチ要求のアドレスのデータが存在
しないときに、主記憶から転送されてくることになるデ
ータをキャッシュメモリに登録する動作をいうもので、
以下に説明するように、このムーブイン処理もフェッチ
処理と同様に、P,T,B,Rという4つのサイクルの処理に
より実行されることになる。
図示しない主記憶からデータが転送されてくると、プ
ライオリティ回路151は、ムーブイン要求の処理の開始
を決定して、P−MI−GO信号をオンし、他のGO信号をオ
フにする。このP−MI−GO信号により、セレクタ2は、
MAレジスタ1(図中ではMARと記述することがある)が
ラッチするアドレスを選択して出力する。ここで、MAレ
ジスタ1は、主記憶に対して転送要求したアドレスを保
持するものである。この時点において、4つのウェイに
対応して設けられるMI−WAYラッチ155の内、ムーブイン
するウェイ(図示しない回路により決定される)に対応
するMI−WAYラッチ155には“1"がセットされ、他のMI−
WAYラッチ155には“0"がセットされることになる。従っ
て、P−MI−GO信号とMI−WAYラッチ155の出力とを入力
とするANDゲート156の内、ムーブインするウェイに対応
するANDゲート156が“1"を出力することになる。以下、
説明の便宜上、ここまでの処理をPサイクルの処理と呼
ぶことにする。
ライオリティ回路151は、ムーブイン要求の処理の開始
を決定して、P−MI−GO信号をオンし、他のGO信号をオ
フにする。このP−MI−GO信号により、セレクタ2は、
MAレジスタ1(図中ではMARと記述することがある)が
ラッチするアドレスを選択して出力する。ここで、MAレ
ジスタ1は、主記憶に対して転送要求したアドレスを保
持するものである。この時点において、4つのウェイに
対応して設けられるMI−WAYラッチ155の内、ムーブイン
するウェイ(図示しない回路により決定される)に対応
するMI−WAYラッチ155には“1"がセットされ、他のMI−
WAYラッチ155には“0"がセットされることになる。従っ
て、P−MI−GO信号とMI−WAYラッチ155の出力とを入力
とするANDゲート156の内、ムーブインするウェイに対応
するANDゲート156が“1"を出力することになる。以下、
説明の便宜上、ここまでの処理をPサイクルの処理と呼
ぶことにする。
続いて、TAレジスタ3が、セレクタ2からのアドレス
の出力をラッチする。この時点において、T−MIラッチ
159は、P−MI−GO信号をラッチすることになるが、こ
のT−MIラッチ159のラッチ出力“1"は、キャッシュデ
ィレクトリ部6の有効ビット(V)の書込データとして
使用されることになる。一方、この時点において、ラッ
チ157は、ANDゲート156の出力をラッチし、ORゲート154
は、このラッチ157の出力とラッチ153の出力との論理和
を演算して、キャッシュディレクトリ部6に対してのラ
イトイネーブル信号(この信号がオンのときに、対応す
るウェイのキャッシュディレクトリ部6のRAMが書込モ
ードに設定される)を出力する。ここで、このラッチ15
3は、後述するように、無効化処理のウェイを指示する
ことになるが、ムーブイン動作のTサイクル時には、す
べて“0"をラッチしている。
の出力をラッチする。この時点において、T−MIラッチ
159は、P−MI−GO信号をラッチすることになるが、こ
のT−MIラッチ159のラッチ出力“1"は、キャッシュデ
ィレクトリ部6の有効ビット(V)の書込データとして
使用されることになる。一方、この時点において、ラッ
チ157は、ANDゲート156の出力をラッチし、ORゲート154
は、このラッチ157の出力とラッチ153の出力との論理和
を演算して、キャッシュディレクトリ部6に対してのラ
イトイネーブル信号(この信号がオンのときに、対応す
るウェイのキャッシュディレクトリ部6のRAMが書込モ
ードに設定される)を出力する。ここで、このラッチ15
3は、後述するように、無効化処理のウェイを指示する
ことになるが、ムーブイン動作のTサイクル時には、す
べて“0"をラッチしている。
ORゲート154からライトイネーブル信号が出力される
と、このライトイネーブル信号に従って書込モードに設
定されるキャッシュディレクトリ部6のウェイのRAMに
は、TAレジスタ3のビット20〜25でアクセスされるアド
レスに、有効ビット(V)の値として有効なデータであ
ることを表すT−MIラッチ159のラッチ出力“1"が、ま
た、ブロックアドレスの値としてTAレジスタ3のビット
00〜19の値が書き込まれることになる。以下、説明の便
宜上、ここまでの処理をTサイクルの処理と呼ぶことに
する。
と、このライトイネーブル信号に従って書込モードに設
定されるキャッシュディレクトリ部6のウェイのRAMに
は、TAレジスタ3のビット20〜25でアクセスされるアド
レスに、有効ビット(V)の値として有効なデータであ
ることを表すT−MIラッチ159のラッチ出力“1"が、ま
た、ブロックアドレスの値としてTAレジスタ3のビット
00〜19の値が書き込まれることになる。以下、説明の便
宜上、ここまでの処理をTサイクルの処理と呼ぶことに
する。
続いて、ラッチ158が、ANDゲート156の出力をラッチ
しているラッチ157の出力をラッチする。このラッチ158
の出力が、キャッシュデータアレイ部7のライトイネー
ブル信号(この信号がオンのときに、対応するウェイの
キャッシュデータアレイ部7のRAMが書込モードに設定
される)となる。このライトイネーブル信号に従って書
込モードに設定されるキャッシュデータアレイ部7のウ
ェイのRAMには、BAレジスタのビット20〜25でアクセス
されるアドレスに、主記憶から転送されてきた64バイト
のブロックデータが書き込まれることになる。以下、説
明の便宜上、ここまでの処理をBサイクルの処理と呼ぶ
ことにする。
しているラッチ157の出力をラッチする。このラッチ158
の出力が、キャッシュデータアレイ部7のライトイネー
ブル信号(この信号がオンのときに、対応するウェイの
キャッシュデータアレイ部7のRAMが書込モードに設定
される)となる。このライトイネーブル信号に従って書
込モードに設定されるキャッシュデータアレイ部7のウ
ェイのRAMには、BAレジスタのビット20〜25でアクセス
されるアドレスに、主記憶から転送されてきた64バイト
のブロックデータが書き込まれることになる。以下、説
明の便宜上、ここまでの処理をBサイクルの処理と呼ぶ
ことにする。
このムーブイン動作では、このBサイクルの処理まで
が有効な処理サイクルで、次のRサイクルでは実質的な
処理は何も行われることはない。
が有効な処理サイクルで、次のRサイクルでは実質的な
処理は何も行われることはない。
次に、キャッシュメモリに対してこの無効化処理につ
いて説明する。ここで、無効化処理とは、他のデータ処
理装置により主記憶のデータが書き換えられることで、
主記憶とキャッシュメモリとの間にデータの不一致が生
じる場合には、そのデータをキャッシュメモリから消去
する処理をいうもので、以下に説明するように、1回目
のPTBRの4サイクルのフローで、キャッシュメモリに無
効化すべきアドレスのデータがあるのか否かを調べ、次
に、2回目のPTBRの4サイクルのフローで、検出された
無効化すべきデータに対しての無効化処理を行うことで
実行されることになる。
いて説明する。ここで、無効化処理とは、他のデータ処
理装置により主記憶のデータが書き換えられることで、
主記憶とキャッシュメモリとの間にデータの不一致が生
じる場合には、そのデータをキャッシュメモリから消去
する処理をいうもので、以下に説明するように、1回目
のPTBRの4サイクルのフローで、キャッシュメモリに無
効化すべきアドレスのデータがあるのか否かを調べ、次
に、2回目のPTBRの4サイクルのフローで、検出された
無効化すべきデータに対しての無効化処理を行うことで
実行されることになる。
無効化要求がプライオリティ回路151に通知される
と、プライオリティ回路151は、無効化要求の処理の開
始を決定して、P−BI−LO−GO信号をオンし、他のGO信
号をオフにする。このP−BI−LO−GO信号により、セレ
クタ2は、無効化すべきアドレスを表すBI−ADRSの値を
選択して出力する。ここまでの処理が、1回目のPTBRサ
イクルのPサイクルである。
と、プライオリティ回路151は、無効化要求の処理の開
始を決定して、P−BI−LO−GO信号をオンし、他のGO信
号をオフにする。このP−BI−LO−GO信号により、セレ
クタ2は、無効化すべきアドレスを表すBI−ADRSの値を
選択して出力する。ここまでの処理が、1回目のPTBRサ
イクルのPサイクルである。
続いて、TAレジスタ3が、セレクタ2からのアドレス
の出力をラッチする。そして、上述したフェッチ処理と
同様の処理により、キャッシュディレクトリ部6のブロ
ックアドレスの内に、TAレジスタ3のビット100〜19の
アドレスと一致するものがあるのか否かを調べる。ここ
までの処理が、1回目のPTBRサイクルのTサイクルであ
る。
の出力をラッチする。そして、上述したフェッチ処理と
同様の処理により、キャッシュディレクトリ部6のブロ
ックアドレスの内に、TAレジスタ3のビット100〜19の
アドレスと一致するものがあるのか否かを調べる。ここ
までの処理が、1回目のPTBRサイクルのTサイクルであ
る。
続いて、BAレジスタ4が、TAレジスタ3の出力をラッ
チする。この時点において、Tサイクルで調べられた無
効化すべきデータの有無がBMレジスタ13にラッチされ
る。なお、無効化動作時にあっては、キャッシュデータ
アレイ部7は使用されない。ここまでの処理が、1回目
のPTBRサイクルのBサイクルである。
チする。この時点において、Tサイクルで調べられた無
効化すべきデータの有無がBMレジスタ13にラッチされ
る。なお、無効化動作時にあっては、キャッシュデータ
アレイ部7は使用されない。ここまでの処理が、1回目
のPTBRサイクルのBサイクルである。
続いて、RAレジスタ5(図中ではRARと記述すること
がある)が、BAレジスタ4の出力をラッチし、RMレジス
タ14(図示ではRARと記述することがある)が、BMレジ
スタ13の出力をラッチする。ここまでの処理が、1回目
のPTBRサイクルのRサイクルであり、更に、このRサイ
クルでは、2回目のPTBRサイクルのPサイクルを開始す
ることになる。
がある)が、BAレジスタ4の出力をラッチし、RMレジス
タ14(図示ではRARと記述することがある)が、BMレジ
スタ13の出力をラッチする。ここまでの処理が、1回目
のPTBRサイクルのRサイクルであり、更に、このRサイ
クルでは、2回目のPTBRサイクルのPサイクルを開始す
ることになる。
この2回目のPTBRサイクルのPサイクルが開始される
と、プライオリティ回路151は、今度は、P−BI−HI−G
O信号をオンし、他のGO信号をオフにする。このP−BI
−HI−GO信号により、セレクタ2は、RAレジスタ5にラ
ッチされているアドレス(1回目のPTBRサイクルのPサ
イクルで読み込まれたBI−ADRSである)を選択して出力
する。この時点において、オンしたP−BI−HI−GO信号
とRMレジスタ14の出力とがANDゲート152に入力されるこ
とになる。ここまでの処理が、2回目のPTBRサイクルの
Pサイクルである。
と、プライオリティ回路151は、今度は、P−BI−HI−G
O信号をオンし、他のGO信号をオフにする。このP−BI
−HI−GO信号により、セレクタ2は、RAレジスタ5にラ
ッチされているアドレス(1回目のPTBRサイクルのPサ
イクルで読み込まれたBI−ADRSである)を選択して出力
する。この時点において、オンしたP−BI−HI−GO信号
とRMレジスタ14の出力とがANDゲート152に入力されるこ
とになる。ここまでの処理が、2回目のPTBRサイクルの
Pサイクルである。
続いて、TAレジスタ3が、セレクタ2からのアドレス
の出力をラッチする。この時点において、ラッチ153
は、ANDゲート152の出力をラッチし、ORゲート154は、
このラッチ153の出力とラッチ157の出力との論理和を演
算して、キャッシュディレクトリ部6に対してのライト
イネーブル信号を出力する。一方、このとき、T−MIラ
ッチ159は、キャッシュディレクトリ部6の有効ビット
(V)の書込データとして無効なデータであることを表
す“0"を出力している。このようにして、ORゲート154
からライトイネーブル信号が出力されると、このライト
イネーブル信号に従って書込モードに設定されるキャッ
シュディレクトリ部6のウェイには、TAレジスタ3のビ
ット20〜25でアクセスされるラインアドレスに、有効ビ
ット(V)の値としてT−MIラッチ159のラッチ出力
“0"が書き込まれることで、そのブロックのデータが無
効化されることになる。ここまでの処理が、2回目のPT
BRサイクルのTサイクルである。
の出力をラッチする。この時点において、ラッチ153
は、ANDゲート152の出力をラッチし、ORゲート154は、
このラッチ153の出力とラッチ157の出力との論理和を演
算して、キャッシュディレクトリ部6に対してのライト
イネーブル信号を出力する。一方、このとき、T−MIラ
ッチ159は、キャッシュディレクトリ部6の有効ビット
(V)の書込データとして無効なデータであることを表
す“0"を出力している。このようにして、ORゲート154
からライトイネーブル信号が出力されると、このライト
イネーブル信号に従って書込モードに設定されるキャッ
シュディレクトリ部6のウェイには、TAレジスタ3のビ
ット20〜25でアクセスされるラインアドレスに、有効ビ
ット(V)の値としてT−MIラッチ159のラッチ出力
“0"が書き込まれることで、そのブロックのデータが無
効化されることになる。ここまでの処理が、2回目のPT
BRサイクルのTサイクルである。
この無効化動作では、このTサイクルの処理までが有
効な処理サイクルで、次のBサイクル及びRサイクルで
は実質的な処理は何も行われることはない。このように
して、1回目のPTBRの4サイクルのフローで、キャッシ
ュメモリに無効化すべきアドレスのデータがあるのか否
かを調べ、次の2回目のPTBRの4サイクルのフローで、
無効化すべきものがあるときにはキャッシュディレクト
リ部6の有効ビット(V)に“0"をセットすることで無
効化し、無効化すべきものがないときには、何も処理し
ないことで無効化処理を終了することになる。
効な処理サイクルで、次のBサイクル及びRサイクルで
は実質的な処理は何も行われることはない。このように
して、1回目のPTBRの4サイクルのフローで、キャッシ
ュメモリに無効化すべきアドレスのデータがあるのか否
かを調べ、次の2回目のPTBRの4サイクルのフローで、
無効化すべきものがあるときにはキャッシュディレクト
リ部6の有効ビット(V)に“0"をセットすることで無
効化し、無効化すべきものがないときには、何も処理し
ないことで無効化処理を終了することになる。
従来では、以上に説明したようなパイプライン処理に
従って、キャッシュメモリの制御が実行されていた。な
お、第3図及び第4図の従来技術の構成にあって、MAレ
ジスタ1及びMI−WAYラッチ155以外のレジスタとラッチ
は、パイプラインの1マシンサイクル単位でデータをラ
ッチしていくよう動作するものである。
従って、キャッシュメモリの制御が実行されていた。な
お、第3図及び第4図の従来技術の構成にあって、MAレ
ジスタ1及びMI−WAYラッチ155以外のレジスタとラッチ
は、パイプラインの1マシンサイクル単位でデータをラ
ッチしていくよう動作するものである。
しかしながら、このような従来技術では、無効化処理
の1回目のPTBRのフローと2回目のPTBRのフローとの途
中でムーブイン処理が実行されると、ムーブインされた
ばかりの有効なデータが誤って無効化されてしまうとい
う不都合が起こることになる。すなわち、第5図(b)
や第5図(c)に示すように、ムーブイン処理のTサイ
クル(キャッシュディレクトリ部6を書き換えるサイク
ル)が、無効化処理の1回目のPTBRのフローのTサイク
ル(キャッシュディレクトリ部6を検索することで無効
化すべきデータがあるのか否かを調べるサイクル)と無
効化処理の2回目のPTBRのフローのTサイクル(キャッ
シュディレクトリ部6に無効化を登録するサイクル)と
の間にあると、無効化処理の1回目のPTBRのフローのT
サイクルに従って無効化すべきと判断されたブロック
が、続くムーブイン処理のTサイクルに従って別の有効
なものに書き換えられたにもかかわらず、続く無効化処
理の2回目のPTBRのフローのTサイクルに従って無効化
されてしまうということになるのである。ここで、第5
図中のBIリクエストは無効化要求を表し、MIリクエスト
はムーブイン要求を表している。
の1回目のPTBRのフローと2回目のPTBRのフローとの途
中でムーブイン処理が実行されると、ムーブインされた
ばかりの有効なデータが誤って無効化されてしまうとい
う不都合が起こることになる。すなわち、第5図(b)
や第5図(c)に示すように、ムーブイン処理のTサイ
クル(キャッシュディレクトリ部6を書き換えるサイク
ル)が、無効化処理の1回目のPTBRのフローのTサイク
ル(キャッシュディレクトリ部6を検索することで無効
化すべきデータがあるのか否かを調べるサイクル)と無
効化処理の2回目のPTBRのフローのTサイクル(キャッ
シュディレクトリ部6に無効化を登録するサイクル)と
の間にあると、無効化処理の1回目のPTBRのフローのT
サイクルに従って無効化すべきと判断されたブロック
が、続くムーブイン処理のTサイクルに従って別の有効
なものに書き換えられたにもかかわらず、続く無効化処
理の2回目のPTBRのフローのTサイクルに従って無効化
されてしまうということになるのである。ここで、第5
図中のBIリクエストは無効化要求を表し、MIリクエスト
はムーブイン要求を表している。
このようなことは、第5図(a)に示すように、ムー
ブインされてから無効化要求がくるような場合には、本
来無効化されるべきデータが無効化されることで何ら問
題は生ずることはないし、また、第5図(d)に示すよ
うに、無効化処理の2回目のPTBRのフローのTサイクル
以降にムーブイン要求がくるようなときには、無効化さ
れるべきものが無効化されてから新たなデータがムーブ
インされてくるので何ら問題は生ずることはない。
ブインされてから無効化要求がくるような場合には、本
来無効化されるべきデータが無効化されることで何ら問
題は生ずることはないし、また、第5図(d)に示すよ
うに、無効化処理の2回目のPTBRのフローのTサイクル
以降にムーブイン要求がくるようなときには、無効化さ
れるべきものが無効化されてから新たなデータがムーブ
インされてくるので何ら問題は生ずることはない。
このように、従来技術では、無効化する必要のないデ
ータまで誤って無効化してしまうことがあったので、デ
ータ処理装置の性能を著しく低下させてしまっていたの
である。
ータまで誤って無効化してしまうことがあったので、デ
ータ処理装置の性能を著しく低下させてしまっていたの
である。
本発明はかかる事情に鑑みてなされたものであって、
ムーブインしたばかりの有効なデータを誤って無効化し
ないようにできる新たなキャッシュメモリ制御方式の提
供を目的とするものである。
ムーブインしたばかりの有効なデータを誤って無効化し
ないようにできる新たなキャッシュメモリ制御方式の提
供を目的とするものである。
第1図は本発明の原理構成図である。
図中、20は本発明を具備する中央処理装置であって、
キャッシュメモリを内蔵するもの、21はシステムバスで
あって、中央処理装置20と図示しない主記憶や他のデー
タ処理装置との間でのデータ転送を実行するもの、22は
中央処理装置20が備える命令処理部、23は中央処理装置
20が備えるキャッシュメモリ、24は本発明を具備するキ
ャッシュ制御回路であって、パイプライン処理に従って
キャッシュメモリ23を制御するものである。
キャッシュメモリを内蔵するもの、21はシステムバスで
あって、中央処理装置20と図示しない主記憶や他のデー
タ処理装置との間でのデータ転送を実行するもの、22は
中央処理装置20が備える命令処理部、23は中央処理装置
20が備えるキャッシュメモリ、24は本発明を具備するキ
ャッシュ制御回路であって、パイプライン処理に従って
キャッシュメモリ23を制御するものである。
本発明のキャッシュメモリ23は、第3図で説明した従
来のキャッシュメモリと変わることなく、主記憶データ
の一部のコピーをブロック単位で管理するキャッシュデ
ータアレイ部7と、キャッシュデータアレイ部7のブロ
ックの主記憶アドレスを管理するアドレス管理部6aと、
そのブロックの有効無効を管理する有効フラグ管理部6b
とからなるキャッシュディレクトリ部6とを備えること
になる。
来のキャッシュメモリと変わることなく、主記憶データ
の一部のコピーをブロック単位で管理するキャッシュデ
ータアレイ部7と、キャッシュデータアレイ部7のブロ
ックの主記憶アドレスを管理するアドレス管理部6aと、
そのブロックの有効無効を管理する有効フラグ管理部6b
とからなるキャッシュディレクトリ部6とを備えること
になる。
本発明のキャッシュ制御回路24は、従来のキャッシュ
制御回路が備えるディレクトリ用ライトイネーブル発生
手段25及び書込フラグデータ保持手段26の他に、第1の
判断手段27、第2の判断手段28及び抑制手段29を備え
る。この第1の判断手段27は、無効化要求のあるキャッ
シュメモリのブロック位置とムーブイン要求のあるキャ
ッシュメモリのブロック位置とが一致するのか否かを判
断し、第2の判断手段28は、ムーブインされる有効なデ
ータが誤って無効化されてしまうパイプライン動作状態
にあるのか否かを判断し、抑制手段29は、ディレクトリ
用ライトイネーブル発生手段25が発生するキャッシュデ
ィレクトリ部6に対してのライトイネーブル信号を抑制
することで、書込フラグデータ保持手段26が保持する無
効フラグを有効フラグ管理部6bに書き込まないよう処理
する。
制御回路が備えるディレクトリ用ライトイネーブル発生
手段25及び書込フラグデータ保持手段26の他に、第1の
判断手段27、第2の判断手段28及び抑制手段29を備え
る。この第1の判断手段27は、無効化要求のあるキャッ
シュメモリのブロック位置とムーブイン要求のあるキャ
ッシュメモリのブロック位置とが一致するのか否かを判
断し、第2の判断手段28は、ムーブインされる有効なデ
ータが誤って無効化されてしまうパイプライン動作状態
にあるのか否かを判断し、抑制手段29は、ディレクトリ
用ライトイネーブル発生手段25が発生するキャッシュデ
ィレクトリ部6に対してのライトイネーブル信号を抑制
することで、書込フラグデータ保持手段26が保持する無
効フラグを有効フラグ管理部6bに書き込まないよう処理
する。
本発明では、第1の判断手段27が、無効化処理のパイ
プライン動作の実行中に、キャッシュメモリ23へのアク
セス要求状態を監視することで、無効化要求のあるキャ
ッシュメモリのブロック位置とムーブイン要求のあるキ
ャッシュメモリのブロックの位置とが一致することを判
断し、更に、第2の判断手段28が、無効化処理のパイプ
ライン動作の実行中に、ムーブイン処理のパイプライン
動作の処理サイクルを監視することで、ムーブイン処理
のキャッシュディレクトリ部6に対しての書換処理サイ
クルが、無効化処理の無効化データの有無の検査処理サ
イクルより遅れて実行され、かつ、無効化処理の無効化
データの無効化処理サイクルより先行して実行されると
いう動作状態にあることを判断すると、抑制手段29は、
ディレクトリ用ライトイネーブル発生手段25に対して抑
制信号を送出することで、無効化処理の無効化処理サイ
クルにおいて送出されることになるキャッシュディレク
トリ部6に対してのライトイネーブル信号の送出を抑制
するよう処理する。
プライン動作の実行中に、キャッシュメモリ23へのアク
セス要求状態を監視することで、無効化要求のあるキャ
ッシュメモリのブロック位置とムーブイン要求のあるキ
ャッシュメモリのブロックの位置とが一致することを判
断し、更に、第2の判断手段28が、無効化処理のパイプ
ライン動作の実行中に、ムーブイン処理のパイプライン
動作の処理サイクルを監視することで、ムーブイン処理
のキャッシュディレクトリ部6に対しての書換処理サイ
クルが、無効化処理の無効化データの有無の検査処理サ
イクルより遅れて実行され、かつ、無効化処理の無効化
データの無効化処理サイクルより先行して実行されると
いう動作状態にあることを判断すると、抑制手段29は、
ディレクトリ用ライトイネーブル発生手段25に対して抑
制信号を送出することで、無効化処理の無効化処理サイ
クルにおいて送出されることになるキャッシュディレク
トリ部6に対してのライトイネーブル信号の送出を抑制
するよう処理する。
このようにして、本発明によれば、無効化する必要が
あるブロックと判断された後に新たなブロックがムーブ
インされ、かつこのムーブインの後に実際の無効化が実
行されるような場合が起こるときには、このライトイネ
ーブル信号の抑制処理により、実行が予定されていた無
効フラグの書込処理が実行されなくなる。従って、ムー
ブインされたばかりの有効なデータを誤って無効化して
しまうという問題点を解決できるのである。
あるブロックと判断された後に新たなブロックがムーブ
インされ、かつこのムーブインの後に実際の無効化が実
行されるような場合が起こるときには、このライトイネ
ーブル信号の抑制処理により、実行が予定されていた無
効フラグの書込処理が実行されなくなる。従って、ムー
ブインされたばかりの有効なデータを誤って無効化して
しまうという問題点を解決できるのである。
以下、実施例に従って本発明を詳細に説明する。
第2図に、本発明のキャッシュメモリ制御方式を実装
するキャッシュ制御回路24の一実施例を図示する。この
キャッシュ制御回路24は、本発明を実現するために、第
3図に示した従来のキャッシュ制御回路15に代えて実装
されることになる。従って、第3図に示したキャッシュ
メモリの制御のための回路は、従来のキャッシュ制御回
路15が本発明のキャッシュ制御回路24に代わる以外は変
更されるところはない。
するキャッシュ制御回路24の一実施例を図示する。この
キャッシュ制御回路24は、本発明を実現するために、第
3図に示した従来のキャッシュ制御回路15に代えて実装
されることになる。従って、第3図に示したキャッシュ
メモリの制御のための回路は、従来のキャッシュ制御回
路15が本発明のキャッシュ制御回路24に代わる以外は変
更されるところはない。
第2図に示す実施例において、第4図で説明したもの
と同じものについては同一の記号で示してある。
と同じものについては同一の記号で示してある。
図中、160は第1の比較回路であって、MI−WAY155
(ムーブインするウェイに対応するものは“1"を保持し
ている)が保持するラッチ出力とBMレジスタ13(無効化
処理の第1フローのBサイクル時において、無効化する
ウェイに対応するものは“1"を保持している)のラッチ
出力とを比較することで、無効化処理の第1フローのB
サイクルの時点で、無効化要求のあるキャッシュメモリ
のウェイ番号とムーブイン要求のあるキャッシュメモリ
のウェイ番号とが一致するのか否かを判断するものであ
る。
(ムーブインするウェイに対応するものは“1"を保持し
ている)が保持するラッチ出力とBMレジスタ13(無効化
処理の第1フローのBサイクル時において、無効化する
ウェイに対応するものは“1"を保持している)のラッチ
出力とを比較することで、無効化処理の第1フローのB
サイクルの時点で、無効化要求のあるキャッシュメモリ
のウェイ番号とムーブイン要求のあるキャッシュメモリ
のウェイ番号とが一致するのか否かを判断するものであ
る。
161は第2の比較回路であって、MAレジスタ1(ムー
ブインされることになるブロックの主記憶アドレスを保
持している)のラッチ出力のビット20〜25のアドレスと
BAレジスタ4(無効化処理の第1フローのBサイクル時
において、無効化するブロックの主記憶アドレスを保持
している)のラッチ出力のビット20〜25のアドレスとを
比較することで、無効化処理の第1フローのBサイクル
の時点で、無効化要求のあるキャッシュメモリのライン
アドレスとムーブイン要求のあるキャッシュメモリのラ
インアドレスとが一致するのか否かを判断するものであ
る。従って、第1の比較回路160が2つのウェイ番号の
一致を検出し、かつ第2の比較回路161が2つのライン
アドレスの一致を検出するときというのは、無効化要求
のあるキャッシュメモリのブロック位置とムーブイン要
求のあるキャッシュメモリのブロック位置とが一致する
ということを意味している。
ブインされることになるブロックの主記憶アドレスを保
持している)のラッチ出力のビット20〜25のアドレスと
BAレジスタ4(無効化処理の第1フローのBサイクル時
において、無効化するブロックの主記憶アドレスを保持
している)のラッチ出力のビット20〜25のアドレスとを
比較することで、無効化処理の第1フローのBサイクル
の時点で、無効化要求のあるキャッシュメモリのライン
アドレスとムーブイン要求のあるキャッシュメモリのラ
インアドレスとが一致するのか否かを判断するものであ
る。従って、第1の比較回路160が2つのウェイ番号の
一致を検出し、かつ第2の比較回路161が2つのライン
アドレスの一致を検出するときというのは、無効化要求
のあるキャッシュメモリのブロック位置とムーブイン要
求のあるキャッシュメモリのブロック位置とが一致する
ということを意味している。
162は干渉検出用ORゲートであって、無効化処理の第
1フローのBサイクルの時点において、T−MIラッチ15
9(ムーブイン処理のTサイクル時において“1"を保持
している)から“1"が送出されるときか、プライオリテ
ィ回路151からP−MI−GO信号(ムーブイン処理のPサ
イクル時において送出される)が送出されるときに、論
理和演算に従って“1"を出力するものである。この干渉
検出用ORゲート162が“1"を出力する動作状態というの
は、第5図(b)に示すパイプライン動作状態が発生し
ているか、第5図(c)に示すパイプライン動作状態が
発生していることを表している。すなわち、無効化処理
の第1フローのBサイクルの時点においてT−MIラッチ
159から“1"が送出されることで、干渉検出用ORゲート1
62が“1"を出力する動作状態というのは、第5図(b)
に示すパイプライン動作状態が発生していることを意味
し、無効化処理の第1フローのBサイクルの時点におい
てプライオリティ回路151からP−MI−GO信号が送出さ
れることで、干渉検出用ORゲート162が“1"を出力する
動作状態というのは、第5図(c)に示すパイプライン
動作状態が発生していることを意味している。
1フローのBサイクルの時点において、T−MIラッチ15
9(ムーブイン処理のTサイクル時において“1"を保持
している)から“1"が送出されるときか、プライオリテ
ィ回路151からP−MI−GO信号(ムーブイン処理のPサ
イクル時において送出される)が送出されるときに、論
理和演算に従って“1"を出力するものである。この干渉
検出用ORゲート162が“1"を出力する動作状態というの
は、第5図(b)に示すパイプライン動作状態が発生し
ているか、第5図(c)に示すパイプライン動作状態が
発生していることを表している。すなわち、無効化処理
の第1フローのBサイクルの時点においてT−MIラッチ
159から“1"が送出されることで、干渉検出用ORゲート1
62が“1"を出力する動作状態というのは、第5図(b)
に示すパイプライン動作状態が発生していることを意味
し、無効化処理の第1フローのBサイクルの時点におい
てプライオリティ回路151からP−MI−GO信号が送出さ
れることで、干渉検出用ORゲート162が“1"を出力する
動作状態というのは、第5図(c)に示すパイプライン
動作状態が発生していることを意味している。
163は干渉検出用ANDゲートであって、第1の比較回路
160の出力と、第2の比較回路161の出力と、干渉検出用
ORゲート162の出力との論理積が成立するときに“1"を
出力するものである。この干渉検出用ANDゲート163が
“1"を出力するというのは、〔発明が解決しようとする
課題〕欄でも説明したように、ムーブインされる有効な
データが誤って無効化されてしまう動作状態にあるとい
うことを意味している。
160の出力と、第2の比較回路161の出力と、干渉検出用
ORゲート162の出力との論理積が成立するときに“1"を
出力するものである。この干渉検出用ANDゲート163が
“1"を出力するというのは、〔発明が解決しようとする
課題〕欄でも説明したように、ムーブインされる有効な
データが誤って無効化されてしまう動作状態にあるとい
うことを意味している。
164はラッチであって、干渉検出用ANDゲート163の出
力をラッチするもので、パイプライン動作のタイミング
を合わせるために設けられるもの、165はインバータで
あって、ラッチ164の出力を反転するものである。
力をラッチするもので、パイプライン動作のタイミング
を合わせるために設けられるもの、165はインバータで
あって、ラッチ164の出力を反転するものである。
166はライトイネーブル信号抑制用ANDゲートであっ
て、P−BI−HI−GO信号(無効化処理の第2フローのP
サイクル時において送出される)と、RMレジスタ14(無
効化処理の第1フローのRサイクル時、すなわち無効化
処理の第2フローのPサイクル時において、無効化する
ウェイに対応するものは“1"を保持している)のラッチ
出力と、インバータ165の出力との論理積が成立するき
に“1"を出力するものである。このライトイネーブル信
号抑制用ANDゲート166は、RMレジスタ14のラッチ出力に
従って、無効化処理の第2フローのTサイクルにおいて
無効化が実行されることになる場合には、対応するウェ
イのものが“1"を出力することになる。そして、このラ
イトイネーブル信号抑制用ANDゲート166は、インバータ
165を論理積入力としていることから、干渉検出用ANDゲ
ート163が“1"を出力するときには、RMレジスタ14のラ
ッチ出力が等価的に“0"となるよう動作することにな
る。
て、P−BI−HI−GO信号(無効化処理の第2フローのP
サイクル時において送出される)と、RMレジスタ14(無
効化処理の第1フローのRサイクル時、すなわち無効化
処理の第2フローのPサイクル時において、無効化する
ウェイに対応するものは“1"を保持している)のラッチ
出力と、インバータ165の出力との論理積が成立するき
に“1"を出力するものである。このライトイネーブル信
号抑制用ANDゲート166は、RMレジスタ14のラッチ出力に
従って、無効化処理の第2フローのTサイクルにおいて
無効化が実行されることになる場合には、対応するウェ
イのものが“1"を出力することになる。そして、このラ
イトイネーブル信号抑制用ANDゲート166は、インバータ
165を論理積入力としていることから、干渉検出用ANDゲ
ート163が“1"を出力するときには、RMレジスタ14のラ
ッチ出力が等価的に“0"となるよう動作することにな
る。
167はラッチであって、ライトイネーブル信号抑制用A
NDゲート166の出力をラッチするもので、パイプライン
動作のタイミングを合わせるために設けられるもの、16
8は第4図のORゲート154に相当するORゲートであって、
ラッチ167のラッチ出力とラッチ157のラッチ出力との論
理和を演算して出力することで、キャッシュディレクト
リ部6に対しての書込要求信号となるライトイネーブル
信号を出力するものである。ここで、ラッチ167のラッ
チ出力から生成されることになるライトイネーブル信号
は、無効化処理のときのライトイネーブル信号となるも
ので、無効化処理の第2フローのTサイクルにおいて、
T−MIラッチ159(ムーブイン処理のTサイクル時のみ
“1"を保持している)が保持する“0"をキャッシュディ
レクトリ部6に書き込むべく出力されることになるとと
もに、ラッチ157のラッチ出力から生成されることにな
るライトイネーブル信号は、ムーブイン処理のときのラ
イトイネーブル信号となるもので、ムーブイン処理のT
サイクルにおいて、T−MIラッチ159が保持する“1"を
キャッシュディレクトリ部6に書き込むべく出力される
ことになる。
NDゲート166の出力をラッチするもので、パイプライン
動作のタイミングを合わせるために設けられるもの、16
8は第4図のORゲート154に相当するORゲートであって、
ラッチ167のラッチ出力とラッチ157のラッチ出力との論
理和を演算して出力することで、キャッシュディレクト
リ部6に対しての書込要求信号となるライトイネーブル
信号を出力するものである。ここで、ラッチ167のラッ
チ出力から生成されることになるライトイネーブル信号
は、無効化処理のときのライトイネーブル信号となるも
ので、無効化処理の第2フローのTサイクルにおいて、
T−MIラッチ159(ムーブイン処理のTサイクル時のみ
“1"を保持している)が保持する“0"をキャッシュディ
レクトリ部6に書き込むべく出力されることになるとと
もに、ラッチ157のラッチ出力から生成されることにな
るライトイネーブル信号は、ムーブイン処理のときのラ
イトイネーブル信号となるもので、ムーブイン処理のT
サイクルにおいて、T−MIラッチ159が保持する“1"を
キャッシュディレクトリ部6に書き込むべく出力される
ことになる。
次に、このように構成される本発明の動作について説
明する。ここで、フェッチ処理とムーブイン処理につい
ては、〔従来の技術〕の欄で説明した従来技術の動作と
何ら変わるところはないので説明を省略する。
明する。ここで、フェッチ処理とムーブイン処理につい
ては、〔従来の技術〕の欄で説明した従来技術の動作と
何ら変わるところはないので説明を省略する。
無効化処理の1回目のPTBRサイクルのBサイクルの実
行に入ると、第1の比較回路160は、MI−WAY155のラッ
チ出力とBMレジスタ13のラッチ出力とを比較すること
で、無効化要求のあるキャッシュメモリのウェイ番号と
ムーブイン要求のあるキャッシュメモリのウェイ番号と
が一致するのか否かを判断し、2つのウェイ番号が一致
するときには、干渉検出用ANDゲート163に対して“1"を
出力する。そして、このとき、第2の比較回路161は、M
Aレジスタ1のラッチ出力のビット20〜25のアドレスとB
Aレジスタ4のラッチ出力のビット20〜25のアドレスと
を比較することで、無効化要求のあるキャッシュメモリ
のラインアドレスとムーブイン要求のあるキャッシュメ
モリのラインアドレスとが一致するのか否かを判断し、
2つのラインアドレスが一致するときには、干渉検出用
ANDゲート163に対して“1"を出力する。
行に入ると、第1の比較回路160は、MI−WAY155のラッ
チ出力とBMレジスタ13のラッチ出力とを比較すること
で、無効化要求のあるキャッシュメモリのウェイ番号と
ムーブイン要求のあるキャッシュメモリのウェイ番号と
が一致するのか否かを判断し、2つのウェイ番号が一致
するときには、干渉検出用ANDゲート163に対して“1"を
出力する。そして、このとき、第2の比較回路161は、M
Aレジスタ1のラッチ出力のビット20〜25のアドレスとB
Aレジスタ4のラッチ出力のビット20〜25のアドレスと
を比較することで、無効化要求のあるキャッシュメモリ
のラインアドレスとムーブイン要求のあるキャッシュメ
モリのラインアドレスとが一致するのか否かを判断し、
2つのラインアドレスが一致するときには、干渉検出用
ANDゲート163に対して“1"を出力する。
更に、この無効化処理の1回目のPTBRサイクルのBサ
イクルの実行に入ると、干渉検出用ORゲート162は、T
−MIラッチ159のラッチ出力とプライオリティ回路151か
らのP−MI−GO信号の有無を検出することで、T−MIラ
ッチ159から“1"が送出されているときと、プライオリ
ティ回路151からP−MI−GO信号が送出されているとき
には“1"を出力する。すなわち、上述したように、第5
図(b)に示すパイプライン動作状態か第5図(c)に
示すパイプライン動作状態のいずれか一方が発生してい
るときには、干渉検出用ANDゲート163に対して“1"を出
力するよう動作することになる。
イクルの実行に入ると、干渉検出用ORゲート162は、T
−MIラッチ159のラッチ出力とプライオリティ回路151か
らのP−MI−GO信号の有無を検出することで、T−MIラ
ッチ159から“1"が送出されているときと、プライオリ
ティ回路151からP−MI−GO信号が送出されているとき
には“1"を出力する。すなわち、上述したように、第5
図(b)に示すパイプライン動作状態か第5図(c)に
示すパイプライン動作状態のいずれか一方が発生してい
るときには、干渉検出用ANDゲート163に対して“1"を出
力するよう動作することになる。
この第1の比較回路160、第2の比較回路161及び干渉
検出用ORゲート162の出力処理を受けて、干渉検出用AND
ゲート163は、これらの3つのすべてが“1"を出力する
ときには“1"を出力するよう動作するとともに、この3
つの中のいずれか1つが“0"を出力するときには“0"を
出力するよう動作する。すなわち、干渉検出用ANDゲー
ト163は、第1の比較回路160が2つのウェイ番号の一致
を検出し、かつ第2の比較回路161が2つのラインアド
レスの一致を検出することで、無効化要求のあるキャッ
シュメモリのブロック位置とムーブイン要求のあるキャ
ッシュメモリのブロック位置とが一致することを判断
し、更に、干渉検出用ORゲート162の出力に従って第5
図(b)や第5図(c)のパイプライン動作状態が発生
していることを判断することで、そのままムーブイン処
理を実行してしまったら、続いて実行される無効化処理
の2回目のPTBRサイクルのTサイクルで無効化されてし
まうことになるという動作状態にあると判断するときに
は“1"を出力するよう動作するのである。
検出用ORゲート162の出力処理を受けて、干渉検出用AND
ゲート163は、これらの3つのすべてが“1"を出力する
ときには“1"を出力するよう動作するとともに、この3
つの中のいずれか1つが“0"を出力するときには“0"を
出力するよう動作する。すなわち、干渉検出用ANDゲー
ト163は、第1の比較回路160が2つのウェイ番号の一致
を検出し、かつ第2の比較回路161が2つのラインアド
レスの一致を検出することで、無効化要求のあるキャッ
シュメモリのブロック位置とムーブイン要求のあるキャ
ッシュメモリのブロック位置とが一致することを判断
し、更に、干渉検出用ORゲート162の出力に従って第5
図(b)や第5図(c)のパイプライン動作状態が発生
していることを判断することで、そのままムーブイン処
理を実行してしまったら、続いて実行される無効化処理
の2回目のPTBRサイクルのTサイクルで無効化されてし
まうことになるという動作状態にあると判断するときに
は“1"を出力するよう動作するのである。
ライトイネーブル信号抑制用ANDゲート166は、インバ
ータ165を介してこの干渉検出用ANDゲート163の出力の
反転値“0"を受け取ると、無効化処理の2回目のPTBRサ
イクルのPサイクルのときに“0"を出力していくこと
で、無効化要求を送出しているRMレジスタ14の出力値の
“1"を強制的に消去するよう動作する。この動作によ
り、ORゲート168は“1"を出力することを抑制されるこ
とになるので、無効化処理の2回目のPTBRサイクルのT
サイクルにおいて送出されるキャッシュディレクトリ部
6に対してのライトイネーブル信号の送出が抑制され、
ムーブインしたばかりの有効なデータが無効化されてし
まうのを妨げることになる。
ータ165を介してこの干渉検出用ANDゲート163の出力の
反転値“0"を受け取ると、無効化処理の2回目のPTBRサ
イクルのPサイクルのときに“0"を出力していくこと
で、無効化要求を送出しているRMレジスタ14の出力値の
“1"を強制的に消去するよう動作する。この動作によ
り、ORゲート168は“1"を出力することを抑制されるこ
とになるので、無効化処理の2回目のPTBRサイクルのT
サイクルにおいて送出されるキャッシュディレクトリ部
6に対してのライトイネーブル信号の送出が抑制され、
ムーブインしたばかりの有効なデータが無効化されてし
まうのを妨げることになる。
なお、干渉検出用ANDゲート163が“1"を出力しないと
きには、従来通り、無効化処理の2回目のPTBRサイクル
のTサイクルで、ORゲート168からキャッシュディレク
トリ部6に対してライトイネーブル信号が送出されるこ
とで無効化処理が実行されることになる。
きには、従来通り、無効化処理の2回目のPTBRサイクル
のTサイクルで、ORゲート168からキャッシュディレク
トリ部6に対してライトイネーブル信号が送出されるこ
とで無効化処理が実行されることになる。
以上図示実施例について説明したが、本発明はこれに
限定されるものではないのである。例えば、パイプライ
ン動作の処理ステップは、PTBRサイクルの4サイクルの
ものに限られるものではないのである。
限定されるものではないのである。例えば、パイプライ
ン動作の処理ステップは、PTBRサイクルの4サイクルの
ものに限られるものではないのである。
このように、本発明によれば、無効化する必要がある
ブロックと判断された後に新たなブロックがムーブイン
され、かつこのムーブインの後に実際の無効化が実行さ
れるような場合が起こる場合には、実行が予定されてい
た無効フラグの書込処理が抑止されるようになるので、
ムーブインされたばかりの有効なデータを誤って無効化
してしまうということがなくなるのである。
ブロックと判断された後に新たなブロックがムーブイン
され、かつこのムーブインの後に実際の無効化が実行さ
れるような場合が起こる場合には、実行が予定されてい
た無効フラグの書込処理が抑止されるようになるので、
ムーブインされたばかりの有効なデータを誤って無効化
してしまうということがなくなるのである。
第1図は本発明の原理構成図、 第2図は本発明の一実施例、 第3図及び第4図は従来技術の構成図、 第5図は従来技術の問題点を説明するための説明図であ
る。 図中、20は中央処理装置、21はシステムバス、22は命令
処理部、23はキャッシュメモリ、24はキャッシュ制御回
路、25はディレクトリ用ライトイネーブル信号発生手
段、26は書込フラグデータ保持手段、27は第1の判断手
段、28は第2の判断手段、29は抑制手段である。
る。 図中、20は中央処理装置、21はシステムバス、22は命令
処理部、23はキャッシュメモリ、24はキャッシュ制御回
路、25はディレクトリ用ライトイネーブル信号発生手
段、26は書込フラグデータ保持手段、27は第1の判断手
段、28は第2の判断手段、29は抑制手段である。
Claims (1)
- 【請求項1】マルチプロセッサシステムで用いられて、
主記憶装置からのデータをキャッシュメモリにムーブイ
ンするムーブイン処理の制御と、キャッシュメモリに保
持されたデータを無効化する無効化処理の制御とを実行
するキャッシュメモリ制御装置において、 無効化処理の実行中に、キャッシュメモリへのアクセス
要求状態を監視することで、無効化要求のあるキャッシ
ュメモリのブロック位置と、ムーブイン要求のあるキャ
ッシュメモリのブロック位置とが一致するのか否かを判
断する第1の判断手段と、 無効化処理の実行中に、ムーブイン処理の処理サイクル
を監視することで、ムーブイン処理の書換処理サイクル
が、無効化処理の検査処理サイクルより遅れて実行さ
れ、かつ、無効化処理の無効化処理サイクルより先行し
て実行されるという動作状態にあるのか否かを判断する
第2の判断手段と、 上記第1の判断手段が双方のブロック位置の一致を判断
し、かつ、上記第2の判断手段が判断対象の動作状態に
あることを判断するときに、上記無効化処理サイクルで
実行されるデータの無効化を抑制する抑制手段とを備え
ることを、 特徴とするキャッシュメモリ制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1194618A JP3055908B2 (ja) | 1989-07-27 | 1989-07-27 | キャッシュメモリ制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1194618A JP3055908B2 (ja) | 1989-07-27 | 1989-07-27 | キャッシュメモリ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0358251A JPH0358251A (ja) | 1991-03-13 |
JP3055908B2 true JP3055908B2 (ja) | 2000-06-26 |
Family
ID=16327531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1194618A Expired - Fee Related JP3055908B2 (ja) | 1989-07-27 | 1989-07-27 | キャッシュメモリ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3055908B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2778293B2 (ja) * | 1991-07-04 | 1998-07-23 | ソニー株式会社 | 衛星放送受信システム及び切換分配器 |
JP2014006807A (ja) * | 2012-06-26 | 2014-01-16 | Fujitsu Ltd | 演算処理装置、キャッシュメモリ制御装置及びキャッシュメモリの制御方法 |
-
1989
- 1989-07-27 JP JP1194618A patent/JP3055908B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH0358251A (ja) | 1991-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5696937A (en) | Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses | |
JP2825550B2 (ja) | 多重仮想空間アドレス制御方法および計算機システム | |
JP4395425B2 (ja) | 破損データ値を処理するためのデータ処理装置と方法 | |
US5845324A (en) | Dual bus network cache controller system having rapid invalidation cycles and reduced latency for cache access | |
US8499123B1 (en) | Multi-stage pipeline for cache access | |
US7472227B2 (en) | Invalidating multiple address cache entries | |
JPS62145340A (ja) | キヤツシユメモリ制御方式 | |
JPH05334170A (ja) | デュアルポートメモリ用制御回路 | |
JPH03225542A (ja) | データ記憶方法及びビットエンコードデータの処理回路 | |
US5737756A (en) | Dual bus computer network using dual busses with dual spy modules enabling clearing of invalidation queue for processor with store through cache while providing retry cycles for incomplete accesses to invalidation queue | |
JP3407808B2 (ja) | コンピュータシステム | |
US5455925A (en) | Data processing device for maintaining coherency of data stored in main memory, external cache memory and internal cache memory | |
US5287483A (en) | Prefetched operand storing system for an information processor | |
JP3055908B2 (ja) | キャッシュメモリ制御装置 | |
KR100380674B1 (ko) | 멀티프로세서 시스템에서의 기록-통과 기억 동작동안 캐시코히어런스를 유지하는 방법 및 시스템 | |
US4737908A (en) | Buffer memory control system | |
JP3100807B2 (ja) | キャッシュメモリ装置 | |
JPH07234819A (ja) | キャッシュメモリ | |
US20090055687A1 (en) | RAM diagnosis device and RAM diagnosis method | |
JP2585852B2 (ja) | バッファ制御方式 | |
JPS63247852A (ja) | キヤツシユメモリ制御方法 | |
JPS6010368A (ja) | アドレス変換バツフア制御方式 | |
JPS60153554A (ja) | プロセッサ | |
JPS5818710B2 (ja) | 記憶システム | |
JPH01307849A (ja) | データアクセス装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |