JPS62260248A - データ処理システム - Google Patents

データ処理システム

Info

Publication number
JPS62260248A
JPS62260248A JP62106530A JP10653087A JPS62260248A JP S62260248 A JPS62260248 A JP S62260248A JP 62106530 A JP62106530 A JP 62106530A JP 10653087 A JP10653087 A JP 10653087A JP S62260248 A JPS62260248 A JP S62260248A
Authority
JP
Japan
Prior art keywords
cache
address
directory
entry
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP62106530A
Other languages
English (en)
Other versions
JPH0555898B2 (ja
Inventor
ジエームズ・ジェラルド・ブレンザ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPS62260248A publication Critical patent/JPS62260248A/ja
Publication of JPH0555898B2 publication Critical patent/JPH0555898B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • G06F12/1063Address 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches 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)

Abstract

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

Description

【発明の詳細な説明】
A、産業上の利用分野 本発明はC)) Uと記憶装置との間のデータ又は命令
のアクセスの高速化を図るキャッシュを含むデータ処理
システムに関する。 13、従来技術 従来肢術によれば、1つのCP Uが直接にアクセスで
きるような階層の最下位レベルL1にある一1/、川の
キャッシュを1以」−有する多Tttレベル記憶階層で
構成されるデータ処理システムがある。このようなキャ
ッシュは高速アクセスのためCPUを近接させる目的の
ものである。各キャッシュは各キャッシュに都合のよい
長さのデータラインを有する。したがって、キャッシュ
ごとに異なる場合がある。従来技術によれば、最下位レ
ベルL1のキャッシュの各エントリのラインの長さの整
数倍のライン長を有する第2レベルL2のキャッシュを
含むシステムもある。 メインフレームのCPUは、要求されるアドレス源とし
ての命令ユニット、変換索引緩衝機構(TLB)、Ll
のキャッシュとそのレベルのディレクトリ、L2のキャ
ッシュとそのレベルのディレクトリを含むものが多い。 キャッシュの能率はシステムの性能にとって重要である
。キャッシュの能率を21+q定する重要なパラメータ
は、CPUの命令ユニットより記憶装置要求アドレスが
利用できるようになってから要求されたデータがその命
令ユニットで利用できるようになるまでの間の平均時間
である。この期間は、普通、幾つかのマシンサイクルで
測定される。キャッシュの能率はこのパラメータが減少
するにつれて上がる。 従来のシステムは次のように動作することができる。命
令ユニットより要求された記憶装置アドレス(以下、「
要求アドレス」ともいう)は実アドレス、絶対アドレス
、又は仮想アドレスのいずれともなり得る。もしこれが
仮想アドレスであるときは、その要求アドレスを含むペ
ージアドレスはそのページの実アドレス又は絶対アドレ
スをTL Liのエントリに置く直接アドレス変換手段
(DAT)によって既に変換されているかもしれないの
で、その要求アドレスによってTLBがアクセスされて
、変換されたアドレスが取得される。要求された変換を
’1’ L Bのエントリが含んでいないときは、要求
された仮想アドレスがDATによって変換され、これが
TI、Bに置かれる(したがって後でそこからアクセス
することができる)。その後、要求された仮想アドレス
は、一定期間不使用との理由で置換されるまでは、変換
された対応する実アドレスは仮想アドレスをTLBから
取得するためTLBを表引きし比較することを求めるだ
けである。 DATは仮想アドレスを実アドレスに変換し、これは単
一プロセッサのTLBに置かれる。 しかしながら、もしCPUが多重プロセッサにおいて存
在するものである場合は、変換された実アドレスに接頭
部アドレスが付加されて絶対アドレスが生成され、仮想
的な要求の絶対アドレスがTLBに置かれる。 もしCPUが実アドレスを要求するなら、変換は全く行
われないが、CPUが多重プロセッサおいて存在する場
合は、要求された実アドレスに接頭部アドレスが付加さ
れて絶対アドレスが生成される。 CPUの要求した実アドレスは従来のCPUによって様
々なやり方で処理されてきた。 たとえば、仮想アドレスを取扱うのと同じ方法で実アド
レス又は絶対アドレスをTLBに置くやり方や、キャッ
シュにおいてアクセスを試行するためL1キャッシュに
対してTLBをバイパスさせるやり方がある。後者は変
換の必要のないアドレスについてTLBを使うことを避
けるためである。 IBMシステム/ :370のアーキテクチャにおける
DATのオペレーションではセグメントテーブル記述子
(STD)が用いられる。これはセグメントテーブル源
(STO)及びセグメントテーブル長(STL)を含む
。 多重アドレス空間を用いたシステムでは、STOは要求
された仮想アドレスを含む仮想アドレス空間を識別する
ための、各々の要求された仮想アドレス部分である。S
TO又はSTOの識別子は仮想アドレス部分として既に
TLBの各エントリに置かれている。アクセスされたT
LBのエントリにあるSTOは、TL[3のアドレス変
換を捜すにあたって、各々の要求された仮想アドレスと
比較しなければならない。その後は、要求されたデータ
をキャッシュでアクセスする場合、及び必要なときは主
記憶装置でアクセスする場合に、変換されたアドレスだ
けが使用される。従来技術によっては、最近に使用され
た全てのSTOとそのS1゛Oより少ないビット数の対
応する5TOi別子とを含むSTO識別子テーブルを使
って、TLB回路アレイを小さいサイズにできるよう、
STOの代わりに5TOfi別子をTLBに置くように
したシステムもある。このようにしたのは、小さいアレ
イならより高速のアクセスが可能となるからである。 従来のキャッシュディレクトリにおいては、セットアソ
シアティブ構成が採られ、そこではキャッシュディレク
トリの1つの行(″コングルエンスクラス″′ともいう
)が命令ユニットの供給した各々のアドレス(実/絶対
アドレス、又は仮想アドレス)によって選択されていた
。しかも、各行はエントリの1セツトで構成される。こ
れらのエントリ(″ビン(bin)”又はパビン識別子
″′ともいう)はアソシアティブ式に取扱われる。すな
わち、各コングルエンスフラスはセットアソシアティブ
式である。このやり方だと、ディレクトリの行の選択は
TLBのアドレス変換が完了する前になされる。TLB
の変換アドレスが利用できるようになる前にキャッシュ
のコングルエンスを選択するためである。これにより、
CPUにおけるキャッシュアクセスの高速化が図れる。 従来のキャッシュでは、変換されたアドレスだけがキャ
ッシュディレクトリに置かれていた。すなわち、実ペー
ジアドレス表示が、使用されるキャッシュの各エントリ
に設けられた。この実アドレスは命令ユニットの要求し
た各アドレスによって選択されたコングルエンスフラス
におけるディレクトリの各エントリから読み取られる。 読み取られた実アドレスのセットは、個々の比較回路に
到着し、また、TLBで変換されたアドレスもこれらの
比較回路に同時に到着する。そして、選択されたコング
ルエンスフラスからどのアドレス群が、変換された要求
アドレスと一致するかをみつけるため、同時に比較が行
われる。すなわち、これがキャッシュについてのセット
アソシアティブ式比較法であるに の従来のオペレーションは、L1キャッシュのヒツトが
得られる前にTLBのヒツトが必要であった。もしTL
Rのミスが生じると、L1キャツシュノ判断は、TLB
のミスオペレーションがDAT(7)オペレーションに
より完了するまで待たねばならない。したがって、L1
キャッシュのオペレーションは]IcPUの要求に関す
るDATのオペレーションで新たな変換がTLBに置か
れた後に再開されていた。また、TLBのミスは直接ア
ドレス変換(DAT)を必要とし、このDATが比較的
低速の主記憶装置における変換テーブルのアクセスを2
回必要としていた。 既知の商用のL1キャッシュは仮想アドレスを含んでい
ないということに留意されたい。そうしたキャッシュの
アドレスは実/絶対アドレスであるから、これらはTL
Bの出力する実/絶対アドレスと比較できる。仮想アド
レスの値は実/絶対アドレスの値とは比較できない。と
いうのは、仮想アドレスは主記憶装置で利用できる任意
の実ページアドレスに変換しうるからである。 したがって、従来のL1キャッシュのディレクトリは、
1つの対応するL1ディレクトリアドレスが存在するか
しないか(すなわち、L1キャッシュのヒツト又はミス
)を検出する前に順次的に生ずる2つの比較オペレーシ
ョンを必要としていた。Llのヒツトが生ずる場合は、
そのデータ(通常はダブルワードである)Llキャッシ
ュでアクセスされCPUに送られる。 米国特許第4495575号はL1キャッシュに対応す
る単一のバッファを有するものである。 ただしこのキャッシュは、CPUだけでなくI10チャ
ネルによってもアクセスされるのでCPU専用のもので
はない。そのキャッシュディレクトリのエントリは、空
間ID及びブロックアドレスから成る″″合計データ″
を各々有している。これらの空間ID及びブロックアド
レスは、CPU又はチャネルからレジスタ46に受け取
られた仮想アドレスの空間I I)及びブロックアドレ
スと比較される。バッファのミスの際、アドレス変換テ
ーブル61が実アドレスをMM22に供給してデータを
取得する。 従来のキャッシュシステムは全て、LLキャッシュミス
で、記憶階層における次の上位のレベルからの要求デー
タのアクセスを必要とする・L2レベルのキャッシュが
そのキャッシュシステムに存在する場合、L2は主記憶
装置の代わりにアクセスされて、L2がデータを含むな
ら、Ll及びCPUの両方に要求データが供給される。 L2キャッシュが要求データを含まないなら、主記憶装
置がそれについてアクセスされる。L2キャッシュのミ
スを判断するためのアクセスタイムは、要求データにつ
いての全体のアクセスタイムに加えられる。実/絶対ア
ドレスは従来はL2キャッシュのディレクトリをアクセ
スするのに使用されている。このL2キャッシュのディ
レクトリは、仮想アドレスがCPUによって要求されて
いるときにTLBの出力を要求する。 従来のキャッシュシステムでは全て、TLBのミスの発
生はL1キャッシュのディレクトリのミスとは無関係に
生じつる。うまい具合に、はとんどのCPUの要求(9
0%以上)は、TLB及びキャッシュの両方においてヒ
ツトする。これが。 TLB及びキャッシュを使用する理由である。
【、2キヤツシユの基本的な要件は、そのサイズが大き
いことである。たとえば、L1キャッシュの数倍である
。したがって、L2はr、1と比べて。 主記憶装置におけるより多くのページからのデータを含
む可能性がある。しかしながら、TLBはL2に存在す
るデータを表わす全てのページ変換を含むに十分なサイ
ズを普通は有していないという点で根本的に問題がある
。その結果、要求されたラインのデータがL2キャッシ
ュの中に存在することができてもそのTLBのエントリ
は呪要求がなされる前に置換されてしまうことがあり、
したがってTLBのミスが生じ、そのような従来のシス
テムではデータ取得のためにL2キャッシュがアクセス
できる前に関連するDATのオペレーションをそのTL
Bについて完了しなければならない。 米国特許第4464712号では、ページ変換をするT
LBのエントリはL2キャッシュにおけるページサイズ
のラインに対応する。この特許はTLBから独立したL
2キャッシュディレクトリを有するものである。TLB
のエントリの置換オペレーションごとにTLBから出力
される絶対アドレスでL2のエントリ中において置換し
うるフラグビットRを捜してこれの設定を制御し、L2
キャッシュのディレクトリにおけるラインのエントリに
ついてLRUによる置換選択を管理する。 この場合、T L BとL2との間には次のような関係
が必要となる。すなわち、L2が、TLBで管理される
ページサイズ(たとえば、4096バイト)と等しいラ
インサイズを有することである。 C0間屈点を解決するための手段 したがって、本発明はTLBによるアドレス変換を用い
ないでキャツシュヒツトの判断をすることにより、上記
のような従来のキャッシュシステムの問題点を解決する
ことを目的としている。 プロセッサと、変換索引緩衝機構(TLB)と、主記憶
装置とを含み実モードと仮想モードとの切換えができる
ようなデータ処理システムにおいて、本発明のキャッシ
ュ機構は、(a)キャッシュと。 (b)論理アドレスと、この論理アドレスが実/絶対ア
ドレスであるのか又は仮想アドレスであるのかを示す標
識とを有する複数のエントリを備えたディレクトリと、
(e)プロセッサによって要求された論理アドレスと、
この論理アドレスが実/絶対アドレスであるか又は仮想
アドレスであるかを示す標識と−を上記ディレクトリに
供給する手段と、(d)プロセッサによって要求された
論理アドレスを受け取って上記ディレクトリにおいてヒ
ツトの01能性のある1以上のエントリを含む1つのセ
ットを選択する共通ディレクトリと1、(e)このセッ
ト中におけるヒツトの可能性のあるエントリについてプ
ロセッサによって要求された論理アドレス及び標識とこ
のエントリにおける論理アドレス及び標識とを比較する
ことにより、変換索引緩衝機構のアドレス変換を使用す
ることなく、ヒツトエントリが存在するか否かを判断す
るヒツト判断手段と、を具備することを特徴としている
。 本発明の作用は以下の実施例と共に説明する。 D、実施例 はじめに、実施例を概説する。 実施例によれば、CPUに専用に利用できるキャッシュ
のサイズを大きくしつつキャッシュアクセスについての
重要な経路を減らすことができる。 本実施例では、仮想アドレス指定と実アドレス指定とを
任、■に切り換えることのできるようなCPUを使用す
ることができる。このようなモードの切換えは、゛直接
アドレス変換(L)A”r)”の状態のオン・オフを切
り換える“プログラム状況ワード(PSW)”によって
18Mシステム/370の論理アドレス指定を使用する
場合に生ずる。 本実施例では、キャッシュディレクトリの各エントリに
アドレスモード標識を設けて、これにより、そのエント
リが実/絶対アドレスを表わすのか又は仮想アドレスを
表わすのかを示す。この標識を使うと、CPUが切換可
能モードの論理アドレス指定機構を使用する場合でも、
CPUからキャッシュへのアクセス経路においてT L
 Bオペレーションをなくすことができる。 本実施例では、さらに、キャッシュディレクトリの各エ
ントリにアドレスモードフラグフィールドを設けて、こ
れにより、そのエントリに表示されたアドレスがいかな
るアドレス空間からも変換されない実/絶対アドレスで
あるのか、又はそれが仮想アドレスであるのかを示す、
このアドレスモードフラグフィールドを使うと、cPU
が切換可能モードの論理アドレス指定機構を使用する場
合、CI) Uからキャッシュへのアクセス経路におい
て1’ L Bオペレーションをなくすことができる。 また、所定の値を用いてアドレスモード4L!(71〜
レスモードフラグフイールドの代用として)又はアドレ
ス空間名内の範囲の値をキャッシュディレクトリの各エ
ントリに設け、次の事項を示す。 すなわち、 (1)のエントリに表示されたアドレスが
いかなるアドレス空間からも変換されない実/絶対アド
レスであり、かつ、そのアドレス空間名フィールドがど
のアドレス空間名をもあられさないこと、又は(2)エ
ントリに表示されたアドレスが仮想アドレスであり、か
つ、そのアドレス空間名フィールドがその仮想アドレス
を含むアドレス空間の名前をあられすこと、である。こ
のようにアドレス空間名フィールドを管理すると、CP
Uが切換可能なモードで論理アドレス指定を用いる場合
、CPUからキャッシュのアクセス経路からTLBオペ
レーションをなくすことができる。 本実施例は多束レベル記憶階層を含むデータ処理システ
ムに関する。このデータ処理システムは四−のCPUに
専用で(他のプロセッサとは共有せずに)複数の階層レ
ベルを有していてはよい。 ここではキャッシュは互いに近接しまたCPUとも近接
している。最下位のキャッシュのレベルL1はCPUの
要求のアクセスに関して最も速いレベルであり、記憶容
量は最も小さいレベルである。 次のレベルL2のキャッシュはCPUの要求のアクセス
に関して次に速く、また記憶容量はLlに比べて大きい
。他の上位のキャッシュ(L3、L4、・・・・)をよ
り大きな記憶容量を実現するために設けることができる
。しかし、アクセスの速度はだんだん遅くなる。したが
って、要求したデータ又は命令を取得するため階層レベ
ルのより上位をアクセス要求が欲すればそれだけCPU
のアクセスタイムも長くなる。 専用の個々の階層レベルにある個々のキャッシュのサイ
ズはそのキャッシュにとって都合のよいライン長で多数
のラインデータを収容できるように柔軟に設計される。 下位レベルの各専用キャッシュの使用するライン長は上
位レベルの専用キャッシュのライン長の約数となってい
る。理論的には約数は任意にでき、キャッシュごとに異
なる値にすることができる。このように、LLキャッシ
ュにおける各ラインの長さはL2キャッシュの各ライン
の長さの約数である。換h゛すれば、L2の各ラインは
複数のL1ラインから成り、LLラインは■、2ライン
の約数となる。したがってL2ラインの長さはLlライ
ンの整数倍となり得る。 CI) Uの要求は、その要求されたアドレスがどこか
の一1L用のキャッシュのディレクトリで利用できろデ
ータのためのものであれば共通ディレクトリにおいて″
ヒツト″′ととなる。要求されたデータは、要求された
データ又は命令が利用可能な最下位レベルのキャッシュ
においてアクセスされる。 CPUの各要求アドレス(変換可能な論理アドレス)は
共通キャッシュディレクトリにおける1つのコングルエ
ンスフラス及びそのCPUの各専用キャッシュにおける
個々のコングルエンスフラスを同時にアドレス指定する
。 共通キャッシュディレクトリにおける各エントリは次の
ものを表わすことができる。 (a)最上位の専用キャッシュにおける個々のライン (b)1以」−の下位レベルの専用キャッシュにおいて
利用可能な各ライン部分のロケーション換言すれば、全
てのレベルの専用キャッシュにおける対応部分は単一の
ディレクトリエントリによって1位置決めされる。この
単一のディレクトリエントリは、このように、全ての専
用キャッシュの対応部分を管理する゛共通ディレクトリ
エントリ″である。したがって、各ディレクトリエント
リは、(a)最上位レベルの専用キャッシュの1っのラ
インを表わし、(b)その階層においてその他の任意の
キャッシュにコピーできるような同じラインの各部分を
追跡する。 最上位レベルの各ラインについてコピーされた全ての部
分を追跡するため、各ディレクトリエントリは1′ライ
ン存在フイールド(LPF)”を有しており、これによ
りそのエントリは全ての専用キャッシュにおけるそのラ
イン部分の全てを管理できる。これを行うため、各ディ
レクトリエントリと共にLPFは次のことを示す。 (1)コピーされた部分を含む各々の他のキャッシュレ
ベル (2)とのライン部分がその中にコピーされたかという
こと (3)その部分を含む各々の他のキャッシュにおけるセ
ットアソシアティブ位置くただし、そのキャッシュがセ
ットアソシアティブ式のキャッシュである場合) 項11(1)及び(2)は、専用キャッシュレベルが2
つしかない場合は1つのLPF411mに統合され。 セットアソシアティブ方式を使用しな1、キャッシュレ
ベルには項目(3)は使用する必要はない。 LPFは、1つのプロセッサについて単一の専用キャッ
シュしか取扱わないディレクトリにおいては必要でない
。したがって、L P Fは、WMの専用キャッシュを
提供する共通ディレクトリにおいて使用されるものであ
る。 大型システムの多くは、′fM、在、IBMシステム/
370のアーキテクチャを使用している。このアーキテ
クチャにおいては、CPUは実/絶対アドレスモートと
仮想アドレスモードとの間でいつでもモードの切換を行
うことができ、この場合、実行中のプログラムにおける
CPUの有効な記憶装置アドレスの割込みは現に存在し
ているアドレスモードで管理される。CPUのアドレス
指定モードは、仮想モード(たとえば、STO又はST
O識別子を伴う仮想アドレス)と実モード(たとえば、
STO又はSTO識別子を伴わない実アドレス又は絶対
アドレス)との間でいつでもモードの切換ができる。ア
ドレス指定のこの切替可能なタイプは“S/370論理
アドレス指定′″と呼ばれ、DATモードピットと呼ば
れる28wビット5で管理される。 本実施例では、有効なキャッシュディレクトリエントリ
の各々はそのエントリを生成した要求の使用したアドレ
スモードを示す。このようにして示されたアドレスモー
ドは、キャッシュディレクトリの現在の状況についてデ
ィレクトリエントリごとに変えることができる。 本実施例においてCPUによる階層のアクセスは、複数
の専用キャッシュにおいてCPUの要求したデータを含
む最下位(最高速)のキャッシュに対し行われる。たと
えば2つの専用キャッシュL1及びL2か存在する場合
は、いずれのキャッシュにおけるヒツトはアクセス経路
においてTLB(1)使用を避ける。すなわちLlがミ
スでL2がヒツトだと、データアクセスオペレーション
において’I’ L Bの関与は回避される。 好適な実施例では、各共通ディレクトリエントリは■、
PFフィールド及び論理アドレス表示フイ−ルドの他に
多数のフィールドを有している。たとえば、無効(I)
フィールド、STO又はSTO識別フィールド、変更(
eH)フィールド、及びDATオン/オフ・フィールド
である(DATオン/オフ・フィールドは、DATオン
/オフ機能を付加的に遂行するためにSTOフィールド
が一意的に制御されない場合である)、(たとえば、S
TOの値ゼロは、関連する論理アドレスが実アドレス又
は絶対アドレスである特別な場合を示すのに使用でき、
これでSTOの値ゼロがアドレス空間識別子になるのを
防止する。) その他のフラグフィールドは関連するラインについての
特定の状態を識別するためにディレクトリエントリに付
加することができる。たとえば。 MP中のキャッシュディレクトリにおける排他的/読取
専用(EX)フィールドや、MVS環境における共通仮
想記憶装置領域を取扱うための共通ビット(e)である
。 ■フィールドはディレクトリエントリが複数のどこかの
キャッシュに何らかのデータがあることを表オ)すかど
うかを示すものである。もしこれがオンなら、エントリ
は有効なデータを表わさないことを示し、これがオフな
ら、エントリは少すくとも上位レベルのキャッシュに有
効なラインがあることを表わすのを示す。CHフィール
ドはディレクトリエントリによって表わされたデータが
複数のキャッシュのいずれがで書き換えられた(すなわ
ち変更された)か否かを示すものである。もし、これが
オンなら、表示されたデータは変更されたことを意味し
、これがオフなら、有効なラインは不変であることを意
味する。EXフィールド(通常は単一ビット)は次のこ
とを示すためMPのキャッシュディレクトリで使用され
る。すなわち、エントリによって表わされるラインは排
他的なCI) Uのアクセスについて一時に単一のキャ
ッシュだけに存在しつるのかどうか、又は板数のCP 
Uによる共有アクセスを可能とするためそのラインを複
数のディレクトリで同時に表示できるがどうかを示すた
めである。 要求された論理アドレスの中央部から取得された中位の
ビットは、共通ディレクトリ及び各キャッシュにおける
可能なコングルエンスフラスを選択するための選択アド
レスとして使用される。各コングルエンスフラスにおけ
る全てのセットアソシアティブなエントリのロケーショ
ンはあらかじめ定められており、これらは、そのコング
ルエンスフラスがアクセスされたとき可能なエントリと
して読み取られる。 可能なエントリの各々の読取りにおいて、■フィールド
、アドレス表示フィールド、LPFフィールド、その他
のエントリフィールドのロケーションもあらかじめ定め
られている。 各々の可能なエントリにおけるIフィールドは、要求さ
れたラインが最高位のレベルのキャッシュに存在するか
どうか(すなわち有効かどうか)を調べるために検査さ
れる。もしIフィールドが。 選択されたコングルエンスフラスの全てのエントリにお
いてオンであるとき、要求ラインは、どの専用キャッシ
ュにもなく、キャッシュミスが示される。そうして、ミ
スの生じたその要求についてキャッシュディレクトリの
エントリが割り当てられる。新しいディレクトリエント
リのコングルエンスフラスはその要求アドレス中の中位
のビットによって決まる。そのコングルエンスフラス内
におけるそのエントリに関するセットアソシアティブな
ロケーションの1つがキャッシュディレクトリの1、R
U置換回路によって割り当てられる。そのエントリにお
けるIフィールドがセットされて。 エントリの内容が生成される。これは、割り当てられた
フィールド及びサブフィールドと共にLPFを含む。こ
れらのフィールドで、最上位のキャッシュにある要求さ
れたライン、及び各々の下位のキャッシュにあるそれぞ
れのその部分についてのロケーションの割当てを決定す
る。同時に要求されたラインの取出し信号が主記憶装置
に送られる。取り出されたライン及びその要求された部
分は全てのキャッシュの割り当てられたロケーションに
コピーさ九る。この主メモリライン取出しは、T L 
13から出力された変換後のページアドレスと、通常の
方法で要求されたページを定める要求された論理アドレ
スから下位グループのビットとを使用して行われる。 もしCPUの要求が、■フィールドが少なくとも1つの
可能なエントリにおいてオフであることをみつけると、
その要求されたデータは上位のキャッシュに存在しつる
のであり、また1つ(もしあればそれ以上)の下位のキ
ャッシュに存在しうるのである。次に、アドレスモード
M諏又はフィールドが各有効エントリごとに調べられ、
そのエントリの表示しているアドレスが実/絶対又は仮
想なのかをみる。もしエントリの表示している論理アド
レスが仮想アドレスなら、そのSTO(又は5TO3’
l別子)フィールド及びその論理アドレス表示フィール
ドがCPUのSTO(又はSTO識別子)及びその論理
アドレスにおける上位グループのビットと、それぞれ比
較される。もしエントリの論理アドレスが実/絶対アド
レスなら、SToはその比較においていかなるアドレス
空間名をも定めず、実/絶対標識として働くだけである
。 もし比較されたフィールドが、有効な考えつるエントリ
について一致すれば、それについてキャツシュヒツトが
存在する。 このキャツシュヒツトしたエントリにおいて、次のこと
を調べるためLPFを検査しなければならない。すなわ
ち、もしあれば要求されたデータがどの下位レベルのキ
ャッシュに含まれているのかと、そのコングルエンスフ
ラスにおけるセットアソシアティブなロケーションであ
る。これを行うため、その中位グループの次の下位ビッ
ト(又は所定の一群のビット)も要求論理アドレスから
取得される。これは、読み取られた各エントリのLPF
内において正しいサブフィールド(及びもしあればサブ
・サブフィールド)を捜すためである。このサブフィー
ルドのはじまりのところにある存在ビットは、要求され
たラインが最下位レベルのキャッシュに存在するかどう
か(すなわち。 有効かどうか)をみるために検査される。 最下位ビットグループも要求論理アドレスから取↑;ト
され、これを用いて1選択されたラインにおいて要求デ
ータを選択する。 もシ選択されたLPFサブフィールドにおけるライン存
在ビットがオフなら、要求ラインは関連するキャッシュ
には存在せず、したがってその要求ラインは、その要求
データを含む最も下位のキャッシュであるより上位のキ
ャッシュにおいてアクセスされ、そのデータはこの上位
キャッシュから、下位のキャッシュにコピーされる。 ストアイン式キャッシュである下位レベルのキャッシュ
にプロセッサがデータを書き込むときは、その同じデー
タはどの上位キャッシュにも書き込まれない。しかし、
各上位キャッシュが“ストアスルー”式のキャッシュで
あれば、1つのラインがその下位レベルのキャッシュか
ら追い出されるときは、それは各上位レベルのキャッシ
ュ及び主記憶装置に記憶されることとなる。 ディレクトリにおいてキャツシュヒツトがあって、TL
Bのミス及びDATのオペレーションが生ずる場合でも
、そのキャッシュのアクセスは。 DATオペレーション又はTLBオペレーションに関与
せずに(待たずに)前述と同様にして行われる。”l’
LBミスについてのDATオペレーションはキャッシュ
アクセスオペレーションと並行して行われる。上位キャ
ッシュはTLBが保持できる変換よりも多くのページか
らのラインを保持できる。というのは、少なくとも最上
位のキャッシュにおいて現に利用できるラインを含むペ
ージについて変換がそのTLBに存在しないことが多い
からである。CPUの要求に対してDAT及びTL B
が機能している間に、その同じ要求データはそれをイJ
°する最下位レベルのキャッシュからCPUに転送する
ことができる。 したがって、要求データはそれが利用できる最下位の(
最高速の)キャッシュでアクセスされる。 専用キャッシュレベルが2つの場合を例にしてこれを説
明する。1つのライン存在フィールド(Il’F)はそ
のディレクトリにおける各エントリに含まれる。これは
次のことを示すためである。 すなわち、■、1のヒツトがいつ生じたのかの判断を助
けろ目的で、もしあればどのL2部分(すなわち、L2
ディレクトリエントリに表示されたL2のサプライン)
がL1キャッシュのプロセッサにとって利用できるのか
を示すためである。各LPFはL2キャッシュにおける
各ラインについて複数のサブフィールドを有する。L2
の各サブフィールドは、そのアドレス指定されたL2ラ
インにおけるL2サプラインを表わす。このL2ライン
は■、■キャッシュにおけるL1ラインにコピーできた
ものであり、上記L2サプラインはL1キャッシュ上で
1つのし1ラインとなる。もしセットアソシアティブ式
のL1キャッシュを使用すれば、LPFもまた1つのL
lのビン番号を有する。 これは要求データを含むことのできるアドレス指定され
たLlのコングルエンスフラスにおけるセットアソシア
ティブなロケーションを選択するためである。このLl
のロケーションは、もし要求されたアドレスが共通ディ
レクトリ内で“ヒツト”すれば、その要求データを有す
るし1ラインを含むこととなる。共通ディレクトリが“
ヒツト″するためには、アドレスの“ヒツト″及び一意
的なLPFの“ヒツト”の両方が必要である。 この2つのレベルの専用キャッシュの例では。 各ディレクトリエントリ中のLPFはL1キャッシュに
おいて対応するコングルエンスフラスでみつかる関連す
るセットにそれぞれ対応する複数のセットから成る場合
がある。各LPFセットは複数ビットのフィールドを有
することができ、その1つのビットで、個々のL2サプ
ラインがLlのコングルエンスフラスに存するかどうか
を表わし、そのLPFセットにおける組合せ的な残りの
ビットで、個々のL2サプラインを含む特定のセットア
ソシアティブなL1ラインを表わす。 個々のL2サプラインについてのLPFはそのアドレス
指定されたLlのコングルエンスフラスの任意のセット
アソシアティブなラインを表わすことができ、このクラ
スにはそのL2サプライ゛ンがコピーされている(L2
サプラインは1つのL1ラインとなる)。L2サプライ
ンのコピーは。 L2キャッシュからL1キャッシュにおいてLRllで
選択されたセットアソシアティブなロケーションへのサ
プラインの取出しによって行われる。 他の実施例では、1つのCPUについて3つの専用キャ
ッシュL1、L2、及びL3が存在する場合、共通ディ
レクトリエントリにおけるLPFは基本的にはL2及び
LlのサプラインのロケーションならびにL3のサブサ
プラインのロケーションを表わす、この例ではL3が最
上位である。 共通ディレクトリの各エントリにおけるLPFは、L2
ラインのロケーショ・ンに呪に存するそのL3サプライ
ンの存在を表わす一連のLPFサブサブフィールドする
。これらは、L3からL2へのサプラインの取出しの際
にセットされる。この取出しには選択されたL3サブフ
ィールドを選択されたL2ラインのロケーションにコピ
ーすることが含まれる。各LPFサブサブフィールド2
存在フラグビットを有し、このフラグで、そのL3サプ
ラインがL2にコピーされたか否かを示す。各LPFサ
ブサブフィールド2セツ1−アソシアティブを有し、こ
れで、アドレス指定されたL2のコングルエンスフラス
におけるセットアソシアティブなロケーションを示す。 各LPFのL2セットアソシアティブサブフィールドは
さらにLlに存在するそのL3サブサプラインに対応す
る一連のL3アソシアティブサブサブフィールドを有す
る。 各1、I) FサブサブフィールドはL1存在フィール
ドを有し、これで、L3サブサブフィールドがLlにコ
ピーされたかどうかを示す、各LPFサブサブフィール
ドはさらにL1セットアソシアテイブフラクビットを有
し、これで、アドレス指定された!、1のコングルエン
スフラスにおけるセットアソシアティブなロケーション
を示す。したがって、各r、3サブサブフイールドはI
、3サブサプラインの倍数であり、そのうちの任意の1
つをLlの1−)のラインロケーションにコピーできる
。もしL3サブサブフィールドの設定が要求されたサブ
サプラインがLlになくL2あることを示したときは、
そのサブサプラインはL3からではなくL 2から取り
出される。というのは、CPUの要求したデータを最も
速くアクセスできるのはこのやり力だからである。すな
わち、L3からL2へのコピーは異なるキャッシュミス
について早い時点でなしつる。しかしながら、L3サブ
サブフィールドが、要求されたL3のサブサプラインが
LlにもL2にもないということを示したときは、その
サブサプラインはL3がらL2及びL2の両方に取り出
される。 専用キャッシュのレベル数は理論的にはもっと増やすこ
とができる。ただし、専用キャッシュのレベル数が増え
るにつれて、LPFの複雑さは指数的に増大する。 本実施例によれば、同じCPUの要求についてTLBの
変換アクセスを並行して行いながら、切換可能な論理ア
ドレスを使ってCPUは自身のキャッシュをアクセスす
ることができる。 共通ディレクトリキャッシュシステムを適切に機能させ
るため、シノニム及び相互間合せディレクトリ(S/X
I)構成を設ける。シノニムディレクトリ(S)は各C
PUごとに設けられ、そのCPUが多重プロセッサ(M
P)システムに設けられる場合は相互間合せディレクト
リ(XI)として機能する。TLBミスの際、TLBか
ら出力される実/絶対アドレスは1つのコングルエンス
フラスをみつけるためS/XIディレクトリをアドレス
指定するのに使用される。このコングルエンスフラスは
セットアソシアティブなエントリを含む可能性のあるも
のである。S/XIディレクトリにおける各エントリは
共通ディレクトリにおける1つのエントリに対応するが
、(S/XI)のコングルエンスフラスはキャッシュデ
ィレクトリのコングルエンスフラスには対応しない。と
いうのは、キャッシュのコングルエンスフラスは論理ア
ドレスによってマツピングされ、一方、S/XIディレ
クトリのコングルエンスフラスは実/絶対アドレスによ
ってマツピングされるからである。 r、A及び実/絶対アドレスが関連している場合(キャ
ッシュミスで普通に発生する)、共通ディレクトリにお
ける異なるコングルエンスフラス(LAでマツピングさ
れるもの)及びS/XIディレクトリにおける異なるコ
ングルエンスフラス(実/絶対アドレスでマツピングさ
れるもの)は異なるディレクトリにおいてみつけること
ができる。そうして、これらのディレクトリの各々にお
ける直接的に関連するセットアソシアティブなエントリ
が、個々のアドレスの上位ビットを使って。 個別的にアドレス指定されたコングルエンスフラスにお
けるセットアソシアティブな比較によってみつけられる
。 ところが、絶対アドレスが既知で対応するLAがわから
ない場合、又はその逆の場合がある。これは、シノニム
要求及びX1要求の場合である。 本実施例においてビン番号の概念はこの問題の解決のた
めに用いられる。(この概念は、次のような問題を解決
するのにも用いられる。すなわち。 使用中のLAに実/絶対アドレスが関与しておらず、追
出されるLIエントリに対応するL2サプラインをみつ
けるのにL2エン1−りのビン番号を使用するような、
LLからL2への追出しを生ぜしぬるセットアソシアテ
ィブなロケーションの問題である。) S/XIディレクトリにおける実/絶対アドレスを使っ
てS/XIのヒツトエントリがみつかった後、要求され
たL2ラインをみつけるため(S/XI)ディレクトリ
でSのヒツト又はXIのヒツトを有する要求されたセッ
トアソシアティブなエントリをみつける目的で、(S/
XI)エントリの各々にビン番号を設ける。論理アドレ
スの中位のフィールド及びS/XIエントリのビン番号
フィールドは、コングルエンスフラスと、Sのヒツト又
はXIのヒラ1への有するS/XIディレクトリと関連
するCPUの共通ディレクトリにおいて要求エントリが
存在するセットアソシアティブなロケーションとを定め
る。ヒツトしたS/XIディレクトリについてのビン番
号及びCPUm別子で、共通ディレクトリにおける正し
いL2のセットアソシアティブなエントリをみつけるこ
とができる。そのエントりからのLPFはXIで誘導さ
れる迫出しに関してLIにおける要求エントリをみつけ
るのに使用することができる。そうして、このL 13
 Fのピッ1−を調べて、要求データを含む次の下位レ
ベルのキャッシュにあるデータラインをみつける。 シノニムのヒツトと相互問合せのヒツトとの違いは、そ
の特定の要求をしたCPUと関連するS/XIディレク
トリにおいてヒツトが生じたのか、又は別のCPUに関
連するS/XIディレクトリにおいてヒラ1−が生じた
のかによって決まる。すなわち、前者ならシノニムのヒ
ツトであり、後者なら相互問合せのヒツトである。単一
プロセッサ(UP)では、CPUの要求に対してシノニ
ムディレクトリとして働き、チャネルの要求に対しては
XIデイレクトりとして働くただ1つのS/XIディレ
クトリが存在する。 要求元のCPUと関連するS/XIディレクトリにおけ
るシノニムのヒツトの場合、要求LAにおける弁別ピッ
ト(たとえば、ビット24)で、検出されたL2ライン
における特定のLIエントリをみつける。S/XIディ
レクトリにおける相互問合せのヒツトの場合、そのヒツ
トを受けたCPUのキャッシュにおいて検出されたL2
ラインにおいてヒツトした全てのLIラインの無効化又
は追出しが要求される。無効化は、読取り専用又は排他
的なキャッシュに保持された不変のラインが排他的な要
求でヒツトした場合に生じる。また。 追出しは、変更されたLIが排他的な要求でヒツトした
場合に生じる。読取り専用の要求でヒツトしたLIライ
ンについては、無効化又は追出しは要求されない。これ
は、そのLIラインが読取り専用キャッシュに保持され
ていたか又は排他的なキャッシュに保持されていたかを
問わない。ただし、もし排他的に保持されていた場合は
、読取り専用状態に変更される。 ここで本明細書中で使用する用語及び略語について説明
しておく。 AA:絶対アドレス AAは接頭部ハードウェアを具備するCPUによってR
Aから形成される6複数のAAは多重プロセッサにおい
て使用される。 ACFニアドレス制御フィールド ACFはCPUによって供給されるフィールドで、CP
Uが実アドレスを要求しているときはゼロの値を有し、
CPUが仮想アドレスを要求しているときは非ゼロのS
TO値を有する。 アドレス連結 たとえば“STO(5〜19)+LA(1〜11)”と
いう表現は、STOの15ビツトとLAの11ビツトが
連結されて26ビツトの2進値を形成することを意味す
る。 へGニアドレス生成  ゛ 有効アドレスを生成するためのアドレス演算。 通常はオペランドアドレスについての基底、指標及び変
位の和である。 BCE :バツファ制御エレメント BCEはC,P Uの一部であってキャッシュアレイ、
そのディレクトリ、TLB (又はDLAT)及びその
制御論理を含む部分である。 ビン(bin)番号 共通キャッシュディレクトリにおける1つのL1エント
リに対応するし1制御アレイの各エントリにおける1つ
のフィールド。これで、そのL1ラインを含むL2ライ
ンのその部分を有する共通ディレクトリにおいてセット
アソシアティブなロケーション(A、B、C又はD)を
みつける、ビン番号を使って、変更されたL1ラインか
らL2キャッシュへの追出しを制御する。たとえば、L
1キャッシュミスの後、又は他のCPUからの相互間合
せ要求の後である。 キャッシュ CPUに近接して配置された高速のバッファであり、主
メモリから最も最近に取り出された命令又はオペランド
を含む゛′データライン”を記憶する。キャッシュに取
り出される1つのライン(又はブロック)は、CPUの
要求した主メモリからの命令又はオペランドのすぐ近く
のアドレスの多数の命令又はオペランドを含む。パ専用
キャッシュ”は、多重プロセッサシステムにおける相互
間合せ要求の場合を除き、1つのCPUに専用されるも
のである。 C10:追出し     。 キャッシュから追い出されたライン CMP :比較 ハードウェアによる比較回路。 DAT:直接アドレス変換 DATはプログラム状況ワード中のビット5によって、
そのオン/オフが切り換わる。 LA:論理アドレス CPUによって供給される任意のアドレス。RA(すな
わち変換不能)又はVA (すなわち変換可能)である
、これは、PSWにおけるDATモードピットの状態に
より制御できる。 LPF ニライン存在フィールド 共通ディレクトリの各エントリにおけるフィールドであ
って、そのエントリによって表わされるL1キャッシュ
のロケーションを示すもの。 L RU (least recently used
)LRU及びP L RU (partitioned
 1eastrecently used)アルゴリズ
ムで、キャッシュディレクトリに現に存しない新たなラ
インのためのスペースをつくるためどのデータラインを
追い出すべきかを判断する。追い出されたラインについ
てのキャッシュディレクトリエントリは無効化されて、
そのエントリは新しいライン用として再び割り当てるこ
とができる。 RA:実アドレス CPUは変換を使用しないDATオフのRAを供給する
。CPUはDATオンのVAを供給する。 これが変換されてRAが生成される。 SA:記憶装置アドレス 主記憶装置においてオペランド又は命令についてCI)
 Uによって発行されるアドレスSTO:セグメントテ
ーブル源 STOのビットは1次及び2次の記憶装置モードでCR
I又はCR7(ビット5ないし19)から得られる。 T RA D :変換されたアドレス 現在又は過去のDATオペレーションの結果としてDA
T又はTLBから得られる。 TLB:変換索引緩衝機構(DLAT:ディレクトリ後
読みテーブルと呼ばれる場合もある)UTRAD:変換
されないアドレス CPUによって要求された有効アドレス、VA又はRA
である。 vA:仮想アドレス CPUはDATオンのVAを生成する。 汎用データ処理システムの性能を落とす主な原因は、い
わゆる゛記憶装置のペナルティ′″である。 これは1次のような場合に生ずるものである。すなわち
、命令又はオペランドデータの取出しのために主メモリ
へのアクセスタイムが数マシンサイクルよりも長くプロ
グラムを通常に実行する場合である。記憶装置のペナル
ティは仮想記憶を用いる汎用データ処理システムではコ
スト的にもますます不利になる。というのは、仮想アド
レスから実アドレスへの直接アドレス変換(DAT)を
遂行するために使用されるテーブルをアクセスするのに
主記憶装置の参照が何度も必要となるからである。DA
Tを行った後、結果としての実アドレス(RA)はCP
Uに対し既知となり、主メモリにおける記憶/取出しオ
ペレーションを処理することができる。 記憶装置のペナルティを減するためのメカニズムは様々
考え出されてきた。よく使われるのは次のものである。 すなわち、キャッシュ、キャッシュディレクトリ、及び
TLBである。これらのメカニズムは″参照の局所性”
の原理と呼ばれる十分に確立された原理に基づいている
。簡単にいえば、いったんデータのエレメント(命令又
はオペランド)がメモリから要求されれば、1ラインの
データはそのデータエレメントを含んでアクセスされる
ということである(その他のデータエレメントはそのエ
レメントのすぐ近くのアドレスのところに存するのであ
る)。したがって、その他のデータエレメントはCPU
によってすぐに参照される可能性が高い。 1つのデータラインが主メモリからキャッシュに入れら
れると、そのライン内に含まれるデータエレメントにつ
いての次の参照はキャッシュで行われるので、記憶装置
(主メモリ)のペナルティを避けることができる。 従来のキャッシュシステムは2以上のレベルの記憶階層
で設計されているものがある。たとえばLl及びL2に
よるキャッシュ階層構成が使用されている。そのような
階層においては、CPUはまず、Llのディレクトリに
おいてCPUの要求したデータをみつけようとする。そ
のデータがLlにないときは(すなわちLlのミス)、
cpuはL2においてそのデータをみつけようとする。 L2でミスが生じると、主メモリ (L3)からの取出
しが必要となる。L2でヒツトが生じれば。 記憶装置のペナルティはL2ミスの場合に比べて大幅に
減る。 ここでは2つの実施例を示す、これら2つの実施例の違
いは、ディレクトリにおけるエントリに表示されたアド
レスが変換可能なものとそうでないものとについてその
エントリに差異を設ける方法にある。第1の実施例(第
1図ないし第3図)は各エントリにおいてゼロ又は非ゼ
ロのアドレスフィールド(ACF)を用いて(ここで非
ゼロのACFはSTOの値である)変換可能なアドレス
と変換不能なアドレスとを区別する。第2の実施例(第
11図及び第12図)は、C,PUの現PSW中のD 
A 1”オン/オフ・フィールドを各エントリのアドレ
ス制御フィールド(ゼロ又は1の値)としてs”roの
他に用い、変換可能なアドレスと変換不能なアドレスと
を区別する。 これらの実施例は両方とも、CPUに専用の2レベルの
キャッシュにあるデータをアクセスするため、“共通キ
ャッシュディレクトリ(eCD)”を有している。この
CCDは、どの“ラインデータ″が現にLL及び■、2
の両方に存在しているのかを“覚えて″いるものである
。CODが有するのは、以前に要求されたCPUのアド
レスについての変換されないアドレスビットだけである
。要求データを有するラインがLl又はL2にあるかど
うかをみるため、CCD内の“局所的な探索”がハード
ウェアで実行される。もしそうなら、CODはアドレス
指定されたオペランドをLL(Llで利用可能なら)か
らCrt、Tにゲートする信号を生成し、そうでないと
きは、アドレス指定されたオペランドをL2(L2で利
用可能なら)からCPUにゲートする信号を生成する。 共通キャッシュディレクトリは、CPUが変換可能及び
変換不能な論理アドレスのタイプの両方を要求しつる従
来のキャッシュ機端に共通した問題をなくすことができ
る。たとえば、TLB及びLlは、これまで、変換され
ない論理アドレス(仮想アドレス又は論理アドレス)の
ビットでアドレス指定されるアレイを具備したもので、
またL2は変換された論理アドレス(実アドレス又は論
理アドレス)のビットでアドレス指定されていた。しか
し各レベルのキャッシュは、これまで、変換された(実
/絶対)アドレスフィールドだけを代表的に含むキャッ
シュディレクトリを有するものであった。キャッシュの
ヒツトは、要求された論理アドレスが実アドレスでない
ときは変換可能な論理アドレスが完成された変換を有す
る後でしか決定できなかった。この場合、TLBは)<
イバスされていた。したがって、T L B内の比較及
び選択の論理は、仮想アドレスに基づいており、L1キ
ャッシュディレクトリ内(及びL2キャッシュディレク
トリ内)の比較及び選択の論理は。 アドレス変換が完了するまで待たねばならなかった。 キャッシュのヒツトを判断するのに同じアドレスの変換
された及び変換されない形式の両方を必要とするこの従
来のやり方は、仮想アドレスと実アドレスとを″゛分類
″するため、及びそれに応じてキャッシュシステム内の
アドレス指定経路を変更するための従来のハードウェア
を非常に複雑にしていた。 本発明の共通キャッシュディレクトリ(eOD)は交換
or能な論理アドレスの形式は1つだけであり、それは
、Ll及びL 2の両方をアクセスするためのCPUの
要求した全てのアドレスについて変換されない形式であ
る(それが変換可能であると否とを問わない)。共通キ
ャッシュディレクトリは、■、1ディレクトリ、1.2
デイレクトリ、及び’l’ l−113の一定の機能を
組み合せたものである。 天際のタイプとは関係なく各論理アドレスの要求された
形式は、変換することなく(1)共通キャッシュディレ
クトリのエントリ内におけるキャッシュオペレーション
、及び(2)共通キャッシュディレクトリ、LLキャッ
シュ、L2キャッシュ及びL1制御アレイをアドレス指
定するためのキャッシュオペレーションの両方において
一律に使用される。可変アドレスについてのこの単一の
形式によれば、キャッシュのアドレス指定機構は簡単に
なり、またアレイが統合整理されることでハードウェア
の経済性も向上し、さらに、重要なキャッシュ経路にお
けるハードウェアも減らせるので、キャッシュのサイク
ルタイムが減る。 第1図において、変換可能及び変換不能なアドレス間の
切替のための回路を示した。アドレスのタイプはアドレ
ス制御フィールド(ACF)28に示される(これは論
理アドレスレジスタ30と関連している)。非ゼロのA
CF値で、レジスタ30に変換可能なLAがあることを
示し、ゼロのACF値で、変換不能なLAがあることを
示す。 変換されないアドレスだけを表示するという独特の構成
は、共通キャッシュディレクトリに設けられる。キャッ
シュのアクセスからアドレス変換をなくしたことで、L
1キャッシュ及びL2キャッシュのアクセス権を獲得す
るCPUからの実アドレス及び仮想アドレスの両方につ
いての高速な経路が提供される。L2のアクセスはLl
のアクセスと同時に始まり、もし要求データがL1キャ
ッシュから取得できないときはL2のアクセスが完了す
る。 第1図は、変換されないアドレス及び変換されたアドレ
ス(実アドレス及び仮想アドレス)を区別する共通ディ
レクトリに設けられる特独な構成を示す図である。アド
レス制御フィールド(ACl・゛)は、レジスタ30に
入っている要求論理アドレスが変換されたアドレスなの
か変換されないアドレスなのかを示すようにセットされ
る。ACF28は、ANDゲート21,22.23又は
24の出力によってセットされる複数ビットのフィール
ドである。ACFがゼロだと、レジスタ30にある論理
アドレスが変換(RAまたはAA)を要求しないことを
意味し、ACFが非ゼロだと、変換の要求を意味する。 詳述すれば、ANDゲート23及び24は全ゼロ信号源
19(これはCPUのマイクロコードでもよい)から全
ゼロ信号を受け取る。これらのλNDゲートは全て、呪
にCPUの制御下にあるプログラム状況ワード(psw
)の1以上の制御ビットによって制御される。これらの
中には、DATモード制御ビット5.拡張制御(EC)
モードビット12、及びアドレス空間制御ビット16も
含まれる。PSWとこれらのビットを含むその内容はマ
ニュアル、” I B Mシステム/370の動作原理
” (GA22−7000−8)に記載されている。 ECモードビット12はANDゲート24が全ゼロ信号
を出力するか否かを制御する。ECモードビット12が
オフで基本モードを示すとき(システム/360のオペ
レーションと同じである)、ANDゲート24が全ゼロ
信号を出力する。ANDゲート23は、ECモードビッ
ト12がオンのとき(システムがシステム/370のア
ーキテクチャで作動していることを意味する)、全ゼロ
信号を出力する。さらに、1)ATモードビット5は、
ゲート23のオペレーションを制御するが、ゲート23
への反転入力のため、ビット5がオフ(DΔ=1’のオ
フを意味する)のとき、ゲート23が全ゼロイ、1号を
出力する。 ケー1−21及び22は、レジスタ30にある、変換を
用いる論理アドレスを示すためのゼロでない値の信号を
供給する。これらは、主メモリにおいてセグメントテー
ブル及びページテーブルの使用を要求するアドレスであ
る。ゲート22は主メモリにおけるセグメントテーブル
を捜すためのセグメントテーブル源(sTo)を出力す
る。STOは、制御レジスタ(eRY)からANDゲー
グー22に供給される。これは、DATモードビット5
がオン、ECモードビット12がオン、及びアドレス空
間制御ビット16がオフで付勢される。 ΔN+)ゲート2[は、DATモードビット5がオン及
びアドレス空間制御ビット16がオンのとき、CI乏7
からSTOを出力する。 ANDゲート21ないし24の出力はドツトオアされて
ACFレジスタ28への1つの信号を供給する。これは
STOを表わすことができるものであるが、それが全て
ゼロなら(関連する論理アドレスが変換を使用せずした
がって実アドレス又は絶対アドレスであることを示す)
、この信号はSTOを表わさない。レジスタ30にある
関連する論理アドレスは有効論理アドレスで、これは、
オペランドアドレスについて計算された形である。 第2図は、1.、Aレジスタ30への選択的な入力を示
す図である。このうち、CPUからの論理アドレス入力
(入力ゲートピット1〜31)はこれまで説明したオペ
レーションにおいて用いられる。 レジスタ30への他の入力はシノニム及び相互間合せデ
ィレクトリ回路によって供給される。この回路は、ロー
カルのCPUによって要求されたデータを取得するため
にLlがシノニムエントリをアクセスすることと、他の
CPUの要求時に無効化及び追出しを行うことの両方を
制御する。 フィールド41ないし49の全ては、−Mのマシンサイ
クルの間に、第3図のディレクトリ60、キャッシュ6
3、制御アレイ61、TLB62、L 2キャッシュ6
4.LRU回路67、及びLRUIIIl路68へ同時
にゲートアウトされる。 第:3図は、第1図からの信号出力を受け取るものであ
る。第3図は、単一のディレクトリ60を持っており、
これはL1キャッシュ63及びL2キャッシュ64の両
方のアクセスを制御するのに共通に働く。これらのキャ
ッシュは、プロセッサの出した記憶装置要求の間の競合
を回避するという利点を持っている。共通キャッシュデ
ィレクトリ60はL1キャッシュ63及びL2キャッシ
ュ64の両方についてのディレクトリとして働くので、
個別的なキャッシュディレクトリの必要性がなくなる。 第314(又は第12図)におけるキャッシュは1例で
あるが、これは次のようなものである。 L1キャッシュ63: 64キロバイト 4ウ工イセツトアソシアテイブ式 %式% (L2、L3.CPUへのバス) ″スイアイン″式 %式%: 4ウ工イセツトアソシアテイブ式 1ライン256バイト 1つのL2ラインにつき2つのL1ライン64バイトデ
ータバス (Ll、L3.CPUへのバス) “ストアスルー”式 第1図、第2図及び第3図に示した実施例は共通キャッ
シュディレクトリを具備するもので、この共通キャッシ
ュディレクトリにおける各エントリは第5図に示す苅き
例示的な形式を有する。第11図及び第12図に示す実
施例は、第14図に示す如き例示的な形式を有する各エ
ントリを持つディレクトリ160を具備している。 第1図に示す特定の出力フィールドは第1図の実施例に
ついて設けられる。これは、アドレスのサイズ、キャッ
シュのサイズ、共通ディレクトリのサイズなどに応じて
容易に変更できる。したがって、第1図では、レジスタ
30に定められたフィールドは第3図のディレクトリ6
0、キャッシュ63.及びキャッシュ64における特定
サイズのアレイを収容するものである。バス41.43
及び46は、その比較フィールドでディレクトリ60に
おけるL2ヒツトを制御するのに使用される。選択フィ
ールド:32はディレクトリ60をアドレス指定するた
め、ライン46を介して出力される。その中に特定のコ
ングルエンスフラスを選択するためである。ライン41
を介するA CF出力及び比較フィールド43もまた、
そのディレクトリにおけるL2ヒツトを判断するためも
しあればそのコングルエンスフラスにおけるエントリ(
A、■3、C1又はD)を選択する目的で、共通ディレ
クトリ60の比較部に設けられる。LPF選択フィール
ド33は、L2ヒツトと判断されたときにL1ヒツトが
存在するかどうかを判断するため、ディレクトリ60に
ライン49を介して供給される。 第5図は組み合わされたディレクトリエントリの各々に
おけるフィールドを表わす図である。これらのフィール
ドは次のようなものである(なお、図中のかっこ内に示
す数字はピッ1〜数である)。 LRUフィールド: そのエントリによって表わされるL2キャッシュにおけ
るコングルエンスフラス中のL2ラインについてのLR
U状況を表わすフィールドエフイールド: そのエントリによって表わされるL2ラインの無効/有
効状況を表わすフィールド EXフィールド: L2キャッシュにおいてそのエントリによって表わされ
るL2ラインの排他的/読取り専用状況を表わすフィー
ルド C)Iフィールド: L2キャッシュにおいてそのエントリによって表ねされ
るL2ラインの変更/不変更状況を表わすフィールド CMフィールド: ■、2キヤツシユにおいてそのエントリによって表わさ
れるL2ラインが共通の又は専用の仮想アドレス空間の
うちの1ページの中に入っているかどうかを表わすフィ
ールド Actイ゛フィールド: このフィールドはそのエントリが実アドレスを表わすと
きはゼロの値を、そのエントリが仮想アドレスを表わす
ときは非ゼロのSTO値を有する。このフィールドはC
PUの要求から導出される。エントリはそのCI−’ 
Uの要求から生成されたもので、ディレクトリの比較回
路によって使用される。 LAフィールド: このフィールドは論理アドレスの上位ビットを含む。な
お、エントリはディレクトリの比較回路によってこの論
理アドレスから生成されたものである。 LPFフィールド: 各ディレクトリエントリにおけるライン存在フィールド
は、もしあればどのL2ラインの部分がL1キャッシュ
内に存在するのかを示すための6ビツトを有する。本実
施例では各LPFのビットは次のように定義されている
。 ビット位置 ビット名      LPFの機能l  
    P    L2ラインのバート#1についての
存在ビット。 2blL1キヤツシユにおけるL2ラインの3    
  b2    バート#1の位置をbl及びb2がコ
ード化する。 4      P    L2ラインのパート#2につ
いての存在ビット。 5      bl    LlキャッシュにおけるL
2ラインの6     b2    パート#2の位置
をbl及びb2がコード化する6 ′“排他的″な割振り及び制御について選択されたデー
タの単位はこれらの実施例における1つのL2ラインで
ある。 LRU67は、これらの実施例の各々においてアクセス
される各ディレクトリエントリのL2・LRUフィール
ドの内容を生成する。L2・LRUフィールドは1次の
場合に、L2のコングルエンスフラスの全てのエントリ
が更新される。すなわち、そのクラスのエントリがどれ
か1つでもアクセスされた場合である。L2ミスがディ
レクトリ内で生じたときは、L2キャッシュへ入れられ
た新しいデータラインを表わすよう、新しいエントリが
ディレクトリ内に生成される。キャッシュミスの間1選
択されたコングルエンスフラスにおけろ全てのフィール
ドを検査して、ミスの発生したCPUの要求について生
成すべき新しいエントリを受け取るため割り当てるべき
エントリを捜す。 このようにして、LRUアルゴリズムで、階層において
主メモリ(L3)に“追い出す″ことが必要となり得る
ディレクトリエントリを決定する(これは、新しいエン
トリの内容をディレクトリに書き込む前にこの新しいエ
ントリ用のスペースを作るためである)。L2キャッシ
ュから追出しが要求されるのは、L2がストアイン式キ
ャッシュとして動作する場合だけである。もしL2がス
トアスル一式キャッシュであれば、新しいエントリにつ
いてのLRUの選定の後に追出しは全く必要ない。 第4図は共通キャッシュディレクトリを示す図で、ここ
には、4ウエイのセットアソシアティブ式フングルエン
スゲラスのうちの選択された1つが1例として示されて
いる。ディレクトリ60における比較機構は4つの比較
回路71AないしDとして図示されており、それぞれ1
選択されたフングルエンスゲラス中の4つのエントリの
各々と。 ACFフィールド及びLAフィールド1〜13とを比較
する。各比較回路71は副比較回路72及び73を含み
、これらは組み合わされてAND回路74を構成する。 AND回路74が1つの出力信号を供給する場合、その
エントリがキャツシュヒツト(比較一致)を有すること
を意味する。 AND回路74が1つのフングルエンスゲラスの選択に
応答して出力信号を供給しない場合、そのエントリがキ
ャツシュヒツト(比較不一致)を有しないことを意味す
る。ACF値がゼロのときは(eI)Uの要求が変換不
能アドレスであることを意味する)、比較一致を供給で
きるよう、ディレクトリエントリはゼロのACF値を有
していなければならない。A CF値がゼロでないとき
は(ACFがSTOであり、CPUの要求が変換可能ア
ドレスであることを意味する)、比較一致を供給できる
よう、同じ非ゼロのACF値を有していなければならな
い。選択されたフングルエンスゲラスにおいてL2キャ
ツシュヒツトがあれば、AND回路74AないしDの出
力信号が供給される。 AND回路74の反転された出力を受け取るAND回路
80によって、第4図においてL2ミス信号が生成され
る。 このようにして、キャッシュディレクトリの各比較p1
路は、現在のACF信号の制御の下で次のものの間に一
致が生ずるかどうかを判断するために自動的に機能する
。すなわち、(1)変換可能なLAとエントリ表示され
た変換不能なアドレス(UERAD)との間、(2)変
換可能なLAとエントリ表示された変換可能なアドレス
(TERAD)との間、(3)変換不能なLAとUER
ADとの間、又は(4)変換可能なLAとTERADと
の間である。本実施例では、比較(1)又は(2)は、
たとえ比較されるLAの値が等しいとしても不一致を宣
言することが要求される。比較されたLAの値が等しい
場合に、比較(3)又は(4)だけが一致の宣βを行う
ことができる。したがって、要求されたLAと1選択さ
れたフングルエンスゲラスにおける各TERADとが異
なる変換特性を有するときは、これらが一致するかどう
かとは関係なく。 L2キャッシュミスと判断される。 L2キャツシュヒツトと判断されたときは、ディレクト
リ60は、LLキャツシュヒツトが存在するかどうかを
必ず判断しなければならない。第3図において、L1キ
ャツシュヒツトは、そのAND回路74の出力でL2ヒ
ツトが判断された場合にL11ヒツト断回路75によっ
て判断される。 判断回路75は第1図からのLPF選択フィールド33
(このLPFフィールド33はライン49を介して第4
図のブイレフ1−りで使用される)を使用してL1キャ
ツシュヒツトが存在するかどうかを判断するのに必要な
LPFの部分を捜す。もしL1ヒツトが存在すれば、ラ
イン47を介して供給されるLAピッ1−18〜25に
よってL1キャッシュにおいて現にアドレス指定されて
いるフングルエンスゲラス内の4つのデータラインのう
ちの正しいデータラインを選択するため、4つのI、1
キャツシュヒツト信号ラインA、B、C,又はDのうち
の1つを介して信号が出力される。要求されたLlのフ
ングルエンスゲラス内における4つのデータラインA、
B、C1又はDのうちの活切化された1つはこれで選択
され、要求されたハスのQt位(たとえば、4つの4倍
長ワード)が、要求されたl、1データとして、データ
バスを介してCI) Uに送出される。 かくして第4図において、各回路75はゲート77.7
8とデコード回路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)のうちの特定のし1データラインを決定する。 もしディレクトリ6oの比較オペレーションで、選択さ
れたコングルエンスフラス中にディレクトリエントリに
ついて不一致しかみつからないときは、L2キャツシュ
ヒツトは存在しない、したがってL2キャッシュミスが
宣言される。これは第3図のTLB62の出力ゲートに
知らされて、ミスしたL2ラインの取出しについてRA
 (UPにおける)又はAA (MPにおける)をTL
Bから主メモリに送ることが制御される。L1ミス信号
は、デコーダ78の反転出力を受け取るAND回路81
によって第3図において生成される。 第8図はL1キャッシュ及びデータライン選択回路を示
す図である。Llの各データセルは、この例では、64
バイトのデータラインを有することができる。そのセル
選択ゲート82は入力ラインA、13、C1又はDのう
ちの1つの付勢によって選択されたフングルエンスフラ
ス中の1つのセルを選択する。これらの入力ラインはO
R回路86A、B、C,又はDのうちの1つの出力によ
って活動化されるもので、またこれらのOR回路は。 LLヒツト選択信号A、B、CもしくはD又は第3図及
び第6図におけるL1制御アレイ61からの追出しの選
択されたビン番号の出力によって付勢される。セル選択
ゲート82は1選択されたデータラインから2つのタイ
プの出力を供給する。 そ九らは完全なデータラインと、CPUによって要求さ
れているそのライン中のデータ単位である。 完全な1データラインは、それがL2キャッシュ及び主
メモリ(L3)に追い出されたときに要求される。この
転送は連続する2つの64バイトブロツクで行われる。 これらのブロックの各々はLAビット18ないしL25
を使って別々のL1サイクルを必要とする。選択された
データライン中のデータ単位はそれがCPUによって要
求された場合に必要となるもので、LAビット25によ
って、選択されたデータライン内においてアドレス指定
されデータバスを介してCPUに出力される。 第9図は、L2キャッシュ及びL22データライン択回
路を表わす図である。L2の各データセルはこの例では
64バイトのバス単位を含むことができる。セル選択ゲ
ート83は入力ラインA、B、C又はDのうちの1つを
付勢することによって、選択されたコングルエンスフラ
ス中の1つのセルを選択する。これらの入力ラインはO
R回路87A、B、C又はDのうちの1つの出力によっ
て活動化される。これらのOR回路は、第4図からのし
2ヒツト選択信号A、B、CもしくはD、又は第3図に
おけるL2・LR1J回路67からの追出しLRU選択
信号の出力によって付勢される。 セル選択ゲート83は選択されたデータラインから2つ
のタイプの出力を供給する。それらは完全な1ラインと
、CPUによって要求されたそのライン中のデータ単位
である。完全な1データラインはそれが主メモリ(L3
)に追い出される場合に必要となる。(L2キャッシュ
からの追出しはL2がストアインキャッシュ式として働
く場合にのみ必要である。もしL2がストアスル一式な
ら。 新しいエントリについてのLPUの選定の後、追出しは
全く必要ない。)選択されたデータラインのし1部分は
、データバスを介してL1キャッシュからL2キャッシ
ュへ追い出されるL1ラインを受け取るため1選択され
たL2データライン内でアドレス指定する必要がある。 L2の転送は64バイトのデータ単位で行われる。 第3図において、L2キャッシュミスが生じるまではT
LB62からの出力は全く必要ない、TL I3は、同
時にCI) Uが直前に要求した“実アドレス″(又は
“′絶対アドレス″)及び゛′仮想アドレス″′の両方
についてのページフレームアドレスを記憶する。TLB
のコングルエンスフラスは各CPUの要求した論理アド
レスのビット12ないし19によってアドレス指定され
る。そのクラスの全てのエントリはACF及びLAIな
いし11と比較される。もしこれらの比較が一致、要求
アドレスがT L 13に含まれていれば、そのページ
フレームの実アドレスがTLBからCPUにすぐにわか
って、主メモリがアクセスされるので、“長い経路″の
D A ”l”の待ちサイクルが回避される。 ’l’ L Bは、各々の要求LAアドレスごとに、そ
れが変換可能LA(すなわちVA)であるか変換不能L
A(すなわちAA)であるかを問わず1つのエントリを
生成する。ところで、1°LB62は真のTLBではな
い、何故なら、真のTLBは変換可能なアドレス(すな
わちVA)1.、か含んでいないからである。換言すれ
ば、TLB62中のエントリにおけるLAフィールドは
VAでもRAでもよい。しかし、TLB中の全てのエン
トリにおけるAAフィールドは、TLBが単一プロセッ
サにおいで存在するか又は多!1(プロセッサにおいて
存在するかに応じて、それぞれRA又はAA+、か含ま
ない。 ’I’ L 13アレイは通常のTLBオペレーション
で要求されるように、エントリごとに、有効論理アドレ
ス部を記憶する。′rLBの有効なエントリは、各々、
ページ絶対アドレス(AA)も含んでいる。 バス44を介する第1図からのLAビット12ないし1
9は1つのTLBのコングルエンスフラスを選択する。 さらに、バス41はACFフィールドを’I’ L B
 62に供給する。これは、通知されたA CI’とT
LBの各エントリにおいて表示されたA C[”との比
較を行うためである。キャッシュディレクトリ比較回路
と同様、TLB比較回路は、ACF信号の制御の下で次
のものの比較を制御するよう自動的に作動する。すなわ
ち、(1)変換不能なLAと変換可能なエントリ表示さ
れたアドレス(”l’ E RA D )との間、(2
)変換可能なLAと変換不能なエントリ表示されたアド
レス(UETRA D )との間、(3)変換不能なL
Aと変換不能なEAとの間、又は(4)変換可能なLA
と’r E RADとの間である6本笑施例では、比較
されるLAの値が等しい場合でも、上記のケース(1)
及び(2)については不一致を宣言することが要求され
る。比較されるLAの値が等しい場合、上記ケース(3
)又は(4)だけが一致を宣言することができる。 したがって、’J施例に基づく手法で検出される一致条
件の場合だけTLBヒツトと判断される。この一致条件
は1選択されたコングルエンスフラスにおける”1’ 
E RA Dがレジスタ30にある要求されたLAに等
しい場合に要求されたLAと各TERA l)が同じ変
換特性を持っているときだけである。要求されたLAと
1選択されたコングルエンスフラスにおける各TERA
Dとが異なる変換特性を持っている場合は、たとえ1“
E RA Dがレジスタ30にある要求されたLAに等
しいとしても、本実施例の下では、TLBミスと判断さ
れる。 L2キャッシュミスの際、”l’LBは1つのアドレス
(RA又はAA)を出力するにのアドレスはミスの発生
した1、2データラインを取り出すため主メモリL3に
送られる。TLBはこれを行う前に、要求されたLAに
ついて1つのエントリを含んでいなければならない。こ
れは1つのコングルエンスフラスを捜すためのLAと、
そのエントリを調べるためのACF及び上位のLAビッ
トとを使って探索される。選択されたTLBのコングル
エンスフラスにおける全てのエントリが不一致を生じた
ときは、要求されたLAはTLBにおいては全くエント
リを有さず、T L Bミスが宣言される。次に、TL
Bの[つのエントリが、その要求されたLAについて生
成される。しかし、このLAはそれがVAである場合に
のみ交換を要求し、この変換を実行するため、LAはC
PUのDAT回路に送られる。この場合、CPUはその
エントリを完成するためこの変換を持たねばならず、ま
た変換されたアドレス(このアドレスで、要求されたI
、2データラインを主メモリから取り出すことができる
)を有していなければならない。しかしなから、L3の
取出しが行われている間にCPUか別のL2キャッシュ
データラインを要求する別のアドレスを有する場合は、
CPUはTLBオペレーションと並行して作動すること
ができる。 第10図は、第3図の実施例で使用されるTLB回路の
詳細を示した図である。これは2ウ工イセツトアソシア
テイブ式のもので、コングルエンスフラスのうちの1つ
が現LAビット12ないし19によって選択される。こ
の回路は1選択されたコングルエンスフラスから出力さ
れる2つのセルをそれぞれ受け取るセル選択比較回路8
3A及びBを有する。セル選択比較回路83の各々は第
4図の回路71と内部的には同一のもので1回路83の
各々は出力信号をそれぞれのゲート84A又はBに供給
することによって、そのセル及び現CPUの要求からの
比較一致入力を検出し、アドレスバス86を介するその
セルから主メモリL3への絶対アドレス(A A)の送
出を付勢する。もしそれぞれの回路83が比較不一致入
力を受け取る場合は、ゲート84の付勢は行われない。 この場合、ゲート84A及びBのうちの一方しかAAを
バス86に出力できない。 T L BミスはAND回路87によって検知される。 このAND回路87は、セル選択比較回路83A及びB
の出力からの反転入力を受け取る。各TL13ミスはA
ND回路87によってゲート88に伝えられる。ゲート
88は第1図におけるPSWのビット5からの” D 
A Tオン″信号によって付勢され、これにより現仮想
アドレスが第10図中のDAT回路81に送られ、これ
がAAに変換される。TLBのLRU回路9oによって
、それぞれの書込み回路82A又は82Bが付勢される
。 これは、T L Bにおいてのミスの発生したVAにつ
いて新しいエントリを受け取るためにLRU回路によっ
て割り振られた’1’ L Hのセルに新しく生成され
たAAを害き込むものである。 ディレクトリ60がL2キャツシュヒツトを有する場合
は、たとえL1キャッシュミスがあったとしても、TL
Bの出力は全く必要ない。ディレクトリ6oにおける選
択されたコングルエンスフラスについてのセットアソシ
アティブな比較オペレーションで比較一致を有するL2
エントリがみつかったときは(すなわちL2ヒツト)、
Lllヒラ回路75によってL1ミスと判断される。L
1ヒツト回路75は、みつかったL2エントリにおける
(1) L P F選択フィールド及び(2)現論理ア
ドレスからのLAビットを使って、対応するL2ライン
(L2キャッシュディレクトリ64で利用できるとわか
っているもの)がL1キャッシュに存在するかどうかを
判断する。もしLAビットがゼロなら、L P Fフィ
ールドの最初の部分が選択される。LAビットが1なら
、LPFフィールドの第2の部分が選択される。LPF
フィールドの選択された第2の部分においては、■コビ
ットの状態が調べられる。そこでもしPビットが1なら
、要求されたデータはLlに存在し、LLヒツトが宣言
される。LPFビットb1及びb2は組み合せ的に調べ
られ、どのL1エントリ(A、B、C又はD)がL1ヒ
ツトであるかが判断される。L1キャツシュヒツトは4
つのラインAないしDのうちの1つを介してL1キャッ
シュ63に知らされ、要求データをそこから取得するた
め正しいLlがアクセスされる。この要求データはアド
レスビット18ないし25によって見出され、CPUに
送出される。 ■)ビットがゼロで、かつ、L1ミスが宣言されたとき
は(すなわち、L2ヒツトかつL1ミスの状態)、L1
ラインが現L2ヒツトラインから取り出されL1キャッ
シュにコピーされる一方で、そのラインにおける要求デ
ータがCPUに送られる。要求されたL1ラインを含む
52912部分はLAビット14ないし24によって見
出され、その部分(すなわち、64バイト)において要
求されたデータはLAビット18ないし25によってL
1キャッシュ63において見出される。 生成中のL1エントリに関する欠くことのできない補足
的な情報はL1制御アレイ61に記憶される。これはC
PUがLlでミスしたときになされる。新しいL1エン
トリ用のスペースを作るために1つのL1エントリがL
l・LRUによって選択されたときは、そのスペースに
存在するどんなエン1−りも(変更ビットがオンとなっ
ているもの)、L2に追い出さねばならず、L1制御ア
レイ61における論理アドレス(LA)フィールドが対
応するエントリをみつけるために必要とされる。L2ア
ドレスは、この制御アレイのLA14ないし17、及び
要求中のアドレスのLA18ないし25から形成される
。 L1キャッシュがストアイン式キャッシュであり、その
CPUが多重プロセッサに存在する場合があるので、他
のプロセッサ(たとえばチャネル又は別のCPU)が活
動化することにより、LLキャッシュ中の変更されたデ
ータラインの無効化又は追出しを要請する別の要求が生
じることがしばしばあるであろう、外部資源からのこの
ような要求にとっては、LL又はL2における対応エン
トリのロケーションはわからない、第3図及び第6図に
おけるL1制御アレイ61 (LLCA)はL1キャッ
シュ63に関して幾つかの機能をサポートする0通常の
L1キャッシュフラグ標識もその1つである。L2から
のし1ラインの無効化又は追出しやLl及びL2からの
L1ラインの無効化又は追出しを要請する各々の要求は
、その要求の必要なLAビットを送らねばならない。 LLljlllアレイ61中の各エントリのロケーショ
ンはL1キャッシュにおいて同様に配置されたし1ライ
ンに対応する。LICAエントリの内容はL1キャッシ
ュにおける対応データの状態を表わす。各LICAエン
トリの内容は第7図に示した。これは次のようなフィー
ルドを含゛む。 ■フィールド: そのL1ラインの無効/有効状態を表わすもの EXフィールド: そのエントリによって表わされるL1ラインの排他的/
読取専用の状態を表わすものC10LAフィールド: このフィールドは生成中のアドレスの論理アドレスのビ
ット12ないし17を含む。これらのビットは要求中の
アドレスのビット18ないし23と連結され、共通ディ
レクトリ及びTLBにおけるコングルエンスフラスをさ
がす。 ビン番号フィールド: このフィールドで1選択された共通ディレクトリのコン
グルエンスフラスにおけるアソシアティブセット(Aな
いしD)をさがす、Ll及びL2の対応エントリはいず
れかのキャッシュにセットアソシアティブセットで存在
しつる。 すなわち、ビン番号はLl中の1つのラインについての
L2におけるアソシアティブセットを示すものである。 CHフィールド: そのエントリによってあられされるL1ラインの変更/
不変状態を表わすもの、変更されたラインだけがどこか
のキャッシュに追い出される。 LRUフィールド; L1キャッシュの各コングルエンスフラス中の4つのエ
ントリについて、アソシアティブセットA、B、C又は
DのL RUエントリを表わすもの 単一プロセッサ(UP)の場合、一般にチャネルプロセ
ッサの形で他のプロセッサが存在することはあっても、
そのシステムにおいてローカルなCP Uは1つだけで
ある。多重プロセッサ(MP)の場合は、ローカルなC
PUに加えて他のCPUが存在し、各CPUは1以上の
チャネルプロセッサを含む場合がある。 ローカルなCPUが共通ディレクトリ60においてミス
の生ずる要求を起こすと、Ll・LRUは、LIC:A
において選択されたコングルエンスフラス中の対応する
■、ICAエントリをさがし、L2・LRtJは、共通
ディレクトリ6oにおいて選択されたコングルエンスフ
ラス中の1つのエントリをさがす、アクセスされたLI
CAエントリのおけるフィールドは、共通ディレクトリ
60において対応する共通ディレクトリエントリが生成
されたとき、生成される。これらの両アレイで、対応す
る無効CI)フィールドはオフにセットされ、対応する
変更(eH)フィールドはL1ラインが書込みアクセス
を受け取るときオンにセットされ、対応する排他的/読
取専用(E)ビットはL1ライン要求のタイプに応じて
セットされ(もしL1ラインがL2ラインにおいて排他
的なものなら、そのL2ライン全体が排他的状態にセッ
トされる)、上位のLAビット12ないし17は後でL
2キャッシュ及びTLBにおける対応エントリをみつけ
る際に使用できるようLICAにセットされ、L1キャ
ッシュの対応するロケーションのビン番号が共通ディレ
クトリエントリに挿入され、これらのエントリを含むコ
ングルエンスフラスを制御するLl及びL2のLRUフ
ィールドがそれぞれのLRU回路67及び68(そのコ
ングルエンスフラスにおける次のエントリの置換につい
ての選択を制御するための回路)によって更新される。 かくして、LICA61は、L1キャッシュにおいて変
更されたいずれかのエントリを正しいL2キャッシュの
ロケーションに追い出す、これは無効エントリがなくL
L・LRU回路が有効なエントリのうちの1つを選択し
なければならないような場合に生ずる。この場合、同じ
コングルエンスフラス内でLRUエントリがLRUによ
って選択され、これが追い出されることとなる。これは
。 まず、再割振りされたL1キャッシュエントリの内容を
L2キャッシュの対応するロケーションに記憶すること
によってなされる。この対応するセットアソシアティブ
なロケーションは、ビン番号と、対応するLAアドレス
のビット12ないし17からもともと得られたLICA
IC上リにおけるL2のコングルエンスフラス位置付は
フィールドとによって決定される。 Ll・LRUのエントリの割振りは、L1キャッシュミ
スがあり、かつ、全てのセットアソシアティブエントリ
がアドレス指定されたコングルエンスフラスにおいて有
効である(既に書き込まれたエントリと共に)とき必要
となる。エントリであられされたデータが変更されたも
のであるときは、LRUで選択されたエントリからのL
lの追出しが行われる。一方、そのデータが不変のもの
であるときは追出しは全く必要ない。 LRUによるLlの追出しは有効なL2キャッシュライ
ン中の対応するエントリへのものとなり。 L2がストアスル一式のときは主メモリL3/、のもの
となる。この場合、TLBは制御アレイからのLAビッ
ト12ないし17と要求アドレスがらのLAビット18
及び19とでアドレス指定される。追出しのロケーショ
ンにおけるディレクトリエントリは、追出しラインのL
3アドレス(AA又はRA)を判断するためのTLBの
比較を完了するのに必要なACF及びLAビット1ない
し11を供給する。新しい要求(%L1ミスを引き起こ
す)はLRUエントリに書き込まれる新しいエントリを
有することとなる。換言すれば、新しいエントリはLL
においてLRUの割り当てたロケーションに書き込まれ
ることになる。しかしながら、新しいエントリの吉:込
みの前に、古いエントリからの要求された追出しを行わ
ねばならない。 占いエントリ中の情報が主ねマドきによって@壊されて
しまうからである。本実施例はこの問題を次のように解
決している。すなわち、LAビット12ないし17及び
LLCAアレイからのビン番号を、LRUで選択された
エントリに対応するエントリに記憶することによってで
ある。古いLICAIC上リが新しいL1ラインのため
の新しいLICAIC上リで重ね書きされる前に追出し
についてのアクセスを行わねばならない。追い出される
L1エントリは追い出されるL2のコングルエンスフラ
スにおけるどこかのセットアソシアティブなロケーショ
ンに存在することができ、一方。 L1エントリはアドレス指定されたL2のコングルエン
スフラスのどこかのセットアソシアティブなエン1−り
でみつけることができる。 L+キャッシュラインの追出し又は無効化を引き起こす
他の原因は、(1)要求ラインがLICAの対応するエ
ントリによって変更されるものであると示されていると
き排他的に保持されたL2ラインについての別のCP 
Uからの相互間合せ(X■)要*と、(2)要求ライン
中のデータについてのナヤ不ルプロセッサからの相互間
合せ(xB要求である。 H1互問合せディレクトリは、別のCPUによるキャッ
シュラインの追出し又は無効化についての可能な要求を
判断するのに用しする。 第16図に示すシノニム又は相互間合せディレクトリ(
S/XI)構成は多重プロセッサにおける各CPUに関
連するS/XIディレクトリを提供する。各S/XTデ
ィレクトリは関連するCPUにおける共通キャッシュデ
ィレクトリについてのシノニム(S)ディレクトリであ
る。各S/XIディレクトリは多重プロセッサシステム
において設けられた全ての他CPUについて、及び全て
のチャネルについての相互間合せ(XI)ディレクトリ
でもある。 第16図において、複数のシノニム/相互間合せ(S/
XI)ディレクトリ230−1ないし230−Nは多重
プロセッサシステムにおける個々のCPUIないしNに
対応する。単一プロセラサシステ11の場合は、ディレ
クトリ230−1だけ設ける。 L2キャッシュミスの際、関連するTLBから出力され
た実/絶対アドレスを用いて全てのS/XIディレクト
リをアドレス指定し、各S/XIディレクトリにおける
コングルエンスフラスをみつける。各フングルエンスフ
ラスには複数のセットアソシアティブなエントリが含ま
れている。 任意のS/XIディレクトリ230における各エントリ
は関連する共通キャッシュディレクトリに対応するエン
トリを持っているが、S/XIのコンフルエンスクラス
はキャッシュディレクトリのコングルエンスフラスには
対応しない。というのは、キャッシュコングルエンスデ
ィレクトリは要求元のCPUに関連しており、XIの探
索は他の全てのS/XIディレクトリにおいて行われる
ものだからである。 各XIディレクトリ200の各エントリの内容は第16
図において参照番号231で示しである。 すなわち、絶対アドレス゛’AA”、L2のコングルエ
ンスフラスをみつけるためのフィールド“LA14〜1
9”、ビン番号フィールド″’BIN#”、排他性標識
′″EX”、無効化vA諏“1″′、ディレクトリのL
RUフィールド“L RU ”である、各エントリの内
容は、LRUフィールドを除き、それぞれのS/XIエ
ントリを生成した共通キャッシュミスについての情報を
表わす。 S/XI優先付は回路211の出力(レジスタ212へ
供給される)には1選択された要求元のCI)UID、
その絶対アドレス、その共通ディレクトリのビン番号、
及びEXビットの内容が含まれる。絶対アドレスレジス
タ212は優先順位の選択された出力要求を受け取り、
C,PtJ I Dデコーダ220はレジスタ212中
の要求を有するC1) Uの識別子を受け取る。(単一
プロセッサの場合は、システムには他のプロセッサが存
在しないからCP Uの識別子は不要である。)レジス
タ212中の現要求の絶対アドレスのビットエないし1
9について(及び任意選択的に論理アドレスのビット1
4ないし19について)全てのS/XIディレクトリが
探索される。比較回路232はレジスタ212中の絶対
アドレスビット14ないし19によってアドレス指定さ
れた各ディレクトリのコングルエンスフラスにおけるn
個(たとえば4個)のエントリを受け取って、4つのエ
ントリの各々の絶対アドレスフィールドとレジスタ21
2中の絶対アドレスビット1ないし13とを比較し、ど
こかのS/X Iディレクトリにその絶対アドレス2を
有するエントリが存在するかどうかを判断する。比較回
路232はライン234を介して不一致(+’f号を出
すか、又はAND回路251.252,253及びゲー
ト261へ一致(11号を送る。 要求元CPUに関連したS/XIディレクトリにおいて
その要求の絶対アドレスとの一致を生ずるエントリがみ
つからないときは、不一致信号が同じS/XIディレク
トリに関連して再込み回路23コ3に供給される。要求
元CPtJのキャッシュにおいてシノニムエントリはな
(、S/XIディレクトリにおける要求し2ラインを表
わすS/X■エントリ中のS/X IのLRUフィール
ドによって判断されたセットアソシアティブなロケーシ
ョンでアドレス指定されたコンフルエンスクラスにli
 LいS/XIエントリが?ニーき込まれる。この新し
いエントリは、現要求の結果としてL2キャッシュに取
り出された新しいL2ラインについてのシノニムヒツト
案件又はXIヒツト条件を判断するために、次のS/X
Iの探索で使用される。 (要求元CPUに関連したS/XIディレクトリ中のエ
ントリで、その要求の絶対アドレス及びLAの両方と一
致を生ずるものは全く存在しない。 なぜなら、そのエントリは要求元CPUのキャッシュに
存在するものと指示され、■、2ミスは全く発生せずエ
ラー条件が示されるはずだからである。)“シノニムヒ
ツト”は次の場合にAND回路252から一致信号が出
力されることによって示される。すなわち、現要求を有
するCPUに関連するS/XIディレクトリにおけるい
ずれかのエン1−りのAAフィールド(LAフィールド
ではない)との一致条件が見出された場合である。 ゛XIヒツト″は他のS/XIディレクトリ(すなわち
、要求元CPU以外のCPUに関連する)で一致条件が
見出された場合に示される。 したがって、各S/XIディレクトリは関連するC I
I tJについてのシノニムディレクトリであり。 その同じディレクトリがシステムにおける他の全てのC
PU及び全てのチャネルについての相互間合せディレク
トリである。 XIの探索はANDゲート252及び253によって他
のS/XIディレクトリにおいて同時に行われる。これ
らのANDゲートは、比較回路232からの一致信号及
びCPUIDデコーダ220からの反転されたCPUI
D(1!号を受け取る。 この反転されたC I) U I D信号は、それらが
関連するCPUではなく他のCPUのために機能してい
るということを示すものである。ANDゲート252は
、さらに、現要求について関連するCPUへ追出し信号
を出力するため、見出されたS/XIディレクトリから
のEX信号を受け取る。 ANDゲート253は、さらに見出されたS/XIエン
トリからのRO倍信号EX信号を反転したもの)とEX
フィールドからの信号を受け取って、現要求について関
連するCpUへXI無効化信号を出力する。これにより
、現要求は変更できなかった読取り専用エントリをヒツ
トする排他的要求のためのものであることを示す、した
がって必要なのは無効化だけである。 シノニムヒツト又はXIヒツトがいずれかのS/XIデ
ィレクトリにおいて得られたときは、ヒラ1−シたエン
トリの一部の内容が要求元CPU(すなわち、レジスタ
212中にあるCPU I Dを現に有するC I) 
U )に送られる。転送される内容とは、L2コングル
エンスクラスをみつけるためのフィールド、ビン番号(
BIN#)、及び排他的/読取り専用(E)フィールド
である。この転送はゲート261によって行われる。転
送されたL2コングルエンスクラスをみつけるためのフ
ィールドは共通ディレクトリ及びCICAにおける正し
いコングルエンスフラスをアドレス指定し、転送された
ビン番号はその中の要求エントリをさがす。選択された
共通ディレクトリエントリにおけるL l) Fはシノ
ニムヒツトについてアクセスすべきL1ライン、又はX
Iヒツトについて要求元CPUへ追い出すべきL1ライ
ンをさがす。 S/XI出力バス290はシノニムヒツト又はXIヒツ
トを有するS/XIディレクトリからの出力信号を受け
取って、これを、レジスタ212中に呪にあるC、PU
IDを有する要求元CPUに供給する。第17図は第1
6図から出力された信t;・を受け取る各CPUのため
の回路を示す図である。 第17図において、要求元CPUによって信号が受け取
られると、S/XI回路からストア/取出し制御回路3
14へのシノニム信号によって。 要求元(: l) Uがシノニムアドレスでキャッシュ
アクセスを実行する。しかし、C10制御論理回路31
2ノ\のXI追出し信号によって、アドレス指憲された
ラインの追出しはそれが変更されたときにのみ(すなわ
ち、CHビットがオンのときにのみ)行オ】れる。ビン
番号がデコーダ301によって受け取られ、デコーダ3
01がAND回路303A、Hlo又はDを付勢し、シ
ノニム信号(SR)、追出し信号(e10R)、又は無
効化信号(IR)によって条件付けられ第4図のOR回
路70A、B、C又はDへ信号が供給される。 このようにして、ビン番号はLICAに送られ。 そこでライン変更ビットがチェックされる。XI要求に
ついてそのような変更されたL1ラインごとに、L2キ
ャッシュにおける対応する51542部分を更新するた
めに追出しが開始され、このL2ラインが主メモリ(L
3)における対応ラインの更新のために追い出される。 要求元CPUは要求されたXIデータを主メモリから取
得できる。 (L2キャッシュがストアスル一式である場合は。 要求されるのはLlの追出しオペレーションだけである
。なぜなら、それが主メモリにストアスルーされるから
である。) S/XIディレクトリはN個の個別的な部分に分けるこ
とができると考えられる。ここで、Nはプロセッサの個
数であり、その各々は主メモリ(L3)を共有する専用
キャッシュを具備している。こうした区分の1つは1つ
のCPUに割り振られる。もしS/XIの問合せが要求
元CPUに割り振られた区画と異なる区画でXIヒツト
を見出したときは、追出し要求が開始される。しかしな
がら、S/XIの問合せが要求元CPUに割り!h4ら
れた区画ビットを見出したときは、これがシノニムの検
出となる。後者の場合、LAビット14ないし19及び
ビン番号は要求元CPUに戻され、キャッシュアクセス
はそのシノニムアドレスで実行できる。 第11図及び第12図に示した第2の実施例は共通キャ
ッシュディレクトリ160及びTLB162のエントリ
の構造の点で第1図及び第3図に示した実施例と異なる
。第12図では、ディレクトリ160及びTLB162
の各エントリはcpUの現P S Wから受け取ったD
ATフィールド及びCP Uによって供給されるSTO
又は5TOIDを含む、DATフィールドは1ビツトで
あり。 ゼロ又は1の値でl) A ’rオフ又はDATオンを
それぞれ表わす。 第12図では、共通キャッシュディレクトリ(eOD)
160は第3図と同様、CPUに専用の2レベルキヤツ
シユ構成におけるデータをアクセスするのに使用される
。同様に、CODは、既に要求されたCPUアドレスの
変換されないアドレスビットだけを含む、これは、これ
らのアドレスが変更可能であったかどうかは関係ない。 CCD内の“ローカルな探索”は要求データを含むライ
ンがL1キャッシュ又はL2キャッシュに存在するかど
うかを判断するため、ハードウェアで実行され、もしそ
うなら、LLで使用可能な場合はCCDはアドレス指定
されたデータをL1キャッシュからCPUへ゛′ゲグー
”し、L2で使用可能な場合はL2から“ゲート“する
。 第11図には、変換不能なアドレスと変換可能なアドレ
スとのアドレスのタイプの切換をするための回路が示さ
れている。ただし、このアドレスのタイプはPSWのD
ATモードピットの反転値を受け取るDATオフレジス
タ26に示されている。レジスタ26の内容は論理アド
レスレジスタ30の内容と関連しており、DATオフレ
ジスタ26における1の値はレジスタ3oに変換不能な
LAに入っていることを表わし、DATオフレジスタ2
6におけるゼロの値はレジスタ30に変換可能なLAに
入っていることを表わす。 第1.1図は変換不能(実)アドレスと変換された(仮
想アドレス)とを区別するため共通ディレクトリに設け
られる独特のハードウェアを示す図である。DATレジ
スタ26はPSWのDATモードビット5の反転状態に
よってセットされるアドレス制御レジスタであり、レジ
スタ30中の要求論理アドレスが変換可能アドレスであ
るか又は変換不能アドレスであるかを示すものである。 レジスタ30は単一ビットフィールドを有する。レジス
タ26におけるゼロの値はレジスタ30の論理アドレス
が変換を要求することを示しくこれはVAである)、レ
ジスタ26における1の値は論理アドレスが変換を要求
しないことを示す(これはRA又はAAである)、レジ
スタ27中のSTOT l)の値はANDゲート21又
は22の出力によってセットされる。5TOIDはゼロ
2は1のいずれの値ともなり得るが、ゼロのときだけ有
効であり、レジスタ26が1の値を含むときはST0I
Dレジスタ27の内容は無効とされる。 ′さらに詳しくいえば、ANDゲート21及び22は、
DATモード制御ビット5、拡張制御(EC)モードビ
ット12及びアドレス空間制御ピッ1〜16によって条
件付けられ、CRIないしCR7にあるSTOを選択す
る。ANDゲート21及び22の出力はドツトオアされ
て、5TOID割振り回路25へSTO信号が供給され
る。任意の選択された5TOTDがCPUによって供給
される。レジスタ26及び27の出力はバス40及び4
5を介して供給される。 第11図において、フィールド40.45.42ないし
49は全て同時に単一のマシンサイクル内で第12図の
ディレクトリ160、キャッシュ63、L1制御アレイ
161、TLB l 62、及びキャッシュ64にゲー
トアウトされる。このように第12図のディレクトリ1
60及びTLBI62の構造だけが第3図のディレクト
リ60及びTLB62と異なる。同様に、単一キャッシ
ュディレクトリ160はr、1キヤツシユ63及びL2
キャッシュ64の両方をアクセスするために共通に機能
する。 したがって第12図において、このアドレス指定構造に
よれば、CPUの要求した変換されたアドレスで共通デ
ィレクトリ160.Llキャッシュ63.L2キャッシ
ュ64及びTLB162が並列的かつ一律にアドレス指
定される。 ディレクトリ160の各エントリは第14図に示す如き
例示的なフォーマットを有する。このフォーマットは第
5図に示したフォーマットとは異なる。第14図に示す
フォーマットは、ACFフィール1への代わりにS T
 OI Dフィールドを有しており、さらに付加的にI
) A ’l’オフフィールドを有する。 第[3図は共通キャッシュディレクトリ160を示し、
また、4ウエイセツトアソシアテイブなコングルエンス
フラスのうちの選択された1つを例示的に示したもので
ある。ディレクトリ160における比較は4つの比較回
路171AないしDで示される。これらは、選択された
コングルエンスフラスにおける4つのエントリの各々と
、DATオフフィールド及びLAビットエないし13と
をそれぞれ比較するものである。各比較回路171は副
比較回路172.173、AND回路174.177、
及びOR回路177を含む、いずれかのAND回路17
7が出力信号を供給すると、これは、そのディレクトリ
エントリがキャツシュヒツトを有すると判断されたこと
を意味する(比較一致)。AND回路177が1つのフ
ングルエンスフラスの選択に応答して出力信号を供給し
ないときは、これはそのディレクトリエントリがキャツ
シュヒツトを有しないと判断されたことを意味する(比
較不一致)。もし、DATフィールドの値が1なら、L
A中のCPUの要求したアドレスは変換不能アドレスで
あり、5TOIDフイールドに存するどんな値もこの比
較においては無視される。これは、OR回路176を介
してAND回路174からの信号をAND回路177に
供給してS ’l’ Oの値又は5TOIDの値とは関
係なくこのAND回路177を付勢することによってな
される。もしDATオフフィールドの値がゼロなら、こ
の5TOID(ゼロ又は非ゼロ)が比較オペレーション
に使用される。というのは、AND回路174はCPU
の要求を有する現DAT信号としてゼロの値を受け取る
からである、このようにすると、AND回路174はO
R回路176への出力信号は出さず、その結果、5TO
ID比較回$172の出力でAND回路177の付勢が
制御されるうL2ミス信号は、AND回路177の反転
出力を受け取るAND回路180によって生成される。 このにょうにして、キャッシュディレクトリの比較回路
17[の各々は、現DAT状況信号の制御の下で、次の
ものの間の比較を自動的に行う。 すなわち、(1)変換可能なLAと変換不能なエン1へ
り表示されたアドレス(UTERAD)との間、(2)
変換不能なLAと変換可能なエントリ表示された71−
レス(1°ERED)との間、(3)変換不能なLAと
U Tト:RA Dとの間、又は(4)変換可能な1.
Aと]“E RA I)との間である0本実施例によれ
ば、比較されるLAの値が等しい場合でも、上記(1)
又は(2)の比較は不一致と宣言される。 比較されるLAの値が等しい場合、上記比較(3)又は
(4)だけが一致と宣言される。したがって、次の場合
には必ずL2キャッシュであると判断される。すなわち
、選択゛されたコングルエンスフラスにおけるT E 
RA Dの各々と要求されたLAとが、これらの間に一
致が生ずるかどうかとは無関係に、異なる変換特性を有
する場合である。 L2キャツシュヒツトであると判断されたときは、ディ
レクトリ160はI、1キヤツシユヒツトが存在すると
判断する。第12図におけるL1ヒッ1〜回路75は第
13図における選択・デコーダ回路175AないしDに
よって設けられる。これらの回路175AないしDのう
ちの1つは、選択されたコンフルエンスクラスにおいて
L2キャツシュヒツトが存在する場合に、AND回路1
77AないしDうちの1つからのし2ヒツト出力を受け
取ることができるものである。 ■、1キヤツシユヒツトは次の場合にL11ヒツト断回
路175Aないしl〕のオペレーションによって判断さ
れる。すなわち、対応するAND回路177の出力によ
ってL2ヒツトと判断された場合である。回路175A
ないしDは第4図中の回路75 AないしDと同じもの
でよく、これらは、■、1キヤツシユヒツトが存在する
かどうかを判断するのに必要なLPFの部分をみつける
ために同様に機能する。また、AND回路181はL1
ミスを知らせるもので、第4図中の回路81と同じもの
である。 ANI)回路178の各々は回路181からのL1ミス
信号と回路177からのL2ヒツト信号とを受け取って
、L1ミスの際に1,1ヒツトが存在するということを
示す信号を出力する。 デコーダ175からのL1ヒツト信号はL1キャッシュ
63への4つのL1キャツシュヒツト信号179Aない
しDのうちの1つで供給される。 これは、信号ライン47を介して供給されているL/′
、ビット18ないし25によって、現にアドレス指定さ
れているし1キヤツシユ63におけるコングルエンスフ
ラス中の4つのデータラインのうちの正しい1つのデー
タラインを選択するためである。要求されたLlのコン
グルエンスフラスにおける4つのデータラインのうちの
活動化された1つは、これによって、そのライン中の要
求されたバス単位(たとえば4つの4倍長ワード)を選
択し、このバス単位が要求されたL1データとしてデー
タバスを介してCPUへ送出される。 第3図と同様に第12図においては、L2キャッシュミ
スが生じるまでは(L2キャッシュミスは統計的にはほ
とんど発生しない)、キャッシュのアクセスのためのT
LBの出力は全く必要ない。 第15図は第12図の実施例で使用されるTLB回路の
より詳細を表わす図である。第15図に示すT L B
回路は第10図に示すT L B回路と次の点で異なる
。すなわち、前者がDATオフフィールド、及び第10
図のACFフィールドの代わりに各エントリにおいて5
TOIDフイールドを用いる点である。第15図中の比
較回路80A及び80Bの各々は第13図中の比較回路
と回し構成で同様に機能する。他の点では、第15図の
TLBは第10図のTLBは同じである。 以上に説明した本実施例によれば、次のような効果が得
られる。 ■複数レベルの専用キャッシュを使ってキャッシュのサ
イズを拡張しつつキャッシュアクセスについてTLBオ
ペレーションをなくすことができる。 q)シノニム決定を単純化することができる。従来、シ
ノニム決定の複雑さは、キャッシュサイズの増加に伴い
指数的に増大していた。 (3)記憶装置要求についての平均時間を改善するため
に複数レベルのキャッシュを使用するような複数キャッ
シュディレクトリの必要性がない。 4)複数レベルのキャッシュ間でのキャッシュディレク
トリの同期化の問題がない。 、旦)1つのプロセッサについて専用の複数レベルのキ
ャッシュに対して共通の単一ディレクトリが11りけら
れるので、キャッシュディレクトリのコス1−及びハー
ドウェアが節約できる。 E0発明の詳細 な説明したように、本発明によれば、キャツシュヒツト
の判断の際にTLBによる変換の必要がないので、キャ
ッシュアクセスの高速化を図ることができる。
【図面の簡単な説明】
第1図ないし第4図は1本発明の1つの実施例を説明す
る図、第5図は第3図に示した共通キャッシュディレク
トリにおけるセルの構造を示す図、第6図は第3図に示
した■、1制御アレイの構成を示す図、第7図は第3図
又は第6図に示したL1制御アレイにおけるセルの構造
を示す図、第8図は第3図に示したr、1キヤツシユの
一般的な構成を示す図、第9図は第3図に示したL2キ
ャッシュの一般的な構成を示す図、第10図は第3図に
示したTLBの一般的な構成示す図、第11図及び第1
2図は1本発明の他の実施例を説明する図、第13図は
第12図に示した共通キャッシュディレクトリの一般的
な構成を示す図、第14図は第12図及び第13図に示
す共通キャッシュディレクトリにおけるセルの構造を示
す図、第15図は第1;3図及び第12図に示すTLB
の一般的な構成を示す図、第16A図及び第16R図は
多重プロセッサ環Xtにおける実施例で使用されるシノ
ニム/相互間合せディレクトリの構成を示す図、第17
図はシノニム/相互間合せディレクトリの応答の制御を
説明する図である。 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) ACFI−1312,1914〜2318−2514〜
25242(::−11,−31才2図 創i!ア1ルスレジスク 寸14回 −yazプ≧し7トエントリ 才 352I cpu*\らへ紅!、妓!!愛東      六イワシ
島1冒鴬矛50 共通゛肴しク1.1ツエントリ オ60 中制御ア〆ヤル(LICAI 才8回 L1七にず−7′ン工 (L2ミス) CHATrフ   STO+−1312−1914−2
318−2514−25242O−31AA(1〜19
) 才15図 vノ^yへnAAI+〜19ン 2ム

Claims (1)

  1. 【特許請求の範囲】 プロセッサと、変換索引緩衝機構と、主記憶装置とを含
    み実モードと仮想モードとの切換えができるようなデー
    タ処理システムにおいて、 (a)キャッシュと、 (b)論理アドレスと、該論理アドレスが実/絶対アド
    レスであるのか又は仮想アドレスであるのかを示す標識
    とを有する複数のエントリを備えたディレクトリと、 (c)上記プロセッサによって要求された論理アドレス
    と、該論理アドレスが実/絶対アドレスであるのか又は
    仮想アドレスであるのかを示す標識とを上記ディレクト
    リに供給する手段と、 (d)上記プロセッサによって要求された論理アドレス
    を受け取って上記ディレクトリにおいてヒットの可能性
    のある1以上のエントリを含む1つのセットを選択する
    共通ディレクトリと、 (e)上記セット中におけるヒットの可能性のあるエン
    トリについて上記プロセッサによって要求された論理ア
    ドレス及び標識と該エントリにおける論理アドレス及び
    標識とを比較することにより、上記変換索引緩衝機構の
    アドレス変換を使用することなく、ヒットエントリが存
    在するか否かを判断するヒット判断手段と、 を具備することを特徴としたキャッシュ機構。
JP62106530A 1986-05-01 1987-05-01 データ処理システム Granted JPS62260248A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US858322 1986-05-01
US06/858,322 US4797814A (en) 1986-05-01 1986-05-01 Variable address mode cache

Publications (2)

Publication Number Publication Date
JPS62260248A true JPS62260248A (ja) 1987-11-12
JPH0555898B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020523682A (ja) * 2017-06-16 2020-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想キャッシュにおける仮想および実変換の共有
JP2020523676A (ja) * 2017-06-16 2020-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想キャッシュのための変換支援
US11403222B2 (en) 2017-06-16 2022-08-02 International Business Machines Corporation Cache structure using a logical directory

Families Citing this family (140)

* Cited by examiner, † Cited by third party
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 情報処理装置及びその方法
EP0508577A1 (en) * 1991-03-13 1992-10-14 International Business Machines Corporation Address translation mechanism
EP0506236A1 (en) * 1991-03-13 1992-09-30 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
US5649155A (en) * 1995-03-31 1997-07-15 International Business Machines Corporation Cache memory accessed by continuation requests
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
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
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
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
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
US6338124B1 (en) 1999-08-04 2002-01-08 International Business Machines Corporation Multiprocessor system bus with system controller explicitly updating snooper LRU information
US6343344B1 (en) 1999-08-04 2002-01-29 International Business Machines Corporation System bus directory snooping mechanism for read/castout (RCO) address transaction
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
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
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
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
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
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
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6598128B1 (en) 1999-10-01 2003-07-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6629207B1 (en) 1999-10-01 2003-09-30 Hitachi, Ltd. Method for loading instructions or data into a locked way of a cache memory
US6553460B1 (en) 1999-10-01 2003-04-22 Hitachi, Ltd. Microprocessor having improved memory management unit and cache memory
US6412043B1 (en) 1999-10-01 2002-06-25 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
KR20060110359A (ko) * 2004-02-09 2006-10-24 콘티넨탈 테베스 아게 운트 코. 오하게 자동차내의 임계 안전 컴퓨터 시스템을 위한 통합형시스템용 디바이스 및 방법
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
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
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
US8707011B1 (en) 2006-10-24 2014-04-22 Nvidia Corporation Memory access techniques utilizing a set-associative translation lookaside buffer
US8700883B1 (en) * 2006-10-24 2014-04-15 Nvidia Corporation Memory access techniques providing for override of a page table
US8504794B1 (en) 2006-11-01 2013-08-06 Nvidia Corporation Override system and method for memory access management
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
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
US8209489B2 (en) * 2008-10-22 2012-06-26 International Business Machines Corporation Victim cache prefetching
US8347037B2 (en) * 2008-10-22 2013-01-01 International Business Machines Corporation Victim cache replacement
US8499124B2 (en) * 2008-12-16 2013-07-30 International Business Machines Corporation Handling castout cache lines in a victim cache
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
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
CN102574053A (zh) 2009-08-04 2012-07-11 二氧化碳处理公司 使用碳酸盐和生物催化剂捕获co2的制剂和方法
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
CN114281713B (zh) * 2021-12-28 2026-03-24 上海集成电路装备材料产业创新中心有限公司 数据矩阵处理装置、方法、设备及介质
CN115495392B (zh) * 2022-11-17 2023-03-24 深圳市楠菲微电子有限公司 多级启动中内存复用方法、装置、存储介质和处理器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5072542A (ja) * 1973-10-30 1975-06-16
JPS586570A (ja) * 1981-07-02 1983-01-14 Nec Corp バツフアメモリ装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
EP0051745B1 (en) * 1980-11-10 1988-01-27 International Business Machines Corporation Cache storage hierarchy for a multiprocessor system
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
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5072542A (ja) * 1973-10-30 1975-06-16
JPS586570A (ja) * 1981-07-02 1983-01-14 Nec Corp バツフアメモリ装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020523682A (ja) * 2017-06-16 2020-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想キャッシュにおける仮想および実変換の共有
JP2020523676A (ja) * 2017-06-16 2020-08-06 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想キャッシュのための変換支援
US11403222B2 (en) 2017-06-16 2022-08-02 International Business Machines Corporation Cache structure using a logical directory
US11775445B2 (en) 2017-06-16 2023-10-03 International Business Machines Corporation Translation support for a virtual cache
US12141076B2 (en) 2017-06-16 2024-11-12 International Business Machines Corporation Translation support for a virtual cache

Also Published As

Publication number Publication date
EP0243724A2 (en) 1987-11-04
JPH0555898B2 (ja) 1993-08-18
CA1283218C (en) 1991-04-16
EP0243724A3 (en) 1990-05-23
US4797814A (en) 1989-01-10

Similar Documents

Publication Publication Date Title
JPS62260248A (ja) データ処理システム
US4985829A (en) Cache hierarchy design for use in a memory management unit
JP5373173B2 (ja) アドレス変換方法及び装置
JP2557174B2 (ja) データのセット位置の予測装置
US8607024B2 (en) Virtual address cache memory, processor and multiprocessor
KR920005280B1 (ko) 고속 캐쉬 시스템
US8909871B2 (en) Data processing system and method for reducing cache pollution by write stream memory access patterns
EP0144121B1 (en) Virtually addressed cache
JP2833062B2 (ja) キャッシュメモリ制御方法とこのキャッシュメモリ制御方法を用いたプロセッサおよび情報処理装置
US8949572B2 (en) Effective address cache memory, processor and effective address caching method
US5765199A (en) Data processor with alocate bit and method of operation
US5418927A (en) I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines
US5809562A (en) Cache array select logic allowing cache array size to differ from physical page size
US5479630A (en) Hybrid cache having physical-cache and virtual-cache characteristics and method for accessing same
US6745292B1 (en) Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors
EP0365117A2 (en) Data-processing apparatus including a cache memory
US5287482A (en) Input/output cache
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
US7302530B2 (en) Method of updating cache state information where stores only read the cache state information upon entering the queue
US6574698B1 (en) Method and system for accessing a cache memory within a data processing system
US7356650B1 (en) Cache apparatus and method for accesses lacking locality
US20070130426A1 (en) Cache system and shared secondary cache with flags to indicate masters
EP0170525B1 (en) Cache hierarchy design for use in a memory management unit
JPS63284649A (ja) キャッシュメモリ制御方法
JP2845762B2 (ja) 階層バッファメモリ装置