JP5376681B2 - 情報処理装置及びエラー訂正支援方法 - Google Patents

情報処理装置及びエラー訂正支援方法 Download PDF

Info

Publication number
JP5376681B2
JP5376681B2 JP2011041775A JP2011041775A JP5376681B2 JP 5376681 B2 JP5376681 B2 JP 5376681B2 JP 2011041775 A JP2011041775 A JP 2011041775A JP 2011041775 A JP2011041775 A JP 2011041775A JP 5376681 B2 JP5376681 B2 JP 5376681B2
Authority
JP
Japan
Prior art keywords
reply data
information
error
memory
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.)
Expired - Fee Related
Application number
JP2011041775A
Other languages
English (en)
Other versions
JP2012178121A (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.)
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 JP2011041775A priority Critical patent/JP5376681B2/ja
Publication of JP2012178121A publication Critical patent/JP2012178121A/ja
Application granted granted Critical
Publication of JP5376681B2 publication Critical patent/JP5376681B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、情報処理技術、具体的には、キャッシュメモリを備えるシステムにおいて、メモリリクエストのリプライデータに訂正不能なエラーが生じた場合の対処技術に関する。
キャッシュメモリを備えるシステムにおいて、プロセッサがメモリデータの読出要求(以下「メモリリクエスト」という)を出すと、該キャッシュメモリに当該データがある場合すなわちキャッシュヒットの場合には、該キャッシュメモリからリプライデータがプロセッサに転送される。一方、該キャッシュメモリに当該データが無い場合すなわちキャッシュミスの場合には、該キャッシュメモリより下位レベルのメモリ(メインメモリまたは下位レベルのキャッシュメモリ)からリプライデータがプロセッサに転送され、同時に、キャッシュメモリは、ブロックロードを行う。ブロックロードは、具体的には、キャッシュメモリが、該リプライデータが含まれるブロックを自身の空ブロックや、最も長く使用されていないデータを記憶したブロックに格納する処理である。なお、キャッシュメモリのライン入替えを伴うブロックロードは、リフィル(Refill)とも呼ばれる。
リプライデータに訂正不能なエラーが発生した場合に、通常、該プロセッサは、メモリリクエストを再発行などによってリトライする。リトライが所定回数に達してもリプライデータに訂正不能なエラーがある場合には、該プロセッサが処理を続けることができず、システムの稼働効率が低下してしまうという問題がある。
また、マルチプロセッサシステムでは、1つのプロセッサのメモリリクエストに対するリプライデータに訂正不能なエラーが生じた場合の対処として、該プロセッサを「プロセッサチェック」状態にしてシステムから切り離す手法が知られている。この場合、該プロセッサの処理を引き継いだ別のプロセッサが、処理を続けるためにメモリリクエストを出すが、上記訂正不能なエラーの原因が「プロセッサチェック」状態にされたプロセッサではないときに、リプライデータに訂正不能なエラーが発生する状態が続くため、処理を引き継いだプロセッサもまた「プロセッサチェック」状態にされシステムから切り離される。このようなことが繰り返され、最後には、全てのプロセッサがシステムから切り離され、システムダウンになり、システムの稼働効率が低下してしまう恐れがある。
リプライデータにエラーが生じた場合に関連するキャッシュメモリの制御方法について、種々の視点からの技術が提案されている。ここで例を説明する。なお、以下の説明において、「キャッシュメモリ」と「キャッシュ」を同じ意味で用いる。
特許文献1に開示された技術は、メインメモリからキャッシュメモリに転送されるデータ単位が、キャッシュメモリからプロセッサに転送されるデータ単位より大きいことに着目したものである。この技術は、ブロックロード時にリプライデータがキャッシュメモリに到着するまでの間を利用してキャッシュディレクトリを更新し、リプライデータにエラーが発生し、かつ、該データがプロセッサから要求されているものではない場合に、該エラーをキャッシュメモリに記憶しておき、該エラーの記憶中にメモリリクエストが発生すると、メインメモリから直接に読み出す。そして、プロセッサにおけるソフトウェア命令の処理が終了すると、キャッシュメモリは、記憶したエラーをプロセッサに報告し、プロセッサは、該報告を受信すると、キャッシュメモリにおける上記エラーの記憶を解除する。
特許文献1には、この技術によれば、リプライデータに誤りがあると、プロセッサが、ソフトウェア命令の処理終了までキャッシュメモリをバイパスするため、ブロックロードが終了すると直ぐにプロセッサのメモリリクエストの受付が可能になり、リプライデータにエラーが発生する確率が低ければメモリリクエストの間隔を短縮できると記載されている。
また、特許文献2に開示された技術は、2次キャッシュ(L2キャッシュ)に、該2次キャッシュに存在するダーティデータをバックアップするバッファを設ける。該文献には、こうすることにより、リプライデータとなるダーティデータが訂正不能であった2ビットエラーである場合であっても、システムダウンせずに2ビットエラーを訂正して処理を継続できると記載されている。
特開昭60−144847号公報 特開2003−203010号公報
しかしながら、特許文献1の手法は、エラーが生じたリプライデータがプロセッサにより使用されないものである場合に限定されており、エラーが生じたリプライデータがプロセッサにより使用されるものである場合に対処できない。
また、特許文献2の手法は、2次キャッシュに存在するダーティデータをバックアップするバッファを設ける必要があり、回路規模が大きくなってしまうという問題がある。
本発明は、上記事情を鑑みてなされたものであり、リプライデータに訂正不能なエラーが生じたことに起因するシステムの稼働率の低下問題を改善すると共に、回路規模の膨大化を回避する技術を提供する。
本発明の1つの態様は、プロセッサと、メインメモリと、キャッシュメモリとを有する情報処理装置におけるエラー訂正支援方法である。
このエラー訂正支援方法は、キャッシュミスのときにおいて、プロセッサからのメモリリクエストに応じてメインメモリからリプライデータを出力する際に、該リプライデータに訂正不能なエラーがあるか否かを検出すると共に、該検出の結果を示すエラー情報と、該検出が行われた場所であるメインメモリを示す場所情報とを前記リプライデータに付加する。
また、キャッシュミスのときにおいて、キャッシュメモリがプロセッサに出力されたリプライデータでブロックロードをする際に、該リプライデータに付加された各情報を記憶しておく。
キャッシュヒットのときにおいて、プロセッサからのメモリリクエストに応じてキャッシュメモリからリプライデータを出力する際に、ブロックロード時に記憶しておいた、該リプライデータに対応する情報がエラーがあることを示す場合に、ブロックロード時に記憶しておいた、該リプライデータに対応する各情報をリプライデータに付加する一方、ブロックロード時に記憶しておいた、該リプライデータに対応する情報がエラーが無いことを示す場合に、該リプライデータに訂正不能なエラーがあるか否かを検出すると共に、該検出の結果を示すエラー情報と、該検出が行われた場所であるキャッシュメモリを示す場所情報とをリプライデータに付加する。
なお、上記態様のエラー訂正支援方法を実施する情報処理装置や、該情報処理装置を含むシステムや、該方法をコンピュータに実行せしめるプログラム、該プログラムを記録した記録媒体なども、本発明の態様としては有効である。
本発明にかかる技術によれば、キャッシュメモリを備えるシステムにおいて、プロセッサからのメモリリクエストに応じて出力されたリプライデータに訂正不能なエラーが生じたことに起因するシステムの稼働率の低下問題を改善すると共に、回路規模の膨大化を回避することができる。
本発明の原理を説明するために用いる情報処理装置を示す図である。 図1に示す情報処理装置におけるプロセッサによるメモリリードを示すフローチャートである。 図1に示す情報処理装置におけるメインメモリユニットがメモリリクエストを受信した際の処理を示すフローチャートの例である。 図1に示す情報処理装置におけるキャッシュメモリユニットがメモリリクエストを受信した際の処理を示すフローチャートの例である。 図4におけるステップS180のブロックロード処理の例を示すフローチャートである。 図1に示す情報処理装置におけるメインメモリから出力されたリプライデータに付加されている情報の例を示す図である。 図1に示す情報処理装置におけるキャッシュメモリから出力されたリプライデータに付加されている情報の例を示す図である。 図1に示す情報処理装置におけるメインメモリから出力されたリプライデータに付加されている情報の別の例を示す図である。 図1に示す情報処理装置におけるキャッシュメモリから出力されたリプライデータに付加されている情報の別の例を示す図である。 図2におけるステップS110の「リプライデータ受信後処理」の例を示すフローチャートである。 キャッシュメモリのデータ更新方式がライトバックである場合における、メインメモリから出力されたリプライデータに付加されている情報の例を示す図である。 キャッシュメモリのデータ更新方式がライトバックである場合における、キャッシュメモリから出力されたリプライデータに付加されている情報の例を示す図である。 キャッシュメモリのデータ更新方式がライトバックである場合における、メインメモリから出力されたリプライデータに付加されている情報の別の例を示す図である。 キャッシュメモリのデータ更新方式がライトバックである場合における、キャッシュメモリから出力されたリプライデータに付加されている情報の別の例を示す図である。 キャッシュメモリのデータ更新方式がライトバックである場合における、図2におけるステップS110の「リプライデータ受信後処理」の例を示すフローチャートである。 本発明の原理を説明するために用いる他の情報処理装置を示す図である。 図16に示す情報処理装置におけるリプライデータに含まれる付加情報の例を示す図である。 図16に示す情報処理装置におけるプロセッサがリプライデータを受信した後の処理の例を示すフローチャートである。 本発明の実施の形態にかかるマルチプロセッサシステムを示す図である。 図19に示すマルチプロセッサシステムにおける各機能ブロック間のデータの受渡しを詳細に示す図である。 図19に示すマルチプロセッサシステムにおけるプロセッサによるメモリリード処理を示すフローチャートである。 図19に示すマルチプロセッサシステムにおけるリプライデータに含まれる付加情報の例を示す図である。 図21におけるステップS310の「リプライデータ受信後処理」の例を示すフローチャートである。
以下、図面を参照して、本発明の実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
本発明の具体的な実施の形態を説明する前に、まず、本発明にかかる技術の原理を説明する。なお、以下の説明において、特別な説明が無い限り、「エラー」は、「訂正不能なエラー」を意味する。
図1は、本発明にかかる技術の原理を説明するための情報処理装置100を示す。該情報処理装置100は、プロセッサ110と、キャッシュメモリユニット130と、メインメモリユニット160を有し、プロセッサ110は、第1のバス120を介してキャッシュメモリユニット130と接続されており、第2のバス150を介してメインメモリユニット160と接続されている。また、キャッシュメモリユニット130とメインメモリユニット160は、第2のバス150を介して接続されている。
プロセッサ110は、ソフトウェア命令(以下SW命令という)を実行するSW命令実行部112と、回復処理部114と、メモリリクエスト制御部116を備える。
キャッシュメモリユニット130は、キャッシュコントローラとして機能し、プロセッサ110からのメモリリクエスト(以下RSTという)を受け付けるRST受付部132と、キャッシュメモリ134と、付加情報記憶部136と、第2の情報付加部138と、RD出力部140を備える。なお、この例の情報処理装置100において、キャッシュメモリがキャッシュメモリ134のみであるため、キャッシュメモリ134は、1次キャッシュメモリ(L1キャッシュメモリ)となる。
メインメモリユニット160は、プロセッサ110からのメモリリクエストを受け付けるRST受付部162と、メインメモリ164と、第1の情報付加部166と、RD出力部168を備える。
図2は、プロセッサ110がメモリリードに際しての動作の流れを示すフローチャートである。プロセッサ110において、SW命令実行部112は、SW命令を実行している中で、メモリデータをリードする必要があるときに、メモリリクエスト制御部116にリクエスト要求RSTRを出力する。これに伴って、SW命令実行部112は、SW命令の実行を一時中断する。メモリリクエスト制御部116は、SW命令実行部112からのリクエスト要求RSTRに応じて、キャッシュメモリ134へ発行するメモリリクエストRSTを第1のバス120に出力する(S100)。キャッシュヒットした場合(S102:Yes)、メモリリクエストRSTに応じてキャッシュメモリユニット130からリプライデータRD3が第1のバス120を介してプロセッサ110に転送され、プロセッサ110は、リプライデータ受信後の処理を行う(S110)。
一方、ステップS102において、キャッシュミスした場合(S102:No)、メモリリクエスト制御部116は、メインメモリ164へ発行するメモリリクエストRSTを第2のバス150に出力する(S104)。このメモリリクエストRSTに応じてメインメモリユニット160からリプライデータRD1が第2のバス150を介してプロセッサ110に転送され、プロセッサ110は、リプライデータ受信後の処理を行う(S110)。
なお、この場合、メインメモリユニット160からプロセッサ110へ転送されるリプライデータRD1は、キャッシュメモリユニット130にも転送され、キャッシュメモリユニット130は、このリプライデータRD1でブロックロードを行う。
プロセッサ110によるステップS110の「リプライデータ受信後処理」の詳細、及びキャッシュメモリユニット130によるブロックロードの詳細は、後述する。
図3は、キャッシュミスの場合(図2のステップS102:No)に、メインメモリユニット160がプロセッサ110からメモリリクエストRSTを受信した際の動作の流れを示すフローチャートである。
キャッシュミス時に、メインメモリユニット160のRST受付部162は、第2のバス150を介して、プロセッサ110のメモリリクエスト制御部116からのメモリリクエストRSTを受け付ける(S150)。
RST受付部162は、このメモリリクエストRSTに含まれるリクエストアドレスADRをメインメモリ164とRD出力部168に出力し、メインメモリ164は、リクエストアドレスADRに該当するデータをリプライデータRD0としてRD出力部168と第1の情報付加部166に出力する。
第1の情報付加部166は、リプライデータRD0に対して訂正不能なエラーの有無の検出を行うと共に、該検出の結果を示すエラー情報と、該検出が行われた場所(ここではメインメモリユニット160)を示す場所情報とを付加情報ADI0としてRD出力部168に出力する(S154)。
RD出力部168は、RST受付部162からのリクエストアドレスADRと、メインメモリ164からのリプライデータRD0と、第1の情報付加部166からの付加情報ADI0とをリプライデータRD1として第2のバス150に出力する(S156)。
すなわち、キャッシュミス時にメインメモリユニット160から出力されるリプライデータRD1には、メインメモリ164からの、リプライデータの本体となるリプライデータRD0と、第1の情報付加部166からの付加情報ADI0とが含まれている。
前述したように、このリプライデータRD1は、第2のバス150を介してプロセッサ110とキャッシュメモリユニット130に転送される。
図4は、キャッシュメモリユニット130がプロセッサ110からメモリリクエストRSTを受信した際の動作の流れを示すフローチャートである。
キャッシュメモリユニット130のRST受付部132は、第1のバス120を介してプロセッサ110のメモリリクエスト制御部116からのメモリリクエストRSTを受け付ける(S160)と、該メモリリクエストRSTに含まれるリクエストアドレスADRをキャッシュメモリ134とRD出力部140に出力する。
キャッシュメモリ134は、リクエストアドレスADRに該当するデータが無い場合すなわちキャッシュミスの場合(S162:No)、リプライデータの出力をせずに、後にメインメモリユニット160から出力されるリプライデータRD1でブロックロードを行う(S180)。図5を参照して、ステップS180におけるブロックロード処理(リフィルを含む)を説明する。
図5に示すように、キャッシュメモリ134のキャッシュミス時に、キャッシュメモリ134の代わりにメインメモリユニット160から第2のバス150にリプライデータRD1が出力されると、キャッシュメモリユニット130におけるキャッシュメモリ134は、該リプライデータRD1の本体(リプライデータRD0)を該当するブロックに格納し(S182)、付加情報記憶部136は、リプライデータRD1に含まれる付加情報(付加情報ADI0)を、リプライデータRD0が格納されたブロックとを対応付けて格納する(S184)。
すなわち、キャッシュメモリ134のキャッシュミス時に行われるブロックロードによりキャッシュメモリ134に格納されたデータについて、該データに対応する付加情報ADI0が付加情報記憶部136に記憶される。
なお、プロセッサ110によりキャッシュメモリ134のデータ更新(Purging)が行われた際に、データ更新がなされるブロックに対応する付加情報ADI0が格納されている場合に、付加情報記憶部136は、該付加情報ADI0をクリアする。
図4に戻ってキャッシュヒットの場合について説明する。
ステップS162において、キャッシュヒットした場合に(S162:Yes)、キャッシュメモリ134は、RST受付部132からのリクエストアドレスADRに該当するデータをリプライデータRD2としてRD出力部140と第2の情報付加部138に出力する。
第2の情報付加部138は、キャッシュメモリ134が出力したリプライデータRD2に対して付加する情報(付加情報ADI1)をRD出力部140に供する。具体的には、第2の情報付加部138は、まず、キャッシュメモリ134が出力したリプライデータRD2について、付加情報記憶部136に付加情報ADI0が記憶されているか否かを確認する(S164)。リプライデータRD2に対応する付加情報ADI0が付加情報記憶部136に記憶されていれば(S164:Yes)、第2の情報付加部138は、さらに、該付加情報ADI0に含まれるエラー情報が「エラーがある」と「エラーが無い」のいずれを示しているかを確認する(S166)。確認の結果、付加情報ADI0に含まれるエラー情報が「エラーがある」を示す場合に、第2の情報付加部138は、付加情報ADI0をそのまま付加情報ADI1としてRD出力部140に出力する(S166:Yes)。
一方、リプライデータRD2に対応する付加情報ADI0が付加情報記憶部136に無い場合(S164:No)と、リプライデータRD2に対応する付加情報ADI0に含まれるエラー情報が「エラーが無い」を示す場合(S166:No)において、第2の情報付加部138は、リプライデータRD2に対して訂正不能なエラーの有無の検出を行うと共に、該検出の結果を示すエラー情報と、該検出が行われた場所(ここではキャッシュメモリユニット130)を示す場所情報とを付加情報ADI1としてRD出力部140に出力する(S170、S172)。
RD出力部140は、RST受付部132からのリクエストアドレスADRと、キャッシュメモリ134からのリプライデータRD2と、第2の情報付加部138からの付加情報ADI1とをリプライデータRD3として第1のバス120に出力する(S178)。
すなわち、キャッシュヒット時にキャッシュメモリユニット130から出力されるリプライデータRD3には、キャッシュメモリ134からの、リプライデータの本体となるリプライデータRD2と、第2の情報付加部138からの付加情報ADI1が含まれている。この付加情報ADI1は、付加情報ADI0と同一である場合がある。
ここで、付加情報ADI0と付加情報ADI1のフォーマットを説明する。
図6と図7は、上位の1ビットがエラー情報を示し、下位の1ビットで場所情報を示す2ビットで構成される付加情報ADI0と付加情報ADI1の例を夫々示す。
図6に示すように、付加情報ADI0は、上位のエラー情報ビットと下位の場所情報ビットを有し、下位ビットがメインメモリ164を示す「0」である。上位ビットが「1」であり、すなわち付加情報ADI0が「10」であることは、「メインメモリ164においてエラーが検出された」を示し、上位ビットが「0」であり、すなわち付加情報ADI0が「00」であることは、「メインメモリ164においてエラーが検出されていない」を示す。
また、図7に示すように、付加情報ADI1も、2ビットで構成され、「00」、「10」、「01」、「11」は、夫々、「メインメモリ164においてエラーが検出されていない」、「メインメモリ164においてエラーが検出された」、「キャッシュメモリ134においてエラーが検出されていない」、「キャッシュメモリ134においてエラーが検出された」を示す。
なお、プロセッサ110にとって、エラーがある場合の回復処理のために、エラーがある場合にどこでエラーが検出されたかがの情報が必要である一方、エラーが無い場合には、エラー検出がどこで行われたことを知る必要が無い。そのため、例えば、図8と図9のようなフォーマットの付加情報ADI0と付加情報ADI1を用いてもよい。
図8と図9に示す例では、上位ビットによりエラーの有無を示し、下位ビットは、エラーがある場合すなわち上位ビットが「1」である場合においてのみ有効である。
例えば、図8に示すように、「00」である付加情報ADI0は、エラーが無いことを示し、「10」である付加情報ADI0は、「メインメモリ164においてエラーが検出された」を示す。
同様に、図9に示すように、「00」である付加情報ADI1は、エラーが無いことを示し、「10」である付加情報ADI1は、「メインメモリ164においてエラーが検出された」を示し、「11」である付加情報ADI1は、「キャッシュメモリ134においてエラーが検出された」を示す。
勿論、エラーがある場合における該エラーの検出場所が分かれば、付加情報ADI0とADI1のフォーマットは、上述した例に限ることがない。
以上の説明から分かるように、キャッシュミスのときに、メインメモリユニット160からリプライデータRD1がプロセッサ110に転送され、キャッシュヒットのときに、キャッシュメモリユニット130からリプライデータRD3がプロセッサ110に転送される。
リプライデータRD1には、該リプライデータRD1に含まれるリプライデータRD0がメインメモリユニット160においてエラーが検出された否かを示す付加情報ADI0が付加されている。リプライデータRD3には、該リプライデータRD3に含まれるリプライデータRD0におけるエラーの有無、及び、エラーがある場合には、該エラーがメインメモリユニット160とキャッシュメモリユニット130のいずれにおいて検出されたかを示す付加情報ADI1が付加されている。
従って、プロセッサ110は、リプライデータRD1またはリプライデータRD3を受信した際に、該データに含まれる付加情報から、該データに含まれるデータ本体にエラーの有無を知ることができると共に、上記エラーがある場合には該エラーがどこで生じたかを知ることができるため、エラーが生じた場所に応じた回復処理を行うことができる。
図10は、図2におけるステップS110の処理、つまり、プロセッサ110がリプライデータ(RD1またはRD3)を受信した際の処理の例を示すフローチャートである。
リプライデータ(キャッシュミス時におけるメインメモリユニット160からのリプライデータRD1、またはキャッシュヒット時におけるキャッシュメモリユニット130からのリプライデータRD3)を受信すると、メモリリクエスト制御部116は、該リプライデータを回復処理部114に出力する。分かりやすいように、メモリリクエスト制御部116から回復処理部114に出力されるリプライデータを「RD4」で表記する。該リプライデータRD4は、リプライデータRD1とリプライデータRD3のいずれか一方である。
回復処理部114は、メモリリクエスト制御部116からのリプライデータRD4に含まれる付加情報(付加情報ADI0または付加情報ADI1)を参照し、エラーの有無を確認する(S112)。
リプライデータRD4に含まれる付加情報が、エラーが検出されていないことを示す場合に(S112:No)、回復処理部114は、メモリリクエスト制御部116にリプライデータRD4をそのまま返送する(S114)。
メモリリクエスト制御部116は、回復処理部114から返送されたリプライデータRD4をSW命令実行部112に出力し、SW命令実行部112は、メモリリクエストRSTを出した際に中断していたSW命令処理を再開し、リプライデータRD4に含まれるデータ本体(リプライデータRD0またはリプライデータRD2)を用いた処理を実行する(S116)。
なお、この場合、メモリリクエスト制御部116は、回復処理部114から返送されたリプライデータRD4から付加情報を取り除き、リプライデータRD4に含まれるリクエストアドレスADRと、データ本体(リプライデータRD0またはリプライデータRD2)とをSW命令実行部112に出力するようにしてもよい。
一方、ステップS112において、リプライデータRD4に含まれる付加情報が、メインメモリユニット160とキャッシュメモリユニット130のいずれかにおいて訂正不能なエラーが検出されたことを示す場合に(S112:Yes)、回復処理部114は、SW命令実行部112に割込要求IRを出力し、中断していたSW命令処理に、ステップS122からの回復処理を割り込ませる(S120、S122〜)。なお、SW命令実行部112は、回復処理部114からの命令を実行することにより回復処理を実現するが、説明が冗長にならないように、以下の説明において、SW命令実行部112が回復処理を行うように説明を進める。
SW命令実行部112は、回復処理をするのに当たって、まず、リプライデータRD4に含まれる付加情報が、キャッシュメモリユニット130から出力される際にエラーが検出されたことを示すか否かを確認する(S122)。
リプライデータRD4が、キャッシュヒット時にキャッシュメモリユニット130から出力されるリプライデータRD3であり、かつ、該リプライデータRD3に含まれるデータ本体(リプライデータRD2)がキャッシュメモリ134から出力される際に訂正不能なエラーが検出された場合においてのみ、ステップS122の確認結果が「Yes」となる。この場合、SW命令実行部112は、キャッシュメモリ134においてリプライデータRD2に対応するブロックを無効化する(S124)と共に、中断していたSW命令処理を再開する(S116)。
この場合、キャッシュメモリ134の当該ブロックが無効にされたため、SW命令実行部112によりSW命令処理を再開すると、キャッシュミスとなり、プロセッサ110のメモリリクエスト制御部116からメインメモリ164に対してメモリリクエストRSTが発行される。そのため、キャッシュメモリ134に格納された、エラーのあるリプライデータRD2が使用されず、メインメモリ164から正しいデータを取り出すことが可能となる。
一方、リプライデータRD4がキャッシュミス時にメインメモリユニット160から出力されるリプライデータRD1であり、かつ、該リプライデータRD1がメインメモリ164から出力される際にエラーが検出された場合、または、リプライデータRD4がキャッシュヒット時にキャッシュメモリ134から出力されるリプライデータRD2であり、かつ、該リプライデータRD2のブロックロード時にメインメモリユニット160においてエラーが検出された場合、ステップS122の確認結果が「No」となる。この場合、中断していたSW命令処理を再開してメインメモリ164にメモリリクエストRSTを出しても正しいデータを取り出すことができず、回復できない可能性が高い。
そのため、この場合(S122:No)において、SW命令実行部112は、OS(Operating System)に障害通知を行い、OSに回復処理を委ねる(S126)。こうすることにより、OSは、例えば、メインメモリ164の当該ページを無効化するなどにより、回復できる可能性がある。
このように、本発明にかかる技術によれば、メモリリクエストRSTに応じてプロセッサに返送されたリプライデータには、エラーの有無を示すエラー情報と、エラーがある場合には該エラーがメインメモリとキャッシュメモリのいずれで検出されたかを示す場所情報が付加されているので、プロセッサは、エラーがある場合に場所情報に基づいて、エラーが生じた場所に応じた回復処理を行うことができる。その結果、システムの効率を図ることができる。
また、付加情報のデータ量は、例えば図6〜図9に示すように2ビットしかなく、キャッシュメモリにおいて付加情報を格納する記憶部の必要容量も小さいため、回路規模の膨大化を防ぐことができる。
本願発明者は、さらに、鋭意研究模索し、キャッシュメモリのデータ更新方式がライトバックである場合に、キャッシュメモリにおいてエラーが検出された場合にリプライデータに付加する情報の中に、ブロックのステータス情報を含める技術を想到した。
これに関連して、まず、キャッシュメモリのデータ更新(Purging)の方式を説明する。
キャッシュメモリのデータ更新について、ライトスルー方式とライトバック方式が知られている。
ライトスルー方式のキャッシュメモリの場合、プロセッサが該キャッシュメモリに書き込みをしたデータが、該キャッシュメモリにストアされると共に、下位レベルのメモリ(メインメモリまたは下位レベルのキャッシュメモリ)にも書き戻される。
ライトバック方式のキャッシュメモリの場合、プロセッサが該キャッシュメモリに書き込みをしたデータが、該キャッシュメモリにストアされるものの、条件が整わない限り、下位レベルのメモリに書き戻されない。なお、下位レベルへの書き戻しの条件は、システムによって種々ある。
キャッシュメモリに格納されているデータが、下位レベルのメモリに書き戻されている場合、該データを格納するブロックのステータスは「クリーン」と呼ばれる。一方、キャッシュメモリに格納されているデータが、下位レベルのメモリに書き戻されていない場合、該データを格納するブロックのステータスは「ダーティ」と呼ばれる。
図1に示す情報処理装置100におけるキャッシュメモリ134がライトスルー方式のキャッシュメモリである場合について、図10のフローチャートが示す処理を考える。
この場合、キャッシュメモリ134に対してプロセッサ110が書き込みを行うと、書き込まれたデータがメインメモリ164にも書き戻される。そのため、キャッシュヒットした場合にキャッシュメモリ134から出力されたリプライデータRD2にエラーがあれば、メインメモリ164における、リプライデータRD2に対応するデータもエラーとなっているはずである。
ところで、リプライデータRD2におけるエラーがキャッシュメモリ134の当該ブロックの物理的障害などによるものである場合には、キャッシュメモリ134におけるリプライデータRD2に訂正不能なエラーが検出されたとしても、メインメモリ164における、リプライデータRD2に対応するデータが正しい可能性もある。
従って、リプライデータRD2がブロックロードによりキャッシュメモリ134に格納された後にプロセッサ110によりデータ更新(Purging)がなされたものである場合においても、ステップS122の確認結果が「Yes」になった際に、当該ブロックを無効にすることにより、メインメモリ164から正しいデータを取り出せる可能性がある。
キャッシュメモリ134がライトバック方式のものである場合には、キャッシュメモリ134に対してプロセッサ110が書き込みを行うと、書き込まれたデータが必ずしもメインメモリ164にも書き戻されるとは限らないが、ステータスが「ダーティ」であるブロックからのリプライデータRD2にエラーが検出された場合(図10におけるステップS120:Yes)、SW命令実行部112が当該ブロックを無効にするために例えばインバリッド指示をすると、該ブロックのデータは下位レベルのメモリ(ここではキャッシュメモリ134)に書き戻されてしまう。そのため、SW命令処理を再開してキャッシュメモリ134に対してメモリリードを行っても、回復できる可能性がほぼ無い。
本願発明者は、上述した考察に基づき、ライトバック方式のキャッシュメモリにおいてリプライデータのエラーが検出された場合に、該リプライデータの付加情報に、「ダーティ」か「クリーン」かのステータス情報を加える技術を確立した。図1に示す情報処理装置100におけるキャッシュメモリ134がライトバック方式のものであるとして説明する。
この場合においても、キャッシュメモリユニット130の第2の情報付加部138は、キャッシュヒット時にキャッシュメモリ134から出力されたリプライデータRD2について、付加情報記憶部136にそれに対応する付加情報ADI0が無い、または付加情報ADI0が「エラーが無い」を示す場合に、リプライデータRD2に対してエラー検出を行う。但し、エラーが検出された場合には、付加情報ADI1に、リプライデータRD2のブロックのステータスを示す情報を加える。
図11と図12は、キャッシュメモリ134がライトバック方式のものである場合における、付加情報ADI0と付加情報ADI1の例を示す。
図示のように、付加情報ADI0と付加情報ADI1は、エラー情報を示すビットと、場所情報を示すビットとに加え、さらに、ステータスを示す上位ビットを含む。該上位ビットは、エラー情報ビットと場所情報ビットが「11」である場合においてのみ有効である。
例えば、図11に示すように、付加情報ADI0は、下位の2ビットが「00」である場合には「メインメモリ164においてエラーが検出されていない」を示し、下位の2ビットが「10」である場合には、「メインメモリ164においてエラーが検出された」を示す。付加情報ADI0の上位の1ビットは、無効ビットである。
また、図12に示すように、付加情報ADI1は、下位の2ビットが「00」である場合には「メインメモリ164においてエラーが検出されていない」を示し、下位の2ビットが「10」である場合には、「メインメモリ164においてエラーが検出された」を示す。下位の2ビットが「00」または「10」である場合には、付加情報ADI1も、上位の1ビットが無効ビットである。
また、付加情報ADI1は、下位の2ビットが「01」である場合には「「キャッシュメモリ134においてエラーが検出されていない」を示す。この場合において、付加情報ADI1の上位の1ビットが無効ビットである。
下位の2ビットが「11」であり、すなわちキャッシュメモリ134においてエラーが検出された場合には、付加情報ADI1の上位の1ビットが有効ビットとなる。「011」である付加情報ADI1は、「キャッシュメモリ134においてエラーが検出され、当該ブロックがクリーンである」を示し、「111」である付加情報ADI1は、「キャッシュメモリ134においてエラーが検出され、当該ブロックがダーティである」を示す。
図13と図14は、キャッシュメモリ134がライトバック方式のものである場合における、付加情報ADI0と付加情報ADI1の別の例を示す。
図13と図14に示す例においても、付加情報ADI0と付加情報ADI1は、3ビットを有し、上位からの順で各ビットが「ステータス」、「エラー情報」、」場所情報」を夫々示す。また、場所情報を示す下位ビットは、エラー情報を示すビットが「1」である場合においてのみ有効であり、ステータス情報を示す上位ビットは、下位の2ビットが「11」である場合においてのみ有効である。
例えば、「000」である付加情報ADI0と付加情報ADI1は、エラーが無いことを示す。この場合、場所情報とステータスを示すビットが無効ビットである。
また、「010」である付加情報ADI0と付加情報ADI1は、「メインメモリ164においてエラーが検出された」を示す。この場合、ステータスを示すビットが無効ビットである。
また、図14に示すように、「011」である付加情報ADI1は、「キャッシュメモリ134においてエラーが検出され、当該ブロックがクリーンである」を示し、「111」である付加情報ADI1は、「キャッシュメモリ134においてエラーが検出され、当該ブロックがダーティである」を示す。
勿論、エラーがある場合における該エラーの検出場所が分かり、かつ、該エラーがキャッシュメモリにおいて検出された場合に当該ブロックのステータスが分かれば、付加情報ADI0とADI1は、図11〜図14に示す例に限ることがない。
プロセッサ110による、上述した付加情報ADI0と付加情報ADI1が含まれるリプライデータを受信した後の処理について、図15のフローチャートを参照して説明する。なお、この処理は、図2におけるステップS110の処理である。
図15において、図10におけるステップと同様の処理については、同様のステップ番号を付与している。図15と図10を比較すると分かるように、図15は、ステップS122とステップS124との間にステップS130が追加されている。
すなわち、リプライデータRD4が、キャッシュヒット時にキャッシュメモリユニット130から出力されるリプライデータRD3であり、かつ、該リプライデータRD3に含まれるデータ本体(リプライデータRD2)がキャッシュメモリ134から出力される際に訂正不能なエラーが検出された場合(S122:Yes)、SW命令実行部112は、リプライデータRD4に含まれる付加情報(ここでは付加情報ADI1となる)に基づいて、当該ブロックのステータスが「ダーティ」と「クリーン」のいずれかを確認する(S130)。
該ブロックのステータスが「ダーティ」である場合(S130:Yes)、SW命令実行部112は、ステップS126の処理を行い、すなわち、OSに障害通知を行い、OSに回復処理を委ねる。
一方、該ブロックのステータスが「クリーン」である場合には(S130:No)、SW命令実行部112は、当該ブロックを無効化し、中断していたSW命令処理を再開する(S124、S116)。
前述したように、キャッシュヒット時にキャッシュメモリ134からのリプライデータRD2からエラーが検出された場合、該データのブロックのステータスが「ダーティ」であると、該ブロックを無効にしてメインメモリ164に対してメモリリードをしても、正しいデータを得る可能性がほぼ無い。そのため、この場合において、直ちにOSに障害通知をし、OSによりメインメモリ164の当該ページを無効化するなどを行ったほうが、キャッシュメモリ134の当該ブロックを無効化してメインメモリ164に対してメモリリードを行う場合より、迅速な回復が可能である。その結果、システムの効率をより高めることができる。
情報処理装置100において、リプライデータに対してエラー情報などを付加する情報付加部(第2の情報付加部138、第1の情報付加部166)は、キャッシュメモリユニット130とメインメモリユニット160にのみ設けられているが、これら以外に、リプライデータが転送する経路上の少なくとも1箇所にさらに情報付加部を設けてもよい。キャッシュメモリとメインメモリに対して設けられた情報付加部と区別するために、経路上に設けられた情報付加部を、第3の情報付加部という。
第3の情報付加部は、転送されるリプライデータに付加された情報が「エラーがある」を示す場合に、該リプライデータとそれに付加された情報とをそのまま転送する。
一方、転送されるリプライデータに付加された情報が「エラーが無い」を示す場合に、第3の情報付加部は、リプライデータに訂正不能なエラーがあるか否かを検出すると共に、該検出の結果を示すエラー情報と、該検出が行われた場所である前記箇所を示す場所情報とをリプライデータに付加して転送する。
こうすることにより、プロセッサ110が受信したリプライデータにあるエラーは、メインメモリ、キャッシュメモリ、転送経路(例えばバス)のいずれによるものかを判断することができ、より適切に回復処理を行うことができる。
さらに、この場合、転送経路と切り換えて使用可能な転送経路を設け、片方の転送経路によるエラーが生じた場合に、他方の転送経路に切り換えるように回復処理を行うようにすれば、より効率的な回復が可能になる。
これらのことに関連して、図16に示す情報処理装置200を用いて説明する。情報処理装置200に対して、図1に示す情報処理装置100と同様のものについては同様の符号を付与すると共に、詳細な説明を省略する。
情報処理装置200は、プロセッサ210、キャッシュメモリユニット230、メインメモリユニット260を有し、プロセッサ210は、第1のバス120を介してキャッシュメモリユニット230と接続されており、第2のバス252または第2のバス254を介してメインメモリユニット260と接続されている。また、キャッシュメモリユニット230とメインメモリユニット260は、第2のバス252または第2のバス254を介して接続されている。
プロセッサ210は、SW命令実行部112、メモリリクエスト制御部212、回復処理部214、第3の情報付加部216、切換部218を備える。
キャッシュメモリユニット230は、RST受付部132、キャッシュメモリ134、付加情報記憶部136、第2の情報付加部138、RD出力部140、切換部232、第3の情報付加部234を備える。
メインメモリユニット260は、RST受付部162、メインメモリ164、第1の情報付加部166、RD出力部168、切換部262を備える。
情報処理装置200について、情報処理装置100と異なる点を重点的に説明する。
第2のバス252と第2のバス254は、選択的に使用され、それらの切換えは、プロセッサ210からの後述する切換制御信号CTRにより制御される。ここで、第2のバス252が使用されていると仮定して説明を進める。
メインメモリユニット260は、切換部262を備え、RD出力部168がリプライデータRD1を切換部262に出力する点を除き、図1に示す情報処理装置100におけるメインメモリユニット160と同様である。
切換部262は、第2のバス252と第2のバス254の両方に接続されており、プロセッサ210から切換制御信号CTRを受信するまで、現在使用中のバス(ここでは第2のバス252)からメモリリクエストRSTを取り込んでRST受付部162に出力すると共に、RD出力部168からのリプライデータRD1を第2のバス252に出力する。
切換制御信号CTRを受信した場合、切換部262は、バスの切換えを行い、ここでは、使用するバスを第2のバス252から第2のバス254に切り換え、第2のバス254からメモリリクエストRSTを取り込んでRST受付部162に出力すると共に、RD出力部168からのリプライデータRD1を第2のバス254に出力する。
キャッシュメモリユニット230は、切換部232と第3の情報付加部234を備え、メインメモリユニット260からのリプライデータRD1が切換部232を介してキャッシュメモリ134にブロックロードされ、付加情報記憶部136には第3の情報付加部234により付加した付加情報ADI2が出力される点を除き、図1に示す情報処理装置100におけるキャッシュメモリユニット130と同様である。
切換部232は、第2のバス252と第2のバス254の両方に接続されており、プロセッサ210から切換制御信号CTRを受信するまで、現在使用中のバス(ここでは第2のバス252)からリプライデータRD1を取り込んでキャッシュメモリ134と第3の情報付加部234に出力する。
切換制御信号CTRを受信した場合、切換部232は、バスの切換えを行い、ここでは、使用するバスを第2のバス252から第2のバス254に切り換え、第2のバス254からリプライデータRD1を取り込んでキャッシュメモリ134と第3の情報付加部234に出力する。
第3の情報付加部234は、切換部232からのリプライデータRD1に含まれる付加情報ADI0が「エラーがある」を示す場合に、付加情報ADI0をそのまま付加情報ADI2として付加情報記憶部136に出力する。一方、リプライデータRD1に含まれる付加情報ADI0が「エラーが無い」を示す場合に、リプライデータRD1に含まれるデータ本体(リプライデータRD0)にエラーがあるか否かの検出を行い、検出の結果を示すエラー情報と、該検出が行われた場所を示す場所情報とを付加情報ADI2として付加情報記憶部136に出力する。なお、ここでの場所情報は、第2のバス252と第2のバス254のうちの使用中のバスを示すものとなる。
第2の情報付加部138は、情報処理装置100のときに説明したように、キャッシュメモリ134が出力したリプライデータRD2に対応する付加情報(ここでは付加情報ADI2)が付加情報記憶部136に記憶されていない場合、または、付加情報記憶部136に記憶されているが「エラーが無い」を示す場合に、リプライデータRD2にエラーがあるか否かの検出を行うと共に、検出の結果を示すエラー情報と、該検出が行われた場所(キャッシュメモリ134)を示す場所情報とを付加情報ADI1としてRD出力部140に出力する。一方、付加情報記憶部136に記憶されている付加情報ADI2が「エラーがある」を示す場合には、第2の情報付加部138は、付加情報ADI2をそのまま付加情報ADI1としてRD出力部140に出力する。
すなわち、情報処理装置200において、第2の情報付加部138がRD出力部140に出力する付加情報ADI1は、付加情報ADI2と同様である場合がある。また、付加情報ADI2は、付加情報ADI0と同様である場合がある。
プロセッサ210は、第3の情報付加部216と切換部218を備える点と、回復処理部214がSW命令実行部112に行わせる回復処理が、図1に示す情報処理装置100におけるプロセッサ110の回復処理部114がSW命令実行部112に行わせる回復処理とが異なる点と、メモリリクエスト制御部212が切換制御信号CTRを出力可能である点とを除き、プロセッサ110と同様である。
プロセッサ210において、メモリリクエスト制御部212は、メインメモリ164へ出すメモリリクエストRSTを切換部218に出力する。
切換部218は、第2のバス252と第2のバス254の両方に接続されており、メモリリクエスト制御部212から切換制御信号CTRを受信するまで、現在使用中のバス(ここでは第2のバス252)にメモリリクエストRSTを出力すると共に、該バスからリプライデータRD1を取り込んで第3の情報付加部216に出力する。
メモリリクエスト制御部212から切換制御信号CTRを受信した場合、切換部218は、バスの切換えを行い、ここでは、使用するバスを第2のバス252から第2のバス254に切り換え、第2のバス254にメモリリクエストRSTを出力すると共に、該バスからリプライデータRD1を取り込んで第3の情報付加部216に出力する。
第3の情報付加部216は、キャッシュヒット時にキャッシュメモリユニット230からリプライデータRD3が入力され、キャッシュミス時に切換部218からリプライデータRD1が入力される。第3の情報付加部216は、入力されたリプライデータに含まれるデータ本体(リプライデータRD0またはリプライデータRD2)に対して付加情報ADI3を付加してメモリリクエスト制御部212に出力する。第3の情報付加部216からメモリリクエスト制御部212に出力されるデータを、リプライデータRD5と表記する。
具体的には、第3の情報付加部216は、リプライデータRD3またはリプライデータRD1に含まれる付加情報(ADI0またはADI1)が「エラーがある」を示す場合に、該付加情報をそのまま付加情報ADI3として付加する。一方、リプライデータRD3またはリプライデータRD1に含まれる付加情報が「エラーが無い」を示す場合に、該リプライデータに含まれるデータ本体(リプライデータRD0またはリプライデータRD2)にエラーがあるか否かの検出を行い、検出の結果を示すエラー情報と、該検出が行われた場所を示す場所情報とを付加情報ADI3として付加する。
なお、ここで、エラーが検出された場合に、場所情報は、第2のバス252と第2のバス254のうちの使用中のバスと、第1のバス120とのいずれであるかを示す必要がある。そのため、エラーが検出された場合に、第3の情報付加部216は、切換部218からのリプライデータRD1に含まれるデータ本体に対しては、第2のバス252と第2のバス254のうちの使用中のバスを示す情報を場所情報として付加し、キャッシュメモリユニット230からのリプライデータRD3に含まれるデータ本体に対しては、第1のバス120を示す情報を場所情報として付加する。
このように、情報処理装置200において、メモリリクエスト制御部212に返送されるリプライデータ(リプライデータRD5)には、エラーがあるか否かを示すエラー情報と、エラーがある場合に該エラーがどこで検出されたかを示す場所情報とが含まれている。また、場所情報は、メインメモリ164、キャッシュメモリ134、第2のバス252と第2のバス254のうちの使用中のバス、第1のバス120のいずれか1つを示す。
図17は、情報処理装置200において、リプライデータに含まれる付加情報(付加情報ADI0、付加情報ADI1、付加情報ADI2、付加情報ADI3)のフォーマットの一例を示す。なお、これは、キャッシュメモリ134のデータ更新方式がライトバックである場合の例であり、この例において、エラーがキャッシュメモリユニット230において検出された場合に、当該リプライデータに対応するブロックのステータス情報も付加情報に含まれる。
図示のように、情報処理装置200において、付加情報は、4ビットを有し、上位の1ビットは、ステータスを示すビットであり、下位の3ビットは、エラー情報と場所情報を示すビットである。なお、上位の1ビットは、キャッシュメモリ134においてエラーが検出された場合(付加情報の下位3ビットが「011」である場合)においてのみ有効である。勿論、付加情報のフォーマットは、図17に示す例に限られることがない。
付加情報「0000」は、エラーが無いことを示す。
メインメモリユニット260から出力されるリプライデータRD1に含まれる付加情報ADI0は、「0000」と「0001」のいずれか一方であり、「0001」は、メインメモリ164からのリプライデータRD0にエラーが検出されたことを示す。
第3の情報付加部234が出力する付加情報ADI2は、「0000」、「0001」、「0010」のいずれか一方である。「0010」は、第2のバス252と第2のバス254のうちの使用中のバスにおいてエラーが検出されたことを示す。
付加情報ADI1は、「0000」、「0001」、「0010」、「0011」、「1011」のいずれか一方である。「0011」は、キャッシュメモリ134からのリプライデータRD2においてエラーが検出され、かつリプライデータRD2に対応するブロックのステータスが「クリーン」であることを示す。一方、「1011」は、キャッシュメモリ134からのリプライデータRD2においてエラーが検出され、かつリプライデータRD2に対応するブロックのステータスが「ダーティ」であることを示す。
付加情報ADI3は、上述した付加情報ADI0、ADI1、ADI2のとりうる各値以外に、「0100」になる可能性がある。「0100」である付加情報ADI3は、第1のバス120においてエラーが検出されたことを示す。
ここで、プロセッサ210における第3の情報付加部216が、キャッシュメモリユニット230またはメインメモリユニット260からのリプライデータ(RD1またはRD3)を受信してメモリリクエスト制御部212にリプライデータRD5を出力した後の処理を説明する。この処理は、図15が示す、情報処理装置100のプロセッサ110がリプライデータを受信した際の処理(ステップS110の処理)に対応し、比較しやすいように、該処理を、図2におけるステップS110の処理として説明する。
図17は、第3の情報付加部216がリプライデータRD3をメモリリクエスト制御部212に出力した後にプロセッサ210にて行われる処理の一例を示すフローチャートである。
メモリリクエスト制御部212は、第3の情報付加部216からリプライデータRD5を受信すると、該リプライデータRD5を回復処理部214に出力する。回復処理部214は、メモリリクエスト制御部212からのリプライデータRD5に含まれる付加情報ADI3を参照して、エラーの有無を確認する(S210)。
付加情報ADI3が「エラーが無い」を示す場合、すなわち付加情報ADI3が「0000」である場合(S210:No)に、回復処理部214は、メモリリクエスト制御部212にリプライデータRD5をそのまま返送する(S214)。
メモリリクエスト制御部212は、回復処理部214から返送されたリプライデータRD5をSW命令実行部112に出力し、SW命令実行部112は、メモリリクエストRSTを出力した際に中断していたSW命令処理を再開し、リプライデータRD5に含まれるデータ本体(リプライデータRD0またはリプライデータRD2)を用いて処理を実行する(S216)。
一方、ステップ210において、リプライデータRD5に含まれる付加情報ADI3が「エラーが有る」を示す場合、すなわち付加情報ADI3が「0000」以外である場合(S212:Yes)に、回復処理部214は、SW命令実行部112に割込要求IRを出力し、中断していたSW命令処理に、ステップS222からの回復処理を割り込ませる(S220、S222〜)。
SW命令実行部112は、回復処理部214からの命令を実行することにより回復処理を行う。具体的には、SW命令実行部112は、まず、付加情報ADI3が「第1のバス120においてエラーが検出された」を示す場合、すなわち付加情報ADI3が「0100」である場合(S222:Yes)、中断していたSW命令処理を再開する(S216)。これにより、プロセッサ210がメモリリードをリトライする。
付加情報ADI3が「第2のバス252と第2のバス254のうちの使用中のバスにおいてエラーが検出された」を示す場合、すなわち付加情報ADI3が「0010」である場合(S222:No、S224:Yes)、SW命令実行部112は、メモリリクエスト制御部212に切換制御信号CTRを発行させる(S226)。これにより、切換制御信号CTRがプロセッサ210における切換部218、キャッシュメモリユニット230における切換部232、メインメモリユニット260における切換部262に出力され、これらの切換部は、第2のバス252と第2のバス254のうちの使用中の一方のバスを他方に切り換える。
そして、SW命令実行部112は、中断していたSW命令処理を再開し、メモリリードをリトライする(S216)。エラーの原因となるバスは、別のバスに切り替わったので、リトライしたメモリリードにより、メインメモリ164から正しいデータを取得することができる。
付加情報ADI3が「キャッシュメモリ134においてエラーが検出された」を示す場合、すなわち付加情報ADI3の下位3ビットが「011」である場合(S222:No、S224:No、S230:Yes)に、SW命令実行部112は、さらに付加情報ADI3の上位1ビットが示すステータス情報を確認する(S234)。
ステータス情報が「クリーン」を示す場合、すなわち付加情報ADI3の上位1ビットが「0」である場合、SW命令実行部112は、当該ブロックを無効化すると共に、中断していたSW命令処理を再開する(S234:No、S236、S216)。
一方、ステータス情報が「ダーティ」を示す場合、すなわち付加情報ADI3の上位1ビットが「1」である場合、SW命令実行部112は、OSに障害通知を行い、OSに回復処理を委ねる(S234:Yes、S240)。
また、付加情報ADI3が「メインメモリ164においてエラーが検出された」を示す場合、すなわち付加情報ADI3が「0001」である場合に、SW命令実行部112は、OSに障害通知を行い、OSに回復処理を委ねる(S230:No、S240)。
このように、情報処理装置200は、メインメモリユニット160とキャッシュメモリユニット230に夫々設けられた第1の情報付加部166と第2の情報付加部138以外に、第2のバス252と第2のバス254上を転送されるリプライデータに対してエラーの検出と情報の付加を行う第3の情報付加部234と第3の情報付加部216を備える。そのため、メインメモリ164とキャッシュメモリ134の索引障害以外に、バスの障害も検出することができ、より適切な回復処理が可能になる。
また、選択的に使用される第2のバス252と第2のバス254を設け、エラー情報に応じて切り換えるようにしているので、第2のバスの障害から迅速に回復することができる。
なお、分かりやすいように、情報処理装置200に対して、メインメモリ164がリプライデータを出力するバス(第2のバス)を冗長に設けているが、キャッシュメモリ134がリプライデータを出力するバス(第1のバス120)に対しても代替可能な別のバスを設けるようにしてもよい。
以上の説明を踏まえて、本発明の具体的な実施の形態を説明する。
図19は、本発明の実施の形態にかかるマルチプロセッサシステム300を示す。マルチプロセッサシステム300は、複数(図示の例では3つ)のプロセッサユニット302と、2次キャッシュメモリユニット350と、メインメモリユニット370を備える。各プロセッサユニット302は、1次キャッシュメモリユニット330が内蔵されており、バス340を介して2次キャッシュメモリユニット350と接続され、2次キャッシュメモリユニット350を介してメインメモリユニット370と接続されている。2次キャッシュメモリユニット350は、バス360を介してメインメモリユニット370と接続されている。
1次キャッシュメモリユニット330に備えられるキャッシュメモリ(図示しない1次キャッシュメモリ)のデータ更新方式は、ライトスルーである。2次キャッシュメモリユニット350に備えられるキャッシュメモリ(図示しない2次キャッシュメモリ)は、データ更新方式がライトバックであり、キャッシュ・コヒーレンシのプロトコルとしてはライン・インバリデート方式が用いられている。
図20は、マルチプロセッサシステム300におけるプロセッサユニット302、及びマルチプロセッサシステム300の各機能ブロック間のデータの受渡しを詳細に示す図である。分かりやすいように、プロセッサユニット302について、1つのみを示すと共に、プロセッサユニット302から出すメモリリクエストについては省略する。
図示のように、プロセッサユニット302は、プロセッサ310と1次キャッシュメモリユニット330を備え、プロセッサ310は、SW命令実行部312、回復処理部314、メモリリクエスト制御部316、第3の情報付加部320を有する。
図21は、プロセッサ302がメモリリードに際しての動作の流れを示すフローチャートである。プロセッサユニット302のSW命令実行部312は、SW命令を実行している中で、メモリデータをリードする必要があるときに、メモリリクエスト制御部316にリクエスト要求RSTRを出力する。これに伴って、SW命令実行部312は、SW命令の実行を一時中断する。メモリリクエスト制御部316は、SW命令実行部312からのリクエスト要求RSTRに応じて、メモリリクエストを1次キャッシュメモリユニット330に出力する(S300)。キャッシュヒットした場合(S302:Yes)、メモリリクエストに応じて1次キャッシュメモリユニット330からリプライデータRD16がプロセッサ310に出力され、プロセッサ310は、リプライデータ受信後の処理を行う(S310)。
一方、ステップS302において、1次キャッシュメモリでキャッシュミスした場合(S302:No)、メモリリクエスト制御部316は、2次キャッシュメモリへ発行するメモリリクエストをバス340に出力する(S304)。
2次キャッシュメモリでキャッシュヒットした場合(S306:Yes)、メモリリクエストに応じて2次キャッシュメモリユニット350からリプライデータRD13がバス340を介してプロセッサ310に転送され、プロセッサ310は、リプライデータ受信後の処理を行う(S310)。
なお、この場合、2次キャッシュメモリユニット350からプロセッサ310へ転送されるリプライデータRD13は、1次キャッシュメモリユニット330にも転送され、1次キャッシュメモリユニット330は、このリプライデータRD13ブロックロードを行う。
一方、ステップS306において、2次キャッシュメモリでキャッシュミスした場合(S306:No)、メモリリクエスト制御部316は、メインメモリへ発行するメモリリクエストをバス360に出力する(S308)。このメモリリクエストに応じてメインメモリユニット370からリプライデータRD11がバス360を介してプロセッサ310に転送され、プロセッサ310は、リプライデータ受信後の処理を行う(S310)。
なお、この場合、メインメモリユニット370からプロセッサ310へ転送されるリプライデータRD11は、2次キャッシュメモリユニット350にも転送され、2次キャッシュメモリユニット350は、このリプライデータRD11でブロックロードを行う。
本実施の形態のマルチプロセッサシステム300において、メインメモリユニット370は、図1に示す情報処理装置100におけるメインメモリユニット160と同様に動作する。具体的には、メインメモリユニット370は、メモリリクエストに応じてプロセッサ310に転送するリプライデータの本体(リプライデータRD10という)を出力する際に、エラーの検出を行うと共に、検出の結果を示すエラー情報と、場所情報とからなる付加情報ADI11を付加する。
2次キャッシュメモリユニット350は、キャッシュミス時に、リプライデータRD11でブロックロードする際に、リプライデータRD11に含まれるデータ本体(リプライデータRD10)を図示しない2次キャッシュメモリの該当するブロックに格納すると共に、リプライデータRD11に含まれる付加情報ADI10が「エラーがある」と「エラーが無い」のいずれを示すかを確認する。
付加情報ADI10が「エラーがある」を示す場合に、2次キャッシュメモリユニット350は、該付加情報ADI10をそのまま記憶しておく。一方、付加情報付加情報ADI10が「エラーが無い」を示す場合に、2次キャッシュメモリユニット350は、該リプライデータRD10に対してエラーの有無の検出を行うと共に、検出の結果を示すエラー情報と場所情報とからなる付加情報を記憶しておく。この場合、記憶された付加情報は、「バス360にてエラーが検出された否か」を示すことになる。
キャッシュヒット時に、2次キャッシュメモリユニット350は、図示しない2次キャッシュメモリからリプライデータ(リプライデータRD12という)を出力する際に、該リプライデータRD12に対応する付加情報が記憶されており、かつ、該付加情報が「メインメモリにおいてエラーが検出された」または「バス360においてエラーが検出された」を示す場合に、記憶していた付加情報をそのまま付加情報ADI11として付加する。一方、付加情報が無い、または、付加情報が「エラーが無い」を示す場合には、2次キャッシュメモリユニット350は、リプライデータRD12に対してエラーの有無の検出を行うと共に、検出の結果を示すエラー情報と、場所情報と、当該ブロックのステータス情報とを付加情報ADI11として付加する。
1次キャッシュメモリユニット330は、データ更新方式がライトスルーであるため、キャッシュヒット時にリプライデータ15を出力する際にエラーが検出された場合に、ステータス情報を付加しない点を除き、2次キャッシュメモリユニット350と同様である。
1次キャッシュメモリのキャッシュミス時に2次キャッシュメモリユニット350からプロセッサ310に出力されたリプライデータRD13、または1次キャッシュメモリと2次キャッシュメモリが共にキャッシュミス時にメインメモリユニット370からプロセッサ310に出力されたリプライデータRD11は、まず、プロセッサ310の第3の情報付加部320に入力される。
第3の情報付加部320は、入力されたリプライデータに含まれる付加情報が「エラーがある」を示す場合に、該付加情報をそのまま付加情報ADI12としてデータ本体に付加してメモリリクエスト制御部316に出力する。なお、データ本体は、リプライデータRD10とリプライデータRD12のいずれか一方である。
一方、入力されたリプライデータに含まれる付加情報が「エラーが無い」を示す場合に、第3の情報付加部320は、該リプライデータに含まれるデータ本体に対してエラーの有無の検出を行い、検出の結果を示すエラー情報と、場所情報とを付加情報ADI12としてデータ本体に付加してメモリリクエスト制御部316に出力する。この場合の付加情報ADI12は、「バス340にてエラーが検出された否か」または「2次キャッシュメモリユニット350にてエラーが検出されたか否か」を示すことになる。
図3は、キャッシュミスの場合(図2のステップS102:No)に、メインメモリユニット160がプロセッサ110からメモリリクエストRSTを受信した際の動作の流れを示すフローチャートである。
ここで、本実施の形態のマルチプロセッサシステム300において使用される付加情報のフォーマットを説明する。付加情報(ADI10、ADI11、ADI12、ADI13)は、「エラーが検出されたか否か」と、エラーが検出された場合には、「メインメモリ、2次キャッシュメモリ、1次キャッシュメモリ、バス360、バス340のいずれで検出されたか」と、2次キャッシュメモリで検出された場合には、「当該ブロックのステータスがダーティであるかクリーンであるか」とを示す。図22は、それらのフォーマットの例を示す。
図22に示す例では、付加情報は、5ビットを有し、上位の1ビット目がステータスを示すビットであり、上位の2ビット目がエラー情報を示すビットであり、下位の3ビットが場所情報を示すビットである。なお、上位の1ビットは、2次キャッシュメモリにおいてエラーが検出された場合(付加情報の下位4ビットが「1010」である場合)においてのみ有効である。勿論、付加情報のフォーマットは、図22に示す例に限られることがない。
具体的には、付加情報「00000」は、エラーが無いことを示す。
付加情報「01000」は、1次キャッシュメモリ索引でエラーが検出されたことを示す。
付加情報「01001」は、バス340でエラーが検出されたことを示す。
付加情報「01010」は、2次キャッシュメモリでエラーが検出され、当該ブロックのステータスが「クリーン」であることを示す。
付加情報「11010」は、2次キャッシュメモリでエラーが検出され、当該ブロックのステータスが「ダーティ」であることを示す。
付加情報「01011」は、バス360でエラーが検出されたことを示す。
付加情報「01100」は、メインメモリでエラーが検出されたことを示す。
プロセッサ310が受信するリプライデータには、データ本体以外に、上述したいずれかの付加情報が含まれており、プロセッサ310は、付加情報に基づいて、図21におけるステップS310の「リプライデータ受信後処理」を行う。これについて、図23のフローチャートを参照して説明する。
メモリリクエスト制御部316は、第3の情報付加部320からリプライデータRD14、または1次キャッシュメモリユニット330からリプライデータRD16を受信すると、当該リプライデータを回復処理部314に出力する。回復処理部314は、メモリリクエスト制御部316からのリプライデータ(リプライデータRD17)に含まれる付加情報(付加情報ADI12または付加情報ADI13)を参照して、エラーの有無を確認する(S312)。
付加情報が「エラーが無い」を示す場合、すなわち付加情報が「00000」である場合(S312:No)に、回復処理部314は、後述するリトライ回数nを「0」にリセットすると共に、メモリリクエスト制御部316にリプライデータRD17をそのまま返送する(S314、S316)。なお、回復処理部314には、図示しない、リトライ回数nを格納するレジスタが設けられている。
メモリリクエスト制御部316は、回復処理部314から返送されたリプライデータRD17をSW命令実行部312に出力し、SW命令実行部312は、メモリリクエストを出力した際に中断していたSW命令処理を再開し、リプライデータRD17に含まれるデータ本体を用いて処理を実行する(S318)。
一方、ステップ312において、リプライデータRD17に含まれる付加情報が「エラーが有る」を示す場合、すなわち付加情報の上位2ビット目が「1」である場合(S312:Yes)に、回復処理部314は、SW命令実行部312に割込要求IRを出力し、中断していたSW命令処理に、ステップS330からの回復処理を割り込ませる(S320、S330〜)。
回復処理に当たり、回復処理部314は、まず、リトライ回数nが所定の閾値に達したか否かを確認する(S330)。この閾値は、予め設定された1以上の整数である。
本実施の形態において、プロセッサ310は、受信したリプライデータにエラーがあるときに、該エラーがソフトウェアエラーであることに備え、どこでエラーが生じたかを確認する前に、メモリリクエストを再発行してメモリリードをリトライする。リトライ回数nは、このリトライの回数の上限値である。
図23に示すように、回復処理部314は、リトライ回数nが閾値より小さいときに、nを1つインクリメントし(S330:No、S332)、SW命令実行部312にSW命令処理を再開させる(S334)。これにより、SW命令実行部312からリクエスト要求RSTRが再度出力され、メモリリクエスト制御部316からメモリリクエストが再度発行される。
リトライの回数がリトライ回数nに達してもリプライデータにエラーがある場合に(S330:Yes)、SW命令実行部312は、リプライデータRD17に含まれる付加情報を参照して、エラーがどこで検出されたかを確認する。付加情報が「バス340でエラーが検出された」を示す場合(すなわち付加情報が「01001」である場合)(S340:Yes)、または、付加情報が「バス360でエラーが検出された」を示す場合(すなわち付加情報が「01011」である場合)(S340:No、S342:Yes)、SW命令実行部312は、リトライをしても回復できる可能性が少ないので、SW命令実行部312は、OSに障害通知を行い、OSに回復処理を委ねる(S370)。これにより、OSによる回復処理が行われる(S380)。
付加情報が「1次キャッシュ索引でエラーが検出された」を示す場合(すなわち付加情報が「01000」である場合)(S340:No、S342:No、S350:Yes)、SW命令実行部312は、1次キャッシュメモリユニット330に備えられた1次キャッシュメモリの当該ブロックを無効化した上で、中断していたSW命令処理を再開する(S352、S334)。
1次キャッシュメモリのデータ更新方式がライトスルーであるため、1次キャッシュメモリの当該ブロックを無効化するだけでキャッシュのコヒーレンシを維持できる。また、1次キャッシュメモリの当該ブロックを無効化してSW命令処理を再開することにより、1次キャッシュメモリでキャッシュミスとなり、2次キャッシュメモリユニット350に備えられる2次キャッシュメモリに対してメモリリクエストが出され、2次キャッシュメモリから正しいデータを取り出すことができる。
リプライデータRD17に含まれる付加情報が「2次キャッシュメモリ索引でエラーが検出され、当該ブロックのステータスがクリーンである」を示す場合(すなわち付加情報が「01010」である場合)(S340:No、S342:No、S350:No、S360:Yes、S362:No)、SW命令実行部312は、2次キャッシュメモリに対してインバリッド指示を発行して当該ブロックを無効化した上で、中断していたSW命令処理を再開する(S364、S334)。
2次キャッシュメモリのデータ更新方式がライトバックであるため、当該ブロックのステータスが「クリーン」である場合には、該ブロックのデータと、下位レベルのメモリ(ここではメインメモリ)との対応するデータとが一致する。また、1次キャッシュメモリのデータ更新方式がライトスルーであるため、2次キャッシュメモリの当該ブロックを無効すると、1次キャッシュメモリの対応するブロックも無効化される。そのため、2次キャッシュメモリの当該ブロックを無効化してSW命令処理を再開すると、1次キャッシュメモリと2次キャッシュメモリのいずれもキャッシュミスとなるため、メインメモリにメモリリクエストが発行され、メインメモリから正しいデータを読み出すことが可能である。
リプライデータRD17に含まれる付加情報が「2次キャッシュメモリ索引でエラーが検出され、当該ブロックのステータスがダーティである」を示す場合(すなわち付加情報が「11010」である場合)(S340:No、S342:No、S350:No、S360:Yes、S362:Yes)、SW命令実行部312が2次キャッシュメモリにインバリッド指示を発行して当該ブロックを無効にすると、当該ブロックのデータは、2次キャッシュメモリから追い出されるが、メインメモリに書き戻されてしまう。この場合、エラーのあるデータはメインメモリに反映されてしまうため、SW命令処理を再開しても回復することができなくなってしまう。
そのため、リプライデータRD17に含まれる付加情報が「2次キャッシュメモリ索引でエラーが検出され、当該ブロックのステータスがダーティである」を示す場合(S340:No、S342:No、S350:No、S360:Yes、S362:Yes)、SW命令実行部312は、OSに障害通知を行い、OSに回復処理を委ねる(S370、S380)。
この場合、OSに処理を委ねることで、ジョブのアボート処理やロールバック処理などにより、メインメモリの当該ページを無効化することができ、プロセッサユニット302を「プロセッサチェック」状態にせずに回復できる可能性がある。
本実施の形態のマルチプロセッサシステム300は、情報処理装置100と情報処理装置200を用いて説明した技術を、2次キャッシュメモリを備えたマルチプロセッサシステムに適用したものであり、これらの技術による効果を得ることができる。
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述実施の形態に対して、さまざまな変更、増減、組合せを加えてもよい。これらの変更、増減、組合せが加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
例えば、マルチプロセッサシステム300において、リプライデータの転送経路(バス340またはバス360)に対して冗長経路を設け、該転送経路上にエラーが検出された場合に、リプライデータの転送経路を冗長経路に切り換えるようにしてもよい。
また、本発明にかかる技術は、2次キャッシュメモリまでを備えたシステムに限らず、3次以上のキャッシュメモリを備えるシステムにも適用することができる。レベルの異なるキャッシュメモリの数が多いほど、本発明にかかる技術による効果をより大きく発揮することができる。
また、リプライデータに含まれる付加情報に応じて行う回復処理も、上述した各回復処理の例に限られることがない。
100 情報処理装置 110 プロセッサ
112 SW命令実行部 114 回復処理部
116 メモリリクエスト制御部 120 第1のバス
130 キャッシュメモリユニット 132 RST受付部
134 キャッシュメモリ 136 付加情報記憶部
138 第2の情報付加部 140 RD出力部
150 第2のバス 160 メインメモリユニット
162 RST受付部 164 メインメモリ
166 第1の情報付加部 168 RD出力部
200 情報処理装置 210 プロセッサ
212 メモリリクエスト制御部 214 回復処理部
216 第3の情報付加部 218 切換部
230 キャッシュメモリユニット 232 切換部
234 第3の情報付加部 252 第2のバス
254 第2のバス 260 メインメモリユニット
262 切換部 300 マルチプロセッサシステム
302 プロセッサユニット 310 プロセッサ
312 SW命令実行部 314 回復処理部
316 メモリリクエスト制御部 320 第3の情報付加部
330 1次キャッシュメモリユニット 340 バス
350 2次キャッシュメモリユニット 360 バス
370 メインメモリユニット

Claims (5)

  1. プロセッサと、
    メインメモリと、
    データ更新方式がライトバック方式であるキャッシュメモリとを有する情報処理装置であって、
    前記メインメモリは、キャッシュミスのときにおいて、前記プロセッサからのメモリリクエストに応じたリプライデータを出力する際に、該リプライデータに訂正不能なエラーがあるか否かを検出すると共に、該検出の結果を示すエラー情報と、該検出が行われた場所である前記メインメモリを示す場所情報とを前記リプライデータに付加する第1の情報付加部を備え、
    前記キャッシュメモリは、
    キャッシュミスのときにおいて、前記プロセッサに出力されたリプライデータでブロックロードをする際に、該リプライデータに付加された各情報を記憶する付加情報記憶部と、
    キャッシュヒットのときにおいて、前記プロセッサからのメモリリクエストに応じたリプライデータを出力する際に、前記付加情報記憶部に記憶された、該リプライデータに対応する情報がエラーがあることを示す場合に、該リプライデータについて前記付加情報記憶部に記憶された各情報を前記リプライデータに付加する一方、前記付加情報記憶部に記憶された、該リプライデータに対応する情報がエラーが無いことを示す場合に、該リプライデータに訂正不能なエラーがあるか否かを検出すると共に、該検出の結果を示すエラー情報と、該検出が行われた場所である前記キャッシュメモリを示す場所情報とを前記リプライデータに付加する第2の情報付加部とを備え
    前記第2の情報付加部は、
    キャッシュヒット時において前記リプライデータに対して訂正不能なエラーの有無の検出を行った結果、訂正不能なエラーが検出されたときに、さらに、、該リプライデータに対応するブロックのステータス情報を前記リプライデータに付加し、
    前記プロセッサは、
    キャッシュヒット時に前記キャッシュメモリからのリプライデータに付加された情報が「エラーがある」かつ「発生場所がキャッシュメモリである」を示す際に、
    前記ステータス情報が「ダーティ」であるときに、OS(オペレーティングシステム)に障害通知を行い、
    前記ステータス情報が「クリーン」であるときに、前記キャッシュメモリにおける当該ブロックを無効化すると共に、前記メモリリクエストを出した際に中断した命令処理を再開することを特徴とする情報処理装置。
  2. 前記キャッシュメモリは複数あり、
    これらの複数のキャッシュメモリは、レベルが互いに異なることを特徴とする請求項1に記載の情報処理装置。
  3. 前記プロセッサからのメモリリクエストに応じて出力されたリプライデータを転送する経路上の少なくとも1箇所に第3の情報付加部が設けられており、
    該第3の情報付加部は、
    転送されるリプライデータに付加された情報がエラーがあることを示す場合に、該リプライデータとそれに付加された前記情報とをそのまま転送し、
    転送されるリプライデータに付加された情報がエラーが無いことを示す場合に、前記リプライデータに訂正不能なエラーがあるか否かを検出すると共に、該検出の結果を示すエラー情報と、該検出が行われた場所である前記箇所を示す場所情報とを前記リプライデータに付加することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記第3の情報付加部が設けられた箇所に対応する経路部分と切換え使用可能な冗長経路がさらに設けられており、
    前記プロセッサは、受信したリプライデータに付加された情報が、前記第3の情報付加部が設けられた箇所に前記エラーが検出されたことを示す場合に、前記冗長経路が使用されるように制御を行うことを特徴とする請求項3に記載の情報処理装置。
  5. プロセッサと、メインメモリと、キャッシュメモリとを有する情報処理装置におけるエラー訂正支援方法であって、
    キャッシュミスのときにおいて、前記プロセッサからのメモリリクエストに応じて前記メインメモリからリプライデータを出力する際に、該リプライデータに訂正不能なエラーがあるか否かを検出すると共に、該検出の結果を示すエラー情報と、該検出が行われた場所である前記メインメモリを示す場所情報とを前記リプライデータに付加し、
    キャッシュミスのときにおいて、前記キャッシュメモリが前記プロセッサに出力されたリプライデータでブロックロードをする際に、該リプライデータに付加された各情報を記憶しておき、
    キャッシュヒットのときにおいて、前記プロセッサからのメモリリクエストに応じて前記キャッシュメモリからリプライデータを出力する際に、ブロックロード時に記憶しておいた、該リプライデータに対応する情報がエラーがあることを示す場合に、ブロックロード時に記憶しておいた、該リプライデータに対応する各情報を前記リプライデータに付加する一方、ブロックロード時に記憶しておいた、該リプライデータに対応する情報がエラーが無いことを示す場合に、該リプライデータに訂正不能なエラーがあるか否かを検出すると共に、該検出の結果を示すエラー情報と、該検出が行われた場所である前記キャッシュメモリを示す場所情報と、該リプライデータに対応するブロックのステータス情報とを前記リプライデータに付加し、
    キャッシュヒット時に前記キャッシュメモリからのリプライデータに付加された情報が「エラーがある」かつ「発生場所がキャッシュメモリである」を示す際に、前記プロセッサが、前記ステータス情報が「ダーティ」であるときに、OS(オペレーティングシステム)に障害通知を行い、前記ステータス情報が「クリーン」であるときに、前記キャッシュメモリにおける当該ブロックを無効化すると共に、前記メモリリクエストを出した際に中断した命令処理を再開することを特徴とするエラー訂正支援方法。
JP2011041775A 2011-02-28 2011-02-28 情報処理装置及びエラー訂正支援方法 Expired - Fee Related JP5376681B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011041775A JP5376681B2 (ja) 2011-02-28 2011-02-28 情報処理装置及びエラー訂正支援方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011041775A JP5376681B2 (ja) 2011-02-28 2011-02-28 情報処理装置及びエラー訂正支援方法

Publications (2)

Publication Number Publication Date
JP2012178121A JP2012178121A (ja) 2012-09-13
JP5376681B2 true JP5376681B2 (ja) 2013-12-25

Family

ID=46979907

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011041775A Expired - Fee Related JP5376681B2 (ja) 2011-02-28 2011-02-28 情報処理装置及びエラー訂正支援方法

Country Status (1)

Country Link
JP (1) JP5376681B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6334969B2 (ja) * 2014-03-14 2018-05-30 Necプラットフォームズ株式会社 演算処理装置、制御方法、及び、プログラム
US10387329B2 (en) 2016-02-10 2019-08-20 Google Llc Profiling cache replacement

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01235100A (ja) * 1988-03-15 1989-09-20 Hitachi Ltd 半導体記憶装置
JPH0223442A (ja) * 1988-07-13 1990-01-25 Nec Corp メモリ制御装置
JPH07129466A (ja) * 1993-11-02 1995-05-19 Fujitsu Ltd 階層記憶装置
JP2003345676A (ja) * 2003-05-01 2003-12-05 Mitsubishi Electric Corp 二重化メモリシステム
JP2007257441A (ja) * 2006-03-24 2007-10-04 Fujitsu Ltd プロセッサおよびプロセッサ制御方法

Also Published As

Publication number Publication date
JP2012178121A (ja) 2012-09-13

Similar Documents

Publication Publication Date Title
US6594785B1 (en) System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions
JP5265654B2 (ja) システムにおけるメモリ冗長性の制御
US9652407B2 (en) Method for processing error directory of node in CC-NUMA system, and node
JP5202130B2 (ja) キャッシュメモリ、コンピュータシステム、及びメモリアクセス方法
US9063902B2 (en) Implementing enhanced hardware assisted DRAM repair using a data register for DRAM repair selectively provided in a DRAM module
US9710378B2 (en) Writing an address conversion table for nonvolatile memory wear leveling
US9977742B2 (en) Cache coherency
JP4474570B2 (ja) キャッシュコヒーレンシ制御方法
US20150006815A1 (en) Backup of cached dirty data during power outages
JP5224038B2 (ja) コンピュータ装置、コンピュータ装置の運用継続方法及びプログラム
US10649829B2 (en) Tracking errors associated with memory access operations
JP5376681B2 (ja) 情報処理装置及びエラー訂正支援方法
JP2012053572A (ja) 情報処理装置およびキャッシュの制御方法
JP5021978B2 (ja) マルチプロセッサシステム及びその動作方法
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
US7941728B2 (en) Method and system for providing an improved store-in cache
JP5163061B2 (ja) マルチプロセッサシステム、マイクロプロセッサ、及びマイクロプロセッサの障害処理方法
JP2020077248A (ja) ストレージシステム、データ管理方法、及びデータ管理プログラム
JP6583046B2 (ja) 制御装置、情報処理装置および情報処理装置の制御方法
JP4584124B2 (ja) 情報処理装置およびそのエラー処理方法ならびに制御プログラム
JP7201775B2 (ja) ストレージシステム、データ管理方法、及びデータ管理プログラム
JP2012008739A (ja) データ記憶装置及びデータ書き込み方法
JP6334969B2 (ja) 演算処理装置、制御方法、及び、プログラム
JP6613874B2 (ja) 情報処理装置、演算処理装置および情報処理装置の制御方法
JP4451887B2 (ja) プロセッサシステム及びキャッシュフラッシュ方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130801

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130920

R150 Certificate of patent or registration of utility model

Ref document number: 5376681

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

LAPS Cancellation because of no payment of annual fees