(57)【要約】【課題】計算機での動作検証を行うのに大量のデータパターンでの動作検証を可能とする動作検証方法及び動作検証プログラムを提供する。【解決手段】検証プログラムの検証パターン数などのパラメタを設定する(S1)。検証対象である浮動小数点加算命令を作成する(S2)。この加算で使用するオペランドをランダムに作成する(S3)。作成した浮動小数点加算命令を固定小数点命令のみでエミュレートしプロセッサの固定小数点演算器のみを使用して処理し期待値を作成する(S4)。作成した浮動小数点加算命令を検証対象の浮動小数点加減算器を用いて演算する(S5)。固定小数点演算器のみを使用し作成した期待値と処理した結果との比較を行う(S6)。比較一致なら設定した演算パターン数をチェックし規定値に到達したなら正常終了と報告しプログラムを終了する(S8)。また比較が不一致となった原因を解析して出力しプログラムを終了する(S7)。【選択図】図２
2007047893.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサの動作を検証する動作検証方法であって、検証対象とは異なる別の演算器で検証命令の期待値を求め、前記期待値と検証対象演算器で実際に演算した結果を比較して前記検証演算器の動作検証を行うことを特徴とする動作検証方法。
【請求項２】
プロセッサの動作を検証する動作検証プログラムであって、コンピュータに、ある検証命令を作成する手順と、作成した検証命令を検証対象とは異なる別の演算器で演算してその期待値を求める手順と、求めた前記期待値と検証対象演算器で実際に演算した結果を比較して検証対象演算器の動作検証を行う手順を実行させるための動作検証プログラム。
【請求項３】
プロセッサの動作を検証する動作検証プログラムであって、コンピュータに、検証命令を複数連続して作成する手順と、連続作成した検証命令すべてを検証対象とは異なる別の演算器で演算してその結果のレジスタや記憶域の期待値を求める手順と、求めた前記期待値と検証対象演算器で実際に演算した結果のレジスタや記憶域の値を比較して検証対象演算器の動作検証を行う手順を実行させるための動作検証プログラム。
【請求項４】
前記検証命令の演算に係るオペランドを作成する手順をコンピュータに実行させる際、前記検証命令の演算が特定のデータパターンに特化した演算となるようオペランドの作成制御を行って当該演算についての検証を行うことを特徴とする請求項２又は３に記載の動作検証プログラム。
【請求項５】
前記検証命令を作成する手順をコンピュータに実行させる際、作成する前記検証命令が特定の命令に特化した命令列になるよう制御し当該命令列についての検証を行うことを特徴とする請求項３に記載の動作検証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサの動作を検証する動作検証方法及び動作検証プログラムに関し、特に命令生成および期待値生成をプログラムにより行いプロセッサの動作を検証する技術に関する。
【背景技術】
【０００２】
近年プロセッサ集積度は増加し、それに伴いプロセッサ内の論理は複雑化してきている。論理が複雑化するにつれ、その設計段階、試作段階でのデバッグ期間は増加する一方であり、そのためデバックの効率化が望まれている。
【０００３】
実際のプロセッサの開発にあたり、そのシミュレーション段階において、多くの検証データパターンで検証することは、プロセッサの完成段階での論理品質の向上に大きく貢献する。
【０００４】
また、プロセッサの実機検証においては論理的なものだけではなく、ＬＳＩごとに異なる物理的な問題も検証する必要があるため、大量なデータパターンで検証することが望まれている。
【０００５】
従来、プロセッサの動作を検証する場合、例えば演算器を検証する手法として、図７に示すように記憶域８００に命令テーブル８０１、オペランドテーブル８０２及び演算結果テーブル８０３を設け、あらかじめ入力オペランドとその結果の期待値をオペランドテーブル８０２及び演算結果テーブル８０３に格納しておき、オペランドテーブル８０２に格納されているのと同じオペランドを入力オペランドとして演算器（図示せず）で実行しその実行結果と、演算結果テーブル８０３に格納されている期待値とを比較する方法（下記特許文献１参照）を採っていることが知られている。
【０００６】
また設計段階においてはシミュレーションモデルを作成し、そのモデル上で動作検証プログラムを走行させプロセッサの動作を検証することも行われている。さらに、実際の計算機においてプロセッサの動作を検証する場合においても、その計算機上で動作検証プログラムを走行させてプロセッサの動作を検証するようにもしている。
【特許文献１】特開平０７−０４９８８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、前述のような命令、オペランド、期待値をテーブルとしてもつ検証プログラムでは、シミュレーションモデルや実際の計算機上での検証で走行させることができる検証プログラムのデータパターン数は、テーブルのサイズすなわちその検証プログラムのサイズに依存することとなるため、大量なデータパターンでの検証を行うにはプログラムが膨大となり、また仮に膨大なテーブルを持ったプログラムを作成したとしてもそのサイズは、その検証モデルサイズもしくは実際の計算機のメモリ量でしかなくどうしても有限になってしまうという課題があった。
【０００８】
本発明はこのような課題に鑑みて、プロセッサ開発におけるシミュレーション、また実際の計算機での動作検証を行うにあたり大量のデータパターンでの動作検証を可能とする動作検証方法及び動作検証プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明は、プロセッサの動作を検証するため、例えばある検証対象演算器を検証する方法として、プログラムにおいて検証命令を作成し、その演算を別の手法で別の演算器を用いて行いその期待値を作成し、その期待値と実際の検証対象演算器で行った結果とを比較することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、演算命令およびその入力オペランドはプログラムがランダムに作成するため、検証命令列やオペランド、期待値をテーブルとして持つ必要がなく、また、その期待値を対象演算器とは別の演算器で作成するため、対象演算器を検証するに有意義なデータパターンをほぼ無限に作成することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を、図面を参照しながら説明する。
図１は、本発明の実施形態に係るプロセッサの構成を示すブロック図である。図１において動作検証の対象となるプロセッサ２００は大きくは、命令制御部２１０と、データ制御部２２０と、演算処理部２３０とから構成されている。ここで、命令制御部２１０は、命令投入やレジスタの干渉によるオペランドのバイパス制御などを行う。データ制御部２２０は、命令制御部２１０から示されたデータを演算処理部２３０へ送出する。演算処理部２３０は、命令制御部２１０から指示された命令を指示されたデータについて演算する。演算処理部２３０は、８バイトの固定小数点レジスタ２３０１を３２本、８バイトの浮動小数点レジスタ２３１１を３２本持ち、また固定小数点演算器２３００としてＡＬＵ２３０２，シフタ２３０３，乗算器２３０４，除算器２３０５及びストア演算器２３０６を持ち、さらに浮動小数点演算器２３１０として加減算器２３１２，乗算器２３１３，除算器２３１４及びストア演算器２３１５を持つ。
【００１２】
図２は、図１のプロセッサの浮動小数点加減算器の加算機能を検証する本発明の実施形態に係る動作検証プログラムによる処理フローを示す図である。ステップ（図２ではステップをＳと表記。以下、同じ）1において検証プログラムの検証パターン数などのパラメタを設定する。ステップ２において検証対象である浮動小数点加算命令を作成する。このとき命令で使用するオペランドはランダムである。ステップ３においてこの加算で使用するオペランドをランダムに作成する。ステップ４においては作成した浮動小数点加算命令を固定小数点命令のみでエミュレートしプロセッサの固定小数点演算器２３００のみを使用して処理し期待値を作成する。次にステップ５ではステップ２において作成した浮動小数点加算命令を検証対象の浮動小数点加減算器２３１２を用いて演算する。ステップ６では固定小数点演算器２３００のみを使用しステップ４で作成した期待値とステップ５で処理した結果との比較を行い比較結果が一致すればステップ８へ、不一致ならステップ７へと進む。ステップ８ではステップ１において設定した演算パターン数をチェックし規定値に未到達ならステップ１へループバックし、規定値に到達したならステップ９へ進み正常終了と報告しプログラムを終了する。ステップ７では不一致となった原因を解析して出力しプログラムを終了する。
【００１３】
このように上記手法によると、浮動小数点加算命令オペランドをランダムに作成（ステップ３）することから、膨大なオペランドの組み合わせが可能となる。また、そのオペランドに対する期待値は検証対象ではない固定小数点演算器２３００を用いて算出（ステップ４）するため、もし検証対象である浮動小数点加算器２３１２に論理的、物理的な問題があり演算結果を誤った場合には期待値と異なるため浮動小数点加算器２３１２の不具合を検出することができる。
【００１４】
図３は、図１のプロセッサの浮動小数点演算器の演算機能を検証する本発明の実施形態に係る動作検証プログラムによる処理フローを示す図である。ステップ（図３ではステップをＳと表記。以下、同じ）１１において検証プログラムの検証パターン数などのパラメタを設定する。ステップ１２において検証対象である浮動小数点命令をランダムに複数作成する。ステップ１３では検証する浮動小数点命令のオペランドをランダムに作成する。ステップ１４においては作成した浮動小数点演算命令をプロセッサの固定小数点演算器２３００のみを使用して演算し期待値を作成する。このとき、全レジスタ、およびストア命令でストアされる記憶域が期待値となる。次にステップ１５では浮動小数点演算器２３１０で実際にステップ１２において作成した浮動小数点演算命令を演算する。ステップ１６では固定小数点演算器２３００のみを使用しステップ１４で作成した期待値とステップ１５で処理した結果との比較を行い比較結果が一致すればステップ１８へ、不一致ならステップ１７へと進む。ステップ１８ではステップ１１において設定した演算パターン数をチェックし規定値に未到達ならステップ１１へループバックし、規定値に到達したならステップ１９へ進み正常終了と報告しプログラムを終了する。ステップ１７では不一致となった原因を解析して出力しプログラムを終了する。
【００１５】
このように上記手法によると、浮動小数点命令を複数連続して動作させることができるため、演算データの干渉による命令制御、データ制御論理についても検証が可能となり、またその命令パターン、オペランドデータも膨大な組み合わせについて検証することができる。
【００１６】
なお図３に示したステップ１３におけるオペランド作成の際にデータパターンを制御（ｃ．パターン制御）することによりオペランドの符号や大小関係など検証したいデータパターンに特化したオペランドについての演算機能を検証することができる。
【００１７】
さらに図３に示したステップ１２における命令作成の際に作成する命令種を制御（ａ．命令種制御）することにより処理タイミングが異なる命令を組み合わせたり、同じ命令を連続させたりして、検証する演算器を限定することができ、さらに命令制御部２１０での命令投入機能について検証することができる。
【００１８】
またさらに図３に示したステップ１２における命令作成の際に作成する命令で使用するレジスタを制御（ｂ．レジスタ制御）することにより前後の命令でのオペランドの干渉を操作することができ、演算処理部２３０だけでなく命令制御部２１０での命令投入機能やバイパス機能までも検証することができる。
【００１９】
図４は、本実施形態で使用する命令形式（フォーマット）の一例を示す図である。図４においてopが命令オペコードで、r1、r2が入力レジスタ番号、rdが結果レジスタ番号である。図４はレジスタ１６番と２番のデータに対してfadd（浮動小数点加算）演算を行い２０番のレジスタへとセットすることを示している。
【００２０】
図５Ａは、図１のプロセッサの浮動小数点加減算器の加算機能を検証する本発明の実施形態に係る動作検証プログラムを示す図である。図５Ａにおいて動作検証プログラム６００は、パラメタ設定ルーチン６０１と、浮動小数点加算命令作成ルーチン６０２と、オペランド作成ルーチン６０３と、浮動小数点加算命令作成ルーチン６０２で作成した浮動小数点加算命令を固定小数点演算でエミュレートして期待値を求めるルーチン６０４と、レジスタにオペランドデータをセットするルーチン６０５と、浮動小数点加算命令作成ルーチン６０２で作成した浮動小数点加算命令を検証対象である浮動小数点加減算器で演算するルーチン６０６と、期待値作成ルーチン６０４で求めた期待値と演算ルーチン６０６で演算した値を比較するルーチン６０７と、エラー制御ルーチン６０８とから構成される。
【００２１】
シミュレーションモデルの浮動小数点加減算回路を図５Ａに示した本発明の実施形態に係る動作検証プログラム６００を用いて検証を行うフローを以下順に説明する。シミュレーションモデルの浮動小数点加算は指定されたレジスタにセットされている８バイトの２つのオペランドを加算し８バイトの結果を出力するものである。まず、シミュレーションモデルのメモリ上に、プログラム６００をローディングする。検証対象モデルでこのプログラム６００を実行すると、まずパラメタ設定ルーチン６０１でプログラム走行時にパラメタとして与えた検証命令数と検証パターン数をセットする。本実施形態では検証命令数を“１”、検証パターン数を“５”とする。次に浮動小数点加算命令作成ルーチン６０２において図５Ｂに示すような浮動小数点加算命令(fadd)をルーチン６０１でパラメタとしてセットした１命令分作成する。次にオペランド作成ルーチン６０３でこの命令で使用するオペランドをランダムに作成しメモリ上のオペランド領域にセットする。ルーチン６０４においてルーチン６０３で作成したfadd命令のオペランドに対してfadd命令を固定小数点演算でエミュレートして処理し演算結果を求めメモリ上の期待値領域にセットする。
【００２２】
次に、ルーチン６０５においてルーチン６０３でメモリ上に格納したオペランドデータをルーチン６０２で作成したfadd命令のオペランドレジスタへとセットする。ルーチン６０６において、検証対象である浮動小数点加減算器においてルーチン６０２で作成したfadd命令を処理する。ルーチン６０７においてメモリ上の期待値とルーチン６０６で求めた演算値を比較する。ルーチン６０８でルーチン６０７での比較が一致した場合はこのオペランドについて浮動小数点加減算器が正常に動作したことを示しており、ルーチン６０２へとループバックしさらに新たなオペランドに対しての検証を行う。このループバックはルーチン６０１でパラメタとして設定した検証パターン数“５”に達するまで行われ、５パターン検証した後は正常終了と報告し検証プログラムを終了する。ルーチン６０８で演算結果が不一致となった場合はエラー終了と報告し期待値と演算値を付加情報として報告する。本実施形態では検証パターンを“５”とした例を示したが、パターン数を大きく設定することで、オペランドや期待値のテーブルを持たずに大量のデータに対して浮動小数点加減算演算器の検証を行うことが出来る。
【００２３】
図６Ａは、図１のプロセッサの浮動小数点演算器の演算機能を検証する本発明の実施形態に係る動作検証プログラムを示す図である。図６Ａにおいて動作検証プログラム７００は、パラメタ設定ルーチン７０１と、浮動小数点命令作成ルーチン７０２と、オペランド作成ルーチン７０３と、浮動小数点命令作成ルーチン７０２で作成した浮動小数点命令を固定小数点演算でエミュレートして期待値を求め、メモリ上の期待値領域へとストアするルーチン７０４と、レジスタにオペランドをセットするルーチン７０５と、浮動小数点命令作成ルーチン７０２で作成した浮動小数点命令を検証対象である浮動小数点演算器で演算するルーチン７０６と、命令実行後のレジスタをメモリの演算結果領域へとストアするルーチン７０７と、期待値作成ルーチン７０４で求めた期待値領域と演算結果ストアルーチン７０７でストアした演算後の演算結果領域を比較するルーチン７０８と、エラー制御ルーチン７０９とから構成される。
【００２４】
シミュレーションモデルの浮動小数点演算回路を図６Ａに示した本発明の実施形態に係る動作検証プログラム７００を用いて浮動小数点演算器の検証を行うフローを以下順に説明する。まず、シミュレーションモデルのメモリ上に、プログラム７００をローディングする。検証対象モデルでこのプログラム７００を実行すると、まず、パラメタ設定ルーチン７０１で検証プログラム走行時に与えた命令パターン数、検証パターン数を設定する。本実施形態では検証命令数として“４”、を、検証パターン数として“５”を設定することとする。次に浮動小数点命令作成ルーチン７０２においてルーチン７０１で設定した４種の命令をランダムに作成する。今回は図６Ｂに示すような浮動小数点加算（fadd）,浮動小数点乗算（fmul）,浮動小数点除算（fdiv）,浮動小数点減算（fsub）の各命令が作成されたとする。さらにルーチン７０３でランダムなオペランドデータを全３２レジスタ分メモリ上のオペランド領域にセットする。また、期待値作成ルーチン７０４においてまず、ルーチン７０３で作成した演算前の全レジスタの値を期待値領域にセットし、さらにルーチン７０２で作成されたfadd,fmul,fdiv,fsubの各命令をすべて固定小数点演算でエミュレートして演算結果を求め、その結果をそれぞれの命令結果が格納されるレジスタに対応する期待値領域にセットする。これで、４命令実行後の全浮動小数点レジスタの値がメモリ上の期待値領域にセットされたこととなる。
【００２５】
次にルーチン７０５においてルーチン７０２で作成した命令において使用するオペランドをセットする。ルーチン７０６では、検証対象である浮動小数点演算器において、ルーチン７０２で作成したfadd,fmul,fdiv,fsubの各命令を順に演算する。ルーチン７０７で４命令実行後の全レジスタの値をメモリ上の演算結果領域にストアする。ルーチン７０８においてメモリ上の期待値領域と演算結果領域を比較する。ルーチン７０９でルーチン７０８での比較が一致した場合はこの４命令について、またオペランドについて浮動小数点演算器が正常に動作したことを示しており、ルーチン７０２へとループバックしさらに新たな浮動小数点命令が４命令作成され、新たなオペランドに対しての検証を行う。このループバックはルーチン７０１でパラメタとして設定した検証パターン数“５”に達するまで行われ、５パターン検証した後は正常終了と報告し検証プログラムを終了する。ルーチン７０９で演算結果が不一致となった場合はエラー終了と報告し期待値と演算値を付加情報として報告する。本実施形態では作成命令を４命令、検証パターンを５パターンとしたが、作成命令や検証パターンを大きく設定することにより、オペランドや期待値のテーブルを持たずに、様々な命令の組み合わせについてさらに大量のデータに対して浮動小数点演算器の検証を行うことが出来る。
【００２６】
次に、図６Ａに示した図１のプロセッサの浮動小数点演算器の演算機能を検証する本発明の実施形態に係る動作検証プログラムの変形例について説明する。基本的な構成は本発明の実施形態に係る動作検証プログラム７００と同様であるが、パラメタ設定ルーチン７０１において命令数、検証パターン数に加え、オペランドパターンを与える。本実施形態ではオペランドの最上位ビットが常に“０”となるように設定する例について説明する。この設定に従いオペランド作成ルーチン７０３において一旦作成したランダムな８バイトオペランドに対して“７ｆｆｆｆｆｆｆｆｆｆｆｆｆｆｆ”データをＡＮＤ演算することで常に最上位ビットが“０”となるオペランドを作成する制御を行う。ルーチン７０４以降は本発明の実施形態に係る動作検証プログラム７００と同様である。このようにルーチン７０３でオペランドを操作することで最上位が“０”であるオペランドに特化して演算器を検証することができる。
【００２７】
またオペランドの最上位ビットが常に“１”となるように設定する例について説明する。この設定に従いオペランド作成ルーチン７０３において一旦作成したランダムな８バイトオペランドに対して“８０００００００００００００００”をＯＲ演算することで最上位ビットが常に“１”であるオペランドを作成する制御を行う。ルーチン７０４以降は本発明の実施形態に係る動作検証プログラム７００と同様である。このようにルーチン７０３でオペランドを操作することで最上位が“１”であるオペランドに特化して演算器を検証することができる。
【００２８】
次に、加算などの２つのオペランドのうち常に第１オペランドが第２オペランドより大きくなるように設定する例について説明する。これはランダムに生成した第１オペランドについて“７ｆｆｆｆｆｆｆｆｆｆｆｆｆｆｆ”を、第２オペランドについて“３ｆｆｆｆｆｆｆｆｆｆｆｆｆｆｆ”を、それぞれＡＮＤ演算することで常に第１オペランドを大きくすることができる。オペランド数が３以上となった場合も同様に制御することができる。このようにオペランドのデータパターンを制御する手法を追加してランダムでのオペランド作成後にデータを操作することで検証するオペランドを検証者の意図で設定することが可能となる。
【００２９】
さらに、図６Ａに示した図１のプロセッサの浮動小数点演算器の演算機能を検証する本発明の実施形態に係る動作検証プログラムの他の変形例について説明する。基本的な構成は本発明の実施形態に係る動作検証プログラム７００と同様であるが、パラメタ設定ルーチン７０１において命令数、検証パターン数に加え、命令種を与える。本実施形態では浮動小数点加算命令(fadd)と浮動小数点乗算命令(fmul)を設定する例を説明する。それぞれの演算処理タイミングは４τ、６τとする。この設定によりルーチン７０２で作成される命令がランダムではなく図６Ｃに示されるように演算処理タイミングの異なるfadd命令とfmul命令のみとなり、浮動小数点加算器と浮動小数点乗算器のみではなく、命令投入を制御する命令制御部の検証も行うことができる。
【００３０】
次に、浮動小数点加算命令(fadd)のみを設定する例について説明する。この設定により図６Ｄに示されるようにfadd命令のみが作成され浮動小数点加算器についてのみ特化して検証することができる。
【００３１】
このように命令作成の際に作成する命令種を制御する手法を追加して作成する命令を操作することで検証する演算器を検証者の意図で設定することができ、さらに命令制御部での命令投入機能についても検証することができる。
【００３２】
またさらに、図６Ａに示した図１のプロセッサの浮動小数点演算器の演算機能を検証する本発明の実施形態に係る動作検証プログラムの別の変形例について説明する。基本的な構成は本発明の実施形態に係る動作検証プログラム７００と同様であるが、パラメタ設定ルーチン７０１において命令数、検証パターン数に加え、使用するオペランドレジスタ番号を与える。本実施形態では０，２，４，６番のレジスタのみを使用するように設定する。この設定により、ルーチン７０２で作成される命令において使用されるレジスタ番号がランダムではなく制限されるため図６Ｅに示されるように先行命令の結果レジスタと後続命令で使用するオペランドレジスタ番号が同じ番号になる。こうすることで前後の命令でのオペランドの干渉を操作し先行命令の演算結果が後続命令のオペランドとして使用するデータのバイパスが発生するため、検証モデルの命令制御部についての検証をすることができる。このように命令作成の際に作成する命令で使用するレジスタを制御する手法を追加して作成した命令で使用するオペランドを操作して、演算処理部だけでなく、データのバイパスを制御する命令制御部の検証も行うことができる。
【００３３】
以上の説明ではもっぱらシミュレーションモデルを例にして説明したが、同様な手法のプログラムで実際の計算機を検証することも可能である。
以上に説明したことを概括すれば本発明は以下の構成を備えるものである。
【００３４】
（付記１）  プロセッサの動作を検証する動作検証方法であって、検証対象とは異なる別の演算器で検証命令の期待値を求め、前記期待値と検証対象演算器で実際に演算した結果を比較して前記検証演算器の動作検証を行うことを特徴とする動作検証方法。
【００３５】
（付記２）  プロセッサの動作を検証する動作検証プログラムであって、コンピュータに、ある検証命令を作成する手順と、作成した検証命令を検証対象とは異なる別の演算器で演算してその期待値を求める手順と、求めた前記期待値と検証対象演算器で実際に演算した結果を比較して検証対象演算器の動作検証を行う手順を実行させるための動作検証プログラム。
【００３６】
（付記３）  プロセッサの動作を検証する動作検証プログラムであって、コンピュータに、検証命令を複数連続して作成する手順と、連続作成した検証命令すべてを検証対象とは異なる別の演算器で演算してその結果のレジスタや記憶域の期待値を求める手順と、求めた前記期待値と検証対象演算器で実際に演算した結果のレジスタや記憶域の値を比較して検証対象演算器の動作検証を行う手順を実行させるための動作検証プログラム。
【００３７】
（付記４）  前記検証命令の演算に係るオペランドを作成する手順をコンピュータに実行させる際、前記検証命令の演算が特定のデータパターンに特化した演算となるようオペランドの作成制御を行って当該演算についての検証を行うことを特徴とする付記２又は３に記載の動作検証プログラム。
【００３８】
（付記５）  前記検証命令を作成する手順をコンピュータに実行させる際、作成する前記検証命令が特定の命令に特化した命令列になるよう制御し当該命令列についての検証を行うことを特徴とする付記３に記載の動作検証プログラム。
【００３９】
（付記６）  前記検証命令を作成する手順をコンピュータに実行させる際、作成する前記検証命令が命令で使用するレジスタを規定し特定のレジスタパターンに特化した命令列になるよう制御し当該命令列についての検証を行うことを特徴とする付記３に記載の動作検証プログラム。
【産業上の利用可能性】
【００４０】
本発明の動作検証プログラムは、シミュレーションモデルのみならず、実際の計算機においても動作検証を行うことが可能であり、今後ますます高集積度化が進む計算機の設計段階、試作段階におけるデバッグ期間の短縮化に寄与することが期待される。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施形態に係るプロセッサの構成を示すブロック図である。
【図２】図１のプロセッサの浮動小数点加減算器の加算機能を検証する本発明の実施形態に係る動作検証プログラムによる処理フローを示す図である。
【図３】図１のプロセッサの浮動小数点演算器の演算機能を検証する本発明の実施形態に係る動作検証プログラムによる処理フローを示す図である。
【図４】本実施形態で使用する命令形式の一例を示す図である。
【図５Ａ】図１のプロセッサの浮動小数点加減算器の加算機能を検証する本発明の実施形態に係る動作検証プログラムを示す図である。
【図５Ｂ】図５Ａの動作検証プログラムにおいて作成された命令列の例を示す図である。
【図６Ａ】図１のプロセッサの浮動小数点演算器の演算機能を検証する本発明の実施形態に係る動作検証プログラムを示す図である。
【図６Ｂ】図６Ａの動作検証プログラムにおいて作成された命令列の例を示す図である。
【図６Ｃ】図６Ａの動作検証プラグラムにおいて命令作成の際に作成する命令種を制御する手法を追加して作成された命令列の例を示す図である。
【図６Ｄ】図６Ａの動作検証プラグラムにおいて命令作成の際に作成する命令種を制御する手法を追加して作成された他の命令列の例を示す図である。
【図６Ｅ】図６Ａの動作検証プログラムにおいて命令で使用されるレジスタに制限を与えて作成された命令列の例を示す図である。
【図７】本発明で検証するプロセッサの例を示す図である。
【符号の説明】
【００４２】
２００  対象プロセッサ
２１０  命令制御部
２２０  データ制御部
２３０  演算処理部
２３００  固定小数点演算器
２３０１  固定小数点レジスタ
２３０２  ＡＬＵ
２３０３  シフタ
２３０４  乗算器
２３０５  除算器
２３０６  ストア演算器
２３１０  浮動小数点演算器
２３１１  浮動小数点レジスタ
２３１２  加減算器
２３１３  乗算器
２３１４  除算器
２３１５  ストア演算器
【図１】
2007047893.tif 000003
【図２】
2007047893.tif 000004
【図３】
2007047893.tif 000005
【図４】
2007047893.tif 000006
【図５Ａ】
2007047893.tif 000007
【図５Ｂ】
2007047893.tif 000008
【図６Ａ】
2007047893.tif 000009
【図６Ｂ】
2007047893.tif 000010
【図６Ｃ】
2007047893.tif 000011
【図６Ｄ】
2007047893.tif 000012
【図６Ｅ】
2007047893.tif 000013
【図７】
2007047893.tif 000014