JPH0863367A - テストベクトルを発生する方法およびテストベクトル発生システム - Google Patents

テストベクトルを発生する方法およびテストベクトル発生システム

Info

Publication number
JPH0863367A
JPH0863367A JP7134014A JP13401495A JPH0863367A JP H0863367 A JPH0863367 A JP H0863367A JP 7134014 A JP7134014 A JP 7134014A JP 13401495 A JP13401495 A JP 13401495A JP H0863367 A JPH0863367 A JP H0863367A
Authority
JP
Japan
Prior art keywords
test vector
test
instruction
recording
exemplary
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.)
Withdrawn
Application number
JP7134014A
Other languages
English (en)
Inventor
Norman Bujanos
ノーマン・バジャノス
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JPH0863367A publication Critical patent/JPH0863367A/ja
Withdrawn 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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2226Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test ALU
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/31813Test pattern generators
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3183Generation of test inputs, e.g. test vectors, patterns or sequences
    • G01R31/318307Generation of test inputs, e.g. test vectors, patterns or sequences computer-aided, e.g. automatic test program generator [ATPG], program translations, test program debugging
    • 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/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • 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
    • 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/27Built-in tests

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

(57)【要約】 【目的】 浮動小数点演算実現例の一致性をテストする
テストベクトルを発生するシステムを提供する。 【構成】 テストベクトル発生システムは、模範的な浮
動小数点命令セットを実行する模範的な浮動小数点機能
ユニット160を有するプロセッサ110を制御する。
このシステムは、テスト命令が模範的な命令セットから
選択される、インタラクティブなテスト選択プロセス
と、オペランドデータ発生プロセスと、模範的な機能ユ
ニットが、発生されたオペランドデータを演算するテス
ト命令を実行する、テスト命令実行プロセスと、テスト
命令実行のテストベクトル結果が記録される、テストベ
クトル結果記録プロセスとを含むコンピュータプログラ
ムモジュールを含む。

Description

【発明の詳細な説明】
【0001】
【発明の分野】この発明は、プロセッサの計算および演
算機能をテストするテストベクトルを発生するシステム
に関し、より特定的には、浮動小数点演算テストベクト
ルを発生するシステムに関する。
【0002】
【関連技術の説明】多くのマイクロプロセッサは、浮動
小数点ハードウェア機能を有する。この機能は、様々な
浮動小数点フォーマットで構成される数に作用する様々
な数値アルゴリズムの実現例により与えられる。浮動小
数点プロセッサは、できる限り正確に、概念的に無限で
ありかつ連続的である実数の体系を近似しようと試み
る。実数の大きさには上限または下限がない。いかなる
2つの実数についても、2つの数の中間の大きさを有す
る実数が存在する。
【0003】完全なコンピュータなら、実数系全体に作
用することができるであろう。しかしながら、これは可
能ではない。コンピュータは、大きさまたは能力に関係
なく、最終的には、対応し得る数の体系を制限する、決
まった大きさのデータ要素に作用する。実数に対するコ
ンピュータ算術演算は、本質的に近似している。異なる
コンピュータシステムの、浮動小数点フォーマット、数
値アルゴリズム、および浮動小数点演算の実現例は、非
常に異なり、そのため浮動小数点演算の結果も、時には
驚くべき態様で離れる。多くの場合、コンピュータシス
テムの浮動小数点演算および実現例は、精度ではなく動
作速度に基づいて選択されている。
【0004】IEEE/ANSI規格754/1985
および後に一般化されたIEEE規格854として知ら
れている標準は、浮動小数点演算の実現例を規定するよ
うに確立されている。これらは、ほとんどすべてのマイ
クロプロセッサの浮動小数点演算の実現例が互換性を要
求するので重要な標準である。IEEE規格は、浮動小
数点数の詳細な2進フォーマットを具体的に示し、かつ
算術演算の結果として得られるべき正確な結果を規定す
る。しかしながら、浮動小数点演算の実現例は、すべて
の場合に数学的に正しい結果を与えることはとてもでき
ない。なぜなら、いくつかの数は無限の精度で表わすこ
とができないからである。こうして、IEEE浮動小数
点演算規格は、計算の結果が厳密に正しいことを保証す
ることができないが、それは、異なるマイクロプロセッ
サの浮動小数点演算の実現例の結果が同じであることを
期待する。
【0005】ソフトウェア開発者、ソフトウェアプログ
ラムのユーザおよび他の人たちは、IEEE規格が確立
されることが有利であることを認めている。しかしなが
ら、現在コンピュータ設計者は、すべての数に対して行
なわれるすべての演算のための算術演算実現例を検証す
るタスクに直面する。真の実数の量は無限である。プロ
セッサが表わすことのできる異なる浮動小数点数の量
は、実質的には無限である。算術演算実現例の検証で行
なわれる、すべての数および数の組合せのすべてのテス
トは、離散的な時間量を要求する。したがって、数のす
べての組合せのすべての演算のための算術演算実現例を
テストすることは不可能である。
【0006】このタスクは、オペランドデータおよび浮
動小数点演算の一連のベンチマークテストの結果に対し
て、マイクロプロセッサの浮動小数点実現例により発生
される結果をテストすることにより、通常処理される。
1つのそのような一連のテストは、カリフォルニア大学
バークレー校(University of California at Berkele
y)、工学部、電気工学およびコンピュータ科学科、産
業リエゾンプログラム(Industrial Liaison Program)
の「P754算術演算の一連のコンパクトテスト−−バ
ージョン2.0(A Compact Test Suite for P754 Arit
hmetic -- Version 2.0 )」において与えられる。
【0007】多くの場合マイクロプロセッサは、時を経
て発達して技術上の進歩を組入れたマイクロプロセッサ
のファミリに含まれる。マイクロプロセッサのファミリ
の算術演算が、ファミリの1つのマイクロプロセッサ上
で走るソフトウェアが、別のマイクロプロセッサ上で走
るときに厳密に同じように機能するように、互換性を維
持することが通常、意図される。こうして、既存のマイ
クロプロセッサの結果の厳密な複製を検査する浮動小数
点演算実現例のテストを考案するという、さらなる問題
が生じる。結果のこの複製は、計算の数値結果だけに適
用されるのではなく、様々な条件の下で発生される条件
コードならびに例外およびトラップ信号にも関係する。
【0008】
【発明の概要】有利には、IEEE/ANSI規格75
4/1985およびIEEE規格854に従う浮動小数
点演算実現例の一致性をテストするテストベクトルを発
生するシステムを提供する。
【0009】有利には、浮動小数点演算実現例をテスト
するテストベクトルを発生するシステムを提供し、ベク
トルは、ランダムに選択されたデータ、特別なテストケ
ースデータ、標準的なベンチマークデータおよび境界条
件データの組合せを含むオペランドデータに基づく計算
から発生される。
【0010】有利には、模範的な浮動小数点ユニットの
機能を有する浮動小数点演算実現例の機能の等価性をテ
ストするテストベクトルを発生するシステムを提供し、
このベクトルは、模範的な浮動小数点ユニットを用いる
マイクロプロセッサで実行される計算から発生される。
【0011】有利には、模範的な浮動小数点ユニットの
機能を有する浮動小数点演算実現例の機能の等価性をテ
ストするテストベクトルを発生するシステムを提供し、
このベクトルは、模範的な浮動小数点ユニットを用いる
マイクロプロセッサで実行される計算から発生され、か
つ機能テストは、条件コード、例外およびトラップ動作
ならびに計算の精度のテストを含む。
【0012】第1の実施例に従って、模範的な機能ユニ
ットを含むプロセッサ上で複数個のプログラム命令を実
行することにより、テストベクトルを発生する方法を説
明する。プログラム命令は、模範的な機能ユニットによ
り実行される、模範的な命令セットの複数個の命令を含
む。この方法は、模範的な命令セットのテスト命令を選
択するステップと、テスト命令を実行するときに模範的
な機能ユニットにより演算されるオペランドデータを発
生するステップと、発生されたデータを演算するときに
テスト命令を実行するステップと、テスト命令実行のテ
ストベクトル結果を記録するステップとを含む。この方
法は、浮動小数点の模範的な機能ユニット上で実行する
浮動小数点命令セットに適用され得る。
【0013】第2の実施例に従って、模範的な命令セッ
トを実行する模範的な機能ユニットを有するプロセッサ
を制御するコンピュータプログラムテストベクトル発生
システムを説明する。このシステムは、テスト命令が模
範的な命令セットから選択される、インタラクティブテ
スト選択プロセスと、オペランドデータ発生プロセス
と、模範的な機能ユニットが発生されたオペランドデー
タを演算するテスト命令を実行する、テスト命令実行プ
ロセスと、テスト命令実行のテストベクトル結果が記録
される、テストベクトル結果記録プロセスとを含む複数
個のモジュールに形成された命令の配列を含む。このシ
ステムは、浮動小数点の模範的な機能ユニット上で実行
する浮動小数点命令セットに適用され得る。
【0014】同じ参照符号が同じ素子を示す添付の図面
と関連して、以下の説明を参照することにより、この発
明がより理解されることができ、かつその利点、目的お
よび特徴がより明らかにされる。
【0015】
【好ましい実施例の詳細な説明】図1を参照すると、コ
ンピュータシステム100は、マイクロプロセッサ11
0およびメモリ130を含む。コンピュータシステム1
00はまた、キーボードなどの入力装置、モニタなどの
ディスプレイ、磁気ディスク装置、ならびに直列回線お
よび並列回線などの通信回線を含む従来の構成要素も有
し、そのどれも図示されていない。
【0016】好ましい実施例では、マイクロプロセッサ
110は、カリフォルニア州(California)サンタ・ク
ララ(Santa Clara )のインテル・コーポレイション
(Intel Corporation )から入手可能なi486マイク
ロプロセッサである。486マイクロプロセッサ110
は、32ビットマイクロプロセッサであり、これは、1
つのチップ上にメモリ管理ユニット150、浮動小数点
ユニット160およびキャッシュメモリユニット170
すべてを含む。バスインタフェース118は、外部バス
120を介してマイクロプロセッサ110を外部メモリ
130に接続し、プログラム命令および転送データを受
ける。外部バス120は、アドレス線122、データ線
124および制御線126を含む。
【0017】マイクロプロセッサ110は、キャッシュ
メモリユニット170を介してまたはバスインタフェー
ス118から直接にプログラム命令を受けるように制御
される。プリフェッチ回路146は、キャッシュメモリ
ユニット170およびバスインタフェース118に接続
され、命令を受ける。プリフェッチ回路146は、32
バイトの命令キュー148に接続され、このキューは、
命令がデコードされかつ実行される前に、プリフェッチ
された命令を一時的にストアする。命令デコーダ140
は、命令キュー148に接続され、待ち行列化された命
令をアクセスする。命令デコーダ140は、命令をデコ
ードし、かつデコードされた命令をデコード命令経路1
49を介して、相互接続された制御および保護テストユ
ニット142ならびに制御ROM144に伝達する。マ
イクロ命令は、マイクロ命令線198を介して実行のた
めの様々な機能ユニットに伝達される。特に、マイクロ
命令線198は、命令デコーダ140と、相互接続され
た制御および保護テストユニット142ならびに制御R
OM144と、メモリ管理ユニット150と、ALU1
80と、レジスタファイル182と、バレルシフタ18
4と、浮動小数点ユニット160とを接続する。ALU
180、レジスタファイル182およびバレルシフタ1
84は、相互接続される。
【0018】ALU180と並列に演算する浮動小数点
ユニット160は、浮動小数点および固定小数点データ
の両方のための算術命令を実行する。浮動小数点ユニッ
ト160は、浮動小数点演算のためのANSI/IEE
E規格754−1985に準拠する。浮動小数点ユニッ
ト160は、浮動小数点レジスタファイル162に接続
され、浮動小数点レジスタファイル162内のデータを
演算する。
【0019】キャッシュコントローラ172および8k
バイトのキャッシュメモリ174を含むキャッシュメモ
リユニット170は、外部バス120のアクセスが減少
されるように、マイクロプロセッサチップ110の内部
の、しばしば用いられるプログラム命令およびデータを
ストアする。
【0020】メモリ管理ユニット150は、セグメンテ
ーションユニット152およびページングユニット15
4を含む。ディスクリプタレジスタ156ならびに限界
および属性PLA157と相互接続されるセグメンテー
ションユニット152は、データおよび命令が容易に再
配置されるように、外部メモリ130の論理アドレス空
間を管理するために設けられる。セグメンテーションユ
ニット152は、外部メモリ130を1つまたは2つ以
上の可変長セグメントに編成する。セグメントの特性
は、位置、大きさ、型(スタック、命令またはデータ)
および保護属性を含めて、セグメンテーションユニット
152により支配される属性に従って決定される。セグ
メンテーションユニット152は、切離しおよび保護ア
プリケーションプログラムならびに演算システム機能の
ための保護の様々なレベル間で選択する。ページングユ
ニット154は、変換索引バッファ158と接続され、
これは、キャッシュ170の外部メモリ130とのアク
セスが減少するように、メモリの最近アクセスされたペ
ージをストアする。
【0021】データは、キャッシュメモリユニット17
0、セグメンテーションユニット152、相互接続され
た、バレルシフタ184、レジスタファイル182およ
びALU180、ならびに浮動小数点ユニット160の
間でデータを伝達する32ビットのデータバス192お
よび32ビットのデータバス194を用いて、プロセッ
サ110をわたって伝達される。
【0022】アドレスは、リニアアドレスバス190を
用いて、キャッシュメモリユニット170およびメモリ
管理ユニット150の間で伝達される。
【0023】メモリ130は、コンピュータシステム1
00の動作を制御する従来のシステムソフトウェアをス
トアする。コンピュータシステム100の動作中、マイ
クロプロセッサ110は、メモリ130からコンピュー
タプログラムの演算コードのシーケンスを検索し、かつ
演算コードを実行して、タスクを行なう。1つのそのよ
うなコンピュータプログラムは、図2から図9のフロー
チャートに説明される浮動小数点テストプログラム20
0である。好ましい実施例では、浮動小数点テストプロ
グラム200は、カリフォルニア州スコッツ・バレー
(Scotts Valley)のボーランド・インターナショナル
(Borland International )Inc.から入手可能であ
るC++コンパイラ、バージョン3.1を用いて動作す
るように書込まれる。
【0024】より特定的には、図2を参照すると、浮動
小数点テストプログラム200は、486マイクロプロ
セッサ110の算術演算をテストするために、ランダム
および予め定められたデータベクトルの集まりを発生す
る。このマイクロプロセッサは、例示的またはパターン
マイクロプロセッサとして働くので、ここでは模範的な
マイクロプロセッサと呼ばれる。486マイクロプロセ
ッサ110は、設計プロセッサまたは設計プロセッサ機
能ブロックが、同等の態様で模範をエミュレートするよ
うに設計されかつテストされ得るように、モデルまたは
標準として働く。
【0025】プロセッサ110および浮動小数点ユニッ
ト160が、特定の選択された丸めモードを用いて浮動
小数点命令を実行するように構成される一方で、浮動小
数点テストプログラム200は、特定の選択された浮動
小数点命令の算術演算と関連するデータベクトルの特定
のセットを発生する。プロセッサ110が、特定の入力
データオペランドに、または多重オペランド浮動小数点
命令の場合には入力データオペランドの特定の組合せに
応答して、選択された丸めモードで演算するように設定
される一方で、テストベクトルのセットの様々なテスト
ベクトルの各々は、選択された浮動小数点命令を実行す
ることにより発生される結果に対応する。入力オペラン
ドのいくつかは、ランダムに選択される。他の入力オペ
ランドは、規定されない浮動小数点数などの特定のオペ
ランドの特別なテストケースに対する浮動小数点演算応
答をテストするように、予め定められた態様で設定され
る。付加的なオペランドは、正および負無限大ならびに
0などの境界オペランドから選択される。さらなるオペ
ランドは、従来のベンチマーク浮動小数点テストベクト
ルを再生するように選択される。
【0026】第1の動作では、浮動小数点テストプログ
ラム200は、問合せ−特定テスト202モジュール
で、ベクトルが発生される命令および丸めモードを特定
する入力パラメータをインタラクティブに要求する。問
合せ−特定テスト202はまた、発生するテストベクト
ルの数を選択する。プログラム論理演算、すなわちすべ
てのベクトル完了?204は、すべてのベクトルが処理
されると浮動小数点テストプログラム200を終了す
る。テストベクトルセットが完了しなければ、テスト結
果発生206が1つのテストベクトルを発生する。結果
のファイルへの書込208は、磁気ディスク(図示せ
ず)のファイルなどの記憶装置にベクトルを書込む。
【0027】浮動小数点テストプログラム200の第1
のモジュールは、問合せ−特定テストモジュール202
であり、これは、データベクトルセットを発生するよう
に用いられる特定の命令および丸めモードをインタラク
ティブに選択するように用いられる。図3に特に示され
るいくつかのブロックは、問合せ−特定テストモジュー
ル202に含まれる。問合せ−特定テストモジュール2
02の第1のブロックは、テストベクトルの数の選択ブ
ロック210であり、これは、セットのデータベクトル
の数を選択するように用いられる。1つの実施例では、
データベクトルの数は、浮動小数点テストプログラム2
00を起動するコマンド線に引数フィールドを付加する
ことにより、選択される。ベクトルのいかなる数も、浮
動小数点テストプログラム200の演算子により特定さ
れ得る。ベクトルのどの数も特定されなければ、100
のベクトルのデフォルト数が設定される。
【0028】テストの初期設定ブロック212は、乱数
発生器(図示せず)を初期設定し、これは、テストの浮
動小数点演算に対する入力オペランドをランダムに設定
するように用いられる。初期設定および発生動作を含む
乱数発生器は、Cコンパイラの標準的なライブラリ演算
である。
【0029】テストの初期設定ブロック212はまた、
浮動小数点ユニット(FPU)の例外トラップをマスク
する。浮動小数点テストプログラム200は、486マ
イクロプロセッサ110の浮動小数点ユニット160の
算術演算を詳細に分析する。この分析は、特定のテスト
の数値結果に制限されず、マイクロプロセッサ110の
浮動小数点ユニット160のトラッピングおよび例外機
能の調査、条件コードの設定、および他の局面も含む。
したがって、浮動小数点テストプログラム200は、状
態フラグおよび条件コードの設定に関して特定の命令お
よびオペランドデータ値に対するその応答を決定するよ
うに、浮動小数点ユニット160を用いる。しかしなが
ら、マイクロプロセッサ110が、その例外およびトラ
ッピング処理動作にかかわることによりテストに対して
積極的に応答することは、望ましくない。ハードウェア
初期設定および緊急型プログラム順序付けを含むこれら
の緊急動作は、浮動小数点ユニットの機能の分析のため
に用いられる浮動小数点テストプログラム200には不
適切である。テストの初期設定ブロック212は、FP
U制御ワード(図示せず)の現在の値を外部メモリ13
0のワードに書込み、外部メモリ130のこのワードの
ビット<5:0>を設定し、次にFPU制御ワードの現
在の値とマスクワードの値とを置換えることにより、F
PU例外トラップをマスクする。FPU制御ワードのビ
ット<5:0>は、無効な演算、正規化されないオペラ
ンド、ゼロ除算、オーバーフロー、アンダーフローおよ
び精度例外のための例外マスクを指定する。オーバーフ
ロー例外は、数値結果の指数が宛先の実際のフォーマッ
トには大きすぎると、浮動小数点ユニット160により
発生される。結果の指数が宛先フォーマットに表わされ
るには小さすぎると、浮動小数点ユニット160は、ア
ンダーフロー例外を設定する。正確でない例外にも呼出
される精度例外は、演算の結果が宛先フォーマットに正
確に表現可能でなければ、起こる。精度例外は、しばし
ば起こり、かつ計算の間にいくつかの精度が失われたこ
とを示す。
【0030】テストの初期設定ブロック212はまた、
無限大、正規化されないおよび数でない(NaN)2進
指定の記号を含む算術記号をメモリにロードする。これ
らの算術記号は、ASCIIコード化された80ビット
の16進数であり、これらは、誤った結果に対してテス
ト記号を供給するように、かつ特定の特別なオペランド
のための浮動小数点ユニット160の応答をテストする
ように用いられる。16進数は、最上位から最下位への
ビット順序で、符号ビット、15の指数ビット、64ビ
ットの仮数および明示隠れビットを含む。記号は、xに
より示される可変ビットとともに以下のものを含む。
【0031】
【表1】
【0032】NaNは、浮動小数点フォーマットにエン
コードされる記号エンティティである。0による除算ま
たは無限大から無限大の減算などのいくつかの計算につ
いては、妥当な結果が可能でない。そのような計算につ
いては、NaNが発生される。NaNには2つの型があ
る。すなわち、無効な演算の例外を通知する通知NaN
(SNaN)と、例外を通知せずにほとんどすべての算
術演算によって伝搬する静止したNaN(QNaN)と
である。
【0033】SNaNは、最大値に設定された指数と、
その小数部の最上位ビットとしての0とを有する。有意
数の残りは、いかなる値にも設定される。浮動小数点ユ
ニットは、決してSNaNを発生しないが、オペランド
として現われるSNaNを認識する。SNaNに作用す
る算術演算は、命令が、スタック、FXCH(浮動小数
点交換)、FCHS(浮動小数点変更符号)、FUCO
M(浮動小数点の順序付けられない比較)またはFAB
S(浮動小数点絶対値)からのロードでなければ、無効
演算例外を引起こす。
【0034】QNaNは、その有意数の最上位ビットと
して1を有する。こうしてSNaNは、有意数の最上位
ビットを1に設定することにより、QNaNに変換され
るが、すべての他のビットが変更されないままであり、
そのため診断情報がデバッグのために保持される。
【0035】正規化されない数は、予約された値、通常
は浮動小数点フォーマットに従う最小値の指数を有し、
かつ0である暗黙のまたは明示の先頭の有意ビットを有
する非ゼロ浮動小数点数である。数値が0に非常に近い
と、標準的な正規化された浮動小数点フォーマットは、
値を正確に表わすことができない。正規化されない数
は、演算の結果が最小の、表現可能な正規化された数よ
り小さい絶対値を有する、アンダーフロー条件が存在す
ると、いわゆる漸進的なアンダーフローを実現するよう
に用いられる。計算誤りをもたらすかもしれない、0に
数を設定するのではなく、最小値で表わされた指数と、
1の標準値ではなく0である先頭の有意ビットとを有す
る正規化されない数が作られる。こうして正規化されな
い数は、正規化された数よりも低い精度を有するが、非
ゼロの値を保持する。
【0036】命令型選択214は、プログラムユーザと
会話し、テストベクトルが発生されるべきである命令の
型を要求する。浮動小数点ユニット160により実行さ
れる浮動小数点演算は、たとえば、加算(FADD)、
減算(FSUBおよびFSUBR)、比較(FCMPお
よびFCMPU)、乗算(FNUL)および絶対値決定
(FABS)を含む。
【0037】丸めモード選択216は、プログラムユー
ザと会話し、演算の実行の間に与えられる丸めの型を選
択する。丸めモードは、最も近いものへの丸め、0方向
への丸め、負の無限大方向への丸め、および正の無限大
方向への丸めを含む。最も近いものへの丸めのモードで
は、命令の結果は、最も近い表現可能な数に丸められ
る。0方向への丸めまたは切捨てモードでは、表わすこ
とのできない余分な小数ビットは、切捨てられる。負の
無限大方向への丸めモードでは、結果は、常に切捨てら
れる。正の無限大方向への丸めモードでは、結果は、常
に切上げられる。
【0038】命令型分類218は、命令を予め定められ
たクラスに割当てる。命令に与えられるオペランドのい
くつかは、ランダムに選択されるが、浮動小数点テスト
プログラム200により発生されるすべてのベクトルが
意味のあるように、フィルタ処理される。たとえば、命
令が浮動小数点加算または減算命令(FADD、FSU
B、FSUBR)であれば、AおよびBオペランドの指
数は、同じ絶対値を有するべきである。非常に小さい数
に非常に大きい数を加算すると、大きい数に0を加算す
るのと同様に情報を生じない。こうして、命令は、4つ
のクラス、すなわち2つのオペランドの指数の相対的な
大きさが重要である、命令の第1のクラスと、浮動小数
点比較命令を含む、命令の第2のクラスと、1つのオペ
ランドだけが与えられる命令の第3のクラスと、すべて
の他の命令を含む第4のクラスとにグループ化される。
第1のクラスでは、演算の結果は、特定の指数の範囲ま
たは精度に明白に依存する。
【0039】命令型分類218が完了すると、問合せ−
特定テスト202も完了する。再び図2を参照すると、
すべてのベクトル完了?204では、浮動小数点テスト
プログラム200は、テストベクトルの要求された合計
数が発生されたかどうかを判定するようにテストする。
これは、多数のテストベクトルを発生するためのループ
の進入ポイントである。
【0040】テスト結果発生206では、多数のテスト
ベクトルは、図4に示されるように発生される。データ
構造の初期設定220では、データ構造は、各テストベ
クトルごとに初期設定される。データ構造は、いくつか
のアレイおよびいくつかの出力ファイルを含む。アレイ
は、多ビットのASCII16進形式である。これらの
アレイは、0に初期設定され、かつ5ビットの条件コー
ドレジスタ(CCreg)と、8ビットの例外レジスタ
と、Aオペランド、Bオペランドおよび結果のための8
1ビットの16進アレイと、Aオペランド、Bオペラン
ドおよび結果のための82ビットの16進出力アレイ
と、20ビットのファイルネームアレイとを含む。デー
タ構造の初期設定220ではまた、テスト結果発生20
6により発生されるベクトルを受取るように用いられる
ファイルが、開かれる。このファイルは、ベクトルを発
生するように用いられる特定の命令および丸めモードを
識別するように命名される。データ構造の初期設定22
0に続いて、図5により詳細に示される、オペランド発
生222は、ベクトルを発生するように浮動小数点命令
に与えられる2進浮動小数点数オペランドを発生する。
2進浮動小数点数は、3つの構成要素、すなわち符号、
バイアスされた指数、および有意数により特徴付けられ
るビットストリングである。数の数値があればそれは、
有意数と2の指数乗との符号付積である。クラスに従う
A、Bオペランド選択230は、倍長型の乱数オペラン
ドを発生する。クラスに従うA、Bオペランド選択23
0は、ベクトルを発生するように用いられる命令のクラ
スによって、特定の態様でオペランドを発生する。命令
の第1のクラス、すなわち2つのオペランドの指数の相
対的な大きさが重要である命令のクラスについては、第
1の乱数オペランドは、倍長浮動小数点数の0から可能
な最大指数までの範囲に整数指数をランダムに選択する
ことにより、かつすべての乱数の範囲にこのランダムな
指数をランダムにスケーリングすることにより発生され
る。この指数は、正または負のいずれかであるようにラ
ンダムに決定される。この場合、ランダムな浮動小数点
の指数が、10乗されて、第1の乱数オペランドを生じ
る。命令の第1のクラスの第2の乱数オペランドは、第
1の乱数オペランドから引出される。第2の乱数オペラ
ンドは、−9から+9までの範囲の整数指数をランダム
に選択し、このランダムに選択された指数を10乗し、
すべての乱数の範囲にその結果をランダムにスケーリン
グし、かつランダムにスケーリングされた結果に第1の
乱数オペランドを乗じることにより、発生される。
【0041】命令の第2のクラス、すなわち浮動小数点
比較命令を含むクラスについては、クラスに従うA、B
オペランド選択230は、倍長浮動小数点数の0から可
能な最大指数までの範囲の整数指数をランダムに選択
し、この指数を2で割り、かつこの指数を正または負で
あるようにランダムに選択することにより、第1の乱数
オペランドを発生する。この場合、ランダムな浮動小数
点の指数が、10乗され、第1の乱数オペランドを生じ
る。第2の乱数オペランドは、オペランド値の9つの選
択子の中からランダムに選択することにより発生され
る。選択子の5つは、それぞれ、第1の乱数オペランド
の1/4、1/2、1倍、2倍または4倍である。4つ
の残りの選択子は、QNaN、SNaN、無限大および
正規化されない浮動小数点コードである。
【0042】命令の第3のクラス、すなわち1つのオペ
ランドを演算する命令については、クラスに従うA、B
オペランド選択230は、倍長浮動小数点数の0から可
能な最大指数までの範囲の整数指数をランダムに選択
し、この指数を2で割り、この指数を正または負である
ようにランダムに選択し、かつこの指数を10乗するこ
とにより、乱数オペランドを発生する。この場合、乱数
オペランドは、オペランド値の9つの選択子の中からラ
ンダムに選択することにより、発生される。選択子の5
つは、それぞれ、ランダムに決定されたオペランドの1
/4、1/2、1倍、2倍または4倍である。4つの残
りの選択肢は、QNaN、SNaN、無限大および正規
化されない浮動小数点コードである。
【0043】すべての他の命令を含む、命令の第4のク
ラスについては、クラスに従うA、Bオペランド選択2
30は、第1および第2の乱数オペランドを互いに無関
係に発生する。各オペランドについては、クラスに従う
A、Bオペランド選択230は、倍長浮動小数点数の0
から可能な最大指数までの範囲の整数指数をランダムに
選択し、この指数を2で割り、かつこの指数を正または
負であるようにランダムに選択する。この場合、ランダ
ムな浮動小数点の指数の各々が、10乗され、乱数オペ
ランドを生じる。
【0044】オペランド発生222は、オペランド←
A、Bループ232を含み、これは、ループコントロー
ラにより支配されるように、オペランド準備234でA
およびBオペランドの各々を準備するために1回ずつ、
2回横断される。オペランド準備234の動作は、図6
に示される。オペランド準備234の第1の動作では、
倍長文字和演算へのオペランドのストア240は、乱数
オペランドを80ビットのASCII16進数に変換す
る。オペランドはもともとは、実際の浮動小数点倍長ワ
ードの形式である。ASCII文字は8ビットの幅であ
り、16進数は4ビットの幅である。したがって、倍長
文字和演算へのオペランドのストア240は、1つのA
SCII文字ごとに2つの16進数をストアする。さら
に、オペランド準備234は、48のバイアスを加え、
オペランドをASCII16進数に変換する。さらに、
オペランド準備234は、オペランドを小さいエンディ
アンスタイルから大きいエンディアンスタイルに変換す
る。この変換およびオペランドのデータ準備を行なうた
めには、倍長文字和演算へのオペランドのストア240
は、倍長文字和演算にオペランドをストアするために、
倍長ワードと10バイト文字との「C」言語和演算(合
併)を用いる。倍長オペランドのASCII16進形式
への変換は、倍長オペランドのASCII HEXへの
変換242により達成され、これは、倍長文字和演算の
バイトを適切にシフトする。ランダムな符号のオペラン
ドへの割当て244は、オペランド←A、B232のル
ープコントローラの第1の横断でAオペランドに正また
は負の符号をランダムに割当て、かつ第2の横断でBオ
ペランドに同様に符号を割当てる。ランダムな符号のオ
ペランドへの割当て244は、正または負の極性をラン
ダムに選択することにより極性を割当て、極性が負であ
れば、正の数または記号を負に変換する。
【0045】オペランド発生222が完了すると、テス
ト結果発生206は、図4に示されるように、実行の準
備224で進行する。実行の準備224は、図7により
特定的に示される。FPU例外クリア250は、x48
6 FPU状態ワードの例外フラグ、例外状態フラグ、
およびバスフラグをクリアする。FPU例外クリア25
0は、プロセッサのハードウェアレベルで例外フラグお
よび状態をクリアする。このように初期設定されると、
特定の命令およびオペランドデータ値がFPUハードウ
ェアを起動するように与えられ、ハードウェアの応答
は、例外、状態フラグおよび条件コードの設定に関して
分析される。スタックのトップへのオペランドのロード
252は、浮動小数点スタックのトップにAおよびBオ
ペランドをロードする。命令の第3のクラスの1つのオ
ペランドについては、Aオペランドだけがスタックのト
ップにロードされる。
【0046】実行の準備224が完了すると、テスト結
果発生206は、図4に示されるように、浮動小数点算
術演算の実行226で進行する。浮動小数点算術演算の
実行226は、アセンブリレベル命令コマンド線を用い
て、要求されたFPU命令の実行を要求する。そのよう
な命令コマンド線は、たとえばFADD、FSUB、F
MUL、FCOMPP、FABS要求を含む。命令の結
果は、図8のフロー図により特定的に示される、結果の
ストア228にログされる。条件コードレジスタのスト
ア260は、ストア状態ワード命令を用いて、プロセッ
サがFPU状態ワードの現在の値を一時記憶装置のFP
U状態に書込むように指示する。この場合、条件コード
レジスタのストア260は、ビット<8>、<9>、<
10>、および<14>をテストし、かつこの診断情報
を記録し、これは、要求された浮動小数点演算に従って
定義される。状態ワードレジスタからの例外のストア2
62もまた、ストア状態ワード命令を用いて、プロセッ
サがFPU状態ワードの現在の値を一時記憶装置のFP
U状態に書込むように指示する。この場合、状態ワード
レジスタからの例外のストア262は、例外フラグビッ
ト<6:0>、それぞれ、無効な演算IE、正規化され
ないオペランドDE、ゼロ除算ZE、オーバーフローO
E、アンダーフローUE、精度PE、およびスタックフ
ォールトSFをテストする。状態ワードレジスタからの
例外のストア262は、これらのフラグを記録し、診断
情報を与え、これは、要求された浮動小数点演算に従っ
て定義される。命令の結果は、ストア実際命令を用い
て、メモリへの結果のストア264でストアされる。ス
トア実際命令は、浮動小数点命令の実行から生じる値を
保持するスタックのトップを、メモリでラベル付けされ
た結果にコピーする。ストア実際命令は、結果をストア
し、次に、浮動小数点スタックをポップする。この結果
は、倍長文字和演算への結果のストア266で分析する
ために利用可能にされる。倍長文字和演算への結果のス
トア266でストアされた結果の符号は、結果の符号お
よび絶対値のストア268でログされ、これは、ストア
された結果の符号を読出し、かつそれが先に設定されな
ければ、符号ビットをクリアする。
【0047】結果のストア228が完了すると、テスト
結果発生206も完了し、図2に示されるように浮動小
数点テストプログラム200は、結果のファイルへの書
込208で継続する。図9により特定的に示される、結
果のファイルへの書込208は、倍長結果をASCII
16進形式に変換する、倍長結果のASCII HEX
への変換270でファイル記憶のための結果データを準
備する。倍長結果のASCII HEXへの変換270
は、倍長文字和演算のバイトを適切にシフトする。加算
の場合の条件コードレジスタビットのマスク272は、
要求された命令が浮動小数点加算命令であると、条件コ
ードレジスタビットC0、C2、およびC3をマスクす
る。これらの条件コードビットは、FADD命令に続い
て未定義である。15ビットの指数の17ビットへの変
換274は、浮動小数点の拡張されたワードの指数フィ
ールドを、x486 FPUにより与えられる15ビッ
トのフィールドから、17ビットのフィールドに変換す
る。これは、浮動小数点テストプログラム200により
与えられるデータベクトルの目標であるプロセッサのF
PUのために与えられる。15ビットの指数の17ビッ
トへの変換274は、指数がその最大値、NAN、無限
大または0でなければ、16進数C000を15ビット
の指数に加える。最大値、NAN、および無限大結果に
ついては、15ビットの指数の17ビットへの変換27
4は、指数を16進数1FFFに変換する。0の指数に
ついては、15ビットの指数の17ビットへの変換27
4は、変換された17ビットの指数のための0の指数値
を保持する。ベクトルのファイルへの書込276は、デ
ータ構造の初期設定220で開かれたファイルに、デー
タベクトルを書込む。各データベクトルは、それぞれ、
条件コードレジスタ、Aオペランドの符号、Aオペラン
ド、Bオペランドの符号、Bオペランド、結果の符号、
結果、例外フラグおよびベクトル数をストアする9つの
フィールドを含む。テストされた浮動小数点命令および
丸めモードを識別するための情報は、ベクトルが書込ま
れるファイルネームで表わされる。このファイルは、磁
気ディスクなどの記憶媒体上に与えられる。
【0048】結果のファイルへの書込208が完了する
と、浮動小数点テスト200のループが完了する。ベク
トルカウンタ(図示せず)は更新される。すべての要求
されたベクトルが発生されると、すべてのベクトル完了
?204に従って、浮動小数点テスト200が終了され
る。そうでなければ、ベクトルのセットがテスト結果発
生206により与えられる。
【0049】テストベクトルは、自動的にまたは手動で
検査され得る。さらに、テストベクトルは、機能ユニッ
トまたはプロセッサの設計の性能をテストするように、
ケイダンス・デザイン・システム(Cadence Design Sys
tems)、Inc.からのベリログ(Verilog )XL、バ
ージョン1.6(1991年3月)などのシミュレータ
プログラムに与えることができる。テストベクトルは、
様々な従来の有線もしくは無線通信技術または取外し可
能な磁気記憶媒体上での転送により、シミュレータに伝
達される。
【0050】発生されたテストベクトルは、オペランド
データバス、演算コードバス、および状態バスなどの様
々なバスで機能ユニットに与えられる入力信号を含み得
る。別の例では、発生されたテストベクトルは、マイク
ロプロセッサに与えられかつ間接的に機能ユニットを起
動する命令をフェッチするためのマイクロコードまたは
メモリのアドレスなどの上位レベルの信号を含み得る。
【0051】先の説明は、特定の順序の特定のプログラ
ム命令モジュールを含めて、浮動小数点テストベクトル
を発生するためのプログラムまたはシステムの多くの属
性を特に具体的に示す。プログラムは、浮動小数点テス
トベクトル発生プログラムとして例示的に示される。こ
れらの属性は、この発明の範囲を限定しないが、好まし
い実施例を例示する。他の実施例では、異なる設計レベ
ルの設計プロセッサまたは設計機能ユニットをテストす
るテストベクトルが発生され得る。たとえば、機能ユニ
ットに直接に与えられるテストベクトルが、信号の形式
をとることができ、一方、間接的に機能ユニットを起動
するマイクロプロセッサに与えられる他のテストベクト
ルが、命令コードの形式で発生され得る。
【0052】別の例示的な実施例では、説明されたシス
テムは、浮動小数点機能ユニット以外の機能ユニット、
たとえば算術演算論理ユニット、シフトユニット、アレ
イプロセッサユニット、視覚的な装置上での表示のため
の数を発生するかまたは視覚的な装置上での表示のため
の位置を決定する数を発生するディスプレイドライバな
どのためのテストベクトルを発生するように、用いるこ
とができる。別の例では、このシステムの実施例は、設
計プロセッサまたはプロセッサの設計機能ユニットの機
能の等価性をテストするためのテストベクトルを、48
6マイクロプロセッサ以外のプロセッサまたは機能ユニ
ットに発生するように用いることができる。他の実施例
は、異なるコンピュータ言語、コンパイラ、プログラミ
ング技術または演算システムを用いて実現することがで
きる。この発明の範囲は、前掲の特許請求の範囲および
それらの均等物により決定される。
【図面の簡単な説明】
【図1】設計機能ユニットの機能および演算の等価性を
テストするテストベクトルをマイクロプロセッサの機能
ユニットに発生するように用いられるマイクロプロセッ
サのアーキテクチャレベルのブロック図である。
【図2】図1のマイクロプロセッサが浮動小数点ユニッ
トテストベクトルを発生するように動作するコンピュー
タシステムを制御するコンピュータソフトウェアプログ
ラムのフローチャート図である。
【図3】テストパラメータをインタラクティブに選択す
る、図2のコンピュータソフトウェアプログラムのセグ
メントのフローチャート図である。
【図4】テスト結果を発生する、図2のコンピュータソ
フトウェアプログラムのセグメントのフローチャート図
である。
【図5】マイクロプロセッサによる実行のための入力テ
ストデータを発生して、テスト結果を発生する、図4の
コンピュータソフトウェアプログラムセグメントのセグ
メントのフローチャート図である。
【図6】マイクロプロセッサよる実行のための入力テス
トデータを準備する、図5のコンピュータソフトウェア
プログラムセグメントのセグメントのフローチャート図
である。
【図7】実行のためにマイクロプロセッサを準備する、
図4のコンピュータソフトウェアプログラムセグメント
のセグメントのフローチャート図である。
【図8】実行の後に結果をストアする、図4のコンピュ
ータソフトウェアプログラムセグメントのセグメントの
フローチャート図である。
【図9】テスト結果をテストベクトルファイルに書込
む、図2のコンピュータソフトウェアプログラムのセグ
メントのフローチャート図である。
【符号の説明】
100 コンピュータシステム 110 マイクロプロセッサ 160 浮動小数点ユニット

Claims (45)

    【特許請求の範囲】
  1. 【請求項1】 模範的な機能ユニットを含むプロセッサ
    上の複数個のプログラム命令を実行するステップを含
    み、前記プログラム命令は、前記模範的な機能ユニット
    により実行される模範的な命令セットの複数個の命令を
    含み、さらに前記模範的な命令セットのテスト命令を選
    択するステップと、 前記テスト命令を実行する前記模範的な機能ユニットに
    より演算されるオペランドデータを発生するステップ
    と、 発生されたデータを演算する前記テスト命令を実行する
    ステップと、 前記テスト命令実行のテストベクトル結果を記録するス
    テップとを含む、テストベクトルを発生する方法。
  2. 【請求項2】 前記テスト命令実行ステップの前に、前
    記模範的な機能ユニットを初期設定するステップをさら
    に含む、請求項1に記載のテストベクトルを発生する方
    法。
  3. 【請求項3】 前記模範的な機能ユニットを初期設定す
    る前記ステップは、模範的な機能ユニット状態ワードの
    例外フラグビットをクリアする模範的な命令セット動作
    を実行するステップを含む、請求項2に記載のテストベ
    クトルを発生する方法。
  4. 【請求項4】 前記模範的な機能ユニットを初期設定す
    る前記ステップは、プロセッサ条件コードレジスタの制
    御ビットをクリアする模範的な命令セット動作を実行す
    るステップを含む、請求項2に記載のテストベクトルを
    発生する方法。
  5. 【請求項5】 テストベクトル結果を記録する前記ステ
    ップは、 数値的な発生されたオペランドの符号および大きさの表
    現を記録するステップと、 数値的な実行結果の符号および大きさの表現を記録する
    ステップとを含む、請求項1に記載のテストベクトルを
    発生する方法。
  6. 【請求項6】 テストベクトル結果を記録する前記ステ
    ップは、 前記テスト命令を実行した後に、プロセッサ条件コード
    レジスタの値を記録するステップと、 前記テスト命令を実行した後に、例外フラグを含むプロ
    セッサ状態ワードを記録するステップとを含む、請求項
    1に記載のテストベクトルを発生する方法。
  7. 【請求項7】 オペランドデータを発生する前記ステッ
    プは、前記オペランドデータをランダムに発生するステ
    ップを含む、請求項1に記載のテストベクトルを発生す
    る方法。
  8. 【請求項8】 オペランドデータを発生する前記ステッ
    プは、オペランドデータのベンチマークセットの中から
    オペランドデータを選択するステップを含む、請求項1
    に記載のテストベクトルを発生する方法。
  9. 【請求項9】 オペランドデータを発生する前記ステッ
    プは、QNaNおよびSNaNを含むオペランドデータ
    の特別なケースセットの中からオペランドデータを選択
    するステップを含む、請求項1に記載のテストベクトル
    を発生する方法。
  10. 【請求項10】 オペランドデータを発生する前記ステ
    ップは、0の値、正の無限大、負の無限大、小さい差の
    データ対、大きい差のデータ対、および0に接近する値
    を含む境界条件データからオペランドデータを選択する
    ステップを含む、請求項1に記載のテストベクトルを発
    生する方法。
  11. 【請求項11】 記録されたテストベクトル結果をシミ
    ュレータに伝達するステップと、 設計機能ユニットの応答を伝達されたテストベクトル結
    果にシミュレーションするステップとをさらに含む、請
    求項1に記載のテストベクトルを発生する方法。
  12. 【請求項12】 テストベクトルを発生する方法であっ
    て、 模範的な浮動小数点機能ユニットを含むプロセッサ上で
    複数個のプログラム命令を実行するステップを含み、前
    記プログラム命令は、前記模範的な浮動小数点機能ユニ
    ットにより実行される模範的な浮動小数点命令セットを
    含み、さらに前記模範的な浮動小数点命令セットのテス
    ト命令を選択するステップと、 前記テスト命令を実行する前記模範的な浮動小数点機能
    ユニットにより演算されるオペランドデータを発生する
    ステップと、 発生されたデータを演算する前記テスト命令を実行する
    ステップと、 前記テスト命令実行のテストベクトル結果を記録するス
    テップとを含む、テストベクトルを発生する方法。
  13. 【請求項13】 前記テスト命令実行ステップの前に、
    前記模範的な機能ユニットを初期設定するステップをさ
    らに含む、請求項12に記載のテストベクトルを発生す
    る方法。
  14. 【請求項14】 前記模範的な機能ユニットを初期設定
    する前記ステップは、模範的な機能ユニット状態ワード
    の例外フラグビットをクリアする模範的な命令セット動
    作を実行するステップを含む、請求項13に記載のテス
    トベクトルを発生する方法。
  15. 【請求項15】 前記模範的な機能ユニットを初期設定
    する前記ステップは、プロセッサ条件コードレジスタの
    制御ビットをクリアする模範的な命令セット動作を実行
    するステップを含む、請求項13に記載のテストベクト
    ルを発生する方法。
  16. 【請求項16】 テストベクトル結果を記録する前記ス
    テップは、 数値的な発生されたオペランドの符号および大きさの表
    現を記録するステップと、 数値的な実行結果の符号および大きさの表現を記録する
    ステップとを含む、請求項12に記載のテストベクトル
    を発生する方法。
  17. 【請求項17】 テストベクトル結果を記録する前記ス
    テップは、 前記テスト命令を実行した後に、プロセッサ条件コード
    レジスタの値を記録するステップと、 前記テスト命令を実行した後に、例外フラグを含むプロ
    セッサ状態ワードを記録するステップとを含む、請求項
    12に記載のテストベクトルを発生する方法。
  18. 【請求項18】 オペランドデータを発生する前記ステ
    ップは、前記オペランドデータをランダムに発生するス
    テップを含む、請求項12に記載のテストベクトルを発
    生する方法。
  19. 【請求項19】 オペランドデータを発生する前記ステ
    ップは、オペランドデータのベンチマークセットの中か
    らオペランドデータを選択するステップを含む、請求項
    12に記載の方法。
  20. 【請求項20】 オペランドデータを発生する前記ステ
    ップは、QNaNおよびSNaNを含むオペランドデー
    タの特別なケースセットの中からオペランドデータを選
    択するステップを含む、請求項12に記載のテストベク
    トルを発生する方法。
  21. 【請求項21】 オペランドデータを発生する前記ステ
    ップは、0の値、正の無限大、負の無限大、小さい差の
    データ対、大きい差のデータ対、および0に接近する値
    を含む境界条件データからオペランドデータを選択する
    ステップを含む、請求項12に記載のテストベクトルを
    発生する方法。
  22. 【請求項22】 最も近いものへの丸め、0方向への丸
    め、負の無限大方向への丸め、および正の無限大方向へ
    の丸めの丸めモードから丸めモードを選択するステップ
    と、 選択された丸めモードをプロセッサ制御ワードレジスタ
    にロードするステップをさらに含む、請求項12に記載
    のテストベクトルを発生する方法。
  23. 【請求項23】 記録されたテストベクトル結果をシミ
    ュレータに伝達するステップと、 設計浮動小数点機能ユニットの応答を伝達されたテスト
    ベクトル結果にシミュレーションするステップとをさら
    に含む、請求項12に記載のテストベクトルを発生する
    方法。
  24. 【請求項24】 模範的な命令セットを実行するための
    模範的な機能ユニットを有するプロセッサを制御するた
    めのコンピュータプログラムテストベクトル発生システ
    ムであって、前記システムは、複数個のモジュールに形
    成された命令の配列を含み、前記モジュールは、 テスト命令が前記模範的な命令セットから選択される、
    インタラクティブなテスト選択プロセスと、 オペランドデータ発生プロセスと、 前記模範的な機能ユニットが、発生されたオペランドデ
    ータを演算する前記テスト命令を実行する、テスト命令
    実行プロセスと、 前記テスト命令実行のテストベクトル結果が記録され
    る、テストベクトル結果記録プロセスとを含む、テスト
    ベクトル発生システム。
  25. 【請求項25】 前記模範的な命令セットの、模範的な
    機能ユニットを初期設定する命令が実行される、初期設
    定プロセスをさらに含む、請求項24に記載のテストベ
    クトル発生システム。
  26. 【請求項26】 前記初期設定プロセスは、模範的な機
    能ユニット状態ワードの例外フラグビットをクリアする
    命令を含む、請求項25に記載のテストベクトル発生シ
    ステム。
  27. 【請求項27】 前記初期設定プロセスは、プロセッサ
    条件コードレジスタの制御ビットをクリアする命令を含
    む、請求項25に記載のテストベクトル発生システム。
  28. 【請求項28】 前記テストベクトル結果記録プロセス
    は、 オペランド符号および大きさを記録するプロセスと、 実行結果の符号および大きさを記録するプロセスとを含
    む、請求項24に記載のテストベクトル発生システム。
  29. 【請求項29】 前記テストベクトル結果記録プロセス
    は、 プロセッサ条件コードレジスタの値を記録するプロセス
    と、 プロセッサ状態ワードおよび例外フラグを記録するプロ
    セスとを含む、請求項24に記載のテストベクトル発生
    システム。
  30. 【請求項30】 前記オペランドデータ発生プロセス
    は、ランダムな発生プロセスを含む、請求項24に記載
    のテストベクトル発生システム。
  31. 【請求項31】 前記オペランドデータ発生プロセス
    は、ベンチマーク選択プロセスを含む、請求項24に記
    載のテストベクトル発生システム。
  32. 【請求項32】 前記オペランドデータ発生プロセス
    は、特別なケース選択プロセスを含み、特別なケースデ
    ータは、QNaNおよびSNaNを含む、請求項24に
    記載のテストベクトル発生システム。
  33. 【請求項33】 前記オペランドデータ発生プロセス
    は、境界条件選択プロセスを含み、境界条件データは、
    0の値、正の無限大、負の無限大、小さい差のデータ
    対、大きい差のデータ対、および0に接近する値を含
    む、請求項24に記載のテストベクトル発生システム。
  34. 【請求項34】 前記模範的な機能ユニットは、浮動小
    数点プロセッサであり、かつ前記模範的な命令セット
    は、浮動小数点プロセッサの命令セットである、請求項
    24に記載のテストベクトル発生システム。
  35. 【請求項35】 テストベクトル発生システムであっ
    て、 プロセッサと、 前記プロセッサに結合され、かつ模範的な命令セットを
    実行するように動作可能である模範的な機能ユニット
    と、 複数個のモジュールに形成された命令の配列を有するコ
    ンピュータプログラムシステムとを含み、前記モジュー
    ルは、 テスト命令が模範的な命令セットから選択される、イン
    タラクティブなテスト選択プロセスと、 オペランドデータ発生プロセスと、 前記模範的な機能ユニットが、発生されたオペランドデ
    ータを演算するテスト命令を実行する、テスト命令実行
    プロセスと、 前記テスト命令実行のテストベクトル結果が記録され
    る、テストベクトル結果記録プロセスとを含む、テスト
    ベクトル発生システム。
  36. 【請求項36】 前記模範的な命令セットの、模範的な
    機能ユニットを初期設定する命令が実行される、初期設
    定プロセスをさらに含む、請求項35に記載のテストベ
    クトル発生システム。
  37. 【請求項37】 前記初期設定プロセスは、模範的な機
    能ユニット状態ワードの例外フラグビットをクリアする
    命令を含む、請求項36に記載のテストベクトル発生シ
    ステム。
  38. 【請求項38】 前記初期設定プロセスは、プロセッサ
    条件コードレジスタの制御ビットをクリアする命令を含
    む、請求項36に記載のテストベクトル発生システム。
  39. 【請求項39】 前記テストベクトル結果記録プロセス
    は、オペランドの符号および大きさを記録するプロセス
    と、 例外結果の符号および大きさを記録するプロセスとを含
    む、請求項35に記載のテストベクトル発生システム。
  40. 【請求項40】 前記テストベクトル結果記録プロセス
    は、 プロセッサ条件コードレジスタの値を記録するプロセス
    と、 プロセッサ状態ワードおよび例外フラグを記録するプロ
    セスとを含む、請求項35に記載のテストベクトル発生
    システム。
  41. 【請求項41】 前記オペランドデータ発生プロセス
    は、ランダムな発生プロセスを含む、請求項35に記載
    のテストベクトル発生システム。
  42. 【請求項42】 前記オペランドデータ発生プロセス
    は、ベンチマーク選択プロセスを含む、請求項35に記
    載のテストベクトル発生システム。
  43. 【請求項43】 前記オペランドデータ発生プロセス
    は、特別なケース選択プロセスを含み、特別なケースデ
    ータは、QNaNおよびSNaNを含む、請求項35に
    記載のテストベクトル発生システム。
  44. 【請求項44】 前記オペランドデータ発生プロセス
    は、境界条件選択プロセスを含み、境界条件データは、
    0の値、正の無限大、負の無限大、小さい差のデータ
    対、大きい差のデータ対、および0に接近する値を含
    む、請求項35に記載のテストベクトル発生システム。
  45. 【請求項45】 前記模範的な機能ユニットは、浮動小
    数点プロセッサであり、かつ前記模範的な命令セット
    は、浮動小数点プロセッサの命令セットである、請求項
    35に記載のテストベクトル発生システム。
JP7134014A 1994-06-01 1995-05-31 テストベクトルを発生する方法およびテストベクトル発生システム Withdrawn JPH0863367A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US25202694A 1994-06-01 1994-06-01
US252026 1994-06-01

Publications (1)

Publication Number Publication Date
JPH0863367A true JPH0863367A (ja) 1996-03-08

Family

ID=22954309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7134014A Withdrawn JPH0863367A (ja) 1994-06-01 1995-05-31 テストベクトルを発生する方法およびテストベクトル発生システム

Country Status (3)

Country Link
US (1) US5572664A (ja)
EP (1) EP0685794A1 (ja)
JP (1) JPH0863367A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011253253A (ja) * 2010-05-31 2011-12-15 Fujitsu Ltd コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム
JP2018139134A (ja) * 2006-09-22 2018-09-06 インテル コーポレイション 命令に応じた丸め処理の実行

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778170A (en) * 1996-02-14 1998-07-07 Hewlett-Packard Company Data processing system with integral diagnostic procedure
US6223272B1 (en) 1998-07-15 2001-04-24 Siemens Aktiengesellschaft Test vector verification system
US6519694B2 (en) * 1999-02-04 2003-02-11 Sun Microsystems, Inc. System for handling load errors having symbolic entity generator to generate symbolic entity and ALU to propagate the symbolic entity
EP1183544B1 (en) 1999-05-07 2005-11-09 Infineon Technologies AG System-on-a-chip with a reprogrammable tester, debugger, and bus monitor
US6668315B1 (en) * 1999-11-26 2003-12-23 Hewlett-Packard Development Company, L.P. Methods and apparatus for exchanging the contents of registers
US7058926B2 (en) * 2001-08-13 2006-06-06 International Business Machines Corporation Tool for implementing Floating-Point related applications using customized language
US7213122B2 (en) * 2004-04-02 2007-05-01 International Business Machines Corporation Controlling the generation and selection of addresses to be used in a verification environment
WO2007043144A1 (ja) * 2005-10-05 2007-04-19 Hewlett-Packard Development Company, L.P. 負荷試験装置およびその方法
US7680917B2 (en) 2007-06-20 2010-03-16 Red Hat, Inc. Method and system for unit testing web framework applications
US8161324B2 (en) * 2009-12-17 2012-04-17 Hewlett-Packard Development Company, L.P. Analysis result stored on a field replaceable unit
US11188304B1 (en) * 2020-07-01 2021-11-30 International Business Machines Corporation Validating microprocessor performance
CN114462350B (zh) * 2021-12-21 2022-11-15 北京百度网讯科技有限公司 集成电路芯片验证方法、装置、电子设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4520440A (en) * 1982-12-15 1985-05-28 International Business Machines Corporation Test verification of processor architecture having a partial instruction set
DE3751503T2 (de) * 1986-03-26 1996-05-09 Hitachi Ltd Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen.
US5226126A (en) * 1989-02-24 1993-07-06 Nexgen Microsystems Processor having plurality of functional units for orderly retiring outstanding operations based upon its associated tags
US5251306A (en) * 1990-01-16 1993-10-05 Advanced Micro Devices, Inc. Apparatus for controlling execution of a program in a computing device
US5237700A (en) * 1990-03-21 1993-08-17 Advanced Micro Devices, Inc. Exception handling processor for handling first and second level exceptions with reduced exception latency
US5128891A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. High speed divider with square root capability
US5053631A (en) * 1990-04-02 1991-10-01 Advanced Micro Devices, Inc. Pipelined floating point processing unit
US5058048A (en) * 1990-04-02 1991-10-15 Advanced Micro Devices, Inc. Normalizing pipelined floating point processing unit
US5128888A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. Arithmetic unit having multiple accumulators

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018139134A (ja) * 2006-09-22 2018-09-06 インテル コーポレイション 命令に応じた丸め処理の実行
JP2011253253A (ja) * 2010-05-31 2011-12-15 Fujitsu Ltd コンピュータ試験方法、コンピュータ試験装置およびコンピュータ試験プログラム

Also Published As

Publication number Publication date
EP0685794A1 (en) 1995-12-06
US5572664A (en) 1996-11-05

Similar Documents

Publication Publication Date Title
US11698772B2 (en) Prepare for shorter precision (round for reround) mode in a decimal floating-point instruction
EP0730226A2 (en) Hardware support for fast software emulation of unimplemented instructions
US11307855B2 (en) Register-provided-opcode instruction
US5572664A (en) System for generating floating point test vectors
TWI833205B (zh) 用於遞歸神經網路中使用之串連輸入/輸出張量
JP2024522443A (ja) 暗黙の丸めモードを使用する選択されたデータ型との間でのデータ変換
KR100317769B1 (ko) 압축 기억된 십진수 나눗셈에 대한 전문 밀리코드 명령
KR100322726B1 (ko) 번역 및 테스트를 위한 전문 밀리코드 명령
JPH05120007A (ja) プログラマブルコントローラ
KR19990082749A (ko) 편집기능을위한전문밀리코드지시
US7647368B2 (en) Data processing apparatus and method for performing data processing operations on floating point data elements
TWI815407B (zh) 用於促進一計算環境內之處理的電腦程式產品、電腦系統及電腦實施方法
KR100322725B1 (ko) 전문 갱신 및 분기 명령을 이용하는 밀리코드 플래그
JP2024522435A (ja) ニューラル・ネットワーク処理支援命令
US20090210678A1 (en) Handling of Denormals In Floating Point Number Processim
TW202223633A (zh) 用於實施16位元浮點矩陣點積指令的裝置、方法及系統
JP2024523790A (ja) ニューラル・ネットワーク・アクセラレータ命令のためのプログラム・イベント記録ストレージ変更処理
JP2024523098A (ja) 個別の演算パラメータのバリデーションを伴う複数の演算を実行するための単一関数
TW202307653A (zh) 陳述技術
JP2024524902A (ja) 命令実行中に無効な値が検出された場合の例外要約
WO2022264003A1 (en) Instruction to query for model-dependent information
CA3215152A1 (en) Single function to perform multiple operations with distinct operation parameter validation
JP3137636B2 (ja) データ処理装置
Shehadeh et al. Control unit: study, compare, and discuss the recent control units
Iliffe DIGITAL SYSTEMS LABORATORY I

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020806