JP2009116398A - ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法 - Google Patents

ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法 Download PDF

Info

Publication number
JP2009116398A
JP2009116398A JP2007285383A JP2007285383A JP2009116398A JP 2009116398 A JP2009116398 A JP 2009116398A JP 2007285383 A JP2007285383 A JP 2007285383A JP 2007285383 A JP2007285383 A JP 2007285383A JP 2009116398 A JP2009116398 A JP 2009116398A
Authority
JP
Japan
Prior art keywords
memory
cache
load
data
distributed shared
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007285383A
Other languages
English (en)
Other versions
JP4967087B2 (ja
Inventor
Hisashi Shindo
久 進藤
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2007285383A priority Critical patent/JP4967087B2/ja
Publication of JP2009116398A publication Critical patent/JP2009116398A/ja
Application granted granted Critical
Publication of JP4967087B2 publication Critical patent/JP4967087B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

【課題】不要な特殊スヌープ命令の発行を抑制することができる分散共有メモリ型情報処理システム等を提供すること
【解決手段】ノードコントローラは、プロセッサが作動するシステムの負荷状況を監視し、負荷状況が低負荷加状態であるか否かを判定する負荷監視判定部と、プロセッサと分散共有メモリの間のキャッシュメモリに格納されたデータのステータスを記憶するディレクトリメモリと、負荷監視判定部が低負荷状態であると判定した時に、ディレクトリメモリを索引し、複数のキャッシュメモリにキャッシングされている可能性があることを示すステータスとなっているキャッシュデータを無効化する特殊スヌープ命令を発行するディレクトリ制御部を備えている。
【選択図】図2

Description

本発明は、分散共有メモリ型情報処理システムに関し、特にキャッシュコヒーレンシの制御方法に関する。
特許文献1に共有バスで接続された複数のプロセッサによりメインメモリを共有する分散共有メモリ型マルチプロセッサシステムが記載されている。このシステムでは、キャッシュメモリのデータエントリの状態(ダーティまたはクリーン)を記憶するキャッシュ状態タグを用いてエントリキャッシュのコヒーレンシ(一貫性)を保証している。
複数のノードを持つ分散共有メモリ型情報処理システムにおけるキャッシュコヒーレンシの保証方法としてMESIプロトコルが知られている。
MESIプロトコルは、キャッシュのステートをM“更新”、E“排他”、S“共有”、I“無効”の4つのステートで管理し、スヌープ処理によりプロセッサにデータ処理結果を反映させる。
特開平6−110844号公報
上記の方法では、例えばプロセッサからのリード要求に対してキャッシングエージェントはSあるいはIで登録することがある。しかし、ディレクトリはシステムコヒーレンシを維持するために共有(share)ステートをディレクトリに登録する。また、一度、S(共有)登録後、キャシュのヒット率を上げるためにキャッシュラインの掃き出しあるいはリプレイス処理等により、SからI状態に遷移する場合があるが、その遷移自体は上記ディレクトリに直接反映されないまま処理される。
キャッシングエージェントがI、ディレクトリがSの状態の場合、同一ラインに対する更新処理が実施される場合、既にI状態になっているキャシングエージェント対するスヌープや無効化処理を行うこととなる。これにより、システム全体の性能が低下するという問題があった。
そこで、本発明は、不要な特殊スヌープ命令の発行を抑制することができる分散共有メモリ型情報処理システム等を提供することを目的とする。
本発明のノードコントローラは、プロセッサが作動するシステムの負荷状況を監視し、負荷状況が低負荷加状態であるか否かを判定する負荷監視判定部と、プロセッサと分散共有メモリの間のキャッシュメモリに格納されたデータのステータスを記憶するディレクトリメモリと、負荷監視判定部が低負荷状態であると判定した時に、ディレクトリメモリを索引し、複数のキャッシュメモリにキャッシングされている可能性があることを示すステータスとなっているキャッシュデータを無効化する特殊スヌープ命令を発行するディレクトリ制御部を備えている。
本発明によれば、不要な無効化処理のための命令のトラフィックを抑えることができる。
図を参照しながら本発明の一実施形態である分散共有型情報処理システム1の構成と動作について説明する。
図1は、分散共有メモリ型情報処理システム1の構成図である。
分散共有メモリ型情報処理装置システム1は、4台のノード(ノード#0ないし#3)により構成されている。
ノード#0は、それぞれキャッシュ200、201、202、203を具備する複数のCPU100、101、102、103と、各CPUがメインメモリとして共有する分散共有メモリ500と、CPUとバス300により接続されCPUからの処理要求を処理するノードコントローラ400と、クロスバー900を備えている。
ノード#1(#2、#3)もノード#0と同様にCPU110ないし113(110ないし113、120ないし123)、キャッシュ210ないし213(220ないし223、230ないし233)、バス310(320、330)、ノードコントローラ410(420、430)、分散共有メモリ510(520、530)、クロスバー910(920、930)を備えている。
各ノードは、各クロスバーをメッシュ状に接続するデータ線90ないし95を介して相互に通信することができ、CPUは、他ノードの分散共有メモリにもアクセスする。また、クロスバー900には、I/O装置950も接続され、ノードコントローラ400は、I/O装置950から受信した要求も処理する。
次に、キャッシュとディレクトリメモリ(以下、「DIRメモリ」という)のステータスについて説明する。
キャッシュ200等のデータのステータスを図4に示す。
ステータス”M”(Modified)は、キャッシュメモリがデータをシステム内で唯一キャッシングしていることを示す。この場合、データは共有メモリのコピーではない。メモリに実際に記憶するコードは、”11”である。
ステータス”E”(Exclusive)は、キャッシュメモリがデータをシステム内で唯一キャッシングしており、共有メモリのコピーを有していることを示している。メモリに実際に記憶するコードは、”10”である。
ステータス”S”(Shared)は、データをシステム内で複数キャッシングしている可能性があり、共有メモリのコピーを有していることを示している。メモリに実際に記憶するコードは、”01”である。
ステータス”I”(Invaild)は、データをキャッシングしていないことを示している。メモリに実際に記憶するコードは、”00”である。
DIRメモリに登録、更新、無効化するデータのステータスを図5に示す。
ステータス”P”(Cashed)は、CPUキャッシュのステータスが、M、E、S、Iのいずれかであることを示している。メモリに実際に記憶するコードは、”11”である。
ステータス”S”(Share)は、CPUキャッシュのステータスが、SまたはIであることを示している。メモリに実際に記憶するコードは、”10”である。
ステータス”I”(Uncashed)は、CPUキャッシュのステータスが、I(すなわち、キャッシングされていない)であることを示している。メモリに実際に記憶するコードは、”00”である。
図2は、ノードコントローラの構成図である。以下、ノード#0について説明するが他のノードについても同様である。
ノードコントローラ400は、DIRメモリ10と、負荷判定部20と、メモリパトロール部30と、ステート判定回路40と、特殊スヌープ生成回路50と、ディレクトリ制御回路(以下、「DIR制御回路」という)70と、リプライ制御回路80とを備えている。
DIRメモリ10は、ノード内のCPU101ないし103に搭載されるキャシュ200ないし203の情報を保持する。この情報は、キャッシュに登録されたデータのアドレス、ステータス情報およびノード情報を含んでいる。
負荷監視判定部20は、システムの負荷状態を監視し、システムが低負荷状態にあるか否かを判定する。この判定は、例えば、ACPIを利用して行ったり、命令バッファの利用率に基づいて行ったりすることができる。
メモリパトロール部30は、分散共有メモリ500に格納されている全データの正確性を検証してソフトエラーを検出し、可能である場合にはエラーを訂正する。
ステート判定回路40は、キャッシュ200等に格納されているデータのステートを判定する。
特殊スヌープ生成回路50は、DIR制御回路の指示によって特殊スヌープ命令を生成する。
DIR制御回路60は、DIRメモリ10を索引する機能と、DIRメモリ10にステータスを登録する機能と、DIRメモリのデータを無効化する機能と、コヒーレンシリクエストを発行する機能を備えている。DIR制御回路60は、バス300とクロスバー900にスヌープチャネル600により接続されている。DIR制御回路60がディレクトリ索引リクエストを受信した場合、DIRメモリ10を索引し、DIRメモリ10に保持されているアドレスが一致し、かつステータス情報が有効(”M“、”E”あるいは”S”)の場合、それぞれ索引結果に応じて登録、更新、無効化を行い、必要に応じて各ノードセルにリクエスト発行を行う。
図3はDIRメモリ10の制御機構を示す。ここでは、DIRメモリは一般的に用いられているnWAY・セット・アソシアティブのメモリで構成する。DIRメモリ10は、スヌープチャネル600を介してDIR制御回路60から転送されるスヌープ要求を処理し、索引結果における各フィールドの一致条件に応じてアドレス、ステータス、オーナーノードID、ダイレクタIDのフィールドが更新され、システム全体のデータ一貫性を保つ。
次に特殊スヌープ要求の発行制御を説明する。
負荷監視判定部20が、システム内の負荷状況が低負荷状態であることを検知した場合、例えば一定時間内に処理する命令が観測されない、あるいは規定した命令数以下の場合、ノードコントローラ400は、自ノードコントローラ内のDIRメモリ10をアドレスの先頭から最終エントリまで順次索引する。索引したステータスが“S”の場合、アドレス情報およびノード情報、ダイレクタ情報をもとに”S”対象の全キャッシングエージェントに特殊スヌープ命令を発行する。ノードコントローラ400は、索引する毎に本操作を繰り返す。尚、システム内の負荷状況が低負荷でないことを検知した時点で本操作を中断する。
上記、特殊スヌープ命令のリプライにより、DIR制御回路60は、最新状況のキャッシングエージェントのステートをDIRメモリに反映する。これにより、例えば、リード要求を発行したプロセッサは本来E、S、Iの何れかのステートになることが推測され、ディレクトには“E”もしくは”S”登録されることによりシステム内のコヒーレンシが保たれる。しかし、上記リード要求で必ずしも“E”あるいは“S”に登録されるわけではなく、また、“E”あるは“S”に登録された後にローカル・キャッシュの掃き出しやリプレイスにより“I”に(無効化)されることが有り得る。
上記特殊スヌープ命令は、上記無効化された情報をシステム内の負荷状態が低い時を利用して、DIRメモリ10に最新のキャッシングエージェントのステートを反映することを目的としている。ここで、キャッシングエージェントのステートが、ディレクトメモリに反映されることにより、”S“から”I“に変更されたラインに対して、その後同一ラインへのライト要求が発行された場合でもメモリの一貫性を保つためのスヌープ命令あるいは無効化命令の発行が不要となる。
上述した構成図における、リード・ライト要求における動作説明をする。
1.自ノードの分散共有メモリ500に対するリード
2.他ノードの分散共有メモリ530に対するリード
3.自ノードの分散共有メモリ500に対するライト
4.他ノードの分散共有メモリ530に対するライト
1. 自ノード(ノード#0)の分散共有メモリ500に対するリード
この動作のフローチャートを図10と図11に示す。リクエスト発行元をCPU100とする。尚、自ノード内のCPU101、102、103から発行した場合も各CPU内のキャッシュ制御およびそれらに関連するリクエストの動作は同様とする。
まず、アクセス対象のデータのキャッシュ200でのステータスを調べる(図10のS101)。
1-1.CPU100においてキャッシュ200にアクセス対象のデータが”M”で登録されている場合、キャッシュにヒットしキャッシュ200内のデータがCPUに返信される(S102)。リードリクエストは完了する。
1-2. CPU100においてキャッシュ100にアクセス対象のデータが”E”で登録されている場合、キャッシュにヒットしキャッシュ内のデータがCPUに返信される(S102)。リードリクエストは完了する。
1-3. CPU100においてキャッシュ100にアクセス対象のデータが”S”で登録されている場合、キャッシュにヒットしキャッシュ内のデータがCPUに返信される(S102)。リードリクエストは完了する。
1-4. CPU100においてキャッシュ100にアクセス対象のデータが登録されていない場合、キャッシュ100はバス300にバス獲得要求を発行し、バス300が獲得できたらラインリードリクエストを発行する(S103)。
1-4-1.上記1-4.において、バス300に接続しているCPU101,102、103のキャッシュ201,202,203の何れかでアクセス対象のデータが”M”で登録されている場合、そのキャッシュがバス300に”M”データをライトバック(データリプライ)する。ライトバックを発行したキャッシュは無効化され”I”とする。上記ライトバックはリクエスト制御回路70を介して分散共有メモリ500に送信する。既に同一ノード内のキャッシュが”M”の状態であるのでDIRメモリ10に登録されているDIRステータは”P”のままとする。
キャッシュ200はバス300を介して上記ライトバックデータをリプライデータとして受信し”E”で登録し、CPUにデータを返信する。また、自ノードの分散共有メモリ500にも上記ライトバックデータが送信され内容が更新される(S106)。リード処理は完了する。
1-4-2.上記1-4.において、バス300に接続しているCPU101,102、103のキャッシュ201,202,203の何れかでアクセス対象のデータが”E”で登録されている場合、そのキャッシュは”S”に更新する。ラインリードリクエストはリクエスト制御回路70を介してDIR制御回路60および分散共有メモリ500に転送する。DIR制御回路60はDIRメモリ10を索引し、アクセス対象のステータスを”S”に更新し、ダイレクタIDフィールドの値(ここでは、ノード#0の各プロセッサに割り当てられたビット)を”1“とする(S107)。
また、ラインリードリクエストにより分散共有メモリ500から読み出したデータリプライはリプライ制御回路80、バス300を介してリクエスト発行元のキャッシュ200に送信され”S”で登録し、CPUにデータを返信する(S108)。リード処理は完了する。
1-4-3.上記1-4.において、バス300に接続しているCPU101,102、103のキャッシュ201,202,203の何れかでアクセス対象のデータが”S”で登録されている場合、そのキャッシュは”S”に更新する。ラインリードリクエストはリクエスト制御回路70を介してDIR制御回路60および分散共有メモリ500に転送する。DIR制御回路60はDIRメモリ10のステータスは更新しないが、ダイレクタIDは“S”対象となるプロセッサの割り当てビットを“1”とする(S109)。
また、ラインリードリクエストにより分散共有メモリ500から読み出したデータリプライはリプライ制御回路80、バス300を介してリクエスト発行元のキャッシュ200に送信され”S”で登録し、CPUにデータを返却する(S110)。リード処理は完了する。
1-5. 上記1-4.において、バス300に接続しているCPU101,102、103のキャッシュ201,202,203の全てがアクセス対象のデータを登録していない場合、ラインリードリクエストはリクエスト制御回路70を介してDIR制御回路60および分散共有メモリ500に転送する。DIR制御回路60は、スヌープチャネル600を介してクロスバー900にスヌープ要求を発行し、他ノード(ノード#1、#2,#3)のノードコントローラに左記スヌープ要求を転送する(図11のS111)。各々のノードコントローラのDIR制御回路60はDIRメモリ10を索引する(S112)。以下に各索引結果の処理を示す。尚、以下はノード#3を対象として説明するがノード#1,2でも同様の動作をするものとする。
1-5-1. 上記1-5.においてノード#3のDIRメモリ10の索引結果がアドレス一致でかつ”P”の場合、DIR制御回路60はバス330にラインリードとインバリデイトリクエストを発行する(S113)。ノード#3のDIRメモリ10のアクセス対象は無効化する。
1-5-1-1. CPU130〜133の各々キャシュ230から233を索引し(S114)、索引結果が”M”の場合、”M”を登録しているキャッシュはデータをバス330にライトバックし、リクエスト制御回路70に転送する。”M”で登録していたキャッシは無効化する(S115)。
左記ライトバックはデータリプライとしてリプライチャネル800を介してクロスバー930に転送し、データ線92を介してノード#0のノードコントローラ400に転送される。ノードコントローラ400のクロスバー900は上記リプライデータをリクエスト制御回路70とリプライ制御回路80に転送する。リプライ制御回路80はデータリプライをバス300上のCPU100に送信しキャッシュ200は”E”を登録する。データリプライはCPUに返却されリード処理は完了する。一方、ノードコントローラ400のリクエスト制御回路70はDIR制御回路60にデータリプライを転送し、DIRメモリ10を索引する。ここで、DIRメモリ10の索引結果に応じて対象エリアを”E“あるいは”S“に登録する(S116)。
1-5-1-2. CPU130〜133の各々のキャシュ230〜233を索引し(S114)、索引結果が”E”の場合、”E”を登録しているキャッシュは無効化する(S117)。
この場合、ノードコントローラ400においてデータリプライは分散共有メモリ500より読み出し、リプライ制御回路80を介してバス300に送出し、キャッシュ200は“E”で登録する。CPUにデータを返信する(S118)。リード処理を完了する。
1-5-1-3. CPU130〜133の各々キャシュ230から233を索引し(S114)、索引結果が”S“の場合、”S”を登録しているキャッシュは無効化する(S119)。
この場合、ノードコントローラ400においてデータリプライは分散共有メモリ500より読み出し、リプライ制御回路80を介してバス300に出し、キャッシュ200は“E”で登録する。CPUにデータを返信する(S120)。リード処理を完了する。
1-5-1-4. CPU130〜133の各々キャシュ230から233を索引し(S112)、何れのキャッシュにヒットしない場合、ノード#3では何もしない。
この場合、データリプライは分散共有メモリ500より読み出し、データリプライはリプライ制御回路80を介してバス300に出し、キャッシュ200は“E”で登録する。CPUにデータを返信する。リード処理を完了する。
1-5-1-5. 上記1-5.においてノード#3のDIRメモリ10の索引結果がアドレス一致でかつ”S”の場合、DIR制御回路60はバス330にラインリードとインバリデイトリクエストを発行する(S113)。ノード#3のDIRメモリ10のアクセス対象は無効化”I”する。
ノード#3のDIRメモリ10の索引結果が“S”であり、バス330上のキャッシュ230〜233は“S”あるいは“I”であることから、“S”の場合は上記1-5-1-3.、“I”の場合は上記1-5-1-4.と同様の動作をする。尚、ノード#0のDIRメモリ10の登録、更新制御は1-5-1-1.と同様の動作をする。
1-5-1-6. 上記1-5.においてノード#3のDIRメモリ10の索引結果でアドレス一致しない、あるいはアドレス一致したが“I”の場合(有効データと一致条件が成立しなかった)ノード#3は何もしない。
尚、ノード#0のDIRメモリ10の登録、更新制御は1-5-1-1.と同様の動作をする。
2. 他ノード(ノード#3)の分散共有メモリ530に対するリード
DIRメモリ10、およびCPUのキャッシュに対する制御は上記1.と同様である。アクセス対象の分散共有メモリがリクエスト発行ノード以外のノードであり、ノード間のデータ転送経路のみが異なる。分散共有メモリ530からの読み出しは、ノードコントローラ430よりリプライチャネル800、クロスバー930、データ線92を介してノードコントローラ400に転送する。受信したリプライデータはリプライ制御回路80を介してバス300に送信し、リクエスト発行元のキャッシュに登録する。
また、キャッシュの“M”から“I”の無効化がノード#0あるいは他ノードで発生したかによりデータリプライの経路が変わるのみであることから、各動作に関しては割愛する。
3. 自ノード(ノード#0)の分散共有メモリ500に対するライト
この動作のフローチャートを図12と図13に示す。リクエスト発行元をCPU100とする。尚、自ノード内のCPU101、102、103から発行した場合も各CPU内のキャッシュ制御およびそれらに関連するリクエストの動作は同様とする。
まず、アクセス対象のデータのキャッシュ200でのステータスを調べる(図12のS301)。
3-1.CPU100においてキャッシュ100にアクセス対象のデータが”M”で登録されている場合、キャッシュにヒットしキャッシュ内のデータを更新する。キャッシュのステータスは“M”のままとする(S302)。ライトを完了する。
3-2. CPU100においてキャッシュ100にアクセス対象のデータが”E”で登録されている場合、キャッシュにヒットしキャッシュ内のデータを更新する。キャッシュのステータスも“M”に更新する(S302)。ライトを完了する。
3-3. CPU100においてキャッシュ100にアクセス対象のデータが”S”で登録されている場合、キャッシュ100はバス300にバス獲得要求を発行し、バス300が獲得できたらラインリードとインバリデイトリクエストを発行する(S303)。
3-3-1. 上記3-3.において、キャッシュ200がライト対象を”S”でキャッシングしている場合、バス300にメモリラインリード&インバリデイトリクエストを発行する。バス300上の何れかのストアインキャシュに”S”でキャッシングしているものがあればインバリデイトしキャッシュの登録を無効化”I”する。並行してキャッシュ200から発行されたラインリード&インバリデイトリクエストはリクエスト制御回路70を介してDIR制御回路60に転送する。DIRメモリ10の索引結果より、ステータス“S”に対するダイレクタIDより、対象となる全プロセッサにメモリリード&インバリデイト要求を、リクエストチャネル800、クロスバー900を介して送信する。
転送されたメモリリード&インバリデイトリクエストは他のノードのDIRメモリ10を索引しアドレス一致でかつ、”P”あるいは”S”を検出した場合は無効化”I”し、同一ノード内のバスにインバリデイトリクエストを発行し”S”でキャッシングしているキャッシュの登録を無効化”I”する(S304)。DIRメモリ10の索引結果が”I”の場合は何もしない。
DIR制御回路60は他のノードに発行したメモリリード&インバリデイトリクエストの完了通知(スヌープ結果)を受信しDIRメモリ10のエリアを”P”で登録する。メモリラインリード&インバリデイトリクエストのアドレスがマッピングされている分散共有メモリ500よりリードリプライデータが読み出され、リプライ制御回路80を介してキャッシュ300に返信する。キャッシュ200はリードリプライデータを受信しライトデータとマージして”M”で登録する(S305)。ライト処理は完了する。
3-4. CPU100においてキャッシュ100にアクセス対象のデータが”アドレス一致しない、あるいはアドレス一致したが無効化“I”されている場合、キャッシュ100はバス300にバス獲得要求を発行し、バス300が獲得できたらラインリードとインバリデイトリクエストを発行する(S306)。そして、ノード#0のキャッシュ201、202、203のステータスを調べる(S307)。
3-4-1. 上記3-4.において、バス300に接続しているCPU101,102、103のキャッシュ201,202,203の何れかでアクセス対象のデータが”M”で登録されている場合、そのキャッシュがバス300に”M”データをライトバック(データリプライ)する。ライトバックを発行したキャッシュは無効化され”I”とする(S308)。
上記ライトバックはリクエスト制御回路70を介して分散共有メモリ500に送信する。既に同一ノード内のキャッシュが”M”の状態であるのでDIRメモリ10に登録されているディレクトリステータは”P”のままとする。
キャッシュ200はバス300を介して上記ライトバックデータをリプライデータとして受信し”M”で登録し(S309)、データを更新する。ライト処理は完了する。
3-4-2. 上記3-4において、バス300に接続しているCPU101,102、103のキャッシュ201,202,203の何れかでアクセス対象のデータが”E”で登録されている場合、そのキャッシュは無効化”I”する(S309)。
ラインリードとインバリデイトリクエストはリクエスト制御回路70を介してDIR制御回路60および分散共有メモリ500に転送する。DIR制御回路60はDIRメモリ10を索引し、索引結果よりアクセス対象のステータスを”P”に更新する。また、ラインリードリクエストにより分散共有メモリ500から読み出したデータリプライはリプライ制御回路80、バス300を介してリクエスト発行元のキャッシュ200に送信され、キャッシュ200はライトデータとマージして”M”で登録する(S310)。ライト処理は完了する。
3-4-3. 上記3-4.において、バス300に接続しているCPU101,102、103のキャッシュ201,202,203の何れかでアクセス対象のデータが”S”で登録されている場合、そのキャッシュは無効化”I”する(S311)。
また、他ノードのキャッシュが”S”である可能性があるため、DIR制御回路60はリクエストチャネル700、クロスバー900にインバリデイトリクエストを発行する。インバリデイトリクエストを受信した各々のノードのノードコントローラは、ノード内のバスへインバリデイトリクエストを発行する。”S”で登録されているキャッシュは全て無効化”I”される。キャッシングされていない場合は何もしない。他ノードのDIRメモリ10のアクセス対象エリアは無効化”I”される。
ラインリード&インバリデイトリクエストはリクエスト制御回路70を介してDIR制御回路60および分散共有メモリ500に転送する。DIR制御回路60はDIRメモリ10を索引し、索引結果よりアクセス対象のステータスを”P”に更新する。また、ラインリードリクエストにより分散共有メモリ500から読み出したデータリプライはリプライ制御回路80、バス300を介してリクエスト発行元のキャッシュ200に送信され、キャッシュ200はライトデータとマージして”M”で登録する(S312)。ライト処理は完了する。
3-5. 自ノード内のノードコントローラ400のDIR制御回路60はDIRメモリ10、キャッシュ201,202,203の全てがアクセス対象のデータを登録していない場合、ラインリードとインバリデイトリクエストはリクエスト制御回路70を介してDIR制御回路60および分散共有メモリ500に転送する。DIR制御回路60は、ノード間アドレスバス600にラインリード&インバリデイトリクエストを発行し、他ノード(ノード1、2,3)のノードコントローラに上記ラインリードリクエストを転送する(図13のS321)。各々のノードコントローラのDIR制御回路60はDIRメモリ10を索引する(S322)。以下に各索引結果の動作を示す。尚、以下はノード#3を対象として説明するがノード#1,2でも同様の動作をするものとする。
3-5-1. 上記3-5.においてノード#3のDIRメモリ10の索引結果がアドレス一致でかつ”P”の場合、DIR制御回路60はバス330にインバリデイトリクエストを発行する。ノード#3のDIRメモリ10のアクセス対象は無効化”I”する。以下に上記インバリデイトリクエストに対する動作を示す。
3-5-1-1. CPU130〜133の各々キャシュ230から233を索引し(S324)、索引結果が”M”の場合、”M”を登録しているキャッシュはデータをバス330にライトバックし、リクエスト制御回路70に転送する。”M”で登録していたキャッシは無効化”I”する(S325)。
上記ライトバックはデータリプライとしてリプライチャネル800を介して、クロスバー930に転送し、データ線92を介してノード#0のノードコントローラ400に転送される。ノードコントローラ400はデータリプライをリプライ制御回路80とリクエスト制御回路70に転送する。リプライ制御回路80はデータリプライをバス300上のCPU100に送信し、キャッシュ200はデータリプライとライトデータをマージして”M”で登録する。ライト処理を完了する(S326)。
尚、上記においてリード動作時のDIRメモリ10の制御と同様に、リクエスト発行元のDIR制御回路60はデータリプライを受信し、DIRメモリ10を索引する。ここで、DIRメモリ10の索引結果が判定回路3の結果を判別する判定回路の出力により以下の様になる。
DIRメモリ10のアクセス対象エリアに空きエリアが存在した場合、空きエリアにキーアドレスおよびステータス”P”を登録する。
DIRメモリ10のアクセス対象エリアが全て”S”で登録されていた場合、何れかのエリアを掃き出し、替わりにデータリプライのキーアドレスとステータス”P”を登録する。
インバリデイトリクエストのアドレスに対して、バス300上のキャッシュ200〜203の何れかで“M”が登録されている場合は、バス300にライトバックし無効化“I”する。ライトバックはリクエスト制御回路70を介してアクセス対象の分散共有メモリにルーティングされメモリの内容を更新する。
インバリデイトリクエストのアドレスに対して、バス300上のキャッシュ200から203の何れかで“E”が登録されている場合、無効化“I”する。
インバリデイトリクエストのアドレスに対して、バス300上のキャッシュ200から203の何れかで“S”が登録されている場合、無効化“I”する。
インバリデイトリクエストのアドレスに対して、バス300上のキャッシュ200から203の何れにも登録されていない場合は何もしない。
3-5-1-2. CPU130〜133の各々キャシュ230から233を索引し(S324)、索引結果が”E”の場合、”E”を登録しているキャッシュは無効化”I”する(S327)。
この場合、ノードコントローラ400においてデータリプライは分散共有メモリ500より読み出し、リプライ制御回路80を介してバス300に出し、キャッシュ200はデータリプライとライトデータをマージして“M”で登録する(S328)。ライト処理を完了する。
DIRメモリ10の制御は上記3-5-1-1.と同様である。
3-5-1-3. CPU130〜133の各々キャシュ230から233を索引し(S324)、索引結果が”S“の場合、”S”を登録しているキャッシュは無効化”I”する(S329)。
この場合、ノードコントローラ400においてデータリプライは分散共有メモリ500より読み出し、リプライ制御回路80を介してバス300に出し、キャッシュ200はデータリプライとライトデータをマージして“M”で登録する(S330)。ライト処理を完了する。
DIRメモリ10の制御は上記3-5-1-1.と同様である。
3-5-1-4. CPU130〜133の各々キャシュ230から233を索引し、何れのキャッシュにヒットしない場合、ノード#3は何もしない。
この場合、データリプライは分散共有メモリ500より読み出し、データリプライはリプライ制御回路80を介してバス300に出し、キャッシュ200はデータリプライとライトデータをマージし“M”で登録する(S330)。ライト処理を完了する。
DIRメモリ10の制御は上記3-5-1-1.と同様である。
3-6. 上記3-5.においてノード#3のDIRメモリ10の索引結果がアドレス一致でかつ”S”の場合、DIR制御回路60はバス330にインバリデイトリクエストを発行する(S323)。ノード#3のDIRメモリ10のアクセス対象は無効化”I”する。
ノード#3のDIRメモリ10の索引結果が“S”であることから、バス330上のキャッシュ230〜233は“S”あるいは“I”であることから、“S”の場合は上記3-5-1-3. “I”の場合は上記3-5-1-4.と同様の動作をする。尚、ノード#0のDIRメモリ10の登録、更新制御は3-5-1-1.と同様の動作をする。
3-6-1. 上記3-5.においてノード#3のDIRメモリ10の索引結果が“I”の場合(有効データと一致条件が成立しなかった)はノード#3は何もしない。
尚、ノード#0のDIRメモリ10の登録、更新制御は3-5-1-1.と同様の動作をする。
4. 他ノード(ノード#3)の分散共有メモリ530に対するライト
DIRメモリ10、および各々のキャッシュに対する制御は上記3.と同様である。アクセス対象の分散共有メモリがリクエスト発行ノード以外のノードであり、ノード間のデータ転送経路のみが異なる。分散共有メモリ530からの読み出しは、ノードコントローラ430よりリプライチャネル800、クロスバー930に送信し、データ線92を介してノードコントローラ400に転送する。受信したデータはリプライ制御回路80を介してバス300に送信し、リクエスト発行元のキャッシュに登録する。
また、キャッシュの“M”から“I”の無効化がノード#0あるいは他ノードで発生したかによりデータリプライの経路が変わるのみである。
次に従来構成でのキャッシュコヒーレンシの制御処理の例を図6を参照して説明する。この例では、複数プロセッサP0〜P3のサブセットをC0〜C3とし、C0〜C3にメインメモリMMが接続したイメージであり、IO装置は省いている。NC0〜NC1はノードコントローラおよびクロスバーを含むノードコントローラ処理部とする。
ここでは、サブセットC0のプロセッサP0(以下、「C0 P0」と書く。他のプロセッサについても同様)がライト要求を発行した場合について説明する。また「Home Agent」は、接続する先のネットワークにあるルータを意味する。
ステップ1. C0 P0がライト要求。 C0 DIR キャッシュミス
ステップ2. Home AgentがNC1にリード要求(図6のS1)
ステップ3. NC1がディレクトリを索引。 NC2 P0およびNC3 P0で”S”ステート検出。
※但し、C2 P0およびC3 P1の最新ステートは”I”で登録。
C1 MMよりメモリリード(S2)
ステップ4. NC2,NC3に対して無効化命令発行(S3)
NC1は、NC2,NC3の無効化処理のリプライ待ち
ステップ5. NC1がNC2、NC3のリプライ受信(S4)
C1 MMよりリードデータリプライ(S5)
ステップ6. NC1は、DIRメモリにおけるC0 P1のステートを”M”に更新。
NC0へメモリリードデータ返却(S6)
次に本発明構成でのキャッシュコヒーレンシの制御処理の例を図7を参照して説明する。この例では、複数プロセッサP0〜P3のサブセットをC0〜C3とし、C0〜C3にメインメモリMMが接続したイメージであり、IO装置は省いている。NC0〜NC1はノードコントローラ400、410、420、430およびクロスバー900、900、910、920、930を含むノードコントローラ処理部とする。
ステップ1. NC1 は、他NCの負荷状況監視
ステップ2. NC1は、各NCが低負荷状況であることを検出
ステップ3. メモリパトロール機構を活用し、MMの全ラインを読み出しデータのステートをチェック
ステップ4. NC2,NC3 で“S(共有)”ステート検出
※ 但し、C2 P0およびC3 P1の最新ステートは”I”で登録
ステップ5. NC2,NC3に対して特殊スヌープ命令発行 (図7のS13)
NC1は、NC2,NC3の無効化処理のリプライ待ち
ステップ6. NC2,NC3のリプライ受信 (S14)
NC1 DIR “I”に更新。
ステップ7. C0 P1 ライト要求
C0 DIR キャッシュミス
ステップ8. Home Agent NC1にリード要求(S11)
ステップ9. NC1 DIR索引
ここで、上記ステップ1.から6.の処理によりDIR”I”で更新されている。
C1 MMよりメモリリード(S12)
ステップ10. NC1は、DIRにおけるC0 P1のステートを”M”に更新
NC0へメモリリードデータ返却(S16)
上述の従来例と本発明の動作の比較表を図8に示す。
単に、従来例と本発明のステップ数を比較すると予め低負荷状況での特殊スヌープ処理を実行するため、本発明の方がステップ数が大きくなる。但し、システム稼働状態において負荷が低い期間を活用して、特殊スヌープ命令の処理によりキャッシングエージェントのステートをDIR(Home)に反映させることにより、不要なスヌープ要求や無効化処理によるオーバーヘッドを削減し、システム全体の性能があがる効果がある。
次に、メモリパトロールシーケンスを活用した場合の特殊スヌープ命令生成のための手順を説明する。
例えば、大容量の情報を格納するDIRメモリは、RAM等で構成される。RAMはα線等の影響により記憶内容が反転してデータ誤りをすることがあり、これを一般的にはソフトエラーと称している。このソフトエラーを訂正する方法として、メモリパトロール方式が使用されている。
例えば、8バイトデータ毎にSEC−DED(1ビットエラー訂正・2ビットエラー検出)のECCコードで保証する。メモリパトロールが起動された場合、RAMからのデータのリード→リードしたデータのECCコードの検査と訂正→チェックビット(データ保証ビット)の生成→RAMへの書き戻しの一連の動作を繰り返す。
即ち、上述したメモリパトロール一連の動作の繰り返しの中で、RAMからのデータ読み出しをし、データの保証が確認された際にRAM情報内の各ノードにおけるキャッシュステータス情報を同時に参照する。ここで、キャッシュステータス情報がS(共有)あるいはE(排他)と判定された場合で、かつ、負荷監視判定部20において低負荷と判断された場合、上記S(共有)あるいはE(排他)と判定された情報に伴うアドレス情報とノード情報を取得する。取得したアドレスとノード情報から特殊スヌープ生成回路50が特殊スヌープ命令を生成し、ノード情報よりキャッシングエージェントに生成した特殊スヌープ命令を発行する。ここで、例えばS(共有)の場合は複数のキャシングエージャントが、対象アドレスのラインデータを共有していることが推測されるため、全ての対象に前記特殊スヌープをブロードキャストする。
以下は、各ノードコントローラにおける特殊スヌープ生成回路50と負荷監視判定部20の動作の一例である。図9は特殊スヌープ命令の発行条件を表したものである。
(1) あるホームノードのノードコントローラより、メモリパトロールを起因として、各ノードのキャッシュスステートを管理しているDIRメモリより情報を読み出す。
(2) 読み出されたステートで“S(共有)”が検出された場合は、対象のセルに特殊スヌープ命令を発行する。
(3) 受信したセルは、命令管理バッファの命令が仕掛かり中を示すVビットの総和が“0”ならば明らかに負荷がない状態と判断して、特殊スヌープ命令を処理する。尚、数ビットのVビットが“1”の場合でも、低負荷状況であることが判断可能であることから、ある一定の閾値を設定可能なレジスタを具備し、その設定された値より上記Vビットの総和が小なる場合も低負荷状態と判定して特殊スヌープ処理を実行するようにしてもよい。
(4) 特殊スヌープのリプライとして、命令管理バッファのバッファ使用率を返却し、特殊スヌープ命令発行元は、返却されたバッファ使用率をもとに負荷状況を判定し、その後の特殊スヌープ命令の発行を判定する。
(5) 仮に1回目の特殊スヌープ命令の発行先のセルがVビットの総和数が大きく、高負荷状態であると判断された場合、特殊スヌープ命令の処理は行わず、処理を行わなかったことを示すリプライを返却して特殊スヌープ命令の発行を抑止する。
(6) 一時的に高負荷状態となり、その後低負荷状態に移行したままの状態が続くこともありうることから、周期(周期は可変に設定可能とする。)的に上記の特殊スヌープ命令の発行が可能な仕組みを具備するものとする。
(7) 上記はメモリパトロールをトリガとしているが、特にメモリパトロールを実行していないケースにおいてもホームノード自体の命令管理バッファのVビットの状態を検知し、低負荷状態ならば特殊スヌープ命令を発行可能な仕組みを具備する。
尚、上記はハードウェアで実現しているがソフトウェアによる監視やACPIの機構を活用して負荷状態を判定することでもよい。
以上説明した様に、分散共有メモリ型情報処理システム1は、以下に記載する様な効果を奏する。
負荷監視判定部20は、システムの負荷状態を監視し、DIR制御回路60は、システム負荷状態が小さい時、予め特殊スヌープ命令を発行し、最新のキャッシングエージェントのステートをDIRメモリに反映する。
そのため、システム負荷状態が大きくなった場合でも不要な無効化処理のための命令のトラフィックを抑えることができる。
また、メモリパトロール部20がメモリパトロールを行う際のディレクトリ読み出し動作を利用し、ステート判定をするようにすれば、従来のノードコントローラに大きな変更を加えることなく、特殊スヌープ命令の発行を制御することができる。
また、ノード間で負荷状況が大/小混在する場合は、負荷が小さいノードのみを対象として処理することが可能なことからシステム稼働状況に応じた最適な処理が実現可能となる。
本発明の一実施形態である分散共有メモリ型情報処理システムのブロック図である。 ノードコントローラのブロック図である。 DIR制御回路のブロック図である。 CPUキャッシュのステータスを説明する図である。 ディレクトリのステータスを説明する図である。 従来の構成によるライト処理を説明する図である。 本発明によるライト処理を説明する図である。 従来構成による処理と本発明による処理を対比する表である。 特殊スヌープ命令の発行条件の一例を示す図である。 自ノードの分散共有メモリに対するリード動作を示すフローチャートである。 自ノードの分散共有メモリに対するリード動作を示すフローチャートである。 自ノードの分散共有メモリに対するライト動作を示すフローチャートである。 自ノードの分散共有メモリに対するライト動作を示すフローチャートである。
符号の説明
10 DIRメモリ
20 負荷監視判定部
30 メモリパトロール部
40 ステート判定回路
50 特殊スヌープ生成回路
60 DIR制御回路
70 リクエスト制御部
80 リプライ制御回路
100、101、102、103、130、131、132、133 CPU
200、201、202、203、230、231、232、233 キャッシュ
300、330 バス
400、430 ノードコントローラ
500、530 分散共有メモリ
600 スヌープチャネル
700 リクエストチャネル
800 リプライチャネル
900、930 クロスバー

Claims (14)

  1. 複数のプロセッサにより共有される分散共有メモリに対する前記プロセッサによるアクセスを制御するノードコントローラにおいて、
    前記プロセッサが作動するシステムの負荷状況を監視し、負荷状況が低負荷加状態であるか否かを判定する負荷監視判定部と、
    前記プロセッサと前記分散共有メモリの間のキャッシュメモリに格納されたデータのステータスを記憶するディレクトリメモリと、
    前記負荷監視判定部が低負荷状態であると判定した時に、前記ディレクトリメモリを索引し、複数のキャッシュメモリにキャッシングされている可能性があることを示すステータスとなっているキャッシュデータを無効化する特殊スヌープ命令を発行するディレクトリ制御部を備えたことを特徴としたノードコントローラ。
  2. 前記負荷監視判定部は、ACPIを利用して前記判定を行うことを特徴とした請求項1に記載のノードコントローラ。
  3. 前記負荷管理判定部は、命令管理バッファの利用率に基づいて前記判定を行うことを特徴とした請求項1に記載のノードコントローラ。
  4. 前記分散共有メモリのメモリパトロールを行うメモリパトロール部を備え、
    前記ディレクトリ制御部は、メモリパトロール部の動作に伴うメモリアクセスを利用して前記索引を行うことを特徴とした請求項1ないし請求項3のいずれかひとつに記載のノードコントローラ。
  5. 複数のプロセッサとこれらのプロセッサにより共有される分散共有メモリと前記プロセッサと前記分散共有メモリの間のキャッシュメモリと請求項1ないし請求項4のいずれかひとつに記載のノードコントローラを備えた分散共有メモリ型情報処理システム。
  6. 複数のプロセッサとこれらのプロセッサにより共有される分散共有メモリと前記プロセッサと前記分散共有メモリの間のキャッシュメモリと請求項1ないし請求項4のいずれかひとつに記載のノードコントローラを備えたノードを複数備え、各ノードの分散共有メモリは他のノードのプロセッサによっても共有される分散共有メモリ型情報処理システム。
  7. 複数のプロセッサとこれらのプロセッサにより共有される分散共有メモリとの間のキャッシュメモリにキャッシュされたデータのコヒーレンシを制御する方法において、
    前記プロセッサが作動するシステムの負荷状況を監視し、負荷状況が低負荷加状態であると判定した時に、前記キャッシュメモリに格納されたデータのステータスを記憶するディレクトリメモリを索引し、複数のキャッシュメモリにキャッシングされている可能性があることを示すステータスとなっているキャッシュデータを無効化する特殊スヌープ命令を発行することを特徴としたキャッシュコヒーレンシの制御方法。
  8. 前記システムの負荷判定をACPIを利用して行うことを特徴とした請求項7に記載のキャッシュコヒーレンシの制御方法。
  9. 前記システムの負荷判定を命令管理バッファの利用率に基づいて行うことを特徴とした請求項7に記載のキャッシュコヒーレンシの制御方法。
  10. 前記索引を前記分散共有メモリに対するメモリパトロール動作に伴うメモリアクセスを利用して行うことを特徴とした請求項7ないし請求項9のいずれかひとつに記載のキャッシュコヒーレンシの制御方法。
  11. 複数のプロセッサとこれらのプロセッサにより共有される分散共有メモリとの間のキャッシュメモリにキャッシュされたデータのコヒーレンシを制御するプログラムにおいて、
    前記プロセッサが作動するシステムの負荷状況を監視し、負荷状況が低負荷加状態であるか否かを判定する負荷監視判定処理と、
    前記負荷監視判定部が低負荷状態であると判定した時に、前記プロセッサと前記分散共有メモリの間のキャッシュメモリに格納されたデータのステータスを記憶するディレクトリメモリを索引し、複数のキャッシュメモリにキャッシングされている可能性があることを示すステータスとなっているキャッシュデータを無効化する特殊スヌープ命令を発行するディレクトリ制御処理とをコンピュータに実行させることを特徴としたキャッシュコヒーレンシ制御プログラム。
  12. 前記負荷監視判定処理では、ACPIを利用して前記判定を行うことを特徴とした請求項11に記載のキャッシュコヒーレンシ制御プログラム。
  13. 前記負荷管理判定部は、前記CPUの命令管理バッファの利用率に基づいて前記判定を行うことを特徴とした請求項1に記載のキャッシュコヒーレンシ制御プログラム。
  14. 前記分散共有メモリのメモリパトロールを行うメモリパトロール処理を前記コンピュータに実行させ、
    前記ディレクトリ制御処理では、前記メモリパトロール処理に伴うメモリアクセスを利用して前記索引を行うことを特徴とした請求項11ないし請求項13のいずれかひとつに記載のキャッシュコヒーレンシ制御プログラム。
JP2007285383A 2007-11-01 2007-11-01 ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法 Active JP4967087B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007285383A JP4967087B2 (ja) 2007-11-01 2007-11-01 ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007285383A JP4967087B2 (ja) 2007-11-01 2007-11-01 ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法

Publications (2)

Publication Number Publication Date
JP2009116398A true JP2009116398A (ja) 2009-05-28
JP4967087B2 JP4967087B2 (ja) 2012-07-04

Family

ID=40783517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007285383A Active JP4967087B2 (ja) 2007-11-01 2007-11-01 ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法

Country Status (1)

Country Link
JP (1) JP4967087B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168674A (ja) * 2011-02-14 2012-09-06 Nec Computertechno Ltd ミラーリング復旧装置、および、ミラーリング復旧方法
JP2017515239A (ja) * 2014-05-08 2017-06-08 マイクロン テクノロジー, インク. ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
JP2019053617A (ja) * 2017-09-15 2019-04-04 株式会社東芝 システムlsiおよびシステムlsiの故障検出方法
JP7460743B1 (ja) 2022-12-27 2024-04-02 Necプラットフォームズ株式会社 メモリコントローラ及びメモリコントローラ制御方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09190379A (ja) * 1996-01-10 1997-07-22 Mitsubishi Electric Corp キャッシュシステム
JPH11102320A (ja) * 1997-09-29 1999-04-13 Mitsubishi Electric Corp キャッシュシステム
JP2000039937A (ja) * 1998-07-22 2000-02-08 Toshiba Corp コンピュータシステムおよびそのパワーセーブ制御方法
JP2002024198A (ja) * 2000-07-06 2002-01-25 Fujitsu Ltd 分散共有メモリ型並列計算機
JP2003067092A (ja) * 2001-07-05 2003-03-07 Lg Electronics Inc 中央処理装置用電源供給器
JP2003316756A (ja) * 2002-04-24 2003-11-07 Nec Computertechno Ltd 分散共有メモリ型マルチプロセッサシステム及びそれに用いるタグ制御方法
JP2004280269A (ja) * 2003-03-13 2004-10-07 Internatl Business Mach Corp <Ibm> 情報処理装置、プログラム、記録媒体、及び制御回路
JP2004326734A (ja) * 2003-04-21 2004-11-18 Hewlett-Packard Development Co Lp メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式
JP2006146920A (ja) * 2004-11-17 2006-06-08 Sun Microsyst Inc メモリエラーを分類するための方法および装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09190379A (ja) * 1996-01-10 1997-07-22 Mitsubishi Electric Corp キャッシュシステム
JPH11102320A (ja) * 1997-09-29 1999-04-13 Mitsubishi Electric Corp キャッシュシステム
JP2000039937A (ja) * 1998-07-22 2000-02-08 Toshiba Corp コンピュータシステムおよびそのパワーセーブ制御方法
JP2002024198A (ja) * 2000-07-06 2002-01-25 Fujitsu Ltd 分散共有メモリ型並列計算機
JP2003067092A (ja) * 2001-07-05 2003-03-07 Lg Electronics Inc 中央処理装置用電源供給器
JP2003316756A (ja) * 2002-04-24 2003-11-07 Nec Computertechno Ltd 分散共有メモリ型マルチプロセッサシステム及びそれに用いるタグ制御方法
JP2004280269A (ja) * 2003-03-13 2004-10-07 Internatl Business Mach Corp <Ibm> 情報処理装置、プログラム、記録媒体、及び制御回路
JP2004326734A (ja) * 2003-04-21 2004-11-18 Hewlett-Packard Development Co Lp メモリバンド幅損失を低減するディレクトリベースのコヒーレンシ方式
JP2006146920A (ja) * 2004-11-17 2006-06-08 Sun Microsyst Inc メモリエラーを分類するための方法および装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012168674A (ja) * 2011-02-14 2012-09-06 Nec Computertechno Ltd ミラーリング復旧装置、および、ミラーリング復旧方法
JP2017515239A (ja) * 2014-05-08 2017-06-08 マイクロン テクノロジー, インク. ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
JP2020021495A (ja) * 2014-05-08 2020-02-06 マイクロン テクノロジー,インク. ハイブリッドメモリキューブシステム相互接続ディレクトリベースキャッシュコヒーレンス方法
US10838865B2 (en) 2014-05-08 2020-11-17 Micron Technology, Inc. Stacked memory device system interconnect directory-based cache coherence methodology
US11741012B2 (en) 2014-05-08 2023-08-29 Micron Technology, Inc. Stacked memory device system interconnect directory-based cache coherence methodology
JP2019053617A (ja) * 2017-09-15 2019-04-04 株式会社東芝 システムlsiおよびシステムlsiの故障検出方法
JP7460743B1 (ja) 2022-12-27 2024-04-02 Necプラットフォームズ株式会社 メモリコントローラ及びメモリコントローラ制御方法

Also Published As

Publication number Publication date
JP4967087B2 (ja) 2012-07-04

Similar Documents

Publication Publication Date Title
US7389388B2 (en) Data processing system and method for efficient communication utilizing an in coherency state
US8140770B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation
JP5105863B2 (ja) 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ
JP4928812B2 (ja) タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
JP5078396B2 (ja) 動作のスヌーピングに応答して無効コヒーレンシー状態を更新するデータ処理システム、キャッシュ・システム、および方法
US7404046B2 (en) Cache memory, processing unit, data processing system and method for filtering snooped operations
US7584329B2 (en) Data processing system and method for efficient communication utilizing an Ig coherency state
US8332588B2 (en) Performing a partial cache line storage-modifying operation based upon a hint
US7484042B2 (en) Data processing system and method for predictively selecting a scope of a prefetch operation
US7237070B2 (en) Cache memory, processing unit, data processing system and method for assuming a selected invalid coherency state based upon a request source
US8117401B2 (en) Interconnect operation indicating acceptability of partial data delivery
US20060179248A1 (en) Data processing system and method for efficient storage of metadata in a system memory
US8024527B2 (en) Partial cache line accesses based on memory access patterns
US7958309B2 (en) Dynamic selection of a memory access size
US20060179245A1 (en) Data processing system and method for efficient communication utilizing an Tn and Ten coherency states
US20060179243A1 (en) Data processing system and method for efficient coherency communication utilizing coherency domains
JP2005234854A (ja) マルチプロセッサシステム
US20060179249A1 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory
JP2007193784A (ja) 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
JP4967087B2 (ja) ノードコントローラ、分散共有メモリ型情報処理装置、キャッシュコヒーレンシ制御方法
US20060179242A1 (en) Data processing system and method for handling castout collisions
US7669013B2 (en) Directory for multi-node coherent bus
US7725660B2 (en) Directory for multi-node coherent bus
US8255635B2 (en) Claiming coherency ownership of a partial cache line of data
KR20090053837A (ko) 자기 조화형 데이터를 이용하여 멀티프로세서 시스템의 캐시 코히어런스 오버헤드를 저감시키는 메카니즘 및 방법

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120120

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: 20120207

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120215

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

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4967087

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350