JPH0744458A - キャッシュメモリ構造およびキャッシュ・メモリを動作させる方法 - Google Patents

キャッシュメモリ構造およびキャッシュ・メモリを動作させる方法

Info

Publication number
JPH0744458A
JPH0744458A JP5124785A JP12478593A JPH0744458A JP H0744458 A JPH0744458 A JP H0744458A JP 5124785 A JP5124785 A JP 5124785A JP 12478593 A JP12478593 A JP 12478593A JP H0744458 A JPH0744458 A JP H0744458A
Authority
JP
Japan
Prior art keywords
cache
block
cpu
bus
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP5124785A
Other languages
English (en)
Inventor
Jung-Herng Chang
ジャン−ハーン・チャン
Curt Berg
カート・バーグ
Jorge Cruz-Rios
ジョージ・クルツ−ライアス
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH0744458A publication Critical patent/JPH0744458A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 (修正有) 【目的】 多数の未決のオペレーションを供給するキャ
ッシュ制御器のための装置および方法を得る。 【構成】 外部キャッシュ・アレイがCPUとキャッシ
ュ制御器CCへ結合され、CCは高速バスを介して主メ
モリへ結合される。CC内のキャッシュ・ディレクトリ
が外部キャッシュの使用を追跡し、CCを主メモリへ相
互に結合するバスのためのバス・プロトコルの選択をサ
ポートする。このディレクトリは1つの状態ビット・フ
ィールドを有し、CPUの対応するサブブロックへの重
ね書きを阻止する。CPU内の2つのブロック・ミス・
レジスタが、サブブロック・ミス発生時に以後のサブブ
ロック・プリフェッチを支援する。1つのブロック・ミ
ス・レジスタが読出し時のミスを識別し、別のブロック
・ミス・レジスタが書込み時のミスを識別する。CC内
のI/Oカウント・レジスタが、I/Oバスおよびバッ
ファ空間の飽和を阻止し、全ての未決の書込みオペレー
ションを1つのレジスタで追跡できる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータ装置および
関連するキャッシュ・メモリ構造に関するものである。
更に詳しくいえば、本発明は重なり合う多数のキャッシ
ュ・メモリ・アクセス・オペレーションを行えるように
するためのキャッシュ制御器および関連するレジスタに
関するものである。
【0002】
【従来の技術】典型的には、コンピュータ装置における
中央処理装置(CPU)は主メモリより十分高速で動作
する。メモリが命令を供給できるよりも速くCPUが命
令を実行する場合には、命令が動作する次の命令データ
を利用できるまでCPUはアイドル状態でなければなら
ない。大容量の主メモリからのデータまたは命令を待っ
ている間の長すぎるCPUアイドル時間を避けるため
に、主メモリより高速で動作できるより小容量のキャッ
シュ・メモリがしばしば用いられて主メモリとCPUの
間でデータと命令をバッファする。
【0003】主メモリ内のメモリ場所におけるデータと
命令はブロック・フレームでキャッシュ・メモリへマッ
プされる。各ブロック・フレームは、そのブロックに関
連するデータと命令を記憶するいくつかの記憶場所に対
応するブロック・オフセットより成る。CPUの全体の
性能を更に向上させるために、あるコンピュータ装置
は、データとメモリのために1つずつ別々のキャッシュ
・メモリを採用する。
【0004】しかし、別々のキャッシュ・メモリを使用
することは性能の問題を完全に解決するものではない。
キャッシュの読出し「ミス」が起きると、すなわち、デ
ータまたはCPUにより要求されている命令がキャッシ
ュ・メモリ内に存在しない時には、キャッシュ・メモリ
は主メモリからデータまたは命令を検索せねばならな
い。そのために、典型的には、求められているデータま
たは命令を含んでいるデータまたは命令のブロック・フ
レーム全体が検索され、ブロック・フレーム全体の検索
が終了するまでCPUは遊んでしまう。その他の多くの
キャッシュ性能問題および改良技術が存在する。それら
の問題および改良技術については、たとえば、ヘネシー
(J.L.Hennessy)、パターソン(D.A.
Patterson)著「コンピュータ・アーキテクチ
ャ、定量的手法(ComputerArchitect
ure,A Quantitative Approa
ch)」(モーガン・カウフマン(Morgan Ka
ufmann)1990年発行、1454〜461ペー
ジを参照されたい。
【0005】交換ブロック・フレームでキャッシュ・メ
モリを充填するために必要な時間は、ブロックのサイズ
と、キャッシュ・メモリ−主メモリ階層の転送速度とに
依存する。たとえば、ブロックサイズが8語で、主メモ
リの動作速度が3クロック・サイクル当たり2語である
とすると、交換ブロック・フレームでキャッシュ・メモ
リを充填するために11クロック・サイクルを要する。
しかし、キャッシュ読出しミスが起きた時にブロック・
フレームサイズを小さくしたり、部分ブロックを充填し
ても、ブロックのサイズを小さくすると後でキャッシュ
ミスが起きやすくなるから、CPUのアイドル時間が必
ずしも短くなるものではない。
【0006】キャッシュ読出しミスが起きた時に、キャ
ッシュを待っているCPUのアイドル時間、および主メ
モリ・アクセスの終了を待つ待ち時間をできるだけ短く
するために種々の技術が用いられている。1つの共通な
やり方は「早期再スタート」である。これは、要求され
た基準または命令が主メモリから各キャッシュに到達し
た時に、ブロック全体の検索を終了することを待つこと
無しに、その基準または命令をただちに主メモリへ送る
やり方である。早期再スタートを用いると、CPUは待
っている命令を受けた時に命令の実行を再開でき、その
間に交換ブロック・フレームの残りは主メモリからキャ
ッシュへ書込まれる。
【0007】早期再スタート技術は改良したものが「順
序外れフェッチ(out−of−order fetc
h)」である。これは、求められている基準または命令
を最初に検索することを主メモリへ要求し、交換ブロッ
ク・フレーム内の求められているデータまたは命令に先
行するデータまたは命令の全てをスキップするものであ
る。早期再スタートの場合におけるように、順序外れフ
ェッチにより検索されたデータまたは命令は、検索され
るとただちにCPUへ送られ、交換ブロック・フレーム
の残りが検索されている間にCPUは実行を再開でき
る。求められているデータおよび命令が検索された後
も、求められているデータまたは命令の後のデータおよ
び命令から始まって、主メモリは交換ブロック・フレー
ム内の残りのデータと命令の検索を続ける。それから主
メモリはブロック・フレームの初めまでループして、ブ
ロック・フレーム全体がキャッシュへ書込まれるまで、
以前にスキップされたデータまたは命令を検索する。こ
のようにして、最初のデータまたは命令が主メモリから
検索されると、CPUは実行をただちに再開できる。
【0008】従来のキャッシュ・メモリは典型的には、
同じクロック・サイクルで読出しオペレーションと書込
みオペレーションを行うことを許さない。したがって、
交換ブロック・フレームの残りを充填しようと試みてい
る間のCPUからの別の要求に対するキャッシュ応答は
たちまち複雑にさせられる。その結果、CPUはデータ
または命令が実行された後は再びアイドル状態となり、
残りの検索が実行されることを待つ。CPUにより要求
されている後のデータまたは命令がキャッシュ・メモリ
に既に保存されているとしても、CPUは検索されてい
る残りのデータまたは命令をアイドル状態になって待
つ。したがって、交換ブロック・フレームの残りが書込
まれる前に、CPUがそれの実行を終了する傾向がある
場合に、早期スタートおよび障害フェッチから得られる
利益は限定される。これは、典型的な命令を実行するた
めに要求されるクロック・サイクルの数が小さい場合の
コンピュータ装置、たとえば、RISC(縮小命令セッ
ト・コンピューティング)コンピュータにおいてとくに
起きる傾向がある。
【0009】しかし、最近のある種のキャッシュ・メモ
リの構造では、読出しと書込みを同じクロック・サイク
ルで実行することができるようにされ、それによりキャ
ッシュ・ミス(とくにCPUのアイドル時間)に関連す
るペナルティを更に縮小し、システム全体の性能を一層
向上している。たとえば、キャッシュ・メモリに保存さ
れているデータまたは命令に対する以後の要求をクロッ
ク・サイクルの第2の半分の間に満たすことができる。
問題は、ハードウェアを付加するために要する十分な出
費なしにデータまたは命令がキャッシュ・メモリに存在
している時を決定し、およびそれらのデータまたは命令
のキャッシュ・メモリからCPUへの転送を同期させる
ことである。同様に、主メモリからのデータまたは命令
に対する以後の要求を満たす際に類似の問題が存在す
る。
【0010】より最近、多数のプロセッサを有するコン
ピュータ装置が一般的になってきた。マルチプロセッサ
・システムにおいては、いくつかのプロセッサの幾らか
または全てが、キャッシュに保存されているブロック・
フレームを、読出しまたは書込みの目的のためにアクセ
スすること、およびそのデータをコンピュータ装置内の
種々のソースおよび宛先の任意のものに対してやりとり
する事を同時に試みることができる。マルチプロセッサ
・システムにおいては、適切なシステム・オペレーショ
ンは、キャッシュに保存されているデータが対応するプ
ロセッサとの間の適切な対応に依存する。その場合には
いくつかのプロセッサの任意のものが、キャッシュに保
存されているデータへのアクセスおよび変更ができる。
適切なプロセッサに対するデータの対応は「キャッシュ
一貫性」と名づけられる。
【0011】
【発明が解決しようとする課題】したがって、高性能C
PUにおいて多数の代表的な読出し動作および書込み動
作を、並行する、ほぼ同時のやり方でキャッシュ・メモ
リを動作させることができるようにして、主メモリのア
クセスと、要求されている命令またはデータの供給との
間のCPUのアイドル時間および待ち時間を一層短縮す
る、キャッシュ・メモリを制御するための新規な技術を
得る事が望ましい。それによってキャッシュミスのペナ
ルティが減少するならばとくに望ましい。また、キャッ
シュ制御器および関連する制御レジスタを実現するため
に必要なハードウェアの要求をできるだけ減少できるな
らば、望ましい事でもある。
【0012】以下の詳細な説明において説明するよう
に、それらの目的および希望の結果は、従来技術の諸欠
点を克服する本発明の諸目的および望ましい結果に含ま
れる。詳細な説明は、マルチプロセッサ・コンピュータ
装置のためのデータを取り出すキャッシュ・メモリ装置
を実現し、多数の未決のオペレーションをサポートする
ことによりCPUのアイドル時間を短縮する、キャッシ
ュ・メモリ制御器および方法を開示するものである。
【0013】
【課題を解決するための手段】この明細書においては、
高性能中央処理装置(CPU)をサポートするキャッシ
ュ・メモリ構造の、キャッシュの一貫性を保存し、多数
の未決のオペレーションを行えるようにするためのキャ
ッシュ制御器のための装置および方法を開示する。適切
な数のブロックを有する十分に大きい外部キャッシュ・
アレイが、統合された高速のアドレスおよびデータバス
(CPUバス)を介してCPUおよびキャッシュ制御器
(CC)へ結合される。CCは、多数のプロセッサ・シ
ステムを形成するプロセッサと、キャッシュ制御器と、
I/O装置と、記憶装置とを相互に接続する第2の高速
バス(MPバス)へ結合される。キャッシュ・ディレク
トリのサイズを小さくするために、1つのブロック当た
り4つのサブブロックをも受けることにより外部キャッ
シュはサブブロックへ分割される。
【0014】CC内のキャッシュ・ディレクトリは、外
部キャッシュを使用させ、CCを主メモリへ相互に接続
するバスのためのバス・プロトコルの選択をサポートす
るように編成できる。キャッシュ・ディレクトリはタグ
・エントリで構成される。各タグ・エントリはアドレス
・フィールドと多数の状態ビット・フィールドを有す
る。1つの状態ビット・フィールドが各サブブロックに
対する。タグ・エントリのアドレス・フィールドはキャ
ッシュ・メモリのブロックのための物理的アドレス・タ
グを含む。各状態ビット・フィールドは共用されるビッ
トと、オーナ・ビットと、有効ビットとを有する。ま
た、各状態ビット・フィールドは保留ビットを有する。
この保留ビットは、セットされた時に、サブブロックに
保留されている終了されていない未決のオペレーション
を示す。セット保留ビットは、対応するサブブロックに
現在保存されているデータをCPUがアクセスすること
を阻止する。
【0015】キャッシュ・ディレクトリ内のエントリに
対するアクセスは、CPU物理的アドレス内に含まれて
いるインデックス・フィールドを介して行われる。CP
Uの物理的アドレスは物理的アドレス・タグ・フィール
ドと、サブブロック・インデックスと、サブブロック・
オフセット・フィールドとをも有する。キャッシュ・デ
ィレクトリ内の各エントリを一意にアクセスするために
十分なビットがインデックス内に設けられる。
【0016】一対のブロックミス・レジスタが、保留中
であることが知られているオペレーションの識別を容易
にするが、セットされているサブブロック保留ビットに
よりとくに識別されることはない。1つのブロックミス
・レジスタが読出しにおけるミスを識別し、別のブロッ
クミス・レジスタは書込みにおけるミスを識別する。各
ブロックミス・レジスタのサイズは、物理的タグ・アド
レスとキャッシュ・ディレクトリ・インデックスの両方
を保存できるようなものである。本発明のCCは、要求
されて、プリフェッチされたサブブロックに到達順位を
つけることはない。ブロックミスが起きると、CCは次
の順次サブブロックをプリフェッチし、その後で物理的
タグ・アドレスとキャッシュ・インデックスがブロック
ミス・レジスタにロードされる。CCは、ブロックミス
の結果である要求されているサブブロックと、プリフェ
ッチ・オペレーションの結果である要求されているサブ
ブロックとに対する保留ビットもセットする。検索され
た第1のサブブロックが到達すると、そのサブブロック
に関連するアドレス・タグはキャッシュ・ディレクトリ
のアドレス・タグ・フィールドに保存されているアドレ
スに一致しない。しかし、そのサブブロックに対するア
ドレスはブロック・ミス・レジスタに保存されているア
ドレスに一致する。したがって、ブロックに対する全て
のサブブロックのための有効なビットはクリヤされ、ア
ドレス・タグは更新され、データを有する適切なサブブ
ロックだけに対する有効なビットがセットされ、保留ビ
ットがクリヤされる。検索された第2のサブブロックが
到達すると、そのサブブロックに関連するアドレスはキ
ャッシュ・ディレクトリのアドレス・タグ・フィールド
に保存されているアドレスに一致し、その後でデータを
有するそのサブブロックに対する有効なビットがセット
され、対応する保留ビットがクリヤされる。検索された
サブブロックに対するアドレスが、キャッシュ・ディレ
クトリのブロックミス・レジスタに保存されているアド
レス、またはアドレス・タグ・フィールドに保存されて
いるアドレスに一致しないとすると、誤りが誤り取扱い
のためのオペレーティングシステムへフラッグされる。
【0017】CC内のI/O書込みカウント・レジスタ
が、まだ終了していない未決のI/O書込みオペレーシ
ョンの数を追跡して、I/0バスおよびシステム・バッ
ファ空間の飽和を阻止する。全ての未決の書込みオペレ
ーションは単一のレジスタで追跡できる。物理的I/O
装置はI/Oページへ割り当てられ、各装置は独特のペ
ージへ割り当てられる。現在のページ以外のI/Oペー
ジへ発せられたI/Oオペレーションは、現在のページ
への全ての未決のオペレーションが、開始の前に、終了
させられるまで待たなければならない。I/Oオペレー
ションをI/O装置へ発生する時に、CCはI/Oカウ
ント・レジスタのカウントを増加し、I/Oオペレーシ
ョンが終了したという肯定応答がCCにより受けられた
時にそのカウント・レジスタは減少する。I/Oオペレ
ーションが、現在のページ以外のページへ割り当てられ
ているI/O装置をアクセスする事を試みるとすると、
現在のI/OページのためのI/Oカウントが零になる
まで、CPUはオペレーションを再試行する。CCとI
/Oバスの間のバッファ空間の適切な設計のために、外
部キャッシュ装置は、利用できる最大カウントを知らな
ければならない。外部バス・ウォッチャ装置へ結合され
ているI/Oページ・アドレス・レジスタは、未決のオ
ペレーションに関連するページ・アドレスの追跡も行
い、I/OオペレーションがそのI/Oページに対して
失敗した時に時間切れの通知を出す。各I/O装置へ独
特のページ・アドレスが割り当てられているから、任意
のI/O措置により送られた時間切れ通知は、そのI/
O装置へ割り当てられているI/Oページに記録され
る。同様に、共用されている書込みカウント・レジスタ
によって、主メモリへ書込まれているキャッシュ可能な
データに対して未決の書込みオペレーションの数を追跡
することが許される。
【0018】CCは、マルチプロセッサ環境に未決の書
込みオペレーションが存在する事を示すために、CCか
らCPUへ送られるPEND信号のサポートも行う。P
END信号のサポートにより、CPUは、シーケンスさ
れているI/O書込みオペレーションのための全記憶順
序付けまたは部分記憶順序付けを実行する事が許され
る。PEND信号の表明は、以前に発せられた書込みオ
ペレーションの終了を待つために続いて出される書込み
オペレーションを含む。それによって絶対的な性能は低
下するが、記憶順序づけは維持される。
【0019】
【実施例】この明細書においては、キャッシュ一貫性を
保持し、高性能中央処理装置(CPU)をサポートする
キャッシュ・メモリ構造における多数の未決のオペレー
ションを行うキャッシュ制御器のための装置および方法
について説明する。以下の説明においては、本発明を完
全に理解できるようにするために、特定の数、特定の時
間、特定の信号等のような数多くの特定の詳細について
述べる。しかし、それらの特定の詳細なしに本発明を実
施できることが当業者には明らかであろう。他の場合に
は、本発明を不必要にあいまいにしないようにするため
に、周知の回路および装置はブロック図で示した。
【0020】まず、本発明の教示を組み込んだマルチプ
ロセッサ高性能コンピュータ装置における外部キャッシ
ュ・メモリおよびキャッシュ制御器(CC)のブロック
図概観が示されている図1を参照する。図1において、
CPU2がCPUバス4を介して外部キャッシュ装置5
へ相互に結合されている。キャッシュ装置5はキャッシ
ュ制御器(CC)6により制御される。CPU2と、C
PUバス4と、キャッシュ装置5と、CC6とはプロセ
ッサ・モジュール10を構成する。プロセッサ・モジュ
ール10は多数のプロセッサ・バス(MPバス)8を介
して主メモリ装置9と、別のプロセッサ・モジュール1
0とへ相互結合される。CPU2は内部キャッシュ装置
3を更に有する。内部キャッシュ装置3はCPU2のた
めの集積化されたオンチップ・キャッシュ構造であっ
て、外部キャッシュ装置5より十分に小さい。本発明
は、外部キャッシュ装置5および主メモリ9を構成する
記憶装置にどのような特定の速度要求も課さないが、キ
ャッシュ装置5を構成する装置は、主メモリ9を構成す
る部品より小型かつ高速であると一般に仮定されてい
る。CPUバス4は高性能プロセッサを取り扱うために
適切な任意の型である、と仮定されているが、本発明の
場合におけるように、特定のプロセッサ・アーキテクチ
ャ、この場合には、アメリカ合衆国カリフォルニア州マ
ウンテン・ビュー(Mountain View)所在
のサン・マイクロシステムズ社(Sun Micros
ystems,Inc.)により設計されたバイキング
・プロセッサ(Viking Processor)、
で動作するために最適にできる。
【0021】次に、キャッシュ制御器6のブロック図が
示されている図2を参照する。この図2においては、C
PUバス4がCPUバス・インターフェイスおよび制御
器11へ接続されている。そのCPUバス・インターフ
ェイスおよび制御器11は内部調停器(図示せず)に従
ってCPUBSU4に対するアクセスを制御する。CP
Uバス・インターフェイスおよび制御器11はCPUコ
マンド・モジュール13と、MPコマンド・モジュール
12と双方向通信できるように接続されている。MPコ
マンド・モジュール12はバス要求および応答を処理
し、ある場合にはバス8を出所とするスヌーピング要求
を処理する。CPUコマンド・モジュール13はプロセ
ッサ12から来た全てのコマンドを処理し、必要があれ
ば、プロセッサ2がバス8を制御することができるよう
にするために適切なコマンドを発生する。キャッシュ・
ディレクトリ15がローカル内部キャッシュ・ディレク
トリ・バス15を介してCPUコマンド・モジュール1
3とMPコマンド・モジュール12へ相互に結合され
る。キャッシュ・ディレクトリ15については後で詳し
く説明する。
【0022】ここで、CPUバス・インターフェイスお
よび制御器11が示されている図3を少し参照する。図
3においては、CPUバス・インターフェイスおよび制
御器11は、バス4との間で信号をやり取りするための
ドライバ、レシーバおよびラッチの全てを含むCPUバ
ス入力/出力(I/O)フレーム・ユニット21で構成
される。CPUバス・インターフェイスおよび制御器1
1は仮想バス・インターフェイス22と、CPUバス・
アービタ23と、CPUバス・インターフェイス24と
を更に含む。仮想バス・インターフェイス22によりM
Pコマンド・モジュール12は、調停を必要とすること
なしに、外部キャッシュ装置5(図1)へ自由に書込む
ことを許される。それよりも、仮想バス・インターフェ
イス22はCPUバス4に関連する複雑さを取り扱う事
からCPUバス4を常に自由にし、かつMPコマンド・
モジュール12を免れさせるという幻想をもたらす。好
適な実施例においては、MPコマンド・モジュール12
により仮想バス・インターフェイス22によって行われ
るCPUバス4のアクセスの9サイクルまでバッファす
るための9×107ビット・バッファを有する。CPU
バス・アービタ23はCPUバス24に対する要求を制
御し、かつ認める。CPUバス・アービタ23はバス4
のために用いられるバス・プロトコルも調整する。最後
に、CPUバス・インターフェイス24は、バス24か
ら受けた全ての入力信号を内部に保持してから、CC6
内部の別の装置へ送る。
【0023】図示していないが、好適な実施例における
CC6は2種類のクロック周波数をサポートする。とく
に、本発明の好適な実施例においては、高性能プロセッ
サ2の高速データ伝送速度に対処するために、CPUバ
ス4はMPバス8よりも高い周波数で動作する。一対の
バッファ16と17が、CPUバス4で動作しているC
PU2と、MPバス8で動作している装置との間の通信
を可能にする。バッファ16と17は、2つのクロック
領域の間で動作するデュアル−ポート・レジスタ・ファ
イルで構成される先入れ先出し装置である。
【0024】第2のMPバス・インターフェイスおよび
制御器19がバッファ16と17へ接続されて、MPバ
ス8を介してCC6へ相互に結合される外部装置とのデ
ータ通信を支配する。MPバス・インターフェイスおよ
び制御器19は、MPバス・インターフェイスおよび制
御器11により実行される機能に類似する機能を実行す
る。MPバス・インターフェイスおよび制御器19はア
ーピタ(図示せず)と、バス・インターフェイス・ユニ
ット(図示せず)と、CC6と、バス8により相互に結
合されている装置、とくに主メモリ9、との間の信号の
送受信のために必要なドライバおよびレシーバ(図示せ
ず)とを含む。以上説明したが、バス・インターフェイ
スおよび制御器19を参照しての説明は行わなかった諸
特徴はこの技術において広く知られているから、これ以
上の説明は必要ではない。
【0025】図1、図2および前記3を参照して説明し
たように、CC6は多数のプロセッサを含むコンピュー
タ装置の外部キャッシュ装置5を制御する。CC6は多
数のプロセッサとコンピュータ装置の残りの部分との間
の通信インターフェイスも行う。CC6は、外部キャッ
シュ・メモリ構造を用いる2種類のバス相互接続、すな
わち、MBusをベースとする装置とDymabusを
ベースとする装置、をサポートできる。MBusをベー
スとする装置においては、CC6はMBus(図1と図
2にはバス8として示されている)へ直結される。ある
いは、Dynabusをベースとする装置においては、
CC6はXBus装置へ接続される。Dynabusを
ベースとする装置における外部キャッシュ装置のサイズ
が、MBusをベースとする装置における外部キャッシ
ュ装置のサイズより大きい理由は、Dynabusをベ
ースとする装置における外部キャッシュ装置が用いるサ
ブブロックのサイズがより大きいためである。しかし、
本発明の特定の属性は選択されるバス・システムとは独
立しており、この詳細な説明の残りの部分は、MBus
をベースとする装置とDynabusをベースとする装
置の間で区別はしない。
【0026】更に、図1、図2および図3を参照して説
明したように、外部キャッシュ装置5は直接マップ・キ
ャッシュとして編成される。サイズは1メガバイト(M
B)とすることができ、またはDynabusをベース
とする装置の場合には希望により2MBとすることがで
きる。また、両方のバス構成においては、サイズおよび
サブブロック・サイズを除き、バス・キャッシュの編成
は同じであるから、詳細な説明の残りは1MBキャッシ
ュ構造を使用する。好適な実施例において1MBキャッ
シュを実現するために、8個の128k×9(または1
28k×8)スタチック・ランダム・アクセス・メモリ
(SRAM)チップが用いられる。CC6内のキャッシ
ュ・ディレクトリ15のサイズを小さくするためにサブ
ブロッキングが用いられる。サブブロッキングは、大き
いブロックの大きいミス・ペナルティを克服するため、
および小さいキャッシュ・ディレクトリ構造内のタグ記
憶要求を減少するために開発されたものである。ここで
説明している好適な実施例においては、MBusをベー
スとする装置に対するサブブロックのサイズは32バイ
ト(B)である。サブブロックを基準にして、記憶され
ているデータは転送され、キャッシュ一貫性プロトコル
が維持される。更に、CC6は、19 年月 日に
出願された、「マルチプロセッサ・コンピュータ装置に
おいて多数の未決のオペレーションを維持している間に
タグ・メモリ・アレイの1つのコピーを用いてキャッシ
ュ一貫性の維持を改善するための方法および装置(Me
thod and Apparatus for Im
proving Maintaing Cache C
onsistency Using a Single
Copu of a Tag Memory Whi
le Supporting Multiple Ou
tstanding Operationsin a
Multiple Processor Comput
er System)」という名称の米国特許出願第
号に開示されている教示に直接従って、単一コ
ピー・キャッシュ・タグを含む。
【0027】後で詳しく説明するように、本発明の教示
を含んでいるCC6は、バス4を介してCC6へ相互接
続されているプロセッサ2から外部キャッシュ装置への
パイプライン化されたアクセスをサポートできる。この
好適な実施例においては、読出しオペレーションと書込
みオペレーションのための命令サイクル当たり、1つの
倍長語(DW)のピーク・データ転送速度が予測され
る。読出し(または書込み)アクセスの結果としてミス
が生じたとすると、すなわち、求められているデータま
たは命令がキャッシュ装置4に保存されているブロック
内に存在しないとすると、別のミスが起きるまで、プロ
セッサ2は書込み(または読出し)オペレーションのた
めにキャッシュ装置を依然としてアクセスできる。
【0028】次に、キャッシュ・ディレクトリ15がよ
り詳しく示されている図4を参照する。図4において
は、キャッシュ・ディレクトリ15はこの技術において
知られているようにして一般に構成され、多数のタグ・
エントリ30を有する。キャッシュ装置5の各ブロック
ごとに1つのタグ・エントリがある。上記のように、好
適な実施例におけるキャッシュ装置5は公称8Kのブロ
ックで構成される。各ブロックのサイズは128Bであ
る。したがって、キャッシュ・ディレクトリ15は8K
タグ・エントリ30を同様に有する。各タグ・エントリ
30はアドレス・タグ31と、多数の状態ビット・フィ
ールド32とで構成される。アドレス・タグ31は、タ
グ・エントリ30により識別される特定のブロックによ
り参照されるデータに対して完全な物理的アドレス、イ
ンデックス・ビットではない、を保存する。状態ビット
・フィールド32は、タグ・エントリ30により参照さ
れるブロック内に存在するサブブロックに対応する。と
くに、ブロックを備える各サブブロックに対して1つの
状態ビット・フィールドが存在し、そのブロック内のい
くつかのサブブロックを識別するただ1つのアドレス・
タグが存在する。
【0029】各状態ビット・フィールド32は、4つの
状態ビット、すなわち、pビット34と、sビット35
と、oビット36と、vビット37とを保存する。sビ
ット35と、oビット36と、vビット37とはそれぞ
れ共用されるビット、オーナ・ビット、および有効ビッ
トであって、記憶装置技術において周知のように全て機
能する。sビットは、セットされた時に、対応するサブ
ブロックが共用されることを示す。oビットは、セット
された時に、対応するサブブロックが最後の書込みオペ
レーションを実行した事を示す。vビットは、1へセッ
トされた時に、対応するサブブロックが有効である事を
示す。
【0030】キャッシュ装置5内のキャッシュ・ブロッ
ク・フレームは、アドレス40の部分を形成するインデ
ックス41を介してアクセスされる。それにより、アド
レス40はキャッシュ装置5に対するアクセスを既知の
やり方で可能にする:すなわち、インデックス41はそ
のビット・パターンに従って特定のタグ・エントリ30
をほぼ指す。また、ブロックとサブブロックとの内部の
オフセットがそれぞれオフセット・フィールド42、4
3により示される。
【0031】本発明はこの技術において知られている状
態ビット、すなわち、保留ビットであるpビット34、
へ付加状態ビットを付加する。pビット34は、セット
された時に、CPU2により割り当てられたオペレーシ
ョンが未決であり、アドレス40内のインデックス41
により参照されるブロックのサブブロック、およびサブ
ブロック・インデックス42に依然として保留される。
プリフェッチ・オペレーションを開始される時にpビッ
ト34もセットされる。
【0032】pビット34により、以前に出されたコマ
ンドの終了を待つことなしに、種々のブロックへ、また
は種々のサブブロックへも、多数のオペレーションを割
り当てることが許され、その間も、単一のアドレス・タ
グ31が全てのサブブロックを識別する事を依然として
要求するだけである。pビットは、セットされた時に、
CPUバス4を放棄するためにCPU2をアクセスする
ことをCC6が要求すること、および後におけるアクセ
スの「再試行」を可能にすることにより、対応するサブ
ブロックをアクセスする事を阻止する。CC6がpビッ
ト34をモニタすることにより、CC6はサブブロック
に対する以後のオペレーションを許し、以前のオペレー
ションが終了し、pビットがクリヤされた時だけpビッ
トはセットされる。pビット34がセットされていない
サブブロックをCPU2がアクセスし、そのアクセスの
結果としてミスが生じると、pビット34が最初にセッ
トされ、その後でメモリ・アクセスが行われてキャッシ
ュ装置5へのデータを検索し、アドレス・タグ・ビット
31が更新され、pビット34がクリヤされる。
【0033】保留されていることが知られているオペレ
ーションの識別を容易にするが、セットされたサブブロ
ック保留ビットによりとくに識別されない。ブロック・
ミス・レジスタ28は、読出し時のミスと書込み時のミ
スを識別する。ブロック・ミス・レジスタ28は物理的
アドレス・タグとキャッシュ・ディレクトリ・インデッ
クスを保存するためのサイズにされる。本発明のCC6
は、要求されているプリフェッチされたサブブロックに
到達順位を課す。ブロック・ミスが起きると、CC6は
次の順次サブブロックをプリフェッチし、その後で物理
的アドレス・タグ44とキャッシュ・インデックス41
がブロック・ミス・レジスタへロードされる。CC6
は、ブロック・ミス・オペレーションの結果である要求
されているサブブロックと、プリフェッチ・オペレーシ
ョンの結果である要求されているサブブロックとに対す
る保留ビット34のセットも行う。検索された第1のサ
ブブロックが到達すると、そのサブブロックに関連する
アドレス・タグ44が、キャッシュ・ディレクトリ15
内のアドレス・タグ・フィールド31内の値に一致しな
い。しかし、サブブロックに対するアドレス・タグ44
はブロック・ミス・レジスタ28に保存されているアド
レスに一致する。したがって、ブロックのための全ての
サブブロックに対する有効なビット37はクリヤされ、
アドレス・タグ31は更新され、データを有する適切な
サブブロックのみに対する有効なビットがセットされ、
保留ビットがクリヤされる。検索された第2のサブブロ
ックが到達すると、そのサブブロックに対するアドレス
44が、キャッシュ・ディレクトリ15内のアドレス・
タグ・フィールド内のアドレスに一致し、その後で、デ
ータを有するそのサブブロックのための有効なビット3
7がセットされ、対応する保留ビット34がクリヤされ
る。検索されたサブブロックに対するアドレス44が、
ブロック・ミス・レジスタ28に保存されているアドレ
スに一致しないか、アドレス・タグ・フィールド31に
保存されているアドレスに一致しないとすると、誤り取
扱いのためにオペレーティング・システムへ誤りがフラ
ッグされる。
【0034】本発明の動作においては、データ獲得をほ
ぼ同時に、すなわち、ほぼパイプラインのようにして進
行できる。この場合には、アクセス要求が一度に1つず
つ発せられるが、その場合には、以前に出されたキャッ
シュ・メモリ・アクセスの終了する前に以後の要求が出
される。CPUがインデックス41を介してキャッシュ
装置5をアクセスすると、アドレス・タグ31のビット
がただちに検査されて、それらのビットが制御空間基準
のアドレス・ビットに一致するかどうかを判定する。
【0035】本発明を含むCC6の動作を、図5に示さ
れている例と、図6に示されている動作の例の流れ図と
を参照して最も良く説明できる。図5においては、たと
えば、CPUが時刻T1 にキャッシュ・メモリ・オペレ
ーション、たとえば、バースト読出しをおこなってお
り、その結果として外部キャッシュ装置5のサブブロッ
クAにおいてミスが生ずる。保留ビット(pビット)3
4がセットされ、要求されたデータがある時間後の時刻
2 に主メモリ9からキャッシュ装置5のサブブロック
Aへ検索され、その後で、pビット34がクリヤされ
る。サブブロックAに関連するメモリ・アクセスの終了
を保留すると、pビットにより示されているように、サ
ブブロックAがビジーであるとCC6が常に判定するか
ら、プロセッサはそのサブブロックAをアクセスできな
い。しかし、対応する同じpビットがセットされておら
ず、かつ、サブブロックAまたはBに対するキャッシュ
・アクセスの試みの結果としてブロック・ミスが起きな
かったとすると、ブロック内の別のサブブロック、たと
えば、サブブロックB、における別のオペレーション
を、時刻T1 に続く時刻、たとえば、時刻T1+、におい
て依然として続行できる。ブロック・ミスが、たとえ
ば、時刻T1 にサブブロックBで起きたとすると、サブ
ブロックBのためのpビットがセットされていないとし
ても、CPU2は再試行することを命令される。この場
合には、本発明は従来の任意の技術のように動作して、
ブロック・ミスは、他の任意のアクセスより先に、主メ
モリ・アクセス・サイクルを要求する。あるいは、アド
レス40のインデックス41により指されているアドレ
ス・タグ31がアドレス40内のアドレス・タグ44に
一致するものとすると、アクセスするCPUは、対応す
るpビット34によりビジーであるとはマークされてい
ない任意のサブブロックをアクセスできる。アドレス・
タグ31がアドレス・タグ44に一致する場合、すなわ
ち、ブロック・ヒットが存在する場合には、サブブロッ
ク・ミスの結果としてサブブロック、およびそれの直後
のサブブロックの取り出しが行われる。
【0036】図6にターゲット・サブブロックのマルチ
プロセッサ獲得中に起きる動作の流れが示されている。
キャッシュ・アクセスを試みている間のCC6の動作に
おける保留ビット34の影響を下記のように要約でき
る。 1.pビット34がセットされているサブブロックで任
意の動作が行われるとすると、CPUは再試行すること
を命令される。 2.ある動作の結果として、任意のpビット34を有す
るブロックであって、そのブロックのサブブロックのい
ずれかに対してそのpビット34がセットされているよ
うなブロックでブロック・ミスが生じたとすると、CP
Uは再試行することを命令される。
【0037】キャッシュ・アクセス動作がCPU2によ
り開始されると仮定する(ブロック50)。CC6はブ
ロック・ミス・レジスタ28とキャッシュ・ディレクト
リを最初にアクセスする(ブロック51)。次に、CC
6は、ターゲット・サブブロックに対して保留ビット3
4がセットされるかどうかを判定する(ブロック5
2)。保留ビット34がセットされるとすると、CC6
は、後のアクセスを再試行することをアクセスしたCP
U2へ指令する(52a)。あるいは、保留ビット34
がクリヤされるとすると(ブロック52)、CC6は、
アドレスされたサブブロックのアドレスがブロック・ミ
ス・レジスタ28に保存されているアドレスに一致する
かどうかを判定する(ブロック53)。もし一致したと
すると、CPU2は再試行することを命令され(ブロッ
ク53a)、アドレスされたサブブロックを含んでいる
ブロックのための保留オペレーションが存在する。その
後で、CC6は、アドレスされたサブブロックのアドレ
スがキャッシュ・ディレクトリ15内のアドレス・タグ
31に一致するかどうか、および対応するサブブロック
が有効かどうかを更に判定する(ブロック54)。この
判定結果が肯定であれば、有効なデータがCPU2へ供
給され、キャッシュ参照が終わる(ブロック61)。ブ
ロック54における判定結果が否定であると(54
b)、アドレスされたサブブロックのアドレスがキャッ
シュ・ディレクトリ15内のアドレス・タグに一致する
かどうかをCPU6が判定する(ブロック55)。この
判定結果が肯定であれば(55a)、CC6はアクセス
されたターゲット。サブブロックに対する保留ビット3
4をセットし(ブロック58)、その後で、保留ビット
34はクリヤされ(ブロック59a)、データがCPU
34へ供給される(ブロック60)。ブロック55にお
ける判定の結果が否定であると、保留ビット34がアド
レスされたキャッシュ内の任意のサブブロックに対して
セットされたかどうかをCC6は判定する(ブロック5
6)。任意の保留ビット34がセットされたとすると、
CPU2は再試行することを命令される(ブロック56
a)。ブロック56における判定の結果が否定であると
すると、CC6はアドレス・サブブロックのアドレスを
ブロック・ミス・レジスタ28へ書込む(ブロック5
7)。その後で、CC6はアクセスされたターゲット・
サブブロックに対する保留ビット34をセットし(ブロ
ック58)、その後でデータがそのサブブロックから検
索される(ブロック59)。それから保留ビット34は
クリヤされ(ブロック59a)、データはCPU2へ供
給される(ブロック59)。それからメモリ参照はブロ
ック61で終わる。
【0038】一般に、任意の保留ビット34がセットさ
れた後で、そのサブブロックへ指令された任意のキャッ
シュ・オペレーションが再試行することを指令されるで
あろうことをCC6は指令する。それから、CC6は、
ターゲット・サブブロックがターゲット・データを含ん
でいるかどうかを、仮想アドレス40で与えられた物理
的アドレス44を、キャッシュ・ディレクトリ15内の
アドレス・タグ31と比較することにより、確認する。
ターゲット・データが見つかったとすると、CPU2が
再試行する時に、それはCPU2へ供給される。さもな
いと、CC6はターゲット・データを検索するために主
メモリ・アクセス・サイクルを開始する。ターゲット・
データがCPU2へ供給されると、保留ビット34がク
リヤされ、サブブロックが任意のCPUをアクセスでき
るように再びなる。
【0039】キャッシュ装置5とCC6は、前記プリフ
ェッチ機能を可能にし、保留されているものとして示さ
れているが、とくに識別されていないものを判定するた
めにブロック・ミス・レジスタ(図示せず)を更に採用
する。プリフェッチ機能はメモリ待ち時間を短縮するよ
うに動作するから、サブブロックに対するバースト読出
しアクセスを行うと、以後のサブブロックに対する有効
なビットがクリヤであるとすると、それはブロックの境
界により囲まれている次のサブブロックをプリフェッチ
する。好適な実施例においては、ブロックミス機能がた
だ2つの標準的なレジスタを介して実行される。1つの
クロックミス・レジスタが読出し時にミスを識別し、別
のブロック・ミス・レジスタは書込み時にミスを識別す
る。各ブロック・ミスレジスタは物理的アドレスとキャ
ッシュ・ディレクトリ・インデックスを保存するための
サイズにされる。
【0040】前記のように、本発明のCC6は、要求さ
れて、プリフェッチされたサブブロックに到達順位を課
さない。ブロック・ミスが生ずると、CC6は次の順次
サブブロックをプリフェッチし、その後で物理的アドレ
ス44とキャッシュ・インデックス41がブロック・ミ
ス・レジスタへロードされる。検索されたサブブロック
がミスの後で受けられると、そのサブブロックを含んで
いるブロックに対するアドレス・フィールドが更新さ
れ、そのサブブロックに対する有効なビット37がセッ
トされる。プリフェッチされたサブブロックのアドレス
・フィールド31が、それに対してブロック・ミスが起
きたブロック・ミス・レジスタに保存されているアドレ
スと一致したとすると、プリフェッチされたそのサブブ
ロックが最初に戻されたサブブロックであることが知ら
れる。最初に検索されたサブブロックがサブブロックの
取り出しまたはプリフェッチに続いて到達すると、その
ブロックのための全てのサブブロックに対する有効なビ
ット37がクリヤされ、それからデータを有する適切な
サブブロックだけに対する有効なビット37と保留ビッ
ト34がそれぞれセットおよびクリヤされる。プリフェ
ッチ・オペレーションが依然としてそれ自体未決である
ことがあるから、保留ビット34は残りのサブブロック
に対してはクリヤされない。その場合には、検索された
プリフェッチ・データはサブブロック・ミスとして現
れ、その後でpビットがクリヤされ、有効なビット37
がセットされる。ブロック・ミス・レジスタ28の重要
性は、保留するブロック・ミスを有するブロックのサブ
ブロックに対するアクセスを単に阻止することである。
【0041】I/Oカウント・レジスタ(図示せず)
が、未決であり、まだ終了されていないI/O書込み動
作の数を追跡し、I/Oバス8および関連するバッファ
空間の飽和を阻止する。全ての未決の書込み動作を1つ
のレジスタで追跡できる。物理的I/O装置がI/Oペ
ージへ割り当てられる。各I/O装置は独特のページへ
割り当てられる。I/Oページは物理的ページではな
く、インプルメンテーションが要求できるものとして各
I/Oへ割り当てられるアドレス空間の単に便利なユニ
ットであることに注目すべきである。それらのI/O装
置に対するI/O動作はI/Oページを任意にアクセス
する事を許されず、現在のI/Oページに限られる。C
C6は、I/O動作をI/O装置へ出されたときに、I
/Oカウントを増加し、I/O動作が終わったことを示
す肯定応答がCPU2により受けられた時にカウント・
レジスタのカウントを減少する。I/O動作が現在のペ
ージ以外のI/Oページへ割り当てられているI/O装
置をアクセスする事を試みるとすると、現在のページに
対するI/Oカウント・レジスタにより示されるカウン
トが零になるまで、CPU2はその動作を再試行するこ
とを命令される。設計I/Oカウント・レジスタにおい
て使用できるおよび最大カウントは、CC6に含まれて
いるが、CCとI/Oバスのアレイの間のバッファ空間
の適切な設計のために必要である。外部バス・ウオッチ
ャ装置へ結合されているI/O物理的アドレス・レジス
タは、未決のI/O動作に関連する物理的アドレスを追
跡し、I/O動作がそのI/O物理的動作に失敗した時
に時間切れの通知を出す。各I/O装置へ独特の物理的
アドレスが割り当てられているから、任意のI/O装置
により送られる時間切れはそのI/O装置へ割り当てら
れているI/Oページに記録される。
【0042】同様に、共用されている書込みカウント・
レジスタおよび共用されている書込み物理的アドレス・
レジスタは、主メモリへ書込まれているキャッシュ可能
なデータに対して未決である未決の書込み動作の数を追
跡することを許す。CC6とキャッシュ装置5は、CC
6からCPU2へ送られたPEND信号もサポートし
て、マルチプロセッサ環境内に未決の書込み動作が存在
する事をCPU2へ知らせる。PEND信号をサポート
することにより、順序づけられている書込み動作に対す
る全記憶順位づけ、または部分記憶順位づけをCPU2
が実行する事をユーザーの選択で行うことを許す。PE
ND信号をアサートする事により、以後に行われる書込
み動作が以前に行われた書込み動作を待つことに制約す
る。それにより絶対的な性能が減少するが、記憶の順位
づけは維持できる。
【図面の簡単な説明】
【図1】本発明の教示を含む外部キャッシュ・メモリお
よびキャッシュ制御器のブロック図概観である。
【図2】キャッシュ制御器の機能的ブロック図である。
【図3】キャッシュ制御器内部のマルチプロセッサ・バ
ス・インターフェイスおよび制御器の機能的ブロック図
である。
【図4】インデックスにより選択されたディレクトリ・
エントリの例を示す、外部キャッシュ・ディレクトリの
機能的ブロック図である。
【図5】キャッシュ・アクセス動作の例を示す時間線で
ある。
【図6】キャッシュ・アクセス動作の例を示す動作の流
れ図である。
【符号の説明】
2 CPU 4 CPUバス 5 キャッシュ装置 6 キャッシュ制御器 8 マルチプロセッサ・バス 9 主メモリ装置 10 プロセッサ・モジュール 11 MPバス・インターフェイスおよび制御器 12 MPコマンド・モジュール 13 CPUコマンド・モジュール 15 キャッシュ・ディレクトリ 19 MPインターフェイスおよび制御器 21 CPUバス・フレーム・ユニット 22 仮想バス・インターフェイス 23 CPUバス・アービタ 24 CPUバス・インターフェイス
フロントページの続き (72)発明者 カート・バーグ アメリカ合衆国 94087 カリフォルニア 州・サニーヴェイル・ナンバー8エイチ・ ホーレンベック ロード・777 (72)発明者 ジョージ・クルツ−ライアス アメリカ合衆国 95129 カリフォルニア 州・サン ホゼ・チャンテル コート・ 6901

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 中央処理装置(CPU)および主メモリ
    を含むコンピュータ装置のキャッシュメモリ構造におい
    て、 複数のサブブロックを備える複数のブロックを備え、第
    1のバスにより前記CPUへ結合されるキャッシュと、 前記第1のバスによりそのキャッシュおよび前記CPU
    へ結合されるキャッシュ・ディレクトリを含み、第2の
    バスにより前記主メモリへ結合され、 前記キャッシュ・ディレクトリは、アドレス・タグを備
    える複数のタグ・エントリを備え、それら複数のタグ・
    エントリは前記サブブロックに対応する複数の状態ビッ
    ト・フィールドを更に備え、 キャッシュ・ディレクトリ・インデックスにより指され
    る前記タグ・エントリは物理的アドレスのキャッシュ・
    ディレクトリ・インデックス・フィールドを備えるキャ
    ッシュ制御器と、 前記キャッシュ・ディレクトリへ結合され、以前に出さ
    れたキャッシュ・オペレーションが前記ターゲット・サ
    ブブロックに対して未決のものである時に、キャッシュ
    ・アクセスを再び試みるために、前記CPUがキャッシ
    ュ・アクセス企画をターゲット・サブブロックへ出すこ
    とを前記キャッシュ制御器が前記CPUへ対して指令す
    ることを可能にするオペレーション保留通知手段と、を
    有することを特徴とするキャッシュメモリ構造。
  2. 【請求項2】 中央処理装置(CPU)および主メモリ
    を含むコンピュータ装置でキャッシュメモリを動作させ
    る方法において、 複数のサブブロックを備える複数のブロックを備え、第
    1のバスにより前記CPUへ結合されるキャッシュを用
    意する過程と、 前記第1のバスによりこのキャッシュおよび前記CPU
    へ結合されるキャッシュ・ディレクトリを含み、第2の
    バスにより前記主メモリへ結合されるキャッシュ制御器
    を用意する過程と、 アドレス・タグを備え、前記サブブロックに対応する複
    数の状態ビット・フィールドを備える複数のタグ・エン
    トリを用意する過程と、 前記キャッシュ・ディレクトリへ結合され、以前に出さ
    れたキャッシュ・オペレーションが前記ターゲット・サ
    ブブロックに対して未決のものである時に、キャッシュ
    ・アクセスを再び試みるために、前記CPUがキャッシ
    ュ・アクセス企画をターゲット・サブブロックへ出すこ
    とを前記キャッシュ制御器が前記CPUへ対して指令す
    ることを可能にするオペレーション保留通知手段を用意
    する過程と、を備え、 キャッシュ・ディレクトリ・インデックスによって指さ
    れる前記タグ・エントリが物理的アドレスのキャッシュ
    ・ディレクトリ・インデックス・フィールドを備えてい
    ることを特徴とするキャッシュ・メモリを動作させる方
    法。
JP5124785A 1992-04-29 1993-04-30 キャッシュメモリ構造およびキャッシュ・メモリを動作させる方法 Pending JPH0744458A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US87635992A 1992-04-29 1992-04-29
US876359 1992-04-29

Publications (1)

Publication Number Publication Date
JPH0744458A true JPH0744458A (ja) 1995-02-14

Family

ID=25367523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5124785A Pending JPH0744458A (ja) 1992-04-29 1993-04-30 キャッシュメモリ構造およびキャッシュ・メモリを動作させる方法

Country Status (5)

Country Link
US (1) US5377345A (ja)
EP (1) EP0568231B1 (ja)
JP (1) JPH0744458A (ja)
KR (1) KR100274327B1 (ja)
DE (1) DE69323790T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100387576B1 (ko) * 1995-12-29 2003-09-22 엘지엔시스(주) 멀티프로세서시스템의캐쉬응집프로토콜처리방법

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06149669A (ja) * 1992-11-04 1994-05-31 Fujitsu Ltd キャッシュデータ転送方式およびキャッシュデータ転送装置
JP3490742B2 (ja) * 1993-09-08 2004-01-26 松下電器産業株式会社 メモリ管理装置
KR970010368B1 (ko) * 1994-01-18 1997-06-25 삼성전자 주식회사 캐시라인 리프레이스장치 및 방법
CA2148028A1 (en) * 1994-05-25 1995-11-26 Deborah L. Mcguinness Knowledge base management system with dependency information for procedural tests
JP3360933B2 (ja) * 1994-06-01 2003-01-07 富士通株式会社 情報処理システムにおける記憶制御方法および記憶制御装置
US5787465A (en) * 1994-07-01 1998-07-28 Digital Equipment Corporation Destination indexed miss status holding registers
US5717895A (en) * 1994-12-01 1998-02-10 Cray Research, Inc. Associative scalar data cache with write-through capabilities for a vector processor
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US5860127A (en) * 1995-06-01 1999-01-12 Hitachi, Ltd. Cache memory employing dynamically controlled data array start timing and a microcomputer using the same
US5761712A (en) * 1995-06-07 1998-06-02 Advanced Micro Devices Data memory unit and method for storing data into a lockable cache in one clock cycle by previewing the tag array
US5778434A (en) * 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
JP2964926B2 (ja) * 1995-08-29 1999-10-18 富士ゼロックス株式会社 データベース管理装置及び方法
US5822755A (en) * 1996-01-25 1998-10-13 International Business Machines Corporation Dual usage memory selectively behaving as a victim cache for L1 cache or as a tag array for L2 cache
US5937431A (en) * 1996-07-12 1999-08-10 Samsung Electronics Co., Ltd. Multi- node, multi-level cache- only memory architecture with relaxed inclusion
JP2919376B2 (ja) * 1996-08-23 1999-07-12 日本電気アイシーマイコンシステム株式会社 読出し専用記憶媒体の読出し方法
US5860158A (en) * 1996-11-15 1999-01-12 Samsung Electronics Company, Ltd. Cache control unit with a cache request transaction-oriented protocol
US6052762A (en) * 1996-12-02 2000-04-18 International Business Machines Corp. Method and apparatus for reducing system snoop latency
US6085288A (en) * 1997-04-14 2000-07-04 International Business Machines Corporation Dual cache directories with respective queue independently executing its content and allowing staggered write operations
US6785888B1 (en) * 1997-08-29 2004-08-31 International Business Machines Corporation Memory allocator for a multiprocessor computer system
US6625694B2 (en) * 1998-05-08 2003-09-23 Fujitsu Ltd. System and method for allocating a directory entry for use in multiprocessor-node data processing systems
US6237067B1 (en) 1998-08-31 2001-05-22 International Business Machines Corporation System and method for handling storage consistency conflict
US6449697B1 (en) 1999-04-23 2002-09-10 International Business Machines Corporation Prestaging data into cache in preparation for data transfer operations
AUPQ486599A0 (en) * 1999-12-23 2000-02-03 Zentronix Pty Ltd A method of storing and retrieving miniaturised data
US6564229B1 (en) * 2000-06-08 2003-05-13 International Business Machines Corporation System and method for pausing and resuming move/copy operations
US6848024B1 (en) * 2000-08-07 2005-01-25 Broadcom Corporation Programmably disabling one or more cache entries
US6732234B1 (en) 2000-08-07 2004-05-04 Broadcom Corporation Direct access mode for a cache
US6748492B1 (en) * 2000-08-07 2004-06-08 Broadcom Corporation Deterministic setting of replacement policy in a cache through way selection
US6748495B2 (en) 2001-05-15 2004-06-08 Broadcom Corporation Random generator
US6832279B1 (en) * 2001-05-17 2004-12-14 Cisco Systems, Inc. Apparatus and technique for maintaining order among requests directed to a same address on an external bus of an intermediate network node
JP2002368850A (ja) * 2001-06-05 2002-12-20 Sony Corp 携帯無線端末装置
JP4417715B2 (ja) * 2001-09-14 2010-02-17 サン・マイクロシステムズ・インコーポレーテッド キャッシュメモリにおける、タグおよびデータアクセスを分断する方法および装置
US7000081B2 (en) * 2002-02-12 2006-02-14 Ip-First, Llc Write back and invalidate mechanism for multiple cache lines
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
JP2010033480A (ja) * 2008-07-31 2010-02-12 Sony Corp キャッシュメモリおよびキャッシュメモリ制御装置
US8504774B2 (en) 2010-10-13 2013-08-06 Microsoft Corporation Dynamic cache configuration using separate read and write caches
US9311251B2 (en) 2012-08-27 2016-04-12 Apple Inc. System cache with sticky allocation
US20140089600A1 (en) * 2012-09-27 2014-03-27 Apple Inc. System cache with data pending state
WO2014174578A1 (ja) * 2013-04-22 2014-10-30 株式会社日立製作所 エッジサーバ及び記憶制御方法
CN104331352B (zh) * 2014-11-19 2018-03-09 浪潮(北京)电子信息产业有限公司 cache一致性芯片地址带外读取检测方法及装置
US10558462B2 (en) * 2018-05-23 2020-02-11 Arm Limited Apparatus and method for storing source operands for operations
CN111104166B (zh) * 2019-12-13 2022-09-06 北京新忆科技有限公司 寄存器的写入方法和写入装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE280954C (ja) *
JPS55146682A (en) * 1979-05-01 1980-11-15 Nec Corp Data transfer system
US4315310A (en) * 1979-09-28 1982-02-09 Intel Corporation Input/output data processing system
US4370710A (en) * 1980-08-26 1983-01-25 Control Data Corporation Cache memory organization utilizing miss information holding registers to prevent lockup from cache misses
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
DE3862488D1 (de) * 1987-02-16 1991-05-29 Siemens Ag Verfahren zur steuerung des datenaustausches zwischen verarbeitungseinheiten und einem speichersystem mit cachespeicher in datenverarbeitungsanlagen, sowie ein entsprechend arbeitender cachespeicher.
US5025366A (en) * 1988-01-20 1991-06-18 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in cache system design
US4977498A (en) * 1988-04-01 1990-12-11 Digital Equipment Corporation Data processing system having a data memory interlock coherency scheme
US5025365A (en) * 1988-11-14 1991-06-18 Unisys Corporation Hardware implemented cache coherency protocol with duplicated distributed directories for high-performance multiprocessors
US5018063A (en) * 1988-12-05 1991-05-21 International Business Machines Corporation Method for reducing cross-interrogate delays in a multiprocessor system
US5197146A (en) * 1989-06-21 1993-03-23 Hewlett-Packard Company Method for maintaining cache coherence in a multiprocessor computer system
US5230070A (en) * 1989-09-08 1993-07-20 International Business Machines Corporation Access authorization table for multi-processor caches
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
JPH061463B2 (ja) * 1990-01-16 1994-01-05 インターナショナル・ビジネス・マシーンズ・コーポレーション マルチプロセッサ・システムおよびそのプライベート・キャッシュ制御方法
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5210845A (en) * 1990-11-28 1993-05-11 Intel Corporation Controller for two-way set associative cache
US5228134A (en) * 1991-06-04 1993-07-13 Intel Corporation Cache memory integrated circuit for use with a synchronous central processor bus and an asynchronous memory bus

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100387576B1 (ko) * 1995-12-29 2003-09-22 엘지엔시스(주) 멀티프로세서시스템의캐쉬응집프로토콜처리방법

Also Published As

Publication number Publication date
US5377345A (en) 1994-12-27
EP0568231A1 (en) 1993-11-03
EP0568231B1 (en) 1999-03-10
DE69323790T2 (de) 1999-10-07
KR100274327B1 (ko) 2000-12-15
DE69323790D1 (de) 1999-04-15
KR930022222A (ko) 1993-11-23

Similar Documents

Publication Publication Date Title
JPH0744458A (ja) キャッシュメモリ構造およびキャッシュ・メモリを動作させる方法
US5398325A (en) Methods and apparatus for improving cache consistency using a single copy of a cache tag memory in multiple processor computer systems
US6185660B1 (en) Pending access queue for providing data to a target register during an intermediate pipeline phase after a computer cache miss
US5353426A (en) Cache miss buffer adapted to satisfy read requests to portions of a cache fill in progress without waiting for the cache fill to complete
US8725987B2 (en) Cache memory system including selectively accessible pre-fetch memory for pre-fetch of variable size data
US5577227A (en) Method for decreasing penalty resulting from a cache miss in multi-level cache system
US7281092B2 (en) System and method of managing cache hierarchies with adaptive mechanisms
US5903911A (en) Cache-based computer system employing memory control circuit and method for write allocation and data prefetch
US5388247A (en) History buffer control to reduce unnecessary allocations in a memory stream buffer
JP3577331B2 (ja) キャッシュメモリシステムおよびマイクロプロセッサ内の命令を操作するための方法
JP2002536716A (ja) 仮想メモリシステムにおけるメモリアクセスの改善技術
JPH10133947A (ja) 統合されたプロセッサ・メモリ装置
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JPH09114736A (ja) パケット交換型キャッシュコヒーレントマルチプロセッサシステムのデータプロセッサ用高速デュアルポート型キャッシュコントローラ
US5909697A (en) Reducing cache misses by snarfing writebacks in non-inclusive memory systems
JPH10177519A (ja) 統合されたプロセッサ・メモリ装置
US8135910B2 (en) Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory
JP2001147854A (ja) 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
US20080307169A1 (en) Method, Apparatus, System and Program Product Supporting Improved Access Latency for a Sectored Directory
US6496917B1 (en) Method to reduce memory latencies by performing two levels of speculation
US6976128B1 (en) Cache flush system and method
US20020188805A1 (en) Mechanism for implementing cache line fills
US6934810B1 (en) Delayed leaky write system and method for a cache memory
US20050050280A1 (en) Data accessing method and system for processing unit
JPH11316738A (ja) 公平な仲裁機構を提供するコンピュータ・システム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040525