(57)【要約】  演算処理装置からの命令を実行する命令実行部がエラー発生条件を満たすか否かを判定するエラー発生条件判定部と、エラーの設定を指示するエラー設定指示が入力されたときに命令実行部がエラー発生条件を満たすか否かをエラー発生条件判定部に判定させる判定指示を出力し、エラー設定指示が入力されたときにエラー発生条件が満たされない場合には判定指示の出力から所定時間経過後に再度エラー発生条件判定部に判定指示を出力する判定指示部と、エラー発生条件判定部の判定により命令実行部がエラー発生条件を満たす場合には、命令実行部にエラー発生指示を出力するエラー発生指示出力部とを有する。
2011096083.tif 000002
【特許請求の範囲】
【請求項１】
演算処理装置からの命令を実行する命令実行部がエラー発生条件を満たすか否かを判定するエラー発生条件判定部と、
エラーの設定を指示するエラー設定指示が入力されたときに前記命令実行部が前記エラー発生条件を満たすか否かを前記エラー発生条件判定部に判定させる判定指示を出力し、前記エラー設定指示が入力されたときに前記エラー発生条件が満たされない場合には前記判定指示の出力から所定時間経過後に再度前記エラー発生条件判定部に前記判定指示を出力する判定指示部と、
前記エラー発生条件判定部の判定により前記命令実行部が前記エラー発生条件を満たす場合には、前記命令実行部にエラー発生指示を出力するエラー発生指示出力部と
を有するエラー発生指示回路。
【請求項２】
前記エラー発生条件判定部は、前記演算処理装置から各命令の実行指示を受けてから前記演算処理装置に対し当該命令の完了報告を行うまでの間は前記エラー発生条件を満たすと判定し、前記完了報告を前記演算処理装置に行った後更に当該命令の実行を続行する間は前記エラー発生条件を満たさないと判定することを特徴とする、請求項１に記載のエラー発生指示回路。
【請求項３】
乱数を発生し、当該乱数に基づいて前記所定時間を設定する時間設定部を更に有することを特徴とする
請求項１又は２に記載のエラー発生指示回路。
【請求項４】
前記判定指示部は、前記エラー設定指示が入力されたときに計数値をゼロにリセットしてクロックを計数し、計数値が所定値に達すると計数値をゼロにリセットする計数部と、
前記計数部の計数値がゼロにリセットされると、前記エラー発生条件判定部に対し前記判定指示を出力する指示出力部と、
前記エラー設定指示の入力により前記指示出力部による前記判定指示の出力を可能とし、前記エラー発生指示出力部によって出力される前記エラー発生指示により前記指示出力部による前記判定指示の出力を不可とする出力ゲート部と
を有することを特徴とする請求項１乃至３のうちの何れか一項に記載のエラー発生指示回路。
【請求項５】
情報を記憶する記憶部と、
演算処理装置からの命令に従って前記記憶部への情報の書込及び前記記憶部からの情報の読み出しのうちの少なくともいずれか一方の処理を実行する命令実行部と、
前記命令実行部がエラー発生条件を満たすか否かを判定するエラー発生条件判定部と、
エラー設定指示が入力されたときに、前記エラー発生条件が満たされるか否かを前記エラー発生条件判定部に判定させる判定指示を出力し、前記エラー設定指示が入力されたときに前記エラー発生条件が満たされない場合には所定時間経過後に再度前記エラー発生条件判定部に前記判定指示を出力する判定指示部と、
前記エラー発生条件判定部の判定により前記エラー発生条件が満たされる場合には前記命令実行部にエラー発生指示を出力するエラー発生指示出力部と
を有する記憶装置。
【請求項６】
前記エラー発生条件判定部は、前記演算処理装置から各命令の実行指示を受けてから前記演算処理装置に対し当該命令の完了報告を行うまでの間は前記エラー発生条件を満たすと判定し、前記完了報告を行った後、更に当該命令の実行を続行する間は前記エラー発生条件を満たさないと判定することを特徴とする、請求項５に記載の記憶装置。
【請求項７】
乱数を発生し、当該乱数に基づいて前記所定時間を設定する時間設定部を更に有することを特徴とする
請求項５又は６に記載の記憶装置。
【請求項８】
前記判定指示部は、前記エラー設定指示が入力されたときに計数値をゼロにリセットしてクロック周期を計数し、計数値が前記所定時間に対応する所定値に達すると計数値をゼロにリセットする計数部と、
前記計数部の計数値がゼロにリセットされると前記エラー発生条件判定部に対し前記判定指示を出力する指示出力部と、
前記エラー設定指示の入力により前記指示出力部による前記判定指示の出力を可能とし、前記エラー発生指示出力部によって出力される前記エラー発生指示により、前記指示出力部による前記判定指示の出力を不可とする出力ゲート部と
を有することを特徴とする請求項５乃至７のうちの何れか一項に記載の記憶装置。
【請求項９】
演算処理装置と、
情報を記憶する記憶部と、
前記演算処理装置からの命令に従って前記記憶部への情報の書込及び前記記憶部からの情報の読み出しのうちの少なくともいずれか一方の処理を実行する命令実行部と、
前記命令実行部がエラー発生条件を満たすか否かを判定するエラー発生条件判定部と、
エラー設定指示が入力されたときに前記エラー発生条件判定部に前記エラー発生条件が満たされるか否かを判定させる判定指示を出力し、前記エラー設定指示が入力されたときに前記エラー発生条件が満たされない場合には所定時間経過後に再度前記エラー発生条件判定部に前記判定指示を出力する判定指示部と、
前記エラー発生条件判定部の判定により前記エラー発生条件が満たされる場合には前記命令実行部にエラー発生指示を出力するエラー発生指示出力部とを有する記憶装置と
を有する情報処理装置。
【請求項１０】
前記エラー発生条件判定部は、前記演算処理装置から各命令の実行指示を受けてから前記演算処理装置に対し当該命令の完了報告を行うまでの間は前記エラー発生条件を満たすと判定し、前記完了報告を行った後、更に当該命令の実行を続行する間は前記エラー発生条件を満たさないと判定することを特徴とする、請求項９に記載の情報処理装置。
【請求項１１】
乱数を発生し、当該乱数に基づいて前記所定時間を設定する時間設定部を更に有することを特徴とする
請求項９又は１０に記載の情報処理装置。
【請求項１２】
前記判定指示部は、前記エラー設定指示が入力されたときに計数値をゼロにリセットしてクロック周期を計数し、計数値が前記所定時間に対応する所定値に達すると計数値をゼロにリセットする計数部と、
前記計数部の計数値がゼロにリセットされると前記エラー発生条件判定部に対し前記判定指示を出力する指示出力部と、
前記エラー設定指示の入力により前記指示出力部による前記判定指示の出力を可能とし、前記エラー発生指示出力部によって出力される前記エラー発生指示により、前記指示出力部による前記判定指示の出力を不可とする出力ゲート部と
を有することを特徴とする請求項９乃至１１のうちの何れか一項に記載の情報処理装置。
【請求項１３】
演算処理装置からの命令を実行する命令実行部に対し、エラー発生指示を行うエラー発生指示回路の制御方法であって、
判定指示部が、エラー設定指示が入力されたときにエラー発生条件判定部に前記エラー発生条件が満たされるか否かを判定させる判定指示を出力するステップと、
前記エラー発生条件判定部が、前記判定指示に応じて、前記演算処理装置からの命令を実行する命令実行部がエラー発生条件を満たすか否かを判定するステップと、
前記エラー設定指示が入力されたときに、前記エラー発生条件が満たされないと判定された場合には、所定時間経過後に再度前記エラー発生条件判定部に前記判定指示を出力するステップと、
エラー発生指示部が、前記エラー発生条件判定部の判定により前記エラー発生条件が満たされる場合には、前記命令実行部にエラー発生指示を出力するステップと
を有するエラー発生指示回路の制御方法。
【請求項１４】
前記エラー発生条件判定部が実行するステップでは、前記演算処理装置から各命令の実行指示を受けてから前記演算処理装置に対し当該命令の完了報告を行うまでの間は前記エラー発生条件を満たすと判定し、前記完了報告を行った後、更に当該命令の実行を続行する間は前記エラー発生条件を満たさないと判定することを特徴とする、請求項１３に記載のエラー発生指示回路の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エラー発生指示回路、記憶装置、情報処理装置及びエラー発生指示回路の制御方法に関する。
【背景技術】
【０００２】
プロセッサの論理装置に擬似的な障害を発生させる擬似障害発生方式が知られている。擬似障害発生方式によれば、プロセッサの状態を示すプロセッサ状態情報と擬似障害を発生させるタイミングの条件を示す障害タイミング条件とを比較し、比較結果に対し、擬似障害挿入タイミングマスクによりマスクをかける。このようにして、擬似障害挿入タイミングマスクは障害挿入タイミング条件のうち設定対象とする条件のみを選択する。その結果擬似障害挿入タイミングが決定され、指定条件が整ったとき、論理装置内の指定された位置に擬似的な障害が挿入される。【０００３】
又、異なるアーキテクチャを持つ異種計算機の命令を擬似的に実行する異種計算機命令の擬似実行方法が知られている。当該方法によれば、ある計算機において、第１の計算機とは異なるアーキテクチャの第２の計算機の命令（対象命令）を、エラー発生時の動作や、エラー発生時得られるエラー情報を含め、第１の計算機上で忠実に実現することができる。その結果、異なるアーキテクチャを持つ異種計算機の命令を擬似的に実行する場合に、演算エラー割り込み発生時のエラー情報として、本来必要な異種計算機のエラー情報相当の情報を得ることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平３−２５５５４３号公報
【特許文献２】特開平５−３４６８７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
演算処理装置の命令を実行する命令実行部においてエラーを発生させる場合に、エラー発生条件を満たし、かつエラー発生条件を満たすようになったタイミング以外のタイミングでもエラーを発生させることは困難であった。
【課題を解決するための手段】
【０００６】
エラー発生指示回路は、エラー設定指示が入力されたときに演算処理装置からの命令を実行する命令実行部がエラー発生条件を満たすか否かを判定する。そしてエラー設定指示が入力されたときにエラー発生条件が満たされない場合には所定時間経過後に再度命令実行部がエラー発生条件を満たすか否かを判定し、エラー発生条件が満たされる場合には命令実行部にエラー発生指示を出力する。
【発明の効果】
【０００７】
本発明によれば命令実行部がエラー発生条件を満たし、かつエラー発生条件を満たすようになったタイミング以外のタイミングでもエラー発生指示を出力することができる。よってエラー発生条件が満たされない場合にエラーが生ずることがなくなるとともに、エラー発生条件を満たすようになった時点以降に時間が経過したタイミングで生ずるエラーに対するシステムの動作を検証することができる。
【図面の簡単な説明】
【０００８】
【図１】コンピュータに含まれるＣＰＵ及び記憶装置を示すブロック図である。
【図２】図１に示される記憶装置における動作例を示すタイムチャートである。
【図３】エラー発生のタイミングと発生するエラーの種類との関係を示すフローチャートである。
【図４】実施例による、コンピュータに含まれるＣＰＵ及び記憶装置を示すブロック図である。
【図５】図４に示される記憶装置における動作例を示すタイムチャートである。
【図６】図４に記載された命令状況通知回路の構成例を示す回路図である。
【図７】図４のエラー発生指示部の動作の流れを示すフローチャートである。
【図８】図４のＣＰＵの構成例を示すブロック図である。
【図９】図４の命令実行部の構成例を示すブロック図である。
【図１０】図４の命令実行部の動作例（その１）を示すタイムチャートである。
【図１１】図４の命令実行部の動作例（その２）を示すタイムチャートである。
【図１２】図４のエラー発生指示部の構成例を示す回路図（その１）である。
【図１３】図４のエラー発生指示部の構成例を示す回路図（その２）である。
【図１４】図４のエラー発生指示部に動作例を示すタイムチャートである。
【図１５】図１３のタイマ回路の第１の変形例を示す回路図である。
【図１６】図１３のタイマ回路の第２の変形例を示す回路図である。
【図１７】実施例の情報処理装置の構成例を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施例によれば、演算処理装置としてのＣＰＵ(Central Processing Unit)からの命令を処理する命令実行部で擬似障害（以降「エラー」と称する）を発生させる際に、ＣＰＵの動作と非同期に動作する待ち合わせ回路（タイマ回路、以下同様）を設ける。ここでエラーは、命令実行部が命令を正常に実行することができなくなるエラーとする（以下同様）。命令実行部においてエラーを発生させることにより、命令実行部及びＣＰＵを含むコンピュータにおける、エラーに応じたシステムの動作を検証する。
命令実行部にエラーを発生させる際、命令実行部は要求される条件のエラーを発生させることが可能か否か、言い換えると所定の条件が満たされるか否かを判定する。所定の条件が満たされれば命令実行部はエラーを発生させるが、所定の条件が満たされない場合、命令実行部は以下の動作を行う。すなわち命令実行部は、待ち合わせ回路を使用して、所定条件を満たすか否かを判定してから一定時間待ち合わせた後に、再度所定の条件が満たされるか否かを判定する。判定の結果、依然として所定の条件が満たされない場合、命令実行部はさらに一定時間待ち合わせた後に再度所定の条件が満たされるか否かを判定する動作を、所定の条件が満たされるまで繰り返す。
【００１０】
命令実行部がエラーを発生させる方法として、オペレータの指示に応じてＣＰＵの動作と非同期にエラーを発生させる方法が考えられる（第１の方法）。又、所定の条件が満たされた時点で、ＣＰＵの動作と同期させて命令実行部にエラーを発生させる方法も考えられる（第２の方法）。
【００１１】
第１の方法につき、以下に図１乃至図３とともに述べる。図１はＣＰＵ５０と記憶装置１００とを含む情報処理装置としてのコンピュータの構成を示す。ＣＰＵ５０は記憶装置１００に対し命令Ａの実行を指示する（Ｓ１）。記憶装置１００の命令実行部（図示「EXU」）１１０が命令Ａを実行し、命令Ａの実行を完了する（Ｓ４）。ここで、命令Ａがデータの読み書き命令であるものとする。又、命令実行部１１０が大容量記憶に書き込み対象のデータを書き込むのに要する時間より、受信した書き込み対象のデータをバッファに格納するのに要する時間の方が短く、命令実行部１１０はＣＰＵ５０から受け取ったデータを一旦バッファに格納し、バッファ経由で大容量記憶に書き込むものとする。
【００１２】
このような場合、図２に示す如く、命令実行部１１０は、ＣＰＵ５０から命令Ａの実行が指示（Ｓ１）された後、命令Ａの実行が完了（Ｓ４）する前に、命令Aの実行完了を示す完了報告をＣＰＵ５０に行う、いわゆる突き放し制御を行う（Ｓ２）。すなわち、命令実行部１１０は命令Ａに係る書込対象のデータをＣＰＵ５０から全て受け取りバッファに格納した時点で、命令Aの完了報告をＣＰＵ５０に対し行う。命令実行部１１０は、ＣＰＵ５０からデータを受け取ると、受け取ったデータをバッファに格納するとともに、大容量記憶へのデータ書き込み動作を開始する。そしてＣＰＵ５０への完了報告（Ｓ２）後も、バッファ経由で大容量記憶へのデータ書き込み動作を続行する（図９〜図１１とともに後述）。
【００１３】
ここで、命令実行部１１０が命令Ａの実行を開始した時点（Ｓ１）からＣＰＵ５０に対し命令Ａの完了報告を行なう（Ｓ２）までの動作を、命令の実行過程の前半と称する。又、命令実行部１１０が命令Ａの完了報告（Ｓ２）を行った時点から大容量記憶へのデータ書き込み動作を完了する（Ｓ４）までの動作を、命令の実行過程の後半と称する。上記の如く、この例では命令実行部１１０が大容量記憶にデータを書き込むのに要する時間より、バッファにデータを格納するのに要する時間の方が短い。このため、突き放し制御により、ＣＰＵ５０は早い段階で命令実行部からの命令Ａに関する完了報告を受け取って命令Ａの実行を終了し、次の命令Ｂの実行を開始し得る。よってＣＰＵ５０の動作を高速化することができる。
【００１４】
ここで図２に示される如く、オペレータが命令Ａの実行過程の後半でのエラー発生指示を行ったとする。その場合、命令Ａの実行過程の後半に命令実行部１１０でエラーが生じ、当該エラーの報告がＣＰＵ５０になされる。ところが、命令Ａの実行過程の後半では上記の如く、既にＣＰＵ５０は命令実行部からの命令Ａの完了報告を受け、命令Ａの実行を終了している。したがって、ＣＰＵ５０は命令実行部からのエラーの報告を命令Ａに係るエラーに関する報告として認識できず、一命令に閉じたエラー（PD: Processing Damage）として処理することができない。その結果ＣＰＵ５０は、当該エラーをコンピュータのシステムのエラー（SD: System Damage）として処理する。この点につき図３とともに以下に説明する。
【００１５】
図３中、命令実行部１１０に対しエラー発生指示がなされる（ステップＳ１１）。エラー発生指示が行なわれたのが命令前半部の実行中であった場合（ステップＳ１２のＹＥＳ）、命令実行部１１０では、ＣＰＵ５０が実行している命令に閉じたエラーとして処理し得るエラーが生ずる（ステップＳ１３）。他方、エラー発生指示が命令後半部の実行中に行われた場合（ステップＳ１２のＮＯ，ステップＳ１４のＹＥＳ），ＣＰＵ５０は命令実行部から報告されたエラーを、ＣＰＵ５０が実行していた一命令に閉じたエラーとして処理できず、システム全体に係る重大なエラーとして処理するエラーが生ずる（ステップＳ１３）。又、エラー発生指示の行なわれたのが命令の実行過程の前半及び後半のいずれでもなかった場合（ステップＳ１２のＮＯ，ステップＳ１４のＮＯ），エラーの対象が存在しないため、命令実行部１１０にエラーは生じない（ステップＳ１６）。
【００１６】
このように第１の方法によれば、オペレータによるエラー発生指示（ステップＳ１１）のタイミングに依存して、発生するエラーの種類が異なる。すなわち、エラー発生指示のタイミングに応じて、一命令に閉じるものとして処理される比較的軽度のエラー、あるいはシステム全体に係るものとして処理される比較的重大なエラーが生ずる。又、オペレータが命令の実行過程の前半あるいは後半のタイミングで確実にエラー発生指示を行うことは困難と考えられる。したがって、オペレータは一命令に閉じたものとして処理されるべきエラーを発生させる目的でエラー発生指示を行っても、実際にはシステム全体に係るものとして処理されるエラーが生ずることが想定される。システム全体に係るものとして処理されるエラーが生ずると、場合によってはコンピュータのリセット、ＯＳ(Operating System)の再度立ち上げ等が必要となり、コンピュータの復帰に比較的長時間を要し、作業効率が低下する場合が想定される。
【００１７】
次に、第２の方法の場合について説明する。第２の方法では、所定の条件が満たされることを条件として、ＣＰＵの動作と同期させて命令実行部にエラーを発生させる。この場合、所定の条件が満たされたタイミングでエラーを発生させるが、所定の条件が満たされたタイミング以降にエラーを発生させることはできない。例えば、所定の条件が満たされたそのタイミングでエラーが発生しても特に問題無いが、所定条件が満たされたタイミングから所定の期間、例えば２クロックサイクル経過後にエラーが発生すると問題が生ずる場合を想定する。このような場合、所定の条件が満たされたタイミングでエラーを発生させることによっては、エラー発生の結果生じる可能性のある問題を発見できない。
【００１８】
本発明の実施例によれば、命令実行部において所定の条件が満たされたと判断され、かつ、所定条件が満たされた時点から更にある時間が経過したタイミングにおいても、命令実行部にエラーを発生させることができる。その結果、確実に一命令に閉じたものとして扱われるエラーを発生させることができるとともに、所定の条件が満たされた状態で様々なタイミングで、ＣＰＵの動作と非同期にエラーを発生させることができる。その結果、エラー発生時のシステムの動作の検証を効率的かつ効果的に行える。
【００１９】
図４は実施例による、演算処理装置としてのＣＰＵ５０と、記憶装置(SU: Storage Unit)２００とを含む、情報処理装置としてのコンピュータのブロック図である。図４に示す如く、記憶装置２００は、命令実行部（EXU: EXecution Unit））２１０と、エラー発生指示回路としてのエラー発生指示部（EGU: Error Generation Unit）２２０とを有する。命令実行部２１０は、命令の実行の状況をエラー発生指示部２２０に通知する命令状況通知回路２１１を有する。命令実行部２１０はＣＰＵ５０から命令の実行指示を受け、指示された命令を実行し、実行した命令の完了報告をＣＰＵ５０に対し行う。エラー発生指示部２２０はオペレータからエラー設定指示を受け、命令実行部２１０に対しエラー発生指示を行う。命令実行部２１０は、エラー発生指示部２２０からのエラー発生指示を受けると指示されたエラーを発生し、エラー発生をＣＰＵ５０に報告する。ＣＰＵ５０は命令実行部２１０からエラー発生の報告を受けると、エラー発生報告のタイミングに応じ、一命令に閉じたエラーとして、あるいはシステム全体のエラーとしてエラーを処理する。
【００２０】
図５とともに、図４に示される記憶装置２００の動作例につき説明する。ＣＰＵ５０から記憶装置２００に対して、命令Ａの実行指示が行われる（ステップＳ２１）。命令Ａの実行指示を受け、記憶装置２００の命令実行部２１０は命令Ａの実行を開始する（ステップＳ２２）。ここで、命令Ａが記憶装置２００に対するデータの書き込み指示であるものとする。命令実行部２１０は、命令Ａの実行過程の前半を終了すると、命令Ａの完了報告をＣＰＵ５０に対し行う（ステップＳ２３）。命令実行部からの完了報告を受けて、ＣＰＵ５０は命令Ｂの実行指示を命令実行部２１０に対し行う（ステップＳ２５）。ここで、命令Ｂも命令Ａ同様、記憶装置２００に対するデータの書き込み指示であるものとする。一方、命令実行部２１０は、ＣＰＵ５０への命令Ａの完了報告（ステップＳ２３）後、引き続き命令Ａの実行過程の後半を実行する。
命令実行部２１０は、命令Ａが完了すると（ステップＳ２６）、命令Ｂの実行過程の前半の実行を開始する（ステップＳ２７）。命令実行部２１０は命令Ｂの実行過程の前半を終了すると、ＣＰＵ５０に対し命令Ｂの完了報告を行う（ステップＳ２９）。命令実行部２１０は命令Ｂの完了報告（ステップＳ２９）後、引き続き命令Ｂの実行過程の後半を実行し、命令Ｂの処理を終了する（ステップＳ３０）。
【００２１】
ここで、オペレータが記憶装置２００の命令発生指示部２２０に対し、一命令に閉じたものとして扱われるべきエラーを発生させる目的で、エラー設定指示を入力したとする（ステップＳ２４）。図５の例では、エラー設定指示のタイミング（ステップＳ２４）は、命令実行部２１０が命令Ａの後半を実行中のタイミングである。上記の如く、このタイミングでは既に命令実行部２１０は命令Ａの完了報告をＣＰＵ５０に対し行っている（ステップＳ２３）。したがって、仮にＳ２４のタイミングでエラー発生指示部２２０が命令実行部２１０にエラー発生指示を行ったとしても、システム全体に係る重大なエラーとしてエラーが処理されるエラーが生じてしまい、望ましくない。実施例はこのような事態を防止する機能を有する。
【００２２】
図４に示すように、エラー発生指示部２２０は、命令実行部２１０の命令状況通知回路２１１からFIRST信号及びSECOND信号を受信する。そしてこれらのFIRST信号とSECOND信号とに基づいて、命令実行部２１０が所定の条件を満たすか否かをエラー発生指示部２２０が判定する。ここでFIRST信号は命令実行部２１０がある命令の実行過程の前半を実行中であることを示し、SECOND信号は命令実行部２１０がある命令の実行過程の後半を実行中であることを示す。
【００２３】
図６は、命令状況通知回路２１１の回路例を示す。図６の命令状況通知回路２１１は、ＲＳ（Reset Set）フリップフロップ回路ＦＦ１，ＦＦ２（以下単に夫々フリップフロップ回路ＦＦ１，ＦＦ２と称する）を有する。フリップフロップ回路ＦＦ１はFIRST信号を出力し、フリップフロップ回路ＦＦ２はSECOND信号を出力する。フリップフロップ回路ＦＦ１のセット端子Ｓには、命令実行部２１０が命令の実行を開始した際、つまり上記ステップＳ２２あるいはＳ２７のタイミングでアサートされる信号が入力する。信号のアサートとは信号をＨ（ハイ）レベルにすることを言い、信号のネゲートとは信号をＬ（ロー）レベルにすることを言う。又、Ｈレベルは"１"を示し、Ｌレベルは"０"を示すものとする。フリップフロップ回路ＦＦ１のリセット端子Ｒには、命令実行部２１０がＣＰＵ５０に対し完了報告を行った際、つまりステップＳ２３またはＳ２９のタイミングでアサートされる信号が入力する。フリップフロップ回路ＦＦ２のセット端子Ｓにも同様に、命令実行部２１０がＣＰＵ５０に対し完了報告を行った際にアサートされる信号が入力する。フリップフロップ回路ＦＦ２のリセット端子Ｒには、命令実行部２１０が命令の実行を終了した際、つまりステップＳ２６またはＳ３０のタイミングでアサートされる信号が入力する。
【００２４】
以下に図６の命令状況通知回路２１１の動作につき説明する。当初フリップフロップ回路ＦＦ１は、命令実行部２１０が直近に実行した命令の完了報告を行った時点でリセットされており、FIRST信号はネゲートされている。その後フリップフロップ回路ＦＦ１は、命令実行部による命令実行の開始に応じて（Ｓ２２，Ｓ２７）セットされ、FIRST信号をアサートする。次に、命令実行部２１０が実行中の命令の完了報告をＣＰＵに行うと（ステップＳ２３，Ｓ２９）、フリップフロップ回路ＦＦ１はFIRST信号をネゲートする。したがってFIRST信号は、命令実行部２１０が命令の実行過程の前半を実行中アサートされており、命令の実行過程の後半を実行中ネゲートされ、命令実行部２１０が命令を実行していない間もネゲートされている。
【００２５】
一方、当初フリップフロップ回路ＦＦ２は、命令実行部２１０が直近に実行した命令の実行を完了した時点でリセットされており、SECOND信号はネゲートされている。その後、命令実行部２１０が命令の完了報告を行うと（ステップＳ２３，Ｓ２９）、フリップフロップ回路ＦＦ２はセットされ、SECOND信号をアサートする。したがってSECOND信号は、命令実行部２１０が命令の実行過程の前半を実行中はネゲートされており、命令の実行過程の後半を実行中はアサートされており、命令実行部２１０が命令を実行していない間ネゲートされている。
【００２６】
したがって、FIRST信号がアサートされており（"１"）、SECOND信号がネゲートされている（"０"）ことを検出することにより、エラー発生指示部２２０は命令実行部２１０が命令の実行過程の前半を実行中であることを検出できる。すなわちFIRST信号が"１"、SECOND信号が "０"である場合には、命令実行部２１０が命令の実行過程の前半を実行中であることを示し、それ以外の場合には、命令実行部２１０が命令の実行過程の前半を実行中ではないことを示す。
逆に、FIRST信号がネゲートされており（"０"）、SECOND信号がアサートされている（"１"）ことを検出することにより、エラー発生指示部２２０は命令実行部２１０が命令の実行過程の後半を実行中であることを検出できる。すなわちFIRST信号が "０"、SECOND信号が "１"である場合には、命令実行部２１０が命令の実行過程の後半を実行中であり、それ以外の場合には、命令実行部２１０が命令の実行過程の後半を実行中ではないことを示す。
【００２７】
図７は、図４に示すエラー発生指示部２２０の動作の流れの一例を示すフローチャートである。ステップＳ４１でオペレータからエラー設定指示が入力されると、処理をステップＳ４２に移行する。ステップＳ４２でエラー発生指示部２２０は、命令実行部２１０の命令状況通知回路２１１からのFIRST信号が "１"、且つSECOND信号が "０"であるか否かを判定する。FIRST信号が"１"でSECOND信号が"０"である場合（Ｓ４２のＹＥＳ）、すなわち命令実行部２１０が命令前半を実行中でありエラー発生の条件を満たすとき、エラー発生指示部２２０は命令実行部２１０に対しエラー発生指示を出力する（ステップＳ４４）。命令実行部２１０は、エラー発生指示部からエラー発生指示を受けると（図５参照）、現在実行中の命令Ｂに係るエラーを発生し、その後は発生したエラーに応じた動作を実行する。そして命令実行部２１０は命令Ｂに対する報告として、発生したエラーをＣＰＵ５０に報告する。
他方、FIRST信号が"１"ではなく、SECOND信号が"０"ではない場合（Ｓ４２のＮＯ）、すなわち命令実行部２１０が命令の実行過程の前半を実行中ではなくエラー発生の条件を満たさないとき、エラー発生指示部はステップＳ４３に処理を移行する。ステップＳ４３でエラー発生指示部２２０は、一定時間の待ち合わせを行い、待ち合わせ期間が終了すると、再びステップＳ４２に処理を移行して、命令実行部２１０が命令の実行過程の前半を実行中か否かの判定を、命令実行部２１０が命令の実行過程の前半を実行中と判定できるまで繰り返す。
【００２８】
このようにエラー発生指示部２２０は、オペレータが一命令に閉じたエラーとして処理することができるエラーを発生させる目的でエラー設定指示を入力した場合、以下の動作を行う。すなわちエラー設定指示入力の時点で命令実行部２１０が命令の実行過程の前半を実行中であれば、その時点で命令実行部２１０にエラー発生指示を出力する。他方、エラー設定指示入力の時点で命令実行部２１０が命令の実行過程の前半を実行中でなければ、命令実行部２１０が命令の実行過程の前半を実行中と判定できるまで一定時間待ち合わせ、一定時間の経過後に判定を繰り返す。すなわち一定時間の待ち合わせ期間が終了するたびに、命令実行部２１０が命令の実行過程の前半を実行中か否かをエラー発生指示部２０は判定し、命令実行部２１０が命令の実行過程の前半を実行中であれば命令実行部２１０にエラー発生指示を出力する。
【００２９】
したがって、エラー発生指示部２２０はオペレータが一命令に閉じたエラーとして処理することができるエラーを発生させる目的でエラー設定指示を入力した場合、命令実行部２１０が命令の実行過程の前半を実行中と判定できる場合にのみエラー発生指示を命令実行部２１０に出力する。したがって、エラー発生指示部２２０は、オペレータがエラー設定指示をエラー発生指示部２２０に入力するタイミングにかかわらず、常に一命令に閉じたエラーとして処理することができるエラーを命令実行部２１０に発生させることができる。
【００３０】
又、エラー発生指示部２２０は上記の如く、命令実行部２１０が命令の実行過程の前半を実行中にオペレータからエラー設定指示が入力されれば、その時点でエラー発生指示を命令実行部２１０に出力する。他方、それ以外の場合、一定時間の待ち合わせ期間の終了ごとにエラー発生条件の判定を行い（ステップＳ４２）、エラー発生条件が満たされれば（Ｓ４２のＹＥＳ）、エラー発生指示を命令実行部２１０に出力する。したがって、エラー発生指示部２２０は必ずしも命令実行部２１０が命令の実行過程の前半の実行を開始したタイミングでエラー発生指示を出力するのではない。すなわち、エラー発生指示部２２０は結果的に、オペレータがエラー設定指示を入力するタイミングに応じ、命令実行部２１０が命令前半を実行する過程における様々なタイミングでエラー発生指示を出力する。エラー発生指示部２２０は、ＣＰＵ５０の動作とは非同期に命令実行部２１０にエラー発生指示を行うことができる。したがって様々な条件において、命令実行部２１０中のエラー発生時のコンピュータのシステムの動作を検証することができる。すなわち、エラー発生条件が満たされるようになったタイミングとは異なるタイミングでエラーを発生した場合にのみ問題が生ずるような場合であっても、問題を発見することができる可能性がある。
【００３１】
尚、エラー発生指示部２２０は、システム全体に係る重大なエラーとして処理されるエラーを発生させる目的のエラー設定指示をオペレータが入力した場合には、図７のステップＳ４２で、FIRST信号が "０"、SECOND信号が "１"か否か、つまり当該エラー発生条件を満たすか否かを判定するように動作する。他の動作は上述した図７の動作と同様である。図８は、図４に示すＣＰＵ５０の構成例を示すブロック図である。図８に示す如く、ＣＰＵ５０は命令制御部５１，主記憶制御部５２及び内部演算実行部５３を有する。命令制御部５１は、主記憶制御部５２を介し主記憶（メモリ、図８では図示を省略）から命令を読み込み、命令の実行を開始する。命令は、命令制御部５１内のレジスタの読み書き、主記憶の読み書き、内部演算の実行、及び記憶装置２００の読み書きの各種命令を含む。記憶装置２００の読み書きを行う場合、図４とともに上述の如く、ＣＰＵ５０の命令制御部５１は、記憶装置２００に対し命令の実行指示を行い（ステップＳ２１，Ｓ２５），記憶装置２００から命令の完了報告を受け取る（ステップＳ２３，Ｓ２９）。
【００３２】
例えば、ＣＰＵ５０が主記憶から読み出したデータを記憶装置２００に格納する命令の場合、ＣＰＵ５０は主記憶から読み出したデータを記憶装置２００に送信する。そしてＣＰＵ５０はデータ全ての記憶装置２００への送信完了後、記憶装置２００から命令実行の完了報告を受けることにより、命令の実行を完了し、次の命令の実行を開始する。このように、記憶装置２００がＣＰＵ５０からデータを全て受信した時点でＣＰＵに完了報告を行うことにより、早い段階でのＣＰＵ５０による次の命令の実行を可能とし、コンピュータのシステムの動作の高速化を図ることができる。
【００３３】
又、命令制御部５１は内部演算実行部５３に対し内部演算実行指示を行い、内部演算実行部５３から対応する内部演算完了報告を受ける。
【００３４】
図９は、図４に示す命令実行部２１０の構成を示すブロック図である。図９に示す如く、命令実行部２１０は、大容量記憶制御部２１２と、一時バッファ部２１３と、エラー挿入部２１４と、大容量記憶２１５とを有する。又、命令実行部２１０は、図９では図示を省略しているが、上記の如く、命令状況通知回路２１１を含む（図４参照）。
【００３５】
図１０，図１１は、図９に示す命令実行部２１０の動作を説明するタイムチャートである。以下に図９，図１０，図１１とともに、命令実行部２１０の各要素の基本的な動作及び具体的な動作例について説明する。ＣＰＵ５０からの命令は一時バッファ部２１３に一時的に格納される。大容量記憶制御部２１２が使用可能な状態である場合、一時バッファ部２１３は大容量記憶制御部２１２に命令実行の開始を指示する（ステップＳ２２Ａ，Ｓ２７Ａ）。命令は、大容量記憶２１５からの情報読み出し及び大容量記憶２１５に対する情報書き込みを含む。
【００３６】
図１０は、ＣＰＵ５０からの命令Ａ，命令Ｂが、大容量記憶２１５からの情報読み出し命令である場合の動作例を示す。この場合、一時バッファ部２１３がＣＰＵ５０から命令Ａの実行指示を受け（ステップＳ２１），大容量記憶制御部２１２が大容量記憶２１５へ読み出しの指示を送る（ステップＳ２２Ｂ）。大容量記憶２１５は大容量記憶制御部からの読み出しの指示に応じてデータの読み出しを行い、読み出したデータを一時バッファ部２１３へ送る。大容量記憶２１５はデータの読み出しを完了する（ステップＳ２６）と、読み出し完了報告を大容量記憶制御部２１２へ送る（ステップＳ２６Ａ）。大容量記憶制御部２１２は読み出し完了報告を受けて、一時バッファ部２１３に対し、完了報告を行う（ステップＳ２６Ｂ）。一時バッファ部２１３は大容量記憶制御部からの完了報告を受け、ＣＰＵ５０に対し完了報告を行う（ステップＳ２３）。
【００３７】
ＣＰＵ５０は一次バッファ部２１３からの完了報告を受け、次の命令Ｂの実行指示を命令実行部２１０に送る。一時バッファ部２１３はＣＰＵ５０から命令Ｂの実行指示を受け（ステップＳ２５），大容量記憶制御部２１２が大容量記憶２１５へ読み出しの指示を送る（ステップＳ２７Ｂ）。大容量記憶２１５は大容量記憶制御部２１２からの読み出しの指示に応じてデータの読み出しを行い、読み出したデータを一時バッファ部２１３へ送る。大容量記憶２１５はデータの読み出しを完了する（ステップＳ３０）と、読み出し完了報告を大容量記憶制御部２１２へ送る（ステップＳ３０Ａ）。大容量記憶制御部２１２は大容量記憶２１５からの読み出し完了報告を受けて、一時バッファ部２１３に対し、完了報告を行う（ステップＳ３０Ｂ）。一時バッファ部２１３は大容量記憶制御部からの完了報告を受け、ＣＰＵ５０に対し完了報告を行う（ステップＳ２９）。
【００３８】
このように、ＣＰＵ５０からの命令が大容量記憶２１５からの読み出し命令である場合、命令実行部２１０において読み出し命令の実行が完了した時点で（ステップＳ２６，Ｓ３０）、ＣＰＵ５０に対し完了報告が行われる（ステップＳ２３，Ｓ２９）。すなわちこの場合、命令の実行過程において、命令実行部２１０がＣＰＵ５０に対し完了報告を行う時点（ステップＳ２３，Ｓ２９）と、命令実行部２１０において実際に命令の実行が完了する時点（ステップＳ２６，Ｓ３０）とが一致している。
【００３９】
図１１は、ＣＰＵ５０からの命令Ａ，命令Ｂが、大容量記憶２１５に対する書込命令である場合の動作例を示す。尚、この場合、一時バッファ部２１３がＣＰＵ５０からの書き込みデータの受信を完了するのに要する時間に比し、大容量記憶２１５に書き込みデータを書き込むのに要する時間の方が長いものとする。
【００４０】
一時バッファ部２１３がＣＰＵ５０から命令Ａの実行指示を受け（ステップＳ２１），大容量記憶制御部２１２に書き込み指示を出す（ステップＳ２２Ａ）。大容量記憶制御部２１２は書き込み指示を受け、大容量記憶２１５に対し書き込み指示を送る（ステップＳ２２Ｂ）。大容量記憶２１５は大容量記憶制御部２１２からの書き込み指示に応じ、ＣＰＵ５０から一時バッファ部２１３及びエラー挿入部２１４を経由して受信する書き込みデータを書き込む。又、この場合、一時バッファ部２１３は、ＣＰＵ５０からの命令Ａに係る書き込みデータの受信を完了した時点で、ＣＰＵ５０に対し完了報告を行う（ステップＳ２３）。ＣＰＵ５０は一時バッファ部２１３からの完了報告を受け、命令Ｂの実行指示を一時バッファ部２１３に出す（ステップＳ２５）。一時バッファ部２１３は命令Ｂの実行指示を受けるが、この場合大容量記憶制御部２１２から未だ命令Ａの完了報告を受信していないため、一次バッファ部は大容量記憶制御部２１２に対する命令Ｂの実行指示を出さない。
【００４１】
大容量記憶２１５は一時バッファ部２１３がＣＰＵ５０への完了報告（ステップＳ２３）を行った後も書き込みデータの書き込みを継続し、書き込みが完了する（ステップＳ２６）と大容量記憶制御部２１２に書き込み完了報告を行う（ステップＳ２６Ａ）。大容量記憶制御部２１２は大容量記憶からの書き込み完了報告を受け、一時バッファ部２１３に対し完了報告を行う（ステップＳ２６Ｂ）。一時バッファ部２１３は大容量記憶制御部２１２からの完了報告を受け、命令Ｂの実行指示を大容量記憶制御部２１２へ出す（ステップＳ２７Ａ）。
【００４２】
大容量記憶制御部２１２は命令Ｂの実行指示を受け、大容量記憶２１５に対し書き込み指示を行う（ステップＳ２７Ｂ）。大容量記憶２１５は大容量記憶制御部２１２からの書き込み指示に応じ、ＣＰＵ５０から一時バッファ部２１３及びエラー挿入部２１４を経由して受信する書き込みデータを書き込む。一時バッファ部２１３は上記同様、ＣＰＵ５０からの命令Ｂに係る書き込みデータの受信を完了した時点で、ＣＰＵ５０に対し完了報告を行う（ステップＳ２９）。大容量記憶２１５は、書き込みデータの書き込みを完了する（ステップＳ３０）と大容量記憶制御部２１２に完了報告を行う（ステップＳ３０Ａ）。大容量記憶制御部２１２は大容量記憶２１５からの書き込み完了報告を受け、一時バッファ部２１３に対し完了報告を行う（ステップＳ３０Ｂ）。
【００４３】
図１１の場合、このように、比較的短時間で済む一時バッファ部２１３による書き込みデータの受信の完了の時点で一次バッファ部からＣＰＵ５０に対し完了報告を行うことにより、ＣＰＵ５０は早い段階で命令を完了することができる。すなわち図１１中、仮に大容量記憶２１５が書き込みを完了した時点でＣＰＵ５０へ完了報告を行うとした場合には、ＣＰＵ５０は一次バッファ部からの完了報告を受けるまで命令を完了できず、次の命令の実行を開始できない。これに対し、上記の如く一時バッファ部２１３が書き込みデータの受信を完了した時点でＣＰＵ５０に完了報告を行うことにより、ＣＰＵ５０は、より早い段階で命令を完了でき、次の命令の実行を開始できるようになる。その結果、コンピュータのシステムの動作の高速化を図ることができる。
【００４４】
次に図９に示すエラー挿入部２１４の動作について説明する。エラー挿入部２１４は、エラー発生指示部２２０からエラー発生指示（ステップＳ２８）を受信すると、一時バッファ部２１３から大容量記憶２１５へ送られる書き込みデータを壊すことによって書き込みデータをエラーデータに変換する。例えば、書き込みデータに１ビットエラーを訂正し２ビットエラーを検出する機能を有するＥＣＣ（Error Correction Code）が設定され、大容量記憶２１５がＥＣＣを使用して書き込みデータのエラーを検出し訂正する機能を有するものとする。このような場合、エラー挿入部２１４には、例えば書き込みデータに含まれる２ビットを反転することによって書き込みデータをエラーデータに変換する排他的論理和回路を設けることができる。この場合、エラー挿入部２１４で２ビットが反転されエラーデータに変換された書き込みデータが大容量記憶２１５に送られると、大容量記憶２１５はＥＣＣによってエラーを検出する。この場合、２ビットエラーを検出することはできるが訂正することはできない。そして大容量記憶２１５は大容量記憶制御部２１２にエラーを検出した旨を報告する。大容量記憶制御部２１２は一時バッファ部２１３を介し、エラーを検出した旨を書き込み命令に対する報告としてＣＰＵ５０に報告する。コンピュータのシステムは大容量記憶制御部２１２からのエラーを検出した旨の報告を受け、所定の動作を行う。すなわちエラーが一命令に係るエラーとして処理することができるエラーの場合、例えばエラーを検出した旨を内部レジスタに記録し、更にオペレータに対しエラーを検出した旨を表示出力する。オペレータはコンピュータのシステムのこのような動作を検証することにより、コンピュータのシステムがエラー発生時の動作を正常に実行することを検証することができる。
【００４５】
図１２は、図４に示すエラー発生指示部２２０の回路構成例を示す。図１２に示す回路構成例の場合、エラー発生指示部２２０は、２ビットのＤ（ディレイ）−フリップフロップ回路ＦＦ１１（以下単にフリップフロップ回路ＦＦ１１と称する）、及び２ビットのＤ−フリップフロップ回路ＦＦ１２（以下単にフリップフロップ回路ＦＦ１２と称する）を有する。エラー発生指示部２２０は更に、２ビットのＤ−フリップフロップ回路ＦＦ１３（以下単にフリップフロップ回路ＦＦ１３と称する）、及び１ビットのＤ−フリップフロップ回路ＦＦ１４（以下単にフリップフロップ回路ＦＦ１４と称する）を有する。フリップフロップ回路ＦＦ１１には、FIRST信号とSECOND信号とのうち、両方の信号をチェックするか、何れか一方の信号のみをチェックするかを指定するためのTIMING_MASK<1:0>（２ビット）信号が入力する。両方の信号をチェックする場合、フリップフロップ回路ＦＦ１１には（１，１）の信号が入力し、何れか一方の信号のみをチェックする場合、フリップフロップ回路ＦＦ１１には（１，０）あるいは（０，１）の信号が入力する。
【００４６】
フリップフロップ回路ＦＦ１２には、FIRST信号及びSECOND信号が２ビットのSTATUS<1:0>信号として入力する。両方の信号が"１"の場合フリップフロップ回路ＦＦ１２には信号（１，１）が入力し、一方が"１"の場合、フリップフロップ回路ＦＦ１２には（１，０）あるいは（０，１）の信号が入力する。
【００４７】
フリップフロップ回路ＦＦ１３には、FIRST信号及びSECOND信号がどのような値の場合にエラー発生指示を行うか（エラー発生条件）を指定する２ビットのTIMING_COND<1:0>信号が入力する。図７のステップＳ４２に示す如く、FIRST信号、SECOND信号が夫々（１，０）の場合、つまり命令の実行過程の前半を実行中にエラー発生指示を出す場合には、フリップフロップ回路ＦＦ１３に（１，０）の信号が入力する。
【００４８】
フリップフロップ回路ＦＦ１４には、エラー発生を許可する信号EG_ENABLEが入力する。エラー発生を許可する場合、"１"の信号が入力する。
【００４９】
又、フリップフロップ回路ＦＦ１１、ＦＦ１３、ＦＦ１４の夫々のクロック端子には、図４のエラー設定指示（Ｓ２４）を示すSET_EG信号が入力する。オペレータがエラー設定指示（Ｓ２４）を行った場合、各フリップフロップＦＦ１１、ＦＦ１３、ＦＦ１４のクロック端子には"１"の信号が入力する。したがってフリップフロップ回路ＦＦ１１、ＦＦ１３、ＦＦ１４の各々は、SET_EG信号が"１"となった際に入力信号の値を取り込み、以降、当該取り込んだ値を保持して出力する。
【００５０】
エラー発生指示部２２０は更に、フリップフロップ回路ＦＦ１２、ＦＦ１３の出力を入力とするエラー発生条件判定部としての排他的論理和回路Ｅ１１を有する。排他的論理和回路Ｅ１１は、フリップフロップ回路ＦＦ１２、ＦＦ１３の夫々２ビットの出力値が、ビットごとに両フリップフロップ回路間で一致する場合に"０"を出力し、不一致の場合に"１"を出力する。したがって排他論理和回路Ｅ１１は、FIRST信号、SECOND信号の値が夫々TIMING_COND<1:0>信号で指定される値と夫々一致する場合に（０，０）を出力する。それ以外の場合、排他的論理和回路Ｅ１１は（１，０）(SECOND信号についてのみ一致)、（０．１）(FIRST信号についてのみ一致)あるいは（１，１）(両信号とも不一致)を出力する。
【００５１】
エラー発生指示部２２０は更に、AND回路Ａ１１を有する。AND回路Ａ１１は、フリップフロップ回路ＦＦ１１が出力するTIMING_MASK<1:0>信号が（１，１）の場合、排他的論理和回路Ｅ１１の２ビット出力値の２ビットをそのまま出力する。他方、フリップフロップ回路ＦＦ１１が出力するTIMING_MASK<1:0>信号が（１，０）の場合、ＡＮＤ回路Ａ１１は排他的論理和回路Ｅ１１の１番目の出力値をそのまま出力し、排他的論理和回路Ｅ１１の２番目の出力値に対して元の値と無関係に"０"を出力する。同様にフリップフロップ回路ＦＦ１１が出力するTIMING_MASK<1:0>信号が（０，１）の場合、ＡＮＤ回路Ａ１１は排他的論理和回路Ｅ１１の１番目の出力値に対して元の値と無関係に"０"を出力し、排他的論理和回路Ｅ１１の２番目の出力値をそのまま出力する。上記の如く、排他的論理和回路Ｅ１１はFIRST信号、SECOND信号の値が夫々TIMING_COND<1:0>信号で指定される条件と一致する場合に（０，０）を出力する。したがってフリップフロップ回路ＦＦ１１が出力するTIMING_MASK<1:0>信号が（１，１）の場合、上記条件が満たされればAND回路Ａ１１は（０，０）を出力し、そうでなければ（１，０）、（０．１）あるいは（１，１）を出力する。
【００５２】
図１２のエラー発生指示部２２０は更に、全ビット論理０検出回路Ｄ１１を有する。全ビット論理０検出回路Ｄ１１は、AND回路Ａ１１の出力が（０，０）の場合に"１"を出力し、それ以外の場合に"０"を出力する。したがって全ビット論理０検出回路Ｄ１１は、FIRST信号、SECOND信号の値が夫々TIMING_COND<1:0>で指定される条件を満たす場合に"１"を出力し、それ以外の場合"０"を出力する。
【００５３】
図１２のエラー発生指示部２２０は更に、ＡＮＤ回路Ａ１２を有する。ＡＮＤ回路Ａ１２は、全ビット論理０検出回路Ｄ１１の出力、フリップフロップ回路ＦＦ１４の出力及び後述するCHECK_EG信号を入力し、後述するEXECUTE_EG信号を出力する。CHECK_EG信号は後述する図１３のタイマ回路の出力であり、FIRST信号、SECOND信号が条件を満たすか否かを判定するタイミングを指定する信号である。EXECUTE_EG信号は、エラー発生指示部２２０が命令実行回路２１０に出力するエラー発生指示（Ｓ２８）を示す信号である。ＡＮＤ回路Ａ１２は、全ビット論理０検出回路Ｄ１１の出力が"１"であり、フリップフロップ回路ＦＦ１４の出力が"１"であり、CHECK_EG信号が"１"の場合に"１"（EXECUTE_EG＝１）を出力する。それ以外の場合にはＡＮＤ回路Ａ１２は"０" （EXECUTE_EG＝０）を出力する。したがって、オペレータからエラー設定指示がなされ（Ｓ２４）、上記条件を判定するタイミングが到来し（CHECK_EG＝１）、かつ上記条件が満たされた際に、EXECUTE_EG信号がアサートされエラー発生指示がなされる（Ｓ２８）。図１２のエラー発生指示部２２０において、ＡＮＤ回路Ａ１１，Ａ１２、及び全ビット論理０検出回路Ｄ１１は、エラー発生指示出力部に対応する。
【００５４】
次に図１３とともに判定指示部としてのタイマ回路の構成例につき説明する。図１３の構成例において、タイマ回路は、SET_EG信号と後述するＤ−フリップフロップ回路ＦＦ２１の出力値とを入力とするＯＲ回路Ｏ２１を有する。タイマ回路は更に、ＯＲ回路Ｏ２１の出力とEXECUTE_EG信号の反転信号とを入力とするＡＮＤ回路Ａ２１を有する。タイマ回路は更に、ＡＮＤ回路Ａ２１の出力を保持しEG_COUNTER_V信号として出力するＤ−フリップフロップ回路ＦＦ２１（以下単にフリップフロップ回路ＦＦ２１と称する）を有する。タイマ回路は更に、フリップフロップ回路ＦＦ２１の出力EG_COUNTER_V信号と後述するカウンタ０検出回路Ｄ２１の出力とを入力とし、CHECK_EG信号を出力するＡＮＤ回路２３を有する。ＡＮＤ回路Ａ２３は、EG_COUNTER_V信号が"１"である間、カウンタ０検出回路Ｄ２１の出力が"１"となるたび、CHECK_EG＝１を出力する。
【００５５】
タイマ回路は更に、SET_EG信号及びEXECUTE_EG信号を入力するＮＯＲ回路Ｎ２１と、ＮＯＲ回路Ｎ２１の出力と後述する加算回路ＡＤ２１の出力とを入力するｎ＋１ビットのＡＮＤ回路Ａ２２とを有する。ＡＮＤ回路Ａ２２の出力のｎ＋１ビットは、ビットごとに、加算回路ＡＤ２１の出力のｎ＋１ビットとＮＯＲ回路Ｎ２１の出力のｎ＋１ビットとの双方が"１"の場合 "１"となり、加算回路ＡＤ２１の出力のｎ＋１ビットとＮＯＲ回路Ｎ２１の出力のｎ＋１ビットとの少なくとも一方が"０"の場合に夫々"０"となる。したがってＮＯＲ回路Ｎ２１の出力が"０"になると、ＡＮＤ回路Ａ２２の出力のｎ＋１ビットは全て"０"となる（リセットされる）。
【００５６】
タイマ回路は更に、ＡＮＤ回路Ａ２２の出力を保持し、ｎ＋１ビットの計数値EG_COUNTER<n:0>として出力するｎ＋１ビットのＤ−フリップフロップ回路ＦＦ２２（以下単にフリップフロップ回路ＦＦ２２と称する）を有する。尚、計数値EG_COUNTER<n:0>の全ビットが"１"となった後に更に加算がなされ計数値が２ｎ＋１になると、自動的に全ビットが"０"にリセットされる、いわゆるラップアラウンド機能がタイマ回路に設けられている。
タイマ回路は更に、コンピュータのクロック周期ごとにフリップフロップ回路ＦＦ２２の出力値に"１"を加算する加算回路ＡＤ２１を有する。加算回路ＡＤ２１は、クロック周期を計数する機能をなす。タイマ回路は更に、フリップフロップ回路ＦＦ２２の出力（計数値）の全ビットが"０"、すなわち出力値が"０"であることを検出するカウンタ０検出回路Ｄ２１を有する。
【００５７】
図１３のタイマ回路中、ＮＯＲ回路Ｎ２１，ＡＮＤ回路Ａ２２，フリップフロップ回路ＦＦ２２、及び加算回路ＡＤ２１は、計数部に対応する。又、ＯＲ回路Ｏ２１，ＡＮＤ回路Ａ２１、及びフリップフロップ回路ＦＦ２１は、出力ゲート部に対応する。又、カウンタ０検出回路Ｄ２１及びＡＮＤ回路Ａ２３は、指示出力部に対応する。
【００５８】
次にタイマ回路の動作を説明する。ＯＲ回路Ｏ２１は、SET_EG信号が"１"であるか、あるいはフリップフロップ回路ＦＦ２１の出力（EG_COUNTER_V信号）が"１"であれば"１"を出力する。ＡＮＤ回路２１は、ＯＲ回路Ｏ２１の出力が"１"であり、かつEXECUTE_EG信号が"０"であれば"１"を出力する。よって、オペレータのエラー設定指示によりSET_EG信号がアサートされると、ＯＲ回路Ｏ２１が"１"を出力する。この時点でEXECUTE_EG信号は未だアサートされていない（"０"）。したがってＡＮＤ回路Ａ２１は"１"を出力し、フリップフロップ回路ＦＦ２１が "１"を保持し（EG_COUNTER_V＝１）、EG_COUNTER_V＝１がＯＲ回路Ｏ２１に入力する。したがってＯＲ回路Ｏ２１はSET_EG信号がネゲートされても"１"を出力し続け、以降、EXECUTE_EG信号がアサートされるまでＡＮＤ回路Ａ２１は"１"を出力する。その結果、フリップフロップ回路ＦＦ２１の出力値であるEG_COUNTER_V信号は以降、"EXECUTE_EG信号がアサートされるまで"１"を保持する（後述する図１４参照）。その間、ＡＮＤ回路Ａ２３にはEG_COUNTER_V＝１が入力し、カウンタ０検出回路Ｄ２１の出力が"１"となるたびに、CHECK_EG信号＝１を出力する。
【００５９】
又、タイマ回路において、ＮＯＲ回路Ｎ２１は、SET_EG信号及びEXECUTE_EG信号のいずれも"０"の場合に"１"を出力し、少なくとも何れかが"１"の場合には"０"を出力する。上記の如く、ＮＯＲ回路Ｎ２１が"０"を出力すると、ＡＮＤ回路Ａ２２の出力のｎ＋１ビットは全て"０"にリセットされる。ＡＮＤ回路Ａ２２の出力のｎ＋１ビットの全て"０"にリセットされると、フリップフロップ回路ＦＦ２２を介し、計数値EG_COUNTER<n:0>がゼロにリセットされ、計数値EG_COUNTER<n:0>のゼロリセットがカウンタ０検出回路Ｄ２１に検出される。その結果、EG_COUNTER_V信号が"１"であることを条件として、ＡＮＤ回路Ａ２３はCHECK_EG=1を出力する。
【００６０】
このように、SET_EG=1あるいはEXECUTE_EG=1により、ＮＯＲ回路Ｎ２１及びＡＮＤ回路Ａ２２によって、計数値EG_COUNTER<n:0>がゼロにリセットされる。したがって計数値EG_COUNTER<n:0>はオペレータがエラー設定指示（Ｓ２４）を行うとSET_EG=1により一旦ゼロにリセットされ、以降、コンピュータのクロック周期の２ｎ＋１回ごとにラップアラウンド機能によりゼロにリセットされる。そして計数値EG_COUNTER<n:0>がゼロにリセットされるたびに、カウンタ０検出回路Ｄ２１がゼロリセットを検出し、EG_COUNTER_V=1を条件として、ＡＮＤ回路Ａ２３がCHECK_EG=1を出力する。
【００６１】
そしてこのようにしてＡＮＤ回路Ａ２３がCHECK_EG=1を出力するタイミングでエラー発生条件が満たされれば、図１２のAND回路Ａ１２はEXECUTE_EG=1を出力する。その結果、エラー設定指示部２２０は命令実行部２１０にエラー発生指示を出す。又、図１３のタイマ回路では、EXECUTE_EG＝１の信号により、ＡＮＤ回路Ａ２１の出力が"０"となり、フリップフロップ回路ＦＦ２１の出力EG_COUNTER_Vが"０"となり、ＡＮＤ回路Ａ２３の出力は"０"となる。その結果、以降、オペレータが再度エラー設定指示を行ってSET_EG信号が"１"となるまで、カウンタ０検出回路Ｄ２１の出力と無関係に、ＡＮＤ回路Ａ２３はCHECK_EG=0を出力し続ける。その結果、ＡＮＤ回路Ａ２３がCHECK_EG=0を出力し続ける間は、図１２のエラー発生指示部２２０はEXECUTE_EG=0を出力し、エラー発生指示を出さない。尚、以下の説明では便宜上、エラー発生条件を、図７のステップＳ４２の如く、FIRST信号、SECOND信号が（１，０）であること、すなわち命令実行部２１０が命令の実行過程の前半を実行中であることとする。
【００６２】
オペレータがエラー設定指示（Ｓ２４）を行うと、SET_EG=1の信号によってEG_COUNTER_V＝１となる。そして同時にＮＯＲ回路Ｎ２１の出力が"０"となり、ＡＮＤ回路Ａ２２のｎ＋１ビットは全て"０"となり、フリップフロップ回路ＦＦ２２を介し、計数値EG_COUNTER<n:0>=0となる（リセットされる）。計数値EG_COUNTER<n:0>のリセットがカウンタ０検出回路Ｄ２１で検出され、EG_COUNTER_V＝１と相まって、ＡＮＤ回路Ａ２３がCHECK_EG=1を出力する。したがって、オペレータがエラー設定指示を行った際、ＡＮＤ回路Ａ２３がCHECK_EG=1を出力し、その時点でFIRST信号、SECOND信号が（１，０）であれば、つまりエラー発生条件が満たされれば、図１２のAND回路Ａ１２はEXECUTE_EG=1を出力する。その結果、エラー設定指示部２２０は命令実行部２１０にエラー発生指示を出す。
【００６３】
他方、オペレータがエラー設定指示(SET_EG=1)を行い、ＡＮＤ回路Ａ２３がCHECK_EG=1を出力する。その時点でFIRST信号、SECOND信号が（１，０）でなかった場合、つまりエラー発生条件が満たされない場合、図１２のAND回路Ａ１２はEXECUTE_EG=1を出力しない。その結果、エラー設定指示部２２０は命令実行部２１０にエラー発生指示を出さない。この場合、EXECUTE_EG=1が出力されないため、ＡＮＤ回路Ａ２１は"１"を出力し続け、EG_COUNTER_V=1が維持される。又、SET_EG=1の結果ＮＯＲ回路Ｎ２１により計数値EG_COUNTER<n:0>がゼロにリセットされた後に、フリップフロップ回路ＦＦ２２と加算回路ＡＤ２１とによる計数が実行される。その結果上記の如く、クロック周期の２ｎ＋１回ごとに、計数値EG_COUNTER<n:0>がゼロにリセットされ、その都度、FIRST信号、SECOND信号の条件の判定が行われ、そこで条件が満たされれば、図１２のAND回路Ａ１２がEXECUTE_EG=1を出力する。その結果、エラー設定指示部２２０は命令実行部２１０にエラー発生指示を出す。
【００６４】
図１４は、図１２，図１３とともに説明したエラー発生指示部２２０の動作例を説明するタイムチャートである。尚、ここでは図１２とともに上述したTIMING_MASK<1:0>信号は（１，１）、TIMING_COND<1:0>信号は（１，０）、EG_ENABLE信号は"１"であるとする。図１４中、ＣＰＵ５０から命令Ａの実行指示が出されると（ステップＳ２１）、命令Ａの実行を開始する（図５参照）。その結果FIRST信号は"１"となり、SECOND信号は"０"のまま維持される。その後命令Ａの実行過程の前半が完了すると、記憶装置２００の命令実行部２１０はＣＰＵ５０に対し完了報告を行う（ステップＳ２３）。その時点でFIRST信号は"０"となり、SECOND信号は"１"となる。ＣＰＵ５０は完了報告を受け、命令Ｂの実行指示を行う（ステップＳ２５）。命令実行部２１０は命令Ｂの実行指示を受け、命令Ａの実行過程の後半が完了した後に命令Ｂの実行を開始する（ステップＳ２７、図５参照）。その結果、FIRST信号は"１"となり、SECOND信号は"０"となる。
【００６５】
ここで図１４に示される如く、命令Ａの完了報告（ステップＳ２３）がなされた後であって、命令Ｂの実行指示（ステップＳ２５）がなされる前に、オペレータからエラー設定指示（ステップＳ２４）が入力されたとする。その結果、SET_EG=1となり、図１３のタイマ回路ではEG_COUNTER_V=1となり、計数値EG_COUNTER<n:0>がゼロリセットされるため、ＡＮＤ回路２３はCHECK_EG=1を出力する。又、図１２のエラー発生指示部２２０のフリップフロップ回路ＦＦ１４の出力は"１"となる。よってＡＮＤ回路１２の３入力のうち、全ビット論理０検出回路Ｄ１１の出力以外の２入力が"１"となり、その結果全ビット論理０検出回路Ｄ１１の出力がそのままEXECUTE_EG信号として出力される。ここで、この時点でFIRST信号＝０，SECOND信号＝１であるため、排他的論理和回路Ｅ１１の出力は（１，１）となり、その結果ＡＮＤ回路Ａ１１の出力は（１，１）となり、全ビット論理０検出回路Ｄ１１の出力は"０"となる。その結果、ＡＮＤ回路Ａ１２はEXECUTE_EG=０を出力し、エラー発生指示部２２０からエラー発生指示は出されない。すなわちエラー発生条件が満たされず、この時点ではエラー発生指示は出されない。
【００６６】
その結果、図１３のタイマ回路の計数値EG_COUNTER<n:0>は一旦ゼロにリセットされた後、クロック周期ごとにインクリメントされる。すなわち一定時間（クロック周期の２ｎ＋１回分）の待ち合わせが実行される。又、EG_COUNTER_V信号も"１"が維持される。そして計数値EG_COUNTER<n:0>が２ｎ＋１に達すると、ラップアラウンド機能により計数値はゼロにリセットされ、ＡＮＤ回路２３がCHECK_EG=1を出力する。又、図１２のエラー発生指示部２２０のフリップフロップ回路ＦＦ１４の出力は"１"が維持されている。よってＡＮＤ回路１２の３入力のうち、全ビット論理０検出回路Ｄ１１の出力以外の２入力が"１"となり、ＡＮＤ回路１２は全ビット論理０検出回路Ｄ１１の出力をそのままEXECUTE_EG信号として出力する。よって、この時点でFIRST信号＝１，SECOND信号＝０であれば、排他的論理和回路Ｅ１１の出力は（０，０）となり、その結果ＡＮＤ回路Ａ１１の出力は（０，０）となり、全ビット論理０検出回路Ｄ１１の出力が"１"となる。その結果、ＡＮＤ回路Ａ１２はEXECUTE_EG=１を出力し、エラー発生指示部２２０からエラー発生指示が出力される（ステップＳ２８）。すなわちエラー発生条件が満たされ、エラー発生指示が出される。
【００６７】
他方、上記の如く計数値EG_COUNTER<n:0>が２ｎ＋１に達しラップアラウンド機能によりゼロにリセットされCHECK_EG=1となった時点でも依然としてFIRST信号＝０，SECOND信号＝１であれば、つまりエラー発生条件が満たされなければ、図１２のエラー発生指示部２２０の排他的論理和回路Ｅ１１の出力は（１，１）となり、その結果ＡＮＤ回路Ａ１１の出力は（１，１）となり、全ビット論理０検出回路Ｄ１１の出力は"０"となる。その結果、ＡＮＤ回路Ａ１２はEXECUTE_EG=０を出力し、エラー発生指示部２２０からエラー発生指示は出されない。
【００６８】
その結果、再び図１３のタイマ回路の計数値EG_COUNTER<n:0>はラップアラウンド機能によって一旦ゼロリセットされた後、クロック周期ごとにインクリメントされる。すなわち一定時間の待ち合わせが再び実行される。又、EG_COUNTER_V信号も"１"が維持される。そして計数値EG_COUNTER<n:0>が２ｎ＋１に達すると、ラップアラウンド機能により計数値はゼロにリセットされ、CHECK_EG=1となる。又、図１２のエラー発生指示部２２０のフリップフロップ回路ＦＦ１４の出力は"１"が維持されている。よってＡＮＤ回路１２の３入力のうち、全ビット論理０検出回路Ｄ１１の出力以外の２入力が"１"となり、ＡＮＤ回路Ａ１２は全ビット論理０検出回路Ｄ１１の出力をそのままEXECUTE_EG信号として出力する。よってこの時点でFIRST信号＝１，SECOND信号＝０であれば、つまりエラー発生条件が満たされれば、排他的論理和回路Ｅ１１の出力は（０，０）となり、その結果ＡＮＤ回路Ａ１１の出力は（０，０）となり、全ビット論理０検出回路Ｄ１１の出力は"１"となる。その結果、ＡＮＤ回路Ａ１２はEXECUTE_EG=１を出力し、エラー発生指示部２２０からエラー発生指示が出力される（ステップＳ２８）。
【００６９】
図１４の動作例では、上記の如く、オペレータによるエラー設定指示（ステップＳ２４）の時点（SET_EGのパルス及びCHECK_EG信号の１回目のパルス）では命令実行部２１０が命令Ａの実行過程の後半を実行中である。このためFIRST＝０、SECOND=1であり、エラー発生条件が満たされず、EXECUTE_EG信号は"０"が維持される。次に一定時間の待ち合わせの一回目の終了時点（CHECK_EG信号の２回目のパルス）においても、依然として命令実行部２１０が命令Ａの実行過程の後半を実行中である。このためFIRST＝０、SECOND=1であり、エラー発生条件が満たされず、EXECUTE_EG信号は"０"が維持される。次に一定時間の待ち合わせの２回目の終了時点（CHECK_EG信号の３回目のパルス）の前に命令実行部２１０が命令Ｂの実行過程の前半の実行中となり、このためFIRST＝１、SECOND=０であり、エラー発生条件が満たされ、EXECUTE_EG信号が"１"となる（EXECUTE_EG信号のパルス）。よってエラー発生指示部２２０はエラー発生指示を出力する（ステップＳ２８）。その結果命令実行部２１０において、一命令に係るエラーとして処理されるエラー（一命令に閉じたエラー）が発生する。
【００７０】
このようにして一旦エラー発生指示が出されると、EXECUTE_EG=1の信号によって図１３のタイマ回路のEG_COUNTER_V信号が"０"となる。その結果、以降、再びオペレータのエラー設定指示（ステップＳ２４）によってSET_EG=1となるまでカウンタ０検出回路Ｄ２１の出力と無関係に、ＡＮＤ回路Ａ２３はCHECK_EG=0を出力する。したがって、再びオペレータのエラー設定指示（ステップＳ２４）によってSET_EG=1となるまで、図１２のエラー発生指示部２２０のＡＮＤ回路Ａ１２はEXECUTE_EG=0を出力し、エラー発生指示部２２０はエラー発生指示を出力しない。
【００７１】
このように実施例のエラー発生指示部２２０によれば、オペレータからエラー設定指示（ステップＳ２４、図７のステップＳ４１）が入力すると、FIRST信号、SECOND信号に基づいて命令実行部２１０における条件を判定する（ステップＳ４２）。条件が満たされていれば、エラー発生指示部２２０は命令実行部２１０にエラー発生指示を出力する（ステップＳ２８、Ｓ４４）。他方、条件が満たされていない場合エラー発生指示部２２０はエラー発生指示は出さず、一定時間の待ち合わせを行った後（ステップＳ４３）、再び上記判定を行う（ステップＳ４２）。その結果、条件が満たされていれば、エラー発生指示部２２０は命令実行部２１０にエラー発生指示を出力する（ステップＳ２８、Ｓ４４）。他方、条件が満たされていなければ、エラー発生指示部２２０はエラー発生指示を出さず、再び一定時間の待ち合わせを行った後（Ｓ４３）、再び上記判定を行う（Ｓ４２）、という動作を、条件が満たされた状態となるまで繰り返す。その結果、エラー発生指示部２２０は、命令実行部２１０における条件が満たされる場合にのみエラー発生指示を出力する。更に、エラー発生指示を出力するタイミングは、オペレータによるエラー設定指示の入力のタイミングか、あるいは、その後の一定時間の待ち合わせの完了のタイミングである。したがってエラー発生指示はＣＰＵ５０の動作（命令の完了報告の受信等）、及び命令実行部２１０の動作（命令の実行過程の前半の終了、命令の完了報告、命令の実行過程の後半の終了等）とは非同期になされる。その結果、ＣＰＵ５０，命令実行部２１０における様々な状況に対する、エラーが発生した際のシステムの動作の検証を行える。
【００７２】
図１５は、図１３とともに上述した実施例におけるタイマ回路の第１の変形例の回路図である。図１３のタイマ回路と異なる点は、ｎ＋１ビットのＤ−フリップフロップ回路ＦＦ２３（以下単にフリップフロップ回路ＦＦ２３と称する）、ｎ＋１ビットの排他的論理和回路Ｅ２１（以下単に排他的論理和回路Ｅ２１と称する）、及び全ビット論理０検出回路Ｄ２２を設けた点である。フリップフロップ回路ＦＦ２３には、CHECK_CYCLE<n:0>信号が入力する。CHECK_CYCLE<n:0>信号は、オペレータによって設定される数値を示す信号である。オペレータはCHECK_CYCLE<n:0>信号を設定することによって計数値EG_COUNTER<n:0>がゼロにリセットされる際の計数値を、２ｎ＋１以下の任意の値に設定することができる。
【００７３】
図１３のタイマ回路の計数値EG_COUNTER<n:0>は、SET_EG=1あるいはEXECUTE_EG=1によってゼロにリセットされる場合を除くと、ラップアラウンド機能により、クロック周期の２ｎ＋１回ごとにゼロにリセットされる。これに対し図１５のタイマ回路では、計数値EG_COUNTER<n:0>がフリップフロップ回路ＦＦ２３に設定された設定値と比較される。比較の結果両者が全ビットにおいて一致すると、排他的論理和回路Ｅ２１の出力の全ビットが"０"となる。これを全ビット論理０検出回路Ｄ２２が検出し、ＮＯＲ回路Ｎ２１に"１"を出力する。ＮＯＲ回路Ｎ２１は全ビット論理０検出回路Ｄ２２の出力を受けて"０"を出力し、その結果、計数値EG_COUNTER<n:0>がゼロにリセットされる。したがって図１５のタイマ回路の計数値EG_COUNTER<n:0>は、SET_EG=1あるいはEXECUTE_EG=1による場合を除き、計数値EG_COUNTER<n:0>がCHECK_CYCLE<n:0>の設定値に達した際にゼロにリセットされる。よって、オペレータは、CHECK_CYCLE<n:0>の設定によって、エラー設定指示（Ｓ２４）の時点で命令実行部２１０が条件を満たさないためエラー発生指示部２２０が一定時間の待ち合わせを行う際の待ち合わせ時間を任意に設定することができる。
【００７４】
図１５の第１の変形例のタイマ回路によれば、オペレータが待ち合わせ時間を自由に設定することができる。このため待ち合わせ時間が固定の図１３のタイマ回路に比し、エラー発生時のＣＰＵ５０及び命令実行部２１０を含むコンピュータのシステムの動作の検証を、様々な状況において行うことができる。
【００７５】
図１６は、図１３とともに上述した実施例におけるタイマ回路の第２の変形例の回路図である。図１５の第１の変形例のタイマ回路と異なる点は、フリップフロップ回路ＦＦ２３の入力が、CHECK_CYCLE<n:0>ではなく、新たに設けるｎ＋１ビットの乱数発生回路Ｒ２１（以下単に乱数発生回路Ｒ２１と称する）の出力である点である。この場合、計数値EG_COUNTER<n:0>がゼロにリセットされる際の計数値は、乱数発生回路Ｒ２１により、２ｎ＋１以下の値にランダムに設定される。
【００７６】
すなわち、図１６のタイマ回路では図１５のタイマ回路同様、計数値EG_COUNTER<n:0>がフリップフロップ回路ＦＦ２３に設定された設定値と比較される。比較の結果両者が全ビットにおいて一致すると、排他的論理和回路Ｅ２１の出力の全ビットが"０"となる。これを全ビット論理０検出回路Ｄ２２が検出し、ＮＯＲ回路Ｎ２１に"１"を出力する。ＮＯＲ回路Ｎ２１は全ビット論理0検出回路Ｄ２２の出力を受けて"０"を出力し、その結果、計数値EG_COUNTER<n:0>がゼロにリセットされる。したがって図１６のタイマ回路の計数値EG_COUNTER<n:0>は、SET_EG=1あるいはEXECUTE_EG=1による場合を除き、計数値EG_COUNTER<n:0>が乱数発生回路Ｒ２１の出力値に達した際にゼロにリセットされる。よって、エラー設定指示（Ｓ２４）の時点で命令実行部２１０が条件を満たさないためエラー発生指示部２２０が一定時間の待ち合わせを行う際の待ち合わせ時間が、乱数発生回路Ｒ２１によって設定される。
【００７７】
図１６の第２の変形例のタイマ回路によれば、待ち合わせ時間が乱数発生回路Ｒ２１によってその都度、ランダムに設定される。このため待ち合わせ時間が固定の図１３のタイマ回路に比し、エラー発生時のＣＰＵ５０及び命令実行部２１０を含むコンピュータのシステムの動作の検証を、容易に様々な状況において行うことができる。
【００７８】
図１７は、実施例による、情報処理装置としてのコンピュータの構成例を示すブロック図である。図１７の構成例では、コンピュータ５００はＣＰＵ５０と、主記憶３００と、記憶装置２００とを有し、これらＣＰＵ５０，主記憶３００及び記憶装置２００は互いにバス４００によって接続される。主記憶３００は命令等を格納する。ＣＰＵ５０は図４及び図８に示されるＣＰＵ５０に対応する。ＣＰＵ５０は主記憶３００から命令を読み込み、読み込んだ命令が記憶装置２００に対するデータの読み書き命令であった場合、記憶装置２００に対し当該命令の実行指示を行う。記憶装置２００は図４に示されている記憶装置２００に対応し、図９に示される命令実行部２１０、及び図１２，図１３とともに上述したエラー発生指示部２２０を備える。命令実行部２１０及びエラー発生指示部２２０の構成及び動作の詳細は、図４乃至図１６とともに上述したものと同様である。
【符号の説明】
【００７９】
５０  ＣＰＵ
５１  命令制御部
５２  主記憶制御部
５３  内部演算実行部
２００  記憶装置
２１０  命令実行部
２１１  命令状況通知回路
２１２  大容量記憶制御部
２１３  一次バッファ部
２１４  エラー挿入部
２１５  大容量記憶
２２０  エラー発生指示部
３００  主記憶
ＦＦ１，ＦＦ２，ＦＦ１１，ＦＦ１２，Ｆｆ１３，ＦＦ１４，ＦＦ２１，ＦＦ２２，ＦＦ２３  フリップフロップ回路
Ａ１１，Ａ１２，Ａ２１，Ａ２２，Ａ２３  論理積回路
ＡＤ２１  加算回路
Ｄ１１，Ｄ２２  全ビット論理０検出回路
Ｄ２１  カウンタ０検出回路  
Ｅ１１，Ｅ２１  排他的論理和回路
Ｏ２１  論理和回路
Ｎ２１  ＮＯＲ回路
Ｒ２１  乱数発生回路
【図１】
2011096083.tif 000003
【図２】
2011096083.tif 000004
【図３】
2011096083.tif 000005
【図４】
2011096083.tif 000006
【図５】
2011096083.tif 000007
【図６】
2011096083.tif 000008
【図７】
2011096083.tif 000009
【図８】
2011096083.tif 000010
【図９】
2011096083.tif 000011
【図１０】
2011096083.tif 000012
【図１１】
2011096083.tif 000013
【図１２】
2011096083.tif 000014
【図１３】
2011096083.tif 000015
【図１４】
2011096083.tif 000016
【図１５】
2011096083.tif 000017
【図１６】
2011096083.tif 000018
【図１７】
2011096083.tif 000019
【手続補正書】
【提出日】平成24年7月23日(2012.7.23)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
演算処理装置からの命令を実行する命令実行部がエラー発生条件を満たすか否かを判定するエラー発生条件判定部と、
エラーの設定を指示するエラー設定指示が入力されたときに前記命令実行部が前記エラー発生条件を満たすか否かを前記エラー発生条件判定部に判定させる判定指示を出力し、前記エラー設定指示が入力されたときに前記エラー発生条件が満たされない場合には前記判定指示の出力から所定時間経過後に再度前記エラー発生条件判定部に前記判定指示を出力する判定指示部と、
前記エラー発生条件判定部の判定により前記命令実行部が前記エラー発生条件を満たす場合には、前記命令実行部にエラー発生指示を出力するエラー発生指示出力部と
を有するエラー発生指示回路。
【請求項２】
前記エラー発生条件判定部は、前記演算処理装置から各命令の実行指示を受けてから前記演算処理装置に対し当該命令の完了報告を行うまでの間は前記エラー発生条件を満たすと判定し、前記完了報告を前記演算処理装置に行った後更に当該命令の実行を続行する間は前記エラー発生条件を満たさないと判定することを特徴とする、請求項１に記載のエラー発生指示回路。
【請求項３】
情報を記憶する記憶部と、
演算処理装置からの命令に従って前記記憶部への情報の書込及び前記記憶部からの情報の読み出しのうちの少なくともいずれか一方の処理を実行する命令実行部と、
前記命令実行部がエラー発生条件を満たすか否かを判定するエラー発生条件判定部と、
エラー設定指示が入力されたときに、前記エラー発生条件が満たされるか否かを前記エラー発生条件判定部に判定させる判定指示を出力し、前記エラー設定指示が入力されたときに前記エラー発生条件が満たされない場合には所定時間経過後に再度前記エラー発生条件判定部に前記判定指示を出力する判定指示部と、
前記エラー発生条件判定部の判定により前記エラー発生条件が満たされる場合には前記命令実行部にエラー発生指示を出力するエラー発生指示出力部と
を有する記憶装置。
【請求項４】
前記エラー発生条件判定部は、前記演算処理装置から各命令の実行指示を受けてから前記演算処理装置に対し当該命令の完了報告を行うまでの間は前記エラー発生条件を満たすと判定し、前記完了報告を行った後、更に当該命令の実行を続行する間は前記エラー発生条件を満たさないと判定することを特徴とする、請求項３に記載の記憶装置。
【請求項５】
演算処理装置と、
情報を記憶する記憶部と、
前記演算処理装置からの命令に従って前記記憶部への情報の書込及び前記記憶部からの情報の読み出しのうちの少なくともいずれか一方の処理を実行する命令実行部と、
前記命令実行部がエラー発生条件を満たすか否かを判定するエラー発生条件判定部と、
エラー設定指示が入力されたときに前記エラー発生条件判定部に前記エラー発生条件が満たされるか否かを判定させる判定指示を出力し、前記エラー設定指示が入力されたときに前記エラー発生条件が満たされない場合には所定時間経過後に再度前記エラー発生条件判定部に前記判定指示を出力する判定指示部と、
前記エラー発生条件判定部の判定により前記エラー発生条件が満たされる場合には前記命令実行部にエラー発生指示を出力するエラー発生指示出力部とを有する記憶装置と
を有する情報処理装置。
【請求項６】
前記エラー発生条件判定部は、前記演算処理装置から各命令の実行指示を受けてから前記演算処理装置に対し当該命令の完了報告を行うまでの間は前記エラー発生条件を満たすと判定し、前記完了報告を行った後、更に当該命令の実行を続行する間は前記エラー発生条件を満たさないと判定することを特徴とする、請求項５に記載の情報処理装置。
【請求項７】
演算処理装置からの命令を実行する命令実行部に対し、エラー発生指示を行うエラー発生指示回路の制御方法であって、
判定指示部が、エラー設定指示が入力されたときにエラー発生条件判定部に前記エラー発生条件が満たされるか否かを判定させる判定指示を出力するステップと、
前記エラー発生条件判定部が、前記判定指示に応じて、前記演算処理装置からの命令を実行する命令実行部がエラー発生条件を満たすか否かを判定するステップと、
前記エラー設定指示が入力されたときに、前記エラー発生条件が満たされないと判定された場合には、所定時間経過後に再度前記エラー発生条件判定部に前記判定指示を出力するステップと、
エラー発生指示部が、前記エラー発生条件判定部の判定により前記エラー発生条件が満たされる場合には、前記命令実行部にエラー発生指示を出力するステップと
を有するエラー発生指示回路の制御方法。
【請求項８】
前記エラー発生条件判定部が実行するステップでは、前記演算処理装置から各命令の実行指示を受けてから前記演算処理装置に対し当該命令の完了報告を行うまでの間は前記エラー発生条件を満たすと判定し、前記完了報告を行った後、更に当該命令の実行を続行する間は前記エラー発生条件を満たさないと判定することを特徴とする、請求項７に記載のエラー発生指示回路の制御方法。
【国際調査報告】
2011096083.tif 000020
2011096083.tif 000021
2011096083.tif 000022
2011096083.tif 000023