JP2784464B2 - 階層キャッシュ・システム - Google Patents
階層キャッシュ・システムInfo
- Publication number
- JP2784464B2 JP2784464B2 JP7021735A JP2173595A JP2784464B2 JP 2784464 B2 JP2784464 B2 JP 2784464B2 JP 7021735 A JP7021735 A JP 7021735A JP 2173595 A JP2173595 A JP 2173595A JP 2784464 B2 JP2784464 B2 JP 2784464B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- request
- data
- buffer
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
【0001】
【産業上の利用分野】本発明は一般にコンピュータ・シ
ステムに関し、特に階層キャッシュ・システムに関す
る。
ステムに関し、特に階層キャッシュ・システムに関す
る。
【0002】
【従来の技術】従来のコンピュータ・システムは、CP
U、主メモリ及びCPUと主メモリとの間に置かれて主
メモリ・データへのアクセスを高速化するキャッシュ・
システムを含む。典型的なキャッシュ・システムは、主
メモリからフェッチされる、或いは書込まれるデータを
記憶するデータ・キャッシュと、データ・キャッシュに
コピーされるデータの主メモリ・アドレスを記憶するデ
ィレクトリとを含む。プロセッサは主メモリよりもデー
タ・キャッシュをより高速にアクセスできる。なぜな
ら、データ・キャッシュは主メモリよりも小さく、物理
的に主メモリよりもプロセッサに近接して配置され、通
常は高速で高価な技術により形成されるからである。結
果的に、CPUにより現在必要とされるデータ、及び次
に必要とされる可能性のあるデータをキャッシュに記憶
することが望ましい。効果的なキャッシュ方法は、参照
の空間的及び一時的局所性、すなわちプロセッサにより
次に必要とされる可能性のあるデータが主メモリ内にお
いて、現在要求されるデータの近くに記憶されることに
もとづく。これは、プロセッサがあるファイルのライン
を順次読出すことを要求し、そのファイルのラインが、
主メモリ内の連続ロケーションに記憶される場合に当て
はまる。従って、プロセッサが1要求につき通常4バイ
トまたは8バイトのデータを要求する時、このデータと
キャッシュ・ブロックの残り(通常、1ラインは128
バイトの連続アドレスを含む)とが一緒に、主メモリか
らフェッチされ、データ・キャッシュにロードされる。
比較的遠隔の主メモリから完全なブロックをフェッチす
る時間コストは、プロセッサがブロック(またはライ
ン)の残りをキャッシュからアクセスする時に埋合わせ
される。
U、主メモリ及びCPUと主メモリとの間に置かれて主
メモリ・データへのアクセスを高速化するキャッシュ・
システムを含む。典型的なキャッシュ・システムは、主
メモリからフェッチされる、或いは書込まれるデータを
記憶するデータ・キャッシュと、データ・キャッシュに
コピーされるデータの主メモリ・アドレスを記憶するデ
ィレクトリとを含む。プロセッサは主メモリよりもデー
タ・キャッシュをより高速にアクセスできる。なぜな
ら、データ・キャッシュは主メモリよりも小さく、物理
的に主メモリよりもプロセッサに近接して配置され、通
常は高速で高価な技術により形成されるからである。結
果的に、CPUにより現在必要とされるデータ、及び次
に必要とされる可能性のあるデータをキャッシュに記憶
することが望ましい。効果的なキャッシュ方法は、参照
の空間的及び一時的局所性、すなわちプロセッサにより
次に必要とされる可能性のあるデータが主メモリ内にお
いて、現在要求されるデータの近くに記憶されることに
もとづく。これは、プロセッサがあるファイルのライン
を順次読出すことを要求し、そのファイルのラインが、
主メモリ内の連続ロケーションに記憶される場合に当て
はまる。従って、プロセッサが1要求につき通常4バイ
トまたは8バイトのデータを要求する時、このデータと
キャッシュ・ブロックの残り(通常、1ラインは128
バイトの連続アドレスを含む)とが一緒に、主メモリか
らフェッチされ、データ・キャッシュにロードされる。
比較的遠隔の主メモリから完全なブロックをフェッチす
る時間コストは、プロセッサがブロック(またはライ
ン)の残りをキャッシュからアクセスする時に埋合わせ
される。
【0003】また、外部記憶装置から入出力プロセッサ
を介してアクセスされるデータが、CPUによりキャッ
シュ・システムからアクセスされるように、入出力プロ
セッサのセットをキャッシュ・システムに接続すること
が、従来より知られている。
を介してアクセスされるデータが、CPUによりキャッ
シュ・システムからアクセスされるように、入出力プロ
セッサのセットをキャッシュ・システムに接続すること
が、従来より知られている。
【0004】階層2レベル・キャッシュ・システムも既
知であり、複数のレベル1(L1)データ・キャッシュ
と、それぞれのディレクトリとを含む。L1キャッシュ
とディレクトリとの各対は1つのプロセッサにサービス
する。レベル2(L2)データ・キャッシュ及び関連デ
ィレクトリは、全てのL1キャッシュ及び関連ディレク
トリに接続され、これらにサービスする。L2データ・
キャッシュはまた主メモリ(または拡張メモリ)に接続
され、任意のプロセッサにより要求される全てのデータ
のコピーを記憶する。別のCPUが同一のデータを要求
すると、これはL2キャッシュから使用可能となり、
(より時間を費やす)主メモリからフェッチされる必要
はない。任意のプロセッサがデータを変更すると、変更
データがL2キャッシュに書込まれ、L2データ・キャ
ッシュに関連する制御ハードウェアが、そのデータのコ
ピーを含む他の全てのL1キャッシュに、そのデータの
コピーが無効であることを通知する。L2キャッシュ
は、主メモリと全てのL1キャッシュとの間でデータを
転送するための中央ステーションとして機能する。
知であり、複数のレベル1(L1)データ・キャッシュ
と、それぞれのディレクトリとを含む。L1キャッシュ
とディレクトリとの各対は1つのプロセッサにサービス
する。レベル2(L2)データ・キャッシュ及び関連デ
ィレクトリは、全てのL1キャッシュ及び関連ディレク
トリに接続され、これらにサービスする。L2データ・
キャッシュはまた主メモリ(または拡張メモリ)に接続
され、任意のプロセッサにより要求される全てのデータ
のコピーを記憶する。別のCPUが同一のデータを要求
すると、これはL2キャッシュから使用可能となり、
(より時間を費やす)主メモリからフェッチされる必要
はない。任意のプロセッサがデータを変更すると、変更
データがL2キャッシュに書込まれ、L2データ・キャ
ッシュに関連する制御ハードウェアが、そのデータのコ
ピーを含む他の全てのL1キャッシュに、そのデータの
コピーが無効であることを通知する。L2キャッシュ
は、主メモリと全てのL1キャッシュとの間でデータを
転送するための中央ステーションとして機能する。
【0005】こうした階層キャッシュ・システムを"ス
トア・スルー(store through)"・モードまたは"スト
ア・イン(store in)"・モードで動作することが知ら
れている。"ストア・スルー"・モードでは、CPUはデ
ータをL2キャッシュだけに記憶することを要求する。
これらのメモリ・ロケーションが現在L2キャッシュ内
で提供されている場合、データは主メモリをアクセスす
ることなしにL2キャッシュ内のこれらのメモリ・ロケ
ーションに記憶される。これらのメモリ・ロケーション
があるL1キャッシュ内にも提供されている場合には、
これらのメモリ・ロケーションがL1キャッシュ内で無
効にされるが、データはそれらに書込まれない。また、
これらのメモリ・ロケーションが現在L2キャッシュ内
に提供されない場合、これらのメモリ・ロケーションの
内容及び関連メモリ・ページが、主メモリからL2キャ
ッシュにコピーされ、次にCPUデータにより上書きさ
れる。これらのメモリ・ロケーションがL2キャッシュ
において提供されない最後の場合では、これらはL1キ
ャッシュ内にも存在せず、従って、L1キャッシュにお
いてアクションは取られない。
トア・スルー(store through)"・モードまたは"スト
ア・イン(store in)"・モードで動作することが知ら
れている。"ストア・スルー"・モードでは、CPUはデ
ータをL2キャッシュだけに記憶することを要求する。
これらのメモリ・ロケーションが現在L2キャッシュ内
で提供されている場合、データは主メモリをアクセスす
ることなしにL2キャッシュ内のこれらのメモリ・ロケ
ーションに記憶される。これらのメモリ・ロケーション
があるL1キャッシュ内にも提供されている場合には、
これらのメモリ・ロケーションがL1キャッシュ内で無
効にされるが、データはそれらに書込まれない。また、
これらのメモリ・ロケーションが現在L2キャッシュ内
に提供されない場合、これらのメモリ・ロケーションの
内容及び関連メモリ・ページが、主メモリからL2キャ
ッシュにコピーされ、次にCPUデータにより上書きさ
れる。これらのメモリ・ロケーションがL2キャッシュ
において提供されない最後の場合では、これらはL1キ
ャッシュ内にも存在せず、従って、L1キャッシュにお
いてアクションは取られない。
【0006】"ストア・イン"・モードでは、CPUはデ
ータを関連するL1キャッシュとL2キャッシュの両方
に記憶することを要求する。これらのメモリ・ロケーシ
ョンが現在L2キャッシュ内に提供されると、主メモリ
をアクセスすることなしに、データがL2キャッシュ内
のこれらのメモリ・ロケーションに記憶される。また、
関連するL1キャッシュ内のこれらのメモリ・ロケーシ
ョンが、新たなデータにより更新される。これらのメモ
リ・ロケーションが他のL1キャッシュ内に提供される
場合には、他のL1キャッシュ内のこれらのメモリ・ロ
ケーションが無効にされる。また、これらのメモリ・ロ
ケーションが現在L2キャッシュ内に提供されない場合
には、これらのメモリ・ロケーションの内容及び関連メ
モリ・ページが主メモリからL2キャッシュにコピーさ
れ、CPUデータにより上書きされる。次に、これらの
メモリ・ロケーションの更新された内容が、要求するC
PUのL1キャッシュに書込まれる。
ータを関連するL1キャッシュとL2キャッシュの両方
に記憶することを要求する。これらのメモリ・ロケーシ
ョンが現在L2キャッシュ内に提供されると、主メモリ
をアクセスすることなしに、データがL2キャッシュ内
のこれらのメモリ・ロケーションに記憶される。また、
関連するL1キャッシュ内のこれらのメモリ・ロケーシ
ョンが、新たなデータにより更新される。これらのメモ
リ・ロケーションが他のL1キャッシュ内に提供される
場合には、他のL1キャッシュ内のこれらのメモリ・ロ
ケーションが無効にされる。また、これらのメモリ・ロ
ケーションが現在L2キャッシュ内に提供されない場合
には、これらのメモリ・ロケーションの内容及び関連メ
モリ・ページが主メモリからL2キャッシュにコピーさ
れ、CPUデータにより上書きされる。次に、これらの
メモリ・ロケーションの更新された内容が、要求するC
PUのL1キャッシュに書込まれる。
【0007】従来の上述の階層キャッシュ・システムで
は、CPUがL3キャッシュまたは主メモリ内のデータ
を更新したい時、最初に旧データをL2キャッシュに"
ストア・スルー"・モードまたは"ストア・イン"・モー
ドでコピーし、次にL2キャッシュ内のデータを更新
し、要求時に更新データを主メモリへ"キャスト・アウ
ト"することが必要である。このことはCPUが即時デ
ータを読出したり、更にデータを更新することを望まな
い場合に、次に示すような欠点を有する。すなわち、C
PUが旧データを主メモリからL2キャッシュにフェッ
チし、更新データをL2キャッシュに書込み、次に更新
データをキャスト・アウトすることは時間を消費し、厄
介である。主メモリの更新が要求される以前に、データ
がL2キャッシュ内に存在していたとしても、実際に更
新をL2キャッシュに書込み、更新データを主メモリに
キャスト・アウトすることは時間を消費する。またデー
タがL2キャッシュに書込まれる時に、他のデータが新
たなデータのための空間を設けるためにキャスト・アウ
トされ、その時、CPUが丁度キャスト・アウトされた
データを必要とする可能性もある。
は、CPUがL3キャッシュまたは主メモリ内のデータ
を更新したい時、最初に旧データをL2キャッシュに"
ストア・スルー"・モードまたは"ストア・イン"・モー
ドでコピーし、次にL2キャッシュ内のデータを更新
し、要求時に更新データを主メモリへ"キャスト・アウ
ト"することが必要である。このことはCPUが即時デ
ータを読出したり、更にデータを更新することを望まな
い場合に、次に示すような欠点を有する。すなわち、C
PUが旧データを主メモリからL2キャッシュにフェッ
チし、更新データをL2キャッシュに書込み、次に更新
データをキャスト・アウトすることは時間を消費し、厄
介である。主メモリの更新が要求される以前に、データ
がL2キャッシュ内に存在していたとしても、実際に更
新をL2キャッシュに書込み、更新データを主メモリに
キャスト・アウトすることは時間を消費する。またデー
タがL2キャッシュに書込まれる時に、他のデータが新
たなデータのための空間を設けるためにキャスト・アウ
トされ、その時、CPUが丁度キャスト・アウトされた
データを必要とする可能性もある。
【0008】
【発明が解決しようとする課題】本発明の一般的な目的
は、データをL2キャッシュに書込むことなく、CPU
がデータを主メモリ内のあるロケーションから、主メモ
リ内の別のロケーションにコピーすることが可能な階層
キャッシュ・システムを提供することである。
は、データをL2キャッシュに書込むことなく、CPU
がデータを主メモリ内のあるロケーションから、主メモ
リ内の別のロケーションにコピーすることが可能な階層
キャッシュ・システムを提供することである。
【0009】
【0010】更に本発明の別の一般的な目的は、CPU
による最小の制御を要求する上述のタイプの階層キャッ
シュ・システムを提供することである。
による最小の制御を要求する上述のタイプの階層キャッ
シュ・システムを提供することである。
【0011】
【0012】
【課題を解決するための手段】本発明は、複数のCPU
のデータをそれぞれ記憶するための複数の第1レベル・
キャッシュ・サブシステムと、前記複数の第1レベル・
キャッシュ・サブシステムのデータを保持するための第
2レベル・キャッシュ・サブシステムと、前記第2レベ
ル・キャッシュ・サブシステムに結合される主メモリと
を備える、階層キャッシュ・システムに帰する。ページ
・ムーバ(page mover)が、第2レベル・キャッシュ・
サブシステム及び主メモリに結合され、主メモリ内の1
つのロケーションの内容を主メモリ内の別のロケーショ
ンにコピーするためのコピー要求が1つの前記CPUか
ら発行されることに応答して、前記1つのロケーション
の内容が前記第1または第2レベル・キャッシュ・サブ
システム内に保持されていない場合は、前記1つのロケ
ーションからその内容をフェッチし、当該フェッチされ
た内容を、前記第1または前記第2レベル・キャッシュ
・サブシステム内にコピーすることなく、前記第1及び
前記第2レベル・キャッシュ・サブシステムとは別個に
設けられた一のバッファ内に一時的に格納するととも
に、当該格納された内容を前記一のバッファから前記別
のロケーションに書き込む。また、無効化手段は、前記
コピー要求が前記1つのCPUから発行されることに応
答して、前記第2レベル・キャッシュ・サブシステム内
に前記別のロケーションの内容が保持されているか否か
を検知し、保持されている場合には、当該保持されてい
る内容を無効化する。
のデータをそれぞれ記憶するための複数の第1レベル・
キャッシュ・サブシステムと、前記複数の第1レベル・
キャッシュ・サブシステムのデータを保持するための第
2レベル・キャッシュ・サブシステムと、前記第2レベ
ル・キャッシュ・サブシステムに結合される主メモリと
を備える、階層キャッシュ・システムに帰する。ページ
・ムーバ(page mover)が、第2レベル・キャッシュ・
サブシステム及び主メモリに結合され、主メモリ内の1
つのロケーションの内容を主メモリ内の別のロケーショ
ンにコピーするためのコピー要求が1つの前記CPUか
ら発行されることに応答して、前記1つのロケーション
の内容が前記第1または第2レベル・キャッシュ・サブ
システム内に保持されていない場合は、前記1つのロケ
ーションからその内容をフェッチし、当該フェッチされ
た内容を、前記第1または前記第2レベル・キャッシュ
・サブシステム内にコピーすることなく、前記第1及び
前記第2レベル・キャッシュ・サブシステムとは別個に
設けられた一のバッファ内に一時的に格納するととも
に、当該格納された内容を前記一のバッファから前記別
のロケーションに書き込む。また、無効化手段は、前記
コピー要求が前記1つのCPUから発行されることに応
答して、前記第2レベル・キャッシュ・サブシステム内
に前記別のロケーションの内容が保持されているか否か
を検知し、保持されている場合には、当該保持されてい
る内容を無効化する。
【0013】ページ・ムーバは、それぞれのブロック・
データの記憶またはコピー要求を記憶する少なくとも4
つの要求バッファ、及び要求バッファに関連する4つの
データ・セグメント・バッファを含む。各データ・セグ
メント・バッファは、データの所定のサイズのセグメン
トを記憶するように大きさを決められる。ページ・ムー
バは、それぞれの未処理の要求を保持する要求バッファ
を循環式に選択する。要求バッファの1つが選択される
度に、ページ・ムーバは、要求をデータ・セグメント・
バッファの1つに受渡し、選択された要求バッファ内の
要求に関連するデータの所定サイズのセグメントが記憶
またはコピーされる。
データの記憶またはコピー要求を記憶する少なくとも4
つの要求バッファ、及び要求バッファに関連する4つの
データ・セグメント・バッファを含む。各データ・セグ
メント・バッファは、データの所定のサイズのセグメン
トを記憶するように大きさを決められる。ページ・ムー
バは、それぞれの未処理の要求を保持する要求バッファ
を循環式に選択する。要求バッファの1つが選択される
度に、ページ・ムーバは、要求をデータ・セグメント・
バッファの1つに受渡し、選択された要求バッファ内の
要求に関連するデータの所定サイズのセグメントが記憶
またはコピーされる。
【0014】
【実施例】図面を参照しながら本発明の説明をするが、
図面を通じ同一参照番号は同一要素を表すことを最初に
述べておく。図1は本発明による一般に20で指定され
る階層キャッシュ・システムを表す。キャッシュ・シス
テム20は4つの中央処理ユニット(CPU)22a乃
至22d、及び4つのそれぞれのレベル1(L1)キャ
ッシュ・サブシステム23a乃至23dを含む。各L1
キャッシュ・サブシステムは、L1データまたは命令キ
ャッシュ24a乃至24d、それぞれのL1ディレクト
リ26a乃至26d、及びそれぞれのL1キャッシュ制
御装置28a乃至28dを含む。各L1キャッシュ・サ
ブシステムは既知のように、1つのプロセッサにサービ
スする。例えば米国特許第4719568号は、L1キ
ャッシュ、L1ディレクトリ及びL1キャッシュ制御装
置を含むこうしたL1キャッシュ・サブシステムについ
て述べている。
図面を通じ同一参照番号は同一要素を表すことを最初に
述べておく。図1は本発明による一般に20で指定され
る階層キャッシュ・システムを表す。キャッシュ・シス
テム20は4つの中央処理ユニット(CPU)22a乃
至22d、及び4つのそれぞれのレベル1(L1)キャ
ッシュ・サブシステム23a乃至23dを含む。各L1
キャッシュ・サブシステムは、L1データまたは命令キ
ャッシュ24a乃至24d、それぞれのL1ディレクト
リ26a乃至26d、及びそれぞれのL1キャッシュ制
御装置28a乃至28dを含む。各L1キャッシュ・サ
ブシステムは既知のように、1つのプロセッサにサービ
スする。例えば米国特許第4719568号は、L1キ
ャッシュ、L1ディレクトリ及びL1キャッシュ制御装
置を含むこうしたL1キャッシュ・サブシステムについ
て述べている。
【0015】キャッシュ・システム20はまた、レベル
2(L2)キャッシュ・サブシステム31aを含む。L
2キャッシュ・サブシステム31aはデータまたは命令
キャッシュ32a、L2ディレクトリ34a、及びL2
キャッシュ制御装置36aを含む。L2キャッシュ・サ
ブシステム31aは、4つの全てのL1キャッシュ24
a乃至dにサービスする。L2ディレクトリ34aは、
主メモリ51から任意のL1キャッシュ24a乃至24
dに読出された、或いは後にCPU22a乃至22dに
より更新された全てのデータのコピーを含む。L2キャ
ッシュ・サブシステム31aはまた、各L1キャッシュ
24a乃至24dに対応するコピー・ディレクトリ54
a乃至54d(図2及び図3参照)を含み、これらはそ
れぞれのL1キャッシュ内のデータのアドレス、及び各
アドレスにおけるデータのステータス、すなわち有効、
ロック状態、フェッチ進行中、または排他的無効(inva
lidate exclusive)を示す。L2キャッシュ・サブシス
テム31aはまた、バスへのアクセス及びL2キャッシ
ュ・サブシステム31a内の資源の使用を調停するトラ
フィック・コップ(traffic cop)50a(図3参照)
を含む。L2キャッシュ・サブシステム31aはまた、
置換ディレクトリ56a(図2参照)を含み、これはど
のデータが置換されたか、並びに置換されたデータが変
更され、主メモリへのキャスト・アウト・オペレーショ
ンを要求するかどうかを示す。
2(L2)キャッシュ・サブシステム31aを含む。L
2キャッシュ・サブシステム31aはデータまたは命令
キャッシュ32a、L2ディレクトリ34a、及びL2
キャッシュ制御装置36aを含む。L2キャッシュ・サ
ブシステム31aは、4つの全てのL1キャッシュ24
a乃至dにサービスする。L2ディレクトリ34aは、
主メモリ51から任意のL1キャッシュ24a乃至24
dに読出された、或いは後にCPU22a乃至22dに
より更新された全てのデータのコピーを含む。L2キャ
ッシュ・サブシステム31aはまた、各L1キャッシュ
24a乃至24dに対応するコピー・ディレクトリ54
a乃至54d(図2及び図3参照)を含み、これらはそ
れぞれのL1キャッシュ内のデータのアドレス、及び各
アドレスにおけるデータのステータス、すなわち有効、
ロック状態、フェッチ進行中、または排他的無効(inva
lidate exclusive)を示す。L2キャッシュ・サブシス
テム31aはまた、バスへのアクセス及びL2キャッシ
ュ・サブシステム31a内の資源の使用を調停するトラ
フィック・コップ(traffic cop)50a(図3参照)
を含む。L2キャッシュ・サブシステム31aはまた、
置換ディレクトリ56a(図2参照)を含み、これはど
のデータが置換されたか、並びに置換されたデータが変
更され、主メモリへのキャスト・アウト・オペレーショ
ンを要求するかどうかを示す。
【0016】キャッシュ・システム20はまた、L2キ
ャッシュ・サブシステム31aのための記憶制御装置
(SC)38aを含む。記憶制御装置38aは、L2キ
ャッシュ・サブシステムと主メモリ51との間(及びL
2キャッシュ・サブシステムと入出力プロセッサ53a
乃至53dのセットとの間)のインタフェースとして機
能する。記憶制御装置38aはコピー・ディレクトリ3
9a−1を含み、これはL2キャッシュ32aに記憶さ
れる全てのデータのアドレス、及び各アドレスのデータ
のステータス、すなわち有効、メモリ・オペレーショ
ン、L2オペレーション無効化オペレーション、チャネ
ル記憶、チャネル・フェッチ、または入出力ロックのそ
れぞれを示す。記憶制御装置38aはまた変更ライン・
バッファ(MLB)ディレクトリ78a(図4参照)を
含み、これは主メモリに記憶される途中の変更ラインの
アドレス、及び各アドレスのデータのステータス、すな
わち有効またはキャスト・アウト保留を記憶する。記憶
制御装置は更に、バスへのアクセス及びシステム20内
の資源の使用を調停するトラフィック・コップ70a
(図4参照)を含む。
ャッシュ・サブシステム31aのための記憶制御装置
(SC)38aを含む。記憶制御装置38aは、L2キ
ャッシュ・サブシステムと主メモリ51との間(及びL
2キャッシュ・サブシステムと入出力プロセッサ53a
乃至53dのセットとの間)のインタフェースとして機
能する。記憶制御装置38aはコピー・ディレクトリ3
9a−1を含み、これはL2キャッシュ32aに記憶さ
れる全てのデータのアドレス、及び各アドレスのデータ
のステータス、すなわち有効、メモリ・オペレーショ
ン、L2オペレーション無効化オペレーション、チャネ
ル記憶、チャネル・フェッチ、または入出力ロックのそ
れぞれを示す。記憶制御装置38aはまた変更ライン・
バッファ(MLB)ディレクトリ78a(図4参照)を
含み、これは主メモリに記憶される途中の変更ラインの
アドレス、及び各アドレスのデータのステータス、すな
わち有効またはキャスト・アウト保留を記憶する。記憶
制御装置は更に、バスへのアクセス及びシステム20内
の資源の使用を調停するトラフィック・コップ70a
(図4参照)を含む。
【0017】次に図2乃至図5を参照して、CPUの読
出し要求について説明する。この説明の目的は、本発明
の中心となる主メモリ(L4または入出力)要求につい
て述べる以前に、L1及びL2キャッシュ・サブシステ
ムのオペレーションに関する特定の背景について述べる
ことである。(CPU22aからの)CPU読出し要求
がL1キャッシュ制御装置28aに受渡され、L1キャ
ッシュ制御装置28aは最初に、要求データのアドレス
が存在するかどうか、局所L1ディレクトリ26aをチ
ェックする。データがL1データ・キャッシュ24aに
記憶されていると、L1キャッシュ制御装置28aは、
データをL1キャッシュ23aからCPU22aに送信
する。しかしながら、データがL1キャッシュ23aに
存在しないと、CPUは要求データのアドレスをL10
インタフェース・キュー52aを介して、L2キャッシ
ュ・サブシステム31a内のトラフィック・コップ回路
50aに送信する。CPU22aからの要求データのア
ドレスに応答して、トラフィック・コップ50aはアド
レスをアドレス・バス60a上に出力し、これがL1コ
ピー・ディレクトリ54a乃至54dにそれぞれ対応す
る比較器62a乃至62d、及びL2ディレクトリ34
a及び置換ディレクトリ56aにそれぞれ対応する比較
器64a及び64bにより読込まれる。各比較器は、要
求アドレスをそれぞれのディレクトリに記憶されるアド
レスと比較することにより、それぞれのキャッシュが要
求データのコピーを有するかどうかを判断する。データ
がL2キャッシュ32aに存在すると、セレクタ66a
が関連ステータス・ビットをステータス配列68aから
読出し、ステータス・バス67aを介して、それらをト
ラフィック・コップ50aに供給する。データが有効の
場合、トラフィック・コップ50aはデータをL2キャ
ッシュ32aからL1キャッシュ24aに、L1インタ
フェース52a内のフェッチ・バッファを介して送信す
る。
出し要求について説明する。この説明の目的は、本発明
の中心となる主メモリ(L4または入出力)要求につい
て述べる以前に、L1及びL2キャッシュ・サブシステ
ムのオペレーションに関する特定の背景について述べる
ことである。(CPU22aからの)CPU読出し要求
がL1キャッシュ制御装置28aに受渡され、L1キャ
ッシュ制御装置28aは最初に、要求データのアドレス
が存在するかどうか、局所L1ディレクトリ26aをチ
ェックする。データがL1データ・キャッシュ24aに
記憶されていると、L1キャッシュ制御装置28aは、
データをL1キャッシュ23aからCPU22aに送信
する。しかしながら、データがL1キャッシュ23aに
存在しないと、CPUは要求データのアドレスをL10
インタフェース・キュー52aを介して、L2キャッシ
ュ・サブシステム31a内のトラフィック・コップ回路
50aに送信する。CPU22aからの要求データのア
ドレスに応答して、トラフィック・コップ50aはアド
レスをアドレス・バス60a上に出力し、これがL1コ
ピー・ディレクトリ54a乃至54dにそれぞれ対応す
る比較器62a乃至62d、及びL2ディレクトリ34
a及び置換ディレクトリ56aにそれぞれ対応する比較
器64a及び64bにより読込まれる。各比較器は、要
求アドレスをそれぞれのディレクトリに記憶されるアド
レスと比較することにより、それぞれのキャッシュが要
求データのコピーを有するかどうかを判断する。データ
がL2キャッシュ32aに存在すると、セレクタ66a
が関連ステータス・ビットをステータス配列68aから
読出し、ステータス・バス67aを介して、それらをト
ラフィック・コップ50aに供給する。データが有効の
場合、トラフィック・コップ50aはデータをL2キャ
ッシュ32aからL1キャッシュ24aに、L1インタ
フェース52a内のフェッチ・バッファを介して送信す
る。
【0018】しかしながら、データが現在L2キャッシ
ュ32aに存在しないと、トラフィック・コップ50a
は要求アドレスを記憶制御装置インタフェース84及び
L20インタフェース74aを介して、記憶制御装置ト
ラフィック・コップ回路70aに送信する。記憶制御装
置トラフィック・コップ70aは要求アドレスをアドレ
ス・バス80a上に出力し、これがL2コピー・ディレ
クトリ39a−1に対応する比較器82a、及びMLB
ディレクトリ78aに対応する比較器84aにより読込
まれる。L2コピー・ディレクトリ34aに対して実施
される比較が、L2キャッシュ32aが要求データのコ
ピーを有さないことを示すと、データが主メモリからフ
ェッチされなければならない。またMLBディレクトリ
78aが、変更ライン・バッファが要求データのコピー
を有さないことを示すと、記憶制御装置トラフィック・
コップ70aは主メモリからデータをフェッチするため
に、要求アドレスをインタフェース94aまたは94b
に送信する。
ュ32aに存在しないと、トラフィック・コップ50a
は要求アドレスを記憶制御装置インタフェース84及び
L20インタフェース74aを介して、記憶制御装置ト
ラフィック・コップ回路70aに送信する。記憶制御装
置トラフィック・コップ70aは要求アドレスをアドレ
ス・バス80a上に出力し、これがL2コピー・ディレ
クトリ39a−1に対応する比較器82a、及びMLB
ディレクトリ78aに対応する比較器84aにより読込
まれる。L2コピー・ディレクトリ34aに対して実施
される比較が、L2キャッシュ32aが要求データのコ
ピーを有さないことを示すと、データが主メモリからフ
ェッチされなければならない。またMLBディレクトリ
78aが、変更ライン・バッファが要求データのコピー
を有さないことを示すと、記憶制御装置トラフィック・
コップ70aは主メモリからデータをフェッチするため
に、要求アドレスをインタフェース94aまたは94b
に送信する。
【0019】次に図2乃至図5を参照して、CPUの記
憶要求について説明する。この説明の目的は、本発明の
中心となる主メモリ要求について述べる以前に、L1及
びL2キャッシュ・サブシステムのオペレーションに関
する特定の背景について述べることである。要求が直接
L1キャッシュ制御装置28aに送信され、L1インタ
フェース52aを介して、トラフィック・コップ50a
にも送信される。L1キャッシュ制御装置28aは最初
に、要求データのアドレスが存在するかどうか、局所L
1ディレクトリ26aをチェックする。データがL1デ
ータ・キャッシュ24aに記憶されていると、データが
L1キャッシュ内で更新され、L1ディレクトリ26a
内でロック・ビットがセットされる。L1キャッシュ2
4a内のこのデータがロックされ、従って、L2キャッ
シュ内のコピーが更新されるまでアクセス不能となり、
他のL1キャッシュ内の他のコピーが全て無効にされ
る。要求がL1キャッシュ・サブシステム23a内で処
理される間、トラフィック・コップ50aはデータがL
2キャッシュ32a内に存在するかどうかを判断するた
めに、アドレスをアドレス・バス60a上に出力する。
データがL1キャッシュ24aに存在すると、データは
L2キャッシュ32aにも存在するであろう。L2ディ
レクトリ34aの内容は、データがL2キャッシュ32
aに存在するかどうかを示す。コピーがL2キャッシュ
32aに存在すると、コピーがL1インタフェース52
a内のバッファに書込まれ、このバッファ内の更新と併
合され、更新されたコピーがL2キャッシュ32aに書
込まれる。次にトラフィック・コップ50aは、未更新
のデータのコピーを有する各L1キャッシュ制御装置2
8b、28cまたは28dに、無効信号を送信する。こ
れらのL1キャッシュ28b、28cまたは28dの識
別は、データ・アドレスとそれぞれのL1コピー・ディ
レクトリ54b、54c及び54dの内容との比較によ
り示される。トラフィック・コップはまた要求元のL1
キャッシュ28aに、記憶が成功裡に完了したことを信
号で知らせ、それによりアドレスがロック解除され、C
PU22aはデータの使用を許可される。
憶要求について説明する。この説明の目的は、本発明の
中心となる主メモリ要求について述べる以前に、L1及
びL2キャッシュ・サブシステムのオペレーションに関
する特定の背景について述べることである。要求が直接
L1キャッシュ制御装置28aに送信され、L1インタ
フェース52aを介して、トラフィック・コップ50a
にも送信される。L1キャッシュ制御装置28aは最初
に、要求データのアドレスが存在するかどうか、局所L
1ディレクトリ26aをチェックする。データがL1デ
ータ・キャッシュ24aに記憶されていると、データが
L1キャッシュ内で更新され、L1ディレクトリ26a
内でロック・ビットがセットされる。L1キャッシュ2
4a内のこのデータがロックされ、従って、L2キャッ
シュ内のコピーが更新されるまでアクセス不能となり、
他のL1キャッシュ内の他のコピーが全て無効にされ
る。要求がL1キャッシュ・サブシステム23a内で処
理される間、トラフィック・コップ50aはデータがL
2キャッシュ32a内に存在するかどうかを判断するた
めに、アドレスをアドレス・バス60a上に出力する。
データがL1キャッシュ24aに存在すると、データは
L2キャッシュ32aにも存在するであろう。L2ディ
レクトリ34aの内容は、データがL2キャッシュ32
aに存在するかどうかを示す。コピーがL2キャッシュ
32aに存在すると、コピーがL1インタフェース52
a内のバッファに書込まれ、このバッファ内の更新と併
合され、更新されたコピーがL2キャッシュ32aに書
込まれる。次にトラフィック・コップ50aは、未更新
のデータのコピーを有する各L1キャッシュ制御装置2
8b、28cまたは28dに、無効信号を送信する。こ
れらのL1キャッシュ28b、28cまたは28dの識
別は、データ・アドレスとそれぞれのL1コピー・ディ
レクトリ54b、54c及び54dの内容との比較によ
り示される。トラフィック・コップはまた要求元のL1
キャッシュ28aに、記憶が成功裡に完了したことを信
号で知らせ、それによりアドレスがロック解除され、C
PU22aはデータの使用を許可される。
【0020】データがL1キャッシュ24aまたはL2
キャッシュ32aのいずれにも存在しない場合、L1デ
ィレクトリ26a及びL2ディレクトリ34aにおける
アドレス比較はミス(miss)を示し、トラフィック・コ
ップ50aは記憶制御装置インタフェース84a及びL
20インタフェース74aを介して、排他的フェッチ
(FE:fetch exclusive)要求及びアドレスを記憶制
御装置トラフィック・コップ70aに送信する。記憶制
御装置38aにおけるアドレス比較は、L2コピー・デ
ィレクトリ39a−1におけるミス、及びMLBディレ
クトリ78aにおけるヒットまたはミスのいずれかを示
す。MLBにおいてミスが生じると、トラフィック・コ
ップ70aは(物理アドレス変換器92aによる変換後
の)アドレス及びFE要求を、主メモリ・インタフェー
ス94aを介して、主メモリ51に送信する。データは
L2インタフェース74a、SCインタフェース84a
及びL1インタフェース52aを介して、L1インタフ
ェース52a内のバッファに戻される。バッファ内に戻
されると、データはCPU22aからの更新と併合さ
れ、次にトラフィック・コップ50aが併合されたデー
タをバッファから読出し、それをL2キャッシュ32a
に書込み、更にL1キャッシュ24a内のロックをリセ
ットするように、有効信号をL1制御装置28に送信す
る。
キャッシュ32aのいずれにも存在しない場合、L1デ
ィレクトリ26a及びL2ディレクトリ34aにおける
アドレス比較はミス(miss)を示し、トラフィック・コ
ップ50aは記憶制御装置インタフェース84a及びL
20インタフェース74aを介して、排他的フェッチ
(FE:fetch exclusive)要求及びアドレスを記憶制
御装置トラフィック・コップ70aに送信する。記憶制
御装置38aにおけるアドレス比較は、L2コピー・デ
ィレクトリ39a−1におけるミス、及びMLBディレ
クトリ78aにおけるヒットまたはミスのいずれかを示
す。MLBにおいてミスが生じると、トラフィック・コ
ップ70aは(物理アドレス変換器92aによる変換後
の)アドレス及びFE要求を、主メモリ・インタフェー
ス94aを介して、主メモリ51に送信する。データは
L2インタフェース74a、SCインタフェース84a
及びL1インタフェース52aを介して、L1インタフ
ェース52a内のバッファに戻される。バッファ内に戻
されると、データはCPU22aからの更新と併合さ
れ、次にトラフィック・コップ50aが併合されたデー
タをバッファから読出し、それをL2キャッシュ32a
に書込み、更にL1キャッシュ24a内のロックをリセ
ットするように、有効信号をL1制御装置28に送信す
る。
【0021】図2乃至図5はまた、入出力オペレーショ
ンを処理する入出力インタフェース・キュー97a及び
99aを表す。図面を簡略化するために、仮想−主メモ
リ・アドレス変換ハードウェア及び変換ルックアサイド
・バッファ(TLB)は示されていない。これらは次の
機能を実行する。多くのコンピュータ・システムにおい
て、プロセッサ上で実行されるプログラムは、データを
命令内に埋込まれたオペランドにより識別する。アドレ
ス・オペランドはハードウェアにより即時"仮想"アドレ
スに、すなわちプログラムのリニア・アドレス空間内の
ロケーションに変換される。次にハードウェアはオペレ
ーティング・システムからの支援を受けて、仮想アドレ
スを対応する主メモリ・アドレスに動的に変換する。ア
ドレス変換の実行に要する時間は重要である。従って変
換の後、仮想アドレス及び対応する主メモリ・アドレス
またはその関連部分は、プログラム特有の制御情報と共
に、変換ルックアサイド・バッファ(TLB)に将来の
参照のために記憶される。
ンを処理する入出力インタフェース・キュー97a及び
99aを表す。図面を簡略化するために、仮想−主メモ
リ・アドレス変換ハードウェア及び変換ルックアサイド
・バッファ(TLB)は示されていない。これらは次の
機能を実行する。多くのコンピュータ・システムにおい
て、プロセッサ上で実行されるプログラムは、データを
命令内に埋込まれたオペランドにより識別する。アドレ
ス・オペランドはハードウェアにより即時"仮想"アドレ
スに、すなわちプログラムのリニア・アドレス空間内の
ロケーションに変換される。次にハードウェアはオペレ
ーティング・システムからの支援を受けて、仮想アドレ
スを対応する主メモリ・アドレスに動的に変換する。ア
ドレス変換の実行に要する時間は重要である。従って変
換の後、仮想アドレス及び対応する主メモリ・アドレス
またはその関連部分は、プログラム特有の制御情報と共
に、変換ルックアサイド・バッファ(TLB)に将来の
参照のために記憶される。
【0022】本発明は主に記憶制御装置38a内に存在
するページ・ムーバ71aに関連する。ページ・ムーバ
71aは3つの主な機能を有する。第1に、ページ・ム
ーバは要求されると、データをL2キャッシュ、主メモ
リ51または拡張メモリ151から、主メモリまたは拡
張メモリ内の別のロケーションに転送する。第2に、ペ
ージ・ムーバはデータをCPUから主メモリまたは拡張
メモリに書込む。第3に、ページ・ムーバは所定のパタ
ーンまたはオール・ゼロを主メモリまたは拡張メモリの
ページに書込む。これら3つの全ての場合において、作
業がCPUからページ・ムーバにオフロードされ、そし
てL2キャッシュだけが元のラインのコピーを保持する
場合に影響される。従って、コピーをL2キャッシュ
(またはL1キャッシュ)に書込むために、時間が消費
されることはない。
するページ・ムーバ71aに関連する。ページ・ムーバ
71aは3つの主な機能を有する。第1に、ページ・ム
ーバは要求されると、データをL2キャッシュ、主メモ
リ51または拡張メモリ151から、主メモリまたは拡
張メモリ内の別のロケーションに転送する。第2に、ペ
ージ・ムーバはデータをCPUから主メモリまたは拡張
メモリに書込む。第3に、ページ・ムーバは所定のパタ
ーンまたはオール・ゼロを主メモリまたは拡張メモリの
ページに書込む。これら3つの全ての場合において、作
業がCPUからページ・ムーバにオフロードされ、そし
てL2キャッシュだけが元のラインのコピーを保持する
場合に影響される。従って、コピーをL2キャッシュ
(またはL1キャッシュ)に書込むために、時間が消費
されることはない。
【0023】図6に表されるように、ページ・ムーバは
4つの要求バッファ100a乃至100dを含み、各々
はコマンド、出所ID、宛先ID、"出所(From)"アド
レス、"出所(From)"キー、"宛先(To)"アドレス、"
宛先(To)"キー、状態ビット、記憶要求のための記憶
データ、及び応答バイトを記憶する。要求バッファから
オペランド解析されるライン要求のために、4つの12
8バイトのライン・バッファ102a乃至dのプールが
使用可能である。これらについては以降で詳述される。
各ライン・バッファは出所アドレスまたは宛先アドレ
ス、データ・ライン、状態ビット及びそれに関連する要
求バッファIDを記憶する。以降で詳述されるように、
実行以前の続くステージにおいて、入出力ライン要求は
ライン・バッファから入出力実行スタック104に受渡
され、CPUライン要求はライン・バッファからCPU
実行スタック106に受渡される。各実行スタックは各
ライン要求に対応して、対応するライン・バッファへの
ポインタを含む。ページ・ムーバ制御装置108は、要
求バッファからライン・バッファへの要求のオペランド
解析及び受渡し、及びライン・バッファからスタックへ
のライン要求の受渡しを制御する。
4つの要求バッファ100a乃至100dを含み、各々
はコマンド、出所ID、宛先ID、"出所(From)"アド
レス、"出所(From)"キー、"宛先(To)"アドレス、"
宛先(To)"キー、状態ビット、記憶要求のための記憶
データ、及び応答バイトを記憶する。要求バッファから
オペランド解析されるライン要求のために、4つの12
8バイトのライン・バッファ102a乃至dのプールが
使用可能である。これらについては以降で詳述される。
各ライン・バッファは出所アドレスまたは宛先アドレ
ス、データ・ライン、状態ビット及びそれに関連する要
求バッファIDを記憶する。以降で詳述されるように、
実行以前の続くステージにおいて、入出力ライン要求は
ライン・バッファから入出力実行スタック104に受渡
され、CPUライン要求はライン・バッファからCPU
実行スタック106に受渡される。各実行スタックは各
ライン要求に対応して、対応するライン・バッファへの
ポインタを含む。ページ・ムーバ制御装置108は、要
求バッファからライン・バッファへの要求のオペランド
解析及び受渡し、及びライン・バッファからスタックへ
のライン要求の受渡しを制御する。
【0024】各CPUは3つの異なるタイプのコマンド
をページ・ムーバに発行する。CPUページ・コピー・
コマンドは、ページ・ムーバがデータを4K"出所"アド
レスから読出し、そのデータをターゲット(主メモリま
たは拡張メモリ)内の4K"宛先"アドレスに記憶すべき
ことを意味する。データがL2キャッシュに存在する
と、そのデータがそこから読出される(但しL2キャッ
シュの出所アドレスは無効にされない)。それ以外で
は、データは主メモリまたは拡張メモリから読出され
る。CPUページ・コピー及びパージ・コマンドは、ペ
ージ・ムーバがデータを4K"出所"アドレスから読出
し、そのデータを4K"宛先"アドレスに記憶すべきこと
を意味する。データがL2内で見い出され、そこから読
出されると、そのデータはL2キャッシュの出所アドレ
スにおいて無効にされる。CPUページ・コピー・オペ
レーション、CPUページ・コピー及びパージ・オペレ
ーションの両方において、主メモリまたは外部記憶装置
への記憶が、L2キャッシュ内の"宛先"アドレスにおい
て見い出されるあらゆるコピーを無効にする。
をページ・ムーバに発行する。CPUページ・コピー・
コマンドは、ページ・ムーバがデータを4K"出所"アド
レスから読出し、そのデータをターゲット(主メモリま
たは拡張メモリ)内の4K"宛先"アドレスに記憶すべき
ことを意味する。データがL2キャッシュに存在する
と、そのデータがそこから読出される(但しL2キャッ
シュの出所アドレスは無効にされない)。それ以外で
は、データは主メモリまたは拡張メモリから読出され
る。CPUページ・コピー及びパージ・コマンドは、ペ
ージ・ムーバがデータを4K"出所"アドレスから読出
し、そのデータを4K"宛先"アドレスに記憶すべきこと
を意味する。データがL2内で見い出され、そこから読
出されると、そのデータはL2キャッシュの出所アドレ
スにおいて無効にされる。CPUページ・コピー・オペ
レーション、CPUページ・コピー及びパージ・オペレ
ーションの両方において、主メモリまたは外部記憶装置
への記憶が、L2キャッシュ内の"宛先"アドレスにおい
て見い出されるあらゆるコピーを無効にする。
【0025】CPUページ記憶コマンドは、ページ・ム
ーバが完全な4Kページ内の各アドレスに対して指定さ
れる実際のデータ、またはコマンドと一緒に供給される
4ワード・パターン(オール・ゼロも有りうる)を、完
全な4Kページに記憶すべきことを意味する。このコマ
ンドは、L2キャッシュ記憶アドレスにおいて見い出さ
れる任意のコピーを無効にする。CPUページ記憶コマ
ンドの場合には、宛先アドレスだけがコマンドに提供さ
れ、出所アドレスは存在しない。
ーバが完全な4Kページ内の各アドレスに対して指定さ
れる実際のデータ、またはコマンドと一緒に供給される
4ワード・パターン(オール・ゼロも有りうる)を、完
全な4Kページに記憶すべきことを意味する。このコマ
ンドは、L2キャッシュ記憶アドレスにおいて見い出さ
れる任意のコピーを無効にする。CPUページ記憶コマ
ンドの場合には、宛先アドレスだけがコマンドに提供さ
れ、出所アドレスは存在しない。
【0026】入出力プロセッサ53a乃至53dについ
ても、次の2つのコマンドを発行することができる。入
出力ページ・コピー・コマンドは、ページ・ムーバが4
K出所アドレスからデータを読出し、そのデータを4K
宛先アドレスに記憶すべきことを意味する。データがL
2キャッシュに存在する場合には、データはL2キャッ
シュから読出されるが、L2キャッシュの出所アドレス
は無効にされない。次に、データが宛先に記憶され、L
2コピーがL2キャッシュ宛先アドレスにおいて無効に
される。入出力ページ記憶ゼロ・コマンドは、ページ・
ムーバがオール・ゼロを4K宛先アドレスに記憶し、L
2キャッシュのL2キャッシュ宛先アドレスにおける任
意のコピーを無効にすべきことを意味する。
ても、次の2つのコマンドを発行することができる。入
出力ページ・コピー・コマンドは、ページ・ムーバが4
K出所アドレスからデータを読出し、そのデータを4K
宛先アドレスに記憶すべきことを意味する。データがL
2キャッシュに存在する場合には、データはL2キャッ
シュから読出されるが、L2キャッシュの出所アドレス
は無効にされない。次に、データが宛先に記憶され、L
2コピーがL2キャッシュ宛先アドレスにおいて無効に
される。入出力ページ記憶ゼロ・コマンドは、ページ・
ムーバがオール・ゼロを4K宛先アドレスに記憶し、L
2キャッシュのL2キャッシュ宛先アドレスにおける任
意のコピーを無効にすべきことを意味する。
【0027】図4乃至図9は、CPU22aからの主メ
モリ内のデータを更新するためのCPUページ記憶要求
のフローを表す(ステップ110)。CPU22aはL
1インタフェース52aを介して、要求をトラフィック
・コップ50aに送信する(ステップ111)。要求
は、書込まれるページ・データ、宛先アドレス、すなわ
ちページ・データを記憶する開始アドレス、及びデータ
が主メモリ51に記憶されるべきことを指定する。(或
いは、要求が記憶宛先として拡張メモリのアドレスを指
定してもよい。)要求は主メモリ要求であるので、トラ
フィック・コップ50aは、SCインタフェース85a
及びL20インタフェース74aを介して、要求を記憶
制御装置38aのトラフィック・コップ70aに送信す
る。トラフィック・コップ70aはCPUページ記憶要
求を受信し、これを以前にCPUから受信した全てのタ
イプの要求より低位に優先順位付けする。トラフィック
・コップ70aはまた、(残りのCPU要求が実行され
る以前に)先に受信されようと後に受信されようと、全
てのタイプの入出力要求を全てのCPU要求より高位に
優先順位付けする。従って、トラフィック・コップ70
aは、あらゆる入出力プロセッサ要求をあらゆるCPU
要求より先にページ・ムーバに送信する。入出力プロセ
ッサ要求が存在しない場合には、CPU要求をFIFO
順序でページ・ムーバに送信する(ステップ112)。
モリ内のデータを更新するためのCPUページ記憶要求
のフローを表す(ステップ110)。CPU22aはL
1インタフェース52aを介して、要求をトラフィック
・コップ50aに送信する(ステップ111)。要求
は、書込まれるページ・データ、宛先アドレス、すなわ
ちページ・データを記憶する開始アドレス、及びデータ
が主メモリ51に記憶されるべきことを指定する。(或
いは、要求が記憶宛先として拡張メモリのアドレスを指
定してもよい。)要求は主メモリ要求であるので、トラ
フィック・コップ50aは、SCインタフェース85a
及びL20インタフェース74aを介して、要求を記憶
制御装置38aのトラフィック・コップ70aに送信す
る。トラフィック・コップ70aはCPUページ記憶要
求を受信し、これを以前にCPUから受信した全てのタ
イプの要求より低位に優先順位付けする。トラフィック
・コップ70aはまた、(残りのCPU要求が実行され
る以前に)先に受信されようと後に受信されようと、全
てのタイプの入出力要求を全てのCPU要求より高位に
優先順位付けする。従って、トラフィック・コップ70
aは、あらゆる入出力プロセッサ要求をあらゆるCPU
要求より先にページ・ムーバに送信する。入出力プロセ
ッサ要求が存在しない場合には、CPU要求をFIFO
順序でページ・ムーバに送信する(ステップ112)。
【0028】ページ・ムーバは全ての要求を即時記憶ま
たは実行することはできない。従って、CPUページ記
憶要求を受信後、ページ・ムーバ71aは4つの要求バ
ッファ100a乃至100dのいずれかが、要求を受信
するために使用可能かどうかを判断する(判断11
6)。否定の場合、ページ・ムーバはビジー信号を要求
元のCPUにトラフィック・コップ70aを介して返却
し、要求バッファが使用可能になると、ビジー・ビット
をセットしてCPUに信号で知らせる(ステップ11
7)。しかしながら、要求バッファ100a乃至100
dの1つが使用可能な場合、ページ・ムーバは受諾応答
を要求元のCPUにトラフィック・コップ70aを介し
て返却する(ステップ118)。また、ページ・ムーバ
は使用可能な要求バッファに、上記定義された要求パラ
メータ及びCPUにより提供されるページ・データをロ
ードする(ステップ118)。その後、ページ・ムーバ
71aはページ要求及びページ・データを、32の連続
ページ・ラインに対応する32の連続記憶要求と見なす
(上述のように、1ページ当たり32ラインが存在す
る)。
たは実行することはできない。従って、CPUページ記
憶要求を受信後、ページ・ムーバ71aは4つの要求バ
ッファ100a乃至100dのいずれかが、要求を受信
するために使用可能かどうかを判断する(判断11
6)。否定の場合、ページ・ムーバはビジー信号を要求
元のCPUにトラフィック・コップ70aを介して返却
し、要求バッファが使用可能になると、ビジー・ビット
をセットしてCPUに信号で知らせる(ステップ11
7)。しかしながら、要求バッファ100a乃至100
dの1つが使用可能な場合、ページ・ムーバは受諾応答
を要求元のCPUにトラフィック・コップ70aを介し
て返却する(ステップ118)。また、ページ・ムーバ
は使用可能な要求バッファに、上記定義された要求パラ
メータ及びCPUにより提供されるページ・データをロ
ードする(ステップ118)。その後、ページ・ムーバ
71aはページ要求及びページ・データを、32の連続
ページ・ラインに対応する32の連続記憶要求と見なす
(上述のように、1ページ当たり32ラインが存在す
る)。
【0029】フローのこの時点で、要求を含む1乃至4
つの要求バッファが存在し、各々は局所的にラインに分
割されたそれぞれのページを有する。ページ・ムーバは
循環式に要求バッファを選択し(例えば要求バッファ1
00a、100b、100c、100d、100
a、...)、次に各選択要求バッファに対応して、要
求元のCPUが、要求バッファ内のアドレスに記憶する
権限を有するかどうかを判断する。従って、ページ・ム
ーバは主メモリ51内のキー配列49から宛先アドレス
のキーを要求し(ステップ119)、それを要求内のキ
ーと比較する(ステップ120)。要求元のCPUが宛
先アドレスを更新する権限を有さないか、或いはキーの
読出しにエラーが存在するとコマンドは取り消され、適
切な応答を有するエラー信号がCPUに送信される(ス
テップ121)。こうしたキー・エラーが存在しない場
合には、(キーが変更されない限り)4Kページに対し
て、もはやチェックが実行されるべきでないことを示す
ビットがセットされる。キー・インタフェースにおいて
任意のキーの状態が変更されると、そのキーのアドレス
がページ・ムーバに送信される。それに応答して、ペー
ジ・ムーバはアドレスを要求バッファ内の全てのアドレ
スと比較し、キーの変更により影響を受ける各要求に対
して、現在キー・チェックの非実行を示すビットをリセ
ットする。キー変更により影響されるアドレスを含む次
の要求が、リセットされたビットにもとづき、キー・チ
ェックを要求する。
つの要求バッファが存在し、各々は局所的にラインに分
割されたそれぞれのページを有する。ページ・ムーバは
循環式に要求バッファを選択し(例えば要求バッファ1
00a、100b、100c、100d、100
a、...)、次に各選択要求バッファに対応して、要
求元のCPUが、要求バッファ内のアドレスに記憶する
権限を有するかどうかを判断する。従って、ページ・ム
ーバは主メモリ51内のキー配列49から宛先アドレス
のキーを要求し(ステップ119)、それを要求内のキ
ーと比較する(ステップ120)。要求元のCPUが宛
先アドレスを更新する権限を有さないか、或いはキーの
読出しにエラーが存在するとコマンドは取り消され、適
切な応答を有するエラー信号がCPUに送信される(ス
テップ121)。こうしたキー・エラーが存在しない場
合には、(キーが変更されない限り)4Kページに対し
て、もはやチェックが実行されるべきでないことを示す
ビットがセットされる。キー・インタフェースにおいて
任意のキーの状態が変更されると、そのキーのアドレス
がページ・ムーバに送信される。それに応答して、ペー
ジ・ムーバはアドレスを要求バッファ内の全てのアドレ
スと比較し、キーの変更により影響を受ける各要求に対
して、現在キー・チェックの非実行を示すビットをリセ
ットする。キー変更により影響されるアドレスを含む次
の要求が、リセットされたビットにもとづき、キー・チ
ェックを要求する。
【0030】CPUが要求内で指定される宛先アドレス
に書込む権限を有する場合、ページ・ムーバは次に、各
選択された要求バッファ内の次のラインに対応して、使
用可能なライン・バッファを見い出そうと試みる(判断
122)。これは各要求バッファに対して、関連するラ
イン・バッファが使用可能かどうかのチェックを含む。
関連ライン・バッファが使用可能でない場合、ページ・
ムーバは別のライン・バッファ102が空(empty)か
どうか、及び選択された要求バッファがライン・バッフ
ァを待機中の最も高い優先順位の要求バッファかどうか
を判断する(判断123)。肯定の場合、または判断1
22の応答が肯定の場合、ページ・ムーバは識別される
ライン・バッファ102に、ステップ118で選択され
た要求バッファから次のラインをロードする(ステップ
124)。次に、ページ・ムーバはオペランド解析済み
のライン記憶要求を、ライン・バッファからCPU実行
スタック106に配置する(ステップ126)。ページ
・ムーバはCPU実行スタックより先に、入出力実行ス
タックにサービスする。入出力スタックが空で、CPU
のこのライン記憶要求が次のCPUスタック上に存在す
ると(ステップ127)、ページ・ムーバはページ記憶
要求を記憶制御装置内のトラフィック・コップ70aに
発行する(ステップ128)。次に、トラフィック・コ
ップ70aはライン・データをライン・バッファから変
更ライン・バッファ(MLB)/制御に送信する(ステ
ップ129)。MLB/制御はバスの解放時に、ライン
・データを宛先(例では主メモリ)に送信する。データ
がMLBに送信されると、トラフィック・コップ70a
はまたコピー・ディレクトリ39a−1をチェックし、
L2キャッシュ32aがこのページのコピーを含むかど
うかを判断する(判断130)。肯定の場合、トラフィ
ック・コップ70aはL2キャッシュ32aのこのライ
ンに対応して、無効信号をトラフィック・コップ50a
に送信し、無効信号がL2ディレクトリ34aにコピー
される(ステップ131)。トラフィック・コップ50
aがL2キャッシュ内のコピーを無効にする間、トラフ
ィック・コップ50a(L2キャッシュ制御装置の一
部)はまた、L1キャッシュのいずれかがこのページの
コピーを含むかどうかを判断するために、L1コピー・
ディレクトリ54a乃至54dをチェックする(判断1
32)。そして、肯定の場合、無効信号をこのページの
コピーを含むL1キャッシュ・サブシステム内のL1デ
ィレクトリに送信する(ステップ133)。ラインをM
LBに送信し、L2及びL1キャッシュを無効にした
後、ページ・ムーバはライン・バッファを解放する(ス
テップ134)。ステップ127乃至134と並行し
て、ページ・ムーバは、ライン・バッファ内に更にライ
ン要求が存在するかどうかを判断する(判断135)。
否定の場合、ページ・ムーバは対応する実行スタックに
コピーされたが、まだ完了されていないライン要求が、
ライン・バッファ内に存在するかどうかを判断する(判
断137)。これは実行されたばかりの要求を含む。肯
定の場合、ページ・ムーバは全てのライン記憶要求が完
了するまで待機し、最初にそれぞれの要求を発したCP
Uに完了信号を送信する。
に書込む権限を有する場合、ページ・ムーバは次に、各
選択された要求バッファ内の次のラインに対応して、使
用可能なライン・バッファを見い出そうと試みる(判断
122)。これは各要求バッファに対して、関連するラ
イン・バッファが使用可能かどうかのチェックを含む。
関連ライン・バッファが使用可能でない場合、ページ・
ムーバは別のライン・バッファ102が空(empty)か
どうか、及び選択された要求バッファがライン・バッフ
ァを待機中の最も高い優先順位の要求バッファかどうか
を判断する(判断123)。肯定の場合、または判断1
22の応答が肯定の場合、ページ・ムーバは識別される
ライン・バッファ102に、ステップ118で選択され
た要求バッファから次のラインをロードする(ステップ
124)。次に、ページ・ムーバはオペランド解析済み
のライン記憶要求を、ライン・バッファからCPU実行
スタック106に配置する(ステップ126)。ページ
・ムーバはCPU実行スタックより先に、入出力実行ス
タックにサービスする。入出力スタックが空で、CPU
のこのライン記憶要求が次のCPUスタック上に存在す
ると(ステップ127)、ページ・ムーバはページ記憶
要求を記憶制御装置内のトラフィック・コップ70aに
発行する(ステップ128)。次に、トラフィック・コ
ップ70aはライン・データをライン・バッファから変
更ライン・バッファ(MLB)/制御に送信する(ステ
ップ129)。MLB/制御はバスの解放時に、ライン
・データを宛先(例では主メモリ)に送信する。データ
がMLBに送信されると、トラフィック・コップ70a
はまたコピー・ディレクトリ39a−1をチェックし、
L2キャッシュ32aがこのページのコピーを含むかど
うかを判断する(判断130)。肯定の場合、トラフィ
ック・コップ70aはL2キャッシュ32aのこのライ
ンに対応して、無効信号をトラフィック・コップ50a
に送信し、無効信号がL2ディレクトリ34aにコピー
される(ステップ131)。トラフィック・コップ50
aがL2キャッシュ内のコピーを無効にする間、トラフ
ィック・コップ50a(L2キャッシュ制御装置の一
部)はまた、L1キャッシュのいずれかがこのページの
コピーを含むかどうかを判断するために、L1コピー・
ディレクトリ54a乃至54dをチェックする(判断1
32)。そして、肯定の場合、無効信号をこのページの
コピーを含むL1キャッシュ・サブシステム内のL1デ
ィレクトリに送信する(ステップ133)。ラインをM
LBに送信し、L2及びL1キャッシュを無効にした
後、ページ・ムーバはライン・バッファを解放する(ス
テップ134)。ステップ127乃至134と並行し
て、ページ・ムーバは、ライン・バッファ内に更にライ
ン要求が存在するかどうかを判断する(判断135)。
否定の場合、ページ・ムーバは対応する実行スタックに
コピーされたが、まだ完了されていないライン要求が、
ライン・バッファ内に存在するかどうかを判断する(判
断137)。これは実行されたばかりの要求を含む。肯
定の場合、ページ・ムーバは全てのライン記憶要求が完
了するまで待機し、最初にそれぞれの要求を発したCP
Uに完了信号を送信する。
【0031】判断135を再度参照して、更に実行され
るべきライン要求が存在すると、ページ・ムーバは判断
122に戻り、別のライン要求を実行するために、上述
の処理を繰返す。
るべきライン要求が存在すると、ページ・ムーバは判断
122に戻り、別のライン要求を実行するために、上述
の処理を繰返す。
【0032】判断122の肯定応答を参照すると、ペー
ジ・ムーバがステップ124、126などを実行する
間、ページ・ムーバはまた前のライン・アドレスを12
8バイト増分して、ページの次のラインの開始アドレス
を示す(ステップ140)。次にページ・ムーバは、結
果がページの終りを示すXXXXXで終了するかどうかを判
断する(判断142)。肯定の場合、ページ・ムーバは
増分を中止する。しかしながら、結果がページの終りを
示さない場合には、ページ・ムーバはキー・チェックが
要求されるかどうかを判断する(判断144)。キー・
チェックは、アドレスが新たなページの開始を示すか、
或いはページに対応するキーが最終チェック以来変更さ
れた場合に要求される。キー・チェックが要求される
と、ページ・ムーバはステップ119にループして戻
り、キーを上述のようにチェックする。
ジ・ムーバがステップ124、126などを実行する
間、ページ・ムーバはまた前のライン・アドレスを12
8バイト増分して、ページの次のラインの開始アドレス
を示す(ステップ140)。次にページ・ムーバは、結
果がページの終りを示すXXXXXで終了するかどうかを判
断する(判断142)。肯定の場合、ページ・ムーバは
増分を中止する。しかしながら、結果がページの終りを
示さない場合には、ページ・ムーバはキー・チェックが
要求されるかどうかを判断する(判断144)。キー・
チェックは、アドレスが新たなページの開始を示すか、
或いはページに対応するキーが最終チェック以来変更さ
れた場合に要求される。キー・チェックが要求される
と、ページ・ムーバはステップ119にループして戻
り、キーを上述のようにチェックする。
【0033】次に図10乃至図13を参照しながら、入
出力プロセッサ53aによる入出力ページ・コピー要求
のフローについて説明する。入出力プロセッサ53a
は、要求を入出力プロセッサ・インタフェース97a
(または99a)を介して、トラフィック・コップ70
aに送信する(ステップ150)。この要求は、コピー
元の主メモリ51内のページの開始出所アドレス、及び
コピー先の主メモリ内の開始宛先アドレスを指定する
(或いは、要求が拡張メモリまたはL3キャッシュ内の
アドレスを指定してもよい)。次に、トラフィック・コ
ップ70aは要求を処理のために、以前に受信した全て
の入出力プロセッサ要求の後に、ページ・ムーバ71a
に受渡す(ステップ152)。それに応答して、ページ
・ムーバは要求バッファ100a乃至100dの1つが
使用可能かどうかを判断する(ステップ156)。否定
の場合、ページ・ムーバはビジー・ビットをセットし
て、ビジー応答が要求元の入出力プロセッサに送信され
たことを示し、ビジー応答をトラフィック・コップ70
aに返却し、トラフィック・コップ70aはビジー応答
を要求元の入出力プロセッサに転送する(ステップ15
8)。要求バッファの1つが使用可能な場合、ページ・
ムーバは要求をロードし、受諾信号をトラフィック・コ
ップ70aを介して、要求元の入出力プロセッサに返却
する(ステップ160)。次に、ページ・ムーバは出所
アドレスのキーを主メモリ・キー配列49から要求し
(ステップ162)、このキーを要求元の入出力プロセ
ッサのキーと比較する。入出力プロセッサが必要な権限
を有さないと(ステップ164)、ページ・ムーバはキ
ー・エラー信号をトラフィック・コップ70aに返却
し、トラフィック・コップはキー・エラー信号を入出力
プロセッサに受渡す(ステップ166)。
出力プロセッサ53aによる入出力ページ・コピー要求
のフローについて説明する。入出力プロセッサ53a
は、要求を入出力プロセッサ・インタフェース97a
(または99a)を介して、トラフィック・コップ70
aに送信する(ステップ150)。この要求は、コピー
元の主メモリ51内のページの開始出所アドレス、及び
コピー先の主メモリ内の開始宛先アドレスを指定する
(或いは、要求が拡張メモリまたはL3キャッシュ内の
アドレスを指定してもよい)。次に、トラフィック・コ
ップ70aは要求を処理のために、以前に受信した全て
の入出力プロセッサ要求の後に、ページ・ムーバ71a
に受渡す(ステップ152)。それに応答して、ページ
・ムーバは要求バッファ100a乃至100dの1つが
使用可能かどうかを判断する(ステップ156)。否定
の場合、ページ・ムーバはビジー・ビットをセットし
て、ビジー応答が要求元の入出力プロセッサに送信され
たことを示し、ビジー応答をトラフィック・コップ70
aに返却し、トラフィック・コップ70aはビジー応答
を要求元の入出力プロセッサに転送する(ステップ15
8)。要求バッファの1つが使用可能な場合、ページ・
ムーバは要求をロードし、受諾信号をトラフィック・コ
ップ70aを介して、要求元の入出力プロセッサに返却
する(ステップ160)。次に、ページ・ムーバは出所
アドレスのキーを主メモリ・キー配列49から要求し
(ステップ162)、このキーを要求元の入出力プロセ
ッサのキーと比較する。入出力プロセッサが必要な権限
を有さないと(ステップ164)、ページ・ムーバはキ
ー・エラー信号をトラフィック・コップ70aに返却
し、トラフィック・コップはキー・エラー信号を入出力
プロセッサに受渡す(ステップ166)。
【0034】しかしながら、入出力プロセッサが要求バ
ッファ内で指定されるアドレスをアクセスする権限を有
すると、ページ・ムーバは次に、関連するライン・バッ
ファ102aが解放されているかどうかを判断する(判
断172)。否定の場合、ページ・ムーバは、別のライ
ン・バッファ102b乃至102dが入出力プロセッサ
53aに対して使用可能かどうかを判断する(判断17
4)。肯定の場合、或いは判断172の応答が肯定の場
合、ページ・ムーバは入出力ページ・コピー要求のライ
ン・フェッチ要求部分を、実行スタック104上に配置
する(ステップ176)。このライン要求が次の実行ス
タック104上に来ると(判断177)、ページ・ムー
バはライン・フェッチ要求をトラフィック・コップ70
aに受渡し(ステップ178)、次にトラフィック・コ
ップ70aはデータ・ラインを主メモリ51からフェッ
チする(但し、データがL2キャッシュまたはMLBに
も存在する場合には、トラフィック・コップ70aはデ
ータをL2キャッシュまたはMLBから代わりにフェッ
チする)。次に、トラフィック・コップ70aはデータ
をページ・ムーバに返却し、ページ・ムーバはライン・
バッファ内のデータをロードする(ステップ181)。
次に、ページ・ムーバは所望のメモリ・ロケーションに
書込むために、キー・チェックが要求されるかどうかを
判断する(判断182)。ライン・バッファ内のライン
がページの最初のラインであるか、或いは宛先アドレス
のキーが変更されていると、入出力プロセッサのキーが
チェックされなければならない。このチェックは、この
ページのキーをキー配列49からフェッチし(ステップ
184)、次にこのページの要求と共に提供される入出
力プロセッサのキーを、主メモリからフェッチされるキ
ーと比較することにより実行される(ステップ18
6)。入出力プロセッサが、要求内で指定されるアドレ
スへの書込み権限を与えられていないと、ページ・ムー
バはキー・エラー信号をトラフィック・コップ70aに
返却し、トラフィック・コップ70aはキー・エラー信
号を入出力プロセッサへ返却する(ステップ187)。
ッファ内で指定されるアドレスをアクセスする権限を有
すると、ページ・ムーバは次に、関連するライン・バッ
ファ102aが解放されているかどうかを判断する(判
断172)。否定の場合、ページ・ムーバは、別のライ
ン・バッファ102b乃至102dが入出力プロセッサ
53aに対して使用可能かどうかを判断する(判断17
4)。肯定の場合、或いは判断172の応答が肯定の場
合、ページ・ムーバは入出力ページ・コピー要求のライ
ン・フェッチ要求部分を、実行スタック104上に配置
する(ステップ176)。このライン要求が次の実行ス
タック104上に来ると(判断177)、ページ・ムー
バはライン・フェッチ要求をトラフィック・コップ70
aに受渡し(ステップ178)、次にトラフィック・コ
ップ70aはデータ・ラインを主メモリ51からフェッ
チする(但し、データがL2キャッシュまたはMLBに
も存在する場合には、トラフィック・コップ70aはデ
ータをL2キャッシュまたはMLBから代わりにフェッ
チする)。次に、トラフィック・コップ70aはデータ
をページ・ムーバに返却し、ページ・ムーバはライン・
バッファ内のデータをロードする(ステップ181)。
次に、ページ・ムーバは所望のメモリ・ロケーションに
書込むために、キー・チェックが要求されるかどうかを
判断する(判断182)。ライン・バッファ内のライン
がページの最初のラインであるか、或いは宛先アドレス
のキーが変更されていると、入出力プロセッサのキーが
チェックされなければならない。このチェックは、この
ページのキーをキー配列49からフェッチし(ステップ
184)、次にこのページの要求と共に提供される入出
力プロセッサのキーを、主メモリからフェッチされるキ
ーと比較することにより実行される(ステップ18
6)。入出力プロセッサが、要求内で指定されるアドレ
スへの書込み権限を与えられていないと、ページ・ムー
バはキー・エラー信号をトラフィック・コップ70aに
返却し、トラフィック・コップ70aはキー・エラー信
号を入出力プロセッサへ返却する(ステップ187)。
【0035】それ以外では、ページ・ムーバは次に、丁
度フェッチを完了したライン・バッファに対応する記憶
要求を実行スタック104上に配置する(ステップ18
8)。上述のように、入出力オペレーションはCPUオ
ペレーションよりも高い優先順位を有し(判断18
9)、このライン記憶要求がスタック104の最前部に
達すると、ページ・ムーバはそれをトラフィック・コッ
プ70aに送信し(ステップ192)、トラフィック・
コップ70aはライン・データをライン・バッファから
MLBに送信する(ステップ194)。データがMLB
に受信される間、トラフィック・コップ70aは記憶制
御装置内のコピー・ディレクトリをチェックし、L2キ
ャッシュがこのラインのコピーを含むかどうかを判断す
る(判断195)。肯定の場合、トラフィック・コップ
70aはこのラインに対して、無効信号をL2キャッシ
ュ・サブシステム31aのトラフィック・コップ50a
に送信し、無効信号がL2ディレクトリ34aに記憶さ
れる(ステップ196)。トラフィック・コップ50a
がL2キャッシュ内のコピーを無効にする間、L2制御
装置はまた、そのL1コピー・ディレクトリ54a乃至
54dをチェックして、任意のL1キャッシュがこのペ
ージのコピーを含むかどうかを判断し(判断197)、
肯定の場合、このラインのコピーを含むL1キャッシュ
・サブシステム内のL1ディレクトリに、無効信号を送
信する(ステップ198)。ラインをMLBに送信し、
L2及びL1キャッシュのコピーを無効にした後、ペー
ジ・ムーバはライン・バッファを解放する(ステップ1
99)。
度フェッチを完了したライン・バッファに対応する記憶
要求を実行スタック104上に配置する(ステップ18
8)。上述のように、入出力オペレーションはCPUオ
ペレーションよりも高い優先順位を有し(判断18
9)、このライン記憶要求がスタック104の最前部に
達すると、ページ・ムーバはそれをトラフィック・コッ
プ70aに送信し(ステップ192)、トラフィック・
コップ70aはライン・データをライン・バッファから
MLBに送信する(ステップ194)。データがMLB
に受信される間、トラフィック・コップ70aは記憶制
御装置内のコピー・ディレクトリをチェックし、L2キ
ャッシュがこのラインのコピーを含むかどうかを判断す
る(判断195)。肯定の場合、トラフィック・コップ
70aはこのラインに対して、無効信号をL2キャッシ
ュ・サブシステム31aのトラフィック・コップ50a
に送信し、無効信号がL2ディレクトリ34aに記憶さ
れる(ステップ196)。トラフィック・コップ50a
がL2キャッシュ内のコピーを無効にする間、L2制御
装置はまた、そのL1コピー・ディレクトリ54a乃至
54dをチェックして、任意のL1キャッシュがこのペ
ージのコピーを含むかどうかを判断し(判断197)、
肯定の場合、このラインのコピーを含むL1キャッシュ
・サブシステム内のL1ディレクトリに、無効信号を送
信する(ステップ198)。ラインをMLBに送信し、
L2及びL1キャッシュのコピーを無効にした後、ペー
ジ・ムーバはライン・バッファを解放する(ステップ1
99)。
【0036】ステップ189乃至199と並行して、ペ
ージ・ムーバは要求バッファ内に更に要求が存在するか
どうかを判断する(判断200)。否定の場合、ページ
・ムーバは対応する実行スタックにコピーされたが、ま
だ完了されていないライン要求が、ライン・バッファ内
に存在するかどうかを判断する(判断202)。肯定の
場合、ページ・ムーバはこれらの要求バッファを解放
し、最初にそれぞれの要求を発した入出力プロセッサに
完了信号を送信する(ステップ204)。
ージ・ムーバは要求バッファ内に更に要求が存在するか
どうかを判断する(判断200)。否定の場合、ページ
・ムーバは対応する実行スタックにコピーされたが、ま
だ完了されていないライン要求が、ライン・バッファ内
に存在するかどうかを判断する(判断202)。肯定の
場合、ページ・ムーバはこれらの要求バッファを解放
し、最初にそれぞれの要求を発した入出力プロセッサに
完了信号を送信する(ステップ204)。
【0037】再度判断200を参照して、対応するスタ
ックに送信されたが、まだ完了されていない要求がライ
ン・バッファ内に存在する場合には、ページ・ムーバは
判断172に戻り、別のライン要求を実行するために、
上述の処理を繰返す。
ックに送信されたが、まだ完了されていない要求がライ
ン・バッファ内に存在する場合には、ページ・ムーバは
判断172に戻り、別のライン要求を実行するために、
上述の処理を繰返す。
【0038】判断172の肯定応答を再度参照すると、
ページ・ムーバがステップ176、178などを実行す
る間、ページ・ムーバはまた前のライン・アドレスを1
28バイト増分して、ページの次のラインの開始アドレ
スを示す(ステップ210)。次にページ・ムーバは、
結果がページの終りを示すXXXXXで終了するかどうかを
判断する(判断212)。肯定の場合、ページ・ムーバ
は増分を中止する。しかしながら、結果がページの終り
を示さない場合には、ページ・ムーバはキー・チェック
が要求されるかどうかを判断する(判断214)。キー
・チェックは、アドレスが新たなページの開始を示す
か、或いはページに対応するキーが最終チェック以来変
更された場合に要求される。キー・チェックが要求され
ると、ページ・ムーバはステップ162にループして戻
り、キーを上述のようにチェックする。
ページ・ムーバがステップ176、178などを実行す
る間、ページ・ムーバはまた前のライン・アドレスを1
28バイト増分して、ページの次のラインの開始アドレ
スを示す(ステップ210)。次にページ・ムーバは、
結果がページの終りを示すXXXXXで終了するかどうかを
判断する(判断212)。肯定の場合、ページ・ムーバ
は増分を中止する。しかしながら、結果がページの終り
を示さない場合には、ページ・ムーバはキー・チェック
が要求されるかどうかを判断する(判断214)。キー
・チェックは、アドレスが新たなページの開始を示す
か、或いはページに対応するキーが最終チェック以来変
更された場合に要求される。キー・チェックが要求され
ると、ページ・ムーバはステップ162にループして戻
り、キーを上述のようにチェックする。
【0039】入出力ページ記憶ゼロ・オペレーション
は、入出力ページ記憶ゼロ・コマンドがCPUの代わり
に入出力プロセッサから発信され、明示的なデータが提
供されない、すなわちステップ118で、ページ・ムー
バがコマンドからオール・ゼロをライン・バッファに書
込むことを知る以外は、CPUページ記憶オペレーショ
ンと同一であり、図7乃至図9のように実行される。
は、入出力ページ記憶ゼロ・コマンドがCPUの代わり
に入出力プロセッサから発信され、明示的なデータが提
供されない、すなわちステップ118で、ページ・ムー
バがコマンドからオール・ゼロをライン・バッファに書
込むことを知る以外は、CPUページ記憶オペレーショ
ンと同一であり、図7乃至図9のように実行される。
【0040】CPUページ・コピー・オペレーション
は、CPUページ・コピー・コマンドが入出力プロセッ
サの代わりにCPUから発信され、トラフィック・コッ
プ50aを介してトラフィック・コップ70aに達する
以外は、入出力ページ・コピー・オペレーションと同一
であり、図10乃至図13のように実行される。
は、CPUページ・コピー・コマンドが入出力プロセッ
サの代わりにCPUから発信され、トラフィック・コッ
プ50aを介してトラフィック・コップ70aに達する
以外は、入出力ページ・コピー・オペレーションと同一
であり、図10乃至図13のように実行される。
【0041】CPUページ・コピー及びパージ・オペレ
ーションは、CPUページ・コピー及びパージ・コマン
ドが入出力プロセッサの代わりにCPUから発信される
以外は、入出力ページ・コピー・オペレーションと同一
であり、図10乃至図13のように実行され、L2キャ
ッシュ(データがL2キャッシュに存在すると仮定)か
らのフェッチの間(ステップ180及び181)、CP
Uページ・コピー及びパージ・オペレーションは常に、
丁度フェッチされたばかりのL2コピーのL2キャッシ
ュ内の出所アドレスを無効にする。それに対して、CP
Uページ・コピー・オペレーションはフェッチ・オペレ
ーションの際に、L2コピーのL2キャッシュ内の出所
アドレスを無効にしない。CPUページ・コピー及びパ
ージ・オペレーション、CPUページ・コピー・オペレ
ーション、及び入出力ページ・コピー・オペレーション
の続く記憶オペレーションの間に、宛先アドレスに対応
するデータがL2キャッシュ内に存在すると、それが無
効にされる。
ーションは、CPUページ・コピー及びパージ・コマン
ドが入出力プロセッサの代わりにCPUから発信される
以外は、入出力ページ・コピー・オペレーションと同一
であり、図10乃至図13のように実行され、L2キャ
ッシュ(データがL2キャッシュに存在すると仮定)か
らのフェッチの間(ステップ180及び181)、CP
Uページ・コピー及びパージ・オペレーションは常に、
丁度フェッチされたばかりのL2コピーのL2キャッシ
ュ内の出所アドレスを無効にする。それに対して、CP
Uページ・コピー・オペレーションはフェッチ・オペレ
ーションの際に、L2コピーのL2キャッシュ内の出所
アドレスを無効にしない。CPUページ・コピー及びパ
ージ・オペレーション、CPUページ・コピー・オペレ
ーション、及び入出力ページ・コピー・オペレーション
の続く記憶オペレーションの間に、宛先アドレスに対応
するデータがL2キャッシュ内に存在すると、それが無
効にされる。
【0042】図14乃至図15は、各要求バッファに割
当てるライン・バッファを決定する上述のステップ11
9乃至120、及びステップ172乃至174の詳細を
表す。ここでページ・ムーバは、流れ図に相当するハー
ドウェアにより実現されることを述べておく。要求バッ
ファはラウンド・ロビン・シーケンスにより選択され
る。各要求バッファは選択されると、関連ライン・バッ
ファが解放されると、常にその関連ライン・バッファを
使用することができる。しかしながら、1つ以上のライ
ン・バッファが使用可能な場合、すなわち、対応する要
求バッファ内に要求が存在しない場合には、それらは最
も高い優先順位の要求バッファにより使用可能になる。
図14乃至図15は、要求バッファ100aに特有であ
るが、他のそれぞれの要求バッファについても同様に動
作される。ステップ450で、ページ・ムーバは要求バ
ッファ100aをロードする。次にページ・ムーバはラ
イン・バッファ102aが使用可能かどうかを判断する
(判断452)。肯定の場合、ページ・ムーバはライン
・バッファ102aに要求バッファ100aから次のラ
イン要求をロードする(ステップ453)。しかしなが
ら、ライン・バッファ102aが要求バッファ100a
からの以前の未実行のライン要求の記憶のために使用可
能でないと(或いは、要求が要求バッファ100aに記
憶されたより以前の、別の要求バッファからの以前の未
実行のライン要求の記憶のために使用可能でないと)、
ページ・ムーバは次に、別のライン・バッファが解放さ
れていないかどうか、及び要求バッファ100aが別の
ライン・バッファを捜し求めている最も高い優先順位の
要求バッファであるかどうかを判断するステップを実行
する。ステップ454で、ページ・ムーバは要求バッフ
ァ100b内に未処理の要求が存在するかどうかを判断
する。否定の場合、ページ・ムーバは(要求バッファ1
00c及び100dが現在ライン・バッファを捜し求め
ている場合、)要求バッファ100aが要求バッファ1
00c及び100dよりも高い優先順位を有するかどう
かを判断する。要求バッファ100aが要求バッファ1
00c及び100dよりも高い優先順位を有するか、ラ
イン・バッファを捜し求めているこれらの要求バッファ
の少なくともいずれかよりも高い優先順位を有するか、
或いは要求バッファ100c及び100dのいずれもラ
イン・バッファを捜し求めていない場合、ページ・ムー
バは要求バッファ100aのライン要求をライン・バッ
ファ102bにロードする(ステップ458)。判断4
56の応答が否定の場合、ページ・ムーバはステップ4
52に戻り、ライン・バッファ102aが現在使用可能
かどうかを判断し、上述のように1回目の繰返しを実行
する。ライン・バッファ102aが判断452の次の繰
返しにおいても解放されていないとしても、ライン・バ
ッファ102bは解放されているかもしれない。従っ
て、要求バッファ100aよりも高い優先順位の要求バ
ッファが存在すると、要求バッファ100aはライン・
バッファ102b乃至102dを使用することができ
ず、ライン・バッファ102aの使用を維持することに
なる。(要求バッファ100aがライン・バッファ10
2bに対して最も高い優先順位でない場合、要求バッフ
ァ100aはライン・バッファ102cまたは102d
に対しても、同様に最も高い優先順位でないので、ライ
ン・バッファ102cまたは102dをチェックするポ
イントは存在しない。)
当てるライン・バッファを決定する上述のステップ11
9乃至120、及びステップ172乃至174の詳細を
表す。ここでページ・ムーバは、流れ図に相当するハー
ドウェアにより実現されることを述べておく。要求バッ
ファはラウンド・ロビン・シーケンスにより選択され
る。各要求バッファは選択されると、関連ライン・バッ
ファが解放されると、常にその関連ライン・バッファを
使用することができる。しかしながら、1つ以上のライ
ン・バッファが使用可能な場合、すなわち、対応する要
求バッファ内に要求が存在しない場合には、それらは最
も高い優先順位の要求バッファにより使用可能になる。
図14乃至図15は、要求バッファ100aに特有であ
るが、他のそれぞれの要求バッファについても同様に動
作される。ステップ450で、ページ・ムーバは要求バ
ッファ100aをロードする。次にページ・ムーバはラ
イン・バッファ102aが使用可能かどうかを判断する
(判断452)。肯定の場合、ページ・ムーバはライン
・バッファ102aに要求バッファ100aから次のラ
イン要求をロードする(ステップ453)。しかしなが
ら、ライン・バッファ102aが要求バッファ100a
からの以前の未実行のライン要求の記憶のために使用可
能でないと(或いは、要求が要求バッファ100aに記
憶されたより以前の、別の要求バッファからの以前の未
実行のライン要求の記憶のために使用可能でないと)、
ページ・ムーバは次に、別のライン・バッファが解放さ
れていないかどうか、及び要求バッファ100aが別の
ライン・バッファを捜し求めている最も高い優先順位の
要求バッファであるかどうかを判断するステップを実行
する。ステップ454で、ページ・ムーバは要求バッフ
ァ100b内に未処理の要求が存在するかどうかを判断
する。否定の場合、ページ・ムーバは(要求バッファ1
00c及び100dが現在ライン・バッファを捜し求め
ている場合、)要求バッファ100aが要求バッファ1
00c及び100dよりも高い優先順位を有するかどう
かを判断する。要求バッファ100aが要求バッファ1
00c及び100dよりも高い優先順位を有するか、ラ
イン・バッファを捜し求めているこれらの要求バッファ
の少なくともいずれかよりも高い優先順位を有するか、
或いは要求バッファ100c及び100dのいずれもラ
イン・バッファを捜し求めていない場合、ページ・ムー
バは要求バッファ100aのライン要求をライン・バッ
ファ102bにロードする(ステップ458)。判断4
56の応答が否定の場合、ページ・ムーバはステップ4
52に戻り、ライン・バッファ102aが現在使用可能
かどうかを判断し、上述のように1回目の繰返しを実行
する。ライン・バッファ102aが判断452の次の繰
返しにおいても解放されていないとしても、ライン・バ
ッファ102bは解放されているかもしれない。従っ
て、要求バッファ100aよりも高い優先順位の要求バ
ッファが存在すると、要求バッファ100aはライン・
バッファ102b乃至102dを使用することができ
ず、ライン・バッファ102aの使用を維持することに
なる。(要求バッファ100aがライン・バッファ10
2bに対して最も高い優先順位でない場合、要求バッフ
ァ100aはライン・バッファ102cまたは102d
に対しても、同様に最も高い優先順位でないので、ライ
ン・バッファ102cまたは102dをチェックするポ
イントは存在しない。)
【0043】判断454を再度参照して、1回目の繰返
しの間、要求バッファ100b内に未処理の要求が存在
すると、ページ・ムーバは判断464に移行し、要求バ
ッファ100c内に未処理の要求が存在するかどうかを
判断する。ステップ456及びステップ468は、上述
のステップ456及びステップ458と同様である。再
度判断464を参照して、1回目の繰返しの間、要求バ
ッファ100b及び100cに未処理の要求が存在する
と、ページ・ムーバはステップ474乃至478に移行
する。これらは上述のステップ454乃至458と同様
である。任意のライン・バッファが要求バッファ100
aからのライン要求によりロードされると、ページ・ム
ーバはステップ452にループして戻り、要求バッファ
100aの次のライン要求のためのライン・バッファを
見い出すように試行する。
しの間、要求バッファ100b内に未処理の要求が存在
すると、ページ・ムーバは判断464に移行し、要求バ
ッファ100c内に未処理の要求が存在するかどうかを
判断する。ステップ456及びステップ468は、上述
のステップ456及びステップ458と同様である。再
度判断464を参照して、1回目の繰返しの間、要求バ
ッファ100b及び100cに未処理の要求が存在する
と、ページ・ムーバはステップ474乃至478に移行
する。これらは上述のステップ454乃至458と同様
である。任意のライン・バッファが要求バッファ100
aからのライン要求によりロードされると、ページ・ム
ーバはステップ452にループして戻り、要求バッファ
100aの次のライン要求のためのライン・バッファを
見い出すように試行する。
【0044】次に、上述の処理が4つの要求バッファを
分け合う方法の例を示す。(1つの要求バッファ内に)
1つのCPU要求または入出力要求が存在し、他の3つ
の要求バッファ内に未処理の要求が存在しないと、ステ
ップ119乃至134またはステップ172乃至199
の32回の連続的繰返しの間に、4つの全てのライン・
バッファが1つの要求に対応して使用される。最初の4
回の繰返しの間に、4つのライン・バッファは迅速なシ
ーケンスにより、最初の4つの要求を受信し、ページ・
ムーバは即座にそれらを実行スタックに受渡す。各ライ
ン要求がスタックに渡された後、ライン・バッファは次
のラインを受信するために解放される。未処理の要求を
有する1つの要求バッファだけが存在するので、これは
別のライン要求を各ライン・バッファの解放時にそれら
に受渡す。4つの全てのライン・バッファが、ただ1つ
の要求を満足するために使用されるので、要求は最小の
時間で実行される。
分け合う方法の例を示す。(1つの要求バッファ内に)
1つのCPU要求または入出力要求が存在し、他の3つ
の要求バッファ内に未処理の要求が存在しないと、ステ
ップ119乃至134またはステップ172乃至199
の32回の連続的繰返しの間に、4つの全てのライン・
バッファが1つの要求に対応して使用される。最初の4
回の繰返しの間に、4つのライン・バッファは迅速なシ
ーケンスにより、最初の4つの要求を受信し、ページ・
ムーバは即座にそれらを実行スタックに受渡す。各ライ
ン要求がスタックに渡された後、ライン・バッファは次
のラインを受信するために解放される。未処理の要求を
有する1つの要求バッファだけが存在するので、これは
別のライン要求を各ライン・バッファの解放時にそれら
に受渡す。4つの全てのライン・バッファが、ただ1つ
の要求を満足するために使用されるので、要求は最小の
時間で実行される。
【0045】(2つの要求バッファ内に)同一の優先順
位の2つの同時要求が存在する場合には、ステップ11
9乃至134またはステップ172乃至199の4回の
繰返しの間に、一方の要求の2ラインのために2つのラ
イン・バッファが、また他方の要求の2ラインのために
2つのライン・バッファが提供される。各ライン・バッ
ファからのラインが実行スタックに渡された後、ライン
・バッファは次の要求バッファの次のラインを記憶する
ために解放される。ライン・バッファが2つの要求バッ
ファの間で、繰返し均等に振り分けられる。(3つの要
求バッファ内に)等しい優先順位の3つの保留の要求が
存在すると、繰返し、各要求は3分の2の回数分1つの
バッファを、3分の1の回数分2つのバッファを使用す
る。ある優先順位の2つの要求と、それより低い優先順
位の第3の要求が存在すると、各要求は関連するそれぞ
れのライン・バッファを使用し、更に2つの高い優先順
位の要求は、残りのライン・バッファの使用(異なる回
数)を分け合う。ある優先順位の2つの要求と、それよ
り高い優先順位の第3の要求が存在すると、各要求は関
連するそれぞれのライン・バッファを使用し、更に高い
優先順位の要求は残りのライン・バッファを使用する。
従って一般に、各要求バッファはその関連するライン・
バッファを使用し、残りのライン・バッファが存在する
と、それらが1つまたは複数の最も高い優先順位の要求
により共用される。
位の2つの同時要求が存在する場合には、ステップ11
9乃至134またはステップ172乃至199の4回の
繰返しの間に、一方の要求の2ラインのために2つのラ
イン・バッファが、また他方の要求の2ラインのために
2つのライン・バッファが提供される。各ライン・バッ
ファからのラインが実行スタックに渡された後、ライン
・バッファは次の要求バッファの次のラインを記憶する
ために解放される。ライン・バッファが2つの要求バッ
ファの間で、繰返し均等に振り分けられる。(3つの要
求バッファ内に)等しい優先順位の3つの保留の要求が
存在すると、繰返し、各要求は3分の2の回数分1つの
バッファを、3分の1の回数分2つのバッファを使用す
る。ある優先順位の2つの要求と、それより低い優先順
位の第3の要求が存在すると、各要求は関連するそれぞ
れのライン・バッファを使用し、更に2つの高い優先順
位の要求は、残りのライン・バッファの使用(異なる回
数)を分け合う。ある優先順位の2つの要求と、それよ
り高い優先順位の第3の要求が存在すると、各要求は関
連するそれぞれのライン・バッファを使用し、更に高い
優先順位の要求は残りのライン・バッファを使用する。
従って一般に、各要求バッファはその関連するライン・
バッファを使用し、残りのライン・バッファが存在する
と、それらが1つまたは複数の最も高い優先順位の要求
により共用される。
【0046】J.W.Bishopらによる米国特許出願第12
3495号(1993年9月17日出願)は、図16乃
至図17に表される特定のハードウェア(但し、ページ
・ムーバ71a及び71bを除く)を開示する。上記米
国特許出願第123495号はまた、各々が4つのL1
キャッシュ・サブシステムのクラスタにサービスする2
つ(またはそれ以上)のL2キャッシュ・サブシステム
が提供されるフローを開示する。各L2キャッシュ・サ
ブシステムに対応して、別々の記憶制御装置が存在す
る。各L2キャッシュの制御装置の目的の1つは、それ
ぞれのL2キャッシュが必要なデータを含まない時に、
他のL2キャッシュを探索することである。他のL2キ
ャッシュが必要なデータを含む場合、データがこの他の
L2キャッシュからフェッチされる。各L2キャッシュ
の制御装置の別の目的は、それぞれのL2キャッシュ内
でデータが更新される時に、他のL2キャッシュ及び関
連するL1キャッシュ内のコピーを無効にすることであ
る。上記米国特許出願第123495号の階層キャッシ
ュ・システムの記憶制御装置38bに、ページ・ムーバ
71aと同様の別のムーバ71bが導入される。CPU
ページ・コピー、CPUページ・コピー及びパージ、及
び入出力ページ・コピーのそれぞれのオペレーションに
おいて、ステップ180及びステップ195乃至198
は、図16乃至図17のクラスタ化キャッシュ構成に対
応して、要求元のCPUまたは入出力プロセッサのL2
キャッシュがフェッチすべきデータを含まない時に、記
憶制御装置が更に、任意の他のL2キャッシュがデータ
のコピーを含むかどうかもチェックするように拡張され
る。他のL2キャッシュがデータを含み、要求元のCP
Uまたは入出力プロセッサのL2キャッシュが含まない
場合、ページ・ムーバはステップ180で、データを他
のL2キャッシュからフェッチする。これらの任意のコ
ピー要求の続く記憶オペレーションの間に、ページ・ム
ーバはまた(ステップ195乃至196で)、無効信号
を宛先アドレスに対応する他のL2キャッシュに送信す
る。CPUページ記憶及び入出力ページ記憶ゼロのそれ
ぞれのオペレーションの場合には、ステップ130乃至
133において、図16乃至図17のクラスタ化キャッ
シュ構成に対応して、記憶制御装置が更に任意の他のL
2キャッシュがデータのコピーを含むかどうかをチェッ
クし、ページ・ムーバが宛先アドレスを含む全てのL2
キャッシュ・サブシステム内の全てのコピーを無効にす
るように拡張される。
3495号(1993年9月17日出願)は、図16乃
至図17に表される特定のハードウェア(但し、ページ
・ムーバ71a及び71bを除く)を開示する。上記米
国特許出願第123495号はまた、各々が4つのL1
キャッシュ・サブシステムのクラスタにサービスする2
つ(またはそれ以上)のL2キャッシュ・サブシステム
が提供されるフローを開示する。各L2キャッシュ・サ
ブシステムに対応して、別々の記憶制御装置が存在す
る。各L2キャッシュの制御装置の目的の1つは、それ
ぞれのL2キャッシュが必要なデータを含まない時に、
他のL2キャッシュを探索することである。他のL2キ
ャッシュが必要なデータを含む場合、データがこの他の
L2キャッシュからフェッチされる。各L2キャッシュ
の制御装置の別の目的は、それぞれのL2キャッシュ内
でデータが更新される時に、他のL2キャッシュ及び関
連するL1キャッシュ内のコピーを無効にすることであ
る。上記米国特許出願第123495号の階層キャッシ
ュ・システムの記憶制御装置38bに、ページ・ムーバ
71aと同様の別のムーバ71bが導入される。CPU
ページ・コピー、CPUページ・コピー及びパージ、及
び入出力ページ・コピーのそれぞれのオペレーションに
おいて、ステップ180及びステップ195乃至198
は、図16乃至図17のクラスタ化キャッシュ構成に対
応して、要求元のCPUまたは入出力プロセッサのL2
キャッシュがフェッチすべきデータを含まない時に、記
憶制御装置が更に、任意の他のL2キャッシュがデータ
のコピーを含むかどうかもチェックするように拡張され
る。他のL2キャッシュがデータを含み、要求元のCP
Uまたは入出力プロセッサのL2キャッシュが含まない
場合、ページ・ムーバはステップ180で、データを他
のL2キャッシュからフェッチする。これらの任意のコ
ピー要求の続く記憶オペレーションの間に、ページ・ム
ーバはまた(ステップ195乃至196で)、無効信号
を宛先アドレスに対応する他のL2キャッシュに送信す
る。CPUページ記憶及び入出力ページ記憶ゼロのそれ
ぞれのオペレーションの場合には、ステップ130乃至
133において、図16乃至図17のクラスタ化キャッ
シュ構成に対応して、記憶制御装置が更に任意の他のL
2キャッシュがデータのコピーを含むかどうかをチェッ
クし、ページ・ムーバが宛先アドレスを含む全てのL2
キャッシュ・サブシステム内の全てのコピーを無効にす
るように拡張される。
【0047】図18乃至図21は、上記米国特許出願第
123495号で述べられるクラスタ化キャッシュ・シ
ステム(ムーバ71aまたは71bは含まず)の1つの
クラスタの詳細ブロック図を表す。
123495号で述べられるクラスタ化キャッシュ・シ
ステム(ムーバ71aまたは71bは含まず)の1つの
クラスタの詳細ブロック図を表す。
【0048】
【0049】
【0050】
【0051】
【発明の効果】以上説明したように、本発明によれば、
データをL2キャッシュに書込むことなく、CPUがデ
ータを主メモリまたは拡張メモリ内のあるロケーション
から、主メモリまたは拡張メモリ内の別のロケーション
にコピーすることが可能な階層キャッシュ・システムを
提供することができる。
データをL2キャッシュに書込むことなく、CPUがデ
ータを主メモリまたは拡張メモリ内のあるロケーション
から、主メモリまたは拡張メモリ内の別のロケーション
にコピーすることが可能な階層キャッシュ・システムを
提供することができる。
【0052】更に本発明によれば、CPUによる最小の
制御を要求する上述のタイプの階層キャッシュ・システ
ムを提供することができる。
制御を要求する上述のタイプの階層キャッシュ・システ
ムを提供することができる。
【0053】
【図1】本発明による階層2レベル・キャッシュ・シス
テムのブロック図である。
テムのブロック図である。
【図2】図1の2レベル・キャッシュ・システムの詳細
なブロック図である。
なブロック図である。
【図3】図1の2レベル・キャッシュ・システムの詳細
なブロック図である。
なブロック図である。
【図4】図1の2レベル・キャッシュ・システムの詳細
なブロック図である。
なブロック図である。
【図5】図1の2レベル・キャッシュ・システムの詳細
なブロック図である。
なブロック図である。
【図6】図1のキャッシュ・システム内のページ・ムー
バ及び他のハードウェアのブロック図である。
バ及び他のハードウェアのブロック図である。
【図7】本発明による図1のキャッシュ・システム内の
CPUページ記憶オペレーションの流れ図である。
CPUページ記憶オペレーションの流れ図である。
【図8】本発明による図1のキャッシュ・システム内の
CPUページ記憶オペレーションの流れ図である。
CPUページ記憶オペレーションの流れ図である。
【図9】本発明による図1のキャッシュ・システム内の
CPUページ記憶オペレーションの流れ図である。
CPUページ記憶オペレーションの流れ図である。
【図10】本発明による図1のキャッシュ・システム内
の入出力ページ・コピー・オペレーションの流れ図であ
る。
の入出力ページ・コピー・オペレーションの流れ図であ
る。
【図11】本発明による図1のキャッシュ・システム内
の入出力ページ・コピー・オペレーションの流れ図であ
る。
の入出力ページ・コピー・オペレーションの流れ図であ
る。
【図12】本発明による図1のキャッシュ・システム内
の入出力ページ・コピー・オペレーションの流れ図であ
る。
の入出力ページ・コピー・オペレーションの流れ図であ
る。
【図13】本発明による図1のキャッシュ・システム内
の入出力ページ・コピー・オペレーションの流れ図であ
る。
の入出力ページ・コピー・オペレーションの流れ図であ
る。
【図14】図7乃至図9のCPUページ記憶オペレーシ
ョン及び図10乃至図13の入出力ページ・コピー・オ
ペレーションにおけるバッファリング処理の詳細な流れ
図である。
ョン及び図10乃至図13の入出力ページ・コピー・オ
ペレーションにおけるバッファリング処理の詳細な流れ
図である。
【図15】図7乃至図9のCPUページ記憶オペレーシ
ョン及び図10乃至図13の入出力ページ・コピー・オ
ペレーションにおけるバッファリング処理の詳細な流れ
図である。
ョン及び図10乃至図13の入出力ページ・コピー・オ
ペレーションにおけるバッファリング処理の詳細な流れ
図である。
【図16】米国特許出願第123495号で開示される
クラスタ化キャッシュ・システム(ページ・ムーバ不
在)のハイレベル・ブロック図である。
クラスタ化キャッシュ・システム(ページ・ムーバ不
在)のハイレベル・ブロック図である。
【図17】米国特許出願第123495号で開示される
クラスタ化キャッシュ・システム(ページ・ムーバ不
在)のハイレベル・ブロック図である。
クラスタ化キャッシュ・システム(ページ・ムーバ不
在)のハイレベル・ブロック図である。
【図18】図16及び図17のクラスタ化キャッシュ・
システムの1つのクラスタの詳細な図である。
システムの1つのクラスタの詳細な図である。
【図19】図16及び図17のクラスタ化キャッシュ・
システムの1つのクラスタの詳細な図である。
システムの1つのクラスタの詳細な図である。
【図20】図16及び図17のクラスタ化キャッシュ・
システムの1つのクラスタの詳細な図である。
システムの1つのクラスタの詳細な図である。
【図21】図16及び図17のクラスタ化キャッシュ・
システムの1つのクラスタの詳細な図である。
システムの1つのクラスタの詳細な図である。
20 階層キャッシュ・システム 22a、22b、22c、22d 中央処理ユニット
(CPU) 23a、23b、23c、23d レベル1(L1)キ
ャッシュ・サブシステム 24a、24b、24c、24d 命令キャッシュ 26a、26b、26c、26d L1ディレクトリ 28a、28b、28c、28d L1キャッシュ制御
装置 31a レベル2(L2)キャッシュ・サブシステム 32a L2命令キャッシュ 34a L2ディレクトリ 38a 記憶制御装置 49 キー配列 50a トラフィック・コップ 51 主メモリ 52a L10インタフェース・キュー 53a、53b、53c、53d 入出力プロセッサ 54a、54b、54c、54d コピー・ディレクト
リ 56a 置換ディレクトリ 60a、80a アドレス・バス 62a、62b、62c、62d、82a、84a 比
較器 66a セレクタ 67a ステータス・バス 68a ステータス配列 70a 記憶制御装置トラフィック・コップ回路 71a ページ・ムーバ 74a L20インタフェース 78a 変更ライン・バッファ(MLB)・ディレクト
リ 84 記憶制御装置インタフェース 85a SCインタフェース 92a 物理アドレス変換器 94a、94b、94c、94d インタフェース 97a、99a 入出力インタフェース・キュー 100a、100b、100c、100d 要求バッフ
ァ 102a、102b、102c、102d ライン・バ
ッファ 104 入出力実行スタック 106 CPU実行スタック 108 ページ・ムーバ制御装置 151 拡張メモリ
(CPU) 23a、23b、23c、23d レベル1(L1)キ
ャッシュ・サブシステム 24a、24b、24c、24d 命令キャッシュ 26a、26b、26c、26d L1ディレクトリ 28a、28b、28c、28d L1キャッシュ制御
装置 31a レベル2(L2)キャッシュ・サブシステム 32a L2命令キャッシュ 34a L2ディレクトリ 38a 記憶制御装置 49 キー配列 50a トラフィック・コップ 51 主メモリ 52a L10インタフェース・キュー 53a、53b、53c、53d 入出力プロセッサ 54a、54b、54c、54d コピー・ディレクト
リ 56a 置換ディレクトリ 60a、80a アドレス・バス 62a、62b、62c、62d、82a、84a 比
較器 66a セレクタ 67a ステータス・バス 68a ステータス配列 70a 記憶制御装置トラフィック・コップ回路 71a ページ・ムーバ 74a L20インタフェース 78a 変更ライン・バッファ(MLB)・ディレクト
リ 84 記憶制御装置インタフェース 85a SCインタフェース 92a 物理アドレス変換器 94a、94b、94c、94d インタフェース 97a、99a 入出力インタフェース・キュー 100a、100b、100c、100d 要求バッフ
ァ 102a、102b、102c、102d ライン・バ
ッファ 104 入出力実行スタック 106 CPU実行スタック 108 ページ・ムーバ制御装置 151 拡張メモリ
───────────────────────────────────────────────────── フロントページの続き (72)発明者 チャールズ・エンブリ・カーマック、ジ ュニア アメリカ合衆国55901、ミネソタ州ロチ ェスター、アパートメント ケイ33、ノ ース・ウエスト、フォーティ・ファース ト・ストリート 2015 (72)発明者 パトリック・ウェイン・ガラガー アメリカ合衆国55901、ミネソタ州ロチ ェスター、ノース・ウエスト、ストニ ー・クリーク・レーン 3904 (72)発明者 ステファン・ピーター・ジャコウスキー アメリカ合衆国13760、ニューヨーク州 エンディコット、ウエスト・エドワー ド・ストリート 115 (72)発明者 グレゴリー・ロバート・クラウダ アメリカ合衆国13760、ニューヨーク州 エンドウェル、プラザ・ドライブ 2724 (72)発明者 ロバート・ウエイト・シーゲル アメリカ合衆国13760、ニューヨーク州 エンディコット、アパートメント 26、 ボーント・ヒル・ロード 207 (56)参考文献 特開 平4−175948(JP,A) 特開 平5−181746(JP,A) 特開 平5−233443(JP,A) 特開 平5−233442(JP,A) 特開 平5−127999(JP,A) 特開 昭63−240650(JP,A) 特開 昭63−201850(JP,A) (58)調査した分野(Int.Cl.6,DB名) G06F 12/08
Claims (9)
- 【請求項1】複数のCPUのデータをそれぞれ記憶する
ための複数の第1レベル・キャッシュ・サブシステム
と、 前記複数の第1レベル・キャッシュ・サブシステムのデ
ータを保持するための第2レベル・キャッシュ・サブシ
ステムと、 前記第2レベル・キャッシュ・サブシステムに結合され
る主メモリと、 前記第2レベル・キャッシュ・サブシステム及び前記主
メモリに結合され、前記主メモリ内の1つのロケーショ
ンの内容を前記主メモリ内の別のロケーションにコピー
するためのコピー要求が1つの前記CPUから発行され
ることに応答して、前記1つのロケーションの内容が前
記第1または第2レベル・キャッシュ・サブシステム内
に保持されていない場合は、前記1つのロケーションか
らその内容をフェッチし、当該フェッチされた内容を、
前記第1または前記第2レベル・キャッシュ・サブシス
テム内にコピーすることなく、前記第1及び前記第2レ
ベル・キャッシュ・サブシステムとは別個に設けられた
一のバッファ内に一時的に格納するとともに、当該格納
された内容を前記一のバッファから前記別のロケーショ
ンに書き込むためのページ・ムーバ手段と、 前記コピー要求が前記1つのCPUから発行されること
に応答して、前記第2レベル・キャッシュ・サブシステ
ム内に前記別のロケーションの内容が保持されているか
否かを検知し、保持されている場合には、当該保持され
ている内容を無効化するための無効化手段とを備えるこ
とを特徴とする、階層キャッシュ・システム。 - 【請求項2】前記無効化手段は、前記コピー要求が前記
1つのCPUから発行されることに応答して、少なくと
も1つの前記第1レベル・キャッシュ・サブシステム内
に前記別のロケーションの内容が保持されているか否か
を検知し、保持されている場合には、当該保持されてい
る内容を無効化することを特徴とする、請求項1記載の
階層キャッシュ・システム。 - 【請求項3】前記無効化手段は、前記第2レベル・キャ
ッシュ・サブシステム内のデータのアドレスを保持する
コピー・ディレクトリと、前記別のロケーションのアド
レスを前記コピー・ディレクトリ内の前記アドレスと比
較する手段とから成ることを特徴とする、請求項1記載
の階層キャッシュ・システム。 - 【請求項4】前記ページ・ムーバ手段が、前記複数のC
PUからの要求を保持するための複数の要求バッファ
と、前記複数のキャッシュ・サブシステムに関連して設
けられ且つ前記一のバッファを含む複数のデータ・セグ
メント・バッファとから成り、 少なくとも1つの前記要求バッファが未処理の要求を保
持していない場合は、前記少なくとも1つの要求バッフ
ァに関連する前記データ・セグメント・バッファが、未
処理の要求を保持している他の前記要求バッファに対し
割り当てられることを特徴とする、請求項1記載の階層
キャッシュ・システム。 - 【請求項5】前記少なくとも1つの要求バッファに関連
する前記データ・セグメント・バッファが、未処理の要
求を保持している前記他の要求バッファに対し、当該他
の要求バッファの優先順位に基づいて割り当てられるこ
とを特徴とする、請求項4記載の階層キャッシュ・シス
テム。 - 【請求項6】前記少なくとも1つの要求バッファに関連
する前記データ・セグメント・バッファが、未処理の要
求を保持している前記他の要求バッファに対し、所定の
期間にわたって均等に割り当てられることを特徴とす
る、請求項4記載の階層キャッシュ・システム。 - 【請求項7】前記ページ・ムーバ手段は、前記1つのロ
ケーションの内容が前記別のロケーションにコピーされ
ている間に、前記1つのCPUが別のデータを少なくと
も1つの前記第1レベル・キャッシュ・サブシステムま
たは前記第2レベル・キャッシュ・サブシステムに書き
込むことができるように、前記1つのCPUとは別個に
設けられた処理ハードウェアから成ることを特徴とす
る、請求項1記載の階層キャッシュ・システム。 - 【請求項8】複数のCPUのデータをそれぞれ記憶する
ための複数の第1レベル・キャッシュ・サブシステム
と、 前記複数の第1レベル・キャッシュ・サブシステムのデ
ータを保持するための第2レベル・キャッシュ・サブシ
ステムと、 前記第2レベル・キャッシュ・サブシステムに結合され
る主メモリと、 前記第2レベル・キャッシュ・サブシステム及び前記主
メモリに結合され、前記主メモリ内の1つのロケーショ
ンの内容を前記主メモリ内の別のロケーションにコピー
するためのコピー要求が1つの前記CPUから発行され
ることに応答して、前記1つのロケーションの以前の内
容が前記第2レベル・キャッシュ・サブシステム内に保
持されている場合は、前記1つのロケーションからその
現内容をフェッチし、当該フェッチされた現内容を、前
記第1または前記第2レベル・キャッシュ・サブシステ
ム内にコピーすることなく、前記第1及び前記第2レベ
ル・キャッシュ・サブシステムとは別個に設けられた一
のバッファ内に一時的に格納するとともに、当該格納さ
れた現内容を前記一のバッファから前記別のロケーショ
ンに書き込むためのページ・ムーバ手段と、 前記コピー要求が前記1つのCPUから発行されること
に応答して、前記第2レベル・キャッシュ・サブシステ
ム内に保持されている前記1つのロケーションの前記以
前の内容を無効化するとともに、前記第2レベル・キャ
ッシュ・サブシステム内に前記別のロケーションの内容
が保持されているか否かを検知し、保持されている場合
には、当該保持されている内容を無効化するための無効
化手段とを備えることを特徴とする、階層キャッシュ・
システム。 - 【請求項9】前記無効化手段は、前記コピー要求が前記
1つのCPUから発行されることに応答して、少なくと
も1つの前記第1レベル・キャッシュ・サブシステム内
に前記1つのロケーションの前記以前の内容及び前記別
のロケーションの内容が保持されているか否かを検知
し、保持されている場合には、当該保持されている内容
を無効化することを特徴とする、請求項8記載の階層キ
ャッシュ・システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US241910 | 1994-05-12 | ||
US08/241,910 US5539895A (en) | 1994-05-12 | 1994-05-12 | Hierarchical computer cache system |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH07311713A JPH07311713A (ja) | 1995-11-28 |
JP2784464B2 true JP2784464B2 (ja) | 1998-08-06 |
Family
ID=22912675
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7021735A Expired - Lifetime JP2784464B2 (ja) | 1994-05-12 | 1995-02-09 | 階層キャッシュ・システム |
Country Status (3)
Country | Link |
---|---|
US (1) | US5539895A (ja) |
JP (1) | JP2784464B2 (ja) |
DE (1) | DE19516937A1 (ja) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0877073A (ja) * | 1994-08-31 | 1996-03-22 | Toshiba Corp | 集合光ディスク装置 |
JP3132749B2 (ja) * | 1994-12-05 | 2001-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ・データ処理システム |
US5729713A (en) * | 1995-03-27 | 1998-03-17 | Texas Instruments Incorporated | Data processing with first level cache bypassing after a data transfer becomes excessively long |
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 |
US5740399A (en) * | 1995-08-23 | 1998-04-14 | International Business Machines Corporation | Modified L1/L2 cache inclusion for aggressive prefetch |
US6035424A (en) * | 1996-12-09 | 2000-03-07 | International Business Machines Corporation | Method and apparatus for tracking processing of a command |
US6000011A (en) * | 1996-12-09 | 1999-12-07 | International Business Machines Corporation | Multi-entry fully associative transition cache |
US6263404B1 (en) | 1997-11-21 | 2001-07-17 | International Business Machines Corporation | Accessing data from a multiple entry fully associative cache buffer in a multithread data processing system |
US6219758B1 (en) * | 1998-03-24 | 2001-04-17 | International Business Machines Corporation | False exception for cancelled delayed requests |
US6473834B1 (en) | 1999-12-22 | 2002-10-29 | Unisys | Method and apparatus for prevent stalling of cache reads during return of multiple data words |
US6415357B1 (en) | 1999-12-23 | 2002-07-02 | Unisys Corporation | Caching method and apparatus |
JP4025501B2 (ja) * | 2000-03-03 | 2007-12-19 | 株式会社ソニー・コンピュータエンタテインメント | 楽音発生装置 |
US20020161698A1 (en) * | 2000-10-04 | 2002-10-31 | Wical Kelly J. | Caching system using timing queues based on last access times |
US20020138302A1 (en) * | 2001-03-21 | 2002-09-26 | David Bodnick | Prepaid telecommunication card for health care compliance |
US6772315B1 (en) * | 2001-05-24 | 2004-08-03 | Rambus Inc | Translation lookaside buffer extended to provide physical and main-memory addresses |
US6760819B2 (en) * | 2001-06-29 | 2004-07-06 | International Business Machines Corporation | Symmetric multiprocessor coherence mechanism |
US6587925B2 (en) * | 2001-07-12 | 2003-07-01 | International Business Machines Corporation | Elimination of vertical bus queueing within a hierarchical memory architecture |
US6587924B2 (en) * | 2001-07-12 | 2003-07-01 | International Business Machines Corporation | Scarfing within a hierarchical memory architecture |
US6587926B2 (en) * | 2001-07-12 | 2003-07-01 | International Business Machines Corporation | Incremental tag build for hierarchical memory architecture |
US20030061352A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Optimized file cache organization in a network server |
US6970975B2 (en) * | 2002-11-15 | 2005-11-29 | Exanet Co. | Method for efficient caching and enumerating objects in distributed storage systems |
US20040117437A1 (en) * | 2002-12-16 | 2004-06-17 | Exanet, Co. | Method for efficient storing of sparse files in a distributed cache |
US7231504B2 (en) * | 2004-05-13 | 2007-06-12 | International Business Machines Corporation | Dynamic memory management of unallocated memory in a logical partitioned data processing system |
US8341371B2 (en) * | 2005-01-31 | 2012-12-25 | Sandisk Il Ltd | Method of managing copy operations in flash memories |
JP4966958B2 (ja) * | 2005-03-14 | 2012-07-04 | ノイロサーチ アクティーゼルスカブ | カリウムチャネル調節剤及び医療における使用 |
US7649537B2 (en) * | 2005-05-27 | 2010-01-19 | Ati Technologies, Inc. | Dynamic load balancing in multiple video processing unit (VPU) systems |
US7698495B2 (en) * | 2005-07-01 | 2010-04-13 | QNZ Software Systems GmbH & Co. KG | Computer system having logically ordered cache management |
US9280479B1 (en) * | 2012-05-22 | 2016-03-08 | Applied Micro Circuits Corporation | Multi-level store merging in a cache and memory hierarchy |
GB2506900A (en) * | 2012-10-12 | 2014-04-16 | Ibm | Jump positions in recording lists during prefetching |
US9785545B2 (en) * | 2013-07-15 | 2017-10-10 | Cnex Labs, Inc. | Method and apparatus for providing dual memory access to non-volatile memory |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
US11288017B2 (en) | 2017-02-23 | 2022-03-29 | Smart IOPS, Inc. | Devices, systems, and methods for storing data using distributed control |
US10372353B2 (en) * | 2017-05-31 | 2019-08-06 | Micron Technology, Inc. | Apparatuses and methods to control memory operations on buffers |
US11354247B2 (en) | 2017-11-10 | 2022-06-07 | Smart IOPS, Inc. | Devices, systems, and methods for configuring a storage device with cache |
US10394474B2 (en) | 2017-11-10 | 2019-08-27 | Smart IOPS, Inc. | Devices, systems, and methods for reconfiguring storage devices with applications |
US20230214138A1 (en) * | 2022-01-06 | 2023-07-06 | Samsung Electronics Co., Ltd. | Memory interface for initalizing memory and method thereof |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3735360A (en) * | 1971-08-25 | 1973-05-22 | Ibm | High speed buffer operation in a multi-processing system |
US4084231A (en) * | 1975-12-18 | 1978-04-11 | International Business Machines Corporation | System for facilitating the copying back of data in disc and tape units of a memory hierarchial system |
US4044337A (en) * | 1975-12-23 | 1977-08-23 | International Business Machines Corporation | Instruction retry mechanism for a data processing system |
US4096567A (en) * | 1976-08-13 | 1978-06-20 | Millard William H | Information storage facility with multiple level processors |
US4298929A (en) * | 1979-01-26 | 1981-11-03 | International Business Machines Corporation | Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability |
US4394731A (en) * | 1980-11-10 | 1983-07-19 | International Business Machines Corporation | Cache storage line shareability control for a multiprocessor system |
US4394733A (en) * | 1980-11-14 | 1983-07-19 | Sperry Corporation | Cache/disk subsystem |
US4467411A (en) * | 1981-03-06 | 1984-08-21 | International Business Machines Corporation | Scheduling device operations in a buffered peripheral subsystem |
US4445174A (en) * | 1981-03-31 | 1984-04-24 | International Business Machines Corporation | Multiprocessing system including a shared cache |
US4525780A (en) * | 1981-05-22 | 1985-06-25 | Data General Corporation | Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information |
US4484267A (en) * | 1981-12-30 | 1984-11-20 | International Business Machines Corporation | Cache sharing control in a multiprocessor |
US4442487A (en) * | 1981-12-31 | 1984-04-10 | International Business Machines Corporation | Three level memory hierarchy using write and share flags |
US4564899A (en) * | 1982-09-28 | 1986-01-14 | Elxsi | I/O Channel bus |
US4535455A (en) * | 1983-03-11 | 1985-08-13 | At&T Bell Laboratories | Correction and monitoring of transient errors in a memory system |
US4774654A (en) * | 1984-12-24 | 1988-09-27 | International Business Machines Corporation | Apparatus and method for prefetching subblocks from a low speed memory to a high speed memory of a memory hierarchy depending upon state of replacing bit in the low speed memory |
US4633440A (en) * | 1984-12-31 | 1986-12-30 | International Business Machines | Multi-port memory chip in a hierarchical memory |
US4703481A (en) * | 1985-08-16 | 1987-10-27 | Hewlett-Packard Company | Method and apparatus for fault recovery within a computing system |
US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
JPH0734185B2 (ja) * | 1987-02-16 | 1995-04-12 | 日本電気株式会社 | 情報処理装置 |
JPS63201850A (ja) * | 1987-02-18 | 1988-08-19 | Matsushita Electric Ind Co Ltd | オンチツプキヤツシユメモリ |
JPS63240650A (ja) * | 1987-03-28 | 1988-10-06 | Toshiba Corp | キヤツシユメモリ装置 |
US4907228A (en) * | 1987-09-04 | 1990-03-06 | Digital Equipment Corporation | Dual-rail processor with error checking at single rail interfaces |
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 |
US4924466A (en) * | 1988-06-30 | 1990-05-08 | International Business Machines Corp. | Direct hardware error identification method and apparatus for error recovery in pipelined processing areas of a computer system |
US4912707A (en) * | 1988-08-23 | 1990-03-27 | International Business Machines Corporation | Checkpoint retry mechanism |
US4947319A (en) * | 1988-09-15 | 1990-08-07 | International Business Machines Corporation | Arbitral dynamic cache using processor storage |
US5097532A (en) * | 1989-03-03 | 1992-03-17 | Compaq Computer Corporation | Circuit for enabling a cache using a flush input to circumvent a late noncachable address input |
JPH02253356A (ja) * | 1989-03-28 | 1990-10-12 | Toshiba Corp | 階層キャッシュメモリ装置とその制御方式 |
EP0398523A3 (en) * | 1989-05-19 | 1991-08-21 | Hitachi, Ltd. | A device for data i/o and execution support in digital processors |
US5155832A (en) * | 1989-07-05 | 1992-10-13 | Hewlett-Packard Company | Method to increase performance in a multi-level cache system by the use of forced cache misses |
US5153881A (en) * | 1989-08-01 | 1992-10-06 | Digital Equipment Corporation | Method of handling errors in software |
US5113514A (en) * | 1989-08-22 | 1992-05-12 | Prime Computer, Inc. | System bus for multiprocessor computer system |
JP2531802B2 (ja) * | 1989-09-28 | 1996-09-04 | 甲府日本電気株式会社 | リクエストバッファ制御システム |
JPH04175948A (ja) * | 1990-11-09 | 1992-06-23 | Hitachi Ltd | 情報処理装置 |
GB2256512B (en) * | 1991-06-04 | 1995-03-15 | Intel Corp | Second level cache controller unit and system |
US5353423A (en) * | 1991-06-21 | 1994-10-04 | Compaq Computer Corporation | Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses |
US5426765A (en) * | 1991-08-30 | 1995-06-20 | Compaq Computer Corporation | Multiprocessor cache abitration |
US5341487A (en) * | 1991-12-20 | 1994-08-23 | International Business Machines Corp. | Personal computer having memory system with write-through cache and pipelined snoop cycles |
JPH05181746A (ja) * | 1991-12-26 | 1993-07-23 | Mitsubishi Electric Corp | データ処理システム及びメモリ制御方式 |
US5325503A (en) * | 1992-02-21 | 1994-06-28 | Compaq Computer Corporation | Cache memory system which snoops an operation to a first location in a cache line and does not snoop further operations to locations in the same line |
JPH05233443A (ja) * | 1992-02-21 | 1993-09-10 | Nec Corp | マルチプロセッサシステム |
US5265212A (en) * | 1992-04-01 | 1993-11-23 | Digital Equipment Corporation | Sharing of bus access among multiple state machines with minimal wait time and prioritization of like cycle types |
JPH0797352B2 (ja) * | 1992-07-02 | 1995-10-18 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システム及び入出力コントローラ |
-
1994
- 1994-05-12 US US08/241,910 patent/US5539895A/en not_active Expired - Fee Related
-
1995
- 1995-02-09 JP JP7021735A patent/JP2784464B2/ja not_active Expired - Lifetime
- 1995-05-09 DE DE19516937A patent/DE19516937A1/de not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
DE19516937A1 (de) | 1995-12-07 |
US5539895A (en) | 1996-07-23 |
JPH07311713A (ja) | 1995-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2784464B2 (ja) | 階層キャッシュ・システム | |
KR100252570B1 (ko) | 축소된요구블로킹을갖는캐시메모리 | |
US6640287B2 (en) | Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests | |
US5222224A (en) | Scheme for insuring data consistency between a plurality of cache memories and the main memory in a multi-processor system | |
US7366847B2 (en) | Distributed cache coherence at scalable requestor filter pipes that accumulate invalidation acknowledgements from other requestor filter pipes using ordering messages from central snoop tag | |
US5148533A (en) | Apparatus and method for data group coherency in a tightly coupled data processing system with plural execution and data cache units | |
US6189078B1 (en) | System and method for increasing data transfer throughput for cache purge transactions using multiple data response indicators to maintain processor consistency | |
KR20040045035A (ko) | 힌트 버퍼를 이용한 메모리 액세스 대기시간 숨김 | |
US6374332B1 (en) | Cache control system for performing multiple outstanding ownership requests | |
JP2000250812A (ja) | メモリ・キャッシュ・システムおよびその管理方法 | |
US10042580B2 (en) | Speculatively performing memory move requests with respect to a barrier | |
JPH10254773A (ja) | アクセス方法、処理装置およびコンピュータ・システム | |
JPH1055306A (ja) | メモリコントローラ | |
WO2007122063A1 (en) | Migrating data that is subject to access by input/output devices | |
JPH1031625A (ja) | マルチ・プロセッサ・システムにおける改良されたコピーバック性能のためのライトバック・バッファ | |
US5263144A (en) | Method and apparatus for sharing data between processors in a computer system | |
JPH09204403A (ja) | 並列計算機 | |
EP0380842A2 (en) | Method and apparatus for interfacing a system control unit for a multiprocessor system with the central processing units | |
US5361342A (en) | Tag control system in a hierarchical memory control system | |
US6973541B1 (en) | System and method for initializing memory within a data processing system | |
US6490647B1 (en) | Flushing stale data from a PCI bus system read prefetch buffer | |
CN114341820A (zh) | 响应于推测性数据请求而推迟基于处理器的系统中的非推测性高速缓存存储器中的高速缓存状态更新,直到推测性数据请求变为非推测性 | |
US6976128B1 (en) | Cache flush system and method | |
US7000080B2 (en) | Channel-based late race resolution mechanism for a computer system | |
US6704833B2 (en) | Atomic transfer of a block of data |