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

キヤツシユメモリ装置

Info

Publication number
JPH0535592A
JPH0535592A JP3189042A JP18904291A JPH0535592A JP H0535592 A JPH0535592 A JP H0535592A JP 3189042 A JP3189042 A JP 3189042A JP 18904291 A JP18904291 A JP 18904291A JP H0535592 A JPH0535592 A JP H0535592A
Authority
JP
Japan
Prior art keywords
cache
entry
virtual
physical
pointer
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
JP3189042A
Other languages
English (en)
Inventor
Masayuki Takakuwa
正幸 高桑
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 JP3189042A priority Critical patent/JPH0535592A/ja
Publication of JPH0535592A publication Critical patent/JPH0535592A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】小容量仮想キャッシュの持つ高速アクセス性能
と大容量物理キャッシュの持つ高ヒット率とを最大限に
活用でき、更にキャッシュエントリの無効化処理が簡単
な構成で高速に行えるようにすることである。 【構成】演算制御部1からのロードリクエストに従う小
容量仮想キャッシュ3のミスヒット時には物理キャッシ
ュ5がアクセスされ、ここでヒットすると、そのエント
リのデータが、演算制御部1に選択出力されると共に、
仮想キャッシュ3内エントリに登録される。また、ヒッ
トエントリに付されたポインタの指す仮想キャッシュ3
内エントリが無効化されると共にヒットエントリのポイ
ンタが更新される。一方、他プロセッサによる主記憶更
新要求が物理キャッシュ5にヒットした場合には、その
ヒットエントリおよび同エントリに付されたポインタの
指す仮想キャッシュ3内エントリが無効化される。

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】この発明は上記事情に鑑みてなされたもの
でその目的は、小容量仮想キャッシュの持つ高速アクセ
ス性能と大容量物理キャッシュの持つ高ヒット率とを最
大限に活用できると共に、キャッシュエントリの無効化
処理が逆変換バッファ(ITB)等の複雑なハードウェ
アを必要とせずに、しかも高速で行えるキャッシュメモ
リ装置を提供することにある。
【0013】
【課題を解決するための手段】この発明のキャッシュメ
モリ装置は、仮想記憶方式を適用するマルチプロセッサ
構成の情報処理装置の各プロセッサに備えられるもの
で、仮想アドレスによりアクセス可能な小容量の仮想キ
ャッシュと仮想アドレスをアドレス変換して得られた物
理アドレスによりアクセス可能な大容量の物理キャッシ
ュであって、各エントリ毎にそのエントリのデータを保
持している仮想キャッシュ内エントリを指定するポイン
タを保持するためのポインタ部を持つ物理キャッシュと
を設けて並行動作させると共に、仮想キャッシュには物
理キャッシュに保持されているデータの一部だけが保持
されるように制御する制御手段と、これら両キャッシュ
から読出されるデータのいずれか一方を選択してアクセ
ス要求元に出力するための選択回路とを設け、物理キャ
ッシュ内エントリを無効化する際には、そのエントリに
対応するポインタ部に保持されているポインタの指定す
る仮想キャッシュ内エントリも無効化するようにしたこ
とを特徴とするものである。
【0014】この発明はまた、読出しアクセス要求に対
し、少なくとも、物理キャッシュだけがヒットした場合
には、そのヒットエントリからの読出しデータを仮想キ
ャッシュに登録すると共に、そのヒットエントリに対応
するポインタ部に保持されているポインタの指定する仮
想キャッシュ内エントリを無効化し、更に同ポインタを
仮想キャッシュのデータ登録先エントリを指すように更
新するように制御し、物理キャッシュがミスヒットした
ためにブロックリードを行ってそのブロックデータを同
キャッシュに登録する際には、同キャッシュ内のデータ
登録先エントリに対応するポインタ部に保持されている
ポインタの指定する仮想キャッシュ内エントリを無効化
すると共に、同ポインタを仮想キャッシュ内のデータ登
録先とするエントリを指すように更新し、このエントリ
にも上記ブロックデータを登録するように制御すること
も特徴とする。
【0015】この発明はまた、書込みアクセス要求に対
して物理キャッシュがヒットした場合には、そのヒット
エントリに対応するポインタ部に保持されているポイン
タの指定する仮想キャッシュ内エントリが無効化される
ように制御し、他プロセッサからの主記憶更新要求に対
して物理キャッシュがヒットした場合には、そのヒット
エントリ、および同エントリに対応するポインタ部に保
持されているポインタの指定する仮想キャッシュ内エン
トリが無効化されるように制御することも特徴とする。
【0016】この発明は更に、上記選択回路により通常
は仮想キャッシュ側が選択され、仮想キャッシュがミス
ヒットした場合には物理キャッシュ側が選択される構成
としたことも特徴とする。
【0017】
【作用】上記したキャッシュメモリ装置の構成におい
て、小容量仮想キャッシュと大容量物理キャッシュと
は、演算制御部からのアクセス要求に対して並行に動作
する。但し、仮想キャッシュが演算制御部から渡される
仮想アドレスにより直接にアクセスされるのに対し、物
理キャッシュはTLB等によるアドレス変換の後にアク
セスされる。これら両キャッシュからの読出しデータは
選択回路に導かれる。
【0018】選択回路は、通常は小容量仮想キャッシュ
側の読出しデータを選択しており、この小容量仮想キャ
ッシュがミスヒットした場合だけ大容量物理キャッシュ
側の読出しデータを選択する。したがって、小容量仮想
キャッシュがヒットしている限りは、高速アクセスが可
能となり、物理キャッシュだけの構成に比べてアクセス
性能が向上する。
【0019】ところで、大容量物理キャッシュは当然の
ことながらヒット率が高い。このため、小容量仮想キャ
ッシュがミスヒットしても、大容量物理キャッシュがヒ
ットする確率は極めて高い。
【0020】小容量仮想キャッシュがミスヒットし、大
容量物理キャッシュがヒットした場合には、そのヒット
エントリからの読出しデータ(ヒットデータ)が制御手
段の制御によって小容量仮想キャッシュ内エントリ(例
えばミスヒットエントリ)に速やかに登録(アップロー
ド)される。この際、大容量物理キャッシュ内ヒットエ
ントリに対応するポインタ部に保持されているポインタ
の指定する仮想キャッシュ内エントリが無効化され、更
に同ポインタが仮想キャッシュのデータ登録先(アップ
ロード先)エントリを指すように更新される。
【0021】上記したように、小容量仮想キャッシュが
ミスヒットしても、大容量物理キャッシュでヒットすれ
ば、そのヒットデータがアップロード処理によって小容
量仮想キャッシュに速やかに登録される。このため、次
の同一アドレス(ブロックアドレス、ラインアドレス)
でのアクセス要求に対しては小容量仮想キャッシュでも
ヒットし、高速アクセスが可能となる。
【0022】また、大容量物理キャッシュでミスヒット
となった場合(このとき、小容量仮想キャッシュでもミ
スヒットとなる)には、主記憶からのブロックリードが
発生するが、そのブロックデータは大容量物理キャッシ
ュ内エントリだけでなく小容量仮想キャッシュ内エント
リにも登録される。このため、次の同一アドレスでのア
クセス要求に対しては小容量仮想キャッシュでもヒット
し、やはり高速アクセスが可能となる。
【0023】さて、プロリードに伴うブロックデータ登
録に際しては、大容量物理キャッシュのデータ登録先エ
ントリに対応するポインタ部に保持されているポインタ
の指定する仮想キャッシュ内エントリが無効化され、更
に同ポインタが仮想キャッシュのデータ登録先エントリ
を指すように更新される。
【0024】このように、上記したキャッシュメモリ装
置の構成によれば、小容量仮想キャッシュには大容量物
理キャッシュが保持するデータの一部だけが必ず保持さ
れる。即ち、小容量仮想キャッシュ中に目的データが保
持されていれば(小容量仮想キャッシュでヒットすれ
ば)、大容量物理キャッシュ中にもそのデータは必ず存
在する。したがって本キャッシュメモリ装置では、小容
量仮想キャッシュの高速アクセス性能を持ちながら、そ
の実質的な容量を大容量仮想キャッシュの容量と等しく
することができる。
【0025】また、上記したように小容量仮想キャッシ
ュのエントリのデータは必ず大容量物理キャッシュ中に
存在するため、他プロセッサによる主記憶更新時には、
他プロセッサからのライトアドレス(物理アドレス)を
そのまま用いて物理キャッシュをアクセスしてヒットチ
ェックを行うだけでよい。しかも、物理キャッシュに
は、各エントリ毎にそのエントリのデータを保持してい
る仮想キャッシュ内エントリを指定するポインタを保持
するためのポインタ部が付加されているため、他プロセ
ッサによる主記憶更新に対して物理キャッシュでヒット
が検出された場合には、そのヒットエントリと対応する
仮想キャッシュ内エントリが、そのヒットエントリに対
応するポインタ部に保持されているポインタにより指定
されているので、この仮想キャッシュ内エントリを高速
に無効化でき、しかも逆変換バッファ(ITB)等のハ
ードウェアが不要となる。
【0026】さて、キャッシュアクセスの高速化を図る
のに、キャッシュを高速RAMで構成し、更に同キャッ
シュを演算制御部と同一のLSIチップ(プロセッサを
構成するLSIチップ)上に配置することが考えられ
る。しかし、プロセッサを構成するLSIチップ上に更
にキャッシュをも配置するには、その容量を小さくしな
ければならず、小容量キャッシュ(高速小容量キャッシ
ュ)構成をとらざるを得ない。この場合、キャッシュヒ
ット時には確かに高速化が図れるが、小容量であるため
にヒット率が低く、したがってミスヒットが多発して主
記憶からのブロックリードが頻繁に発生し、高速化が阻
害される。
【0027】ところが、上記した本発明の構成では、特
に高速性を要求される仮想キャッシュは小容量でよいた
め、この高速小容量仮想キャッシュを演算制御部と同一
のLSIチップに配置し、大容量物理キャッシュを同チ
ップから独立に設けることが可能となる。こうした場
合、小容量仮想キャッシュの一層の高速化を図りなが
ら、その実質的なキャッシュ容量の一層の大容量化をも
図ることが可能となる。
【0028】
【実施例】図1はこの発明の一実施例に係るキャッシュ
メモリ装置の構成を示すブロック図である。
【0029】図1のキャッシュメモリ装置は仮想記憶方
式を適用するマルチプロセッサ構成の情報処理装置(マ
ルチプロセッサシステム)の各プロセッサ毎に設けられ
るもので、自プロセッサの演算制御部と主記憶装置(の
主記憶制御部)との間に位置するものである。
【0030】図中、1は本キャッシュメモリ装置を利用
する演算制御部、2は演算制御部1から与えられるロー
ドリクエスト(主記憶読出し要求)またはストアリクエ
スト(主記憶書込み要求)を保持するためのリクエスト
レジスタである。このリクエスト中には、リクエストの
有無を示すRビットと、リクエストアドレス(リクエス
ト仮想アドレス)VAとが含まれる。
【0031】3はリクエストレジスタ2中のリクエスト
仮想アドレス(VA)等によってアクセスされる小容量
の仮想キャッシュ(小容量仮想キャッシュ)である。こ
の小容量仮想キャッシュ3はダイレクトマッピング方式
を適用しているものとする。
【0032】4はリクエストレジスタ2中のリクエスト
仮想アドレス(VA)を高速に物理アドレスに変換する
ためのTLB(Translation Look-aside Buffer )、5
はTLB4によって変換された物理アドレス等によって
アクセスされる大容量の物理キャッシュ(大容量物理キ
ャッシュ)である。この大容量物理キャッシュ5は小容
量仮想キャッシュ3と同様にダイレクトマッピング方式
を適用しているものとする。大容量物理キャッシュ5の
各エントリには、そのエントリのデータを保持している
小容量仮想キャッシュ3内エントリを指定するポインタ
が付加されるようになっている。
【0033】6はリクエストレジスタ2では処理できな
かったロードリクエスト(ブロックロードリクエストと
呼ぶ)を含むリクエスト情報を保持するための例えば2
エントリからなるブロックリードリクエストバッファ
(以下、BRRバッファと称する)である。BRRバッ
ファ6の各エントリ(エントリ0,1)に保持されるリ
クエスト情報は、リクエストの有無を示すViビット、
ロード仮想アドレス(ロードリクエスト仮想アドレス)
VAi、ロード物理アドレス(ロードリクエスト物理ア
ドレス)PAi、およびポインタPTiを持つ。
【0034】7はBRRバッファ6へのブロックリード
リクエスト格納を制御するブロックリードリクエスト受
付け制御回路(以下、BRR受付け制御回路と称す
る)、8はBRRバッファ6中のリクエストの処理を制
御するブロックリードリクエスト制御回路(以下、BR
R制御回路と称する)、9は主記憶インタフェース回路
である。主記憶インタフェース回路9は、本キャッシュ
メモリ装置と図示せぬ主記憶装置(の主記憶制御部)と
の間のデータ等の受渡し制御を司るものである。
【0035】11は他プロセッサからの主記憶更新要求
時に、そのアドレス(ライトアドレス)により大容量物
理キャッシュ5のヒットチェックを行って無効化すべき
キャッシュエントリを決定する無効化制御回路である。
【0036】12は無効化制御回路11によって決定さ
れた無効化すべきキャッシュエントリを指定するアドレ
ス情報(無効化物理アドレス)を保持するための無効化
アドレスレジスタ(IPA1)、13は無効化アドレス
レジスタ12の出力を次のサイクルで保持するためのた
めの無効化アドレスレジスタ(IPA2)である。14
は無効化される大容量物理キャッシュ5内エントリに付
されていたポインタを、無効化アドレスレジスタ13と
同じタイミングで保持するための無効化エントリポイン
タレジスタ(IPT2)である。
【0037】15は小容量仮想キャッシュ3からの読出
しデータまたは大容量物理キャッシュ5からの読出しデ
ータのいずれか一方をロードデータとして演算制御部1
に選択出力するためのセレクタである。セレクタ15
は、通常状態では小容量仮想キャッシュ3側を選択し、
小容量仮想キャッシュ3がミスヒットとなった場合には
大容量物理キャッシュ5側を選択する。16は大容量物
理キャッシュ5からの読出しデータ(ロードデータ)ま
たは主記憶インタフェース回路9を介して転送される主
記憶装置からのブロックリードデータ(ブロックデー
タ)のいずれか一方を選択するためのセレクタである。
セレクタ16は通常状態ではロードデータを選択し、ブ
ロックリード時にはブロックデータを選択する。
【0038】61はリクエストレジスタ2中のリクエス
ト仮想アドレス(VA)を小容量仮想キャッシュ3およ
びTLB4に供給するための信号線、62は小容量仮想
キャッシュ3にミスヒットしてBRRバッファ6に保持
されたたロードリクエスト仮想アドレス(VAi)を、
アップロード時等における小容量仮想キャッシュ3のア
ドレス指定用に、BRR制御回路8から供給するための
信号線である。なお、アップロードとは、大容量物理キ
ャッシュ5のヒットデータを小容量仮想キャッシュ3に
ロードする処理をいう。
【0039】63はセレクタ16の出力を小容量仮想キ
ャッシュ3および大容量物理キャッシュ5に供給するた
めの信号線、64はロードリクエスト時に大容量物理キ
ャッシュ5の参照エントリから取出されてBRRバッフ
ァ6に保持されたたポインタPTiを、アップロード時
等における小容量仮想キャッシュ3内の無効化対象エン
トリ指定用に、BRR制御回路8から供給するための信
号線である。65は無効化エントリポインタレジスタ
(IPT2)14の出力を小容量仮想キャッシュ3に供
給するための信号線である。
【0040】66はTLB4によってアドレス変換され
てBRRバッファ6に保持された物理アドレスPAi
を、大容量物理キャッシュ5のアドレス指定用に、BR
R制御回路8から供給するための信号線、67は無効化
アドレスレジスタ(IPA1)12の出力を大容量物理
キャッシュ5および無効化アドレスレジスタ(IPA
2)13に供給するための信号線である。
【0041】68はTLB4によってアドレス変換され
てBRRバッファ6に保持された物理アドレスPAi
を、大容量物理キャッシュ5の(ポインタ部53のポイ
ンタ更新のための)エントリ指定用に、BRR制御回路
8から供給するための信号線、69はBRRバッファ6
に保持されたロード仮想アドレスVAi(で指定される
小容量仮想キャッシュ3のエントリを示すポインタ)
を、対応する大容量物理キャッシュ5内エントリのポイ
ンタ更新用に、BRR制御回路8から供給するための信
号線である。70は無効化アドレスレジスタ(IPA
2)13の出力を、大容量物理キャッシュ5内の無効化
対象エントリ指定用に供給するための信号線である。
【0042】71は小容量仮想キャッシュ3から読出さ
れるデータをセレクタ15に供給するための信号線、7
2はTLB4から読出される物理アドレスをBRR受付
け制御回路7に供給するための信号線である。73は大
容量物理キャッシュ5から読出されるデータ(ロードデ
ータ)をセレクタ15,16に供給するための信号線、
74は同キャッシュ5から読出されるポインタをBRR
受付け制御回路7および無効化エントリポインタレジス
タ(IPRT2)14に供給するための信号線である。
【0043】図2は小容量仮想キャッシュ3の構成を示
すブロック図である。小容量仮想キャッシュ3は、各エ
ントリにディレクトリ情報(仮想アドレスタグ)を保持
するためのディレクトリ部(仮想アドレスタグ部)3
1、データ(ブロックデータ)を保持するためのデータ
部32、および該当エントリが有効であるか否かを示す
有効(バリッド)ビットを保持するための有効ビット部
(以下、Vビット部と称する)33を有する。ディレク
トリ部31およびデータ部32は例えば共通のRAMに
より構成され、Vビット部33は別のRAMにより構成
される。
【0044】小容量仮想キャッシュ3は更に、信号線6
1,62を介して供給されるアドレスのいずれか一つを
ディレクトリ部31およびデータ部32のエントリ指定
用に選択するセレクタ34、および信号線61,62,
64,65を介して供給されるアドレスのいずれか一つ
をVビット部33のエントリ指定用に選択するセレクタ
35を有する。
【0045】図3はTLB4の構成を示すブロック図で
ある。TLB4は、各エントリに仮想アドレスタグを保
持するための仮想アドレスタグ部41、その仮想アドレ
スタグに対応する物理アドレスタグを保持するための物
理アドレスタグ部42を有する。仮想アドレスタグ部4
1および物理アドレスタグ部42は例えばRAMにより
構成される。TLB4は更に、信号線61上のアドレス
(仮想アドレス)から仮想アドレスタグ部41および物
理アドレスタグ部42をアクセスするためのエントリア
ドレス(TLBアドレス)を例えばハッシュ法により生
成するためのTLBアドレス生成回路(以下、ハッシュ
回路と称する)43を有する。
【0046】図4は大容量物理キャッシュ5の構成を示
すブロック図である。大容量物理キャッシュ5は、各エ
ントリにディレクトリ情報(物理アドレスタグ)を保持
するためのディレクトリ部(物理アドレスタグ部)5
1、データ(ブロックデータ)を保持するためのデータ
部52、および同データ部52の該当エントリのデータ
を保持している小容量仮想キャッシュ3内エントリを指
定するポインタを保持するためのポインタ部53を有す
る。大容量物理キャッシュ5はまた、同キャッシュ5
(のディレクトリ部51、データ部52およびポインタ
部53)の各エントリが有効であるか否かを示すための
Vビット部54を有する。ディレクトリ部51、データ
部52およびポインタ部53は例えば共通のRAMによ
り構成され、Vビット部54は別のRAMにより構成さ
れる。
【0047】大容量物理キャッシュ5は更に、信号線6
6〜68を介して供給されるアドレスのいずれか一つを
ディレクトリ部51、データ部52およびポインタ部5
3のエントリ指定用に選択するセレクタ55、および信
号線66,68,70を介して供給されるアドレスのい
ずれか一つをVビット部54のエントリ指定用に選択す
るセレクタ56を有する。
【0048】なお、図では、小容量仮想キャッシュ3、
TLB4および大容量物理キャッシュ5に設けられ、そ
れぞれのヒットチェックを行うヒットチェック回路は省
略されている。
【0049】また本実施例では、小容量仮想キャッシュ
3および大容量物理キャッシュ5に保持されるデータ
は、命令(命令データ)およびオペランド(オペランド
データ)など種類によらないものとするが、仮想キャッ
シュと物理キャッシュのそれぞれについて、命令キャッ
シュとオペランドキャッシュのように、用途別に用意す
ることも可能である。次に、本実施例装置の基本的な動
作を、演算制御部からの主記憶読出し要求(ロードリク
エスト)の場合を例に説明する。
【0050】(1)第1サイクル まず、演算制御部からロードリクエストが発行される
と、そのロードリクエスト(R+VA)がリクエストレ
ジスタ2に保持される。
【0051】(2)第2サイクル リクエストレジスタ2にロードリクエストが保持される
と、同リクエスト中のロードリクエストアドレス(ロー
ドリクエスト仮想アドレス)VAが信号線61を介して
小容量仮想キャッシュ3に供給されてセレクタ34,3
5により選択され、同アドレスVAの所定フィールド
(ここでは、VA中の仮想ページアドレスの下位pビッ
トとページ内オフセットの上位rビットからなるp+r
ビット)で指定される小容量仮想キャッシュ3の(ディ
レクトリ部31、データ部32およびVビット部33
の)エントリがリードアクセス(参照)される。
【0052】そして、リードアクセスされた小容量仮想
キャッシュ3内エントリの示す仮想アドレスタグ(ディ
レクトリ部31の内容)とロードリクエスト仮想アドレ
ス(ロード仮想アドレス)VAの所定フィールド(仮想
アドレスタグ相当部分)とが、図示せぬヒットチェック
回路によって比較され、ヒットチェックが行われる。
【0053】一方、信号線61上のロード仮想アドレス
VAはTLB4のハッシュ回路43にも供給されて、同
ハッシュ回路43によりTLB4のエントリアドレスが
生成され、同アドレスVAで指定されるTLB4の(仮
想アドレスタグ部41および物理アドレスタグ部42
の)エントリが(小容量仮想キャッシュ3のアクセスと
並行して)リードアクセスされる。
【0054】そして、リードアクセスされたTLB4内
エントリの示す仮想アドレスタグ(仮想アドレスタグ部
41の内容)とロード仮想アドレスVAの所定フィール
ド(仮想アドレスタグ相当部分)とが、図示せぬヒット
チェック回路によって比較され、ヒットチェックが行わ
れる。
【0055】TLB4でのヒットチェックの結果ヒット
が検出された場合には、信号線61からのロード仮想ア
ドレスVAが、リードアクセスされたTLB4内エント
リの示す物理アドレスタグ(物理アドレスタグ部42の
内容)を持つ物理アドレスに変換される。
【0056】この変換後の物理アドレスは信号線72を
介してBRR受付け制御回路7に供給され、本サイクル
(第2サイクル)終了時に、同制御回路7によりロード
物理アドレスPAiとしてBRRバッファ6に保持され
る。同時に、リクエストレジスタ2に保持されているロ
ードリクエスト中のRビット,ロード仮想アドレスVA
も、Vi,VAiとして、上記のPAiと対になるよう
にBRRバッファ6に保持される。
【0057】なお、TLB4にミスヒットした場合に
は、周知のように主記憶に置かれているアドレス変換テ
ーブルを用いたアドレス変換が必要となるが、本発明に
直接関係しないので説明を省略する。
【0058】さて、小容量仮想キャッシュ3がリードア
クセスされた場合、同キャッシュ3のデータ部32の該
当エントリの保持データは信号線71上に読出される。
セレクタ15は、小容量仮想キャッシュ3でキャッシュ
ヒットが検出された場合には、信号線71上のデータ、
即ち小容量仮想キャッシュ3(のデータ部32)のヒッ
トデータを選択する。このセレクタ15によって選択さ
れた信号線71上のヒットデータは、ロードリクエスト
に対するロードデータとしてロードリクエスト元の演算
制御部1に渡される。
【0059】この時点で、ロードリクエスト処理は完了
するので、次の第3サイクルでの大容量物理キャッシュ
5のアクセスは必要ない。また、本サイクル(第2サイ
クル)で演算制御部から次のロードリクエストが発行さ
れているならば、同リクエストが本サイクルの終了時に
リクエストレジスタ2に保持される。
【0060】(3)第3サイクル もし、先の第2サイクルで小容量仮想キャッシュ3がミ
スヒットとなった場合には、BRRバッファ6に保持さ
れたロード物理アドレスPAiがBRR制御回路8によ
って取出され、信号線66を介して大容量物理キャッシ
ュ5に供給される。この信号線66上のロード物理アド
レスPAiは大容量物理キャッシュ5内のセレクタ5
5,56により選択され、同アドレスPAiの所定フィ
ールド(ここでは、PAi中の物理ページアドレスの下
位qビットとページ内オフセットの上位rビットからな
るq+rビット、但しq>p)で指定される大容量物理
キャッシュ5の(ディレクトリ部51、データ部52、
ポインタ部53およびVビット部54の)エントリがリ
ードアクセス(参照)される。
【0061】そして、リードアクセスされた大容量物理
キャッシュ5内エントリの示す物理アドレスタグ(ディ
レクトリ部51の内容)とロード物理アドレスPAiの
所定フィールド(物理アドレスタグ相当部分)とが、図
示せぬヒットチェック回路によって比較され、ヒットチ
ェックが行われる。
【0062】さて、大容量物理キャッシュ5がリードア
クセスされた場合、同キャッシュ5のデータ部32の該
当エントリに保持されているデータは信号線73上に読
出され、ポインタ部53の該当エントリに保持されてい
るポインタは信号線74上に読出される。
【0063】信号線74上に読出された大容量物理キャ
ッシュ5(のポインタ部53)からのポインタはBRR
受付け制御回路7に供給され、本サイクル(第3サイク
ル)の終了時に、PTiとして、先のVi,VAi,P
Aiと対になるようにBRRバッファ6に保持される。
【0064】一方、信号線73上に読出された大容量物
理キャッシュ5(のデータ部52)からのデータはセレ
クタ15,16に供給される。セレクタ15は小容量仮
想キャッシュ3でミスヒットが検出された場合に、セレ
クタ16は大容量物理キャッシュ5でミスヒットが検出
されない通常状態において、いずれも信号線73上のデ
ータ、即ち大容量物理キャッシュ5(のデータ部52)
からの読出しデータを選択する。したがって、小容量仮
想キャッシュ3でミスヒットとなり、大容量物理キャッ
シュ5でヒットとなった場合には、セレクタ15,16
により、いずれも大容量物理キャッシュ5からの読出し
データ、即ち大容量物理キャッシュ5のヒットデータが
選択される。
【0065】セレクタ15によって選択された信号線7
3上のヒットデータは、ロードリクエストに対するロー
ドデータとしてロードリクエスト元の演算制御部1に供
給される。また、セレクタ16によって選択された同じ
信号線73上のヒットデータは、信号線63を介して小
容量仮想キャッシュ3に供給される。同時に、(本サイ
クルにおいて大容量物理キャッシュ5にヒットした)ロ
ード物理アドレスPAiと対をなしてBRRバッファ6
に保持されているロード仮想アドレスVAiが、BRR
制御回路8によって信号線62上に取出され、小容量仮
想キャッシュ3に供給される。
【0066】小容量仮想キャッシュ3では、信号線62
を介して供給されたロード仮想アドレスVAiが、BR
R制御回路8の制御のもとでセレクタ34,35により
選択され、同アドレスVAiの所定フィールドで指定さ
れる小容量仮想キャッシュ3の(ディレクトリ部31、
データ部32およびVビット部33の)エントリがライ
トアクセスされる。
【0067】これにより、小容量仮想キャッシュ3のデ
ータ部32の指定エントリには、セレクタ16によって
信号線63上に選択出力されたデータ、即ち(VAiと
対をなすPAiによる)大容量物理キャッシュ5のヒッ
トデータが書込まれる(ロード)される。同時に、小容
量仮想キャッシュ3のディレクトリ部31の指定エント
リには、(セレクタ34の選択対象となった)信号線6
2上のロード仮想アドレスVAiの所定フィールド(仮
想アドレスタグ相当部分)が書込まれ、小容量仮想キャ
ッシュ3のVビット部33の指定エントリには、アクテ
ィブなVビットが書込まれる。なお、このVビットはB
RR制御回路8から供給されるものとする。以上の大容
量物理キャッシュ5から小容量仮想キャッシュ3へのロ
ード処理を、アップロード処理と呼ぶ。
【0068】これに対して、大容量物理キャッシュ5で
もミスヒットとなった場合には、大容量物理キャッシュ
5から小容量仮想キャッシュ3へのアップロード処理は
行われず、次のサイクル(第4サイクル)以降でブロッ
クリードリクエストを伴うブロックリード処理が行われ
る。
【0069】(4)第4サイクル さて、先の第3サイクルでアップロード処理が行われた
場合、本サイクル(第4サイクル)では、アップロード
時のロード仮想アドレスVAiおよびロード物理アドレ
スPAiと対をなしてBRRバッファ6に保持されてい
るポインタPTi(即ちPAiの指定する大容量物理キ
ャッシュ5のポインタ部53のヒットエントリから読出
されたポインタ)が、BRR制御回路8によって信号線
64上に取出され、小容量仮想キャッシュ3に供給され
る。
【0070】同時に、ポインタPTiと対をなすロード
仮想アドレスVAi中の小容量仮想キャッシュ3内エン
トリ指定部分(VAi中の仮想ページアドレスの下位p
ビットとページ内オフセットの上位rビットからなるp
+rビット)が信号線69上に、同じくロード物理アド
レスPAiが信号線68上に、それぞれBRR制御回路
8によってBRRバッファ6から取出され、大容量物理
キャッシュ5に供給される。
【0071】小容量仮想キャッシュ3では、信号線64
を介して供給されたポインタPTiが、BRR制御回路
8の制御のもとでセレクタ35により選択され、同ポイ
ンタPTiの指定する小容量仮想キャッシュ3のVビッ
ト部33のエントリがライトアクセスされる。
【0072】これにより、Vビット部33の指定エント
リにインアクティブなVビットが書込まれ、PTi(即
ち小容量仮想キャッシュ3へアップロードデータを供給
した大容量物理キャッシュ5内ヒットエントリに付され
ていたポインタ)によって指定される小容量仮想キャッ
シュ3内エントリ(即ち、そのヒットエントリと同じデ
ータを保持していた小容量仮想キャッシュ3内エント
リ)が無効化される。なお、上記のVビットはBRR制
御回路8から供給されるものとする。
【0073】これと並行して、大容量物理キャッシュ5
では、信号線68を介して供給されたロード物理アドレ
スPAiが、BRR制御回路8の制御のもとでセレクタ
55により選択され、同アドレスPAiの所定フィール
ドで指定される大容量物理キャッシュ5のエントリがラ
イトアクセスされる。
【0074】これにより、大容量物理キャッシュ5のポ
インタ部53の指定エントリ(ヒットエントリ)には、
信号線69を介して供給されるロード仮想アドレスVA
i中の小容量仮想キャッシュ3内エントリ指定部分(即
ち、VAi中の仮想ページアドレスの下位pビットとペ
ージ内オフセットの上位rビットからなるp+rビッ
ト)が、アップロード先の小容量仮想キャッシュ3内エ
ントリを指定するポインタとして書込まれる。即ち、大
容量物理キャッシュ5のヒットエントリのポインタが、
アップロード先の小容量仮想キャッシュ3内エントリを
指すように更新される。
【0075】ここで、大容量物理キャッシュ5内のディ
レクトリ部51、データ部52およびポインタ部53は
共通のRAMにより構成されているため、ディレクトリ
部51およびデータ部52もポインタ部53と同時にラ
イトアクセスされる。したがって、ポインタ部53への
ポインタ書込み時には、ディレクトリ部51およびデー
タ部52の対応エントリの各内容と同一の情報を、それ
ぞれディレクトリ部51およびデータ部52に供給する
必要がある。勿論、ディレクトリ部51、データ部52
およびポインタ部53をそれぞれ独立のRAMで構成す
るな場合には、ポインタ部53だけを書込み可状態とす
ればよい。
【0076】以上のアップロード処理の結果、最も最近
に参照されたデータを含むブロックが、高速アクセス可
能な小容量仮想キャッシュ3に保持される。この結果、
次に同じブロックアドレス(ラインアドレス)のロード
リクエストが出された場合には、要求データを高速にア
クセスできる。しかも、このようなロードリクエストが
続けて出される確率は高いので、即ちアップロードされ
たブロック(最も最近に参照されたデータを含むブロッ
ク)中のデータが続けて参照される確率は高いので、ア
ップロードの効果は極めて大きい。
【0077】以上に述べた演算制御部1からのロードリ
クエストに対してアップロード処理が行われた場合の一
連の動作を、図5のタイミングチャートに整理して示
す。図中のTi は、上記の説明における第iサイクルに
相当する。
【0078】なお本実施例では、説明を簡略化するため
に、小容量仮想キャッシュ3および大容量物理キャッシ
ュ5がダイレクトマッピング方式を適用しているものと
して説明しているが、セットアソシアティブ方式を適用
している場合には、VAiによって指定される各セット
(way)の同一ラインのエントリのうちの1エント
リ、例えば最も以前に参照されたエントリを対象にアッ
プロード処理を行えばよい。この場合、大容量物理キャ
ッシュ5のポインタ部53の各エントリには、対応する
データ部52内エントリの保持データと同一のデータが
保持されている小容量仮想キャッシュ3内エントリと、
そのエントリが属するセット(way)とを指定するポ
インタを保持する必要がある。
【0079】また本実施例では、ロードリクエストに対
して(小容量仮想キャッシュ3および大容量物理キャッ
シュ5のうちの)大容量物理キャッシュ5だけがヒット
した場合に上記のアップロード処理が行われるものとし
て説明しているが、制御を簡略化するために、大容量物
理キャッシュ5がヒットしたならば、たとえ小容量仮想
キャッシュ3でヒットしていてもアップロード処理が行
われる構成とすることも可能である。
【0080】次に、演算制御部1からのロードリクエス
トに対して、大容量物理キャッシュ5においてミスヒッ
トとなり、ブロックリード処理が行われる場合の動作
を、上記第4サイクルから説明する。
【0081】大容量物理キャッシュ5がミスヒットした
ことが第3サイクルで検出された場合(このとき、小容
量仮想キャッシュ3は第2サイクルでミスヒットしてい
る)には、次の第4サイクルでは、ブロックデータの登
録先とする大容量物理キャッシュ5内エントリ(即ち、
大容量物理キャッシュ5内の置換え対象エントリ)に保
持されているポインタの指定する小容量仮想キャッシュ
3内エントリを無効化する処理が次のように行われる。
【0082】まず、ダイレクトマッピング方式を適用す
る本実施例では、大容量物理キャッシュ5内の置換え対
象エントリは、ミスヒットとなった大容量物理キャッシ
ュ5内の唯一のエントリに一致する。そこで本実施例で
は、アップロード時のロード仮想アドレスVAiおよび
ロード物理アドレスPAiと対をなしてBRRバッファ
6に保持されているポインタPTi(PAiの所定フィ
ールドで指定される大容量物理キャッシュ5のミスヒッ
トエントリから読出されたポインタ)が、BRR制御回
路8によって信号線64上に取出され、小容量仮想キャ
ッシュ3に供給される。
【0083】小容量仮想キャッシュ3では、信号線64
を介して供給されたポインタPTiが、BRR制御回路
8の制御のもとでセレクタ35により選択され、同ポイ
ンタPTiの指定する小容量仮想キャッシュ3のVビッ
ト部33のエントリがライトアクセスされる。
【0084】これにより、Vビット部33の指定エント
リにインアクティブなVビットが書込まれ、PTi(即
ち大容量物理キャッシュ5内置換対象エントリに付され
ていたポインタ)によって指定される小容量仮想キャッ
シュ3内エントリが無効化される。
【0085】一方、BRR制御回路8は、以上のPTi
を用いた無効化処理と並行して、このPTiと対をなす
ロード物理アドレスPAiをBRRバッファ6から取出
し、同PAiを含むブロックリードリクエストを発行す
る。このブロックリードリクエストは主記憶インタフェ
ース回路9を介して主記憶制御部(図示せず)に転送さ
れる。
【0086】主記憶制御部は、(キャッシュメモリ装置
の)BRR制御回路8からのブロックリードリクエスト
に応じて主記憶装置をアクセスし、要求されたブロック
データを読出す。このブロックデータは、主記憶インタ
フェース回路9を介してキャッシュメモリ装置のセレク
タ16に転送される。
【0087】BRR制御回路8は、第(n−1)サイク
ルにおいて主記憶制御部から主記憶インタフェース回路
9を介してブロックデータが返されると、次の第nサイ
クルにおいて同データを選択するようにセレクタ16を
制御する。これにより、主記憶制御部から転送されたブ
ロックデータは、セレクタ16によって信号線63上に
選択出力され、小容量仮想キャッシュ3および大容量物
理キャッシュ5に供給される。
【0088】また第nサイクルにおいて、BRR制御回
路8は、大容量物理キャッシュ5にミスヒットしたロー
ド物理アドレスPAiと対をなしてBRRバッファ6に
保持されているロード仮想アドレスVAiを信号線62
上に取出し、小容量仮想キャッシュ3に供給する。また
BRR制御回路8は、上記ロード物理アドレスPAiを
信号線68上に、このPAiと対をなすロード仮想アド
レスVAi中の小容量仮想キャッシュ3内エントリ指定
部分(VAi中の仮想ページアドレスの下位pビットと
ページ内オフセットの上位rビットからなるp+rビッ
ト)を信号線69上に、いずれもBRRバッファ6から
取出し、大容量物理キャッシュ5に供給する。
【0089】そしてBRR制御回路8は、小容量仮想キ
ャッシュ3のVビット部33と大容量物理キャッシュ5
のVビット部54に、アクティブなVビットを供給し、
小容量仮想キャッシュ3のディレクトリ部31、データ
部32およびVビット部33と、大容量物理キャッシュ
5のディレクトリ部51、データ部52、ポインタ部5
3およびVビット部54を書込み可状態とする。
【0090】しかして小容量仮想キャッシュ3では、信
号線62を介して供給されたロード仮想アドレスVAi
が、BRR制御回路8の制御のもとでセレクタ34,3
5により選択され、同アドレスVAiの所定フィールド
で指定される小容量仮想キャッシュ3の(ディレクトリ
部31、データ部32およびVビット部33の)エント
リがライトアクセスされる。
【0091】これにより、小容量仮想キャッシュ3のデ
ータ部32の指定エントリには、セレクタ16によって
信号線63上に選択出力されたデータ、即ち主記憶制御
部からのブロックデータが書込まれる。同時に、小容量
仮想キャッシュ3のディレクトリ部31の指定エントリ
には、(セレクタ34の選択対象となった)信号線62
上のロード仮想アドレスVAiの所定フィールド(仮想
アドレスタグ相当部分)が書込まれ、小容量仮想キャッ
シュ3のVビット部33の指定エントリには、アクティ
ブなVビットが書込まれる。
【0092】一方、大容量物理キャッシュ5では、信号
線68を介して供給されたロード物理アドレスPAi
が、BRR制御回路8の制御のもとでセレクタ55,5
6により選択され、同アドレスPAiの所定フィールド
で指定される大容量物理キャッシュ5の(ディレクトリ
部51、データ部52、ポインタ部53およびVビット
部54の)エントリがライトアクセスされる。
【0093】これにより、大容量物理キャッシュ5のデ
ータ部52の指定エントリには、セレクタ16によって
信号線63上に選択出力された主記憶制御部からのブロ
ックデータが書込まれる。同時に、大容量物理キャッシ
ュ5のディレクトリ部51の指定エントリには、(セレ
クタ55の選択対象となった)信号線68上のロード物
理アドレスPAiの所定フィールド(物理アドレスタグ
相当部分)が書込まれる。また、大容量物理キャッシュ
5のポインタ部53の指定エントリには、信号線69を
介して供給されたVAi中の小容量仮想キャッシュ3内
エントリ指定部分が、小容量仮想キャッシュ3における
ブロックデータ登録先エントリ(置換え対象エントリ)
を示す新ポインタとして書込まれる。また、大容量物理
キャッシュ5のVビット部54の指定エントリには、ア
クティブなVビットが書込まれる。
【0094】以上に述べたブロックリード処理の一連の
動作を、図6のタイミングチャートに整理して示す。図
中のTi が上記説明における第iサイクルに相当する点
は図5と同様である。
【0095】なお、小容量仮想キャッシュ3および大容
量物理キャッシュ5がセットアソシアティブ方式を適用
している場合には、大容量物理キャッシュ5について
は、PAi(の指定フィールド)によって指定される各
セット(way)の同一ラインのエントリのうちの1エ
ントリ、例えば最も以前に参照されたエントリを置換え
対象エントリとして、ブロックデータの登録処理を行え
ばよい。同様に、小容量仮想キャッシュ3については、
VAi(の所定フィールド)によって指定される各セッ
ト(way)の同一ラインのエントリのうちの1エント
リ、例えば最も以前に参照されたエントリを置換え対象
エントリとして、ブロックデータの登録処理を行えばよ
い。
【0096】次に、他プロセッサからの主記憶更新時に
おける主記憶とキャッシュとの一致化のためのエントリ
無効化処理について説明する。まず、図1のキャッシュ
メモリ装置の無効化制御回路11は、他プロセッサから
主記憶装置(の主記憶制御部)に出される主記憶更新要
求を監視している。もし、他プロセッサから主記憶更新
要求が出された場合には、無効化制御回路11は他プロ
セッサからの主記憶ライトアドレス(物理アドレス)が
大容量物理キャッシュ5にヒットしているか否か(即ち
主記憶ライトアドレスの指定するデータが大容量物理キ
ャッシュ5の対応エントリに存在するか否か)を調べ
る。これは、TLB4によって変換された物理アドレス
を用いた大容量物理キャッシュ5内エントリの参照時と
同様に、例えば主記憶ライトアドレスを信号線66に送
出してセレクタ55,56により選択させることで実現
できる。
【0097】無効化制御回路11は、他プロセッサから
の主記憶ライトアドレスが大容量物理キャッシュ5にヒ
ットしたことを検出した場合、以下に述べる無効化処理
(キャッシュ一致化処理)を3サイクルで実行する。
【0098】(1)第1サイクル 無効化制御回路11は上記のキャッシュヒットを検出す
ると、ヒットした主記憶ライトアドレスを無効化物理ア
ドレスとして、そのサイクル(第1サイクル)の終了時
に無効化アドレスレジスタ(IPA1)12に保持す
る。
【0099】(2)第2サイクル 第2サイクルでは、無効化アドレスレジスタ12に保持
された無効化物理アドレス(IPA1)が信号線67を
介して大容量物理キャッシュ5に供給され、セレクタ5
5,56により選択される。これにより、無効化物理ア
ドレス(IPA1)の所定フィールドで指定される大容
量物理キャッシュ5の(ディレクトリ部51、データ部
52、ポインタ部53およびVビット部54の)エント
リがリードアクセスされる。
【0100】大容量物理キャッシュ5がリードアクセス
されると、同キャッシュ5のポインタ部53の該当エン
トリに保持されているポインタが信号線74上に読出さ
れ、無効化制御回路11の制御により本サイクル(第2
サイクル)の終了時に、無効化エントリポインタレジス
タ(IPT2)14に保持される。同時に、無効化アド
レスレジスタ12に保持されている無効化物理アドレス
(IPA1)が無効化アドレスレジスタ(IPA2)1
3に移動保持される。
【0101】(3)第3サイクル 第3サイクルでは、無効化エントリポインタレジスタ1
4に保持されているポインタ(IPT2)が信号線65
を介して小容量仮想キャッシュ3に供給され、セレクタ
35により選択される。そして、このポインタ(IPT
2)で指定される小容量仮想キャッシュ3のVビット部
33のエントリが、無効化制御回路11の制御のもとで
ライトアクセスされ、同エントリにインアクティブなV
ビットが書込まれる。これにより、他プロセッサからの
主記憶ライトアドレスによってヒットした大容量物理キ
ャッシュ5内エントリと同じデータを保持していた小容
量仮想キャッシュ3内エントリが無効化される。
【0102】一方、無効化アドレスレジスタ13に保持
されている無効化物理アドレス(IPA2)は信号線7
0を介して大容量物理キャッシュ5に供給され、セレク
タ56によって選択される。そして、この無効化物理ア
ドレス(IPA2)で指定される大容量物理キャッシュ
5のVビット部54のエントリが、無効化制御回路11
の制御のもとでライトアクセスされ、同エントリにイン
アクティブなVビットが書込まれる。これにより、他プ
ロセッサからの主記憶ライトアドレスによってヒットし
た大容量物理キャッシュ5内エントリが無効化される。
【0103】このように本実施例では、他プロセッサか
らの主記憶更新要求を検出すると、その要求に伴う他プ
ロセッサからの主記憶ライトアドレス(物理アドレス)
によって大容量物理キャッシュ5のヒットチェックを行
い、同キャッシュ5がヒットしていた場合には、そのヒ
ットエントリを無効化するようにしている。また、その
ヒットエントリに保持されているポインタをもとに、同
ポインタの指定する小容量仮想キャッシュ3内エントリ
も自動的に無効化するようにしている。
【0104】以上の無効化方式によれば、他プロセッサ
からの主記憶ライトアドレスをITB等により仮想アド
レスに逆変換して小容量仮想キャッシュ3のヒットチェ
ックを行う必要がなく、極めて簡単に且つ高速に無効化
処理が行える。
【0105】以上に述べた無効化処理の一連の動作を、
図7のタイミングチャートに整理して示す。図中のTi
が上記説明における第iサイクルに相当する点は図5,
図6と同様である。
【0106】なお、本実施例では、小容量仮想キャッシ
ュ3がダイレクトマッピング方式を適用しているものと
して説明しているが、セットアソシアティブ方式を適用
している場合にも同様に無効化処理が行える。
【0107】最後に、演算制御部からの書込み要求(ス
トアリクエスト)時の動作を簡単に説明する。まず、小
容量仮想キャッシュ3および大容量物理キャッシュ5が
いずれもミスヒットとなった場合には、主記憶更新だけ
が行われる。
【0108】次に、大容量物理キャッシュ5がヒットし
た場合には、そのヒットエントリのデータ部が更新され
る。もし、主記憶更新方式としてライトスルー方式を適
用しているならば、主記憶も更新される。これに対して
ライトバック方式を適用しているならば、主記憶更新に
代えて、ヒットエントリの所定フィールドに主記憶更新
未完了フラグが立てられる。
【0109】このとき、小容量仮想キャッシュ3につい
ては、ヒット/ミスヒットに無関係に、大容量物理キャ
ッシュ5のヒットエントリに保持されているポインタの
指定する小容量仮想キャッシュ3内エントリが無効化さ
れる。
【0110】なお、前記実施例では、大容量物理キャッ
シュ5のポインタ部53の各エントリに保持されるポイ
ンタが、小容量仮想キャッシュ3内エントリを直接示す
ものとして説明したが、これに限るものではない。例え
ば、小容量仮想キャッシュ3内エントリを指定するp+
rビットのエントリアドレスの下位のrビット(ページ
内オフセットの上位rビット)をポインタとして用い、
小容量仮想キャッシュ3内エントリを無効化する際に
は、このrビットポインタの上位側に仮想アドレスVA
i中の仮想ページアドレスの下位rビットを連結して無
効化対象エントリを指定するようにしてもよい。この場
合、ポインタ部53のサイズを小さくすることができ
る。
【0111】
【発明の効果】以上詳述したようにこの発明によれば、
小容量仮想キャッシュと大容量物理キャッシュとを設け
て並行動作させると共に、小容量仮想キャッシュには大
容量物理キャッシュに保持されているデータの一部だけ
が保持される構成としたので、小容量仮想キャッシュ中
に目的データが保持されていれば(小容量仮想キャッシ
ュでヒットすれば)、大容量物理キャッシュ中にもその
データは必ず存在することになり、小容量仮想キャッシ
ュで決まる高速アクセス性能を持ちながら、実質的なキ
ャッシュ容量を大容量物理キャッシュの容量と等しくす
ることができ、高速アクセスが行えて、ヒット率も高い
キャッシュメモリ装置が実現できる。
【0112】また、この発明によれば、小容量仮想キャ
ッシュのエントリのデータは必ず大容量物理キャッシュ
中に存在し、且つ大容量物理キャッシュのエントリに
は、そのエントリと同一のデータが保持されている小容
量仮想キャッシュのエントリを指すポインタが付されて
いることから、他プロセッサによる主記憶更新時には、
他プロセッサからのライトアドレス(物理アドレス)を
そのまま用いて物理キャッシュをアクセスしてヒットチ
ェックを行い、ヒットが検出されたならば、そのヒット
エントリを無効化すると共に、同エントリに付されてい
るポインタの指定する仮想キャッシュ内エントリを無効
化すればよく、高速化のために仮想キャッシュだけの構
成とする従来方式と異なり、他プロセッサからのライト
アドレスを仮想アドレスに逆変換して仮想キャッシュで
のヒットチェックを行う必要がないため、無効化処理
(キャッシュ一致化処理)が極めて高速に行え、しかも
逆変換バッファ(ITB)等のハードウェアが不要とな
る。
【図面の簡単な説明】
【図1】この発明の一実施例に係るキャッシュメモリ装
置の構成を示すブロック図。
【図2】図1に示す小容量仮想キャッシュ3の構成を示
すブロック図。
【図3】図1に示すTLB4の構成を示すブロック図。
【図4】図1に示す大容量物理キャッシュ5の構成を示
すブロック図。
【図5】同実施例におけるアップロード処理を説明する
ためのタイミングチャート。
【図6】同実施例におけるブロックリード処理を説明す
るためのタイミングチャート。
【図7】同実施例における無効化処理を説明するための
タイミングチャート。
【符号の説明】
1…演算制御部、2…リクエストレジスタ、3…小容量
仮想キャッシュ、4…TLB、5…大容量物理キャッシ
ュ、6…BRRバッファ(ブロックリードリクエストバ
ッファ)、8…BRR制御回路(プロリードリクエスト
制御回路)、9…主記憶インタフェース回路、11…無
効化制御回路、12,13…無効化アドレスレジスタ、
14…無効化エントリポインタレジスタ、15,16,
34,35,55,56…セレクタ、31,51…ディ
レクトリ部、32,52…データ部、33,54…Vビ
ット部、53…ポインタ部。

Claims (6)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=16234324

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JPH0535592A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007504552A (ja) * 2003-09-03 2007-03-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ
JP2010282520A (ja) * 2009-06-08 2010-12-16 Nec Corp コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007504552A (ja) * 2003-09-03 2007-03-01 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの電力を削減するためのマイクロtlbおよびマイクロタグ
JP2010282520A (ja) * 2009-06-08 2010-12-16 Nec Corp コヒーレンシ制御システム、コヒーレンシ制御装置及びコヒーレンシ制御方法
US8578103B2 (en) 2009-06-08 2013-11-05 Nec Corporation Coherency control system, coherency control apparatus and coherency control method

Similar Documents

Publication Publication Date Title
US5586283A (en) Method and apparatus for the reduction of tablewalk latencies in a translation look aside buffer
JP3821644B2 (ja) 旧キャッシュラインを無効化および除去する装置
US5751990A (en) Abridged virtual address cache directory
JP4065660B2 (ja) 機能が並列に分散された変換索引バッファ
EP0408058B1 (en) Microprocessor
JP3666689B2 (ja) 仮想アドレス変換方法
KR20010101694A (ko) 가상 메모리 시스템에서의 메모리 접근 개선 기술
JPH03142644A (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US5530823A (en) Hit enhancement circuit for page-table-look-aside-buffer
US5179675A (en) Data processing system with cache memory addressable by virtual and physical address
US5737575A (en) Interleaved key memory with multi-page key cache
EP0519685A1 (en) Address translation
JPH0519176B2 (ja)
JP3210637B2 (ja) データ処理システム内のキャッシュ・メモリにアクセスするための方法およびシステム
JPH1091521A (ja) 二重ディレクトリー仮想キャッシュ及びその制御方法
JPH0535592A (ja) キヤツシユメモリ装置
US5649155A (en) Cache memory accessed by continuation requests
US5838946A (en) Method and apparatus for accomplishing processor read of selected information through a cache memory
JPH0535591A (ja) キヤツシユメモリ装置
JPH0535589A (ja) キヤツシユメモリ装置
EP0224168A2 (en) Buffer storage control system
JPH0520195A (ja) キヤツシユメモリ制御装置
JPH05342101A (ja) 階層キャッシュ・メモリ
JP2507785B2 (ja) ペ―ジテ―ブルエントリ無効化装置
JPH0546481A (ja) アドレス変換バツフア機構