(57)【要約】【課題】先行制御を中断せずに全ての条件コード設定命令の試験を行う。【解決手段】プロセッサを試験するプロセッサ試験装置であって、プロセッサを試験するための試験命令列を１試験命令ずつ実行することで、試験命令列の条件コード設定命令で設定された条件コードを取得する条件コード取得機能部３４ａと、取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、試験命令列の条件コード設定命令の後に生成した条件分岐命令を加える条件分岐命令追加機能部３６ａと、プロセッサに、条件分岐命令を加えた試験命令列を先行制御方式で実行させる試験命令実行機能部３７ａと、を有するプロセッサ試験装置が提供される。【選択図】図２
2010157116.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを試験するプロセッサ試験装置であって、
前記プロセッサを試験するための試験命令列を１試験命令ずつ実行することで、前記試験命令列の条件コード設定命令で設定された条件コードを取得する条件コード取得機能部と、
前記取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、前記試験命令列の前記条件コード設定命令の後に前記生成した条件分岐命令を加える条件分岐命令追加機能部と、
前記プロセッサに、前記条件分岐命令を加えた試験命令列を先行制御方式で実行させる試験命令実行機能部と、
を有するプロセッサ試験装置。
【請求項２】
前記エラー出力命令は、前記取得された条件コードと一致しない条件コードを設定した条件コード設定命令を識別する情報の出力指示を含む請求項１に記載のプロセッサ試験装置。
【請求項３】
前記条件分岐命令追加機能部は、前記条件コード設定命令の後に条件コードを変えない命令の数が所定値になったとき、前記条件コードを変えない命令の後に生成した条件分岐命令を加える請求項１又は２に記載のプロセッサ試験装置。
【請求項４】
前記条件コード取得機能部は、ランダムに生成された試験命令列の条件コード設定命令の後に条件コードを取得する割込み命令を追加し、前記割込み命令を実行することで条件コードを取得する請求項１〜３のいずれか１項に記載のプロセッサ試験装置。
【請求項５】
プロセッサ試験用の試験命令列を１試験命令ずつ実行することで、前記試験命令列の条件コード設定命令で設定された条件コードを取得するステップと、
前記取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、前記試験命令列の前記条件コード設定命令の後に前記生成した条件分岐命令を加えるステップと、
前記条件分岐命令を加えた試験命令列を、先行制御方式で実行するステップと、
を有するプロセッサ試験方法。
【請求項６】
前記エラー出力命令は、前記取得された条件コードと一致しない条件コードを設定した条件コード設定命令を識別する情報の出力指示を含む請求項５に記載のプロセッサ試験方法。
【請求項７】
条件分岐命令を加えるステップは、前記条件コード設定命令の後に条件コードを変えない命令の数が所定値になったとき、前記条件コードを変えない命令の後に生成した条件分岐命令を加えるステップを含む請求項５又は６に記載のプロセッサ試験方法。
【請求項８】
プロセッサ試験用の試験命令列を１試験命令ずつ実行することで、前記試験命令列の条件コード設定命令で設定された条件コードを取得する条件コード取得機能と、
前記取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、前記試験命令列の前記条件コード設定命令の後に前記生成した条件分岐命令を加える条件分岐命令追加機能と、
前記条件分岐命令を加えた試験命令列を、先行制御方式で実行する試験命令実行機能と、
をコンピュータに実現させるためのプロセッサ試験プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサ試験装置、プロセッサ試験方法、及びプロセッサ試験プログラムに関する。
【背景技術】
【０００２】
従来、プロセッサの試験として、ランダム試験が行われている。ランダム試験は、擬似乱数を基に入力データを含むランダムな命令列を作成し、被試験装置であるプロセッサに作成した命令を実行させ、命令実行結果の妥当性を判断することにより試験を行うものである。
【０００３】
乱数を基に試験命令を生成し、シミュレーションにより作成した期待値と被試験装置の試験命令実行結果を比較して、分岐命令に関わる先行制御機能を試験する方法が提案されている。この試験では、ランダムに生成された試験命令の１つとして条件コードを設定する命令を作成し、後続に条件付き分岐命令を追加し、さらに、その条件付き分岐命令の後続に分岐不成功命令及び分岐成功命令を追加した試験命令を作成する。規定の命令数を有する試験命令が生成されると、生成された試験命令の中から１試験命令ずつシミュレーションを行い試験命令列の実行による期待値を取得し、期待値と実際の試験命令の実行による結果値とを比較して被試験データ処理装置の試験を行う。期待値と結果値が一致しない場合は、エラーを出力する。
なお、この試験では、先行制御機能の最大能力を発揮させるために、条件付き分岐命令の条件コードが設定されるステージまで、後続にある分岐不成功命令を先行演算した後で、分岐成功命令を演算する。
【０００４】
【特許文献１】特公平６−５６５８８号広報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
試験命令には、その結果を条件コードで示す条件コード設定命令が多数あり、試験命令実行中においてレジスタに格納される条件コードは、条件コード設定命令の実行毎に上書きされて、変化する。したがって、実際の試験命令列終了時の結果値とシミュレーションの実行による期待値との結果比較を行う場合、試験命令列途中における条件コードの設定誤りを認識することは出来ない。すなわち、試験命令列の終了時点で結果比較を行うと、条件コード設定の後続の命令結果によりレジスタが上書きされてしまうため、試験命令列のどの条件コード設定命令に誤りが発生したのかを判別することは出来ない。また、条件コードが上書きされないように条件コード設定命令が実行されるたびに結果比較のための分岐命令を試験命令列に追加して試験を行うと、当該分岐命令により、先行制御機能が中断されてしまう。
【０００６】
したがって、本発明の一形態は、先行制御を中断せずに全ての条件コード設定命令の試験を行うことを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一形態によれば、プロセッサを試験するプロセッサ試験装置が提供される。
プロセッサ試験装置は、プロセッサを試験するための試験命令列を１試験命令ずつ実行することで、試験命令列の条件コード設定命令で設定された条件コードを取得する条件コード取得機能部と、取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、試験命令列の条件コード設定命令の後に生成した条件分岐命令を加える条件分岐命令追加機能部と、プロセッサに、条件分岐命令を加えた試験命令列を先行制御方式で実行させる試験命令実行機能部と、を有する。
【０００８】
また、本発明の他の一形態によれば、プロセッサ試験方法が提供される。
プロセッサ試験方法は、プロセッサ試験用の試験命令列を１試験命令ずつ実行することで、試験命令列の条件コード設定命令で設定された条件コードを取得するステップと、取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、試験命令列の条件コード設定命令の後に生成した条件分岐命令を加えるステップと、条件分岐命令を加えた試験命令列を、先行制御方式で実行するステップと、を有する。
【発明の効果】
【０００９】
本発明の一形態は、先行制御を中断せずに全ての条件コード設定命令の試験を行うことが出来る。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照して、試験装置の実施形態を説明する。
【００１１】
図１を用いて、プロセッサ試験装置のハードウェア構成の一例を説明する。プロセッサ試験装置２０ａは、主記憶装置１１ａ、プロセッサ１２ａ、バスインタフェースユニット（ＢＩＵ）１３ａ、補助記憶装置１４ａ、及びディスクインタフェース（ＤＩ）１５ａを有する。なお、図１に示す例では、プロセッサ１２ａは、被試験装置となる。そのため、プロセッサ試験装置２０ａが、被試験装置であるプロセッサ１２ａを試験するプロセッサ試験装置として機能する。
【００１２】
主記憶装置１１ａは、メインメモリ、キャッシュメモリ及びフラッシュメモリを含み、命令やデータを記憶する。メインメモリとしては、ＳＩＭＭ（Single Inline Memory Module）、ＤＩＭＭ（Dual Inline Memory Module）がある。フラッシュメモリとしては、ＥＰＲＯＭ（Erasable Programmable ROM）がある。
【００１３】
プロセッサ１２ａは、四則演算や論理演算などの演算処理を実行する装置である。プロセッサ１２ａは、コンパイルプログラムを実行することで、プログラミング言語で書かれたプログラムを、プロセッサ１２ａが直接実行可能な機械語でコード化された命令に変換する機能を有する。プロセッサ１２ａは、機械語でコード化された命令を主記憶装置１１ａから読み出し、又は、プログラム実行時に機械語でコード化された命令にしてプロセッサ１２ａ内部のレジスタ１２ａ−２に格納する。さらに、プロセッサ１２ａは、レジスタ１２ａ−２に格納された命令を実行することにより、上記演算処理を実行することで各種の計算や制御を行うことができる。
【００１４】
プロセッサ１２ａは、キャッシュメモリ１２ａ−１及びレジスタ１２ａ−２を有する。キャッシュメモリ１２ａ−１は、主記憶装置１１ａに格納されるデータの一部を保持することにより、プロセッサ１２ａの演算速度と主記憶装置１１ａからのデータ読出し速度の速度差を埋めるために用いる高速小容量メモリである。なお、キャッシュメモリ１２ａ−１は、プロセッサ１２ａ外部に配置した別装置としても良い。レジスタ１２ａ−２は、プロセッサ１２ａの計算結果を一時的に保持したり、主記憶装置１１ａを読み書きするときのアドレスを保持したり、プロセッサ１２ａや入力装置２２ａ又は出力装置２３ａの動作状態を保持するときに使用する記憶装置である。レジスタ１２ａ−２は、記憶素子で実装可能であるため、動作が極めて高速だが、キャッシュメモリ１２ａ−１と比較して容量は小さい。
【００１５】
プロセッサ試験装置２０ａでは、プロセッサ１２ａを試験するためには、補助記憶装置１４ａに格納されたプログラム試験用プログラムをプロセッサ１２ａに実行させる。このプログラムを実行することにより、プロセッサ１２ａは、後述する試験命令列を作成し、次に、作成した試験命令列を実行することで、プロセッサ１２ａの先行制御方式に係る試験を行うことが出来る。
【００１６】
バスインタフェースユニット（ＢＩＵ）１３ａは、主記憶装置１１ａ、プロセッサ１２ａ、及びディスクインタフェース１５ａと接続されるチップセットであり、ＡＧＰ（Accelerated Graphics Port）又はＰＣＩ Ｅｘｐｒｅｓｓなどの規格に従って機能する制御回路を含む。バスインタフェースユニット１３ａは、さらに、ＰＣＩ（Peripheral Component Interconnect）バス、ＩＤＥ、キーボードポート、マウスポート、ＵＳＢなどの回路を含む。バスインタフェースユニット１３ａは、バスを介してプロセッサ試験装置２０ａの外部に配置される入力装置２２ａ及び出力装置２３ａに接続される。なお、バス接続される対象機器の通信速度に応じて、バスインタフェースユニット１３ａは、高速通信用及び低速通信用に分けた２つ以上のチップセットとしても良い。
【００１７】
出力装置２３ａは、プロセッサ試験装置から処理状況や処理結果を出力する対象となるディスプレイやプリンタなどであり、入力装置２２ａは、プロセッサ試験装置２０ａに対して情報を出力するキーボードやマウスなどである。
【００１８】
補助記憶装置１４ａは、磁気ディスクドライブ、又は、フラッシュメモリのような不揮発性メモリを用いたＳＳＤ（Solid State Drive）、又は、光学ディスクドライブである。補助記憶装置１４ａは、磁気ディスクや光ディスク等の記憶媒体として、データを読出し又は記録することが出来る。この場合、後述するプロセッサ試験プログラム３０ａ及び／又はプロセッサ試験プログラム３０ｂを記録する記憶媒体から、これらのプログラムを読み出して、これらのプログラムを上記磁気ディスクドライブやＳＳＤ等に格納することが出来る。
ディスクインタフェース（ＤＩ）１５ａは、プロセッサ１２ａと補助記憶装置１４ａとを接続する接続用回路である。ディスクインタフェース１５ａは、例えば、ＳｅｒｉａｌＡＴＡ、ＳＣＳＩ、及びＦＣ（Fibre Channel）等の規格に従って機能する。
【００１９】
図２を用いて、プロセッサ試験装置で実装する機能構成の一例を示す。プロセッサ１２ａに実装される機能は、制御機能部３１ａ、乱数発生機能部３２ａ、試験命令生成機能部３３ａ、条件コード取得機能部３４ａ、条件分岐命令追加機能部３６ａ、試験命令実行機能部３７ａ、結果比較機能部３８ａ、エラー処理機能部３９ａがある。また、主記憶装置１１ａに割り当てられる記憶領域として、期待値格納部４０ａ、結果値格納部４１ａ、エラー格納部４２ａがある。期待値格納部４０ａは、条件コード取得機能部３４ａから出力される期待値を格納する。結果値格納部４１ａは、試験命令実行機能部３７ａから出力される結果値を格納する。エラー格納部４２ａは、試験命令実行機能部３７ａから出力されるエラーログを格納する。
なお、試験命令列は、試験命令生成機能部３３ａにより生成されて、主記憶装置１１ａに格納される。試験命令生成機能部３３ａにより生成された試験命令列は、条件コード取得機能部３４ａ及び条件分岐命令追加機能部３６ａによって、試験命令実行機能部３７ａが実行するための試験命令列に変更される。
【００２０】
プロセッサ試験プログラム３０ａは、制御機能部３１ａ〜エラー処理機能部３９ａとして規定される機能をプログラミング言語で記述したものである。プロセッサ１２ａは、プロセッサ試験プログラム３０ａを実行することで、制御機能部３１ａ〜エラー処理機能部３９ａの機能を実行することが出来る。
【００２１】
制御機能部３１ａは、乱数発生機能部３２ａ〜エラー処理機能部３９ａの実行制御や、各機能部のイベントの共有を制御するための制御機能を有する。制御機能部３１ａの制御機能は、プロセッサ試験プログラム３０ａ実行後、最初に実行される機能である。
乱数発生機能部３２ａは、擬似乱数を生成するアルゴリズムにより乱数を生成する機能を有する。
試験命令生成機能部３３ａは、乱数発生機能部３２ａで発生した乱数に基づいて、ランダム生成された試験命令を生成する機能を有する。制御機能部３１ａは、乱数発生機能部３２ａが乱数を出力したことを確認すると、試験命令生成機能部３３ａに試験命令を生成させるために、制御機能部３１ａは試験命令生成機能部３３ａに出力された乱数を引き渡す。試験命令生成機能部３３ａは、乱数発生機能部３２ａで発生した乱数に基づいて、試験命令テーブルからプロセッサ試験用の試験命令、及び、オペランドテーブルからオペランドを選択し、選択された試験命令を主記憶装置１１ａに格納する。
【００２２】
図３を用いて、乱数に基づいて試験命令を生成するために使用される試験命令テーブル及びオペランドテーブルの一例を説明する。図３に示す試験命令テーブル９１は、乱数と命令形式とを対応付けたテーブルである。オペランドテーブル９２は、乱数とオペランドとを対応付けたテーブルである。オペランドは、数字、文字、浮動小数点などである。試験命令テーブル９１及びオペランドテーブル９２は、主記憶装置１１ａに格納される。
乱数発生機能部３２ａが発生した乱数を６桁のオクテット値で規定できる場合、試験命令生成機能部３３ａは、乱数上位３桁のオクテット値で、試験命令テーブル９１から命令形式の選択をし、乱数下位３桁のオクテット値で、オペランドテーブル９２のオペランドを選択することが出来る。
なお、上記例では、試験命令とオペランドを別個のテーブルで規定したが、試験命令とオペランドを１つのテーブルで規定して、乱数により試験命令とオペランドとの組を選択するようにしても良い。
【００２３】
試験命令生成機能部３３ａは、このように乱数を用いて選択した試験命令を、所定の数だけ生成する。なお、試験命令列の命令数は、プロセッサの試験方法によって決まり、例えば、命令数１００〜１０，０００の範囲で規定される。なお、命令数の定義は、入力装置２２ａを介してプログラム変数としてプロセッサ試験プログラム３０ａに規定することが出来る。試験命令生成機能部３３ａは、乱数を用いて選択した試験命令を、主記憶装置１１ａに格納する。
【００２４】
条件コード取得機能部３４ａは、プロセッサ試験用の試験命令列を１試験命令ずつ実行して、試験命令列の条件コード設定命令で設定された条件コードを取得する機能を有する。条件コード取得機能部３４ａは、割込み命令追加機能部３５ａを含む。割込み命令追加機能部３５ａは、試験命令列の条件コード設定命令を１試験命令ずつ判別し、判別した条件コード設定命令の後続命令として条件コードを取得する割込み命令を追加する機能を有する。条件コード取得機能部３４ａは、追加された割込み命令を実行することで、試験命令列の条件コード設定命令で設定された条件コードを取得する。
制御機能部３１ａは試験命令生成機能部３３ａが試験命令を生成したことを確認すると、条件コード取得機能部３４ａに試験命令列から条件コードを取得させるために、制御機能部３１ａは条件コード取得機能部３４ａに生成した試験命令を引き渡す。
条件コード取得機能部３４ａ及び割込み命令追加機能部３５ａは、試験命令生成機能部３３ａが１試験命令ずつ生成する度に、生成した試験命令を１試験命令ずつ実行しても良い。
【００２５】
割込み命令追加機能部３５ａは、試験命令生成機能部３３ａにより生成され、主記憶装置１１ａに格納された試験命令列から条件コード設定命令を判別し、判別した条件コード設定命令の後続命令として割込み命令を追加する。なお、この割込み命令は、割込み命令の前に設定された条件コード設定命令で設定された値、例えば、「−１、０、１」のいずれかを出力コードとして出力する命令である。
また、割込み命令追加機能部３５ａは、対象となる試験命令が試験命令列の最後である場合、最後の試験命令の出力値を期待値として、期待値格納部４０ａに格納する最終割込み命令を最後の試験命令列の後に追加する。
【００２６】
なお、条件コード取得機能部３４ａが演算して出力する条件コードは、試験命令実行機能部３７ａが先行制御方式を用いて取得する条件コードと比較されるデータである。そのため、条件コード取得機能部３４ａにより取得される条件コードは、試験命令列を１試験命令ずつ実行する演算精度の高い演算方式を採用することが好ましい。そのような演算方式として、命令シミュレーション、又は、逐次制御方式がある。
【００２７】
命令シミュレーションは、プロセッサ１２ａによる試験命令列の演算を１試験命令ずつ正確にシミュレートする方式である。この場合、プロセッサ試験プログラム３０ａの一部には、命令シミュレーション機能を規定するプログラムが含まれ、このプログラムをプロセッサ１２ａが実行することにより、条件コード取得機能部３４ａは、命令シミュレーションを実行する。
逐次制御方式は、プロセッサ１２ａのレジスタ１２ａ−２のうち先行制御と逐次制御を切り替える制御レジスタにフラグを立てることでプロセッサの演算方式を変えることで実現される方式である。制御レジスタにフラグを立てることで、条件コード取得機能部３４ａは、先行制御方式ではなく、逐次演算方式により試験命令を演算することが出来る。このように、条件コード取得機能部３４ａは、命令シミュレーションによる演算、又は、逐次演算方式による演算により、試験命令列を１試験命令ずつ実行することで、先行制御方式の不具合を受けることなく条件コードを取得することが出来る。
【００２８】
条件分岐命令追加機能部３６ａは、条件コード取得機能部３４ａによる割込み命令の出力である条件コードを取得し、条件コードの条件不成立のときに分岐する条件分岐命令を生成する機能を有する。さらに、条件分岐命令追加機能部３６ａは、試験命令列において割込み命令の代わりに生成した条件分岐命令を置き換える機能を有する。
制御機能部３１ａは条件コード取得機能部３４ａが試験命令を実行したことを確認すると、条件分岐命令追加機能部３６ａに割込み命令を条件分岐命令に置換させるために、制御機能部３１ａは条件分岐命令追加機能部３６ａに実行された試験命令を引き渡す。
【００２９】
例えば、条件コード「−１、０、１」のうち、条件コード取得機能部３４ａによる割込み命令の出力が「−１」の場合、条件分岐命令追加機能部３６ａは、条件コード「−１」を条件成立したときの条件コードとし、条件コード「０、１」を条件不成立のときの条件コードと判断する。そして、条件分岐命令追加機能部３６ａは、条件コードが「０、１」であるときにエラー出力命令に分岐する条件分岐命令を生成し、試験命令列において割込み命令の代わりに生成した条件分岐命令を置き換える。エラー出力命令は、条件コード取得機能部３４ａによって取得された条件コードと一致しない条件コードを出力した条件コード設定命令を識別する情報であるエラーログを、エラー格納部４２ａに出力する指示を含む。エラーログには、不成立となった条件コード、不成立と判断した割込み命令、条件分岐命令を行った時のタイムスタンプが含まれ得る。なお、エラー出力命令は、主記憶装置１１ａの領域に格納され、条件分岐命令は、その領域のアドレスを指定する命令であっても良い。
【００３０】
試験命令実行機能部３７ａは、試験対象となるプロセッサ１２ａの先行制御方式を用いて、試験命令列を実行する機能を有する。制御機能部３１ａは、所定の数だけ有する試験命令列が生成されたことを確認すると、制御機能部３１ａは試験命令実行機能部３７ａに試験命令列を実行させる。上記のように、試験命令実行機能部３７ａが実行する試験命令列は、条件分岐命令追加機能部３６ａによって条件分岐命令が追加された試験命令列である。試験命令実行機能部３７ａは、条件コード設定命令が正しく実行されないときは、条件分岐命令により分岐されるエラー出力命令を実行する。
試験命令実行機能部３７ａは、試験命令列の最後の試験命令を演算したときの結果値を結果値格納部４１ａに格納する。
【００３１】
制御機能部３１ａは、試験命令実行機能部３７ａが結果値を結果値格納部４１ａに格納したことを確認すると、結果比較機能部３８ａに期待値と結果値とを比較させるために、制御機能部３１ａは結果比較機能部３８ａに期待値と結果値とを取得させる。結果比較機能部３８ａは、結果値格納部４１ａから結果値を取得すると、期待値格納部４０ａから期待値を取得して、期待値と結果値が一致するか否かを判断する。期待値と結果値とが一致した場合は、結果比較機能部３８ａは、プロセッサ１２ａが実行する先行制御方式が条件コード設定命令を正しく実行したという結果を出力装置２３ａに出力する。期待値と結果値とが一致しない場合、結果比較機能部３８ａは、エラー処理機能部３９ａに不一致の通知をする。
【００３２】
エラー処理機能部３９ａは、結果比較機能部３８ａからの不一致通知を受領すると、エラー格納部４２ａに格納された１つ又はそれ以上のエラーログを、出力装置２３ａに出力する処理を実行する。
【００３３】
図４〜７を用いて、プロセッサ試験装置が行う試験命令列の作成処理フローの一例を説明する。図４及び６は、プロセッサ試験装置が行う試験命令列の作成処理フローの一例を示す図である。図５は、図４に示す作成処理フローで作成され、且つ主記憶装置１１ａに記憶された試験命令列１５０の一例を示す図である。図７は、図６に示す作成処理フローで作成され、且つ主記憶装置１１ａに記憶された試験命令列２５０の一例を示す図である。
【００３４】
図４に示す処理フローには、Ｓ１０３、Ｓ１０４、Ｓ１０８、Ｓ１１０、Ｓ１１１の５つの条件分岐処理があり、Ｓ１０８の条件分岐処理によりループを形成するものである。これらの条件分岐処理により、この処理フローは、以下のような処理の組み合わせがある。
条件コード設定命令処理フロー１：Ｓ１０３がＹｅｓ、Ｓ１０４がＮｏ、Ｓ１０８がＮｏ
条件コード設定命令処理フロー２：Ｓ１０３がＹｅｓ、Ｓ１０４がＹｅｓ、Ｓ１０８がＮｏ
条件コード不変命令処理フロー１：Ｓ１０３がＮｏ、Ｓ１１０がＮｏ、Ｓ１０８がＮｏ
条件コード不変命令処理フロー２：Ｓ１０３がＮｏ、Ｓ１１０がＹｅｓ、Ｓ１１１がＹｅｓ、Ｓ１０８がＮｏ
条件コード不変命令処理フロー３：Ｓ１０３がＮｏ、Ｓ１１０がＹｅｓ、Ｓ１１１がＮｏ、Ｓ１０８がＮｏ
以下、上記した５つのフローについて、図４及び５を用いて説明する。なお、プロセッサ１２ａが、プロセッサ試験プログラム３０ａを実行することにより、各機能部３１ａ〜３９ａは、動作可能になる。制御機能部３１ａは、作成処理フローにおける各機能部の実行タイミングを管理するために、処理を担当する機能部に実行指示を行う。下記記載においては、冗長記載を回避するために、制御機能部３１ａが各機能部に処理の指示を出す記載を省略する。
【００３５】
＜条件コード設定命令処理フロー１：Ｓ１０３がＹｅｓ、Ｓ１０４がＮｏ、Ｓ１０８がＮｏ＞
試験命令生成機能部３３ａは、主記憶装置１１ａに設けられた割込み命令設定フラグを「０」にする（Ｓ１０１）。試験命令生成機能部３３ａは、乱数発生機能部３２ａで生成された乱数を基に試験命令を選択する（Ｓ１０２）。この試験命令の選択は、試験命令生成機能部３３ａが試験命令テーブル９１から乱数に従って試験命令を選択することによって行うことが出来る。試験命令生成機能部３３ａは、選択された試験命令を主記憶装置１１ａに格納する。割込み命令追加機能部３５ａは、選択された試験命令が条件コード設定命令であるか否かを判定する（Ｓ１０３）。
【００３６】
選択された命令が条件コード設定命令である場合（Ｓ１０３  Ｙｅｓ）、割込み命令追加機能部３５ａは、割込み設定命令フラグが「１」かどうか判断する。フロー１の場合、ステップＳ１０１で割込み設定命令フラグが「０」であるため（Ｓ１０４  Ｎｏ）、割込み命令追加機能部３５ａは、割込み設定命令フラグを「１」にする（Ｓ１０５）。次に、割込み命令追加機能部３５ａは、乱数を基に条件コード不変命令の設定閾値ｎ１を決定する（Ｓ１０６）。ｎ１は、整数の変数であり、例として、ｎ１＝２に乱数で設定されたものとする。割込み命令追加機能部３５ａは、この設定閾値ｎ１を主記憶装置１１ａに格納する。そして、図５の条件コード設定命令１５１に示すように、割込み命令追加機能部３５ａは、選択された命令を試験命令列１５０に設定する（Ｓ１０７）。次に、試験命令生成機能部３３ａは、試験命令列１５０の試験命令が規定の試験命令数に到達したか否かを判断する（Ｓ１０８）。試験命令列１５０の試験命令が規定の試験命令数に到達していない場合（Ｓ１０８  Ｎｏ）、試験命令生成機能部３３ａは、ステップＳ１０２に戻る。
なお、条件コード不変命令の設定閾値ｎ１は、割込み命令に変わって置換される条件分岐命令を条件コード設定命令の直後ではなく、より後方の後続命令として配置するための設定値である。設定閾値ｎ１を大きく取ることにより、条件コード設定命令の直後ではなく、より試験命令列における後方に条件分岐命令を配置することが出来る。
【００３７】
＜条件コード設定命令処理フロー２：Ｓ１０３がＹｅｓ、Ｓ１０４がＹｅｓ、Ｓ１０８がＮｏ＞
試験命令生成機能部３３ａは、乱数発生機能部３２ａで生成された乱数を基に試験命令を選択する（Ｓ１０２）。選択された命令が条件コード設定命令である場合（Ｓ１０３  Ｙｅｓ）、割込み命令追加機能部３５ａは、割込み設定命令フラグが「１」かどうか判断する。条件コード設定命令処理フロー２の場合、条件コード設定命令処理フロー１にてステップＳ１０５で設定されたように、割込み設定命令フラグは「１」であるので（Ｓ１０４  Ｙｅｓ）、割込み命令追加機能部３５ａは、図５の１５２に示すように、割込み命令を試験命令列１５０に設定する（Ｓ１０９）。そして、図５の条件コード設定命令１５３に示すように、割込み命令追加機能部３５ａは、ステップＳ１０２で選択された命令を試験命令列１５０に設定する（Ｓ１０７）。次に、試験命令生成機能部３３ａは、試験命令列１５０の試験命令が規定の試験命令数に到達したか否かを判断する（Ｓ１０８）。試験命令列１５０の試験命令が規定の試験命令数に到達していない場合（Ｓ１０８  Ｎｏ）、試験命令生成機能部３３ａは、ステップＳ１０２の処理を実行する。
【００３８】
＜条件コード不変命令処理フロー１：Ｓ１０３がＮｏ、Ｓ１１０がＮｏ、Ｓ１０８がＮｏ＞
試験命令生成機能部３３ａは、乱数発生機能部３２ａで生成された乱数を基に試験命令を選択する（Ｓ１０２）。選択された命令が条件コード設定命令ではない場合（Ｓ１０３  Ｎｏ）、割込み命令追加機能部３５ａは、条件コード不変命令の数が設定閾値ｎ１に達したか否かを判断する（Ｓ１１０）。条件コード不変命令の設定閾値ｎ１は、ステップＳ１０６で設定された「２」である。また、条件コード不変命令の数は、「１」である。そのため、条件コード不変命令の数が設定閾値ｎ１に達していないため（Ｓ１１０  Ｎｏ）、図５の割込み命令１５４に示すように、割込み命令追加機能部３５ａは、ステップＳ１０２で選択された命令を試験命令列１５０に設定する（Ｓ１０７）。試験命令列１５０の試験命令が規定の試験命令数に到達していない場合（Ｓ１０８  Ｎｏ）、試験命令生成機能部３３ａは、ステップＳ１０２の処理を実行する。
【００３９】
＜条件コード不変命令処理フロー２：Ｓ１０３がＮｏ、Ｓ１１０がＹｅｓ、Ｓ１１１がＹｅｓ、Ｓ１０８がＮｏ＞
試験命令生成機能部３３ａは、乱数発生機能部３２ａで生成された乱数を基に試験命令を選択する（Ｓ１０２）。選択された命令が条件コード設定命令ではない場合（Ｓ１０３  Ｎｏ）、割込み命令追加機能部３５ａは、条件コード不変命令の数が設定閾値ｎ１に達したか否かを判断する（Ｓ１１０）。条件コード不変命令の設定閾値ｎ１は、条件コード不変命令処理フロー１にてステップＳ１０６で設定された「２」である。また、条件コード不変命令の数は「２」である。そのため、条件コード不変命令の数が設定閾値ｎ１に達したため（Ｓ１１０  Ｙｅｓ）、割込み命令追加機能部３５ａは、割込み命令設定フラグが「１」か否かを判断する（Ｓ１１１）。なお、このステップで条件コード不変命令の数が設定閾値ｎ１に達したため、条件コード不変命令の数を「０」にリセットする。割込み命令設定フラグは、条件コード設定命令処理フロー１にてステップＳ１０５で「１」に設定されたままであるため（Ｓ１１１  Ｙｅｓ）、図５の割込み命令１５５に示すように、割込み命令追加機能部３５ａは、割込み命令を試験命令列１５０に設定する（Ｓ１１２）。次に、割込み命令追加機能部３５ａは、割込み命令設定フラグを「０」にする（Ｓ１１３）。そして、図５の条件コード不変命令１５６に示すように、割込み命令追加機能部３５ａは、ステップＳ１０２で選択された条件コード不変命令を試験命令列１５０に設定する（Ｓ１０７）。試験命令列１５０の試験命令が規定の試験命令数に到達していない場合（Ｓ１０８  Ｎｏ）、試験命令生成機能部３３ａは、ステップＳ１０２の処理を実行する。
【００４０】
＜条件コード不変命令処理フロー３：Ｓ１０３がＮｏ、Ｓ１１０がＹｅｓ、Ｓ１１１がＮｏ、Ｓ１０８がＮｏ＞
試験命令生成機能部３３ａは、乱数発生機能部３２ａで生成された乱数を基に試験命令を選択する（Ｓ１０２）。選択された命令が条件コード設定命令ではない場合（Ｓ１０３  Ｎｏ）、割込み命令追加機能部３５ａは、主記憶装置１１ａに条件コード不変命令の数を設定する。ここでは、条件コード不変命令の数は「２」である。次に、割込み命令追加機能部３５ａは、条件コード不変命令の数が設定閾値ｎ１に達したか否かを判断する（Ｓ１１０）。条件コード不変命令の設定閾値ｎ１は、条件コード設定命令処理フロー１にてステップＳ１０６で設定された「２」である。そのため、条件コード不変命令の数が設定閾値ｎ１に達したため（Ｓ１１０  Ｙｅｓ）、割込み命令追加機能部３５ａは、割込み命令設定フラグが「１」か否かを判断する（Ｓ１１２）。割込み命令設定フラグは、条件コード不変命令処理フロー２にてステップＳ１１３で「０」に設定されたままであるため（Ｓ１１１  Ｎｏ）、図５の条件コード不変命令１５７に示すように、割込み命令追加機能部３５ａは、ステップＳ１０２で選択された条件コード不変命令を試験命令列１５０に設定する（Ｓ１０７）。試験命令列１５０の試験命令が規定の試験命令数に到達していない場合（Ｓ１０８  Ｎｏ）、試験命令生成機能部３３ａは、ステップＳ１０２の処理を実行する。
【００４１】
なお、ステップＳ１０２で、試験命令生成機能部３３ａは、乱数発生機能部３２ａで生成された乱数を基に条件コード設定命令が選択されない限り、「条件コード不変命令処理フロー３」が繰り返し実行され、図６の１５８に示すように、試験命令列１５０に条件コード不変命令が繰り返し記載される。
試験命令生成機能部３３ａは、乱数発生機能部３２ａで生成された乱数を基に条件コード設定命令を選択すると、「条件コード設定命令処理フロー１」が再び実行され、繰り返し実行され、図５に示すように、試験命令列１５０に条件コード設定命令１５９、割込み命令１６０が設定される。図５に示すように最終割込み命令１６１は、試験命令列１５０の最後尾に設定される。
条件コードエラー出力命令１６２は、主記憶装置１１ａの所定のメモリアドレスで規定される領域に格納される。
【００４２】
このように、処理フロー１〜５の何れかが実行され試験命令列１５０の試験命令が規定の試験命令数に到達した場合（Ｓ１０８  Ｙｅｓ）、条件コード取得機能部３４ａは、試験命令列１５０の最後尾に最終割込み命令を設定し（Ｓ１１４）、図６に示すステップＳ１１５に進む。
【００４３】
図６に示すステップＳ１１５では、条件コード取得機能部３４ａは、図５に示す試験命令列１５０を昇順に１つずつ命令を実行する（Ｓ１１５）。条件分岐命令追加機能部３６ａは、試験命令列１５０において命令を昇順に１つずつ条件コードを採取するための割込み命令か否かを判断する（Ｓ１１６）。判断対象の命令が条件コード取得の割込み命令である場合（Ｓ１１６  Ｙｅｓ）、条件分岐命令追加機能部３６ａは、条件コード取得機能部３４ａが実行した割込み命令の結果から条件コードを調べる（Ｓ１１７）。条件分岐命令追加機能部３６ａは、判断対象の命令が条件コード取得の割込み命令で無い場合（Ｓ１１６  Ｎｏ）、ステップＳ１２１に進む。
【００４４】
条件分岐命令追加機能部３６ａは、条件コード取得機能部３４ａが実行した割込み命令の結果から条件コードを調べる（Ｓ１１７）。次に、条件分岐命令追加機能部３６ａは、条件コードが不成立の時に条件コードエラー出力命令に分岐する条件分岐命令を生成する（Ｓ１１８）。例えば、ステップＳ１１６で取得した条件コードが「０」ならば、条件コードが「−１、１」のときに条件コードエラー出力命令に分岐する条件分岐命令を生成する。
条件分岐命令追加機能部３６ａは、ステップＳ１１５で判断対象とした割込み命令を条件分岐命令に置き換える（Ｓ１１９）。この処理は、主記憶装置１１ａに格納される対象となる割込み命令を、条件分岐命令追加機能部３６ａが条件分岐命令で上書きすることにより行うことが出来る。条件分岐命令追加機能部３６ａは、ステップＳ１１６で判断対象とした割込み命令の次の命令に進む（Ｓ１２０）。条件分岐命令追加機能部３６ａは、ステップＳ１１６で判断対象とした命令が試験命令列の終了命令か判断する（Ｓ１２１）。試験命令列の終了命令で無い場合（Ｓ１２１  Ｎｏ）、条件コード取得機能部３４ａは、次の命令を実行する（Ｓ１１５）。試験命令列の終了命令である場合（Ｓ１２１  Ｙｅｓ）、条件コード取得機能部３４ａは、最終割込み命令を実行して、その命令の出力である期待値を取得し（Ｓ１２２）、期待値を期待値格納部４０ａに格納する。このようにして、制御機能部３１ａは、試験命令列作成処理フローを終了する。
【００４５】
試験命令列１５０の割込み命令を条件分岐命令に置換した後に、主記憶装置１１ａに格納される試験命令列２５０を図７に示す。図７に示す試験命令列２５０では、図５に示した試験命令列１５０の割込み命令１５２、１５５、１６０は、条件分岐命令２５１、２５２、２５３にそれぞれ置換される。
【００４６】
図８を用いて、プロセッサ試験装置が行う試験命令列の実行処理フローの一例を説明する。
制御機能部３１ａの指示により試験命令実行機能部３７ａは、先行制御方式により試験命令列２５０を実行する（Ｓ２０１）。実行した命令が試験命令列２５０の最終命令でなければ（Ｓ２０２  Ｎｏ）、試験命令実行機能部３７ａは、先行制御方式により試験命令列２５０を実行する（Ｓ２０１）。試験命令実行機能部３７ａは、この最終命令か否かの判断を、最終割込み命令か否かによって判断することが出来る。試験命令列２５０の最終命令であれば（Ｓ２０２  Ｙｅｓ）、試験命令実行機能部３７ａは、最終命令である最終割込み命令を実行することによって、試験命令列２５０の出力値である結果値を結果値格納部４１ａに格納する（Ｓ２０３）。結果値が結果値格納部４１ａに格納されたことを確認すると、結果比較機能部３８ａは、期待値格納部４０ａに格納される期待値と、結果値格納部４１ａに格納された結果値とが等しいか否かを判断する（Ｓ２０４）。期待値と結果値とが等しくない場合（Ｓ２０４  Ｎｏ）、エラー処理機能部３９ａは、エラー処理を行う（Ｓ２０５）。このエラー処理は、エラー格納部４２ａに格納されたエラーログを取得し、出力装置２３ａにエラーログを出力するものである。このエラーログは、先行制御方式による試験命令列２５０の実行（Ｓ２０１）において、条件分岐命令で条件コード不成立と判断され、分岐先の条件コードエラー出力命令１６２を実行することによりエラー格納部４２ａに格納されたものである。期待値と結果値とが等しい場合（Ｓ２０４  Ｙｅｓ）、正常に先行制御が行われたことを出力装置２３ａに出力して、制御機能部３１ａは、プロセッサ試験の命令試験列の実行処理フローを終了する。
【００４７】
図７に命令実行のタイムサイクル２６０を示す。図７に示す、プロセッサ１２ａが実行する処理であるＩＦは命令フェッチ、ＩＤはレジスタ又はキャッシュメモリからの命令デコード、ＥＸは命令実行、ＷＢはレジスタ又はキャッシュメモリへのライトバックを示す。
先行制御方式による試験命令列２５０の実行（Ｓ２０１）において、条件分岐命令で条件コード成立と判断された場合、図７のタイムサイクル２６０に示すように、条件分岐命令ではエラー出力命令への分岐命令が実行されない。そのため、試験命令実行機能部３７ａは、先行制御機能を有効に実行して、試験命令列２５０を実行することが出来る。
【００４８】
以上説明したように、試験命令生成機能部３３ａが生成したランダム試験命令列では、条件コードを特定できない。しかしながら、条件コード取得機能部３４ａが割込み命令を実行して条件コードを取得し、取得した条件コードを用いて条件コードの正否を反映した条件分岐命令を試験命令列に追記することで、条件コードの正否を判定可能な試験命令列を生成することが出来る。そのため、本プロセッサ試験装置及び方法では、試験命令実行機能部３７ａが試験命令列２５０を実行することで、試験命令列２５０に含まれる全ての条件コード設定命令についてその正否を確認することが出来る。
【００４９】
また、条件コード設定命令の各々について結果値と期待値との比較処理を行う分岐命令を行わずに、条件分岐命令を先行制御方式により実行することで条件正否の分岐命令の確認が行えるので、先行制御を中断させること無く条件コードの確認が出来る。そのため、本プロセッサ試験装置及び方法では、先行制御を中断せずに全ての条件コード設定命令の試験を行うことが出来る。また、本プロセッサ試験装置及び方法では、各条件コード設定命令について条件正否の分岐命令を不要とするので、実際のプロセッサの使用に近い試験命令列を生成し、且つ条件コード確認処理による試験対象プロセッサへの不要な負荷を小さくすることが出来る。
【００５０】
さらに、従来の試験では、先行制御方式の最大能力を発揮させるために、条件付き分岐命令の条件コードが設定されるステージまで、後続にある分岐不成功命令を先行演算した後で、分岐成功命令を演算していた。しかしながら、本プロセッサ試験装置及び方法は、条件コード設定命令の後に分岐不成功命令及び分岐成功命令という２つの命令を設けることなく、乱数に基づいて生成した試験命令に基づいて生成した条件コード設定命令の確認処理を行うことが出来る。そのため、本プロセッサ試験装置及び方法では、実際のプロセッサが実行する命令に近い試験命令で、プロセッサの先行制御機能を試験することができる。
【００５１】
また、条件コード不変命令の設定閾値を用いて、条件コード設定命令の直後ではなく、条件コード設定命令より後方の後続命令として条件分岐命令を配置可能である。そのため、本プロセッサ試験装置及び方法では、条件コード設定命令への条件分岐命令の追加による実際の命令との差異を少なくした試験命令を生成することが出来る。
【００５２】
また、条件分岐命令の分岐先のエラー出力命令は、条件コード設定命令に関するエラーログを出力するという簡易な命令である。そのため、条件コードとの不一致が生じた場合でも、エラー出力命令を実行することによる先行制御機能の中断時間は少なく、条件コード確認処理による被試験対象のプロセッサに対する不要な負荷を小さくすることが出来る。条件コードとの不一致が生じた場合であっても、本プロセッサ試験装置及び方法では、実際のプロセッサが実行する命令に近い試験命令で、プロセッサの先行制御機能を試験することができる。
【００５３】
図９を用いて、プロセッサ試験装置のハードウェア構成の一例を示す図である。図１に示した被試験対象のプロセッサ１２ａは、プロセッサ試験装置２０ａに内蔵されていたが、図９に示す構成では、被試験対象のプロセッサ１２ｂは、プロセッサ試験装置２０ａの外部に配置され、バスインタフェースユニット１３ａとバス接続される。このように、プロセッサ試験装置２０ａを試験専用の装置として、試験対象のプロセッサ１２ｂを外部に取り付けてプロセッサ試験を行うことも出来る。
【００５４】
図９を用いて、プロセッサ試験装置のハードウェア構成の一例を示す図である。プロセッサ試験装置２０ｂは、主記憶装置１１ｂ、プロセッサ１２ｂ、バスインタフェースユニット１３ｂ、補助記憶装置１４ｂ、ディスクインタフェース１５ｂ、入力装置２２ｂ、出力装置２３ｂを有する。ハードウェア構成１１〜１５ｂ、２２ｂ、２３ｂは、図１に示すハードウェア構成１１〜１５ａ、２２ａ、２３ａにそれぞれ対応し、対応するハードウェア構成と同じ機能を有する。そのため、プロセッサ試験装置２０ｂのハードウェア構成の説明を省略する。
プロセッサ試験装置２０ｂは、被試験対象となるプロセッサ１２ｃとバスインタフェースユニット１３ｂを介して接続されていることを除き、図１に示すプロセッサ試験装置２０ａと同じハードウェア構成である。
【００５５】
図１０を用いて、プロセッサ試験装置で実装する機能構成の一例を示す図である。
補助記憶装置１４ｂに格納されたプロセッサ試験プログラム３０ｂは、制御機能部３１ｂ〜エラー処理機能部３９ｂとして規定される機能をプログラミング言語で記述したものである。プロセッサ１２ｂは、プロセッサ試験プログラム３０ｂを実行することで、制御機能部３１ｂ〜エラー処理機能部３９ｂの機能を実現することが出来る。
プロセッサ試験装置２０ｂが実装する機能部３１ｂ〜３６ｂ、３８ｂ、３９ｂは、図２に示す機能部３１ａ〜３６ａ、３８ａ、３９ａにそれぞれ対応し、対応する機能と同じ機能を有する。そのため、下記に示す試験命令実行機能部３７ｂの説明を除いて、プロセッサ試験装置２０ｂの機能構成の説明を省略する。
【００５６】
試験命令実行機能部３７ｂは、プロセッサ試験装置２０ｂに外部接続され且つ試験対象となるプロセッサ１２ｃの先行制御方式を用いて、試験命令列２５０を実行させる機能を有する。制御機能部３１ｂは所定の数だけ有する試験命令列２５０が生成されたことを確認すると、制御機能部３１ｂは試験命令実行機能部３７ｂを機能させる。
試験命令実行機能部３７ｂによる実行指示に従って、プロセッサ１２ｃは、主記憶装置１１ｂに格納された試験命令列２５０を実行し、条件コード設定命令が正しく実行されないときは、条件分岐命令により分岐されるエラー出力命令を実行する。エラー出力命令は、条件コード取得機能部３４ｂによって取得された条件コードと一致しない条件コードを出力した条件コード設定命令を識別する情報であるエラーログを、エラー格納部４２ｂに出力する指示を含む。
【００５７】
このようにして、プロセッサ試験装置２０ｂ及びプロセッサ１２ｃは、図４〜８に関して説明した処理を実行し、上記した作用及び効果を奏する。そして、試験対象のプロセッサ１２ｃに試験命令列２５０を実行させることにより、プロセッサ試験装置２０ｂは、外部に取り付けたプロセッサ１２ｃの試験を行う装置として機能することが出来る。
【００５８】
以上述べた実施形態に関し、さらに以下の付記を開示する。
（付記１）
プロセッサを試験するプロセッサ試験装置であって、
前記プロセッサを試験するための試験命令列を１試験命令ずつ実行することで、前記試験命令列の条件コード設定命令で設定された条件コードを取得する条件コード取得機能部と、
前記取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、前記試験命令列の前記条件コード設定命令の後に前記生成した条件分岐命令を加える条件分岐命令追加機能部と、
前記プロセッサに、前記条件分岐命令を加えた試験命令列を先行制御方式で実行させる試験命令実行機能部と、
を有するプロセッサ試験装置。
（付記２）
前記エラー出力命令は、前記取得された条件コードと一致しない条件コードを設定した条件コード設定命令を識別する情報の出力指示を含む付記１に記載のプロセッサ試験装置。
（付記３）
前記条件分岐命令追加機能部は、前記条件コード設定命令の後に条件コードを変えない命令の数が所定値になったとき、前記条件コードを変えない命令の後に生成した条件分岐命令を加える付記１又は２に記載のプロセッサ試験装置。
（付記４）
前記条件コード取得機能部は、ランダムに生成された試験命令列の条件コード設定命令の後に条件コードを取得する割込み命令を追加し、前記割込み命令を実行することで条件コードを取得する付記１〜３のいずれか１項に記載のプロセッサ試験装置。
（付記５）
プロセッサ試験用の試験命令列を１試験命令ずつ実行することで、前記試験命令列の条件コード設定命令で設定された条件コードを取得するステップと、
前記取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、前記試験命令列の前記条件コード設定命令の後に前記生成した条件分岐命令を加えるステップと、
前記条件分岐命令を加えた試験命令列を、先行制御方式で実行するステップと、
を有するプロセッサ試験方法。
（付記６）
前記エラー出力命令は、前記取得された条件コードと一致しない条件コードを設定した条件コード設定命令を識別する情報の出力指示を含む付記５に記載のプロセッサ試験方法。
（付記７）
条件分岐命令を加えるステップは、前記条件コード設定命令の後に条件コードを変えない命令の数が所定値になったとき、前記条件コードを変えない命令の後に生成した条件分岐命令を加えるステップを含む付記５又は６に記載のプロセッサ試験方法。
（付記８）
前記条件コードを取得するステップは、ランダムに生成された試験命令列の条件コード設定命令の後に条件コードを取得する割込み命令を追加し、前記割込み命令を実行することで条件コードを取得する付記５〜７のいずれか１項に記載のプロセッサ試験方法。
（付記９）
プロセッサ試験用の試験命令列を１試験命令ずつ実行することで、前記試験命令列の条件コード設定命令で設定された条件コードを取得する条件コード取得機能と、
前記取得された条件コードと一致しない条件コードが出力されるという条件でエラー出力命令に分岐する条件分岐命令を生成し、前記試験命令列の前記条件コード設定命令の後に前記生成した条件分岐命令を加える条件分岐命令追加機能と、
前記条件分岐命令を加えた試験命令列を、先行制御方式で実行する試験命令実行機能と、
をコンピュータに実現させるためのプロセッサ試験プログラム。
（付記１０）
前記エラー出力命令は、前記取得された条件コードと一致しない条件コードを設定した条件コード設定命令を識別する情報の出力指示を含む付記１０に記載のプロセッサ試験プログラム。
（付記１１）
前記条件分岐命令追加機能は、前記条件コード設定命令の後に条件コードを変えない命令の数が所定値になったとき、前記条件コードを変えない命令の後に生成した条件分岐命令を加える付記９又は１０に記載のプロセッサ試験プログラム。
（付記１２）
前記条件コード取得機能は、ランダムに生成された試験命令列の条件コード設定命令の後に条件コードを取得する割込み命令を追加し、前記割込み命令を実行することで条件コードを取得する付記９〜１１のいずれか１項に記載のプロセッサ試験プログラム。
【図面の簡単な説明】
【００５９】
【図１】図１は、プロセッサ試験装置のハードウェア構成の一例を示す図である。
【図２】図２は、プロセッサ試験装置で実装する機能構成の一例を示す図である。
【図３】図３は、試験命令テーブル及びオペランドテーブルの一例を示す図である。
【図４】図４は、プロセッサ試験装置が行う試験命令列の作成処理フローの一例を示す図である。
【図５】図５は、試験命令列の作成処理フローで作成される試験命令列の一例を示す図である。
【図６】図６は、プロセッサ試験装置が行う試験命令列の作成処理フローの一例を示す図である。
【図７】図７は、試験命令列の作成処理フローで作成される試験命令列の一例を示す図である。
【図８】図８は、プロセッサ試験装置が行う試験命令列の実行処理フローの一例を示す図である。
【図９】図９は、プロセッサ試験装置のハードウェア構成の一例を示す図である。
【図１０】図１０は、プロセッサ試験装置で実装する機能構成の一例を示す図である。
【符号の説明】
【００６０】
１１ａ    主記憶装置
１２ａ、１２ｂ、１２ｃ    プロセッサ
１３ａ、１３ｂ    バスインタフェースユニット
１４ａ、１４ｂ    補助記憶装置
１５ａ、１５ｂ    ディスクインタフェース
２０ａ、２０ｂ    プロセッサ試験装置
２２ａ、２２ｂ    入力装置
２３ａ、２２ｂ    出力装置
３０ａ、３０ｂ    プロセッサ試験プログラム
３１ａ、３１ｂ    制御機能部
３２ａ、３２ｂ    乱数発生機能部
３３ａ、３３ｂ    試験命令生成機能部
３４ａ、３４ａ    条件コード取得機能部
３５ａ、３５ｂ    割込み命令追加機能部
３６ａ、３６ｂ    条件分岐命令追加機能部
３７ａ、３７ｂ    試験命令実行機能部
３８ａ、３８ｂ    結果比較機能部
３９ａ、３８ｂ    エラー処理機能部
４０ａ、４０ｂ    期待値格納部
４１ａ、４１ｂ    結果値格納部
４２ａ、４２ｂ    エラー格納部
９１    試験命令テーブル
９２    オペランドテーブル
【図１】
2010157116.tif 000003
【図２】
2010157116.tif 000004
【図３】
2010157116.tif 000005
【図４】
2010157116.tif 000006
【図５】
2010157116.tif 000007
【図６】
2010157116.tif 000008
【図７】
2010157116.tif 000009
【図８】
2010157116.tif 000010
【図９】
2010157116.tif 000011
【図１０】
2010157116.tif 000012