JPH06222993A - キャッシュメモリシステムおよびそれを実現するための方法 - Google Patents
キャッシュメモリシステムおよびそれを実現するための方法Info
- Publication number
- JPH06222993A JPH06222993A JP5310060A JP31006093A JPH06222993A JP H06222993 A JPH06222993 A JP H06222993A JP 5310060 A JP5310060 A JP 5310060A JP 31006093 A JP31006093 A JP 31006093A JP H06222993 A JPH06222993 A JP H06222993A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- cache
- address
- burst mode
- memory address
- 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.)
- Pending
Links
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/0846—Cache with multiple tag or data arrays being simultaneously accessible
-
- 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/0877—Cache access modes
- G06F12/0879—Burst mode
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)【要約】
【目的】 メモリアクセスをふるいにかけそれによりキ
ャッシュを自由にして多重キャッシュ中のプロセッサに
情報を供給するための方法およびこの方法を実現する回
路を提供する。 【構成】 キャッシュ制御回路は多重キャッシュ多重処
理システム中の主メモリ(20)のアクセスを低減す
る。この回路は複数のキャッシュ(12−15)を1つ
の中央処理装置(10)と共に用いることを可能にしか
つバーストモード動作を容易にする。
ャッシュを自由にして多重キャッシュ中のプロセッサに
情報を供給するための方法およびこの方法を実現する回
路を提供する。 【構成】 キャッシュ制御回路は多重キャッシュ多重処
理システム中の主メモリ(20)のアクセスを低減す
る。この回路は複数のキャッシュ(12−15)を1つ
の中央処理装置(10)と共に用いることを可能にしか
つバーストモード動作を容易にする。
Description
【0001】
【発明の背景】コンピュータシステムはその一時的記憶
の必要性すべてのために理想的には超高速メモリを用い
る。これにより中央処理装置(CPU)がより速度の遅
いメモリ装置を待つ必要なくその設計された速度で動作
可能となる。しかしながら、より速度の遅いメモリは費
用が安く、消費電力が少なく、かつ超高速メモリに比べ
て所与のスペース中により多く記憶できるために、しば
しば用いられる。
の必要性すべてのために理想的には超高速メモリを用い
る。これにより中央処理装置(CPU)がより速度の遅
いメモリ装置を待つ必要なくその設計された速度で動作
可能となる。しかしながら、より速度の遅いメモリは費
用が安く、消費電力が少なく、かつ超高速メモリに比べ
て所与のスペース中により多く記憶できるために、しば
しば用いられる。
【0002】ほとんどのコンピュータアプリケーション
プログラムの特徴は、同一または隣接するデータピース
について反復的動作を実行する傾向があるということで
ある。キャッシュメモリシステムはこの特徴を利用し
て、キャッシュメモリと呼ばれる少容量の超高速メモリ
中に、最近アクセスされたデータを記憶する。より速度
の遅い主メモリから読出されるデータは、より速度の速
いキャッシュメモリ中に記憶されるため、もしプログラ
ムが引続き同一データを用いなければならないときは、
このデータはキャッシュメモリから読出され得る。した
がって、キャッシュメモリシステムはコンピュータシス
テムにおけるメモリアクセスの見かけ上の速度を増大す
る。
プログラムの特徴は、同一または隣接するデータピース
について反復的動作を実行する傾向があるということで
ある。キャッシュメモリシステムはこの特徴を利用し
て、キャッシュメモリと呼ばれる少容量の超高速メモリ
中に、最近アクセスされたデータを記憶する。より速度
の遅い主メモリから読出されるデータは、より速度の速
いキャッシュメモリ中に記憶されるため、もしプログラ
ムが引続き同一データを用いなければならないときは、
このデータはキャッシュメモリから読出され得る。した
がって、キャッシュメモリシステムはコンピュータシス
テムにおけるメモリアクセスの見かけ上の速度を増大す
る。
【0003】キャッシュメモリシステムは、それについ
てのデータがキャッシュ中で入手可能である主メモリの
アドレスを追わなければならない。データがキャッシュ
中で入手可能な場合は、主メモリアクセスはキャッシュ
アクセスのために打切られる。これはキャッシュ「ヒッ
ト」と呼ばれる。キャッシュヒットの頻度は多くの方法
で増大され得る。1つの方法では、どのデータをある特
定のコンピュータアプリケーションに適合されるキャッ
シュ中に配置するかを決定するためのアルゴリズムを用
いる。ヒットの頻度を増大するための他の方法ではより
大きなキャッシュメモリを用いる。
てのデータがキャッシュ中で入手可能である主メモリの
アドレスを追わなければならない。データがキャッシュ
中で入手可能な場合は、主メモリアクセスはキャッシュ
アクセスのために打切られる。これはキャッシュ「ヒッ
ト」と呼ばれる。キャッシュヒットの頻度は多くの方法
で増大され得る。1つの方法では、どのデータをある特
定のコンピュータアプリケーションに適合されるキャッ
シュ中に配置するかを決定するためのアルゴリズムを用
いる。ヒットの頻度を増大するための他の方法ではより
大きなキャッシュメモリを用いる。
【0004】コンピュータシステム中のキャッシュメモ
リの最適量は、特定のアプリケーション、システムの目
標コスト、システムで用いられるハードウェア、および
主メモリおよびキャッシュメモリの相対コストを含む多
数の要因に依存する。いくつかのシステムは、1つの大
きなキャッシュよりも多数のより小さなキャッシュを用
いることによって最適化され得る。たとえば、複数のよ
り小さなキャッシュはメモリの隣接していないブロック
中へマッピングされてもよい。
リの最適量は、特定のアプリケーション、システムの目
標コスト、システムで用いられるハードウェア、および
主メモリおよびキャッシュメモリの相対コストを含む多
数の要因に依存する。いくつかのシステムは、1つの大
きなキャッシュよりも多数のより小さなキャッシュを用
いることによって最適化され得る。たとえば、複数のよ
り小さなキャッシュはメモリの隣接していないブロック
中へマッピングされてもよい。
【0005】複数のキャッシュメモリを用いるキャッシ
ュシステムはキャッシュ間の競合干渉を回避しなければ
ならない。競合は1つ以上のキャッシュがキャッシュヒ
ットでメモリアドレスに応答する場合に発生する。
ュシステムはキャッシュ間の競合干渉を回避しなければ
ならない。競合は1つ以上のキャッシュがキャッシュヒ
ットでメモリアドレスに応答する場合に発生する。
【0006】CPUが「バーストモード」動作を用いる
場合に他の問題が発生し得る。バーストモード動作は連
続した一連の記憶場所中のデータについて実行される。
CPUにそれぞれの記憶場所へアドレスするように新し
い指令を実行させる代わりに、バーストモードではCP
Uが開始メモリアドレス、実行されるべき動作、および
動作をその上で実行するメモリブロックの長さを特定す
る、1つの指令を実行することが可能である。かかる場
合において、メモリアクセスは好ましくはバーストモー
ドで行なわれる。このことは、バーストモード動作のた
めの開始メモリアドレスが1つのキャッシュで始まり異
なるキャッシュで終了する場合に、スヌーピング多重キ
ャッシュシステムにおいて特別の問題を引起こし得る。
場合に他の問題が発生し得る。バーストモード動作は連
続した一連の記憶場所中のデータについて実行される。
CPUにそれぞれの記憶場所へアドレスするように新し
い指令を実行させる代わりに、バーストモードではCP
Uが開始メモリアドレス、実行されるべき動作、および
動作をその上で実行するメモリブロックの長さを特定す
る、1つの指令を実行することが可能である。かかる場
合において、メモリアクセスは好ましくはバーストモー
ドで行なわれる。このことは、バーストモード動作のた
めの開始メモリアドレスが1つのキャッシュで始まり異
なるキャッシュで終了する場合に、スヌーピング多重キ
ャッシュシステムにおいて特別の問題を引起こし得る。
【0007】多重処理環境においては、キャッシュはそ
れらのCPUを助けるだけではなく、他のメモリバスマ
スタによって開始されるメモリバスアクセスをモニタす
る。『コピーバック』実現においては、この活動はバス
スヌーピングと呼ばれる。データの固執性は非常に重要
であるため、キャッシュはメモリのモニタのためにその
CPUのアクセスを立往生させなければならないかもし
れない。
れらのCPUを助けるだけではなく、他のメモリバスマ
スタによって開始されるメモリバスアクセスをモニタす
る。『コピーバック』実現においては、この活動はバス
スヌーピングと呼ばれる。データの固執性は非常に重要
であるため、キャッシュはメモリのモニタのためにその
CPUのアクセスを立往生させなければならないかもし
れない。
【0008】
【発明の概要】本発明はメモリアクセスをふるいにか
け、それにより複数のキャッシュ中のキャッシュを自由
にしてそのプロセッサに情報を提供させるための方法、
およびこの方法を実行する回路を開示する。バーストモ
ード動作を実行するための追加回路もさらに開示され
る。
け、それにより複数のキャッシュ中のキャッシュを自由
にしてそのプロセッサに情報を提供させるための方法、
およびこの方法を実行する回路を開示する。バーストモ
ード動作を実行するための追加回路もさらに開示され
る。
【0009】個々のキャッシュを主メモリの物理的アド
レススペースの異なるエリアにマッピングすることによ
り競合が排除される。個々のキャッシュメモリ中の回路
は、ある範囲のアドレスをCPUによって選択させ、そ
れからこの範囲内のアドレスが主メモリアドレスバス上
に置かれる場合にのみキャッシュ機能に応答することに
より、マッピング機能を実行する。
レススペースの異なるエリアにマッピングすることによ
り競合が排除される。個々のキャッシュメモリ中の回路
は、ある範囲のアドレスをCPUによって選択させ、そ
れからこの範囲内のアドレスが主メモリアドレスバス上
に置かれる場合にのみキャッシュ機能に応答することに
より、マッピング機能を実行する。
【0010】バーストモード動作の間の競合の問題は、
動作により特定されるメモリアドレスを介して自動的に
進み、かつこれらのアドレスがキャッシュによってマッ
ピングされたエリアに対応するかどうかを決定するキャ
ッシュ中の回路によって回避される。
動作により特定されるメモリアドレスを介して自動的に
進み、かつこれらのアドレスがキャッシュによってマッ
ピングされたエリアに対応するかどうかを決定するキャ
ッシュ中の回路によって回避される。
【0011】
【好ましい実施例の詳細な説明】図1は各CPU2がそ
れ自身のキャッシュメモリ3を有する、主メモリ1を共
有した多重処理システムを示す。このシステムにおい
て、キャッシュメモリ3はメモリアクセスの速度を増大
するように働くのみならず、主メモリ1へアクセスする
ための主メモリバス4上の競合のレベルを低減するよう
に働く。このシステムにおけるCPU2はその局部キャ
ッシュ3のみに直接的にアクセス可能であり、他のCP
U6に付与されたキャッシュ5はアクセスできない。
れ自身のキャッシュメモリ3を有する、主メモリ1を共
有した多重処理システムを示す。このシステムにおい
て、キャッシュメモリ3はメモリアクセスの速度を増大
するように働くのみならず、主メモリ1へアクセスする
ための主メモリバス4上の競合のレベルを低減するよう
に働く。このシステムにおけるCPU2はその局部キャ
ッシュ3のみに直接的にアクセス可能であり、他のCP
U6に付与されたキャッシュ5はアクセスできない。
【0012】図2(a)は本発明を実施する多重処理シ
ステムを示し、CPU10は複数のキャッシュメモリ1
2−15を有する。4キャッシュシステムは説明のため
にのみ示され、この開示はいかなる数のキャッシュをも
用いる同様の多重キャッシュシステムを包含する。図2
(b)は4つのキャッシュ12−15を有する多重キャ
ッシュシステムがどのようにして主メモリ20の4つの
ブロック22−25中にマッピングされるかを示す。4
つの主メモリブロック22−25は重なり合わず、かつ
4つのキャッシュ12−15も重なり合わない。たとえ
ばCPU210が主メモリ20からのメモリアクセスを
要求すると、キャッシュ12からキャッシュ15中の回
路はメモリアクセス要求の物理的アドレスを同時にスヌ
ープする。もし物理的アドレスがある特定のキャッシュ
についてのマッピングされた範囲内ならば、そのキャッ
シュはスヌープヒットのためにその内容を検査する。キ
ャッシュは重なり合わないために、1つのキャッシュの
みがメモリ要求に応答でき、キャッシュ間の競合を排除
する。
ステムを示し、CPU10は複数のキャッシュメモリ1
2−15を有する。4キャッシュシステムは説明のため
にのみ示され、この開示はいかなる数のキャッシュをも
用いる同様の多重キャッシュシステムを包含する。図2
(b)は4つのキャッシュ12−15を有する多重キャ
ッシュシステムがどのようにして主メモリ20の4つの
ブロック22−25中にマッピングされるかを示す。4
つの主メモリブロック22−25は重なり合わず、かつ
4つのキャッシュ12−15も重なり合わない。たとえ
ばCPU210が主メモリ20からのメモリアクセスを
要求すると、キャッシュ12からキャッシュ15中の回
路はメモリアクセス要求の物理的アドレスを同時にスヌ
ープする。もし物理的アドレスがある特定のキャッシュ
についてのマッピングされた範囲内ならば、そのキャッ
シュはスヌープヒットのためにその内容を検査する。キ
ャッシュは重なり合わないために、1つのキャッシュの
みがメモリ要求に応答でき、キャッシュ間の競合を排除
する。
【0013】図3は最初のかつバーストモードのメモリ
アクセスの間のキャッシュ競合を防止する回路の一実施
例のブロック図である。アドレスバスからのメモリアド
レス30は比較回路に与えられる前に入力バッファ32
を通過する。最初のメモリアクセスのために、バッファ
されたメモリアドレス34は比較器回路38によってキ
ャッシュのマッピングされたエリア36と比較され、そ
の結果バッファされたメモリアドレス34がキャッシュ
のマッピングされたエリア36と一致した場合は信号3
9を生成する。
アクセスの間のキャッシュ競合を防止する回路の一実施
例のブロック図である。アドレスバスからのメモリアド
レス30は比較回路に与えられる前に入力バッファ32
を通過する。最初のメモリアクセスのために、バッファ
されたメモリアドレス34は比較器回路38によってキ
ャッシュのマッピングされたエリア36と比較され、そ
の結果バッファされたメモリアドレス34がキャッシュ
のマッピングされたエリア36と一致した場合は信号3
9を生成する。
【0014】バーストモード動作では最初のメモリアド
レス30のみが送信され、それに続くメモリアドレスは
送信されない。それに続くメモリアドレスはバッファさ
れたメモリアドレス34をラッチしかつ増分するバース
ト回路40によって発生する。バースト回路40はバー
ストモード信号42によるバースト動作の継続の間、可
能化される。バースト回路40は比較器回路46によっ
てキャッシュのマッピングされたエリア36と比較され
るバーストアドレス44を生成し、もしバーストアドレ
ス44がキャッシュのマッピングされたエリア36内に
あれば信号48を生成する。バーストモード動作が完了
すると、バースト回路40はバーストモード信号42に
よって不能化される。
レス30のみが送信され、それに続くメモリアドレスは
送信されない。それに続くメモリアドレスはバッファさ
れたメモリアドレス34をラッチしかつ増分するバース
ト回路40によって発生する。バースト回路40はバー
ストモード信号42によるバースト動作の継続の間、可
能化される。バースト回路40は比較器回路46によっ
てキャッシュのマッピングされたエリア36と比較され
るバーストアドレス44を生成し、もしバーストアドレ
ス44がキャッシュのマッピングされたエリア36内に
あれば信号48を生成する。バーストモード動作が完了
すると、バースト回路40はバーストモード信号42に
よって不能化される。
【0015】各キャッシュはキャッシュが動作する物理
的アドレスリミットを説明する独特のマッピングされた
エリア36でプログラムされる。メモリアクセスがスヌ
ーピングのために始まる場合、各キャッシュは比較器回
路38を用いて、アクセスされるべきメモリアドレス3
0をそのキャッシュについてのマッピングされたエリア
36と比較する。もし要求されたメモリアドレス30が
マッピングされたエリア36によって特定されるアドレ
スの範囲内ならば、回路はキャッシュ機能を進める。そ
の他の場合は、回路はメモリ要求には応答せず、したが
ってその資源を開放して回路が付与されているCPUに
供給する。
的アドレスリミットを説明する独特のマッピングされた
エリア36でプログラムされる。メモリアクセスがスヌ
ーピングのために始まる場合、各キャッシュは比較器回
路38を用いて、アクセスされるべきメモリアドレス3
0をそのキャッシュについてのマッピングされたエリア
36と比較する。もし要求されたメモリアドレス30が
マッピングされたエリア36によって特定されるアドレ
スの範囲内ならば、回路はキャッシュ機能を進める。そ
の他の場合は、回路はメモリ要求には応答せず、したが
ってその資源を開放して回路が付与されているCPUに
供給する。
【0016】バーストモードのメモリアクセスは1つの
キャッシュにおいて始まるが、別のキャッシュ中へ進み
得る。この場合、バーストモードの回路は最初に応答し
ないように要求されたキャッシュがアドレスが処理され
るに従い応答するように要求され得るという可能性を追
跡する。最初のメモリアドレス30がキャッシュのマッ
ピングされたエリア36内に当てはまる場合、キャッシ
ュ動作が信号39を介して可能化される。マッピングさ
れたエリア36内に入るそれに続くバーストアドレス4
4は信号48を介してキャッシュ動作を可能化し続け
る。しかしながら、引続いてのバーストアドレス44が
キャッシュのマッピングされたエリア36の外の場合、
キャッシュ動作は信号48を介して不能化され、それに
特定のマッピングされたエリア36内にバーストアドレ
ス44を有するかもしれない他のキャッシュとの競合を
防止する。
キャッシュにおいて始まるが、別のキャッシュ中へ進み
得る。この場合、バーストモードの回路は最初に応答し
ないように要求されたキャッシュがアドレスが処理され
るに従い応答するように要求され得るという可能性を追
跡する。最初のメモリアドレス30がキャッシュのマッ
ピングされたエリア36内に当てはまる場合、キャッシ
ュ動作が信号39を介して可能化される。マッピングさ
れたエリア36内に入るそれに続くバーストアドレス4
4は信号48を介してキャッシュ動作を可能化し続け
る。しかしながら、引続いてのバーストアドレス44が
キャッシュのマッピングされたエリア36の外の場合、
キャッシュ動作は信号48を介して不能化され、それに
特定のマッピングされたエリア36内にバーストアドレ
ス44を有するかもしれない他のキャッシュとの競合を
防止する。
【0017】比較器機能38の回路設計を単純化する1
つの方法は、マッピングされたエリア36の範囲を2の
べき乗個ちょうど(つまり2、4、8…1024、20
48…)に限定し、かつマッピングされたエリア36に
「0」またはこのマッピングされたエリアのサイズによ
って均等に分割可能なアドレスで開始を要求することで
ある。この実現により、比較器回路38はバッファされ
たメモリアドレス34の上位ビットのみをチェックし
て、それがマッピングされたエリア36によって特定さ
れる範囲内かどうかを決定できる。この方法はまた比較
器回路46によって用いられてもよい。
つの方法は、マッピングされたエリア36の範囲を2の
べき乗個ちょうど(つまり2、4、8…1024、20
48…)に限定し、かつマッピングされたエリア36に
「0」またはこのマッピングされたエリアのサイズによ
って均等に分割可能なアドレスで開始を要求することで
ある。この実現により、比較器回路38はバッファされ
たメモリアドレス34の上位ビットのみをチェックし
て、それがマッピングされたエリア36によって特定さ
れる範囲内かどうかを決定できる。この方法はまた比較
器回路46によって用いられてもよい。
【0018】各キャッシュ中で用いられるアドレス比較
回路の一実施例が図4に示される。この実現は16まで
の異なるキャッシュを許容するシステムについて示され
るが、本開示は他のシステム要件に対しても容易に修正
され得る。要求されたメモリアクセスの4つの上位アド
レスビット51−54は、キャッシュのマッピングされ
たエリアを規定する4つのマップビット61−64と比
較される。もしすべてのビット51−54がビット61
−64と等しければ、ハイ論理レベル「1」が回路の一
致出力70で発生する。その他の場合は、一致出力はロ
ーまたは「0」でとどまる。
回路の一実施例が図4に示される。この実現は16まで
の異なるキャッシュを許容するシステムについて示され
るが、本開示は他のシステム要件に対しても容易に修正
され得る。要求されたメモリアクセスの4つの上位アド
レスビット51−54は、キャッシュのマッピングされ
たエリアを規定する4つのマップビット61−64と比
較される。もしすべてのビット51−54がビット61
−64と等しければ、ハイ論理レベル「1」が回路の一
致出力70で発生する。その他の場合は、一致出力はロ
ーまたは「0」でとどまる。
【0019】図4の比較器回路は4つの比較器ブロック
100、110、120および130からなる。各比較
器ブロックは要求されたアドレスの1ビットをマッピン
グされたエリアの1ビットと比較する。たとえばアドレ
スビット51は比較器ブロック100中でマップビット
61と比較される。もしアドレスビット51およびマッ
プビット61が両方とも「1」ならばANDゲート10
1の出力は「1」でありかつORゲート102の出力1
09は「1」である。もしアドレスビット51およびマ
ップビット61が両方とも「0」ならば、インバータ1
03および104はANDゲート105の入力に「1」
を与え、ORゲート102の出力に「1」を表わさせ
る。したがって、比較器ブロック100の出力109は
アドレスビット51がマップビット61に等しい場合に
のみ「1」となる。
100、110、120および130からなる。各比較
器ブロックは要求されたアドレスの1ビットをマッピン
グされたエリアの1ビットと比較する。たとえばアドレ
スビット51は比較器ブロック100中でマップビット
61と比較される。もしアドレスビット51およびマッ
プビット61が両方とも「1」ならばANDゲート10
1の出力は「1」でありかつORゲート102の出力1
09は「1」である。もしアドレスビット51およびマ
ップビット61が両方とも「0」ならば、インバータ1
03および104はANDゲート105の入力に「1」
を与え、ORゲート102の出力に「1」を表わさせ
る。したがって、比較器ブロック100の出力109は
アドレスビット51がマップビット61に等しい場合に
のみ「1」となる。
【0020】同様の分析は他の比較器ブロックにも応用
される。比較器ブロック110の出力119はアドレス
ビット52がマップビット62に等しい場合にのみ
「1」である。比較器ブロック120の出力129はア
ドレスビット53がマップビット63に等しい場合にの
み「1」である。比較器ブロック130の出力139は
アドレスビット54がマップビット64に等しい場合に
のみ「1」である。ANDゲート140の一致出力70
はアドレスビット51−54がマップビット61−64
に等しい場合にのみ「1」となり、各比較器ブロック1
00、110、120、および130にANDゲート1
40の入力109、119、129および139へ
「1」を供給させる。
される。比較器ブロック110の出力119はアドレス
ビット52がマップビット62に等しい場合にのみ
「1」である。比較器ブロック120の出力129はア
ドレスビット53がマップビット63に等しい場合にの
み「1」である。比較器ブロック130の出力139は
アドレスビット54がマップビット64に等しい場合に
のみ「1」である。ANDゲート140の一致出力70
はアドレスビット51−54がマップビット61−64
に等しい場合にのみ「1」となり、各比較器ブロック1
00、110、120、および130にANDゲート1
40の入力109、119、129および139へ
「1」を供給させる。
【0021】図2(a)を参照して、各キャッシュ12
−15は図4の回路を含む。各キャッシュ12−15が
異なるマップアドレス(図4のビット61−64)でプ
ログラムされる場合、キャッシュ12−15は主メモリ
20の重なり合わないブロック22−25に対応する。
いかなる所与のメモリ要求についても、キャッシュ12
−15のせいぜい1つが高一致出力70(図4中)で応
答可能である。したがって、CPU10からのメモリア
クセス要求に情報を供給するキャッシュ12−15間に
は競合が存在し得ない。
−15は図4の回路を含む。各キャッシュ12−15が
異なるマップアドレス(図4のビット61−64)でプ
ログラムされる場合、キャッシュ12−15は主メモリ
20の重なり合わないブロック22−25に対応する。
いかなる所与のメモリ要求についても、キャッシュ12
−15のせいぜい1つが高一致出力70(図4中)で応
答可能である。したがって、CPU10からのメモリア
クセス要求に情報を供給するキャッシュ12−15間に
は競合が存在し得ない。
【0022】当業者により実現され得るアドレス比較お
よびキャッシュマッピングの多数の方法が存在すること
が理解されるべきである。前掲の特許請求の範囲に規定
されるように本発明の範囲から逸脱することなく本実施
例に対して種々の修正がなされ得る。
よびキャッシュマッピングの多数の方法が存在すること
が理解されるべきである。前掲の特許請求の範囲に規定
されるように本発明の範囲から逸脱することなく本実施
例に対して種々の修正がなされ得る。
【図1】通常の主メモリおよび各CPUごとに1つの別
個のキャッシュを有する多重処理システムを示す図であ
る。
個のキャッシュを有する多重処理システムを示す図であ
る。
【図2】通常の主メモリおよび複数のキャッシュメモリ
を伴う1つのCPUを有する多重処理システムを示す図
である。
を伴う1つのCPUを有する多重処理システムを示す図
である。
【図3】キャッシュ競合を防止し、それにより多重キャ
ッシュシステムの実現を可能にする回路の一実施例のブ
ロック図である。
ッシュシステムの実現を可能にする回路の一実施例のブ
ロック図である。
【図4】多重キャッシュシステム中のキャッシュ競合を
防止する比較器回路の一実施例の図である。
防止する比較器回路の一実施例の図である。
10 CPU 12−15 キャッシュ 20 主メモリ
Claims (8)
- 【請求項1】 (1)1つの中央処理装置(CPU)に
接続される複数個のキャッシュメモリと、 (2)主メモリと、 (3)コピーバックを有する多重処理とを含み、 多くとも1つのキャッシュメモリが前記CPUからのメ
モリアクセス要求に応答する、キャッシュメモリシステ
ム。 - 【請求項2】 (1)前記キャッシュメモリのうちの各
々は前記主メモリ中に対応する物理的アドレススペース
を識別するためのメモリアドレス範囲を保持するマップ
エリアレジスタを含み、さらに (2)前記キャッシュメモリのうちの各々は前記メモリ
アクセス要求中の主メモリアドレスと前記マップエリア
レジスタ中の前記メモリアドレス範囲とを比較し、かつ
前記主メモリアドレスが前記メモリアドレス範囲内の場
合に信号を発生するための第1の比較回路を含む、請求
項1に記載のキャッシュメモリシステム。 - 【請求項3】 (1)前記キャッシュメモリのうちの各
々はバーストモードメモリアドレスを発生するようにバ
ーストモード動作の間に前記メモリアドレスを増分する
ためのバーストモード回路を含み、さらに (2)前記キャッシュメモリのうちの各々は前記バース
トモードメモリアドレスを前記メモリアドレス範囲と比
較し、かつ前記バーストモードメモリアドレスが前記メ
モリアドレス範囲内の場合に信号を発生する、第2の比
較回路を含む、請求項1に記載のキャッシュメモリシス
テム。 - 【請求項4】 前記キャッシュメモリの各々は、 (1)前記主メモリの部分に対応する物理的アドレス範
囲を記憶するための手段と、 (2)前記メモリアクセス要求中の主メモリアドレスを
前記記憶手段中の前記物理的アドレス範囲と比較するた
めの第1の手段と、 (3)前記第1の比較手段が前記主メモリアドレスが前
記メモリアドレス範囲内であると決定する場合に信号を
発生するための第1の手段とを含む、請求項1に記載の
キャッシュメモリシステム。 - 【請求項5】 前記キャッシュメモリのうちの各々はさ
らに、 (4)バーストモード動作を検出するための手段と、 (5)前記検出手段に応答して前記主メモリアドレスを
増分することによりバーストモードアドレスを発生する
ための手段と、 (6)前記バーストモードアドレスを前記記憶手段中の
前記物理的アドレス範囲と比較するための第2の手段
と、 (7)前記第2の比較手段が前記バーストモードアドレ
スが前記メモリアドレス範囲内であると決定する場合に
信号を発生するための第2の手段とを含む、請求項4に
記載のキャッシュメモリシステム。 - 【請求項6】 複数個のCPUが存在する、請求項1に
記載のキャッシュメモリシステム。 - 【請求項7】 (1)主メモリの部分に対応する物理的
アドレス範囲を記憶するステップと、 (2)メモリアクセス要求中の主メモリアドレスを前記
物理的アドレス範囲と比較するためのステップと、 (3)前記主メモリアドレスが前記メモリアドレス範囲
内にある場合に信号を発生するステップとを含む、キャ
ッシュメモリシステムを実現するための方法。 - 【請求項8】 (4)バーストモード動作を検出するス
テップと、 (5)前記バーストモード動作を検出している間に前記
主メモリアドレスを増分することによりバーストモード
アドレスを発生するステップと、 (6)前記バーストモードアドレスを前記物理的アドレ
ス範囲と比較するステップと、 (7)前記バーストモードアドレスが前記メモリアドレ
ス範囲内にある場合に信号を発生するステップとをさら
に含む、請求項7に記載のキャッシュメモリシステムを
実現するための方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/993,005 US5502828A (en) | 1992-12-18 | 1992-12-18 | Reducing memory access in a multi-cache multiprocessing environment with each cache mapped into different areas of main memory to avoid contention |
US993005 | 1992-12-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06222993A true JPH06222993A (ja) | 1994-08-12 |
Family
ID=25538995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5310060A Pending JPH06222993A (ja) | 1992-12-18 | 1993-12-10 | キャッシュメモリシステムおよびそれを実現するための方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US5502828A (ja) |
EP (1) | EP0602807A3 (ja) |
JP (1) | JPH06222993A (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09503609A (ja) * | 1994-02-25 | 1997-04-08 | インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン | ビット・マッピングの装置および方法 |
JP3153078B2 (ja) * | 1994-09-09 | 2001-04-03 | 日本電気株式会社 | データ処理装置 |
US5761709A (en) * | 1995-06-05 | 1998-06-02 | Advanced Micro Devices, Inc. | Write cache for servicing write requests within a predetermined address range |
US6728258B1 (en) * | 1995-11-15 | 2004-04-27 | Hitachi, Ltd. | Multi-processor system and its network |
US5809537A (en) * | 1995-12-08 | 1998-09-15 | International Business Machines Corp. | Method and system for simultaneous processing of snoop and cache operations |
US6167486A (en) | 1996-11-18 | 2000-12-26 | Nec Electronics, Inc. | Parallel access virtual channel memory system with cacheable channels |
US5901326A (en) * | 1996-11-26 | 1999-05-04 | International Business Machines Corporation | Memory bus address snooper logic for determining memory activity without performing memory accesses |
DE19951046A1 (de) * | 1999-10-22 | 2001-04-26 | Siemens Ag | Speicherbaustein für ein Mehrprozessorsystem und Mehrprozessorsystem |
US6708254B2 (en) | 1999-11-10 | 2004-03-16 | Nec Electronics America, Inc. | Parallel access virtual channel memory system |
US6606684B1 (en) | 2000-03-31 | 2003-08-12 | Intel Corporation | Multi-tiered memory bank having different data buffer sizes with a programmable bank select |
US6742071B1 (en) * | 2000-07-25 | 2004-05-25 | Cypress Semiconductor Corp. | Real-time I/O processor used to implement bus interface protocols |
US8279886B2 (en) * | 2004-12-30 | 2012-10-02 | Intel Corporation | Dataport and methods thereof |
US7496712B1 (en) * | 2005-06-17 | 2009-02-24 | Sun Microsystems, Inc. | Proximity communication-based off-chip cache memory architectures |
US7444473B1 (en) | 2005-06-17 | 2008-10-28 | Sun Microsystems, Inc. | Speculative memory accesses in a proximity communication-based off-chip cache memory architecture |
US7562190B1 (en) | 2005-06-17 | 2009-07-14 | Sun Microsystems, Inc. | Cache protocol enhancements in a proximity communication-based off-chip cache memory architecture |
US8495299B2 (en) | 2009-11-16 | 2013-07-23 | Microsoft Corporation | Non-blocking data transfer via memory cache manipulation |
US10725689B2 (en) * | 2015-08-31 | 2020-07-28 | Hewlett Packard Enterprise Development Lp | Physical memory region backup of a volatile memory to a non-volatile memory |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS58147879A (ja) * | 1982-02-26 | 1983-09-02 | Toshiba Corp | キヤツシユメモリ制御方式 |
US4853846A (en) * | 1986-07-29 | 1989-08-01 | Intel Corporation | Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors |
US5210843A (en) * | 1988-03-25 | 1993-05-11 | Northern Telecom Limited | Pseudo set-associative memory caching arrangement |
JPH0748189B2 (ja) * | 1989-06-07 | 1995-05-24 | 三菱電機株式会社 | データ処理装置 |
JPH04353947A (ja) * | 1991-02-13 | 1992-12-08 | Hewlett Packard Co <Hp> | メモリページ特性タグ付けシステム |
US5398325A (en) * | 1992-05-07 | 1995-03-14 | Sun Microsystems, Inc. | Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems |
-
1992
- 1992-12-18 US US07/993,005 patent/US5502828A/en not_active Expired - Fee Related
-
1993
- 1993-11-23 EP EP93309319A patent/EP0602807A3/en not_active Withdrawn
- 1993-12-10 JP JP5310060A patent/JPH06222993A/ja active Pending
-
1995
- 1995-06-05 US US08/463,271 patent/US5737564A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0602807A3 (en) | 1995-07-12 |
US5737564A (en) | 1998-04-07 |
US5502828A (en) | 1996-03-26 |
EP0602807A2 (en) | 1994-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5265236A (en) | Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode | |
US6651115B2 (en) | DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces | |
US5261106A (en) | Semaphore bypass | |
JPH06222993A (ja) | キャッシュメモリシステムおよびそれを実現するための方法 | |
US6178481B1 (en) | Microprocessor circuits and systems with life spanned storage circuit for storing non-cacheable data | |
US5497458A (en) | Cache testability circuit for embedded diagnostics | |
JPH04233641A (ja) | データプレフェッチの方法およびその装置 | |
US6219745B1 (en) | System and method for entering a stream read buffer mode to store non-cacheable or block data | |
JP3236287B2 (ja) | マルチプロセッサシステム | |
US5590310A (en) | Method and structure for data integrity in a multiple level cache system | |
JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 | |
US6434670B1 (en) | Method and apparatus for efficiently managing caches with non-power-of-two congruence classes | |
US5557622A (en) | Method and apparatus for parity generation | |
JPH04336641A (ja) | 処理システムにおける使用のためのデータキャッシュおよび方法 | |
JPH06222994A (ja) | キャッシュメモリシステム | |
EP0488566A2 (en) | Method and apparatus for fast page mode selection | |
JP3564343B2 (ja) | キャッシュバイパス時のデータ転送装置と方法 | |
JPH03230238A (ja) | キャッシュメモリ制御方式 | |
JP2504323B2 (ja) | システムバス制御方法 | |
JP2542284B2 (ja) | 緩衝記憶装置および緩衝記憶装置システム | |
KR0140952B1 (ko) | 다중 프로세서 시스템의 단일 캐시 공유 장치 및 그 장치를 이용한 데이타 기록/판독 방법 | |
KR19990026157A (ko) | 멀티 프로세서 시스템의 캐시 메모리 제어방법 및 장치 | |
JPH03147153A (ja) | キャッシュメモリ装置 | |
JPH03271859A (ja) | 情報処理装置 | |
JPH08110873A (ja) | キャッシュメモリサブシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20040406 |