JP2017134540A - 情報処理装置および制御方法 - Google Patents
情報処理装置および制御方法 Download PDFInfo
- Publication number
- JP2017134540A JP2017134540A JP2016012845A JP2016012845A JP2017134540A JP 2017134540 A JP2017134540 A JP 2017134540A JP 2016012845 A JP2016012845 A JP 2016012845A JP 2016012845 A JP2016012845 A JP 2016012845A JP 2017134540 A JP2017134540 A JP 2017134540A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- data
- arithmetic processing
- request
- processing unit
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
Description
SMPシステムにおいて、データ要求元のCPU、データの実メモリを所有するCPU、およびデータをキャッシュに持ち出しているCPUをそれぞれローカルCPU(L−CPU)、ホームCPU(H−CPU)、およびリモートCPU(R−CPU)と呼ぶ。
L−CPUがH−CPUにデータを要求(EX要求)してH−CPUがR−CPUにIV依頼を送信するまでは正常動作と同じである。尚、EX要求は、キャッシュデータのステータスをExclusiveとして要求データを持ちたいことを示す要求である。また、IV依頼は、キャッシュに要求データをステータスがExclusiveまたはModifiedで格納している場合に要求データをL−CPUに送信し、要求データに対応するキャッシュデータのステータスを無効(Invalid)にすることを依頼するものである。キャッシュデータのステータスについては後述する。ここで、もしR−CPUが故障していたとすると、R−CPUからの応答がないのでH−CPUは指示のタイムアウトを検出する。このときのアクセスがライトバック(WRBK)応答、すなわちR−CPUからのデータ受信を期待するものであれば、H−CPUはディレクトリ(DIR)情報にエラーマーク(DIR=UNK)を書き込む。ここで、H−CPUがR−CPUに依頼を出すのと、L−CPUの要求に応答を返すのを同時に行ったとすると、以下の問題が起きる。
従来、WRBK応答が期待されなければ、H−CPUはDIR情報にDIR=UNKを書き込まない。これにより、以下の問題が起きる。
H−CPUのDIR情報をもとに発行された依頼とR−CPUのキャッシュデータのステータスが一致しないとする。H−CPUはR−CPUにEXデータの返却を求めるが、R−CPUはEXデータを保持していなかった場合、プロトコルエラーとなりR−CPUはFATALすることになる。尚、EXデータは、ステータスがExclusiveまたはModifiedであるデータである。
H−CPUのDIR情報をもとに発行された依頼とR−CPUのキャッシュデータのステータスが一致しないとする。H−CPUのDIR情報をもとに複数のR−CPUにデータ破棄を依頼する。そして、H−CPUはR−CPUからの破棄応答を受け取る。このとき、H−CPUはSHデータを保持しているR−CPUにだけ依頼を出すのではなく、全R−CPUに依頼を出し、DIR情報で管理していたR−CPUのSHデータがすべて破棄されたかをR−CPUの破棄応答とつき合わせて確認している。DIR情報で管理していたSHデータの数(SH数)と破棄されたSHデータの数が合わない場合、H−CPUはFATALする。尚、SHデータは、複数のCPUがキャッシュに持っており、且つ更新されていないデータである。
図1は、実施の形態に係る情報処理システムの構成図である。
情報処理ステム101では、CPU間のキャッシュコヒーレンス制御をディレクトリ方式で実現し、データをメモリ上に持つ後述のホームCPUが該当ディレクトリを管理している。
BB201−iは、CPU401−i−j(j=1,2)、メモリ501−i−j、およびXBチップ601−iを備える。尚、CPU401−i−jおよびメモリ501−i−jの数は一例であり、これに限られるものではない。
キャッシュ421−iは、コア411−iで頻繁に利用されるデータを一時的に格納するキャッシュメモリである。
TAG部433−iおよびDIR部434−iは、MESIプロトコル等の手法を用いて、キャッシュコヒーレンスを保持するための処理を実行する。例えば、TAG部433−iおよびDIR部434−iは、キャッシュされたデータ(キャッシュデータ)のステータスがMESI(Modified/Exclusive/Shared/Invalid)のいずれであるかを判定する。
図3Bは、ローカルCPUの処理を示すフローチャートである。
図4A,4Bにおいて、L−CPU、H−CPU、およびR−CPUは、上述の図3Aの説明と同様の処理を行うとする。
上述のようにH−CPUは、R−CPUにIV依頼を送信するとタイマを起動し、所定時間以内にステータスの変更したことを示す応答を受信するかチェックしている。H−CPUは、R−CPUから所定時間内に応答を受信しない場合、タイムアウトを検出する(ステップS711)。H−CPUは、タイムアウトを検出すると、DIR情報521−iをステータスが不明でありアクセスを禁止することを示すエラーマーク(DIR=UNK)に変更し(ステップS711)、L−CPUにエラー(AER)応答を送信する。情報処理システム101は、エラーマークに対応するアドレス領域に対して、キャッシュコヒーレンシを復旧させるまで使用(アクセス)しないようする。これにより、キャッシュコヒーレンシの異常が波及するのを防ぐことが出来る。情報処理システム101は、DIR情報にエラーマークが設定された場合、CPU401−iーjに含まれるリカバリ部(不図示)により、キャッシュコヒーレンシを復旧させる。
図5Bは、リモートCPUの処理を示すフローチャートである。
図6は、DIR=UNKとなるパターンを示す図である。
図6のL−TAG、R−TAGは、それぞれL−CPU、R−CPUのTAG情報である。
IV要求の場合、R−CPUのTAG情報をEXからSHに変更するようにオーダーを投げ、R−CPUはH−CPUに変更したことを応答で伝えてL−CPUにデータを送り、L−CPUはTAG情報をSHに変更する。また、H−CPUはDIR情報をR−EXからR−SHに変更する。
R−CPUのTAG情報をEXからIVに変更するようにオーダーを投げ、R−CPUはTAG情報をIVに変更したことをH−CPUに応答で伝える。H−CPUはDIR情報をR−EXからR−IVに変更する。
R−CPUのTAG情報をSHからIVに変更するようにオーダーを投げ、R−CPUはTAG情報をIVに変更したことをH−CPUに応答で伝える。H−CPUはDIR情報をR−SHからR−IVに変更する。
R−CPUのTAG情報をEXからIVに変更するようにオーダーを投げ、R−CPUはTAG情報をIVに変更したことをH−CPUに応答で伝える。H−CPUはDIR情報をR−EXからR−IVに変更する。ここで、R−CPUがEXデータを変更している場合でも、H−CPUにデータ送付せず、H−CPUは最新のデータをメモリに反映しない。
図7Bは、リモートCPUの処理を示すフローチャートである。
図7Cは、ホームCPUの処理を示すフローチャートである。
H−CPUが対象アドレスのDIR情報521−iを参照すると、R−CPUがデータをステータス(TAG情報)がSHでキャッシュに所有していると検出され、H−CPUはR−CPUにTAG情報をIVにするようにオーダー(データ回収指示)を送信し、データを回収する。尚、データの回収は、R−CPUに回収データを転送させるのではなく破棄させ、R−CPUのTAG情報がSHからIVになるように依頼する。
すべてのSHのデータを回収できたので、H−CPUは、正常にオーダーを終了する。
SHのデータを1つ回収できていない。どこかのCPUがSHでデータを所有している状態である。
L−CPU以外にもR−CPUからも回収できていないことになる。SHがどこかで消失してしまっているので、DIR情報にDIR=UNKを書き込んでL−CPUにAERを応答し、オーダーを終了する。
この場合、H−CPUは、SHのデータを余計に回収している。H−CPUが把握しているSH数よりも多くのR−CPUがデータをSHで所有していたことになり、これはH−CPUが以前に応答を受け損ねていたことを示す。H−CPUは、DIR情報521−iにDIR=UNKを書き込んでL−CPUにAERを応答し、オーダーを終了する。
ステップS801において、コア411−iは、あるアドレスに格納されたデータを要求し、アクセス制御部431−iは要求を受信する。
ステップS811において、DIR部434−iは、タイムアウトと判定する。
ステップS821において、リクエスト部451−iは、L−CPUから要求を受信する。
ステップS827において、メモリアクセス部441は、データ511−iの更新を行う。
ステップS839において、DIR部434−iは、L−CPUからの要求に基づいて、DIR情報521−iを更新する。
ステップS841において、DIR部434−iは、DIR情報521−iにエラーマーク(DIR=UNK)を書き込む。
ステップS851において、オーダー部461−iは、H−CPUから依頼を受信する。
ステップS860において、TAG部433−iは、キャッシュ421−iにH−CPUからの依頼に対応するデータが格納されたか判定する。キャッシュ421−iにH−CPUからの依頼に対応するデータが格納された場合、制御はステップS861に進み、格納されていない場合、制御はステップS863に進む。
上述の図8〜10の処理を簡略化して示すと図11のようになる。
(付記1)
複数の演算処理装置と、前記複数の演算処理装置のそれぞれが接続する複数のメモリと、を有し、前記複数のメモリの共有領域が前記複数の演算処理装置で共有される情報処理装置において、
前記複数の演算処理装置のうち、第1の演算処理装置は、第2の演算処理装置にデータの要求を送信する第1の制御部を備え、
前記第2の演算処理装置は、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出し、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信する第2の制御部を備え、
前記第3の演算処理装置は、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信する第3の制御部を備え、
前記第2の制御部は、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信し、
前記第1の制御部は、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄することを特徴とする情報処理装置。
(付記2)
前記第2の制御部は、前記第3の演算処理装置に前記データの要求を送信してから前記所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記データのディレクトリ情報を前記データに対するアクセスを禁止するエラーマークにする付記1記載の情報処理装置。
(付記3)
前記第3の制御部は、前記依頼を受信したときに、前記第3の演算処理装置が前記データを保持していない場合、前記第2の演算処理装置にエラー応答を送信することを特徴とする付記1または2記載の情報処理装置。
(付記4)
前記第2の制御部は、前記データのキャッシュからの破棄を含む依頼を前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置に送信し、
前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置それぞれは、前記データを前記キャッシュに保持していた場合に、前記データを破棄し、前記第2の制御部に前記データを破棄したことを示す応答を送信し、
前記第2の制御部は、前記ディレクトリ情報に基づく前記データを破棄したことを示す応答の数の期待値と、受信した前記データを破棄したことを示す応答の数とが一致しない場合に、前記データのディレクトリ情報を前記エラーマークにすることを特徴とする付記1乃至3のいずれか1項に記載の情報処理装置。
(付記5)
複数の演算処理装置と、前記複数の演算処理装置のそれぞれが接続する複数のメモリと、を有し、前記複数のメモリの共有領域が前記複数の演算処理装置で共有される情報処理装置の制御方法において、
前記複数の演算処理装置のうち、第1の演算処理装置が、第2の演算処理装置にデータの要求を送信し、
前記第2の演算処理装置が、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出し、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信し、
前記第3の演算処理装置が、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信し、
前記第2の演算処理装置が、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信し、
前記第1の演算処理装置が、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄する
処理を備える制御方法。
制御方法。
(付記6)
前記第2の演算処理装置が、前記第3の演算処理装置に前記データの要求を送信してから前記所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記データのディレクトリ情報を前記データに対するアクセスを禁止するエラーマークにする付記5記載の制御方法。
(付記7)
前記第3の演算処理装置が、前記依頼を受信したときに、前記第3の演算処理装置が前記データを保持していない場合、前記第2の演算処理装置にエラー応答を送信することを特徴とする付記5または6記載の制御方法。
(付記8)
前記第2の演算処理装置が、前記データのキャッシュからの破棄を含む依頼を前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置に送信し、
前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置それぞれが、前記データを前記キャッシュに保持していた場合に、前記データを破棄し、前記第2の演算処理装置に前記データを破棄したことを示す応答を送信し、
前記第2の演算処理装置が、前記ディレクトリ情報に基づく前記データを破棄したことを示す応答の数の期待値と、受信した前記データを破棄したことを示す応答の数とが一致しない場合に、前記データのディレクトリ情報を前記エラーマークにすることを特徴とする付記5乃至7のいずれか1項に記載の制御方法。
201 ビルディングブロック(BB)
301 クロスバスイッチ(XB)
401 CPU
411 コア
421 キャッシュ
431 アクセス制御部
441 メモリアクセス部
451 リクエスト部
452 タイマ
461 オーダー部
462 タイマ
471 外部インタフェース(IF)
501 メモリ
511 データ
521 ディレクトリ(DIR)情報
601 XBチップ
Claims (5)
- 複数の演算処理装置と、前記複数の演算処理装置のそれぞれが接続する複数のメモリと、を有し、前記複数のメモリの共有領域が前記複数の演算処理装置で共有される情報処理装置において、
前記複数の演算処理装置のうち、第1の演算処理装置は、第2の演算処理装置にデータの要求を送信する第1の制御部を備え、
前記第2の演算処理装置は、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出し、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信する第2の制御部を備え、
前記第3の演算処理装置は、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信する第3の制御部を備え、
前記第2の制御部は、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信し、
前記第1の制御部は、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄することを特徴とする情報処理装置。 - 前記第2の制御部は、前記第3の演算処理装置に前記データの要求を送信してから前記所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記データのディレクトリ情報を前記データに対するアクセスを禁止するエラーマークにする請求項1記載の情報処理装置。
- 前記第3の制御部は、前記依頼を受信したときに、前記第3の演算処理装置が前記データを保持していない場合、前記第2の演算処理装置にエラー応答を送信することを特徴とする請求項1または2記載の情報処理装置。
- 前記第2の制御部は、前記データのキャッシュからの破棄を含む依頼を前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置に送信し、
前記第1の演算処理装置と前記第2の演算処理装置を除く前記複数の演算処理装置それぞれは、前記データを前記キャッシュに保持していた場合に、前記データを破棄し、前記第2の制御部に前記データを破棄したことを示す応答を送信し、
前記第2の制御部は、前記ディレクトリ情報に基づく前記データを破棄したことを示す応答の数の期待値と、受信した前記データを破棄したことを示す応答の数とが一致しない場合に、前記データのディレクトリ情報を前記エラーマークにすることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。 - 複数の演算処理装置と、前記複数の演算処理装置のそれぞれが接続する複数のメモリと、を有し、前記複数のメモリの共有領域が前記複数の演算処理装置で共有される情報処理装置の制御方法において、
前記複数の演算処理装置のうち、第1の演算処理装置が、第2の演算処理装置にデータの要求を送信し、
前記第2の演算処理装置が、前記第1の演算装置から前記要求を受信したとき、前記データを保持する演算処理装置と前記データの状態とを示すディレクトリ情報に基づいて、前記データをキャッシュに保持する第3の演算処理装置を検出し(、前記第1の演算処理装置への前記データの転送と前記データの前記キャッシュからの破棄を含む依頼を前記第3の演算処理装置に送信し、
前記第3の演算処理装置が、前記依頼を受信し、前記第1の演算処理装置へ前記データを送信し、前記データのステータスを変更し、前記ステータスを変更したことを示すステータス変更応答を前記第2の演算処理装置に送信し、
前記第2の演算処理装置が、前記第3の演算処理装置に前記依頼を送信してから所定時間以内に前記第3の演算処理装置から前記ステータス変更応答を受信しない場合に、前記第1の演算処理装置にエラー応答を送信し、
前記第1の演算処理装置が、前記エラー応答を受信した場合、前記第3の演算処理装置から受信した前記データを破棄する
処理を備える制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016012845A JP6520733B2 (ja) | 2016-01-26 | 2016-01-26 | 情報処理装置および制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016012845A JP6520733B2 (ja) | 2016-01-26 | 2016-01-26 | 情報処理装置および制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017134540A true JP2017134540A (ja) | 2017-08-03 |
JP6520733B2 JP6520733B2 (ja) | 2019-05-29 |
Family
ID=59504374
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016012845A Active JP6520733B2 (ja) | 2016-01-26 | 2016-01-26 | 情報処理装置および制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6520733B2 (ja) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199999A (ja) * | 2006-01-26 | 2007-08-09 | Nec Computertechno Ltd | マルチプロセッサシステム及びその動作方法 |
JP2013140445A (ja) * | 2011-12-28 | 2013-07-18 | Fujitsu Ltd | 情報処理装置、制御方法および制御プログラム |
-
2016
- 2016-01-26 JP JP2016012845A patent/JP6520733B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007199999A (ja) * | 2006-01-26 | 2007-08-09 | Nec Computertechno Ltd | マルチプロセッサシステム及びその動作方法 |
JP2013140445A (ja) * | 2011-12-28 | 2013-07-18 | Fujitsu Ltd | 情報処理装置、制御方法および制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6520733B2 (ja) | 2019-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI480883B (zh) | 資訊處理裝置及控制方法 | |
EP0801349B1 (en) | Deterministic distributed multicache coherence protocol | |
JP3661761B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)データ処理システム | |
US7856534B2 (en) | Transaction references for requests in a multi-processor network | |
JP3644587B2 (ja) | 共用介入サポートを有する不均等メモリ・アクセス(numa)・データ処理システム | |
US8812794B2 (en) | Resolving messaging deadlock in a distributed shared memory | |
JP4712974B2 (ja) | コヒーレンシ維持のための柔軟なプローブ/プローブ応答経路制御 | |
US8990513B2 (en) | Accelerated recovery for snooped addresses in a coherent attached processor proxy | |
KR20010101193A (ko) | 판독 요청을 원격 처리 노드에 추론적으로 전송하는비정형 메모리 액세스 데이터 처리 시스템 | |
JP5550089B2 (ja) | マルチプロセッサシステム、ノードコントローラ、障害回復方式 | |
KR101529036B1 (ko) | 데이터 없이 추론적 소유권에 대한 지원 | |
US8938587B2 (en) | Data recovery for coherent attached processor proxy | |
US20140201467A1 (en) | Epoch-based recovery for coherent attached processor proxy | |
CN101004728B (zh) | 直接存储器访问的访问系统和方法 | |
US7159079B2 (en) | Multiprocessor system | |
EP2568379B1 (en) | Method for preventing node controller deadlock and node controller | |
US20200250094A1 (en) | Interconnect and method of operation of such an interconnect | |
JP6520733B2 (ja) | 情報処理装置および制御方法 | |
US10775870B2 (en) | System and method for maintaining cache coherency | |
WO2019149031A1 (zh) | 应用于节点系统的数据处理方法及装置 | |
JP2009037273A (ja) | マルチプロセッサシステム | |
JP2018129041A (ja) | スヌープリクエストに対する応答の転送 | |
JP4644647B2 (ja) | 情報処理装置及び情報処理装置の制御方法 | |
JP6631317B2 (ja) | 演算処理装置、情報処理装置および情報処理装置の制御方法 | |
US9959173B2 (en) | Node, arithmetic processing device, and arithmetic processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180912 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190227 |
|
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: 20190402 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190415 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6520733 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |