(57)【要約】      （修正有）【課題】訂正不可能なアドレスエラーを検出した場合のシステムダウンを防止する手段を提供する。【解決手段】演算処理装置１０は、プロセッサ１０１から主記憶装置１４０へのリクエストをキャッシュするシステムキャッシュ１２０でキャッシュにミスした場合にリクエストアドレスを登録するリクエストバッファ部２２１と、リクエストアドレスを読み取りシステムキャッシュに書き込むキャッシュ登録制御部２２４と、アドレスエラーを検出するアドレスエラー検出部２２０と、タイムアウトを通知するタイムアウト部２２２と、ポイズンデータを作成するデータポイズナ部２２３とを包含し、アドレスエラーを検出した場合、リクエストアドレスの登録を抑止し、リクエストアドレスが返却されるとリクエストアドレスの登録をクリアし、タイムアウトを通知されるとリクエストバッファ部に登録されているリクエストアドレスにポイズンデータを書き込む。【選択図】図２
2015176333.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録する、リクエストバッファ手段と、
前記リクエストバッファ手段から、前記リクエストアドレスを読み取り、前記システムキャッシュに書き込む、キャッシュ登録制御手段と、
前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出する、アドレスエラー検出手段と、
前記リクエストバッファ手段、及び、前記キャッシュ登録制御手段に所定の時間の経過を示すタイムアウトを通知する、タイムアウト手段と、
前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを作成する、
データポイズナ手段と、を包含し、
前記アドレスエラー検出手段が、前記アドレスエラーを検出した場合、前記リクエストバッファ手段へ前記リクエストアドレスの登録の抑止を指示して、前記タイムアウト手段を起動し、
前記リクエストバッファ手段が、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、
前記キャッシュ登録制御手段が、前記タイムアウトを通知されると、前記システムキャッシュで、前記リクエストバッファ手段に登録されている前記リクエストアドレスに、前記データポイズナ手段から読み出した前記ポイズンデータを書き込む、演算処理装置。
【請求項２】
前記データポイズナ手段、及び、前記キャッシュ登録制御手段の代わりに、前記リクエストバッファ手段から、前記リクエストアドレスを読み取り、前記リクエストアドレスに対してリクエストを送信する、リクエスト再送手段を備え、
前記タイムアウト手段が、前記リクエスト再送手段に前記タイムアウトを通知し、
前記リクエスト再送手段が、前記タイムアウトを通知されると、前記システムバスの前記リクエストアドレスに対して前記リクエストを送信する、請求項１に記載の演算処理装置。
【請求項３】
前記リクエストバッファ手段の前記リクエストアドレスをコピーして格納する、
シャドーバッファ手段を更に備え、
前記アドレスエラー検出手段が、前記アドレスエラーを検知した場合、前記シャドーバッファ手段が、前記リクエストバッファ手段から前記リクエストアドレスをコピーして格納し、
前記アドレスエラー検出手段が、前記シャドーバッファ手段へ前記リクエストアドレスの登録の抑止を指示して、前記タイムアウト手段を起動し、
前記タイムアウト手段が、前記シャドーバッファ手段、及び、前記キャッシュ登録制御手段に前記タイムアウトを通知し、
前記シャドーバッファ手段が、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、
前記キャッシュ登録制御手段が、前記タイムアウトを通知されると、前記システムキャッシュで、前記シャドーバッファ手段に登録されている前記リクエストアドレスに、前記データポイズナ手段から読み出した前記ポイズンデータを書き込む、請求項１に記載の演算処理装置。
【請求項４】
前記プロセッサと前記システムキャッシュを接続するローカルバスを更に備え、
前記キャッシュ登録制御手段の代わりに、前記リクエストバッファ手段から、前記リクエストアドレスを読み取り、前記リクエストアドレスに対応する前記リクエストを前記プロセッサに返却する、リクエスト返却手段を備え、
前記アドレスエラー検出手段が、前記ローカルバスで前記アドレスエラーを検知し、
前記タイムアウト手段が、前記リクエストバッファ手段、及び、前記リクエスト返却手段に前記タイムアウトを通知し、
前記リクエスト返却手段が、前記タイムアウトを通知されると、前記リクエストバッファ手段に登録されている前記リクエストアドレス、及び、前記データポイズナ手段から読み出した前記ポイズンデータを前記プロセッサに返却する、請求項１に記載の演算処理装置。
【請求項５】
プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録し、
前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出した場合、前記リクエストアドレスの登録の抑止を指示して、所定の時間の経過を示すタイムアウトを起動し、
前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、
前記タイムアウトを通知されると、前記システムキャッシュで、登録されている前記リクエストアドレスに、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを書き込む、制御方法。
【請求項６】
前記タイムアウトを通知されると、前記システムキャッシュまたは前記主記憶装置に接続するバスの前記リクエストアドレスに対して前記リクエストを送信する、請求項５に記載の制御方法。
【請求項７】
前記アドレスエラーを検知した場合、前記リクエストアドレスをコピーして格納し、
前記リクエストアドレスのコピーへの前記リクエストアドレスの登録の抑止を指示して、前記タイムアウトを起動し、
前記リクエストアドレスのコピーへの前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、
前記タイムアウトを通知されると、前記システムキャッシュで、前記リクエストアドレスのコピーに登録されている前記リクエストアドレスに、前記ポイズンデータを書き込む、請求項１に記載の制御方法。
【請求項８】
プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録する処理と、
前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出した場合、前記リクエストアドレスの登録の抑止を指示して、所定の時間の経過を示すタイムアウトを起動する処理と、
前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアする処理と、
前記タイムアウトを通知されると、前記システムキャッシュで、登録されている前記リクエストアドレスに、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを書き込む処理と、をコンピュータに実行させるプログラム。
【請求項９】
前記タイムアウトを通知されると、前記システムキャッシュまたは前記主記憶装置に接続するバスの前記リクエストアドレスに対して前記リクエストを送信する処理、をコンピュータに実行させる請求項８に記載のプログラム。
【請求項１０】
前記アドレスエラーを検知した場合、前記リクエストアドレスをコピーして格納する処理と、
前記リクエストアドレスのコピーへの前記リクエストアドレスの登録の抑止を指示して、前記タイムアウトを起動する処理と、
前記リクエストアドレスのコピーへの前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアする処理と、
前記タイムアウトを通知されると、前記システムキャッシュで、前記リクエストアドレスのコピーに登録されている前記リクエストアドレスに、前記ポイズンデータを書き込む処理と、をコンピュータに実行させる請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算処理装置、制御方法、及び、そのためのプログラムに関する。
【背景技術】
【０００２】
マルチプロセッサシステムにおける最も重大なタイプのエラーの１つは、アドレスエラーである。訂正不可能なアドレスエラーを検出した場合、破壊されたアドレスを修復することができないため、メモリアドレスを特定することができない。そのため、メモリコントローラやキャッシュコントローラが誤ったデータを供給する等のデータ化けを引き起こす可能性がある。
【０００３】
マルチプロセッサシステムは、破壊されたデータを継続処理することを避けるために、オペレーティングシステムの即時停止といった致命的エラーに移行する。従って、アプリケーションを正常にシャットダウンすることができず、システムダウンとなってしまう。
【０００４】
特許文献１は、アドレスエラーから回復するための演算処理装置の一例を開示している。この特許文献に記載された演算処理装置は、アドレスエラーを検出した場合に、所定の条件（ハミング距離が０または１である）を満たすアドレスを有するラインをシステムキャッシュから探索して、ＭＥＳＩ（キャッシュコヒーレンシ等に関するプロトコルである、ＭＥＳＩプロトコル）の状態が変更（Ｍ）または排他的（Ｅ）である場合、データ状態の整合性が未知であるため、対応するデータをポイズニングする。また、共用（Ｓ）または無効（Ｉ）である場合、そのラインを無視するか、または無効であるとマーキングする。
【０００５】
特許文献２は、アドレスエラー発生時であってもデータの意図しない上書きを回避するデータ処理装置を開示している。この特許文献に記載されたデータ処理装置は、アドレス誤り信号を受信した場合、メモリの書き込み処理を禁止し、メモリ読み出しの再実行を行う。これにより、データ処理装置は、メモリへの再読出し処理が行われる前に、データが上書きされることを回避する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−３２２３１７号公報
【特許文献２】特開２０１３−１５６８２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記文献の技術を用いた場合、訂正不可能なアドレスエラーを検出すると、システムダウンにより即時停止に至り易い、という課題がある。
【０００８】
特許文献１では、エラーしたアドレスは、正しいアドレスに非常に類似している可能性が高いことから、ハミング距離が０または１、２であるアドレスがシステムキャッシュラインに存在するか探索する。そして探索の結果、存在すればポイズニングする。したがって、類似したアドレスがキャッシュラインに存在すれば、全てエラーとして処理されてしまい、正確にエラー検出ができない場合がある。また、それにより、システムダウンに至り易いという問題がある。
【０００９】
特許文献２は、メモリへの再読出し処理を行っているが、その際にエラーを検出した場合は、データのポイズニングを用いて順序立ててシャットダウンする等の処置を実施しておらず、システムダウンによる即時停止となる可能性が高い。
【００１０】
本発明の目的は、訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上することにある。
【課題を解決するための手段】
【００１１】
本発明の演算処理装置は、プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録する、リクエストバッファ手段と、前記リクエストバッファ手段から、前記リクエストアドレスを読み取り、前記システムキャッシュに書き込む、キャッシュ登録制御手段と、前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出する、アドレスエラー検出手段と、前記リクエストバッファ手段、及び、前記キャッシュ登録制御手段に所定の時間の経過を示すタイムアウトを通知する、タイムアウト手段と、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを作成する、データポイズナ手段と、を包含し、前記アドレスエラー検出手段が、前記アドレスエラーを検出した場合、前記リクエストバッファ手段へ前記リクエストアドレスの登録の抑止を指示して、前記タイムアウト手段を起動し、前記リクエストバッファ手段が、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、前記キャッシュ登録制御手段が、前記タイムアウトを通知されると、前記システムキャッシュで、前記リクエストバッファ手段に登録されている前記リクエストアドレスに、前記データポイズナ手段から読み出した前記ポイズンデータを書き込む。
【００１２】
本発明の制御方法は、プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録し、前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出した場合、前記リクエストアドレスの登録の抑止を指示して、所定の時間の経過を示すタイムアウトを起動し、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアし、前記タイムアウトを通知されると、前記システムキャッシュで、登録されている前記リクエストアドレスに、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを書き込む。
【００１３】
本発明のコンピュータプログラムは、プロセッサから主記憶装置へのリクエストをキャッシュするシステムキャッシュで、前記プロセッサがキャッシュにミスした場合に、リクエストアドレスを登録する処理と、前記システムキャッシュまたは前記主記憶装置に接続するバスでアドレスエラーを検出した場合、前記リクエストアドレスの登録の抑止を指示して、所定の時間の経過を示すタイムアウトを起動する処理と、前記リクエストアドレスの登録を抑止し、前記リクエストアドレスが返却されると前記リクエストアドレスの登録をクリアする処理と、前記タイムアウトを通知されると、前記システムキャッシュで、登録されている前記リクエストアドレスに、前記プロセッサによる検出が可能なエラーパターンであるポイズンデータを書き込む処理と、をコンピュータに実行させる。
【発明の効果】
【００１４】
本発明は、訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上するという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の第一の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。
【図２】図２は、本発明の第一の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。
【図３】図３は、演算処理装置における、訂正不可能なアドレスエラー検出時の動作の一例を示す図である。
【図４】図４は、演算処理装置の動作を示すフローチャートである。
【図５】図５は、第二の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。
【図６】図６は、第三の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。
【図７】図７は、第四の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。
【図８】図８は、第五の実施形態に係る、演算処理装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１６】
発明を実施するための第一の形態について、図面を参照して詳細に説明する。
【００１７】
図１は、本発明の第一の実施形態に係る、演算処理装置１００の構成の一例を示すブロック図である。また、図１は、一般的なマルチプロセッサシステムの構成の概要を示している。なお、本実施形態の構成要素の詳細については、図２で説明する。
【００１８】
図１において、複数のプロセッサ１０１〜１０４と、システムキャッシュ１２０、１２１は、ローカルバス１１０、１１１で接続される。プロセッサ１０１、１０２は、システムキャッシュ１２０に接続され、プロセッサ１０３、１０４は、システムキャッシュ１２１に接続される。また、各プロセッサは、システムキャッシュを経由し、主記憶装置１４０やＩ／Ｏ装置１４１とシステムバス１３０で接続されている。
【００１９】
マルチプロセッサシステムは、複数のプロセッサ１０１〜１０４を同時に使用して、システム全体の処理能力向上や耐故障性を高めたコンピュータシステムであり、複数のプロセッサ１０１〜１０４で処理を分担して実行することにより、単一プロセッサでは得られないような高い処理性能を実現している。また、マルチプロセッサシステムは、あるプロセッサで障害が発生しても、他のプロセッサでその処理を引き継いで実行（プロセッサリリーフ）することにより、見かけ上の信頼性を向上させたシステムを実現している。
【００２０】
なお、システムキャッシュ１２０、１２１の構造や主記憶装置１４０のアドレスとキャッシュデータのラインとの関連付け（ダイレクトマッピング、フルアソシアティブおよびセットアソシアティブ）については、すべて本技術分野において周知であり、説明は省略する。
【００２１】
図２は、本発明の第一の実施形態に係る、演算処理装置１０の構成の一例を示すブロック図である。
【００２２】
また、図２は、図１のプロセッサ１０３、１０４、ローカルバス１１１、及び、システムキャッシュ１２１の記載を省略し、演算処理装置１０の構成要素を全て記載した図である。
【００２３】
以下、図２を参照して、演算処理装置１０の構成、及び、動作について説明する。
【００２４】
なお、以降の説明では、図２の表示に限定せず、プロセッサ１０１、１０２の代わりにプロセッサ１０１〜１０４と表記する場合や、図２に記載していない（図１に記載している）システムキャッシュ１２１を説明の中で使用する場合等がある。
【００２５】
図２を参照すると、演算処理装置１０は、複数のプロセッサ１０１、１０２、ローカルバス１１０、システムキャッシュ１２０、システムバス１３０、主記憶装置１４０、Ｉ／Ｏ装置１４１、アドレスエラー検出部２２０、リクエストバッファ部２２１、タイムアウト部２２２、データポイズナ部２２３、及び、キャッシュ登録制御部２２４、により構成される。
【００２６】
複数のプロセッサ１０１、１０２は、ローカルバス１１０に接続され、ローカルバス１１０の先には処理性能を向上するために高速に動作するシステムキャッシュ（システムキャッシュメモリ）１２０が接続されている。
【００２７】
システムキャッシュ１２０は、システムバス１３０に接続され、その先には主記憶装置１４０、Ｉ／Ｏ装置１４１が接続されている。
【００２８】
システムキャッシュ１２０は、プロセッサ１０１、１０２からローカルバス１１０及びローカルバス１１０に接続する信号線２０１経由で、主記憶装置１４０に対するリクエストアドレスを受け付け、そのリクエストアドレスに対応するデータがキャッシュ上に登録されているかをライン（キャッシュラインとも言う）の確認により判定する。登録されていれば、システムキャッシュ１２０は、リクエストアドレスに対応するデータを信号線２０１経由でプロセッサ１０１、１０２に返却する。キャッシュ上に登録されていなければ、システムキャッシュ１２０は、信号線２０２経由でリクエストアドレスをシステムバス１３０に送信して、主記憶装置１４０から、そのリクエストアドレスに対応するデータを受け取る。なお、システムキャッシュ１２０のデータ格納構造やライン入れ替え方式、コヒーレンシについては、当業者にとってよく知られており、本発明と直接関係しないので、詳細な説明は省略する。
【００２９】
一方、システムキャッシュ１２０は、プロセッサ１０１、１０２がキャッシュにミスした場合、リクエストアドレスを信号線２０２経由でシステムバス１３０に通知すると同時に、リクエストバッファ部２２１にリクエストアドレスを登録する。そして、主記憶装置１４０からリクエストアドレスに対応するデータが読み出されシステムバス１３０に返却されると、システムキャッシュ１２０は、該当するキャッシュラインに、信号線２０２にて受信したデータを登録する。
【００３０】
また、システムバス１３０に接続する信号線２０６経由にてリクエストアドレスが返却され、リクエストバッファ部２２１は、自身に登録してある該リクエストアドレスをバッファからクリアする。
【００３１】
複数のプロセッサ１０１、１０２からのリクエストアドレスがシステムキャッシュ１２０上に存在しない場合（すなわち、プロセッサ１０１、１０２がキャッシュにミスした場合）は、リクエストバッファ部２２１に複数のアドレスが、キャッシュミスとなったアドレスとして登録されることになる。
【００３２】
アドレスエラー検出部２２０は、システムバス１３０のアドレスを信号線２０３にて常に監視している。その監視によりシステムバス１３０を含むシステム側で訂正不可能なアドレスエラーが検出された場合、アドレスエラー検出部２２０は、アドレスエラーを検知し、信号線２０４にてリクエストバッファ部２２１にバッファへのリクエストアドレスの登録抑止を指示する。
【００３３】
なお、アドレスエラーが訂正不可能か否かは、予め設定した基準に基づき、アドレスエラー検出部２２０が判断するものとするが、ここでは、詳細な説明は省略する。
【００３４】
本発明の第一の実施形態では、訂正不可能なアドレスエラーを検出してもマルチプロセッサシステムは即時停止しない。このため、プロセッサ１０１〜１０４からのリクエストは継続して動作する。
【００３５】
このように、アドレスエラー検出部２２０は、アドレスエラーを検出した以降のリクエストアドレスでリクエストバッファ部２２１の登録情報が更新されるのを抑止する。
【００３６】
アドレスエラー検出部２２０は、アドレスエラーを検知し、リクエストバッファ部２２１にバッファの登録抑止を指示した後、信号線２０５にて、タイムアウト部２２２のタイマを起動する。タイムアウト部２２２に設定する時刻は、システムキャッシュにミスしてから該当データをシステムキャッシュ１２０に登録するまでのレイテンシよりも大きく、オペレーティングシステムがタイムアウトしない適切な時刻を設定しておく。
【００３７】
タイムアウト部２２２は、タイムアウトすると、信号線２０７にてキャッシュ登録制御部２２４とリクエストバッファ部２２１にタイムアウトが発生したことを通知する。
【００３８】
キャッシュ登録制御部２２４は、信号線２０８を経由して、リクエストバッファ部２２１のバッファ内に登録されているリクエストアドレスを読み取る。キャッシュ登録制御部２２４は、リクエストバッファ部２２１に登録されているリクエストアドレスが無ければ何もしない。登録されているリクエストアドレスが存在する場合には、このリクエストアドレスがアドレスエラーを検出したリクエストであると判断することができる。
【００３９】
キャッシュ登録制御部２２４は、該当アドレスに対して、データポイズナ部２２３より、プロセッサ１０１、１０２が検出可能な回復不能なエラーパターン（ポイズンデータ）を読み出し、システムキャッシュ１２０の該当するキャッシュラインに書き込む。
【００４０】
ポイズン処理は、訂正不可能なエラーを効果的に処理する。演算処理装置１０は、ポイズン処理された訂正不可能なエラーを検出した場合、訂正はできないがエラーの検出を可能にする機能により、誤った出力の生成を回避することが可能である。データポイズナ部２２３は、破壊されたアドレスに関するデータが何れかのプロセッサにより使用されるのを防ぐために、破壊されたアドレスに対応するデータをポイズン（ｐｏｉｓｏｎ）と呼ぶ特別なデータパターン（ポイズンデータ）に変換してシステムキャッシュ１２０に書き込む。
【００４１】
その後、リクエストバッファ部２２１は、信号線２０７からのタイムアウトにより登録抑止を解除して動作を再開する。
【００４２】
プロセッサ１０１、１０２は、ポイズンデータをシステムキャッシュ１２０からロードすると、ロードユニットでポイズンであるかチェックし、ポイズンデータであれば、プロセッサチェックに移行する。
【００４３】
プロセッサチェックに移行したプロセッサで実行していたプロセスはジョブアボートかシステムクラッシュとなるが、システムダウンによる即時停止とはならない。このため、演算処理装置１０は、重要な動作の優先度を考慮して順序立ててシャットダウンする機会を提供することができ、信頼性を向上することができる。
【００４４】
また、システムキャッシュ１２０に登録したポイズンデータをプロセッサ１０１、１０２が使用せずにパージ処理した場合には、障害に移行することもないため、演算処理装置１０は、システムへの影響を軽減することが可能である。
【００４５】
ここで、アドレスエラー検出部２２０、タイムアウト部２２２、データポイズナ部２２３、及び、キャッシュ登録制御部２２４は、論理回路等のハードウェアで構成される。
【００４６】
また、リクエストバッファ部２２１は、半導体メモリ等の記憶装置である
また、アドレスエラー検出部２２０、タイムアウト部２２２、データポイズナ部２２３、及び、キャッシュ登録制御部２２４は、コンピュータである演算処理装置１０のプロセッサが、図示されないメモリ上のプログラムを実行することで実現されてもよい。
【００４７】
図３は、演算処理装置１０における、訂正不可能なアドレスエラー検出時の動作の一例を示す図である。
【００４８】
以下、図３を用いて、図２の演算処理装置１０（および図１の演算処理装置１００）における、訂正不可能なアドレスエラー検出時の詳細な動作を説明する。
【００４９】
まず、プロセッサ１０１〜１０４が、システムキャッシュ１２０でミスした場合に、主記憶装置１４０やシステムキャッシュ１２１に対して、リクエストアドレスに対応するデータを要求する。
【００５０】
そして、仕掛かり中の（ミスした場合の）リクエストアドレス「１」、「２」、及び、「３」が、リクエストバッファ部２２１に登録されている状態（２２１−０）で、アドレスエラー検出部２２０が訂正不可能なアドレスエラーを検出した場合、アドレスエラー検出部２２０は、信号線２０４にてリクエストバッファ部２２１にエラーの検出を通知する。
【００５１】
次に、リクエストバッファ部２２１は、エラーを検出した以降にリクエストアドレスが登録されないよう、登録を抑止してバッファをホールドする（状態２２１-１）。
【００５２】
ここで、タイムアウト部２２２は、時間監視を起動する。
【００５３】
時間監視中に、仕掛かり中のリクエストアドレス「１」と「３」に対応するデータが主記憶装置１４０から返却される（リプライの返却がある）と、リクエストバッファ部２２１は、自身に登録されているリクエストアドレス「１」と「３」をクリアする。
【００５４】
タイムアウト部２２２は、タイムアウトを検出すると、信号線２０７にてリクエストバッファ部２２１にタイムアウトが発生した事を通知する（状態２２１−２）。
【００５５】
リクエストバッファ部２２１は、リクエストアドレス「２」が登録された状態であるため、リクエストアドレス「２」がアドレスエラーを検出したアドレスであると判断できる。
【００５６】
キャッシュ登録制御部２２４は、データポイズナ部２２３よりポイズンデータを読み出し、リクエストアドレス「２」を登録しているシステムキャッシュ１２０のキャッシュラインにポイズンデータを書き込む。
【００５７】
図４は、演算処理装置１０の動作を示すフローチャートである。
【００５８】
図４は、アドレスエラー検出からポイズン処理までの流れを示している。
【００５９】
まず、アドレスエラー検出部２２０が、アドレスエラーを検出する（ステップＳ７０１）。
【００６０】
次に、アドレスエラー検出部２２０が、リクエストバッファ部２２１への登録処理を抑止する（ステップＳ７０２）。
【００６１】
また、アドレスエラー検出部２２０が、タイムアウト部２２２を起動し（ステップＳ７０３）、タイムアウトを検出するまで待ち合わせする（ステップＳ７０４）。
【００６２】
そして、キャッシュ登録制御部２２４は、タイムアウトを検出すると（ステップＳ７０４でＹ）、リクエストバッファ部２２１に残留しているリクエストアドレスに対してポイズンデータを書き込む（ステップＳ７０５）。
【００６３】
本実施形態に係る演算処理装置１０は、以下に記載するような効果を奏する。
【００６４】
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
【００６５】
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリクエストアドレスがバッファに残っているかをチェックする。そして、一定時間の経過後にリプライが無かったリクエストアドレスがアドレスエラーを検出していると判断して、該当するアドレスのデータをポイズン処理する、からである。
＜第二の実施形態＞
次に、本発明の第二の実施形態について図面を参照して詳細に説明する。
【００６６】
図５は、第二の実施形態に係る、演算処理装置１０Ａの構成の一例を示すブロック図である。
【００６７】
図５は、図２におけるデータポイズナ部２２３及びキャッシュ登録制御部２２４を削除し、代わりにリクエスト再送部３２０を追加した構成である。
【００６８】
ここで、リクエスト再送部３２０は、論理回路等のハードウェアで構成される。
【００６９】
また、リクエスト再送部３２０は、コンピュータである演算処理装置１０Ａのプロセッサが、図示されないメモリ上のプログラムを実行することで実現されてもよい。
【００７０】
なお、訂正不可能なアドレスエラーを検出してからタイムアウトまでは、図３の動作説明と同様であるため、説明を省略する。
【００７１】
まず、タイムアウト部２２２は、タイムアウトすると、信号線２０７にてリクエスト再送部３２０とリクエストバッファ部２２１にタイムアウトが発生したことを通知する。
【００７２】
リクエスト再送部３２０は、リクエストバッファ部２２１から信号線２０８により、バッファ内に登録されているリクエストアドレスを読み取る。リクエスト再送部３２０は、登録されているリクエストアドレスが無ければ何もしない。一方、登録されているリクエストアドレスが存在する場合には、リクエスト再送部３２０は、このリクエストアドレスがアドレスエラーを検出したリクエストであると判断することができる。リクエスト再送部３２０は、該当アドレスに対して、信号線３０１経由で、再度、リクエストをシステムバス１３０に送信する。
【００７３】
図２と異なる点は、図２の演算処理装置１０では、アドレスエラー検出でシステムキャッシュ１２０にポイズンデータを書き込むのに対して、図５の演算処理装置１０Ａは、アドレスエラーを検出したリクエストアドレスにリクエストを再送することである。
【００７４】
これにより、演算処理装置１０Ａは、間欠のシステムバス障害であれば、リクエストアドレスに対するデータを取得し直すことができるため、マルチプロセッサシステムを障害状態に遷移させることなく継続運用することができる。
【００７５】
リクエストバッファ部２２１は、信号線２０４による登録抑止を解除して動作を再開する。
【００７６】
本実施形態に係る演算処理装置１０Ａは、以下に記載するような効果を奏する。
【００７７】
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
【００７８】
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリクエストアドレスがバッファに残っているかをチェックする。そして、一定時間の経過後にリプライが無かったリクエストアドレスにリクエストを再送する、からである。
＜第三の実施形態＞
次に、本発明の第三の実施形態について図面を参照して詳細に説明する。
【００７９】
図６は、第三の実施形態に係る、演算処理装置１０Ｂの構成の一例を示すブロック図である。
【００８０】
本実施形態は、図６に示すように、図２の構成に、シャドーバッファ部４２０を追加した構成である。なお、シャドーバッファ部４２０は、半導体メモリ等の記憶装置である。
【００８１】
まず、アドレスエラー検出部２２０は、システムバス１３０にて訂正不可能なアドレスエラーを検出した場合、エラーを検知し、信号線２０４にて、リクエストバッファ部２２１からシャドーバッファ部４２０にバッファの登録情報をコピーするよう指示する。シャドーバッファ部４２０は、リクエストバッファ部２２１のデータを信号線４０２によりコピーして格納する。
【００８２】
次に、タイムアウト部２２２は、タイムアウトすると、信号線２０７にてキャッシュ登録制御部２２４とシャドーバッファ部４２０にタイムアウトが発生したことを通知する。
【００８３】
この後、第一の実施形態と同様に、キャッシュ登録制御部２２４は、シャドーバッファ部４２０から信号線４０１により、バッファ内に登録されているリクエストアドレスを読み取り、タイムアウト後に、登録されたリクエストアドレスの有無を判断する。
【００８４】
タイムアウト後に、登録されたリクエストアドレスが有った場合、キャッシュ登録制御部２２４は、データポイズナ部２２３が作成したポイズンデータをシステムキャッシュ１２０に書き込む。そして、シャドーバッファ部４２０は、信号線４０３により登録されているリクエストアドレスをリクエストバッファ部２２１に通知する。また、リクエストバッファ部２２１は、信号線４０３経由で通知されたリクエストアドレスと一致するアドレスをバッファから削除する。
【００８５】
上記を除く動作は、図２と同様であるので、説明は省略する。
【００８６】
本実施形態において、アドレスエラーが発生しても、リクエストバッファ部２２１は停止せずに継続動作する。その理由は、後続のリクエスト処理中にアドレスエラーが発生した場合に、リクエストバッファ部２２１に残留しているリクエストアドレスでリプライの返却の処理ができるようにするためである。
【００８７】
また、本実施形態では、演算処理装置１０Ｂは、シャドーバッファ部４２０やタイムアウト部２２２を複数、備えてもよい。アドレスエラーがタイムアウト期間内に複数発生する可能性がある場合には、演算処理装置１０Ｂは、シャドーバッファ部４２０やタイムアウト部２２２を複数分備えることで並列して処理できるようにすることが可能であり、救済率を向上することができる。
【００８８】
本実施形態に係る演算処理装置１０Ｂは、以下に記載するような効果を奏する。
【００８９】
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
【００９０】
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリクエストアドレスがバッファに残っているかをチェックする。そして、一定時間の経過後にリプライが無かったリクエストアドレスがアドレスエラーを検出していると判断して、該当するアドレスのデータをポイズン処理する、からである。
＜第四の実施形態＞
次に、本発明の第四の実施形態について図面を参照して詳細に説明する。
【００９１】
図７は、第四の実施形態に係る、演算処理装置１０Ｃの構成の一例を示すブロック図である。
【００９２】
本実施形態は、図７に示すように、図２、図５、及び、図６の構成とは異なり、システムキャッシュ１２０への登録の制御ではなく、プロセッサ１０１へリプライするための構成である。また、図７が図２と異なる点は、システムバス１３０ではなく、ローカルバス１１０のアドレスエラーに対する回復処理の構成としている点である。また、本実施形態は、図２におけるキャッシュ登録制御部２２４を削除し、代わりにリクエスト返却部５２０を追加した構成をローカルバス１１０に接続したものである。
【００９３】
リクエスト返却部５２０は、論理回路等のハードウェアで構成される。
【００９４】
また、リクエスト返却部５２０は、コンピュータである演算処理装置１０Ｃのプロセッサが、図示されないメモリ上のプログラムを実行することで実現されてもよい。
【００９５】
まず、プロセッサ１０１は、メモリに対するリクエストアドレスを信号線５０１でローカルバス１１０に通知すると同時に、リクエストバッファ部２２１にリクエストアドレスを登録する。
【００９６】
ローカルバス１１０は、システムキャッシュ１２０（図２）、または主記憶装置１４０（図２）からリクエストアドレスに該当するデータがローカルバス１１０に返却されると、信号線５０１にてプロセッサ１０１にデータを返却する。
【００９７】
また、リクエストバッファ部２２１は、信号線５０５経由にて返却されリクエストバッファ部２２１に登録した該当リクエストアドレスをクリアする。
【００９８】
アドレスエラー検出部２２０は、ローカルバス１１０のアドレスを信号線５０２にて常にチェックしている。ローカルバス１１０にて訂正不可能なアドレスエラーを検出した場合、アドレスエラー検出部２２０は、エラーを検知し、信号線５０３にてリクエストバッファ部２２１にバッファの登録抑止を指示し、アドレスエラーを検出した以降のリクエストでリクエストバッファ２２１の登録情報が更新されるのを抑止する。
【００９９】
そして、アドレスエラー検出部２２０は、信号線５０４にて、タイムアウト部２２２のタイマを起動する。タイムアウト部２２２に設定する時刻は、プロセッサ１０１がリクエストアドレスを送出してから該当データを返却するまでのレイテンシよりも大きく、オペレーティングシステムがタイムアウトしない適切な時刻を設定しておく。タイムアウト部２２２は、タイムアウトすると、信号線５０６にてリクエスト返却部５２０及びリクエストバッファ部２２１にタイムアウトが発生したことを通知する。
【０１００】
リクエスト返却部５２０は、タイムアウトの通知を受けて、リクエストバッファ部２２１から信号線５０７により、バッファ内に登録されているリクエストアドレスを読み取る。
【０１０１】
リクエストバッファ部２２１は、信号線５０３により登録抑止を解除して動作を再開する。
【０１０２】
そして、リクエスト返却部５２０は、登録されているリクエストアドレスが無ければ何もしない。また、登録されているリクエストアドレスが存在する場合には、リクエスト返却部５２０は、このリクエストアドレスがアドレスエラーを検出したリクエストであると判断することができる。
【０１０３】
リクエスト返却部５２０は、データポイズナ部２２３より、ポイズンデータを読み出し、該リクエストアドレスとポイズンデータをプロセッサ１０１に返却する。
【０１０４】
本実施形態に係る演算処理装置１０Ｃは、以下に記載するような効果を奏する。
【０１０５】
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
【０１０６】
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリプライの返却有無をチェックする。一定時間経過後にリプライが無かったリクエストアドレスがアドレスエラーを検出していると判断して、該当するアドレスのデータをポイズン処理する、からである。
＜第五の実施形態＞
本発明の第五の実施形態について図面を参照して詳細に説明する。
【０１０７】
図８は、第五の実施形態に係る、演算処理装置１０Ｄの構成の一例を示すブロック図である。
【０１０８】
演算処理装置１０Ｄは、アドレスエラー検出部２２０、リクエストバッファ部２２１、タイムアウト部２２２、データポイズナ部２２３、及び、キャッシュ登録制御部２２４、を包含する。
【０１０９】
また、演算処理装置１０Ｄは、プロセッサ１０１、１０２から主記憶装置１４０へのリクエストをキャッシュするシステムキャッシュ１２０を備える。
【０１１０】
リクエストバッファ部２２１は、プロセッサ１０１、１０２が、システムキャッシュ１２０で、キャッシュにミスした場合に、リクエストアドレスを登録する。
【０１１１】
キャッシュ登録制御部２２４は、リクエストバッファ部２２１から、リクエストアドレスを読み取り、システムキャッシュ１２０に書き込む。
【０１１２】
アドレスエラー検出部２２０は、主記憶装置１４０に接続するシステムバス１３０でアドレスエラーを検出する。
【０１１３】
タイムアウト部２２２は、リクエストバッファ部２２１、及び、キャッシュ登録制御部２２４に所定の時間の経過を示すタイムアウトを通知する。
【０１１４】
データポイズナ部２２３は、プロセッサ１０１、１０２による検出が可能なエラーパターンであるポイズンデータを作成する。
【０１１５】
演算処理装置１０Ｄは、アドレスエラー検出部２２０が、アドレスエラーを検出した場合、リクエストバッファ部２２１へリクエストアドレスの登録の抑止を指示し、さらにタイムアウト部２２２を起動する。登録抑止の指示に基づきリクエストバッファ部２２１が、リクエストアドレスの登録を抑止する。また、システムバス１３０からリクエストアドレスが返却されると、リクエストバッファ部２２１はリクエストアドレスの登録をクリアする。キャッシュ登録制御部２２４が、タイムアウト部２２２のタイムアウトを通知されると、キャッシュ登録制御部２２４は、システムキャッシュ１２０のキャッシュミスによってリクエストバッファ部２２１に登録されているリクエストアドレスに、データポイズナ部２２３から読み出したポイズンデータを書き込む。
【０１１６】
本実施形態に係る演算処理装置１０Ｄは、以下に記載するような効果を奏する。
【０１１７】
訂正不可能なアドレスエラーによるシステムダウンを軽減しシステムの信頼性を向上する。
【０１１８】
その理由は、訂正不可能なアドレスエラーを検出した場合に、仕掛かり中のリクエストアドレスを保持し、一定時間内にリクエストアドレスがバッファに残っているかをチェックする。そして、一定時間の経過後にリプライが無かったリクエストアドレスがアドレスエラーを検出していると判断して、該当するアドレスのデータをポイズン処理する、からである。
【０１１９】
以上、図面を参照して本発明の実施形態を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【０１２０】
１０    演算処理装置
１０Ａ    演算処理装置
１０Ｂ    演算処理装置
１０Ｃ    演算処理装置
１０Ｄ    演算処理装置
１００    演算処理装置
１０１    プロセッサ
１０２    プロセッサ
１０３    プロセッサ
１０４    プロセッサ
１１０    ローカルバス
１１１    ローカルバス
１２０    システムキャッシュ
１２１    システムキャッシュ
１３０    システムバス
１４０    主記憶装置
１４１    Ｉ／Ｏ装置
２２０    アドレスエラー検出部
２２１    リクエストバッファ部
２２２    タイムアウト部
２２３    データポイズナ部
２２４    キャッシュ登録制御部
３２０    リクエスト再送部
４２０    シャドーバッファ部
５２０    リクエスト返却部
【図１】
2015176333.tif 000003
【図２】
2015176333.tif 000004
【図３】
2015176333.tif 000005
【図４】
2015176333.tif 000006
【図５】
2015176333.tif 000007
【図６】
2015176333.tif 000008
【図７】
2015176333.tif 000009
【図８】
2015176333.tif 000010