JP4644647B2 - 情報処理装置及び情報処理装置の制御方法 - Google Patents
情報処理装置及び情報処理装置の制御方法 Download PDFInfo
- Publication number
- JP4644647B2 JP4644647B2 JP2006276568A JP2006276568A JP4644647B2 JP 4644647 B2 JP4644647 B2 JP 4644647B2 JP 2006276568 A JP2006276568 A JP 2006276568A JP 2006276568 A JP2006276568 A JP 2006276568A JP 4644647 B2 JP4644647 B2 JP 4644647B2
- Authority
- JP
- Japan
- Prior art keywords
- cache
- access
- memory
- command
- data
- 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
Links
- 238000000034 method Methods 0.000 title claims description 39
- 230000010365 information processing Effects 0.000 title claims description 15
- 230000015654 memory Effects 0.000 claims description 503
- 230000004044 response Effects 0.000 claims description 79
- 238000012545 processing Methods 0.000 claims description 61
- 238000003860 storage Methods 0.000 claims description 57
- 238000013500 data storage Methods 0.000 claims 1
- 230000005540 biological transmission Effects 0.000 description 140
- 238000012546 transfer Methods 0.000 description 57
- 238000010926 purge Methods 0.000 description 31
- 238000010586 diagram Methods 0.000 description 25
- 239000000872 buffer Substances 0.000 description 24
- 230000008569 process Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 14
- 230000008901 benefit Effects 0.000 description 12
- 230000000694 effects Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 8
- 230000007704 transition Effects 0.000 description 4
- CNQCVBJFEGMYDW-UHFFFAOYSA-N lawrencium atom Chemical compound [Lr] CNQCVBJFEGMYDW-UHFFFAOYSA-N 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006866 deterioration Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 108010076504 Protein Sorting Signals Proteins 0.000 description 1
- 206010000210 abortion Diseases 0.000 description 1
- 231100000176 abortion Toxicity 0.000 description 1
- 238000001994 activation Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
さらに、各々のプロセッサモジュール101−1〜101−nはいずれも、例えば図21に示すように、少なくとも1つのプロセッサエレメント103をそなえるとともに、メモリモジュール104及びシステムバスインタフェースモジュール105をそなえている。
ここで、プロセッサエレメント103は、プロセッサ103a,キャッシュメモリ103b及びキャッシュ制御モジュール103cをそなえて構成されるようになっている。
また、キャッシュ制御モジュール103cは、プロセッサ103aとキャッシュメモリ103bとの間のデータの読み出し/書き込みをコピーバック方式で制御するものである。
ここで、ディレクトリメモリ104bは、マルチプロセッサ装置100をプロセッサエレメント101−1〜101−nにおける全てのキャッシュメモリ103に対する、主記憶データの登録状況を記憶するものである。
例えば、アクセス制御モジュール104cは、キャッシュメモリ103b上の値と主記憶素子104a上の値とが同じシェア状態の場合にはキャッシュメモリ103b上への登録状況を4つのサブラインで構成されるキャッシュライン単位でディレクトリメモリ104bに記憶する一方、プロセッサ103aによりキャッシュメモリ103b上の値が書き換えられた場合には主記憶素子104a上の値を更新せず、またキャッシュメモリ103b上の値が最新値であり主記憶素子104a上の値が旧値であるダーティ状態の場合にはキャッシュメモリ103bの状態及び最新値の保持先をサブライン単位にディレクトリメモリ104bに記憶するように制御するようになっている。
また、システムバスインタフェースモジュール105は、メモリモジュール104とシステムバス102との間をインタフェースするものである。
このような構成により、上述の図20,図21に示すマルチプロセッサ装置100のメモリモジュール104では、一つの書き込みアクセス又はキャッシュオフアクセスを行なう場合において、当該キャッシュラインがシェア状態にある場合には、以下に示すようにキャッシュ無効化処理(パージ)を行なうようになっている。
ここで、アクセス制御モジュール104cでは、当該キャッシュラインがシェア状態であるならばディレクトリメモリ104bに記憶されているすべての参照先のキャッシュメモリ103bに対して前記アクセスアドレスと共に無効化指令としてのキャッシュ無効化コマンドを発行する。
その後、アクセスモジュール104cでは、キャッシュ無効化が成立し、キャッシュラインを構成するすべてのサブラインにおいてシェア状態が存在しない場合に、ディレクトリメモリ104b上の参照先キャッシュメモリ103bの記憶を削除する。
まず、プロセッサ103aからのリードアクセスがキャッシュミスヒットした場合、キャッシュ制御モジュール103cはキャッシュスヌープバス106を介して、メモリモジュール104に主記憶読み出しアクセスを発行する(ステップA1)。
ここで、キャッシュメモリ103bの状態がダーティであるならば、キャッシュコヒーレンス処理を施した後に(ステップA3,ステップA4)、主記憶素子104aの読み出しを開始すると共にディレクトリメモリ104bの状態を更新し(ステップA5)、キャッシュスヌープバス106上への読み出しデータの転送が開始される(ステップA6)。
ここで、読み出しデータにマルチビットエラーが検出されない場合には、読み出し処理は正常終了するが(ステップA8のNOルートからステップA9)。
さらに、キャッシュ制御モジュール103cでは、キャッシュスヌープバス106上への読み出しデータ転送を中止を受けて、キャッシュメモリ103bへの登録を無効にする一方(ステップA11)、アクセス制御モジュール104cからの障害発生応答を受けて、プロセッサ103aに対してアクセスエラー応答を返送する(ステップA13)。
さらに、プロセッサ103aからメモリモジュール104に対しての主記憶素子104aへのメモリアクセスは、例えば、図25に示すようなコマンドシーケンスにより行なわれる。この図25においては、プロセッサモジュール101−1のプロセッサ103aからプロセッサモジュール101−2の主記憶素子104aに対してメモリアクセスが行なわれた場合について示しているが、他のプロセッサモジュール間又はプロセッサモジュール内においてのメモリアクセスについても同様である。
この場合においては、まず、ローカルPM101−1はホームPM101−2のディレクトリ部104Aに対して非キャッシュメモリストアコマンドM−STを発行するとともに(図25の丸付き数字「1」参照)、タイマ108による経過時間の計時が開始される。
この場合においては、メモリ番地「A」はリモート101−nでキャッシングされているので、ディレクトリ部104のアクセス制御モジュール104cでは、リモートPM101−nのキャッシュ部103Aに対してキャッシュ無効化コマンド(キャッシュパージコマンド)C−PGを発行する(図25の丸付き数字「2」参照)。
PG−CMPコマンドを受信したホームPM101−2は、ローカルPM101−1からのM−STコマンドで指定されたデータを、主記憶素子104aのメモリ番地「A」に書き込む。
ところで、上述のタイマ108における所定のタイムアウト時間Tは、上述のコマンドシーケンスにかかる時間に基づいて設定されるようになっている。
ところで、図26は上述のマルチプロセッサ装置100におけるシステムバス102,キャッシュスヌープバス106又は内部バス107として用いることができるスプリットバスを適用したデータ転送システムを示すブロック図であり、この図26に示すデータ転送システム200においては、送信装置210がスプリットバス201を介して受信装置220に接続されている。
さらに、送信装置210は例えば前述のマルチプロセッサ装置100のプロセッサ103aのごときCPUや入出力装置(I/O装置)により構成され、送信キュー制御部(send queue control)211,バス制御部(bus control-1)212及び出力セレクタ(out selector)214をそなえるとともに、フリップフロップ(FF)やランダムアクセスメモリ(RAM)等により構成される4つの送信コマンド/データ・キュー(squeue1〜squeue4)213−1〜213−4により構成されている。
さらに、バス制御部212は、送信キュー制御部211からのバス使用要求に基づいて、スプリットバス201の使用状態を制御する図示しないバス調停装置に対してバス使用権の獲得要求を出力するようになっている。
出力セレクタ214は、バス制御部212からのセレクト信号に基づいて、4つのコマンド/データ・キュー213−1〜213−4に格納されているコマンド/データパケットのうちのいずれかを所定のアルゴリズムで選択し、選択されたパケットを構成するコマンド及びデータを連続してスプリットバス201に送出するようになっている。
さらに、送信装置アドレスフィールド303は送信装置アドレスを指定するものであり、相手装置アドレスフィールド304は、相手装置アドレスを指定するものであり、サイズフィールド305は、データ転送コマンドの際のデータサイズを指定するものであり、メモリアドレスフィールド306は、メモリアクセスのメモリ番地を指定するものである。
具体的には、コマンドデコーダ221は、自装置宛のコマンドであり、且つ受信キュー222−1〜222−4のいずれかが空いていると判断すると、バス制御部223にその旨を通知する一方、自装置宛でないコマンドに対しては無視し、また、受信キュー222−1〜222−4に空きがない場合は、送信装置210に対してその旨を通知するようになっている。
メモリセレクタ225は、受信キュー制御部224からのセレクト信号を入力されて、受信キュー222−1〜222−4に格納されているメモリアクセスコマンドのうちのいずれかを所定のアルゴリズムで選択してメモリ制御部226に出力するとともに、後続のデータは前述の図21に示す主記憶素子104aのごときメモリに出力されるようになっており、例えばFIFO(First In First Out)メモリ等により構成されるようになっている。
このデータ付きパケットコマンドパケットを送信装置210から送信する際には、転送操作コードと転送データサイズ等を含むバスコマンド情報が定義されたパケットに続き、データパケットを一括して転送する。
空きの送信コマンド/データ・キューにコマンド及びデータが格納されることによりバス使用の準備ができた時点で、送信キュー制御部211はバス制御部212に要求を渡す。バス制御部212では送信コマンド/データ・キュー213−1〜213−4に格納されている4つのバス要求から所定のアルゴリズムで要求を選択し、スプリットバス201の使用権を得るべく図示しないバス調停装置に要求reqを出す(図28における時点u1〜時点u3参照)。
ここで、受信されたコマンドパケットが自装置宛のコマンドであり、且つ受信キュー222−1〜222−4のいずれかが空いているとコマンドデコーダ221において判断すると、バス制御部223にその旨通知し、当該空きの受信キューに受信コマンド及び後続のデータを格納する(図28における時点u4〜時点u11参照)。
バス制御部223ではバス受信動作が完了すると、受信キュー制御部224に対して、受信キュー222−1〜222−4に格納したコマンドのメモリアクセス制御を依頼する。
また、このようなデータ転送システムにおけるデータ転送速度の向上のためにはスプリットバスにおけるバスの使用効率を高めることも必要となるが、このためには、バスコマンドやデータの受信バッファをできるだけ多く具備することが有効である。
キャッシュメモリ103bの無効化指令はメモリシステムを構成する複数のバスを使用することから、バス使用権の獲得及び無効化指令の処理がアクセス毎に必要となるため、処理時間が長くなるという課題がある。
この場合においては、このような主記憶素子104aに対するアクセスのそれぞれに対して上述の図23に示すような処理を行なう必要があり、アクセス発行元のプロセッサに対してエラー応答が返送されるまでの処理サイクルが不必要に長くなるという課題がある。
また、エラー発生後も主記憶素子104a及びキャッシュメモリ103b間でのキャッシュコヒーレンシを保つ必要がある場合、ディレクトリメモリ104bの状態書き込み及びキャッシュメモリ103bへの読み出しデータの登録を、エラー発生時点でキャンセルし初期状態に戻す必要がある。従って、処理が複雑化するとともに、アクセス完了時点まで初期状態を保持するための記憶素子が新たに必要となる課題もある。
即ち、この図29に示すように、ローカルPM101−1がホームPM101−2に対して、メモリ番地「A」への非キャッシュメモリストアコマンドM−STを発行すると(図29における丸付き数字「1」参照)、同時にタイマ108にてアクセスタイマ値(タイムアウト時間)をTとしてタイマ計時を開始する(図30における時点v1参照)。
さらに、ホームPM101−2からのC−PGコマンドを受信すべきリモートPM101−nでは、上述のキャッシュパージコマンドC−PGの送信に先行して、キャッシングされているメモリ番地「A」に対して書き込みアクセスを開始しており、ホームPM101−2のディレクトリメモリ104bを更新状態にすべくアクセス制御モジュール104cに対してキャッシュ更新通知コマンドM−EXを発行している(図29における丸付き数字「2」参照)。
リモートPM101−nでは、上述のM−EXコマンドを送信した後に、ホームPM101−2からのC−PGコマンドを受信するが、既に同一ラインのキャッシュ操作を実行しているため、パージ処理はリモートPM101−n内で保留される(Pending)。
この場合においては、パージ処理はリモートPM101−n内で保留されたままとなり、従って、リモートPM101−2ではM−STコマンドに対する応答も実行できない。
ところで、ホームPM101−2におけるタイマ108において計時される、C−PGコマンドに対する応答待ち時間のアクセスタイマ値T2は、前述の式(1)からT>T2であるため、リモートPM101−nでのM−EXの応答待ちタイマ時間Tより先にタイムアウトする(図30における時点v4参照)。
また、リモートPM101−nにおいては、M−EXコマンドのタイムアウトが検出されると(図30における時点v6参照)、リモートPM101−n内のアクセス元のプロセッサ103aに対してその旨を通知する。
即ち、このC−PGコマンドのタイムアウトは、ホームPM101−2とリモートPM101−nとの間に何ら問題が存在しないにもかかわらず、先のM−EXコマンドに対する応答がないことに起因して発生したものであるが、ホームPM101−2ではこれを原因として特定することができないのである。
しかしながら、このデータ転送システム200においては、受信バッファとしての受信キューの容量をバス使用効率の向上を図るために十分に大きくすることは困難であるため、満足すべき受信バッファ数を用意することができず、スプリットバスの利点を生かしきることができない課題がある。
なお、図1においては、以下に示すプロセッサ群1−1〜1−nの詳細な構成としてプロセッサ群1−1のみに着目して示しており、プロセッサ群1−2〜1−nの詳細な構成についてはプロセッサ群1−1と基本的に同様であり、図示を省略している。
また、主記憶メモリ7は、上記の各プロセッサ群を構成するプロセッサ2−1〜2−mのそれぞれに第2バス11を介して接続されることにより、プロセッサ2−1〜2−m(他のプロセッサ群1−2〜1−nにおけるプロセッサも含む)に共有され、各種データを記憶するものである。
また、キャッシュ制御部4−1〜4−mは、それぞれ、プロセッサ2−1〜2−mとキャッシュメモリ3−1〜3−mとの間のデータの読み出し/書き込みを制御するものである。
また、8はディレクトリメモリであり、このディレクトリメモリ8は、主記憶メモリ7に格納されているデータのキャッシュメモリ3−1〜3−m(他のプロセッサ群1−2〜1−nにおけるキャッシュメモリも含む)毎への登録状態を記憶するものである。
また、ディレクトリ制御部9は、プロセッサ2−1〜2−mによりキャッシュメモリ3−1〜3−m上の値が書き換えられた場合には主記憶メモリ7上の値を更新せず、またキャッシュメモリ3−1〜3−m上の値が最新値であり主記憶メモリ7上の値が旧値であるダーティ状態の場合にはキャッシュメモリ3−1〜3−mの状態及び最新値の保持先をサブライン単位にディレクトリメモリ8に記憶するように制御するものである。
さらに、ディレクトリ制御部9は、格納されているデータが最新値でないキャッシュメモリ8に対して発行される書き込みアクセス、又はあるキャッシュメモリ3−iに対するキャッシュオフアクセスのアクセスアドレスを含むキャッシュラインが、複数のプロセッサにシェア状態で存在する場合において、ディレクトリメモリ8に記憶されたすべての参照先に対して、キャッシュラインの無効化指令を、キャッシュライン単位に発行する無効化指令発行部9aをそなえている。
上述の図1に示すマルチプロセッサ装置12では、キャッシュメモリ3−1〜3−m上の値と主記憶メモリ7上の値とが同じシェア状態の場合には、ディレクトリ制御部9により、キャッシュメモリ3−1〜3−m上への登録状況を複数のサブラインで構成されるキャッシュライン単位でディレクトリメモリ8に記憶する一方、プロセッサ2−1〜2−mによりキャッシュメモリ3−1〜3−m上の値が書き換えられた場合には主記憶メモリ7上の値を更新せず、またキャッシュメモリ3−1〜3−m上の値が最新値であり主記憶メモリ7上の値が旧値であるダーティ状態の場合にはキャッシュメモリ3−1〜3−mの状態及び最新値の保持先をサブライン単位にディレクトリメモリ8に記憶する。
さて、この図2に示すマルチプロセッサ装置12Aは、前述の図1に示すものに比してプロセッサ群1A−1〜1A−nを構成するディレクトリ制御部9Aの機能が異なるが、その他の構成については基本的に同様である。なお、図2中、図1と同一の符号は、同様の部分を示している。
さらに、アクセス禁止部9cは、ディレクトリメモリ8上においてハードエラー発生の識別情報を有するキャッシュラインに対する、キャッシュメモリ3−1〜3−mへのアクセスを禁止するものである。
上述の図2に示すマルチプロセッサ装置12Aでは、主記憶メモリ7からの読み出し処理の際にハードエラーが生じた場合、ディレクトリメモリ8における、当当読み出しアドレスが含まれるキャッシュラインのディレクトリエントリにハードエラー発生の識別情報を保持しておき、当該識別情報を有するキャッシュラインには主記憶アクセスを生じさせないようにする。
さて、この図3に示すマルチプロセッサ装置12Bは、前述の図1に示すものに比してプロセッサ群1B−1〜1B−nを構成するプロセッサ2B−1〜2B−m及びディレクトリ制御部9Bの機能が異なるが、その他の構成については基本的に同様である。なお、図3中、図1と同一の符号は、同様の部分を示している。
また、上述のプロセッサ2B−1,キャッシュメモリ3−1及びキャッシュ制御部4−1により、プロセッサ部5B−1が構成されるようになっており、プロセッサ部5B−2〜5B−mについても同様に、プロセッサ2B−2〜2B−m,キャッシュメモリ3−1〜3−m及びキャッシュ制御部4−1〜4−mにより構成されている。
ところで、プロセッサ2B−1〜2B−mは、経過時間計時部2a及びタイムアウト時間再設定部2bをそなえており、ディレクトリ制御部9Bは、キャッシュアクセス発生情報返信部9cをそなえている。
また、プロセッサ2B−1〜2B−mの経過時間計時部2aは、主記憶メモリ7に対してアクセス信号を送信してから応答信号を受信するまでの経過時間を計時し、計時された経過時間が予め設定された所定のタイムアウト時間を経過しても応答信号を受信しない場合には、タイムアウト信号として出力するものである。
これにより、経過時間計時部2aにおいては、タイムアウト時間再設定部2bにて再設定されたタイムアウト時間に基づいて、経過時間の計時を再計時するようになっている。
一方、プロセッサ2B−1〜2B−mからのアクセスを受けた主記憶メモリ7において、キャッシュメモリ3−1〜3−mへのアクセスが発生した場合においては、キャッシュアクセス発生情報返信部9cにおいてその旨をアクセス元のプロセッサ2B−1〜2B−mに通知する。
ここで、送信側コマンドキュー17−1〜17−nは、送信すべきデータ付きパケットを構成するコマンドを保持するものであり、送信側データキュー18−1〜18−nは、送信側コマンドキュー17−1〜17−nに対応して設けられ、データ付きパケットを構成するデータを保持するものであり、キュー制御部19は、送信側コマンドキュー17−1〜17−n及び送信側データキュー18−1〜18−nに対してコマンド又はデータを格納制御するものである。
また、送信側セレクタ制御部21は、キュー制御部19の制御により送信側コマンドキュー17−1〜17−nにコマンドが格納されるとともに、送信側データキュー18−1〜18−nにコマンドに対応したデータが格納されると、送信側セレクタ20において出力されるコマンドを選択するためのセレクト信号を、送信側セレクタ20に対して出力するものである。
ここで、受信側コマンドキュー22−1〜22−pは、バス15を介して受信されたコマンドを保持するものであり、受信側データキュー23は、バス15を介して受信されたデータを保持するものである。
これにより、送信側セレクタ制御部21は、データ送信要求コマンド送信部28から送信されたコマンドに基づいて、送信側データキュー18−1〜18−nに格納されているデータを選択して受信装置16に送信すべく送信側セレクタ20を制御するようになっている。
また、受信装置16において、データ転送の送信要求コマンドパケットを受信すると、当該処理要求を処理待ちキューとしての受信側コマンドキュー22−1〜22−pに格納し、処理可能な状態になった時点で、送信装置14に対してデータ要求コマンドパケットとしてのデータ送信要求コマンドを送信する。
さらに、第2関連発明によれば、エラー識別情報記憶制御部において、主記憶メモリに格納されたデータについての読み出し処理の際に、主記憶メモリにおいてハードエラーが発生したことを検出すると、ディレクトリメモリ上の対応するキャッシュラインに、当該ハードエラー発生の識別情報を記憶するように制御するとともに、アクセス禁止部において、ハードエラー発生の識別情報を有するキャッシュラインに対するアクセスを禁止することにより、障害を持った主記憶メモリへのアクセスが再度発生しないため、正常な主記憶メモリへのアクセス性能の劣化を抑えることができる利点がある。
また、本発明によれば、キャッシュアクセス発生情報返信部により、アクセスを受けた主記憶メモリにおいて、キャッシュメモリへのアクセスが発生した場合においては、その旨をアクセス元のプロセッサに通知し、アクセス元のプロセッサにおいて、キャッシュメモリへのアクセスが発生した旨の通知を受けると、タイムアウト時間再設定部により、経過時間計時部におけるタイムアウト信号を出力するための経過時間の計時をキャッシュメモリのアクセスに要するに十分な時間の応答待ちタイマ値に変更して、経過時間計時部において再計時を行なうことができるので、障害発生箇所の確実に特定することができ、ディレクトリ方式等を採用した分散共有メモリシステムにおける共有メモリ装置としての主記憶メモリをアクセスした際に発生し得る、種々のリモートキャッシュメモリ内でのアクセス干渉に関わりなく、故障箇所特定精度の高い時間監視が可能となり、ひいては障害発生時においても確実なリカバリを行なうことができる利点がある。
なお、本発明は、以下の実施の形態に限定されるものではない。又、上述の本願発明の目的のほか、他の技術的課題,その技術的課題を解決する手段及び作用効果についても、以下の実施の形態による開示によって明らかとなる。
(A)第1実施形態(本発明に関連する第1関連発明の実施形態)の説明
図5は本発明に関連する第1関連発明の実施形態としての第1実施形態にかかるマルチプロセッサ装置を示すブロック図であり、このマルチプロセッサ装置30−1は、複数のプロセッサ群としてのプロセッサモジュール31−1〜31−n(n;2以上の整数)が第1バスとしてのシステムバス32を介して互いに接続されている。
なお、プロセッサモジュール31−1〜31−nにおけるプロセッサエレメント33の数は、各プロセッサモジュール31−1〜31−nにおいて一つ以上の任意の値を設定することができる。
即ち、メモリモジュール34は各種データを記憶するものであって、プロセッサモジュール31−1〜31−nを構成するプロセッサエレメント33のそれぞれにキャッシュスヌープバス36を介して接続されることにより、プロセッサエレメント33に共有されるようになっている。
ここで、プロセッサエレメント33は、プロセッサ33a,キャッシュメモリ33b及びキャッシュ制御モジュール33cをそなえて構成されるよういなっている。
また、キャッシュ制御モジュール33cは、プロセッサ33aとキャッシュメモリ33bとの間のデータの読み出し/書き込みを例えばコピーバックモードで制御するものであり、キャッシュ制御部としての機能を有している。
ところで、メモリモジュール34は、各プロセッサモジュール31のそれぞれにキャッシュスヌープバス36を介して共有され、各種データを記憶する主記憶メモリとしての主記憶素子34aをそなえるとともに、ディレクトリメモリ34b及びアクセス制御モジュール34cをそなえて構成されている。
具体的には、ディレクトリメモリ34bとしては、キャッシュライン単位に例えば図6に示すようなフォーマットのディレクトリエントリを有して構成されている。
即ち、この図6に示すディレクトリエントリのフォーマットとしては、シェア情報フィールド34b−1,ダーティ情報フィールド34b−2及び障害識別フィールド34b−3により構成されている。
さらに、インバリッド状態とはキャッシュラインがダーティでもシェアでもない状態を示す。なお、ディレクトリメモリ34b上ではダーティ/シェアの双方の状態とも、プロセッサモジュール31−1〜31−nのみを識別し、個々のプロセッサエレメント33までは識別しない。
例えば、アクセス制御モジュール34cは、キャッシュメモリ33b上の値と主記憶素子34a上の値とが同じシェア状態の場合にはキャッシュメモリ33b上への登録状況を4つのサブラインで構成されるキャッシュライン単位でディレクトリメモリ34bに記憶する一方、プロセッサ33aによりキャッシュメモリ33b上の値が書き換えられた場合には主記憶素子34a上の値を更新せず、またキャッシュメモリ33b上の値が最新値であり主記憶素子34a上の値が旧値であるダーティ状態の場合にはキャッシュメモリ33bの状態及び最新値の保持先をサブライン単位にディレクトリメモリ34bに記憶するように制御するようになっている。
換言すれば、無効化指令発行部34c−1は、格納されているデータが最新値でないキャッシュメモリ33bに対してあるプロセッサ33aから発行される書き込みアクセス、又はあるキャッシュメモリ33bに対するキャッシュオフアクセスのアクセスアドレスを含むキャッシュラインが、前記プロセッサ33a以外の複数のプロセッサ33aにシェア状態で存在する場合において、ディレクトリメモリ34bに記憶されたすべての参照先としてのキャッシュ制御モジュール33cに対して、キャッシュラインの無効化指令を、キャッシュライン単位に発行するようになっている。
ところで、無効化指令発行部34c−1から無効化指令が発行される態様としては、詳細には以下に示す2つがある。
ところで、この無効化指令発行部34c−1から発行される無効化指令としては、アクセスコマンドの種類に応じて、上述のキャッシュライン単位に発行することができるほか、前述の図22にて示したようなサブライン単位に発行するもできる。
これにより、この識別情報の付された無効化コマンドを受けたキャッシュ制御モジュール33cにおいては、識別情報に基づいてキャッシュライン単位の無効化か又はサブライン単位の無効化を行なうことができる。
なお、上述のマルチプロセッサ装置30−1においては、システムバス32,キャッシュスヌープバス36及び内部バス37により階層バスが構成され、プロセッサモジュール31−1〜31−nの間をディレクトリ方式、プロセッサモジュール31−1〜31−n内をスヌープ方式を用いることによりキャッシュコヒーレンシを保つシステムが構築されている。また、各バス32,36,37は例えばスプッリットバスにより構成され、分散アービトレーションにより制御されるようになっている。
なお、以下の説明中においては、便宜上、主記憶素子34aへのアクセス元のプロセッサモジュール(Processor Module,PM)31−1をローカルPM、アクセスされる主記憶素子34aの所在するプロセッサモジュール31−2をホームPM、当該主記憶素子34aをキャッシングしているプロセッサモジュール31−nをリモートPMと呼ぶ。
ここで、アクセス制御モジュール34c(無効化指令発行部34c−1)では、参照したディレクトリエントリがシェア状態であれば、システムバスインタフェースモジュール35に対して内部バス37を介して、アクセスアドレスと共にパージコマンド41をキャッシュライン単位で発行する。
また、無効化指令発行部34c−1では、上述のパージコマンド41を発行する際に、ディレクトリメモリ34bの内容に基づいて、アクセスコマンドに対応した無効化方式を示す識別情報を付して発行している(この場合においてはキャッシュライン単位の無効化を行なうための識別情報が付されている)。
システムバスインタフェースモジュール35では、上述のブロードマップに従って、リモートPM31−nに対してへシステムバス32を介してアクセスアドレスと共にパージコマンド(以降リモートパージコマンドと呼ぶ)42をキャッシュライン単位に発行する。
キャッシュ無効化コマンドを受信したプロセッサエレメント33内のキャッシュ制御モジュール33cは、このキャッシュ無効化コマンドに付加されたサブラインアドレスに対応したタグを参照し、参照されたタグがシェア状態ならばそのタグの値を無効化し、一定サイクル毎にキャシュスヌープバス36上へのキャッシュ無効化の成功応答44を返送する一方、タグがダーティ状態である場合は、不成立応答返送部33c−1により、一定サイクル後にキャッシュスヌープバス上にキャッシュ無効化の不成功応答44(ダーティ状態が存在する旨の通知)を返送して、タグの値を保持する(図7の時点w5〜時点w9参照)。
ホームPM31−2のシステムバスインタフェースモジュール35では、システムバス32を介して上述のリモートパージ応答45を受け取り、このリモートパージ応答を取りまとめて、メモリモジュール34に対して内部バス37を介することによりキャッシュラインの無効化の成否応答46として返送する。
(B)第2実施形態(本発明に関連する第2関連発明の実施形態)としての説明
図9は本発明に関連する第2関連発明の実施形態としての第2実施形態にかかるマルチプロセッサ装置を示すブロック図であり、この図9に示すマルチプロセッサ装置30−2は、前述の第1実施形態におけるもの(符号30−1参照)に比して、メモリモジュール34にエラー識別情報記憶制御部34c−2及びアクセス禁止部34c−3をそなえている点が異なる。なお、図9中、図5と同一の符号は、同様の部分を示している。
具体的には、上述のハードエラー発生の識別情報としては、例えば前述の図6に示すディレクトリエントリを構成する障害識別フィールド34b−3に記憶することができるようになっている。
なお、ディレクトリメモリ34bに記憶すべきハードエラー発生の識別情報としては、正常時には発生しえない情報を記憶するように構成することもできる。具体的には、前述の図6におけるシェア状態フィールド34b−1及びダーティ状態フィールド34b−2の双方に、キャッシュラインの状態をダーティ状態でありシェア状態である旨のビット記憶することが考えられる。
エラー識別情報記憶制御部34c−2において、障害発生情報としてこのような状態値をディレクトリメモリ34bに記録することで障害を識別することができるよになり、必要なディレクトリエントリのビット数を専用フィールドを設ける場合よりも削減させることができる。
上述の構成により、本発明に関連する第2関連発明の実施形態としての第2実施形態にかかるマルチプロセッサ装置30−2の動作を、図10に示すフローチャートを用いて以下に説明する。
メモリモジュール34のアクセス制御モジュール34cでは、ディレクトリメモリ34b上の、アクセスアドレスが含まれるキャッシュラインのディレクトリエントリを参照する(ステップB2)。
ここで、メモリモジュール34において、読み出しデータにマルチビットエラーを検出すると、メモリモジュール34ではキャッシュスヌープバス36上への読み出しデータ転送を中止し(ステップB9のYESルートからステップB11)、キャッシュ制御モジュール33cに対して障害発生応答を返送する(ステップB13)。
その後、アクセス制御モジュール34cのエラー識別情報記憶制御部34c−2では、障害の発生したアクセスアドレスに該当するディレクトリエントリの障害識別フィールド34b−3に、障害発生情報をセットする(ステップB15)。
このように、本発明に関連する第2関連発明の実施形態としての第2実施形態にかかるマルチプロセッサ装置30−2によれば、エラー識別情報記憶制御部34c−2において、主記憶素子34aに格納されたデータについての読み出し処理の際に、主記憶素子34aにおいてハードエラーが発生したことを検出すると、ディレクトリメモリ34b上の対応するキャッシュラインに、当該ハードエラー発生の識別情報を記憶するように制御するとともに、アクセス禁止部34c−3において、ハードエラー発生の識別情報を有するキャッシュラインに対するアクセスを禁止することにより、障害を持った主記憶素子34aへのアクセスが再度発生しないため、正常な主記憶素子34aへのアクセス性能の劣化を抑えることができる利点がある。
(C)第3実施形態(本発明の一実施形態)の説明
図11は本発明の一実施形態としての第3実施形態にかかるマルチプロセッサ装置を示すブロック図であり、この図11に示すマルチプロセッサ装置30−3は、前述の第1実施形態におけるもの(符号30−1参照)に比して、メモリモジュール34にキャッシュアクセス発生情報返信部34c−4をそなえるとももに、プロセッサ33aにタイマ回路33a−1をそなえている点が異なる。なお、図11中、図5と同一の符号は、同様の部分を示している。
ここで、デコーダ51は、アクセス先からキャッシュスヌープバス36又はシステムバス32を介して入力されるバスコマンド情報としての応答信号についてデコードするものである。
ここで、カウンタ53は、メモリモジュール34に対してアクセス信号を送信してから応答信号を受信するまでの経過時間(応答待ち時間)を計時するものであり、応答待ち時間がタイマシーケンサ52にて設定制御された所定のタイムアウト時間を経過した場合には、タイムアウト信号(timeout)をタイマシーケンサ51に出力するようになっている。
ところで、上述のカウンタ53にて計時されるタイムアウト値Taとしては、M−STコマンドを発行してからST−CMPを受信するまでに要する最大時間よりも大きくなるように設定され、タイムアウト値Tbは、C−PGコマンドを発行してからPG−CMPコマンドを受信するまでに要する最大時間よりも大きくなり、且つ、Ta<Tbとなるように設定されるようになっている。
これにより、パルス選択回路54からの出力信号(pulse)となるOR回路54dからは、上述の制御信号が“L”レベル信号の場合にはパルス信号“a”が出力され、制御信号が“H”レベル信号の場合にはパルス信号“b”が出力されるようになっている。
上述のタイマシーケンサ52の状態遷移としては、例えば図13に示すようになる。即ち、初期状態においてはタイマ非動作の状態(カウンタ53が動作しない状態)であって、カウンタ53に対してクリア信号をアサートするようになっている(図13のidle状態)。
その後、カウンタ53に対してenable信号をアサートする。この時、タイマシーケンサ52ではパルス選択回路54に対してリモート信号をアサートしており、パルス信号“b”が選択される。これにより、タイムアウト値Tbでカウンタ53による経過時間の計時が再開されるようになっている(図13のremote状態)。
なお、上述のremote状態において、デコーダ52からst-cmp信号がアサートされると、もとのidle状態に遷移するようになっている。
なお、図14,図16は上述のマルチプロセッサ装置30−3におけるコマンドシーケンスを説明するためのブロック図であり、この図14,図16に示すマルチプロセッサ装置30−3のプロセッサモジュール31−1〜31−nは、それぞれ、プロセッサ(CPU)33a,キャッシュ部(CS)33A,ディレクトリ部(DIR)34A,主記憶メモリとしての主記憶素子(MS)34a及びシステムバス制御機構としてのシステムバスインタフェースモジュール35をそなえている(図14,図16に示すものにおいては、複数のプロセッサエレメント33,キャッシュスヌープバス36及び内部バス37の図示を省略している)。
上述の構成により、本発明の一実施形態としての第3実施形態にかかるマルチプロセッサ装置30−3の動作を図14〜図17を用いて以下に説明する。
まず、ホームPM31−2のキャッシュアクセス発生情報返信部34c−4において、キャッシュメモリ33bへのアクセスが発生した旨を通知する際に、専用コマンドtimeを用いる場合には、図14,図15に示すように動作する。
また、上述のコマンド発行と同時に、ホームPM31−2においては、アクセスタイマ値T2(;C−PGコマンドを発行してからPG−CMPコマンドを受信するまでに要する最大時間)でタイマ計時を開始する。このとき、ホームPM31−2のディレクトリメモリ34bはメモリ番地「A」を含むライン単位にビジー状態となっている(図15の時点y3参照)。
ローカルPM31−1において、上述のタイマ値変更コマンドTIMEを受信すると、タイマ回路33a−1におけるM−STコマンドのアクセスタイマ値を、TaからTbに変更し、タイマ計時を再開する(図15の時点y4参照)。
リモートPM31−nでは、上述のM−EXコマンドを送信した後に、ホームPM31−2からのC−PGコマンドを受信するが、既に同一ラインのキャッシュ操作を実行しているため、パージ処理はリモートPM31−n内で保留される(Pending)。
この場合においては、パージ処理はリモートPM31−n内で保留されたままとなり、従って、リモートPM31−2ではM−STコマンドに対する応答も実行できない。また、Ta<T2<Tbの関係が成立するので、リモートPM31−nにおける、M−EXコマンドに対するアクセスタイマが最も先にタイムアウトする(図15の時点y5参照)。
その後、M−STコマンドの発行元であるローカルPM31−1に対して、メモリストア完了応答コマンドST−CMPを発行する(図14の丸付き数字「4」,図15の時点y7参照)。
また、上述と同様の場合に、ホームPM31−2のキャッシュアクセス発生情報返信部34c−4においてキャッシュメモリ33bへのアクセスが発生した旨を通知する際に、このキャッシュアクセスコマンドの専用フィールドを用いる場合には、図16に示すように、当該キャッシュアクセスコマンドとしてのC−PGコマンドにおける専用フィールドにおいてアクセス元のプロセッサ33aを指定する。
なお、上述の図14又は図16のいずれのシーケンスでホームPM31−2のキャッシュアクセス発生情報返信部34c−4においてキャッシュメモリ33bへのアクセスが発生した旨を通知する場合においても、リモートPM101−nにて検出されるM−EXコマンドに対する処理は異常終結するが、この原因としては、リモートPM101−nとホームPM101−2との間の何らかの要因であることを特定することができる。
(D)第4実施形態(本発明に関連する第3関連発明の実施形態)の説明
図18は本発明に関連する第3関連発明の実施形態としての第4実施形態にかかるデータ転送システムを示すブロック図であり、この図18に示すデータ転送システム60は、上述のマルチプロセッサ装置30−1〜30−3におけるスプリットバスとしてのシステムバス32,キャッシュスヌープバス36又は内部バス37に用いることができるものであり、送信装置61,スプリットバス62及び受信装置63をそなえて構成されている。
なお、上述のCPUとしての送信装置61からのコマンド付きデータパケットとしては、前述の図26におけるものと同様に、例えばメインメモリとしての受信装置63に対するメモリ書き込みコマンドを含むデータ転送要求とすることができ、このメモリ書き込みコマンド等のコマンド付きデータパケットを構成するコマンドについても、前述の図27に示すようなフォーマットにより構成されるようになっている。
ここで、送信側コマンドキュー64−1〜64−4は、送信すべきデータ付きパケットを構成するコマンドを保持するものであり、送信側データキュー65−1〜65−4は、送信側コマンドキュー64−1〜64−4に対応して設けられ、データ付きパケットを構成するデータを保持するものであり、例えばフリップフロップ又はランダムアクセスメモリにより構成される。
なお、上述の図示しないバス調停装置によるバス使用権の獲得/放棄の制御を行なう際には、例えばスプリットバス62を介して接続された装置間にバス使用/使用否を通知する専用信号線を設けることができる。
ところで、受信装置63は、詳細には複数(例えば4つ)の受信側コマンドキュー(cqueue1〜cqueue4)70−1〜70−4,コマンドデコーダ(dec)71,バス制御部(bus control-2)72,受信キュー制御部(receive queue control) 73,メモリセレクタ(mem-selector)74,エンコーダ(enc,encoder)75,メモリ制御部(memory control)77,データバッファ(dbuf1,dbuf2) 78−1,78−2,データセレクタ79及びメモリ80をそなえて構成されている。
さらに、デコーダ71は、スプリットバス62を介して受信されたコマンドをチェックするとともに、受信側コマンドキュー70−1〜70−4の状態をチェックするものであり、チェック部としての機能を有している。
さらに、メモリセレクタ74は、受信側コマンドキュー70−1〜70−4からのコマンドのうちのいずれかを選択的にエンコーダ75及びメモリ制御部77対して出力するものであり、受信側セレクタとしての機能を有している。
さらに、エンコーダ75は、メモリセレクタ74からのコマンドに対応したデータの送信を要求するデータ送信要求コマンドをスプリットバス62を介して送信装置61に送信するものであり、データ送信要求コマンド送信部としての機能を有している。
これにより、バス制御部67は、エンコーダ75から送信されたコマンドに基づいて、送信側データキュー65−1〜65−4に格納されているデータを選択して受信装置63に送信すべく出力セレクタ68を制御するようになっている。
さらに、メモリ制御部77は、メモリセレクタ74を介してコマンド情報を入力され、エンコーダ75から送信されるデータ送信要求コマンドに対応するデーのメモリ80への記憶制御を行なうものである。
上述の構成により、本発明に関連する第3関連発明の実施形態としての第4実施形態にかかるデータ転送システム60では、送信装置61において、データ付きパケットの送信要求が生じると、バスコマンド情報が定義されたパケットのみをスプリットバス62を介して受信装置63に転送して、受信装置63においては、送信装置61からのバスコマンド情報が定義されたパケットを受信すると、当該パケットを処理待ちキューとしての受信側コマンドキュー70−1〜70−4に格納し、処理可能な状態になった時点で、送信装置61に対してデータ要求コマンドパケットを送信し、その後、送信装置61においては、受信装置61からのデータ要求コマンドパケットの受信を契機として、一定時間後にバス獲得の動作なしに所望のデータパケットを転送した後に、受信装置63において、バス獲得状態のまま一定時間後に転送される送信装置61からのデータパケットを受信し、データパケットの受信を完了すると、スプリットバス62を解放する。
バス制御部67では、送信側コマンドキュー64−1〜64−4に格納されている4つのバス要求から、適当なアルゴリズムで要求を選択するとともに、図示しないバス調停装置に対してバス使用権獲得要求reqを出力する(図19の時点z1〜時点z3参照)。
ここで、コマンドデコーダ71では、受信されたコマンドパケットの装置アドレスが自身の受信装置63宛のコマンドであり、かつ受信側コマンドキュー70−1〜70−4のいずれかが空いていると判断すると、バス制御部72に対してその旨を通知する。バス制御部72では、当該空きコマンドキュー70−1〜70−4に受信コマンドを格納するように制御する(図19の時点z4〜時点z16)。
また、バス制御部72では、送信装置61からのコマンドパケットの受信動作が終了すると、受信キュー制御部73に対して、受信側コマンドキュー70−1〜70−4に格納したコマンドのメモリアクセス制御を依頼する。
さらに、メモリ制御部77では、選択されたコマンドに対応したメモリアクセスの準備が可能であると判断されると、受信キュー制御部73に対してその旨を通知し、受信キュー制御部73では、メモリセレクタ74に対してセレクト信号を出力することにより、当該コマンド情報をエンコーダ75に出力するように制御する。
受信キュー制御部73では、受信側コマンドキュー70−1〜70−4内に格納されている要求と、空きデータバッファ78−1,78−2とを対応付けて管理される。例えば、受信側コマンドキュー70−1の内容が空きのデータバッファ78−1と組み合わせられたとする。
エンコーダ75では、上述のメモリセレクタ74からの送信元の送信装置61のアドレス,コマンドIDに基づいて、当該バスコマンドに対応するデータの転送を要求する旨のデータ要求コマンドパケットを生成する。このデータ要求コマンドパケットdreqについては、上述のごとく獲得されたバス使用権を用いることにより、スプリットバス62を介して送信装置61に対して転送する(図19の時点z7〜時点z8参照)。
即ち、受信装置63からのデータ要求コマンドを受信した送信装置61では、デコーダ69にて上述のデータ要求コマンドを構成する装置アドレス,コマンドID等をチェックする。
また、受信装置63では、要求したデータの転送が始まると、バス制御部72により現在処理中であるデータバッファ(この場合はデータバッファ78−1)に順次データを格納する(図19における時点z10〜時点z16)。さらに、要求したワード数分のデータを受信し終わると、バス制御部72によりバス使用権を解放する。
この場合においては、先行するメモリアクセスが無ければ、メモリ制御部77を制御することにより、実際のメモリアクセスを開始する一方、先行するメモリアクセスがあれば、そのメモリアクセスが完了してから実際のメモリアクセスを開始する。
2−1〜2−n,2B−1〜2B−n プロセッサ
2a 経過時間計時部
2b タイムアウト時間再設定部
3−1〜3−m キャッシュメモリ
4−1〜4−m キャッシュ制御部
5−1〜5−m,5B−1〜5B−n プロセッサモジュール
6 第1バス
7 主記憶メモリ
8 ディレクトリメモリ
9,9A,9B ディレクトリ制御部
9a 無効化指令発行部
9b エラー識別情報記憶制御部
9c アクセス禁止部
10,10A,10B メモリ部
11 第2バス
12,12A,12B マルチプロセッサ装置
13 データ転送システム
14 送信装置
15 バス
16 受信装置
17−1〜17−n 送信側コマンドキュー
18−1〜18−n 送信側データキュー
19 キュー制御部
20 送信側セレクタ
21 送信側セレクタ制御部
22−1〜22−p 受信側コマンドキュー
23 受信側データキュー
24 チェック部
25 受信制御部
26 受信側セレクタ
27 受信側セレクタ制御部
28 データ送信要求コマンド送信部
30−1〜30−3 マルチプロセッサ装置
31−1〜31−n プロセッサモジュール(プロセッサ群)
32 システムバス(第1バス)
33 プロセッサエレメント
33a プロセッサ
33a−1 タイマ回路
33b キャッシュメモリ
33c キャッシュ制御モジュール(キャッシュ制御部)
33c−1 不成立応答返送部
33A キャッシュ部
34 メモリモジュール
34a 主記憶素子(主記憶メモリ)
34b ディレクトリメモリ
34b−1 シェア情報フィールド
34b−2 ダーティ情報フィールド
34b−3 障害識別フィールド
34c アクセス制御モジュール(ディレクトリ制御部)
34c−1 無効化指令発行部
34c−2 エラー識別情報記憶制御部
34c−3 アクセス禁止部
34c−4 キャッシュアクセス発生情報返信部
34A ディレクトリ部
35 システムインタフェースモジュール
36 キャッシュスヌープバス(第2バス)
37 内部バス
51 デコーダ
52 タイマシーケンサ
53 カウンタ
54 パルス選択回路
54a NOT回路
54b,54c AND回路
54d OR回路
60 データ転送システム
61 送信装置
62 スプリットバス
63 受信装置
64−1〜64−4 送信側コマンドキュー
65−1〜65−4 送信側データキュー
66 送信キュー制御部(キュー制御部)
67 バス制御部(セレクタ制御部)
68 出力セレクタ(送信側セレクタ)
69 デコーダ
70−1〜70−4 受信側コマンドキュー
71 デコーダ(チェック部)
72 バス制御部(受信制御部)
73 受信キュー制御部(受信側セレクタ制御部)
74 メモリセレクタ(受信側セレクタ)
75 エンコーダ(データ送信要求コマンド送信部)
77 メモリ制御部
78−1〜78−2 データバッファ(受信側データキュー)
79 データセレクタ
80 メモリ
100 マルチプロセッサ装置
101−1〜101−n プロセッサモジュール
102 システムバス
103 プロセッサエレメント
103a プロセッサ(CPU)
103b キャッシュメモリ
103c キャッシュ制御モジュール
103A キャッシュ部
104 メモリモジュール
104a 主記憶素子
104b ディレクトリメモリ
104c アクセス制御モジュール
104A ディレクトリ部
105 システムバスインタフェースモジュール
106 キャッシュスヌープバス
107 内部バス
108 タイマ
200 データ転送システム
201 スプリットバス
210 送信装置
211 送信キュー制御部
212 バス制御部
213−1〜213−4 送信コマンド/データ・キュー
214 出力セレクタ
221 デコーダ
222−1〜222−4 受信キュー
223 バス制御部
224 受信キュー制御部
225 メモリセレクタ
226 メモリ制御部
300 メモリ書き込みコマンド
301 コマンドフィールド
302 コマンドIDフィールド
303 送信装置アドレスフィールド
304 相手装置アドレスフィールド
305 サイズフィールド
306 メモリアドレスフィールド
Claims (6)
- 互いに接続された複数の演算処理部を有する処理装置を有する情報処理装置において、
前記処理装置は、
前記複数の演算処理部に接続され、データを記憶する主記憶装置と、
前記複数の演算処理部毎に設けられ、前記主記憶装置が記憶するデータを複数のサブラインを有するキャッシュライン単位でそれぞれ保持する複数のキャッシュメモリと、
前記複数の演算処理部の各々と前記複数の演算処理部毎に設けられたキャッシュメモリとの間のデータの読み書きを制御するキャッシュ制御部と、
前記主記憶装置が記憶するデータの前記複数のキャッシュメモリへの登録状態をキャッシュライン単位で格納するディレクトリメモリと、
前記複数のキャッシュメモリの各々がキャッシュラインに保持するデータと前記キャッシュラインに対応する前記主記憶装置上のデータが同一である場合、前記同一であるデータのキャッシュメモリへの保持状況を、前記ディレクトリメモリにキャッシュライン単位で格納するとともに、前記複数の演算処理部のいずれかに設けられたキャッシュメモリに保持するデータが書き換えられた場合、前記データが書き換えられたキャッシュラインに対応する前記主記憶装置上のデータを更新せず、又前記演算処理部のいずれかに設けられたキャッシュメモリがキャッシュラインに保持するデータが最新かつ前記最新のデータを保持するキャッシュラインに対応する前記主記憶装置上のデータが古い場合、前記キャッシュメモリの状態及び前記最新データの保持先をサブライン単位に前記ディレクトリメモリに記憶するように制御するとともに、前記複数の演算処理部のいずれかにより前記主記憶装置がアクセスされた場合にさらにキャッシュメモリへのアクセスが発生したとき、キャッシュメモリへのアクセスが発生した旨を前記アクセスしたアクセス元の演算処理部に通知するディレクトリ制御部とを有し、
前記アクセス元の演算処理部は、
前記主記憶装置に対してアクセス要求を送信してから前記アクセス要求に対する応答を受信するまでの経過時間を計時するとともに、所定のタイムアウト時間を経過しても前記応答を受信しない場合にはタイムアウトを通知する経過時間計時部と、
前記キャッシュメモリへのアクセスが発生した旨の通知を受けた場合、前記所定のタイムアウト時間を再設定するとともに、前記再設定されたタイムアウト時間に基づいて前記タイムアウトを通知するための経過時間の計時を行なうタイムアウト時間再設定部とを有することを特徴とする情報処理装置。 - 前記情報処理装置において、
前記ディレクトリ制御部は、
前記複数の演算処理部のいずれかにより前記主記憶装置がアクセスされた場合さらにキャッシュメモリへのアクセスが発生したとき、キャッシュメモリへのアクセスが発生した旨のコマンドを前記アクセス元の演算処理部に返信することを特徴とする請求項1記載の情報処理装置。 - 前記情報処理装置において、
前記ディレクトリ制御部は、
前記複数の演算処理部のいずれかにより前記主記憶装置がアクセスされた場合さらにキャッシュメモリへのアクセスが発生したとき、前記キャッシュメモリに対するアクセスコマンドにアクセス元の演算処理部の識別情報を付して前記アクセスコマンドを前記アクセス元の演算処理部に対して送信することを特徴とする請求項1記載の情報処理装置。 - 互いに接続された複数の演算処理部と、前記複数の演算処理部に接続されデータを記憶する主記憶装置と、前記複数の演算処理部毎に設けられ前記主記憶装置が記憶するデータを複数のサブラインを有するキャッシュライン単位でそれぞれ保持する複数のキャッシュメモリと、前記複数の演算処理部の各々と前記複数の演算処理部毎に設けられたキャッシュメモリとの間のデータの読み書きを制御するキャッシュ制御部と、前記主記憶装置が記憶するデータの前記複数のキャッシュメモリへの登録状態をキャッシュライン単位で格納するディレクトリメモリとを有する処理装置を複数有する情報処理装置の制御方法において、
前記処理装置が有するディレクトリ制御部が、前記複数の演算処理部のいずれかにより前記主記憶装置がアクセスされた場合にさらにキャッシュメモリへのアクセスが発生したとき、キャッシュメモリへのアクセスが発生した旨を前記アクセスしたアクセス元の演算処理部に通知するステップと、
前記アクセス元の演算処理部が有する経過時間計時部が、前記主記憶装置に対してアクセス要求を送信してから前記アクセス要求に対する応答を受信するまでの経過時間を計時するとともに、所定のタイムアウト時間を経過しても前記応答を受信しない場合にはタイムアウトを通知するステップと、
前記アクセス元の演算処理部が有するタイムアウト時間再設定部が、前記キャッシュメモリへのアクセスが発生した旨の通知を受けた場合、前記所定のタイムアウト時間を再設定するとともに、前記再設定されたタイムアウト時間に基づいて前記タイムアウトを通知するための経過時間の計時を行なうステップとを有することを特徴とする情報処理装置の制御方法。 - 前記情報処理装置の制御方法において、
前記ディレクトリ制御部は、
前記複数の演算処理部のいずれかにより前記主記憶装置がアクセスされた場合さらにキャッシュメモリへのアクセスが発生したとき、キャッシュメモリへのアクセスが発生した旨のコマンドを前記アクセス元の演算処理部に返信することを特徴とする請求項4記載の情報処理装置の制御方法。 - 前記情報処理装置の制御方法において、
前記ディレクトリ制御部は、
前記複数の演算処理部のいずれかにより前記主記憶装置がアクセスされた場合さらにキャッシュメモリへのアクセスが発生したとき、前記キャッシュメモリに対するアクセスコマンドにアクセス元の演算処理部の識別情報を付して前記アクセスコマンドをアクセス元の演算処理部に対して送信することを特徴とする請求項4記載の情報処理装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006276568A JP4644647B2 (ja) | 2006-10-10 | 2006-10-10 | 情報処理装置及び情報処理装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006276568A JP4644647B2 (ja) | 2006-10-10 | 2006-10-10 | 情報処理装置及び情報処理装置の制御方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21031896A Division JP3875749B2 (ja) | 1996-08-08 | 1996-08-08 | マルチプロセッサ装置及びそのメモリアクセス方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007004834A JP2007004834A (ja) | 2007-01-11 |
JP4644647B2 true JP4644647B2 (ja) | 2011-03-02 |
Family
ID=37690315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006276568A Expired - Fee Related JP4644647B2 (ja) | 2006-10-10 | 2006-10-10 | 情報処理装置及び情報処理装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4644647B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013042240A1 (ja) * | 2011-09-22 | 2013-03-28 | 富士通株式会社 | 情報処理装置及び情報処理装置の制御方法 |
JP5800058B2 (ja) * | 2014-05-26 | 2015-10-28 | 富士通株式会社 | 情報処理装置、制御方法および制御プログラム |
JP6578992B2 (ja) * | 2016-03-02 | 2019-09-25 | 富士通株式会社 | 制御回路、情報処理装置、および情報処理装置の制御方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06504155A (ja) * | 1991-08-16 | 1994-05-12 | マルティチップ テクノロジー インコーポレイテッド | 高性能ダイナミックメモリシステム |
JP4424619B2 (ja) * | 1995-03-20 | 2010-03-03 | 富士通株式会社 | 情報処理装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS584468A (ja) * | 1981-06-30 | 1983-01-11 | Sharp Corp | マイクロプロセツサシステム |
JPS62100855A (ja) * | 1985-10-28 | 1987-05-11 | Omron Tateisi Electronics Co | Dma転送制御装置 |
-
2006
- 2006-10-10 JP JP2006276568A patent/JP4644647B2/ja not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06504155A (ja) * | 1991-08-16 | 1994-05-12 | マルティチップ テクノロジー インコーポレイテッド | 高性能ダイナミックメモリシステム |
JP4424619B2 (ja) * | 1995-03-20 | 2010-03-03 | 富士通株式会社 | 情報処理装置 |
Also Published As
Publication number | Publication date |
---|---|
JP2007004834A (ja) | 2007-01-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3875749B2 (ja) | マルチプロセッサ装置及びそのメモリアクセス方法 | |
US10169080B2 (en) | Method for work scheduling in a multi-chip system | |
US9274856B2 (en) | Improving processor performance for instruction sequences that include barrier instructions | |
JP3210590B2 (ja) | マルチプロセッサシステムおよびキャッシュコヒーレンシ制御方法 | |
US9529532B2 (en) | Method and apparatus for memory allocation in a multi-node system | |
TWI431475B (zh) | 用於在本地代理者之記憶體鏡像及遷移之裝置、系統及方法 | |
CN101604295B (zh) | 优化基于目录的一致性协议中的并发访问 | |
JP3629511B2 (ja) | 不均等メモリ・アクセス・システムにおいてトランザクションのキャンセルによるデータ損失を避けるための方法およびシステム | |
US8423720B2 (en) | Computer system, method, cache controller and computer program for caching I/O requests | |
US9372800B2 (en) | Inter-chip interconnect protocol for a multi-chip system | |
US20150254182A1 (en) | Multi-core network processor interconnect with multi-node connection | |
US10592459B2 (en) | Method and system for ordering I/O access in a multi-node environment | |
US8051325B2 (en) | Multiprocessor system and failure recovering system | |
EP3644190B1 (en) | I/o coherent request node for data processing network with improved handling of write operations | |
KR20140131965A (ko) | 제1 및 제2의 프로토콜 도메인을 갖는 데이터 처리장치와, 그 데이터 처리장치의 방법 | |
JPH08249231A (ja) | マルチプロセッサ・システムにおける古いデータの処理システム及び方法 | |
US7797495B1 (en) | Distributed directory cache | |
JP4644647B2 (ja) | 情報処理装置及び情報処理装置の制御方法 | |
JP4452707B2 (ja) | マルチプロセッサ装置及びそのメモリアクセス方法 | |
JP2007048314A (ja) | データ転送システムにおける送信装置及び受信装置,データ転送システム並びにデータ転送システムのバス制御方法 | |
US10775870B2 (en) | System and method for maintaining cache coherency | |
JP4718012B2 (ja) | メモリキャンセルメッセージを用いたシステムメモリ帯域幅の節約およびキャッシュコヒーレンシ維持 | |
JPH1185615A (ja) | 情報処理システム及び情報処理装置及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A132 Effective date: 20100216 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100419 |
|
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: 20101116 |
|
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: 20101206 |
|
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: 20131210 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |