JP3373607B2 - プロセッサの制御機構検証用命令列の自動生成方法及び装置 - Google Patents

プロセッサの制御機構検証用命令列の自動生成方法及び装置

Info

Publication number
JP3373607B2
JP3373607B2 JP21781393A JP21781393A JP3373607B2 JP 3373607 B2 JP3373607 B2 JP 3373607B2 JP 21781393 A JP21781393 A JP 21781393A JP 21781393 A JP21781393 A JP 21781393A JP 3373607 B2 JP3373607 B2 JP 3373607B2
Authority
JP
Japan
Prior art keywords
instruction
processor
instruction sequence
instructions
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP21781393A
Other languages
English (en)
Other versions
JPH0773037A (ja
Inventor
洋哲 岩下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP21781393A priority Critical patent/JP3373607B2/ja
Publication of JPH0773037A publication Critical patent/JPH0773037A/ja
Priority to US08/698,755 priority patent/US5673425A/en
Application granted granted Critical
Publication of JP3373607B2 publication Critical patent/JP3373607B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プロセッサ内部の命令
のパイプライン処理に関連した制御機構検証用命令列の
自動生成方法及び装置に関する。プロセッサの機能設計
または構造設計が仕様記述を正しく実現しているか否か
を検証するための論理シミュレーション、および、製造
されたプロセッサが仕様通り動作するか否かを検証する
ための動作試験では、プロセッサに与える命令列(テス
トプログラム)の作成が不可欠である。さらに、短時間
で信頼性の高い検証を行うためには、質の良いテストプ
ログラムを作成する必要がある。
【0002】
【従来の技術】従来、プロセッサ内部で命令のパイプラ
イン処理を行うことは、処理速度の高いプロセッサを実
現するために欠かせない技法である。パイプライン処理
を行なう場合、同時に処理される複数の命令の間で、次
のような競合状態が発生する可能性がある。即ち、 ・ある機能を持つハードウェア資源の数Nに対し、合計
N+1以上の使用要求が発生する状態 ・2命令間のレジスタやメモリに対するデータの読み書
きの順序が変わり、正常な実行結果が得られなくなる状
態である。
【0003】このような競合状態を解決するため、プロ
セッサ内には命令実行の一時的な停止や実行順序の入れ
換えなどを制御する機構が設けられている。プロセッサ
の構造は、一般に、実際のデータ処理を扱う演算部(A
LU,レジスタファイル等)と、それらを制御する制御
部に分けることができるが、プロセッサの中でも制御部
の持つ機能は複雑である。そのため、その機能を効率良
く検証できるテストプログラムを作成することは、重要
であると同時に難しい問題となっている。従来のテスト
プログラムは、次のような方法の組み合わせによって作
成されていた。 人手で作成する 計算機を利用して無作為に多くの命令列を発生させ
る。 既存のプログラムを利用する。 なお、本願出願人により、プロセッサの仕様記述からパ
イプライン動作検証用の命令列を自動生成する方式が既
に特許出願されているが、これは、以下の制限を満たす
単純な構造のパイプラインで構成されたプロセッサに有
効な方式であった。即ち、すべてのパイプラインステー
ジの処理が同一クロック数で完了すること、及び命令の
流れる道筋は1通りしかなく、すべての命令を同じステ
ージ構成で処理する場合である。
【0004】
【発明が解決しようとする課題】ところで、に示すよ
うに、プロセッサの制御機構検証用命令列を人手で作成
する場合、多くの開発期間が必要である。さらに、人手
作成されたものはその質を評価することが難しく、有効
性に関する保証がない。また、に示すように、計算機
を利用して無作為に命令列を発生させる場合やに示す
ように既存のプログラムを利用する場合には、命令数を
増やすことによって検証の信頼性を上げることが可能で
はあるが、論理シミュレーションや実機の動作試験のた
めに膨大な実行時間が必要となる。
【0005】そこで、本発明は、プロセッサの制御機構
検証用命令列の開発期間および論理シミュレーションや
実機の動作試験の実行時間を短縮し、なおかつ検証の信
頼性向上を実現するために、質の高い制御機構検証用命
令列を自動的に生成する方式を提供することを目的とす
る。また、本発明では、処理の完了に必要なクロック数
の異なるパイプラインステージが存在するものや、命令
がその種類によって異なるステージを流れるもの、同種
のパイプラインステージが複数個用意されておりそれら
を同時に使用可能なものなど、広範囲なプロセッサに対
して適用可能な方式を提供する。
【0006】
【課題を解決するための手段】以上の技術的課題を解決
するため、第一の発明は、図1に示すように、プロセッ
サの命令についての仕様情報の入力があると(S1)、
当該仕様情報に基づいて複数命令間の競合状態を列挙し
(S2)、各競合状態に対応するプロセッサの制御機構
検証用の命令列を生成する(S3)ことである。
【0007】第二の発明は、図2に示すように、プロセ
ッサの命令についての仕様情報を保持する仕様情報保持
部10と、前記仕様情報に基づいて複数命令間の競合状
態を列挙する競合状態列挙部20と、列挙された複数命
令間の競合状態に基づいて各競合状態に対応するプロセ
ッサの制御機構検証用の命令列を生成する複数命令列生
成部30とを有することである。
【0008】第三の発明は、図3に示すように、プロセ
ッサの命令についての仕様情報を情報処理装置に入力し
(S1)、当該仕様情報に基づいて、パイプライン内で
命令が一度も停止することなく処理が進行した後、到達
可能な複数命令間の競合状態を情報処理装置が列挙し
(S21)、当該競合状態を発生させる命令列の生成を
情報処理装置が行う(S31)ことである。
【0009】第四の発明は、図4に示すように、プロセ
ッサの命令についての仕様情報を保持する仕様情報保持
部10と、当該仕様情報に基づいて、パイプライン内で
命令が一度も停止することなく処理が進行した後、到達
可能な複数命令間の競合状態を列挙する処理進行後競合
状態列挙部21と、命令間に競合のある場合のプロセッ
サに関する命令列の生成を行う複数命令列生成部31と
を有するものである。
【0010】第五の発明は、図5に示すように、プロセ
ッサの命令についての仕様情報を情報処理装置に入力し
(S1)、複数命令間の競合が発生する命令列を情報処
理装置に入力し(S11)、競合の発生する命令列にお
いて、現実に命令を実行する際の命令実行情報を情報処
理装置が求め(S12)、前記仕様情報及び実行情報に
基づいて、入力された競合発生命令列とその他の命令と
の間で発生する新たな競合状態を情報処理装置が列挙し
(S22)、競合状態を発生させる命令列の生成を情報
処理装置が行う(S32)ことである。
【0011】第六の発明は、図6に示すように、プロセ
ッサの命令についての仕様情報を保持する仕様情報保持
部11と、競合の発生する命令列の入力を行う競合発生
命令列入力部12と、前記競合発生命令入力部12から
入力した競合発生命令と、前記仕様情報保持部11に保
持されている仕様情報に基づいて、前記競合発生命令列
において、現実に命令を実行する際の命令実行情報を求
める命令実行情報出力部13と、前記仕様情報及び前記
命令実行情報に基づいて、入力された競合発生命令列と
その他の命令との間で新たに引き起こされる複数命令間
の競合状態を列挙する新競合状態列挙部22と、当該競
合状態に基づいて、競合状態を発生される命令列の生成
を行う複数命令列生成部32とを有するものである。
【0012】ここで、「パイプライン」とは、プロセッ
サの命令に対する処理を基本的に1クロックで処理でき
る幾つかの単位動作(パイプラインステージ)に分割
し、連続する命令の実行をオーバーラップさせて各パイ
プラインステージで並列に行う処理をいう。「プロセッ
サの命令についての仕様情報」とは、プロセッサのパイ
プライン動作を決定する情報であって、例えば、プロセ
ッサの命令についてのハードウェア資源の占有時刻及び
レジスタやメモリ等のデータの読み書き実行の時刻であ
る。これらの情報をもった仕様を与えることにより、パ
イプライン動作の制御が必要となる状態を列挙すること
が可能である。さらに、プロセッサをそれらの状態に導
くための命令列を生成すれば、それはパイプライン動作
に関連した各種の制御機構を動作させるものであり、制
御機構検証用の命令列として利用することができる。
「競合状態」とは、ある機能を持つハードウェア資源の
数に対して、合計N+1以上の使用要求が発生したり、
2命令間のレジスタやメモリに対するデータの読み書き
の順序が変わり、正常な実行結果が得られなくなる状態
をいう。「命令実行情報」とは、現実に命令を実行する
際の命令実行情報であって、競合があった場合には競合
を回避して命令を実行可能とした後の各命令の仕様情報
をいう。
【0013】
【作用】第一の発明及び第二の発明について説明する。
図1及び図2に示すように、ステップS1で、仕様情報
が入力すると前記仕様情報保持部10に保持される。ス
テップS2で、前記競合状態列挙部20は、当該仕様情
報に基づいて複数命令間の競合状態を列挙する。ステッ
プS3で、前記複数命令列生成部30は、列挙された複
数命令列の競合状態に基づいて各競合状態に対応するプ
ロセッサの制御機構検証用の命令列を生成する。
【0014】続いて、第三の発明及び第四の発明を図3
及び図4に基づいて説明する。ステップS1で、前記仕
様情報が入力し、仕様情報保持部10に保持されると、
前記処理進行後競合状態列挙部21は、前記仕様情報に
基づいて、パイプライン内で命令が一度も停止すること
なく処理が進行した後到着可能な、複数命令の競合状態
を列挙する。すると、複数命令列生成部31は命令間に
競合のある場合のプロセッサに関する命令列の生成を行
う。即ち、第三の発明又は第四の発明は、第一の発明又
は第二の発明において、命令間の競合がない場合のプロ
セッサの命令毎の仕様を用いて、パイプライン内で命令
が一度も停止することなく処理が進行した後複数命令間
の競合が発生するような種類のプロセッサの制御機構検
証用命令列を、自動的に生成するようにしたものであ
る。
【0015】次に、第五の発明及び第六の発明につい
て、図5及び図6に基づいて説明する。同図に示すよう
に、ステップS1で、仕様情報が入力し、前記仕様情報
保持部11に保持され、ステップS11で、競合発生命
令列入力部12により複数命令間の競合が発生する命令
列を入力する。すると、ステップS12で、前記命令実
行情報出力部13は、入力した競合発生命令列におい
て、現実に命令を実行する際の命令実行情報を求める。
ステップS22で、前記新競合状態列挙部22は、前記
仕様情報及び前記命令実行情報に基づいて、新たな競合
状態を列挙する。すると、ステップS32で、前記複数
命令列生成部32は、当該新たな競合状態を発生させる
命令列の生成を行う。さらに、各発明に係る装置又は方
法で自動生成したプロセッサの制御機構検証用命令列
に、プロセッサの初期状態を設定する命令列および、終
了状態を保存する命令列を付加することができる。これ
により、論理シミュレーションによる検証の場合は、外
部からプロセッサの内部状態を直接初期設定した後、競
合状態を起こす命令列のみを実行し、結果を外部から直
接観測することができる。本発明では、プロセッサの初
期状態を設定する命令列および、終了状態を保存する命
令列を付加すれば、外部からプロセッサの内部状態を直
接制御/観測できない場合でも検証が行える命令列を生
成することができる。これにより、生成したプロセッサ
の制御機構検証用命令列は、実機の動作試験などにも適
用可能となる。
【0016】
【実施例】本発明の実施例を図に基づいて説明する。図
7には、本実施例に係るプロセッサ制御機構検証用命令
列の自動生成装置及び方法により検証の対象となるパイ
プラインを示す。同図に示すように、本実施例に係るパ
イプラインは、プログラムの格納されているメモリ8
と、当該プログラムに従って動作を行うプロセッサ7と
を有するものである。さらに、当該プロセッサ7には、
同図に示すように、本実施例で検証しようとする対象で
あって、命令の発生を検出してパイプラインステージの
処理の進行及び停止を決定する機構であるパイプライン
制御機構7aと、当該パイプライン制御機構7aにより
進行又は停止の指示がされるとともに、各パイプライン
ステージを示す各ステージ部7b〜7hとを有するもの
である。このステージ部7b〜7hには、プログラムカ
ウンタに相当する命令をメモリ8から読み出す“IF”
段階に相当する命令フェッチ部7bと、必要なオペラン
ドをレジスタから読み出したり命令の解読を行う“I
D”段階に相当する命令デコード部7cと、整数又は論
理演算を行う“IU”段階に相当する整数・論理演算部
7dと、浮動小数点演算を行う“FPU”段階に相当す
る浮動小数点演算部7e,7fと、メモリアクセスを行
う“MEM”段階に相当するメモリアクセス部7gと、
レジスタへのライトバックを行う“WB”段階に相当す
るライトバック部7hとを有するものである。
【0017】このプロセッサで1クロックサイクルの間
にフェッチする命令は1個であり、FPU以外のパイプ
ラインステージの処理は全て1クロックサイクルで終了
する。FPUは命令によって消費するクロックサイクル
数が異なり、FADD命令では2、FMUL命令では4
である。また、FPUは2個用意されており、同時に2
つまで浮動小数点演算を実行することができるものとす
る。
【0018】さらに、図9には第一の実施例に係るブロ
ック図を示す。同図に示すように、本例に係るプロセッ
サの制御機構検証用命令列の自動生成装置は、プロセッ
サに関する命令毎のハードウェア資源の占有時刻及びレ
ジスタやメモリ等のデータの読み書き実行の時刻を示す
仕様情報を入力するキーボードにより構成される仕様情
報入力部9と、当該仕様情報に基づいてプロセッサの制
御機構検証命令列を生成するCPU及びメモリ6と、生
成された命令列を、記憶、表示または記録を行う出力部
5とを有する。さらに、当該CPU及びメモリ6には、
同図に示すように、入力した前記仕様情報を保持する仕
様情報保持部1と、前記仕様情報に基づいて複数命令間
の競合状態を列挙する競合状態列挙部2と、列挙された
複数命令列の競合状態に基づいて各競合状態に対応する
プロセッサの制御機構検証用の命令列を生成する複数命
令列生成部3とを有するものである。
【0019】さらに、前記仕様データ保持部1には、ハ
ードウェア資源を占有する時刻を保持する領域1aと、
レジスタやメモリ等のデータ読み書きを実行する時刻を
保持する領域1bとを有する。図8には、プロセッサの
代表的な命令、“NOP”、“ADD”、“LOA
D”、“FADD”及び“DMUL”に関し、各パイプ
ラインステージを占有する時刻及びGPR(汎用レジス
タ)のデータ読み書きを実行する時刻の仕様である。こ
こで、IF,ID,IU,FRU,MEM,WBは、そ
の時刻にそれぞれのパイプラインステージを占有するこ
とを示し、GPR/R及びGPR/Wは、それぞれその
時刻にGPRのデータを読み出すこと及び書き込むこと
を示す。ここでは、これ以外のハードウェア資源(プロ
グラムカウンタやメモリなど)は省略しており、この仕
様に与えられた命令及びハードウェア資源のみに関する
検証用命令列を生成するものとする。
【0020】続いて、本実施例に係る動作について説明
する。図10に示すように、ステップSJ1で、命令が
占有する全てのハードウェア資源についてその占有する
時刻、及び、レジスタやメモリ等のデータ読み書きを実
行する時刻を各命令毎の仕様情報を前記仕様情報入力部
9から入力し、前記仕様情報保持部1に保持する。仕様
情報の例は、図8に示した通りである。ステップSJ2
で、前記競合状態列挙部2は複数命令間の競合状態を列
挙する。その列挙の手順は、図9の仕様情報保持部1の
ハードウェア資源を占有する時刻を示す情報を保持する
領域1aに基づいて、命令に占有されるすべてのハード
ウェア資源について、その種類のハードウェア資源の物
理的な数をNとする場合、N+1個の命令が同時刻にそ
のハードウェア資源を占有しようとする状態を列挙す
る。これは、命令毎の仕様をもとに同じハードウェア資
源を占有するN+1個の命令実行を、開始時刻をずらし
て重ね合わせることにより行う。図11及び図12は、
図8の仕様をもとに、同時に3つの命令がFPUを占有
しようとする状態を列挙した様子を示す。さらに、図1
3は、図8の仕様をもとに、同時に2つの命令がWBを
占有しようとする状態を列挙した様子を示す。
【0021】次に、図9のレジスタやメモリ等のデータ
読み書きを実行する時刻に関する情報が保持されている
領域1bに基づいて、データの読み書きが行われる全て
のハードウェア資源について、2命令間の読み書きの順
序が変わり正常な実行結果が得られなくなる状態を列挙
する。これは、命令毎の仕様をもとに、同じハードウェ
ア資源に対して読み書きし、少なくとも一方が書込みで
ある2個の命令実行を開始時刻をずらして重ね合わせれ
ば良い。
【0022】図14は、図8の仕様をもとに、2つのA
DD命令間で、GPRへのデータ書込みと読出の順序が
変わる状態を列挙した様子である。この場合、1番目の
ADD命令が結果を書き込んでから2番目のADD命令
がそれを読み出すのが正しい命令実行の順序である。た
だし、GPR内には一般に複数の記憶領域があり、命令
のオペランドがその場所を指定するためのレジスタアド
レスを含んでいる。データの依存関係が正しくなくなる
のは、2つの命令のオペランドが持つレジスタアドレス
が等しい時のみである。
【0023】同様にGPRに対するデータ読み書きを行
う全ての命令の組み合わせについて列挙すれば、GPR
のデータ読み書きに関する競合状態が得られる。ステッ
プSJ3で、各競合状態について、対応する命令列を生
成する。例えば、図11の状態1からは命令列LOAD
−ADDが、ここで、LOAD−ADDはLOAD命令
に続いてADD命令がある命令列、FMUL−*−LO
ADはFMUL命令の後に競合を起こさない任意の1命
令があり、続いて、LOAD命令がある命令列を表すも
のとする。
【0024】続いて、第二の実施例について説明する。
図15に示すように、本実施例にあっては第一の実施例
と異なり、前記競合状態列挙部2の代わりに、処理進行
後競合状態列挙部23を設けたものである。本例では、
図16の流れ図に示すように、第一の実施例の場合と異
なり、ステップSJ2に代えて、ステップSJ21でパ
イプライン内で命令が一度も停止することなく処理が進
行した後到達可能な、複数命令間の競合状態を列挙す
る。例えば、図13の状態3の命令列FMUL−*−L
OAD、又は状態4のFMUL−*−FADDや、状態
5のFMUL−*−*−ADDに示すように、FMUL
命令の後に競合を起こさない任意の1命令があり、続い
て、LOAD命令がある命令列のような場合を示すもの
である。
【0025】さらに、第三の実施例を図17及び図18
に基づいて説明する。第三の実施例は、図17に示すよ
うに、仕様情報及び競合の発生する命令列の入力を行う
キーボードにより構成される仕様情報・競合発生命令列
入力部91と、仕様情報に基づいてプロセッサの制御機
構検証命令列を生成するCPU及びメモリ62とを有す
る。さらに、当該CPU及びメモリ62には、同図に示
すように、プロセッサに関する命令毎にハードウェア資
源を占有する時刻及びレジスタやメモリ等のデータ読み
書きを実行する時刻に関する仕様情報を保持する仕様情
報保持部1と、前記仕様情報・競合発生命令入力部91
から入力した競合発生命令と、前記仕様情報保持部1に
保持されている仕様情報に基づいて、前記競合発生命令
列において、現実に命令を実行する際の命令実行情報を
求める命令実行情報出力部13と、前記仕様情報及び前
記命令実行情報に基づいて、複数命令列実行後の新たに
引き起こされる複数命令間の競合状態を列挙する新競合
状態列挙部24と、当該競合状態に基づいて、競合状態
を発生される命令列の生成を行う複数命令列生成部3と
を有するものである。
【0026】続いて、図18に基づいて、第三の実施例
についての動作を説明する。同図に示すように、ステッ
プSJ1及びステップSJ11で、前記仕様情報・競合
発生命令列入力部91から各々プロセッサに関する命令
毎に、ハードウェア資源を占有する時刻及びレジスタや
メモリ等のデータ読み書きを実行する時刻に関する仕様
情報と、複数命令間の競合が発生する命令列を入力す
る。ステップSJ12で、競合の発生する命令列におい
て、現実に命令を実行する際の命令実行情報を求める。
例えば、命令列FMUL−*−LOADについて、ハー
ドウェア資源を占有する時刻およびレジスタやメモリ等
のデータ読み書きを実行する時刻を求める様子を図19
に示す。本例では、WBステージの競合を回避するため
に、図19(a)に示すように、後のLOAD命令にお
いてWBステージの実行を1クロックサイクル遅らせ
る。したがって、命令列FMUL−*−LOADにおい
てハードウェア資源を占有する時刻およびレジスタやメ
モリ等のデータ読み書きを実行する時刻は、図19
(b)のようになる。
【0027】ステップSJ22で、ステップSJ12で
求めたものと、ステップSJ1で入力された命令毎の仕
様情報に基づいて、新たな種類の競合状態を列挙する。
命令列FMUL−*−LOADによって新たに引き起こ
される競合状態を図20に示す。例えば番号1の競合状
態はLOAD命令の直後にLOAD命令を実行して両者
が同時にWBステージを占有しようとするものである
が、これは最初のFMUL命令がなければ発生しないも
のである。こうして、得られた競合状態に基づいて、ス
テップSJ32で、各競合状態を発生させる命令列を生
成する。
【0028】続いて、第四の実施例について図21及び
図22に基づいて説明する。本例は、第一、第二又は第
三の実施例と異なり、複数命令列生成部3,31,32
により生成した複数命令列に対し、プロセッサの初期状
態を設定する命令列及び終了状態を保持する命令列を付
加する初期状態設定等命令列付加部4を第二の実施例に
設けたものである。これにより、ステップSJ31で各
競合状態を発生させる命令列を生成した後、ステップS
J4で、前記初期状態設定命令等付加部4により、プロ
セッサ内部の初期状態を設定するための命令列と終了状
態を保存する命令列を、あらかじめデータベースとして
競合状態の種類毎に用意しておき、必要であれば生成さ
れたそれぞれの命令列に付け加える。尚、前記初期状態
設定等命令列付加部4は、第一の実施例又は第三の実施
例に設けることもできる。
【0029】例えば、図14の番号1又は番号2のよう
な種類の競合状態に対しては、初期状態を設定する命令
列として、次のようなものを用意しておけばよい。ま
ず、競合を起こすレジスタの初期値を設定する。次に、
1番目のADD命令の結果が上の初期値と異なる値にな
るように設定する。これにより、2番目のADD命令が
1番目のADD命令の結果を使用する場合と古い初期値
を使用する場合で、2番目のADD命令の演算結果が変
わるようになる。演算結果により制御機構が検証できる
ので、これを外部のメモリ等に保存すればよい。したが
って、終了状態を保存する命令列として、次のようなも
のを用意する。まず、2番目のADD命令の結果が書き
込まれるレジスタの値をメモリに保存する。このような
データベースをそれぞれの競合状態について用意してお
けば、実機の動作試験に対して適用可能な命令列も生成
可能である。
【0030】さらに、第五の実施例を図23に示す。本
例にあっては、同図に示すように、第二の実施例に相当
するステップSJ1〜ステップSJ3でプロセッサの制
御機構検証用命令列を自動的に生成した後、第四の実施
例に相当するステップSJ13〜ステップSJ33を繰
り返し適用することにより、多くの競合状態を網羅する
プロセッサの制御機構検証用命令列を自動的に生成する
ことである。
【0031】また、第六の実施例を図24に示す。本例
にあっては、同図に示すように第五の実施例ステップS
J1〜ステップSJ33で自動生成したプロセッサの制
御機構検証用命令列に、ステップSJ41でプロセッサ
の初期状態を設定する命令列および、終了状態を保存す
る命令列を付加することにより、プロセッサの制御機構
検証用命令列を自動的に生成することである。尚、以上
では、プロセッサの命令についての仕様を簡単のために
図8に限定して説明したが、当該場合に限られることは
なく、命令の種類、パイプラインの各段階、例えば、F
PUの数等や段階の種類もこれらに限定されるものでは
なく、さらに、1つの時刻にフェッチすることのできる
命令も1つに限られることはなく、複数の命令もあり得
る。
【0032】
【発明の効果】本発明によれば、プロセッサの命令につ
いてのハードウェア資源を占有する時刻およびレジスタ
やメモリ等のデータ読み書きを実行する時刻等の仕様情
報を与え、その競合状態を列挙して、複数命令列を生成
するようにしている。したがって、プロセッサの制御機
構検証用命令列を自動的に生成することが可能である。
また、本発明により生成された命令列は命令間のどのよ
うな競合状態を引き起こすかが明確であるため、目的の
制御機構に対する網羅性を保証することができ、検証の
信頼性が大きくなる。さらに、短い命令列でも従来より
大きい検証効果を上げることができ、検証の実行時間の
短縮にも役立つ。そして、本発明では、処理の完了に必
要なクロック数の異なるパイプラインステージが存在す
るものや、命令がその種類によって異なるステージを流
れるもの、同種のパイプラインステージが複数個用意さ
れておりそれらを同時に使用可能なものなど、広範囲な
プロセッサに対して適用可能となる。
【図面の簡単な説明】
【図1】第一の発明の原理流れ図
【図2】第二の発明の原理ブロック図
【図3】第三の発明の原理流れ図
【図4】第四の発明の原理ブロック図
【図5】第五の発明の原理流れ図
【図6】第六の発明の原理ブロック図
【図7】実施例に係るパイプラインを示すブロック図
【図8】実施例に係る各命令の仕様の例を示す図
【図9】第一の実施例に係るブロック図
【図10】第一の実施例に係る流れ図
【図11】第一の実施例又は第二の実施例に係るFPU
の占有に関する競合状態を示す図(1)
【図12】第一の実施例又は第二の実施例に係るFPU
の占有に関する競合状態を示す図(2)
【図13】第一の実施例又は第二の実施例に係るWBの
占有に関する競合状態を示す図
【図14】実施例に係るGPRのデータ読み書きに関す
る競合状態を示す図(一部)
【図15】第二の実施例に係るブロック図
【図16】第二の実施例に係る流れ図
【図17】第三の実施例に係るブロック図
【図18】第三の実施例に係る原理流れ図
【図19】第三の実施例に係る命令列FMUL−*−L
OADを示す図
【図20】第三の実施例に係る命令列FMUL−*−L
OADによって起こる新たな競合状態を示す図
【図21】第四の実施例に係るブロック図
【図22】第四の実施例に係る流れ図
【図23】第五の実施例に係る流れ図
【図24】第六の実施例に係る流れ図
【符号の説明】
10,11,1 使用情報保持部 20,2(21,22,23) 競合状態列挙部(処理
進行後競合状態列挙部,新競合状態列挙部) 30,31,32,3 複数命令列生成部 4 初期状態設定命令列等付加部 5 出力部
フロントページの続き (56)参考文献 特開 平3−127133(JP,A) 特開 平5−342055(JP,A) 特開 平6−60147(JP,A) 中田恒夫、他2名著,プロセッサのパ イプライン制御に関する動作レベル設 計,検証支援,電子情報通信学会技術研 究報告,日本,電子情報通信学会,1992 年12月,ICD92−125,p.75−82 (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 G06F 11/22 - 11/26 JICSTファイル(JOIS)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 プロセッサの命令についての仕様情報を
    情報処理装置に入力し、 複数命令間の競合が発生する命令列を情報処理装置に入
    力し、 競合の発生する命令列において、現実に命令を実行する
    際の命令実行情報を情報処理装置が求め、 前記仕様情報及び実行情報に基づいて、入力された競合
    発生命令列とその他の命令との間で発生する新たな競合
    状態を情報処理装置が列挙し、 競合状態を発生させる命令列の生成を情報処理装置が行
    うことを特徴とするプロセッサの制御機構検証用命令列
    の自動生成方法。
  2. 【請求項2】 プロセッサの命令についての仕様情報を
    保持する仕様情報保持部と、 競合の発生する命令列の入力を行う競合発生命令列入力
    部と、 前記競合発生命令入力部から入力した競合発生命令と、
    前記仕様情報保持部に保持されている仕様情報に基づい
    て、前記競合発生命令列において、現実に命令を実行す
    る際の命令実行情報を求める命令実行情報出力部と、 前記仕様情報及び前記命令実行情報に基づいて、入力さ
    れた競合発生命令列とその他の命令との間で新たに引き
    起こされる複数命令間の競合状態を列挙する新競合状態
    列挙部と、 当該競合状態に基づいて、競合状態を発生される命令列
    の生成を行う複数命令列生成部とを有することを特徴と
    するプロセッサの制御機構検証用命令列の自動生成装
    置。
JP21781393A 1993-09-01 1993-09-01 プロセッサの制御機構検証用命令列の自動生成方法及び装置 Expired - Fee Related JP3373607B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP21781393A JP3373607B2 (ja) 1993-09-01 1993-09-01 プロセッサの制御機構検証用命令列の自動生成方法及び装置
US08/698,755 US5673425A (en) 1993-09-01 1996-08-16 System for automatic generating instruction string to verify pipeline operations of a processor by inputting specification information having time for the processor to access hardware resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21781393A JP3373607B2 (ja) 1993-09-01 1993-09-01 プロセッサの制御機構検証用命令列の自動生成方法及び装置

Publications (2)

Publication Number Publication Date
JPH0773037A JPH0773037A (ja) 1995-03-17
JP3373607B2 true JP3373607B2 (ja) 2003-02-04

Family

ID=16710145

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21781393A Expired - Fee Related JP3373607B2 (ja) 1993-09-01 1993-09-01 プロセッサの制御機構検証用命令列の自動生成方法及び装置

Country Status (2)

Country Link
US (1) US5673425A (ja)
JP (1) JP3373607B2 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2715993B2 (ja) * 1995-06-06 1998-02-18 日本電気株式会社 シミュレーション方法および装置
US7577782B2 (en) * 1996-02-02 2009-08-18 Sony Corporation Application programming interface for data transfer and bus management over a bus structure
US6519268B1 (en) * 1996-03-07 2003-02-11 Sony Corporation Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure
US5889974A (en) * 1996-12-30 1999-03-30 Intel Corporation Method and apparatus for the detection of reordering hazards
JP3220055B2 (ja) * 1997-07-17 2001-10-22 松下電器産業株式会社 機械語命令列またはアセンブリ言語命令列を最適化する最適化装置、及び、高級言語で記載されたソースプログラムを機械語またはアセンブリ言語の命令列に変換するコンパイラ装置。
JPH1145211A (ja) * 1997-07-28 1999-02-16 Fujitsu Ltd 情報処理装置用試験装置および情報処理装置用試験方法
EP0992896A1 (en) * 1998-10-06 2000-04-12 Texas Instruments Inc. Pipeline protection
US6327559B1 (en) * 1999-05-04 2001-12-04 International Business Machines Corporation Method for creating a simulation environment for enhanced logic verification of a branch history table
JP2001222442A (ja) 2000-02-08 2001-08-17 Fujitsu Ltd パイプライン試験方法、パイプライン試験命令生成方法及びその記憶媒体
US7404110B1 (en) 2004-12-01 2008-07-22 Advanced Micro Devices, Inc. Method and system for self-assembling instruction opcodes for a custom random functional test of a microprocessor
US7254509B1 (en) 2004-12-01 2007-08-07 Advanced Micro Devices, Inc. Method and system for testing a memory of a microprocessor
US7398329B2 (en) * 2005-11-04 2008-07-08 Sun Microsystems, Inc. Pipelined I/O execution
US8484007B2 (en) * 2008-02-16 2013-07-09 International Business Machines Corporation Method and apparatus of handling instruction rejects, partial rejects, stalls and branch wrong in a simulation model
US20120059971A1 (en) * 2010-09-07 2012-03-08 David Kaplan Method and apparatus for handling critical blocking of store-to-load forwarding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4253183A (en) * 1979-05-02 1981-02-24 Ncr Corporation Method and apparatus for diagnosing faults in a processor having a pipeline architecture
US4769817A (en) * 1986-01-31 1988-09-06 Zycad Corporation Concurrent fault simulation for logic designs
US4862399A (en) * 1987-08-31 1989-08-29 General Electric Company Method for generating efficient testsets for a class of digital circuits
JPH01180645A (ja) * 1988-01-13 1989-07-18 Hitachi Ltd 保守診断機構の自動検証方式
JP3076044B2 (ja) * 1988-07-27 2000-08-14 日本電気株式会社 パイプラインのエラー情報記憶方式
GB8828817D0 (en) * 1988-12-09 1989-01-18 Int Computers Ltd Data processing apparatus
US4982402A (en) * 1989-02-03 1991-01-01 Digital Equipment Corporation Method and apparatus for detecting and correcting errors in a pipelined computer system
US5390323A (en) * 1991-08-05 1995-02-14 Amdahl Corporation Microstore reference logging
US5475695A (en) * 1993-03-19 1995-12-12 Semiconductor Diagnosis & Test Corporation Automatic failure analysis system
US5410686A (en) * 1993-11-01 1995-04-25 Motorola, Inc. Methods for scan path debugging

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中田恒夫、他2名著,プロセッサのパイプライン制御に関する動作レベル設計,検証支援,電子情報通信学会技術研究報告,日本,電子情報通信学会,1992年12月,ICD92−125,p.75−82

Also Published As

Publication number Publication date
JPH0773037A (ja) 1995-03-17
US5673425A (en) 1997-09-30

Similar Documents

Publication Publication Date Title
JP3373607B2 (ja) プロセッサの制御機構検証用命令列の自動生成方法及び装置
Park et al. BLoG: Post-silicon bug localization in processors using bug localization graphs
US6631463B1 (en) Method and apparatus for patching problematic instructions in a microprocessor using software interrupts
EP0453394B1 (en) Dynamic process for the generation of biased pseudo-random test patterns for the functional verification of hardware designs
US6021261A (en) Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers
US8725485B2 (en) Simulation method and simulation apparatus
JP2006510126A (ja) データ処理システムでの処理動作マスキング
US11204859B2 (en) Partial-results post-silicon hardware exerciser
US7096322B1 (en) Instruction processor write buffer emulation using embedded emulation control instructions
JP2001222442A (ja) パイプライン試験方法、パイプライン試験命令生成方法及びその記憶媒体
US7376820B2 (en) Information processing unit, and exception processing method for specific application-purpose operation instruction
US5592674A (en) Automatic verification of external interrupts
US6212493B1 (en) Profile directed simulation used to target time-critical crossproducts during random vector testing
KR20200088760A (ko) 체크섬 생성
JPH04233040A (ja) コンピュータプログラム実行シミュレーションシステム
US8412507B2 (en) Testing the compliance of a design with the synchronization requirements of a memory model
JP3274036B2 (ja) プロセッサの動作モデルと論理検証用試験命令列の自動生成方法及び装置
US7100027B1 (en) System and method for reproducing system executions using a replay handler
JP4160705B2 (ja) プロセッサ及びプロセッサシステム
US11544436B1 (en) Hardware-software interaction testing using formal verification
US6813702B1 (en) Methods and apparatus for generating effective test code for out of order super scalar microprocessors
US6357020B1 (en) Method and system for low level testing of central electronics complex hardware using Test nano Kernel
JP2000268074A (ja) 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法
Diep et al. Systematic validation of pipeline interlock for superscalar microarchitectures
JPH07253909A (ja) マイクロプログラム検証方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20021112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081122

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081122

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091122

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees