JPH03219345A - 多ポートキャッシュメモリ制御装置 - Google Patents
多ポートキャッシュメモリ制御装置Info
- Publication number
- JPH03219345A JPH03219345A JP2013536A JP1353690A JPH03219345A JP H03219345 A JPH03219345 A JP H03219345A JP 2013536 A JP2013536 A JP 2013536A JP 1353690 A JP1353690 A JP 1353690A JP H03219345 A JPH03219345 A JP H03219345A
- Authority
- JP
- Japan
- Prior art keywords
- cache memory
- port
- memory
- cpu
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 105
- 230000003287 optical effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000034 method Methods 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/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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
[発明の目的]
(産業上の利用分野)
この発明は、多ポートキャッシュメモリ制御装置に関す
る。
る。
(従来の技術)
一般に密結合型のマルチプロセッサシステムは、第3図
に示すように並列に動作する複数のCPUIがシステム
バス2を介して共通の主記憶装置3をアクセスすること
ができ、この主記憶装置3を通して他の要素と通信でき
るようになっている。そして通常、主記憶装置3は大容
量であるためにDRAMのような遅いデバイスで構成さ
れており、処理の高速化のために、主記憶装置3の記憶
データのコピー持つ高速のキャッシュメモリ4が備える
ようにしている。
に示すように並列に動作する複数のCPUIがシステム
バス2を介して共通の主記憶装置3をアクセスすること
ができ、この主記憶装置3を通して他の要素と通信でき
るようになっている。そして通常、主記憶装置3は大容
量であるためにDRAMのような遅いデバイスで構成さ
れており、処理の高速化のために、主記憶装置3の記憶
データのコピー持つ高速のキャッシュメモリ4が備える
ようにしている。
従来、このようなキャッシュメモリに対する制御装置は
第4図に示すような構成となっている。
第4図に示すような構成となっている。
つまり、キャッシュメモリ41とCPUIとの間は、プ
ロセッサ側バス42とプロセッサ側バスインターフェー
ス(I/F)43とを介してデータ、アドレス、コント
ロールそれぞれの信号のやり取りを行ない、他方、他の
CPUIやデバイス、主記憶装置2との間は、システム
バス2とシステムバスインターフェース(1/F)44
とを介してデータのやり取りを行なうようになっている
。
ロセッサ側バス42とプロセッサ側バスインターフェー
ス(I/F)43とを介してデータ、アドレス、コント
ロールそれぞれの信号のやり取りを行ない、他方、他の
CPUIやデバイス、主記憶装置2との間は、システム
バス2とシステムバスインターフェース(1/F)44
とを介してデータのやり取りを行なうようになっている
。
そこでCPUIからのリード/ライト要求が入ると、そ
のアドレス信号がTAGメモリ45の内容と比較され、
一致しているならば(つまり、キャッシュメモリ41内
に格納されているデータのアドレスと一致する(アドレ
スヒツトという)ならば)、そこに相当するキャッシュ
メモリ41の内容がリード/ライトされる。もしアドレ
スヒツトしなければ(これをキャッシュミスという)、
システムバス2から主記憶装置3ヘアクセスしくこれを
トラフィックという)、新たに主記憶装置3から必要な
データをキャッシュメモリ41の空きエリアに取込んで
きて格納し、同時にセレクタ(SEL)46をシステム
バス側に切り換えてそのデータのアドレスを取り込み、
新たに格納されるデータのアドレスを記憶していく。
のアドレス信号がTAGメモリ45の内容と比較され、
一致しているならば(つまり、キャッシュメモリ41内
に格納されているデータのアドレスと一致する(アドレ
スヒツトという)ならば)、そこに相当するキャッシュ
メモリ41の内容がリード/ライトされる。もしアドレ
スヒツトしなければ(これをキャッシュミスという)、
システムバス2から主記憶装置3ヘアクセスしくこれを
トラフィックという)、新たに主記憶装置3から必要な
データをキャッシュメモリ41の空きエリアに取込んで
きて格納し、同時にセレクタ(SEL)46をシステム
バス側に切り換えてそのデータのアドレスを取り込み、
新たに格納されるデータのアドレスを記憶していく。
なお、これらのキャッシュメモリ41に対する種々の動
作処理はコントロール回路47によリコントロールする
のである。
作処理はコントロール回路47によリコントロールする
のである。
ところで、このようなマルチプロセッサシステムでは、
各キャッシュメモリ41のコントロール回路46は他の
キャッシュメモリ41の行なうシステムバス2上でのデ
ータのやり取りを監視しくスヌーズという)、いずれか
のキャッシュメモリ41から主記憶装置3に対するトラ
フィックが発生すると、自分のキャッシュメモリ41に
格納されているデータは旧いままなのに、主記憶装置3
側では該当するアドレスのデータが他のマルチプロセッ
サ1の演算結果から新しく書き替えられてしまっている
のにそのデータにアクセスしたり、あるいは逆に、自分
のキャッシュメモリ41に格納しであるデータは自分の
マルチプロセッサ1の演算結果から新しくなったものの
、まだ主記憶装置3側の該当するアドレスのデータは書
き替えられおらず、旧いままであるのにその旧いデータ
に他のキャッシュメモリのコントロール回路47からア
クセスされたりするならば、データの一貫性(コンシス
チンシー)が保てなくなってしまう。
各キャッシュメモリ41のコントロール回路46は他の
キャッシュメモリ41の行なうシステムバス2上でのデ
ータのやり取りを監視しくスヌーズという)、いずれか
のキャッシュメモリ41から主記憶装置3に対するトラ
フィックが発生すると、自分のキャッシュメモリ41に
格納されているデータは旧いままなのに、主記憶装置3
側では該当するアドレスのデータが他のマルチプロセッ
サ1の演算結果から新しく書き替えられてしまっている
のにそのデータにアクセスしたり、あるいは逆に、自分
のキャッシュメモリ41に格納しであるデータは自分の
マルチプロセッサ1の演算結果から新しくなったものの
、まだ主記憶装置3側の該当するアドレスのデータは書
き替えられおらず、旧いままであるのにその旧いデータ
に他のキャッシュメモリのコントロール回路47からア
クセスされたりするならば、データの一貫性(コンシス
チンシー)が保てなくなってしまう。
そこでこれを避けるべく、いずれのキャッシュメモリ4
1のコントロール回路47からシスムバス2上にトラフ
ィックが発生すると、他のキャッシュメモリ41のコン
トロール回路47はシステムバス2上のデータのやり取
りを監視し、データの一貫性が失われそうになったなら
トラフィックを起こしたキャッシュメモリ41のコント
ロール回路47へ他のキャッシュメモリ41のコントロ
ール回路47から割り込みを掛け、主記憶装置3の内容
を更新した後にシステムバス2を先のトラフィックをか
けたコントロール回路47に返すように制御するように
している。
1のコントロール回路47からシスムバス2上にトラフ
ィックが発生すると、他のキャッシュメモリ41のコン
トロール回路47はシステムバス2上のデータのやり取
りを監視し、データの一貫性が失われそうになったなら
トラフィックを起こしたキャッシュメモリ41のコント
ロール回路47へ他のキャッシュメモリ41のコントロ
ール回路47から割り込みを掛け、主記憶装置3の内容
を更新した後にシステムバス2を先のトラフィックをか
けたコントロール回路47に返すように制御するように
している。
(発明が解決しようとする課題)
しかしながら、このような従来のマルチプロセッサにお
けるキャッシュメモリのコントロールでは、いずれかの
キャッシュメモリのコントロール回路からシステムバス
上にトラフィックが発生すると、このシステムバスをス
ヌーズしている他のすべてのキャッシュメモリのコント
ロール回路が上位のCPUに一時停止指令を掛け、CP
Uの処理を停止させてしまうことになる。
けるキャッシュメモリのコントロールでは、いずれかの
キャッシュメモリのコントロール回路からシステムバス
上にトラフィックが発生すると、このシステムバスをス
ヌーズしている他のすべてのキャッシュメモリのコント
ロール回路が上位のCPUに一時停止指令を掛け、CP
Uの処理を停止させてしまうことになる。
ところが、マルチプロセッサシステムの場合には、ある
キャッシュメモリのコントロール回路がらシステムバス
にトラフィックが掛かったとしても、そのコントロール
回路から主記憶装置にアクセスする特定のアドレスのデ
ータは必ずしもすべてのキャッシュメモリが共通して保
持しているデータでない場合も多くあり、このような場
合には実際には主記憶装置の特定のアドレスのデータが
書き替えられたとしても、それを共通に保持していない
キャッシュメモリにとっては関係のないことであり、引
き続き上位のCPUが自分のキャッシュメモリのデータ
を基にして演算処理を続行してもデータの一貫性が損な
われることはなく、かえって無駄に停止していることに
なり、その時間分、全体としては演算処理時間をロスし
ていることになり、自分に関係のないトラフィックに対
してはCPUの演算処理を停止しない場合よりもスルー
プットを落としてしまっているという問題点があった。
キャッシュメモリのコントロール回路がらシステムバス
にトラフィックが掛かったとしても、そのコントロール
回路から主記憶装置にアクセスする特定のアドレスのデ
ータは必ずしもすべてのキャッシュメモリが共通して保
持しているデータでない場合も多くあり、このような場
合には実際には主記憶装置の特定のアドレスのデータが
書き替えられたとしても、それを共通に保持していない
キャッシュメモリにとっては関係のないことであり、引
き続き上位のCPUが自分のキャッシュメモリのデータ
を基にして演算処理を続行してもデータの一貫性が損な
われることはなく、かえって無駄に停止していることに
なり、その時間分、全体としては演算処理時間をロスし
ていることになり、自分に関係のないトラフィックに対
してはCPUの演算処理を停止しない場合よりもスルー
プットを落としてしまっているという問題点があった。
さらに、上位のCPUがRI SCタイプのもので、1
クロツクで1命令を実行するとき、プロセッサ側バスの
データバスは1系統でも間に合うが、複数の演算器を有
し、1クロツクで同時に幾つかの命令を実行できるよう
なタイプのもの、例えばVL IWやスーパースカラー
型のプロセッサであると、複数の演算器から同時にキャ
ッシュメモリにアクセスが来るとアービトレイション(
調停)が起こり、−度に1つの演算器しかアクセスでき
ないので、他の演算器は待され、やはり処理は停止する
ことになり、これもスルーブツトを低下させる原因とな
っていた。
クロツクで1命令を実行するとき、プロセッサ側バスの
データバスは1系統でも間に合うが、複数の演算器を有
し、1クロツクで同時に幾つかの命令を実行できるよう
なタイプのもの、例えばVL IWやスーパースカラー
型のプロセッサであると、複数の演算器から同時にキャ
ッシュメモリにアクセスが来るとアービトレイション(
調停)が起こり、−度に1つの演算器しかアクセスでき
ないので、他の演算器は待され、やはり処理は停止する
ことになり、これもスルーブツトを低下させる原因とな
っていた。
この発明は、このような従来の問題点に鑑みてなされた
もので、マルチプロセッサシステムにおけるパススヌー
プの時にもCPUを停止させることがなく、かつ多数の
演算器を有するCPUがら同時にキャッシュメモリにア
クセスすることができるようにした多ポートキャッシュ
メモリ制御装置を提供することを目的とする。
もので、マルチプロセッサシステムにおけるパススヌー
プの時にもCPUを停止させることがなく、かつ多数の
演算器を有するCPUがら同時にキャッシュメモリにア
クセスすることができるようにした多ポートキャッシュ
メモリ制御装置を提供することを目的とする。
[発明の構成コ
(課題を解決するための手段)
この発明の多ポートキャッシュメモリ制御装置は、整数
n個のポートを備えた多ポートキャッシュメモリと、n
+1個のポートを備えたTAGメモリと、前記TAGメ
モリの1ポートに外部バスからのアドレス信号を入力し
てアドレスヒツトを調べ、アドレスヒツトがあった時に
中央処理装置(CPU)の動作を停止するように制御し
、前記キャッシュメモリの特定のポートを前記外部バス
に接続するコントロール回路とを備えたものである。
n個のポートを備えた多ポートキャッシュメモリと、n
+1個のポートを備えたTAGメモリと、前記TAGメ
モリの1ポートに外部バスからのアドレス信号を入力し
てアドレスヒツトを調べ、アドレスヒツトがあった時に
中央処理装置(CPU)の動作を停止するように制御し
、前記キャッシュメモリの特定のポートを前記外部バス
に接続するコントロール回路とを備えたものである。
(作用)
この発明の多ポートキャッンユメモリ制御装置では、n
ポートの多ポートキャッシュメモリとn+1ポートのT
AGメモリとを設け、コントロール回路は、通常はnポ
ートを用いてCPUの演算器とデータのやり取りを行な
い、TAGメモリの余分の1ポートはシステムバスにト
ラフィックが発生した時にアドレスの比較を行ない、モ
ジアドレスヒツトがあった時にはこのポートを介してC
PUを停止させ、キャッシュメモリの1ポートを空けさ
せる。そしてこのキャッシュメモリの空けさせられた1
ポートを用いてシステムバスとのデータのやり取りを行
なうようにしている。
ポートの多ポートキャッシュメモリとn+1ポートのT
AGメモリとを設け、コントロール回路は、通常はnポ
ートを用いてCPUの演算器とデータのやり取りを行な
い、TAGメモリの余分の1ポートはシステムバスにト
ラフィックが発生した時にアドレスの比較を行ない、モ
ジアドレスヒツトがあった時にはこのポートを介してC
PUを停止させ、キャッシュメモリの1ポートを空けさ
せる。そしてこのキャッシュメモリの空けさせられた1
ポートを用いてシステムバスとのデータのやり取りを行
なうようにしている。
このようにして、CPU内の複数の演算器での同時並行
演算を可能とすると共に、システムバス上のトラフィッ
クとのアドレスヒツトがない限り、システムバス上にト
ラフィックが発生していてもCPUを停止させることな
くその演算処理動作を続行させるのである。
演算を可能とすると共に、システムバス上のトラフィッ
クとのアドレスヒツトがない限り、システムバス上にト
ラフィックが発生していてもCPUを停止させることな
くその演算処理動作を続行させるのである。
(実施例)
以下、この発明の実施例を図に基づいて詳説する。
第1図はこの発明の一実施例の回路ブロック図を示して
いる。中央演算処理装置1 (CPU) 11にはn個
の演算器ALU 1〜ALUnが備えられている。多ポ
ートキャッシュメモリ12はCPU11に対応してn個
のポートP1〜Pnを備えている。TAGメそり13は
アドレス信号用のn個のアドレスポートADI〜ADn
に加えてさらに、システムバススヌープ用の1個のアド
レスポートSADを備え、全部でn+1個のポートを備
えている。
いる。中央演算処理装置1 (CPU) 11にはn個
の演算器ALU 1〜ALUnが備えられている。多ポ
ートキャッシュメモリ12はCPU11に対応してn個
のポートP1〜Pnを備えている。TAGメそり13は
アドレス信号用のn個のアドレスポートADI〜ADn
に加えてさらに、システムバススヌープ用の1個のアド
レスポートSADを備え、全部でn+1個のポートを備
えている。
コントロール回路14はこれらの多ポートキャッシュメ
モリ12とTAGメモリ13の動作制御を行なう回路で
ある。
モリ12とTAGメモリ13の動作制御を行なう回路で
ある。
多ポートキャッシュメモリ12とTAGメモリ13はC
PUIIに対してプロセッサ側バス15とプロセッサ側
バスインターフェース(1/F)16を介して接続され
、CPUIIの各演算器ALUI〜ALUnがそれぞれ
独立に発生するデータアドレスを多ポートキャッシュメ
モリ12のn個のポートP1〜PnおよびTAGメモリ
13のn個のポートADI〜ADnとやり取りできるよ
うにしである。
PUIIに対してプロセッサ側バス15とプロセッサ側
バスインターフェース(1/F)16を介して接続され
、CPUIIの各演算器ALUI〜ALUnがそれぞれ
独立に発生するデータアドレスを多ポートキャッシュメ
モリ12のn個のポートP1〜PnおよびTAGメモリ
13のn個のポートADI〜ADnとやり取りできるよ
うにしである。
また多ポートキャッシュメモリ12とTAGメモリ13
はシステムバス17およびシステムバスインターフェー
ス(1/F)18を介して主記憶袋[19およびその他
の多ポートキャッシュメモリなどのデバイスと接続され
ている。
はシステムバス17およびシステムバスインターフェー
ス(1/F)18を介して主記憶袋[19およびその他
の多ポートキャッシュメモリなどのデバイスと接続され
ている。
次に、上記の構成の多ポートキャッシュメモリ制御装置
の動作について説明する。
の動作について説明する。
通常は多ポートキャッシュメモリ12のn個のポートP
1〜Pnにそれぞれ独立にn個の演算器ALLTI〜A
LUnがアクセスし、キャッシュメモリ12に格納した
データに対してリード/ライトしている。
1〜Pnにそれぞれ独立にn個の演算器ALLTI〜A
LUnがアクセスし、キャッシュメモリ12に格納した
データに対してリード/ライトしている。
ここでいま、他の多ポートキャッシュメモリのコントロ
ール回路14がキャッシュミスのためにシステムバス1
7上にトラフィックを発生させたとすると、第1図に示
すTAGメモリ13はそのシステムバススヌーブ用のア
ドレスポートSADを通じてそのデータのアドレスを取
り込み、自分のキャッシュメモリ12に格納されている
データのアドレスと比較する。そしてもし、そのトラフ
ィックが自分のキャッシュメモリ12内にアドレスの一
致するものがあると判明すれば、CPU11にウェイト
(wait)をかけ、すべてのポートP1〜Pnの処理
を停止し、nポートの内の1ポート、ここではポートP
1の入力をプロセッサ側バスからシステムバス17側に
切り換え、そのポートP1からアクセスを行ない、該当
するアドレスに新たなデータをライトし、あるいはこの
アドレスのデータをリードしてシステムバス17から主
記憶装置19の該当するアドレスに書き込む。
ール回路14がキャッシュミスのためにシステムバス1
7上にトラフィックを発生させたとすると、第1図に示
すTAGメモリ13はそのシステムバススヌーブ用のア
ドレスポートSADを通じてそのデータのアドレスを取
り込み、自分のキャッシュメモリ12に格納されている
データのアドレスと比較する。そしてもし、そのトラフ
ィックが自分のキャッシュメモリ12内にアドレスの一
致するものがあると判明すれば、CPU11にウェイト
(wait)をかけ、すべてのポートP1〜Pnの処理
を停止し、nポートの内の1ポート、ここではポートP
1の入力をプロセッサ側バスからシステムバス17側に
切り換え、そのポートP1からアクセスを行ない、該当
するアドレスに新たなデータをライトし、あるいはこの
アドレスのデータをリードしてシステムバス17から主
記憶装置19の該当するアドレスに書き込む。
なおこのような一連の制御は、コントロール回路14に
より制御される。
より制御される。
第2図は多ポートキャッシュメモリ12とTAGメモリ
13とのさらに詳しい回路構成を示しており、20は多
ポートキャッシュメモリ12内のセルアレーであり、そ
のRow方向はワード、Co l umn方向はビット
を表わしている。21はセレクタ(S E L)であり
、ポートP1と対応するアドレスボー)ADIのTAG
ヒツトによるワード線とスヌープアドレスポートSAD
のTAGヒツトによるワード線との切り換え選択を行な
う。
13とのさらに詳しい回路構成を示しており、20は多
ポートキャッシュメモリ12内のセルアレーであり、そ
のRow方向はワード、Co l umn方向はビット
を表わしている。21はセレクタ(S E L)であり
、ポートP1と対応するアドレスボー)ADIのTAG
ヒツトによるワード線とスヌープアドレスポートSAD
のTAGヒツトによるワード線との切り換え選択を行な
う。
22もセレクタ(S E L)であり、あらかじめ設定
されているポートP1において、プロセッサ側のデータ
とシステムバス側のデータとの入力を切り換え選択する
ものであり、スヌープヒットした時にはシステムバス側
の入力データを選択し、それ以外ではプロセッサ側の入
力データを選択する動作を行なう。
されているポートP1において、プロセッサ側のデータ
とシステムバス側のデータとの入力を切り換え選択する
ものであり、スヌープヒットした時にはシステムバス側
の入力データを選択し、それ以外ではプロセッサ側の入
力データを選択する動作を行なう。
さらに24もセレクタ(S E L)であり、このセレ
クタ24は、TAGメモリ13からシステムバス17へ
は一度に1つのデータしか出力することができないので
、複数のポートで同時にキャッシュミスが起きた場合に
コントロール回路14でスケジューリングしていずれか
1つのポートをシステムバス17に接続する働きをする
。
クタ24は、TAGメモリ13からシステムバス17へ
は一度に1つのデータしか出力することができないので
、複数のポートで同時にキャッシュミスが起きた場合に
コントロール回路14でスケジューリングしていずれか
1つのポートをシステムバス17に接続する働きをする
。
このような構成の多ポートキャッシュメモリ制御装置で
は、セレクタ21がADI側を選択していて、TAGメ
モ913のアドレスポートADI〜ADnが、キャッシ
ュメモリ12の各ポートP1〜PnとCPUIIの各演
算器ALU1〜ALUnとの間でのデータのリード/ラ
イトのアドレス管理を行ない、同時にTAGメそり13
はシステムバス17をスヌープしている。
は、セレクタ21がADI側を選択していて、TAGメ
モ913のアドレスポートADI〜ADnが、キャッシ
ュメモリ12の各ポートP1〜PnとCPUIIの各演
算器ALU1〜ALUnとの間でのデータのリード/ラ
イトのアドレス管理を行ない、同時にTAGメそり13
はシステムバス17をスヌープしている。
そしてTAGメモリ13にスヌープヒットがあると、セ
レクタ21はスヌープアドレスポートSAD側に切り換
わり、スヌープヒットしたアドレスデータをシステムバ
ス17から取り込み、キャッシュメモリ12に入力する
。一方、セレクタ22はポートP1をプロセッサ側バス
15からシステムバス17側に接続を切り換え、システ
ムバス17を介して該当するアドレスのデータを主記憶
装置19から呼び出して自分のキャッシュメモリ12の
該当するアドレスに入力し格納する。そしてこの時には
、コントロール回路14は自分のCPUIIの動作を一
時停止させる。
レクタ21はスヌープアドレスポートSAD側に切り換
わり、スヌープヒットしたアドレスデータをシステムバ
ス17から取り込み、キャッシュメモリ12に入力する
。一方、セレクタ22はポートP1をプロセッサ側バス
15からシステムバス17側に接続を切り換え、システ
ムバス17を介して該当するアドレスのデータを主記憶
装置19から呼び出して自分のキャッシュメモリ12の
該当するアドレスに入力し格納する。そしてこの時には
、コントロール回路14は自分のCPUIIの動作を一
時停止させる。
また他のキャッシュメモリにおいてキャッシュミスが発
生した時にそのデータのアドレスに対して、自分のとこ
ろのTAGメモリ13にスヌープヒットした場合には、
セレクタ23はキャッシュメモリ12のポートP1〜P
nの内の1つを選択してそのポートからスヌーブヒット
のあったアドレスのデータをシステムバス17側に出力
し、主記憶装置19の該当するアドレスのデータを最新
のものに更新する。
生した時にそのデータのアドレスに対して、自分のとこ
ろのTAGメモリ13にスヌープヒットした場合には、
セレクタ23はキャッシュメモリ12のポートP1〜P
nの内の1つを選択してそのポートからスヌーブヒット
のあったアドレスのデータをシステムバス17側に出力
し、主記憶装置19の該当するアドレスのデータを最新
のものに更新する。
このようにしてこの実施例では、自分のキャッシュメモ
リに格納されているデータについてスヌーブヒットがあ
った場合にのみCPUの動作を停止させ、他のキャッシ
ュメモリ間で処理できて、自分のキャッシュメモリの格
納データには同等影響が及ばない場合にはCPUの動作
を停止しないで続行させるようにしているので、次に説
明するように、従来のキャッシュメモリ制御装置に対し
てスルーブツトを向上させることができるのである。
リに格納されているデータについてスヌーブヒットがあ
った場合にのみCPUの動作を停止させ、他のキャッシ
ュメモリ間で処理できて、自分のキャッシュメモリの格
納データには同等影響が及ばない場合にはCPUの動作
を停止しないで続行させるようにしているので、次に説
明するように、従来のキャッシュメモリ制御装置に対し
てスルーブツトを向上させることができるのである。
いまCPUがr個あり、その各々のデータキャッシュア
クセスの割合をα(0<αく1)、アクセスしたときの
キャッシュのヒツト率をβ(0<βく1)、さらに命令
の実行を1としたときのシステムバスのアクセスタイム
をmと仮定すると、従来例のシステムでは、他のCPU
が主記憶装置にアクセスし、CPUを停止しなければな
らない時間Wは、1サイクルに対して、 w w” a・ (1−β)・q・ (r−1)となる
。
クセスの割合をα(0<αく1)、アクセスしたときの
キャッシュのヒツト率をβ(0<βく1)、さらに命令
の実行を1としたときのシステムバスのアクセスタイム
をmと仮定すると、従来例のシステムでは、他のCPU
が主記憶装置にアクセスし、CPUを停止しなければな
らない時間Wは、1サイクルに対して、 w w” a・ (1−β)・q・ (r−1)となる
。
そこで、r−4,α−屹 2.β−0,98゜mm 5
とすると、 w−0,06(6%) となる。そしてヒツト率βが0.9に下がると、W−0
,3(30%) となる。
とすると、 w−0,06(6%) となる。そしてヒツト率βが0.9に下がると、W−0
,3(30%) となる。
この値は、スルーブツトなどが起こるとさらに低下する
。
。
ところがこの発明によれば、他のCPUが自分のキャッ
シュメモリのデータとは無関係なアドレスのデータをア
クセスしている場合にはスヌーブヒットせずに処理を継
続するようにしているためにCPUを停止させなければ
ならない時間を短くすることができ、その分、スルーブ
ツトの向上が図れるのである。
シュメモリのデータとは無関係なアドレスのデータをア
クセスしている場合にはスヌーブヒットせずに処理を継
続するようにしているためにCPUを停止させなければ
ならない時間を短くすることができ、その分、スルーブ
ツトの向上が図れるのである。
さらに、■LIW型やスーパースカラー型のマルチプロ
セッサのように複数の演算器を持ち、複数の命令を同時
に実行できるようなシステムに対してこの発明の技術を
利用すれば、データキャッシュが多ポートであるために
1ポートの場合に生じていた同時アクセスに対するアー
ビトレイションのための損失をなくすことができ、さら
に性能の向上が図れることになる。
セッサのように複数の演算器を持ち、複数の命令を同時
に実行できるようなシステムに対してこの発明の技術を
利用すれば、データキャッシュが多ポートであるために
1ポートの場合に生じていた同時アクセスに対するアー
ビトレイションのための損失をなくすことができ、さら
に性能の向上が図れることになる。
[発明の効果]
以上のようにこの発明によれば、n個のポートを持つ多
ポートキャッシュメモリに対してn+1個のポートを持
つTAGメモリを用い、スヌーブヒットがあった時にの
み余分の1個のアドレスポートを用いてスヌーブヒット
のあったアドレスを入力し、該当するアドレスに対して
キャッシュメモリの任意の1つのポートによりシステム
バスとの間でデータのやり取りを行なうようにしている
ので、従来のようにシステムバスにトラフィックが発生
すると必ずすべてのCPUを停止させるものと比べて各
CPUの停止時間を少なくすることができ、スループッ
トの向上が図れる。また、多ポートキャッシュメモリで
あるために、特にマルチプロセッサシステムで複数の演
算器を備えたCPUに接続して使用する場合、複数の演
算器から同時にキャッシュメモリにアクセスがあっても
従来のようにアービトレイションを行なわなくても済み
、さらに演算時間の向上が図れる。
ポートキャッシュメモリに対してn+1個のポートを持
つTAGメモリを用い、スヌーブヒットがあった時にの
み余分の1個のアドレスポートを用いてスヌーブヒット
のあったアドレスを入力し、該当するアドレスに対して
キャッシュメモリの任意の1つのポートによりシステム
バスとの間でデータのやり取りを行なうようにしている
ので、従来のようにシステムバスにトラフィックが発生
すると必ずすべてのCPUを停止させるものと比べて各
CPUの停止時間を少なくすることができ、スループッ
トの向上が図れる。また、多ポートキャッシュメモリで
あるために、特にマルチプロセッサシステムで複数の演
算器を備えたCPUに接続して使用する場合、複数の演
算器から同時にキャッシュメモリにアクセスがあっても
従来のようにアービトレイションを行なわなくても済み
、さらに演算時間の向上が図れる。
第1図はこの発明の一実施例回路ブロック図、第2図は
上記の実施例のキャッシュメモリ、TAGメモリ部分の
さらに詳しい回路構成を示す回路ブロック図、第3図は
一般的なマルチプロセッサシステムを示すブロック図、
第4図は従来例の回路ブロック図である。 11・・・CPU 12・・・多ポートキャッシュメモリ 13・・・TAGメモリ 14・・・コントロール回路 15・・・プロセッサ側バス 16・・・プロセッサ側バスインターフェース17・・
・システムバス 18・・・システムバスインターフェース19・・・主
記憶装置
上記の実施例のキャッシュメモリ、TAGメモリ部分の
さらに詳しい回路構成を示す回路ブロック図、第3図は
一般的なマルチプロセッサシステムを示すブロック図、
第4図は従来例の回路ブロック図である。 11・・・CPU 12・・・多ポートキャッシュメモリ 13・・・TAGメモリ 14・・・コントロール回路 15・・・プロセッサ側バス 16・・・プロセッサ側バスインターフェース17・・
・システムバス 18・・・システムバスインターフェース19・・・主
記憶装置
Claims (1)
- 【特許請求の範囲】 整数n個のポートを備えた多ポートキャッシュメモリと
、 n+1個のポートを備えたTAGメモリと、前記TAG
メモリの1ポートに外部バスからのアドレス信号を入力
してアドレスヒットを調べ、アドレスヒットがあった時
に中央処理装置(CPU)の動作を停止するように制御
し、前記キャッシュメモリの特定のポートを前記外部バ
スに接続するコントロール回路とを備えて成る多ポート
キャッシュメモリ制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013536A JPH03219345A (ja) | 1990-01-25 | 1990-01-25 | 多ポートキャッシュメモリ制御装置 |
US07/645,642 US5228135A (en) | 1990-01-25 | 1991-01-25 | Multiport cache memory control unit including a tag memory having plural address ports and a snoop address part |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013536A JPH03219345A (ja) | 1990-01-25 | 1990-01-25 | 多ポートキャッシュメモリ制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH03219345A true JPH03219345A (ja) | 1991-09-26 |
Family
ID=11835878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013536A Pending JPH03219345A (ja) | 1990-01-25 | 1990-01-25 | 多ポートキャッシュメモリ制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5228135A (ja) |
JP (1) | JPH03219345A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046514B2 (en) * | 2000-11-21 | 2011-10-25 | Aspex Technology Limited | Broadcasting data across a bus in which data transmission can be delayed if a snooping device is not ready to receive |
Families Citing this family (38)
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 |
US5434989A (en) * | 1991-02-19 | 1995-07-18 | Matsushita Electric Industrial Co., Ltd. | Cache memory for efficient access with address selectors |
JP3451099B2 (ja) | 1991-12-06 | 2003-09-29 | 株式会社日立製作所 | 外部記憶サブシステム |
EP0553743A1 (en) * | 1992-01-31 | 1993-08-04 | Motorola, Inc. | A cache controller |
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 |
US5696935A (en) * | 1992-07-16 | 1997-12-09 | Intel Corporation | Multiported cache and systems |
US5353415A (en) * | 1992-10-02 | 1994-10-04 | Compaq Computer Corporation | Method and apparatus for concurrency of bus operations |
US5463753A (en) * | 1992-10-02 | 1995-10-31 | Compaq Computer Corp. | Method and apparatus for reducing non-snoop window of a cache controller by delaying host bus grant signal to the cache controller |
US5513335A (en) * | 1992-11-02 | 1996-04-30 | Sgs-Thomson Microelectronics, Inc. | Cache tag memory having first and second single-port arrays and a dual-port array |
US5414824A (en) * | 1993-06-30 | 1995-05-09 | Intel Corporation | Apparatus and method for accessing a split line in a high speed cache |
US5526512A (en) * | 1993-09-20 | 1996-06-11 | International Business Machines Corporation | Dynamic management of snoop granularity for a coherent asynchronous DMA cache |
US5680572A (en) * | 1994-02-28 | 1997-10-21 | Intel Corporation | Cache memory system having data and tag arrays and multi-purpose buffer assembly with multiple line buffers |
US5893921A (en) * | 1995-02-10 | 1999-04-13 | International Business Machines Corporation | Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller |
JPH08263376A (ja) * | 1995-03-22 | 1996-10-11 | Nec Ibaraki Ltd | キャッシュ制御装置 |
US5652859A (en) * | 1995-08-17 | 1997-07-29 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for handling snoops in multiprocessor caches having internal buffer queues |
US5659710A (en) * | 1995-11-29 | 1997-08-19 | International Business Machines Corporation | Cache coherency method and system employing serially encoded snoop responses |
US5809537A (en) * | 1995-12-08 | 1998-09-15 | International Business Machines Corp. | Method and system for simultaneous processing of snoop and cache operations |
US5825788A (en) | 1996-05-20 | 1998-10-20 | Micron Technology Inc. | Data ordering for cache data transfer |
WO1998014951A1 (en) * | 1996-09-30 | 1998-04-09 | Sun Microsystems, Inc. | Computer caching methods and apparatus |
US5781924A (en) * | 1996-09-30 | 1998-07-14 | Sun Microsystems, Inc. | Computer caching methods and apparatus |
US6009481A (en) * | 1996-09-30 | 1999-12-28 | Emc Corporation | Mass storage system using internal system-level mirroring |
US5991819A (en) * | 1996-12-03 | 1999-11-23 | Intel Corporation | Dual-ported memory controller which maintains cache coherency using a memory line status table |
US5862154A (en) | 1997-01-03 | 1999-01-19 | Micron Technology, Inc. | Variable bit width cache memory architecture |
US6076147A (en) * | 1997-06-24 | 2000-06-13 | Sun Microsystems, Inc. | Non-inclusive cache system using pipelined snoop bus |
US6061766A (en) * | 1997-06-24 | 2000-05-09 | Sun Microsystems, Inc. | Non-inclusive cache method using pipelined snoop bus |
US6216218B1 (en) | 1997-11-03 | 2001-04-10 | Donald L. Sollars | Processor having a datapath and control logic constituted with basis execution blocks |
US6067601A (en) * | 1997-11-03 | 2000-05-23 | Brecis Communications | Cache memory based instruction execution |
US6549984B1 (en) * | 1997-12-17 | 2003-04-15 | Intel Corporation | Multi-bus access cache |
US6202128B1 (en) * | 1998-03-11 | 2001-03-13 | International Business Machines Corporation | Method and system for pre-fetch cache interrogation using snoop port |
US6094605A (en) * | 1998-07-06 | 2000-07-25 | Storage Technology Corporation | Virtual automated cartridge system |
US6778444B1 (en) * | 2000-08-18 | 2004-08-17 | Intel Corporation | Buffer for a split cache line access |
US6928517B1 (en) * | 2000-08-30 | 2005-08-09 | Unisys Corporation | Method for avoiding delays during snoop requests |
US6671781B1 (en) * | 2000-12-08 | 2003-12-30 | Lsi Logic Corporation | Data cache store buffer |
US7017054B2 (en) * | 2002-07-02 | 2006-03-21 | Dell Products L.P. | Mirrored tag snoop optimization |
US7958314B2 (en) * | 2007-12-18 | 2011-06-07 | International Business Machines Corporation | Target computer processor unit (CPU) determination during cache injection using input/output I/O) hub/chipset resources |
US8510509B2 (en) * | 2007-12-18 | 2013-08-13 | International Business Machines Corporation | Data transfer to memory over an input/output (I/O) interconnect |
US9454482B2 (en) * | 2013-06-27 | 2016-09-27 | Apple Inc. | Duplicate tag structure employing single-port tag RAM and dual-port state RAM |
US9824024B1 (en) * | 2014-10-31 | 2017-11-21 | Altera Corporation | Configurable storage blocks with embedded first-in first-out and delay line circuitry |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01145746A (ja) * | 1987-12-01 | 1989-06-07 | Matsushita Electric Ind Co Ltd | キャッシュ・メモリー |
JPH01280860A (ja) * | 1988-05-06 | 1989-11-13 | Hitachi Ltd | マルチポートキヤツシユメモリを有するマルチプロセツサシステム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4493033A (en) * | 1980-04-25 | 1985-01-08 | Data General Corporation | Dual port cache with interleaved read accesses during alternate half-cycles and simultaneous writing |
US4811280A (en) * | 1983-06-16 | 1989-03-07 | American Telephone And Telegraph Company | Dual mode disk controller |
US4604683A (en) * | 1984-12-10 | 1986-08-05 | Advanced Computer Communications | Communication controller using multiported random access memory |
JPS6353678A (ja) * | 1986-08-22 | 1988-03-07 | Hitachi Ltd | ベクトル処理装置 |
JPH0668735B2 (ja) * | 1987-02-09 | 1994-08-31 | 日本電気アイシーマイコンシステム株式会社 | キヤツシユメモリ− |
US4905141A (en) * | 1988-10-25 | 1990-02-27 | International Business Machines Corporation | Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification |
US5014247A (en) * | 1988-12-19 | 1991-05-07 | Advanced Micro Devices, Inc. | System for accessing the same memory location by two different devices |
US5072369A (en) * | 1989-04-07 | 1991-12-10 | Tektronix, Inc. | Interface between buses attached with cached modules providing address space mapped cache coherent memory access with SNOOP hit memory updates |
US5119485A (en) * | 1989-05-15 | 1992-06-02 | Motorola, Inc. | Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation |
-
1990
- 1990-01-25 JP JP2013536A patent/JPH03219345A/ja active Pending
-
1991
- 1991-01-25 US US07/645,642 patent/US5228135A/en not_active Expired - Lifetime
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01145746A (ja) * | 1987-12-01 | 1989-06-07 | Matsushita Electric Ind Co Ltd | キャッシュ・メモリー |
JPH01280860A (ja) * | 1988-05-06 | 1989-11-13 | Hitachi Ltd | マルチポートキヤツシユメモリを有するマルチプロセツサシステム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8046514B2 (en) * | 2000-11-21 | 2011-10-25 | Aspex Technology Limited | Broadcasting data across a bus in which data transmission can be delayed if a snooping device is not ready to receive |
Also Published As
Publication number | Publication date |
---|---|
US5228135A (en) | 1993-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH03219345A (ja) | 多ポートキャッシュメモリ制御装置 | |
US7469321B2 (en) | Software process migration between coherency regions without cache purges | |
KR100286962B1 (ko) | 캐쉬 제어기 | |
US5056002A (en) | Cache memory for use with multiprocessor systems | |
US5895487A (en) | Integrated processing and L2 DRAM cache | |
US5696937A (en) | Cache controller utilizing a state machine for controlling invalidations in a network with dual system busses | |
US20040268044A1 (en) | Multiprocessor system with dynamic cache coherency regions | |
CN101925881A (zh) | 多处理器系统以及多处理器系统的同步方法 | |
US4835684A (en) | Microcomputer capable of transferring data from one location to another within a memory without an intermediary data bus | |
US6101589A (en) | High performance shared cache | |
JP2825906B2 (ja) | 計算機システム | |
JPH01280860A (ja) | マルチポートキヤツシユメモリを有するマルチプロセツサシステム | |
EP1030243B1 (en) | Optimized hardware cleaning function for virtual index virtual tag data cache | |
JPH04102948A (ja) | データ処理システム及び方法 | |
JP2523814B2 (ja) | ム―ブアウト・システム | |
US5652915A (en) | System for controlling mode of operation of a data cache based on storing the DMA state of blocks by setting the DMA state to stall | |
US20070168646A1 (en) | Data exchange between cooperating processors | |
JPH0528038A (ja) | キヤツシユメモリ制御方式 | |
JPH1139214A (ja) | マルチプロセッサシステムの共有メモリ制御方式 | |
JPH0793215A (ja) | 半導体記憶装置 | |
JP3299663B2 (ja) | 演算装置 | |
JPS63155254A (ja) | 情報処理装置 | |
JPH01145746A (ja) | キャッシュ・メモリー | |
JPS6267648A (ja) | 排他制御命令処理方式 | |
JP2001175533A (ja) | プロセッサ |