JPH0415736A - キャッシュメモリ装置 - Google Patents
キャッシュメモリ装置Info
- Publication number
- JPH0415736A JPH0415736A JP2112638A JP11263890A JPH0415736A JP H0415736 A JPH0415736 A JP H0415736A JP 2112638 A JP2112638 A JP 2112638A JP 11263890 A JP11263890 A JP 11263890A JP H0415736 A JPH0415736 A JP H0415736A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cache
- memory device
- accesses
- 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.)
- Granted
Links
- 230000015654 memory Effects 0.000 claims abstract description 68
- 238000010586 diagram Methods 0.000 description 9
- 238000000034 method Methods 0.000 description 7
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0853—Cache with multiport tag or data arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[産業上の利用分野]
本発明は、CPUと主記憶装置との間に配置された高速
の一アクセスを行うキャッシュメモリ装置に関し、特に
複数ポートからのアクセスが可能なキャッシュメモリ装
置に関する。
の一アクセスを行うキャッシュメモリ装置に関し、特に
複数ポートからのアクセスが可能なキャッシュメモリ装
置に関する。
[従来の技術]
計算機システムにおいて、主記憶装置へのアクセスを高
速化する手段として従来からキャッシュメモリ装置が使
用されている。キャッシュメモリ方式は、プログラム及
びデータアクセスの空間的及び時間的局所性を利用した
もので、−度主記憶装置にアクセスしたデータをこれよ
りも高速アクセスが可能なキャッシュメモリ装置に保存
して、二度目以降のアクセスを主記憶装置ではなく、キ
ャッシュメモリ装置に対して行うことにより、アクセス
時間の短縮を図ったものである。
速化する手段として従来からキャッシュメモリ装置が使
用されている。キャッシュメモリ方式は、プログラム及
びデータアクセスの空間的及び時間的局所性を利用した
もので、−度主記憶装置にアクセスしたデータをこれよ
りも高速アクセスが可能なキャッシュメモリ装置に保存
して、二度目以降のアクセスを主記憶装置ではなく、キ
ャッシュメモリ装置に対して行うことにより、アクセス
時間の短縮を図ったものである。
複数のCPUで高速なシステムを実現するには、最も一
般的には、複数のCPUに夫々キャッシュメモリ装置を
接続する方法がとられている。しかし、この場合、主記
憶装置と各キャッシュメモリ装置との間のデータの一致
性を保つため、複雑なプロトコルが必要となり、ハード
ウェア量が増大する。
般的には、複数のCPUに夫々キャッシュメモリ装置を
接続する方法がとられている。しかし、この場合、主記
憶装置と各キャッシュメモリ装置との間のデータの一致
性を保つため、複雑なプロトコルが必要となり、ハード
ウェア量が増大する。
そこで、比較的少数のCPUシステムでは、キャッシュ
メモリをマルチポート構成にし、同じキャッシュメモリ
装置を共有する方式もとられている。この場合、複数の
CPUからキャッシュメモリ装置へのアクセスはランダ
ムに行われるので、アクセスが競合することがある。こ
の場合、アクセスが行われた順番又は予め各CPUに与
えられた優先順位に基づいて、順番にデータが渡される
ことになる。
メモリをマルチポート構成にし、同じキャッシュメモリ
装置を共有する方式もとられている。この場合、複数の
CPUからキャッシュメモリ装置へのアクセスはランダ
ムに行われるので、アクセスが競合することがある。こ
の場合、アクセスが行われた順番又は予め各CPUに与
えられた優先順位に基づいて、順番にデータが渡される
ことになる。
第3図は、マルチポートのキャッシュメモリ装置を使用
したコンピュータシステムの構成を示すブロック図であ
る。
したコンピュータシステムの構成を示すブロック図であ
る。
CPU1.2は、2ポートのキャッシュメモリ装置3及
びシステムバス4を介して主記憶装置5に接続されてい
る。キャッシュメモリ装置3は、2ポートキヤツシユイ
モリ6と、CPUIからのアクセスに基づいて2ポート
キヤツシユメモリ6を制御するコントローラ7と、CP
U2からのアクセスに基づいて2ポートキヤツシユメモ
リ6を制御するコントローラ8とから構成されている。
びシステムバス4を介して主記憶装置5に接続されてい
る。キャッシュメモリ装置3は、2ポートキヤツシユイ
モリ6と、CPUIからのアクセスに基づいて2ポート
キヤツシユメモリ6を制御するコントローラ7と、CP
U2からのアクセスに基づいて2ポートキヤツシユメモ
リ6を制御するコントローラ8とから構成されている。
第4図は、2ポートキヤツシユメモリ6のブロック図で
ある。ここでは、2ウエイセツトアソシエテイブ、LR
U入れ替えアルゴリズムのキャッシュを例にとって説明
する。
ある。ここでは、2ウエイセツトアソシエテイブ、LR
U入れ替えアルゴリズムのキャッシュを例にとって説明
する。
2ウ工イセツトアソシエテイブ方式では、タグメモリと
データメモリのセットが2組設けられている。即ち、タ
グメモリ13及びデータメモリ15、並びにタグメモリ
14及びデータメモリ16が夫々1セツトを構成してい
る。各メモリ13乃至16は、互いに独立した2つの入
出力ポートを宵している。
データメモリのセットが2組設けられている。即ち、タ
グメモリ13及びデータメモリ15、並びにタグメモリ
14及びデータメモリ16が夫々1セツトを構成してい
る。各メモリ13乃至16は、互いに独立した2つの入
出力ポートを宵している。
CPUI、2からのアドレスAD、、AD2は、夫々キ
ャッシュ内部でタグ比較に供されるタグフィールドTF
、、TF2と、ライン選択に使用されるインデックスフ
ィールドIF、、IF2とに分割されている。インデッ
クスフィールドIF、。
ャッシュ内部でタグ比較に供されるタグフィールドTF
、、TF2と、ライン選択に使用されるインデックスフ
ィールドIF、、IF2とに分割されている。インデッ
クスフィールドIF、。
IF2は、夫々デコーダ11.12でデコードされ、ラ
イン選択信号II、12としてタグメモリ13.14及
びデータメモリ15.16に夫々供給されている。
イン選択信号II、12としてタグメモリ13.14及
びデータメモリ15.16に夫々供給されている。
一方、タグフィールドT F rは、比較器21゜22
においてタグメモリ13.14の各一方の出力ポートか
ら読み出されたタグ情報T r It T 12と比較
されるようになっている。比較器21.22の出力はヒ
ツト判定器25に入力され、ここでキャツシュヒツト/
ミスが判定され、その判定結果であるヒツト信号H8が
CPUIに出力されるようになっている。また、タグフ
ィールドTF2も同様に、比較器23.24においてタ
グメモリ13.14の各他方の出力ポートから読み出さ
れたタグ情報T211 T2□と比較されるようになっ
ている。比較器23.24の出力はヒツト判定器26に
入力され、ここでキャツシュヒツト/ミスが判定され、
その判定結果であるヒツト信号H2がCPU2に出力さ
れるようになっている。そして、これらのヒツト判定器
25.26からのヒツト信号がウェイ選択器27.28
にも夫々入力されており、これらのウェイ選択器27.
28を介してテータメ−E−’) 15. 18ト外部
(7)CPUI、2との間でデータDA□、DA2のリ
ード/ライトが行われるものとなっている。
においてタグメモリ13.14の各一方の出力ポートか
ら読み出されたタグ情報T r It T 12と比較
されるようになっている。比較器21.22の出力はヒ
ツト判定器25に入力され、ここでキャツシュヒツト/
ミスが判定され、その判定結果であるヒツト信号H8が
CPUIに出力されるようになっている。また、タグフ
ィールドTF2も同様に、比較器23.24においてタ
グメモリ13.14の各他方の出力ポートから読み出さ
れたタグ情報T211 T2□と比較されるようになっ
ている。比較器23.24の出力はヒツト判定器26に
入力され、ここでキャツシュヒツト/ミスが判定され、
その判定結果であるヒツト信号H2がCPU2に出力さ
れるようになっている。そして、これらのヒツト判定器
25.26からのヒツト信号がウェイ選択器27.28
にも夫々入力されており、これらのウェイ選択器27.
28を介してテータメ−E−’) 15. 18ト外部
(7)CPUI、2との間でデータDA□、DA2のリ
ード/ライトが行われるものとなっている。
また、タグメモリ13.14及びデータメモリ15.1
6の各記憶番地に夫々対応させてこれらのアクセス履歴
情報(以下、LRUビットと呼ぶ)を格納したLRUメ
モリ17が設けられている。
6の各記憶番地に夫々対応させてこれらのアクセス履歴
情報(以下、LRUビットと呼ぶ)を格納したLRUメ
モリ17が設けられている。
上記LRUビットは、ミスヒツトが発生したときに、何
れのセットのメモリをリプレースするかのリプレースセ
ット情報となるものである。このLRUビットは、ヒツ
ト判定器25.28の出力で書込セット選択器29.3
0によって順次更新されるものとなっている。
れのセットのメモリをリプレースするかのリプレースセ
ット情報となるものである。このLRUビットは、ヒツ
ト判定器25.28の出力で書込セット選択器29.3
0によって順次更新されるものとなっている。
次に、CPUがこのキャッシュメモリ装置にリードアク
セスしたときの手順を説明する。
セスしたときの手順を説明する。
CPUIからアドレスAD、が与えられると、アドレス
AD、はキャッシュ内部でタグ比較に使用されるタグフ
ィールドTF、と、ライン選択に使用されるインデック
スフィールドIF工とに分割される。そして、インデッ
クスフィールドIF、を使用して各セットのタグメモリ
13.14とデータメモリ15.16のラインをアクセ
スし、タグメモリ13中のデータT11+TI。とデー
タメモリ15中のデータD 11+ D I□を読み出
す。
AD、はキャッシュ内部でタグ比較に使用されるタグフ
ィールドTF、と、ライン選択に使用されるインデック
スフィールドIF工とに分割される。そして、インデッ
クスフィールドIF、を使用して各セットのタグメモリ
13.14とデータメモリ15.16のラインをアクセ
スし、タグメモリ13中のデータT11+TI。とデー
タメモリ15中のデータD 11+ D I□を読み出
す。
次に、タグフィールドTF、とタグ情報T11゜T□2
とを比較器21.22で比較し、ヒツトしたか判定し、
ヒツト信号H,,H2を発生させる。
とを比較器21.22で比較し、ヒツトしたか判定し、
ヒツト信号H,,H2を発生させる。
このとき、どちらかがヒツトしていれば、データD I
l+ D I□のうち、ヒツトした方のデータを外
部に出力し、C:PUlにヒツトを通知し1、そのライ
ンのLRUビットを更新する。
l+ D I□のうち、ヒツトした方のデータを外
部に出力し、C:PUlにヒツトを通知し1、そのライ
ンのLRUビットを更新する。
また、どちらのセットもミスヒツトしていた場合、CP
U1にミスヒツトを通知し、LRUビットに従い、最も
過去にアクセスされたセットをフラッシュし、主記憶装
置5からキャッシュメモリ装置3にリプレースを行い、
リプレースが終わったところでCPUIにその旨を通知
し、LRUビットを更新する。これらのシーケンスはコ
ントローラ7によって制御される。
U1にミスヒツトを通知し、LRUビットに従い、最も
過去にアクセスされたセットをフラッシュし、主記憶装
置5からキャッシュメモリ装置3にリプレースを行い、
リプレースが終わったところでCPUIにその旨を通知
し、LRUビットを更新する。これらのシーケンスはコ
ントローラ7によって制御される。
また、CPU2からのアクセスも同様に、行われるが、
この場合には、これらのシーケンスはコントローラ8よ
って制御される。
この場合には、これらのシーケンスはコントローラ8よ
って制御される。
このようなキャッシュメモリ装置によれば、タグメモリ
及びデータメモリがともに2ポートメモリとなっている
ため、ラインが競合しない限り、コントローラ7.8は
お互いに影響されることな(独立に動作することが可能
である。
及びデータメモリがともに2ポートメモリとなっている
ため、ラインが競合しない限り、コントローラ7.8は
お互いに影響されることな(独立に動作することが可能
である。
[発明が解決しようとする課題]
しかしながら、上述したシステムでは、次のような問題
点があった。
点があった。
即ち、あるキャッシュアクセス(アクセスA)がミスヒ
ツトとなり、リプレースを行うとき、同時に他のアクセ
ス(キャッシュB)がキャッシュの同一のデータをアク
セスした場合、アクセスAのリプレースが終わっておら
す、キャッシュが更新されていないため、アクセスBも
ミスヒツトとなり、リプレースを行ってしまう。しかし
、このリプレースのデータは、アクセスAによるデータ
と同一であり、冗長なものである。
ツトとなり、リプレースを行うとき、同時に他のアクセ
ス(キャッシュB)がキャッシュの同一のデータをアク
セスした場合、アクセスAのリプレースが終わっておら
す、キャッシュが更新されていないため、アクセスBも
ミスヒツトとなり、リプレースを行ってしまう。しかし
、このリプレースのデータは、アクセスAによるデータ
と同一であり、冗長なものである。
また、アクセスAがヒツトしたとき、このラインのアク
セス履歴情報(LRU、FIFO方式等)が更新される
前に、アクセスBが同一ラインをアクセスしてミスヒツ
トした場合、アクセスAで選択されたブロックと同一の
ブロックにリプレースされる可能性があり、アクセスA
でヒツトしたデータが重ね書きされてしまうという問題
点がある。
セス履歴情報(LRU、FIFO方式等)が更新される
前に、アクセスBが同一ラインをアクセスしてミスヒツ
トした場合、アクセスAで選択されたブロックと同一の
ブロックにリプレースされる可能性があり、アクセスA
でヒツトしたデータが重ね書きされてしまうという問題
点がある。
同様に、アクセスA1アクセスB共にミスヒ、ツトシ、
同一ラインをアクセスしていて、異なる主記憶領域を指
しているとき、このラインのアクセス履歴情報が更新さ
れる前にそれぞれのリプレースを行った場合、同じブロ
ックが選択され、デー夕が重ね書きされてしまうという
問題点がある。
同一ラインをアクセスしていて、異なる主記憶領域を指
しているとき、このラインのアクセス履歴情報が更新さ
れる前にそれぞれのリプレースを行った場合、同じブロ
ックが選択され、デー夕が重ね書きされてしまうという
問題点がある。
本発明はかかる問題点に鑑みてなされたものであって、
同一のキャッシュメモリに対する複数のアクセスが競合
した場合の無駄なリプレース操作又は適切でないリプレ
ースを防止することができ、もってキャッシュメモリの
特色である高速動作性を更に高めることができるキャッ
シュメモリ装置を提供することを目的とする。
同一のキャッシュメモリに対する複数のアクセスが競合
した場合の無駄なリプレース操作又は適切でないリプレ
ースを防止することができ、もってキャッシュメモリの
特色である高速動作性を更に高めることができるキャッ
シュメモリ装置を提供することを目的とする。
[課題を解決するための手段]
本発明に係るキャッシュメモリ装置は、複数のポートか
ら夫々独立してアクセスされ主記憶装置上のデータ及び
このデータの前記主記憶装置上での格納領域を示すタグ
情報を記憶するメモリ本体と、このメモリ本体に対する
アクセスの際に与えられたアドレスのタグ情報とこのア
ドレスの指定によって前記メモリ本体内から読み出され
たタグ情報とを比較してキャツシュヒツト及びキャッシ
ュミスを判定するヒツト判定手段と、この手段でキャッ
シュミスと判定された場合に前記メモリ本体のデータ及
びタグ情報をリプレースするリプレース制御手段とを有
するキャッシュメモリ装置において、前記リプレース制
御手段は、同一のアドレスに対する複数のアクセスが競
合し且つ前記メモリ本体に対するこれらのアクセスが全
てミスヒツトした場合に前記メモリ本体に対するリプレ
ースを1回に抑制するものであることを特徴とする。
ら夫々独立してアクセスされ主記憶装置上のデータ及び
このデータの前記主記憶装置上での格納領域を示すタグ
情報を記憶するメモリ本体と、このメモリ本体に対する
アクセスの際に与えられたアドレスのタグ情報とこのア
ドレスの指定によって前記メモリ本体内から読み出され
たタグ情報とを比較してキャツシュヒツト及びキャッシ
ュミスを判定するヒツト判定手段と、この手段でキャッ
シュミスと判定された場合に前記メモリ本体のデータ及
びタグ情報をリプレースするリプレース制御手段とを有
するキャッシュメモリ装置において、前記リプレース制
御手段は、同一のアドレスに対する複数のアクセスが競
合し且つ前記メモリ本体に対するこれらのアクセスが全
てミスヒツトした場合に前記メモリ本体に対するリプレ
ースを1回に抑制するものであることを特徴とする。
[作用コ
本発明によれば、同一のアドレスに対する複数のアクセ
スが競合し、しかも前記メモリ本体に対するこれらのア
クセスが全てミスヒツトした場合に、前記メモリ本体に
対するリプレースを1回に抑制するように作用するから
、冗長なリプレース動作が行われるのを防止することが
でき、リプレース時の無駄を削減して高速動作性を更に
高めることができる。
スが競合し、しかも前記メモリ本体に対するこれらのア
クセスが全てミスヒツトした場合に、前記メモリ本体に
対するリプレースを1回に抑制するように作用するから
、冗長なリプレース動作が行われるのを防止することが
でき、リプレース時の無駄を削減して高速動作性を更に
高めることができる。
また、本発明によれば、アドレスのタグ情報は異なるが
前記メモリ本体に対する複数のアクセスが競合し、且つ
前記メモリに対するこれらのアクセスのうちの少なくと
も一つがミスヒツトした場合、前記アクセス履歴情報の
更新を制御するようにしている。したがって、一つのア
クセスがキャツシュヒツトして、それに付随したアクセ
ス履歴情報の更新がなされる前に、他のアクセスがミス
ヒツトした場合でも、アクセス履歴情報が正しく制御さ
れることにより、適切でないデータをリプレースする等
の不具合が発生するのを防止することができる。
前記メモリ本体に対する複数のアクセスが競合し、且つ
前記メモリに対するこれらのアクセスのうちの少なくと
も一つがミスヒツトした場合、前記アクセス履歴情報の
更新を制御するようにしている。したがって、一つのア
クセスがキャツシュヒツトして、それに付随したアクセ
ス履歴情報の更新がなされる前に、他のアクセスがミス
ヒツトした場合でも、アクセス履歴情報が正しく制御さ
れることにより、適切でないデータをリプレースする等
の不具合が発生するのを防止することができる。
[実施例コ
以下、添付の図面を参照しながら本発明の実施例につい
て説明する。
て説明する。
第1図は、本発明の第1の実施例に係るキャッシュメモ
リ装置の要部を示すブロック図である。
リ装置の要部を示すブロック図である。
なお、この第1図において、第4図と同一部分には同一
符号を付し、重複する部分の説明は省略する。
符号を付し、重複する部分の説明は省略する。
この回路が第4図に示した従来の回路と異なる点は、タ
グフィールドTF、、TF2を比較する比較器31と、
インデックスフィールドI F t 。
グフィールドTF、、TF2を比較する比較器31と、
インデックスフィールドI F t 。
IF2を比較する比較器32と、これら比較器31.3
2の出力が共に“真”になったことを検出する検出器3
3と、比較器31.32の出力が夫々“真”偽”になっ
たことを検出する検出器34とを新たに備えた点である
。検出器13の出力は、リプレース制御信号RCとして
コントローラ7.8に入力されている。また、検出器1
4の出力はLRUビットの更新を制御する書込セット選
択器30に入力されている。
2の出力が共に“真”になったことを検出する検出器3
3と、比較器31.32の出力が夫々“真”偽”になっ
たことを検出する検出器34とを新たに備えた点である
。検出器13の出力は、リプレース制御信号RCとして
コントローラ7.8に入力されている。また、検出器1
4の出力はLRUビットの更新を制御する書込セット選
択器30に入力されている。
次にこのように構成された本実施例に係るキャッシュメ
モリ装置の動作について説明する。
モリ装置の動作について説明する。
CPUI、2が異なるアドレスに対してアクセスする場
合の動作は、前述した従来の回路の動作同一である。
合の動作は、前述した従来の回路の動作同一である。
CPUI及びCPU2が、同一のアドレスに対するアク
セスを略同時に行い、且つそのアクセスがミスヒツトし
た場合には、次のように動作する。
セスを略同時に行い、且つそのアクセスがミスヒツトし
た場合には、次のように動作する。
即ち、この場合には、タグフィールドTF□。
T F 2及びインデックスフィールドIF、。
IF2は、共に同一の値になるので、比較器31゜32
の出力は、共に“真”となり、検出器33からリプレー
ス制御信号RCがコントローラ7.8に出力される。こ
のとき、CPU1によるアクセスがCPU2によるアク
セスに先立って行われると、コントローラ7のみによる
リプレース制御が行われ、リプレースが終了すると、C
PUI、2に同時にリプレースの終了が通知される。こ
の場合、コントローラ8によるリプレースは行われない
。このように、本装置では、リプレースは1回に制限さ
れ、冗長なリプレース処理が防止されてペナルティ−時
間を削減することができる。
の出力は、共に“真”となり、検出器33からリプレー
ス制御信号RCがコントローラ7.8に出力される。こ
のとき、CPU1によるアクセスがCPU2によるアク
セスに先立って行われると、コントローラ7のみによる
リプレース制御が行われ、リプレースが終了すると、C
PUI、2に同時にリプレースの終了が通知される。こ
の場合、コントローラ8によるリプレースは行われない
。このように、本装置では、リプレースは1回に制限さ
れ、冗長なリプレース処理が防止されてペナルティ−時
間を削減することができる。
一方、CPU1.2による略同時のアクセスが、異なる
タグフィールドで、同一のインデックスフィールドから
なるアドレスに対し行われた場合、検出器34の出力が
アクティブになり、書込セット選択器30にこれが通知
され、LRUビットはマスクされる。また、ヒツト判定
器25で選択したセットの情報も書込セット選択器30
に通知されるので、強制的にこれと重複しないよう、リ
プレースセットが変更される。
タグフィールドで、同一のインデックスフィールドから
なるアドレスに対し行われた場合、検出器34の出力が
アクティブになり、書込セット選択器30にこれが通知
され、LRUビットはマスクされる。また、ヒツト判定
器25で選択したセットの情報も書込セット選択器30
に通知されるので、強制的にこれと重複しないよう、リ
プレースセットが変更される。
このため、同一ラインに主記憶装置上の別領域のデータ
をリプレースしたときでも、LRUの値に拘らず、別々
のセットにデータが配置される。
をリプレースしたときでも、LRUの値に拘らず、別々
のセットにデータが配置される。
このとき、ヒツト信号H1,H2が共にミスヒツトであ
った場合には、夫々のリプレースが終了した時点でデー
タがCPUI、2に渡される。また、ヒツト信号H1が
ヒツト、ヒツト信号H2がミスヒツトの場合には、CP
U1は中断することなく動作し、CPU2はリプレース
が終了した時点で動作を開始する。
った場合には、夫々のリプレースが終了した時点でデー
タがCPUI、2に渡される。また、ヒツト信号H1が
ヒツト、ヒツト信号H2がミスヒツトの場合には、CP
U1は中断することなく動作し、CPU2はリプレース
が終了した時点で動作を開始する。
第2図は本発明の第2の実施例に係るキャッシュメモリ
装置のブロック図である。この実施例は、同期して複数
のアクセスを行うVLIW型CPU40を使用したシス
テムに本発明に適用したものである。
装置のブロック図である。この実施例は、同期して複数
のアクセスを行うVLIW型CPU40を使用したシス
テムに本発明に適用したものである。
即ち、VLIW型CPU40では、1命令語長の中のフ
ィールドをいくつかに分割して演算器等の資源に割り当
て、夫々並列に実行するようにしている。したがって、
1命令語として全てのデータが揃わないと、実行を継続
することができない。
ィールドをいくつかに分割して演算器等の資源に割り当
て、夫々並列に実行するようにしている。したがって、
1命令語として全てのデータが揃わないと、実行を継続
することができない。
そこで、この実施例では、第1図の構成に加え、2つの
ヒツト判定器25.26の出力の論理積をとるヒツト判
定器41を新たに設け、その出力HをCPU40に出力
している。
ヒツト判定器25.26の出力の論理積をとるヒツト判
定器41を新たに設け、その出力HをCPU40に出力
している。
この実施例によれば、複数のアクセスのうちの一つでも
ミスヒツトが発生すると、CPU40の動作が停止し、
必要とするデータが全てキャッシュメモリ内に揃ったと
ころでCPUの動作が再開される。
ミスヒツトが発生すると、CPU40の動作が停止し、
必要とするデータが全てキャッシュメモリ内に揃ったと
ころでCPUの動作が再開される。
このため、例えば同一ブロックに異なるデータをリプレ
ースする場合には、非同期な複数のCPUとキャッシュ
メモリとを接続したとき、リプレースされたデータをそ
の都度CPUに渡すようにすれば、本発明によらなくて
も正しいデータが渡される。
ースする場合には、非同期な複数のCPUとキャッシュ
メモリとを接続したとき、リプレースされたデータをそ
の都度CPUに渡すようにすれば、本発明によらなくて
も正しいデータが渡される。
しかし、本実施例のように、キャッシュメモリ装置とV
LIW型CPU40とを接続したときには、CPUの動
作を再開したときに、先にリプレースしたデータが消え
てしまい、正しいデータは渡されない。このため、vL
IW型CPUを接続するときは、本発明は不可欠なもの
となる。
LIW型CPU40とを接続したときには、CPUの動
作を再開したときに、先にリプレースしたデータが消え
てしまい、正しいデータは渡されない。このため、vL
IW型CPUを接続するときは、本発明は不可欠なもの
となる。
なお、以上の各実施例では、2ポート、2ウ工イセソト
アソシエテイブ方式を例にとり、説明したが、本発明は
、3ポート、3ウ工イセント以上のキャンプ二メモリに
も適用可能であることは言うまでもない。
アソシエテイブ方式を例にとり、説明したが、本発明は
、3ポート、3ウ工イセント以上のキャンプ二メモリに
も適用可能であることは言うまでもない。
[発明の効果コ
以上述へたように、本発明によれば、同一のアドレスに
対する複数のアクセスが競合し、且つ前記メモリ本体に
対するこれらのアクセスが全てミスヒツトした場合に、
前記メモリ本体に対するリプレースを1回に抑制するこ
とができるので、冗長なリプレース動作が行われるのを
防止して、動作速度の向上を図ることができる。
対する複数のアクセスが競合し、且つ前記メモリ本体に
対するこれらのアクセスが全てミスヒツトした場合に、
前記メモリ本体に対するリプレースを1回に抑制するこ
とができるので、冗長なリプレース動作が行われるのを
防止して、動作速度の向上を図ることができる。
また、本発明によれば、アドレスのタグ情報は異なるが
前記メモリ本体に対する複数のアクセスが競合し、且つ
前記メモリに対するこれらのアクセスのうちの少なくと
も一つがミスヒツトした場合、前記アクセス履歴情報の
更新を制御する。したがって、一つのアクセスがキャツ
シュヒツトして、それに付随したアクセス履歴情報の更
新がなされる前に、他のアクセスがミスヒツトした場合
でも、アクセス履歴情報が正しく制御されることにより
、適切でないデータをリプレースする等の不具合が発生
するのを防止することができる。
前記メモリ本体に対する複数のアクセスが競合し、且つ
前記メモリに対するこれらのアクセスのうちの少なくと
も一つがミスヒツトした場合、前記アクセス履歴情報の
更新を制御する。したがって、一つのアクセスがキャツ
シュヒツトして、それに付随したアクセス履歴情報の更
新がなされる前に、他のアクセスがミスヒツトした場合
でも、アクセス履歴情報が正しく制御されることにより
、適切でないデータをリプレースする等の不具合が発生
するのを防止することができる。
第1図は本発明の第1の実施例に係るキャッシュメモリ
装置のブロック図、第2図は本発明の第2の実施例に係
るキャッシュメモリ装置のブロック図、第3図はキャッ
シュメモリ装置を使用した一般的なシステム構成を示す
ブロック図、第4図は従来のキャッシュメモリ装置のブ
ロック図である。 1.2;CPU13;キャッシュメモリ装置、4;シス
テムバス、5;主記憶装yt、e ; 2 ポートキャ
ッシュメモリ、7,8;コントローラ、11.12;デ
コーダ、13,14;タグメモリ、15.16;データ
メモリ、17 ; LRUメモリ、21〜24,31,
32;比較器、25.2B。 41;ヒツト判定器、27.28;ウェイ選択器、29
.30;書込セット選択器、40;VLIW型CPU
装置のブロック図、第2図は本発明の第2の実施例に係
るキャッシュメモリ装置のブロック図、第3図はキャッ
シュメモリ装置を使用した一般的なシステム構成を示す
ブロック図、第4図は従来のキャッシュメモリ装置のブ
ロック図である。 1.2;CPU13;キャッシュメモリ装置、4;シス
テムバス、5;主記憶装yt、e ; 2 ポートキャ
ッシュメモリ、7,8;コントローラ、11.12;デ
コーダ、13,14;タグメモリ、15.16;データ
メモリ、17 ; LRUメモリ、21〜24,31,
32;比較器、25.2B。 41;ヒツト判定器、27.28;ウェイ選択器、29
.30;書込セット選択器、40;VLIW型CPU
Claims (3)
- (1)複数のポートから夫々独立してアクセスされ主記
憶装置上のデータ及びこのデータの前記主記憶装置上で
の格納領域を示すタグ情報を記憶するメモリ本体と、こ
のメモリ本体に対するアクセスの際に与えられたアドレ
スのタグ情報とこのアドレスの指定によって前記メモリ
本体内から読み出されたタグ情報とを比較してキャッシ
ュヒット及びキャッシュミスを判定するヒット判定手段
と、この手段でキャッシュミスと判定された場合に前記
メモリ本体のデータ及びタグ情報をリプレースするリプ
レース制御手段とを有するキャッシュメモリ装置におい
て、前記リプレース制御手段は、同一のアドレスに対す
る複数のアクセスが競合し且つ前記メモリ本体に対する
これらのアクセスが全てミスヒットした場合に前記メモ
リ本体に対するリプレースを1回に抑制するものである
ことを特徴とするキャッシュメモリ装置。 - (2)複数のポートから夫々独立してアクセスされ主記
憶装置上のデータ及びこのデータの前記主記憶装置上で
の格納領域を示すタグ情報を記憶する複数セットのメモ
リ本体と、これらのメモリ本体に対するアクセス履歴情
報を格納するアクセス履歴情報格納手段と、前記メモリ
本体に対するアクセスの際に与えられたアドレスのタグ
情報とこのアドレスの指定によって前記メモリ本体内か
ら読み出されたタグ情報とを比較してキャッシュヒット
及びキャッシュミスを判定するヒット判定手段と、この
手段でキャッシュミスと判定された場合に前記アクセス
履歴情報によって前記メモリ本体の1つのセットを選択
しこのセットのデータ及びタグ情報をリプレースするリ
プレース制御手段とを有するキャッシュメモリ装置にお
いて、前記リプレース制御手段は、アドレスのタグ情報
は異なるが前記メモリ本体に対する複数のアクセスが競
合し且つ前記メモリに対するこれらのアクセスのうちの
少なくとも一つがミスヒットした場合、前記アクセス履
歴情報の更新を制御するものであることを特徴とするキ
ャッシュメモリ装置。 - (3)1命令を分割して並列に実行するプロセッサから
の複数のアクセスが全てキャッシュヒットしたときに、
前記プロセッサにこれを知らせる手段を更に備えたこと
を特徴とする請求項2に記載のキャッシュメモリ装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2112638A JP2822588B2 (ja) | 1990-04-30 | 1990-04-30 | キャッシュメモリ装置 |
EP19910107036 EP0455230A3 (en) | 1990-04-30 | 1991-04-30 | Cache memory apparatus |
US07/693,296 US5274790A (en) | 1990-04-30 | 1991-04-30 | Cache memory apparatus having a plurality of accessibility ports |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2112638A JP2822588B2 (ja) | 1990-04-30 | 1990-04-30 | キャッシュメモリ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0415736A true JPH0415736A (ja) | 1992-01-21 |
JP2822588B2 JP2822588B2 (ja) | 1998-11-11 |
Family
ID=14591739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2112638A Expired - Lifetime JP2822588B2 (ja) | 1990-04-30 | 1990-04-30 | キャッシュメモリ装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US5274790A (ja) |
EP (1) | EP0455230A3 (ja) |
JP (1) | JP2822588B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004046933A1 (ja) * | 2002-11-20 | 2004-06-03 | Fujitsu Limited | メモリ制御装置およびキャッシュリプレース制御方法 |
US7644234B2 (en) | 2004-05-31 | 2010-01-05 | Sony Computer Entertainment Inc. | Information processing apparatus with a cache memory and information processing method |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5465344A (en) * | 1990-08-20 | 1995-11-07 | Matsushita Electric Industrial Co., Ltd. | Microprocessor with dual-port cache memory for reducing penalty of consecutive memory address accesses |
JP2703418B2 (ja) * | 1991-04-24 | 1998-01-26 | 株式会社東芝 | 中央演算処理装置 |
GB2255211B (en) * | 1991-04-25 | 1995-05-17 | Intel Corp | LRU pointer updating in a controller for two-way set associative cache |
US5636358A (en) * | 1991-09-27 | 1997-06-03 | Emc Corporation | Method and apparatus for transferring data in a storage device including a dual-port buffer |
JP3451099B2 (ja) * | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
JPH05233281A (ja) * | 1992-02-21 | 1993-09-10 | Toshiba Corp | 電子計算機 |
US5696935A (en) * | 1992-07-16 | 1997-12-09 | Intel Corporation | Multiported cache and systems |
US5471605A (en) * | 1992-08-27 | 1995-11-28 | Intel Corporation | Apparatus for updating a multi-way set associative cache memory status array |
JPH06242951A (ja) * | 1992-12-22 | 1994-09-02 | Toshiba Corp | キャッシュメモリシステム |
US5689680A (en) * | 1993-07-15 | 1997-11-18 | Unisys Corp. | Cache memory system and method for accessing a coincident cache with a bit-sliced architecture |
JPH0756815A (ja) * | 1993-07-28 | 1995-03-03 | Internatl Business Mach Corp <Ibm> | キャッシュ動作方法及びキャッシュ |
EP0651332B1 (en) * | 1993-10-29 | 2001-07-18 | Advanced Micro Devices, Inc. | Linearly addressable microprocessor cache |
US5878245A (en) * | 1993-10-29 | 1999-03-02 | Advanced Micro Devices, Inc. | High performance load/store functional unit and data cache |
US5559975A (en) | 1994-06-01 | 1996-09-24 | Advanced Micro Devices, Inc. | Program counter update mechanism |
US5617347A (en) * | 1995-03-17 | 1997-04-01 | Fujitsu Limited | Cache memory system and method thereof for storing a staged memory item and a cache tag within a single cache array structure |
JPH08263376A (ja) * | 1995-03-22 | 1996-10-11 | Nec Ibaraki Ltd | キャッシュ制御装置 |
EP0735487B1 (en) * | 1995-03-31 | 2001-10-31 | Sun Microsystems, Inc. | A fast, dual ported cache controller for data processors in a packet switched cache coherent multiprocessor system |
US5752264A (en) * | 1995-03-31 | 1998-05-12 | International Business Machines Corporation | Computer architecture incorporating processor clusters and hierarchical cache memories |
US5845317A (en) * | 1995-11-17 | 1998-12-01 | Micron Technology, Inc. | Multi-way cache expansion circuit architecture |
JP3348367B2 (ja) * | 1995-12-06 | 2002-11-20 | 富士通株式会社 | 多重アクセス方法および多重アクセスキャッシュメモリ装置 |
US6223260B1 (en) * | 1996-01-25 | 2001-04-24 | Unisys Corporation | Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states |
US5924128A (en) * | 1996-06-20 | 1999-07-13 | International Business Machines Corporation | Pseudo zero cycle address generator and fast memory access |
JP2919376B2 (ja) * | 1996-08-23 | 1999-07-12 | 日本電気アイシーマイコンシステム株式会社 | 読出し専用記憶媒体の読出し方法 |
JP2000501539A (ja) * | 1996-09-25 | 2000-02-08 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | アドレス競合検出を持つ多重ポート・キャッシュメモリ |
US5752261A (en) * | 1996-11-07 | 1998-05-12 | Ncr Corporation | Method and apparatus for detecting thrashing in a cache memory |
US5924117A (en) * | 1996-12-16 | 1999-07-13 | International Business Machines Corporation | Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto |
US5930819A (en) * | 1997-06-25 | 1999-07-27 | Sun Microsystems, Inc. | Method for performing in-line bank conflict detection and resolution in a multi-ported non-blocking cache |
US6138212A (en) * | 1997-06-25 | 2000-10-24 | Sun Microsystems, Inc. | Apparatus and method for generating a stride used to derive a prefetch address |
US6098154A (en) * | 1997-06-25 | 2000-08-01 | Sun Microsystems, Inc. | Apparatus and method for generating a stride used to derive a prefetch address |
US6314493B1 (en) | 1998-02-03 | 2001-11-06 | International Business Machines Corporation | Branch history cache |
JP3812258B2 (ja) * | 2000-01-13 | 2006-08-23 | 株式会社日立製作所 | キャッシュ記憶装置 |
US6928525B1 (en) * | 2000-04-28 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | Per cache line semaphore for cache access arbitration |
US6732234B1 (en) * | 2000-08-07 | 2004-05-04 | Broadcom Corporation | Direct access mode for a cache |
JP2002055879A (ja) * | 2000-08-11 | 2002-02-20 | Univ Hiroshima | マルチポートキャッシュメモリ |
US6604174B1 (en) | 2000-11-10 | 2003-08-05 | International Business Machines Corporation | Performance based system and method for dynamic allocation of a unified multiport cache |
US7533232B2 (en) * | 2003-11-19 | 2009-05-12 | Intel Corporation | Accessing data from different memory locations in the same cycle |
US7146466B2 (en) * | 2004-03-23 | 2006-12-05 | International Business Machines | System for balancing multiple memory buffer sizes and method therefor |
US20060179231A1 (en) * | 2005-02-07 | 2006-08-10 | Advanced Micron Devices, Inc. | System having cache memory and method of accessing |
US7930484B2 (en) * | 2005-02-07 | 2011-04-19 | Advanced Micro Devices, Inc. | System for restricted cache access during data transfers and method thereof |
US7363430B2 (en) * | 2005-04-06 | 2008-04-22 | Intel Corporation | Determination of cache entry for future operation |
US7457926B2 (en) * | 2005-05-18 | 2008-11-25 | International Business Machines Corporation | Cache line replacement monitoring and profiling |
US8606998B2 (en) * | 2006-08-24 | 2013-12-10 | Advanced Micro Devices, Inc. | System and method for instruction-based cache allocation policies |
US8966183B2 (en) * | 2012-10-04 | 2015-02-24 | Freescale Semiconductor, Inc. | Opportunistic cache replacement policy |
US9652396B2 (en) | 2013-12-27 | 2017-05-16 | Samsung Electronics Co., Ltd. | Cache element processing for energy use reduction |
US10628320B2 (en) * | 2016-06-03 | 2020-04-21 | Synopsys, Inc. | Modulization of cache structure utilizing independent tag array and data array in microprocessor |
US10558463B2 (en) | 2016-06-03 | 2020-02-11 | Synopsys, Inc. | Communication between threads of multi-thread processor |
US10613859B2 (en) | 2016-08-18 | 2020-04-07 | Synopsys, Inc. | Triple-pass execution using a retire queue having a functional unit to independently execute long latency instructions and dependent instructions |
US10552158B2 (en) | 2016-08-18 | 2020-02-04 | Synopsys, Inc. | Reorder buffer scoreboard having multiple valid bits to indicate a location of data |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2075731B (en) * | 1978-12-11 | 1983-05-25 | Honeywell Inf Systems | Improvements in or relating to data processing apparatus |
US4392200A (en) * | 1980-01-28 | 1983-07-05 | Digital Equipment Corporation | Cached multiprocessor system with pipeline timing |
EP0214718A3 (en) * | 1985-07-22 | 1990-04-04 | Alliant Computer Systems Corporation | Digital computer |
US4768148A (en) * | 1986-06-27 | 1988-08-30 | Honeywell Bull Inc. | Read in process memory apparatus |
JPH01280860A (ja) * | 1988-05-06 | 1989-11-13 | Hitachi Ltd | マルチポートキヤツシユメモリを有するマルチプロセツサシステム |
-
1990
- 1990-04-30 JP JP2112638A patent/JP2822588B2/ja not_active Expired - Lifetime
-
1991
- 1991-04-30 US US07/693,296 patent/US5274790A/en not_active Expired - Fee Related
- 1991-04-30 EP EP19910107036 patent/EP0455230A3/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004046933A1 (ja) * | 2002-11-20 | 2004-06-03 | Fujitsu Limited | メモリ制御装置およびキャッシュリプレース制御方法 |
US7644234B2 (en) | 2004-05-31 | 2010-01-05 | Sony Computer Entertainment Inc. | Information processing apparatus with a cache memory and information processing method |
Also Published As
Publication number | Publication date |
---|---|
US5274790A (en) | 1993-12-28 |
EP0455230A2 (en) | 1991-11-06 |
JP2822588B2 (ja) | 1998-11-11 |
EP0455230A3 (en) | 1992-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0415736A (ja) | キャッシュメモリ装置 | |
US6038647A (en) | Cache memory device and method for providing concurrent independent multiple accesses to different subsets within the device | |
US5584013A (en) | Hierarchical cache arrangement wherein the replacement of an LRU entry in a second level cache is prevented when the cache entry is the only inclusive entry in the first level cache | |
US5136700A (en) | Apparatus and method for reducing interference in two-level cache memories | |
EP0435475B1 (en) | High-performance frame buffer and cache memory system | |
US7321954B2 (en) | Method for software controllable dynamically lockable cache line replacement system | |
EP0438211A2 (en) | Cache memory system | |
JP3236287B2 (ja) | マルチプロセッサシステム | |
US6332179B1 (en) | Allocation for back-to-back misses in a directory based cache | |
JP2002032265A (ja) | キャッシュ・アクセス制御方式およびデータ処理システム | |
US20100005244A1 (en) | Device and Method for Storing Data and/or Instructions in a Computer System Having At Least Two Processing Units and At Least One First Memory or Memory Area for Data and/or Instructions | |
US5675765A (en) | Cache memory system with independently accessible subdivided cache tag arrays | |
US20040049491A1 (en) | Access control of a resource shared between components | |
US5761724A (en) | Write-invalidate cache system for a split transaction bus based shared memory multiprocessor | |
JP2000242556A (ja) | 仮想インデックス仮想タグデータキャッシュ用に最適化されたハードウエアクリーニング機能 | |
JPH04230549A (ja) | 多重レベル・キャッシュ | |
US6839806B2 (en) | Cache system with a cache tag memory and a cache tag buffer | |
US6915406B2 (en) | Address translation apparatus, address translation method, and two-layer address translation apparatus | |
US7865691B2 (en) | Virtual address cache and method for sharing data using a unique task identifier | |
US6480940B1 (en) | Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module | |
JPH0727492B2 (ja) | 緩衝記憶装置 | |
JP2006244460A (ja) | キャッシュメモリ及びプロセッサ | |
US20060015689A1 (en) | Implementation and management of moveable buffers in cache system | |
JP3295728B2 (ja) | パイプラインキャッシュメモリの更新回路 | |
JP2700148B2 (ja) | コンピュータ内のキャッシュへ情報を装填する方法と装置 |