(57)【特許請求の範囲】
【請求項１】
プロセッサを備えた電子システム装置において、
プロセッサが管理するキャッシュメモリと主記憶メモリのソフトエラーを検出する手段と、
該ソフトエラーの発生を監視する手段と、
該ソフトエラー発生時刻までの総稼動時間とソフトエラーの発生数を記録する手段と、
該記録したソフトエラー発生数と総稼動時間からソフトエラー率を計算する手段と、
ソフトエラー率のしきい値とキャッシュメモリの制御方法を切替える情報を対応させて格納する手段と、
計算された前記ソフトエラー率と前回のソフトエラー率が、前記格納手段に格納されたいずれかのしきい値を跨いで変化する場合に、該しきい値に対応したキャッシュメモリの制御方法を切替える情報に基づいて、キャッシュモード切替え指示を出力する手段とを設けたことを特徴とするソフトエラー耐性調整機能を備えた電子システム装置。
【請求項２】
前記格納手段が、ソフトエラー率のしきい値とキャッシュメモリのアクセス方法、データ格納管理の制御方法、または更新間隔を切替える情報を対応させて格納し、
前記キャッシュモード切替え指示を出力する手段が、計算された前記ソフトエラー率と前回のソフトエラー率が、前記格納手段に格納されたいずれかのしきい値を跨いで変化する場合に、該しきい値に対応したキャッシュメモリのアクセス方法、データ格納管理の制御方法、または更新間隔を切替える情報に基づいて、キャッシュモード切替え指示を出力する、ことを特徴とする請求項１に記載のソフトエラー耐性調整機能を備えた電子システム装置。
【請求項３】
前記格納手段が、ソフトエラー率のしきい値と、主記憶領域としてＳＲＡＭまたはＤＲＡＭを主体に選択するための切替え情報とを対応させて格納し、
前記キャッシュモード切替え指示を出力する手段が、計算された前記ソフトエラー率と前回のソフトエラー率が、前記格納手段に格納されたいずれかのしきい値を跨いで変化する場合に、該しきい値に対応した主記憶領域としてＳＲＡＭまたはＤＲＡＭを主体に選択するための切替え情報に基づいて、主記憶メモリアクセス切替え指示を出力する、ことを特徴とする請求項１に記載のソフトエラー耐性調整機能を備えた電子システム装置。
【請求項４】
複数のプロセッサを搭載し、それらプロセッサ間でプログラムとデータを格納する主記憶メモリを共通で利用する電子システム装置において、
全てのプロセッサもしくは一部のプロセッサでキャッシュメモリと主記憶メモリのソフトエラーを検出する手段と、
該ソフトエラーの発生を監視する手段と、
該ソフトエラー発生時刻までの総稼動時間とソフトエラーの発生数を記録する手段と、
該記録したソフトエラー発生数と総稼動時間からソフトエラー率を計算する手段と、
ソフトエラー率のしきい値と全てのプロセッサのキャッシュメモリの制御方法を切替える情報を対応させて格納する手段と、
計算された前記ソフトエラー率と前回のソフトエラー率が、
前記格納手段に格納されたいずれかのしきい値を跨いで変化する場合に、該しきい値に対応したキャッシュメモリの制御方法を切替える情報に基づいて、全てのプロセッサのキャッシュモード切替え指示を出力する手段とを設けたことを特徴とするソフトエラー耐性調整機能を備えた電子システム装置。
【請求項５】
前記格納手段が、ソフトエラー率のしきい値とキャッシュメモリのアクセス方法、データ格納管理の制御方法、または更新間隔を切替える情報を対応させて格納し、
前記キャッシュモード切替え指示を出力する手段が、計算された前記ソフトエラー率と前回のソフトエラー率が、前記格納手段に格納されたいずれかのしきい値を跨いで変化する場合に、該しきい値に対応したキャッシュメモリのアクセス方法、データ格納管理の制御方法、または更新間隔を切替える情報に基づいて、キャッシュモード切替え指示を出力する、ことを特徴とする請求項４に記載のソフトエラー耐性調整機能を備えた電子システム装置。
【請求項６】
前記格納手段が、ソフトエラー率のしきい値と、主記憶領域としてＳＲＡＭまたはＤＲＡＭを主体に選択するための切替え情報とを対応させて格納し、
前記キャッシュモード切替え指示を出力する手段が、計算された前記ソフトエラー率と前回のソフトエラー率が、前記格納手段に格納されたいずれかのしきい値を跨いで変化する場合に、該しきい値に対応した主記憶領域としてＳＲＡＭまたはＤＲＡＭを主体に選択するための切替え情報に基づいて、主記憶メモリアクセス切替え指示を出力する、ことを特徴とする請求項４に記載のソフトエラー耐性調整機能を備えた電子システム装置。
【請求項７】
電子システム装置に備えられたプロセッサにおいて、
キャッシュメモリと主記憶メモリのソフトエラーを検出するステップと、
該ソフトエラーの発生を監視するステップと、
該ソフトエラー発生時刻までの総稼動時間とソフトエラーの発生数を記録するステップと、
該記録したソフトエラー発生数と総稼動時間からソフトエラー率を計算するステップと、
計算された前記ソフトエラー率と前回のソフトエラー率とにより、予め記憶装置に記憶されたソフトエラー率のしきい値とキャッシュメモリの制御方法を切替える情報を対応させたデータテーブルを検索して、前記ソフトエラー率と前回のソフトエラー率が前記記憶されたいずれかのしきい値を跨いで変化する場合に、該当しきい値に対応したキャッシュメモリの制御方法を切替える情報に基づいて、キャッシュモード切替え指示を出力するステップとを有することを特徴とするソフトエラー耐性調整方法。
【請求項８】
前記キャッシュモード切替え指示を出力するステップが、計算された前記ソフトエラー率と前回のソフトエラー率とにより、予め記憶装置に記憶されたソフトエラー率のしきい値とキャッシュメモリのアクセス方法、データ格納管理の制御方法、または更新間隔を切替える情報を対応させたデータテーブルを検索して、前記ソフトエラー率と前回のソフトエラー率が前記記憶されたいずれかのしきい値を跨いで変化する場合に、該当しきい値に対応したキャッシュメモリのアクセス方法、データ格納管理の制御方法、または更新間隔を切替える情報に基づいて、キャッシュモード切替え指示を出力することを特徴とする請求項７に記載のソフトエラー耐性調整方法。
【請求項９】
前記キャッシュモード切替え指示を出力するステップが、計算された前記ソフトエラー率と前回のソフトエラー率とにより、予め記憶装置に記憶されたソフトエラー率のしきい値と主記憶領域としてＳＲＡＭまたはＤＲＡＭを主体に選択するための切替え情報を対応させたデータテーブルを検索して、前記ソフトエラー率と前回のソフトエラー率が前記記憶されたいずれかのしきい値を跨いで変化する場合に、該当しきい値に対応した主記憶領域としてＳＲＡＭまたはＤＲＡＭを主体に選択するための切替え情報に基づいて、主記憶メモリアクセス切替え指示を出力する、ことを特徴とする請求項７に記載のソフトエラー耐性調整方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトエラー耐性調整機能を備えた電子システム装置及びソフトエラー耐性調整方法に関するものである。
【背景技術】
【０００２】
半導体デバイスの微細化につれ、環境放射線（地上における宇宙線中性子，α線）等に起因するソフトエラーの問題が特にSRAMや論理ゲート（非特許文献１−３参照）、クロック系（非特許文献４，５参照）などについて顕在化している。極めて高いエネルギーを有する中性子がデバイスを構成する原子核内に突入すると核内の核子（中性子、陽子）が衝突を繰り返し、特に高いエネルギーを持った核子は核外に放出される。核子が核外に飛び出すだけの運動エネルギーを持ち得ない状態になると、励起状態にある残留原子核から陽子、中性子、重陽子、アルファ粒子などの軽粒子が蒸発する過程が続き、最終的に残留核も反跳エネルギーを持つためこれらの2次粒子は全てその飛程に見合った距離をデバイスの中を飛ぶことになる。
【０００３】
半導体パッケージなどに含まれる放射性同位元素から発生するα線や，核反応の結果発生する電荷を持った２次イオンがSRAMの“ｈｉｇｈ”状態にあるストレージノードの空乏層を通過すると電子はノードに吸収され正孔は反対方向に流れイオンの飛跡に沿って電荷収集領域が広がるファネリングメカニズムによってストレージノードに電荷が収集される。臨界電荷量以上の電荷が収集されると“ｈｉｇｈ”状態が“low”状態に推移し、ソフトエラー（Single Event Upset;SEU）になる。これが、環境放射線ソフトエラーのメカニズムとして考えられてきた典型的なメカニズムでありSEU（Single Event Upset）とも称する。メモリデバイスのSEUについて複数のセルが同時にエラーになるケースをMCU（Multi Cell Upset)と呼んでSBU（Single Bit Upset：単一ビットエラー）とは区別する。MCUは同一ワードに発生した場合MBU（Multiple Bit Upset）と呼んで通常のECC（Error Correction Code）では修復できないためシステムダウンの原因となる。
【０００４】
SEUを含むソフトエラーは、ハードエラー（ハードウェアの固定故障）と異なり、エラー発生後も、新たなデータに更新され、再起動などによって正常に復帰してしまうためにエラーの要因特定が困難な場合が多い。このように論理回路に発生するソフトエラーの影響とは、コンピュータのプロセッサやASIC、制御用デジタル回路等の誤作動を引き起こす可能性を有し、電子システムとしての誤作動の要因となることが懸念される。
【０００５】
特にプロセッサを搭載する電子システム装置では、キャッシュメモリや、主記憶となるメモリ等のデータ反転に対し、システムとして誤作動を起こさない仕組み作りが必要とされている。サーバや通信装置では、システム全体を２重系にする等の冗長化により、ソフトエラーが発生しても動作し続けるよう設計されているが、製品コストや消費電力の観点で改善が求められる。
【０００６】
メモリアーキテクチャを変更することで２次的な効果を得る取組みとして、キャッシュメモリの使用容量を限定することで消費電力を削減する手法がある。特許文献１では、キャッシュモニタユニットを設けることで、キャッシュメモリの使用率を常に監視し、キャッシュメモリの使用率があらかじめ決めたしきい値より大きければ、キャッシュメモリの一部を無効にし（使用しない）、キャッシュアクセス頻度を削減することで、消費電力を削減するものである。また、特許文献２では、キャッシュメモリのライン毎にアクセス頻度を監視し、アクセス頻度があるしきい値を超えていた場合は、優先的にキャッシュにロードしておくことで、プロセッサからのアクセスレイテンシを小さくし、処理性能を向上、しきい値を超えていなければ、ノン・キャッシュモードにすることで、メモリ使用効率を向上するものである。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第4456154号
【特許文献２】特許第2735781号
【非特許文献】
【０００８】
【非特許文献１】P. Shivakumar (University of Texas at Austin), M. Kistler, W Keckler.S, DougBurger, Lorenzo.A., "Modeling the Effect of Technology Trends on the Soft Error Rate of Combinational Logic," Int'l  Conf. on Dependable Systems and Networks, pp. 389-398 (2002).
【非特許文献２】Mavis, D.G., and Eaton, PaulH., "(Invited) SEU and SET modeling & mitigation in deep submicron technologies," IRPS, Phoenix, Arizona, April 15-19, 2007, No.4B.1 (2007).
【非特許文献３】Seifert, N., Zhu, X., Massengill, L.W., "Impact of Scaling on Soft-Error Rates in Commercial Microprocessors," TNS, Honolulu, Hawaii, July 23-27, Vol.49, No.6, pp. 3100-3106 (2002).
【非特許文献４】Seifert, N. , Shipley, P., Pant, M.D., Ambrose, V., and Gill, B., "Radiation-Induced Clock Jitter and Race," 2005 IEEE International Reliability Physics Symposium Proceedings, April 17-21, San Jose, April 17-21, 2005, Vol.43rd Annual, pp. 215-222 (2005).
【非特許文献５】N. Seifert, V. Zia, "Assessing the impact of scaling on the efficacy of spatial redundancy based mitigation schemes for terrestrial applications,," IEEE Workshop on Silicon Errors in Logic - System Effects 3, Austin Texas, April 3, 4 (2007).
【発明の概要】
【発明が解決しようとする課題】
【０００９】
半導体デバイスの微細化・高集積化に伴い、環境放射線（α線、中性子線等）によるソフトエラーの影響が拡大するとともに、プロセッサ内キャッシュ容量の増大により、プロセッサを使用する電子システム装置のソフトエラーが問題となりつつある。しかし、ソフトエラーの主要因である中性子線を遮蔽することは難しく、その対策は困難である。通常、通信機器等に搭載されているプロセッサが環境放射線により、キャッシュデータが書き換えられた場合、そのエラーを検出し、ハードウエアもしくはＯＳレベルでシステム停止処理を行う。通信装置等、装置停止が及ぼす影響が大きなシステムでは、システムの動作を停止せずに復旧することが重要である。また、プラント制御機器、遠隔地に設置される機器などにおいても、長期間使い続けるための信頼性が重要である。
【００１０】
従来より実施されている誤り検出・訂正技術は、主記憶、二次記憶の領域のデータが主な対象であり、キャッシュメモリは高速で動作させることが主目的であるため、誤り訂正技術を実施することは難しい。
【００１１】
中性子線量は、機器の設置場所、時期によって高低に変動があることが知られており、太陽黒点の活動などの自然現象に左右されることから、例えば、中性子線量が高い場所に設置した装置等、ソフトエラー率が高い場合でも、中性子線量の高低に応じてキャッシュメモリなどのメモリ制御方法を切替えて、出来るだけ装置動作を継続することが求められる。
【００１２】
本発明の目的は、電子システム装置の設置環境、設置場所の影響でソフトエラー率が上昇する場合でも、システムの安定的な稼動を実現し、高信頼化を図ることである。
【課題を解決するための手段】
【００１３】
上記課題を解決するために本発明では、プロセッサを備えた電子システム装置において、プロセッサが管理するキャッシュメモリと主記憶メモリのソフトエラーを検出する手段と、該ソフトエラーの発生を監視する手段と、該ソフトエラー発生時刻までの総稼動時間とソフトエラーの発生数を記録する手段と、該記録したソフトエラー発生数と総稼動時間からソフトエラー率を計算する手段と、ソフトエラー率のしきい値とキャッシュメモリの制御方法を切替える情報を対応させて格納する手段と、計算された前記ソフトエラー率と前回のソフトエラー率が、前記格納手段に格納されたいずれかのしきい値を跨いで変化する場合に、該しきい値に対応したキャッシュメモリの制御方法を切替える情報に基づいて、キャッシュモード切替え指示を出力する手段とを設けて、ソフトエラー耐性調整機能を備えた。
【発明の効果】
【００１４】
本発明によれば、電子システム装置の設置環境、設置場所の影響でソフトエラー率が上昇する場合でも、システムの安定的な稼動を実現し、高信頼化を図ることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係るプロセッサノードの構成図である。
【図２】本発明の実施の形態に係るソフトエラー監視の動作シーケンスを示した図を示す。
【図３】本発明の実施の形態に係る動作モードを設定するシーケンス例を示した図である。
【図４】本発明によるソフトエラー監視部およびエラー記録部の構成図である。
【図５】本発明によるキャッシュアクセス方法とソフトエラー監視結果によるプロセッサコアへのレジスタ設定テーブルの構成例である。
【図６】一般的なコンピュータシステムのキャッシュアクセス方式を示した図である。
【図７】本発明によるプロセッサコアの設定状態および設定画面例を示した図である。
【図８】階層化されたメモリ構成におけるデータアクセスの流れと、各メモリ階層でのデータ滞在時間の関係を示した図である。
【図９】本発明のソフトエラー耐性調整機能を一般的なコンピュータに実装した構成図である。
【発明を実施するための形態】
【００１６】
本発明に係る電子システムのソフトエラー耐性調整回路、および装置の実施例を、図面を用いて説明する。
【実施例１】
【００１７】
図１は、本発明のソフトエラー耐性調整回路を設けた電子システム装置の構成を示す。図１は、電子システム装置の各種機能の制御や各種計算を行うプロセッサコア２と、プロセッサコア２で実行するプログラムおよびデータを一時的に格納するＬ１キャッシュ３と、上記プログラムとデータを階層化して一時的に格納するＬ２キャッシュ４と、上記プログラムとデータをさらに階層化して格納するための主記憶メモリ５と、上記プログラムとデータを定常的に格納するハードディスク７と、このハードディスク７のリードライト制御を行うハードディスクコントローラ６と、プロセッサコア２やＬ１キャッシュ３、Ｌ２キャッシュ４、ハードディスクコントローラ６との間の上記プログラムとデータの転送を行うバス８とを備えたプロセッサノード１において、プロセッサコア２からソフトエラー情報を取得し、ソフトエラー率を計算するソフトエラー監視部１１と、上記ソフトエラー監視部１１で取得、計算した結果を格納するエラー記録部１３と、上記ソフトエラー監視部１１での情報をもとにプロセッサコア２によって制御されるキャッシュアクセス方法を選択する設定切替部１２と、上記キャッシュアクセス方法とソフトエラー監視部１１から得られる情報との対応関係を格納する設定テーブル１４とをさらに備えた構成を示す。
【００１８】
また、プロセッサノード１は、プロセッサノード１の外部とのデータ通信を行うための外部I/Fコントローラ９と、他のプロセッサノードとネットワーク接続するためのネットワークインターフェイス１０とを持つ。なお、本発明では、L1キャッシュ３、L2キャッシュ４、主記憶メモリ５、ハードディスク７のプログラムおよびデータを格納する記憶階層構成を限定するものではなく、キャッシュの階層が増減しても構わない。また、図１の実施例では、L1キャッシュ３とL2キャッシュ４とハードディスクコントローラ６とが、バス８で接続されているが、バス接続に限定するものではない。プロセッサコアと、プログラム、データを記憶するメモリが存在する所謂一般的なコンピュータの構成でも良い。また、ソフトエラー監視部１１によるソフトエラー情報を取得する部位は、上述したプロセッサコア２だけでなく、L1キャッシュ３や、図１には記載していないが、L2キャッシュ４、主記憶メモリ５から取得しても構わない。
【００１９】
設定切替部１２で設定するキャッシュアクセス方法の切替えの実施例としては、ライトスルー（write through）方式と ライトバック（write back）方式の選択がある。図６にメモリ階層とキャッシュアクセス方法の特性と動作を示す。ライトスルー方式とは、プロセッサが記憶装置にデータを書き込むと同時に、キャッシュにも同様の内容を書き込む方式である。この方法は、キャッシュと主記憶メモリとの間でのデータが常に一致する。ただし、主記憶メモリよりもキャッシュのアクセス速度が高速であるという特性を活かすことができないため、プロセッサコアの待ち時間が大きくなり、処理速度が遅くなる可能性がある。
【００２０】
ライトバック方式とは、プロセッサが主記憶メモリにデータを書き込む際、いったんキャッシュにデータを書き込み、プロセッサでの処理の空き時間にキャッシュから主記憶メモリに書き込む方式である。キャッシュと主記憶メモリに同時にデータの書き込みを行うライトスルー方式に比べて、キャッシュが主記憶メモリよりもアクセス速度が高速であるという特性を活かすことで、処理速度を高速化可能となる。ただし、キャッシュと主記憶メモリとの間でデータが必ずしも整合するとは限らない。そのため、最新データがキャッシュにしか存在しない時間が存在し、その期間にキャッシュの情報が環境放射線等のソフトエラー要因により反転するとシステムの動作が停止することになる。通常、キャッシュは、動作周波数を高速にする必要があるため、データの誤り訂正機構を入れ込むことが困難である。なお、このキャッシュアクセス方式によるキャッシュ内滞在時間の流れについては、図８を用いて後述する。
【００２１】
以上の構成により、性能を重視してライトバック方式で動作させていた電子システム装置に対し、図１に示すソフトエラー監視部１１でのエラー率悪化の検出により、自動的にライトスルー方式に変更することで、人手による設定変更手続きを必要とせず、ソフトエラー率を低減した設定での動作に切り替えることができる。
【００２２】
同様にして、ソフトエラー監視部１１におけるソフトエラー率の検出の結果、所定の期間の間、ソフトエラー率が所定の水準まで良好な状態であったため、ライトスルー方式で運用していたキャッシュアクセス方式をライトバック方式に切り替えることが可能である。
【００２３】
上述した方法は、メモリ階層のアクセス制御方法であるが、キャッシュのデータ格納管理の制御方法を切り替える方法もある。例えば、ダイレクトマップ方式では、アドレスにより一意に配置が決まるため、同一ライン（キャッシュ内の格納単位）にアドレス差が大きい異なるデータが転送されると必ずラインの入れ替えが発生する。つまりラインの入れ替えが頻発しスループットが落ちるキャッシュスラッシングが発生するが、キャッシュ内のデータ更新回数が多く、キャッシュ滞在時間が短いことになる。また、セットアソシアティブ方式は、キャッシュを複数のブロックに分割することで、下位アドレスが同じ複数のメモリ領域に対してキャッシュがヒットするようにする技術で、セット数が多いほど効率が上がるが、データの更新頻度（主記憶メモリへの転送）が少なくなり、キャッシュ内の滞在時間が長くなる可能性がある。上記方式により、性能を重視してセットアソシアティブ方式で動作させていた電子システム装置に対し、ソフトエラー監視部１１でのエラー率悪化の検出により、自動的にデータのキャッシュ滞在時間の短いダイレクトマップ方式に変更することで、人手による設定変更手続きを必要とせず、ソフトエラー率を低減した設定での動作に切り替えることができる。
【００２４】
ただし、本方式では、ソフトエラー率を低減する効果は実行アプリケーションに対する依存度が高い。例えば、技術計算プログラムのようにメモリのアクセス領域が局所的になる場合、キャッシュのデータ格納管理の制御方法の切替えによるソフトエラー率の差は小さくなる可能性があるが、金融システム等のトランザクション処理の場合、そのアクセス領域は局所的ではなく広範囲であるため、ソフトエラー率を低減する効果が大きいことが予測される。本発明によれば、実行プログラムの動作に関わらず、ソフトエラー率をリアルタイムで監視し、エラー率の少ないキャッシュのデータ格納管理の制御方法を自動的に選択することが可能である。
【００２５】
また、キャッシュアクセス方法ではなく、メモリデバイスをプロセッサコア２により強制的に変更する方法もある。例えば、SRAMとDRAMを搭載する電子システム装置においては、SRAMのアクセス速度が高く処理性能を上げることができるが、環境放射線等に起因するソフトエラーに対する耐性は、SRAMに比べDRAMの方が高いため、例えば、ソフトエラー監視部１１の検出結果より、ソフトエラー率が高い場合には、データの記録をDRAM中心に行い、ソフトエラー率が低い場合にはSRAMを主に使用してデータの記録を行うように、データの格納場所をプロセッサコア２において最適配置することで電子システム装置全体としてのソフトエラー率を削減することが可能である。 
ただし、上述した方法は一例であり、当該電子システム装置およびプロセッサコアに応じた方法を適用するものとし、選択されるべき方法は問わない。
【００２６】
図２および図３は、図１に示す構成において、ソフトエラー監視部１１と、設定切替部１２と、エラー記録部１３と、設定テーブル１４による動作の流れを説明するフローチャートを示す。また、図４にソフトエラー監視部１１と、エラー記録部１３の機能ブロック図を示す。
【００２７】
図２に示すフローチャートの処理は、プロセッサノード１に実装された電子システム装置が起動するのに同期して、または所定の開始コマンドによって開始される。
ステップＳ２１は、ソフトエラー監視部１１でプロセッサコア２もしくはL1キャッシュ３からのソフトエラー発生状況を、図４に示すエラーイベントリード部４１で監視する。および、プロセッサコア２より発せられる所定時間間隔ごとの設定見直し指示を監視する。プロセッサコア２、L1キャッシュ３、およびソフトエラー監視部１１で実行されるソフトエラーの検出方法は、既存の誤り検出技術を使用することで良い。アドレス空間上のデータが破損していることを検知する方法は本発明では特定はしない。また、例えば中性子線などにより複数ビットのデータに反転が生じた場合を検知した場合には、それは発生時刻に１回のエラーが生じたとカウントするように、エラー発生情報(エラーイベント)を作成する。なお、ハードウエアの異常に起因するエラーは永続的に固定するなどの特徴より、ソフトエラーとは分離して、本発明の適用対象外となる。
【００２８】
ステップＳ２２において、エラー発生情報、または設定見直し指示情報を取得する。エラー発生情報は、ソフトエラーイベントの発生を通知するのみである。設定見直し指示情報は、ソフトエラー率を計算する場合の評価期間を、総稼動時間とするか、または前回の設定見直し指示からの経過期間とするかの情報を含む。
【００２９】
ステップＳ２３は、エラー発生情報、または設定見直し指示情報を取得後、エラーイベントリード部４１は、エラー発生時間、または設定見直し指示時間を記録するため、エラー記録部１３内にあるエラー発生時間格納レジスタ４６に、ソフトエラー監視部１１が持つタイマ４２の情報を書き込むためのイネーブル信号を出力する。また、同時に総稼働時間レジスタ４５に積算部５０により計算される稼働時間を格納するためのイネーブル信号を出力する。また、イベント制御部４３は、エラー発生情報を受け付けた場合のみに、イネーブル信号をエラー数カウンタ５１へ発行して、エラー数をカウントし、保持する。また、イベント制御部４３は、前回のエラー発生時間データ、または前回の設定見直し指示時間データの格納を前回のエラー発生時間データ格納レジスタ４７へ指示する。
【００３０】
ステップＳ２４では、イベント制御部４３は、ソフトエラー発生情報、または設定見直し指示情報を取得後、エラー率演算部４４にソフトエラー率計算指示を送出する。エラー率演算部４４では、エラー発生時間格納レジスタ４６と、前回のエラー発生時間データ格納レジスタ４７と、総稼働時間レジスタ４５と、エラー数カウンタ５１とを読み込み、ソフトエラー率と平均エラー発生間隔（MTTF：mean time to failure）を計算する。
【００３１】
エラー率の計算式の一例としては、以下の式がある。
（数１）    
λ＝ｒ／Ｔ
（数２）
MTTF＝Ｔ／ｒ
ここで、T:総稼働時間、ｒ：エラー数、λ：エラー率である。
【００３２】
また、エラー率演算部４４は、設定見直し指示情報の指示に従って、前回のエラー数カウンタ値を記録していて、前回と今回の設定見直し指示時間の間の時間間隔におけるソフトエラー率の計算も行うことができる。
【００３３】
次に、ステップＳ２５において、前記算出したエラー率と、図５に示す予め登録されている設定テーブルのエラー率のしきい値５０２とを比較する。設定テーブルに格納されたしきい値は、各しきい値をエラー率の値が超えた場合に、キャッシュアクセス方法、キャッシュのデータ格納管理の制御方法、メモリデバイスの選択方法などを変更するためのプロセッサコア２のレジスタ名称５０１と、実際に設定する値５０３とを対応付けて構成される。
【００３４】
例えば、しきい値が０の行は、電子システム装置が起動して、当初はエラー率が０の場合のレジスタ名称５０１：Reg1、・・Reg5の初期設定値を、Ｘ0、・・ＸFと格納している。さらに、エラー率が計算されて、しきい値０．４を超えて、０．４１となった場合には、しきい値０．４の行の各レジスタに設定する値を使用して、プロセッサコア２の設定が変更される。同様にして、さらにエラー率が計算されて、しきい値０．５を超えて、０．５４となった場合には、しきい値０．５の行の各レジスタに設定する値を使用して、プロセッサコア２の設定が変更される。また、さらにエラー率が計算されて、しきい値０．５を下回って、計算結果がしきい値０．４と０．５の間に達した場合は、小さい値のしきい値０．４の行の各レジスタに設定する値を使用して、プロセッサコア２の設定が変更される。各しきい値に対応したレジスタ設定値によって、キャッシュアクセス方法、キャッシュのデータ格納管理の制御方法、メモリデバイスの選択方法、その他の制御方法のいずれか１つ、または複数の方法の方式を切替えることができる。
【００３５】
なお、図５の例では、レジスタ名称５０１をReg1、・・Reg5としているが、プロセッサコア内の設定レジスタに応じたレジスタ設定値を格納するもので、図５の例に限定するものではない。また、各レジスタの初期設定値はしきい値が０の行の設定値である必要はなく、任意の設定値の組に指定可能である。
【００３６】
ステップＳ２５の設定テーブルの各しきい値と、ソフトエラー率の計算結果とを比較した結果が、前回の計算結果から今回の計算結果への変化がいずれかのしきい値を跨ぐものであれば、プロセッサコア２の制御方法の設定変更が要と判定してステップＳ２７へ続き、前回の計算結果から今回の計算結果への変化がいずれのしきい値も跨がないものであれば、設定変更は否と判定してステップＳ２８へ続く。（図２に示すステップＳ２６）
ステップＳ２７では、設定変更リクエストを発行する処理を実行する。図３に設定変更リクエストの発行処理のフローチャートを示す。ステップＳ３１では、ステップＳ２６で前回のエラー率の計算結果から今回のエラー率の計算結果への変化がいずれかのしきい値を跨ぐと判定されているので、該当しきい値か、またはそれより小さい値のしきい値に対応する設定テーブルのレジスタ設定値を検索する。
ステップＳ３２において、設定テーブルのレジスタ設定値を読み出して、ステップＳ３３において、プロセッサコア２の各レジスタを、読み出したレジスタ設定値で設定変更する指示を発行する。
【００３７】
ステップＳ２８では、ソフトエラー監視部１１で引き続きソフトエラー発生状況、および設定見直し指示の監視を継続することを終了させる指示、または電子システム装置の停止が無い限りは、継続としてステップＳ２１の処理へ移る。
【００３８】
図７は、本発明によるプロセッサノード１のハードウエア設定を管理するBIOS画面７１の実施形態例を示す。ここでは、キャッシュアクセス方法の設定状態、エラー検出機構の使用・未使用設定等を設定、表示する画面の例を示す。なお、BIOSとは、Basic Input/Output Systemの略称で、プロセッサの初期動作設定や、ハードディスク、キーボード等の周辺機器を制御するプログラムで、基本的な入出力手段をOSに提供するためのものである。
【００３９】
図８は、階層化したメモリ構成を縦軸に、時間経過(t)を横軸に表している。メモリ構成を、プロセッサコア２（図中Core）と、L1キャッシュ３（図中Cache）と、主記憶メモリ５（図中SRAM）を例として、キャッシュアクセスと主記憶へのアクセスの流れを時系列に表している。なお、図１に示す例では、L2キャッシュ４を設けているが、処理の説明を簡単にするため、図８の例ではL2キャッシュ４は外した構成としているが、処理の流れは同様となる。最初（0番目）のストア命令（アドレス０：a0）を表す“S0[a0]”が発行されると、CoreにあるデータがCacheに転送される。そのデータをロード命令L0[a0]で、再度Coreに読み込んでいる。Coreに読み込んだ後、CacheをフラッシュしSRAMへ転送している。この例では、フラッシュ時に書き戻すWriteBack方式の例を示している。上述したCoreへの読み込み後、さらにSRAMからa1データをL1[a1]命令でCoreに読み込む。これをCoreで処理した後、a1’データとして、Cacheに書き戻している。以下、同様に命令列の順に処理を継続している。ソフトエラー要因となる環境放射線等の影響を受けるキャッシュの滞在時間は、図中a0’、a1’の期間となる。本発明により、ソフトエラー率を監視し、この滞在時間をアクセス方式の選択により制御することで、電子システム装置としてのソフトエラー率を緩和することができる。
【００４０】
また、上述したソフトエラー監視部１１、エラー記録部１３、設定切替部１２、設定テーブル１４が、プロセッサコア２の数と一致する必要はなく、例えば、プロセッサコア２の数より少ない場合は、一部のソフトエラー監視部１１、設定切替部１２の指示に従い、搭載している全てのプロセッサコア２のキャッシュアクセス方法など全ての制御方法を一括設定変更指示する制御信号を設けることで、キャッシュアクセス方法など全ての制御方法を一括設定変更する。なお、複数のプロセッサコア２を具備する場合、それぞれに個別のキャッシュアクセス方法など全ての制御方法の設定変更を指示してもよい。
【００４１】
また、図５に示すレジスタ５０１を、キャッシュの強制的な更新（キャッシュフラッシュ）間隔を設定するレジスタとし、レジスタ設定値５０３をその更新頻度データとすることで、例えばライトバック方式を使用したプロセッサノードにおいて、キャッシュ内のプログラムおよびデータの滞在時間を一定値以下に限定することができ、電子システム装置としてのソフトエラー率を削減することができる。
【００４２】
また、同様に図５に示すレジスタ５０１を、プロセッサで使用するプログラムおよびデータの定常的な格納位置を指示するレジスタとし、レジスタ設定値５０３をその主記憶メモリアドレスとすることで、例えばライトスルー方式を使用したプロセッサノードにおいて、SRAMで構成されている主記憶内のデータの一部を、一般的に環境放射線耐性が高いDRAMに強制的に格納することができ、電子システム装置としてのソフトエラー率を削減することができる。
【００４３】
以上述べたように、本実施例によれば、電子システム装置に用いるプロセッサノードにおいて、環境放射線等によるソフトエラー発生を監視し、ソフトエラー率を算出する手段と、その結果からキャッシュの制御方式（データ更新頻度）などを変更する手段を設けることで、設置環境や環境変化を自律的に調整、追従することでソフトエラー耐性を向上し、環境放射線等のソフトエラー要因の影響によるシステム停止頻度の削減および、システム停止による製品開発者の保守コストを削減でき、システムの稼動安定性及び信頼性を向上することができる。
【実施例２】
【００４４】
図９に、プロセッサコアと、プログラム、データを記憶するメモリが存在する所謂一般的なコンピュータに、本発明のソフトエラー耐性調整機能を実装した実施例を示す。
【００４５】
計算機１００は、プロセッサコア２、および主記憶メモリ５を含む演算部１１０と、Ｌ１キャッシュ３、およびＬ２キャッシュ４などに相当するキャッシュメモリ１２０(演算部１１０に含まれるべきであるが、本発明の制御対象であるため特に明記した)と、二次記憶メモリに相当する記憶部１３０と、キーボード、マウスなどによるユーザの入力手段となる入力部１４０と、ディスプレイ装置などの出力部１５０と、ネットワーク１７０を介して外部のシステムとの通信を行う通信部１６０とを備える。
【００４６】
記憶部１３０に記憶されたプログラムを演算部１１０へロードして、実行することによって、各機能を実現する。
ソフトエラー検出部１１１は、キャッシュメモリ１２０、および演算部１１０内の主記憶メモリ５上のデータに、ビットの反転などが在るか否かを検査して、１ビット以上の反転を検出した場合には、ソフトエラー在りの出力をする。ここでの誤り検出方法は、既存の誤り検出方法のいずれかを採用すればよい。
【００４７】
記憶部１３０には、前記した図５の設定テーブルと同じメモリ制御設定テーブル１３１を予め作成して記憶してある。
【００４８】
ソフトエラー率計算部１１２は、ソフトエラー検出部１１１がソフトエラー在りの出力をした時点で、または設定見直し指示が他プログラムより発行された時点で、またはユーザより入力部１４０を介して設定見直し指示が入力された時点で、それらのソフトエラー情報、設定見直し指示情報を受け付けて、受け付けた時点の時間の記録、総稼動時間の算出、評価期間の算出、ソフトエラー回数のカウント、およびソフトエラー率の算出を行う。
【００４９】
メモリ制御設定変更部１１３は、ソフトエラー率計算部１１２が算出したソフトエラー率を入力して、およびメモリ制御設定テーブル１３１を検索して、図２のステップＳ２５の処理と同じ処理を実行する。その結果、制御方法の設定変更が必要と判定される場合には、図２のステップＳ２７の処理と同じ処理を実行する。
【００５０】
以上の演算部の機能によって、ソフトエラー耐性調整機能を実現する。
【符号の説明】
【００５１】
１    本発明の電子システム装置およびプロセッサノード
２    プロセッサコア
３    L1キャッシュ
４    L2キャッシュ
５    主記憶メモリ
６    ハードディスクコントローラ
７    ハードディスク
８    バス
９  外部I/Fコントローラ
１０  ネットワークI/F
１１  ソフトエラー監視部
１２  設定切替部
１３  エラー記録部
１４  設定テーブル
１５  ソフトエラー検出信号
１６  キャッシュアクセス方式切替指示信号
１７  キャッシュアクセス方式切替レジスタ設定信号
４１  エラーイベントリード部
４２  タイマ
４３  イベント制御部
４４  エラー率演算部
４５  総稼働時間レジスタ
４６  エラー発生時間格納レジスタ
４７  前回のエラー発生時間データ格納レジスタ
４８  平均エラー発生間隔格納レジスタ
４９  ソフトエラー率格納レジスタ
５０  積算部
５１  エラー数カウンタ
７１  BIOS画面
１００  ソフトエラー耐性調整機能を実装した計算機
１１０  演算部
１１１  ソフトエラー検出部
１１２  ソフトエラー率計算部
１１３  メモリ制御設定変更部
１２０  キャッシュメモリ
１３０  記憶部
１３１  メモリ制御設定テーブル
１４０  入力部
１５０  出力部
１６０  通信部
１７０  ネットワーク
５０１  レジスタ名称
５０２  しきい値
５０３  実際に設定する値。
【図１】
0005722754.tif 000002
【図２】
0005722754.tif 000003
【図３】
0005722754.tif 000004
【図４】
0005722754.tif 000005
【図５】
0005722754.tif 000006
【図６】
0005722754.tif 000007
【図７】
0005722754.tif 000008
【図８】
0005722754.tif 000009
【図９】
0005722754.tif 000010