JPH0535591A - キヤツシユメモリ装置 - Google Patents

キヤツシユメモリ装置

Info

Publication number
JPH0535591A
JPH0535591A JP3188815A JP18881591A JPH0535591A JP H0535591 A JPH0535591 A JP H0535591A JP 3188815 A JP3188815 A JP 3188815A JP 18881591 A JP18881591 A JP 18881591A JP H0535591 A JPH0535591 A JP H0535591A
Authority
JP
Japan
Prior art keywords
cache
virtual
physical
address
hit
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
Application number
JP3188815A
Other languages
English (en)
Inventor
Tatsuhiro Goshima
龍宏 五島
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP3188815A priority Critical patent/JPH0535591A/ja
Publication of JPH0535591A publication Critical patent/JPH0535591A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】小容量仮想キャッシュの持つ高速アクセス性能
と大容量物理キャッシュの持つ高ヒット率並びにキャッ
シュエントリ無効化の容易性とを最大限に活用できるよ
うにすることである。 【構成】演算制御部からのロードリクエストにより仮想
キャッシュ2とTLB4がアクセスされ、キャッシュ2
のミスヒット時には、TLB4にて変換された物理アド
レスにより物理キャッシュ7がアクセスされる。ここで
キャッシュ7がヒットすると、そのエントリのデータ
が、演算制御部に選択出力されると共に、制御部10の
制御により仮想キャッシュ2内のミスヒットエントリに
登録される。また、他プロセッサによる主記憶更新時に
は、そのライトアドレスにより物理キャッシュ7がアク
セスされ、ヒットすると、そのヒットエントリおよび同
エントリに対応する小容量仮想キャッシュ2の全エント
リが無効化される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、仮想記憶方式を適用
するマルチプロセッサ構成の情報処理装置の各プロセッ
サに設けられるキャッシュメモリ装置に関する。
【0002】
【従来の技術】一般に計算機等の情報処理装置では、主
記憶アクセスの高速化のために、主記憶の一部のデータ
の写しが置かれるキャッシュメモリ装置が設けられてい
る。
【0003】一方、LSI技術の進歩やアーキテクチャ
の改良によって、情報処理装置の演算制御部はますます
高速化しており、主記憶装置との動作速度差が広がって
きている。
【0004】このため、演算制御部と主記憶装置との間
に位置するバッファ装置としてのキャッシュメモリ装置
を効果的に実現することにより、演算制御部の性能を最
大限に引出すことが重要となってきている。
【0005】さて、近年の情報処理装置は仮想記憶方式
を適用するのが一般的である。したがって、キャッシュ
メモリ装置に、物理アドレスでキャッシュをアクセスす
る物理キャッシュ方式を採用した場合には、演算制御部
からの仮想アドレスによるリクエストで直接キャッシュ
をアクセスすることはできない。この場合、演算制御部
からのリクエストに伴う仮想アドレスを、例えばRAM
で構成されるTLB(Translation Look-aside Buffer
)と称されるアドレス変換バッファによって物理アド
レスに変換し、その物理アドレスでキャッシュ(物理キ
ャッシュ)をアクセスする。
【0006】このように、物理キャッシュアクセスのた
めには、少なくとも2回RAM(TLBと物理キャッシ
ュ)を引くことになるため、高速のマシンサイクルの実
現が困難である。
【0007】一方、仮想アドレスでキャッシュをアクセ
スする仮想キャッシュ方式も知られている。この仮想キ
ャッシュ方式では、キャッシュ(仮想キャッシュ)をT
LBによるアドレス変換なしで仮想アドレスにより直接
アクセスすることができる。このため、物理キャッシュ
方式と比較して、より高速のマシンサイクルで動作させ
ることが可能となる。
【0008】しかし、仮想キャッシュを適用する場合に
は、異なる複数の仮想アドレスが同一の物理アドレスに
マッピングされることにより生じる問題、いわゆるシノ
ニム(キャッシュ一致化)問題がある。この問題を解決
するためには、以下に述べるように、物理アドレスを仮
想アドレス(複数存在)に対応付ける逆変換バッファ
(ITB:Inverse Translation Buffer)等のかなりの
ハードウェアが必要になるという欠点があった。
【0009】周知のように、マルチプロセッサ構成の情
報処理装置では、各プロセッサ毎にキャッシュメモリ装
置が設けられる。このようなキャッシュメモリ装置で
は、他プロセッサからのライトアドレス(ライト物理ア
ドレス)指定により主記憶更新が行われた場合には、自
身のキャッシュにヒットしているか否かを調べ、ヒット
しているならば(キャッシュと主記憶との内容を一致さ
せるために)そのエントリを無効化する必要がある。と
ころが、仮想キャッシュでは、他プロセッサによる主記
憶更新時に上記のヒットの有無を調べるには、他プロセ
ッサからのライト物理アドレスを仮想アドレスに変換し
なければならず時間を要すると共に、変換(アドレス逆
変換)のためのITB等のハードウェアが必要であっ
た。
【0010】
【発明が解決しようとする課題】上記したように仮想記
憶方式を適用する情報処理装置に設けられる従来のキャ
ッシュメモリ装置では、仮想アドレスを物理アドレスに
変換した後、その物理アドレスでキャッシュアクセスを
行う物理キャッシュ方式、または仮想アドレスによりア
ドレス変換なしに直接キャッシュアクセスが行える仮想
キャッシュ方式のいずれかが採用されていた。
【0011】しかし、物理キャッシュ方式では、仮想ア
ドレスを物理アドレスに変換するアドレス変換処理が必
要となるため、高速アクセスができないという問題があ
った。これに対して仮想キャッシュ方式では、仮想アド
レスにより直接キャッシュアクセスが行えるため高速ア
クセスが可能となるものの、異なる複数の仮想アドレス
が同一の物理アドレスにマッピングされることにより生
じるシノニム(キャッシュ一致化)問題があった。即
ち、他プロセッサによる主記憶更新時に、そのライトア
ドレス(物理アドレス)を逆変換バッファ(ITB)等
により幾つかの仮想アドレスに変換し、その仮想アドレ
スによって仮想キャッシュの対応エントリを無効化しな
ければならないという問題があった。
【0012】この発明は上記事情に鑑みてなされたもの
でその目的は、小容量仮想キャッシュの持つ高速アクセ
ス性能と大容量物理キャッシュの持つ高ヒット率並びに
キャッシュエントリ無効化の容易性とを最大限に活用で
きるキャッシュメモリ装置を提供することにある。
【0013】
【課題を解決するための手段】この発明のキャッシュメ
モリ装置は、仮想記憶方式を適用するマルチプロセッサ
構成の情報処理装置の各プロセッサに備えられるもの
で、仮想アドレスによりアクセス可能な小容量の仮想キ
ャッシュと仮想アドレスをアドレス変換して得られた物
理アドレスによりアクセス可能な大容量の物理キャッシ
ュとを設けて並行動作させると共に、仮想キャッシュに
は物理キャッシュに保持されているデータの一部だけが
保持されるように制御する制御手段であって、物理キャ
ッシュ内エントリの無効化時には、同エントリに対応す
る全ての仮想キャッシュ内エントリが無効化されるよう
に制御する制御手段と、これら両キャッシュから読出さ
れるデータのいずれか一方を選択してアクセス要求元に
出力するための選択回路とを設けたことを特徴とするも
のである。
【0014】この発明はまた、読出しアクセス要求に対
し、少なくとも、物理キャッシュだけがヒットした場合
には、そのヒットエントリからの読出しデータが仮想キ
ャッシュに登録されるように制御し、物理キャッシュが
ミスヒットしたために該当ブロックデータを同キャッシ
ュに登録する場合には、このデータが仮想キャッシュに
も登録されるように制御することも特徴とする。
【0015】この発明はまた、書込みアクセス要求に対
して物理キャッシュがヒットした場合には、そのヒット
エントリに対応する全ての仮想キャッシュ内エントリが
無効化されるように制御し、他プロセッサからの主記憶
更新要求に対して物理キャッシュがヒットした場合に
は、そのヒットエントリおよび同エントリに対応する全
ての仮想キャッシュ内エントリが無効化されるように制
御することも特徴とする。
【0016】この発明は更に、上記選択回路により通常
は仮想キャッシュ側が選択され、仮想キャッシュがミス
ヒットした場合には物理キャッシュ側が選択される構成
としたことも特徴とする。
【0017】
【作用】上記したキャッシュメモリ装置の構成におい
て、小容量仮想キャッシュと大容量物理キャッシュと
は、演算制御部からのアクセス要求に対して並行に動作
する。但し、仮想キャッシュが演算制御部から渡される
仮想アドレスにより直接にアクセスされるのに対し、物
理キャッシュはTLB等によるアドレス変換の後にアク
セスされる。これら両キャッシュからの読出しデータは
選択回路に導かれる。
【0018】選択回路は、通常は小容量仮想キャッシュ
側の読出しデータを選択しており、この小容量仮想キャ
ッシュがミスヒットした場合だけ大容量物理キャッシュ
側の読出しデータを選択する。したがって、小容量仮想
キャッシュがヒットしている限りは、高速アクセスが可
能となり、物理キャッシュだけの構成に比べてアクセス
性能が向上する。
【0019】ところで、大容量物理キャッシュは当然の
ことながらヒット率が高い。このため、小容量仮想キャ
ッシュがミスヒットしても、大容量物理キャッシュがヒ
ットする確率は極めて高い。
【0020】小容量仮想キャッシュがミスヒットし、大
容量物理キャッシュがヒットした場合には、そのヒット
エントリからの読出しデータ(ヒットデータ)が制御手
段の制御によって小容量仮想キャッシュ内エントリに速
やかに登録(アップロード)される。
【0021】上記したように、小容量仮想キャッシュが
ミスヒットしても、大容量物理キャッシュでヒットすれ
ば、そのヒットデータがアップロード処理によって小容
量仮想キャッシュに速やかに登録される。このため、次
の同一アドレス(ブロックアドレス、ラインアドレス)
でのアクセス要求に対しては小容量仮想キャッシュでも
ヒットし、高速アクセスが可能となる。
【0022】また、大容量物理キャッシュでミスヒット
となった場合(このとき、小容量仮想キャッシュでもミ
スヒットとなる)には、主記憶からのブロックリードが
発生するが、そのブロックデータは大容量物理キャッシ
ュ内エントリだけでなく小容量仮想キャッシュ内エント
リにも登録される。このため、次の同一アドレスでのア
クセス要求に対しては小容量仮想キャッシュでもヒット
し、やはり高速アクセスが可能となる。
【0023】このように、上記したキャッシュメモリ装
置の構成によれば、小容量仮想キャッシュには大容量物
理キャッシュが保持するデータの一部だけが必ず保持さ
れる。即ち、小容量仮想キャッシュ中に目的データが保
持されていれば(小容量仮想キャッシュでヒットすれ
ば)、大容量物理キャッシュ中にもそのデータは必ず存
在する。したがって本キャッシュメモリ装置では、小容
量仮想キャッシュの高速アクセス性能を持ちながら、そ
の実質的な容量を大容量仮想キャッシュの容量と等しく
することができる。
【0024】また、上記したように小容量仮想キャッシ
ュのエントリのデータは必ず大容量物理キャッシュ中に
存在するため、他プロセッサによる主記憶更新時には、
他プロセッサからのライトアドレス(物理アドレス)を
そのまま用いて物理キャッシュをアクセスしてヒットチ
ェックを行うだけでよく、ヒットが検出されたならば、
そのヒットエントリを無効化すると共に、同エントリに
対応する全ての仮想キャッシュ内エントリを無効化すれ
ばよい。このように、上記構成のキャッシュメモリ装置
では、キャッシュアクセスの高速化のために仮想キャッ
シュだけの構成とする従来方式と異なり、他プロセッサ
からのライトアドレスを仮想アドレスに逆変換して仮想
キャッシュでのヒットチェックを行う必要がないため、
無効化処理(キャッシュ一致化処理)が高速に行え、し
かも逆変換バッファ(ITB)等のハードウェアが不要
となる。
【0025】さて、キャッシュアクセスの高速化を図る
のに、キャッシュを高速RAMで構成し、更に同キャッ
シュを演算制御部と同一のLSIチップ(プロセッサを
構成するLSIチップ)上に配置することが考えられ
る。しかし、プロセッサを構成するLSIチップ上に更
にキャッシュをも配置するには、その容量を小さくしな
ければならず、小容量キャッシュ(高速小容量キャッシ
ュ)構成をとらざるを得ない。この場合、キャッシュヒ
ット時には確かに高速化が図れるが、小容量であるため
にヒット率が低く、したがってミスヒットが多発して主
記憶からのブロックリードが頻繁に発生し、高速化が阻
害される。
【0026】ところが、上記した本発明の構成では、特
に高速性を要求される仮想キャッシュは小容量でよいた
め、この高速小容量仮想キャッシュを演算制御部と同一
のLSIチップに配置し、大容量物理キャッシュを同チ
ップから独立に設けることが可能となる。こうした場
合、小容量仮想キャッシュの一層の高速化を図りなが
ら、その実質的なキャッシュ容量の一層の大容量化をも
図ることが可能となる。
【0027】
【実施例】図1はこの発明の一実施例に係るキャッシュ
メモリ装置の構成を示すブロック図である。
【0028】図1のキャッシュメモリ装置は仮想記憶方
式を適用するマルチプロセッサ構成の情報処理装置(マ
ルチプロセッサシステム)の各プロセッサ毎に設けられ
るもので、自プロセッサの演算制御部と主記憶装置(の
主記憶制御部)との間に位置するものである。
【0029】図中、1は演算制御部(図示せず)から与
えられるリクエストアドレス(仮想アドレス)を保持す
るための仮想アドレスレジスタ(以下、VARと称す
る)、2は例えばダイレクトマッピング方式を適用する
小容量の仮想キャッシュ(小容量仮想キャッシュ)であ
る。
【0030】小容量仮想キャッシュ2はRAM等により
構成されており、ディレクトリ部(仮想アドレスタグ
部)、データ部、および該当エントリが有効であるか否
かを示す有効(バリッド)ビット部(Vビット部)など
周知の構成を有している。ここで、小容量仮想キャッシ
ュ2は、図2(a)に示すように2p ページ分のエント
リを有しており、各ページ毎のエントリ数は2r である
ものとする。
【0031】小容量仮想キャッシュ2では、通常は、V
AR1に保持されているリクエストアドレス(仮想アド
レス)中の仮想ページアドレスの下位pビットとページ
内オフセットの上位rビットからなるp+rビットによ
って指定される唯一のエントリがアクセスされる。
【0032】一方、エントリ無効化処理時には、小容量
仮想キャッシュ2のVビット部の各ページ毎に、後述す
るIVAR11に保持されている(他プロセッサから
の)ライトアドレス(物理アドレス)のページ内オフセ
ットの上位rビットによって指定される(相対位置が同
一の)エントリが同時にアクセスされる。これは、小容
量仮想キャッシュ2のVビット部を、エントリ数(ワー
ド数)が2r の1ビットRAMを2p 個用いて構成する
ことにより実現可能である。小容量仮想キャッシュ2に
は、同キャッシュ2のヒットチェックを行うための比較
器により構成されるヒットチェック回路3が付加されて
いる。
【0033】4はVAR1に保持されているリクエスト
アドレス(仮想アドレス)を高速に物理アドレスに変換
するためのTLB(Translation Look-aside Buffer )
である。TLB4は、RAM或いはレジスタ群により構
成されており、仮想アドレス(仮想アドレスタグ)と物
理アドレスとの対を含むアドレス変換情報が登録される
複数のエントリを有する。
【0034】5はVAR1のリクエストアドレスからT
LB4をアクセスするためのエントリアドレス(TLB
アドレス)を例えばハッシュ法により生成するためのT
LBアドレス生成回路(以下、ハッシュ回路と称する)
である。
【0035】6はTLB4から変換出力される物理アド
レスを保持するための物理アドレスレジスタ(以下、P
ARと称する)、7は小容量仮想キャッシュ2と同様に
ダイレクトマッピング方式を適用する大容量の物理キャ
ッシュ(大容量物理キャッシュ)である。
【0036】大容量物理キャッシュ7はRAM等により
構成されており、ディレクトリ部(物理アドレスタグ
部)、データ部、およびVビット部など周知の構成を有
している。ここで、大容量物理キャッシュ7は、図2
(b)に示すように2q ページ分のエントリを有してお
り、各ページ毎のエントリ数は2r であるものとする。
【0037】大容量物理キャッシュ7のエントリは、P
AR6に保持されている物理アドレスまたは他プロセッ
サから主記憶更新のために(主記憶装置に)出されるラ
イトアドレス(物理アドレス)中の物理ページアドレス
の下位qビットとページ内オフセットの上位rビットか
らなるq+rビットによって指定される。大容量物理キ
ャッシュ7には、同キャッシュ7のヒットチェックを行
うための比較器により構成されるヒットチェック回路8
が付加されている。
【0038】9はヒットチェック回路3のヒットチェッ
ク結果を保持するためのヒットチェック結果レジスタ
(以下、HCRRと称する)、10は(ライトアドレス
に対する)ヒットチェック回路8のヒットチェック結果
を保持するための無効化(無効化指示)レジスタ(以
下、IVRと称する)、11は大容量物理キャッシュ7
に対するアドレスを保持するための無効化アドレスレジ
スタ(以下、IVARと称する)である。
【0039】12は演算制御部からのロードリクエスト
に対しHCRR9の内容およびヒットチェック回路8の
ヒットチェック結果をもとに、小容量仮想キャッシュ2
または大容量物理キャッシュ7の登録制御等を行うため
の制御部である。制御部12はまた、主記憶装置(の主
記憶制御部)へのブロックリードリクエスト発行制御も
行うようになっている。制御部12は更に、他プロセッ
サによる主記憶更新時には、IVR10およびIVAR
11の内容をもとに、大容量物理キャッシュ7および小
容量仮想キャッシュ2に対する無効化処理をも行うよう
になっている。
【0040】13はVAR1の内容またはIVAR11
の内容のいずれか一方を小容量仮想キャッシュ2のアク
セスに用いられるアドレスとして選択するためのセレク
タである。セレクタ13は、通常状態ではVAR1側を
選択し、小容量仮想キャッシュ2に対する無効化処理時
だけIVAR11側を選択する。14はPAR6の内
容、他プロセッサからのライトアドレス、またはIVA
R11の内容のいずれか1つを大容量物理キャッシュ7
のアクセスに用いられるアドレスとして選択するための
セレクタである。セレクタ14は、通常状態ではPAR
6側を選択し、他プロセッサによる主記憶更新時には他
プロセッサからのライトアドレスを選択し、大容量物理
キャッシュ7に対する無効化処理時にはIVAR11側
を選択する。
【0041】15は小容量仮想キャッシュ2からの読出
しデータまたは大容量物理キャッシュ7からの読出しデ
ータのいずれか一方をロードデータとしてHCRR9の
状態に応じて演算制御部に選択出力するためのセレクタ
である。セレクタ15は、通常状態では小容量仮想キャ
ッシュ2側を選択し、HCRR9によりミスヒット状態
が示されている場合には大容量物理キャッシュ7側を選
択する。16は大容量物理キャッシュ7からの読出しデ
ータまたは主記憶制御部を介して転送される主記憶装置
からのブロックリードデータ(ブロックデータ)のいず
れか一方を制御部12からの制御により選択するための
セレクタである。セレクタ16は通常状態では大容量物
理キャッシュ7側を選択し、ブロックリード時には主記
憶制御部側を選択する。
【0042】なお本実施例では、小容量仮想キャッシュ
2および大容量物理キャッシュ7に保持されるデータ
は、命令(命令データ)およびオペランド(オペランド
データ)など種類によらないものとするが、仮想キャッ
シュと物理キャッシュのそれぞれについて、命令キャッ
シュとオペランドキャッシュのように、用途別に用意す
ることも可能である。次に、図1の構成の基本的な動作
を、演算制御部からの主記憶読出し要求(ロードリクエ
スト)の場合を例に説明する。
【0043】(1)第1サイクル まず、演算制御部からロードリクエストが発行される
と、そのロードリクエストアドレス(仮想アドレス)が
VAR1に保持される。
【0044】(2)第2サイクル VAR1にロードリクエストアドレスが保持されると、
同アドレスがセレクタ13により選択され、同アドレス
(中の仮想ページアドレスの下位pビットとページ内オ
フセットの上位rビットからなるp+rビット)で指定
される小容量仮想キャッシュ2のエントリがリードアク
セス(参照)される。
【0045】また、これと並行して、VAR1に保持さ
れたロードリクエストアドレスをもとにハッシュ回路5
によりTLBアドレスが生成され、このTLBアドレス
で指定されるTLB4内エントリがリードアクセス(参
照)される。このアクセスの結果、TLB4にヒットし
た場合には、VAR1の示すロードリクエストアドレス
(仮想アドレス)がそのヒットエントリに登録されてい
る物理アドレスに変換される。この物理アドレス(ここ
では物理ロードアドレス)はPAR6に保持される。こ
のPAR6に保持された物理ロードアドレスはセレクタ
14により大容量物理キャッシュ7側に選択出力され
る。
【0046】なお、TLB4にミスヒットした場合に
は、周知のように主記憶に置かれているアドレス変換テ
ーブルを用いたアドレス変換が必要となるが、本発明に
直接関係しないので説明を省略する。
【0047】一方、小容量仮想キャッシュ2に付加され
ているヒットチェック回路3は、セレクタ13により選
択されたロードリクエストアドレス(の所定フィール
ド)と、上記リードアクセスされた小容量仮想キャッシ
ュ2内エントリのアドレスタグ(ディレクトリ部)とを
比較し、一致しているならばキャッシュヒットを示すヒ
ットチェック結果を出力する。このヒットチェック回路
3のチェック結果はHCRR9に保持される。セレクタ
15は、HCRR9によりミスヒットが示されていない
限り、小容量仮想キャッシュ2(のデータ部)からの読
出しデータを選択出力する。
【0048】したがって、ヒットチェック回路3でキャ
ッシュヒットが検出された場合には、VAR1に保持さ
れているロードリクエストアドレスの指定によってアク
セスされた小容量仮想キャッシュ2内エントリのデータ
部のデータが選択され、要求されたロードデータとして
ロードリクエスト元の演算制御部に渡される。
【0049】この時点で、ロードリクエスト処理は完了
するので、次の第3サイクルでの大容量物理キャッシュ
7のアクセスは必要ない。また、本サイクル(第2サイ
クル)で演算制御部から次のロードリクエストが発行さ
れているならば、そのロードリクエストアドレスが本サ
イクルの終了時にVAR1に保持される。
【0050】(3)第3サイクル もし、先の第2サイクルで小容量仮想キャッシュ2がミ
スヒットとなった場合には、セレクタ14により選択出
力される物理ロードアドレス(即ちPAR6に保持され
た物理ロードアドレス)中の物理ページアドレスの下位
qビットとページ内オフセットの上位rビットからなる
q+rビットで指定される大容量物理キャッシュ7のエ
ントリがリードアクセス(参照)され、その内容が読出
される。大容量物理キャッシュ7に付加されているヒッ
トチェック回路8は、セレクタ14により選択出力され
る物理ロードアドレス(の所定フィールド)と、大容量
物理キャッシュ7から読出されるエントリ内容中のアド
レスタグとを比較し、一致しているならばキャッシュヒ
ットを示すヒットチェック結果を出力する。セレクタ1
5は、HCRR9によりミスヒットが示されている場合
には大容量物理キャッシュ7(のデータ部)からの読出
しデータを選択出力する。
【0051】したがって、先の第2サイクルにおいてヒ
ットチェック回路3でキャッシュミスが検出され、本サ
イクル(第3サイクル)においてヒットチェック回路8
でキャッシュヒットが検出された場合には、セレクタ1
4により選択出力される物理ロードアドレス(PAR6
に保持されている物理ロードアドレス)の指定によって
リードアクセスされた大容量物理キャッシュ7内エント
リのデータ部のデータが選択され、要求されたロードデ
ータとしてロードリクエスト元の演算制御部に渡され
る。
【0052】この場合、即ち大容量物理キャッシュ7か
ら演算制御部にロードデータの供給が行われる場合に
は、制御部12の制御により後述するアップロード処理
が行われる。
【0053】これに対し、小容量仮想キャッシュ2およ
び大容量物理キャッシュ7の両方がミスヒットとなった
場合には、制御部12の制御により後述するブロックリ
ード処理が行われる。
【0054】以上が演算制御部からのロードリクエスト
に対する図1のキャッシュメモリ装置の基本動作であ
る。したがって、演算制御部からロードリクエストLR
Q1,LRQ2,LRQ3が連続して発行される場合を
例にとると、図1のキャッシュメモリ装置のロードリク
エスト処理は、図3のタイミングチャートに示すように
なる。
【0055】この図3では、ロードリクエストLRQ1
については、同LRQ1がサイクルT0 で発行され、次
のサイクルT1 において小容量仮想キャッシュ2でミス
ヒットとなった様子が示されている。そして、更に後続
の2サイクルT2 において大容量物理キャッシュ7でヒ
ットしたので、そのサイクルT2 において、即ちロード
リクエストLRQ1の発行サイクルより2サイクル後
に、(大容量物理キャッシュ7からの)ロードデータが
(演算制御部に)供給された様子が示されている。ま
た、このロードデータが、同じサイクルT2 において小
容量仮想キャッシュ2に登録(アップロード)された様
子も示されている。
【0056】また図3では、LRQ1の次のロードリク
エストLRQ2については、先行するLRQ1がサイク
ルT1 で小容量仮想キャッシュ2にミスヒットしたため
に、このLRQ1に対するロードデータが演算制御部に
返されるサイクルT2 の終了までの期間、演算制御部か
ら継続して発行されている様子が示されている。更に、
このサイクルT2 においては、上記したように小容量仮
想キャッシュ2へのアップロード中であるため、LRQ
2が小容量仮想キャッシュ2にヒットする可能性があっ
たとしても、そのLRQ2に対する小容量仮想キャッシ
ュ2からのヒットデータの供給は行えないことも示され
ている。この場合、LRQ2に対しては、次のサイクル
T3 において大容量物理キャッシュ7がアクセスされ
る。このアクセスの結果、図3に示すようにヒットした
ならば、そのサイクルT3 において大容量物理キャッシ
ュ7からのロードデータ供給が行われる。
【0057】更に図3では、LRQ2に続いてサイクル
T3 において発行されたロードリクエストLRQ3につ
いては、次のサイクルT4 で小容量仮想キャッシュ2が
アクセスされた結果ヒットとなり、そのサイクルT4 に
おいて(小容量仮想キャッシュ2から)ロードデータが
供給された様子も示されている。
【0058】次に、アップロード処理の詳細について説
明する。制御部12は、(ヒットチェック回路3のヒッ
トチェック結果が保持された)HCRR9の状態とヒッ
トチェック回路8のヒットチェック結果とを監視してい
る。
【0059】もし、演算制御部からのロードリクエスト
に対して大容量物理キャッシュ7がヒットしたことがヒ
ットチェック回路8のヒットチェック結果によって示さ
れ、且つ(同じロードリクエストに対して)小容量仮想
キャッシュ2で既にミスヒットとなっていることがHC
RR9の状態により示されている場合(図3のサイクル
T2 の状態がこの場合に相当)には、制御部12はその
サイクル(図3の例ではT2 )において小容量仮想キャ
ッシュ2を書込みイネーブル状態とする。そして制御部
12は、セレクタ13によって選択出力されているVA
R1からのロードリクエストアドレスの指定する小容量
仮想キャッシュ2内エントリ(ここではミスヒットエン
トリ)のデータ部に、セレクタ16によって選択出力さ
れるデータを書込むアップロード処理を行う。
【0060】さてセレクタ16は、通常は(大容量物理
キャッシュ7がミスヒットとならない状態では)大容量
物理キャッシュ7から読出されるデータ(ヒットデー
タ)を選択するように制御部12によって制御される。
【0061】したがって、上記のアップロード処理で
は、大容量物理キャッシュ7からのヒットデータ(した
がって演算制御部へのロードデータ)が、VAR1の指
定する小容量仮想キャッシュ2内エントリ(ミスヒット
エントリ)のデータ部に書込まれることになる。このと
き、同エントリのアドレスタグ部にはVAR1に保持さ
れているロードリクエストアドレス中のアドレスタグ相
当部分が書込まれ、同エントリのVビット部には制御部
12から出力されるアクティブなVビットが書込まれ
る。
【0062】以上のアップロード処理の結果、最も最近
に参照されたデータを含むブロックが、高速アクセス可
能な小容量仮想キャッシュ2に保持される。この結果、
次に同じブロックアドレス(ラインアドレス)のロード
リクエストが出された場合には、要求データを高速にア
クセスできる。しかも、このようなロードリクエストが
続けて出される確率は高いので、即ちアップロードされ
たブロック(最も最近に参照されたデータを含むブロッ
ク)中のデータが続けて参照される確率は高いので、ア
ップロードの効果は極めて大きい。
【0063】なお本実施例では、説明を簡略化するため
に、小容量仮想キャッシュ2および大容量物理キャッシ
ュ7がダイレクトマッピング方式を適用しているものと
して説明しているが、セットアソシアティブ方式を適用
している場合には、VAR1によって指定される各セッ
ト(way)の同一ラインのエントリのうちの1エント
リ、例えば最も以前に参照されたエントリを対象にアッ
プロード処理を行えばよい。
【0064】また本実施例では、ロードリクエストに対
して(小容量仮想キャッシュ2および大容量物理キャッ
シュ7のうちの)大容量物理キャッシュ7だけがヒット
した場合に上記のアップロード処理が行われるものとし
て説明しているが、制御を簡略化するために、大容量物
理キャッシュ7がヒットしたならば、たとえ小容量仮想
キャッシュ2でヒットしていてもアップロード処理が行
われる構成とすることも可能である。
【0065】次に、ブロックリード処理の詳細について
説明する。制御部12は、演算制御部からのロードリク
エストに対して大容量物理キャッシュ7がミスヒットと
なったことがヒットチェック回路8のヒットチェック結
果によって示され、且つ(同じロードリクエストに対し
て)小容量仮想キャッシュ2で既にミスヒットとなって
いることがHCRR9の状態により示されている場合に
は、ブロックリードリクエストを発行する。このブロッ
クリードリクエストは、(セレクタ14によって選択出
力されている)PAR6からの物理アドレス(物理ロー
ドアドレス)と共に、主記憶装置とキャッシュメモリ装
置との間のデータ授受を司る主記憶インタフェース回路
を介して主記憶制御部(いずれも図示せず)に転送され
る。
【0066】主記憶制御部は、(キャッシュメモリ装置
の)制御部12からのブロックリードリクエストに応じ
て主記憶装置をアクセスし、要求されたブロックデータ
を読出す。このブロックデータは、主記憶インタフェー
ス回路を介してキャッシュメモリ装置のセレクタ16に
転送される。
【0067】制御部12は、主記憶制御部からブロック
データが転送されると、小容量仮想キャッシュ2および
大容量物理キャッシュ7をいずれも書込みイネーブル状
態とする。そして制御部12は、VAR1の指定する小
容量仮想キャッシュ2内エントリ(ミスヒットエント
リ)のデータ部と、PAR6の指定する大容量物理キャ
ッシュ7内エントリ(ミスヒットエントリ)のデータ部
に、セレクタ16によって選択出力されるデータを書込
む登録処理を行う。
【0068】さてセレクタ16は、ブロックリードリク
エスト時には、即ち演算制御部からのロードリクエスト
に対し小容量仮想キャッシュ2および大容量物理キャッ
シュ7がいずれもミスヒットとなった場合には、(大容
量物理キャッシュ7からの読出しデータではなく)主記
憶制御部から(主記憶インタフェース回路を介して)転
送されるブロックデータを選択するように制御部12に
よって制御される。
【0069】したがって、上記の登録処理では、主記憶
制御部からのブロックデータがVAR1の指定する小容
量仮想キャッシュ2内エントリのデータ部と、PAR6
の指定する大容量物理キャッシュ7内エントリのデータ
部に書込まれることになる。このとき、同じ小容量仮想
キャッシュ2内エントリのアドレスタグ部にはVAR1
に保持されているロードリクエストアドレス中のアドレ
スタグ相当部分が書込まれ、同エントリのVビット部に
は制御部12から出力されるアクティブなVビットが書
込まれる。同様に、同じ大容量物理キャッシュ7内エン
トリのアドレスタグ部にはPAR6に保持されている物
理アドレス中のアドレスタグ相当部分が書込まれ、同エ
ントリのVビット部には制御部12から出力されるアク
ティブなVビットが書込まれる。
【0070】以上は、小容量仮想キャッシュ2および大
容量物理キャッシュ7がダイレクトマッピング方式を適
用している場合であるが、セットアソシアティブ方式を
適用している場合には、大容量物理キャッシュ7につい
ては、PAR6によって指定される各セット(way)
の同一ラインのエントリのうちの1エントリ、例えば最
も以前に参照されたエントリを対象にブロックデータの
登録処理を行えばよい。また、小容量仮想キャッシュ2
については、VAR1によって指定される各セット(w
ay)の同一ラインのエントリを一旦全て無効化した
後、そのうちの1つ(例えば、予め定められたセットの
エントリ)を対象にブロックデータの登録処理を行えば
よい。
【0071】次に、他プロセッサからの主記憶更新時に
おける主記憶とキャッシュとの一致化のためのエントリ
無効化処理について詳細に説明する。まず、図1のキャ
ッシュメモリ装置の制御部12は、他プロセッサから主
記憶装置(の主記憶制御部)に出される主記憶更新要求
を監視している。もし、他プロセッサから主記憶更新要
求が出された場合には、制御部12はセレクタ14を制
御して、他プロセッサからの主記憶ライトアドレス(物
理アドレス)を選択させる。
【0072】これにより、他プロセッサからのライトア
ドレス中の物理ページアドレスの下位qビットとページ
内オフセットの上位rビットからなるq+rビット(以
下、所定のq+rビットと称する)で指定される大容量
物理キャッシュ7のエントリがリードアクセス(参照)
され、その内容が読出される。
【0073】大容量物理キャッシュ7に付加されている
ヒットチェック回路8は、他プロセッサからのライトア
ドレスの所定フィールドと、大容量物理キャッシュ7か
ら読出されるエントリ内容中のアドレスタグとを比較
し、一致しているならばキャッシュヒットを示すヒット
チェック結果を出力する。このヒットチェック結果はI
VR10に保持される。このとき、(セレクタ14によ
って選択出力されている)他プロセッサからのライトア
ドレスがIVAR11に保持される。
【0074】制御部12は、他プロセッサからの主記憶
更新要求時に、同要求に対して大容量物理キャッシュ7
がヒットしたことがIVR10により示された場合に
は、セレクタ14を制御してIVAR11に保持されて
いる物理アドレス、即ち他プロセッサからのライトアド
レスを選択させ、同アドレス中の所定のq+rビットで
指定される大容量物理キャッシュ7内エントリ(即ち、
他プロセッサからの主記憶更新要求に対するヒットエン
トリ)を指定させる。同時に制御部12は、セレクタ1
3を制御してIVAR11に保持されている物理アドレ
ス(他プロセッサからのライトアドレス)を選択させ、
同アドレス中のページ内オフセットの上位rビットによ
り、各ページ毎のVビット部のエントリを指定させる。
【0075】このとき制御部12は、小容量仮想キャッ
シュ2および大容量物理キャッシュ7のVビット部に、
インアクティブなVビットを出力し、更に大容量物理キ
ャッシュ7を書込みイネーブル状態とすると共に、小容
量仮想キャッシュ2の各ページ毎のVビット部を全て書
込みイネーブル状態とする。
【0076】この結果、他プロセッサからの主記憶更新
要求に対してヒットした大容量物理キャッシュ7内エン
トリのVビット部、および同エントリとページ内相対位
置が同一の小容量仮想キャッシュ2内の各ページ毎のV
ビット部に、インアクティブなVビットが同時に書込ま
れ、これらエントリが無効化される。この小容量仮想キ
ャッシュ2内の複数の無効化エントリと大容量物理キャ
ッシュ7内無効化エントリの対応関係を図4に示す。図
中、無効化エントリには斜線を施してある。
【0077】このように本実施例では、他プロセッサか
らの主記憶更新要求を検出すると、その要求に伴う他プ
ロセッサからのライトアドレス(物理アドレス)によっ
て大容量物理キャッシュ7のヒットチェックを行い、同
キャッシュ7がヒットしていた場合には、そのヒットエ
ントリを無効化するようにしている。また、他プロセッ
サからのライトアドレス(中のページ内オフセットの上
位rビット)をもとに、小容量仮想キャッシュ2内ヒッ
トエントリとはページ内相対位置が同一の、小容量仮想
キャッシュ2内の各ページ毎のエントリ、即ち他プロセ
ッサからのライトアドレスにマッピングされている可能
性のある仮想アドレスに対応する小容量仮想キャッシュ
2内全エントリを自動的に無効化するようにしている。
【0078】以上の無効化方式によれば、他プロセッサ
からのライトアドレスをITB等により仮想アドレスに
逆変換して小容量仮想キャッシュ2のヒットチェックを
行う必要がなく、極めて簡単に且つ高速に無効化処理が
行える。但し、小容量仮想キャッシュ2のヒットチェッ
クを行わないことから、不必要な小容量仮想キャッシュ
2内エントリをも無効化してしまう可能性がある。しか
し、小容量仮想キャッシュ2で無効化されても大容量物
理キャッシュ7に存在する限りは、1サイクルのオーバ
ヘッドが発生するのみである。
【0079】なお、本実施例では、小容量仮想キャッシ
ュ2がダイレクトマッピング方式を適用しているものと
して説明しているが、もしセットアソシアティブ方式を
適用している場合には、上記の無効化を全てのセットに
対して行えばよい。
【0080】最後に、演算制御部からの書込み要求(ス
トアリクエスト)時の動作を簡単に説明する。まず、小
容量仮想キャッシュ2および大容量物理キャッシュ7が
いずれもミスヒットとなった場合には、主記憶更新だけ
が行われる。
【0081】次に、大容量物理キャッシュ7がヒットし
た場合には、そのヒットエントリのデータ部が更新され
る。もし、主記憶更新方式としてライトスルー方式を適
用しているならば、主記憶も更新される。これに対して
ライトバック方式を適用しているならば、主記憶更新に
代えて、ヒットエントリの所定フィールドに主記憶更新
未完了フラグが立てられる。
【0082】このとき、小容量仮想キャッシュ2につい
ては、ヒット/ミスヒットに無関係に、大容量物理キャ
ッシュ7のヒットエントリに対応する全エントリ(即
ち、ページ内相対位置がヒットエントリと同一の小容量
仮想キャッシュ2内の全エントリ)を無効化する(Vビ
ットを偽値にする)無効化処理が行われる。もし、小容
量仮想キャッシュ2がセットアソシアティブ方式を適用
しているならば、上記の無効化処理を全てのセットに対
して行えばよい。
【0083】なお、前記実施例では、小容量仮想キャッ
シュ2のVビット部を、2r ワードの1ビットRAMを
p 個用いて構成したものとして説明したが、2r ワー
ドの2p ビットRAMを1個用いて構成することも可能
である。この場合、ページ内オフセットの上位rビット
でワード位置を指定し、仮想ページアドレスの下位pビ
ットでワード内ビット位置を指定することになる。この
構成における無効化処理は、大容量物理キャッシュ7に
ヒットしたライトアドレスのページ内オフセットの上位
rビットで指定されるワード位置の全ビットを全て偽値
とすることで実現される。
【0084】
【発明の効果】以上詳述したようにこの発明によれば、
小容量仮想キャッシュと大容量物理キャッシュとを設け
て並行動作させると共に、小容量仮想キャッシュには大
容量物理キャッシュに保持されているデータの一部だけ
が保持される構成としたので、小容量仮想キャッシュ中
に目的データが保持されていれば(小容量仮想キャッシ
ュでヒットすれば)、大容量物理キャッシュ中にもその
データは必ず存在することになり、小容量仮想キャッシ
ュで決まる高速アクセス性能を持ちながら、実質的なキ
ャッシュ容量を大容量物理キャッシュの容量と等しくす
ることができ、高速アクセスが行えて、ヒット率も高い
キャッシュメモリ装置が実現できる。
【0085】また、この発明によれば、小容量仮想キャ
ッシュのエントリのデータは必ず大容量物理キャッシュ
中に存在することから、他プロセッサによる主記憶更新
時には、他プロセッサからのライトアドレス(物理アド
レス)をそのまま用いて物理キャッシュをアクセスして
ヒットチェックを行い、ヒットが検出されたならば、そ
のヒットエントリを無効化すると共に、同エントリに対
応する全ての仮想キャッシュ内エントリを無効化すれば
よく、高速化のために仮想キャッシュだけの構成とする
従来方式と異なり、他プロセッサからのライトアドレス
を仮想アドレスに逆変換して仮想キャッシュでのヒット
チェックを行う必要がないため、無効化処理(キャッシ
ュ一致化処理)が高速に行え、しかも逆変換バッファ
(ITB)等のハードウェアが不要となる。
【図面の簡単な説明】
【図1】この発明の一実施例に係るキャッシュメモリ装
置の構成を示すブロック図。
【図2】図1に示す小容量仮想キャッシュ2および大容
量物理キャッシュ7のエントリ構成を示す図。
【図3】同実施例における動作を説明するためのタイミ
ングチャート。
【図4】同実施例における無効化処理で無効化される小
容量仮想キャッシュ2内エントリと大容量物理キャッシ
ュ7内エントリとの対応関係を示す図。
【符号の説明】
1…VAR(仮想アドレスレジスタ)、2…小容量仮想
キャッシュ、3,8…ヒットチェック回路、4…TL
B、6…PAR(物理アドレスレジスタ)、7…大容量
物理キャッシュ、9…HCRR(ヒットチェック結果レ
ジスタ)、10…IVR(無効化レジスタ)、11…I
VAR(無効化アドレスレジスタ)、12…制御部、1
3,14,15,16…セレクタ。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 仮想記憶方式を適用するマルチプロセッ
    サ構成の情報処理装置の各プロセッサに備えられるキャ
    ッシュメモリ装置において、 仮想アドレスによりアクセス可能な小容量の仮想キャッ
    シュと、 この仮想キャッシュと並行して動作し、仮想アドレスを
    アドレス変換して得られた物理アドレスによりアクセス
    可能な大容量の物理キャッシュと、 この物理キャッシュに保持されているデータの一部だけ
    が、上記仮想キャッシュに保持されるように制御する制
    御手段であって、上記物理キャッシュ内エントリの無効
    化時には、同エントリに対応する全ての上記仮想キャッ
    シュ内エントリが無効化されるように制御する制御手段
    と、 上記仮想キャッシュから読出されるデータまたは上記物
    理キャッシュから読出されるデータのいずれか一方を選
    択してアクセス要求元に出力するための選択回路と、 を具備することを特徴とするキャッシュメモリ装置。
  2. 【請求項2】 上記制御手段は、読出しアクセス要求に
    対し、少なくとも、上記物理キャッシュだけがヒットし
    た場合には、そのヒットエントリからの読出しデータを
    上記仮想キャッシュに登録するようにしたことを特徴と
    する請求項1記載のキャッシュメモリ装置。
  3. 【請求項3】 上記制御手段は、上記物理キャッシュが
    ミスヒットしたためにブロックリードを行ってそのブロ
    ックデータ同キャッシュに登録する場合には、このデー
    タを上記仮想キャッシュにも登録するようにしたことを
    特徴とする請求項2記載のキャッシュメモリ装置。
  4. 【請求項4】 上記制御手段は、書込みアクセス要求に
    対して上記物理キャッシュがヒットした場合には、その
    ヒットエントリに対応する全ての上記仮想キャッシュ内
    エントリを無効化するようにしたことを特徴とする請求
    項3記載のキャッシュメモリ装置。
  5. 【請求項5】 上記制御手段は、他プロセッサからの主
    記憶更新要求に対して上記物理キャッシュがヒットした
    場合には、そのヒットエントリ、および同エントリに対
    応する全ての上記仮想キャッシュ内エントリを無効化す
    るようにしたことを特徴とする請求項4記載のキャッシ
    ュメモリ装置。
  6. 【請求項6】 上記選択回路は、通常は上記仮想キャッ
    シュ側を選択し、上記仮想キャッシュがミスヒットした
    場合には上記物理キャッシュ側を選択することを特徴と
    する請求項5記載のキャッシュメモリ装置。
JP3188815A 1991-07-29 1991-07-29 キヤツシユメモリ装置 Pending JPH0535591A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3188815A JPH0535591A (ja) 1991-07-29 1991-07-29 キヤツシユメモリ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3188815A JPH0535591A (ja) 1991-07-29 1991-07-29 キヤツシユメモリ装置

Publications (1)

Publication Number Publication Date
JPH0535591A true JPH0535591A (ja) 1993-02-12

Family

ID=16230302

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3188815A Pending JPH0535591A (ja) 1991-07-29 1991-07-29 キヤツシユメモリ装置

Country Status (1)

Country Link
JP (1) JPH0535591A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007504552A (ja) * 2003-09-03 2007-03-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007504552A (ja) * 2003-09-03 2007-03-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ

Similar Documents

Publication Publication Date Title
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
US6772316B2 (en) Method and apparatus for updating and invalidating store data
EP3238074B1 (en) Cache accessed using virtual addresses
EP0695996B1 (en) Multi-level cache system
EP0945805B1 (en) A cache coherency mechanism
JP3239218B2 (ja) キャッシュ管理システム
JP3370683B2 (ja) キャッシュシステム
JPH07253926A (ja) キャッシュ・ミスによる時間ペナルティ減少方法
KR20010101693A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
EP0365117B1 (en) Data-processing apparatus including a cache memory
JP2788836B2 (ja) ディジタルコンピュータシステム
JPH06236353A (ja) マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム
US5603008A (en) Computer system having cache memories with independently validated keys in the TLB
EP0519685A1 (en) Address translation
JPH0519176B2 (ja)
US5619673A (en) Virtual access cache protection bits handling method and apparatus
JPH05100956A (ja) アドレス変換装置
JPH0535591A (ja) キヤツシユメモリ装置
JPH0535592A (ja) キヤツシユメモリ装置
JPH0535589A (ja) キヤツシユメモリ装置
JPH0520195A (ja) キヤツシユメモリ制御装置
JPH05342101A (ja) 階層キャッシュ・メモリ
JP2019096307A (ja) 複数のデータ・タイプのためのデータ・ストレージ
JP2637853B2 (ja) キャッシュメモリ装置