JPH0555898B2 - - Google Patents
Info
- Publication number
- JPH0555898B2 JPH0555898B2 JP62106530A JP10653087A JPH0555898B2 JP H0555898 B2 JPH0555898 B2 JP H0555898B2 JP 62106530 A JP62106530 A JP 62106530A JP 10653087 A JP10653087 A JP 10653087A JP H0555898 B2 JPH0555898 B2 JP H0555898B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- address
- entry
- directory
- cpu
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
- G06F12/1063—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache the data cache being concurrently virtually addressed
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
A 産業上の利用分野
本発明はCPUと記憶装置との間のデータ又は
命令のアクセスの高速化を図るキヤツシユを含む
データ処理システムに関する。 B 従来技術 従来技術によれば、1つのCPUが直接にアク
セスできるような階層の最下位レベルL1にある
専用のキヤツシユを1以上有する多重レベル記憶
階層で構成されるデータ処理システムがある。こ
のようなキヤツシユは高速アクセスのためCPU
を近接させる目的のものである。各キヤツシユは
各キヤツシユに都合のよい長さのデータラインを
有する。したがつて、キヤツシユごとに異なる場
合がある。従来技術によれば、最下位レベルL1
のキヤツシユの各エントリのラインの長さの整数
倍のライン長を有する第2レベルL2のキヤツシ
ユを含むシステムもある。 メインフレームのCPUは、要求されるアドレ
ス源としての命令ユニツト、変換索引緩衝機構
(TLB)、L1のキヤツシユとそのレベルのデイレ
クトリ、L2のキヤツシユとそのレベルのデイレ
クトリを含むものが多い。 キヤツシユの能率はシステムの性能にとつて重
要である。キヤツシユの能率を測定する重要なパ
ラメータは、CPUの命令ユニツトより記憶装置
要求アドレスが利用できるようになつてから要求
されたデータがその命令ユニツトで利用できるよ
うになるまでの間の平均時間である。この期間
は、普通、幾つかのマシンサイクルで測定され
る。キヤツシユの能率はこのパラメータが減少す
るにつれて上がる。 従来のシステムは次のように動作することがで
きる。命令ユニツトより要求された記憶装置アド
レス(以下、「要求アドレス」ともいう)は実ア
ドレス、絶対アドレス、又は仮想アドレスのいず
れともなり得る。もしこれが仮想アドレスである
ときは、その要求アドレスを含むページアドレス
はそのページの実アドレス又は絶対アドレスを
TLBのエントリに置く動的アドレス変換手段
(DAT)によつて既に変換されているかもしれな
いので、その要求アドレスによつてTLBがアク
セスされて、変換されたアドレスが取得される。
要求された変換をTLBのエントリが含んでいな
いときは、要求された仮想アドレスがDATによ
つて変換され、これがTLBに置かれる(したが
つて後でそこからアクセスすることができる)。
その後、要求された仮想アドレスは、一定期間不
使用との理由で置換されるまでは、変換された対
応する実アドレスは仮想アドレスをTLBから取
得するためTLBを表引きし比較することを求め
るだけである。 DATは仮想アドレスを実アドレスに変換し、
これは単一プロセツサのTLBに置かれる。 しかしながら、もしCPUが多重プロセツサに
おいて存在するものである場合は、変換された実
アドレスに接頭部アドレスが付加されて絶対アド
レスが生成され、仮想的な要求の絶対アドレスが
TLBに置かれる。 もしCPUが実アドレスを要求するなら、変換
は全く行われないが、CPUが多重プロセツサお
いて存在する場合は、要求された実アドレスに接
頭部アドレスが付加されて絶対アドレスが生成さ
れる。 CPUの要求した実アドレスは従来のCPUによ
つて様々なやり方で処理されてきた。 たとえば、仮想アドレスを取扱うのと同じ方法
で実アドレス又は絶対アドレスをTLBに置くや
り方や、キヤツシユにおいてアクセスを試行する
ためL1キヤツシユに対してTLBをバイパスさせ
るやり方がある。後者は変換の必要のないアドレ
スについてTLBを使うことを避けるためである。 IBMシステム/370のアーキテクチヤにおける
DATのオペレーシヨンではセグメントテーブル
記述子(STD)が用いられる。これはセグメン
トテーブル源(STO)及びセグメントテーブル
長(STL)を含む。 多重アドレス空間を用いたシステムでは、
STOは要求された仮想アドレスを含む仮想アド
レス空間を識別するための、各々の要求された仮
想アドレス部分である。STO又はSTOの識別子
は仮想アドレス部分として既にTLBの各エント
リに置かれている。アクセスされたTLBのエン
トリにあるSTOは、TLBのアドレス変換を捜す
にあたつて、各々の要求された仮想アドレスと比
較しなければならない。その後は、要求されたデ
ータをキヤツシユでアクセスする場合、及び必要
なときは主記憶装置でアクセスする場合に、変換
されたアドレスだけが使用される。従来技術によ
つては、最近に使用された全てのSTOとその
STOより少ないビツト数の対応するSTO識別子
とを含むSTO識別子テーブルを使つて、TLB回
路アレイを小さいサイズにできるよう、STOの
代わりにSTO識別子をTLBに置くようにしたシ
ステムもある。このようにしたのは、小さいアレ
イならより高速のアクセスが可能となるからであ
る。 従来のキヤツシユデイレクトリにおいては、セ
ツトアソシアテイブ構成が採られ、そこではキヤ
ツシユデイレクトリの1つの行(“コングルエン
スクラス”ともいう)が命令ユニツトの供給した
各々のアドレス(実/絶対アドレス、又は仮想ア
ドレス)によつて選択されていた。しかも、各行
はエントリの1セツトで構成される。これらのエ
ントリ(“ビン(bin)”又は“ビン識別子”とも
いう)はアソシアテイブ式に取扱われる。すなわ
ち、各コングルエンスクラスはセツトアソシアテ
イブ式である。このやり方だと、デイレクトリの
行の選択はTLBのアドレス変換が完了する前に
なされる。TLBの変換アドレスが利用できるよ
うになる前にキヤツシユのコングルエンスを選択
するためである。これにより、CPUにおけるキ
ヤツシユアクセスの高速化が図れる。 従来のキヤツシユでは、変換されたアドレスだ
けがキヤツシユデイレクトリに置かれていた。す
なわち、実/絶対アドレス表示が、使用されるキ
ヤツシユの各エントリに設けられた。この実アド
レスは命令ユニツトの要求した各アドレスによつ
て選択されたコングルエンスクラスにおけるデイ
レクトリの各エントリから読み取られる。読み取
られた実アドレスのセツトは、個々の比較回路に
到着し、また、TLBで変換されたアドレスもこ
れらの比較回路に同時に到着する。そして、選択
されたコングルエンスクラスからどのアドレス群
が、変換された要求アドレスと一致するかをみつ
けるため、同時に比較が行われる。すなわち、こ
れがキヤツシユについてのセツトアソシアテイブ
式比較法である。 この従来のオペレーシヨンは、L1キヤツシユ
のヒツトが得られる前にTLBのヒツトが必要で
あつた。もしTLBのミスが生じると、L1キヤツ
シユの判断は、TLBのミスオペレーシヨンが
DATのオペレーシヨンにより完了するまで待た
ねばならない。したがつて、L1キヤツシユのオ
ペレーシヨンは現CPUの要求に関するDATのオ
ペレーシヨンで新たな変換がTLBに置かれた後
に再開されていた。また、TLBのミスは動的ア
ドレス変換(DAT)を必要とし、このDATが比
較的低速の主記憶装置における変換テーブルのア
クセスを2回必要としていた。 既知の商用のL1キヤツシユは仮想アドレスを
含んでいないということに留意されたい。そうし
たキヤツシユのアドレスは実/絶対アドレスであ
るから、これらはTLBの出力する実/絶対アド
レスと比較できる。仮想アドレスの値は実/絶対
アドレスの値とは比較できない。というのは、仮
想アドレスは主記憶装置で利用できる任意の実ペ
ージアドレスに変換しうるからである。 したがつて、従来のL1キヤツシユのデイレク
トリは、1つの対応するL1デイレクトリアドレ
スが存在するかしないか(すなわち、L1キヤツ
シユのヒツト又はミス)を検出する前に順次的に
生ずる2つの比較オペレーシヨンを必要としてい
た。L1のヒツトが生ずる場合は、そのデータは
(通常はダブルワードである)L1キヤツシユでア
クセスされCPUに送られる。 米国特許第4495575号はL1キヤツシユに対応す
る単一のバツフアを有するものである。ただしこ
のキヤツシユは、CPUだけでなくI/Oチヤネ
ルによつてもアクセスされるのでCPU専用のも
のではない。そのキヤツシユデイレクトリのエン
トリは、空間ID及びブロツクアドレスから成る
“合計のデータ”を各々有している。これらの空
間ID及びブロツクアドレスは、CPU又はチヤネ
ルからレジスタ46に受け取られた仮想アドレス
の空間ID及びブロツクアドレスと比較される。
バツフアのミスの際、アドレス変換テーブル61
が実アドレスをMM22に供給してデータを取得
する。 従来のキヤツシユシステムは全て、L1キヤツ
シユミスで、記憶階層における次の上位のレベル
からの要求データのアクセスを必要とする。 L2レベルのキヤツシユがそのキヤツシユシス
テムに存在する場合、L2は主記憶装置の代わり
にアクセスされて、L2がデータを含むなら、L1
及びCPUの両方に要求データが供給される。L2
キヤツシユが要求データを含まないなら、主記憶
装置がそれについてアクセスされる。L2キヤツ
シユのミスを判断するためのアクセスタイムは、
要求データについての全体のアクセスタイムに加
えられる。実/絶対アドレスは従来はL2キヤツ
シユのデイレクトリをアクセスするのに使用され
ている。このL2キヤツシユのデイレクトリは、
仮想アドレスがCPUによつて要求されていると
きにTLBの出力を要求する。 従来のキヤツシユシステムでは全て、TLBの
ミスの発生はL1キヤツシユのデイレクトリのミ
スとは無関係に生じうる。うまい具合に、ほとん
どのCPUの要求(90%以上)は、TLB及びキヤ
ツシユの両方においてヒツトする。これが、
TLB及びキヤツシユを使用する理由である。 L2キヤツシユの基本的な要件は、そのサイズ
が大きいことである。たとえば、L1キヤツシユ
の数倍である。したがつて、L2はL1と比べて、
主記憶装置におけるより多くのページからのデー
タを含む可能性がある。しかしながら、TLBは
L2に存在するデータを表わす全てのページ変換
を含むに十分なサイズを普通は有していないとい
う点で根本的に問題がある。その結果、要求され
たラインのデータがL2キヤツシユの中に存在す
ることができてもそのTLBのエントリは現要求
がなされる前に置換されてしまうことがあり、し
たがつてTLBのミスが生じ、そのような従来の
システムではデータ取得のためにL2キヤツシユ
がアクセスできる前に関連するDATのオペレー
シヨンをそのTLBについて完了しなければなら
ない。 米国特許第4464712号では、ページ変換をする
TLBのエントリはL2キヤツシユにおけるページ
サイズのラインに対応する。この特許はTLBか
ら独立したL2キヤツシユデイレクトリを有する
ものである。TLBのエントリの置換オペレーシ
ヨンごとにTLBから出力される絶対アドレスで
L2のエントリ中において置換しうるフラグビツ
トRを捜してこれの設定を制御し、L2キヤツシ
ユのデイレクトリにおけるラインのエントリにつ
いてLRUによる置換選択を管理する。この場合、
TLBとL2との間には次のような関係が必要とな
る。すなわち、L2が、TLBで管理されるページ
サイズ(たとえば、4096バイト)と等しいライン
サイズを有することである。 C 問題点を解決するための手段 したがつて、本発明はTLBによるアドレス変
換を用いないでキヤツシユヒツトの判断をするこ
とにより、上記のような従来のキヤツシユシステ
ムの問題点を解決することを目的としている。 プロセツサと、変換索引緩衝機構(TLB)と、
主記憶装置とを含み実モードと仮想モードとの切
換えができるようなデータ処理システムにおい
て、本発明のキヤツシユ機構は、(a)キヤツシユ
と、(b)論理アドレスと、この論理アドレスが実/
絶対アドレスであるのか又は仮想アドレスである
のかを示す標識とを有する複数のエントリを備え
たデイレクトリと、(c)プロセツサによつて要求さ
れた論理アドレスと、この論理アドレスが実/絶
対アドレスであるか又は仮想アドレスであるかを
示す標識とを上記デイレクトリに供給する手段
と、(d)プロセツサによつて要求された論理アドレ
スを受け取つて上記デイレクトリにおいてヒツト
の可能性のある1以上のエントリを含む1つのセ
ツトを選択する共通デイレクトリと、(e)このセツ
ト中におけるヒツトの可能性のあるエントリにつ
いてプロセツサによつて要求された論理アドレス
及び標識とこのエントリにおける論理アドレス及
び標識とを比較することにより、変換索引緩衝機
構のアドレス変換を使用することなく、ヒツトエ
ントリが存在するか否かを判断するヒツト判断手
段と、を具備することを特徴としている。 本発明の作用は以下の実施例と共に説明する。 D 実施例 はじめに、実施例を概説する。 実施例によれば、CPUに専用に利用できるキ
ヤツシユのサイズを大きくしつつキヤツシユアク
セスについての重要な経路を減らすことができ
る。本実施例では、仮想アドレス指定と実アドレ
ス指定とを任意に切り換えることのできるような
CPUを使用することがきる。このようなモード
の切換えは、“動的アドレス変換(DAT)”の状
態のオン・オフを切り換える“プログラム状況ワ
ード(PSW)”によつてIBMシステム/370の論
理アドレス指定を使用する場合に生ずる。 本実施例では、キヤツシユデイレクトリの各エ
ントリにアドレスモード標識を設けて、これによ
り、そのエントリが実/絶対アドレスを表わすの
か又は仮想アドレスを表わすのかを示す。この標
識を使うと、CPUが切換可能モードの論理アド
レス指定機構を使用する場合でも、CPUからキ
ヤツシユへのアクセス経路においてTLBオペレ
ーシヨンをなくすことができる。 本実施例では、さらに、キヤツシユデイレクト
リの各エントリにアドレスモードフラグフイール
ドを設けて、これにより、そのエントリに表示さ
れたアドレスがいかなるアドレス空間からも変換
されない実/絶対アドレスであるのか、又はそれ
が仮想アドレスであるのかを示す。このアドレス
モードフラグフイールドを使うと、CPUが切換
可能モードの論理アドレス指定機構を使用する場
合、CPUからキヤツシユへのアクセス経路にお
いてTLBオペレーシヨンをなくすことができる。 また、所定の値を用いてアドレスモード標識
(アドレスモードフラグフイールドの代用として)
又はアドレス空間名内の範囲の値をキヤツシユデ
イレクトリの各エントリに設け、次の事項を示
す。すなわち、(1)エントリに表示されたアドレス
がいかなるアドレス空間からも変換されない実/
絶対アドレスであり、かつ、そのアドレス空間名
フイールドがどのアドレス空間名をもあらわさな
いこと、又は(2)エントリに表示されたアドレスが
仮想アドレスであり、かつ、そのアドレス空間名
フイールドがその仮想アドレスを含むアドレス空
間の名前をあらわすこと、である。このようにア
ドレス空間名フイールドを管理すると、CPUが
切換可能なモードで論理アドレス指定を用いる場
合、CPUからキヤツシユのアクセス経路から
TLBオペレーシヨンをなくすことができる。 本実施例は多重レベル記憶階層を含むデータ処
理システムに関する。このデータ処理システムは
単一のCPUに専用で(他のプロセツサとは共有
せずに)複数の階層レベルを有することができ
る。ここではキヤツシユは互いに近接しまた
CPUとも近接している。最下位のキヤツシユの
レベルL1はCPUの要求のアクセスに関して最も
速いレベルであり、記憶容量は最も小さいレベル
である。次のレベルL2のキヤツシユはCPUの要
求のアクセスに関して次に速く、また記憶容量は
L1に比べて大きい。他の上位のキヤツシユ(L3,
L4,……)をより大きな記憶容量を実現するた
めに設けることができる。しかし、アクセスの速
度はだんだん遅くなる。したがつて、要求したデ
ータ又は命令を取得するため階層レベルのより上
位をアクセス要求が欲すればそれだけCPUのア
クセスタイムも長くなる。 専用の個々の階層レベルにある個々のキヤツシ
ユのサイズはそのキヤツシユによつて都合のよい
ライン長で多数のラインデータを収容できるよう
に柔軟に設計される。下位レベルの各専用キヤツ
シユの使用するライン長は上位レベルの専用キヤ
ツシユのライン長の約数となつている。理論的に
は約数は任意にでき、キヤツシユごとに異なる値
にすることができる。このように、L1キヤツシ
ユにおける各ラインの長さはL2キヤツシユの各
ラインの長さの約数である。換言すれば、L2の
各ラインは複数のL1ラインから成り、L1ライン
はL2ラインの約数となる。したがつてL2ライン
の長さはL1ラインの整数倍となり得る。 CPUの要求は、その要求されたアドレスがど
こかの専用のキヤツシユのデイレクトリで利用で
きるデータのためのものであれば共通デイレクト
リにおいて“ビツト”となる。要求されたデータ
は、要求されたデータまたは命令が利用可能な最
下位レベルのキヤツシユにおいてアクセスされ
る。 CPUの各要求アドレス(変換可能な論理アド
レス)は共通キヤツシユデイレクトリにおける1
つのコングルエンスクラス及びそのCPUの各専
用キヤツシユにおける個々のコングルエンスクラ
スを同時にアドレス指定する。 共通キヤツシユデイレクトリにおける各エント
リは次のものを表わすことができる。 (a) 最上位の専用キヤツシユにおける個々のライ
ン (b) 1以上の下位レベルの専用キヤツシユにおい
て利用可能な各ライン部分のロケーシヨン 換言すれば、全てのレベルの専用キヤツシユに
おける対応部分は単一のデイレクトリエントリに
よつて、位置決めされる。この単一のデイレクト
リエントリは、このように、全ての専用キヤツシ
ユの対応部分を管理する“共通デイレクトリエン
トリ”である。したがつて、各デイレクトリエン
トリは、(a)最上位レベルの専用キヤツシユの1つ
のラインを表わし、(b)その階層においてその他の
任意のキヤツシユにコピーできるような同じライ
ンの各部分を追跡する。 最上位レベルの各ラインについてコピーされた
全ての部分を追跡するため、各デイレクトリエン
トリは“ライン存在フイールド(LPF)”を有し
ており、これによりそのエントリは全ての専用キ
ヤツシユにおけるそのライン部分の全てを管理で
きる。これを行うため、各デイレクトリエントリ
と共にLPFは次のことを示す。 (1) コピーされた部分を含む各々の他のキヤツシ
ユレベル (2) どのライン部分がその中にコピーされたかと
いうこと (3) その部分を含む各々の他のキヤツシユにおけ
るセツトアソシアテイブ位置(ただし、そのキ
ヤツシユがセツトアソシアテイブ式のキヤツシ
ユである場合) 項目(1)及び(2)は、専用キヤツシユレベルが2つ
しかない場合は1つのLPF標識に統合され、セ
ツトアソシアテイブ方式を使用しないキヤツシユ
レベルには項目(3)は使用する必要はない。 LPFは、1つのプロセツサについて単一の専
用キヤツシユしか取扱わないデイレクトリにおい
ては必要でない。したがつて、LPFは、複数の
専用キヤツシユを提供する共通デイレクトリにお
いて使用されるものである。 大型システムの多くは、現在、IBMシステ
ム/370のアーキテクチヤを使用している。この
アーキテクチヤにおいては、CPUは実/絶対ア
ドレスモードと仮想アドレスモードとの間でいつ
でもモードの切換を行うことができ、この場合、
実行中のプログラムにおけるCPUの有効な記憶
装置アドレスの割込みは現に存在しているアドレ
スモードで管理される。CPUのアドレス指定モ
ードは、仮想モード(たとえば、STO又はSTO
識別子を伴う仮想アドレス)と実モード(たとえ
ば、STO又はSTO識別子を伴わない実アドレス
又は絶対アドレス)との間でいつでもモードの切
換ができる。アドレス指定のこの切替可能なタイ
プは“S/370論理アドレス指定”と呼ばれ、
DATモードビツトと呼ばれるPSWビツト5で管
理される。 本実施例では、有効なキヤツシユデイレクトリ
エントリの各々はそのエントリを生成した要求の
使用したアドレスモードを示す。このようにして
示されたアドレスモードは、キヤツシユデイレク
トリの現在の状況についてデイレクトリエントリ
ごとに変えることができる。 本実施例においてCPUによる階層のアクセス
は、複数の専用キヤツシユにおいてCPUの要求
したデータを含む最下位(最高速)のキヤツシユ
に対し行われる。たとえば2つの専用キヤツシユ
L1及びL2が存在する場合は、いずれのキヤツシ
ユにおけるヒツトもアクセス経路においてTLB
の使用を避ける。すなわちL1がミスでL2がヒツ
トだと、データアクセスオペレーシヨンにおいて
TLBの関与は回避される。 好適な実施例では、各共通デイレクトリエント
リはLPFフイールド及び論理アドレス表示フイ
ールドの他に多数のフイールドを有している。た
とえば、無効(I)フイールド、STO又はSTO
識別フイールド、変更(CH)フイールド、及び
DATオン/オフ・フイールドである(DATオ
ン/オフ・フイールドは、DATオン/オフ機能
を付加的に遂行するためにSTOフイールドが一
意的に制御されない場合である)。(たとえば、
STOの値ゼロは、関連する論理アドレスが実ア
ドレス又は絶対アドレスである特別な場合を示す
のに使用でき、これでSTOの値ゼロがアドレス
空間識別子になるのを防止する。) その他のフラグフイールドは関連するラインに
ついての特定の状態を識別するためにデイレクト
リエントリに付加することができる。たとえば、
MP中のキヤツシユデイレクトリにおける排他
的/読取専用(EX)フイールドや、MVS環境に
おける共通仮想記憶装置領域を取扱うための共通
ビツト(C)である。 Iフイールドはデイレクトリエントリが複数の
どこかのキヤツシユに何らかのデータがあること
を表わすかどうかを示すものである。もしこれが
オンなら、エントリは有効なデータを表わさない
ことを示し、これがオフなら、エントリは少なく
とも上位レベルのキヤツシユに有効なラインがあ
ることを表わすのを示す。CHフイールドはデイ
レクトリエントリによつて表わされたデータが複
数のキヤツシユのいずれかで書き換えられた(す
なわち変更された)か否かを示すものである。も
し、これがオンなら、表示されたデータは変更さ
れたことを意味し、これがオフなら、有効なライ
ンは不変であることを意味する。EXフイールド
(通常は単一ビツト)は次のことを示すためMP
のキヤツシユデイレクトリで使用される。すなわ
ち、エントリによつて表わされるラインは排他的
なCPUのアクセスについて一時に単一のキヤツ
シユだけに存在しうるのかどうか、又は複数の
CPUによる共有アクセスを可能とするためその
ラインを複数のデイレクトリで同時に表示できる
かどうかを示すためである。 要求された論理アドレスの中央部から取得され
た中位のビツトは、共通デイレクトリ及び各キヤ
ツシユにおける可能なコングルエンスクラスを選
択するための選択アドレスとして使用される。各
コングルエンスクラスにおける全てのセツトアソ
シアテイブなエントリのロケーシヨンはあらかじ
め定められており、これらは、そのコングルエン
スクラスがアクセスされたとき可能なエントリと
して読み取られる。 可能なエントリの各々の読取りにおいて、Iフ
イールド、アドレス表示フイールド、LPFフイ
ールド、その他のエントリフイールドのロケーシ
ヨンもあらかじめ定められている。 各々の可能なエントリにおけるIフイールド
は、要求されたラインが最高位のレベルのキヤツ
シユに存在するかどうか(すなわち有効かどう
か)を調べるために検査される。もしIフイール
ドが、選択されたコングルエンスクラスの全ての
エントリにおいてオンであるとき、要求ライン
は、どの専用キヤツシユにもなく、キヤツシユミ
スが示される。そうして、ミスの生じたその要求
についてキヤツシユデイレクトリのエントリが割
り当てられる。新しいデイレクトリエントリのコ
ングルエンスクラスはその要求アドレス中の中位
のビツトによつて決まる。そのコングルエンスク
ラス内におけるそのエントリに関するセツトアソ
シアテイブなロケーシヨンの1つがキヤツシユデ
イレクトリのLRU置換回路によつて割り当てら
れる。そのエントリにおけるIフイールドがセツ
トされて、エントリの内容が生成される。これ
は、割り当てられたフイールド及びサブフイール
ドと共にLPFを含む。これらのフイールドで、
最上位のキヤツシユにある要求されたライン、及
び各々の下位のキヤツシユにあるそれぞれのその
部分についてのロケーシヨンの割当てを決定す
る。同時に要求されたラインの取出し信号が主記
憶装置に送られる。取り出されたライン及びその
要求された部分は全てのキヤツシユの割り当てら
れたロケーシヨンにコピーされる。この主メモリ
ライン取出しは、TLBから出力された変換後の
ページアドレスと、通常の方法で要求されたペー
ジを定める要求された論理アドレスから下位グル
ープのビツトとを使用して行われる。 もしCPUの要求が、Iフイールドが少なくと
も1つの可能なエントリにおいてオフであること
をみつけると、その要求されたデータは上位のキ
ヤツシユに存在しうるのであり、また1つ(もし
あればそれ以上)の下位のキヤツシユに存在しう
るのである。次に、アドレスモード標識又はフイ
ールドが各有効エントリごとに調べられ、そのエ
ントリの表示しているアドレスが実/絶対又は仮
想なのかをみる。もしエントリの表示している論
理アドレスが仮想アドレスなら、そのSTO(又は
STO識別子)フイールド及びその論理アドレス
表示フイールドがCPUのSTO(又はSTO識別子)
及びその論理アドレスにおける上位グループのビ
ツトと、それぞれ比較される。もしエントリの論
理アドレスが実/絶対アドレスなら、STOはそ
の比較においていかなるアドレス空間名をも定め
ず、実/絶対標識として働くだけである。もし比
較されたフイールドが、有効な考えうるエントリ
について一致すれば、それについてキヤツシユヒ
ツトが存在する。 このキヤツシユヒツトしたエントリにおいて、
次のことを調べるためLPFを検査しなければな
らない。すなわち、もしあれば要求されたデータ
がどの下位レベルのキヤツシユに含まれているの
かということと、そのコングルエンスクラスにお
けるセツトアソシアテイブなロケーシヨンとを判
断する。これを行うため、その中位グループの次
の下位ビツト(又は所定の一群のビツト)も要求
論理アドレスから取得される。これは、読み取ら
れた各エントリのLPF内において正しいサブフ
イールド(及びもしあればサブ・サブフイール
ド)を捜すためである。このサブフイールドのは
じまりのところにある存在ビツトは、要求された
ラインが最下位レベルのキヤツシユに存在するか
どうか(すなわち、有効かどうか)をみるために
検査される。 最下位ビツトグループも要求論理アドレスから
取得され、これを用いて、選択されたラインにお
いて要求データを選択する。 もし選択されたLPFサブフイールドにおける
ライン存在ビツトがオフなら、要求ラインは関連
するキヤツシユには存在せず、したがつてその要
求ラインは、その要求データを含む最も下位のキ
ヤツシユであるより上位のキヤツシユにおいてア
クセスされ、そのデータはこの上位キヤツシユか
ら、下位のキヤツシユにコピーされる。 ストアイン式キヤツシユである下位レベルのキ
ヤツシユにプロセツサがデータを書き込むとき
は、その同じデータはどの上位キヤツシユにも書
き込まれない。しかし、各上位キヤツシユが“ス
トアスルー”式のキヤツシユであれば、1つのラ
インがその下位レベルのキヤツシユから追い出さ
れるときは、それは各上位レベルのキヤツシユ及
び主記憶装置に記憶されることとなる。 デイレクトリにおいてキヤツシユヒツトがあつ
て、TLBのミス及びDATのオペレーシヨンが生
ずる場合でも、そのキヤツシユのアクセスは、
DATオペレーシヨン又はTLBオペレーシヨンに
関与せずに(待たずに)前述と同様にして行われ
る。TLBミスについてのDATオペレーシヨンは
キヤツシユアクセスオペレーシヨンと並行して行
われる。上位キヤツシユはTLBが保持できる変
換よりも多くのページからのラインを保持でき
る。というのは、少なくとも最上位のキヤツシユ
において現に利用できるラインを含むページにつ
いて変換がそのTLBに存在しないことが多いか
らである。CPUの要求に対してDAT及びTLBが
機能している間に、その同じ要求データはそれを
有する最下位レベルのキヤツシユからCPUに転
送することができる。 したがつて、要求データはそれが利用できる最
下位の(最高速の)キヤツシユでアクセスされ
る。 専用キヤツシユレベルが2つの場合を例にして
これを説明する。1つのライン存在フイールド
(LPF)はそのデイレクトリにおける各エントリ
に含まれる。これは次のことを示すためである。
すなわち、L1のヒツトがいつ生じたのかの判断
を助ける目的で、もしあればどのL2部分(すな
わち、L2デイレクトリエントリに表示されたL2
のサブライン)がL1キヤツシユのプロセツサに
現在利用可能かを示すためである。各LPFはL2
キヤツシユにおける各ラインについて複数のサブ
フイールドを有する。L2の各サブフイールドは、
そのアドレス指定されたL2ラインにおけるL2サ
ブラインを表わす。このL2ラインはL1キヤツシ
ユにおけるL1ラインにコピーできたものであり、
上記L2サブラインはL1キヤツシユ上で1つのL1
ラインとなる。もしセツトアソシアテイブ式の
L1キヤツシユを使用すれば、LPFもまた1つの
L1のビン番号を有する。これは要求データを含
むことのできるアドレス指定されたL1のコング
ルエンスクラスにおけるセツトアソシアテイブな
ロケーシヨンを選択するためである。このL1の
ロケーシヨンは、もし要求されたアドレスが共通
デイレクトリ内で“ヒツト”すれば、その要求デ
ータを有するL1ラインを含むこととなる。共通
デイレクトリが“ヒツト”するためには、アドレ
スの“ヒツト”及び一意的なLPFの“ヒツト”
の両方が必要である。 この2つのレベルの専用キヤツシユの例では、
各デイレクトリエントリ中のLPFはL1キヤツシ
ユにおいて対応するコングルエンスクラスでみつ
かる関連するセツトにそれぞれ対応する複数のセ
ツトから成る場合がある。各LPFセツトは複数
ビツトのフイールドを有することができ、その1
つのビツトで、個々のL2サブラインがL1のコン
グルエンスクラスに存するかどうかを表わし、そ
のLPFセツトにおける組合せ的な残りのビツト
で、個々のL2サブラインを含む特定のセツトア
ソシアテイブなL1ラインを表わす。 個々のL2サブラインについてのLPFはそのア
ドレス指定されたL1のコングルエンスクラスの
任意のセツトアソシアテイブなラインを表わすこ
とができ、このクラスにはそのL2サブラインが
コピーされている(L2サブラインは1つのL1ラ
インとなる)。L2サブラインのコピーは、L2キヤ
ツシユからL1キヤツシユにおいてLRUで選択さ
れたセツトアソシアテイブなロケーシヨンへのサ
ブラインの取出しによつて行われる。 他の実施例では、1つのCPUについて3つの
専用キヤツシユL1,L2、及びL3が存在する場
合、共通デイレクトリエントリにおけるLPFは
基本的にはL2及びL1のサブラインのロケーシヨ
ンならびにL3のサブラインのロケーシヨンを表
わす。この例ではL3が最上位である。共通デイ
レクトリの各エントリにおけるLPFは、L2ライ
ンのロケーシヨンに現に存するそのL3サブライ
ンの存在を表わす一連のLPFサブフイールドを
有する。これらは、L3からL2へのサブラインの
取出しの際にセツトされる。この取出しには選択
されたL3サブフイールドを選択されたL2ライン
のロケーシヨンにコピーすることが含まれる。各
LPFサブフイールドはL2存在フラグビツトを有
し、このフラグで、そのL3サブラインがL2にコ
ピーされたか否かを示す。各LPFサブフイール
ドはL2セツトアソシアテイブを有し、これで、
アドレス指定されたL2のコングルエンスクラス
におけるセツトアソシアテイブなロケーシヨンを
示す。各LPFのL2セツトアソシアテイブサブフ
イールドはさらにL1に存在するそのL3サブサブ
ラインに対応する一連のL3アソシアテイブサブ
フイールドを有する。各LPFサブサブフイール
ドはL1存在フイールドを有し、これで、L3サブ
サブフイールドがL1にコピーされたかどうかを
示す。各LPFサブサブフイールドはさらにL1セ
ツトアソシアテイブフラグビツトを有し、これ
で、アドレス指定されたL1のコングルエンスク
ラスにおけるセツトアソシアテイブなロケーシヨ
ンを示す。したがつて、各L3サブサブフイール
ドはL3サブサブラインの倍数であり、そのうち
の任意の1つをL1の1つのラインロケーシヨン
にコピーできる。もしL3サブサブフイールドの
設定が要求されたサブサブラインがL1になくL2
あることを示したときは、そのサブサブラインは
L3からではなくL2から取り出される。というの
は、CPUの要求したデータを最も速くアクセス
できるのはこのやり方だからである。すなわち、
L3からL2へのコピーは異なるキヤツシユミスに
ついて早い時点なしうる。しかしながら、L3サ
ブサブフイールドが、要求されたL3のサブサブ
ラインがL1にもL2にもないということを示した
ときは、そのサブサブラインはL3からL2及びL2
の両方に取り出される。 専用キヤツシユのレベル数は理論的にはもつと
増やすことができる。ただし、専用キヤツシユの
レベル数が増えるにつれて、LPFの複雑さは指
数的に増大する。 本実施例によれば、同じCPUの要求について
TLBの変換アクセスを並行して行いながら、切
換可能な論理アドレスを使つてCPUは自身のキ
ヤツシユをアクセスすることができる。 共通デイレクトリキヤツシユシステムを適切に
機能させるため、シノニム及び相互間合せデイレ
クトリ(S/XI)構成を設ける。シノニムデイ
レクトリ(S)は各CPUごとに設けられ、その
CPUが多重プロセツサ(MP)システムに設けら
れる場合は相互間合せデイレクトリ(XI)とし
て機能する。TLBミスの際、TLBから出力され
る実/絶対アドレスは1つのコングルエンスクラ
スをみつけるためS/XIデイレクトリをアドレ
ス指定するのに使用される。このコングルエンス
クラスはセツトアソシアテイブなエントリを含む
可能性のあるものである。S/XIデイレクトリ
における各エントリは共通デイレクトリにおける
1つのエントリに対応するが、(S/XI)のコン
グルエンスクラスはキヤツシユデイレクトリのコ
ングルエンスクラスには対応しない。というの
は、キヤツシユのコングルエンスクラスは論理ア
ドレスによつてマツピングされ、一方、S/XI
デイレクトリのコングルエンスクラスは実/絶対
アドレスによつてマツピングされるからである。 LA及び実/絶対アドレスが関連している場合
(キヤツシユミスで普通に発生する)、共通デイレ
クトリにおける異なるコングルエンスクラス
(LAでマツピングされるもの)及びS/XIデイ
レクトリにおける異なるコングルエンスクラス
(実/絶対アドレスでマツピングされるもの)は
異なるデイレクトリにおいてみつけることができ
る。そうして、これらのデイレクトリの各々にお
ける直接的に関連するセツトアソシアテイブなエ
ントリが、個々のアドレスの上位ビツトを使つ
て、個別的にアドレス指定されたコングルエンス
クラスにおけるセツトアソシアテイブな比較によ
つてみつけられる。 ところが、絶対アドレスが既知で対応するLA
がわからない場合、又はその逆の場合がある。こ
れは、シノニム要求及びXIが要求の場合である。
本実施例においてビン番号の概念はこの問題の解
決のために用いられる。(この概念は、次のよう
な問題を解決するのにも用いらられる。すなわ
ち、使用中のLAに実/絶対アドレスが関与して
おらず、追出されるLIエントリに対応するL2サ
ブラインをみつけるのにL2エントリのビン番号
を使用するような、L1からL2への追出しを生ぜ
しめるセツトアソシアテイブなロケーシヨンの問
題である。) S/XIデイレクトリにおける実/絶対アドレ
スを使つてS/XIのヒツトエントリがみつかつ
た後、要求されたL2ラインをみつけるため
(S/XI)デイレクトリでSのヒツト又はXIのヒ
ツトを有する要求されたセツトアソシアテイブな
エントリをみつける目的で、(S/XI)エントリ
の各々にビン番号を設ける。論理アドレスの中位
のフイールド及びS/XIエントリのビン番号フ
イールドは、コングルエンスクラスと、Sのヒツ
ト又はXIのヒツトの有するS/XIデイレクトリ
と関連するCPUの共通デイレクトリにおいて要
求エントリが存在するセツトアソシアテイブなロ
ケーシヨンとを定める。ヒツトしたS/XIデイ
レクトリについてのビン番号及びCPU識別子で、
共通デイレクトリにおける正しいL2のセツトア
ソシアテイブなエントリをみつけることができ
る。そのエントリからのLPFはXIで誘導される
追出しに関してLにおける要求エントリをみつ
けるのに使用することができる。そうして、この
LPFのビツトを調べて、要求データを含む次の
下位レベルのキヤツシユにあるデータラインをみ
つける。 シノニムのヒツトと相互間合せのヒツトとの違
いは、その特定の要求をしたCPUと関連する
S/XIデイレクトリにおいてヒツトが生じたの
か、又は別のCPUに関連するS/XIデイレクト
リにおいてヒツトが生じたのかによつて決まる。
すなわち、前者ならシノニムのヒツトであり、後
者なら相互間合せのヒツトである。単一プロセツ
サ(UP)では、CPUの要求に対してシノニムデ
イレクトリとして働き、チヤネルの要求に対して
はXIデイレクトリとして働くただ1つのS/XI
デイレクトリが存在する。 要求元のCPUと関連するS/XIデイレクトリ
におけるシノニムのヒツトの場合、要求LAにお
ける弁別ビツト(たとえば、ビツト24)で、検出
されたL2ラインにおける特定のLエントリを
みつける。S/XIデイレクトリにおける相互間
合せのヒツトの場合、そのヒツトを受けたCPU
のキヤツシユにおいて検出されたL2ラインにお
いてヒツトした全てのLラインの無効化又は追
出しが要求される。無効化は、読取り専用又は排
他的なキヤツシユに保持された不変のラインが排
他的な要求でヒツトした場合に生じる。また、追
出しは、変更されたLが排他的な要求でヒツト
した場合に生じる。読取り専用の要求でヒツトし
たLラインについては、無効化又は追出しは要
求されない。これは、そのLラインが読取り専
用キヤツシユに保持されていたか又は排他的なキ
ヤツシユに保持されていたかを問わない。ただ
し、もし排他的に保持されていた場合は、読取り
専用状態に変更される。 ここで本明細書中で使用する用語及び略語につ
いて説明しておく。 AA:絶対アドレス AAは接頭部ハードウエアを具備するCPUによ
つてRAから形成される。複数のAAは多重プロ
セツサにおいて使用される。 ACF:アドレス制御フイールド ACFはCPUによつて供給されるフイールドで、
CPUが実アドレスを要求しているときはゼロの
値を有し、CPUが仮想アドレスを要求している
ときは非ゼロのSTO値を有する。 アドレス連結 たとえば“STO(5〜19)+LA(1〜11)”とい
う表現は、STOの15ビツトとLAの11ビツトが連
結されて26ビツトの2進値を形成することを意味
する。 AG:アドレス生成 有効アドレスを生成するためのアドレス演算。
通常はオペランドアドレスについての基底、指標
及び変位の和である。 BCE:バツフア制御エレメント BCEはCPUの一部であつてキヤツシユアレイ、
そのデイレクトリ、TLB(又はDLAT)及びその
制御論理を含む部分である。 ビン(bin)番号 共通キヤツシユデイレクトリにおける1つの
L1エントリに対応するL1制御アレイの各エント
リにおける1つのフイールド。これで、そのL1
ラインを含むL2ラインのその部分を有する共通
デイレクトリにおいてセツトアソシアテイブなロ
ケーシヨン(A,B,C又はD)をみつける。ビ
ン番号を使つて、変更されたL1ラインからL2キ
ヤツシユへの追出しを制御する。たとえば、L1
キヤツシユミスの後、又は他のCPUからの相互
問合せ要求の後である。 キヤツシユ CPUに近接して配置された高速のバツフアで
あり、主メモリから最も最近に取り出された命令
又はオペランドを含む“データライン”を記憶す
る。キヤツシユに取り出される1つのライン(又
はブロツク)は、CPUの要求した主メモリから
の命令又はオペランドのすぐ近くのアドレスの多
数の命令又はオペランドを含む。“専用キヤツシ
ユ”は、多重プロセツサシステムにおける相互問
合せ要求の場合を除き、1つのCPUに専用され
るものである。 C/O:追出し キヤツシユから追い出されたライン CMP:比較 ハードウエアによる比較回路。 DAT:動的アドレス変換 DATはプログラム状況ワード中のビツト5に
よつて、そのオン/オフが切り換わる。 LA:論理アドレス CPUによつて供給される任意のアドレス。RA
(すなわち変換不能)又はVA(すなわち変換可
能)である。これは、PSWにおけるDATモード
ビツトの状態により制御できる。 LPF:ライン存在フイールド 共通デイレクトリの各エントリにおけるフイー
ルドであつて、そのエントリによつて表わされる
L1キヤツシユのロケーシヨンを示すもの。 LRU(least recently used) LRU及びPLRU(partitioned least recently
used)アルゴリズムで、キヤツシユデイレクト
リに現に存しない新たなラインのためのスペース
をつくるためどのデータラインを追い出すべきか
を判断する。追い出されたラインについてのキヤ
ツシユデイレクトリエントリは無効化されて、そ
のエントリは新しいライン用として再び割り当て
ることができる。 RA:実アドレス CPUは変換を使用しないDATオフのRAを供
給する。CPUはDATオンのVAを供給する。こ
れが変換されてRAが生成される。 SA:記憶装置アドレス 主記憶装置においてオペランド又は命令につい
てCPUによつて発行されるアドレス STO:セグメントテーブル源 STOのビツトは1次及び2次の記憶装置モー
ドでCR1又はCR7(ビツト5ないし19)から得ら
れる。 TRAD:変換されたアドレス 現在又は過去のDATオペレーシヨンの結果と
してDAT又はTLBから得られる。 TLB:変換索引緩衝機構(DLAT:デイレクト
リ後読みテーブルと呼ばれる場合もある) UTRAD:変換されないアドレス CPUによつて要求された有効アドレス。VA又
はRAである。 VA:仮想アドレス CPUはDATオンのVAを生成する。 汎用データ処理システムの性能を落とす主な原
因は、いわゆる“記憶装置のペナルテイ”であ
る。これは、次のような場合に生ずるものであ
る。すなわち、命令又はオペランドデータの取出
しのために主メモリへのアクセスタイムが数マシ
ンサイクルよりも長くプログラムを通常に実行す
る場合である。記憶装置のペナルテイは仮想記憶
を用いる汎用データ処理システムではコスト的に
もますます不利になる。というのは、仮想アドレ
スから実アドレスへの直接アドレス変換(DAT)
を遂行するために使用されるテーブルをアクセス
するのに主記憶装置の参照が何度も必要となるか
らである。DATを行つた後、結果としての実ア
ドレス(RA)はCPUに対し既知となり、主メモ
リにおける記憶/取出しオペレーシヨンを処理す
ることができる。 記憶装置のペナルテイを減ずるためのメカニズ
ムは様々考え出されてきた。よく使われるのは次
のものである。すなわち、キヤツシユ、キヤツシ
ユデイレクトリ、及びTLBである。これらのメ
カニズムは“参照の局所性”の原理と呼ばれる十
分に確立された原理に基づいている。簡単にいえ
ば、いつたんデータのエレメント(命令又はオペ
ランド)がメモリから要求されれば、1ラインの
データはそのデータエレメントを含んでアクセス
されるということである(その他のデータエレメ
ントはそのエレメントのすぐ近くのアドレスのと
ころに存するのである)。したがつて、その他の
データエレメントはCPUによつてすぐに参照さ
れる可能性が高い。 1つのデータラインが主メモリからキヤツシユ
に入れられると、そのライン内に含まれるデータ
エレメントについての次の参照はキヤツシユで行
われるので、記憶装置(主メモリ)のペナルテイ
を避けることができる。 従来のキヤツシユシステムは2以上のレベルの
記憶階層で設計されているものがある。たとえば
L1及びL2によるキヤツシユ階層構成が使用され
ている。そのような階層においては、CPUはま
ず、L1のデイレクトリにおいてCPUの要求した
データをみつけようとする。そのデータがL1に
ないときは(すなわちL1のミス)、CPUはL2に
おいてそのデータをみつけようとする。L2でミ
スが生じると、主メモリ(L3)からの取出しが
必要となる。L2でヒツトが生じれば、記憶装置
のペナルテイはL2ミスの場合に比べて大幅に減
る。 ここでは2つの実施例を示す。これら2つの実
施例の違いは、デイレクトリにおけるエントリに
表示されたアドレスが変換可能なものとそうでな
いものとについてそのエントリに差異を設ける方
法にある。第1の実施例(第1図ないし第3図)
は各エントリにおいてゼロ又は非ゼロのアドレス
フイールド(ACF)を用いて(ここで非ゼロの
ACFはSTOの値である)変換可能なアドレスと
変換不能なアドレスとを区別する。第2の実施例
(第11図及び第12図)は、CPUの現PSW中の
DATオン/オフ・フイールドを各エントリのア
ドレス制御フイールド(ゼロ又は1の値)として
STOの他に用い、変換可能なアドレスと変換不
能なアドレスとを区別する。 これらの実施例は両方とも、CPUに専用の2
レベルのキヤツシユにあるデータをアクセスする
ため、“共通キヤツシユデイレクトリ(CCD)”
を有している。このCCDは、どの“ラインデー
タ”が現にL1及びL2の両方に存在しているのか
を“覚えて”いるものである。CCDが有するの
は、以前に要求されたCPUのアドレスについて
の変換されないアドレスビツトだけである。要求
データを有するラインがL1又はL2にあるかどう
かをみるため、CCD内の“局所的な探索”がハ
ードウエアで実行される。もしそうなら、CCD
はアドレス指定されたオペランドをL1(L1で利用
可能なら)からCPUにゲートする信号を生成し、
そうでないときは、アドレス指定されたオペラン
ドをL2(L2で利用可能なら)からCPUにゲート
する信号を生成する。 共通キヤツシユデイレクトリは、CPUが変換
可能及び変換不能な論理アドレスのタイプの両方
を要求しうる従来のキヤツシユ機構に共通した問
題をなくすことができる。たとえば、TLB及び
L1は、これまで、変換されない論理アドレス
(仮想アドレス又は論理アドレス)のビツトでア
ドレス指定されるアレイを具備したもので、また
L2は変換された論理アドレス(実アドレス又は
論理アドレス)のビツトでアドレス指定されてい
た。しかし各レベルのキヤツシユは、これまで、
変換された(実/絶対)アドレスフイールドだけ
を代表的に含むキヤツシユデイレクトリを有する
ものであつた。キヤツシユのヒツトは、要求され
た論理アドレスが実アドレスでないときは変換可
能な論理アドレスが完全に変換された後でしか決
定できなかつた。この場合、TLBはバイパスさ
れていた。したがつて、TLB内の比較及び選択
の論理は、仮想アドレスに基づいており、L1キ
ヤツシユデイレクトリ内(及びL2キヤツシユデ
イレクトリ内)の比較及び選択の論理は、アドレ
ス変換が完了するまで待たねばならなかつた。 キヤツシユのヒツトを判断するのに同じアドレ
スの変換された及び変換されない形式の両方を必
要とするこの従来のやり方は、仮想アドレスと実
アドレスとを“分類”するため、及びそれに応じ
てキヤツシユシステム内のアドレス指定経路を変
更するための従来のハードウエアを非常に複雑に
していた。 本発明の共通キヤツシユデイレクトリ(CCD)
は交換可能な論理アドレスの形式は1つだけであ
り、それは、L1及びL2の両方をアクセスするた
めのCPUの要求した全てのアドレスについて変
換されない形式である(それが変換可能であると
否とを問わない)。共通キヤツシユデイレクトリ
は、L1デイレクトリ、L2デイレクトリ、及び
TLBの一定の機能を組み合せたものである。実
際のタイプとは関係なく各論理アドレスの要求さ
れた形式は、変換することなく(1)共通キヤツシユ
デイレクトリのエントリ内におけるキヤツシユオ
ペレーシヨン、及び(2)共通キヤツシユデイレクト
リ、L1キヤツシユ、L2キヤツシユ及びL1制御ア
レイをアドレス指定するためのキヤツシユオペレ
ーシヨンの両方において一律に使用される。可変
アドレスについてのこの単一の形式によれば、キ
ヤツシユのアドレス指定機構は簡単になり、また
アレイが統合整理されることでハードウエアの経
済性も向上し、さらに、重要なキヤツシユ経路に
おけるハードウエアも減らせるので、キヤツシユ
のサイクルタイムが減る。 第1図において、変換可能及び変換不能なアド
レス間の切替のための回路を示した。アドレスの
タイプはアドレス制御フイールド(ACF)28
に示される(これは論理アドレスレジスタ30と
関連している)。非ゼロのACF値で、レジスタ3
0に変換可能なLAがあることを示し、ゼロの
ACF値で、変換不能なLAがあることを示す。 変換されないアドレスだけを表示するという独
特の構成は、共通キヤツシユデイレクトリに設け
られる。キヤツシユのアクセスからアドレス変換
をなくしたことで、L1キヤツシユ及びL2キヤツ
シユのアクセス権を獲得するCPUからの実アド
レス及び仮想アドレスの両方についての高速な経
路が提供される。L2のアクセスはL1のアクセス
と同時に始まり、もし要求データがL1キヤツシ
ユから取得できないときはL2のアクセスが完了
する。 第1図は、変換されないアドレス及び変換され
たアドレス(実アドレス及び仮想アドレス)を区
別する共通デイレクトリに設けられる特独な構成
を示す図である。アドレス制御フイールド
(ACF)は、レジスタ30に入つている要求論理
アドレスが変換されたアドレスなのか変換されな
いアドレスなのかを示すようにセツトされる。
ACF28は、ANDゲート21,22,23又は
24の出力によつてセツトされる複数ビツトのフ
イールドである。ACFがゼロだと、レジスタ3
0にある論理アドレスが変換(RAまたはAA)
を要求しないことを意味し、ACFが非ゼロだと、
変換の要求を意味する。 詳述すれば、ANDゲート23及び24は全ゼ
ロ信号源19(これはCPUのマイクロコードで
もよい)から全ゼロ信号を受け取る。これらの
ANDゲートは全て、現にCPUの制御下にあるプ
ログラム状況ワード(PSW)の1以上の制御ビ
ツトによつて制御される。これらの中には、
DATモード制御ビツト5、拡張制御(EC)モー
ドビツト12、及びアドレス空間制御ビツト16も含
まれる。PSWとこれらのビツトを含むその内容
はマニユアル、“IBMシステム/370の動作原理”
(GA22−7000−8)に記載されている。 ECモードビツト12はANDゲート24が全ゼロ
信号を出力するか否かを制御する。ECモードビ
ツト12がオフで基本モードを示すとき(システ
ム/360のオペレーシヨンと同じである)、AND
ゲート24が全ゼロ信号を出力する。ANDゲー
ト23は、ECモードビツト12がオンのとき(シ
ステムがシステム/370のアーキテクチヤで作動
していることを意味する)、全ゼロ信号を出力す
る。さらに、DATモードビツト5は、ゲート2
3のオペレーシヨンを制御するが、ゲート23へ
の反転入力のため、ビツト5がオフ(DATのオ
フを意味する)のとき、ゲート23が全ゼロ信号
を出力する。 ゲート21及び22は、レジスタ30にある、
変換を用いる論理アドレスを示すためのゼロでな
い値の信号を供給する。これらは、主メモリにお
いてセグメントテーブル及びページテーブルの使
用を要求するアドレスである。ゲート22は主メ
モリにおけるセグメントテーブルを捜すためのセ
グメントテーブル源(STO)を出力する。STO
は、制御レジスタ(CR1)からANDゲート22
に供給される。これは、DATモードビツト5が
オン、ECモードビツト12がオン、及びアドレス
空間制御ビツト16がオフで付勢される。ANDゲ
ート21は、DATモードビツト5がオン及びア
ドレス空間制御ビツト16がオンのとき、CR7から
STOを出力する。 ANDゲート21ないし24の出力はドツトオ
アされてACFレジスタ28への1つの信号を供
給する。これはSTOを表わすことができるもの
であるが、それが全てゼロなら(関連する論理ア
ドレスが変換を使用せずしたがつて実アドレス又
は絶対アドレスであることを示す)、この信号は
STOを表わさない。レジスタ30にある関連す
る論理アドレスは有効論理アドレスで、これは、
オペランドアドレスについて計算された形であ
る。 第2図は、LAレジスタ30への選択的な入力
を示す図である。このうち、CPUからの論理ア
ドレス入力(入力ゲートビツト1〜31)はこれま
で説明したオペレーシヨンにおいて用いられる。
レジスタ30への他の入力はシノニム及び相互問
合せデイレクトリ回路によつて供給される。この
回路は、ローカルのCPUによつて要求されたデ
ータを取得するためにL1がシノニムエントリを
アクセスすることと、他のCPUの要求時に無効
化及び追出しを行うことの両方を制御する。 フイールド41ないし49の全ては、一回のマ
シンサイクルの間に、第3図のデイレクトリ6
0、キヤツシユ63、制御アレイ61、TLB6
2、L2キヤツシユ64、LRU回路67、及び
LRU回路68へ同時にゲートアウトされる。 第3図は、第1図からの信号出力を受け取るも
のである。第3図は、単一のデイレクトリ60を
持つており、これはL1キヤツシユ63及びL2キ
ヤツシユ64の両方のアクセスを制御するのに共
通に働く。これらのキヤツシユは、プロセツサの
出した記憶装置要求の間の競合を回避するという
利点を持つている。共通キヤツシユデイレクトリ
60はL1キヤツシユ63及びL2キヤツシユ64
の両方についてのデイレクトリとして働くので、
個別的なキヤツシユデイレクトリの必要性がなく
なる。 第3図(又は第12図)におけるキヤツシユは
1例であるが、これは次のようなものである。 L1キヤツシユ63: 64キロバイト 4ウエイセツトアソシアテイブ式 1ライン128バイト 64バイトデータバス (L2,L3,CPUへのバス) “ストアイン”式 L2キヤツシユ64: 1メガバイト 4ウエイセツトアソシアテイブ式 1ライン256バイト 1つのL2ラインにつき2つのL1ライン 64バイトデータバス (L1,L3,CPUへのバス) “ストアスルー”式 第1図、第2図及び第3図に示した実施例は共
通キヤツシユデイレクトリを具備するもので、こ
の共通キヤツシユデイレクトリにおける各エント
リは第5図に示す如き例示的な形式を有する。第
11図及び第12図に示す実施例は、第14図に
示す如き例示的な形式を有する各エントリを持つ
デイレクトリ160を具備している。 第1図に示す特定の出力フイールドは第1の実
施例について設けられる。これは、アドレスのサ
イズ、キヤツシユのサイズ、共通デイレクトリの
サイズなどに応じて容易に変更できる。したがつ
て、第1図では、レジスタ30に定められたフイ
ールドは第3図のデイレクトリ60、キヤツシユ
63、及びキヤツシユ64における特定サイズの
アレイを収容するものである。バス41,43及
び46は、その比較フイールドでデイレクトリ6
0におけるL2ヒツトを制御するのに使用される。
選択フイールド32はデイレクトリ60をアドレ
ス指定するため、ライン46を介して出力され
る。その中に特定のコングルエンスクラスを選択
するためである。ライン41を介するACF出力
及び比較フイールド43もまた、そのデイレクト
リにおけるL2ヒツトを判断するためもしあれば
そのコングルエンスクラスにおけるエントリ
(A,B,C、又はD)を選択する目的で、共通
デイレクトリ60の比較部に設けられる。LPF
選択フイールド33は、L2ヒツトと判断された
ときにL1ヒツトが存在するかどうかを判断する
ため、デイレクトリ60にライン49を介して供
給される。 第5図は組み合わされたデイレクトリエントリ
の各々におけるフイールドを表わす図である。こ
れらのフイールドは次のようなものである(な
お、図中のかつこ内に示す数字はビツト数であ
る)。 LRUフイールド: そのエントリによつて表わされるL2キヤツシ
ユにおけるコングルエンスクラス中のL2ライン
についてのLRU状況を表わすフイールド Iフイールド: そのエントリによつて表わされるL2ラインの
無効/有効状況を表わすフイールド EXフイールド: L2キヤツシユにおいてそのエントリによつて
表わされるL2ラインの排他的/読取り専用状況
を表わすフイールド CHフイールド: L2キヤツシユにおいてそのエントリによつて
表わされるL2ラインの変更/不変更状況を表わ
すフイールド CMフイールド: L2キヤツシユにおいてそのエントリによつて
表わされるL2ラインが共通の又は専用の仮想ア
ドレス空間のうちの1ページの中に入つているか
どうかを表わすフイールド ACFフイールド: このフイールドはそのエントリが実アドレスを
表わすときはゼロの値を、そのエントリが仮想ア
ドレスを表わすときは非ゼロのSTO値を有する。
このフイールドはCPUの要求から導出される。
エントリはそのCPUの要求から生成されたもの
で、デイレクトリの比較回路によつて使用され
る。 LAフイールド: このフイールドは論理アドレスの上位ビツトを
含む。なお、エントリはデイレクトリの比較回路
によつてこの論理アドレスから生成されたもので
ある。 LPFフイールド: 各デイレクトリエントリにおけるライン存在フ
イールドは、もしあればどのL2ラインの部分が
L1キヤツシユ内に存在するのかを示すための6
ビツトを有する。本実施例では各LPFのビツト
は次のように定義されている。
命令のアクセスの高速化を図るキヤツシユを含む
データ処理システムに関する。 B 従来技術 従来技術によれば、1つのCPUが直接にアク
セスできるような階層の最下位レベルL1にある
専用のキヤツシユを1以上有する多重レベル記憶
階層で構成されるデータ処理システムがある。こ
のようなキヤツシユは高速アクセスのためCPU
を近接させる目的のものである。各キヤツシユは
各キヤツシユに都合のよい長さのデータラインを
有する。したがつて、キヤツシユごとに異なる場
合がある。従来技術によれば、最下位レベルL1
のキヤツシユの各エントリのラインの長さの整数
倍のライン長を有する第2レベルL2のキヤツシ
ユを含むシステムもある。 メインフレームのCPUは、要求されるアドレ
ス源としての命令ユニツト、変換索引緩衝機構
(TLB)、L1のキヤツシユとそのレベルのデイレ
クトリ、L2のキヤツシユとそのレベルのデイレ
クトリを含むものが多い。 キヤツシユの能率はシステムの性能にとつて重
要である。キヤツシユの能率を測定する重要なパ
ラメータは、CPUの命令ユニツトより記憶装置
要求アドレスが利用できるようになつてから要求
されたデータがその命令ユニツトで利用できるよ
うになるまでの間の平均時間である。この期間
は、普通、幾つかのマシンサイクルで測定され
る。キヤツシユの能率はこのパラメータが減少す
るにつれて上がる。 従来のシステムは次のように動作することがで
きる。命令ユニツトより要求された記憶装置アド
レス(以下、「要求アドレス」ともいう)は実ア
ドレス、絶対アドレス、又は仮想アドレスのいず
れともなり得る。もしこれが仮想アドレスである
ときは、その要求アドレスを含むページアドレス
はそのページの実アドレス又は絶対アドレスを
TLBのエントリに置く動的アドレス変換手段
(DAT)によつて既に変換されているかもしれな
いので、その要求アドレスによつてTLBがアク
セスされて、変換されたアドレスが取得される。
要求された変換をTLBのエントリが含んでいな
いときは、要求された仮想アドレスがDATによ
つて変換され、これがTLBに置かれる(したが
つて後でそこからアクセスすることができる)。
その後、要求された仮想アドレスは、一定期間不
使用との理由で置換されるまでは、変換された対
応する実アドレスは仮想アドレスをTLBから取
得するためTLBを表引きし比較することを求め
るだけである。 DATは仮想アドレスを実アドレスに変換し、
これは単一プロセツサのTLBに置かれる。 しかしながら、もしCPUが多重プロセツサに
おいて存在するものである場合は、変換された実
アドレスに接頭部アドレスが付加されて絶対アド
レスが生成され、仮想的な要求の絶対アドレスが
TLBに置かれる。 もしCPUが実アドレスを要求するなら、変換
は全く行われないが、CPUが多重プロセツサお
いて存在する場合は、要求された実アドレスに接
頭部アドレスが付加されて絶対アドレスが生成さ
れる。 CPUの要求した実アドレスは従来のCPUによ
つて様々なやり方で処理されてきた。 たとえば、仮想アドレスを取扱うのと同じ方法
で実アドレス又は絶対アドレスをTLBに置くや
り方や、キヤツシユにおいてアクセスを試行する
ためL1キヤツシユに対してTLBをバイパスさせ
るやり方がある。後者は変換の必要のないアドレ
スについてTLBを使うことを避けるためである。 IBMシステム/370のアーキテクチヤにおける
DATのオペレーシヨンではセグメントテーブル
記述子(STD)が用いられる。これはセグメン
トテーブル源(STO)及びセグメントテーブル
長(STL)を含む。 多重アドレス空間を用いたシステムでは、
STOは要求された仮想アドレスを含む仮想アド
レス空間を識別するための、各々の要求された仮
想アドレス部分である。STO又はSTOの識別子
は仮想アドレス部分として既にTLBの各エント
リに置かれている。アクセスされたTLBのエン
トリにあるSTOは、TLBのアドレス変換を捜す
にあたつて、各々の要求された仮想アドレスと比
較しなければならない。その後は、要求されたデ
ータをキヤツシユでアクセスする場合、及び必要
なときは主記憶装置でアクセスする場合に、変換
されたアドレスだけが使用される。従来技術によ
つては、最近に使用された全てのSTOとその
STOより少ないビツト数の対応するSTO識別子
とを含むSTO識別子テーブルを使つて、TLB回
路アレイを小さいサイズにできるよう、STOの
代わりにSTO識別子をTLBに置くようにしたシ
ステムもある。このようにしたのは、小さいアレ
イならより高速のアクセスが可能となるからであ
る。 従来のキヤツシユデイレクトリにおいては、セ
ツトアソシアテイブ構成が採られ、そこではキヤ
ツシユデイレクトリの1つの行(“コングルエン
スクラス”ともいう)が命令ユニツトの供給した
各々のアドレス(実/絶対アドレス、又は仮想ア
ドレス)によつて選択されていた。しかも、各行
はエントリの1セツトで構成される。これらのエ
ントリ(“ビン(bin)”又は“ビン識別子”とも
いう)はアソシアテイブ式に取扱われる。すなわ
ち、各コングルエンスクラスはセツトアソシアテ
イブ式である。このやり方だと、デイレクトリの
行の選択はTLBのアドレス変換が完了する前に
なされる。TLBの変換アドレスが利用できるよ
うになる前にキヤツシユのコングルエンスを選択
するためである。これにより、CPUにおけるキ
ヤツシユアクセスの高速化が図れる。 従来のキヤツシユでは、変換されたアドレスだ
けがキヤツシユデイレクトリに置かれていた。す
なわち、実/絶対アドレス表示が、使用されるキ
ヤツシユの各エントリに設けられた。この実アド
レスは命令ユニツトの要求した各アドレスによつ
て選択されたコングルエンスクラスにおけるデイ
レクトリの各エントリから読み取られる。読み取
られた実アドレスのセツトは、個々の比較回路に
到着し、また、TLBで変換されたアドレスもこ
れらの比較回路に同時に到着する。そして、選択
されたコングルエンスクラスからどのアドレス群
が、変換された要求アドレスと一致するかをみつ
けるため、同時に比較が行われる。すなわち、こ
れがキヤツシユについてのセツトアソシアテイブ
式比較法である。 この従来のオペレーシヨンは、L1キヤツシユ
のヒツトが得られる前にTLBのヒツトが必要で
あつた。もしTLBのミスが生じると、L1キヤツ
シユの判断は、TLBのミスオペレーシヨンが
DATのオペレーシヨンにより完了するまで待た
ねばならない。したがつて、L1キヤツシユのオ
ペレーシヨンは現CPUの要求に関するDATのオ
ペレーシヨンで新たな変換がTLBに置かれた後
に再開されていた。また、TLBのミスは動的ア
ドレス変換(DAT)を必要とし、このDATが比
較的低速の主記憶装置における変換テーブルのア
クセスを2回必要としていた。 既知の商用のL1キヤツシユは仮想アドレスを
含んでいないということに留意されたい。そうし
たキヤツシユのアドレスは実/絶対アドレスであ
るから、これらはTLBの出力する実/絶対アド
レスと比較できる。仮想アドレスの値は実/絶対
アドレスの値とは比較できない。というのは、仮
想アドレスは主記憶装置で利用できる任意の実ペ
ージアドレスに変換しうるからである。 したがつて、従来のL1キヤツシユのデイレク
トリは、1つの対応するL1デイレクトリアドレ
スが存在するかしないか(すなわち、L1キヤツ
シユのヒツト又はミス)を検出する前に順次的に
生ずる2つの比較オペレーシヨンを必要としてい
た。L1のヒツトが生ずる場合は、そのデータは
(通常はダブルワードである)L1キヤツシユでア
クセスされCPUに送られる。 米国特許第4495575号はL1キヤツシユに対応す
る単一のバツフアを有するものである。ただしこ
のキヤツシユは、CPUだけでなくI/Oチヤネ
ルによつてもアクセスされるのでCPU専用のも
のではない。そのキヤツシユデイレクトリのエン
トリは、空間ID及びブロツクアドレスから成る
“合計のデータ”を各々有している。これらの空
間ID及びブロツクアドレスは、CPU又はチヤネ
ルからレジスタ46に受け取られた仮想アドレス
の空間ID及びブロツクアドレスと比較される。
バツフアのミスの際、アドレス変換テーブル61
が実アドレスをMM22に供給してデータを取得
する。 従来のキヤツシユシステムは全て、L1キヤツ
シユミスで、記憶階層における次の上位のレベル
からの要求データのアクセスを必要とする。 L2レベルのキヤツシユがそのキヤツシユシス
テムに存在する場合、L2は主記憶装置の代わり
にアクセスされて、L2がデータを含むなら、L1
及びCPUの両方に要求データが供給される。L2
キヤツシユが要求データを含まないなら、主記憶
装置がそれについてアクセスされる。L2キヤツ
シユのミスを判断するためのアクセスタイムは、
要求データについての全体のアクセスタイムに加
えられる。実/絶対アドレスは従来はL2キヤツ
シユのデイレクトリをアクセスするのに使用され
ている。このL2キヤツシユのデイレクトリは、
仮想アドレスがCPUによつて要求されていると
きにTLBの出力を要求する。 従来のキヤツシユシステムでは全て、TLBの
ミスの発生はL1キヤツシユのデイレクトリのミ
スとは無関係に生じうる。うまい具合に、ほとん
どのCPUの要求(90%以上)は、TLB及びキヤ
ツシユの両方においてヒツトする。これが、
TLB及びキヤツシユを使用する理由である。 L2キヤツシユの基本的な要件は、そのサイズ
が大きいことである。たとえば、L1キヤツシユ
の数倍である。したがつて、L2はL1と比べて、
主記憶装置におけるより多くのページからのデー
タを含む可能性がある。しかしながら、TLBは
L2に存在するデータを表わす全てのページ変換
を含むに十分なサイズを普通は有していないとい
う点で根本的に問題がある。その結果、要求され
たラインのデータがL2キヤツシユの中に存在す
ることができてもそのTLBのエントリは現要求
がなされる前に置換されてしまうことがあり、し
たがつてTLBのミスが生じ、そのような従来の
システムではデータ取得のためにL2キヤツシユ
がアクセスできる前に関連するDATのオペレー
シヨンをそのTLBについて完了しなければなら
ない。 米国特許第4464712号では、ページ変換をする
TLBのエントリはL2キヤツシユにおけるページ
サイズのラインに対応する。この特許はTLBか
ら独立したL2キヤツシユデイレクトリを有する
ものである。TLBのエントリの置換オペレーシ
ヨンごとにTLBから出力される絶対アドレスで
L2のエントリ中において置換しうるフラグビツ
トRを捜してこれの設定を制御し、L2キヤツシ
ユのデイレクトリにおけるラインのエントリにつ
いてLRUによる置換選択を管理する。この場合、
TLBとL2との間には次のような関係が必要とな
る。すなわち、L2が、TLBで管理されるページ
サイズ(たとえば、4096バイト)と等しいライン
サイズを有することである。 C 問題点を解決するための手段 したがつて、本発明はTLBによるアドレス変
換を用いないでキヤツシユヒツトの判断をするこ
とにより、上記のような従来のキヤツシユシステ
ムの問題点を解決することを目的としている。 プロセツサと、変換索引緩衝機構(TLB)と、
主記憶装置とを含み実モードと仮想モードとの切
換えができるようなデータ処理システムにおい
て、本発明のキヤツシユ機構は、(a)キヤツシユ
と、(b)論理アドレスと、この論理アドレスが実/
絶対アドレスであるのか又は仮想アドレスである
のかを示す標識とを有する複数のエントリを備え
たデイレクトリと、(c)プロセツサによつて要求さ
れた論理アドレスと、この論理アドレスが実/絶
対アドレスであるか又は仮想アドレスであるかを
示す標識とを上記デイレクトリに供給する手段
と、(d)プロセツサによつて要求された論理アドレ
スを受け取つて上記デイレクトリにおいてヒツト
の可能性のある1以上のエントリを含む1つのセ
ツトを選択する共通デイレクトリと、(e)このセツ
ト中におけるヒツトの可能性のあるエントリにつ
いてプロセツサによつて要求された論理アドレス
及び標識とこのエントリにおける論理アドレス及
び標識とを比較することにより、変換索引緩衝機
構のアドレス変換を使用することなく、ヒツトエ
ントリが存在するか否かを判断するヒツト判断手
段と、を具備することを特徴としている。 本発明の作用は以下の実施例と共に説明する。 D 実施例 はじめに、実施例を概説する。 実施例によれば、CPUに専用に利用できるキ
ヤツシユのサイズを大きくしつつキヤツシユアク
セスについての重要な経路を減らすことができ
る。本実施例では、仮想アドレス指定と実アドレ
ス指定とを任意に切り換えることのできるような
CPUを使用することがきる。このようなモード
の切換えは、“動的アドレス変換(DAT)”の状
態のオン・オフを切り換える“プログラム状況ワ
ード(PSW)”によつてIBMシステム/370の論
理アドレス指定を使用する場合に生ずる。 本実施例では、キヤツシユデイレクトリの各エ
ントリにアドレスモード標識を設けて、これによ
り、そのエントリが実/絶対アドレスを表わすの
か又は仮想アドレスを表わすのかを示す。この標
識を使うと、CPUが切換可能モードの論理アド
レス指定機構を使用する場合でも、CPUからキ
ヤツシユへのアクセス経路においてTLBオペレ
ーシヨンをなくすことができる。 本実施例では、さらに、キヤツシユデイレクト
リの各エントリにアドレスモードフラグフイール
ドを設けて、これにより、そのエントリに表示さ
れたアドレスがいかなるアドレス空間からも変換
されない実/絶対アドレスであるのか、又はそれ
が仮想アドレスであるのかを示す。このアドレス
モードフラグフイールドを使うと、CPUが切換
可能モードの論理アドレス指定機構を使用する場
合、CPUからキヤツシユへのアクセス経路にお
いてTLBオペレーシヨンをなくすことができる。 また、所定の値を用いてアドレスモード標識
(アドレスモードフラグフイールドの代用として)
又はアドレス空間名内の範囲の値をキヤツシユデ
イレクトリの各エントリに設け、次の事項を示
す。すなわち、(1)エントリに表示されたアドレス
がいかなるアドレス空間からも変換されない実/
絶対アドレスであり、かつ、そのアドレス空間名
フイールドがどのアドレス空間名をもあらわさな
いこと、又は(2)エントリに表示されたアドレスが
仮想アドレスであり、かつ、そのアドレス空間名
フイールドがその仮想アドレスを含むアドレス空
間の名前をあらわすこと、である。このようにア
ドレス空間名フイールドを管理すると、CPUが
切換可能なモードで論理アドレス指定を用いる場
合、CPUからキヤツシユのアクセス経路から
TLBオペレーシヨンをなくすことができる。 本実施例は多重レベル記憶階層を含むデータ処
理システムに関する。このデータ処理システムは
単一のCPUに専用で(他のプロセツサとは共有
せずに)複数の階層レベルを有することができ
る。ここではキヤツシユは互いに近接しまた
CPUとも近接している。最下位のキヤツシユの
レベルL1はCPUの要求のアクセスに関して最も
速いレベルであり、記憶容量は最も小さいレベル
である。次のレベルL2のキヤツシユはCPUの要
求のアクセスに関して次に速く、また記憶容量は
L1に比べて大きい。他の上位のキヤツシユ(L3,
L4,……)をより大きな記憶容量を実現するた
めに設けることができる。しかし、アクセスの速
度はだんだん遅くなる。したがつて、要求したデ
ータ又は命令を取得するため階層レベルのより上
位をアクセス要求が欲すればそれだけCPUのア
クセスタイムも長くなる。 専用の個々の階層レベルにある個々のキヤツシ
ユのサイズはそのキヤツシユによつて都合のよい
ライン長で多数のラインデータを収容できるよう
に柔軟に設計される。下位レベルの各専用キヤツ
シユの使用するライン長は上位レベルの専用キヤ
ツシユのライン長の約数となつている。理論的に
は約数は任意にでき、キヤツシユごとに異なる値
にすることができる。このように、L1キヤツシ
ユにおける各ラインの長さはL2キヤツシユの各
ラインの長さの約数である。換言すれば、L2の
各ラインは複数のL1ラインから成り、L1ライン
はL2ラインの約数となる。したがつてL2ライン
の長さはL1ラインの整数倍となり得る。 CPUの要求は、その要求されたアドレスがど
こかの専用のキヤツシユのデイレクトリで利用で
きるデータのためのものであれば共通デイレクト
リにおいて“ビツト”となる。要求されたデータ
は、要求されたデータまたは命令が利用可能な最
下位レベルのキヤツシユにおいてアクセスされ
る。 CPUの各要求アドレス(変換可能な論理アド
レス)は共通キヤツシユデイレクトリにおける1
つのコングルエンスクラス及びそのCPUの各専
用キヤツシユにおける個々のコングルエンスクラ
スを同時にアドレス指定する。 共通キヤツシユデイレクトリにおける各エント
リは次のものを表わすことができる。 (a) 最上位の専用キヤツシユにおける個々のライ
ン (b) 1以上の下位レベルの専用キヤツシユにおい
て利用可能な各ライン部分のロケーシヨン 換言すれば、全てのレベルの専用キヤツシユに
おける対応部分は単一のデイレクトリエントリに
よつて、位置決めされる。この単一のデイレクト
リエントリは、このように、全ての専用キヤツシ
ユの対応部分を管理する“共通デイレクトリエン
トリ”である。したがつて、各デイレクトリエン
トリは、(a)最上位レベルの専用キヤツシユの1つ
のラインを表わし、(b)その階層においてその他の
任意のキヤツシユにコピーできるような同じライ
ンの各部分を追跡する。 最上位レベルの各ラインについてコピーされた
全ての部分を追跡するため、各デイレクトリエン
トリは“ライン存在フイールド(LPF)”を有し
ており、これによりそのエントリは全ての専用キ
ヤツシユにおけるそのライン部分の全てを管理で
きる。これを行うため、各デイレクトリエントリ
と共にLPFは次のことを示す。 (1) コピーされた部分を含む各々の他のキヤツシ
ユレベル (2) どのライン部分がその中にコピーされたかと
いうこと (3) その部分を含む各々の他のキヤツシユにおけ
るセツトアソシアテイブ位置(ただし、そのキ
ヤツシユがセツトアソシアテイブ式のキヤツシ
ユである場合) 項目(1)及び(2)は、専用キヤツシユレベルが2つ
しかない場合は1つのLPF標識に統合され、セ
ツトアソシアテイブ方式を使用しないキヤツシユ
レベルには項目(3)は使用する必要はない。 LPFは、1つのプロセツサについて単一の専
用キヤツシユしか取扱わないデイレクトリにおい
ては必要でない。したがつて、LPFは、複数の
専用キヤツシユを提供する共通デイレクトリにお
いて使用されるものである。 大型システムの多くは、現在、IBMシステ
ム/370のアーキテクチヤを使用している。この
アーキテクチヤにおいては、CPUは実/絶対ア
ドレスモードと仮想アドレスモードとの間でいつ
でもモードの切換を行うことができ、この場合、
実行中のプログラムにおけるCPUの有効な記憶
装置アドレスの割込みは現に存在しているアドレ
スモードで管理される。CPUのアドレス指定モ
ードは、仮想モード(たとえば、STO又はSTO
識別子を伴う仮想アドレス)と実モード(たとえ
ば、STO又はSTO識別子を伴わない実アドレス
又は絶対アドレス)との間でいつでもモードの切
換ができる。アドレス指定のこの切替可能なタイ
プは“S/370論理アドレス指定”と呼ばれ、
DATモードビツトと呼ばれるPSWビツト5で管
理される。 本実施例では、有効なキヤツシユデイレクトリ
エントリの各々はそのエントリを生成した要求の
使用したアドレスモードを示す。このようにして
示されたアドレスモードは、キヤツシユデイレク
トリの現在の状況についてデイレクトリエントリ
ごとに変えることができる。 本実施例においてCPUによる階層のアクセス
は、複数の専用キヤツシユにおいてCPUの要求
したデータを含む最下位(最高速)のキヤツシユ
に対し行われる。たとえば2つの専用キヤツシユ
L1及びL2が存在する場合は、いずれのキヤツシ
ユにおけるヒツトもアクセス経路においてTLB
の使用を避ける。すなわちL1がミスでL2がヒツ
トだと、データアクセスオペレーシヨンにおいて
TLBの関与は回避される。 好適な実施例では、各共通デイレクトリエント
リはLPFフイールド及び論理アドレス表示フイ
ールドの他に多数のフイールドを有している。た
とえば、無効(I)フイールド、STO又はSTO
識別フイールド、変更(CH)フイールド、及び
DATオン/オフ・フイールドである(DATオ
ン/オフ・フイールドは、DATオン/オフ機能
を付加的に遂行するためにSTOフイールドが一
意的に制御されない場合である)。(たとえば、
STOの値ゼロは、関連する論理アドレスが実ア
ドレス又は絶対アドレスである特別な場合を示す
のに使用でき、これでSTOの値ゼロがアドレス
空間識別子になるのを防止する。) その他のフラグフイールドは関連するラインに
ついての特定の状態を識別するためにデイレクト
リエントリに付加することができる。たとえば、
MP中のキヤツシユデイレクトリにおける排他
的/読取専用(EX)フイールドや、MVS環境に
おける共通仮想記憶装置領域を取扱うための共通
ビツト(C)である。 Iフイールドはデイレクトリエントリが複数の
どこかのキヤツシユに何らかのデータがあること
を表わすかどうかを示すものである。もしこれが
オンなら、エントリは有効なデータを表わさない
ことを示し、これがオフなら、エントリは少なく
とも上位レベルのキヤツシユに有効なラインがあ
ることを表わすのを示す。CHフイールドはデイ
レクトリエントリによつて表わされたデータが複
数のキヤツシユのいずれかで書き換えられた(す
なわち変更された)か否かを示すものである。も
し、これがオンなら、表示されたデータは変更さ
れたことを意味し、これがオフなら、有効なライ
ンは不変であることを意味する。EXフイールド
(通常は単一ビツト)は次のことを示すためMP
のキヤツシユデイレクトリで使用される。すなわ
ち、エントリによつて表わされるラインは排他的
なCPUのアクセスについて一時に単一のキヤツ
シユだけに存在しうるのかどうか、又は複数の
CPUによる共有アクセスを可能とするためその
ラインを複数のデイレクトリで同時に表示できる
かどうかを示すためである。 要求された論理アドレスの中央部から取得され
た中位のビツトは、共通デイレクトリ及び各キヤ
ツシユにおける可能なコングルエンスクラスを選
択するための選択アドレスとして使用される。各
コングルエンスクラスにおける全てのセツトアソ
シアテイブなエントリのロケーシヨンはあらかじ
め定められており、これらは、そのコングルエン
スクラスがアクセスされたとき可能なエントリと
して読み取られる。 可能なエントリの各々の読取りにおいて、Iフ
イールド、アドレス表示フイールド、LPFフイ
ールド、その他のエントリフイールドのロケーシ
ヨンもあらかじめ定められている。 各々の可能なエントリにおけるIフイールド
は、要求されたラインが最高位のレベルのキヤツ
シユに存在するかどうか(すなわち有効かどう
か)を調べるために検査される。もしIフイール
ドが、選択されたコングルエンスクラスの全ての
エントリにおいてオンであるとき、要求ライン
は、どの専用キヤツシユにもなく、キヤツシユミ
スが示される。そうして、ミスの生じたその要求
についてキヤツシユデイレクトリのエントリが割
り当てられる。新しいデイレクトリエントリのコ
ングルエンスクラスはその要求アドレス中の中位
のビツトによつて決まる。そのコングルエンスク
ラス内におけるそのエントリに関するセツトアソ
シアテイブなロケーシヨンの1つがキヤツシユデ
イレクトリのLRU置換回路によつて割り当てら
れる。そのエントリにおけるIフイールドがセツ
トされて、エントリの内容が生成される。これ
は、割り当てられたフイールド及びサブフイール
ドと共にLPFを含む。これらのフイールドで、
最上位のキヤツシユにある要求されたライン、及
び各々の下位のキヤツシユにあるそれぞれのその
部分についてのロケーシヨンの割当てを決定す
る。同時に要求されたラインの取出し信号が主記
憶装置に送られる。取り出されたライン及びその
要求された部分は全てのキヤツシユの割り当てら
れたロケーシヨンにコピーされる。この主メモリ
ライン取出しは、TLBから出力された変換後の
ページアドレスと、通常の方法で要求されたペー
ジを定める要求された論理アドレスから下位グル
ープのビツトとを使用して行われる。 もしCPUの要求が、Iフイールドが少なくと
も1つの可能なエントリにおいてオフであること
をみつけると、その要求されたデータは上位のキ
ヤツシユに存在しうるのであり、また1つ(もし
あればそれ以上)の下位のキヤツシユに存在しう
るのである。次に、アドレスモード標識又はフイ
ールドが各有効エントリごとに調べられ、そのエ
ントリの表示しているアドレスが実/絶対又は仮
想なのかをみる。もしエントリの表示している論
理アドレスが仮想アドレスなら、そのSTO(又は
STO識別子)フイールド及びその論理アドレス
表示フイールドがCPUのSTO(又はSTO識別子)
及びその論理アドレスにおける上位グループのビ
ツトと、それぞれ比較される。もしエントリの論
理アドレスが実/絶対アドレスなら、STOはそ
の比較においていかなるアドレス空間名をも定め
ず、実/絶対標識として働くだけである。もし比
較されたフイールドが、有効な考えうるエントリ
について一致すれば、それについてキヤツシユヒ
ツトが存在する。 このキヤツシユヒツトしたエントリにおいて、
次のことを調べるためLPFを検査しなければな
らない。すなわち、もしあれば要求されたデータ
がどの下位レベルのキヤツシユに含まれているの
かということと、そのコングルエンスクラスにお
けるセツトアソシアテイブなロケーシヨンとを判
断する。これを行うため、その中位グループの次
の下位ビツト(又は所定の一群のビツト)も要求
論理アドレスから取得される。これは、読み取ら
れた各エントリのLPF内において正しいサブフ
イールド(及びもしあればサブ・サブフイール
ド)を捜すためである。このサブフイールドのは
じまりのところにある存在ビツトは、要求された
ラインが最下位レベルのキヤツシユに存在するか
どうか(すなわち、有効かどうか)をみるために
検査される。 最下位ビツトグループも要求論理アドレスから
取得され、これを用いて、選択されたラインにお
いて要求データを選択する。 もし選択されたLPFサブフイールドにおける
ライン存在ビツトがオフなら、要求ラインは関連
するキヤツシユには存在せず、したがつてその要
求ラインは、その要求データを含む最も下位のキ
ヤツシユであるより上位のキヤツシユにおいてア
クセスされ、そのデータはこの上位キヤツシユか
ら、下位のキヤツシユにコピーされる。 ストアイン式キヤツシユである下位レベルのキ
ヤツシユにプロセツサがデータを書き込むとき
は、その同じデータはどの上位キヤツシユにも書
き込まれない。しかし、各上位キヤツシユが“ス
トアスルー”式のキヤツシユであれば、1つのラ
インがその下位レベルのキヤツシユから追い出さ
れるときは、それは各上位レベルのキヤツシユ及
び主記憶装置に記憶されることとなる。 デイレクトリにおいてキヤツシユヒツトがあつ
て、TLBのミス及びDATのオペレーシヨンが生
ずる場合でも、そのキヤツシユのアクセスは、
DATオペレーシヨン又はTLBオペレーシヨンに
関与せずに(待たずに)前述と同様にして行われ
る。TLBミスについてのDATオペレーシヨンは
キヤツシユアクセスオペレーシヨンと並行して行
われる。上位キヤツシユはTLBが保持できる変
換よりも多くのページからのラインを保持でき
る。というのは、少なくとも最上位のキヤツシユ
において現に利用できるラインを含むページにつ
いて変換がそのTLBに存在しないことが多いか
らである。CPUの要求に対してDAT及びTLBが
機能している間に、その同じ要求データはそれを
有する最下位レベルのキヤツシユからCPUに転
送することができる。 したがつて、要求データはそれが利用できる最
下位の(最高速の)キヤツシユでアクセスされ
る。 専用キヤツシユレベルが2つの場合を例にして
これを説明する。1つのライン存在フイールド
(LPF)はそのデイレクトリにおける各エントリ
に含まれる。これは次のことを示すためである。
すなわち、L1のヒツトがいつ生じたのかの判断
を助ける目的で、もしあればどのL2部分(すな
わち、L2デイレクトリエントリに表示されたL2
のサブライン)がL1キヤツシユのプロセツサに
現在利用可能かを示すためである。各LPFはL2
キヤツシユにおける各ラインについて複数のサブ
フイールドを有する。L2の各サブフイールドは、
そのアドレス指定されたL2ラインにおけるL2サ
ブラインを表わす。このL2ラインはL1キヤツシ
ユにおけるL1ラインにコピーできたものであり、
上記L2サブラインはL1キヤツシユ上で1つのL1
ラインとなる。もしセツトアソシアテイブ式の
L1キヤツシユを使用すれば、LPFもまた1つの
L1のビン番号を有する。これは要求データを含
むことのできるアドレス指定されたL1のコング
ルエンスクラスにおけるセツトアソシアテイブな
ロケーシヨンを選択するためである。このL1の
ロケーシヨンは、もし要求されたアドレスが共通
デイレクトリ内で“ヒツト”すれば、その要求デ
ータを有するL1ラインを含むこととなる。共通
デイレクトリが“ヒツト”するためには、アドレ
スの“ヒツト”及び一意的なLPFの“ヒツト”
の両方が必要である。 この2つのレベルの専用キヤツシユの例では、
各デイレクトリエントリ中のLPFはL1キヤツシ
ユにおいて対応するコングルエンスクラスでみつ
かる関連するセツトにそれぞれ対応する複数のセ
ツトから成る場合がある。各LPFセツトは複数
ビツトのフイールドを有することができ、その1
つのビツトで、個々のL2サブラインがL1のコン
グルエンスクラスに存するかどうかを表わし、そ
のLPFセツトにおける組合せ的な残りのビツト
で、個々のL2サブラインを含む特定のセツトア
ソシアテイブなL1ラインを表わす。 個々のL2サブラインについてのLPFはそのア
ドレス指定されたL1のコングルエンスクラスの
任意のセツトアソシアテイブなラインを表わすこ
とができ、このクラスにはそのL2サブラインが
コピーされている(L2サブラインは1つのL1ラ
インとなる)。L2サブラインのコピーは、L2キヤ
ツシユからL1キヤツシユにおいてLRUで選択さ
れたセツトアソシアテイブなロケーシヨンへのサ
ブラインの取出しによつて行われる。 他の実施例では、1つのCPUについて3つの
専用キヤツシユL1,L2、及びL3が存在する場
合、共通デイレクトリエントリにおけるLPFは
基本的にはL2及びL1のサブラインのロケーシヨ
ンならびにL3のサブラインのロケーシヨンを表
わす。この例ではL3が最上位である。共通デイ
レクトリの各エントリにおけるLPFは、L2ライ
ンのロケーシヨンに現に存するそのL3サブライ
ンの存在を表わす一連のLPFサブフイールドを
有する。これらは、L3からL2へのサブラインの
取出しの際にセツトされる。この取出しには選択
されたL3サブフイールドを選択されたL2ライン
のロケーシヨンにコピーすることが含まれる。各
LPFサブフイールドはL2存在フラグビツトを有
し、このフラグで、そのL3サブラインがL2にコ
ピーされたか否かを示す。各LPFサブフイール
ドはL2セツトアソシアテイブを有し、これで、
アドレス指定されたL2のコングルエンスクラス
におけるセツトアソシアテイブなロケーシヨンを
示す。各LPFのL2セツトアソシアテイブサブフ
イールドはさらにL1に存在するそのL3サブサブ
ラインに対応する一連のL3アソシアテイブサブ
フイールドを有する。各LPFサブサブフイール
ドはL1存在フイールドを有し、これで、L3サブ
サブフイールドがL1にコピーされたかどうかを
示す。各LPFサブサブフイールドはさらにL1セ
ツトアソシアテイブフラグビツトを有し、これ
で、アドレス指定されたL1のコングルエンスク
ラスにおけるセツトアソシアテイブなロケーシヨ
ンを示す。したがつて、各L3サブサブフイール
ドはL3サブサブラインの倍数であり、そのうち
の任意の1つをL1の1つのラインロケーシヨン
にコピーできる。もしL3サブサブフイールドの
設定が要求されたサブサブラインがL1になくL2
あることを示したときは、そのサブサブラインは
L3からではなくL2から取り出される。というの
は、CPUの要求したデータを最も速くアクセス
できるのはこのやり方だからである。すなわち、
L3からL2へのコピーは異なるキヤツシユミスに
ついて早い時点なしうる。しかしながら、L3サ
ブサブフイールドが、要求されたL3のサブサブ
ラインがL1にもL2にもないということを示した
ときは、そのサブサブラインはL3からL2及びL2
の両方に取り出される。 専用キヤツシユのレベル数は理論的にはもつと
増やすことができる。ただし、専用キヤツシユの
レベル数が増えるにつれて、LPFの複雑さは指
数的に増大する。 本実施例によれば、同じCPUの要求について
TLBの変換アクセスを並行して行いながら、切
換可能な論理アドレスを使つてCPUは自身のキ
ヤツシユをアクセスすることができる。 共通デイレクトリキヤツシユシステムを適切に
機能させるため、シノニム及び相互間合せデイレ
クトリ(S/XI)構成を設ける。シノニムデイ
レクトリ(S)は各CPUごとに設けられ、その
CPUが多重プロセツサ(MP)システムに設けら
れる場合は相互間合せデイレクトリ(XI)とし
て機能する。TLBミスの際、TLBから出力され
る実/絶対アドレスは1つのコングルエンスクラ
スをみつけるためS/XIデイレクトリをアドレ
ス指定するのに使用される。このコングルエンス
クラスはセツトアソシアテイブなエントリを含む
可能性のあるものである。S/XIデイレクトリ
における各エントリは共通デイレクトリにおける
1つのエントリに対応するが、(S/XI)のコン
グルエンスクラスはキヤツシユデイレクトリのコ
ングルエンスクラスには対応しない。というの
は、キヤツシユのコングルエンスクラスは論理ア
ドレスによつてマツピングされ、一方、S/XI
デイレクトリのコングルエンスクラスは実/絶対
アドレスによつてマツピングされるからである。 LA及び実/絶対アドレスが関連している場合
(キヤツシユミスで普通に発生する)、共通デイレ
クトリにおける異なるコングルエンスクラス
(LAでマツピングされるもの)及びS/XIデイ
レクトリにおける異なるコングルエンスクラス
(実/絶対アドレスでマツピングされるもの)は
異なるデイレクトリにおいてみつけることができ
る。そうして、これらのデイレクトリの各々にお
ける直接的に関連するセツトアソシアテイブなエ
ントリが、個々のアドレスの上位ビツトを使つ
て、個別的にアドレス指定されたコングルエンス
クラスにおけるセツトアソシアテイブな比較によ
つてみつけられる。 ところが、絶対アドレスが既知で対応するLA
がわからない場合、又はその逆の場合がある。こ
れは、シノニム要求及びXIが要求の場合である。
本実施例においてビン番号の概念はこの問題の解
決のために用いられる。(この概念は、次のよう
な問題を解決するのにも用いらられる。すなわ
ち、使用中のLAに実/絶対アドレスが関与して
おらず、追出されるLIエントリに対応するL2サ
ブラインをみつけるのにL2エントリのビン番号
を使用するような、L1からL2への追出しを生ぜ
しめるセツトアソシアテイブなロケーシヨンの問
題である。) S/XIデイレクトリにおける実/絶対アドレ
スを使つてS/XIのヒツトエントリがみつかつ
た後、要求されたL2ラインをみつけるため
(S/XI)デイレクトリでSのヒツト又はXIのヒ
ツトを有する要求されたセツトアソシアテイブな
エントリをみつける目的で、(S/XI)エントリ
の各々にビン番号を設ける。論理アドレスの中位
のフイールド及びS/XIエントリのビン番号フ
イールドは、コングルエンスクラスと、Sのヒツ
ト又はXIのヒツトの有するS/XIデイレクトリ
と関連するCPUの共通デイレクトリにおいて要
求エントリが存在するセツトアソシアテイブなロ
ケーシヨンとを定める。ヒツトしたS/XIデイ
レクトリについてのビン番号及びCPU識別子で、
共通デイレクトリにおける正しいL2のセツトア
ソシアテイブなエントリをみつけることができ
る。そのエントリからのLPFはXIで誘導される
追出しに関してLにおける要求エントリをみつ
けるのに使用することができる。そうして、この
LPFのビツトを調べて、要求データを含む次の
下位レベルのキヤツシユにあるデータラインをみ
つける。 シノニムのヒツトと相互間合せのヒツトとの違
いは、その特定の要求をしたCPUと関連する
S/XIデイレクトリにおいてヒツトが生じたの
か、又は別のCPUに関連するS/XIデイレクト
リにおいてヒツトが生じたのかによつて決まる。
すなわち、前者ならシノニムのヒツトであり、後
者なら相互間合せのヒツトである。単一プロセツ
サ(UP)では、CPUの要求に対してシノニムデ
イレクトリとして働き、チヤネルの要求に対して
はXIデイレクトリとして働くただ1つのS/XI
デイレクトリが存在する。 要求元のCPUと関連するS/XIデイレクトリ
におけるシノニムのヒツトの場合、要求LAにお
ける弁別ビツト(たとえば、ビツト24)で、検出
されたL2ラインにおける特定のLエントリを
みつける。S/XIデイレクトリにおける相互間
合せのヒツトの場合、そのヒツトを受けたCPU
のキヤツシユにおいて検出されたL2ラインにお
いてヒツトした全てのLラインの無効化又は追
出しが要求される。無効化は、読取り専用又は排
他的なキヤツシユに保持された不変のラインが排
他的な要求でヒツトした場合に生じる。また、追
出しは、変更されたLが排他的な要求でヒツト
した場合に生じる。読取り専用の要求でヒツトし
たLラインについては、無効化又は追出しは要
求されない。これは、そのLラインが読取り専
用キヤツシユに保持されていたか又は排他的なキ
ヤツシユに保持されていたかを問わない。ただ
し、もし排他的に保持されていた場合は、読取り
専用状態に変更される。 ここで本明細書中で使用する用語及び略語につ
いて説明しておく。 AA:絶対アドレス AAは接頭部ハードウエアを具備するCPUによ
つてRAから形成される。複数のAAは多重プロ
セツサにおいて使用される。 ACF:アドレス制御フイールド ACFはCPUによつて供給されるフイールドで、
CPUが実アドレスを要求しているときはゼロの
値を有し、CPUが仮想アドレスを要求している
ときは非ゼロのSTO値を有する。 アドレス連結 たとえば“STO(5〜19)+LA(1〜11)”とい
う表現は、STOの15ビツトとLAの11ビツトが連
結されて26ビツトの2進値を形成することを意味
する。 AG:アドレス生成 有効アドレスを生成するためのアドレス演算。
通常はオペランドアドレスについての基底、指標
及び変位の和である。 BCE:バツフア制御エレメント BCEはCPUの一部であつてキヤツシユアレイ、
そのデイレクトリ、TLB(又はDLAT)及びその
制御論理を含む部分である。 ビン(bin)番号 共通キヤツシユデイレクトリにおける1つの
L1エントリに対応するL1制御アレイの各エント
リにおける1つのフイールド。これで、そのL1
ラインを含むL2ラインのその部分を有する共通
デイレクトリにおいてセツトアソシアテイブなロ
ケーシヨン(A,B,C又はD)をみつける。ビ
ン番号を使つて、変更されたL1ラインからL2キ
ヤツシユへの追出しを制御する。たとえば、L1
キヤツシユミスの後、又は他のCPUからの相互
問合せ要求の後である。 キヤツシユ CPUに近接して配置された高速のバツフアで
あり、主メモリから最も最近に取り出された命令
又はオペランドを含む“データライン”を記憶す
る。キヤツシユに取り出される1つのライン(又
はブロツク)は、CPUの要求した主メモリから
の命令又はオペランドのすぐ近くのアドレスの多
数の命令又はオペランドを含む。“専用キヤツシ
ユ”は、多重プロセツサシステムにおける相互問
合せ要求の場合を除き、1つのCPUに専用され
るものである。 C/O:追出し キヤツシユから追い出されたライン CMP:比較 ハードウエアによる比較回路。 DAT:動的アドレス変換 DATはプログラム状況ワード中のビツト5に
よつて、そのオン/オフが切り換わる。 LA:論理アドレス CPUによつて供給される任意のアドレス。RA
(すなわち変換不能)又はVA(すなわち変換可
能)である。これは、PSWにおけるDATモード
ビツトの状態により制御できる。 LPF:ライン存在フイールド 共通デイレクトリの各エントリにおけるフイー
ルドであつて、そのエントリによつて表わされる
L1キヤツシユのロケーシヨンを示すもの。 LRU(least recently used) LRU及びPLRU(partitioned least recently
used)アルゴリズムで、キヤツシユデイレクト
リに現に存しない新たなラインのためのスペース
をつくるためどのデータラインを追い出すべきか
を判断する。追い出されたラインについてのキヤ
ツシユデイレクトリエントリは無効化されて、そ
のエントリは新しいライン用として再び割り当て
ることができる。 RA:実アドレス CPUは変換を使用しないDATオフのRAを供
給する。CPUはDATオンのVAを供給する。こ
れが変換されてRAが生成される。 SA:記憶装置アドレス 主記憶装置においてオペランド又は命令につい
てCPUによつて発行されるアドレス STO:セグメントテーブル源 STOのビツトは1次及び2次の記憶装置モー
ドでCR1又はCR7(ビツト5ないし19)から得ら
れる。 TRAD:変換されたアドレス 現在又は過去のDATオペレーシヨンの結果と
してDAT又はTLBから得られる。 TLB:変換索引緩衝機構(DLAT:デイレクト
リ後読みテーブルと呼ばれる場合もある) UTRAD:変換されないアドレス CPUによつて要求された有効アドレス。VA又
はRAである。 VA:仮想アドレス CPUはDATオンのVAを生成する。 汎用データ処理システムの性能を落とす主な原
因は、いわゆる“記憶装置のペナルテイ”であ
る。これは、次のような場合に生ずるものであ
る。すなわち、命令又はオペランドデータの取出
しのために主メモリへのアクセスタイムが数マシ
ンサイクルよりも長くプログラムを通常に実行す
る場合である。記憶装置のペナルテイは仮想記憶
を用いる汎用データ処理システムではコスト的に
もますます不利になる。というのは、仮想アドレ
スから実アドレスへの直接アドレス変換(DAT)
を遂行するために使用されるテーブルをアクセス
するのに主記憶装置の参照が何度も必要となるか
らである。DATを行つた後、結果としての実ア
ドレス(RA)はCPUに対し既知となり、主メモ
リにおける記憶/取出しオペレーシヨンを処理す
ることができる。 記憶装置のペナルテイを減ずるためのメカニズ
ムは様々考え出されてきた。よく使われるのは次
のものである。すなわち、キヤツシユ、キヤツシ
ユデイレクトリ、及びTLBである。これらのメ
カニズムは“参照の局所性”の原理と呼ばれる十
分に確立された原理に基づいている。簡単にいえ
ば、いつたんデータのエレメント(命令又はオペ
ランド)がメモリから要求されれば、1ラインの
データはそのデータエレメントを含んでアクセス
されるということである(その他のデータエレメ
ントはそのエレメントのすぐ近くのアドレスのと
ころに存するのである)。したがつて、その他の
データエレメントはCPUによつてすぐに参照さ
れる可能性が高い。 1つのデータラインが主メモリからキヤツシユ
に入れられると、そのライン内に含まれるデータ
エレメントについての次の参照はキヤツシユで行
われるので、記憶装置(主メモリ)のペナルテイ
を避けることができる。 従来のキヤツシユシステムは2以上のレベルの
記憶階層で設計されているものがある。たとえば
L1及びL2によるキヤツシユ階層構成が使用され
ている。そのような階層においては、CPUはま
ず、L1のデイレクトリにおいてCPUの要求した
データをみつけようとする。そのデータがL1に
ないときは(すなわちL1のミス)、CPUはL2に
おいてそのデータをみつけようとする。L2でミ
スが生じると、主メモリ(L3)からの取出しが
必要となる。L2でヒツトが生じれば、記憶装置
のペナルテイはL2ミスの場合に比べて大幅に減
る。 ここでは2つの実施例を示す。これら2つの実
施例の違いは、デイレクトリにおけるエントリに
表示されたアドレスが変換可能なものとそうでな
いものとについてそのエントリに差異を設ける方
法にある。第1の実施例(第1図ないし第3図)
は各エントリにおいてゼロ又は非ゼロのアドレス
フイールド(ACF)を用いて(ここで非ゼロの
ACFはSTOの値である)変換可能なアドレスと
変換不能なアドレスとを区別する。第2の実施例
(第11図及び第12図)は、CPUの現PSW中の
DATオン/オフ・フイールドを各エントリのア
ドレス制御フイールド(ゼロ又は1の値)として
STOの他に用い、変換可能なアドレスと変換不
能なアドレスとを区別する。 これらの実施例は両方とも、CPUに専用の2
レベルのキヤツシユにあるデータをアクセスする
ため、“共通キヤツシユデイレクトリ(CCD)”
を有している。このCCDは、どの“ラインデー
タ”が現にL1及びL2の両方に存在しているのか
を“覚えて”いるものである。CCDが有するの
は、以前に要求されたCPUのアドレスについて
の変換されないアドレスビツトだけである。要求
データを有するラインがL1又はL2にあるかどう
かをみるため、CCD内の“局所的な探索”がハ
ードウエアで実行される。もしそうなら、CCD
はアドレス指定されたオペランドをL1(L1で利用
可能なら)からCPUにゲートする信号を生成し、
そうでないときは、アドレス指定されたオペラン
ドをL2(L2で利用可能なら)からCPUにゲート
する信号を生成する。 共通キヤツシユデイレクトリは、CPUが変換
可能及び変換不能な論理アドレスのタイプの両方
を要求しうる従来のキヤツシユ機構に共通した問
題をなくすことができる。たとえば、TLB及び
L1は、これまで、変換されない論理アドレス
(仮想アドレス又は論理アドレス)のビツトでア
ドレス指定されるアレイを具備したもので、また
L2は変換された論理アドレス(実アドレス又は
論理アドレス)のビツトでアドレス指定されてい
た。しかし各レベルのキヤツシユは、これまで、
変換された(実/絶対)アドレスフイールドだけ
を代表的に含むキヤツシユデイレクトリを有する
ものであつた。キヤツシユのヒツトは、要求され
た論理アドレスが実アドレスでないときは変換可
能な論理アドレスが完全に変換された後でしか決
定できなかつた。この場合、TLBはバイパスさ
れていた。したがつて、TLB内の比較及び選択
の論理は、仮想アドレスに基づいており、L1キ
ヤツシユデイレクトリ内(及びL2キヤツシユデ
イレクトリ内)の比較及び選択の論理は、アドレ
ス変換が完了するまで待たねばならなかつた。 キヤツシユのヒツトを判断するのに同じアドレ
スの変換された及び変換されない形式の両方を必
要とするこの従来のやり方は、仮想アドレスと実
アドレスとを“分類”するため、及びそれに応じ
てキヤツシユシステム内のアドレス指定経路を変
更するための従来のハードウエアを非常に複雑に
していた。 本発明の共通キヤツシユデイレクトリ(CCD)
は交換可能な論理アドレスの形式は1つだけであ
り、それは、L1及びL2の両方をアクセスするた
めのCPUの要求した全てのアドレスについて変
換されない形式である(それが変換可能であると
否とを問わない)。共通キヤツシユデイレクトリ
は、L1デイレクトリ、L2デイレクトリ、及び
TLBの一定の機能を組み合せたものである。実
際のタイプとは関係なく各論理アドレスの要求さ
れた形式は、変換することなく(1)共通キヤツシユ
デイレクトリのエントリ内におけるキヤツシユオ
ペレーシヨン、及び(2)共通キヤツシユデイレクト
リ、L1キヤツシユ、L2キヤツシユ及びL1制御ア
レイをアドレス指定するためのキヤツシユオペレ
ーシヨンの両方において一律に使用される。可変
アドレスについてのこの単一の形式によれば、キ
ヤツシユのアドレス指定機構は簡単になり、また
アレイが統合整理されることでハードウエアの経
済性も向上し、さらに、重要なキヤツシユ経路に
おけるハードウエアも減らせるので、キヤツシユ
のサイクルタイムが減る。 第1図において、変換可能及び変換不能なアド
レス間の切替のための回路を示した。アドレスの
タイプはアドレス制御フイールド(ACF)28
に示される(これは論理アドレスレジスタ30と
関連している)。非ゼロのACF値で、レジスタ3
0に変換可能なLAがあることを示し、ゼロの
ACF値で、変換不能なLAがあることを示す。 変換されないアドレスだけを表示するという独
特の構成は、共通キヤツシユデイレクトリに設け
られる。キヤツシユのアクセスからアドレス変換
をなくしたことで、L1キヤツシユ及びL2キヤツ
シユのアクセス権を獲得するCPUからの実アド
レス及び仮想アドレスの両方についての高速な経
路が提供される。L2のアクセスはL1のアクセス
と同時に始まり、もし要求データがL1キヤツシ
ユから取得できないときはL2のアクセスが完了
する。 第1図は、変換されないアドレス及び変換され
たアドレス(実アドレス及び仮想アドレス)を区
別する共通デイレクトリに設けられる特独な構成
を示す図である。アドレス制御フイールド
(ACF)は、レジスタ30に入つている要求論理
アドレスが変換されたアドレスなのか変換されな
いアドレスなのかを示すようにセツトされる。
ACF28は、ANDゲート21,22,23又は
24の出力によつてセツトされる複数ビツトのフ
イールドである。ACFがゼロだと、レジスタ3
0にある論理アドレスが変換(RAまたはAA)
を要求しないことを意味し、ACFが非ゼロだと、
変換の要求を意味する。 詳述すれば、ANDゲート23及び24は全ゼ
ロ信号源19(これはCPUのマイクロコードで
もよい)から全ゼロ信号を受け取る。これらの
ANDゲートは全て、現にCPUの制御下にあるプ
ログラム状況ワード(PSW)の1以上の制御ビ
ツトによつて制御される。これらの中には、
DATモード制御ビツト5、拡張制御(EC)モー
ドビツト12、及びアドレス空間制御ビツト16も含
まれる。PSWとこれらのビツトを含むその内容
はマニユアル、“IBMシステム/370の動作原理”
(GA22−7000−8)に記載されている。 ECモードビツト12はANDゲート24が全ゼロ
信号を出力するか否かを制御する。ECモードビ
ツト12がオフで基本モードを示すとき(システ
ム/360のオペレーシヨンと同じである)、AND
ゲート24が全ゼロ信号を出力する。ANDゲー
ト23は、ECモードビツト12がオンのとき(シ
ステムがシステム/370のアーキテクチヤで作動
していることを意味する)、全ゼロ信号を出力す
る。さらに、DATモードビツト5は、ゲート2
3のオペレーシヨンを制御するが、ゲート23へ
の反転入力のため、ビツト5がオフ(DATのオ
フを意味する)のとき、ゲート23が全ゼロ信号
を出力する。 ゲート21及び22は、レジスタ30にある、
変換を用いる論理アドレスを示すためのゼロでな
い値の信号を供給する。これらは、主メモリにお
いてセグメントテーブル及びページテーブルの使
用を要求するアドレスである。ゲート22は主メ
モリにおけるセグメントテーブルを捜すためのセ
グメントテーブル源(STO)を出力する。STO
は、制御レジスタ(CR1)からANDゲート22
に供給される。これは、DATモードビツト5が
オン、ECモードビツト12がオン、及びアドレス
空間制御ビツト16がオフで付勢される。ANDゲ
ート21は、DATモードビツト5がオン及びア
ドレス空間制御ビツト16がオンのとき、CR7から
STOを出力する。 ANDゲート21ないし24の出力はドツトオ
アされてACFレジスタ28への1つの信号を供
給する。これはSTOを表わすことができるもの
であるが、それが全てゼロなら(関連する論理ア
ドレスが変換を使用せずしたがつて実アドレス又
は絶対アドレスであることを示す)、この信号は
STOを表わさない。レジスタ30にある関連す
る論理アドレスは有効論理アドレスで、これは、
オペランドアドレスについて計算された形であ
る。 第2図は、LAレジスタ30への選択的な入力
を示す図である。このうち、CPUからの論理ア
ドレス入力(入力ゲートビツト1〜31)はこれま
で説明したオペレーシヨンにおいて用いられる。
レジスタ30への他の入力はシノニム及び相互問
合せデイレクトリ回路によつて供給される。この
回路は、ローカルのCPUによつて要求されたデ
ータを取得するためにL1がシノニムエントリを
アクセスすることと、他のCPUの要求時に無効
化及び追出しを行うことの両方を制御する。 フイールド41ないし49の全ては、一回のマ
シンサイクルの間に、第3図のデイレクトリ6
0、キヤツシユ63、制御アレイ61、TLB6
2、L2キヤツシユ64、LRU回路67、及び
LRU回路68へ同時にゲートアウトされる。 第3図は、第1図からの信号出力を受け取るも
のである。第3図は、単一のデイレクトリ60を
持つており、これはL1キヤツシユ63及びL2キ
ヤツシユ64の両方のアクセスを制御するのに共
通に働く。これらのキヤツシユは、プロセツサの
出した記憶装置要求の間の競合を回避するという
利点を持つている。共通キヤツシユデイレクトリ
60はL1キヤツシユ63及びL2キヤツシユ64
の両方についてのデイレクトリとして働くので、
個別的なキヤツシユデイレクトリの必要性がなく
なる。 第3図(又は第12図)におけるキヤツシユは
1例であるが、これは次のようなものである。 L1キヤツシユ63: 64キロバイト 4ウエイセツトアソシアテイブ式 1ライン128バイト 64バイトデータバス (L2,L3,CPUへのバス) “ストアイン”式 L2キヤツシユ64: 1メガバイト 4ウエイセツトアソシアテイブ式 1ライン256バイト 1つのL2ラインにつき2つのL1ライン 64バイトデータバス (L1,L3,CPUへのバス) “ストアスルー”式 第1図、第2図及び第3図に示した実施例は共
通キヤツシユデイレクトリを具備するもので、こ
の共通キヤツシユデイレクトリにおける各エント
リは第5図に示す如き例示的な形式を有する。第
11図及び第12図に示す実施例は、第14図に
示す如き例示的な形式を有する各エントリを持つ
デイレクトリ160を具備している。 第1図に示す特定の出力フイールドは第1の実
施例について設けられる。これは、アドレスのサ
イズ、キヤツシユのサイズ、共通デイレクトリの
サイズなどに応じて容易に変更できる。したがつ
て、第1図では、レジスタ30に定められたフイ
ールドは第3図のデイレクトリ60、キヤツシユ
63、及びキヤツシユ64における特定サイズの
アレイを収容するものである。バス41,43及
び46は、その比較フイールドでデイレクトリ6
0におけるL2ヒツトを制御するのに使用される。
選択フイールド32はデイレクトリ60をアドレ
ス指定するため、ライン46を介して出力され
る。その中に特定のコングルエンスクラスを選択
するためである。ライン41を介するACF出力
及び比較フイールド43もまた、そのデイレクト
リにおけるL2ヒツトを判断するためもしあれば
そのコングルエンスクラスにおけるエントリ
(A,B,C、又はD)を選択する目的で、共通
デイレクトリ60の比較部に設けられる。LPF
選択フイールド33は、L2ヒツトと判断された
ときにL1ヒツトが存在するかどうかを判断する
ため、デイレクトリ60にライン49を介して供
給される。 第5図は組み合わされたデイレクトリエントリ
の各々におけるフイールドを表わす図である。こ
れらのフイールドは次のようなものである(な
お、図中のかつこ内に示す数字はビツト数であ
る)。 LRUフイールド: そのエントリによつて表わされるL2キヤツシ
ユにおけるコングルエンスクラス中のL2ライン
についてのLRU状況を表わすフイールド Iフイールド: そのエントリによつて表わされるL2ラインの
無効/有効状況を表わすフイールド EXフイールド: L2キヤツシユにおいてそのエントリによつて
表わされるL2ラインの排他的/読取り専用状況
を表わすフイールド CHフイールド: L2キヤツシユにおいてそのエントリによつて
表わされるL2ラインの変更/不変更状況を表わ
すフイールド CMフイールド: L2キヤツシユにおいてそのエントリによつて
表わされるL2ラインが共通の又は専用の仮想ア
ドレス空間のうちの1ページの中に入つているか
どうかを表わすフイールド ACFフイールド: このフイールドはそのエントリが実アドレスを
表わすときはゼロの値を、そのエントリが仮想ア
ドレスを表わすときは非ゼロのSTO値を有する。
このフイールドはCPUの要求から導出される。
エントリはそのCPUの要求から生成されたもの
で、デイレクトリの比較回路によつて使用され
る。 LAフイールド: このフイールドは論理アドレスの上位ビツトを
含む。なお、エントリはデイレクトリの比較回路
によつてこの論理アドレスから生成されたもので
ある。 LPFフイールド: 各デイレクトリエントリにおけるライン存在フ
イールドは、もしあればどのL2ラインの部分が
L1キヤツシユ内に存在するのかを示すための6
ビツトを有する。本実施例では各LPFのビツト
は次のように定義されている。
【表】
る。
“排他的”な割振り及び制御について選択され
たデータの単位はこれらの実施例における1つの
L2ラインである。 LRU67は、これらの実施例の各々において
アクセスされる各デイレクトリエントリのL2・
LRUフイールドの内容を生成する。L2・LRUフ
イールドは、次の場合に、L2のコングルエンス
クラスの全てのエントリが更新される。すなわ
ち、そのクラスのエントリがどれか1つでもアク
セスされた場合である。L2ミスがデイレクトリ
内で生じたときは、L2キヤツシユへ入れられた
新しいデータラインを表わすよう、新ししエント
リがデイレクトリ内に生成される。キヤツシユミ
スの間、選択されたコングルエンスクラスにおけ
る全てのフイールドを検査して、ミスの発生した
CPUの要求について生成すべき新しいエントリ
を受け取るため割り当てるべきエントリを捜す。
このようにして、LRUアルゴリズムで、階層に
おいて主メモリ(L3)に“追い出す”ことが必
要となり得るデイレクトリエントリを決定する
(これは、新しいエントリの内容をデイレクトリ
に書き込む前にこの新しいエントリ用のスペース
を作るためである)。L2キヤツシユから追出しが
要求されるのは、L2がストアイン式キヤツシユ
として動作する場合だけである。もしL2がスト
アスル−式キヤツシユであれば、新しいエントリ
についてのLRUの選定の後に追出しは全く必要
ない。 第4図は共通キヤツシユデイレクトリを示す図
で、ここには、4ウエイのセツトアソシアテイブ
式コングルエンスクラスのうちの選択された1つ
が1例として示されている。デイレクトリ60に
おける比較機構は4つの比較回路71AないしD
として図示されており、それぞれ、選択されたコ
ングルエンスクラス中の4つのエントリの各々
と、ACFフイールド及びLAフイールド1〜13
とを比較する。各比較回路71は副比較回路72
及び73を含み、これらは組み合わされてAND
回路74を構成する。AND回路74が1つの出
力信号を供給する場合、そのエントリがキヤツシ
ユヒツト(比較一致)を有することを意味する。
AND回路74が1つのコングルエンスクラスの
選択に応答して出力信号を供給しない場合、その
エントリがキヤツシユヒツト(比較不一致)を有
しないことを意味する。ACF値がゼロのときは
(CPUの要求が変換不能アドレスであることを意
味する)、比較一致を供給できるよう、デイレク
トリエントリはゼロのACF値を有していなけれ
ばならない。ACF値がゼロでないときは(ACF
がSTOであり、CPUの要求が変換可能アドレス
であることを意味する)、比較一致を供給できる
よう、同じ非ゼロのACF値を有していなければ
ならない。選択されたコングルエンスクラスにお
いてL2キヤツシユヒツトがあれば、AND回路7
4AないしDの出力信号が供給される。AND回
路74の反転された出力を受け取るAND回路8
0によつて、第4図においてL2ミス信号が生成
される。 このようにして、キヤツシユデイレクトリの各
比較回路は、現在のACF信号の制御の下で次の
ものの間に一致が生ずるかどうかを判断するため
に自動的に機能する。すなわち、(1)変換可能な
LAとエントリ表示された変換不能なアドレス
(UERAD)との間、(2)変換可能なLAとエントリ
表示された変換可能なアドレス(TERAD)との
間、(3)変換不能なLAとUERADとの間、又は(4)
変換可能なLAとTERADとの間である。本実施
例では、比較(1)又は(2)は、たとえ比較されるLA
の値が等しいとしても不一致を宣言することが要
求される。比較されたLAの値が等しい場合に、
比較(3)又は(4)だけが一致の宣言を行うことができ
る。したがつて、要求されたLAと、選択された
コングルエンスクラスにおける各TERADとが異
なる変換特性を有するときは、これらが一致する
かどうかとは関係なく、L2キヤツシユミスと判
断される。 L2キヤツシユヒツトと判断されたときは、デ
イレクトリ60は、L1キヤツシユヒツトが存在
するかどうかを必ず判断しなければならない。第
3図において、L1キヤツシユヒツトは、その
AND回路74の出力でL2ヒツトが判断された場
合にL1ヒツト判断回路75によつて判断される。
判断回路75は第1図からのLPF選択フイール
ド33(このLPFフイールド33はライン49
を介して第4図のデイレクトリで使用される)を
使用してL1キヤツシユヒツトが存在するかどう
かを判断するのに必要なLPFの部分を捜す。も
しL1ヒツトが存在すれば、ライン47を介して
供給されるLAビツト18〜25によつてL1キヤツシ
ユにおいて現にアドレス指定されているコングル
エンスクラス内の4つのデータラインのうちの正
しいデータラインを選択するため、4つのL1キ
ヤツシユヒツト信号ラインA,B,C、又はDの
うちの1つを介して信号が出力される。要求され
たL1のコングルエンスクラス内における4つの
データラインA,B,C、又はDのうちの活動化
された1つはこれで選択され、要求されたバスの
単位(たとえば、4つの4倍長ワード)が、要求
されたL1データとして、データバスを介して
CPUに送出される。 かくして第4図において、各回路75はゲート
77,78とデコード回路78とのペアを含む。
ゲート76は、LPFのビツト61及び62の第1の
セツトを選択してデコード回路78へ送るため、
最左端のビツト(第1のビツト)Pによつてそれ
が1のとき付勢される。ゲート77は、LPFの
ビツト61及び62の第2のセツトを選択してデコー
ド回路78へ送るため、最右端のビツト(第2ビ
ツト)Pによつてそれが1のとき付勢される。デ
コード回路78は受信したビツト61及び62をデコ
ードして、L1キヤツシユにおいて選択されたコ
ングルエンスクラス中の4つ(A,B,C又は
D)のうちの特定のL1データラインを決定する。 もしデイレクトリ60の比較オペレーシヨン
で、選択されたコングルエンスクラス中にデイレ
クトリエントリについて不一致しかみつからない
ときは、L2キヤツシユヒツトは存在しない。し
たがつてL2キヤツシユミスが宣言される。これ
は第3図のTLB62の出力ゲートに知られて、
ミスしたL2ラインの取出しについてRA(UPにお
ける)又はAA(MPにおける)をTLBから主メ
モリに送ることが制御される。L1ミス信号は、
デコーダ78の反転出力を受け取るAND回路8
1によつて第3図において生成される。 第8図はL1キヤツシユ及びデータライン選択
回路を示す図である。L1の各データセルは、こ
の例では、64バイトのデータラインを有すること
ができる。そのセル選択ゲート82は入力ライン
A,B,C、又はDのうちの1つの付勢によつて
選択されたコングルエンスクラス中の1つのセル
を選択する。これらの入力ラインはOR回路86
A,B,C、又はDのうちの1つの出力によつて
活動化されるもので、またこれらのOR回路は、
L1ヒツト選択信号A,B,CもしくはD又は第
3図及び第6図におけるL1制御アレイ61から
の追出しの選択されたビン番号の出力によつて付
勢される。セル選択ゲート82は、選択されたデ
ータラインから2つのタイプの出力を供給する。
それらは完全なデータラインと、CPUによつて
要求されているそのライン中のデータ単位であ
る。完全な1データラインは、それがL2キヤツ
シユ及び主メモリ(L3)に追い出されたときに
要求される。この転送は連続する2つの64バイト
ブロツクで行われる。これらのブロツクの各々は
LAビツト18ないしL25を使つて別々のL1サイク
ルを必要とする。選択されたデータライン中のデ
ータ単位はそれがCPUによつて要求された場合
に必要となるもので、LAビツト25によつて、選
択されたデータライン内においてアドレス指定さ
れデータバスを介してCPUに出力される。 第9図は、L2キヤツシユ及びL2データライン
選択回路を表わす図である。L2の各データセル
はこの例では64バイトのバス単位を含むことがで
きる。セル選択ゲート83は入力ラインA,B,
C又はDのうちの1つを付勢することによつて、
選択されたコングルエンスクラス中の1つのセル
を選択する。これらの入力ラインはOR回路87
A,B,C又はDのうちの1つの出力によつて活
動化される。これらのOR回路は、第4図からの
L2ヒツト選択信号A,B,CもしくはD、又は
第3図におけるL2・LRU回路67からの追出し
LRU選択信号の出力によつて付勢される。セル
選択ゲート83は選択されたデータラインら2つ
のタイプの出力を供給する。それらは完全な1ラ
インと、CPUによつて要求されたそのライン中
のデータ単位である。完全な1データラインはそ
れが主メモリ(L3)に追い出される場合に必要
となる。(L2キヤツシユからの追出しはL2がスト
アインキヤツシユ式として働く場合にのみ必要で
ある。もしL2がストアスルー式なら、新しいエ
ントリについてのLPUの選定の後、追出しは全
く必要ない。)選択されたデータラインのL1部分
は、データバスを介してL1キヤツシユからL2キ
ヤツシユへ追い出されるL1ラインを受け取るた
め、選択されたL2データライン内でアドレス指
定する必要がある。L2の転送は64バイトのデ
ータ単位で行われる。 第3図において、L2キヤツシユミスが生じる
まではTLB62からの出力は全く必要ない。
TLBは、同時にCPUが直前に要求した“実アド
レス”(又は“絶対アドレス”)及び“仮想アドレ
ス”の両方についてのページフレームアドレスを
記憶する。TLBのコングルエンスクラスは各
CPUの要求した論理アドレスのビツト12ないし
19によつてアドレス指定される。そのクラスの全
てのエントリはACF及びLA1ないし11と比較さ
れる。もしこれらの比較が一致、要求アドレスが
TLBに含まれていれば、そのページフレームの
実アドレスがTLBからCPUにすぐにわかつて、
主メモリがアクセスされるので、“長い経路”の
DATの待ちサイクルが回避される。 TLBは、各々の要求LAアドレスごとに、それ
が変換可能LA(すなわちVA)であるか変換不能
LA(すなわちAA)であるかを問わず1つのエン
トリを生成する。ところで、TLB62は真の
TLBではない。何故なら、真のTLBは変換可能
なアドレス(すなわちVA)しか含んでいないか
らである。換言すれば、TLB62中のエントリ
におけるLAフイールドはVAでもRAでもよい。
しかし、TLB中の全てのエントリにおけるAAフ
イールドは、TLBが単一プロセツサにおいて存
在するか又は多重プロセツサにおいて存在するか
に応じて、それぞれRA又はAAしか含まない。 TLBアレイは通常のTLBオペレーシヨンで要
求されるように、エントリごとに、有効論理アド
レス部を記憶する。TLBの有効なエントリは、
各々、ページ絶対アドレス(AA)も含んでい
る。 バス44を介する第1図からのLAビツト12な
いし19は1つのTLBのコングルエンスクラスを
選択する。さらに、バス41はACFフイールド
をTLB62に供給する。これは、通知された
ACFとTLBの各エントリにおいて表示された
ACFとの比較を行うためである。キヤツシユデ
イレクトリ比較回路と同様、TLB比較回路は、
ACF信号の制御の下で次のものの比較を制御す
るよう自動的に作動する。すなわち、(1)変換不能
なLAと変換可能なエントリ表示されたアドレス
(TERAD)との間、(2)変換可能なLAと変換不能
なエントリ表示されたアドレス(UERAD)との
間、(3)変換不能なLAとUERAとの間、又は(4)変
換可能なLAとTERADとの間である。本実施例
では、比較されるLAの値が等しい場合でも、上
記のケース(1)及び(2)については不一致を宣言する
ことが要求される。比較されるLAの値が等しい
場合、上記ケース(3)又は(4)だけが一致を宣言する
ことができる。したがつて、実施例に基づく手法
で検出される一致条件の場合だけTLBヒツトと
判断される。この一致条件は、選択されたコング
ルエンスクラスにおけるTERADがレジスタ30
にある要求されたLAに等しい場合に要求された
LAと各TERADが同じ変換特性を持つていると
きだけである。要求されたLAと、選択されたコ
ングルエンスクラスにおける各TERADとが異な
る変換特性を持つている場合は、たとえTERAD
がレジスタ30にある要求されたLAに等しいと
しても、本実施例の下では、TLBミスと判断さ
れる。 L2キヤツシユミスの際、TLBは1つのアドレ
ス(RA又はAA)を出力する。このアドレスは
ミスの発生したL2データラインを取り出すため
主メモリL3に送られる。TLBはこれを行う前に、
要求されたLAについて1つのエントリを含んで
いなければならない。これは1つのコングルエン
スクラスを捜すためのLAと、そのエントリを調
べるためのACF及び上位のLAビツトとを使つて
探索される。選択されたTLBのコングルエンス
クラスにおける全てのエントリが不一致を生じた
ときは、要求されたLAはTLBにおいては全くエ
ントリを有さず、TLBミスが宣言される。次に、
TLBの1つのエントリが、その要求されたLAに
ついて生成される。しかし、このLAはそれが
VAである場合にのみ交換を要求し、この変換を
実行するため、LAはCPUのDAT回路におくら
れる。この場合、CPUはそのエントリを完成す
るためこの変換を持たねばならず、また変換され
たアドレス(このアドレスで、要求されたL2デ
ータラインを主メモリから取り出すことができ
る)を有していなければならない。しかしなが
ら、L3の取出しが行われている間にCPUが別の
L2キヤツシユデータラインを要求する別のアド
レスを有する場合は、CPUはTLBオペレーシヨ
ンと並行して作動することができる。 第10図は、第3図の実施例で使用される
TLB回路の詳細を示した図である。これは2ウ
エイセツトアソシアテイブ式のもので、コングル
エンスクラスのうちの1つが現LAビツト12ない
し19によつて選択される。この回路は、選択され
たコングルエンスクラスから出力される2つのセ
ルをそれぞれ受け取るセル選択比較回路83A及
びBを有する。セル選択比較回路83の各々は第
4図の回路71と内部的には同一のもので、回路
83の各々は出力信号をそれぞれのゲート84A
又はBに供給することによつて、そのセル及び現
CPUの要求からの比較一致入力を検出し、アド
レスバス86を介するそのセルから主メモリL3
への絶対アドレス(AA)の送出を付勢する。も
しそれぞれの回路83が比較不一致入力を受け取
る場合は、ゲート84の付勢は行われない。この
場合、ゲート84A及びBのうちの一方しかAA
をバス86に出力できない。 TLBミスはAND回路87によつて検知され
る。このAND回路87は、セル選択比較回路8
3A及びBの出力からの反転入力を受け取る。各
TLBミスはAND回路87によつてゲート88に
伝えられる。ゲート88は第1図におけるPSW
のビツト5からの“DATオン”信号によつて付
勢され、これにより現仮想アドレスが第10図中
のDAT回路81に送られ、これがAAに変換さ
れる。TLBのLRU回路90によつて、それぞれ
の書込み回路82A又は82Bが付勢される。こ
れは、TLBにおいてのミスの発生したVAについ
て新しいエントリを受け取るためにLRU回路に
よつて割り振られたTLBのセルに新しく生成さ
れたAAを書き込むものである。 デイレクトリ60がL2キヤツシユヒツトを有
する場合は、たとえL1キヤツシユミスがあつた
としても、TLBの出力は全く必要ない。デイレ
クトリ60における選択されたコングルエンスク
ラスについてのセツトアソシアテイブな比較オペ
レーシヨンで比較一致を有するL2エントリがみ
つかつたときは(すなわちL2ヒツト)、L1ヒツト
回路75によつてL1ミスと判断される。L1ヒツ
ト回路75は、みつかつたL2エントリにおける
(1)LPF選択フイールド及び(2)現論理アドレスか
らのLAビツトを使つて、対応するL2ライン(L2
キヤツシユデイレクトリ64で利用できるとわか
つているもの)がL1キヤツシユに存在するかど
うかを判断する。もしLAビツトがゼロなら、
LPFフイールドの最初の部分が選択される。LA
ビツトが1なら、LPFフイールドの第2の部分
が選択される。LPFフイールドの選択された第
2の部分においては、Pビツトの状態が調べられ
る。そこでもしPビツトが1なら、要求されたデ
ータはL1に存在し、L1ヒツトが宣言される。
LPFビツトb1及びb2は組み合せ的に調べられ、
どのL1エントリ(A,B,C又はD)がL1ヒツ
トであるかが判断される。L1キヤツシユヒツト
は4つのラインAないしDのうちの1つを介して
L1キヤツシユ63に知らされ、要求データをそ
こから取得するため正しいL1がアクセスされる。
この要求データはアドレスビツト18ないし25によ
つて見出され、CPUに送出される。 Pビツトがゼロで、かつ、L1ミスが宣言され
たときは(すなわち、L2ヒツトかつL1ミスの状
態)、L1ラインが現L2ヒツトラインから取り出さ
れL1キヤツシユにコピーされる一方で、そのラ
インにおける要求データがCPUに送られる。要
求されたL1ラインを含むL2ライン部分はLAビツ
ト14ないし24によつて見出され、その部分(すな
わち、64バイト)において要求されたデータは
LAビツト18ないし25によつてL1キヤツシユ63
において見出される。 生成中のL1エントリに関する欠くことのでき
ない補足的な情報はL1制御アレイ61に記憶さ
れる。これはCPUがL1でミスしたときになされ
る。新しいL1エントリ用のスペースを作るため
に1つのL1エントリがL1・LRUによつて選択さ
れたときは、そのスペースに存在するどんなエン
トリも(変更ビツトがオンとなつているもの)、
L2に追い出さねばならず、L1制御アレイ61に
おける論理アドレス(LA)フイールドが対応す
るエントリをみつけるために必要とされる。L2
アドレスは、この制御アレイのLA14ないし1
7、及び要求中のアドレスのLA18ないし25
から形成される。 L1キヤツシユがストアイン式キヤツシユであ
り、そのCPUが多重プロセツサ(たとえばチヤ
ネル又は別のCPU)が活動化することにより、
L1キヤツシユ中の変更されたデータラインの無
効化又は追出しを要請する別の要求が生じること
がしばしばあるであろう。外部資源からのこのよ
うな要求にとつては、L1又はL2における対応エ
ントリのロケーシヨンはわからない。第3図及び
第6図におけるL1制御アレイ61(L1CA)は
L1キヤツシユ63に関して幾つかの機能をサポ
ートする。通常のL1キヤツシユフラグ標識もそ
の1つである。L2からのL1ラインの無効化又は
追出しやL1及びL2からのL1ラインの無効化又は
追出しを要請する各々の要求は、その要求の必要
なLAビツトを送らねばならない。 L1制御アレイ61中の各エントリのロケーシ
ヨンはL1キヤツシユにおいて同様に配置された
L1ラインに対応する。L1CAエントリの内容は
L1キヤツシユにおける対応データの状態を表わ
す。各L1CAエントリの内容は第7図に示した。
これは次のようなフイールドを含む。 Iフイールド: そのL1ラインの無効/有効状態を表わすもの EXフイールド: そのエントリによつて表わされるL1ラインの
排他的/読取専用の状態を表わすもの C/O LAフイールド: このフイールドは生成中のアドレスの論理アド
レスのビツト12ないし17を含む。これらのビツト
は要求中のアドレスのビツト18ないし23と連結さ
れ、共通デイレクトリ及びTLBにおけるコング
ルエンスクラスをさがす。 ビン番号フイールド: このフイールドで、選択された共通デイレクト
リのコングルエンスクラスにおけるアソシアテイ
ブセツト(AないしD)をさがす。L1及びL2の
対応エントリはいずれかのキヤツシユにセツトア
ソシアテイブセツトで存在しうる。すなわち、ビ
ン番号はL1中の1つのラインについてのL2にお
けるアソシアテイブセツトを示すものである。 CHフイールド: そのエントリによつてあらわされるL1ライン
の変更/不変状態を表すもの。変更されたライン
だけがどこかのキヤツシユの追い出される。 LRUフイールド: L1キヤツシユの各コングルエンスクラス中の
4つのエントリについて、アソシアテイブセツト
A,B,C又はDのLRUエントリを表わすもの 単一プロセツサ(UP)の場合、一般にチヤネ
ルプロセツサの形で他のプロセツサが存在するこ
とはあつても、そのシステムにおいてローカルな
CPUは1つだけである。多重プロセツサ(MP)
の場合は、ローカルなCPUに加えて他のCPUが
存在し、各CPUは1以上のチヤネルプロセツサ
を含む場合がある。 ローカルなCPUが共通デイレクトリ60にお
いてミスの生ずる要求を起こすと、L1・LRUは、
L1CAにおいて選択されたコングルエンスクラス
中の対応するL1CAエントリをさがし、L2・
LRUは、共通デイレクトリ60において選択さ
れたコングルエンスクラス中の1つのエントリを
さがす。アクセスされたL1CAエントリのおける
フイールドは、共通デイレクトリ60において対
応する共通デイレクトリエントリが生成されたと
き、生成される。これらの両アレイで、対応する
無効(I)フイールドはオフにセツトされ、対応
する変更(CH)フイールドはL1ラインが書込み
アクセスを受け取るときオンにセツトされ、対応
する排他的/読取専用(E)ビツトはL1ライン
要求のタイプに応じてセツトされ(もしL1ライ
ンがL2ラインにおいて排他的なものなら、その
L2ライン全体が排他的状態にセツトされる)、上
位のLAビツト12ないし17は後でL2キヤツシユ及
びTLBにおける対応エントリをみつける際に使
用できるようL1CAにセツトされ、L1キヤツシユ
の対応するロケーシヨンのビン番号が共通デイレ
クトリエントリに挿入され、これらのエントリを
含むコングルエンスクラスを制御するL1及びL2
のLRUフイールドがそれぞれのLRU回路67及
び68(そのコングルエンスクラスにおける次の
エントリの置換についての選択を制御するための
回路)によつて更新される。 かくして、L1CA61は、L1キヤツシユにおい
て変更されたいずれかのエントリを正しいL2キ
ヤツシユのロケーシヨンに追い出す。これは無効
エントリがなくL1・LRU回路が有効なエントリ
のうちの1つを選択しなければならないような場
合に生ずる。この場合、同じコングルエンスクラ
ス内でLRUエントリがLRUによつて選択され、
これが追い出されることとなる。これは、まず、
再割振りされたL1キヤツシユエントリの内容を
L2キヤツシユの対応するロケーシヨンに記憶す
ることによつてなされる。この対応するセツトア
ソシアテイブなロケーシヨンは、ビン番号と、対
応するLAアドレスのビツト12ないし17からもと
もと得られたL1CAエントリにおけるL2のコング
ルエンスクラス位置付けフイールドとによつて決
定される。 L1・LRUのエントリの割振りは、L1キヤツシ
ユミスがあり、かつ、全てのセツトアソシアテイ
ブエントリがアドレス指定されたコングルエンス
クラスにおいて有効である(既に書き込まれたエ
ントリと共に)とき必要となる。エントリであら
わされたデータが変更されたものであるときは、
LRUで選択されたエントリからのL1の追出しが
行われる。一方、そのデータが不変のものである
ときは追出しは全く必要ない。 LRUによるL1の追出しは有効なL2キヤツシユ
ライン中の対応するエントリへのものとなり、
L2がストアスルー式のときは主メモリL3へのも
のとなる。この場合、TLBは制御アレイからの
LAビツト12ないし17と要求アドレスからのLAビ
ツト18及び19とでアドレス指定される。追出しの
ロケーシヨンにおけるデイレクトリエントリは、
追出しラインのL3アドレス(AA又はRA)を判
断するためのTLBの比較を完了するのに必要な
ACF及びLAビツト1ないし11を供給する。新し
い要求(現L1ミスを引き起こす)はLRUエント
リに書き込まれる新しいエントリを有することと
なる。換言すれば、新しいエントリはL1におい
てLRUの割り当てたロケーシヨンに書き込まれ
ることになる。しかしながら、新しいエントリの
書込みの前に、古いエントリからの要求された追
出しを行わねばならない。古いエントリ中の情報
が重ね書きによつて破壊されてしまうからであ
る。本実施例はこの問題を次のように解決してい
る。すなわち、LAビツト12ないし17及びL1CA
アレイからのビン番号を、LRUで選択されたエ
ントリに対応するエントリに記憶することによつ
てである。古いL1CAエントリが新しいL1ライン
のための新しいL1CAエントリで重ね書きされる
前に追出しについてのアクセスを行わねばならな
い。追い出されるL1エントリは追い出されるL2
のコングルエンスクラスにおけるどこかのセツト
アソシアテイブなロケーシヨンに存在することが
でき、一方、L1エントリはアドレス指定された
L2のコングルエンスクラスのどこかのセツトア
ソシアテイブなエントリでみつけることができ
る。 L1キヤツシユラインの追出し又は無効化を引
き起こす他の原因は、(1)要求ラインがL1CAの対
応するエントリによつて変更されるものであると
示されているとき排他的に保持されたL2ライン
についての別のCPUからの相互問合せ(XI)要
求と、(2)要求ライン中のデータについてのチヤネ
ルプロセツサからの相互問合せ(XI)要求であ
る。 相互問合せデイレクトリは、別のCPUによる
キヤツシユラインの追出し又は無効化についての
可能な要求を判断するのに用いる。 第16図に示すシノニム又は相互問合せデイレ
クトリ(S/XI)構成は多重プロセツサにおけ
る各CPUに関連するS/XIデイレクトリを提供
する。各S/XIデイレクトリは関連するCPUに
おける共通キヤツシユデイレクトリについてのシ
ノニム(S)デイレクトリである。各S/XIデ
イレクトリは多重プロセツサシステムにおいて設
けられた全ての他CPUについて、及び全てのチ
ヤネルについての相互問合せ(XI)デイレクト
リでもある。 第16図において、複数のシノニム/相互問合
せ(S/XI)デイレクトリ230−1ないし2
30−Nは多重プロセツサシステムにおける個々
のCPU1ないしNに対応する。単一プロセツサ
システムの場合は、デイレクトリ230−1だけ
設ける。 L2キヤツシユミスの際、関連するTLBから出
力された実/絶対アドレスを用いて全てのS/
XIデイレクトリをアドレス指定し、各S/XIデ
イレクトリにおけるコングルエンスクラスをみつ
ける。各コングルエンスクラスには複数のセツト
アソシアテイブなエントリが含まれている。 任意のS/XIデイレクトリ230における各
エントリは関連する共通キヤツシユデイレクトリ
に対応するエントリを持つているが、S/XIの
コングルエンスクラスはキヤツシユデイレクトリ
のコングルエンスクラスには対応しない。という
のは、キヤツシユコングルエンスデイレクトリは
要求元のCPUに関連しており、XIの探索は他の
全てのS/XIデイレクトリにおいて行われるも
のだからである。 各XIデイレクトリ200の各エントリの内容
は第16図において参照番号231で示してある。
すなわち、絶対アドレス“AA”、L2のコングル
エンスクラスをみつけるためのフイールド
“LA14〜19”、ビン番号フイールド“BIN#”、
排他性標識“EX”、無効化標識“I”、デイレク
トリのLRUフイールド“LRU”である。各エン
トリの内容は、LRUフイールドを除き、それぞ
れのS/XIエントリを生成した共通キヤツシユ
ミスについての情報を表わす。 S/XI優先付け回路211の出力(レジスタ
212へ供給される)には、選択された要求元の
CPUID、その絶対アドレス、その共通デイレク
トリのビン番号、及びEXビツトの内容が含まれ
る。絶対アドレスレジスタ212は優先順位の選
択された出力要求を受け取り、CPUIDデコーダ
220はレジスタ212中の要求を有するCPU
の識別子を受け取る。(単一プロセツサの場合は、
システムには他のプロセツサが存在しないから
CPUの識別子は不要である。) レジスタ212中の現要求の絶対アドレスのビ
ツト1ないし19について(及び任意選択的に論理
アドレスのビツト14ないし19について)全ての
S/XIデイレクトリが探索される。比較回路2
32はレジスタ212中の絶対アドレスビツト14
ないし19によつてアドレス指定された各デイレク
トリのコングルエンスクラスにおけるn個(たと
えば4個)のエントリを受け取つて、4つのエン
トリの各々の絶対アドレスフイールドとレジスタ
212中の絶対アドレスビツト1ないし13とを比
較し、どこかのS/XIデイレクトリにその絶対
アドレス2を有するエントリが存在するかどうか
を判断する。比較回路232はライン234を介
して不一致信号を出すか、又はAND回路251,
252,253及びゲート261へ一致信号を送
る。 要求元CPUに関連したS/XIデイレクトリに
おいてその要求の絶対アドレスとの一致を生ずる
エントリがみつからないときは、不一致信号が同
じS/XIデイレクトリに関連して書込み回路2
33に供給される。要求元CPUのキヤツシユに
おいてシノニムエントリはなく、S/XIデイレ
クトリにおける要求L2ラインを表わすS/XIエ
ントリ中のS/XIのLRUフイールドによつて判
断されたセツトアソシアテイブなロケーシヨンで
アドレス指定されたコングルエンスクラスに新し
いS/XIエントリが書き込まれる。この新しい
エントリは、現要求の結果としてL2キヤツシユ
に取り出された新しいL2ラインについてのシノ
ニムヒツト案件又はXIヒツト条件を判断するた
めに、次のS/XIの探索で使用される。 (要求元CPUに関連したS/XIデイレクトリ
中のエントリで、その要求の絶対アドレス及び
LAの両方と一致を生ずるものは全く存在しない。
なぜなら、そのエントリは要求元CPUのキヤツ
シユに存在するものと指定され、L2ミスは全く
発生せずエラー条件が示されるはずだからであ
る。) “シノニムヒツト”は次の場合にAND回路2
52から一致信号が出力されることによつて示さ
れる。すなわち、現要求を有するCPUに関連す
るS/XIデイレクトリにおけるいずれかのエン
トリのAAフイールド(LAフイールドではない)
との一致条件が見出された場合である。 “XIヒツト”は他のS/XIデイレクトリ(す
なわち、要求元CPU以外のCPUに関連する)で
一致条件が見出された場合に示される。 したがつて、各S/XIデイレクトリは関連す
るCPUについてのシノニムデイレクトリであり、
その同じデイレクトリがシステムにおける他の全
てのCPU及び全てのチヤネルについての相互問
合せデイレクトリである。 XIの探索はANDゲート252及び253によ
つて他のS/XIデイレクトリにおいて同時に行
われる。こぇらのANDゲートは、比較回路23
2からの一致信号及びCPUIDデコーダ220か
らの反転されたCPUID信号を受け取る。この反
転されたCPUID信号は、それらが関連するCPU
ではなく他のCPUのために機能しているという
ことを示すものである。ANDゲート252は、
さらに、現要求について関連するCPUへ追出し
信号を出力するため、見出されたS/XIデイレ
クトリからのEX信号を受け取る。 ANDゲート253は、さらに見出されたS/
XIエントリからのRO信号(EX信号を反転した
もの)とEXフイールドからの信号を受け取つて、
現要求について関連するCPUへXI無効化信号を
出力する。これにより、現要求は変更できなかつ
た読取り専用エントリをヒツトする排他的要求の
ためのものであることを示す。したがつて必要な
のは無効化だけである。 シノニムヒツト又はXIヒツトがいずれかの
S/XIデイレクトリにおいて得られたときは、
ヒツトしたエントリの一部の内容が要求元CPU
(すなわち、レジスタ212中にあるCPUIDを現
に有するCPU)に送られる。転送される内容と
は、L2コングルエンスクラスをみつけるための
フイールド、ビン番号(BIN#)、及び排他的/
読取り専用(E)フイールドである。この転送は
ゲート261によつて行われる。転送されたL2
コングルエンスクラスをみつけるためのフイール
ドは共通デイレクトリ及びC1CAにおける正しい
コングルエンスクラスをアドレス指定し、転送さ
れたビン番号はその中の要求エントリをさがす。
選択された共通デイレクトリエントリにおける
LPFはシノニムヒツトについてアクセスすべき
L1ライン、又はXIヒツトについて要求元CPUへ
追い出すべきL1ラインをさがす。 S/XI出力バス290はシノニムヒツト又は
XIヒツトを有するS/XIデイレクトリからの出
力信号を受け取つて、これを、レジスタ212中
に現にあるCPUIDを有する要求元CPUに供給す
る。第17図は第16図から出力された信号を受
け取る各CPUのための回路を示す図である。 第17図において、要求元CPUによつて信号
が受け取られると、S/XI回路からストア/取
出し制御回路314へのシノニム信号によつて、
要求元CPUがシノニムアドレスでキヤツシユア
クセスを実行する。しかし、C/O制御論理回路
312へのXI追出し信号によつて、アドレス指
定されたラインの追出しはそれが変更されたとき
にのみ(すなわち、CHビツトがオンのときにの
み)行われる。ビン番号がデコーダ301によつ
て受け取られ、デコーダ301がAND回路30
3A,B,C又はDを付勢し、シノニム信号
(SR)、追出し信号(C/OR)、又は無効化信号
(IR)によつて条件付けられ第4図のOR回路7
0A,B,C又はDへ信号が供給される。 このようにして、ビン番号はL1CAに送られ、
そこでライン変更ビツトがチエツクされる。XI
要求についてそのような変更されたL1ラインご
とに、L2キヤツシユにおける対応するL1ライン
部分を更新するために追出しが開始され、この
L2ラインが主メモリ(L3)における対応ライン
の更新のために追い出される。要求元CPUは要
求されたXIデータを主メモリから取得できる。
(L2キヤツシユがストアスルー式である場合は、
要求されるのはL1の追出しオペレーシヨンだけ
である。なぜなら、それが主メモリにストアスル
ーされるからである。) S/XIデイレクトリはN個の個別的な部分に
分けることができると考えられる。ここで、Nは
プロセツサの個数であり、その各々は主メモリ
(L3)を共有する専用キヤツシユを具備してい
る。こうした区分の1つは1つのCPUに割り振
られる。もしS/XIの問合せが要求元CPUに割
り振られた区画と異なる区画でXIヒツトを見出
したときは、追出し要求が開始される。しかしな
がら、S/XIの間合せが要求元CPUに割り振ら
れた区画ビツトを見出したときは、これがシノニ
ムの検出となる。後者の場合、LAビツト14ない
し19及びビン番号は要求元CPUに戻され、キヤ
ツシユアクセスはそのシノニムアドレスで実行で
きる。 第11図及び第12図に示した第2の実施例は
共通キヤツシユデイレクトリ160及びTLB1
62のエントリの構造の点で第1図及び第3図に
示した実施例と異なる。第12図では、デイレク
トリ160及びTLB162の各エントリはCPU
の現PSWから受け取つたDATフイールド及び
CPUによつて供給されるSTO又はSTOIDを含
む。DATフイールドは1ビツトであり、ゼロ又
は1の値でDATオフ又はDATオンをそれぞれ表
わす。 第12図では、共通キヤツシユデイレクトリ
(CCD)160は第3図と同様、CPUに専用の2
レベルキヤツシユ構成におけるデータをアクセス
するのに使用される。同様に、CCDは、既に要
求されたCPUアドレスの変換されないアドレス
ビツトだけを含む。これは、これらのアドレスが
変更可能であつたかどうかは関係ない。CCD内
の“ローカルな探索”は要求データを含むライン
がL1キヤツシユ又はL2キヤツシユに存在するか
どうかを判断するため、ハードウエアで実行さ
れ、もしそうなら、L1で使用可能な場合はCCD
はアドレス指定されたデータをL1キヤツシユか
らCPUへ“ゲート”し、L2で使用可能な場合は
L2から“ゲート”する。 第11図には、変換不能なアドレスと変換可能
なアドレスとのアドレスのタイプの切換をするた
めの回路が示されている。ただし、このアドレス
のタイプはPSWのDATモードビツトの反転値を
受け取るDATオフレジスタ26に示されている。
レジスタ26の内容は論理アドレスレジスタ30
の内容と関連しており、DATオフレジスタ26
における1の値はレジスタ30に変換不能なLA
に入つていることを表わし、DATオフレジスタ
26におけるゼロの値はレジスタ30に変換可能
なLAに入つていること表わす。 第11図は変換不能(実)アドレスと変換され
た(仮想アドレス)とを区別するため共通デイレ
クトリに設けられる独特のハードウエアを示す図
である。DATレジスタ26はPSWのDATモー
ドビツト5の反転状態によつてセツトされるアド
レス制御レジスタであり、レジスタ30中の要求
論理アドレスが変換可能アドレスであるか又は変
換不能アドレスであるかを示すものである。レジ
スタ30は単一ビツトフイールドを有する。レジ
スタ26におけるゼロの値はレジスタ30の論理
アドレスが変換を要求することを示し(これは
VAである)、レジスタ26における1の値は論
理アドレスが変換を要求しないことを示す(これ
はRA又はAAである)。レジスタ27中の
STOIDの値はANDゲート21又は22の出力に
よつてセツトされる。STOIDはゼロ2は1のい
ずれの値ともなり得るが、ゼロのときだけ有効で
あり、レジスタ26が1の値を含むときは
STOIDレジスタ27の内容は無効とされる。 さらに詳しくいえば、ANDゲート21及び2
2は、DATモード制御ビツト5、拡張制御
(EC)モードビツト12及びアドレス空間制御ビツ
ト16によつて条件付けられ、CR1ないしCR7にあ
るSTOを選択する。ANDゲート21及び22の
出力はドツトオアされて、STOID割振り回路2
5へSTO信号が供給される。任意の選択された
STOIDがCPUによつて供給される。レジスタ2
6及び27の出力はバス40及び45を介して供
給される。 第11図において、フイールド40,45,4
2ないし49は全て同時に単一のマシンサイクル
内で第12図のデイレクトリ160、キヤツシユ
63、L1制御アレイ161、TLB162、及び
キヤツシユ64にゲートアウトされる。このよう
に第12図のデイレクトリ160及びTLB16
2の構造だけが第3図のデイレクトリ60及び
TLB62と異なる。同様に、単一キヤツシユデ
イレクトリ160はL1キヤツシユ63及びL2キ
ヤツシユ64の両方をアクセスするために共通に
機能する。 したがつて第12図において、このアドレス指
定構造によれば、CPUの要求した変換されたア
ドレスで共通デイレクトリ160、L1キヤツシ
ユ63、L2キヤツシユ64及びTLB162が並
列的かつ一律にアドレス指定される。 デイレクトリ160の各エントリは第14図に
示す如き例示的なフオーマツトを有する。このフ
オーマツトは第5図に示したフオーマツトとは異
なる。第14図に示すフオーマツトは、ACFフ
イールドの代わりにSTOIDフイールドを有して
おり、さらに付加的にDATオフフイールドを有
する。 第13図は共通キヤツシユデイレクトリ160
を示し、また、4ウエイセツトアソシアテイブな
コングルエンスクラスのうちの選択された1つを
例示的に示したものである。デイレクトリ160
における比較は4つの比較回路171AないしD
で示される。これらは、選択されたコングルエン
スクラスにおける4つのエントリの各々と、
DATオフフイールド及びLAビツト1ないし13と
をそれぞれ比較するものである。各比較回路17
1は副比較回路172,173、AND回路17
4,177、及びOR回路177を含む。いずれ
かのAND回路177が出力信号を供給すると、
これは、そのデイレクトリエントリがキヤツシユ
ヒツトを有すると判断されたことを意味する(比
較一致)。AND回路177が1つのコングルエン
スクラスの選択に応答して出力信号を供給しない
ときは、これはそのデイレクトリエントリがキヤ
ツシユヒツトを有しないと判断されたことを意味
する(比較不一致)。もし、DATフイールドの値
が1なら、LA中のCPUの要求したアドレスは変
換不能アドレスであり、STOIDフイールドに存
するどんな値もこの比較においては無視される。
これは、OR回路176を介してAND回路174
からの信号をAND回路177に供給してSTOの
値又はSTOIDの値とは関係なくこのAND回路1
77を付勢することによつてなされる。もし
DATオフフイールドの値がゼロなら、この
STOID(ゼロ又は非ゼロ)が比較オペレーシヨン
に使用される。というのは、AND回路174は
CPUの要求を有する現DAT信号としてゼロの値
を受け取るからである。このようにすると、
AND回路174はOR回路176への出力信号は
出さず、その結果、STOID比較回路172の出
力でAND回路177の付勢が制御される。L2ミ
ス信号は、AND回路177の反転出力を受け取
るAND回路180によつて生成される。 このようにして、キヤツシユデイレクトリの比
較回路171の各々は、現DAT状況信号の制御
の下で、次のものの間の比較を自動的に行う。す
なわち、(1)変換可能なLAと変換不能なエントリ
表示されたアドレス(UTERAD)との間、(2)変
換不能なLAと変換可能なエントリ表示されたア
ドレス(TERED)との間、(3)変換不能なLAと
UTERADとの間、又は(4)変換可能なLAと
TERADとの間である。本実施例によれば、比較
されるLAの値が等しい場合でも、上記(1)又は(2)
の比較は不一致と宣言される。比較されるLAの
値が等しい場合、上記比較(3)又は(4)だけが一致と
宣言される。したがつて、次の場合には必ずL2
キヤツシユであると判断される。すなわち、選択
されたコングルエンスクラスにおけるTERADの
各々と要求されたLAとが、それらの間に一致が
生ずるかどうかとは無関係に、異なる変換特性を
有する場合である。 L2キヤツシユヒツトであると判断されたとき
は、デイレクトリ160はL1キヤツシユヒツト
が存在すると判断する。第12図におけるL1ヒ
ツト回路75は第13図における選択・デコーダ
回路175AないしDによつて設けられる。これ
らの回路175AないしDのうちの1つは、選択
されたコングルエンスクラスにおいてL2キヤツ
シユヒツトが存在する場合に、AND回路177
AないしDうちの1つからのL2ヒツト出力を受
け取ることができるものである。 L1キヤツシユヒツトは次の場合にL1ヒツト判
断回路125AないしDのオペレーシヨンによつ
て判断される。すなわち、対応するAND回路1
77の出力によつてL2ヒツトと判断された場合
である。回路175AないしDは第4図中の回路
75AないしDと同じものでよく、これらは、
L1キヤツシユヒツトが存在するかどうかを判断
するのに必要なLPFの部分をみつけるために同
様に機能する。また、AND回路181はL1ミス
を知らせるもので、第4図中の回路81と同じも
のである。 AND回路178の各々は回路181からのL1
ミス信号と回路177からのL2ヒツト信号とを
受け取つて、L1ミスの際にL1ヒツトが存在する
ということを示す信号を出力する。 デコーダ175からのL1ヒツト信号はL1キヤ
ツシユ63への4つのL1キヤツシユヒツト信号
179AないしDのうちの1つで供給される。こ
れは、信号ライン47を介して供給されている
LAビツト18ないし25によつて、現にアドレス指
定されているL1キヤツシユ63におけるコング
ルエンスクラス中の4つのデータラインのうちの
正しい1つのデータラインを選択するためであ
る。要求されたL1のコングルエンスクラスにお
ける4つのデータラインのうちの活動化された1
つは、これによつて、そのライン中の要求された
バス単位(たとえば4つの4倍長ワード)を選択
し、このバス単位が要求されたL1データとして
データバスを介してCPUへ送出される。 第3図と同様に第12図においては、L2キヤ
ツシユミスが生じるまでは(L2キヤツシユミス
は統計的にはほとんど発生しない)、キヤツシユ
のアクセスのためのTLBの出力は全く必要ない。 第15図は第12図の実施例で使用される
TLB回路のより詳細を表わす図である。第15
図に示すTLB回路は第10図に示すTLB回路と
次の点で異なる。すなわち、前者がDATオフフ
イールド、及び第10図のACFフイールドの代
わりに各エントリにおいてSTOIDフイールドを
用いる点である。第15図中の比較回路80A及
び80Bの各々は第13図中の比較回路と同じ構
成で同様に機能する。他の点では、第15図の
TLBは第10図のTLBは同じである。 以上に説明した本実施例によれば、次のような
効果が得られる。 複数レベルの専用キヤツシユを使つてキヤツ
シユのサイズを拡張しつつキヤツシユアクセス
についてTLBオペレーシヨンをなくすことが
できる。 シノニム決定を単純化することができる。従
来、シノニム決定の複雑さは、キヤツシユサイ
ズの増加に伴い指数的に増大していた。 記憶装置要求についての平均時間を改善する
ために複数レベルのキヤツシユを使用するよう
な複数キヤツシユデイレクトリの必要性がな
い。 複数レベルのキヤツシユ間でのキヤツシユデ
イレクトリの同期化の問題がない。 1つのプロセツサについて専用の複数レベル
のキヤツシユに対して共通の単一デイレクトリ
が設けられるので、キヤツシユデイレクトリの
コスト及びハードウエアが節約できる。 E 発明の効果 以上説明したように、本発明によれば、キヤツ
シユヒツトの判断の際にTLBによる変換の必要
がないので、キヤツシユアクセスの高速化を図る
ことができる。
“排他的”な割振り及び制御について選択され
たデータの単位はこれらの実施例における1つの
L2ラインである。 LRU67は、これらの実施例の各々において
アクセスされる各デイレクトリエントリのL2・
LRUフイールドの内容を生成する。L2・LRUフ
イールドは、次の場合に、L2のコングルエンス
クラスの全てのエントリが更新される。すなわ
ち、そのクラスのエントリがどれか1つでもアク
セスされた場合である。L2ミスがデイレクトリ
内で生じたときは、L2キヤツシユへ入れられた
新しいデータラインを表わすよう、新ししエント
リがデイレクトリ内に生成される。キヤツシユミ
スの間、選択されたコングルエンスクラスにおけ
る全てのフイールドを検査して、ミスの発生した
CPUの要求について生成すべき新しいエントリ
を受け取るため割り当てるべきエントリを捜す。
このようにして、LRUアルゴリズムで、階層に
おいて主メモリ(L3)に“追い出す”ことが必
要となり得るデイレクトリエントリを決定する
(これは、新しいエントリの内容をデイレクトリ
に書き込む前にこの新しいエントリ用のスペース
を作るためである)。L2キヤツシユから追出しが
要求されるのは、L2がストアイン式キヤツシユ
として動作する場合だけである。もしL2がスト
アスル−式キヤツシユであれば、新しいエントリ
についてのLRUの選定の後に追出しは全く必要
ない。 第4図は共通キヤツシユデイレクトリを示す図
で、ここには、4ウエイのセツトアソシアテイブ
式コングルエンスクラスのうちの選択された1つ
が1例として示されている。デイレクトリ60に
おける比較機構は4つの比較回路71AないしD
として図示されており、それぞれ、選択されたコ
ングルエンスクラス中の4つのエントリの各々
と、ACFフイールド及びLAフイールド1〜13
とを比較する。各比較回路71は副比較回路72
及び73を含み、これらは組み合わされてAND
回路74を構成する。AND回路74が1つの出
力信号を供給する場合、そのエントリがキヤツシ
ユヒツト(比較一致)を有することを意味する。
AND回路74が1つのコングルエンスクラスの
選択に応答して出力信号を供給しない場合、その
エントリがキヤツシユヒツト(比較不一致)を有
しないことを意味する。ACF値がゼロのときは
(CPUの要求が変換不能アドレスであることを意
味する)、比較一致を供給できるよう、デイレク
トリエントリはゼロのACF値を有していなけれ
ばならない。ACF値がゼロでないときは(ACF
がSTOであり、CPUの要求が変換可能アドレス
であることを意味する)、比較一致を供給できる
よう、同じ非ゼロのACF値を有していなければ
ならない。選択されたコングルエンスクラスにお
いてL2キヤツシユヒツトがあれば、AND回路7
4AないしDの出力信号が供給される。AND回
路74の反転された出力を受け取るAND回路8
0によつて、第4図においてL2ミス信号が生成
される。 このようにして、キヤツシユデイレクトリの各
比較回路は、現在のACF信号の制御の下で次の
ものの間に一致が生ずるかどうかを判断するため
に自動的に機能する。すなわち、(1)変換可能な
LAとエントリ表示された変換不能なアドレス
(UERAD)との間、(2)変換可能なLAとエントリ
表示された変換可能なアドレス(TERAD)との
間、(3)変換不能なLAとUERADとの間、又は(4)
変換可能なLAとTERADとの間である。本実施
例では、比較(1)又は(2)は、たとえ比較されるLA
の値が等しいとしても不一致を宣言することが要
求される。比較されたLAの値が等しい場合に、
比較(3)又は(4)だけが一致の宣言を行うことができ
る。したがつて、要求されたLAと、選択された
コングルエンスクラスにおける各TERADとが異
なる変換特性を有するときは、これらが一致する
かどうかとは関係なく、L2キヤツシユミスと判
断される。 L2キヤツシユヒツトと判断されたときは、デ
イレクトリ60は、L1キヤツシユヒツトが存在
するかどうかを必ず判断しなければならない。第
3図において、L1キヤツシユヒツトは、その
AND回路74の出力でL2ヒツトが判断された場
合にL1ヒツト判断回路75によつて判断される。
判断回路75は第1図からのLPF選択フイール
ド33(このLPFフイールド33はライン49
を介して第4図のデイレクトリで使用される)を
使用してL1キヤツシユヒツトが存在するかどう
かを判断するのに必要なLPFの部分を捜す。も
しL1ヒツトが存在すれば、ライン47を介して
供給されるLAビツト18〜25によつてL1キヤツシ
ユにおいて現にアドレス指定されているコングル
エンスクラス内の4つのデータラインのうちの正
しいデータラインを選択するため、4つのL1キ
ヤツシユヒツト信号ラインA,B,C、又はDの
うちの1つを介して信号が出力される。要求され
たL1のコングルエンスクラス内における4つの
データラインA,B,C、又はDのうちの活動化
された1つはこれで選択され、要求されたバスの
単位(たとえば、4つの4倍長ワード)が、要求
されたL1データとして、データバスを介して
CPUに送出される。 かくして第4図において、各回路75はゲート
77,78とデコード回路78とのペアを含む。
ゲート76は、LPFのビツト61及び62の第1の
セツトを選択してデコード回路78へ送るため、
最左端のビツト(第1のビツト)Pによつてそれ
が1のとき付勢される。ゲート77は、LPFの
ビツト61及び62の第2のセツトを選択してデコー
ド回路78へ送るため、最右端のビツト(第2ビ
ツト)Pによつてそれが1のとき付勢される。デ
コード回路78は受信したビツト61及び62をデコ
ードして、L1キヤツシユにおいて選択されたコ
ングルエンスクラス中の4つ(A,B,C又は
D)のうちの特定のL1データラインを決定する。 もしデイレクトリ60の比較オペレーシヨン
で、選択されたコングルエンスクラス中にデイレ
クトリエントリについて不一致しかみつからない
ときは、L2キヤツシユヒツトは存在しない。し
たがつてL2キヤツシユミスが宣言される。これ
は第3図のTLB62の出力ゲートに知られて、
ミスしたL2ラインの取出しについてRA(UPにお
ける)又はAA(MPにおける)をTLBから主メ
モリに送ることが制御される。L1ミス信号は、
デコーダ78の反転出力を受け取るAND回路8
1によつて第3図において生成される。 第8図はL1キヤツシユ及びデータライン選択
回路を示す図である。L1の各データセルは、こ
の例では、64バイトのデータラインを有すること
ができる。そのセル選択ゲート82は入力ライン
A,B,C、又はDのうちの1つの付勢によつて
選択されたコングルエンスクラス中の1つのセル
を選択する。これらの入力ラインはOR回路86
A,B,C、又はDのうちの1つの出力によつて
活動化されるもので、またこれらのOR回路は、
L1ヒツト選択信号A,B,CもしくはD又は第
3図及び第6図におけるL1制御アレイ61から
の追出しの選択されたビン番号の出力によつて付
勢される。セル選択ゲート82は、選択されたデ
ータラインから2つのタイプの出力を供給する。
それらは完全なデータラインと、CPUによつて
要求されているそのライン中のデータ単位であ
る。完全な1データラインは、それがL2キヤツ
シユ及び主メモリ(L3)に追い出されたときに
要求される。この転送は連続する2つの64バイト
ブロツクで行われる。これらのブロツクの各々は
LAビツト18ないしL25を使つて別々のL1サイク
ルを必要とする。選択されたデータライン中のデ
ータ単位はそれがCPUによつて要求された場合
に必要となるもので、LAビツト25によつて、選
択されたデータライン内においてアドレス指定さ
れデータバスを介してCPUに出力される。 第9図は、L2キヤツシユ及びL2データライン
選択回路を表わす図である。L2の各データセル
はこの例では64バイトのバス単位を含むことがで
きる。セル選択ゲート83は入力ラインA,B,
C又はDのうちの1つを付勢することによつて、
選択されたコングルエンスクラス中の1つのセル
を選択する。これらの入力ラインはOR回路87
A,B,C又はDのうちの1つの出力によつて活
動化される。これらのOR回路は、第4図からの
L2ヒツト選択信号A,B,CもしくはD、又は
第3図におけるL2・LRU回路67からの追出し
LRU選択信号の出力によつて付勢される。セル
選択ゲート83は選択されたデータラインら2つ
のタイプの出力を供給する。それらは完全な1ラ
インと、CPUによつて要求されたそのライン中
のデータ単位である。完全な1データラインはそ
れが主メモリ(L3)に追い出される場合に必要
となる。(L2キヤツシユからの追出しはL2がスト
アインキヤツシユ式として働く場合にのみ必要で
ある。もしL2がストアスルー式なら、新しいエ
ントリについてのLPUの選定の後、追出しは全
く必要ない。)選択されたデータラインのL1部分
は、データバスを介してL1キヤツシユからL2キ
ヤツシユへ追い出されるL1ラインを受け取るた
め、選択されたL2データライン内でアドレス指
定する必要がある。L2の転送は64バイトのデ
ータ単位で行われる。 第3図において、L2キヤツシユミスが生じる
まではTLB62からの出力は全く必要ない。
TLBは、同時にCPUが直前に要求した“実アド
レス”(又は“絶対アドレス”)及び“仮想アドレ
ス”の両方についてのページフレームアドレスを
記憶する。TLBのコングルエンスクラスは各
CPUの要求した論理アドレスのビツト12ないし
19によつてアドレス指定される。そのクラスの全
てのエントリはACF及びLA1ないし11と比較さ
れる。もしこれらの比較が一致、要求アドレスが
TLBに含まれていれば、そのページフレームの
実アドレスがTLBからCPUにすぐにわかつて、
主メモリがアクセスされるので、“長い経路”の
DATの待ちサイクルが回避される。 TLBは、各々の要求LAアドレスごとに、それ
が変換可能LA(すなわちVA)であるか変換不能
LA(すなわちAA)であるかを問わず1つのエン
トリを生成する。ところで、TLB62は真の
TLBではない。何故なら、真のTLBは変換可能
なアドレス(すなわちVA)しか含んでいないか
らである。換言すれば、TLB62中のエントリ
におけるLAフイールドはVAでもRAでもよい。
しかし、TLB中の全てのエントリにおけるAAフ
イールドは、TLBが単一プロセツサにおいて存
在するか又は多重プロセツサにおいて存在するか
に応じて、それぞれRA又はAAしか含まない。 TLBアレイは通常のTLBオペレーシヨンで要
求されるように、エントリごとに、有効論理アド
レス部を記憶する。TLBの有効なエントリは、
各々、ページ絶対アドレス(AA)も含んでい
る。 バス44を介する第1図からのLAビツト12な
いし19は1つのTLBのコングルエンスクラスを
選択する。さらに、バス41はACFフイールド
をTLB62に供給する。これは、通知された
ACFとTLBの各エントリにおいて表示された
ACFとの比較を行うためである。キヤツシユデ
イレクトリ比較回路と同様、TLB比較回路は、
ACF信号の制御の下で次のものの比較を制御す
るよう自動的に作動する。すなわち、(1)変換不能
なLAと変換可能なエントリ表示されたアドレス
(TERAD)との間、(2)変換可能なLAと変換不能
なエントリ表示されたアドレス(UERAD)との
間、(3)変換不能なLAとUERAとの間、又は(4)変
換可能なLAとTERADとの間である。本実施例
では、比較されるLAの値が等しい場合でも、上
記のケース(1)及び(2)については不一致を宣言する
ことが要求される。比較されるLAの値が等しい
場合、上記ケース(3)又は(4)だけが一致を宣言する
ことができる。したがつて、実施例に基づく手法
で検出される一致条件の場合だけTLBヒツトと
判断される。この一致条件は、選択されたコング
ルエンスクラスにおけるTERADがレジスタ30
にある要求されたLAに等しい場合に要求された
LAと各TERADが同じ変換特性を持つていると
きだけである。要求されたLAと、選択されたコ
ングルエンスクラスにおける各TERADとが異な
る変換特性を持つている場合は、たとえTERAD
がレジスタ30にある要求されたLAに等しいと
しても、本実施例の下では、TLBミスと判断さ
れる。 L2キヤツシユミスの際、TLBは1つのアドレ
ス(RA又はAA)を出力する。このアドレスは
ミスの発生したL2データラインを取り出すため
主メモリL3に送られる。TLBはこれを行う前に、
要求されたLAについて1つのエントリを含んで
いなければならない。これは1つのコングルエン
スクラスを捜すためのLAと、そのエントリを調
べるためのACF及び上位のLAビツトとを使つて
探索される。選択されたTLBのコングルエンス
クラスにおける全てのエントリが不一致を生じた
ときは、要求されたLAはTLBにおいては全くエ
ントリを有さず、TLBミスが宣言される。次に、
TLBの1つのエントリが、その要求されたLAに
ついて生成される。しかし、このLAはそれが
VAである場合にのみ交換を要求し、この変換を
実行するため、LAはCPUのDAT回路におくら
れる。この場合、CPUはそのエントリを完成す
るためこの変換を持たねばならず、また変換され
たアドレス(このアドレスで、要求されたL2デ
ータラインを主メモリから取り出すことができ
る)を有していなければならない。しかしなが
ら、L3の取出しが行われている間にCPUが別の
L2キヤツシユデータラインを要求する別のアド
レスを有する場合は、CPUはTLBオペレーシヨ
ンと並行して作動することができる。 第10図は、第3図の実施例で使用される
TLB回路の詳細を示した図である。これは2ウ
エイセツトアソシアテイブ式のもので、コングル
エンスクラスのうちの1つが現LAビツト12ない
し19によつて選択される。この回路は、選択され
たコングルエンスクラスから出力される2つのセ
ルをそれぞれ受け取るセル選択比較回路83A及
びBを有する。セル選択比較回路83の各々は第
4図の回路71と内部的には同一のもので、回路
83の各々は出力信号をそれぞれのゲート84A
又はBに供給することによつて、そのセル及び現
CPUの要求からの比較一致入力を検出し、アド
レスバス86を介するそのセルから主メモリL3
への絶対アドレス(AA)の送出を付勢する。も
しそれぞれの回路83が比較不一致入力を受け取
る場合は、ゲート84の付勢は行われない。この
場合、ゲート84A及びBのうちの一方しかAA
をバス86に出力できない。 TLBミスはAND回路87によつて検知され
る。このAND回路87は、セル選択比較回路8
3A及びBの出力からの反転入力を受け取る。各
TLBミスはAND回路87によつてゲート88に
伝えられる。ゲート88は第1図におけるPSW
のビツト5からの“DATオン”信号によつて付
勢され、これにより現仮想アドレスが第10図中
のDAT回路81に送られ、これがAAに変換さ
れる。TLBのLRU回路90によつて、それぞれ
の書込み回路82A又は82Bが付勢される。こ
れは、TLBにおいてのミスの発生したVAについ
て新しいエントリを受け取るためにLRU回路に
よつて割り振られたTLBのセルに新しく生成さ
れたAAを書き込むものである。 デイレクトリ60がL2キヤツシユヒツトを有
する場合は、たとえL1キヤツシユミスがあつた
としても、TLBの出力は全く必要ない。デイレ
クトリ60における選択されたコングルエンスク
ラスについてのセツトアソシアテイブな比較オペ
レーシヨンで比較一致を有するL2エントリがみ
つかつたときは(すなわちL2ヒツト)、L1ヒツト
回路75によつてL1ミスと判断される。L1ヒツ
ト回路75は、みつかつたL2エントリにおける
(1)LPF選択フイールド及び(2)現論理アドレスか
らのLAビツトを使つて、対応するL2ライン(L2
キヤツシユデイレクトリ64で利用できるとわか
つているもの)がL1キヤツシユに存在するかど
うかを判断する。もしLAビツトがゼロなら、
LPFフイールドの最初の部分が選択される。LA
ビツトが1なら、LPFフイールドの第2の部分
が選択される。LPFフイールドの選択された第
2の部分においては、Pビツトの状態が調べられ
る。そこでもしPビツトが1なら、要求されたデ
ータはL1に存在し、L1ヒツトが宣言される。
LPFビツトb1及びb2は組み合せ的に調べられ、
どのL1エントリ(A,B,C又はD)がL1ヒツ
トであるかが判断される。L1キヤツシユヒツト
は4つのラインAないしDのうちの1つを介して
L1キヤツシユ63に知らされ、要求データをそ
こから取得するため正しいL1がアクセスされる。
この要求データはアドレスビツト18ないし25によ
つて見出され、CPUに送出される。 Pビツトがゼロで、かつ、L1ミスが宣言され
たときは(すなわち、L2ヒツトかつL1ミスの状
態)、L1ラインが現L2ヒツトラインから取り出さ
れL1キヤツシユにコピーされる一方で、そのラ
インにおける要求データがCPUに送られる。要
求されたL1ラインを含むL2ライン部分はLAビツ
ト14ないし24によつて見出され、その部分(すな
わち、64バイト)において要求されたデータは
LAビツト18ないし25によつてL1キヤツシユ63
において見出される。 生成中のL1エントリに関する欠くことのでき
ない補足的な情報はL1制御アレイ61に記憶さ
れる。これはCPUがL1でミスしたときになされ
る。新しいL1エントリ用のスペースを作るため
に1つのL1エントリがL1・LRUによつて選択さ
れたときは、そのスペースに存在するどんなエン
トリも(変更ビツトがオンとなつているもの)、
L2に追い出さねばならず、L1制御アレイ61に
おける論理アドレス(LA)フイールドが対応す
るエントリをみつけるために必要とされる。L2
アドレスは、この制御アレイのLA14ないし1
7、及び要求中のアドレスのLA18ないし25
から形成される。 L1キヤツシユがストアイン式キヤツシユであ
り、そのCPUが多重プロセツサ(たとえばチヤ
ネル又は別のCPU)が活動化することにより、
L1キヤツシユ中の変更されたデータラインの無
効化又は追出しを要請する別の要求が生じること
がしばしばあるであろう。外部資源からのこのよ
うな要求にとつては、L1又はL2における対応エ
ントリのロケーシヨンはわからない。第3図及び
第6図におけるL1制御アレイ61(L1CA)は
L1キヤツシユ63に関して幾つかの機能をサポ
ートする。通常のL1キヤツシユフラグ標識もそ
の1つである。L2からのL1ラインの無効化又は
追出しやL1及びL2からのL1ラインの無効化又は
追出しを要請する各々の要求は、その要求の必要
なLAビツトを送らねばならない。 L1制御アレイ61中の各エントリのロケーシ
ヨンはL1キヤツシユにおいて同様に配置された
L1ラインに対応する。L1CAエントリの内容は
L1キヤツシユにおける対応データの状態を表わ
す。各L1CAエントリの内容は第7図に示した。
これは次のようなフイールドを含む。 Iフイールド: そのL1ラインの無効/有効状態を表わすもの EXフイールド: そのエントリによつて表わされるL1ラインの
排他的/読取専用の状態を表わすもの C/O LAフイールド: このフイールドは生成中のアドレスの論理アド
レスのビツト12ないし17を含む。これらのビツト
は要求中のアドレスのビツト18ないし23と連結さ
れ、共通デイレクトリ及びTLBにおけるコング
ルエンスクラスをさがす。 ビン番号フイールド: このフイールドで、選択された共通デイレクト
リのコングルエンスクラスにおけるアソシアテイ
ブセツト(AないしD)をさがす。L1及びL2の
対応エントリはいずれかのキヤツシユにセツトア
ソシアテイブセツトで存在しうる。すなわち、ビ
ン番号はL1中の1つのラインについてのL2にお
けるアソシアテイブセツトを示すものである。 CHフイールド: そのエントリによつてあらわされるL1ライン
の変更/不変状態を表すもの。変更されたライン
だけがどこかのキヤツシユの追い出される。 LRUフイールド: L1キヤツシユの各コングルエンスクラス中の
4つのエントリについて、アソシアテイブセツト
A,B,C又はDのLRUエントリを表わすもの 単一プロセツサ(UP)の場合、一般にチヤネ
ルプロセツサの形で他のプロセツサが存在するこ
とはあつても、そのシステムにおいてローカルな
CPUは1つだけである。多重プロセツサ(MP)
の場合は、ローカルなCPUに加えて他のCPUが
存在し、各CPUは1以上のチヤネルプロセツサ
を含む場合がある。 ローカルなCPUが共通デイレクトリ60にお
いてミスの生ずる要求を起こすと、L1・LRUは、
L1CAにおいて選択されたコングルエンスクラス
中の対応するL1CAエントリをさがし、L2・
LRUは、共通デイレクトリ60において選択さ
れたコングルエンスクラス中の1つのエントリを
さがす。アクセスされたL1CAエントリのおける
フイールドは、共通デイレクトリ60において対
応する共通デイレクトリエントリが生成されたと
き、生成される。これらの両アレイで、対応する
無効(I)フイールドはオフにセツトされ、対応
する変更(CH)フイールドはL1ラインが書込み
アクセスを受け取るときオンにセツトされ、対応
する排他的/読取専用(E)ビツトはL1ライン
要求のタイプに応じてセツトされ(もしL1ライ
ンがL2ラインにおいて排他的なものなら、その
L2ライン全体が排他的状態にセツトされる)、上
位のLAビツト12ないし17は後でL2キヤツシユ及
びTLBにおける対応エントリをみつける際に使
用できるようL1CAにセツトされ、L1キヤツシユ
の対応するロケーシヨンのビン番号が共通デイレ
クトリエントリに挿入され、これらのエントリを
含むコングルエンスクラスを制御するL1及びL2
のLRUフイールドがそれぞれのLRU回路67及
び68(そのコングルエンスクラスにおける次の
エントリの置換についての選択を制御するための
回路)によつて更新される。 かくして、L1CA61は、L1キヤツシユにおい
て変更されたいずれかのエントリを正しいL2キ
ヤツシユのロケーシヨンに追い出す。これは無効
エントリがなくL1・LRU回路が有効なエントリ
のうちの1つを選択しなければならないような場
合に生ずる。この場合、同じコングルエンスクラ
ス内でLRUエントリがLRUによつて選択され、
これが追い出されることとなる。これは、まず、
再割振りされたL1キヤツシユエントリの内容を
L2キヤツシユの対応するロケーシヨンに記憶す
ることによつてなされる。この対応するセツトア
ソシアテイブなロケーシヨンは、ビン番号と、対
応するLAアドレスのビツト12ないし17からもと
もと得られたL1CAエントリにおけるL2のコング
ルエンスクラス位置付けフイールドとによつて決
定される。 L1・LRUのエントリの割振りは、L1キヤツシ
ユミスがあり、かつ、全てのセツトアソシアテイ
ブエントリがアドレス指定されたコングルエンス
クラスにおいて有効である(既に書き込まれたエ
ントリと共に)とき必要となる。エントリであら
わされたデータが変更されたものであるときは、
LRUで選択されたエントリからのL1の追出しが
行われる。一方、そのデータが不変のものである
ときは追出しは全く必要ない。 LRUによるL1の追出しは有効なL2キヤツシユ
ライン中の対応するエントリへのものとなり、
L2がストアスルー式のときは主メモリL3へのも
のとなる。この場合、TLBは制御アレイからの
LAビツト12ないし17と要求アドレスからのLAビ
ツト18及び19とでアドレス指定される。追出しの
ロケーシヨンにおけるデイレクトリエントリは、
追出しラインのL3アドレス(AA又はRA)を判
断するためのTLBの比較を完了するのに必要な
ACF及びLAビツト1ないし11を供給する。新し
い要求(現L1ミスを引き起こす)はLRUエント
リに書き込まれる新しいエントリを有することと
なる。換言すれば、新しいエントリはL1におい
てLRUの割り当てたロケーシヨンに書き込まれ
ることになる。しかしながら、新しいエントリの
書込みの前に、古いエントリからの要求された追
出しを行わねばならない。古いエントリ中の情報
が重ね書きによつて破壊されてしまうからであ
る。本実施例はこの問題を次のように解決してい
る。すなわち、LAビツト12ないし17及びL1CA
アレイからのビン番号を、LRUで選択されたエ
ントリに対応するエントリに記憶することによつ
てである。古いL1CAエントリが新しいL1ライン
のための新しいL1CAエントリで重ね書きされる
前に追出しについてのアクセスを行わねばならな
い。追い出されるL1エントリは追い出されるL2
のコングルエンスクラスにおけるどこかのセツト
アソシアテイブなロケーシヨンに存在することが
でき、一方、L1エントリはアドレス指定された
L2のコングルエンスクラスのどこかのセツトア
ソシアテイブなエントリでみつけることができ
る。 L1キヤツシユラインの追出し又は無効化を引
き起こす他の原因は、(1)要求ラインがL1CAの対
応するエントリによつて変更されるものであると
示されているとき排他的に保持されたL2ライン
についての別のCPUからの相互問合せ(XI)要
求と、(2)要求ライン中のデータについてのチヤネ
ルプロセツサからの相互問合せ(XI)要求であ
る。 相互問合せデイレクトリは、別のCPUによる
キヤツシユラインの追出し又は無効化についての
可能な要求を判断するのに用いる。 第16図に示すシノニム又は相互問合せデイレ
クトリ(S/XI)構成は多重プロセツサにおけ
る各CPUに関連するS/XIデイレクトリを提供
する。各S/XIデイレクトリは関連するCPUに
おける共通キヤツシユデイレクトリについてのシ
ノニム(S)デイレクトリである。各S/XIデ
イレクトリは多重プロセツサシステムにおいて設
けられた全ての他CPUについて、及び全てのチ
ヤネルについての相互問合せ(XI)デイレクト
リでもある。 第16図において、複数のシノニム/相互問合
せ(S/XI)デイレクトリ230−1ないし2
30−Nは多重プロセツサシステムにおける個々
のCPU1ないしNに対応する。単一プロセツサ
システムの場合は、デイレクトリ230−1だけ
設ける。 L2キヤツシユミスの際、関連するTLBから出
力された実/絶対アドレスを用いて全てのS/
XIデイレクトリをアドレス指定し、各S/XIデ
イレクトリにおけるコングルエンスクラスをみつ
ける。各コングルエンスクラスには複数のセツト
アソシアテイブなエントリが含まれている。 任意のS/XIデイレクトリ230における各
エントリは関連する共通キヤツシユデイレクトリ
に対応するエントリを持つているが、S/XIの
コングルエンスクラスはキヤツシユデイレクトリ
のコングルエンスクラスには対応しない。という
のは、キヤツシユコングルエンスデイレクトリは
要求元のCPUに関連しており、XIの探索は他の
全てのS/XIデイレクトリにおいて行われるも
のだからである。 各XIデイレクトリ200の各エントリの内容
は第16図において参照番号231で示してある。
すなわち、絶対アドレス“AA”、L2のコングル
エンスクラスをみつけるためのフイールド
“LA14〜19”、ビン番号フイールド“BIN#”、
排他性標識“EX”、無効化標識“I”、デイレク
トリのLRUフイールド“LRU”である。各エン
トリの内容は、LRUフイールドを除き、それぞ
れのS/XIエントリを生成した共通キヤツシユ
ミスについての情報を表わす。 S/XI優先付け回路211の出力(レジスタ
212へ供給される)には、選択された要求元の
CPUID、その絶対アドレス、その共通デイレク
トリのビン番号、及びEXビツトの内容が含まれ
る。絶対アドレスレジスタ212は優先順位の選
択された出力要求を受け取り、CPUIDデコーダ
220はレジスタ212中の要求を有するCPU
の識別子を受け取る。(単一プロセツサの場合は、
システムには他のプロセツサが存在しないから
CPUの識別子は不要である。) レジスタ212中の現要求の絶対アドレスのビ
ツト1ないし19について(及び任意選択的に論理
アドレスのビツト14ないし19について)全ての
S/XIデイレクトリが探索される。比較回路2
32はレジスタ212中の絶対アドレスビツト14
ないし19によつてアドレス指定された各デイレク
トリのコングルエンスクラスにおけるn個(たと
えば4個)のエントリを受け取つて、4つのエン
トリの各々の絶対アドレスフイールドとレジスタ
212中の絶対アドレスビツト1ないし13とを比
較し、どこかのS/XIデイレクトリにその絶対
アドレス2を有するエントリが存在するかどうか
を判断する。比較回路232はライン234を介
して不一致信号を出すか、又はAND回路251,
252,253及びゲート261へ一致信号を送
る。 要求元CPUに関連したS/XIデイレクトリに
おいてその要求の絶対アドレスとの一致を生ずる
エントリがみつからないときは、不一致信号が同
じS/XIデイレクトリに関連して書込み回路2
33に供給される。要求元CPUのキヤツシユに
おいてシノニムエントリはなく、S/XIデイレ
クトリにおける要求L2ラインを表わすS/XIエ
ントリ中のS/XIのLRUフイールドによつて判
断されたセツトアソシアテイブなロケーシヨンで
アドレス指定されたコングルエンスクラスに新し
いS/XIエントリが書き込まれる。この新しい
エントリは、現要求の結果としてL2キヤツシユ
に取り出された新しいL2ラインについてのシノ
ニムヒツト案件又はXIヒツト条件を判断するた
めに、次のS/XIの探索で使用される。 (要求元CPUに関連したS/XIデイレクトリ
中のエントリで、その要求の絶対アドレス及び
LAの両方と一致を生ずるものは全く存在しない。
なぜなら、そのエントリは要求元CPUのキヤツ
シユに存在するものと指定され、L2ミスは全く
発生せずエラー条件が示されるはずだからであ
る。) “シノニムヒツト”は次の場合にAND回路2
52から一致信号が出力されることによつて示さ
れる。すなわち、現要求を有するCPUに関連す
るS/XIデイレクトリにおけるいずれかのエン
トリのAAフイールド(LAフイールドではない)
との一致条件が見出された場合である。 “XIヒツト”は他のS/XIデイレクトリ(す
なわち、要求元CPU以外のCPUに関連する)で
一致条件が見出された場合に示される。 したがつて、各S/XIデイレクトリは関連す
るCPUについてのシノニムデイレクトリであり、
その同じデイレクトリがシステムにおける他の全
てのCPU及び全てのチヤネルについての相互問
合せデイレクトリである。 XIの探索はANDゲート252及び253によ
つて他のS/XIデイレクトリにおいて同時に行
われる。こぇらのANDゲートは、比較回路23
2からの一致信号及びCPUIDデコーダ220か
らの反転されたCPUID信号を受け取る。この反
転されたCPUID信号は、それらが関連するCPU
ではなく他のCPUのために機能しているという
ことを示すものである。ANDゲート252は、
さらに、現要求について関連するCPUへ追出し
信号を出力するため、見出されたS/XIデイレ
クトリからのEX信号を受け取る。 ANDゲート253は、さらに見出されたS/
XIエントリからのRO信号(EX信号を反転した
もの)とEXフイールドからの信号を受け取つて、
現要求について関連するCPUへXI無効化信号を
出力する。これにより、現要求は変更できなかつ
た読取り専用エントリをヒツトする排他的要求の
ためのものであることを示す。したがつて必要な
のは無効化だけである。 シノニムヒツト又はXIヒツトがいずれかの
S/XIデイレクトリにおいて得られたときは、
ヒツトしたエントリの一部の内容が要求元CPU
(すなわち、レジスタ212中にあるCPUIDを現
に有するCPU)に送られる。転送される内容と
は、L2コングルエンスクラスをみつけるための
フイールド、ビン番号(BIN#)、及び排他的/
読取り専用(E)フイールドである。この転送は
ゲート261によつて行われる。転送されたL2
コングルエンスクラスをみつけるためのフイール
ドは共通デイレクトリ及びC1CAにおける正しい
コングルエンスクラスをアドレス指定し、転送さ
れたビン番号はその中の要求エントリをさがす。
選択された共通デイレクトリエントリにおける
LPFはシノニムヒツトについてアクセスすべき
L1ライン、又はXIヒツトについて要求元CPUへ
追い出すべきL1ラインをさがす。 S/XI出力バス290はシノニムヒツト又は
XIヒツトを有するS/XIデイレクトリからの出
力信号を受け取つて、これを、レジスタ212中
に現にあるCPUIDを有する要求元CPUに供給す
る。第17図は第16図から出力された信号を受
け取る各CPUのための回路を示す図である。 第17図において、要求元CPUによつて信号
が受け取られると、S/XI回路からストア/取
出し制御回路314へのシノニム信号によつて、
要求元CPUがシノニムアドレスでキヤツシユア
クセスを実行する。しかし、C/O制御論理回路
312へのXI追出し信号によつて、アドレス指
定されたラインの追出しはそれが変更されたとき
にのみ(すなわち、CHビツトがオンのときにの
み)行われる。ビン番号がデコーダ301によつ
て受け取られ、デコーダ301がAND回路30
3A,B,C又はDを付勢し、シノニム信号
(SR)、追出し信号(C/OR)、又は無効化信号
(IR)によつて条件付けられ第4図のOR回路7
0A,B,C又はDへ信号が供給される。 このようにして、ビン番号はL1CAに送られ、
そこでライン変更ビツトがチエツクされる。XI
要求についてそのような変更されたL1ラインご
とに、L2キヤツシユにおける対応するL1ライン
部分を更新するために追出しが開始され、この
L2ラインが主メモリ(L3)における対応ライン
の更新のために追い出される。要求元CPUは要
求されたXIデータを主メモリから取得できる。
(L2キヤツシユがストアスルー式である場合は、
要求されるのはL1の追出しオペレーシヨンだけ
である。なぜなら、それが主メモリにストアスル
ーされるからである。) S/XIデイレクトリはN個の個別的な部分に
分けることができると考えられる。ここで、Nは
プロセツサの個数であり、その各々は主メモリ
(L3)を共有する専用キヤツシユを具備してい
る。こうした区分の1つは1つのCPUに割り振
られる。もしS/XIの問合せが要求元CPUに割
り振られた区画と異なる区画でXIヒツトを見出
したときは、追出し要求が開始される。しかしな
がら、S/XIの間合せが要求元CPUに割り振ら
れた区画ビツトを見出したときは、これがシノニ
ムの検出となる。後者の場合、LAビツト14ない
し19及びビン番号は要求元CPUに戻され、キヤ
ツシユアクセスはそのシノニムアドレスで実行で
きる。 第11図及び第12図に示した第2の実施例は
共通キヤツシユデイレクトリ160及びTLB1
62のエントリの構造の点で第1図及び第3図に
示した実施例と異なる。第12図では、デイレク
トリ160及びTLB162の各エントリはCPU
の現PSWから受け取つたDATフイールド及び
CPUによつて供給されるSTO又はSTOIDを含
む。DATフイールドは1ビツトであり、ゼロ又
は1の値でDATオフ又はDATオンをそれぞれ表
わす。 第12図では、共通キヤツシユデイレクトリ
(CCD)160は第3図と同様、CPUに専用の2
レベルキヤツシユ構成におけるデータをアクセス
するのに使用される。同様に、CCDは、既に要
求されたCPUアドレスの変換されないアドレス
ビツトだけを含む。これは、これらのアドレスが
変更可能であつたかどうかは関係ない。CCD内
の“ローカルな探索”は要求データを含むライン
がL1キヤツシユ又はL2キヤツシユに存在するか
どうかを判断するため、ハードウエアで実行さ
れ、もしそうなら、L1で使用可能な場合はCCD
はアドレス指定されたデータをL1キヤツシユか
らCPUへ“ゲート”し、L2で使用可能な場合は
L2から“ゲート”する。 第11図には、変換不能なアドレスと変換可能
なアドレスとのアドレスのタイプの切換をするた
めの回路が示されている。ただし、このアドレス
のタイプはPSWのDATモードビツトの反転値を
受け取るDATオフレジスタ26に示されている。
レジスタ26の内容は論理アドレスレジスタ30
の内容と関連しており、DATオフレジスタ26
における1の値はレジスタ30に変換不能なLA
に入つていることを表わし、DATオフレジスタ
26におけるゼロの値はレジスタ30に変換可能
なLAに入つていること表わす。 第11図は変換不能(実)アドレスと変換され
た(仮想アドレス)とを区別するため共通デイレ
クトリに設けられる独特のハードウエアを示す図
である。DATレジスタ26はPSWのDATモー
ドビツト5の反転状態によつてセツトされるアド
レス制御レジスタであり、レジスタ30中の要求
論理アドレスが変換可能アドレスであるか又は変
換不能アドレスであるかを示すものである。レジ
スタ30は単一ビツトフイールドを有する。レジ
スタ26におけるゼロの値はレジスタ30の論理
アドレスが変換を要求することを示し(これは
VAである)、レジスタ26における1の値は論
理アドレスが変換を要求しないことを示す(これ
はRA又はAAである)。レジスタ27中の
STOIDの値はANDゲート21又は22の出力に
よつてセツトされる。STOIDはゼロ2は1のい
ずれの値ともなり得るが、ゼロのときだけ有効で
あり、レジスタ26が1の値を含むときは
STOIDレジスタ27の内容は無効とされる。 さらに詳しくいえば、ANDゲート21及び2
2は、DATモード制御ビツト5、拡張制御
(EC)モードビツト12及びアドレス空間制御ビツ
ト16によつて条件付けられ、CR1ないしCR7にあ
るSTOを選択する。ANDゲート21及び22の
出力はドツトオアされて、STOID割振り回路2
5へSTO信号が供給される。任意の選択された
STOIDがCPUによつて供給される。レジスタ2
6及び27の出力はバス40及び45を介して供
給される。 第11図において、フイールド40,45,4
2ないし49は全て同時に単一のマシンサイクル
内で第12図のデイレクトリ160、キヤツシユ
63、L1制御アレイ161、TLB162、及び
キヤツシユ64にゲートアウトされる。このよう
に第12図のデイレクトリ160及びTLB16
2の構造だけが第3図のデイレクトリ60及び
TLB62と異なる。同様に、単一キヤツシユデ
イレクトリ160はL1キヤツシユ63及びL2キ
ヤツシユ64の両方をアクセスするために共通に
機能する。 したがつて第12図において、このアドレス指
定構造によれば、CPUの要求した変換されたア
ドレスで共通デイレクトリ160、L1キヤツシ
ユ63、L2キヤツシユ64及びTLB162が並
列的かつ一律にアドレス指定される。 デイレクトリ160の各エントリは第14図に
示す如き例示的なフオーマツトを有する。このフ
オーマツトは第5図に示したフオーマツトとは異
なる。第14図に示すフオーマツトは、ACFフ
イールドの代わりにSTOIDフイールドを有して
おり、さらに付加的にDATオフフイールドを有
する。 第13図は共通キヤツシユデイレクトリ160
を示し、また、4ウエイセツトアソシアテイブな
コングルエンスクラスのうちの選択された1つを
例示的に示したものである。デイレクトリ160
における比較は4つの比較回路171AないしD
で示される。これらは、選択されたコングルエン
スクラスにおける4つのエントリの各々と、
DATオフフイールド及びLAビツト1ないし13と
をそれぞれ比較するものである。各比較回路17
1は副比較回路172,173、AND回路17
4,177、及びOR回路177を含む。いずれ
かのAND回路177が出力信号を供給すると、
これは、そのデイレクトリエントリがキヤツシユ
ヒツトを有すると判断されたことを意味する(比
較一致)。AND回路177が1つのコングルエン
スクラスの選択に応答して出力信号を供給しない
ときは、これはそのデイレクトリエントリがキヤ
ツシユヒツトを有しないと判断されたことを意味
する(比較不一致)。もし、DATフイールドの値
が1なら、LA中のCPUの要求したアドレスは変
換不能アドレスであり、STOIDフイールドに存
するどんな値もこの比較においては無視される。
これは、OR回路176を介してAND回路174
からの信号をAND回路177に供給してSTOの
値又はSTOIDの値とは関係なくこのAND回路1
77を付勢することによつてなされる。もし
DATオフフイールドの値がゼロなら、この
STOID(ゼロ又は非ゼロ)が比較オペレーシヨン
に使用される。というのは、AND回路174は
CPUの要求を有する現DAT信号としてゼロの値
を受け取るからである。このようにすると、
AND回路174はOR回路176への出力信号は
出さず、その結果、STOID比較回路172の出
力でAND回路177の付勢が制御される。L2ミ
ス信号は、AND回路177の反転出力を受け取
るAND回路180によつて生成される。 このようにして、キヤツシユデイレクトリの比
較回路171の各々は、現DAT状況信号の制御
の下で、次のものの間の比較を自動的に行う。す
なわち、(1)変換可能なLAと変換不能なエントリ
表示されたアドレス(UTERAD)との間、(2)変
換不能なLAと変換可能なエントリ表示されたア
ドレス(TERED)との間、(3)変換不能なLAと
UTERADとの間、又は(4)変換可能なLAと
TERADとの間である。本実施例によれば、比較
されるLAの値が等しい場合でも、上記(1)又は(2)
の比較は不一致と宣言される。比較されるLAの
値が等しい場合、上記比較(3)又は(4)だけが一致と
宣言される。したがつて、次の場合には必ずL2
キヤツシユであると判断される。すなわち、選択
されたコングルエンスクラスにおけるTERADの
各々と要求されたLAとが、それらの間に一致が
生ずるかどうかとは無関係に、異なる変換特性を
有する場合である。 L2キヤツシユヒツトであると判断されたとき
は、デイレクトリ160はL1キヤツシユヒツト
が存在すると判断する。第12図におけるL1ヒ
ツト回路75は第13図における選択・デコーダ
回路175AないしDによつて設けられる。これ
らの回路175AないしDのうちの1つは、選択
されたコングルエンスクラスにおいてL2キヤツ
シユヒツトが存在する場合に、AND回路177
AないしDうちの1つからのL2ヒツト出力を受
け取ることができるものである。 L1キヤツシユヒツトは次の場合にL1ヒツト判
断回路125AないしDのオペレーシヨンによつ
て判断される。すなわち、対応するAND回路1
77の出力によつてL2ヒツトと判断された場合
である。回路175AないしDは第4図中の回路
75AないしDと同じものでよく、これらは、
L1キヤツシユヒツトが存在するかどうかを判断
するのに必要なLPFの部分をみつけるために同
様に機能する。また、AND回路181はL1ミス
を知らせるもので、第4図中の回路81と同じも
のである。 AND回路178の各々は回路181からのL1
ミス信号と回路177からのL2ヒツト信号とを
受け取つて、L1ミスの際にL1ヒツトが存在する
ということを示す信号を出力する。 デコーダ175からのL1ヒツト信号はL1キヤ
ツシユ63への4つのL1キヤツシユヒツト信号
179AないしDのうちの1つで供給される。こ
れは、信号ライン47を介して供給されている
LAビツト18ないし25によつて、現にアドレス指
定されているL1キヤツシユ63におけるコング
ルエンスクラス中の4つのデータラインのうちの
正しい1つのデータラインを選択するためであ
る。要求されたL1のコングルエンスクラスにお
ける4つのデータラインのうちの活動化された1
つは、これによつて、そのライン中の要求された
バス単位(たとえば4つの4倍長ワード)を選択
し、このバス単位が要求されたL1データとして
データバスを介してCPUへ送出される。 第3図と同様に第12図においては、L2キヤ
ツシユミスが生じるまでは(L2キヤツシユミス
は統計的にはほとんど発生しない)、キヤツシユ
のアクセスのためのTLBの出力は全く必要ない。 第15図は第12図の実施例で使用される
TLB回路のより詳細を表わす図である。第15
図に示すTLB回路は第10図に示すTLB回路と
次の点で異なる。すなわち、前者がDATオフフ
イールド、及び第10図のACFフイールドの代
わりに各エントリにおいてSTOIDフイールドを
用いる点である。第15図中の比較回路80A及
び80Bの各々は第13図中の比較回路と同じ構
成で同様に機能する。他の点では、第15図の
TLBは第10図のTLBは同じである。 以上に説明した本実施例によれば、次のような
効果が得られる。 複数レベルの専用キヤツシユを使つてキヤツ
シユのサイズを拡張しつつキヤツシユアクセス
についてTLBオペレーシヨンをなくすことが
できる。 シノニム決定を単純化することができる。従
来、シノニム決定の複雑さは、キヤツシユサイ
ズの増加に伴い指数的に増大していた。 記憶装置要求についての平均時間を改善する
ために複数レベルのキヤツシユを使用するよう
な複数キヤツシユデイレクトリの必要性がな
い。 複数レベルのキヤツシユ間でのキヤツシユデ
イレクトリの同期化の問題がない。 1つのプロセツサについて専用の複数レベル
のキヤツシユに対して共通の単一デイレクトリ
が設けられるので、キヤツシユデイレクトリの
コスト及びハードウエアが節約できる。 E 発明の効果 以上説明したように、本発明によれば、キヤツ
シユヒツトの判断の際にTLBによる変換の必要
がないので、キヤツシユアクセスの高速化を図る
ことができる。
第1図ないし第4図は、本発明の1つの実施例
を説明する図、第5図は第3図に示した共通キヤ
ツシユデイレクトリにおけるセルの構造を示す
図、第6図は第3図に示したL1制御アレイの構
成を示す図、第7図は第3図又は第6図に示した
L1制御アレイにおけるセルの構造を示す図、第
8図は第3図に示したL1キヤツシユの一般的な
構成を示す図、第9図は第3図に示したL2キヤ
ツシユの一般的な構成を示す図、第10図は第3
図に示したTLBの一般的な構成示す図、第11
図及び第12図は、本発明の他の実施例を説明す
る図、第13図は第12図に示した共通キヤツシ
ユデイレクトリの一般的な構成を示す図、第14
図は第12図及び第13図に示す共通キヤツシユ
デイレクトリにおけるセルの構造を示す図、第1
5図は第13図及び第12図に示すTLBの一般
的な構成を示す図、第16A図及び第16B図は
多重プロセツサ環境における実施例で使用される
シノニム/相互問合せデイレクトリの構成を示す
図、第17図はシノニム/相互問合せデイレクト
リの応答の制御を説明する図である。
を説明する図、第5図は第3図に示した共通キヤ
ツシユデイレクトリにおけるセルの構造を示す
図、第6図は第3図に示したL1制御アレイの構
成を示す図、第7図は第3図又は第6図に示した
L1制御アレイにおけるセルの構造を示す図、第
8図は第3図に示したL1キヤツシユの一般的な
構成を示す図、第9図は第3図に示したL2キヤ
ツシユの一般的な構成を示す図、第10図は第3
図に示したTLBの一般的な構成示す図、第11
図及び第12図は、本発明の他の実施例を説明す
る図、第13図は第12図に示した共通キヤツシ
ユデイレクトリの一般的な構成を示す図、第14
図は第12図及び第13図に示す共通キヤツシユ
デイレクトリにおけるセルの構造を示す図、第1
5図は第13図及び第12図に示すTLBの一般
的な構成を示す図、第16A図及び第16B図は
多重プロセツサ環境における実施例で使用される
シノニム/相互問合せデイレクトリの構成を示す
図、第17図はシノニム/相互問合せデイレクト
リの応答の制御を説明する図である。
Claims (1)
- 【特許請求の範囲】 1 プロセツサと、変換索引緩衝機構と、主記憶
装置とを含み、実モードと仮想モードとのアドレ
ス・モードの切換えができるデータ処理システム
であつて、 (a) 上記プロセツサからアクセス可能な複数のキ
ヤツシユであつて、それぞれが異なる階層レベ
ルを有するキヤツシユと、 (b) 論理アドレスと、該論理アドレスが実/絶対
アドレスであるのか又は仮想アドレスであるの
かを示す標識と、上記複数のキヤツシユのどこ
にデータが存在するかを示す存在フイールドと
をそれぞれが有する複数のエントリを備えた、
上記複数のキヤツシユに共通のデイレクトリ
と、 (c) 上記プロセツサによつて要求された論理アド
レスと、該論理アドレスが実/絶対アドレスで
あるのか又は仮想アドレスであるのかを示す標
識とを上記デイレクトリに供給する手段と、 (d) 上記プロセツサによつて要求された論理アド
レスを受け取つて上記デイレクトリにおいてヒ
ツトの可能性のあるエントリを選択する手段
と、 (e) 選択された上記ヒツトの可能性のあるエント
リについて、上記プロセツサによつて要求され
た論理アドレス及び標識と該エントリにおける
論理アドレス及び標識とを比較することによ
り、上記変換索引緩衝機構のアドレス変換を使
用することなく、ヒツトエントリが存在するこ
とを判断し、該ヒツトエントリ中の上記存在フ
イールド情報に基づいて、上記複数のキヤツシ
ユにおける要求データの存在位置を判断するヒ
ツト判断手段と、 を具備するデータ処理システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/858,322 US4797814A (en) | 1986-05-01 | 1986-05-01 | Variable address mode cache |
| US858322 | 1997-05-19 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS62260248A JPS62260248A (ja) | 1987-11-12 |
| JPH0555898B2 true JPH0555898B2 (ja) | 1993-08-18 |
Family
ID=25328033
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP62106530A Granted JPS62260248A (ja) | 1986-05-01 | 1987-05-01 | データ処理システム |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US4797814A (ja) |
| EP (1) | EP0243724A3 (ja) |
| JP (1) | JPS62260248A (ja) |
| CA (1) | CA1283218C (ja) |
Families Citing this family (143)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4985829A (en) * | 1984-07-31 | 1991-01-15 | Texas Instruments Incorporated | Cache hierarchy design for use in a memory management unit |
| US5317717A (en) * | 1987-07-01 | 1994-05-31 | Digital Equipment Corp. | Apparatus and method for main memory unit protection using access and fault logic signals |
| US4942520A (en) * | 1987-07-31 | 1990-07-17 | Prime Computer, Inc. | Method and apparatus for indexing, accessing and updating a memory |
| US5179687A (en) * | 1987-09-26 | 1993-01-12 | Mitsubishi Denki Kabushiki Kaisha | Semiconductor memory device containing a cache and an operation method thereof |
| US4996641A (en) * | 1988-04-15 | 1991-02-26 | Motorola, Inc. | Diagnostic mode for a cache |
| US5247649A (en) * | 1988-05-06 | 1993-09-21 | Hitachi, Ltd. | Multi-processor system having a multi-port cache memory |
| US4965720A (en) * | 1988-07-18 | 1990-10-23 | International Business Machines Corporation | Directed address generation for virtual-address data processors |
| US5317716A (en) * | 1988-08-16 | 1994-05-31 | International Business Machines Corporation | Multiple caches using state information indicating if cache line was previously modified and type of access rights granted to assign access rights to cache line |
| JPH0290259A (ja) * | 1988-09-27 | 1990-03-29 | Hitachi Ltd | マルチプロセッサシステム |
| US5261074A (en) * | 1988-10-03 | 1993-11-09 | Silicon Graphics, Inc. | Computer write-initiated special transferoperation |
| US5058003A (en) * | 1988-12-15 | 1991-10-15 | International Business Machines Corporation | Virtual storage dynamic address translation mechanism for multiple-sized pages |
| US5016168A (en) * | 1988-12-23 | 1991-05-14 | International Business Machines Corporation | Method for storing into non-exclusive cache lines in multiprocessor systems |
| EP0389151A3 (en) * | 1989-03-22 | 1992-06-03 | International Business Machines Corporation | System and method for partitioned cache memory management |
| JP3038781B2 (ja) * | 1989-04-21 | 2000-05-08 | 日本電気株式会社 | メモリアクセス制御回路 |
| US5130922A (en) * | 1989-05-17 | 1992-07-14 | International Business Machines Corporation | Multiprocessor cache memory system using temporary access states and method for operating such a memory |
| GB9008145D0 (en) * | 1989-05-31 | 1990-06-06 | Ibm | Microcomputer system employing address offset mechanism to increase the supported cache memory capacity |
| JPH0340046A (ja) * | 1989-07-06 | 1991-02-20 | Hitachi Ltd | キャッシュメモリ制御方式および情報処理装置 |
| US5077826A (en) * | 1989-08-09 | 1991-12-31 | International Business Machines Corporation | Cache performance in an information handling system employing page searching |
| US5214765A (en) * | 1989-08-31 | 1993-05-25 | Sun Microsystems, Inc. | Method and apparatus for executing floating point instructions utilizing complimentary floating point pipeline and multi-level caches |
| US5230070A (en) * | 1989-09-08 | 1993-07-20 | International Business Machines Corporation | Access authorization table for multi-processor caches |
| JP2833062B2 (ja) * | 1989-10-30 | 1998-12-09 | 株式会社日立製作所 | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 |
| US5307477A (en) * | 1989-12-01 | 1994-04-26 | Mips Computer Systems, Inc. | Two-level cache memory system |
| US5136700A (en) * | 1989-12-22 | 1992-08-04 | Digital Equipment Corporation | Apparatus and method for reducing interference in two-level cache memories |
| JPH03216744A (ja) * | 1990-01-22 | 1991-09-24 | Fujitsu Ltd | 内蔵キャッシュ・メモリ制御方式 |
| US5261066A (en) * | 1990-03-27 | 1993-11-09 | Digital Equipment Corporation | Data processing system and method with small fully-associative cache and prefetch buffers |
| US5197139A (en) * | 1990-04-05 | 1993-03-23 | International Business Machines Corporation | Cache management for multi-processor systems utilizing bulk cross-invalidate |
| US5269009A (en) * | 1990-09-04 | 1993-12-07 | International Business Machines Corporation | Processor system with improved memory transfer means |
| JPH04230549A (ja) * | 1990-10-12 | 1992-08-19 | Internatl Business Mach Corp <Ibm> | 多重レベル・キャッシュ |
| GB9024692D0 (en) * | 1990-11-13 | 1991-01-02 | Int Computers Ltd | Virtual memory system |
| US5412787A (en) * | 1990-11-21 | 1995-05-02 | Hewlett-Packard Company | Two-level TLB having the second level TLB implemented in cache tag RAMs |
| US5249282A (en) * | 1990-11-21 | 1993-09-28 | Benchmarq Microelectronics, Inc. | Integrated cache memory system with primary and secondary cache memories |
| JPH04246745A (ja) * | 1991-02-01 | 1992-09-02 | Canon Inc | 情報処理装置及びその方法 |
| EP0506236A1 (en) * | 1991-03-13 | 1992-09-30 | International Business Machines Corporation | Address translation mechanism |
| EP0508577A1 (en) * | 1991-03-13 | 1992-10-14 | International Business Machines Corporation | Address translation mechanism |
| US5293608A (en) * | 1991-04-19 | 1994-03-08 | Legent Corporation | System and method for optimizing cache memory utilization by selectively inhibiting loading of data |
| JPH04328657A (ja) * | 1991-04-30 | 1992-11-17 | Toshiba Corp | キャッシュメモリ |
| GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
| JP2839060B2 (ja) * | 1992-03-02 | 1998-12-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システムおよびデータ処理方法 |
| JP2737820B2 (ja) * | 1992-09-24 | 1998-04-08 | インターナショナル・ビジネス・マシーンズ・コーポレイション | メモリアクセス方法およびシステム |
| US5450562A (en) * | 1992-10-19 | 1995-09-12 | Hewlett-Packard Company | Cache-based data compression/decompression |
| US5584002A (en) * | 1993-02-22 | 1996-12-10 | International Business Machines Corporation | Cache remapping using synonym classes |
| US5689679A (en) * | 1993-04-28 | 1997-11-18 | Digital Equipment Corporation | Memory system and method for selective multi-level caching using a cache level code |
| DE59308846D1 (de) * | 1993-04-30 | 1998-09-10 | Siemens Nixdorf Inf Syst | Verfahren zur Ausführung von an einen mehrstufigen Cachespeicher einer Datenverarbeitungsanlage gerichteten Anforderungen und entsprechend gestalteter Cachespeicher |
| US5809525A (en) * | 1993-09-17 | 1998-09-15 | International Business Machines Corporation | Multi-level computer cache system providing plural cache controllers associated with memory address ranges and having cache directories |
| US5530832A (en) * | 1993-10-14 | 1996-06-25 | International Business Machines Corporation | System and method for practicing essential inclusion in a multiprocessor and cache hierarchy |
| US5539893A (en) * | 1993-11-16 | 1996-07-23 | Unisys Corporation | Multi-level memory and methods for allocating data most likely to be used to the fastest memory level |
| JP3169155B2 (ja) * | 1993-12-22 | 2001-05-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 情報をキャッシュするための回路 |
| US5870599A (en) * | 1994-03-01 | 1999-02-09 | Intel Corporation | Computer system employing streaming buffer for instruction preetching |
| JPH07287668A (ja) | 1994-04-19 | 1995-10-31 | Hitachi Ltd | データ処理装置 |
| US5539895A (en) * | 1994-05-12 | 1996-07-23 | International Business Machines Corporation | Hierarchical computer cache system |
| US6226722B1 (en) * | 1994-05-19 | 2001-05-01 | International Business Machines Corporation | Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing |
| US5604889A (en) * | 1994-06-15 | 1997-02-18 | Texas Instruments Incorporated | Memory management system for checkpointed logic simulator with increased locality of data |
| US5890221A (en) * | 1994-10-05 | 1999-03-30 | International Business Machines Corporation | Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit |
| US5630087A (en) * | 1994-11-02 | 1997-05-13 | Sun Microsystems, Inc. | Apparatus and method for efficient sharing of virtual memory translations |
| US5680598A (en) * | 1995-03-31 | 1997-10-21 | International Business Machines Corporation | Millicode extended memory addressing using operand access control register to control extended address concatenation |
| US5649155A (en) * | 1995-03-31 | 1997-07-15 | International Business Machines Corporation | Cache memory accessed by continuation requests |
| US5850534A (en) * | 1995-06-05 | 1998-12-15 | Advanced Micro Devices, Inc. | Method and apparatus for reducing cache snooping overhead in a multilevel cache system |
| US5778434A (en) | 1995-06-07 | 1998-07-07 | Seiko Epson Corporation | System and method for processing multiple requests and out of order returns |
| US5740399A (en) * | 1995-08-23 | 1998-04-14 | International Business Machines Corporation | Modified L1/L2 cache inclusion for aggressive prefetch |
| US5758119A (en) * | 1995-08-23 | 1998-05-26 | International Business Machines Corp. | System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache |
| US5778426A (en) * | 1995-10-23 | 1998-07-07 | Symbios, Inc. | Methods and structure to maintain a two level cache in a RAID controller and thereby selecting a preferred posting method |
| US5895487A (en) * | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
| US6006210A (en) | 1997-03-27 | 1999-12-21 | Pitney Bowes Inc. | Mailing machine including dimensional rating capability |
| US6026470A (en) * | 1997-04-14 | 2000-02-15 | International Business Machines Corporation | Software-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels |
| US5978888A (en) * | 1997-04-14 | 1999-11-02 | International Business Machines Corporation | Hardware-managed programmable associativity caching mechanism monitoring cache misses to selectively implement multiple associativity levels |
| US6049849A (en) * | 1997-04-14 | 2000-04-11 | International Business Machines Corporation | Imprecise method and system for selecting an alternative cache entry for replacement in response to a conflict between cache operation requests |
| US5983322A (en) * | 1997-04-14 | 1999-11-09 | International Business Machines Corporation | Hardware-managed programmable congruence class caching mechanism |
| US6312072B1 (en) | 1997-05-01 | 2001-11-06 | Pitney Bowes Inc. | Disabling a printing mechanism in response to an out of ink condition |
| US6175899B1 (en) * | 1997-05-19 | 2001-01-16 | International Business Machines Corporation | Method for providing virtual atomicity in multi processor environment having access to multilevel caches |
| US6138209A (en) * | 1997-09-05 | 2000-10-24 | International Business Machines Corporation | Data processing system and multi-way set associative cache utilizing class predict data structure and method thereof |
| US6192458B1 (en) * | 1998-03-23 | 2001-02-20 | International Business Machines Corporation | High performance cache directory addressing scheme for variable cache sizes utilizing associativity |
| US6574698B1 (en) * | 1998-04-17 | 2003-06-03 | International Business Machines Corporation | Method and system for accessing a cache memory within a data processing system |
| US6981096B1 (en) * | 1998-10-02 | 2005-12-27 | International Business Machines Corporation | Mapping and logic for combining L1 and L2 directories and/or arrays |
| US6324617B1 (en) | 1999-08-04 | 2001-11-27 | International Business Machines Corporation | Method and system for communicating tags of data access target and castout victim in a single data transfer |
| US6343347B1 (en) | 1999-08-04 | 2002-01-29 | International Business Machines Corporation | Multiprocessor system bus with cache state and LRU snoop responses for read/castout (RCO) address transaction |
| US6343344B1 (en) | 1999-08-04 | 2002-01-29 | International Business Machines Corporation | System bus directory snooping mechanism for read/castout (RCO) address transaction |
| US6338124B1 (en) | 1999-08-04 | 2002-01-08 | International Business Machines Corporation | Multiprocessor system bus with system controller explicitly updating snooper LRU information |
| US6321305B1 (en) | 1999-08-04 | 2001-11-20 | International Business Machines Corporation | Multiprocessor system bus with combined snoop responses explicitly cancelling master allocation of read data |
| US6353875B1 (en) | 1999-08-04 | 2002-03-05 | International Business Machines Corporation | Upgrading of snooper cache state mechanism for system bus with read/castout (RCO) address transactions |
| US6349367B1 (en) | 1999-08-04 | 2002-02-19 | International Business Machines Corporation | Method and system for communication in which a castout operation is cancelled in response to snoop responses |
| US6502171B1 (en) * | 1999-08-04 | 2002-12-31 | International Business Machines Corporation | Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data |
| US6629207B1 (en) | 1999-10-01 | 2003-09-30 | Hitachi, Ltd. | Method for loading instructions or data into a locked way of a cache memory |
| US6598128B1 (en) | 1999-10-01 | 2003-07-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6772325B1 (en) * | 1999-10-01 | 2004-08-03 | Hitachi, Ltd. | Processor architecture and operation for exploiting improved branch control instruction |
| US6412043B1 (en) | 1999-10-01 | 2002-06-25 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6553460B1 (en) | 1999-10-01 | 2003-04-22 | Hitachi, Ltd. | Microprocessor having improved memory management unit and cache memory |
| US6339813B1 (en) * | 2000-01-07 | 2002-01-15 | International Business Machines Corporation | Memory system for permitting simultaneous processor access to a cache line and sub-cache line sectors fill and writeback to a system memory |
| US6851038B1 (en) * | 2000-05-26 | 2005-02-01 | Koninklijke Philips Electronics N.V. | Background fetching of translation lookaside buffer (TLB) entries |
| US7073044B2 (en) * | 2001-03-30 | 2006-07-04 | Intel Corporation | Method and apparatus for sharing TLB entries |
| US6728858B2 (en) * | 2001-03-30 | 2004-04-27 | Intel Corporation | Method and apparatus including heuristic for sharing TLB entries |
| WO2004059491A1 (en) * | 2002-12-30 | 2004-07-15 | Intel Corporation | Cache victim sector tag buffer |
| US7254681B2 (en) * | 2003-02-13 | 2007-08-07 | Intel Corporation | Cache victim sector tag buffer |
| JP3936672B2 (ja) * | 2003-04-30 | 2007-06-27 | 富士通株式会社 | マイクロプロセッサ |
| US7506125B2 (en) * | 2003-09-29 | 2009-03-17 | Hitachi, Ltd. | Information terminals for receiving content with survival time and forwarding content to different information terminal after changing the survival time |
| US7093100B2 (en) * | 2003-11-14 | 2006-08-15 | International Business Machines Corporation | Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes |
| WO2005078586A2 (de) * | 2004-02-09 | 2005-08-25 | Continental Teves Ag & Co. Ohg | Einrichtung und verfahren zur analyse von eingebetteten systemen für sicherheitskritische rechnersysteme in kraftfahrzeugen |
| US7293157B1 (en) * | 2004-11-24 | 2007-11-06 | Sun Microsystems, Inc. | Logically partitioning different classes of TLB entries within a single caching structure |
| US7930514B2 (en) * | 2005-02-09 | 2011-04-19 | International Business Machines Corporation | Method, system, and computer program product for implementing a dual-addressable cache |
| US7305522B2 (en) * | 2005-02-12 | 2007-12-04 | International Business Machines Corporation | Victim cache using direct intervention |
| US7788642B2 (en) * | 2005-05-16 | 2010-08-31 | Texas Instruments Incorporated | Displaying cache information using mark-up techniques |
| US7616218B1 (en) * | 2005-12-05 | 2009-11-10 | Nvidia Corporation | Apparatus, system, and method for clipping graphics primitives |
| US20070271421A1 (en) * | 2006-05-17 | 2007-11-22 | Nam Sung Kim | Reducing aging effect on memory |
| US8601223B1 (en) | 2006-09-19 | 2013-12-03 | Nvidia Corporation | Techniques for servicing fetch requests utilizing coalesing page table entries |
| US8347064B1 (en) | 2006-09-19 | 2013-01-01 | Nvidia Corporation | Memory access techniques in an aperture mapped memory space |
| US8543792B1 (en) | 2006-09-19 | 2013-09-24 | Nvidia Corporation | Memory access techniques including coalesing page table entries |
| US8352709B1 (en) | 2006-09-19 | 2013-01-08 | Nvidia Corporation | Direct memory access techniques that include caching segmentation data |
| US8700883B1 (en) * | 2006-10-24 | 2014-04-15 | Nvidia Corporation | Memory access techniques providing for override of a page table |
| US8707011B1 (en) | 2006-10-24 | 2014-04-22 | Nvidia Corporation | Memory access techniques utilizing a set-associative translation lookaside buffer |
| US8533425B1 (en) | 2006-11-01 | 2013-09-10 | Nvidia Corporation | Age based miss replay system and method |
| US8706975B1 (en) | 2006-11-01 | 2014-04-22 | Nvidia Corporation | Memory access management block bind system and method |
| US8504794B1 (en) | 2006-11-01 | 2013-08-06 | Nvidia Corporation | Override system and method for memory access management |
| US8347065B1 (en) * | 2006-11-01 | 2013-01-01 | Glasco David B | System and method for concurrently managing memory access requests |
| US8607008B1 (en) | 2006-11-01 | 2013-12-10 | Nvidia Corporation | System and method for independent invalidation on a per engine basis |
| US8700865B1 (en) | 2006-11-02 | 2014-04-15 | Nvidia Corporation | Compressed data access system and method |
| US8578137B2 (en) * | 2006-11-03 | 2013-11-05 | Intel Corporation | Reducing aging effect on registers |
| US8347037B2 (en) * | 2008-10-22 | 2013-01-01 | International Business Machines Corporation | Victim cache replacement |
| US8209489B2 (en) * | 2008-10-22 | 2012-06-26 | International Business Machines Corporation | Victim cache prefetching |
| US8225045B2 (en) * | 2008-12-16 | 2012-07-17 | International Business Machines Corporation | Lateral cache-to-cache cast-in |
| US8117397B2 (en) * | 2008-12-16 | 2012-02-14 | International Business Machines Corporation | Victim cache line selection |
| US8499124B2 (en) * | 2008-12-16 | 2013-07-30 | International Business Machines Corporation | Handling castout cache lines in a victim cache |
| US8489819B2 (en) * | 2008-12-19 | 2013-07-16 | International Business Machines Corporation | Victim cache lateral castout targeting |
| US8364898B2 (en) * | 2009-01-23 | 2013-01-29 | International Business Machines Corporation | Optimizing a cache back invalidation policy |
| US8949540B2 (en) * | 2009-03-11 | 2015-02-03 | International Business Machines Corporation | Lateral castout (LCO) of victim cache line in data-invalid state |
| US8285939B2 (en) * | 2009-04-08 | 2012-10-09 | International Business Machines Corporation | Lateral castout target selection |
| US8347036B2 (en) * | 2009-04-09 | 2013-01-01 | International Business Machines Corporation | Empirically based dynamic control of transmission of victim cache lateral castouts |
| US8312220B2 (en) * | 2009-04-09 | 2012-11-13 | International Business Machines Corporation | Mode-based castout destination selection |
| US8327073B2 (en) * | 2009-04-09 | 2012-12-04 | International Business Machines Corporation | Empirically based dynamic control of acceptance of victim cache lateral castouts |
| EP3287187A1 (en) | 2009-08-04 | 2018-02-28 | CO2 Solutions Inc. | Process for co2 capture using carbonates and biocatalysts |
| US9189403B2 (en) * | 2009-12-30 | 2015-11-17 | International Business Machines Corporation | Selective cache-to-cache lateral castouts |
| US8677050B2 (en) * | 2010-11-12 | 2014-03-18 | International Business Machines Corporation | System, method and computer program product for extending a cache using processor registers |
| US10146545B2 (en) | 2012-03-13 | 2018-12-04 | Nvidia Corporation | Translation address cache for a microprocessor |
| US9880846B2 (en) | 2012-04-11 | 2018-01-30 | Nvidia Corporation | Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries |
| US10241810B2 (en) | 2012-05-18 | 2019-03-26 | Nvidia Corporation | Instruction-optimizing processor with branch-count table in hardware |
| US20140082252A1 (en) * | 2012-09-17 | 2014-03-20 | International Business Machines Corporation | Combined Two-Level Cache Directory |
| US20140189310A1 (en) | 2012-12-27 | 2014-07-03 | Nvidia Corporation | Fault detection in instruction translations |
| US10108424B2 (en) | 2013-03-14 | 2018-10-23 | Nvidia Corporation | Profiling code portions to generate translations |
| US9753883B2 (en) * | 2014-02-04 | 2017-09-05 | Netronome Systems, Inc. | Network interface device that maps host bus writes of configuration information for virtual NIDs into a small transactional memory |
| US10387314B2 (en) * | 2015-08-25 | 2019-08-20 | Oracle International Corporation | Reducing cache coherence directory bandwidth by aggregating victimization requests |
| US10698836B2 (en) * | 2017-06-16 | 2020-06-30 | International Business Machines Corporation | Translation support for a virtual cache |
| US10831664B2 (en) | 2017-06-16 | 2020-11-10 | International Business Machines Corporation | Cache structure using a logical directory |
| US10606762B2 (en) * | 2017-06-16 | 2020-03-31 | International Business Machines Corporation | Sharing virtual and real translations in a virtual cache |
| CN114281713B (zh) * | 2021-12-28 | 2026-03-24 | 上海集成电路装备材料产业创新中心有限公司 | 数据矩阵处理装置、方法、设备及介质 |
| CN115495392B (zh) * | 2022-11-17 | 2023-03-24 | 深圳市楠菲微电子有限公司 | 多级启动中内存复用方法、装置、存储介质和处理器 |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5072542A (ja) * | 1973-10-30 | 1975-06-16 | ||
| US4070706A (en) * | 1976-09-20 | 1978-01-24 | Sperry Rand Corporation | Parallel requestor priority determination and requestor address matching in a cache memory system |
| JPS5849945B2 (ja) * | 1977-12-29 | 1983-11-08 | 富士通株式会社 | バツフア合せ方式 |
| US4322795A (en) * | 1980-01-24 | 1982-03-30 | Honeywell Information Systems Inc. | Cache memory utilizing selective clearing and least recently used updating |
| DE3177181D1 (de) * | 1980-11-10 | 1990-06-21 | Ibm | Anordnung zur erkennung und verarbeitung von synonymen in cache-speichern. |
| US4456954A (en) * | 1981-06-15 | 1984-06-26 | International Business Machines Corporation | Virtual machine system with guest architecture emulation using hardware TLB's for plural level address translations |
| JPS586570A (ja) * | 1981-07-02 | 1983-01-14 | Nec Corp | バツフアメモリ装置 |
| US4464712A (en) * | 1981-07-06 | 1984-08-07 | International Business Machines Corporation | Second level cache replacement method and apparatus |
| JPS5898893A (ja) * | 1981-12-09 | 1983-06-11 | Toshiba Corp | 情報処理装置 |
| US4484267A (en) * | 1981-12-30 | 1984-11-20 | International Business Machines Corporation | Cache sharing control in a multiprocessor |
| US4654790A (en) * | 1983-11-28 | 1987-03-31 | Amdahl Corporation | Translation of virtual and real addresses to system addresses |
-
1986
- 1986-05-01 US US06/858,322 patent/US4797814A/en not_active Expired - Lifetime
-
1987
- 1987-04-03 EP EP87104938A patent/EP0243724A3/en not_active Ceased
- 1987-04-14 CA CA000534687A patent/CA1283218C/en not_active Expired - Lifetime
- 1987-05-01 JP JP62106530A patent/JPS62260248A/ja active Granted
Also Published As
| Publication number | Publication date |
|---|---|
| JPS62260248A (ja) | 1987-11-12 |
| CA1283218C (en) | 1991-04-16 |
| EP0243724A3 (en) | 1990-05-23 |
| EP0243724A2 (en) | 1987-11-04 |
| US4797814A (en) | 1989-01-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0555898B2 (ja) | ||
| US6658538B2 (en) | Non-uniform memory access (NUMA) data processing system having a page table including node-specific data storage and coherency control | |
| JP2833062B2 (ja) | キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置 | |
| KR920005280B1 (ko) | 고속 캐쉬 시스템 | |
| JP2557174B2 (ja) | データのセット位置の予測装置 | |
| US8607024B2 (en) | Virtual address cache memory, processor and multiprocessor | |
| EP0144121B1 (en) | Virtually addressed cache | |
| EP0036110B1 (en) | Cache addressing mechanism | |
| US6092172A (en) | Data processor and data processing system having two translation lookaside buffers | |
| US7900020B2 (en) | Correction of incorrect cache accesses | |
| JP5373173B2 (ja) | アドレス変換方法及び装置 | |
| US20060236074A1 (en) | Indicating storage locations within caches | |
| US5440707A (en) | Instruction and data cache with a shared TLB for split accesses and snooping in the same clock cycle | |
| US20030065890A1 (en) | Method and apparatus for updating and invalidating store data | |
| US20140095784A1 (en) | Techniques for Utilizing Transaction Lookaside Buffer Entry Numbers to Improve Processor Performance | |
| US5715427A (en) | Semi-associative cache with MRU/LRU replacement | |
| US20070028051A1 (en) | Time and power reduction in cache accesses | |
| US6732238B1 (en) | Set-associative cache memory having variable time decay rewriting algorithm | |
| US9720847B2 (en) | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed | |
| US6591341B1 (en) | Multilevel cache system and method having a merged tag array to store tags for multiple data arrays | |
| US8621152B1 (en) | Transparent level 2 cache that uses independent tag and valid random access memory arrays for cache access | |
| JPH09288578A (ja) | 命令取り出し方法および装置 | |
| KR19990006485A (ko) | 캐쉬 어드레스 발생 방법 | |
| US20050027960A1 (en) | Translation look-aside buffer sharing among logical partitions | |
| US6574698B1 (en) | Method and system for accessing a cache memory within a data processing system |