(57)【特許請求の範囲】
【請求項１】
コントローラに接続する演算処理装置において、
演算処理を行う演算部と、
データを保持するとともに、前記データを前記演算部に出力する記憶部と、
前記記憶部が出力した前記データのエラーを検出した場合に、エラー検出信号を出力するエラー検出部と、
前記記憶部にエラーが発生したことを示すエラー識別信号を出力するエラー識別部と、
前記エラー識別信号を保持して、エラー検出フラグ信号として出力するエラー識別信号保持部と、
前記エラー検出信号を保持して、前記演算部の演算処理を中止させるキャンセル信号を出力するエラー検出信号保持部と、
前記エラー検出フラグ信号と前記キャンセル信号とに基づき第１の計数を開始し、前記コントローラへエラーを報告する処理にかかる時間より短く前記演算処理装置内でのエラーを報告する処理にかかる時間より長い第１の計数期間を経過した場合に、訂正開始信号を出力する第１の計数部と、
前記訂正開始信号を受信した場合に、前記記憶部が出力した前記データのエラーを訂正するエラー訂正部と、
前記キャンセル信号の出力により第２の計数を開始し、前記コントローラへエラーを報告する処理にかかる時間より長い第２の計数期間を経過した場合に、前記エラー検出信号保持部へのリセット信号を出力する第２の計数部と、を備え、
前記記憶部は、前記エラー訂正部が出力したエラー訂正済みのデータを保持し、
前記演算部は、前記エラー訂正部によりエラーの訂正が終了した後に、演算処理を実行することを特徴とする演算処理装置。
【請求項２】
前記第１の計数部は、前記エラー検出フラグ信号と前記キャンセル信号との論理積に基づいて前記第１の計数を開始し、前記第１の計数期間を経過したことを表す第１の計数期間経過信号と前記エラー検出フラグ信号との論理積に基づいて、前記訂正開始信号を出力することを特徴とする請求項１に記載の演算処理装置。
【請求項３】
前記訂正開始信号は、前記エラー識別信号保持部をリセットさせることを特徴とする請求項１または２に記載の演算処理装置。
【請求項４】
コントローラに接続する演算処理装置と前記演算処理装置にデータを供給する記憶装置を有する情報処理装置において、
演算処理を行う演算部と、
前記記憶装置からのデータを保持するとともに、前記データを前記演算部に出力する記憶部と、
前記記憶部が出力した前記データのエラーを検出した場合に、エラー検出信号を出力するエラー検出部と、
前記記憶部にエラーが発生したことを示すエラー識別信号を出力するエラー識別部と、
前記エラー識別信号を保持して、エラー検出フラグ信号として出力するエラー識別信号保持部と、
前記エラー検出信号を保持して、前記演算部の演算処理を中止させるキャンセル信号を出力するエラー検出信号保持部と、
前記エラー検出フラグ信号と前記キャンセル信号とに基づき第１の計数を開始し、前記コントローラへエラーを報告する処理にかかる時間より短く前記演算処理装置内でのエラーを報告する処理にかかる時間より長い第１の計数期間を経過した場合に、訂正開始信号を出力する第１の計数部と、
前記訂正開始信号を受信した場合に、前記記憶部が出力した前記データのエラーを訂正するエラー訂正部と、
前記キャンセル信号の出力により第２の計数を開始し、前記コントローラへエラーを報告する処理にかかる時間より長い第２の計数期間を経過した場合に、前記エラー検出信号保持部へのリセット信号を出力する第２の計数部と、を備え、
前記記憶部は、前記エラー訂正部が出力したエラー訂正済みのデータを保持し、
前記演算部は、前記エラー訂正部によりエラーの訂正が終了した後に、演算処理を実行することを特徴とする情報処理装置。
【請求項５】
コントローラに接続する演算処理装置の制御方法において、
前記演算処理装置が有する演算部が、演算処理を行うステップと、
前記演算処理装置が有する記憶部が、保持したデータを前記演算部に出力するステップと、
前記演算処理装置が有するエラー検出部が、前記記憶部が出力した前記データのエラーを検出した場合に、エラー検出信号を出力するステップと、
前記演算処理装置が有するエラー識別部が、前記記憶部にエラーが発生したことを示すエラー識別信号を出力するステップと、
前記演算処理装置が有するエラー識別信号保持部が、前記エラー識別信号を保持して、エラー検出フラグ信号として出力するステップと、
前記演算処理装置が有するエラー検出信号保持部が、前記エラー検出信号を保持して、前記演算部の演算処理を中止させるキャンセル信号を出力するステップと、
前記演算処理装置が有する第１の計数部が、前記エラー検出フラグ信号と前記キャンセル信号とに基づき第１の計数を開始し、前記コントローラへエラーを報告する処理にかかる時間より短く前記演算処理装置内でのエラーを報告する処理にかかる時間より長い第１の計数期間を経過した場合に、訂正開始信号を出力するステップと、
前記演算処理装置が有するエラー訂正部が、前記訂正開始信号を受信した場合に、前記記憶部が出力した前記データのエラーを訂正するステップと、
前記演算処理装置が有する第２の計数部が、前記キャンセル信号の出力により第２の計数を開始し、前記コントローラへエラーを報告する処理にかかる時間より長い第２の計数期間を経過した場合に、前記エラー検出信号保持部へのリセット信号を出力するステップと、
前記記憶部が、前記エラー訂正部が出力したエラー訂正済みのデータを保持するステップと、
前記演算部が、前記エラー訂正部によりエラーの訂正が終了した後に、演算処理を実行するステップと、
を含むことを特徴とする演算処理装置の制御方法。
【請求項６】
前記第１の計数部は、前記エラー検出フラグ信号と前記キャンセル信号との論理積に基づいて前記第１の計数を開始し、前記第１の計数期間を経過したことを表す第１の計数期間経過信号と前記エラー検出フラグ信号との論理積に基づいて、前記訂正開始信号を出力することを特徴とする請求項５に記載の演算処理装置の制御方法。
【請求項７】
前記訂正開始信号は、前記エラー識別信号保持部をリセットさせることを特徴とする請求項５または６に記載の演算処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、演算処理装置、情報処理装置および演算処理装置の制御方法に関する。
【背景技術】
【０００２】
情報処理装置（サーバ）に搭載される演算処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のアーキテクチャの一つとして、ＳＰＡＲＣ−Ｖ９（ＳＰＡＲＣ（Ｓｃａｌａｂｌｅ  Ｐｒｏｃｅｓｓｏｒ  ＡＲＣｈｉｔｅｃｔｕｒｅ）はスパーク  インターナショナル  インクの登録商標）がある。ＳＰＡＲＣ−Ｖ９アーキテクチャにおいては、汎用レジスタ（ＧＰＲ：Ｇｅｎｅｒａｌ−Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒｓ）として、６４ビットのレジスタを６４個から５２８個まで実装することができる。
【０００３】
図１１は、ＳＰＡＲＣ−Ｖ９アーキテクチャにおける汎用レジスタファイルのレジスタウインドウの一例を示す図である。図１１に示す例では、レジスタウィンドウ１は、例えば８個のインレジスタ（Ｗ０  ｉｎ〜Ｗ７  ｉｎ）、例えば８個のローカルレジスタ（Ｗ０  ｌｏｃａｌ〜Ｗ７  ｌｏｃａｌ）および例えば８個のアウトレジスタ（Ｗ０  ｏｕｔ〜Ｗ７  ｏｕｔ）を例えば８ウィンドウ分備えている。図１１に示すように、これらのレジスタのうち、Ｗ０  ｉｎとＷ７  ｏｕｔ、およびＷ１  ｉｎとＷ０  ｏｕｔというように、インレジスタとアウトレジスタはオーバーラップしている。インレジスタとアウトレジスタがオーバーラップしていることによって、複数の処理をまとめた手続きの呼び出しを行うプロシージャ・コールの性能が向上する。
【０００４】
図１２は、汎用レジスタファイルに対するデータの選択回路の一例を示す図である。図１２に示す例では、汎用レジスタファイル２は、上述したレジスタウィンドウの構成と８個の汎用レジスタ（ｇｌｏｂａｌ）を４セット備えている。図１１および図１２に示す例では、合計でレジスタの数は１６０（＝８［ｇｌｏｂａｌ］×４［セット］＋（８［ｌｏｃａｌ］＋８［ｉｎｏｕｔ］）×８［ウィンドウ］）となる。図１２に示すように、図示省略する多段の選択論理を有する読み出し回路３が設けられている。この読み出し回路３によって例えば１６０個のレジスタから一つのレジスタが選択され、レジスタのデータが読み出される。読み出されたデータは、ソースラッチ４に格納される。ソースラッチ４に格納されたデータは、演算器を有する演算部５に渡される。
【０００５】
ところで、情報処理装置の故障を検出する手法の一つに、レジスタファイルが保持しているデータにパリティを付加し、データに対する当該パリティをチェックすることによってデータのエラーを検出する手法がある。また、データにエラー訂正符号（ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）を付加し、データのエラーを検出したときにエラー訂正符号を用いてデータを訂正する手法がある。上述したような汎用レジスタファイルを有する情報処理装置においても、エラーの検出を行うとともに、エラーを検出した場合にデータを訂正することが望まれている。
【０００６】
従来、パリティチェックによるエラー検出手法とエラー訂正符号によるデータ訂正手法とを備えた主記憶制御装置が知られている。例えば、主記憶制御装置は、データと誤り検出・訂正ビットとパリティビットが記憶されるＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）等の複数の主記憶モジュールと、主記憶モジュールから読み出した情報を処理するメインプロセッサと、主記憶モジュールから読み出した情報のパリティチェックを行うパリティチェック手段と、主記憶モジュールから読み出した情報のエラー検出訂正を行うエラー検出訂正手段と、を備えている。パリティチェックによってエラーが検出された場合、メインプロセッサは、情報処理動作を中断し、エラーが訂正された後に情報処理動作を再開する。また、パリティビット付きのデータを保持するメモリと、パリティチェックを行うパリティチェック手段と、パリティチェック手段からのエラー報告によりエラー訂正を行うエラー訂正手段と、を備える情報処理装置がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−８１４６５号公報
【特許文献２】特開平５−２０２１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述したような汎用レジスタファイルを有する情報処理装置では、汎用レジスタファイルからの読み出しパスに多段の選択論理が設けられているため、汎用レジスタファイルからデータを読み出すのに時間がかかる。そのため、プロセッサの動作周波数が汎用レジスタファイルからの読み出しパスによって決まってしまうおそれがある。汎用レジスタファイルからの読み出しパスに、エラー訂正符号を用いるエラー訂正部を組み込むと、汎用レジスタファイルからのデータの読み出しにさらに時間がかかってしまう。従って、読み出しパスにエラー訂正部を組み込むことは困難である。一方、情報処理動作を中断してエラー訂正を行った後に情報処理動作を再開する手法では、読み出されたデータのエラーが検出されると、命令制御部などにエラーを報告した後にエラーの訂正処理が行われる。そのため、エラーを検出してから通常の動作状態に復帰するまでに、エラーの報告に要する時間とエラーの訂正処理に要する時間とがかかるため、性能が低下してしまう、という問題点がある。また、通常の動作状態の他にエラーの訂正状態が必要となるため、エラーの訂正状態の制御回路が複雑になり、ハードウェアの量（回路量）が増えてしまう、という問題点がある。
【０００９】
読み出されたデータのエラーを検出してからエラーを訂正して通常の動作状態に復帰するまでの時間を短縮することができる演算処理装置、情報処理装置および演算処理装置の制御方法を提供することを目的とする。ハードウェアの量を減らすことができる演算処理装置、情報処理装置および演算処理装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
演算処理装置は、演算部、記憶部、エラー検出部、エラー識別部、エラー識別信号保持部、エラー検出信号保持部、第１の計数部およびエラー訂正部を備える。演算部は、演算処理を行う。記憶部は、データを保持するとともに、データを演算部に出力する。エラー検出部は、記憶部が出力したデータのエラーを検出した場合に、エラー検出信号を出力する。エラー識別部は、記憶部にエラーが発生したことを示すエラー識別信号を出力する。エラー識別信号保持部は、エラー識別信号を保持して、エラー検出フラグ信号として出力する。エラー検出信号保持部は、エラー検出信号を保持して、演算部の演算処理を中止させるキャンセル信号を出力する。第１の計数部は、エラー検出フラグ信号とキャンセル信号とに基づき第１の計数を開始し、第１の計数期間を経過した場合に、訂正開始信号を出力する。エラー訂正部は、訂正開始信号を受信した場合に、記憶部が出力したデータのエラーを訂正する。情報処理装置は、この演算処理装置と、演算処理装置にデータを供給する記憶装置を有する。
【発明の効果】
【００１１】
この演算処理装置、情報処理装置および演算処理装置の制御方法によれば、読み出されたデータのエラーを検出してからエラーを訂正して通常の動作状態に復帰するまでの時間を短縮することができる。ハードウェアの量を減らすことができる。
【図面の簡単な説明】
【００１２】
【図１】実施例１にかかる情報処理装置を示す図である。
【図２】実施例１にかかる演算処理装置の全体を示す図である。
【図３】実施例１にかかる演算処理装置の要部を示す図である。
【図４】実施例１にかかる命令制御部の要部を示す図である。
【図５】実施例１にかかる演算処理装置の動作タイミングを示す図である。
【図６】実施例１にかかる演算処理装置における処理の流れを示す図である。
【図７】実施例２にかかる演算処理装置の要部を示す図である。
【図８】実施例２にかかる命令制御部の要部を示す図である。
【図９】実施例２にかかる演算処理装置の動作タイミングを示す図である。
【図１０】実施例２にかかる演算処理装置における処理の流れを示す図である。
【図１１】汎用レジスタファイルのレジスタウインドウの一例を示す図である。
【図１２】汎用レジスタファイルに対するデータの選択回路の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この演算処理装置、情報処理装置および演算処理装置の制御方法の好適な実施の形態を詳細に説明する。以下の各実施例の説明においては、同様の構成要素には同一の符号を付して、重複する説明を省略する。
【００１４】
（実施例１）
実施例１は、記憶部の出力データが正しくないときに、出力データのエラーを訂正する例である。
【００１５】
・情報処理装置の説明
図１は、実施例１にかかる情報処理装置を示す図である。図１に示すように、サーバ等の情報処理装置１１は、例えば１個以上のＣＰＵ等の演算処理装置１２、例えば１個以上の記憶装置１３、例えば１個以上のコントローラ１４および例えば１個以上の入出力インタフェース（Ｉ／Ｏ）１５を備えている。コントローラ１４には、例えば１個以上の演算処理装置１２および例えば１個以上の記憶装置１３が接続されている。コントローラ１４と入出力インタフェース１５とは、バス１６によって接続されている。演算処理装置１２は、演算処理およびデータのエラー訂正処理を行う。記憶装置１３は、データを記憶しており、コントローラ１４の制御によって演算処理装置１２にデータを供給する。記憶装置１３は、例えばＤＩＭＭ（Ｄｕａｌ  Ｉｎｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）などのＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）のメモリモジュールを備えている。コントローラ１４は、演算処理装置１２および記憶装置１３を制御する。入出力インタフェース１５には、図示しない種々の周辺装置が接続される。周辺装置としては、例えばディスクドライブやテープドライブ等の各種ドライブ装置や通信カードなどが挙げられる。
【００１６】
・演算処理装置の全体の説明
図２は、実施例１にかかる演算処理装置の全体を示す図である。図２において、実線の矢印はデータ信号の流れを示し、破線の矢印は制御信号の流れを示す。図２に示すように、演算処理装置１２は、演算ブロック２２、命令制御ブロック２３、キャッシュ制御ブロック２４およびメモリブロック２５を備えている。演算ブロック２２は、演算制御部３１、演算部３２、記憶部３３およびエラー訂正部３４を備えている。記憶部３３は、例えば図１１に示すレジスタウィンドウ１を有する汎用レジスタファイル２と、例えば図１２に示す読み出し回路３と、を備えていてもよい。命令制御ブロック２３は、命令制御部３６を備えている。キャッシュ制御ブロック２４は、キャッシュ３８を備えている。演算部３２は、記憶部３３が出力したデータに基づいて演算処理を行う。エラー訂正部３４は、記憶部３３が出力したデータのエラーを訂正する。記憶部３３は、キャッシュ３８が出力したデータ、演算部３２が出力した演算結果のデータ、およびエラー訂正部３４が出力したエラー訂正済みのデータを保持する。記憶部３３は、演算部３２、エラー訂正部３４およびキャッシュ３８に、保持しているデータを出力する。
【００１７】
キャッシュ３８は、メモリブロック２５が出力したデータを保持するとともに、データを記憶部３３へ出力する。キャッシュ３８は、記憶部３３が出力したデータをメモリブロック２５へ出力する。演算制御部３１は、記憶部３３が出力した制御信号に基づいて、演算部３２の動作および命令制御部３６の動作を制御する。演算制御部３１は、記憶部３３に対するデータの入出力を制御する。命令制御部３６は、演算部３２の動作およびエラー訂正部３４の動作を制御する。命令制御部３６は、エラー訂正部３４によって制御される。命令制御ブロック２３は、キャッシュ制御ブロック２４の動作を制御する。メモリブロック２５には、記憶装置１３（図１参照）が記憶しているデータの一部または全部を記憶する。メモリブロック２５は、記憶しているデータを記憶装置１３（図１参照）へ出力する。
【００１８】
・演算処理装置の要部の説明
図３は、実施例１にかかる演算処理装置の要部を示す図である。図３に示すように、記憶部３３の出力データは、ラッチ４１に格納される。ラッチ４１の出力データは、演算部３２、エラー訂正符号（ＥＣＣ）を用いてデータのエラーを訂正するエラー訂正部３４、およびパリティ検査を行うチェック部４３に渡される。演算部３２は、記憶部３３の出力データに基づいて演算処理を行う。演算部３２が出力した演算結果のデータは、ラッチ４２に格納される。チェック部４３は、記憶部３３の出力データのパリティを検査する。演算制御部３１は、パリティ検査の結果に基づいて、エラー検出信号ＥＵ＿ＰＤを出力する。エラー検出信号ＥＵ＿ＰＤは、記憶部３３の出力データが正しくないことを示す信号である。
【００１９】
記憶部３３でエラーが発生した場合には、演算制御部３１は、エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲを出力する。エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲは、記憶部３３でエラーが発生したことを示す信号である。チェック部４３および演算制御部３１は、エラー検出部およびエラー識別部として動作する。命令制御部３６は、エラー検出信号ＥＵ＿ＰＤおよびエラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲに基づいて、キャンセル信号ＣＡＮＣＥＬおよび訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴを出力する。キャンセル信号ＣＡＮＣＥＬは、演算部３２の演算処理を中止させる信号である。訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴは、エラー訂正部３４でのデータのエラー訂正処理を開始させる信号である。エラー訂正部３４は、訂正部４４および訂正制御部４５を備えている。訂正部４４は、記憶部３３の出力データのエラーを訂正する。訂正制御部４５は、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴに基づいて、訂正部４４の動作を制御する。
【００２０】
エラー訂正部３４が出力したエラー訂正済みのデータは、ラッチ４６に格納される。エラー訂正部３４は、訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤおよび訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰを出力する。訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤは、エラー訂正部３４が出力するエラー訂正済みのデータが有効であることを示す信号である。訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤは、エラー訂正部３４がデータのエラー訂正処理を行っている間、アサートされる（図５参照）。セレクタ４７は、訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤがアサートされている間、ラッチ４６に格納されたエラー訂正済みのデータを選択する。セレクタ４７は、訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤがネゲートされている間、ラッチ４２に格納された演算結果のデータを選択する。つまり、セレクタ４７は、エラー訂正部３４がデータのエラー訂正処理を行っている間、エラー訂正部３４が出力したエラー訂正済みのデータを出力し、それ以外のときには、演算部３２が出力した演算結果のデータを出力する。
【００２１】
セレクタ４７で選択されたデータは、ラッチ４８に格納される。ラッチ４８の出力データは、ライトデータとして記憶部３３に書き込まれる。命令制御部３６は、訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰに基づいて、命令の実行を再開する。訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰは、エラー訂正部３４でデータのエラー訂正処理が終了したことを示す信号である。なお、図２に示す全体の構成と図３に示す要部の構成との対応関係において、図３に示すチェック部４３は、図２においては記憶部３３に含まれている。また、図３においては、演算制御部３１が演算部３２および記憶部３３に対して出力する制御信号が、省略されている。
【００２２】
・命令制御部の説明
図４は、実施例１にかかる命令制御部の要部を示す図である。図５は、実施例１にかかる演算処理装置の動作タイミングを示す図である。図４に示すように、命令制御部３６は、エラー識別信号保持部５１、エラー検出信号保持部５２、カウンタ５３、アンド回路５４，５５および訂正状態保持部５６を備えている。図４および図５に示すように、エラー識別信号保持部５１は、エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲがアサートされるとセットされる。エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲは、記憶部３３でのエラーの発生が原因で記憶部３３の出力データが正しくない場合に所定期間アサートされる。エラー識別信号保持部５１は、訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰがアサートされるとリセットされる。訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰは、エラー訂正部３４でのデータの訂正処理が終了すると所定期間アサートされる。エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲと訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰとが同時にアサートされることはない。エラー識別信号保持部５１は、エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤを出力する。エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤは、エラー識別信号保持部５１がセットされてからリセットされるまでの期間、アサートされる。
【００２３】
エラー検出信号保持部５２は、エラー検出信号ＥＵ＿ＰＤがアサートされるとセットされる。エラー検出信号ＥＵ＿ＰＤは、記憶部３３の出力データがエラーである場合に所定期間アサートされる。エラー検出信号保持部５２は、リセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１がアサートされるとリセットされる。リセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１は、カウンタ５３が所定の値に達したときに所定期間アサートされる。エラー検出信号ＥＵ＿ＰＤとリセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１とが同時にアサートされることはない。エラー検出信号保持部５２は、リストア信号ＲＥＳＴＯＲＥを出力する。リストア信号ＲＥＳＴＯＲＥは、キャンセル信号ＣＡＮＣＥＬとして訂正制御部４５（図３参照）および演算部３２（図３参照）へ渡される。リストア信号ＲＥＳＴＯＲＥ（キャンセル信号ＣＡＮＣＥＬ）は、エラー検出信号保持部５２がセットされてからリセットされるまでの期間、アサートされる。
【００２４】
カウンタ５３は、記憶部３３の出力データにエラーが発生したことを、演算処理装置１２の外のコントローラ１４（図１参照）へ報告する処理に要する時間以上の時間を計る。カウンタ５３のビット数は、特に限定しないが、ここでは例えば１０ビットとする。カウンタ５３は、リストア信号ＲＥＳＴＯＲＥがアサートされると初期値（例えば、０）からのカウントを開始する。カウンタ５３は、所定の値に達すると初期値に戻る。第１のアンド回路５４は、カウンタ５３の各ビットの値の論理積をリセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１として出力する。例えば、１０ビットのカウンタ５３の場合、カウンタ５３の値が「１１１１１１１１１１」になるとリセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１がアサートされる。リセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１がアサートされるとキャンセル信号ＣＡＮＣＥＬがネゲートされる。従って、記憶部３３の出力データにエラーが発生してからカウンタ５３の値が例えば「１１１１１１１１１１」になるまでの期間、訂正制御部４５（図３参照）および演算部３２（図３参照）の動作が停止することになる。
【００２５】
第２のアンド回路５５は、エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤとリセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１との論理積を訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴとして出力する。訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴは、記憶部３３でエラーが発生してからカウンタ５３の値が例えば「１１１１１１１１１１」になるまでの期間が経過した直後、すなわち演算処理装置１２の外のコントローラ１４（図１参照）へのエラー報告処理が済んだ後に所定期間アサートされる。訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされると、訂正制御部４５（図３参照）がデータのエラー訂正処理を開始する。
【００２６】
訂正状態保持部５６は、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされるとセットされる。訂正状態保持部５６は、訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰがアサートされるとリセットされる。訂正状態保持部５６がセットされると、エラーの訂正状態にあることを示す信号が命令制御部３６の各回路へ渡される。それによって、演算処理装置１２の状態がエラーの訂正状態に保持される。訂正状態保持部５６がリセットされると、エラーの訂正状態から復帰して通常状態にあることを示す信号が命令制御部３６の各回路へ渡される。それによって、演算処理装置１２は、命令制御部３６および演算部３２により再び命令を実行し、通常の処理を再開する。演算処理装置１２の状態は、通常状態に保持される。
【００２７】
・動作タイミングの説明
各信号の変化を時系列的に説明すると、図５に示すように、パリティ検査の結果、記憶部３３の出力データが正しくない場合、演算制御部３１から出力されるエラー検出信号ＥＵ＿ＰＤがアサートされる。それによって、エラー検出信号保持部５２から出力されるキャンセル信号ＣＡＮＣＥＬ（リストア信号ＲＥＳＴＯＲＥ）がアサートされ、演算部３２およびエラー訂正部３４の動作が停止するとともに、カウンタ５３がカウントを開始する。また、記憶部３３から正しくないデータが出力されたことの原因が記憶部３３でのエラーの発生である場合には、演算制御部３１から出力されるエラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲがアサートされる。それによって、エラー識別信号保持部５１から出力されるエラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤがアサートされる。
【００２８】
カウンタ５３がカウントを開始してから所定の値に達するまでの間に、演算処理装置１２の外部に対するエラーの報告処理および演算処理装置１２の中でのエラーの報告処理が終了する。カウンタ５３が所定の値に達すると、リセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１がアサートされる。それによって、キャンセル信号ＣＡＮＣＥＬ（リストア信号ＲＥＳＴＯＲＥ）がネゲートされ、カウンタ５３が初期値に戻って停止し、演算部３２およびエラー訂正部３４が動作を再開する。同時に、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされ、演算処理装置１２がエラーの訂正状態に移行し、エラー訂正部３４でデータのエラー訂正処理が開始される。また、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴのアサートによって、訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤがアサートされるので、セレクタ４７がエラー訂正部３４でのエラー訂正済みのデータを出力する。エラー訂正部３４でデータのエラー訂正処理が終了すると、エラー訂正部３４から出力される訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰがアサートされる。それによって、演算処理装置１２の状態が通常状態に移行し、訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤがネゲートされるので、セレクタ４７が演算部３２での演算結果のデータを出力する。
【００２９】
・演算処理装置の制御方法の説明
図６は、実施例１にかかる演算処理装置における処理の流れを示す図である。図６に示すように、演算処理装置１２は、記憶部３３からデータを読み出すと（ステップＳ１）、データのパリティをチェック部４３により検査する（ステップＳ２）。パリティ検査の結果、記憶部３３が出力したデータにエラーがなければ（ステップＳ３：Ｎｏ）、記憶部３３が出力したデータに基づいて演算部３２により通常の演算処理を行う（ステップＳ７）。パリティ検査の結果、記憶部３３が出力したデータにエラーがある場合には（ステップＳ３：Ｙｅｓ）、演算処理装置１２は、演算部３２およびエラー訂正部３４の処理を停止し、例えば１０ビットのカウンタ５３のカウントを開始する。演算処理装置１２は、カウンタ５３が所定の値になるまでにエラー報告処理を行う（ステップＳ４）。カウンタ５３が所定の値になると、演算処理装置１２は、エラー訂正部３４によりデータのエラー訂正処理を行う（ステップＳ５）。エラー訂正処理が終了すると、演算処理装置１２は、命令制御部３６および演算部３２により再び命令を実行し（ステップＳ６）、通常の処理を再開する（ステップＳ７）。
【００３０】
実施例１によれば、パリティの検査によってデータのエラーを検出し、エラー訂正符号を用いてデータのエラーを訂正することができる。従って、例えば図１１に示すレジスタウィンドウ１を有する汎用レジスタファイル２と、例えば図１２に示す読み出し回路３と、を備えた演算処理装置１２において、データのエラーを訂正することができる。また、汎用レジスタファイル２からデータを読み出すパスにエラー訂正部を組み込まずに済む。また、このような演算処理装置１２を備えた情報処理装置１１において、同様にデータのエラーを検出し、データを訂正することができる。
【００３１】
（実施例２）
例えば図１１に示すレジスタウィンドウ１を有する汎用レジスタファイル２と、例えば図１２に示す読み出し回路３と、を備えた演算処理装置においては、演算処理装置内でのエラーの報告処理は、演算処理装置外のコントローラへのエラーの報告処理よりも短時間で終了する。演算処理装置内でのエラーの報告処理に要する時間は、例えば数サイクル程度である。実施例２は、汎用レジスタファイルが出力したデータのエラーを訂正する際に、演算処理装置がエラーの訂正状態にならずに、演算処理装置外へのエラーの報告処理とデータのエラー訂正処理を並行して行う例である。情報処理装置の構成は、図１に示す実施例１と同様であるので、説明を省略する。演算処理装置の全体の構成は、図２に示す実施例１と同様であるので、説明を省略する。ただし、実施例２では演算処理装置がエラーの訂正状態にならないので、図２に示す構成において、エラー訂正部３４が命令制御部３６にエラーの訂正状態が終了したことを知らせる制御信号がない。
【００３２】
・演算処理装置の要部の説明
図７は、実施例２にかかる演算処理装置の要部を示す図である。図７に示す構成において、実施例２が実施例１と異なるのは以下の点である。キャンセル信号ＣＡＮＣＥＬが例えばインバータ６１によって反転されてエラー訂正部３４に入力する。エラー訂正部３４から命令制御部３６へ訂正終了信号ＣＯＲＲＥＣＴ＿ＣＯＭＰが出力されない。訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤがアサート状態になるのは、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされた後、キャンセル信号ＣＡＮＣＥＬがアサートされている期間である。演算処理装置の要部の構成において、その他の構成は図３に示す構成と同様であるので、説明を省略する。なお、図２に示す全体の構成と図７に示す要部の構成との対応関係については、実施例１において図２と図３との対応関係について説明したとおりである。
【００３３】
・命令制御部の説明
図８は、実施例２にかかる命令制御部の要部を示す図である。図９は、実施例２にかかる演算処理装置の動作タイミングを示す図である。図８に示すように、命令制御部３６は、エラー識別信号保持部５１、エラー検出信号保持部５２、カウンタ５３，６２およびアンド回路５４，５５，６３，６４を備えている。二つのカウンタ５３，６２を区別するため、実施例２で新たに追加されたカウンタ６２を第１のカウンタ６２とし、実施例１で設けられていたカウンタ５３を第２のカウンタ５３とする。また、四つのアンド回路５４，５５，６３，６４を区別するため、実施例２で新たに第１のカウンタ６２の入力に追加されたアンド回路６３を第３のアンド回路６３とし、第１のカウンタ６２の出力に追加されたアンド回路６４を第４のアンド回路６４とする。実施例２では、訂正状態保持部は設けられていない。図４に示す実施例１の構成と異なる点についてのみ説明する。
【００３４】
図８および図９に示すように、エラー識別信号保持部５１は、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされるとリセットされる。エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲと訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴとが同時にアサートされることはない。エラー識別信号保持部５１が出力するエラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤは、エラー識別信号保持部５１がセットされてからリセットされるまでの期間、アサートされる。
【００３５】
エラー検出信号保持部５２が出力するリストア信号ＲＥＳＴＯＲＥ（キャンセル信号ＣＡＮＣＥＬ）は、そのまま演算部３２（図３参照）へ渡されるとともに、インバータ６１により論理が反転されて訂正制御部４５（図３参照）へ渡される。従って、リストア信号ＲＥＳＴＯＲＥ（キャンセル信号ＣＡＮＣＥＬ）がアサートされている期間の全体にわたって演算部３２（図３参照）の動作は停止する。一方、訂正制御部４５（図３参照）の動作は、リストア信号ＲＥＳＴＯＲＥ（キャンセル信号ＣＡＮＣＥＬ）がアサートされている期間のうち、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされるまでは停止し、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされた後は停止しない。つまり、リストア信号ＲＥＳＴＯＲＥ（キャンセル信号ＣＡＮＣＥＬ）がアサートされている期間でも、エラー訂正部３４でのデータのエラー訂正処理が行われる。
【００３６】
第２のカウンタ５３は、リストア信号ＲＥＳＴＯＲＥがアサートされると初期値（例えば、０）からのカウントを開始し、所定の値に達すると初期値に戻る。第２のカウンタ５３のビット数は、演算処理装置１２の外のコントローラ１４（図１参照）へエラーを報告する処理に要する時間以上の時間を計ることができれば、特に問わない。ここでは、第２のカウンタ５３のビット数が例えば１０ビットであるとする。第２のカウンタ５３の値が所定の値（例えば「１１１１１１１１１１」）になると、第１のアンド回路５４が出力するリセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１がアサートされる。それによって、エラー検出信号保持部５２がリセットされ、キャンセル信号ＣＡＮＣＥＬがネゲートされる。従って、演算部３２（図３参照）での通常の処理動作が再開し、訂正制御部４５（図３参照）でのエラー訂正処理の動作が停止する。第２のカウンタ５３および第１のアンド回路５４は、第２の計数部として動作する。
【００３７】
第３のアンド回路６３は、エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤとリストア信号ＲＥＳＴＯＲＥ（キャンセル信号ＣＡＮＣＥＬ）との論理積を出力する。従って、エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤおよびリストア信号ＲＥＳＴＯＲＥ（キャンセル信号ＣＡＮＣＥＬ）がともにアサートされている状態のときに、第１のカウンタ６２は、初期値（例えば、０）からのカウントを開始し、所定の値に達すると初期値に戻る。エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤおよびリストア信号ＲＥＳＴＯＲＥ（キャンセル信号ＣＡＮＣＥＬ）がともにアサートされている状態となるのは、エラー識別信号保持部５１およびエラー検出信号保持部５２がともにセットされている状態のときである。
【００３８】
第１のカウンタ６２のビット数は、演算処理装置１２内でのエラーの報告処理に要する時間以上の時間を計ることができるビット数で、かつ第２のカウンタ５３のビット数よりも少なければよい。ここでは、第１のカウンタ６２のビット数は、特に限定しないが、例えば４ビットであるとする。第１のカウンタ６２の値が所定の値（例えば「１１１１」）になると、第４のアンド回路６４が出力する第１の計数期間経過信号４ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１がアサートされる。第１のカウンタ６２がカウントを開始するタイミングは、第３のアンド回路６３を信号が伝搬する時間の間、第２のカウンタ５３がカウントを開始するタイミングよりも遅れるだけである。従って、第１のカウンタ６２の方が、第２のカウンタ５３よりも速く所定の値に達する。第３のアンド回路６３、第１のカウンタ６２および第４のアンド回路６４は、第１の計数部として動作する。
【００３９】
第２のアンド回路５５は、エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤと第１の計数期間経過信号４ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１との論理積を訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴとして出力する。訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴは、記憶部３３でエラーが発生してから第１のカウンタ６２の値が例えば「１１１１」になるまでの期間が経過した直後、すなわち演算処理装置１２内でのエラー報告処理が済んだ後に所定期間アサートされる。訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされると、訂正制御部４５（図３参照）がデータのエラー訂正処理を開始する。訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされると、エラー識別信号保持部５１がリセットされるので、エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤがネゲートされ、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがネゲートされる。
【００４０】
・動作タイミングの説明
各信号の変化を時系列的に説明すると、図９に示すように、パリティ検査の結果、記憶部３３の出力データが正しくない場合、演算制御部３１から出力されるエラー検出信号ＥＵ＿ＰＤがアサートされる。それによって、エラー検出信号保持部５２から出力されるキャンセル信号ＣＡＮＣＥＬ（リストア信号ＲＥＳＴＯＲＥ）がアサートされ、演算部３２の動作が停止するとともに、第２のカウンタ５３がカウントを開始する。また、記憶部３３から正しくないデータが出力されたことの原因が記憶部３３でのエラーの発生である場合には、演算制御部３１から出力されるエラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲがアサートされる。それによって、エラー識別信号保持部５１から出力されるエラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤがアサートされ、第１のカウンタ６２がカウントを開始する。
【００４１】
第１のカウンタ６２がカウントを開始してから所定の値に達するまでの間（第１の係数期間）に、演算処理装置１２の中でのエラーの報告処理が終了する。第１のカウンタ６２が所定の値に達すると、第１のカウンタ６２が初期値に戻って停止し、第１の計数期間経過信号４ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１がアサートされる。それによって、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされるので、エラー訂正部３４でデータのエラー訂正処理が開始される。また、訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴのアサートによって、訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤがアサートされるので、セレクタ４７がエラー訂正部３４でのエラー訂正済みのデータを出力する。訂正開始信号ＣＯＲＲＥＣＴ＿ＳＴＡＲＴがアサートされると、エラー検出フラグ信号ＣＯＲＲＥＣＴ＿ＰＥＮＤはネゲートされる。
【００４２】
その後、第２のカウンタ５３が所定の値に達する。第２のカウンタ５３がカウントを開始してから所定の値に達するまでの間（第２の係数期間）に、演算処理装置１２の外に対するエラーの報告処理が終了する。第２のカウンタ５３が所定の値に達すると、第２のカウンタ５３が初期値に戻って停止し、リセット信号１０ＢＩＴ＿ＣＯＵＮＴ＿ＡＬＬ１がアサートされる。それによって、キャンセル信号ＣＡＮＣＥＬ（リストア信号ＲＥＳＴＯＲＥ）がネゲートされるので、演算部３２が動作を再開し、エラー訂正部３４が動作を停止する。また、訂正有効信号ＣＯＲＲＥＣＴ＿ＶＡＬＩＤがネゲートされるので、セレクタ４７が演算部３２での演算結果のデータを出力する。
【００４３】
・演算処理装置の制御方法の説明
図１０は、実施例２にかかる演算処理装置における処理の流れを示す図である。図１０に示すように、演算処理装置１２は、記憶部３３からデータを読み出すと（ステップＳ１１）、データのパリティをチェック部４３により検査する（ステップＳ１２）。パリティ検査の結果、記憶部３３が出力したデータにエラーがなければ（ステップＳ１３：Ｎｏ）、記憶部３３が出力したデータに基づいて演算部３２により通常の演算処理を行う（ステップＳ１７）。パリティ検査の結果、記憶部３３が出力したデータにエラーがある場合には（ステップＳ１３：Ｙｅｓ）、演算処理装置１２は、記憶部３３でエラーが発生したか否かを判断する。記憶部３３でエラーが発生したか否かは、エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲの状態によって判断することができる（ステップＳ１４）。
【００４４】
エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲがネゲートの状態である場合には記憶部３３でエラーが発生していないので（ステップＳ１４：Ｎｏ）、演算処理装置１２は、演算部３２の処理を停止し、第２のカウンタ５３のカウントを開始する。演算処理装置１２は、第２のカウンタ５３が所定の値になるまでにエラー報告処理を行う（ステップＳ１５）。第２のカウンタ５３が所定の値になると、演算処理装置１２は、演算部３２により再び命令を実行し（ステップＳ１６）、通常の処理を再開する（ステップＳ１７）。
【００４５】
一方、エラー識別信号ＧＰＲ＿ＤＡＴＡ＿ＥＲＲＯＲがアサートの状態である場合には記憶部３３でエラーが発生しているので（ステップＳ１４：Ｙｅｓ）、演算処理装置１２は、演算部３２およびエラー訂正部３４の処理を停止し、第１のカウンタ６２および第２のカウンタ５３のカウントを開始する。演算処理装置１２は、第１のカウンタ６２が所定の値になるまでに演算処理装置１２内でのエラー報告処理を終了する。また、演算処理装置１２は、第２のカウンタ５３が所定の値になるまでに演算処理装置１２の外に対してエラー報告処理を終了する（ステップＳ１８）。第１のカウンタ６２が所定の値になった後、第２のカウンタ５３が所定の値に達するまでの間に、演算処理装置１２は、エラー訂正部３４によりデータのエラー訂正処理を行う（ステップＳ１９）。エラーの報告処理およびエラー訂正処理が終了すると、演算処理装置１２は、演算部３２により再び命令を実行し（ステップＳ１６）、通常の処理を再開する（ステップＳ１７）。
【００４６】
実施例２によれば、実施例１と同様の効果が得られる。また、エラーの報告処理とエラー訂正処理が並行して行われるので、記憶部３３から読み出されたデータのエラーを検出してからエラーを訂正して通常の動作状態に復帰するまでの時間が、エラーの報告処理に要する時間だけで済む。つまり、演算処理装置１２は、エラーの報告処理の終了後、直ちに通常の動作に復帰することができる。従って、記憶部３３から読み出されたデータのエラーを検出してからエラーを訂正して通常の動作状態に復帰するまでの時間を短縮することができる。また、記憶部３３から読み出されたデータのエラーを検出したときに演算処理装置１２がエラーの訂正状態へ移行しないので、状態の制御回路が簡素な構成となり、ハードウェアの量（回路量）を減らすことできる。
【００４７】
なお、本発明は、上述した構成の情報処理装置および演算処理装置に限らず、種々の構成の情報処理装置および演算処理装置に適用することができる。例えば、本発明は、図１１に示すレジスタウィンドウ１を有する汎用レジスタファイル２と、図１２に示す読み出し回路３と、を備えた演算処理装置以外のものにも適用することができる。
【００４８】
上述した実施例１、２に関し、さらに以下の付記を開示する。
【００４９】
（付記１）演算処理を行う演算部と、データを保持するとともに、前記データを前記演算部に出力する記憶部と、前記記憶部が出力した前記データのエラーを検出した場合に、エラー検出信号を出力するエラー検出部と、前記記憶部にエラーが発生したことを示すエラー識別信号を出力するエラー識別部と、前記エラー識別信号を保持して、エラー検出フラグ信号として出力するエラー識別信号保持部と、前記エラー検出信号を保持して、前記演算部の演算処理を中止させるキャンセル信号を出力するエラー検出信号保持部と、前記エラー検出フラグ信号と前記キャンセル信号とに基づき第１の計数を開始し、第１の計数期間を経過した場合に、訂正開始信号を出力する第１の計数部と、前記訂正開始信号を受信した場合に、前記記憶部が出力した前記データのエラーを訂正するエラー訂正部と、を備えることを特徴とする演算処理装置。
【００５０】
（付記２）前記キャンセル信号の出力により第２の計数を開始し、第２の計数期間を経過した場合に、前記エラー検出信号保持部へのリセット信号を出力する第２の計数部、をさらに備えることを特徴とする付記１に記載の演算処理装置。
【００５１】
（付記３）前記第１の計数部は、前記エラー検出フラグ信号と前記キャンセル信号との論理積に基づいて前記第１の計数を開始し、前記第１の計数期間を経過したことを表す第１の計数期間経過信号と前記エラー検出フラグ信号との論理積に基づいて、前記訂正開始信号を出力することを特徴とする付記２に記載の演算処理装置。
【００５２】
（付記４）前記訂正開始信号は、前記エラー識別信号保持部をリセットさせることを特徴とする付記２または３に記載の演算処理装置。
【００５３】
（付記５）前記第２の計数期間は、前記第１の計数期間よりも長いことを特徴とする付記２〜４のいずれか一つに記載の演算処理装置。
【００５４】
（付記６）演算処理装置と前記演算処理装置にデータを供給する記憶装置を有する情報処理装置において、演算処理を行う演算部と、前記記憶装置からのデータを保持するとともに、前記データを前記演算部に出力する記憶部と、前記記憶部が出力した前記データのエラーを検出した場合に、エラー検出信号を出力するエラー検出部と、前記記憶部にエラーが発生したことを示すエラー識別信号を出力するエラー識別部と、前記エラー識別信号を保持して、エラー検出フラグ信号として出力するエラー識別信号保持部と、前記エラー検出信号を保持して、前記演算部の演算処理を中止させるキャンセル信号を出力するエラー検出信号保持部と、前記エラー検出フラグ信号と前記キャンセル信号とに基づき第１の計数を開始し、第１の計数期間を経過した場合に、訂正開始信号を出力する第１の計数部と、前記訂正開始信号を受信した場合に、前記記憶部が出力した前記データのエラーを訂正するエラー訂正部と、を備えることを特徴とする情報処理装置。
【００５５】
（付記７）演算処理装置の制御方法において、前記演算処理装置が有する演算部が、演算処理を行うステップと、前記演算処理装置が有する記憶部が、保持したデータを前記演算部に出力するステップと、前記演算処理装置が有するエラー検出部が、前記記憶部が出力した前記データのエラーを検出した場合に、エラー検出信号を出力するステップと、前記演算処理装置が有するエラー識別部が、前記記憶部にエラーが発生したことを示すエラー識別信号を出力するステップと、前記演算処理装置が有するエラー識別信号保持部が、前記エラー識別信号を保持して、エラー検出フラグ信号として出力するステップと、前記演算処理装置が有するエラー検出信号保持部が、前記エラー検出信号を保持して、前記演算部の演算処理を中止させるキャンセル信号を出力するステップと、前記演算処理装置が有する第１の計数部が、前記エラー検出フラグ信号と前記キャンセル信号とに基づき第１の計数を開始し、第１の計数期間を経過した場合に、訂正開始信号を出力するステップと、前記演算処理装置が有するエラー訂正部が、前記訂正開始信号を受信した場合に、前記記憶部が出力した前記データのエラーを訂正するステップと、を含むことを特徴とする演算処理装置の制御方法。
【００５６】
（付記８）前記演算処理装置が有する第２の計数部が、前記キャンセル信号の出力により第２の計数を開始し、第２の計数期間を経過した場合に、前記エラー検出信号保持部へのリセット信号を出力するステップ、をさらに含むことを特徴とする付記７に記載の演算処理装置の制御方法。
【００５７】
（付記９）前記第１の計数部は、前記エラー検出フラグ信号と前記キャンセル信号との論理積に基づいて前記第１の計数を開始し、前記第１の計数期間を経過したことを表す第１の計数期間経過信号と前記エラー検出フラグ信号との論理積に基づいて、前記訂正開始信号を出力することを特徴とする付記８に記載の演算処理装置の制御方法。
【００５８】
（付記１０）前記訂正開始信号は、前記エラー識別信号保持部をリセットさせることを特徴とする付記８または９に記載の演算処理装置の制御方法。
【００５９】
（付記１１）前記第２の計数期間は、前記第１の計数期間よりも長いことを特徴とする付記８〜１０のいずれか一つに記載の演算処理装置の制御方法。
【００６０】
（付記１２）前記第１の計数部は、前記エラー検出フラグ信号と前記キャンセル信号との論理積に基づいて前記第１の計数を開始し、前記第１の計数期間を経過したことを表す第１の計数期間経過信号と前記エラー検出フラグ信号との論理積に基づいて、前記訂正開始信号を出力することを特徴とする付記１に記載の演算処理装置。
【００６１】
（付記１３）前記訂正開始信号は、前記エラー識別信号保持部をリセットさせることを特徴とする付記１または１２に記載の演算処理装置。
【００６２】
（付記１４）前記第１の計数部は、前記エラー検出フラグ信号と前記キャンセル信号との論理積に基づいて前記第１の計数を開始し、前記第１の計数期間を経過したことを表す第１の計数期間経過信号と前記エラー検出フラグ信号との論理積に基づいて、前記訂正開始信号を出力することを特徴とする付記７に記載の演算処理装置の制御方法。
【００６３】
（付記１５）前記訂正開始信号は、前記エラー識別信号保持部をリセットさせることを特徴とする付記７または１４に記載の演算処理装置の制御方法。
【符号の説明】
【００６４】
１１  情報処理装置
１２  演算処理装置
１３  記憶装置
３１，４３  エラー検出部、エラー識別部
３２  演算部
３３  記憶部
３４  エラー訂正部
５１  エラー識別信号保持部
５２  エラー検出信号保持部
５３，５４  第２の計数部
６２，６３，６４  第１の計数部
【図１】
0005540697.tif 000002
【図２】
0005540697.tif 000003
【図３】
0005540697.tif 000004
【図４】
0005540697.tif 000005
【図５】
0005540697.tif 000006
【図６】
0005540697.tif 000007
【図７】
0005540697.tif 000008
【図８】
0005540697.tif 000009
【図９】
0005540697.tif 000010
【図１０】
0005540697.tif 000011
【図１１】
0005540697.tif 000012
【図１２】
0005540697.tif 000013