(57)【要約】【課題】情報処理装置のテスト命令列生成処理において、テスト命令列の組み合わせを乱数によって決定し、分岐ループ命令列を生成しない場合、分岐命令の分岐方向は一方向(分岐あり又は分岐なし)しか試験することができない。また、単純な分岐ループ(1重ループ)では、分岐命令の先行制御論理を網羅的に試験することが困難である。【解決手段】 試験命令列生成時に、分岐命令による多重ループ命令列生成手段を設け、分岐命令を分岐あり・なしの両方向実行できるような命令列生成及び分岐ループ回数によって分岐先の命令アドレスの変更を可能とし、分岐命令の先行制御論理試験を網羅的に効率よく行えるようにする。【選択図】図１
2009015605.tif 000002
【特許請求の範囲】
【請求項１】
乱数により試験命令列を生成する情報処理装置の試験方法において、試験命令列中に分
岐命令による多重ループ命令列の生成を可能とし、ループ回数によって分岐方向(分岐す
る、分岐しない)の変更を可能とすることを特徴とする情報処理装置の試験命令列生成方
式。
【請求項２】
請求項１に記載の情報処理装置の試験方法において、ループ回数N回に１回、分岐方向
を変更する分岐条件設定命令を分岐命令の前に生成することを特徴とする情報処理装置の
試験命令列生成方式。
【請求項３】
請求項１に記載の情報処理装置の試験方法において、ループ回数によって分岐命令の分
岐先アドレスを変更することを特徴とする情報処理装置の試験命令列生成方式。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は乱数を用いて情報処理装置の試験を行なう論理検証技術に関し、特に分岐命令
の先行制御論理を効率的かつ高精度に検証する情報処理装置の試験命令列生成方式に関す
るものである。
【背景技術】
【０００２】
情報処理装置の論理検証には乱数で試験命令を生成し、生成した試験命令に対して命令
シミュレータにより期待値を生成し、試験対象の情報処理装置の実行結果と期待値との比
較により試験を行う方式が提案されている。
【０００３】
試験命令列の生成方法については単純にすべての試験命令を網羅するのではなく、先行
制御・分岐予測・レジスタ及びアドレスの依存関係など情報処理装置固有の論理に着目し
た方法が提案されている。
【０００４】
【特許文献１】特開平１−６８８３６号公報
【特許文献２】特開平５−３４２０５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
分岐履歴テーブルの精度向上やパイプライン上において先行フェッチする命令数の増加
に伴って、分岐命令に関する先行制御論理は、先行予測する分岐命令数・分岐先領域のフ
ェッチの増加等、複雑化の一途をたどっている。 テスト命令列の組み合わせを乱数によ
って決定する情報処理装置の試験命令列生成処理において、分岐命令の分岐方向を乱数に
より決定し、分岐ループを生成しない場合、分岐の一方向(分岐する又は分岐しない)しか
選択・検証することができない。また、単純な分岐ループ(1重ループ)では、分岐方向(分
岐する、分岐しない)の変更はM回の分岐ループ中、M回目に分岐する→分岐しないの１回
のみである。このような試験命令列生成処理では、分岐命令の分岐方向の変更頻度は低く
、又分岐先アドレスは常に一定であるため、分岐命令の先行制御論理を網羅的に試験する
ことが困難である。
【課題を解決するための手段】
【０００６】
試験命令列生成時に分岐命令による多重ループ命令列生成手段を設け、分岐ループ回数
によって、分岐命令を分岐する又は分岐しないの両方向実行できるような命令列生成を可
能とする。また、分岐先アドレス変更手段を設け、分岐ループ回数によって分岐先の命令
アドレスの変更を可能とする。
【発明の効果】
【０００７】
試験命令列中に分岐命令による多重ループ命令列を生成し、分岐ループ回数によって分
岐する又は分岐しないの分岐先の変更を可能とすることにより、分岐予測が成功した場合
と失敗した場合の先行制御論理の検証が可能となる。また、分岐ループ回数によって分岐
先の命令アドレス変更を可能とすることにより、分岐予測によって先行フェッチを始めた
分岐先アドレス領域の読出しを廃棄し、別の分岐先アドレス領域を再フェッチするという
先行制御論理の検証が可能となる。このように、分岐予測の先行制御論理試験を網羅的に
効率よく検証できる。
【発明を実施するための最良の形態】
【０００８】
以下、本発明の情報処理装置の試験命令列生成方式について、図面を用いて説明する。
【０００９】
図１は、本発明の試験命令列生成原理の説明図である。
【００１０】
試験命令列生成処理において、基本的に試験命令は乱数により命令選択し、命令生成を
行う（１０１）。命令選択時に命令ループ命令列の生成を選択した場合、分岐ループ命令
列自体をマクロのように１つのかたまりとして命令生成を行う（１０２）。分岐又は非分
岐の制御は、分岐条件設定命令（１０３）により行ない、何回目のループで分岐条件を変
更するかを決定する。
【００１１】
また、分岐アドレス変更命令（１０４）により、分岐命令の分岐先アドレスを変更する
。分岐先アドレスは分岐アドレステーブルで保持し、各分岐先の領域には試験命令列を生
成する（１０５）。
【００１２】
図２は、分岐ループ命令列生成処理手順を示したものである。まず、乱数により生成す
る試験命令を選択する（処理ステップ２０１）。処理ステップ２０１で分岐ループ命令列
の生成を選択しなかった場合、１命令分の試験命令生成処理を行なう（処理ステップ２１
０）。処理ステップ２０１で分岐ループ命令列の生成を選択した場合、分岐ループ命令列
パターン選択処理によりループ命令列のタイプを選択する（処理ステップ２０２）。その
後、処理ステップ２０２で選択した分岐ループ命令列パターンに基づいて、以下の処理を
行う。ループ対象の命令数Mを乱数により(1-10命令)決定する（処理ステップ２０３）。
その後、分岐先アドレス変更命令生成処理を行う。（処理ステップ２０４）その後、分岐
する・分岐しないの分岐方向をループ回数によって変更できる分岐条件設定命令生成処理
を行なう（処理ステップ２０５）。
【００１３】
分岐先アドレス変更命令及び分岐条件設定命令及び分岐命令自身も含んだループ対象M
命令分の命令生成処理を行い（処理ステップ２０６）、処理を終了する。なお、分岐ルー
プ中の分岐先アドレス変更命令及び分岐条件設定命令の生成位置は、ループ対象の命令数
Mの中で乱数により決定する。
【００１４】
図３は分岐ループ命令列パターン選択処理２０２で選択する分岐ループ命令列パターン
の例を示したものである。
【００１５】
（ａ）は2重ループ命令列であり、分岐命令Aの分岐の条件が成立するまでのループカウ
ントmと分岐命令Bの非分岐の条件が成立するまでのループカウントnの大小によってルー
プ終了条件を決定する。ｍ≦ｎの場合、分岐命令Aで、m＞nの場合は、分岐命令Bでループ終
了する。（ｂ）は3重ループ命令列であり、分岐命令Aはループカウントによって、分岐と
非分岐を交互に繰り返す。また、分岐命令Bの非分岐の条件が成立するまでのループカウ
ントmと分岐命令Cの非分岐の条件が成立するまでのループカウントnの大小によってルー
プ終了条件を決定する。（ａ）、（ｂ）いずれの分岐ループ命令列パターンにおいても、
ループカウントm,nは乱数により決定する。
【００１６】
図４は分岐先アドレス変更命令生成処理２０４の原理図を示したものである。（ａ）は
分岐先アドレス変更命令生成処理で使用する分岐アドレステーブルである。分岐アドレス
テーブルは、分岐ループ回数１、２・・・Ｎと分岐ループ回数毎の分岐先命令アドレスを
格納したテーブルである。あらかじめ乱数により生成したＭ個の分岐先アドレスの中から
分岐先アドレスを選択し、分岐アドレステーブルを作成する。分岐先アドレスの分岐領域
にも、それぞれ分岐ループ命令列を作成する。
【００１７】
（ｂ）は分岐先アドレス変更分岐命令生成処理２０４を説明するための分岐ループ命令
列の一実施例を示したものである。分岐先アドレス変更命令はLOAD命令（４０１）、ADD
命令（４０２）の2命令で構成される。まず、LOAD命令（４０１）で（ａ）に示した分岐
先アドレステーブルへのポインタによって示される分岐先アドレスをレジスタへロードし
、次にADD命令（４０２）で分岐先アドレステーブルポインタの更新を行う。分岐命令（
４０３）の分岐先は、LOAD命令（４０１）で読み込んだレジスタに設定する。このように
して、分岐先アドレステーブルの読み込み・更新によってループ毎に分岐命令の分岐先を
変更する。
【００１８】
図５は図２の分岐条件設定命令生成処理２０５を示したものである。
【００１９】
まず。分岐条件設定命令として、レジスタの値によって条件コードが変更になる命令を
用いるため、分岐条件設定用に使用するレジスタの値を0に設定する（処理ステップ５０
１）。次に、分岐ループ回数何回に1回分岐方向（分岐する・分岐しない）を変更するか
という分岐方向変更回数Ｎを乱数により決定する（処理ステップ５０２）。処理ステップ
５０２でＮ＝１の場合、分岐条件設定命令として、レジスタの値と１とのＸＯＲをとる命
令を選択する（処理ステップ５０３）。このＸＯＲ命令はレジスタの値が０かどうかによ
って条件コードが変化する命令であり、レジスタの値は、０、１、０，１・・・と変化す
るので1回毎に分岐方向の変更が可能となる。処理ステップ５０２でＮ≠１の場合、分岐
条件設定命令として、加算命令又は減算命令を選択する（処理ステップ５１０）。次に、
Ｎ回に１回レジスタの値がオーバーフローするように加算命令（減算命令）でレジスタに
加算(減算)する値を決定する。
【００２０】
ここで用いる加算命令（減算命令）は、レジスタの値がオーバーフローしているかどう
かによって条件コードが変化する命令であり、N回に1回毎に分岐方向の変更が可能となる
。
【図面の簡単な説明】
【００２１】
【図１】本発明の試験命令列生成原理を説明するための図。
【図２】分岐ループ命令列生成処理手順を説明するための図。
【図３】分岐ループ命令列パターンの一例を示す図。
【図４】分岐先アドレス変更命令生成処理を説明するための図。
【図５】分岐条件設定命令選択処理を説明するための図。
【符号の説明】
【００２２】
１０１…乱数による命令生成、１０２…分岐ループ命令列生成、１０３…分岐条件設定
命令、１０４…分岐アドレス変更命令、１０５…分岐先アドレスの命令生成、２０１…乱
数による試験命令選択処理、２０２…分岐ループ命令列パターン選択処理、２０３…ルー
プ対象命令数Ｍの選択処理、２０４…分岐先アドレス変更命令生成処理、２０５…分岐条
件設定命令生成処理、２０６…ループ対象Ｍ命令分の命令生成処理、５０１…レジスタの
値の０クリア処理、５０２…分岐方向変更回数決定処理、５０３…分岐条件設定命令設定
処理１、５１０…分岐条件設定命令設定処理２、５１１…加算値・減算値の設定処理。
【図１】
2009015605.tif 000003
【図２】
2009015605.tif 000004
【図３】
2009015605.tif 000005
【図４】
2009015605.tif 000006
【図５】
2009015605.tif 000007