データ障害処理装置、及びデータ障害処理方法
【課題】繰り返しの障害発生を回避してプロセッサリリーフを実現するデータ障害処理装置、及びデータ障害処理方法を提供すること
【解決手段】データ障害処理装置は、誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサ3を備える。記憶装置は、データ供給時にデータに対して誤り訂正符号を付与する。障害識別部302は、誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する。事前評価部305は、訂正不可能障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する。救済可否判定部306は、前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する。障害処理部307は、救済可否判定部の判定に応じて障害対応処理を行う。
【解決手段】データ障害処理装置は、誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサ3を備える。記憶装置は、データ供給時にデータに対して誤り訂正符号を付与する。障害識別部302は、誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する。事前評価部305は、訂正不可能障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する。救済可否判定部306は、前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する。障害処理部307は、救済可否判定部の判定に応じて障害対応処理を行う。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ障害処理装置、及びデータ障害処理方法に関する。
【背景技術】
【0002】
近年の情報処理装置では、機能が向上し、多くのハードウェアを実装しているため、必然的に故障発生箇所が増加している。さらに、情報処理装置に対する信頼性向上の要求は高まってきている。
【0003】
情報処理装置内のメモリ、キャッシュメモリ、及びそれらを接続しているシステムバスのデータ誤りについては、ECC(Error Checking and Correcting)による誤り訂正とエラーの検出が行われている。
【0004】
特許文献1は、ECCを用いたデータ障害処理装置に関する技術を開示している。当該データ処理装置の構成を図10に示す。このデータ処理装置は、ECCによる訂正が不可であるエラーを検出した場合に、ECCコードを専用コードに差し替えること(以下の説明では、ポイズン化と記載する。)により、余分な障害検出、報告を抑止するとともに、不正データを参照するプロセッサに対して確実にエラーを通知する技術が開示されている。当該データ処理装置によるポイズン化の具体的な効果として以下の事項が挙げられる。
【0005】
(1) 間欠故障からの救済
DIMM(Dual Inline Memory Module)やキャッシュメモリ等における訂正不可能障害の要因として、メモリセルが複数ビット故障する場合と、制御系が故障する場合と、が挙げられる。制御系が故障した場合には、再度このDIMM等にアクセスしなおすことにより正常データを得ることが可能である。このデータ障害処理装置では、リクエスト供給元(プロセッサ)に障害処理を委ねるため、リクエスト供給元の制御によっては間欠故障からの救済が可能となる。
【0006】
(2) データインテグリティの保証
上記のポイズン化によれば、いつ何時にどのようなリクエスト供給元から故障データにアクセスしても、リクエスト要求元はデータ内容が故障していることを把握することができる。
【0007】
(3) 障害発生箇所の特定
上記のポイズン化によれば、訂正不可能障害が発生した箇所のみがエラー報告を行う。これにより、不要な障害報告を抑止できる。
【0008】
(4) 動作の継続
上記のデータ障害処理装置は、訂正不可能障害が生じた場合であってもシステムとしての動作を継続しやすい構成となる。詳細には、障害発生箇所が特定できるため、データが壊れた場合であっても壊れたデータを使用しない限り、即時にシステムチェックを行うことなく、システム動作を継続できる。例えば、二度と使用しないワーク用データが故障した場合等には、システム動作をそのまま継続できる。さらに、壊れたデータを参照した場合であっても、データインテグリティが保証されているため、リクエスト要求元の処理に依存した障害処理を実行すればよく、ハードウェアによるシステムチェックを行う必要が無い。さらにまた、ポイズン化されたデータは必要に応じて初期値等に書き換える(ポイズン状態からの解除)ことが可能である。
【0009】
なお、ポイズン状態からの解除は、ECCコードを付与したデータを全て書き換えることによりポイズン化された状態を解除することができる。たとえば、8バイトのデータにECCコードを付与した場合、この8バイトのデータを更新することによりポイズン状態を解除することができる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平8−263453号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、特許文献1に記載のデータ障害処理装置では、繰り返し障害が発生してしまう恐れがある。この問題の詳細について以下に説明する。
【0012】
特許文献1のデータ障害処理装置では、プロセッサ等が主記憶またはキャッシュメモリにアクセスした際に、アクセスしたデータに訂正不可能障害が生じていた場合(またはポイズン化されたデータであった場合)、プロセッサ等はそのデータが使用できないことを検出できる。この場合、各装置において予め定められたプロセッサチェック等の障害処理が実行される。
【0013】
障害処理として、障害が発生した時点以降の処理を別のプロセッサに引き継いで実行するプロセッサリリーフ処理がある。プロセッサリリーフ処理において、処理を引き継いだプロセッサは、訂正不可能障害が発生したデータにアクセスする処理、またはそれ以前の再開可能な処理から再実行を行う。この場合、処理を引き継いだプロセッサが再度データアクセスをしてもデータが故障状態のままであり、再度訂正不可状態を検出する。そして、このプロセッサは再度のプロセッサリリーフ処理を行い、さらに別のプロセッサに処理を引き継ぐこととなる。このように、訂正不可能障害が生じた場合に、プロセッサリリーフが繰り返し行われることとなり、プロセッサが枯渇してしまう。プロセッサが枯渇することにより、システムチェックを行う必要が生じてしまう。
【0014】
上記のプロセッサが枯渇してしまう問題を図11に示す。前述したように、特許文献1に記載のデータ障害処理装置では、訂正不可能障害が生じた場合であっても、プロセッサリリーフを行う。これにより、処理を受け継いだプロセッサが訂正不可能障害の生じているデータに対するリードリクエストを発行することとなってしまう。
【0015】
ここでデータ障害の救済可否についての判断が出来れば、上記の問題を回避することができる。しかし特許文献1のデータ障害処理装置では、発生した障害が救済できるか否か(訂正不可能障害であるか否か)についての判定を行うことについての記載が無い。一般に、救済の可否の判断は、キャッシュステータス、リクエスト動作、障害箇所、障害種類(間欠・固定)等の組み合わせにより定まるため、複雑なハードウェア構成と処理機能が必要となってしまう。そのため、救済の可否の判断を行うことは極めて困難である。
【0016】
このように、特許文献1に記載のデータ障害処理装置では、データ障害の救済可否の判断が困難であるため、プロセッサリリーフを行っても繰り返し障害が生じてしまうという問題がある。
【0017】
本発明は、このような問題を解決するためになされたものであり、繰り返しの障害発生を回避してプロセッサリリーフを実現するデータ障害処理装置、及びデータ障害処理方法を提供することを主たる目的とする。
【課題を解決するための手段】
【0018】
本発明にかかるデータ障害処理装置の一態様は、
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する障害識別部と、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する事前評価部と、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する救済可否判定部と、
前記救済可否判定部の判定に応じて障害対応処理を行う障害処理部と、を備える、ものである。
【0019】
本発明にかかるデータ障害処理方法の一態様は、
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置におけるデータ障害処理方法であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて前記記憶装置から供給されたデータに障害が発生しているか否かを識別し、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行し、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定し、
前記プロセッサリリーフの実行可否の判定に応じて障害対応処理を行う、ものである。
【発明の効果】
【0020】
本発明によれば、繰り返しの障害を回避したプロセッサリリーフを実現するデータ障害処理装置、及びデータ障害処理方法を提供することができる。
【図面の簡単な説明】
【0021】
【図1】実施の形態1にかかるデータ障害処理装置の構成を示すブロック図である。
【図2】実施の形態1にかかるキャッシュユニットのキャッシュステータスを示す図である。
【図3】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図4】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図5】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図6】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図7】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図8】実施の形態1にかかるデータ障害処理装置の処理概要を示す図である。
【図9】実施の形態1にかかるデータ障害処理装置の構成を示すブロック図である。
【図10】特許文献1に記載のデータ障害処理装置の構成を示すブロック図である。
【図11】特許文献1に記載のデータ障害処理装置の処理概要を示す図である。
【発明を実施するための形態】
【0022】
<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態にかかるデータ障害処理装置の構成を示すブロック図である。データ障害処理装置は、主記憶ユニット1と、キャッシュメモリユニット2と、プロセッサユニット3と、を含む。なお、本実施の形態では、主記憶ユニット1、キャッシュメモリユニット2を単一構成として説明するが、複数の主記憶ユニット、キャッシュメモリユニットを含むデータ障害処理装置であってもよい。図示していないが、プロセッサリリーフが出来るよう、データ障害処理装置は、プロセッサユニット3を複数含む構成である。
【0023】
主記憶ユニット1は、主記憶部101と、アクセス制御部102と、ECC(Error Check and Correct)チェック部103と、ポイズン化処理部104と、を備える。主記憶部101は、所謂メインメモリであり、一般的な情報処理装置が備える記憶装置である。主記憶部101を構成する素子等に関しても一般に用いられているものを用いればよい。
【0024】
アクセス制御部102は、キャッシュメモリユニット2またはプロセッサユニット3からのリクエストに応じて、主記憶部101からのデータ読み出し、及び主記憶部101へのデータ書き込みを制御する処理部である。アクセス制御部102の有する機能は、一般的な情報処理装置が有する機能である。
【0025】
ECCチェック部103は、一般的に知られているECC(Error Collection Code:誤り訂正符号)を実現するための処理部である。ここで、ECCチェック部103が採用するECC(すなわちコード)に関して特に制約はない。ECCチェック部103は、主記憶部101から読み出したデータをアクセス制御部102から受け取り、受け取ったデータに対してECCを用いたエラー検出、データ訂正等を実行する。さらにECCチェック部103は、検出したエラーを報告する機能を持つ。ECCチェック部103がエラーを検出しなかった場合、ECCチェック部103はデータ訂正等の処理を行わない。一方、ECCチェック部103が訂正可能なエラーを検出した場合、ECCチェック部103はデータの訂正処理を行う。訂正不可能なエラーの検出を行った場合、ECCチェック部103は、当該データに対してECCコード(すなわち誤り訂正符号)を付加する。ECCチェック部103は、ECCを用いたエラー検出、データ訂正等を実行後に、データ及び検出した障害種別をポイズン化部104に通知する。
【0026】
ポイズン化部104は、障害種別が「訂正不可能」を示すデータを受け取った際に、データに付加されているECCコードをポイズン化コードに変換して、キャッシュユニット2に供給する。障害種別が「訂正不可能」以外を示すデータを受け取った場合、ポイズン化部104は、受け取ったデータをそのままキャッシュユニット2に供給する。なお、ポイズン化コードとして用いるコートは、訂正不可データであることを識別できるコードであれば、如何なるコードを用いてもよい。
【0027】
続いて、キャッシュユニット2の構成について説明する。キャッシュユニット2は、ストアインキャッシュ201と、アクセス制御部202と、ECCチェック部203と、ポイズン化処理部204と、リクエスト制御部205と、キャッシュ掃き出し部206と、を備える。
【0028】
ストアインキャッシュ201は、キャッシュユニット2内においてキャッシュデータを保持する記憶部である。ストアインキャッシュ201の論理構造、物理構造、キャッシュ階層構造についての特別な制限はなく、一般に用いられる仕組みを有すればよい。なお、ストアイン型のキャッシュ以外のキャッシュ記憶部を採用してもよい。
【0029】
アクセス制御部202は、ストアインキャッシュ201からのデータの読み出し、書き込みを制御する処理部である。また、アクセス制御部202は、ストアキャッシュ201内に所望のデータが無い場合にアクセス制御部102にアクセスする。アクセス制御部202の有する機能は、一般的なキャッシュメモリが有する機能である。
【0030】
アクセス制御部202は、後述のキャッシュ掃き出し部206からキャッシュの掃き出しにかかるリクエスト(以後、キャッシュ掃き出しリクエストと記載する。)を受信した場合に、当該キャッシュ掃き出しリクエストに含まれる掃き出し対象のアドレス(以後、キャッシュ掃き出しアドレスと記載する。)を抽出する。アクセス制御部202は、ストアインキャッシュ201内の当該キャッシュ掃き出しアドレスにデータが存在するか否かを判定する。当該キャッシュ掃き出しアドレスにデータが存在しない場合、アクセス制御部202は処理を終了する。一方、当該キャッシュ掃き出しアドレスにデータが存在する場合、アクセス制御部202は、キャッシュステータスに応じてキャッシュ内容を破棄、または主記憶部101に反映させる処理を実行する。本実施の形態にかかるデータ障害処理装置が採用するキャッシュステータスについては、図2を用いて後述する。
【0031】
ECCチェック部203は、一般的に知られているECC(Error Collection Code:誤り訂正符号)を実現するための処理部である。ここで、ECCチェック部203が採用するECCコードに関して特に制約はない。さらに、ECCチェック部203が採用するECCコードは、ECCチェック部103が採用するECCコードとは独立したものであり、関連性を持たせる必要は無い。
【0032】
ECCチェック部203は、ストアインキャッシュ201から読み出したデータをアクセス制御部202から受け取り、受け取ったデータに対してECCコードを用いたエラー検出、データ訂正等を実行する。さらにECCチェック部203は、検出したエラーを報告する機能を持つ。エラーを検出しなかった場合、ECCチェック部203はデータ訂正等の処理を行わない。一方、訂正可能なエラーを検出した場合、ECCチェック部203はデータの訂正処理を行う。訂正不可能なエラーの検出をした場合、ECCチェック部203は、当該データに対してECCコードを付加する。ECCチェック部203は、ECCを用いたエラー検出、データ訂正等を実行後に、データ及び検出した障害種別をポイズン化部204に通知する。
【0033】
ポイズン化部204は、障害種別が「訂正不可能」を示すデータを受け取った際に、データに付加されているECCコードをポイズン化コードに変換して、リクエスト制御部205に供給する。障害種別が「訂正不可能」以外を示すデータを受け取った場合、ポイズン化部204は、受け取ったデータをそのままリクエスト制御部205に供給する。なお、ポイズン化コードとして用いるコードは、訂正不可データであることを識別できるコードであれば、如何なるコードを用いてもよい。
【0034】
リクエスト制御部205は、プロセッサユニット3から受け付けたリクエストを処理する処理部である。リクエスト制御部205は、アクセス制御部102を介した主記憶部101へのアクセス、及びストアインキャッシュ201へのアクセスを行うためにアクセス制御部202にリクエストを発行する。リクエスト制御部205は、ポイズン化部104から送信されたデータ(主記憶部101から読み出したデータ)、またはポイズン化部204から送信されたデータ(ストアインメモリ201から読み出したデータ)をリプライデータとして受け取る。リクエスト制御部205は、受け取ったリプライデータをリクエスト要求元であるプロセッサユニット3に供給する。プロセッサユニット3へのデータ供給に際して、リクエスト制御部205は、データとともに当該データに対するECCコードも合わせて出力する。ECCコードにより、データに訂正不可能な障害が発生したか否かを、プロセッサユニット3が判断できるようにする。
【0035】
リクエスト制御部205は、後述するプロセッサユニット3内のアクセス制御部301からキャッシュ掃き出しリクエストを受け付けた場合、キャッシュ掃き出し部205に対して当該キャッシュ掃き出しリクエストを転送する。キャッシュ掃き出しリクエストには、キャッシュ掃き出しアドレス(すなわち主記憶部101にデータ更新を反映するアドレス)が含まれる。
【0036】
キャッシュ掃き出し部206は、キャッシュ掃き出しリクエストを受け付けた場合、アクセス制御部202に対してキャッシュ掃き出しアドレスのデータを主記憶101に更新するように指示する。
【0037】
次に、プロセッサユニット3の構成について説明する。プロセッサユニット3は、プロセッサ機能部(図示せず)と、リクエスト制御部301と、障害処理部302と、障害識別部302と、FW(FirmWare:ファームウェア)起動部303と、キャッシュ掃き出し指示部304と、事前評価部305と、救済可否判定部306と、を備える。
【0038】
プロセッサ機能部(図示せず)は、通常の計算処理を行う処理部である。このプロセッサ機能部(図示せず)が、必要に応じて主記憶ユニット1またはキャッシュユニット2内にあるデータに対してリクエストを発行する。
【0039】
リクエスト制御部301は、プロセッサ機能部が要求する主記憶部101へのアクセスに関するリクエストを生成し、キャッシュユニット2に対して当該リクエストを出力する。リクエスト制御部301は、キャッシュユニット2から戻ってくるリプライデータを受け取る。主記憶部101に対するアクセスには、読み出し動作と書き込み動作がある。読み出し動作の場合、リクエスト制御部301はキャッシュユニット2からリプライデータを受け取る。
【0040】
リクエスト制御部301は、リプライデータに付随するECCコードを利用してECCチェックを行い、リプライデータに対して障害が発生しているかを判定する。リクエスト制御部301は、データに対して障害が発生していない場合にはプロセッサ機能部にデータを供給して処理を終了する。
【0041】
データに対して訂正不可能な障害が発生している場合、リクエスト制御部301は、プロセッサ機能部にデータを供給せず、障害識別部302に対して障害発生の通知及びリード要求のアドレス(読み出そうとした主記憶部101のアドレス)を通知する。
【0042】
さらに、リクエスト制御部301は、事前評価部305から訂正不可能障害の状態を評価するための事前評価用のリードリクエスト(以後、以前評価リクエストと記載する。)を受け取ると、当該事前評価リクエストをキャッシュシステム2に発行する。リクエスト制御部301は、この事前評価リクエストに対するリプライデータを受け付けた際に、通常のリプライデータと同様にECCチェックを行い、障害の発生状況を救済可否判定部306に通知する。
【0043】
なお、本実施の形態では、リクエスト制御部301は、キャッシュユニット2に対してリクエストを発行する形態としたが、キャッシュユニット2の存在しない装置においては直接主記憶ユニット1にリクエストを発行してもよい。
【0044】
障害識別部302は、リクエスト制御部301からリプライデータに障害が発生した旨を知らせる通知と、リード要求のアドレスと、を受け取る。この受け取りにより、障害識別部302は、リプライデータに訂正不可能障害が発生したことを検出する。障害識別部302は、訂正不可能障害発生時にFW起動部303に対して障害処理実行の起動指示を供給する。この指示とともに、障害識別部302は、リード要求のアドレスもFW起動部303に通知する。
【0045】
FW起動部303は、障害識別部302から起動指示及びリード要求のアドレスを受け取る。FW起動部303は、当該受け取りの後、FW起動部303は、しかかり中の処理トランザクションを破棄する。そして、FW起動部303は、キャッシュ掃き出し指示部304に対してキャッシュ掃き出し用リクエストの生成を指示する。この際、FW起動部303は、受け付けたリード要求のアドレスをキャッシュからの掃き出した対象のアドレス(キャッシュ掃き出しアドレス)としてキャッシュ掃き出し指示部304に通知する。
【0046】
なお、キャッシュの掃き出しを必要とする理由は、キャッシュ上に残っている訂正不可データ、またはポイズン化されたデータをキャッシュから追い出す、もしくは廃棄することを目的とする。キャッシュ上にこれらのデータが残っている場合、後述の事前評価部305が主記憶をリードする際にキャッシュヒットすることを回避するためである。
【0047】
FW起動部303は、キャッシュ掃き出し指示部304に対するキャッシュ掃き出しリクエストの生成指示の後、キャッシュ掃き出し指示部304からの完了通知が行われるまで処理を待ち合わせる。キャッシュ掃き出し完了通知がなされた場合、FW起動部303は、事前評価部305に対して、リード要求のアドレスを通知し、事前評価部305に事前評価リクエストの発行指示を行う。FW起動部303は、事前評価部305が発行した事前評価リクエストに対するリプライデータを基に判定されたプロセッサリリーフの可否を、救済可否判定部306から受け付ける。プロセッサリリーフ可能との通知を受け付けた場合、FW起動部303は、障害処理部307に対してプロセッサリリーフを開始してもよい旨を示す処理指示を行う。一方、プロセッサリリーフ不可能との通知を受け付けた場合、FW起動部303は、障害処理部307に対してプロセッサリリーフを行わずに障害に対応することを指示する。
【0048】
キャッシュ掃き出し指示部304は、FW起動部303からキャッシュ掃き出しリクエストの生成指示と、キャッシュ掃き出しアドレスを受け取る。キャッシュ掃き出し指示部304は、このキャッシュ掃き出しアドレスの情報を含むキャッシュ掃き出しリクエストを生成し、キャッシュユニット2に対して出力する。キャッシュ掃き出し指示部304は、キャッシュユニット2からキャッシュ掃き出しリクエストの完了が通知されるまで待ち合わせ、完了通知がなされた場合にFW起動部303にキャッシュ掃き出しの完了を通知する。
【0049】
事前評価部305は、FW起動部303から事前評価の指示を受け取る。事前評価部305は、事前評価指示と合わせて通知されたリード要求のアドレスを用いて事前評価リクエストを生成し、リクエスト制御部301を介してキャッシュユニット2に事前評価リクエストを発行する。この事前評価リクエストを実行する目的は、訂正不可能障害が解消しているか否かを評価するためである。ECCコードによる訂正ができない障害と判定された場合であっても、障害の種類によってはタイミングをずらすことにより障害が解消されていることを鑑みたものである。
【0050】
救済可否判定部306は、事前評価部305が発行した事前評価リクエストに対してECCチェックを行った結果をリクエスト制御部301から受け取る。救済可否判定部306は、ECCチェックの結果が、データ障害が発生していないことを示すものである場合、プロセッサリリーフ可能と判定する。一方、救済可否判定部306は、ECCチェックの結果が、データ障害が発生していることを示すものである場合、プロセッサリリーフ不可能と判定する。救済可否判定部306は、プロセッサリリーフの可否をFW起動部303に通知する。
【0051】
障害処理部307は、データ障害処理装置にて規定されている障害処理を実行する処理部である。障害処理部307は、ファームウェアと適宜情報をやり取りし、障害処理を行う。障害処理部307は、FW起動部303から起動指示を受け取る。この際、救済可否判定部306によるプロセッサリリーフ可否の判断により障害対応の処理を切り換える。プロセッサリリーフが出来ない場合、障害処理部307は、重度障害として障害処理を行う。障害処理部307は、プロセッサリリーフが可能である場合には、プロセッサチェックの後に、プロセッサリリーフを行うための処理を行う。
【0052】
次に、本実施の形態にかかるデータ障害処理装置が採用するキャッシュステータスを図2に示す。なお、キャッシュステータスは、各情報処理装置において採用するキャッシュコヒーレンシー制御に依存する。
【0053】
本実施の形態にかかるストアインキャッシュ201が取り得るキャッシュステータスは、"I(Invalidate)"、"CE(Clean Exclusive)"、"CS(Clean Shared)"、"DE(Dirty Exclusive)"のいずれかである。"I"とは、キャッシュ上にデータが存在しない状態を示す。"CE"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致し、他のキャッシュにコピーが存在しない状態を示す。"CS"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致し、他のキャッシュにコピーが存在する状態を示す。"DE"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致せず、他のキャッシュにも存在していない状態を示す。"DE"の状態の場合、最新のデータはキャッシュ内にのみ存在する。
【0054】
図3〜7に本実施の形態にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す。例えば、図3(No.1)では、プロセッサユニット3がリードリクエストを発行し、キャッシュヒット時(CE/CS)にキャッシュユニット2から読み出したデータがポイズン化されていた場合であって間欠障害箇所がL2(キャッシュ)である場合、L2キャッシュを廃棄してからプロセッサリリーフすることにより障害からの救済が規定されている。
【0055】
図8を参照して、本実施の形態にかかるデータ障害処理装置の処理概要を改めて説明する。本実施の形態にかかるプロセッサユニット3は、キャッシュユニット2または主記憶ユニット1によりポイズン化処理の後に、訂正不可能障害の検出(障害識別部302)、キャッシュの掃き出し(キャッシュ掃き出し指示部304、キャッシュ掃き出し部206)、事前評価リクエストの発行(事前評価部305)、プロセッサリリーフの可否の判断(救済可否判定部306)を行う。
【0056】
続いて本実施の形態にかかるデータ障害処理装置の効果について説明する。上述のように、読み出し対象のデータに訂正不可能障害が発生した場合、プロセッサユニット3は、当該障害を検出するとともに、再度のリクエスト(事前評価リクエスト)を発行し、当該障害が解消したかを判定し、その判定結果に応じてプロセッサリリーフを行うか否かを決定している。これにより、障害が依然として解消されていない場合にプロセッサリリーフを行うことを回避でき、繰り返しの障害発生を抑制することができる。
【0057】
さらに、上述の事前評価部306及び救済可否判定部306の処理は、データアクセスと、そのアクセス結果の判定にかかる処理のみであるため、処理の負荷が非常に小さい。
【0058】
さらにまた、本実施の形態にかかるデータ障害処理装置では、通常のプロセッサチェック等の処理やプロセッサリリーフの機構について修正を行うことなく、上記の機能を追加することができる。このため、様々なシステムに上記した機能(事前評価機能等)を適用することが容易である。
【0059】
なお、本実施の形態にかかるデータ処理装置の特徴部分を図示すると図9のようになる。当該構成であっても、プロセッサユニット3は、記憶装置内で生じた障害を検出するとともに、再度のリクエストを発行し、当該障害が解消したかを判定し、その判定結果に応じてプロセッサリリーフを行うか否かを決定することができる。これにより、プロセッサリリーフ時の再度の障害発生を回避することができる。
【0060】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0061】
1 主記憶ユニット
101 主記憶部
102 アクセス制御部
103 ECCチェック部
104 ポイズン化部
2 キャッシュメモリユニット
201 ストアインキャッシュ
202 アクセス制御部
203 ECCチェック部
204 ポイズン化部
205 リクエスト制御部
206 キャッシュ掃き出し部
3 プロセッサユニット
301 リクエスト制御部
302 障害識別部
303 FW起動部
304 キャッシュ掃き出し指示部
305 事前評価部
306 救済可否判定部
307 障害処理部
【技術分野】
【0001】
本発明はデータ障害処理装置、及びデータ障害処理方法に関する。
【背景技術】
【0002】
近年の情報処理装置では、機能が向上し、多くのハードウェアを実装しているため、必然的に故障発生箇所が増加している。さらに、情報処理装置に対する信頼性向上の要求は高まってきている。
【0003】
情報処理装置内のメモリ、キャッシュメモリ、及びそれらを接続しているシステムバスのデータ誤りについては、ECC(Error Checking and Correcting)による誤り訂正とエラーの検出が行われている。
【0004】
特許文献1は、ECCを用いたデータ障害処理装置に関する技術を開示している。当該データ処理装置の構成を図10に示す。このデータ処理装置は、ECCによる訂正が不可であるエラーを検出した場合に、ECCコードを専用コードに差し替えること(以下の説明では、ポイズン化と記載する。)により、余分な障害検出、報告を抑止するとともに、不正データを参照するプロセッサに対して確実にエラーを通知する技術が開示されている。当該データ処理装置によるポイズン化の具体的な効果として以下の事項が挙げられる。
【0005】
(1) 間欠故障からの救済
DIMM(Dual Inline Memory Module)やキャッシュメモリ等における訂正不可能障害の要因として、メモリセルが複数ビット故障する場合と、制御系が故障する場合と、が挙げられる。制御系が故障した場合には、再度このDIMM等にアクセスしなおすことにより正常データを得ることが可能である。このデータ障害処理装置では、リクエスト供給元(プロセッサ)に障害処理を委ねるため、リクエスト供給元の制御によっては間欠故障からの救済が可能となる。
【0006】
(2) データインテグリティの保証
上記のポイズン化によれば、いつ何時にどのようなリクエスト供給元から故障データにアクセスしても、リクエスト要求元はデータ内容が故障していることを把握することができる。
【0007】
(3) 障害発生箇所の特定
上記のポイズン化によれば、訂正不可能障害が発生した箇所のみがエラー報告を行う。これにより、不要な障害報告を抑止できる。
【0008】
(4) 動作の継続
上記のデータ障害処理装置は、訂正不可能障害が生じた場合であってもシステムとしての動作を継続しやすい構成となる。詳細には、障害発生箇所が特定できるため、データが壊れた場合であっても壊れたデータを使用しない限り、即時にシステムチェックを行うことなく、システム動作を継続できる。例えば、二度と使用しないワーク用データが故障した場合等には、システム動作をそのまま継続できる。さらに、壊れたデータを参照した場合であっても、データインテグリティが保証されているため、リクエスト要求元の処理に依存した障害処理を実行すればよく、ハードウェアによるシステムチェックを行う必要が無い。さらにまた、ポイズン化されたデータは必要に応じて初期値等に書き換える(ポイズン状態からの解除)ことが可能である。
【0009】
なお、ポイズン状態からの解除は、ECCコードを付与したデータを全て書き換えることによりポイズン化された状態を解除することができる。たとえば、8バイトのデータにECCコードを付与した場合、この8バイトのデータを更新することによりポイズン状態を解除することができる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開平8−263453号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、特許文献1に記載のデータ障害処理装置では、繰り返し障害が発生してしまう恐れがある。この問題の詳細について以下に説明する。
【0012】
特許文献1のデータ障害処理装置では、プロセッサ等が主記憶またはキャッシュメモリにアクセスした際に、アクセスしたデータに訂正不可能障害が生じていた場合(またはポイズン化されたデータであった場合)、プロセッサ等はそのデータが使用できないことを検出できる。この場合、各装置において予め定められたプロセッサチェック等の障害処理が実行される。
【0013】
障害処理として、障害が発生した時点以降の処理を別のプロセッサに引き継いで実行するプロセッサリリーフ処理がある。プロセッサリリーフ処理において、処理を引き継いだプロセッサは、訂正不可能障害が発生したデータにアクセスする処理、またはそれ以前の再開可能な処理から再実行を行う。この場合、処理を引き継いだプロセッサが再度データアクセスをしてもデータが故障状態のままであり、再度訂正不可状態を検出する。そして、このプロセッサは再度のプロセッサリリーフ処理を行い、さらに別のプロセッサに処理を引き継ぐこととなる。このように、訂正不可能障害が生じた場合に、プロセッサリリーフが繰り返し行われることとなり、プロセッサが枯渇してしまう。プロセッサが枯渇することにより、システムチェックを行う必要が生じてしまう。
【0014】
上記のプロセッサが枯渇してしまう問題を図11に示す。前述したように、特許文献1に記載のデータ障害処理装置では、訂正不可能障害が生じた場合であっても、プロセッサリリーフを行う。これにより、処理を受け継いだプロセッサが訂正不可能障害の生じているデータに対するリードリクエストを発行することとなってしまう。
【0015】
ここでデータ障害の救済可否についての判断が出来れば、上記の問題を回避することができる。しかし特許文献1のデータ障害処理装置では、発生した障害が救済できるか否か(訂正不可能障害であるか否か)についての判定を行うことについての記載が無い。一般に、救済の可否の判断は、キャッシュステータス、リクエスト動作、障害箇所、障害種類(間欠・固定)等の組み合わせにより定まるため、複雑なハードウェア構成と処理機能が必要となってしまう。そのため、救済の可否の判断を行うことは極めて困難である。
【0016】
このように、特許文献1に記載のデータ障害処理装置では、データ障害の救済可否の判断が困難であるため、プロセッサリリーフを行っても繰り返し障害が生じてしまうという問題がある。
【0017】
本発明は、このような問題を解決するためになされたものであり、繰り返しの障害発生を回避してプロセッサリリーフを実現するデータ障害処理装置、及びデータ障害処理方法を提供することを主たる目的とする。
【課題を解決するための手段】
【0018】
本発明にかかるデータ障害処理装置の一態様は、
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する障害識別部と、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する事前評価部と、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する救済可否判定部と、
前記救済可否判定部の判定に応じて障害対応処理を行う障害処理部と、を備える、ものである。
【0019】
本発明にかかるデータ障害処理方法の一態様は、
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置におけるデータ障害処理方法であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて前記記憶装置から供給されたデータに障害が発生しているか否かを識別し、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行し、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定し、
前記プロセッサリリーフの実行可否の判定に応じて障害対応処理を行う、ものである。
【発明の効果】
【0020】
本発明によれば、繰り返しの障害を回避したプロセッサリリーフを実現するデータ障害処理装置、及びデータ障害処理方法を提供することができる。
【図面の簡単な説明】
【0021】
【図1】実施の形態1にかかるデータ障害処理装置の構成を示すブロック図である。
【図2】実施の形態1にかかるキャッシュユニットのキャッシュステータスを示す図である。
【図3】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図4】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図5】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図6】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図7】実施の形態1にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す図である。
【図8】実施の形態1にかかるデータ障害処理装置の処理概要を示す図である。
【図9】実施の形態1にかかるデータ障害処理装置の構成を示すブロック図である。
【図10】特許文献1に記載のデータ障害処理装置の構成を示すブロック図である。
【図11】特許文献1に記載のデータ障害処理装置の処理概要を示す図である。
【発明を実施するための形態】
【0022】
<実施の形態1>
以下、図面を参照して本発明の実施の形態について説明する。図1は、本実施の形態にかかるデータ障害処理装置の構成を示すブロック図である。データ障害処理装置は、主記憶ユニット1と、キャッシュメモリユニット2と、プロセッサユニット3と、を含む。なお、本実施の形態では、主記憶ユニット1、キャッシュメモリユニット2を単一構成として説明するが、複数の主記憶ユニット、キャッシュメモリユニットを含むデータ障害処理装置であってもよい。図示していないが、プロセッサリリーフが出来るよう、データ障害処理装置は、プロセッサユニット3を複数含む構成である。
【0023】
主記憶ユニット1は、主記憶部101と、アクセス制御部102と、ECC(Error Check and Correct)チェック部103と、ポイズン化処理部104と、を備える。主記憶部101は、所謂メインメモリであり、一般的な情報処理装置が備える記憶装置である。主記憶部101を構成する素子等に関しても一般に用いられているものを用いればよい。
【0024】
アクセス制御部102は、キャッシュメモリユニット2またはプロセッサユニット3からのリクエストに応じて、主記憶部101からのデータ読み出し、及び主記憶部101へのデータ書き込みを制御する処理部である。アクセス制御部102の有する機能は、一般的な情報処理装置が有する機能である。
【0025】
ECCチェック部103は、一般的に知られているECC(Error Collection Code:誤り訂正符号)を実現するための処理部である。ここで、ECCチェック部103が採用するECC(すなわちコード)に関して特に制約はない。ECCチェック部103は、主記憶部101から読み出したデータをアクセス制御部102から受け取り、受け取ったデータに対してECCを用いたエラー検出、データ訂正等を実行する。さらにECCチェック部103は、検出したエラーを報告する機能を持つ。ECCチェック部103がエラーを検出しなかった場合、ECCチェック部103はデータ訂正等の処理を行わない。一方、ECCチェック部103が訂正可能なエラーを検出した場合、ECCチェック部103はデータの訂正処理を行う。訂正不可能なエラーの検出を行った場合、ECCチェック部103は、当該データに対してECCコード(すなわち誤り訂正符号)を付加する。ECCチェック部103は、ECCを用いたエラー検出、データ訂正等を実行後に、データ及び検出した障害種別をポイズン化部104に通知する。
【0026】
ポイズン化部104は、障害種別が「訂正不可能」を示すデータを受け取った際に、データに付加されているECCコードをポイズン化コードに変換して、キャッシュユニット2に供給する。障害種別が「訂正不可能」以外を示すデータを受け取った場合、ポイズン化部104は、受け取ったデータをそのままキャッシュユニット2に供給する。なお、ポイズン化コードとして用いるコートは、訂正不可データであることを識別できるコードであれば、如何なるコードを用いてもよい。
【0027】
続いて、キャッシュユニット2の構成について説明する。キャッシュユニット2は、ストアインキャッシュ201と、アクセス制御部202と、ECCチェック部203と、ポイズン化処理部204と、リクエスト制御部205と、キャッシュ掃き出し部206と、を備える。
【0028】
ストアインキャッシュ201は、キャッシュユニット2内においてキャッシュデータを保持する記憶部である。ストアインキャッシュ201の論理構造、物理構造、キャッシュ階層構造についての特別な制限はなく、一般に用いられる仕組みを有すればよい。なお、ストアイン型のキャッシュ以外のキャッシュ記憶部を採用してもよい。
【0029】
アクセス制御部202は、ストアインキャッシュ201からのデータの読み出し、書き込みを制御する処理部である。また、アクセス制御部202は、ストアキャッシュ201内に所望のデータが無い場合にアクセス制御部102にアクセスする。アクセス制御部202の有する機能は、一般的なキャッシュメモリが有する機能である。
【0030】
アクセス制御部202は、後述のキャッシュ掃き出し部206からキャッシュの掃き出しにかかるリクエスト(以後、キャッシュ掃き出しリクエストと記載する。)を受信した場合に、当該キャッシュ掃き出しリクエストに含まれる掃き出し対象のアドレス(以後、キャッシュ掃き出しアドレスと記載する。)を抽出する。アクセス制御部202は、ストアインキャッシュ201内の当該キャッシュ掃き出しアドレスにデータが存在するか否かを判定する。当該キャッシュ掃き出しアドレスにデータが存在しない場合、アクセス制御部202は処理を終了する。一方、当該キャッシュ掃き出しアドレスにデータが存在する場合、アクセス制御部202は、キャッシュステータスに応じてキャッシュ内容を破棄、または主記憶部101に反映させる処理を実行する。本実施の形態にかかるデータ障害処理装置が採用するキャッシュステータスについては、図2を用いて後述する。
【0031】
ECCチェック部203は、一般的に知られているECC(Error Collection Code:誤り訂正符号)を実現するための処理部である。ここで、ECCチェック部203が採用するECCコードに関して特に制約はない。さらに、ECCチェック部203が採用するECCコードは、ECCチェック部103が採用するECCコードとは独立したものであり、関連性を持たせる必要は無い。
【0032】
ECCチェック部203は、ストアインキャッシュ201から読み出したデータをアクセス制御部202から受け取り、受け取ったデータに対してECCコードを用いたエラー検出、データ訂正等を実行する。さらにECCチェック部203は、検出したエラーを報告する機能を持つ。エラーを検出しなかった場合、ECCチェック部203はデータ訂正等の処理を行わない。一方、訂正可能なエラーを検出した場合、ECCチェック部203はデータの訂正処理を行う。訂正不可能なエラーの検出をした場合、ECCチェック部203は、当該データに対してECCコードを付加する。ECCチェック部203は、ECCを用いたエラー検出、データ訂正等を実行後に、データ及び検出した障害種別をポイズン化部204に通知する。
【0033】
ポイズン化部204は、障害種別が「訂正不可能」を示すデータを受け取った際に、データに付加されているECCコードをポイズン化コードに変換して、リクエスト制御部205に供給する。障害種別が「訂正不可能」以外を示すデータを受け取った場合、ポイズン化部204は、受け取ったデータをそのままリクエスト制御部205に供給する。なお、ポイズン化コードとして用いるコードは、訂正不可データであることを識別できるコードであれば、如何なるコードを用いてもよい。
【0034】
リクエスト制御部205は、プロセッサユニット3から受け付けたリクエストを処理する処理部である。リクエスト制御部205は、アクセス制御部102を介した主記憶部101へのアクセス、及びストアインキャッシュ201へのアクセスを行うためにアクセス制御部202にリクエストを発行する。リクエスト制御部205は、ポイズン化部104から送信されたデータ(主記憶部101から読み出したデータ)、またはポイズン化部204から送信されたデータ(ストアインメモリ201から読み出したデータ)をリプライデータとして受け取る。リクエスト制御部205は、受け取ったリプライデータをリクエスト要求元であるプロセッサユニット3に供給する。プロセッサユニット3へのデータ供給に際して、リクエスト制御部205は、データとともに当該データに対するECCコードも合わせて出力する。ECCコードにより、データに訂正不可能な障害が発生したか否かを、プロセッサユニット3が判断できるようにする。
【0035】
リクエスト制御部205は、後述するプロセッサユニット3内のアクセス制御部301からキャッシュ掃き出しリクエストを受け付けた場合、キャッシュ掃き出し部205に対して当該キャッシュ掃き出しリクエストを転送する。キャッシュ掃き出しリクエストには、キャッシュ掃き出しアドレス(すなわち主記憶部101にデータ更新を反映するアドレス)が含まれる。
【0036】
キャッシュ掃き出し部206は、キャッシュ掃き出しリクエストを受け付けた場合、アクセス制御部202に対してキャッシュ掃き出しアドレスのデータを主記憶101に更新するように指示する。
【0037】
次に、プロセッサユニット3の構成について説明する。プロセッサユニット3は、プロセッサ機能部(図示せず)と、リクエスト制御部301と、障害処理部302と、障害識別部302と、FW(FirmWare:ファームウェア)起動部303と、キャッシュ掃き出し指示部304と、事前評価部305と、救済可否判定部306と、を備える。
【0038】
プロセッサ機能部(図示せず)は、通常の計算処理を行う処理部である。このプロセッサ機能部(図示せず)が、必要に応じて主記憶ユニット1またはキャッシュユニット2内にあるデータに対してリクエストを発行する。
【0039】
リクエスト制御部301は、プロセッサ機能部が要求する主記憶部101へのアクセスに関するリクエストを生成し、キャッシュユニット2に対して当該リクエストを出力する。リクエスト制御部301は、キャッシュユニット2から戻ってくるリプライデータを受け取る。主記憶部101に対するアクセスには、読み出し動作と書き込み動作がある。読み出し動作の場合、リクエスト制御部301はキャッシュユニット2からリプライデータを受け取る。
【0040】
リクエスト制御部301は、リプライデータに付随するECCコードを利用してECCチェックを行い、リプライデータに対して障害が発生しているかを判定する。リクエスト制御部301は、データに対して障害が発生していない場合にはプロセッサ機能部にデータを供給して処理を終了する。
【0041】
データに対して訂正不可能な障害が発生している場合、リクエスト制御部301は、プロセッサ機能部にデータを供給せず、障害識別部302に対して障害発生の通知及びリード要求のアドレス(読み出そうとした主記憶部101のアドレス)を通知する。
【0042】
さらに、リクエスト制御部301は、事前評価部305から訂正不可能障害の状態を評価するための事前評価用のリードリクエスト(以後、以前評価リクエストと記載する。)を受け取ると、当該事前評価リクエストをキャッシュシステム2に発行する。リクエスト制御部301は、この事前評価リクエストに対するリプライデータを受け付けた際に、通常のリプライデータと同様にECCチェックを行い、障害の発生状況を救済可否判定部306に通知する。
【0043】
なお、本実施の形態では、リクエスト制御部301は、キャッシュユニット2に対してリクエストを発行する形態としたが、キャッシュユニット2の存在しない装置においては直接主記憶ユニット1にリクエストを発行してもよい。
【0044】
障害識別部302は、リクエスト制御部301からリプライデータに障害が発生した旨を知らせる通知と、リード要求のアドレスと、を受け取る。この受け取りにより、障害識別部302は、リプライデータに訂正不可能障害が発生したことを検出する。障害識別部302は、訂正不可能障害発生時にFW起動部303に対して障害処理実行の起動指示を供給する。この指示とともに、障害識別部302は、リード要求のアドレスもFW起動部303に通知する。
【0045】
FW起動部303は、障害識別部302から起動指示及びリード要求のアドレスを受け取る。FW起動部303は、当該受け取りの後、FW起動部303は、しかかり中の処理トランザクションを破棄する。そして、FW起動部303は、キャッシュ掃き出し指示部304に対してキャッシュ掃き出し用リクエストの生成を指示する。この際、FW起動部303は、受け付けたリード要求のアドレスをキャッシュからの掃き出した対象のアドレス(キャッシュ掃き出しアドレス)としてキャッシュ掃き出し指示部304に通知する。
【0046】
なお、キャッシュの掃き出しを必要とする理由は、キャッシュ上に残っている訂正不可データ、またはポイズン化されたデータをキャッシュから追い出す、もしくは廃棄することを目的とする。キャッシュ上にこれらのデータが残っている場合、後述の事前評価部305が主記憶をリードする際にキャッシュヒットすることを回避するためである。
【0047】
FW起動部303は、キャッシュ掃き出し指示部304に対するキャッシュ掃き出しリクエストの生成指示の後、キャッシュ掃き出し指示部304からの完了通知が行われるまで処理を待ち合わせる。キャッシュ掃き出し完了通知がなされた場合、FW起動部303は、事前評価部305に対して、リード要求のアドレスを通知し、事前評価部305に事前評価リクエストの発行指示を行う。FW起動部303は、事前評価部305が発行した事前評価リクエストに対するリプライデータを基に判定されたプロセッサリリーフの可否を、救済可否判定部306から受け付ける。プロセッサリリーフ可能との通知を受け付けた場合、FW起動部303は、障害処理部307に対してプロセッサリリーフを開始してもよい旨を示す処理指示を行う。一方、プロセッサリリーフ不可能との通知を受け付けた場合、FW起動部303は、障害処理部307に対してプロセッサリリーフを行わずに障害に対応することを指示する。
【0048】
キャッシュ掃き出し指示部304は、FW起動部303からキャッシュ掃き出しリクエストの生成指示と、キャッシュ掃き出しアドレスを受け取る。キャッシュ掃き出し指示部304は、このキャッシュ掃き出しアドレスの情報を含むキャッシュ掃き出しリクエストを生成し、キャッシュユニット2に対して出力する。キャッシュ掃き出し指示部304は、キャッシュユニット2からキャッシュ掃き出しリクエストの完了が通知されるまで待ち合わせ、完了通知がなされた場合にFW起動部303にキャッシュ掃き出しの完了を通知する。
【0049】
事前評価部305は、FW起動部303から事前評価の指示を受け取る。事前評価部305は、事前評価指示と合わせて通知されたリード要求のアドレスを用いて事前評価リクエストを生成し、リクエスト制御部301を介してキャッシュユニット2に事前評価リクエストを発行する。この事前評価リクエストを実行する目的は、訂正不可能障害が解消しているか否かを評価するためである。ECCコードによる訂正ができない障害と判定された場合であっても、障害の種類によってはタイミングをずらすことにより障害が解消されていることを鑑みたものである。
【0050】
救済可否判定部306は、事前評価部305が発行した事前評価リクエストに対してECCチェックを行った結果をリクエスト制御部301から受け取る。救済可否判定部306は、ECCチェックの結果が、データ障害が発生していないことを示すものである場合、プロセッサリリーフ可能と判定する。一方、救済可否判定部306は、ECCチェックの結果が、データ障害が発生していることを示すものである場合、プロセッサリリーフ不可能と判定する。救済可否判定部306は、プロセッサリリーフの可否をFW起動部303に通知する。
【0051】
障害処理部307は、データ障害処理装置にて規定されている障害処理を実行する処理部である。障害処理部307は、ファームウェアと適宜情報をやり取りし、障害処理を行う。障害処理部307は、FW起動部303から起動指示を受け取る。この際、救済可否判定部306によるプロセッサリリーフ可否の判断により障害対応の処理を切り換える。プロセッサリリーフが出来ない場合、障害処理部307は、重度障害として障害処理を行う。障害処理部307は、プロセッサリリーフが可能である場合には、プロセッサチェックの後に、プロセッサリリーフを行うための処理を行う。
【0052】
次に、本実施の形態にかかるデータ障害処理装置が採用するキャッシュステータスを図2に示す。なお、キャッシュステータスは、各情報処理装置において採用するキャッシュコヒーレンシー制御に依存する。
【0053】
本実施の形態にかかるストアインキャッシュ201が取り得るキャッシュステータスは、"I(Invalidate)"、"CE(Clean Exclusive)"、"CS(Clean Shared)"、"DE(Dirty Exclusive)"のいずれかである。"I"とは、キャッシュ上にデータが存在しない状態を示す。"CE"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致し、他のキャッシュにコピーが存在しない状態を示す。"CS"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致し、他のキャッシュにコピーが存在する状態を示す。"DE"とは、キャッシュに登録されているデータが主記憶に格納されているデータと一致せず、他のキャッシュにも存在していない状態を示す。"DE"の状態の場合、最新のデータはキャッシュ内にのみ存在する。
【0054】
図3〜7に本実施の形態にかかるデータ障害処理装置の故障発生箇所と障害処理の関係を示す。例えば、図3(No.1)では、プロセッサユニット3がリードリクエストを発行し、キャッシュヒット時(CE/CS)にキャッシュユニット2から読み出したデータがポイズン化されていた場合であって間欠障害箇所がL2(キャッシュ)である場合、L2キャッシュを廃棄してからプロセッサリリーフすることにより障害からの救済が規定されている。
【0055】
図8を参照して、本実施の形態にかかるデータ障害処理装置の処理概要を改めて説明する。本実施の形態にかかるプロセッサユニット3は、キャッシュユニット2または主記憶ユニット1によりポイズン化処理の後に、訂正不可能障害の検出(障害識別部302)、キャッシュの掃き出し(キャッシュ掃き出し指示部304、キャッシュ掃き出し部206)、事前評価リクエストの発行(事前評価部305)、プロセッサリリーフの可否の判断(救済可否判定部306)を行う。
【0056】
続いて本実施の形態にかかるデータ障害処理装置の効果について説明する。上述のように、読み出し対象のデータに訂正不可能障害が発生した場合、プロセッサユニット3は、当該障害を検出するとともに、再度のリクエスト(事前評価リクエスト)を発行し、当該障害が解消したかを判定し、その判定結果に応じてプロセッサリリーフを行うか否かを決定している。これにより、障害が依然として解消されていない場合にプロセッサリリーフを行うことを回避でき、繰り返しの障害発生を抑制することができる。
【0057】
さらに、上述の事前評価部306及び救済可否判定部306の処理は、データアクセスと、そのアクセス結果の判定にかかる処理のみであるため、処理の負荷が非常に小さい。
【0058】
さらにまた、本実施の形態にかかるデータ障害処理装置では、通常のプロセッサチェック等の処理やプロセッサリリーフの機構について修正を行うことなく、上記の機能を追加することができる。このため、様々なシステムに上記した機能(事前評価機能等)を適用することが容易である。
【0059】
なお、本実施の形態にかかるデータ処理装置の特徴部分を図示すると図9のようになる。当該構成であっても、プロセッサユニット3は、記憶装置内で生じた障害を検出するとともに、再度のリクエストを発行し、当該障害が解消したかを判定し、その判定結果に応じてプロセッサリリーフを行うか否かを決定することができる。これにより、プロセッサリリーフ時の再度の障害発生を回避することができる。
【0060】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0061】
1 主記憶ユニット
101 主記憶部
102 アクセス制御部
103 ECCチェック部
104 ポイズン化部
2 キャッシュメモリユニット
201 ストアインキャッシュ
202 アクセス制御部
203 ECCチェック部
204 ポイズン化部
205 リクエスト制御部
206 キャッシュ掃き出し部
3 プロセッサユニット
301 リクエスト制御部
302 障害識別部
303 FW起動部
304 キャッシュ掃き出し指示部
305 事前評価部
306 救済可否判定部
307 障害処理部
【特許請求の範囲】
【請求項1】
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する障害識別部と、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する事前評価部と、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する救済可否判定部と、
前記救済可否判定部の判定に応じて障害対応処理を行う障害処理部と、を備える、データ障害処理装置。
【請求項2】
前記障害識別部が前記障害を識別した場合に、仕掛中の処理トランザクションを破棄するファームウェア起動部を備えることを特徴とする請求項1に記載のデータ障害処理装置。
【請求項3】
前記記憶装置として、主記憶ユニット及びキャッシュメモリユニットを備えることを特徴とする請求項1または請求項2に記載のデータ障害処理装置。
【請求項4】
前記プロセッサは、
前記事前評価リクエストの発行の前に、前記キャッシュメモリユニットから前記アドレスに対応するデータを掃き出すことを要求するリクエストであるキャッシュ掃き出しリクエストを前記キャッシュメモリユニットに対して発行するキャッシュ掃き出し指示部を備え、
前記キャッシュメモリユニットは、前記キャッシュ掃き出しリクエストに応じてデータを掃き出すキャッシュ掃き出し部を備えることを特徴とする請求項3に記載のデータ障害処理装置。
【請求項5】
前記事前評価部は、前記キャッシュ掃き出し部からの処理完了通知が行われた後に、前記事前評価リクエストを発行することを特徴とする請求項4に記載のデータ障害処理装置。
【請求項6】
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置におけるデータ障害処理方法であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて前記記憶装置から供給されたデータに障害が発生しているか否かを識別し、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行し、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定し、
前記プロセッサリリーフの実行可否の判定に応じて障害対応処理を行う、データ障害処理方法。
【請求項7】
前記障害を識別した場合に、仕掛中の処理トランザクションを破棄することを特徴とする請求項6に記載のデータ障害処理方法。
【請求項8】
前記記憶装置として、主記憶ユニット及びキャッシュメモリユニットを備えることを特徴とする請求項6または請求項7に記載のデータ障害処理方法。
【請求項9】
前記プロセッサは、
前記事前評価リクエストの発行の前に、前記キャッシュメモリユニットから前記アドレスに対応するデータを掃き出すことを要求するリクエストであるキャッシュ掃き出しリクエストを前記キャッシュメモリユニットに対して発行し、
前記キャッシュメモリユニットは、前記キャッシュ掃き出しリクエストに応じてデータを掃き出すことを特徴とする請求項8に記載のデータ障害処理装置。
【請求項10】
前記キャッシュメモリユニットからのデータ掃き出しの処理完了通知が行われた後に、前記事前評価リクエストを発行することを特徴とする請求項9に記載のデータ障害処理方法。
【請求項1】
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて、前記記憶装置から供給されたデータに障害が発生しているか否かを識別する障害識別部と、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行する事前評価部と、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定する救済可否判定部と、
前記救済可否判定部の判定に応じて障害対応処理を行う障害処理部と、を備える、データ障害処理装置。
【請求項2】
前記障害識別部が前記障害を識別した場合に、仕掛中の処理トランザクションを破棄するファームウェア起動部を備えることを特徴とする請求項1に記載のデータ障害処理装置。
【請求項3】
前記記憶装置として、主記憶ユニット及びキャッシュメモリユニットを備えることを特徴とする請求項1または請求項2に記載のデータ障害処理装置。
【請求項4】
前記プロセッサは、
前記事前評価リクエストの発行の前に、前記キャッシュメモリユニットから前記アドレスに対応するデータを掃き出すことを要求するリクエストであるキャッシュ掃き出しリクエストを前記キャッシュメモリユニットに対して発行するキャッシュ掃き出し指示部を備え、
前記キャッシュメモリユニットは、前記キャッシュ掃き出しリクエストに応じてデータを掃き出すキャッシュ掃き出し部を備えることを特徴とする請求項3に記載のデータ障害処理装置。
【請求項5】
前記事前評価部は、前記キャッシュ掃き出し部からの処理完了通知が行われた後に、前記事前評価リクエストを発行することを特徴とする請求項4に記載のデータ障害処理装置。
【請求項6】
誤り訂正機能を持つ記憶装置に格納されたデータにアクセスするプロセッサを備えるデータ障害処理装置におけるデータ障害処理方法であって、
前記記憶装置は、データ供給時にデータに対して誤り訂正符号を付与し、
前記プロセッサは、
前記誤り訂正符号に基づいて前記記憶装置から供給されたデータに障害が発生しているか否かを識別し、
前記障害が生じたデータが格納されたアドレスに再度アクセスする事前評価リクエストを発行し、
前記事前評価リクエストの発行結果に応じてプロセッサリリーフが実行可能かを判定し、
前記プロセッサリリーフの実行可否の判定に応じて障害対応処理を行う、データ障害処理方法。
【請求項7】
前記障害を識別した場合に、仕掛中の処理トランザクションを破棄することを特徴とする請求項6に記載のデータ障害処理方法。
【請求項8】
前記記憶装置として、主記憶ユニット及びキャッシュメモリユニットを備えることを特徴とする請求項6または請求項7に記載のデータ障害処理方法。
【請求項9】
前記プロセッサは、
前記事前評価リクエストの発行の前に、前記キャッシュメモリユニットから前記アドレスに対応するデータを掃き出すことを要求するリクエストであるキャッシュ掃き出しリクエストを前記キャッシュメモリユニットに対して発行し、
前記キャッシュメモリユニットは、前記キャッシュ掃き出しリクエストに応じてデータを掃き出すことを特徴とする請求項8に記載のデータ障害処理装置。
【請求項10】
前記キャッシュメモリユニットからのデータ掃き出しの処理完了通知が行われた後に、前記事前評価リクエストを発行することを特徴とする請求項9に記載のデータ障害処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2012−83992(P2012−83992A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−230430(P2010−230430)
【出願日】平成22年10月13日(2010.10.13)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願日】平成22年10月13日(2010.10.13)
【出願人】(000168285)エヌイーシーコンピュータテクノ株式会社 (572)
【Fターム(参考)】
[ Back to top ]