(57)【要約】【解決手段】キャッシュデータ配列の更新済データをメモリに書き戻すことによりデータ不一致を修正するキャッシュライトバック処理は、スヌーププッシュ処理またはスヌープキル処理とライトバック処理の実行比較によってはキャンセルすることができる。ライトバックは、キャッシュミスによるデータリロードのために空きスロットを作ることが目的であるが、スヌーププッシュ処理やスヌープキル処理はキャッシュに無効エントリを作るのでライトバックは必要ではなくなる。もし、ライトバック処理と同時にスヌープキルやスヌーププッシュが実行されていれば、ライトバックマシンは動的にキャンセルされる。キャッシュデータ配列中に将来再利用可能なキャッシュラインをより多く残せるのでシステムパフォーマンスが向上する。【選択図】図３
2007533014.tif 000002
【特許請求の範囲】
【請求項１】
ラインのスヌーププッシュまたはスヌープキルの実行中に発生するライトバックを動的キャンセルするためのシステムであって、
システムバスに接続されるライトバックキャッシュと接続されるプロセッサと、
ライトバックキャッシュに内蔵される複数のキャッシュデータ配列と、
ディレクトリにより、キャッシュデータ配列における各エントリの状態情報を保持するキャッシュ管理部と、
を備えることを特徴とするシステム。
【請求項２】
ライトバック処理コントローラが、動的キャンセル処理を実行することを特徴とする請求項１に記載のシステム。
【請求項３】
犠牲選択機構が、プロセッサによる過去のアクセス履歴に基づいて、ライトバック対象となる犠牲ラインを選ぶことを特徴とする請求項２に記載のシステム。
【請求項４】
スヌーププッシュ動作、または、スヌープキル動作の検知機構が、同時発生しているライトバック処理をキャンセルすることを特徴とする請求項２に記載のシステム。
【請求項５】
スヌーププッシュまたはスヌープキルは、ライトバックの動的キャンセルを補償するために、空きスロットができるようにその実行を継続することを特徴とする請求項４に記載のシステム。
【請求項６】
ライトバックの動的キャンセルは、更新済の犠牲データを下位層ストレージへ転送するのを中止し、その犠牲エントリを有効状態にて維持することを特徴とする請求項２に記載のシステム。
【請求項７】
キャッシュシステムにおいてライトバック処理を動的にキャンセルするための方法であって、
ライトバックキャッシュはバスに接続されていて、
プロセッサによるキャッシュ可能型ストレージアクセスの履歴を解析して、ライトバックキャッシュから有効な犠牲ラインを特定するステップと、
ライトバックキャッシュにおいて、スヌーププッシュまたはスヌープキルの実行状態を判定するステップと、
実行中のライトバックサイクルを参照して、ライトバックキャッシュ内において展開されているステージを検出するステップと、
ライトバックキャッシュにおいてスヌープキル処理またはスヌーププッシュ処理のいずれかがライトバック処理と同時実行されているかに基づいて、ライトバック状態を動的にキャンセルするステップと、
を備えることを特徴とする方法。
【請求項８】
動的キャンセル処理は、ライトバックキャッシュ内のスヌープコントローラとライトバックの動的キャンセルのためのライトバックコントローラによる共同の処理を含むことを特徴とする請求項７に記載の方法。
【請求項９】
ライトバックの動的キャンセルは、スヌーププッシュかスヌープキルが実行中であることを条件として作動することを特徴とする請求項７に記載の方法。
【請求項１０】
ライトバックの動的キャンセルは、ライトバックが実行中であることを条件として作動することを特徴とする請求項９に記載の方法。
【請求項１１】
ライトバックの動的キャンセルの実行決定に際しては、ライトバックキャッシュ内でスヌーププッシュ処理またはスヌープキル処理のいずれかとライトバック処理が同時実行されているかを判定することを特徴とする請求項９に記載の方法。
【請求項１２】
ライトバックの動的キャンセルの実行に際しては、更に、ライトバックが動的キャンセルされる犠牲エントリが有効な犠牲エントリであることを示す認証コードを伝送することを特徴とする請求項９に記載の方法。
【請求項１３】
コンピュータプログラム自体が格納される媒体を有し、コンピュータシステムにおいてコード認証するコンピュータプログラム製品であって、
前記コンピュータプログラムは、
ライトバックとスヌーププッシュまたはスヌープキルのいずれかの同時発生を検出するコンピュータコードと、
有効な犠牲ラインを特定するコンピュータコードと、
ライトバックキャッシュデータ配列空間から、更新済の犠牲ラインを退避させるコンピュータコードと、
を含むことを特徴とするコンピュータプログラム製品。
【請求項１４】
コンピュータシステムにおいてライトバックを動的にキャンセルするためのコンピュータプログラムであって、
ライトバックを動的にキャンセルするコンピュータプログラムには、
ライトバックとスヌーププッシュまたはスヌープキルのいずれかの同時発生を検出するコンピュータコードと、
ライトバックキャッシュデータ配列から、未更新の犠牲ラインをフラッシュするコンピュータコードと、
が含まれることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的にはコンピュータシステムの分野に関連するものであり、より詳細には、マイクロプロセッサにおけるキャッシュシステムに関する。
【背景技術】
【０００２】
高速処理システムにおいて素早くデータを処理するためには、メモリアクセスの高速化とメモリ遅延の抑制が必要である。システムメモリからプロセッサへのデータ供給は低速であるため、いっそう高速なデータアクセスを実現するために、プロセッサ近くでデータを保持するキャッシュが設けられる。キャッシュを大きくするほど全体としてのシステムパフォーマンスは向上するが、場合によっては小さなキャッシュよりも遅延が大きくなってしまったり、設計が複雑になってしまうことがある。通常、システムアプリケーションレベル、特に、通信やグラフィックス処理において、プロセッサ間の同期や通信を高速化するために、小さめのキャッシュが用いられる。
【０００３】
ロード（Load）命令やストア（Store）命令により、プロセッサとメモリはデータを送受する。システムメモリから得られたデータは、キャッシュを満たす。すべて、あるいは、ほとんどのプロセッサのデータアクセス先がキャッシュとなることが理想である。アプリケーションデータの大きさがキャッシュの大きさ以下ならば、これは可能性がある。しかし、一般的には、キャッシュの大きさには設計的・技術的な制約があり、アプリケーションのデータすべてを保持することはできない。このため、プロセッサがキャッシュされていない新しいデータにアクセスし、キャッシュにその新しいデータを入れるのに十分なスペースもないときが問題となる。すなわち、キャッシュコントローラは、新しいデータがメモリから読み出されるとき、その新しいデータのための適切な空きをキャッシュ内で見つけなければならない。ＬＲＵ（Least Recently Used）は、このような状況に対処するためのキャッシュコントローラのアルゴリズムである。ＬＲＵは、データアクセス履歴に基づいて、新データ用の場所を決める。もし、ＬＲＵがシステムメモリと一致するライン、たとえば、共有状態にあるラインを選択すると、新しいデータはそこに上書きされる。ＬＲＵが「更新済」マークの付いているラインを選択すると、このマークの付いているデータはシステムメモリと一致していないユニークなデータなので、キャッシュコントローラは、この「更新済」データをシステムメモリに書き戻す。このような操作は、「ライトバック（write back）」とか「キャストアウト（castout）」とよばれ、ライトバックされるデータのあるキャッシュ内の位置は、「犠牲キャッシュライン（Victim Cache Line）」とよばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
典型的なキャッシュ設計では、ＬＲＵアルゴリズムは、最長時間未使用データを排除することにより、ソフトウェアによるデータの将来的な再利用性を高めようとする。しかし、ＬＲＵが正しくない選択をして、同一データに対するキャッシュミス（ミスヒット）が起きることがある。こうなると、ミスしたデータをメモリから再読み出し（リロード:Reload）するのに長い遅延時間が生じる。
【０００５】
ライトバックやリロードにともなう長時間の遅延のほかにも、パフォーマンス悪化を招く状況がある。キャッシュコントローラは、指定のバス処理を介してシステムメモリにデータを送出することにより、適宜、ライトバックを完遂しようとする。ライトバック中に、ライトバック対象のアドレスと同じアドレスを対象としてバススヌープ（Bus Snoop）処理が発生すると、スヌープ処理は再試行（リトライ：retry）されることになる。いいかえれば、ライトバックされるべきデータがシステムメモリに収まるまで、そのデータに対するスヌープのヒットすべてが連続的にリトライとなる。システムバスにおけるスヌープ処理は、マルチプロセッサにおけるキャッシュとシステムメモリ間におけるメモリの一貫性（コヒーレンシ：coherency）を維持するために必要である。
【０００６】
ライトバック処理は遅延が大きいバス操作なので、ライトバック対象のアドレスにぶつかるスヌープ処理はすべてリトライとなる。これがシステムパフォーマンス上の問題となり、いわゆるライブロック（live-lock）状態となることもある。したがって、できるかぎりこのような遅延の大きなライトバック処理を回避することは、システムパフォーマンスの向上に資するであろう。
【０００７】
通常、ライトバックキャッシュは、プロセッサのデータアクセス、通信、タスク同期を高速化して、最適パフォーマンスとなるように実装される。たとえキャッシュを出入りするデータが小さくともライトバック処理を可能ならいつでもキャンセルできるメカニズムが、パフォーマンス向上のために必要である。キャッシュに空きを作る処理として２種類の処理がある。「スヌーププッシュ（Snoop Push）」と「スヌープキル（Snoop Kill）」である。スヌーププッシュ処理は、たとえば、システムバスのＩ／Ｏコントローラのようにキャッシュを持たないバス・エージェントが、キャッシュヒットして更新済となっているデータをストアするときに発生する。キャッシュコントローラは、Ｉ／Ｏコントローラのストア要求をバス上でリトライし、Ｉ／Ｏコントローラがメモリ上にて最新の更新済データを扱えるように、更新済データの最新コピーをメモリに押し出す。スヌーププッシュ処理は、更新済データをシステムメモリに押し出し、共有または無効としてそのデータを維持する。スヌープキル処理は、たとえば、キャッシュフラッシュとしてエントリを無効化し、キャッシュミスにともなうリロードに備えてキャッシュに空きを作る処理である。スヌーププッシュやスヌープキルは空き領域を作るので、それと同時に発生したキャッシュミスにともなうリロードをする上でライトバックは必要ではない。
【０００８】
ライトバック処理のキャンセルは、後発的に発生しうるキャッシュミスと、ライトバック中に犠牲ラインにヒットしたスヌープのリトライを防止するので、この仕組みによればシステムパフォーマンスが改善される。また、ライトバックのように遅延の大きなバス処理のキャンセルは、特にスヌーププッシュ処理が同時発生している場合においてバスの負荷を軽減する。したがって、スヌープステートマシンがスヌーププッシュやスヌープキルの実行でビジーならば、ペンディング中のライトバック処理をキャンセルできるのが望ましい。
【課題を解決するための手段】
【０００９】
本発明は、キャッシュシステムにおいてライトバック処理の動的キャンセルを実行するための方法を提供する。ライトバックキャッシュは、システムバスを介して下位層のストレージと接続される。キャッシュミスにともなうリロード処理は、同位層または下位層のストレージからキャッシュへデータを転送する。ライトバック処理は、キャッシュから下位層のストレージへデータを転送する。有効な犠牲ラインが特定され、スヌーププッシュやスヌープキルの実行状態が判定され、実行中のライトバックサイクルについての判定がなされる。スヌープキルまたはスヌーププッシュのいずれかとライトバックが同時実行されているかに基づいて、ライトバックの動的キャンセルの開始や継続が決定される。
【発明を実施するための最良の形態】
【００１０】
本発明とその優位性についてのより完全に理解するために、添付の図面とあわせて以下の記述を参照されたい。
【００１１】
以下の記述における多数の特定的に詳細な記述は、本発明の充分な理解を可能とするためのものである。しかし、当業者であれば、そのような特定的に詳細な記述がなくとも本発明を実現できるであろう。別の例においては、既知の要素についても模式図やブロック図のかたちで、不必要なほど詳細な部分についても本発明を隠すことなく示す。加えて、ほとんどの部分について、ネットワーク通信、電磁的信号技術などに関する詳細は、そのような詳細が本発明の完全な理解のためには不要であり、関連技術について通常のスキルを持つ人物の理解力の範囲内にあると考えられる限りは省略している。
【００１２】
さらに付け加えるならば、キャッシュは、デバイスにおいてスヌーププッシュやスヌープキルが実行中のときにはライトバック処理を抑止するためのディジタル論理処理を行う単一キャッシュであってもよい。また、キャッシュは、計算デバイスにおけるなんらかの方法論やアルゴリズムにしたがって、データ処理を共有する多数のプロセッシングユニットのうちの一つであってもよい。特に断らない限りは、以下に述べられるすべての機能は、ハードウェアやソフトウェア、あるいはそれらの組み合わせによって実現される。しかし、これらの機能はデジタルデバイスとしてのハードウェアキャッシュにより実現されるのが好ましい。特に断らない限りは、離散的データの移動は、たとえば、コンピュータプログラムコードのようなコード、ソフトウェア、および／または、このような機能を実現するようにコード化された集積回路による。
【００１３】
図１は、例示としてのマルチプロセッサシステム１００のブロック図であり、複数のプロセッサ、キャッシュ、および、内部処理サブシステムを示す。
【００１４】
プロセッサ、システムバス、メモリコントローラ、メモリバス、メインメモリモジュール、キャッシュなどのサブシステムの相互関係や複合化については当業者には理解されるところであろう。全体として、システムは、メモリデバイスに対するデータの書き込みや書き換えが正しいタイミングでなされるか、に依存する。データは、同時に転送されたり同時に保持されたりする。プロセッサにおける動的な記録の多くはキャッシュで発生する。通常、キャッシュはスヌープ用ポート付きの指定ディレクトリを持つ。スヌープとは、スレーブ側キャッシュがシステムバスを監視し、転送アドレスとキャッシュディレクトリにおけるアドレスを比較する処理である。アドレスが一致していれば、別の処理を実行できる。「バススヌープ」や「バス監視」という用語も同じ意味である。
【００１５】
図１は、ＣＰＵ１−１０５とＣＰＵ２−１１０という一般的なＣＰＵ（Central Processing Unit）を持つ典型的なマルチプロセッサシステムであり、これらのＣＰＵは、たとえば、命令ユニット、命令キャッシュ、データキャッシュ、固定小数点ユニット、浮動小数点ユニット、ローカルストレージ、などを含む。ＣＰＵ１−１０５やＣＰＵ２−１１０といったプロセッサはバスを介して接続されるか、キャッシュ１１５やキャッシュ１４２のような下位レベルキャッシュを持っている。キャッシュ１１５とキャッシュ１４２はバスインタフェース１２５やバスインタフェース１４４のようなバスインタフェースと接続され、バスインタフェースは共通のシステムバス１５０に接続される。別のプロセッサのキャッシュも、プロセッサ間通信のために別のバスインタフェースユニットを介してシステムバス１５０と接続可能である。「ｎ」個のプロセッサに加えて、メモリコントローラ１６０もシステムバス１５０と接続される。システムメモリ１７０は、ＣＰＵ１−１０５とＣＰＵ２−１１０が共有する共通ストレージとしてメモリコントローラ１６０と接続されるが、システムにｎ個（ｎは任意の数）のプロセッサが含まれる場合も同様である。
【００１６】
図２は、代表として、図１のキャッシュ１４２の配置をみることができるようにシステム１００を拡大した図である。
キャッシュ１４２は、データ保持のためのデータ配列回路（CDA:Data Array Circuitry）ＣＤＡ１４６とその制御論理を備える。制御論理は、ディレクトリとしてのＤＩＲ１４７、プロセッサコアによるキャッシュ可能型ストレージアクセスを取り扱うための「読み出しと要求（RC:Read and Claim）」に関する有限ステートマシンＲＣ１４３、データのメモリへのライトバックを担当するライトバックステートマシンＷＢ１４８、スヌープステートマシンであるＳＮＯＯＰ１４５を備える。ＤＩＲ１４７は、キャッシュデータのタグと、キャッシュデータの状態（ステート）を保持する。
【００１７】
ＲＣ１４３マシンは、キャッシュ可能型ストレージアクセス命令を実行する。この命令は、ロック取得、アトミック命令の呼び出し、プロセッサ間における同期条件や同期命令のロード、維持、記録などを含む。これらの命令の目的は、マルチプロセッサシステムにおいて、共通データの保有権を順次各プロセッサに与えることにより、プロセッサ間における処理を同期させることである。一般的には、これらの命令の目的は、マルチプロセッサシステムにおいて、データの保有権を一度に一つのプロセッサに与えるようにすることでプロセッサ間における処理を同期させることである。
【００１８】
上記命令に際してキャッシュミスが発生し、キャッシュ１４２が満杯で犠牲エントリが更新済状態にあるときには、ＷＢ１４８マシンはＲＣ１４３マシンに対応したライトバックを実行する。
【００１９】
ＳＮＯＯＰ１４５マシンは、システム全体におけるメモリコヒーレンシを保つために、システムバス１５０から来るスヌープ命令を扱う。
【００２０】
図３は、本実施例のおけるライトバック処理のフローチャートを示す。
このフローチャートは、要不要はともかくとして、ライトバックに関する判定処理を示している。一般的には、この例はキャッシュ１４２が唯一のＷＢ１４８マシンを備えるという実装に関する。キャッシュ可能型ストレージアクセス命令が実行され、ＲＣ１４３マシンがＤＩＲ１４７を検索してもミスヒットとなり、キャッシュ１４２に空きもないときには、ＲＣ１４３マシンはライトバック要求を発行する。ＲＣ１４３は、ＤＩＲ１４７をディレクトリ検索して（Ｓ３０１）、ＣＤＡ１４６に空きがないことがわかると（ディレクトリ検索失敗Ｓ３０２と空きエントリＳ３０３）、ＷＢ１４８に権限を渡す。指定されたＬＲＵの犠牲エントリ３０４が更新済であれば、キャッシュ１４２に空きを作るためにＷＢ１４８はエントリ更新済ライン（Ｓ３０５）をメモリに書き出す。
【００２１】
次に、ＷＢ１４８ステートマシンは、ペンディング中のスヌープをチェックする（Ｓ３０６）。ＷＢ１４８は、ライトバックの動的キャンセルのためにチェックする。スヌープマシンがスヌーププッシュによる無効化やスヌープキル処理の実行によりビジーであるときに、条件成立となる。ＷＢ１４８による動的キャンセルがアクティブとなると、ライトバックは無関係な動作なのでＷＢ１４８マシンはアイドル状態に移行する。もし、ＷＢ１４８の動的キャンセルがアクティブとならなければ、ＷＢ１４８マシンはライトバック処理を完遂するために犠牲エントリをメモリに記録し続ける（Ｓ３０７）。
【００２２】
図４は、５ラインキャッシュ４００を例示する。
図４は、キャッシュミスが発生して犠牲ラインがライトバックされるときの、ライトバックに関するキャッシュ管理を示す。キャッシュ１４２の最初の処理は、キャッシュ４００の初期状態である欄「Ａ」にて始まる。
【００２３】
キャッシュミスとは、キャッシュからのデータ読み出し要求が失敗することであり、プログラムは下位ストレージや汎用キャッシュからデータをリロードする必要がある。リロードすべきデータのための空きがなかったり、犠牲エントリが更新済であると、犠牲エントリはライトバックコマンドによって下位ストレージに追い出される。更新済ラインは、データの更新がなされた結果なので、システム内のどこにもコピーが存在しない。いいかえれば、現在のキャッシュ内容とメインメモリにあるエントリの内容は不整合となっている。
【００２４】
ＬＲＵアルゴリズムは、ロードやストアの連続処理に際して、もっともアクセスされそうもないデータをライトバック対象となる犠牲エントリとして選択する。キャッシュ可能型ストレージアクセス命令がミスヒットしたとき、犠牲ポインタは更新済エントリをライトバックするために使われるが、アトミックなキャッシュにおける全エントリは、依然有効である。
【００２５】
説明のため、５つのエントリが有効なキャッシュ可能型保持データによって満杯になっているとする。ＲＣ１４３マシンは、キャッシュ可能型ストレージアクセス命令の実行によりキャッシュのミスヒットが発生すると、犠牲ラインをライトバックするようにＷＢ１４８に要求する。キャッシュデータ配列４００の欄「Ｂ」においては、ＬＲＵは、更新済でライトバックを必要とする犠牲ラインを選択している。キャッシュデータ配列４００の欄「Ｃ」において、犠牲ラインはシステムメモリに送出されている。ライトバックが終了すると犠牲ラインは無効化され、リロード可能となる。
【００２６】
ＬＲＵレジスタ（ＬＲＵ）は、１つの犠牲エントリ４０３を選ぶ（ＬＲＵは、継続的にキャッシュアクセス履歴を分析し、どのラインが最長未使用エントリかを判定する論理回路である）。そして、ＷＢマシンは、新エントリ用のラインを空けるために、最長未使用のデータラインを除去する。新エントリは、キャッシュミス時のリロードに使われる。犠牲ライン４０３が共有状態にあるのでなければ、ライトバックマシンはライトバックを実行して各犠牲エントリを無効化する。最終的には、犠牲ライン４０３は次に発生するキャッシュミスにおいてリロードのために使われる。
【００２７】
図４において、当業者にとって、キャッシュデータ配列における有効なエントリと無効なエントリにおける入出力の区別は明らかであろう。同図は、キャッシュデータ配列４００にける犠牲ライン４０３について例示しているにすぎない。そのほかにも、単一のプロセッサや複数の補助プロセッサにおいて、並列または直列に動作する複数のキャッシュにも応用可能である。
【００２８】
更に、これは、複数の組み合わせ可能なアレンジの一つにすぎない。キャッシュを５ラインのキャッシュシステムに限定する必要はない。ただし、固定的な要素の数が大きくなりすぎると、マトリックスのサイズや組み合わせの数が大きくなり、遅延の増加につながる。
【００２９】
図５は、キャッシュ４００におけるデータ配列の枠組みを例示する。
ライトバック処理とスヌーププッシュ処理またはスヌープキル処理が、ＣＤＡ４００のキャッシュデータ配列における別々のエントリで同時発生すると、スヌーププッシュやスヌープキルは無効エントリを生成するのでライトバックは必要ではなくなる。これは、ＣＤＡ４００においてとても重要な点である。なぜならば、ＣＤＡ４００は、キャッシュ可能型ストレージアクセス処理のために利用可能なエントリを（図４に関連して先述したように）５つしか持たないからである。もし、ライトバックとスヌーププッシュの同時実行が可能であれば、５つのエントリのうちの２つが無効化され、深刻なパフォーマンス低下を招く。
【００３０】
このような問題を解決するために、スヌープマシンがスヌーププッシュやスヌープキルの実行でビジーならば、ペンディング中のライトバックをキャンセルする動的キャンセル論理がＷＢ１４８に追加されている。ＣＤＡ４００の欄「Ｃ」に示すように、ライトバックがキャンセルされないままであれば、ライトバック後も２つの無効なエントリが残る。すなわち、スヌーププッシュやスヌープキルによる解除動作が既にラインをクリアしているので、ライトバックが不要だったことになる。スヌープキルやスヌーププッシュ命令が読み出され、有効な犠牲ライン４０３がキャッシュミスによりメモリにライトバックされると、２つの無効エントリが残る。ＷＢ１４８は、その実行中におけるスヌーププッシュやスヌープキルの同時発生を検出する機構を備える。もし、ステートマシンがスヌーププッシュやスヌープキルを検出すると、ペンディング中のライトバックは、「動的キャンセル」される。
【００３１】
図６は、最終的なキャッシュ１４２（キャッシュ１１５や任意の数であるｎ個のプロセッサに関しても同様である）のキャッシュ状態を示す。
ＷＢ１４８による動的キャンセルにより、ライトバックが発生しないのでキャッシュデータ配列４００においては４ラインが有効なままとなる。それから、スヌーププッシュやスヌープキルの対象となったエントリにデータがリロードされるのを待つ。ＷＢ１４８のステートマシンの最終段階において、５つのエントリのうちの４つが有効なままであり、これは予定通りで好ましい結果である。
【００３２】
本実施例はあくまで本発明の例示であって制約的な意味をもつものではない。さまざまな変形、変更、調整、実施方法が上記開示に関連して可能であり、たとえば、本発明の特徴の中には、必ずしも他の特徴と共に備えられる必要がないものがあるかもしれない。上記実施例によれば、当業者であれば、さまざまな好ましい変形や変更を考慮できるであろう。したがって、請求項は広めに作成されているが、本発明の思想範囲と整合していることは明らかであろう。
【図面の簡単な説明】
【００３３】
【図１】本発明において、どのようにプロセッシングユニット、キャッシュユニット、バスインタフェースユニットが直並列に動作するかを典型的なマルチプロセッシング計算システムの機能ブロック図のかたちで示す図である。
【図２】例示におけるライトバックキャッシュシステムの基本ブロック図である。
【図３】ライトバック処理のフローチャートである。
【図４】キャッシュミス時のライトバック処理におけるキャッシュラインの流れを示す図である。
【図５】キャッシュにおいてライトバック処理とスヌーププッシュ処理におけるキャッシュラインの流れを示す図である。
【図６】スヌーププッシュ処理やスヌープキル処理によるライトバックの動的キャンセルがなされるときの最終的なキャッシュデータ配列処理を示す。
【図１】
2007533014.tif 000003
【図２】
2007533014.tif 000004
【図３】
2007533014.tif 000005
【図４】
2007533014.tif 000006
【図５】
2007533014.tif 000007
【図６】
2007533014.tif 000008
【国際調査報告】
2007533014.tif 000009
2007533014.tif 000010