JP2015176153A - 計算機、障害処理方法及びプログラム - Google Patents
計算機、障害処理方法及びプログラム Download PDFInfo
- Publication number
- JP2015176153A JP2015176153A JP2014049418A JP2014049418A JP2015176153A JP 2015176153 A JP2015176153 A JP 2015176153A JP 2014049418 A JP2014049418 A JP 2014049418A JP 2014049418 A JP2014049418 A JP 2014049418A JP 2015176153 A JP2015176153 A JP 2015176153A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- processing unit
- stored
- cache memory
- execution
- 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.)
- Granted
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【解決手段】演算処理部157が、キャッシュメモリに記憶された実行情報をバックアップバッファ156に保存した後に、実行情報を用いて演算処理を実行し、エラー検出部154が、演算処理の実行中にキャッシュメモリから読み出される読出データに障害があるかを判定し、例外処理部155が、読出データに障害があると判定された場合に障害がある読出データがライトバック方式で記憶されているかを判定し、再演算管理部157が、読出データがライトバック方式で記憶されていると判定された場合に、キャッシュメモリを初期化するとともにバックアップバッファ156からキャッシュメモリに実行情報を読み出し、実行情報に基づいて演算処理を再実行する。
【選択図】図5
Description
ソフトエラーに対して、計算機の信頼性を確保するために、ECC(Error・Check・and・Correct)機能を持ったメインメモリやキャッシュメモリが用いられている。ECC機能は、メモリセルに生じたメモリエラーの検出及び訂正を行なう機能であり、一般にシングルビットエラーの検出及び訂正、マルチビットエラーの検出が可能である。
ライトスルーでは、キャッシュメモリに存在するデータは、メインメモリにも必ず存在する。よって、キャッシュメモリのデータが破損した場合は、メインメモリに存在する同一のデータを読み出して復旧することが可能である。
この傾向はメモリバスを共有するCPUコアが増えるほど顕著であり、マルチコアCPUによる計算機の高性能化、高機能化を進める際に問題となる。
産業用計算機では、外部に接続された機器に対して周期的に制御情報を出力し続ける必要があり、ソフトエラーによる計算機の停止は避けなければならない。また、産業用計算機では、外部機器を制御するための制御情報を規定された実行周期内に演算しており、当該制御情報の欠落や異常値は、外部に接続された機器の異常動作を引き起こす危険がある。
なお、ここで述べる産業用計算機とは、外部に接続された機器を直接操作するコントローラ、このコントローラを監視し制御する計算機など、一般にプラントで使用される計算機を指す。
前記CPUは、演算処理の実行に用いる実行情報を記憶するキャッシュメモリを備え、
前記キャッシュメモリに記憶された前記実行情報を前記メインメモリにバックアップ情報として保存した後に、前記実行情報を用いて前記演算処理を前記CPUにより実行する演算処理部と、
前記演算処理の実行中に、前記CPUにより前記キャッシュメモリから読み出される読出データに障害があるか否かを判定する障害検出部と、
前記読出データに障害があると判定された場合、前記演算処理の実行を停止するとともに、前記障害がある読出データに対応する対応データが前記メインメモリに記憶されているか否かを判定する障害処理部と、
前記対応データが前記メインメモリに記憶されていないと判定された場合に、前記キャッシュメモリを初期化するとともに前記演算処理部により前記メインメモリに保存された前記バックアップ情報を前記実行情報として前記キャッシュメモリに読み出し、読み出した前記実行情報に基づいて前記演算処理を実行する再演算管理部とを備えることを特徴とする。
図1は、本実施の形態で説明する計算機100,100aの構成の一例を示す図である。図1を用いて、本実施の形態で説明する計算機100,100aの構成について説明する。計算機100は本実施の形態に係るであり、計算機100aは計算機100と比較するためのものである。
計算機100,100aは、外部に制御対象である外部機器200が接続される。
計算機100,100aは、入力ポート110、CPU120、メインメモリ130、出力ポート140を備える。CPU120は、キャッシュメモリ121を備える。
計算機100,100aのCPU120では、外部機器200から取得したセンサ情報や、計算機100,100aの操作者からの操作情報などから、外部機器200を制御するための制御情報(以後、制御情報と記述)を演算し、その演算結果を出力ポート140を介して外部機器200へ送信する。
計算機100,100aでは、外部機器200の動作を制御するためのプログラムが動作している。産業用計算機では規定実行周期以内で規定された処理を実行し、それを周期毎に繰り返す方式が一般的である。図2を用いて、このような周期実行がなされる計算機100,100aの動作例を説明する。
図3に示すように、計算機100aは、演算処理部151、入力処理部152、出力処理部153、エラー検出部154、例外処理部155を備える。
図3では、計算機100の演算処理機能と、ソフトエラーが発生した際のエラー処理に関する機能とを示している。
入力処理部152は、入力ポート110を用いて、外部機器200からのセンサ情報を取得し、センサ情報を演算処理部151から参照可能な状態にする。
出力処理部153は、出力ポート140を用いて、外部機器200に対して、演算処理部151で演算された制御情報を出力する。
エラー検出部154は、演算処理の実行中に、CPUによりキャッシュメモリ121から読み出される読出データにエラー(障害)があるか否かを判定する障害検出部の一例である。
図4を用いて、計算機100aのエラー検出処理(工程)における各部の動作について説明する。計算機100aのエラー検出処理(工程)は、計算機100aの各部が計算機100aの備えるCPU、入出力ポート、メモリなどのハードウェア資源と協働して処理を実行することにより実現される。
S101において、CPU120がデータの読み出しを要求する。
S103においてエラー検出部154がキャッシュメモリ121にソフトエラーが発生していないと判定した場合(S103でNO)、CPU120は、キャッシュメモリ121のデータを読み出す。
S103においてエラー検出部154がキャッシュメモリ121にソフトエラーが発生していると判定した場合(S103でYES)、S104に進む。
ソフトエラーがシングルビットエラーであった場合(S104でNO)は、エラー検出部154は、ECC機能によりシングルビットエラーによって破損したデータを訂正する(S106)。
ソフトエラーがマルチビットエラーであった場合(S104でYES)、S105に進む。
S108において、例外処理部155は、無効化したキャッシュラインに対応するメインメモリ130のアドレスに基づいて、無効化したキャッシュラインに対応するメインメモリ130のデータを、メインメモリ130からキャッシュメモリ121に読み出し(ロードし)、CPU120はキャッシュメモリ121のデータを読み出す。
以上で、比較のための計算機100aのエラー検出処理(工程)を終了する。
本実施の形態に係る計算機100では、キャッシュメモリ121のデータが破損した場合、計算機100の動作に支障が出るデータなどをライトスルーで扱い、ライトスルーで保護している領域のデータから再計算可能なデータをライトスルーで扱う。
また、本実施の形態に係る計算機100では、メインメモリ130の領域のうち、キャッシュメモリ121の演算処理中に使用するスタック領域やヒープ領域、計算途中にデータを保存するバッファなどに対応する領域はライトバックで扱う。
図5は、本実施の形態に係る計算機100の演算処理機能と、ソフトエラーが発生した際のエラー処理に関する機能を示したブロック図である。図5に示す計算機100では、図3で説明した計算機100aのブロック構成に加えて、バックアップバッファ156、再演算管理部157を備える。
演算処理部151は、処理開始直後の時点t1(図2参照)で、演算処理部151のスタックフレーム及びスタックフレームのアドレスをバックアップバッファ156へ保存する。このスタックフレームには、演算処理部151完了後の戻り先命令アドレス、演算処理部151が受け取る引数、演算処理部151内で使用するローカル変数や一時変数が含まれる。また、演算処理中で変更を行なうグローバル変数についても、バックアップバッファ156への保存を行なう。
S202において、計算機100は、前の周期の周期処理の実行中に演算された制御情報を、外部機器200に対して出力する(出力処理)。
このとき、バックアップバッファ156のデータにソフトエラーが発生した場合には、エラー検出部154は比較のための計算機100aのエラー検出処理で示した方法によってデータの訂正をする。
S208において、計算機100は、その他の処理を実行し、その他の処理の実行が終了した時点で1周期の処理が終了となる。
図7を用いて、計算機100の障害対応処理(工程)における各部の動作について説明する。計算機100の障害対応処理(工程)は、計算機100の各部が計算機100の備えるCPU、入出力ポート、メモリなどのハードウェア資源と協働して処理を実行することにより実現される。
S302において、エラー検出部154は、ECC機能を用いて、読み出し対象のキャッシュメモリ121のキャッシュラインをチェックする。
S303においてエラー検出部154がキャッシュメモリ121にソフトエラーが発生していると判定した場合(S303でYES)、S304に進む。
ソフトエラーがシングルビットエラーであった場合(S304でNO)は、エラー検出部154は、ECC機能によりシングルビットエラーによって破損したデータを訂正する(S307)。その後、障害対応処理を終了する。
S305において、エラー検出部154は、ECC機能により、CPU120に割込みを実行することにより、例外処理部155を呼び出す。エラー検出部154は、ECC機能により、当該割込みに対応して呼び出されるハンドラ(例外処理部155)に対して、マルチビットエラーが発生したキャッシュラインと、当該キャッシュラインに対応するメインメモリ130のアドレスとを渡す。マルチビットエラーが発生したキャッシュラインと、当該キャッシュラインに対応するメインメモリ130のアドレスとを含む情報は障害信号の一例である。
S309において、例外処理部155は、マルチビットエラーによって破損したデータのキャッシュラインを無効化する。この処理により、CPU120が読み出しを要求したキャッシュメモリのデータが無効化される。
S310において、例外処理部155は、障害信号に基づいて、無効化したキャッシュラインに対応するメインメモリ130のアドレスを取得する。例外処理部155は、取得したアドレスから、無効化したキャッシュラインに対応するメインメモリ130のデータをキャッシュメモリ121に読み出す(ロードする)。以上で、障害対応処理を終了し、CPU120はキャッシュメモリ121のデータを読み出す。
S312において、再演算管理部157は、演算処理の最初の段階でバックアップバッファ156に保存した実行情報を読み出す(図6のS204参照)。
再演算管理部157は、バックアップバッファ156に保存されているスタックフレームのアドレスから演算処理開始時のスタックフレームの位置を確認し、バックアップバッファ156に保存されているスタックフレームのデータを読み出して上書きする。また、プログラム中で使用するグローバル変数についても、バックアップバッファ156に保存されているデータへロールバックする。その後、演算処理の最初から演算を再実行させる。
以上で、計算機100の障害対応処理(工程)を終了する。
図1のCPU120は演算装置901の一例である。メインメモリ130は外部記憶装置902、主記憶装置903の一例である。入力ポート110、出力ポート140は入出力装置905の一例である。
プログラムは、図3、図5などのブロック構成図に示す「〜部」として説明している機能を実現するプログラムである。
また、アプリケーションプログラムも外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901により実行される。
また、キャッシュメモリでソフトエラーが発生した場合、それがシングルビットエラーであればECCで訂正を行なう。キャッシュメモリで発生したソフトエラーがマルチビットエラーであり、更にマルチビットエラーの起きたメモリ領域がライトスルーで扱う領域であった場合、エラーの発生したデータをメインメモリからキャッシュメモリへ読み出すことで訂正を行なう。キャッシュメモリで発生したマルチビットエラーがライトバックで扱う領域であった場合、ライトスルーで保護されているデータを再度読み出して、制御情報の演算処理を再実行することで動作を継続させる。
本実施の形態では、主に、実施の形態1との差異点について説明する。
本実施の形態において、実施の形態1で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する場合がある。
しかし、この方法では、チェックポイントを作成する度にCPUのレジスタとキャッシュメモリのデータをメインメモリへ書き込まなければならない。メインメモリへの書き込みはCPUの動作速度に比べて極めて低速であるため、CPUに大きな待ち時間が発生し、CPUのスループットが低下してしまう。
そこで、本実施の形態に係る計算機101では、演算処理内の演算内容を複数のステップに分割し、そのステップの間隙にて直前のステップで求められた演算結果をライトスルーのメモリ領域へバックアップする。これにより、キャッシュメモリ全体をバックアップする方式に比べてCPUの待ち時間を短縮することができる。
図9では、計算機101の演算処理部151による演算処理機能と、キャッシュメモリ121にソフトエラーが発生した際のエラー処理に関する機能とを示したブロック図である。
図9に示すように、演算処理部151は、処理セグメント(1)1511、処理セグメント(2)1512、処理セグメント(3)1513を備える。また、計算機101は、各処理セグメントからの演算結果を格納する演算結果バッファ158を備える。
計算機101では、これらの処理項目を、互いに影響しない処理セグメントとして分割し、各処理セグメントでの処理が終了した段階で、各処理セグメントの演算結果を個別に演算結果バッファ158へとライトスルーで保存する。
また、各処理セグメントでは、処理セグメントの先頭部分で、当該処理セグメントで使用する変数の初期化、センサ情報等の再読み出しを行なうものとする。
図9では、一例として処理セグメントが3つ存在する場合を示しているが、処理セグメントの数は任意である。
各処理セグメントでは、処理を完了すると、その処理セグメントでの演算結果を演算結果バッファ158に格納するとともに、その処理セグメントの処理セグメント完了フラグをセットする。この処理セグメント完了フラグ1581によって、何番目の処理セグメントまで処理が完了しているかが判別可能となる。この演算結果バッファ158はライトスルーで扱う。
図10は、本実施の形態に係る計算機101の周期処理(工程)の一例を示すフローチャートである。
S401の処理は、図6のS201と同様の処理である。すなわち、入力処理部152により入力処理が実行され、外部機器200からセンサ情報を取得する。取得したセンサ情報はライトスルーのメモリ領域に保存される。
すなわち、出力処理が完了すると、演算処理が開始される。
まず、演算処理部151は、処理セグメント(1)1511の演算処理を開始する。その演算処理では、その最初の段階で演算処理開始時のスタックフレーム、スタックフレームのアドレス、グローバル変数をバックアップバッファ156へ保存する(S404)。なお、保存するスタックフレームは演算処理の関数のもののみであり、それ以前に積まれているスタックフレームは保存する必要はない。バックアップバッファ156はライトスルーで扱う。バックアップバッファ156のデータにソフトエラーが発生した際は、エラー検出部154は比較のための計算機100aのエラー検出処理で示した方法によってデータの訂正をする。
演算処理部151では、処理セグメント(1)1511から順次処理が実行される。
演算結果の格納が終わると、処理セグメント(2)1512に処理が移る。
処理セグメント(2)1512による処理が完了すると(S407)、その処理セグメント(2)1512での演算結果をライトスルーで演算結果バッファ158へ格納する(S408)。
演算結果の格納が終わると、処理セグメント(3)1513に処理が移る。
処理セグメント(3)1513による処理が完了すると(S409)、その処理セグメント(3)1513での演算結果をライトスルーで演算結果バッファ158へ格納する(S410)。
全ての処理セグメントが処理を完了すると、キャッシュメモリ121に保存されているデータを、メインメモリ130へ書き戻す。
図11を用いて、キャッシュメモリ121でソフトエラーが発生したときの動作例について説明する。図11は、本実施の形態に係る計算機101において、CPU120がキャッシュメモリ121のデータの読み出しを行なう際の動作フローである。
CPU120がデータの読み出しを要求すると、読み出し対象のキャッシュメモリ121のキャッシュラインをECCがチェックする。
この時、キャッシュメモリにソフトエラーが発生していなければ、CPU120はキャッシュメモリ121のデータを読み出す。
当該ソフトエラーがシングルビットエラーであった場合は、ECCの機能によりシングルビットエラーによって破損したデータを訂正する。
当該ソフトエラーがマルチビットエラーであった場合、CPUに対して割込みが通知され、例外処理部155が割込みハンドラとして呼び出される。
マルチビットエラーが発生したキャッシュラインがライトスルーで扱うメモリ領域に対応している場合は、例外処理部155は、当該キャッシュラインを無効化する。CPU120が読み出しを要求したキャッシュメモリのデータが無効化されるため、メインメモリ130に存在する同一のデータがキャッシュメモリ121に読み出されてCPU120に渡される。
再演算管理部157は、キャッシュメモリ上の全データを無効化する。
以上で、S501から511の処理の概要についての説明を終わる。
処理セグメント(1)1511が完了していなかった場合(S512でNO)、S516に進む。
処理セグメント(1)1511が完了し、処理セグメント(2)1512が完了していなかった場合(S513でNO)、S515へ進む。
すなわち、再演算管理部157は、処理セグメント(2)1512の演算処理の最初の段階でバックアップバッファ156に保存した実行情報1561を読み出す。再演算管理部157は、バックアップバッファ156に保存されているスタックフレームのアドレスから演算処理開始時のスタックフレームの位置を確認し、バックアップバッファ156に保存されているスタックフレームのデータを読み出してキャッシュメモリ121に上書きする。また、再演算管理部157は、プログラム中で使用するグローバル変数についても、バックアップバッファ156に保存されているデータへロールバックし、処理セグメント(2)1512の演算処理を再実行させる。
すなわち、再演算管理部157は、処理セグメント(3)1513の演算処理の最初の段階でバックアップバッファ156に保存した実行情報1561を読み出す。再演算管理部157は、バックアップバッファ156に保存されているスタックフレームのアドレスから演算処理開始時のスタックフレームの位置を確認し、バックアップバッファ156に保存されているスタックフレームのデータを読み出してキャッシュメモリ121に上書きする。また、再演算管理部157は、プログラム中で使用するグローバル変数についても、バックアップバッファ156に保存されているデータへロールバックし、処理セグメント(3)1513の演算処理を再実行させる。
本実施の形態では、主に、実施の形態1との差異点について説明する。
本実施の形態において、実施の形態1で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する場合がある。
図12は、本実施の形態において、計算機102の演算処理機能と、ソフトエラーが発生した際のエラー処理に関する機能とを示したブロック図である。
本実施の形態に係る計算機102は、実施の形態1で説明した図5の構成に加えて、軽量演算処理部159を備える。
以後、軽量演算処理部159での演算処理を軽量演算処理とし、演算結果を軽量演算結果とする。また、演算処理部151での演算処理を通常演算処理とし、演算結果を通常演算結果とする。
また、通常演算結果と軽量演算結果とは、通常演算処理と軽量演算処理とのどちらの演算結果であるか判別可能なフラグを有するものとする。通常演算結果、軽量演算結果のどちらもライトスルーで扱う。通常演算処理と軽量演算処理とを単に演算処理とする場合があり、通常演算結果と軽量演算結果とを単に演算結果とする場合がある。
図13は、本実施の形態に係る計算機102の周期処理(工程)の一例を示すフローチャートである。
S602において、出力処理部153は、前の周期の通常演算処理が完了しているか否かを判定する。前の周期の通常演算処理が完了している場合(S602でYES)、出力処理部153は、演算処理部151での通常演算結果を出力する(S603)。前の周期の通常演算処理が完了していない場合(S602でNO)、出力処理部153は、軽量演算処理部159での軽量演算結果を出力する(S604)。
このように、出力処理部153は、制御情報が通常演算結果または軽量演算結果のどちらであるかに関係なく出力する。
以下に、S605〜S610の処理の概要について説明する。
すなわち、出力処理が完了すると、演算処理が開始される。演算処理では、その最初の段階で演算処理開始時のスタックフレーム、スタックフレームのアドレス、グローバル変数をバックアップバッファへ保存する。なお、保存するスタックフレームは演算処理の関数のもののみであり、それ以前に積まれているスタックフレームは保存する必要はない。バックアップバッファ156はライトスルーで扱う。バックアップバッファ156のデータにソフトエラーが発生した際は、エラー検出部154は比較のための計算機100aのエラー検出処理で示した方法によってデータの訂正をする。
次に、センサ情報等から制御情報を算出するための演算が開始される。この演算処理の実行中はライトバックで扱う。制御情報が算出されたら、得られた制御情報をライトスルーのメモリ領域に保存する。また、キャッシュメモリに保存されているデータを、メインメモリへ書き戻す。その後、その他の処理を実施し、1周期の処理が終了となる。
図14を用いて、キャッシュメモリ121でソフトエラーが発生したときの動作例を説明する。図14は、当実施形態において、CPUがキャッシュメモリ121のデータの読み出しを行なう際の動作フローである。
以下に、S701〜S711の処理の概要について説明する。
CPU120がデータの読み出しを要求すると、エラー検出部154がECC機能を用いて、読み出し対象のキャッシュメモリ121のキャッシュラインをチェックする。
この時、キャッシュメモリ121にソフトエラーが発生していなければ、CPU120はキャッシュメモリ121のデータを読み出す。
キャッシュメモリ121にソフトエラーが発生していた場合は、エラー検出部154はそのソフトエラーがシングルビットエラーか、マルチビットエラーかの判定を実施する。
ソフトエラーがシングルビットエラーであった場合は、ECC機能によりシングルビットエラーによって破損したデータを訂正する。ソフトエラーがマルチビットエラーであった場合、CPUに対して割込みが通知され、例外処理部155が割込みハンドラとして呼び出される。例外処理部155では、マルチビットエラーが発生したキャッシュラインがライトバックで扱うメモリ領域か、ライトスルーで扱うメモリ領域かを判定する。
マルチビットエラーが発生したキャッシュラインがライトスルーで扱うメモリ領域に対応している場合は、このキャッシュラインを無効化する。CPUが読み出しを要求したキャッシュメモリのデータが無効化されるため、メインメモリに存在する同一のデータがキャッシュメモリに読み出されてCPUに渡される。
マルチビットエラーが発生したキャッシュラインがライトバックで扱うメモリ領域に対応している場合は、例外処理部155は、キャッシュメモリ上の全データを無効化する。
以上で、S701〜S711の処理の概要の説明を終わる。
軽量演算処理部159は、センサ情報等から軽量演算結果を制御情報として算出し、ライトスルーのメモリ領域に保存する。
S713において、再演算管理部157は、通常演算処理の最初の段階でバックアップバッファ156に保存した実行情報を読み出す。
再演算管理部157は、バックアップバッファ156に保存されているスタックフレームのアドレスから通常演算処理開始時のスタックフレームの位置を確認し、バックアップバッファ156に保存されているスタックフレームのデータを読み出して上書きする。また、プログラム中で使用するグローバル変数についても、バックアップバッファ156に保存されているデータへロールバックする。その後、通常演算処理の最初から演算を再実行させる。
以上で、計算機102の障害対応処理(工程)を終了する。
本実施の形態では、主に、実施の形態1との差異点について説明する。
本実施の形態において、実施の形態1で説明した構成部と同様の機能を有する構成部には同一の符号を付し、その説明を省略する場合がある。
図15は、本実施の形態において、計算機103の演算処理機能と、ソフトエラーが発生した際のエラー処理に関する機能とを示したブロック図である。
本実施の形態に係る計算機103は、実施の形態1で説明した図5の構成に加えて、過去値バッファ160、演算結果予測部161、予測値バッファ162を備える。
図16は、本実施の形態に係る計算機103の周期処理(工程)の一例を示すフローチャートである。
S801の処理は、図6のS201と同様の処理である。すなわち、入力処理部152により入力処理が実行され、外部機器200からセンサ情報を取得する。取得したセンサ情報はライトスルーのメモリ領域に保存される。
S802において、出力処理部153は、前の周期の演算処理(通常演算処理)が完了しているか否かを判定する。前の周期の演算処理が完了している場合(S802でYES)、出力処理部153は、演算処理部151での演算結果を出力する(S803)。前の周期の演算処理が完了していない場合(S802でNO)、出力処理部153は、前の周期での演算処理の結果予測値を出力する(S804)。
このように、出力処理部153は、制御情報が演算結果または結果予測値のどちらであるかに関係なく出力する。出力処理部153は、出力した制御情報を過去値バッファ160に保存する(S805)。
すなわち、演算処理では、演算処理部151は、演算処理の最初の段階で演算処理開始時のスタックフレーム、スタックフレームのアドレス、グローバル変数をバックアップバッファ156へ保存する。なお、保存するスタックフレームは演算処理の関数のもののみであり、それ以前に積まれているスタックフレームは保存する必要はない。バックアップバッファ156はライトスルーで扱うこととし、バックアップバッファのデータにソフトエラーが発生した際は、前記従来例で示した方法によってデータの訂正が可能である。
次に、センサ情報等から制御情報を算出するための演算が開始される。この演算処理の実行中はライトバックで扱う。
本実施の形態に係る計算機103では、演算処理の完了間際にマルチビットエラーが発生し、更にその周期中に演算結果を得ることができなかった場合には、直前の実行周期にて算出した、現実行周期での演算結果の予測値を用いて制御情報の出力が可能となり、計算機から外部機器への制御情報出力の欠落を防止可能である。
Claims (9)
- CPU(Central Processing Unit)とメインメモリとを備える計算機において、
前記CPUは、演算処理の実行に用いる実行情報を記憶するキャッシュメモリを備え、
前記キャッシュメモリに記憶された前記実行情報を前記メインメモリにバックアップ情報として保存した後に、前記実行情報を用いて前記演算処理を前記CPUにより実行する演算処理部と、
前記演算処理の実行中に、前記CPUにより前記キャッシュメモリから読み出される読出データに障害があるかを判定する障害検出部と、
前記読出データに障害があると判定された場合、前記演算処理の実行を停止するとともに、前記障害がある読出データに対応する対応データが前記メインメモリに記憶されているかを判定する障害処理部と、
前記対応データが前記メインメモリに記憶されていないと判定された場合に、前記キャッシュメモリを初期化するとともに前記演算処理部により前記メインメモリに保存された前記バックアップ情報を前記実行情報として前記キャッシュメモリに読み出し、読み出した前記実行情報に基づいて前記演算処理を実行する再演算管理部と
を備えることを特徴とする計算機。 - 前記障害処理部は、
前記読出データに障害があると判定された場合、前記障害がマルチビットエラーであるかを判定し、前記障害がマルチビットエラーであると判定した場合、前記障害がある読出データに対応する対応データが前記メインメモリに記憶されているか否かを判定することを特徴とする請求項1に記載の計算機。 - 前記障害処理部は、前記障害がマルチビットエラーであると判定した場合、前記障害がある読出データがライトバック方式で記憶されたデータであるかを判定し、前記障害がある読出データがライトバック方式で記憶されたデータである場合に、前記対応データが前記メインメモリに記憶されていると判定することを特徴とする請求項2に記載の計算機。
- 前記演算処理部は、
前記演算処理を複数に分割した複数の部分演算処理を順次実行し、
前記キャッシュメモリは、
前記複数の部分演算処理の各部分演算処理の実行に用いる前記実行情報を記憶し、
前記演算処理部は、
前記キャッシュメモリに記憶された前記実行情報を前記メインメモリにバックアップ情報として保存した後に、前記実行情報に基づいて前記CPUを用いて前記複数の部分演算処理の各部分演算処理を実行し、
前記障害検出部は、
前記複数の部分演算処理の各部分演算処理の実行中に前記CPUが前記キャッシュメモリから読み出す読出データに障害があるかを判定し、
前記再演算管理部は、
前記対応データが前記メインメモリに記憶されていないと判定された場合に、前記バックアップ情報を前記キャッシュメモリに前記実行情報として読みだし、読み出した前記実行情報に基づいて前記複数の部分演算処理の各部分演算処理を実行することを特徴とする請求項1〜3のいずれかに記載の計算機。 - 前記複数の部分演算処理の各部分演算処理が終了したか否かを示す終了フラグ情報を備えることを特徴とする請求項4に記載の計算機。
- 前記対応データが前記メインメモリに記憶されていないと判定された場合に、前記演算処理の処理負荷よりも小さい処理負荷の軽量演算処理を実行する軽量演算処理部をさらに備え、
前記演算処理部は、
前記軽量演算処理部による前記軽量演算処理の実行が完了した後に、前記バックアップ情報を前記実行情報として前記キャッシュメモリに読み出し、読み出した前記実行情報に基づいて前記演算処理を実行することを特徴とする請求項1〜5のいずれかに記載の計算機。 - 前記演算処理部により実行された前記演算処理の演算結果を記憶する演算結果バッファと、
前記演算結果バッファに記憶された前記演算結果を出力情報として出力する出力処理部と、
前記出力処理部から出力された前記出力情報を記憶する過去値バッファと、
前記演算処理部による前記演算処理の実行が終了すると、前記過去値バッファに記憶されている前記出力情報に基づいて、前記演算処理の次に実行する次演算処理の演算結果を予測値として算出する演算結果予測部と、
前記演算結果予測部により算出された前記予測値を記憶する予測値バッファと
を備え、
前記出力処理部は、
前記演算結果バッファに前記出力情報が存在しない場合に、前記予測値バッファに記憶された前記予測値を前記出力情報として出力することを特徴とする請求項1〜6のいずれかに記載の計算機。 - 演算処理の実行に用いる実行情報を記憶するキャッシュメモリを備えるCPU(Central・Processing・Unit)と、メインメモリとを備える計算機の障害処理方法において、
演算処理部が、前記キャッシュメモリに記憶された前記実行情報をバックアップ情報として前記メインメモリに保存した後に、前記実行情報を用いて前記演算処理を前記CPUにより実行し、
障害検出部が、前記演算処理の実行中に、前記CPUにより前記キャッシュメモリから読み出される読出データに障害があるか否かを判定し、
障害処理部が、前記読出データに障害があると判定された場合、前記演算処理の実行を停止するとともに、前記障害がある読出データに対応する対応データが前記メインメモリに記憶されているか否かを判定し、
再演算管理部が、前記対応データが前記メインメモリに記憶されていないと判定された場合に、前記キャッシュメモリを初期化するとともに前記演算処理部により前記メインメモリに保存された前記バックアップ情報を前記実行情報として前記キャッシュメモリに読み出し、読み出した前記実行情報に基づいて前記演算処理を実行することを特徴とする障害処理方法。 - 演算処理の実行に用いる実行情報を記憶するキャッシュメモリを備えるCPU(Central・Processing・Unit)と、メインメモリとを備える計算機のプログラムにおいて、
前記キャッシュメモリに記憶された前記実行情報をバックアップ情報として前記メインメモリに保存した後に、前記キャッシュメモリに記憶された前記実行情報を用いて前記演算処理を前記CPUにより実行する演算実行処理と、
前記演算処理の実行中に、前記CPUにより前記キャッシュメモリから読み出される読出データに障害があるかを判定する障害検出処理と、
前記読出データに障害があると判定された場合、前記演算処理の実行を停止するとともに、前記障害がある読出データに対応する対応データが前記メインメモリに記憶されているか否かを判定するデータ判定処理と、
前記対応データが前記メインメモリに記憶されていないと判定された場合に、前記キャッシュメモリを初期化するとともに前記演算処理部により前記メインメモリに保存された前記バックアップ情報を前記実行情報として前記キャッシュメモリに読み出し、読み出した前記実行情報に基づいて前記演算処理を実行する再演算処理とをコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014049418A JP6218652B2 (ja) | 2014-03-12 | 2014-03-12 | 計算機、障害処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014049418A JP6218652B2 (ja) | 2014-03-12 | 2014-03-12 | 計算機、障害処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015176153A true JP2015176153A (ja) | 2015-10-05 |
JP6218652B2 JP6218652B2 (ja) | 2017-10-25 |
Family
ID=54255355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014049418A Expired - Fee Related JP6218652B2 (ja) | 2014-03-12 | 2014-03-12 | 計算機、障害処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6218652B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019175006A (ja) * | 2018-03-27 | 2019-10-10 | 日本電気株式会社 | 計算機、半導体装置、制御方法及びプログラム |
JP2020057384A (ja) * | 2018-10-03 | 2020-04-09 | 慧榮科技股▲分▼有限公司 | エラー処理方法、並びにデータ記憶装置及びその制御装置 |
US10990325B2 (en) | 2018-10-03 | 2021-04-27 | Silicon Motion, Inc. | Write control method, associated data storage device and controller thereof |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05346889A (ja) * | 1992-06-15 | 1993-12-27 | Hitachi Ltd | キャッシュ制御方法およびキャッシュ制御装置 |
JPH10240628A (ja) * | 1997-02-28 | 1998-09-11 | Nec Corp | キャッシュメモリ装置 |
JP2003015956A (ja) * | 2001-07-03 | 2003-01-17 | Nec Corp | 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 |
-
2014
- 2014-03-12 JP JP2014049418A patent/JP6218652B2/ja not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05346889A (ja) * | 1992-06-15 | 1993-12-27 | Hitachi Ltd | キャッシュ制御方法およびキャッシュ制御装置 |
JPH10240628A (ja) * | 1997-02-28 | 1998-09-11 | Nec Corp | キャッシュメモリ装置 |
JP2003015956A (ja) * | 2001-07-03 | 2003-01-17 | Nec Corp | 障害回復機能を備えたキャッシュシステムとそのキャッシュ制御方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019175006A (ja) * | 2018-03-27 | 2019-10-10 | 日本電気株式会社 | 計算機、半導体装置、制御方法及びプログラム |
JP7238262B2 (ja) | 2018-03-27 | 2023-03-14 | 日本電気株式会社 | 計算機、半導体装置、及び制御方法 |
JP2020057384A (ja) * | 2018-10-03 | 2020-04-09 | 慧榮科技股▲分▼有限公司 | エラー処理方法、並びにデータ記憶装置及びその制御装置 |
US10884856B2 (en) | 2018-10-03 | 2021-01-05 | Silicon Motion, Inc. | Error-handling method, associated data storage device and controller thereof |
US10990325B2 (en) | 2018-10-03 | 2021-04-27 | Silicon Motion, Inc. | Write control method, associated data storage device and controller thereof |
Also Published As
Publication number | Publication date |
---|---|
JP6218652B2 (ja) | 2017-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3238077B1 (en) | Fault tolerant automatic dual in-line memory module refresh | |
US7698594B2 (en) | Reconfigurable processor and reconfiguration method executed by the reconfigurable processor | |
US7886195B2 (en) | Apparatus, system, and method of efficiently utilizing hardware resources for a software test | |
US9063906B2 (en) | Thread sparing between cores in a multi-threaded processor | |
JP2010165251A (ja) | 情報処理装置及びプロセッサ並びに情報処理方法 | |
US20190163583A1 (en) | Mission-critical computing architecture | |
CN108694094B (zh) | 用于处理存储器访问操作的装置和方法 | |
EP3025233B1 (en) | Robust hardware/software error recovery system | |
JP4465329B2 (ja) | コンピュータプロセッサ用の外部状態キャッシュ | |
JP2022534418A (ja) | エラーリカバリ方法及び装置 | |
WO2008101386A1 (fr) | Procédé de récupération d'une exception à noyau unique dans un système à plusieurs noyaux | |
JP6218652B2 (ja) | 計算機、障害処理方法及びプログラム | |
WO2014125606A1 (ja) | 制御装置 | |
JP2770913B2 (ja) | パリティの置換装置及び方法 | |
JP4376787B2 (ja) | イベント通知方法、デバイス及びプロセッサシステム | |
US20090187903A1 (en) | Virtual multiprocessor system | |
US10289332B2 (en) | Apparatus and method for increasing resilience to faults | |
WO2012137239A1 (ja) | 計算機システム | |
US20130055017A1 (en) | Device and method for restoring information in a main storage unit | |
JP2008003940A (ja) | 保護制御装置、保護制御方法及び保護制御プログラム | |
US10901850B2 (en) | Thread checkpoint table for computer processor | |
CN104657229A (zh) | 基于高可用性硬件检查点的多核处理器卷回恢复系统及其卷回恢复方法 | |
JP2012103952A (ja) | メモリダンプ方法 | |
GB2528901A (en) | Uncorrectable memory errors in pipelined CPUs | |
WO2010109631A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20161128 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170822 |
|
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: 20170829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170926 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6218652 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |