JP3786418B2 - メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式 - Google Patents

メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式 Download PDF

Info

Publication number
JP3786418B2
JP3786418B2 JP2004043852A JP2004043852A JP3786418B2 JP 3786418 B2 JP3786418 B2 JP 3786418B2 JP 2004043852 A JP2004043852 A JP 2004043852A JP 2004043852 A JP2004043852 A JP 2004043852A JP 3786418 B2 JP3786418 B2 JP 3786418B2
Authority
JP
Japan
Prior art keywords
memory
bits
tag
directory
ecc
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 - Fee Related
Application number
JP2004043852A
Other languages
English (en)
Other versions
JP2004326734A (ja
Inventor
デベンドラ・ダス・シャルマ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of JP2004326734A publication Critical patent/JP2004326734A/ja
Application granted granted Critical
Publication of JP3786418B2 publication Critical patent/JP3786418B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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/0893Caches characterised by their organisation or structure

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)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

本発明は、包括的には、コンピュータシステムに関し、詳細には、メモリ階層を利用し、かつ、ディレクトリベースのキャッシュコヒーレンシシステムを使用するコンピュータシステムに関する。
マイクロプロセッサの速度および性能は、絶えず向上し、一般に、コンピュータシステムのメインメモリの速度および性能の改善を上回ってきた。
その結果、システムのメインメモリは、高速なプロセッサの要求に必ずしもついて行けるとは限らない。
これは、特に、マルチプロセッサシステムまたは分散コンピュータシステムについて当てはまる。
これらのシステムは、複数のプロセッサを利用して並列処理を実行することにより、従来のシングルプロセッサシステムを上回る大幅な性能向上を提供することができる。
より多くのより高速なプロセッサがマルチプロセッサシステムに加えられて、メインメモリへのアクセスを得るために競争するので、プロセッサのメモリアクセス回数は、一般に増加する。
その結果、メインメモリバンド幅は、高性能データ処理システムでは、重大なボトルネックに変わってきた。
このボトルネックを緩和するのに利用される1つの一般的な技法は、メモリ階層を使用することである。
例えば、低速メモリ、中速メモリ、および高速メモリから3段メモリを構成することができる。
低速メモリは、データの低コスト大容量記憶を行う磁気ディスクとすることができる。
中速メモリは、コンピュータシステムのメインメモリとして使用されるダイナミックランダムアクセスメモリ(DRAM)から構成することができる。
高速メモリは、プロセッサのキャッシュメモリとして使用されるスタティックランダムアクセスメモリ(SRAM)を使用することができる。
メモリ階層の背景にある理論は、システムプロセッサが使用する命令およびデータを最高速のメモリにグループ化することである。
このような高速メモリは、通常、利用可能な最も高価なメモリであり、したがって、経済的側面から、高速メモリを相対的に小さくすることが要求される。
システムプロセッサは、動作中、現在実行中のプログラムの変数に高速にアクセスできるように、命令およびデータを、システムの低速なメインメモリから高速なキャッシュメモリに転送する。
キャッシュシステムは、通常、キャッシュラインと呼ばれるデータブロックでデータを転送する。
プロセッサが、キャッシュメモリに含まれていない追加データを要求すると、そのようなデータを含むキャッシュラインが、メインメモリから転送されて、キャッシュメモリ内の選択されたキャッシュラインを取り替える。
どのデータを取り替えるかを決定するのに、さまざまな技法またはアルゴリズムが利用される。
キャッシュメモリに含まれるデータは、メインメモリのデータを複製したものであるので、あるメモリのデータを変更すると、他のメモリも同様に変更しなければならないか、または、他のメモリに変更を記録しなければならない。
例えば、キャッシュメモリのデータが変更されると、メインメモリの対応するデータを同様に変更しなければならない。
キャッシュデータとメインメモリのデータとの間の一貫性を維持する問題は、キャッシュコヒーレンシの維持と呼ばれる。
特に分散システムにおいて、キャッシュコヒーレンシを維持する従来の1つの技法は、ディレクトリベースのキャッシュコヒーレンシ方式である。
ディレクトリベースのコヒーレンシ方式は、キャッシュラインがシステム全体にわたって存在するので、集中タグディレクトリを利用して、キャッシュラインの場所およびステータスを記録する。
例えば、このディレクトリは、どのプロセッサのキャッシュがデータの複製を有するかを記録し、さらに、キャッシュのいずれかがデータの複製を更新したかどうかを記録する。
プロセッサが、データ項目を得るためにメインメモリに対してキャッシュリクエストを作成すると、中央ディレクトリが調べられて、そのデータの最も新しい複製が存在する場所が決定される。
この情報に基づいて、キャッシュラインの最も新しい複製が検索され、その結果、その最も新しい複製を、要求を行ったプロセッサのキャッシュメモリに提供することができる。
その後、中央タグディレクトリは、そのキャッシュラインの新しいステータスを反映するように更新される。
このように、プロセッサによる各キャッシュラインの読み出しには、タグディレクトリの更新(すなわち書き込み)が伴う。
ディレクトリベースのキャッシュコヒーレンシ方式は、拡張可能なマルチプロセッサシステムの構築を支援するが、メインメモリとキャッシュメモリとの間のほとんど絶え間のないキャッシュラインの転送に付随したタグディレクトリの更新によって、貴重なメモリバンド幅が浪費される。
従来のコンピュータシステムの典型例のタグの更新の結果、メインメモリのバンド幅の約50%が失われる。
しかしながら、タグディレクトリの更新に付随したバンド幅損失は、システムが使用するキャッシュラインのサイズ、採用されたメモリ技術、使用される誤り訂正符号(ECC)方式、およびメインメモリのタグディレクトリのレイアウトに応じて変化する。
多くのコンピュータシステム、特に分散システムは、タグディレクトリの更新に付随したメインメモリバンド幅損失を低減するディレクトリベースのキャッシュコヒーレンシ方式により利益を受けることになる。
本発明の一態様は、ディレクトリベースのキャッシュコヒーレンシ方式を使用するメモリシステムを提供する。
このメモリシステムは、メモリユニット、データバス、複数の情報バスおよびメモリコントローラを備える。
該メモリユニットは、複数のキャッシュラインであって、各キャッシュラインが、複数のデータビットおよび関連する複数の情報ビットを含む、複数のキャッシュラインを記憶する複数のメモリモジュールを備える。
該データバスは、メモリモジュールのそれぞれに接続され、メモリモジュールからデータビットを読み出し、メモリモジュールにデータビットを書き込むように構成される。
複数の情報バスのうちの1つの情報バスは、メモリモジュールのそれぞれに1つずつ接続され、メモリモジュールから情報ビットを読み出し、メモリモジュールに情報ビットを書き込むように構成される。
該メモリコントローラはメモリユニットへのアクセスを制御し、第1のメモリモジュールからデータバスおよび第1の情報バスを介して第1のキャッシュラインを読み出し、かつ、並列動作で、先に読み出された第2のキャッシュラインの一組の更新された情報ビットを第2の情報バスを介して第2のメモリモジュールに書き込むように構成される。
本発明の実施の形態は、図面を参照することによって、より良く理解される。
図面の構成要素は、必ずしも互いに同一縮尺であるとは限らない。
同じ参照符号は、対応する同様の部分を示す。
好ましい実施の形態の以下の詳細な説明では、本出願の一部を形成する添付図面を参照する。
添付図面では、本発明を実践することができる特定の実施の形態を例として示す。
他の実施の形態を利用することができ、構造上の変更または論理的な変更を、本発明の範囲から逸脱することなく行い得ることが理解されるべきである。
したがって、以下の詳細な説明は、限定する意味に取るべきではなく、本発明の範囲は、添付の特許請求の範囲によって画定される。
図1は、メモリ階層を利用し、かつ、ディレクトリベースのキャッシュコヒーレンシ方式を使用するコンピュータシステム30の一実施の形態の一部をブロック図形式で概略的に示している。
コンピュータシステム30は、バス34に接続されたプロセッサ32、バス34とバス38との間に接続されたメインメモリシステム36、およびバス38に接続された不揮発性大容量ストレージメモリ50を含む。
一実施の形態では、大容量ストレージメモリ50は、磁気ディスクからなる。
プロセッサ32は、高速のマイクロプロセッサメモリアクセス用のメモリキャッシュ40を含む。
メモリキャッシュ40は、一般に、レベル1(L1)キャッシュとして知られており、通常は、プロセッサ32の速度で動作する高速メモリからなる。
この高速メモリとしては、例えばSRAMがある。
メインメモリシステム36は、リンク44を介してメインメモリユニット46に接続されたメモリコントローラ42を含む。
メインメモリユニット46は、さらに、タグディレクトリ48を含む。
メインメモリユニット46は、一般に、レベル2(L2)キャッシュとして知られており、通常は、DRAMデバイスからなる。
コンピュータシステム30の起動中、不揮発性大容量ストレージデバイス50(すなわち磁気ディスク)からのデータが、メインメモリユニット46に転送される。
一例として、メモリコントローラ42が、磁気ディスク50からデータバス38およびリンク44を介してメモリユニット46にデータを転送する。
プロセッサ32は、実行のためにキャッシュメモリ40に転送するデータをメインメモリユニット46から選択する。
メインメモリユニット46からのデータは、キャッシュラインとして知られているシステム定義のデータブロックでキャッシュメモリ40に転送される。
メモリキャッシュ40は、メモリユニット46のデータのわずかな部分しか保持できないので、プロセッサ32は、メモリキャッシュ40に保持するキャッシュラインを、メモリユニット46からの新しいキャッシュラインと取り替えることを絶えず行っている。
メインメモリユニット46からメモリキャッシュ40に書き込まれるキャッシュラインは、そのようなキャッシュラインがメモリユニット46からの新しいキャッシュラインと取り替えられるまで、双方の場所に存在する。
キャッシュラインが、メモリキャッシュ40およびメモリユニット46の双方に存在する時間の間に、いずれかの場所でこのようなキャッシュラインに変更が行われると、前述したようなキャッシュコヒーレンシの問題が生じる。
プロセッサ32が、キャッシュメモリ40のキャッシュラインを変更すると、メインメモリユニット46のキャッシュラインにも、対応する変更を行わなければならない。
本明細書の背景技術の節で解説したように、キャッシュコヒーレンシを維持する1つの技法は、ディレクトリベースのキャッシュコヒーレンシ方式である。
ディレクトリベースのキャッシュコヒーレンシ方式は、キャッシュラインがシステム全体にわたって存在するので、メインメモリユニット(例えば、メインメモリユニット46)内の集中タグディレクトリ(例えば、タグディレクトリ48)を利用して、キャッシュラインのステータスおよび場所を記録する。
タグディレクトリ48は、複数のアドレス指定可能な場所を含む。
アドレス指定可能な各場所は、1つのキャッシュラインに対応し、そのキャッシュラインの複製がシステムのどこに存在するかに関する情報、および、もし更新された複製があれば、どの複製が、そのデータの更新された複製であるかに関する情報を含む。
例えば、プロセッサ32が、メインメモリユニット46からのキャッシュライン(読み出しまたは書き込み)を要求すると、メモリコントローラ42は、要求されたキャッシュラインと共にその対応するディレクトリタグの読み出しを実行し、そのキャッシュラインをプロセッサ32に送信できるかどうかを決定する。
そのデータをプロセッサ32に送信できる場合には、メモリコントローラ42は、リンク44およびバス34を介してキャッシュメモリ40にデータを伝送し、プロセッサ32をそのキャッシュラインの「オーナ」にする。
次に、コントローラ42は、リンク44を介して新しいオーナシップ情報をメインメモリユニット46に再び書き込み、そのオーナシップ情報をタグディレクトリ48に記憶する。
したがって、メインメモリユニット46からキャッシュメモリ40へのキャッシュラインの各読み出しには、メモリコントローラ42が、メインメモリ46に再び書き込みを行って、タグディレクトリ48の対応するキャッシュラインタグを更新することを伴う。
ディレクトリベースのキャッシュコヒーレンシ方式を使用する従来のメインメモリシステムは、キャッシュコヒーレンシを維持するのに効率的ではあるが、メインメモリシステム36のバンド幅が低減されることを犠牲にして、コヒーレンシが達成される。
メモリコントローラ42が、先に読み出した第1のキャッシュラインについてリンク44を介してタグディレクトリ48を更新するごとに、プロセッサ32が要求した第2のキャッシュラインの読み出しが妨げられる。
一実施の形態では、コンピュータシステム30は、本発明によるディレクトリベースのキャッシュコヒーレンシ方式を使用するメインメモリシステム36を利用する。
この本発明によるディレクトリベースのキャッシュコヒーレンシ方式は、メモリコントローラが、第1のキャッシュラインの読み出しと、先に読み出した第2のキャッシュラインのディレクトリタグの更新とを同時に行えるようにすることによって、メモリシステムのバンド幅損失を低減するものである。
図2は、ディレクトリベースのキャッシュコヒーレンシ方式を使用する従来のメインメモリシステム60の一例を示す概略ブロック図である。
このメインメモリシステムは、メモリコントローラ42、リンク44、およびメインメモリユニット46を備える。
リンク44は、144ビット幅のデータバス62およびアドレス/制御バス64を備える。
メインメモリユニットは、それぞれ符号66、68、70、および72が付された第1のデュアルインラインメモリモジュール(DIMM)、第2のDIMM、第3のDIMM、および第4のDIMMを備える。
これらの4つのDIMMのそれぞれは、データバス62およびアドレス/制御バス64に接続されている。
この一例の実施の形態では、各DIMMが、さらに、36個の4ビット幅ダブルデータレート(DDR(double data rate))ランダムアクセスメモリ(RAM)モジュールを含むものと仮定する。
これらのRAMのうちの32個は、データビットの記憶に用いられ、4個は、例えばタグディレクトリビットおよび誤り訂正符号(ECC)ビットといった「情報」ビットの記憶に用いられる。
また、この一例の実施の形態では、メモリシステム60が、128バイトからなるシステム定義のキャッシュラインを有するものと仮定する。
この構成では、メモリユニット46から1つのキャッシュラインを転送するのに、4サイクルが必要となる。
ディレクトリタグビットおよびECCビットをどのように配置するかに応じて、メモリコントローラ42がタグディレクトリビットを更新するのに、最大4サイクルを要することがある。
図3Aは、メモリユニット46からキャッシュメモリ40にキャッシュラインを転送する際の、図2の従来の一例のメインメモリシステム60の動作を示す一例のタイミング図80である。
プロセッサ32が、メモリユニット46からのキャッシュラインを要求すると、メモリコントローラ42は、サイクル1において、イネーブル信号を適切なDIMMに供給し、符号82に示すように、要求されたキャッシュラインに関連付けられた第1の行アドレス信号(RAS(0))を、アドレス/制御バス64を介してメモリユニット46に供給する。
この説明例では、要求されたキャッシュラインは、第1のDIMM(0)68に保持されているものと仮定する。
第1のDIMM(0)68が、サイクル2の期間に適切な行アドレスを初期化した後、メモリコントローラ42は、符号84に示すように、サイクル3の期間に、要求されたキャッシュラインに関連付けられた第1の列アドレス信号(CAS(0))をアドレス/制御バス64を介して供給する。
第1のDIMM(0)68が、サイクル4の期間に適切な列アドレスを初期化した後、メモリシステム36が、例えばバースト長4(BL4)といった効率的なメモリアクセス方式を使用するものと仮定すると、メモリコントローラ42は、符号86に示すように、サイクル5〜8の期間に、要求されたキャッシュラインならびにその関連付けられたタグビットおよびECCビットを読み出す。
符号88に示すように、サイクル8において、メモリコントローラ42は、CAS(0)を再起動する。
第1のDIMM(0)68が、サイクル9の期間に適切な列アドレスを再初期化している間、メモリコントローラ42は、先のサイクル5〜8の期間に読み出した、要求されたキャッシュラインのディレクトリタグを変更し、そのキャッシュラインのECCビットを再計算する。
符号90に示すように、サイクル10〜13の期間に、メモリコントローラは、変更したECCビットおよびディレクトリタグビットをメモリユニット46に再び書き込む。
換言すると、サイクル10〜13の期間に、メモリコントローラ42は、要求されたキャッシュラインのECCビットおよびディレクトリタグビットを更新する。
一例のタイミング図80から分かるように、キャッシュラインの読み出しおよびECC/タグの更新は、連続した動作である。
メモリコントローラ42が、サイクル9〜13の期間にECC/タグの更新を行っている間は、メモリユニット46からデータバス62を介してデータを読み出すことはできず、その結果、メモリシステムのバンド幅が低減される。
図3Bは、図2の従来の一例のメインメモリシステム60の一実施の形態の動作を示す一例のタイミング図90である。
この図では、各DIMMのRAMは、それらが記憶するデータビットとそれらが記憶する情報ビットとに分離されていない。
この実施の形態では、要求されたキャッシュラインのECCビットおよびディレクトリタグビットを1サイクルで更新できるように、RAMが構成されている。
プロセッサ32が、メモリユニット46からのキャッシュラインを要求すると、メモリコントローラ42は、サイクル1において、イネーブル信号を適切なDIMMに供給し、符号102に示すように、その特定のキャッシュラインに関連付けられたRAS(0)を、アドレス/制御バス64を介してメモリユニット46に供給する。
先ほどの例と同様に、要求されたキャッシュラインは、第1のDIMM(0)68に保持されているものと仮定する。
第1のDIMM(0)68が、サイクル2の期間に適切な行アドレスを初期化した後、メモリコントローラ42は、符号104に示すように、サイクル3の期間に、要求されたキャッシュラインに関連付けられたCAS(0)をアドレス/制御バス64を介して供給する。
第1のDIMM(0)68が、適切な列アドレスを初期化した後、メモリコントローラ42は、符号106に示すように、サイクル5〜8の期間に、要求されたキャッシュラインならびにその関連付けられたECCビットおよびタグディレクトリビットを読み出す。
符号108に示すように、サイクル8において、メモリコントローラ42は、CAS(0)を再起動する。
第1のDIMM(0)68が、サイクル9の期間に適切な列アドレスを再初期化している間、メモリコントローラ42は、先のサイクル5〜8の期間に読み出した、要求されたキャッシュラインのディレクトリタグを変更し、そのキャッシュラインのECCビットを再計算する。
符号110に示すように、サイクル10の期間に、メモリコントローラ42は、更新したタグおよび再計算したECCビットをメモリユニット46に再び書き込む。
換言すると、サイクル10の期間に、メモリコントローラ42は、要求されたキャッシュラインのECCビットおよびタグディレクトリビットを更新する。
この一例の実施の形態は、図3Aの一例の実施の形態と比較すると、データバス62のメモリバンド幅損失を5サイクルから2サイクルに低減するが、それでもなお、符号110のサイクル9〜10の期間、メモリバンド幅が失われる。
図4は、本発明によるディレクトリベースのキャッシュコヒーレンシ方式を使用するメインメモリシステム120の一例の実施の形態の概略ブロック図である。
このメインメモリシステム120は、メモリコントローラ42、メインメモリユニット46、128ビット幅データバス122、およびアドレス/制御バス124を含む。
メインメモリユニット46は、第1のDIMM68、第2のDIMM70、第3のDIMM72、および第4のDIMM74をさらに備える。
これらの4つのDIMMのそれぞれは、データバス122およびアドレス/制御バス124を介してメモリコントローラ42に接続されている。
図2の従来のメインメモリシステム60とは異なり、本発明のメインメモリシステム120は、4つの16ビット幅情報バスをさらに含み、符号126、128、130、および132に示すように、DIMM68、70、72、および74とメモリコントローラ42とのそれぞれの間に、この4つの情報バスが1つずつ接続される。
この一例の実施の形態では、各DIMMは、さらに、36個の4ビット幅(DDR)RAMを含む。
これらのRAMのうちの32個は、データの記憶に用いられ、4個は、例えばタグディレクトリビットおよび/またはECCビットといった情報ビットの記憶に用いられる。
また、この一例の実施の形態では、メインメモリシステム120が、128バイトからなるシステム定義のキャッシュラインを有し、かつ、BL4メモリアクセス方式を使用するものと仮定する。
図5は、本発明によるメインメモリシステム120の動作を示す一例のタイミング図140である。
プロセッサ32が、第1のDIMM(0)68からの第1のキャッシュラインを要求すると、メモリコントローラ42は、サイクル1において、符号142に示すように、第1のキャッシュラインに関連付けられたRAS(0)を、アドレス/制御バス124を介して第1のDIMM(0)68に供給する。
第1のDIMM(0)68が、サイクル2の期間に適切な行アドレスを初期化した後、メモリコントローラ42は、符号144に示すように、第1のキャッシュラインに関連付けられたCAS(0)をアドレス/制御バス124を介して第1のDIMM(0)に供給する。
第1のDIMM(0)68が、サイクル4の期間にCAS(0)に関連付けられた適切な列アドレスを初期化した後、メモリコントローラ42は、サイクル5〜8の期間に、符号146に示すように、要求された第1のキャッシュラインの1,024ビットのデータビットをデータバス122を介して読み出し、符号148に示すように、要求された第1のキャッシュラインの128ビットのECC/タグディレクトリビットを第1の情報バス126を介して読み出す。
第1のキャッシュラインの読み出し後、メモリコントローラ42は、第1のキャッシュラインに関連付けられた変更後のタグディレクトリビットに基づいてECCを計算する。
第1のキャッシュラインが、サイクル5〜8の期間に、データバス122および情報バス126を介して読み出されている間、メモリコントローラ42は、符号150に示すように、サイクル5において、要求された第2のキャッシュラインに関連付けられたRAS(1)をアドレス/制御バス124を介して第2のDIMM(1)70に供給する。
第2のDIMM(1)70が、サイクル6の期間に適切な行アドレスを初期化した後、符号152に示すように、サイクル7において、メモリコントローラ42は、第2のキャッシュラインに関連付けられたCAS(1)をアドレス/制御バス124を介して第2のDIMM(1)70に供給する。
符号154に示すように、サイクル8において、第2のDIMM(1)70が、CAS(1)に関連付けられた適切な列アドレスを初期化している間、メモリコントローラ42は、CAS(0)をアドレス/制御バス124を介して第1のDIMM(0)68に再び伝送する。
第2のDIMM(1)70が、サイクル8の期間に、CAS(1)に関連付けられた適切な列アドレスを初期化した後、メモリコントローラ42は、サイクル9〜12の期間に、符号156に示すように、要求された第2のキャッシュラインの1,024ビットのデータビットをデータバス122を介して読み出し、符号158に示すように、要求された第2のキャッシュラインの128ビットのECC/タグディレクトリビットを第2の情報バス128を介して読み出す。
第2のキャッシュラインの読み出し後、メモリコントローラ42は、第2のキャッシュラインに関連付けられた変更後のタグディレクトリビットに基づいてECCを計算する。
サイクル9において、要求された第2のキャッシュラインが、データバス122および情報バス128を介して読み出され、かつ、CAS(0)が、第1のDIMM(0)68によって再初期化されている間、メモリコントローラ42は、符号160に示すように、要求された第3のキャッシュラインに関連付けられたRAS(2)をアドレス/制御バス124を介して第3のDIMM(2)72に供給する。
第1のDIMM(0)68が、CAS(0)に関連付けられた適切な列アドレスを再初期化した後、メモリコントローラ42は、符号162に示すように、第1の情報バス126を介して第1のDIMM(0)68に、更新したECCビットおよびタグディレクトリビットを書き込む。
第3のDIMM(2)72が、サイクル10の期間に、RAS(2)に関連付けられた適切な行アドレスを初期化した後、メモリコントローラ42は、符号164に示すように、第3のキャッシュラインに関連付けられたCAS(2)をアドレス/制御バス124を介して第3のDIMM(2)72に供給する。
サイクル12において、第3のDIMM(2)72が、CAS(2)に関連付けられた適切な列アドレスを初期化している間、メモリコントローラ42は、符号166に示すように、アドレス/制御バス124を介して第2のDIMM(1)70にCAS(1)を再び転送する。
第3のDIMM(2)72が、サイクル12の期間に、CAS(2)に関連付けられた適切な列アドレスを初期化した後、メモリコントローラ42は、サイクル13において、符号168に示すように、データバス122を介して、要求された第3のキャッシュラインの1,024ビットのデータビットの読み出しを開始し、符号170に示すように、第3の情報バス130を介して、要求された第3のキャッシュラインの128ビットのECC/タグディレクトリビットの読み出しを開始する。
サイクル13において、要求された第3のキャッシュラインが、データバス122および情報バス130を介して読み出され、かつ、CAS(1)が、第2のDIMM(1)70によって再初期化されている間、メモリコントローラ42は、符号172に示すように、第4のキャッシュラインに関連付けられたRAS(3)をアドレス/制御バス124を介して第4のDIMM(3)74に供給する。
第2のDIMM(1)70が、CAS(1)に関連付けられた適切な列アドレスを再初期化した後、メモリコントローラ42は、符号174に示すように、第2の情報バス128を介して第2のDIMM(1)70に、更新したECCビットおよびタグディレクトリビットを書き込む。
プロセッサ32がキャッシュメモリ40の内容の更新プロセスを続ける限り、メモリコントローラ42は、このようにして、DIMM68、70、72、および74から、要求されたキャッシュを読み出し続け、DIMM68、70、72、および74に、更新したECCビットおよびタグディレクトリビットを書き込み続ける。
一例のタイミング図140からも分かるように、本発明によるディレクトリベースのキャッシュコヒーレンシ方式を使用するメインメモリシステム120は、ECCビットおよびタグディレクトリビットの更新が行われる、分離した情報バス126、128、130、および132を設けることによってメモリバンド幅損失を低減する。
本発明によるメモリシステム120は、分離した情報バスを設けることにより、先に読み出したキャッシュラインのECC/タグディレクトリビットの更新を同時に行いながら、1つのキャッシュラインを読み出すことができる。
例えば、本発明によるメモリシステム120は、サイクル5〜8の期間で先に読み出した、符号146および148に示すキャッシュラインのECC/タグディレクトリビットの更新を、符号162に示すように同時に行いながら、サイクル9〜12の期間に、符号156および158に示すキャッシュラインを読み出すことができる。
これらの動作を並列に実行することにより、本発明によるメモリシステム120は、メモリバンド幅損失を低減する。
本発明の一態様は、例えばメモリシステム120といったシングルバスメモリシステムにおける単一誤り訂正(SEC(single error correct))と、2重誤り検出(DED(double error detection))と、チップキルの訂正とをサポートするECC方式を提供する。
チップキルという用語は、従来どおり、複数のビット誤りがメモリデバイスの幅である場合に、そのメモリの複数のビット誤りを訂正できることを指す。
例えば、チップキル機能をサポートするメモリシステム120は、DIMM68、70、72、または74の4ビット幅RAMのいずれか1つの障害によって4ビット幅誤りが生じてもその誤りを訂正することができることになる。
したがって、いずれか1つの4ビット幅RAMに障害が発生しても、メモリシステム120は障害を起こさないことになる。
このようなECC方式を提供するために、通常のメモリ方式に対して、複数のDIMMを結合して1つのメモリバスにすることが必要となる。
例えば、ある一定の高級なチップセットは、4つのDIMMを結合して、128ビットのデータビットおよび16ビットのECCビットを含む144ビットバスにする。
訂正可能なビット数は、通常、メモリシステムがサポートするECCビットのビット数に依存する。
誤り訂正符号は、共通に使用される誤り検出/訂正プロセスを指し、このプロセスは、一般に、巡回冗長符号(CRC)アルゴリズムに基づいている。
CRCアルゴリズムは、ECC符号語の形で受信されたデータが、CRC多項式によって正確に割り切れるように作用する。
この受信されたデータは、データビットおよび後尾に追加されたCRCビットを含む。
ECC符号語が、CRC多項式によって割り切れない場合には、誤りが発生したものとみなされる。
図6は、複数のメモリバスを使用して、チップキルをサポートするECC方式を提供する従来のメモリシステム200の一例を示すブロック図である。
この従来のメモリシステム200は、第1のDIMM(0)202、第2のDIMM(1)204、第3のDIMM(2)206、および第4のDIMM(3)208を含む。
これらの4つのDIMMのそれぞれは、36個の4ビット幅のRAMを含む。
従来のメモリシステム200は、さらに、4つの144ビット幅メモリバス210、212、214、および216を含み、各メモリバスは、それぞれ、144ビットのECC符号語218、220、222、および224を供給する。
各符号語は、128ビットのデータビットおよび16ビットのECCビットを含む。
DIMM202、204、206、および208の各RAMの4ビットの各ビットは、異なる符号語に寄与する。
換言すると、DIMM202、204、206、および208の36個のRAMのそれぞれの1ビットは、4つの144ビット幅メモリバス210、212、214、および216のそれぞれに結合される。
したがって、各DIMM202、204、206、および208は、符号226、228、230、および232にそれぞれ示すように、36ビット幅メモリバスを介して4つの144ビット幅メモリバス210、212、214、および216のそれぞれに結合される。
4つのメモリバス210、212、214、および216は、4つのDIMM202、204、206、および208からの576ビットへの同時アクセスを提供する。
1つのECC符号語につき128ビットのデータビットがあるので、従来のメモリシステム200は、128バイトのキャッシュラインを検索するのに2サイクルを要する。
例えばHamming/Hsiao符号といった標準的なECC符号は、ECC符号の4つの144ビット符号語218、220、222、および224のそれぞれでSEC−DEDを提供する。
DIMM202、204、206、および208の各RAMの各ビットが、異なるECC符号語に向かうので、チップキルがサポートされる。
その結果、あるRAMの障害は、ECC符号語のそれぞれにおいて単一ビット障害として見え、それにより、訂正を受けることができる。
例えば従来のメモリシステム200によって示したような従来のメモリシステムは、SEC、DED、およびチップキルをサポートするが、いくつかの望ましくない特徴を有する。
第1に、従来のメモリシステムは、キャッシュラインにアクセスするのに、576ビット幅のバスを必要とし、その結果、集積回路が多数のピンを有することになり、それに対応して、コストが増加する。
第2に、キャッシュラインを検索するのに、4つのDIMMにアクセスするので、4個単位のDIMMの増加量でメモリに追加しなければならない。
第3に、全てのメモリ読み出しの後に、タグディレクトリの更新が続くことがあるので、メモリバンド幅が潜在的に浪費される可能性がある。
最後に、例えばBL4といったある一定の効率的なメモリアクセス方式は、128バイトのキャッシュラインサイズではなく256バイトをフェッチするので、サポートに無駄が生じ得る。
ある一定のRAMをデータビットの記憶用に指定し、それ以外のRAMを情報ビットの記憶用に指定するように、それぞれのDIMM68、70、72、および74のRAMを構成し、かつ、適したECC方式を利用することによって、本発明によるメモリシステム120の一実施の形態は、SEC、DED、およびチップキルをサポートするECC方式を提供すると同時に、通常のメモリシステムに付随する不都合のそれぞれを緩和ないしは除去する。
図7は、メインメモリシステム120のメインメモリユニット46の各DIMMが、適したECC方式の一実施の形態をサポートするのに利用可能なRAM構成240の一例の実施の形態の説明図である。
このRAM構成240は、合計36個の4ビット幅(DDR)RAMを含む。
符号242に示すように、RAM0〜31は、128ビットのデータビットを記憶するように構成される。
符号244に示すように、RAM32〜35は、情報ビットを記憶するように構成される。
2つの情報RAM246は、36個のRAMの中の単一RAM障害の訂正用、および、SEC用のチップキルを提供するECCビットを記憶するように構成される。
1つの情報RAM248は、DEDを提供するECCビットを記憶するように構成される。
1つの情報RAM250は、タグディレクトリビットを記憶するように構成される。
通常、チップキル機能に必要なECCビットのビット数は、メモリチップの幅および使用されるECCアルゴリズムに依存する。
標準的なECC方式では、通常、単一RAM障害の訂正を可能にするために、RAM構成240の36個の4ビット幅のRAMのそれぞれが、少なくとも5ビットをECC符号語に提供することが必要となる。
DDR RAMを使用する一実施の形態では、各RAMは、8ビットを提供し、それによって、288ビット(36×8)からなるECC符号語を提供する。
この288ビットのECC符号語は、RAM246の16ビットのECCビットを併せると、標準的なECC方式を利用するチップキルの機能をサポートするのに十分である。
一実施の形態では、DED用および2重RAM障害用のECCビットと、タグディレクトリビットとの間で情報RAM248のビットを分割することによって、ECC方式が2重RAM障害の検出をさらにサポートできるように、RAM構成240を変更することができる。
ECC方式の上記説明は、36個のRAM DIMM、128バイトのキャッシュラインサイズ、および(DDR)RAMの観点からのものであるが、この原理は、(任意の適したビット幅およびデータ転送速度を有する任意の適した個数のRAMを使用する)DIMMサイズ、キャッシュラインサイズ、およびメモリ技術のあらゆる変形に適用されることに留意すべきできある。
結論として、第1のキャッシュラインの読み出しと、先に読み出した第2のキャッシュラインのディレクトリタグの更新とを同時に行うことをメモリコントローラに可能にすることによって、本発明によるメインメモリシステム120の一実施の形態は、通常のディレクトリベースのキャッシュコヒーレンシ方式により実行されるタグ更新に付随したメモリシステムのバンド幅損失を低減するディレクトリベースのキャッシュコヒーレンシ方式を提供する。
さらに、メインメモリシステム120の一実施の形態は、シングルバスメモリシステムにおける単一誤り訂正と、2重誤り検出と、チップキルとをサポートすると共に、1つのDIMMの増加量でメモリを追加することをサポートする誤り訂正符号方式を提供する。
本明細書では、好ましい実施の形態を説明する目的で、特定の実施の形態を示し説明してきたが、同じ目的を達成するのに適合した多種多様な別の実施態様および/または均等な実施態様を、本発明の範囲から逸脱することなく、図示して説明した特定の実施の形態の代わりに使用できることが当業者には理解されよう。
化学技術、機械技術、電気機械技術、電気技術、およびコンピュータ技術の当業者は、本発明が、非常にさまざまな実施の形態で実施できることを容易に理解するだろう。
この出願は、本明細書で解説した好ましい実施の形態のあらゆる適応またはあらゆる変形をカバーするように意図されている。
したがって、この発明は、特許請求の範囲およびその均等物によってのみ限定されることが明白に意図されている。
本発明によるコンピュータシステムの一実施の形態を示す概略ブロック図である。 ディレクトリベースのキャッシュコヒーレンシ方式を使用する従来のメインメモリシステムを示す概略ブロック図である。 ディレクトリベースのキャッシュコヒーレンシ方式を使用する従来のメインメモリシステムの動作を示す一例のタイミング図である。 ディレクトリベースのキャッシュコヒーレンシ方式を使用する従来のメインメモリシステムの動作を示す一例のタイミング図である。 本発明によるディレクトリベースのキャッシュコヒーレンシ方式を使用するメインメモリシステムの一実施の形態を示す概略ブロック図である。 本発明によるディレクトリベースのキャッシュコヒーレンシ方式を使用するメインメモリシステムの動作を示す一例のタイミング図である。 従来のメインメモリ誤り訂正符号方式を示す概略ブロック図である。 本発明による誤り訂正符号方式をサポートするRAM構成の一例の実施の形態の説明図である。
符号の説明
32・・・プロセッサ、
40・・・メモリキャッシュ、
36・・・メインメモリシステム、
42・・・メモリコントローラ、
46・・・メインメモリユニット、
48・・・タグディレクトリ、
50・・・大容量ストレージメモリ、
218,220,222,224・・・144ビット符号語、
242・・・データRAM、
244・・・情報RAM、
246・・・ECC訂正(チップキル)、
248・・・ECC検出、
250・・・タグディレクトリ、

Claims (10)

  1. ディレクトリベースのキャッシュコヒーレンシ方式を使用するメモリシステム(36)であって、
    複数のキャッシュラインであって、各キャッシュラインが、複数のデータビットおよび関連する複数の情報ビットを含む、複数のキャッシュラインを記憶する複数のメモリモジュールを備えるメモリユニット(46)と、
    前記メモリモジュールのそれぞれに接続され、前記メモリモジュールからデータビットを読み出し、前記メモリモジュールに書き込むように構成されたデータバス(62)と、
    複数の情報バス(64)であって、前記メモリモジュールのそれぞれに1つずつ接続され、前記メモリモジュールから情報ビットを読み出し、前記メモリモジュールに情報ビットを書き込むように構成された、複数の情報バス(64)と、
    前記メモリユニットへのアクセスを制御するメモリコントローラ(42)であって、第1のメモリモジュールから前記データバスおよび第1の情報バスを介して第1のキャッシュラインを読み出し、かつ、並列動作で、先に読み出された第2のキャッシュラインの一組の更新された情報ビットを第2の情報バスを介して第2のメモリモジュールに書き込むように構成された、メモリコントローラと
    を備えるメモリシステム。
  2. 前記複数の情報ビットは、
    ディレクトリタグビットと、
    誤り訂正符号(ECC)ビットと
    を含む請求項1に記載のメモリシステム。
  3. 前記メモリユニットは、
    複数のデュアルラインメモリモジュール(DIMM)(68、70、72、74)
    を備え、
    各DIMMは、
    複数のランダムアクセスメモリ(RAM)デバイス(240)
    を備える請求項1に記載のメモリシステム。
  4. 前記複数のRAMデバイスは、
    データビットを記憶する下位の複数のRAMデバイス(242)と、
    ECCビットを記憶する下位の複数のRAMデバイス(246、248)と、
    ディレクトリタグビットを記憶する下位の複数のRAMデバイス(250)と
    をさらに備える請求項3に記載のメモリシステム。
  5. 前記メモリモジュールのそれぞれと前記コントローラとの間に接続されたアドレス/制御バス(64)をさらに備え、該アドレス/制御バスは、
    各メモリモジュールに1つずつ接続された複数のECC/タグ制御信号線を備え、ECC/タグ制御信号線は、ECCビットおよびディレクトリタグビットをその対応するメモリモジュールに書き込む機能を有効/無効にするように構成される
    請求項1に記載のメモリシステム。
  6. ディレクトリベースのキャッシュコヒーレンシ方式を使用するメモリシステムのタグディレクトリ更新方法であって、
    複数のキャッシュラインであって、各キャッシュラインが、複数のデータビットおよび関連する複数の情報ビットを含む、複数のキャッシュラインを、複数のメモリモジュールを備えるメモリユニット(46)に記憶することと、
    前記メモリモジュールから/前記メモリモジュールに、前記メモリモジュールのそれぞれに接続されたデータバス(62)を介して、データビットを読み出し/書き込みすることと、
    前記メモリモジュールから/前記メモリモジュールに、複数の情報バス(64)であって、前記複数のメモリモジュールの各メモリモジュールに1つずつ接続される複数の情報バスを介して、情報ビットを読み出し/書き込みすることと、
    第1のメモリモジュールから前記データバスおよび第1の情報バスを介して第1のキャッシュラインを読み出し、かつ、同時に、第2のキャッシュラインの更新された情報ビットを第2の情報バスを介して第2のメモリモジュールに書き込むことと
    を含むタグディレクトリ更新方法。
  7. 前記メモリユニットは、
    複数のデュアルインラインメモリモジュール(DIMM)(68、70、72、74)を備え、
    各DIMMは、
    複数のランダムアクセスメモリ(RAM)デバイス(240)
    を備える請求項6に記載のタグディレクトリ更新方法。
  8. 第1の下位の複数の前記RAMデバイス(242)に、データビットを記憶することと、
    第2の下位の複数の前記RAMデバイス(246、248)に、ECCビットを記憶することと、
    第3の下位の複数の前記RAMデバイス(250)に、ディレクトリタグを記憶することと
    をさらに含む請求項7に記載のタグディレクトリ更新方法。
  9. 前記メモリシステムは、
    各メモリモジュールに接続されたアドレス/制御バス(64)
    をさらに含む請求項6に記載のタグディレクトリ更新方法。
  10. 前記アドレス/制御バスは、
    各メモリモジュールに1つずつ接続された複数のECC/タグ制御信号線を備えるものであり、
    前記タグディレクトリ更新方法は、
    ECC/タグ制御信号線により、ECCビットおよびディレクトリタグビットをその対応するメモリモジュールに書き込む機能を有効/無効にすることをさらに含む
    請求項9に記載のタグディレクトリ更新方法。
JP2004043852A 2003-04-21 2004-02-20 メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式 Expired - Fee Related JP3786418B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/419,477 US7051166B2 (en) 2003-04-21 2003-04-21 Directory-based cache coherency scheme for reducing memory bandwidth loss

Publications (2)

Publication Number Publication Date
JP2004326734A JP2004326734A (ja) 2004-11-18
JP3786418B2 true JP3786418B2 (ja) 2006-06-14

Family

ID=33159315

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004043852A Expired - Fee Related JP3786418B2 (ja) 2003-04-21 2004-02-20 メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式

Country Status (2)

Country Link
US (1) US7051166B2 (ja)
JP (1) JP3786418B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7206962B2 (en) * 2003-11-25 2007-04-17 International Business Machines Corporation High reliability memory subsystem using data error correcting code symbol sliced command repowering
JP4967087B2 (ja) * 2007-11-01 2012-07-04 エヌイーシーコンピュータテクノ株式会社 ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法
US7991963B2 (en) * 2007-12-31 2011-08-02 Intel Corporation In-memory, in-page directory cache coherency scheme
KR20120019882A (ko) * 2010-08-27 2012-03-07 주식회사 하이닉스반도체 반도체 집적회로
CN109065096A (zh) * 2012-12-21 2018-12-21 慧与发展有限责任合伙企业 具有错误校正逻辑的存储模块
US9734069B2 (en) * 2014-12-11 2017-08-15 Intel Corporation Multicast tree-based data distribution in distributed shared cache
KR102491651B1 (ko) 2015-12-14 2023-01-26 삼성전자주식회사 비휘발성 메모리 모듈, 그것을 포함하는 컴퓨팅 시스템, 및 그것의 동작 방법
US10019367B2 (en) 2015-12-14 2018-07-10 Samsung Electronics Co., Ltd. Memory module, computing system having the same, and method for testing tag error thereof
US10120749B2 (en) 2016-09-30 2018-11-06 Intel Corporation Extended application of error checking and correction code in memory
US10558519B2 (en) * 2017-01-17 2020-02-11 International Business Machines Corporation Power-reduced redundant array of independent memory (RAIM) system
US11947841B2 (en) * 2021-06-15 2024-04-02 Micron Technology, Inc. Managing address access information

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113500A (en) * 1989-08-23 1992-05-12 Unisys Corporation Multiple cooperating and concurrently operating processors using individually dedicated memories
US5249284A (en) * 1990-06-04 1993-09-28 Ncr Corporation Method and system for maintaining data coherency between main and cache memories
US5313609A (en) * 1991-05-23 1994-05-17 International Business Machines Corporation Optimum write-back strategy for directory-based cache coherence protocols
EP0681240B1 (en) * 1994-05-03 2001-01-10 Hewlett-Packard Company Duplicate cache tag memory system
US5860153A (en) * 1995-11-22 1999-01-12 Sun Microsystems, Inc. Memory efficient directory coherency maintenance
US5991819A (en) * 1996-12-03 1999-11-23 Intel Corporation Dual-ported memory controller which maintains cache coherency using a memory line status table
JP3849951B2 (ja) * 1997-02-27 2006-11-22 株式会社日立製作所 主記憶共有型マルチプロセッサ
US5867511A (en) * 1997-04-14 1999-02-02 International Business Machines Corporation Method for high-speed recoverable directory access
US5974564A (en) * 1997-07-31 1999-10-26 Micron Electronics, Inc. Method for remapping defective memory bit sets to non-defective memory bit sets
US6073216A (en) * 1997-11-25 2000-06-06 Intel Corporation System and method for reliable system shutdown after coherency corruption
US6415364B1 (en) * 1997-12-31 2002-07-02 Unisys Corporation High-speed memory storage unit for a multiprocessor system having integrated directory and data storage subsystems
US6480927B1 (en) * 1997-12-31 2002-11-12 Unisys Corporation High-performance modular memory system with crossbar connections
US6587931B1 (en) * 1997-12-31 2003-07-01 Unisys Corporation Directory-based cache coherency system supporting multiple instruction processor and input/output caches
US6260127B1 (en) * 1998-07-13 2001-07-10 Compaq Computer Corporation Method and apparatus for supporting heterogeneous memory in computer systems
US6374332B1 (en) * 1999-09-30 2002-04-16 Unisys Corporation Cache control system for performing multiple outstanding ownership requests
US6493843B1 (en) * 1999-10-28 2002-12-10 Hewlett-Packard Company Chipkill for a low end server or workstation
US6898738B2 (en) * 2001-07-17 2005-05-24 Bull Hn Information Systems Inc. High integrity cache directory
US7047374B2 (en) * 2002-02-25 2006-05-16 Intel Corporation Memory read/write reordering

Also Published As

Publication number Publication date
JP2004326734A (ja) 2004-11-18
US20040210722A1 (en) 2004-10-21
US7051166B2 (en) 2006-05-23

Similar Documents

Publication Publication Date Title
US11461042B2 (en) Non-volatile memory module architecture to support memory error correction
KR102421311B1 (ko) 태그 매칭 명령에 응답하는 저장회로
CN109643275B (zh) 存储级存储器的磨损均衡设备和方法
JP3620473B2 (ja) 共有キャッシュメモリのリプレイスメント制御方法及びその装置
US7650557B2 (en) Memory scrubbing of expanded memory
CN113853652B (zh) 高速缓冲存储器中的管线化读取-修改-写入操作
US5617530A (en) Storage device array architecture with copyback cache
US7500064B2 (en) Data coherence system
JP4447580B2 (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US7236421B1 (en) Read-modify-write memory using read-or-write banks
JP2001166993A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US20120311248A1 (en) Cache line lock for providing dynamic sparing
CN109952565B (zh) 内存访问技术
EP1087296B1 (en) Word width selection for SRAM cache
CN108701070B (zh) 对多级系统存储器的存储器侧高速缓存的容易出错的高速缓存行槽的处理
JP3786418B2 (ja) メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式
JP2001142789A (ja) ローエンドサーバまたはワークステーション用のチップキル
US20160139989A1 (en) Global error correction
US7392347B2 (en) Systems and methods for buffering data between a coherency cache controller and memory
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
JP5021978B2 (ja) マルチプロセッサシステム及びその動作方法
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US6594732B1 (en) Computer system with memory system in which cache memory is kept clean
US8244983B2 (en) Memory control systems with directory caches and methods for operation thereof
US20080104333A1 (en) Tracking of higher-level cache contents in a lower-level cache

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051014

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060307

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060317

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100331

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100331

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110331

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120331

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130331

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140331

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees