JPH04102146A - 高性能キャッシュ - Google Patents

高性能キャッシュ

Info

Publication number
JPH04102146A
JPH04102146A JP2405246A JP40524690A JPH04102146A JP H04102146 A JPH04102146 A JP H04102146A JP 2405246 A JP2405246 A JP 2405246A JP 40524690 A JP40524690 A JP 40524690A JP H04102146 A JPH04102146 A JP H04102146A
Authority
JP
Japan
Prior art keywords
cache
data
block
frame buffer
tag
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
Application number
JP2405246A
Other languages
English (en)
Other versions
JPH0789342B2 (ja
Inventor
B Tucker Charles
チャールズ ピー タッカー
Gerard Conroy David
ディヴィッド ジェラード コンロイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Digital Equipment Corp
Original Assignee
Digital Equipment Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Digital Equipment Corp filed Critical Digital Equipment Corp
Publication of JPH04102146A publication Critical patent/JPH04102146A/ja
Publication of JPH0789342B2 publication Critical patent/JPH0789342B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
[0001]
【産業上の利用分野】
本発明は一般に、ディスプレイフレームバッファ及びキ
ャッシュメモリを含むマルチプロセッサコンピュータシ
ステムに関する。更に言えば、フレームバッファ内に記
憶されたイメージデータが更新された場合に「ライトバ
ック」キャッシュメモリが使用されるのであるカミそれ
を使用することによって引き起こされるような問題を克
服する方法及びシステムに関する。 [0002]
【従来の技術】
図1を参照すれば、高性能中央処理装置(CPU) 1
02.104.106を含んでいるシステム100は常
に、各CPUのため、キャッシュメモリ110.112
.114を提供している。このシステムはまた、入力/
出力プロセッサ118というような他の型のプロセッサ
をも含む。キャッシュメモリは、CPUによってなされ
た全ての参照がメインメモリ120への参照を必要とし
ないでほとんどのCPUメモリ参照を満足させることに
より、CPU性能を増加させる。キャッシュのアクセス
時間(例えば、10ナノ秒)は、メインメモリへのアク
セス時間(例えば400ナノ秒)よりいつでも、とても
小さなものであるため、性能が増大するのである。 [0003] 多数のプロセッサ102〜106及びそれらのキャッシ
ュ112〜116が共通メモリバス122を共有してい
るマルチプロセッサにおいて、それらのキャッシュは、
CPUにより発生したメモリトラフィックからバスを保
護するような働きもする。 キャッシュブロックが、他のアドレスのために必要とさ
れた場合にのみ、キャッシュブロックをメイン記憶12
0に戻す「ライトバック」計画は、パストラフィックを
減少させる特別実効的な方法である。 [0004] 一般にビデオラムとして知られている2重ポートダイナ
ミックメモリの利用により、ディスプレイ画素マツプ(
ビットマツプとしても知られる)を1つあるいはそれ以
上のCPUの物理アドレス空間内に配置するフレームバ
ラフナ124.126を構成することが容易になった。 そのようなフレームバッファを有するビデオラムは、ラ
スタ走査モニタ130あるいは132をリフレッシュす
るために使用されるシリアルポートと、ビデオラム内に
記憶されたイメージデータを更新するために使用される
平行ポートを有している。フレームバッファの内容を更
新するのにCPUを使用すると、特定ハードウェアの使
用をかなり助けることになり、フレームバッファで計算
されそして記憶される、イメージへの更新の割合は、現
在利用可能な高性能なCPUを使用することによりかな
り大きなものとなる。 [0005] ライトパックキャッシュがメモリ・マツプフレームバッ
ファと共に使用されると、3つの問題が起こる。 [0006] フレームバッファと共にライト・バックキャッシュを使
用することに伴う第1の問題は、いくつかの他のデータ
ブロックを保持するために、フレームバッファデータを
保持しているキャッシュブロックが必要とされるまでは
、キャッシュ中のデータ値がフレームバッファに書き戻
されることはないということである。このように、CP
Uによって画素マツプが変形させられた後の任意の時間
長のために、ディスプレイ上のイメージへの変化が遅延
するかもしれないということである。他の言葉で言えば
、予期できない時間間隔のために、計算されたイメージ
が、表示されたイメージに反映されないかもしれない、
ということである。 [0007] 第2の問題は、キャッシュは参照されたアドレスを含ん
でいない時は常に、CPUにより出された動作がライト
動作であるとしても、メインメモリからの全情報ブロッ
クを頻繁にフッチしてしまうということである。普通の
プログラムのためには、これは良い計画である。なぜな
ら、はとんどの記憶場所はそれらが書き込まれる前に読
まれるからである。フレームバッファにおいては、この
ようなケースにならないことが頻繁にあり、それらの記
憶場所は度々、読まずに書き込まれてしまうのである。 この場合、キャッシュ中にフェッチされたデータはすぐ
に上書きされ、フェッチは無駄な仕事となってしまう。 [0008] 第3の問題は、キャッシュ内で必要とされた他のデータ
ブロックを置き換えるという、フレームバッファデータ
の傾向にある。ダイレクトマツプキャッシュにおいて、
メインメモリ内の特別のアドレスに記憶されたデータは
、キャッシュ内の1つの記憶場所内にだけ記憶され得る
。ダイレクトマツプキャッシュは、頻繁に使用される。 なぜなら、それらは他のキャッシュマツプ機構よりも、
実効的であり且つ低コストだからである。不幸なことに
、ダイレクトマツプキャッシュがフレームバッファと共
に使用された場合には、全システム性能はかなり低下す
る。この理由は、CPUによりフレームバッファへ成さ
れる参照カミ普通のプログラム参照の空間かつ時間的な
位置を示さないかもしれないからである。特にこれは、
連続したフレームバッファ記憶場所が長く繋がったもの
カミ各記憶場所が正確に1回参照されるような場合であ
る。この結果、ダイレクトマツプキャッシュはディスプ
レイデータで満たされることになり、ディスプレイイメ
ージを変形したプログラムのデータ及びプログラムテキ
ストを含むような他のキャッシュ情報を、置き換えてし
まう。こうして置き換わってしまうことにより、多数の
キャッシュがミスをおこし、CPUで見られる平均アク
セスタイムの増加及びシステムの能率を減少をかなり大
きなものとしてしまう。 [0009] 上の問題を解決するための標準的な従来の解決法は、シ
ステムアドレス空間のキャッシュされない部分にあるよ
うなフレームバッファを、動作させるというものである
。このことは、そのようなシステムは、フレームバッフ
ァ(つまりイメージ)データの処理のためのキャッシュ
の利点を受けられない、ということを意味する。 [0010] 本発明は上に掲げた各3つの問題を解決しようとするも
のである。キャッシュ及びフレームバッファの設計を変
形させることにより、本発明は、従来の装置よりも、′
より実効的なフレームバッファを支持する設計を提供す
る。 [0011]
【発明の概要】
簡単に言えば、本発明はマルチコンピュータシステムで
あり、各々がダイレクトマツプキャッシュメモリ、メイ
ンメモリ、及び1つまたはそれ以上のバッファを有して
いる多数のCPUを含んでいる。個々のキャッシュは普
通、ライトバックモードで動作している。これにより更
新データは、データの新しいブロックを記憶するために
キャッシュブロックが再配置される時にだけ、メインメ
モリ内に書き戻される。キャッシュは、キャッシュに記
憶された各データのブロックのためのタグを含んでいる
。各タグは、コンピュータアドレス空間のどの部分が、
対応するキャッシュブロック内に記憶されているかを示
しており、記憶されたデータのブロックが変形された時
に、ブロックのためのタグがイネイブル共有フラグを有
している場合には、それはすぐメインメモリに書き込ま
れる。 [0012] イメージデータのブロックのためにライトスルーモード
でキャッシュ動作を行に、システムはイネイブル共有フ
ラグをキャッシュに記憶する。更に、キャッシュ内の回
路は、CPUがいつデータイメージの全ブロックをフレ
ームバッファ内のアドレスに書き込んでいるかを検出し
、そしてキャッシュは、キャッシュ内のイメージデータ
に記憶することなく、イメージデータのブロックを、フ
レームバッファに直接書き込むのである。最後に、キャ
ッシュ内のアドレス回路により、フレームバッファから
のイメージデータは、キャッシュの所定の断片にだけ記
憶される。それゆえ、キャッシュ内に記憶された、イメ
ージデータにより置き換えられるかもしれない他のデー
タの量が、制限されるのである。 [0013]
【実施例】 本発明を述べる前に図1及び図2を参照し、好ましい実
施例で作動されるマルチプロセッサコンピュータシステ
ムの基本動作を述べる。 [0014] システム100のCP U2O5,104及び106は
、キャッシュメモリを利用するものであり、重なり合っ
たアドレス空間を有する。それ故、メモリの特定のブロ
ックを、異なるプロセッサのキャッシュ内に同時に存在
するものへ複写をすることが可能なのである。「キャッ
シュ連合(cache coherence) J手段
を保持しているということは、次のことを意味する。即
ち、1つのプロセッサによって共有メモリ内の特定記憶
場所中にデータが書き込まれた時は常に、各々のキャッ
シュが自分も同一の特定メモリ記憶場所を記憶している
と判断している間、その他のプロセッサのキャッシュは
「キャラシュスヌープ(cache 5noop)J動
作を実行するということである。もし同一の特定メモリ
記憶場所を記憶している場合には、スヌープを行ってい
るキャッシュは更新し、もしそうでなければ、そのキャ
ッシュ配列内の更新されたブロックをフラグする。従来
技術の多くの論文には、キャッシュ連合の様々な様相が
述べられている。例えば、C,P、 Thacher、
 L、C,Stewart、E、H,Satterth
waite、 Jr、  による、Vol、 37 N
o、 8の「Firely: A Multiproc
essor WorkstationJ IEEE T
ransacrions on Comoputers
のpp、 909〜920(1988年8月)と、Ch
arles P、 Thackerによる、New F
rontiers in Computer Arch
itecture Conference Proce
eding、 C1ticorp/TTI(1986年
3月)の[Chashe Strategies f。 r Shared−Memory Multiproc
essorJ 、それら両方が引用され上の参考として
組み入れられている。 [0015] 共有メモリバス122の正確な動作は、本発明とは無関
係であるが、その動作の背景にあるいくつかの情報は、
好ましい実施例を理解するのに有用である。より好まし
い実施例において共有メモリバス122は、アドレス信
号を送信したりコマンドを書き込んだり/読み出しだす
するためにも使用される64ビツト2進データバス14
2、共有信号ライン144、ダーティ−信号ライン14
6.3つのクロックライン148、アービトレイション
バス150.2つのパリティライン152及び、エラー
訂正コードを送信するための14の2進ライン154を
含む。 [0016] アービトレイションバス150は、バスを使用するため
の同時リクエストを調停するために使用される。クロッ
クライン148は、メモリバス122上へのデータ送信
のタイミングを制御するために使用され、そしてパリテ
ィ及びエラー訂正コードライン152及び154は、標
準パリティ及びエラー訂正コード信号を送信するために
使用される。 [0017] 本発明で使用するのは、データバス142及び共有信号
ライン144だけである。 64ビツト2進データ/アドレスライン142は時分割
され、そうしてアドレス及びコマンド信号は、遅れた時
間間隔の間に同一のライン上へ送信される。CPUがキ
ャッシュへアクセスしてミスが起きた場合、そのキャッ
シュはリードコマンドリの代わりにリクエストされたデ
ータを送信するのである。 [0018] ことは、 以下の記述で明かとなるであろう。 [0019] こでXというのは正数のことである) に等しい。 より好ましい実施例において、 のアドレスビットがブロック222内の特定のワードを
選択するために要求されるある。 [00203 を識別する。更に、各タグ232は、各ブロック222
のために2つの状態フラグを含んでいる。それはブロッ
ク222が有効データを含んでいるかどうかを示す「有
効フラグ」236と、同一のデータブロックがシステム
内の他のいづれかのプロセッサのキャッシュに記憶され
ているかどうかを示す「共有フラグ」238である。 [002月 従来技術におけるキャッシュメモリを含むキャッシュメ
モリ内の共有フラグは以下のような動作をする。いづれ
か1つのキャッシュ、例えば図1のキャッシュが、メイ
ンメモリからデータブロックにフェッチした時に、他の
いづれかのキャッシュ、例えばキャッシュ114にもそ
れと同一のブロックデータが記憶されている場合には、
そのキャッシュはイネイブル共有信号を共有ライン14
4上に主張するので、フェッチをしているキャッシュは
他のキャッシュもそのブロックを保持しているというこ
とを知るであろう。その結果、それら両方のキャッシュ
112及び114は、そのブロックのためのタグ232
中の共有フラグ238をセットするであろう。さらに言
えば、特別のブロックのために共有フラグ238が一度
セットされると、データの共有ブロックが、一方のデー
タブロックとともに他のキャッシュに上書きされ、この
場合、データのブロックはもはや2つのキャッシュによ
って共有されてはいないだろう。しかしながら、前に共
有されたデータブロックをまだ記憶している1つのキャ
ッシュ内では、共有フラグはセットされたままである。 その結果、共有フラグ238は、特別のデータブロック
は一方のプロセッサと共有できるということを示してい
る。 [0022] キャッシュ112が新たなデータをキャッシュブロック
222内に書き込んだ時は常に、キャッシュ論理回路2
66はそのブロックのタグのためにその共有フラグ23
8を点検する。もし共有フラグがイネイブルされていれ
ば、そのキャッシュ論理回路266はライトスルー動作
を実行する。ライトスルー動作というのは、新たなデー
タがブロック内に記憶された後に、キャッシュ論理が、
その全体のブロックを共有メモリバス122を経由して
メインメモリ120(及びそのブロックを共有している
いづれかの他のキャッシュ)に書き込むというものであ
る。 [0023] 別される。 [0024] 記憶場所の1つから、 データを記憶することが出来る。 [0025] の、 と考えることが出来る。 [0026] キャッシュ112の一般の動作は次のようなものである
。CPU102がメモリアクセスを実行する場合、アク
セスされるべきアドレスがアドレスバス202上に主張
され、そうして読み出し/書き込み制御信号が制御バス
206上に主張される。 ライト動作の間、データはまたデータバス204上に主
張される。主張されたアドレスがABCDを表示してい
ると、上で述べたようにキャッシュ制御論理260はタ
グ配列230中へインデックスするために[BClアド
レスビットを使用する。コンパレータ262はインデッ
クスされたタグ232の値をアドレスバス202上の「
A」アドレスビットとを比較する。この比較が実行され
ている間、キャッシュ配列220は、アドレスビット「
BCDJを用いてアクセスされる。もしコンパレータ2
62が、タグ232内に記憶されたアドレス値234と
rAJアドレスビットとが等しく、そしてそのタグの有
効フラグ236がイネイブルされていると判断した場合
、その後、バッファ264がイネイブルされ、キャッシ
ュ配列220と、データバス204内のアドレス指定さ
れた記憶場所間でのデータ流れを許す。即ち、リード動
作の間、キャッシュ化のアドレス指定された記憶場所は
バス204上に主張され、そうしてライト動作の間、バ
ス204上のデータが、特定の記憶場所内でキャッシュ
中に書き込まれる。 [0027] キャッシュ112内のコンパレータ262が「ヒツト」
を見つけなかった場合、キャッシュ論理266はアクセ
スリクエストをその共有メモリバスインターフェイス2
80へ移行され、それはその後その特定された既知数を
メインメモリからフェッチし、そうしてCPUリクエス
トを満足させるのである。より詳しく言えば、インター
フェイス280はメインメモリからアドレスビットl”
”ABCJに対応するデータの全ブロックをフェッチし
・アドレスビット「BC」の値に対応するキャッシュ配
列220のブロック222中にこのデータをロードする
。これにより、キャッシュ112はCPUリクエストを
満足させることが出来る。それと同時に、基準ブロック
222のためのタグエントリ232は、それに記憶され
た新しいデータのソースを示すよう更新される。 [0028] 論理回路266は状態マシーンであり、キャッシュ配列
アクセス回路262及び264の状態を支配する。論理
回路266はまた、CPUがキャッシュに記憶されてい
ないメモリ記憶場所を参照した時に、新しいデータブロ
ックをキャッシュ中にロードするというプロセスをも支
配する。 [0029] 第1の問題は、「ライトバック」キャッシュ内のデータ
値が、フレームバッファデータを保持しているキャッシ
ュブロックが他の幾つかのデータのブロックを保持する
ことを必要とするまでは、フレームバッファにライトバ
ックされないということである。この問題に対する解決
法は、フレームバッファデータを保持しているそれらの
キャッシュブロックのために「ライトスルー」モードで
動作しているキャッシュを作るというものである。ライ
トスルーキャッシュ動作の上の記述を見てください。ラ
イトスルーキャッシュ動作に関する付加情報は、C,P
、 Thacher、 L、C,Stewart、E、
H,Satterthwaite、 Jr、  による
、Vol、 37 No、 8のJFirely: A
 Multiprocessor Workstati
on、J IEEE Transacrions on
 Comoputersのpp、 909〜920 (
1988年8月)と、Charles P、 Thac
kerによる、New Frontiers in C
omputer Architecture Conf
erence Proceeding、 C1tico
rp/TTI(1986年3月)の「Chashe S
trategies for Shared−Memo
ry MultiprocessorJ 、それら両方
が引用され上の参考として組み入れられている。 [0030] 図6を参照すれば、第1の問題に対する解決法は、標準
フレームバッファ124を変形し、そうしてメモリバス
の共有ライン上にイネイブル共有信号を主張するという
ものである。これは以下のように行われる。メモリ読み
出しあるいは書き込み動作が実行されると常に、コンパ
レータ300は、特定アドレスがフレームバッファのビ
デオラム302内に記憶されたアドレス空間の部分に対
応するがどうかをチエツクする。コンパレータは最も重
要なビット、A31が「1」に等しく、残りの最も重要
なビットの所定数が所定アドレス範囲値と比較された場
合にだけ、イネイブルされる。もし特定アドレスがフレ
ームバッファ124内にある場合、イネイブルされた「
フレームバッファアクセス」信号がライン306上に主
張され、ビデオラム302へのアクセスを可能とする。 [0031] ライン306上の「フレームバッファアクセス」信号は
、メモリノ〈スからのリードコマンド信号と論理AND
がなされ、そうしてその結果生じた共有信号が共有信号
ライン144上に主張される。このように、いづれかの
CPUがフレームノ〈・ソファからのデータのブロック
を読んだ場合、負論理共有信号が共有ライン144上に
主張される。 [0032] 図3を参照すれば、フレームバッファデータを受けるキ
ャッシュのキャッシュ論理266は、変形されたフレー
ムバッファ124によって発生された共有信号により、
キャッシュブロックを受けるためのタグ内にイネイブル
共有フラグ238を記憶する。その結果、そのキャッシ
ュ内に記憶された新しいフレームバッファデータ値をC
PU102が変形した場合は常に、ライトスルー動作が
キャッシュ論理266により実行されるであろう。なぜ
ならアクセスキャッシュブロックのための共有フラグが
イネイブルにされるであろうから。 [0033] これは第1の問題を解決する。なぜなら更新されたフレ
ームバッファデータが自動的にフレームバッファに書き
込まれるからであり、ダイレクトマツプフレームバッフ
ァに関連する「ライトバック」キャッシュを使用するこ
とと関係する問題を解決してくれるのである。 [0034] 第2の問題は、キャッシュブロックをキャッシュ制御論
理260により配置するために使用された計画を変える
ことによって解決される。特に、CPUにより参照され
た記憶場所がキャッシュ内に含まれていないときは常に
、ブロックをアドレスに割り当てそして新しい内容をメ
インメモリ120からフェッチするというよりは、その
参照がリード動作であったり、完全なキャッシュブロッ
クよりも小さいライト動作である場合にのみ、それを行
うのである。CPUが完全なブロックのライト動作をす
る場合、キャッシュは参照されたアドレスのためにブロ
ックを配置しその内容をフェッチするということをしな
い。その代わりに、それは、キャッシュをバイパスする
ことによって容易にそのブロックをメモリへ書き込む。 こうすることによりフレームバッファデータの無用なフ
ェッチを避けることになる。 [0035] 完全なブロックは一般に、 (1)キャッシュブロック
のサイズを1つのワードにセットすることにより、ある
いは(2)キャッシュブロックへ書き込まれたデータを
蓄積することが出来るライトバッファを含むようなCP
Uを使用し、単一のライト動作として全ブロックを発す
ることにより、達成される。これら2つの動作のうち、
初めのものはファイアフライシステム内で使用され、そ
してこれら2つの動作のうちの2番目のものは本発明の
好ましい実施例で使用される。 [0036] 図7を参照すれば、CP U 102はライトバッファ
320を含んでおり、そのバッファは、CP U 10
2により書き込まれているデータを記憶し、制御信号W
rite及びFullBLockを使用する単一のライ
ト動作としてデータのフルブロックを発する。キャッシ
ュ制御論理回路266は状態マシーン322と、CPU
の制御バス206上のWri te及びFullBlo
ck信号を論理的にANDするようなANDゲート32
4を含んでいる。Write及びFullBlockの
双方がイネイブルされた時は、CPUはブタの完全なブ
ロック(つまり8ワード)を書き込んでいる。ANDゲ
ートの出力はバスインターフェイス280に送られ、特
定のアドレスへデータを送信するようインターフェイス
280に命令する。ANDゲートの出力はインバータ3
26により逆にされ、その結果生じた信号がキャッシュ
のデータバッファ264をディスエイプルするのに用い
られ、そうしてCPUからのデータがキャシュブロック
配列220中に書き込まれないようにするであろう。さ
らに、ANDゲート324からの出力は、キャッシュ論
理状態マシーン322に送信され、状態マシーンはその
出力によってバスインターフェイス280へ送信された
信号以外の全データライト動作を無視するのである。 [0037] 第3の問題は、フレームバッファデータに、キャッシュ
120の小さな部分だけを占めることを許可するように
することにより解決される。キャッシュのこのエリアは
ディスプレイ情報で満たされるが、キャッシュの大部分
はフレームバッファへと作られたアクセスにより妨げら
れることはない。これにより、フレームバッファデータ
を有するキャッシュの無駄及び、上で述べた増加するキ
ャッシュのミスの割合を避けることになる。 [0038] 発明のより好ましい実施例においては、ダイレクトマッ
プキャッシュカτ使用される。このキャッシュのための
アドレスビットの配置が図5に示されており、これは、
各々がデータの8ワードを記憶しているような4096
ブロツクを有するキャッシュに対応する。 [0039] 図3、図4及び図5を参照すれば、フレームバッファデ
ータが記憶されることが可能であるキャッシュの、フラ
クションを制限するため、我々はフレームノ\ツファの
ためのアドレス空間の領域を用意しておき、キャッシュ
を参照した時に直接これらのアドレスを判断する。より
好まじり)実施例におり)で、フレームノく・ノファデ
ータは、キャッシュの1/16だけを占めることを許さ
れてし)る。フレームノ〈ッファのためのA31=[I
Jにより示されたアドレス空間の半分を用意してし)る
ことに気をつけてもらいたい。 [0040] 図3に示されるように、そこにはアドレス回路340が
ある。この回路はタグ及びブロック配列230.220
をアドレス指定するために使用されるIBjアドレスを
変形するものである。 [0041] 図8を参照する。アドレス回路340は以下のように働
く。ローカルアドレスノくス202上のもっとも重要な
アドレスビット(MSB、ここではA31とも言われる
)は、CPUがフレームバッファ内のデータを参照して
いる場合「1」に等しい。アドレス回路は最も重要なビ
ットを、2つのバッファ342あるいは344を選択的
にイネイブルするために使用する。特に、MSBが「0
」に等しり・場合、それはCPUが非フレームバッファ
データを参照していることを意味するが、このような場
合、バッファ342はイネイブルされ、そしてrBJア
ドレスビットがアドレス回路340により変化させられ
ずに送信される。CPUがフレームバッファデータを参
照しているためにMSBが11」に等しい場合、バッフ
ァ344はイネイプルされ、そうしてrBJアドレスビ
ットが、アドレス回路340により「1111」のよう
な所定の2進値で置き換えられる。 [0042] アドレス回路340はこのように、バッファ3444に
より主張された「B」アドレスビットのために所定の2
進イメージによって特定された、キャッシュの所定の部
分中へ、フレームバッファ記憶場所への全ての参照をマ
ツプする。 [0043] 図3に示したように、タグ配列230の底1/16内の
タグ332には、参照番号330が付けられており、そ
れらは他のタグよりも幾らか大きなものである。タグ配
列230の区画330は、たとえそれがどんなものであ
っても、アドレス回路340内のセットであるIBJア
ドレスビットのための所定値に対応する。タグ配列の区
画330内のタグ232は、rAJ及び「B」アドレス
ビット(図5参照)の両方のに対応するアドレス値を記
憶しなければならなず、それに反して他のタグは「A」
アドレスビットだけを記憶する。この理由は、rBJア
ドレスビットが、キャッシュ内に記憶されている正確な
フレームバッファ記憶場所を判断するために必要とされ
るからである。 [0044] フレームバッファがマツプされるキャッシュの部分のた
めの、タグ332内の正確なビットは、以下のように取
り扱われる。図9を参照すれば、選択されたタグ(つま
り、[B’  Clアドレスビットに対応するタグ)は
2つの要素を含んでいる。有効フラグ236及びrAJ
アドレスビットに対応するようなアドレスビットを含む
TAG−Aと、タグ配列の部分330だけに記憶された
rBJアドレスビットに対応するTAG−Bとである。 [0045] より好ましい実施例の、キャッシュ論理で使用されるコ
ンパレータ回路262は2つの余所350及び352を
含んでおり、それら各々は2つの出力信号を作り出す。 コンパレータ350は、TAG−Aと、アドレスバス2
02からのIAjアドレスビットとを比較する。もしア
ドレスビットの2つの組が同じであり、そして有効フラ
グがイネイブルされている場合、コンパレータ350は
イネイブルされたMATCH−A信号を出力し、そうで
ない場合はイネイブルされたNO−MATCH−A信号
を出力する。コンパレータ352は、「1」に等しいA
31(図9ではMSBと呼ばれる)によって示されるよ
うに、CPUがフレームバッファデータにアクセスして
いる場合にだけ、イネイブルされる。コンパレータ35
2は、TAG−Bを、アドレスバス202からのrBJ
アドレスビットと比較する。もしアドレスビットの2つ
の組が同じで、しかも有効ビットがイネイブルされてい
る場合は、コンパレータ350はイネイブルされたMA
TCH−B信号を出力し、そうでない場合はイネイブル
されたNo−MATCH−B信号を出力する。ANDゲ
ート354は、MATCH−A信号とMATCH−B信
号の2つを結合し、アクセスされたタグがローカルアド
レスバス202上の高命令アドレスビットと同じ場合に
のみ、イネイブルされたMATCH信号を作り出す。O
Rゲート356は、NO−MATCH−A信号とNo−
MATCH−B信号の2つを結合し、アクセスされたタ
グがローカルアドレスバス202上の高命令アドレスビ
ットと同じない場合にのみ、イネイブルされたNO−M
ATCH信号を作り出す。 [0046] アドレス回路340の結合の結果、コンパレータ262
と余分なアドレス情報を記憶したタグ332は、全ての
フレームバッファデータをキャッシュ112の小さな部
分にマツプする。フレームバッファ記憶場所のためにキ
ャッシュの特別な断片を選択することは取り除かれる。 大きな断片(つまり、1/2、あるいは1/4)により
、もしフレームバッファへの参照の型が、普通のプログ
ラムの空間かつ時間的な位置を示した場合には、キャッ
シュはこれらの参照を実効的に行うものとなる。一方、
大きな断片により、参照が好ましくないものである場合
には、キャッシュからの、もっと「ノーマルな」データ
及びプログラムテキストに置き換えられるものとなる。 本発明で計画したインプリメンティジョンでは、フレー
ムバッファデータのために128キロバイトキヤツシユ
の1 /32を用いた。 [0047] 本発明は、本発明の意図するところから逸脱することな
く変形することが可能である。例えば、イメージデータ
がフレームバッファから読み出された時に共有信号を主
張するための図7に示された回路は、フレームバッファ
データがキャッシュ内に記憶されている時は常に、イネ
イブル共有フラグを記憶している各キャッシュ内の簡単
な回路により置き換えられることが可能なのである。 [0048]
【図面の簡単な説明】
【図1】 キャッシュメモリ、及びまた、1つあるいはそれ以上の
フレームバッファを有するような、複数のプロセッサを
含んでいるマルチプロセッサコンピュータシステムのブ
ロック図である。
【図2】 好ましい実施例における、共有メモリの成分を示す。
【図3】 本発明によるキャッシュメモリのブロック図である。
【図4】 キャッシュメモリのタグ配列内の、タグの1つを示して
いる。
【図5】 本発明の好ましい実施例のための、アドレスビットの配
置を示す。
【図6】 本発明によるフレームバッファのブロック図を示す。
【図7】 あるフレームデータのフェッチを避けるための、キャッ
シュ制御論理の部分のブロック図である。
【図8】 好ましい実施例のキャッシュ論理で使用される、アドレ
ス回路のブロック図である。
【図9】 好ましい実施例のキャッシュメモリで使用される、コン
パレータ回路のブロック図である。
【符号の説明】
122  共有メモリバス キャッシュ制御論理回路 キャッシュ制御論理 バスインターフェイス ブロック配列 基準ブロック タグ配列 タグ インバータ アドレス回路
【書類名】
【図1】 図面
【図3】
【図4】
【図5】
【図6】 八 、\ 八 八
【図8】
【図9】

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサを有するコンピュータシ
    ステムであって、前記コンピュータシステムは、 前記プロセッサにメモリバスによって結合されたメイン
    メモリであって、前記メインメモリは、所定のアドレス
    空間内の特定のアドレスにデータを記憶しており、前記
    所定のアドレス空間は、前記複数のプロセッサによって
    少なくとも部分的に共有されており、 前記メモリバスは、データが前記プロセッサにより記憶
    されているような、アドレスを示す信号を送信し、 前記メインメモリは、前記アドレス空間の所定部分内の
    アドレスにイメージデータを記憶するための、少なくと
    も1つのフレームバッファと、前記フレームバッファ内
    に記憶されたイメージデータを表示するためのディスプ
    レイ手段を含んでいる、メインメモリと、 前記メモリバスに結合されている複数のキャッシュであ
    って、各キャッシュ手段は、前記メインメモリよりも高
    スピードの前記アドレス空間の部分へのアクセスを前記
    プロセッサに与えるために、前記プロセッサの1つに結
    合されており、各前記キャッシュ手段は、データのブロ
    ックを記憶するためのダイレクトマップキャッシュ配列
    と、前記アドレス空間のどの部分が各々の前記ブロック
    に記憶されているかを示すためのタグ手段とを含んでお
    り、前記タグ手段は、前記キャッシュ手段に記憶された
    各々のデータの前記ブロックのためのタグを含んでおり
    、前記タグは、アドレス値及び、前記データのブロック
    が前記キャッシュ手段の他のものに記憶されていないか
    どうかを示す共有フラグとを示しており、 前記キャッシュ手段は、前記データのブロックが前記プ
    ロセッサにより変形された時に、前記キャッシュ内に記
    憶されたデータのブロックを前記メインメモリ内に書き
    込むためのキャッシュ論理手段を含み、前記ブロックの
    ための前記タグはイネイブルされた共有フラグを有して
    いる、複数のキャッシュと、前記フレームバッファから
    のイメージデータのブロックが前記キャッシュメモリ手
    段に記憶された時に常に、イネイブル共有フラグを前記
    キャッシュ手段内に記憶する手段とを有し、 前記キャッシュ手段は常に、イメージデータの変形され
    たブロックを、前記フレームバッファに書き込むことを
    特徴とするコンピュータシステム。
  2. 【請求項2】複数のプロセッサを有するコンピュータシ
    ステムであって、前記コンピュータシステムは、 前記プロセッサにメモリバスによって結合されたメイン
    メモリであって、前記メインメモリは、所定のアドレス
    空間内の特定のアドレスにデータを記憶しており、前記
    所定のアドレス空間は、前記複数のプロセッサによって
    少なくとも部分的に共有されており、 前記メインメモリは、前記アドレス空間の所定部分のア
    ドレスにイメージデータを記憶するための、少なくとも
    1つのフレームバッファを含むメインメモリと前記メモ
    リバスに結合された複数のキャッシュ手段であって、各
    キャッシュ手段は、前記メインメモリよりも高スピード
    の前記アドレス空間の部分へのアクセスを前記プロセッ
    サに与えるために、前記プロセッサの1つに結合されて
    おり、各前記キャッシュ手段は、データのブロックを記
    憶するためのダイレクトマップキャッシュ配列と、前記
    アドレス空間のどの部分が各々の前記ブロックに記憶さ
    れているかを示すためのタグ手段とを含んでおり、前記
    タグ手段は、前記キャッシュ手段に記憶された各々のデ
    ータの前記ブロックのためのタグを含んでおり、 前記キャッシュ手段は、前記キャッシュ配列の所定の部
    分内だけの前記フレームバッファから、イメージデータ
    のブロックを記憶するためのキャッシュ論理手段であり
    、前記所定の部分は、前記キャッシュ配列の半分より大
    きなものではないキャッシュ手段とを有し、 前記キャッシュ論理手段は、前記フレームバッファから
    のイメージデータによって表示されることも出来る前記
    キャッシュ内に記憶された他のデータの量を制限するこ
    とを特徴とするコンピュータシステム。
  3. 【請求項3】プロセッサを有するコンピュータシステム
    であって、前記コンピュータシステムは、 前記プロセッサにメモリバスによって結合されたメイン
    メモリであって、前記メインメモリは、所定のアドレス
    空間内の特定のアドレスにデータを記憶しており、前記
    メモリバスは、データが前記プロセッサにより記憶され
    ているような、アドレスを示す信号を送信し、 前記メインメモリは、前記アドレス空間の所定部分内の
    アドレスにイメージデータを記憶するための、少なくと
    も1つのフレームバッファと、前記フレームバッファ内
    に記憶されたイメージデータを表示するための表示手段
    とを含むメインメモリと、 前記メモリバス及び、前記メインメモリよりも高スピー
    ドの前記アドレス空間の部分へのアクセスを前記プロセ
    ッサに与えるための、前記プロセッサとに結合されてい
    るキャッシュ手段であって、 前記キャッシュ手段は、データのブロックを記憶するた
    めのダイレクトマップキャッシュ配列と、前記アドレス
    空間のどの部分が各々の前記ブロックに記憶されている
    かを示すためのタグ手段とを含んでおり、前記タグ手段
    は、前記キャッシュ手段に記憶された各々のデータの前
    記ブロックのためのタグを含んでおり、前記タグは、ア
    ドレス値及び状態フラグを示しているようなキャッシュ
    手段と、そして、 前記キャッシュ手段は、前記データのブロックが前記プ
    ロセッサにより変形された時に、前記キャッシュ内に記
    憶されたデータのブロックを前記メインメモリ内に書き
    込むためのキャッシュ論理手段を含み、そして前記ブロ
    ックのための前記状態タグがイネイブルされるようなキ
    ャッシュ手段とを有し、前記キャッシュ手段は常に、変
    形されたイメージデータのブロックを前記フレームバッ
    ファ内に書き込むことを特徴とするコンピュータシステ
    ム。
JP2405246A 1989-12-22 1990-12-21 高性能キャッシュ Expired - Lifetime JPH0789342B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US45495289A 1989-12-22 1989-12-22
US454952 2003-06-05

Publications (2)

Publication Number Publication Date
JPH04102146A true JPH04102146A (ja) 1992-04-03
JPH0789342B2 JPH0789342B2 (ja) 1995-09-27

Family

ID=23806750

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2405246A Expired - Lifetime JPH0789342B2 (ja) 1989-12-22 1990-12-21 高性能キャッシュ

Country Status (1)

Country Link
JP (1) JPH0789342B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749089A (en) * 1994-01-31 1998-05-05 Fujitsu Limited Cache-memory system having multidimensional spread cache
US5822760A (en) * 1994-01-31 1998-10-13 Fujitsu Limited Cache-memory system having multidimensional cache

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63244150A (ja) * 1987-03-30 1988-10-11 Fujitsu Ltd 並列キヤツシユメモリ制御方式
JPH01262585A (ja) * 1988-04-14 1989-10-19 Nec Corp フレームバツフアキヤツシユ回路
JPH0296253A (ja) * 1988-06-07 1990-04-09 Ricoh Co Ltd 光ファイリングシステム
JPH02238490A (ja) * 1989-03-10 1990-09-20 Fuji Xerox Co Ltd 画像処理装置
JPH03154977A (ja) * 1989-11-13 1991-07-02 Sharp Corp キャッシュメモリ装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63244150A (ja) * 1987-03-30 1988-10-11 Fujitsu Ltd 並列キヤツシユメモリ制御方式
JPH01262585A (ja) * 1988-04-14 1989-10-19 Nec Corp フレームバツフアキヤツシユ回路
JPH0296253A (ja) * 1988-06-07 1990-04-09 Ricoh Co Ltd 光ファイリングシステム
JPH02238490A (ja) * 1989-03-10 1990-09-20 Fuji Xerox Co Ltd 画像処理装置
JPH03154977A (ja) * 1989-11-13 1991-07-02 Sharp Corp キャッシュメモリ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5749089A (en) * 1994-01-31 1998-05-05 Fujitsu Limited Cache-memory system having multidimensional spread cache
US5822760A (en) * 1994-01-31 1998-10-13 Fujitsu Limited Cache-memory system having multidimensional cache

Also Published As

Publication number Publication date
JPH0789342B2 (ja) 1995-09-27

Similar Documents

Publication Publication Date Title
US20230342305A1 (en) Victim cache that supports draining write-miss entries
KR100190350B1 (ko) 고성능 프레임 버퍼 및 캐쉬메모리 시스템
US6366984B1 (en) Write combining buffer that supports snoop request
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
EP0434250B1 (en) Apparatus and method for reducing interference in two-level cache memories
KR100252570B1 (ko) 축소된요구블로킹을갖는캐시메모리
US5537575A (en) System for handling cache memory victim data which transfers data from cache to the interface while CPU performs a cache lookup using cache status information
JP3067112B2 (ja) 遅延プッシュをコピー・バック・データ・キャッシュに再ロードする方法
US5146603A (en) Copy-back cache system having a plurality of context tags and setting all the context tags to a predetermined value for flushing operation thereof
US8621152B1 (en) Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access
US5926830A (en) Data processing system and method for maintaining coherency between high and low level caches using inclusive states
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
US5511226A (en) System for generating snoop addresses and conditionally generating source addresses whenever there is no snoop hit, the source addresses lagging behind the corresponding snoop addresses
US5590310A (en) Method and structure for data integrity in a multiple level cache system
US6751700B2 (en) Date processor and storage system including a set associative cache with memory aliasing
JPH06318174A (ja) キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法
EP0942376A1 (en) Method and system for pre-fetch cache interrogation using snoop port
JP3009430B2 (ja) プロセッサおよびそのキャッシュメモリ制御方法
US6240487B1 (en) Integrated cache buffers
US6973541B1 (en) System and method for initializing memory within a data processing system
KR19980086620A (ko) 대기 행렬 및 스누프 테이블을 갖는 메모리 제어기
JPH09179779A (ja) コンピュータシステムおよびデータ転送方法
US5761722A (en) Method and apparatus for solving the stale data problem occurring in data access performed with data caches
US6480940B1 (en) Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module
JPH08263371A (ja) キャッシュにおいてコピーバック・アドレスを生成する装置および方法