(57)【要約】【課題】繰り返しの障害発生を回避してプロセッサリリーフを実現するデータ障害処理装置、及びデータ障害処理方法を提供すること【解決手段】データ障害処理装置は、誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサ３を備える。記憶装置は、データ供給時にデータに対して誤り訂正符号を付与する。障害識別部３０２は、誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する。事前評価部３０５は、訂正不可能障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する。救済可否判定部３０６は、前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する。障害処理部３０７は、救済可否判定部の判定に応じて障害対応処理を行う。【選択図】図９
2012083992.tif 000002
【特許請求の範囲】
【請求項１】
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する障害識別部と、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する事前評価部と、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する救済可否判定部と、
前記救済可否判定部の判定に応じて障害対応処理を行う障害処理部と、を備える、データ障害処理装置。
【請求項２】
前記障害識別部が前記障害を識別した場合に、仕掛中の処理トランザクションを破棄するファームウェア起動部を備えることを特徴とする請求項１に記載のデータ障害処理装置。
【請求項３】
前記記憶装置として、主記憶ユニット及びキャッシュメモリユニットを備えることを特徴とする請求項１または請求項２に記載のデータ障害処理装置。
【請求項４】
前記プロセッサは、
前記事前評価リクエストの発行の前に、前記キャッシュメモリユニットから前記アドレスに対応するデータを掃き出すことを要求するリクエストであるキャッシュ掃き出しリクエストを前記キャッシュメモリユニットに対して発行するキャッシュ掃き出し指示部を備え、
前記キャッシュメモリユニットは、前記キャッシュ掃き出しリクエストに応じてデータを掃き出すキャッシュ掃き出し部を備えることを特徴とする請求項３に記載のデータ障害処理装置。
【請求項５】
前記事前評価部は、前記キャッシュ掃き出し部からの処理完了通知が行われた後に、前記事前評価リクエストを発行することを特徴とする請求項４に記載のデータ障害処理装置。
【請求項６】
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置におけるデータ障害処理方法であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて前記記憶装置から供給されたデータに障害が発生しているか否かを識別し、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行し、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定し、
前記プロセッサリリーフの実行可否の判定に応じて障害対応処理を行う、データ障害処理方法。
【請求項７】
前記障害を識別した場合に、仕掛中の処理トランザクションを破棄することを特徴とする請求項６に記載のデータ障害処理方法。
【請求項８】
前記記憶装置として、主記憶ユニット及びキャッシュメモリユニットを備えることを特徴とする請求項６または請求項７に記載のデータ障害処理方法。
【請求項９】
前記プロセッサは、
前記事前評価リクエストの発行の前に、前記キャッシュメモリユニットから前記アドレスに対応するデータを掃き出すことを要求するリクエストであるキャッシュ掃き出しリクエストを前記キャッシュメモリユニットに対して発行し、
前記キャッシュメモリユニットは、前記キャッシュ掃き出しリクエストに応じてデータを掃き出すことを特徴とする請求項８に記載のデータ障害処理装置。
【請求項１０】
前記キャッシュメモリユニットからのデータ掃き出しの処理完了通知が行われた後に、前記事前評価リクエストを発行することを特徴とする請求項９に記載のデータ障害処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ障害処理装置、及びデータ障害処理方法に関する。
【背景技術】
【０００２】
近年の情報処理装置では、機能が向上し、多くのハードウェアを実装しているため、必然的に故障発生箇所が増加している。さらに、情報処理装置に対する信頼性向上の要求は高まってきている。
【０００３】
情報処理装置内のメモリ、キャッシュメモリ、及びそれらを接続しているシステムバスのデータ誤りについては、ＥＣＣ（Error Checking and Correcting）による誤り訂正とエラーの検出が行われている。
【０００４】
特許文献１は、ＥＣＣを用いたデータ障害処理装置に関する技術を開示している。当該データ処理装置の構成を図１０に示す。このデータ処理装置は、ＥＣＣによる訂正が不可であるエラーを検出した場合に、ＥＣＣコードを専用コードに差し替えること（以下の説明では、ポイズン化と記載する。）により、余分な障害検出、報告を抑止するとともに、不正データを参照するプロセッサに対して確実にエラーを通知する技術が開示されている。当該データ処理装置によるポイズン化の具体的な効果として以下の事項が挙げられる。
【０００５】
（１） 間欠故障からの救済
ＤＩＭＭ（Dual Inline Memory Module）やキャッシュメモリ等における訂正不可能障害の要因として、メモリセルが複数ビット故障する場合と、制御系が故障する場合と、が挙げられる。制御系が故障した場合には、再度このＤＩＭＭ等にアクセスしなおすことにより正常データを得ることが可能である。このデータ障害処理装置では、リクエスト供給元（プロセッサ）に障害処理を委ねるため、リクエスト供給元の制御によっては間欠故障からの救済が可能となる。
【０００６】
（２） データインテグリティの保証
上記のポイズン化によれば、いつ何時にどのようなリクエスト供給元から故障データにアクセスしても、リクエスト要求元はデータ内容が故障していることを把握することができる。
【０００７】
（３） 障害発生箇所の特定
上記のポイズン化によれば、訂正不可能障害が発生した箇所のみがエラー報告を行う。これにより、不要な障害報告を抑止できる。
【０００８】
（４） 動作の継続
上記のデータ障害処理装置は、訂正不可能障害が生じた場合であってもシステムとしての動作を継続しやすい構成となる。詳細には、障害発生箇所が特定できるため、データが壊れた場合であっても壊れたデータを使用しない限り、即時にシステムチェックを行うことなく、システム動作を継続できる。例えば、二度と使用しないワーク用データが故障した場合等には、システム動作をそのまま継続できる。さらに、壊れたデータを参照した場合であっても、データインテグリティが保証されているため、リクエスト要求元の処理に依存した障害処理を実行すればよく、ハードウェアによるシステムチェックを行う必要が無い。さらにまた、ポイズン化されたデータは必要に応じて初期値等に書き換える（ポイズン状態からの解除）ことが可能である。
【０００９】
なお、ポイズン状態からの解除は、ＥＣＣコードを付与したデータを全て書き換えることによりポイズン化された状態を解除することができる。たとえば、８バイトのデータにＥＣＣコードを付与した場合、この８バイトのデータを更新することによりポイズン状態を解除することができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開平８−２６３４５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に記載のデータ障害処理装置では、繰り返し障害が発生してしまう恐れがある。この問題の詳細について以下に説明する。
【００１２】
特許文献１のデータ障害処理装置では、プロセッサ等が主記憶またはキャッシュメモリにアクセスした際に、アクセスしたデータに訂正不可能障害が生じていた場合（またはポイズン化されたデータであった場合）、プロセッサ等はそのデータが使用できないことを検出できる。この場合、各装置において予め定められたプロセッサチェック等の障害処理が実行される。
【００１３】
障害処理として、障害が発生した時点以降の処理を別のプロセッサに引き継いで実行するプロセッサリリーフ処理がある。プロセッサリリーフ処理において、処理を引き継いだプロセッサは、訂正不可能障害が発生したデータにアクセスする処理、またはそれ以前の再開可能な処理から再実行を行う。この場合、処理を引き継いだプロセッサが再度データアクセスをしてもデータが故障状態のままであり、再度訂正不可状態を検出する。そして、このプロセッサは再度のプロセッサリリーフ処理を行い、さらに別のプロセッサに処理を引き継ぐこととなる。このように、訂正不可能障害が生じた場合に、プロセッサリリーフが繰り返し行われることとなり、プロセッサが枯渇してしまう。プロセッサが枯渇することにより、システムチェックを行う必要が生じてしまう。
【００１４】
上記のプロセッサが枯渇してしまう問題を図１１に示す。前述したように、特許文献１に記載のデータ障害処理装置では、訂正不可能障害が生じた場合であっても、プロセッサリリーフを行う。これにより、処理を受け継いだプロセッサが訂正不可能障害の生じているデータに対するリードリクエストを発行することとなってしまう。
【００１５】
ここでデータ障害の救済可否についての判断が出来れば、上記の問題を回避することができる。しかし特許文献１のデータ障害処理装置では、発生した障害が救済できるか否か（訂正不可能障害であるか否か）についての判定を行うことについての記載が無い。一般に、救済の可否の判断は、キャッシュステータス、リクエスト動作、障害箇所、障害種類（間欠・固定）等の組み合わせにより定まるため、複雑なハードウェア構成と処理機能が必要となってしまう。そのため、救済の可否の判断を行うことは極めて困難である。
【００１６】
このように、特許文献１に記載のデータ障害処理装置では、データ障害の救済可否の判断が困難であるため、プロセッサリリーフを行っても繰り返し障害が生じてしまうという問題がある。
【００１７】
本発明は、このような問題を解決するためになされたものであり、繰り返しの障害発生を回避してプロセッサリリーフを実現するデータ障害処理装置、及びデータ障害処理方法を提供することを主たる目的とする。
【課題を解決するための手段】
【００１８】
本発明にかかるデータ障害処理装置の一態様は、
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する障害識別部と、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する事前評価部と、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する救済可否判定部と、
前記救済可否判定部の判定に応じて障害対応処理を行う障害処理部と、を備える、ものである。
【００１９】
本発明にかかるデータ障害処理方法の一態様は、
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置におけるデータ障害処理方法であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて前記記憶装置から供給されたデータに障害が発生しているか否かを識別し、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行し、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定し、
前記プロセッサリリーフの実行可否の判定に応じて障害対応処理を行う、ものである。
【発明の効果】
【００２０】
本発明によれば、繰り返しの障害を回避したプロセッサリリーフを実現するデータ障害処理装置、及びデータ障害処理方法を提供することができる。
【図面の簡単な説明】
【００２１】
【図１】実施の形態１にかかるデータ障害処理装置の構成を示すブロック図である。
【図２】実施の形態１にかかるキャッシュユニットのキャッシュステータスを示す図である。
【図３】実施の形態１にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図４】実施の形態１にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図５】実施の形態１にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図６】実施の形態１にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図７】実施の形態１にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図８】実施の形態１にかかるデータ障害処理装置の処理概要を示す図である。
【図９】実施の形態１にかかるデータ障害処理装置の構成を示すブロック図である。
【図１０】特許文献１に記載のデータ障害処理装置の構成を示すブロック図である。
【図１１】特許文献１に記載のデータ障害処理装置の処理概要を示す図である。
【発明を実施するための形態】
【００２２】
＜実施の形態１＞
以下、図面を参照して本発明の実施の形態について説明する。図１は、本実施の形態にかかるデータ障害処理装置の構成を示すブロック図である。データ障害処理装置は、主記憶ユニット１と、キャッシュメモリユニット２と、プロセッサユニット３と、を含む。なお、本実施の形態では、主記憶ユニット１、キャッシュメモリユニット２を単一構成として説明するが、複数の主記憶ユニット、キャッシュメモリユニットを含むデータ障害処理装置であってもよい。図示していないが、プロセッサリリーフが出来るよう、データ障害処理装置は、プロセッサユニット３を複数含む構成である。
【００２３】
主記憶ユニット１は、主記憶部１０１と、アクセス制御部１０２と、ＥＣＣ（Error Check and Correct）チェック部１０３と、ポイズン化処理部１０４と、を備える。主記憶部１０１は、所謂メインメモリであり、一般的な情報処理装置が備える記憶装置である。主記憶部１０１を構成する素子等に関しても一般に用いられているものを用いればよい。
【００２４】
アクセス制御部１０２は、キャッシュメモリユニット２またはプロセッサユニット３からのリクエストに応じて、主記憶部１０１からのデータ読み出し、及び主記憶部１０１へのデータ書き込みを制御する処理部である。アクセス制御部１０２の有する機能は、一般的な情報処理装置が有する機能である。
【００２５】
ＥＣＣチェック部１０３は、一般的に知られているＥＣＣ（Error Collection Code：誤り訂正符号）を実現するための処理部である。ここで、ＥＣＣチェック部１０３が採用するＥＣＣ（すなわちコード）に関して特に制約はない。ＥＣＣチェック部１０３は、主記憶部１０１から読み出したデータをアクセス制御部１０２から受け取り、受け取ったデータに対してＥＣＣを用いたエラー検出、データ訂正等を実行する。さらにＥＣＣチェック部１０３は、検出したエラーを報告する機能を持つ。ＥＣＣチェック部１０３がエラーを検出しなかった場合、ＥＣＣチェック部１０３はデータ訂正等の処理を行わない。一方、ＥＣＣチェック部１０３が訂正可能なエラーを検出した場合、ＥＣＣチェック部１０３はデータの訂正処理を行う。訂正不可能なエラーの検出を行った場合、ＥＣＣチェック部１０３は、当該データに対してＥＣＣコード（すなわち誤り訂正符号）を付加する。ＥＣＣチェック部１０３は、ＥＣＣを用いたエラー検出、データ訂正等を実行後に、データ及び検出した障害種別をポイズン化部１０４に通知する。
【００２６】
ポイズン化部１０４は、障害種別が「訂正不可能」を示すデータを受け取った際に、データに付加されているＥＣＣコードをポイズン化コードに変換して、キャッシュユニット２に供給する。障害種別が「訂正不可能」以外を示すデータを受け取った場合、ポイズン化部１０４は、受け取ったデータをそのままキャッシュユニット２に供給する。なお、ポイズン化コードとして用いるコートは、訂正不可データであることを識別できるコードであれば、如何なるコードを用いてもよい。
【００２７】
続いて、キャッシュユニット２の構成について説明する。キャッシュユニット２は、ストアインキャッシュ２０１と、アクセス制御部２０２と、ＥＣＣチェック部２０３と、ポイズン化処理部２０４と、リクエスト制御部２０５と、キャッシュ掃き出し部２０６と、を備える。
【００２８】
ストアインキャッシュ２０１は、キャッシュユニット２内においてキャッシュデータを保持する記憶部である。ストアインキャッシュ２０１の論理構造、物理構造、キャッシュ階層構造についての特別な制限はなく、一般に用いられる仕組みを有すればよい。なお、ストアイン型のキャッシュ以外のキャッシュ記憶部を採用してもよい。
【００２９】
アクセス制御部２０２は、ストアインキャッシュ２０１からのデータの読み出し、書き込みを制御する処理部である。また、アクセス制御部２０２は、ストアキャッシュ２０１内に所望のデータが無い場合にアクセス制御部１０２にアクセスする。アクセス制御部２０２の有する機能は、一般的なキャッシュメモリが有する機能である。
【００３０】
アクセス制御部２０２は、後述のキャッシュ掃き出し部２０６からキャッシュの掃き出しにかかるリクエスト（以後、キャッシュ掃き出しリクエストと記載する。）を受信した場合に、当該キャッシュ掃き出しリクエストに含まれる掃き出し対象のアドレス（以後、キャッシュ掃き出しアドレスと記載する。）を抽出する。アクセス制御部２０２は、ストアインキャッシュ２０１内の当該キャッシュ掃き出しアドレスにデータが存在するか否かを判定する。当該キャッシュ掃き出しアドレスにデータが存在しない場合、アクセス制御部２０２は処理を終了する。一方、当該キャッシュ掃き出しアドレスにデータが存在する場合、アクセス制御部２０２は、キャッシュステータスに応じてキャッシュ内容を破棄、または主記憶部１０１に反映させる処理を実行する。本実施の形態にかかるデータ障害処理装置が採用するキャッシュステータスについては、図２を用いて後述する。
【００３１】
ＥＣＣチェック部２０３は、一般的に知られているＥＣＣ（Error Collection Code：誤り訂正符号）を実現するための処理部である。ここで、ＥＣＣチェック部２０３が採用するＥＣＣコードに関して特に制約はない。さらに、ＥＣＣチェック部２０３が採用するＥＣＣコードは、ＥＣＣチェック部１０３が採用するＥＣＣコードとは独立したものであり、関連性を持たせる必要は無い。
【００３２】
ＥＣＣチェック部２０３は、ストアインキャッシュ２０１から読み出したデータをアクセス制御部２０２から受け取り、受け取ったデータに対してＥＣＣコードを用いたエラー検出、データ訂正等を実行する。さらにＥＣＣチェック部２０３は、検出したエラーを報告する機能を持つ。エラーを検出しなかった場合、ＥＣＣチェック部２０３はデータ訂正等の処理を行わない。一方、訂正可能なエラーを検出した場合、ＥＣＣチェック部２０３はデータの訂正処理を行う。訂正不可能なエラーの検出をした場合、ＥＣＣチェック部２０３は、当該データに対してＥＣＣコードを付加する。ＥＣＣチェック部２０３は、ＥＣＣを用いたエラー検出、データ訂正等を実行後に、データ及び検出した障害種別をポイズン化部２０４に通知する。
【００３３】
ポイズン化部２０４は、障害種別が「訂正不可能」を示すデータを受け取った際に、データに付加されているＥＣＣコードをポイズン化コードに変換して、リクエスト制御部２０５に供給する。障害種別が「訂正不可能」以外を示すデータを受け取った場合、ポイズン化部２０４は、受け取ったデータをそのままリクエスト制御部２０５に供給する。なお、ポイズン化コードとして用いるコードは、訂正不可データであることを識別できるコードであれば、如何なるコードを用いてもよい。
【００３４】
リクエスト制御部２０５は、プロセッサユニット３から受け付けたリクエストを処理する処理部である。リクエスト制御部２０５は、アクセス制御部１０２を介した主記憶部１０１へのアクセス、及びストアインキャッシュ２０１へのアクセスを行うためにアクセス制御部２０２にリクエストを発行する。リクエスト制御部２０５は、ポイズン化部１０４から送信されたデータ（主記憶部１０１から読み出したデータ）、またはポイズン化部２０４から送信されたデータ（ストアインメモリ２０１から読み出したデータ）をリプライデータとして受け取る。リクエスト制御部２０５は、受け取ったリプライデータをリクエスト要求元であるプロセッサユニット３に供給する。プロセッサユニット３へのデータ供給に際して、リクエスト制御部２０５は、データとともに当該データに対するＥＣＣコードも合わせて出力する。ＥＣＣコードにより、データに訂正不可能な障害が発生したか否かを、プロセッサユニット３が判断できるようにする。
【００３５】
リクエスト制御部２０５は、後述するプロセッサユニット３内のアクセス制御部３０１からキャッシュ掃き出しリクエストを受け付けた場合、キャッシュ掃き出し部２０５に対して当該キャッシュ掃き出しリクエストを転送する。キャッシュ掃き出しリクエストには、キャッシュ掃き出しアドレス（すなわち主記憶部１０１にデータ更新を反映するアドレス）が含まれる。
【００３６】
キャッシュ掃き出し部２０６は、キャッシュ掃き出しリクエストを受け付けた場合、アクセス制御部２０２に対してキャッシュ掃き出しアドレスのデータを主記憶１０１に更新するように指示する。
【００３７】
次に、プロセッサユニット３の構成について説明する。プロセッサユニット３は、プロセッサ機能部（図示せず）と、リクエスト制御部３０１と、障害処理部３０２と、障害識別部３０２と、ＦＷ（FirmWare：ファームウェア）起動部３０３と、キャッシュ掃き出し指示部３０４と、事前評価部３０５と、救済可否判定部３０６と、を備える。
【００３８】
プロセッサ機能部（図示せず）は、通常の計算処理を行う処理部である。このプロセッサ機能部（図示せず）が、必要に応じて主記憶ユニット１またはキャッシュユニット２内にあるデータに対してリクエストを発行する。
【００３９】
リクエスト制御部３０１は、プロセッサ機能部が要求する主記憶部１０１へのアクセスに関するリクエストを生成し、キャッシュユニット２に対して当該リクエストを出力する。リクエスト制御部３０１は、キャッシュユニット２から戻ってくるリプライデータを受け取る。主記憶部１０１に対するアクセスには、読み出し動作と書き込み動作がある。読み出し動作の場合、リクエスト制御部３０１はキャッシュユニット２からリプライデータを受け取る。
【００４０】
リクエスト制御部３０１は、リプライデータに付随するＥＣＣコードを利用してＥＣＣチェックを行い、リプライデータに対して障害が発生しているかを判定する。リクエスト制御部３０１は、データに対して障害が発生していない場合にはプロセッサ機能部にデータを供給して処理を終了する。
【００４１】
データに対して訂正不可能な障害が発生している場合、リクエスト制御部３０１は、プロセッサ機能部にデータを供給せず、障害識別部３０２に対して障害発生の通知及びリード要求のアドレス（読み出そうとした主記憶部１０１のアドレス）を通知する。
【００４２】
さらに、リクエスト制御部３０１は、事前評価部３０５から訂正不可能障害の状態を評価するための事前評価用のリードリクエスト（以後、以前評価リクエストと記載する。）を受け取ると、当該事前評価リクエストをキャッシュシステム２に発行する。リクエスト制御部３０１は、この事前評価リクエストに対するリプライデータを受け付けた際に、通常のリプライデータと同様にＥＣＣチェックを行い、障害の発生状況を救済可否判定部３０６に通知する。
【００４３】
なお、本実施の形態では、リクエスト制御部３０１は、キャッシュユニット２に対してリクエストを発行する形態としたが、キャッシュユニット２の存在しない装置においては直接主記憶ユニット１にリクエストを発行してもよい。
【００４４】
障害識別部３０２は、リクエスト制御部３０１からリプライデータに障害が発生した旨を知らせる通知と、リード要求のアドレスと、を受け取る。この受け取りにより、障害識別部３０２は、リプライデータに訂正不可能障害が発生したことを検出する。障害識別部３０２は、訂正不可能障害発生時にＦＷ起動部３０３に対して障害処理実行の起動指示を供給する。この指示とともに、障害識別部３０２は、リード要求のアドレスもＦＷ起動部３０３に通知する。
【００４５】
ＦＷ起動部３０３は、障害識別部３０２から起動指示及びリード要求のアドレスを受け取る。ＦＷ起動部３０３は、当該受け取りの後、ＦＷ起動部３０３は、しかかり中の処理トランザクションを破棄する。そして、ＦＷ起動部３０３は、キャッシュ掃き出し指示部３０４に対してキャッシュ掃き出し用リクエストの生成を指示する。この際、ＦＷ起動部３０３は、受け付けたリード要求のアドレスをキャッシュからの掃き出した対象のアドレス（キャッシュ掃き出しアドレス）としてキャッシュ掃き出し指示部３０４に通知する。
【００４６】
なお、キャッシュの掃き出しを必要とする理由は、キャッシュ上に残っている訂正不可データ、またはポイズン化されたデータをキャッシュから追い出す、もしくは廃棄することを目的とする。キャッシュ上にこれらのデータが残っている場合、後述の事前評価部３０５が主記憶をリードする際にキャッシュヒットすることを回避するためである。
【００４７】
ＦＷ起動部３０３は、キャッシュ掃き出し指示部３０４に対するキャッシュ掃き出しリクエストの生成指示の後、キャッシュ掃き出し指示部３０４からの完了通知が行われるまで処理を待ち合わせる。キャッシュ掃き出し完了通知がなされた場合、ＦＷ起動部３０３は、事前評価部３０５に対して、リード要求のアドレスを通知し、事前評価部３０５に事前評価リクエストの発行指示を行う。ＦＷ起動部３０３は、事前評価部３０５が発行した事前評価リクエストに対するリプライデータを基に判定されたプロセッサリリーフの可否を、救済可否判定部３０６から受け付ける。プロセッサリリーフ可能との通知を受け付けた場合、ＦＷ起動部３０３は、障害処理部３０７に対してプロセッサリリーフを開始してもよい旨を示す処理指示を行う。一方、プロセッサリリーフ不可能との通知を受け付けた場合、ＦＷ起動部３０３は、障害処理部３０７に対してプロセッサリリーフを行わずに障害に対応することを指示する。
【００４８】
キャッシュ掃き出し指示部３０４は、ＦＷ起動部３０３からキャッシュ掃き出しリクエストの生成指示と、キャッシュ掃き出しアドレスを受け取る。キャッシュ掃き出し指示部３０４は、このキャッシュ掃き出しアドレスの情報を含むキャッシュ掃き出しリクエストを生成し、キャッシュユニット２に対して出力する。キャッシュ掃き出し指示部３０４は、キャッシュユニット２からキャッシュ掃き出しリクエストの完了が通知されるまで待ち合わせ、完了通知がなされた場合にＦＷ起動部３０３にキャッシュ掃き出しの完了を通知する。
【００４９】
事前評価部３０５は、ＦＷ起動部３０３から事前評価の指示を受け取る。事前評価部３０５は、事前評価指示と合わせて通知されたリード要求のアドレスを用いて事前評価リクエストを生成し、リクエスト制御部３０１を介してキャッシュユニット２に事前評価リクエストを発行する。この事前評価リクエストを実行する目的は、訂正不可能障害が解消しているか否かを評価するためである。ＥＣＣコードによる訂正ができない障害と判定された場合であっても、障害の種類によってはタイミングをずらすことにより障害が解消されていることを鑑みたものである。
【００５０】
救済可否判定部３０６は、事前評価部３０５が発行した事前評価リクエストに対してＥＣＣチェックを行った結果をリクエスト制御部３０１から受け取る。救済可否判定部３０６は、ＥＣＣチェックの結果が、データ障害が発生していないことを示すものである場合、プロセッサリリーフ可能と判定する。一方、救済可否判定部３０６は、ＥＣＣチェックの結果が、データ障害が発生していることを示すものである場合、プロセッサリリーフ不可能と判定する。救済可否判定部３０６は、プロセッサリリーフの可否をＦＷ起動部３０３に通知する。
【００５１】
障害処理部３０７は、データ障害処理装置にて規定されている障害処理を実行する処理部である。障害処理部３０７は、ファームウェアと適宜情報をやり取りし、障害処理を行う。障害処理部３０７は、ＦＷ起動部３０３から起動指示を受け取る。この際、救済可否判定部３０６によるプロセッサリリーフ可否の判断により障害対応の処理を切り換える。プロセッサリリーフが出来ない場合、障害処理部３０７は、重度障害として障害処理を行う。障害処理部３０７は、プロセッサリリーフが可能である場合には、プロセッサチェックの後に、プロセッサリリーフを行うための処理を行う。
【００５２】
次に、本実施の形態にかかるデータ障害処理装置が採用するキャッシュステータスを図２に示す。なお、キャッシュステータスは、各情報処理装置において採用するキャッシュコヒーレンシー制御に依存する。
【００５３】
本実施の形態にかかるストアインキャッシュ２０１が取り得るキャッシュステータスは、"Ｉ（Invalidate）"、"ＣＥ（Clean Exclusive）"、"ＣＳ（Clean Shared）"、"ＤＥ（Dirty Exclusive）"のいずれかである。"Ｉ"とは、キャッシュ上にデータが存在しない状態を示す。"ＣＥ"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致し、他のキャッシュにコピーが存在しない状態を示す。"ＣＳ"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致し、他のキャッシュにコピーが存在する状態を示す。"ＤＥ"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致せず、他のキャッシュにも存在していない状態を示す。"ＤＥ"の状態の場合、最新のデータはキャッシュ内にのみ存在する。
【００５４】
図３〜７に本実施の形態にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す。例えば、図３（Ｎｏ．１）では、プロセッサユニット３がリードリクエストを発行し、キャッシュヒット時（ＣＥ／ＣＳ）にキャッシュユニット２から読み出したデータがポイズン化されていた場合であって間欠障害箇所がＬ２（キャッシュ）である場合、Ｌ２キャッシュを廃棄してからプロセッサリリーフすることにより障害からの救済が規定されている。
【００５５】
図８を参照して、本実施の形態にかかるデータ障害処理装置の処理概要を改めて説明する。本実施の形態にかかるプロセッサユニット３は、キャッシュユニット２または主記憶ユニット１によりポイズン化処理の後に、訂正不可能障害の検出（障害識別部３０２）、キャッシュの掃き出し（キャッシュ掃き出し指示部３０４、キャッシュ掃き出し部２０６）、事前評価リクエストの発行（事前評価部３０５）、プロセッサリリーフの可否の判断（救済可否判定部３０６）を行う。
【００５６】
続いて本実施の形態にかかるデータ障害処理装置の効果について説明する。上述のように、読み出し対象のデータに訂正不可能障害が発生した場合、プロセッサユニット３は、当該障害を検出するとともに、再度のリクエスト（事前評価リクエスト）を発行し、当該障害が解消したかを判定し、その判定結果に応じてプロセッサリリーフを行うか否かを決定している。これにより、障害が依然として解消されていない場合にプロセッサリリーフを行うことを回避でき、繰り返しの障害発生を抑制することができる。
【００５７】
さらに、上述の事前評価部３０６及び救済可否判定部３０６の処理は、データアクセスと、そのアクセス結果の判定にかかる処理のみであるため、処理の負荷が非常に小さい。
【００５８】
さらにまた、本実施の形態にかかるデータ障害処理装置では、通常のプロセッサチェック等の処理やプロセッサリリーフの機構について修正を行うことなく、上記の機能を追加することができる。このため、様々なシステムに上記した機能（事前評価機能等）を適用することが容易である。
【００５９】
なお、本実施の形態にかかるデータ処理装置の特徴部分を図示すると図９のようになる。当該構成であっても、プロセッサユニット３は、記憶装置内で生じた障害を検出するとともに、再度のリクエストを発行し、当該障害が解消したかを判定し、その判定結果に応じてプロセッサリリーフを行うか否かを決定することができる。これにより、プロセッサリリーフ時の再度の障害発生を回避することができる。
【００６０】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【００６１】
１      主記憶ユニット
１０１  主記憶部
１０２  アクセス制御部
１０３  ＥＣＣチェック部
１０４  ポイズン化部
２      キャッシュメモリユニット
２０１  ストアインキャッシュ
２０２  アクセス制御部
２０３  ＥＣＣチェック部
２０４  ポイズン化部
２０５  リクエスト制御部
２０６  キャッシュ掃き出し部
３      プロセッサユニット
３０１  リクエスト制御部
３０２  障害識別部
３０３  ＦＷ起動部
３０４  キャッシュ掃き出し指示部
３０５  事前評価部
３０６  救済可否判定部
３０７  障害処理部
【図１】
2012083992.tif 000003
【図２】
2012083992.tif 000004
【図３】
2012083992.tif 000005
【図４】
2012083992.tif 000006
【図５】
2012083992.tif 000007
【図６】
2012083992.tif 000008
【図７】
2012083992.tif 000009
【図８】
2012083992.tif 000010
【図９】
2012083992.tif 000011
【図１０】
2012083992.tif 000012
【図１１】
2012083992.tif 000013