(57)【特許請求の範囲】
【請求項１】
分岐履歴テーブル（ＢＨＴ）を含む命令処理ユニットの検証のためのテスト結果を生成するために、シミュレーション・テストにおいて使用される方法であって、
ユニット・シミュレーション命令ストリーム発生器を活動化することにより、少なくとも１つの第１のテスト命令ストリームを、命令ストリームを模倣するが、分岐である擬似命令および分岐でない擬似命令で構成されたデータ・ストリームとして、テストすべき命令処理ユニットの論理に提供するステップと、
前記論理のためのテスト命令ストリームを、チェックすべきテスト信号出力を供給するための結果として前記論理を介してシャドー・アレイに結合するステップと、
を含む、方法。
【請求項２】
ＢＨＴアレイをプリロードするステップを含む、請求項１記載の方法。
【請求項３】
前記ユニット・シミュレーション命令ストリーム発生器が、限られた数の前記第１のテスト命令ストリームにより、テスト全体を通じて使用される一組の"擬似命令データ・ストリーム"を生成し、命令履歴がＢＨＴアレイによりテストの間に記録される、請求項１記載の方法。
【請求項４】
前記"擬似命令データ・ストリーム"を生成するステップが、テストの間に使用されるＢＨＴアレイの範囲を制限し、ＢＨＴアレイ空間の各部分が複数の分岐履歴を保持するように、前記ＢＨＴアレイの有用なアレイ領域が選択される、請求項３記載の方法。
【請求項５】
前記有用なアレイ領域が選択された後、プロセスが１つ以上の"擬似命令データ・ストリーム"を生成し、該データ・ストリームが命令ユニット・パイプライン・シミュレーション制御ユニット・アレイ・ローダに転送され、前記ローダがこれらのストリームから選択して、前記ＢＨＴ論理をシミュレートする、請求項４記載の方法。
【請求項６】
１ストリームが終了するとき、前記アレイ・ローダが異なるストリームを選択して、シミュレーションを続ける、請求項５記載の方法。
【請求項７】
前記第１のテスト命令ストリームを生成するステップが、決定された前記ＢＨＴアレイの領域にマップされる命令アドレス及び命令タイプを生成することにより、前記第１のテスト命令ストリームの各々に対して実際の擬似命令データを生成する、請求項３記載の方法。
【請求項８】
前記ＢＨＴアレイをプリロードするステップが、テストの開始時に前記ＢＨＴの初期状態の可変制御を提供し、シミュレーションの開始時に履歴を提供する、請求項２記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般に、電子部品のテストに関し、特に、マイクロプロセッサ論理の設計のテスト及び検証に関し、分岐履歴テーブル（ＢＨＴ）の改良された論理検証のためのシミュレーション環境を生成する方法を提供する。
【０００２】
【従来の技術】
ＩＢＭにおけるプログラム・テストの実行によるＳ／３９０開発テストでは、一種のプロセッサ・レベル・テストが、分岐履歴テーブルすなわちＢＨＴの体系的適合性を検証するために使用され得る。しかしながら、こうした従来のテストは、ＢＨＴ論理が目論見通りに実行されない場合の問題を見出すとは限らない。分岐履歴テーブルの検証を扱う既知の特許は存在せず、当業者はこれまで何の教示も提供されなかった。
【０００３】
【発明が解決しようとする課題】
従って、本発明者は、分岐履歴テーブルの検証のための新たな方法を述べ、その利用が望ましいと信ずるものである。
【０００４】
【課題を解決するための手段】
本発明は、マシン設計の分岐履歴テーブル（ＢＨＴ）などの、命令処理ユニットの検証のための方法について述べる。分岐履歴テーブルを駆動するために述べられる好適な実施例に従う検証方法は、２つの要素を含む。第１の要素は、分岐履歴テーブル論理上のストレスを制御するための、命令ストリームを生成する方法を含む。第２の要素は、分岐履歴アレイをプリロードし、テストの初めに興味深いシミュレーションを可能にする方法を含む。
【０００５】
命令ストリームを生成する方法は、命令ストリーム内の分岐のレートや分岐タイプなどの、分岐履歴論理にとって関心のあるパラメータのユーザ制御を可能にする。異なるテストにおいて、これらのパラメータを変化させることにより、ユーザは論理の異なるコーナーに対してストレスを与え、容易にテスト環境を操作することができる。
【０００６】
分岐履歴アレイをプリロードする方法は、テストの開始時に、分岐履歴テーブルの初期状態の可変制御を提供する。この方法はシミュレーションの開始時に、テストが”履歴”を有することを可能にする。さもないと、開発のために多くのシミュレーション・サイクルが要求される。この方法はテストの開始時に、興味深いシミュレーション状況に対するユーザ制御を提供する。
【０００７】
これらの方法は、ＢＨＴ環境の有用なテストを提供するように組み合わされ、また改められ、ここで述べられる方法により検証される設計は、マシン設計の体系的適合性を提供する。これは特に、設計された論理のコーナー条件のために有効である。
【０００８】
【発明の実施の形態】
観測の結果、分岐が初期に誤って推測された場合のテストの体系的な結果が、分岐が正しく推測された場合の同一のテストの結果と同一であることが判明した。誤って推測されたテストは、単に実行に長い時間を要するだけである。なぜなら、プロセッサ・パイプラインが、誤った命令経路の解読から回復しなければならないからである。新たな方法は、シミュレーションのための命令ストリームの特殊生成、及び分岐履歴テーブル・アレイの革新的プリローディングを含む。同時に、ここで述べられる方法は、論理のコーナー条件をカバーするように設計される。
【０００９】
問題により詳細に注目すると、図１は一般に、図２に示される方法が実装されるＢＨＴシミュレーション環境を示す。ユニット・シミュレーション・ランダム命令ストリーム発生器１及びＢＨＴアレイ・ローダ２が新規であって、ビヘイビュラル４及びシャドー・アレイ３が、ランダム命令ストリーム発生器１及びＢＨＴアレイ・ローダ２を、他の検証方法の使用と結び付ける。ＢＨＴ制御論理５は、検証されている設計を表す。
【００１０】
ここで読者は、ユニット・シミュレーション・ランダム命令ストリーム発生器１及びＢＨＴアレイ・ローダ２が、命令ストリームを生成する新たな方法を提供することを理解する必要がある。この方法は、命令ストリーム内の分岐のレートや分岐タイプなどの、分岐履歴論理にとって関心のあるパラメータのユーザ制御を可能にする。異なるテストにおいてこれらのパラメータを変化させることにより、ユーザは論理の異なるコーナーにストレスを与えて、容易にテスト環境を操作することができる。
【００１１】
従来、汎用シミュレーション方法を用いて、論理ブロック（図１のラベル５）を、ビヘイビュラル・ドライバ（図１のラベル４）及び結果をチェックするためのシャドー論理（図１のラベル３）により検証した。ＢＨＴ論理の場合、ビヘイビュラル・ドライバは一般に、体系的な検証プログラムである。好適な実施例は代わりに、命令ストリームを模倣するが、特定の命令を含まないデータ・ストリームを使用してＢＨＴ論理をシミュレートするための新たな方法を提供する。実命令を”擬似命令データ・ストリーム”により置換することが可能である。なぜなら、ＢＨＴ論理は命令アドレス及び命令タイプだけに関係し、実際の命令そのものには関係しないからである。従って、ビヘイビュラル刺激は、論理が操作する必要のある限られたデータをその論理に提供するだけである。
【００１２】
次に図２を参照すると、本方法は分岐履歴テーブルを検証する方法を提供することが分かる。ここで”履歴”を記録する必要がある。しばしばテストのために使用されるランダム化データ・ストリームは、ここでは論理を適切にテストしないので使用されない。代わりに、シミュレーションを完全に制御するストリームが生成されて、設計仕様に対する論理の適合性を検証する興味深い状況を論理に提供する。
【００１３】
従って、以下で述べるステップは、テストが開始するとき、分岐履歴テーブルの初期状態の可変制御を提供する、分岐履歴アレイをプリロードする方法を提供する。この方法は、シミュレーションの開始時に、テストが”履歴”を有することを可能にする。さもないと、開発のために多くのシミュレーション・サイクルが要求される。この方法はテストの開始時に、興味深いシミュレーション状況に対するユーザ制御を提供する。
【００１４】
より詳細には、図２を参照すると、２ステップ・アルゴリズムが命令ストリームを生成するために使用される。ステップ１は、テストの間に使用される限られた数のブロックの生成であり、ステップ２は、それらのブロック内でのストリームの生成である。典型的な命令ストリームは、ステップ２に示されるようなフローを有する。
【００１５】
本方法のアルゴリズムは、テスト全体を通じて使用される一組の”擬似命令データ・ストリーム”を生成するステップにより開始する。これらの命令ストリームの数を制限することにより、テストの間にＢＨＴにより命令履歴が観測され、記録される。
【００１６】
”擬似命令データ・ストリーム”を生成する第１のステップは、テストの間に使用されるＢＨＴアレイの範囲を制限する。範囲を制限することにより、ＢＨＴ論理内で興味深いコンフリクトを生成するのに、少しのシミュレーション・サイクルですむ。
【００１７】
これらのコンフリクトは、ＢＨＴ論理が、制限されたアレイ領域にマップされる複数の分岐命令の履歴を記録しようとするとき、発生する。ＢＨＴアレイの１つ以上の部分が、このプロセスにおいてランダムに選択される。ＢＨＴアレイ空間の各部分は、複数の分岐履歴を保持し得る。シミュレーションの特性は、ランダム・バイアシングを用いて、アレイの部分の数及び各部分のサイズを選択することにより変更され得る。部分の数が少ないほど、またはサイズが小さいほど、履歴コンフリクトの可能性は増加する。逆に、部分の数が多いほど、またはサイズが大きいほど、コンフリクトの可能性は低減する。一般に、コンフリクトの低減は、ＢＨＴの良好な実行を可能にする。
【００１８】
有効なアレイ領域が選択された後、プロセスは”擬似命令データ・ストリーム”を生成する準備が整う。このステップの結果は、図２のステップ２のところに示される１つ以上のデータ・ストリームである。擬似命令ストリーム生成に続くシミュレーションの間、ビヘイビュラルがこれらのストリームから選択して、ＢＨＴ論理をシミュレートする。１つのストリームが終了すると、ビヘイビュラルは異なるストリームを選択してシミュレーションを続行する。
【００１９】
”擬似命令データ・ストリーム”を生成するステップは、生成するストリームの数、及び各ストリームが含む命令の数を選択することにより開始する。再度、これらのパラメータを選択するためのバイアシングがシミュレーションに作用する。より多くのまたはより長いストリームは、ＢＨＴアレイが特定の分岐の履歴を有する可能性を低減する。
【００２０】
一旦命令ストリームの数及び長さが決定されると、各ストリームに対して、実際の擬似命令データが生成される。このステップでは、命令アドレス及び命令タイプが生成される。生成される全ての命令アドレスは、前述のアレイ領域ステップにおいて決定されたＢＨＴアレイの一部にマップされる。
【００２１】
命令タイプ情報は、この命令が分岐であるか否かを詳述し、そうである場合、分岐のクラスが決定される。実際の命令コードはＢＨＴにより要求されず、従って生成されない。命令が分岐であるか否かは、再度バイアシングにより決定される。命令が分岐であると決定される場合、ターゲット・アドレスが生成され、再度上で決定されたアレイ領域により制限される。ターゲット命令アドレスは、以前に生成されたアドレス（命令ストリーム・ループをシミュレートする）か、または新たなアドレスである。新たなアドレスは、命令ストリーム発生器が現ストリームの終了のためにリターンする前に、新たな”擬似命令ストリーム”を再帰的に生成させる。
【００２２】
各擬似命令ストリーム内の最後の命令は、常に、制限されたアドレス領域への分岐である。シミュレーションの間、この分岐のターゲットが、別の命令ストリームの開始を指し示すように操作される。
【００２３】
好適な実施例によれば、全ての擬似命令ストリームが生成されるとき、ＢＨＴアレイがシミュレーションのためにプリロードされ得る。これは本発明の重要な第２の要素である。ＢＨＴアレイがプリロードされない場合、シミュレーションの開始部分が浪費される。なぜなら、シミュレーションが発生するとき、分岐履歴が擬似命令ストリームから蓄積されるからである。ＢＨＴアレイを様々な”正確度”の分岐履歴データによりプリロードすることにより、シミュレーションの初期部分が極めて有効になる。プリロードされたデータの正確さの変化は、異なる態様で論理にストレスを与える。プロセスはＢＨＴアレイのプリローディングにおいて変化を提供する。これらには次のものが含まれる。
ａ）正しい分岐ターゲット・アドレスの操作。
ｂ）分岐でない命令アドレスに対する、ＢＨＴアレイ内の履歴の生成。
ｃ）特定の命令アドレスに対する、分岐のクラスの変更。
ｄ）ＢＨＴアレイへのランダム・データのローディング（ＢＨＴアレイ内の有効ビットが’オン’であることを除き、履歴を生成しないことに類似）。
ｅ）全ての分岐命令アドレスをプリロードしないように選択。
【００２４】
これらの変化の各々は、シミュレーションを異なって進行させる選択肢を提供する。例えば、ターゲット・アドレスがＢＨＴアレイに記憶される前に操作される場合、ＢＨＴ論理がターゲット・アドレスを誤って予測し、プロセッサ・パイプラインを機能停止にする。これはここで提供されるシミュレーション・テストでは非常に好ましく、論理のコーナー条件を働かせる。
【００２５】
これらの変化の一部または全部は、ＢＨＴアレイをプリロードするために使用され得る。バイアシング制御がこれらのモードを選択するために使用される。命令ストリームの各々は、１つずつ分岐のために走査される。
【００２６】
分岐に遭遇するとき、バイアシング制御がその分岐をＢＨＴアレイにロードするために使用される。これはＢＨＴアレイ内に、分岐のための余地が存在する場合にだけ実行される。多くの分岐が単一の合同クラスにマップされる場合、最初のＮ個だけがロードされ得る。ここでＮは合同クラスの数である。一旦コンパートメントが充填されると、もはや分岐はそのコンパートメント内にはプリロードされない。ＢＨＴアレイのプリローディングは、擬似命令ストリーム内の全ての分岐が走査されるまで続けられる。
【図面の簡単な説明】
【図１】ＢＨＴシミュレーション環境を示す図である。
【図２】命令ストリームを生成するために使用される２ステップ・アルゴリズムを示す図である。
【符号の説明】
１  ユニット・シミュレーション・ランダム命令ストリーム発生器
２  ＢＨＴアレイ・ローダ
３  シャドー・アレイ
４  ビヘイビュラル
【図１】
0003575599.tif 000002
【図２】
0003575599.tif 000003