JPH05120052A - セルフテスト機能付マイクロプロセツサ - Google Patents
セルフテスト機能付マイクロプロセツサInfo
- Publication number
- JPH05120052A JPH05120052A JP3285111A JP28511191A JPH05120052A JP H05120052 A JPH05120052 A JP H05120052A JP 3285111 A JP3285111 A JP 3285111A JP 28511191 A JP28511191 A JP 28511191A JP H05120052 A JPH05120052 A JP H05120052A
- Authority
- JP
- Japan
- Prior art keywords
- data
- random number
- test
- pseudo random
- floating
- 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
Links
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
- Microcomputers (AREA)
Abstract
(57)【要約】
【構成】 浮動小数点演算と固定小数点演算とが可能な
ALUと、擬似乱数データを発生する擬似乱数発生器と
を備えたセルフテスト機能付のマイクロプロセッサであ
って、浮動小数点演算または固定小数点演算の実行状態
を示すためのフロートフラグを発生するステータスフラ
グ回路と、フロートフラグに応答して擬似乱数データを
浮動小数点演算に適したデータに変換する正規化回路と
を備える。 【効果】 擬似乱数データを正規化することにより、A
LUの浮動小数点演算の実行機能をテストするためのデ
ータ数を少なくすることができ、テスト時間を短縮する
ことができる。
ALUと、擬似乱数データを発生する擬似乱数発生器と
を備えたセルフテスト機能付のマイクロプロセッサであ
って、浮動小数点演算または固定小数点演算の実行状態
を示すためのフロートフラグを発生するステータスフラ
グ回路と、フロートフラグに応答して擬似乱数データを
浮動小数点演算に適したデータに変換する正規化回路と
を備える。 【効果】 擬似乱数データを正規化することにより、A
LUの浮動小数点演算の実行機能をテストするためのデ
ータ数を少なくすることができ、テスト時間を短縮する
ことができる。
Description
【0001】
【産業上の利用分野】この発明はセルフテスト機能を有
するセルフテスト機能付マイクロプロセッサに関し、特
に浮動小数点演算が可能な演算器のためのセルフテスト
機能の改良に関するものである。
するセルフテスト機能付マイクロプロセッサに関し、特
に浮動小数点演算が可能な演算器のためのセルフテスト
機能の改良に関するものである。
【0002】
【従来の技術】マイクロプロセッサは、最近急速に高速
化かつ大容量化されている。このようなマイクロプロセ
ッサは、高信頼性が要求され、出荷前にマイクロプロセ
ッサの各機能についてのあらゆるテストが行なわれる。
しかし、このようなテストを行なうための時間をかけす
ぎるとテストコストが大きくなる。そこで、同一チップ
内にマイクロプロセッサとテスト回路とを組込み、マイ
クロプロセッサ自身がテスト回路を使って自己の機能を
テストすることにより、テスト時間を短縮する方法が採
用されている。
化かつ大容量化されている。このようなマイクロプロセ
ッサは、高信頼性が要求され、出荷前にマイクロプロセ
ッサの各機能についてのあらゆるテストが行なわれる。
しかし、このようなテストを行なうための時間をかけす
ぎるとテストコストが大きくなる。そこで、同一チップ
内にマイクロプロセッサとテスト回路とを組込み、マイ
クロプロセッサ自身がテスト回路を使って自己の機能を
テストすることにより、テスト時間を短縮する方法が採
用されている。
【0003】このようなセルフテスト機能を有するマイ
クロプロセッサをセルフテスト機能付マイクロプロセッ
サという。
クロプロセッサをセルフテスト機能付マイクロプロセッ
サという。
【0004】図6は、このようなセルフテスト機能付マ
イクロプロセッサの従来例を示すブロック図である。図
6に示すマイクロプロセッサ1は、通常の動作におい
て、データを処理する回路と、このデータ処理回路の機
能をテストするためのテスト回路とを備える。データを
処理する回路は、データバス4と、入出力ポート10
と、複数の機能ブロック7〜9を含む。複数の機能ブロ
ックは、ALU7、データメモリ8、その他の機能ブロ
ック9を備える。ALU7は浮動小数点演算と固定小数
点演算とを実行できる。データメモリ8は、セルフテス
ト時の入力データが書込まれる。その他の機能ブロック
9は、データパス4を通して与えられる各種データに基
づいて所定の機能を実現する。入出力ポート10は、デ
ータパス4上のデータの入出力制御を行なう。
イクロプロセッサの従来例を示すブロック図である。図
6に示すマイクロプロセッサ1は、通常の動作におい
て、データを処理する回路と、このデータ処理回路の機
能をテストするためのテスト回路とを備える。データを
処理する回路は、データバス4と、入出力ポート10
と、複数の機能ブロック7〜9を含む。複数の機能ブロ
ックは、ALU7、データメモリ8、その他の機能ブロ
ック9を備える。ALU7は浮動小数点演算と固定小数
点演算とを実行できる。データメモリ8は、セルフテス
ト時の入力データが書込まれる。その他の機能ブロック
9は、データパス4を通して与えられる各種データに基
づいて所定の機能を実現する。入出力ポート10は、デ
ータパス4上のデータの入出力制御を行なう。
【0005】テストを行なうための回路は、外部的に発
生されるテストモード指定信号を受ける端子13、擬似
乱数発生器2、データ圧縮器3、プログラムカウンタ
6、セレクタ11およびセレクタ12を含む。プログラ
ムカウンタ5は、プログラムメモリ6にアドレスを与え
る。プログラムメモリ6には、各機能ブロックをコント
ロールするプログラムとともにセルフテストプログラム
が書込まれている。擬似乱数発生器2は、セルフテスト
プログラムを実行するときに、入力データとしての擬似
乱数を発生する。セレクタ12は、通常動作時には入出
力ポート10からデータパス4への経路を選択し、セル
フテスト実行時には擬似乱数発生器2からデータパス4
への経路を選択する。セレクタ11は、通常動作時には
データパス4から入出力ポートへの経路を選択し、セル
フテスト実行時にはデータパス4からデータ圧縮器3へ
の経路を選択する。データ圧縮器3はセレクタ11を通
して与えられるデータを圧縮するシグネチャレジスタで
ある。
生されるテストモード指定信号を受ける端子13、擬似
乱数発生器2、データ圧縮器3、プログラムカウンタ
6、セレクタ11およびセレクタ12を含む。プログラ
ムカウンタ5は、プログラムメモリ6にアドレスを与え
る。プログラムメモリ6には、各機能ブロックをコント
ロールするプログラムとともにセルフテストプログラム
が書込まれている。擬似乱数発生器2は、セルフテスト
プログラムを実行するときに、入力データとしての擬似
乱数を発生する。セレクタ12は、通常動作時には入出
力ポート10からデータパス4への経路を選択し、セル
フテスト実行時には擬似乱数発生器2からデータパス4
への経路を選択する。セレクタ11は、通常動作時には
データパス4から入出力ポートへの経路を選択し、セル
フテスト実行時にはデータパス4からデータ圧縮器3へ
の経路を選択する。データ圧縮器3はセレクタ11を通
して与えられるデータを圧縮するシグネチャレジスタで
ある。
【0006】図7は、図6のマイクロプロセッサに用い
られる擬似乱数発生器2の一例を示すブロック図であ
る。図7に示す擬似乱数発生器2は、24ビットの擬似
乱数を発生する。この擬似乱数発生器2は、24ビット
に対応して設けられる複数のラッチ回路20と、3つの
EX−ORゲート21を含む。
られる擬似乱数発生器2の一例を示すブロック図であ
る。図7に示す擬似乱数発生器2は、24ビットの擬似
乱数を発生する。この擬似乱数発生器2は、24ビット
に対応して設けられる複数のラッチ回路20と、3つの
EX−ORゲート21を含む。
【0007】動作において複数のラッチ回路20の出力
同士のEX−ORをとり、この値を初段のラッチ回路2
0にフィードバックすることにより擬似乱数を発生して
いる。このような擬似乱数発生器2は、一般にリニアフ
ィードバックシフトレジスタと呼ばれる。
同士のEX−ORをとり、この値を初段のラッチ回路2
0にフィードバックすることにより擬似乱数を発生して
いる。このような擬似乱数発生器2は、一般にリニアフ
ィードバックシフトレジスタと呼ばれる。
【0008】図8は図6および図7に示したマイクロプ
ロセッサのフローチャートである。図8を参照して、従
来のマイクロプロセッサのセルフテスト動作を説明す
る。
ロセッサのフローチャートである。図8を参照して、従
来のマイクロプロセッサのセルフテスト動作を説明す
る。
【0009】まず、入力端子13にテストモード指定信
号が入力されると、マイクロプロセッサ1はセルフテス
トモードにセットされる。このセルフテストモードへの
セットに応答して、セレクタ12が擬似乱数発生器2か
らデータパス4への経路を選択し、セレクタ11がデー
タパス4からデータ圧縮器3への経路を選択する。ま
た、プログラムメモリ6からの命令により、所望の機能
ブロックが選択される(ステップ51〜55)。以上の
ステップ51〜55の動作により、擬似乱数データを機
能ブロックに与えるための経路が形成され、かつ機能ブ
ロックによる処理データをデータ圧縮器3に与える経路
が形成される。
号が入力されると、マイクロプロセッサ1はセルフテス
トモードにセットされる。このセルフテストモードへの
セットに応答して、セレクタ12が擬似乱数発生器2か
らデータパス4への経路を選択し、セレクタ11がデー
タパス4からデータ圧縮器3への経路を選択する。ま
た、プログラムメモリ6からの命令により、所望の機能
ブロックが選択される(ステップ51〜55)。以上の
ステップ51〜55の動作により、擬似乱数データを機
能ブロックに与えるための経路が形成され、かつ機能ブ
ロックによる処理データをデータ圧縮器3に与える経路
が形成される。
【0010】ステップ56において、擬似乱数データを
選択し機能ブロックに与える。次に、ステップ57にお
いて、選択した機能ブロックを通常動作させて、擬似乱
数データを処理させる。ステップ58において、機能ブ
ロックのテスト結果をデータ圧縮器3に与える。テスト
結果のデータは、データ圧縮器3により圧縮された後、
外部に出力され、図示しない外部の判定回路により期待
値との一致・不一致が検出される。なお、期待値は擬似
乱数発生器により発生される擬似乱数データに基づいて
求められる。
選択し機能ブロックに与える。次に、ステップ57にお
いて、選択した機能ブロックを通常動作させて、擬似乱
数データを処理させる。ステップ58において、機能ブ
ロックのテスト結果をデータ圧縮器3に与える。テスト
結果のデータは、データ圧縮器3により圧縮された後、
外部に出力され、図示しない外部の判定回路により期待
値との一致・不一致が検出される。なお、期待値は擬似
乱数発生器により発生される擬似乱数データに基づいて
求められる。
【0011】ステップ59において、選択した機能ブロ
ックのテストが終了したかどうかが判別され、選択した
機能ブロックのテストが終了していないと判別した場合
には、ステップ56〜59の処理を繰り返す。逆に選択
した機能ブロックのテストが終了したと判別した場合に
は、ステップ60においてすべての機能ブロックのテス
トが終了したかどうかが判別される。すべての機能ブロ
ックのテストが終了するまではステップ55ないし60
の処理が繰り返される。
ックのテストが終了したかどうかが判別され、選択した
機能ブロックのテストが終了していないと判別した場合
には、ステップ56〜59の処理を繰り返す。逆に選択
した機能ブロックのテストが終了したと判別した場合に
は、ステップ60においてすべての機能ブロックのテス
トが終了したかどうかが判別される。すべての機能ブロ
ックのテストが終了するまではステップ55ないし60
の処理が繰り返される。
【0012】図6ないし図7に示したマイクロプロセッ
サは、以上のようにして、ALUを除く複数の機能ブロ
ックのテストを簡単に行なうことができ、かつテスト時
間を短縮することができる。しかし、ALU7は浮動小
数点演算および固定小数点演算などの機能を有するた
め、他の機能ブロックと比較してテストに時間がかか
る。このことを以下に説明する。
サは、以上のようにして、ALUを除く複数の機能ブロ
ックのテストを簡単に行なうことができ、かつテスト時
間を短縮することができる。しかし、ALU7は浮動小
数点演算および固定小数点演算などの機能を有するた
め、他の機能ブロックと比較してテストに時間がかか
る。このことを以下に説明する。
【0013】図9は、図8のステップ56〜59をAL
U7に対応させかつその詳細を示した図である。図9を
参照して、Xは、浮動小数点演算を示し、Yは固定小数
点演算を示す。ALU7のセルフテストは、次のように
して行なわれる。すなわち、ステップ1において擬似乱
数データをALUにロードする。ステップ2において、
浮動小数点演算および固定小数点演算のいずれが命令さ
れていたかをデコードする。浮動小数点演算が命令され
ている場合には、浮動小数点演算の実行命令をALU7
に与え、ALU7にその実行をさせる。逆に固定小数点
演算が命令されている場合には、ステップ4において固
定小数点演算の実行命令をALUに与えその演算の実行
を行なわせる。ステップ5において演算結果をデータ圧
縮器3にロードする。ステップ6においてALUのすべ
ての演算のテストが終了したかどうかを判別し、すべて
の演算のテストが終了していないと判別した場合にはス
テップ1〜6の処理を繰り返す。すべての演算のテスト
が終了したと判別した場合には、ステップ7においてA
LUのテストを終了する。
U7に対応させかつその詳細を示した図である。図9を
参照して、Xは、浮動小数点演算を示し、Yは固定小数
点演算を示す。ALU7のセルフテストは、次のように
して行なわれる。すなわち、ステップ1において擬似乱
数データをALUにロードする。ステップ2において、
浮動小数点演算および固定小数点演算のいずれが命令さ
れていたかをデコードする。浮動小数点演算が命令され
ている場合には、浮動小数点演算の実行命令をALU7
に与え、ALU7にその実行をさせる。逆に固定小数点
演算が命令されている場合には、ステップ4において固
定小数点演算の実行命令をALUに与えその演算の実行
を行なわせる。ステップ5において演算結果をデータ圧
縮器3にロードする。ステップ6においてALUのすべ
ての演算のテストが終了したかどうかを判別し、すべて
の演算のテストが終了していないと判別した場合にはス
テップ1〜6の処理を繰り返す。すべての演算のテスト
が終了したと判別した場合には、ステップ7においてA
LUのテストを終了する。
【0014】固定小数点演算は2進数のデータの小数点
の位置がいつでも単位桁のすぐ右にあるものとみなして
処理することから小数点の位置が固定される。一方、浮
動小数点演算は、小数点の位置合わせが自動的に行なわ
れる。すなわち、固定小数点演算ではプログラムの中で
の小数点の位置合わせを指定する必要があるが、浮動小
数点演算では、その必要がない。また、浮動小数点演算
では使われるデータは指数表示の方法が用いられている
ので、非常に大きな数値や非常に小さな数値を取り扱う
ことができる。
の位置がいつでも単位桁のすぐ右にあるものとみなして
処理することから小数点の位置が固定される。一方、浮
動小数点演算は、小数点の位置合わせが自動的に行なわ
れる。すなわち、固定小数点演算ではプログラムの中で
の小数点の位置合わせを指定する必要があるが、浮動小
数点演算では、その必要がない。また、浮動小数点演算
では使われるデータは指数表示の方法が用いられている
ので、非常に大きな数値や非常に小さな数値を取り扱う
ことができる。
【0015】図10は24ビット形式の浮動小数点デー
タを示す図である。図10において、Fは仮数を示し、
16ビットの2つの補数表現にされる。Eは指数部を示
し、8ビットで表現されかつその最上位ビットに“1”
=128を加えたいわゆるげたばき表現にされる。指数
部Eおよび仮数部Fはそれぞれ(1)式と(2)および
(3)式とで表わされる。
タを示す図である。図10において、Fは仮数を示し、
16ビットの2つの補数表現にされる。Eは指数部を示
し、8ビットで表現されかつその最上位ビットに“1”
=128を加えたいわゆるげたばき表現にされる。指数
部Eおよび仮数部Fはそれぞれ(1)式と(2)および
(3)式とで表わされる。
【0016】
【数1】仮数部Fは(3)式を見たすように正規化され
る。このようにして正規化された仮数部Fは正の場合に
はビット15および14がそれぞれ“0”,“1”の値
をとる。一方、固定小数点データは24ビットの補数で
表現されると仮定すると、ビット15および14のなら
びは“00”,“01”,“10”,“11”の4通り
であり、この4通りのすべてに対して固定小数点演算が
可能である。
る。このようにして正規化された仮数部Fは正の場合に
はビット15および14がそれぞれ“0”,“1”の値
をとる。一方、固定小数点データは24ビットの補数で
表現されると仮定すると、ビット15および14のなら
びは“00”,“01”,“10”,“11”の4通り
であり、この4通りのすべてに対して固定小数点演算が
可能である。
【0017】上記のようなデータ形式を持つマイクロプ
ロセッサでは、固定小数点演算の場合にはすべてのビッ
トの並びに規定はないので、擬似乱数発生器2の出力の
すべてが入力データとして取り扱える。しかし、浮動小
数点演算の場合には、ビット15および14の並びは
“01”まはた“10”のどちらかしかないので、擬似
乱数発生器2の出力のビット15および14の並びが
“00”,“11”のものは、入力データとしては役に
立たない。ビット15および14の並びが“01”また
は“10”となる確率は1/2なので、たとえば100
個の浮動小数点データについて演算を実行したければ、
200個の擬似乱数について演算をして初めて同等とな
る。浮動小数点演算が2入力の場合には、2入力とも浮
動小数点データとなる確率は (1/2)×(1/2)=1/4 となり4倍の擬似乱数を必要とする。
ロセッサでは、固定小数点演算の場合にはすべてのビッ
トの並びに規定はないので、擬似乱数発生器2の出力の
すべてが入力データとして取り扱える。しかし、浮動小
数点演算の場合には、ビット15および14の並びは
“01”まはた“10”のどちらかしかないので、擬似
乱数発生器2の出力のビット15および14の並びが
“00”,“11”のものは、入力データとしては役に
立たない。ビット15および14の並びが“01”また
は“10”となる確率は1/2なので、たとえば100
個の浮動小数点データについて演算を実行したければ、
200個の擬似乱数について演算をして初めて同等とな
る。浮動小数点演算が2入力の場合には、2入力とも浮
動小数点データとなる確率は (1/2)×(1/2)=1/4 となり4倍の擬似乱数を必要とする。
【0018】
【発明が解決しようとする課題】従来のセルフテスト機
能付マイクロプロセッサは以上の構成にされているの
で、浮動小数点演算と固定小数点演算とが可能なALU
をテストする場合には演算入力データとして擬似乱数が
浮動小数点演算に適したデータである確率(すなわち、
正規化された数値である確率)は1/2である。このた
め、あるデータ数の浮動小数点演算のテストを実行した
ければ、そのデータ数の倍のデータ数を擬似乱数発生器
により発生させる必要がある。さらに、ALUが2入力
を演算する場合には、2入力ともに正規化された数値で
ある確率は1/4となるので、あるデータ数の4倍のデ
ータに対してテストを行なうことが必要である。このこ
とは、セルフテストの実行時間を長くすることになり、
テストコストの増加となる。
能付マイクロプロセッサは以上の構成にされているの
で、浮動小数点演算と固定小数点演算とが可能なALU
をテストする場合には演算入力データとして擬似乱数が
浮動小数点演算に適したデータである確率(すなわち、
正規化された数値である確率)は1/2である。このた
め、あるデータ数の浮動小数点演算のテストを実行した
ければ、そのデータ数の倍のデータ数を擬似乱数発生器
により発生させる必要がある。さらに、ALUが2入力
を演算する場合には、2入力ともに正規化された数値で
ある確率は1/4となるので、あるデータ数の4倍のデ
ータに対してテストを行なうことが必要である。このこ
とは、セルフテストの実行時間を長くすることになり、
テストコストの増加となる。
【0019】それゆえに、この発明は上記のような問題
点を解決するためになされたものであり、セルフテスト
の実行時間を短縮することができるセルフテスト機能付
マイクロプロセッサを提供することを目的とする。
点を解決するためになされたものであり、セルフテスト
の実行時間を短縮することができるセルフテスト機能付
マイクロプロセッサを提供することを目的とする。
【0020】
【課題を解決するための手段】前記目的を達成するため
のこの発明に係るセルフテスト機能付マイクロプロセッ
サは、固定小数点演算と浮動小数点演算とが可能な演算
器と、前記演算器をテストするための擬似乱数発生器と
を備えたセルフテスト機能付マイクロプロセッサであっ
て、前記演算器が固定小数点演算の実行状態か浮動小数
点演算の実行状態かを示すフラグを発生する手段と、前
記発生されたフラグが固定小数点演算の実行状態を示す
場合には、前記擬似乱数発生器により発生された擬似乱
数データを前記演算器に与え、前記発生されたフラグが
浮動小数点演算の実行状態を示す場合には、前記擬似乱
数発生器により発生された擬似乱数データを浮動小数点
演算に的した擬似乱数データに変換して前記演算器に与
える手段とを含むことを特徴とする。
のこの発明に係るセルフテスト機能付マイクロプロセッ
サは、固定小数点演算と浮動小数点演算とが可能な演算
器と、前記演算器をテストするための擬似乱数発生器と
を備えたセルフテスト機能付マイクロプロセッサであっ
て、前記演算器が固定小数点演算の実行状態か浮動小数
点演算の実行状態かを示すフラグを発生する手段と、前
記発生されたフラグが固定小数点演算の実行状態を示す
場合には、前記擬似乱数発生器により発生された擬似乱
数データを前記演算器に与え、前記発生されたフラグが
浮動小数点演算の実行状態を示す場合には、前記擬似乱
数発生器により発生された擬似乱数データを浮動小数点
演算に的した擬似乱数データに変換して前記演算器に与
える手段とを含むことを特徴とする。
【0021】
【作用】以上のこの発明では、浮動小数点演算の実行状
態の場合には、擬似乱数発生器により発生された擬似乱
数データが正規化されるので、従来例のごとく正規化さ
れた数値を見越してより多くのデータによる演算を実行
する必要がなくなる。その結果短い時間でより正しいテ
ストを行なうことができる。
態の場合には、擬似乱数発生器により発生された擬似乱
数データが正規化されるので、従来例のごとく正規化さ
れた数値を見越してより多くのデータによる演算を実行
する必要がなくなる。その結果短い時間でより正しいテ
ストを行なうことができる。
【0022】
【実施例】図1は、この発明の一実施例を示すブロック
図である。図1を参照して、このセルフテスト機能付マ
イクロプロセッサが図7のセルフテスト機能付マイクロ
プロセッサと異なるところは、浮動小数点演算または固
定小数点演算を指定するためのフロートフラグ16を発
生するステータスフラグ15と、ステータスフラグ回路
15により発生されたフロートフラグ16に応答して、
擬似乱数発生器2からのデータを正規化する正規化回路
14とが設けられていることである。その他の回路につ
いては、図7に示したものと同様でありその説明は適宜
省略する。ステータスフラグ回路15は、マイクロプロ
セッサの状態を示すステータスフラグを発生する。フロ
ートフラグ16はこのステータスフラグの1つである。
このステータスフラグ回路は、浮動小数点演算を実行す
る場合には、フロートフラグ16を“1”にし、固定小
数点演算を実行する場合にはフロートフラグ16を
“0”にする。この実施例においては外部から浮動小数
点演算の指定あるいは固定小数点演算の指定がなされ、
それに応答してプログラムメモリ6がフロートフラグを
“1”または“0”にセットする。
図である。図1を参照して、このセルフテスト機能付マ
イクロプロセッサが図7のセルフテスト機能付マイクロ
プロセッサと異なるところは、浮動小数点演算または固
定小数点演算を指定するためのフロートフラグ16を発
生するステータスフラグ15と、ステータスフラグ回路
15により発生されたフロートフラグ16に応答して、
擬似乱数発生器2からのデータを正規化する正規化回路
14とが設けられていることである。その他の回路につ
いては、図7に示したものと同様でありその説明は適宜
省略する。ステータスフラグ回路15は、マイクロプロ
セッサの状態を示すステータスフラグを発生する。フロ
ートフラグ16はこのステータスフラグの1つである。
このステータスフラグ回路は、浮動小数点演算を実行す
る場合には、フロートフラグ16を“1”にし、固定小
数点演算を実行する場合にはフロートフラグ16を
“0”にする。この実施例においては外部から浮動小数
点演算の指定あるいは固定小数点演算の指定がなされ、
それに応答してプログラムメモリ6がフロートフラグを
“1”または“0”にセットする。
【0023】図2は、正規化回路14と擬似乱数発生器
2の詳細を示すブロック図である。図2を参照して、擬
似乱数発生器2は、図8と同様である。正規化回路14
は、インバータ14aおよび14bと、各々がPチャネ
ルトランジスタとNチャネルトランジスタとを備えるト
ランスファーゲート14cおよび14dとを備える。ト
ランスファーゲート14cおよび14dの各々は、2つ
の導通端子を含み、トランスファーゲート14cの一方
の導通端子は擬似乱数発生器2のビット14の出力デー
タを受けるように接続され、他方の導通端子はデータパ
ス4に接続される。トランスファーゲート14dの一方
の導通端子は、擬似乱数発生器2のビット15の出力デ
ータを受けるように接続され。他方の導通端子はデータ
パス4に接続される。
2の詳細を示すブロック図である。図2を参照して、擬
似乱数発生器2は、図8と同様である。正規化回路14
は、インバータ14aおよび14bと、各々がPチャネ
ルトランジスタとNチャネルトランジスタとを備えるト
ランスファーゲート14cおよび14dとを備える。ト
ランスファーゲート14cおよび14dの各々は、2つ
の導通端子を含み、トランスファーゲート14cの一方
の導通端子は擬似乱数発生器2のビット14の出力デー
タを受けるように接続され、他方の導通端子はデータパ
ス4に接続される。トランスファーゲート14dの一方
の導通端子は、擬似乱数発生器2のビット15の出力デ
ータを受けるように接続され。他方の導通端子はデータ
パス4に接続される。
【0024】動作において、フロートフラグ16が
“0”の場合には、トランスファーゲート14cのPチ
ャネルトランジスタおよびNチャネルトランジスタがオ
ン状態となり、トランスファーゲート14dのPチャネ
ルトランジスタおよびNチャネルトランジスタがOFF
状態になる。したがって、擬似乱数発生器2のビット1
4のデータがそのままデータパス4に伝達される。一
方、フロートフラグ16が“1”の場合には、トランス
ファーゲート14cのPチャネルトランジスタおよびN
チャネルトランジスタがオフ状態となり、トランスファ
ーゲート14dのPチャネルトランジスタおよびNチャ
ネルトランジスタがオン状態になる。トランスファーゲ
ート14dの一方の導通端子にはインバータ14bによ
りビット15のデータを反転させたデータが与えられ
る。したがって、データパス4にはビット14のデータ
に代えてビット15のデータを反転させたデータとビッ
ト15のデータとが与えられる。この結果擬似乱数発生
器2により発生されるビット15のデータが“1”の場
合には、データパス4に与えられるビット14および1
5は“01”となる。また、擬似乱数発生器2により発
生されるビット15のデータが“0”にの場合には、デ
ータパス4に与えられるビット14および15は“1
0”となる。このようにして擬似乱数データが浮動小数
点演算に適したデータに変換される。
“0”の場合には、トランスファーゲート14cのPチ
ャネルトランジスタおよびNチャネルトランジスタがオ
ン状態となり、トランスファーゲート14dのPチャネ
ルトランジスタおよびNチャネルトランジスタがOFF
状態になる。したがって、擬似乱数発生器2のビット1
4のデータがそのままデータパス4に伝達される。一
方、フロートフラグ16が“1”の場合には、トランス
ファーゲート14cのPチャネルトランジスタおよびN
チャネルトランジスタがオフ状態となり、トランスファ
ーゲート14dのPチャネルトランジスタおよびNチャ
ネルトランジスタがオン状態になる。トランスファーゲ
ート14dの一方の導通端子にはインバータ14bによ
りビット15のデータを反転させたデータが与えられ
る。したがって、データパス4にはビット14のデータ
に代えてビット15のデータを反転させたデータとビッ
ト15のデータとが与えられる。この結果擬似乱数発生
器2により発生されるビット15のデータが“1”の場
合には、データパス4に与えられるビット14および1
5は“01”となる。また、擬似乱数発生器2により発
生されるビット15のデータが“0”にの場合には、デ
ータパス4に与えられるビット14および15は“1
0”となる。このようにして擬似乱数データが浮動小数
点演算に適したデータに変換される。
【0025】図3は図1および図2に示したセルフテス
ト機能付マイクロプロセッサの動作を説明するためのフ
ローチャートである。
ト機能付マイクロプロセッサの動作を説明するためのフ
ローチャートである。
【0026】まず、固定小数点演算または浮動小数点演
算のいずれを実行するかの命令を与える。この命令に応
答して、ステータスフラグ15はフロートフラグ16を
“0”または“1”にセットする(ステップ1)。ステ
ップ2においてセットしたフロートフラグを変更するか
否かを判別し、必要に応じてフロートフラグを変更する
(ステップ2および3)。ステップ4においてフローフ
ラグ16が“1”かどうかが判別され、フロートフラグ
16が“1”でない場合は、ステップ6においいて擬似
乱数発生器2により発生される擬似乱数データをそのま
まALU7にロードする。逆にフロートフラグ16が
“1”の場合は、擬似乱数データを正規化したデータを
ALUにロードする。この場合において、正規化回路1
4は、“1”であるフロートフラグ16に応答して、擬
似乱数データのうちのビット14および15のデータを
“01”または“10”にすることにより、浮動小数点
演算に適したデータに変換する。
算のいずれを実行するかの命令を与える。この命令に応
答して、ステータスフラグ15はフロートフラグ16を
“0”または“1”にセットする(ステップ1)。ステ
ップ2においてセットしたフロートフラグを変更するか
否かを判別し、必要に応じてフロートフラグを変更する
(ステップ2および3)。ステップ4においてフローフ
ラグ16が“1”かどうかが判別され、フロートフラグ
16が“1”でない場合は、ステップ6においいて擬似
乱数発生器2により発生される擬似乱数データをそのま
まALU7にロードする。逆にフロートフラグ16が
“1”の場合は、擬似乱数データを正規化したデータを
ALUにロードする。この場合において、正規化回路1
4は、“1”であるフロートフラグ16に応答して、擬
似乱数データのうちのビット14および15のデータを
“01”または“10”にすることにより、浮動小数点
演算に適したデータに変換する。
【0027】ステップ7において、浮動小数点演算およ
び固定小数点演算のいずれが命令されたかデコードす
る。デコード結果が浮動小数点演算命令である場合には
すて8においてALU7は浮動小数点演算の実行命令を
実行する。逆にデコーダ結果が固定小数点演算であると
判別した場合には、ステップ9においてALUは固定小
数点演算を実行する。
び固定小数点演算のいずれが命令されたかデコードす
る。デコード結果が浮動小数点演算命令である場合には
すて8においてALU7は浮動小数点演算の実行命令を
実行する。逆にデコーダ結果が固定小数点演算であると
判別した場合には、ステップ9においてALUは固定小
数点演算を実行する。
【0028】ステップ10において演算結果がALUか
らデータ圧縮器3に転送され、ここでデータは圧縮され
る。ステップ11において、ALUがすべての演算のテ
ストを終了したかどうかが判別され、終了していないと
判別した場合には、ステップ2〜11の処理が繰り返さ
れる。すべての演算テストを終了したと判別した場合に
は、ステップ12においてテストを終了する。
らデータ圧縮器3に転送され、ここでデータは圧縮され
る。ステップ11において、ALUがすべての演算のテ
ストを終了したかどうかが判別され、終了していないと
判別した場合には、ステップ2〜11の処理が繰り返さ
れる。すべての演算テストを終了したと判別した場合に
は、ステップ12においてテストを終了する。
【0029】以上の図1ないし図3に示した実施例であ
れば、命令によりフロートフラグ10を“1”にするこ
とにより、擬似乱数データを正規化することができるの
で、ALUの浮動小数点の演算テストを実行するための
時間を短縮することができる。
れば、命令によりフロートフラグ10を“1”にするこ
とにより、擬似乱数データを正規化することができるの
で、ALUの浮動小数点の演算テストを実行するための
時間を短縮することができる。
【0030】また、前記実施例では、命令によりフロー
トフラグ16を“0”または“1”にセットしたが、こ
れに代えて、マイクロプロセッサの命令デコード時にお
いて浮動小数点命令をデコードすることによりフロート
フラグ16を“1”にセットしたり、固定小数点演算命
令をデコードすることによりフロートフラグ16を
“0”にセットしたりすることが可能である。このこと
を実現するためのプログラムが図4に示される。
トフラグ16を“0”または“1”にセットしたが、こ
れに代えて、マイクロプロセッサの命令デコード時にお
いて浮動小数点命令をデコードすることによりフロート
フラグ16を“1”にセットしたり、固定小数点演算命
令をデコードすることによりフロートフラグ16を
“0”にセットしたりすることが可能である。このこと
を実現するためのプログラムが図4に示される。
【0031】図4は、第2の実施例を示すフローチャー
トである。図4に示すフローチャートが図3のフローチ
ャートと異なるところは、図3に示した演算命令を直接
ステータスフラグに与えるためのステップ1〜3が省略
され、図5のステップ5および6においてフロートフラ
グを“1”または“0”にセットしていることである。
このようにすることにより、命令デコーダ時において浮
動小数点演算命令をデコードし、デコード結果に基づい
てフロートフラグを“0”、“1”にセットすることが
可能になる。
トである。図4に示すフローチャートが図3のフローチ
ャートと異なるところは、図3に示した演算命令を直接
ステータスフラグに与えるためのステップ1〜3が省略
され、図5のステップ5および6においてフロートフラ
グを“1”または“0”にセットしていることである。
このようにすることにより、命令デコーダ時において浮
動小数点演算命令をデコードし、デコード結果に基づい
てフロートフラグを“0”、“1”にセットすることが
可能になる。
【0032】ただしマイクロプロセッサでは通常図5に
示すようなパイプライン処理をとっている。すなわち、 LOAD A←P;レジスタPからレジスタAにロード LOAD B←P;レジスタPからレジスタBにロード ADGF C←A+B;AとBとを浮動小数点加算し結
果をCへ出力 MOVE P←C;レジスタCからレジスタPに転送 という一連の動作を行なう。各動作は、命令フェッチI
と、命令デコーダDと、実行Eとからなり、3つのクロ
ックを必要とする。したがって、図6からわかるよう
に、レジスタAにデータが転送されるのが時刻T3、レ
ジスタBにデータが転送されるのが時刻T4、浮動小数
点加算の命令がデコードを終了するのが時刻T4の終了
時であるので、この浮動小数点演算の入力データのこの
デコード結果を反映させることはできない。つまり、命
令デコード時にはこの命令で使用する演算入力データは
既にロードされていなければ演算の実行はできないの
で、変更されたフロートフラグ16は次の演算で使用さ
れる擬似乱数データの発生に使われることになる。ゆえ
に、固定小数点演算と浮動小数点演算とが混在したテス
トフローではたとえば固定小数点演算の後に浮動小数点
演算を実行する場合において、固定小数点演算の実行後
に擬似乱数発生器2からALU7内の演算入力レジスタ
にデータをロードすると、固定小数点データ用の正規化
されていない乱数を転送し、そのデータに対し次の演算
である浮動小数点演算を実行することになる。この結
果、正規化されない入力データで浮動小数点演算をする
場合が存在してしまう(逆に、浮動小数点演算の後に固
定小数点演算を実行する場合には、固定小数点データを
ビット15および14が“01”あるいは“10”であ
っても正しいデータであるので問題はない)。
示すようなパイプライン処理をとっている。すなわち、 LOAD A←P;レジスタPからレジスタAにロード LOAD B←P;レジスタPからレジスタBにロード ADGF C←A+B;AとBとを浮動小数点加算し結
果をCへ出力 MOVE P←C;レジスタCからレジスタPに転送 という一連の動作を行なう。各動作は、命令フェッチI
と、命令デコーダDと、実行Eとからなり、3つのクロ
ックを必要とする。したがって、図6からわかるよう
に、レジスタAにデータが転送されるのが時刻T3、レ
ジスタBにデータが転送されるのが時刻T4、浮動小数
点加算の命令がデコードを終了するのが時刻T4の終了
時であるので、この浮動小数点演算の入力データのこの
デコード結果を反映させることはできない。つまり、命
令デコード時にはこの命令で使用する演算入力データは
既にロードされていなければ演算の実行はできないの
で、変更されたフロートフラグ16は次の演算で使用さ
れる擬似乱数データの発生に使われることになる。ゆえ
に、固定小数点演算と浮動小数点演算とが混在したテス
トフローではたとえば固定小数点演算の後に浮動小数点
演算を実行する場合において、固定小数点演算の実行後
に擬似乱数発生器2からALU7内の演算入力レジスタ
にデータをロードすると、固定小数点データ用の正規化
されていない乱数を転送し、そのデータに対し次の演算
である浮動小数点演算を実行することになる。この結
果、正規化されない入力データで浮動小数点演算をする
場合が存在してしまう(逆に、浮動小数点演算の後に固
定小数点演算を実行する場合には、固定小数点データを
ビット15および14が“01”あるいは“10”であ
っても正しいデータであるので問題はない)。
【0033】ゆえに、固定小数点演算命令同士また浮動
小数点演算命令同士を一まとめにし、固定小数点演算命
令を浮動小数点演算命令の間にはダミーの浮動小数点演
算命令を加えてやるようにテストプログラムを構成して
やればよいことになる。もちろん命令によるフロートフ
ラグ16のセットと演算命令のデコードによるフロート
フラグのセットとの両方を行なうことが可能にすること
もできる。
小数点演算命令同士を一まとめにし、固定小数点演算命
令を浮動小数点演算命令の間にはダミーの浮動小数点演
算命令を加えてやるようにテストプログラムを構成して
やればよいことになる。もちろん命令によるフロートフ
ラグ16のセットと演算命令のデコードによるフロート
フラグのセットとの両方を行なうことが可能にすること
もできる。
【0034】
【発明の効果】以上のこの発明によれば、常に正しく正
規化された演算データによる演算を実行することがで
き、かつデータの乱数正も保たれているため、従来例と
比較してテスト時間が短縮されかつ正確なテストを行な
うことができるという効果が得られる。
規化された演算データによる演算を実行することがで
き、かつデータの乱数正も保たれているため、従来例と
比較してテスト時間が短縮されかつ正確なテストを行な
うことができるという効果が得られる。
【図1】この発明の一実施例を示すブロック図である。
【図2】図1の擬似乱数発生器および正規化回路の詳細
を示すブロック図である。
を示すブロック図である。
【図3】図1および図2に示したセルフテスト機能付マ
イクロプロセッサの動作を示すフローチャートである。
イクロプロセッサの動作を示すフローチャートである。
【図4】この発明の第2の実施例を示すフローチャート
である。
である。
【図5】パイプライン処理を示す図である。
【図6】従来のセルフテスト機能付マイクロプロセッサ
のブロック図である。
のブロック図である。
【図7】図6のセルフテスト機能付マイクロプロセッサ
の擬似乱数発生器のブロック図である。
の擬似乱数発生器のブロック図である。
【図8】図6および図7に示すセルフテスト機能付マイ
クロプロセッサのセルフテストを示すフローチャートで
ある。
クロプロセッサのセルフテストを示すフローチャートで
ある。
【図9】従来のAULのテストを実行するためのフロー
チャートである。
チャートである。
【図10】演算データのデータ形式を示す図である。
1 マイクロプロセッサ 2 擬似乱数発生器 3 データ圧縮器 4 データバス 6 プログラムメモリ 7 ALU 14 正規化回路 15 ステータスフラグ 16 フロートフラグ
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成3年11月6日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0016
【補正方法】変更
【補正内容】
【0016】
【数1】 仮数部Fは(3)式を満たすように正規化される。この
ようにして正規化された仮数部Fは正の場合にはビット
15および14がそれぞれ“0”,“1”の値をとる。
一方、固定小数点データは24ビットの補数で表現され
ると仮定すると、ビット15および14の並びは“0
0”,“01”,“10”,“11”の4通りであり、
この4通りのすべてに対して固定小数点演算が可能であ
る。
ようにして正規化された仮数部Fは正の場合にはビット
15および14がそれぞれ“0”,“1”の値をとる。
一方、固定小数点データは24ビットの補数で表現され
ると仮定すると、ビット15および14の並びは“0
0”,“01”,“10”,“11”の4通りであり、
この4通りのすべてに対して固定小数点演算が可能であ
る。
【手続補正書】
【提出日】平成5年1月26日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 セルフテスト機能付マイクロプロセッ
サ
サ
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はセルフテスト機能を有
するセルフテスト機能付マイクロプロセッサに関し、特
に浮動小数点演算が可能な演算器のためのセルフテスト
機能の改良に関するものである。
するセルフテスト機能付マイクロプロセッサに関し、特
に浮動小数点演算が可能な演算器のためのセルフテスト
機能の改良に関するものである。
【0002】
【従来の技術】マイクロプロセッサは、最近急速に高速
化かつ大容量化されている。このようなマイクロプロセ
ッサは、高信頼性が要求され、出荷前にマイクロプロセ
ッサの各機能についてのあらゆるテストが行なわれる。
しかし、このようなテストを行なうための時間をかけす
ぎるとテストコストが大きくなる。そこで、同一チップ
内にマイクロプロセッサとテスト回路とを組込み、マイ
クロプロセッサ自身がテスト回路を使って自己の機能を
テストすることにより、テスト時間を短縮する方法が採
用されている。
化かつ大容量化されている。このようなマイクロプロセ
ッサは、高信頼性が要求され、出荷前にマイクロプロセ
ッサの各機能についてのあらゆるテストが行なわれる。
しかし、このようなテストを行なうための時間をかけす
ぎるとテストコストが大きくなる。そこで、同一チップ
内にマイクロプロセッサとテスト回路とを組込み、マイ
クロプロセッサ自身がテスト回路を使って自己の機能を
テストすることにより、テスト時間を短縮する方法が採
用されている。
【0003】このようなセルフテスト機能を有するマイ
クロプロセッサをセルフテスト機能付マイクロプロセッ
サという。
クロプロセッサをセルフテスト機能付マイクロプロセッ
サという。
【0004】図6は、このようなセルフテスト機能付マ
イクロプロセッサの従来例を示すブロック図である。図
6に示すマイクロプロセッサ1は、通常の動作におい
て、データを処理する回路と、このデータ処理回路の機
能をテストするためのテスト回路とを備える。データを
処理する回路は、データバス4と、入出力ポート10
と、複数の機能ブロック7〜9を含む。複数の機能ブロ
ックは、ALU7、データメモリ8、その他の機能ブロ
ック9を備える。ALU7は浮動小数点演算と固定小数
点演算とを実行できる。データメモリ8は、セルフテス
ト時の入力データが書込まれる。その他の機能ブロック
9は、データパス4を通して与えられる各種データに基
づいて所定の機能を実現する。入出力ポート10は、デ
ータパス4上のデータの入出力制御を行なう。
イクロプロセッサの従来例を示すブロック図である。図
6に示すマイクロプロセッサ1は、通常の動作におい
て、データを処理する回路と、このデータ処理回路の機
能をテストするためのテスト回路とを備える。データを
処理する回路は、データバス4と、入出力ポート10
と、複数の機能ブロック7〜9を含む。複数の機能ブロ
ックは、ALU7、データメモリ8、その他の機能ブロ
ック9を備える。ALU7は浮動小数点演算と固定小数
点演算とを実行できる。データメモリ8は、セルフテス
ト時の入力データが書込まれる。その他の機能ブロック
9は、データパス4を通して与えられる各種データに基
づいて所定の機能を実現する。入出力ポート10は、デ
ータパス4上のデータの入出力制御を行なう。
【0005】テストを行なうための回路は、外部的に発
生されるテストモード指定信号を受ける端子13、擬似
乱数発生器2、データ圧縮器3、プログラムカウンタ
6、セレクタ11およびセレクタ12を含む。プログラ
ムカウンタ5は、プログラムメモリ6にアドレスを与え
る。プログラムメモリ6には、各機能ブロックをコント
ロールするプログラムとともにセルフテストプログラム
が書込まれている。擬似乱数発生器2は、セルフテスト
プログラムを実行するときに、入力データとしての擬似
乱数を発生する。セレクタ12は、通常動作時には入出
力ポート10からデータパス4への経路を選択し、セル
フテスト実行時には擬似乱数発生器2からデータパス4
への経路を選択する。セレクタ11は、通常動作時には
データパス4から入出力ポートへの経路を選択し、セル
フテスト実行時にはデータパス4からデータ圧縮器3へ
の経路を選択する。データ圧縮器3はセレクタ11を通
して与えられるデータを圧縮するシグネチャレジスタで
ある。
生されるテストモード指定信号を受ける端子13、擬似
乱数発生器2、データ圧縮器3、プログラムカウンタ
6、セレクタ11およびセレクタ12を含む。プログラ
ムカウンタ5は、プログラムメモリ6にアドレスを与え
る。プログラムメモリ6には、各機能ブロックをコント
ロールするプログラムとともにセルフテストプログラム
が書込まれている。擬似乱数発生器2は、セルフテスト
プログラムを実行するときに、入力データとしての擬似
乱数を発生する。セレクタ12は、通常動作時には入出
力ポート10からデータパス4への経路を選択し、セル
フテスト実行時には擬似乱数発生器2からデータパス4
への経路を選択する。セレクタ11は、通常動作時には
データパス4から入出力ポートへの経路を選択し、セル
フテスト実行時にはデータパス4からデータ圧縮器3へ
の経路を選択する。データ圧縮器3はセレクタ11を通
して与えられるデータを圧縮するシグネチャレジスタで
ある。
【0006】図7は、図6のマイクロプロセッサに用い
られる擬似乱数発生器2の一例を示すブロック図であ
る。図7に示す擬似乱数発生器2は、24ビットの擬似
乱数を発生する。この擬似乱数発生器2は、24ビット
に対応して設けられる複数のラッチ回路20と、3つの
EX−ORゲート21を含む。
られる擬似乱数発生器2の一例を示すブロック図であ
る。図7に示す擬似乱数発生器2は、24ビットの擬似
乱数を発生する。この擬似乱数発生器2は、24ビット
に対応して設けられる複数のラッチ回路20と、3つの
EX−ORゲート21を含む。
【0007】動作において複数のラッチ回路20の出力
同士のEX−ORをとり、この値を初段のラッチ回路2
0にフィードバックすることにより擬似乱数を発生して
いる。このような擬似乱数発生器2は、一般にリニアフ
ィードバックシフトレジスタと呼ばれる。
同士のEX−ORをとり、この値を初段のラッチ回路2
0にフィードバックすることにより擬似乱数を発生して
いる。このような擬似乱数発生器2は、一般にリニアフ
ィードバックシフトレジスタと呼ばれる。
【0008】図8は図6および図7に示したマイクロプ
ロセッサのフローチャートである。図8を参照して、従
来のマイクロプロセッサのセルフテスト動作を説明す
る。
ロセッサのフローチャートである。図8を参照して、従
来のマイクロプロセッサのセルフテスト動作を説明す
る。
【0009】まず、入力端子13にテストモード指定信
号が入力されると、マイクロプロセッサ1はセルフテス
トモードにセットされる。このセルフテストモードへの
セットに応答して、セレクタ12が擬似乱数発生器2か
らデータパス4への経路を選択し、セレクタ11がデー
タパス4からデータ圧縮器3への経路を選択する。ま
た、プログラムメモリ6からの命令により、所望の機能
ブロックが選択される(ステップ51〜55)。以上の
ステップ51〜55の動作により、擬似乱数データを機
能ブロックに与えるための経路が形成され、かつ機能ブ
ロックによる処理データをデータ圧縮器3に与える経路
が形成される。
号が入力されると、マイクロプロセッサ1はセルフテス
トモードにセットされる。このセルフテストモードへの
セットに応答して、セレクタ12が擬似乱数発生器2か
らデータパス4への経路を選択し、セレクタ11がデー
タパス4からデータ圧縮器3への経路を選択する。ま
た、プログラムメモリ6からの命令により、所望の機能
ブロックが選択される(ステップ51〜55)。以上の
ステップ51〜55の動作により、擬似乱数データを機
能ブロックに与えるための経路が形成され、かつ機能ブ
ロックによる処理データをデータ圧縮器3に与える経路
が形成される。
【0010】ステップ56において、擬似乱数データを
選択し機能ブロックに与える。次に、ステップ57にお
いて、選択した機能ブロックを通常動作させて、擬似乱
数データを処理させる。ステップ58において、機能ブ
ロックのテスト結果をデータ圧縮器3に与える。テスト
結果のデータは、データ圧縮器3により圧縮された後、
外部に出力され、図示しない外部の判定回路により期待
値との一致・不一致が検出される。なお、期待値は擬似
乱数発生器により発生される擬似乱数データに基づいて
求められる。
選択し機能ブロックに与える。次に、ステップ57にお
いて、選択した機能ブロックを通常動作させて、擬似乱
数データを処理させる。ステップ58において、機能ブ
ロックのテスト結果をデータ圧縮器3に与える。テスト
結果のデータは、データ圧縮器3により圧縮された後、
外部に出力され、図示しない外部の判定回路により期待
値との一致・不一致が検出される。なお、期待値は擬似
乱数発生器により発生される擬似乱数データに基づいて
求められる。
【0011】ステップ59において、選択した機能ブロ
ックのテストが終了したかどうかが判別され、選択した
機能ブロックのテストが終了していないと判別した場合
には、ステップ56〜59の処理を繰り返す。逆に選択
した機能ブロックのテストが終了したと判別した場合に
は、ステップ60においてすべての機能ブロックのテス
トが終了したかどうかが判別される。すべての機能ブロ
ックのテストが終了するまではステップ55ないし60
の処理が繰り返される。
ックのテストが終了したかどうかが判別され、選択した
機能ブロックのテストが終了していないと判別した場合
には、ステップ56〜59の処理を繰り返す。逆に選択
した機能ブロックのテストが終了したと判別した場合に
は、ステップ60においてすべての機能ブロックのテス
トが終了したかどうかが判別される。すべての機能ブロ
ックのテストが終了するまではステップ55ないし60
の処理が繰り返される。
【0012】図6ないし図7に示したマイクロプロセッ
サは、以上のようにして、ALUを除く複数の機能ブロ
ックのテストを、テストデータを命令で与えることなく
簡単に行なうことができる。かつテスト時間を短縮する
ことができる。しかし、ALU7は浮動小数点演算およ
び固定小数点演算などの機能を有するため、与えられた
テストデータがその演算に適したものと限らずより多く
のデータによるテストを必要とし、テストに時間がかか
る。このことを以下に説明する。
サは、以上のようにして、ALUを除く複数の機能ブロ
ックのテストを、テストデータを命令で与えることなく
簡単に行なうことができる。かつテスト時間を短縮する
ことができる。しかし、ALU7は浮動小数点演算およ
び固定小数点演算などの機能を有するため、与えられた
テストデータがその演算に適したものと限らずより多く
のデータによるテストを必要とし、テストに時間がかか
る。このことを以下に説明する。
【0013】図9は、図8のステップ56〜59をAL
U7に対応させかつその詳細を示した図である。図9を
参照して、Xは、浮動小数点演算を示し、Yは固定小数
点演算を示す。ALU7のセルフテストは、次のように
して行なわれる。すなわち、ステップ1において擬似乱
数データをALUにロードする。ステップ2において、
浮動小数点演算および固定小数点演算のいずれが命令さ
れていたかをデコードする。浮動小数点演算が命令され
ている場合には、浮動小数点演算の実行命令をALU7
に与え、ALU7にその実行をさせる。逆に固定小数点
演算が命令されている場合には、ステップ4において固
定小数点演算の実行命令をALUに与えその演算の実行
を行なわせる。ステップ5において演算結果をデータ圧
縮器3にロードする。ステップ6においてALUのすべ
ての演算のテストが終了したかどうかを判別し、すべて
の演算のテストが終了していないと判別した場合にはス
テップ1〜6の処理を繰り返す。すべての演算のテスト
が終了したと判別した場合には、ステップ7においてA
LUのテストを終了する。
U7に対応させかつその詳細を示した図である。図9を
参照して、Xは、浮動小数点演算を示し、Yは固定小数
点演算を示す。ALU7のセルフテストは、次のように
して行なわれる。すなわち、ステップ1において擬似乱
数データをALUにロードする。ステップ2において、
浮動小数点演算および固定小数点演算のいずれが命令さ
れていたかをデコードする。浮動小数点演算が命令され
ている場合には、浮動小数点演算の実行命令をALU7
に与え、ALU7にその実行をさせる。逆に固定小数点
演算が命令されている場合には、ステップ4において固
定小数点演算の実行命令をALUに与えその演算の実行
を行なわせる。ステップ5において演算結果をデータ圧
縮器3にロードする。ステップ6においてALUのすべ
ての演算のテストが終了したかどうかを判別し、すべて
の演算のテストが終了していないと判別した場合にはス
テップ1〜6の処理を繰り返す。すべての演算のテスト
が終了したと判別した場合には、ステップ7においてA
LUのテストを終了する。
【0014】図10は24ビット形式の浮動小数点デー
タの一形式を示す図である。図10において、Fは仮数
を示し、16ビットの2つの補数表現にされる。Eは指
数部を示し、8ビットで表現されかつその最上位ビット
に“1”=128を加えたいわゆるげたばき表現にされ
る。指数部Eおよび仮数部Fはそれぞれ(1)式と
(2)および(3)式とで表わされる。
タの一形式を示す図である。図10において、Fは仮数
を示し、16ビットの2つの補数表現にされる。Eは指
数部を示し、8ビットで表現されかつその最上位ビット
に“1”=128を加えたいわゆるげたばき表現にされ
る。指数部Eおよび仮数部Fはそれぞれ(1)式と
(2)および(3)式とで表わされる。
【0015】
【数1】
【0016】仮数部Fは(3)式を見たすように正規化
される。このようにして正規化された仮数部Fは正の場
合にはビット15および14がそれぞれ“0”,“1”
の値をとる。一方、固定小数点データは24ビットの補
数で表現されると仮定すると、ビット15および14の
ならびは“00”,“01”,“10”,“11”の4
通りであり、この4通りのすべてに対して固定小数点演
算が可能である。
される。このようにして正規化された仮数部Fは正の場
合にはビット15および14がそれぞれ“0”,“1”
の値をとる。一方、固定小数点データは24ビットの補
数で表現されると仮定すると、ビット15および14の
ならびは“00”,“01”,“10”,“11”の4
通りであり、この4通りのすべてに対して固定小数点演
算が可能である。
【0017】上記のようなデータ形式を持つマイクロプ
ロセッサでは、固定小数点演算の場合にはすべてのビッ
トの並びに規定はないので、擬似乱数発生器2の出力の
すべてが入力データとして取り扱える。しかし、浮動小
数点演算の場合には、ビット15および14の並びは
“01”まはた“10”のどちらかしかないので、擬似
乱数発生器2の出力のビット15および14の並びが
“00”,“11”のものは、入力データとしては役に
立たない。ビット15および14の並びが“01”また
は“10”となる確率は1/2なので、たとえば100
個の浮動小数点データについて演算を実行したければ、
200個の擬似乱数について演算をして初めて同等とな
る。浮動小数点演算が2入力の場合には、2入力とも浮
動小数点データとなる確率は (1/2)×(1/2)=1/4 となり4倍の擬似乱数を必要とする。
ロセッサでは、固定小数点演算の場合にはすべてのビッ
トの並びに規定はないので、擬似乱数発生器2の出力の
すべてが入力データとして取り扱える。しかし、浮動小
数点演算の場合には、ビット15および14の並びは
“01”まはた“10”のどちらかしかないので、擬似
乱数発生器2の出力のビット15および14の並びが
“00”,“11”のものは、入力データとしては役に
立たない。ビット15および14の並びが“01”また
は“10”となる確率は1/2なので、たとえば100
個の浮動小数点データについて演算を実行したければ、
200個の擬似乱数について演算をして初めて同等とな
る。浮動小数点演算が2入力の場合には、2入力とも浮
動小数点データとなる確率は (1/2)×(1/2)=1/4 となり4倍の擬似乱数を必要とする。
【0018】
【発明が解決しようとする課題】従来のセルフテスト機
能付マイクロプロセッサは以上の構成にされているの
で、浮動小数点演算と固定小数点演算とが可能なALU
をテストする場合には演算入力データとして擬似乱数が
浮動小数点演算に適したデータである確率(すなわち、
正規化された数値である確率)は1/2である。このた
め、あるデータ数の浮動小数点演算のテストを実行した
ければ、そのデータ数の倍のデータ数を擬似乱数発生器
により発生させる必要がある。さらに、ALUが2入力
を演算する場合には、2入力ともに正規化された数値で
ある確率は1/4となるので、あるデータ数の4倍のデ
ータに対してテストを行なうことが必要である。このこ
とは、セルフテストの実行時間を長くすることになり、
テストコストの増加となる。
能付マイクロプロセッサは以上の構成にされているの
で、浮動小数点演算と固定小数点演算とが可能なALU
をテストする場合には演算入力データとして擬似乱数が
浮動小数点演算に適したデータである確率(すなわち、
正規化された数値である確率)は1/2である。このた
め、あるデータ数の浮動小数点演算のテストを実行した
ければ、そのデータ数の倍のデータ数を擬似乱数発生器
により発生させる必要がある。さらに、ALUが2入力
を演算する場合には、2入力ともに正規化された数値で
ある確率は1/4となるので、あるデータ数の4倍のデ
ータに対してテストを行なうことが必要である。このこ
とは、セルフテストの実行時間を長くすることになり、
テストコストの増加となる。
【0019】それゆえに、この発明は上記のような問題
点を解決するためになされたものであり、セルフテスト
の実行時間を短縮することができるセルフテスト機能付
マイクロプロセッサを提供することを目的とする。
点を解決するためになされたものであり、セルフテスト
の実行時間を短縮することができるセルフテスト機能付
マイクロプロセッサを提供することを目的とする。
【0020】
【課題を解決するための手段】前記目的を達成するため
のこの発明に係るセルフテスト機能付マイクロプロセッ
サは、固定小数点演算と浮動小数点演算とが可能な演算
器と、前記演算器をテストするための擬似乱数発生器と
を備えたセルフテスト機能付マイクロプロセッサであっ
て、前記演算器が固定小数点演算の実行状態か浮動小数
点演算の実行状態かを示すフラグを発生する手段と、前
記発生されたフラグが固定小数点演算の実行状態を示す
場合には、前記擬似乱数発生器により発生された擬似乱
数データを前記演算器に与え、前記発生されたフラグが
浮動小数点演算の実行状態を示す場合には、前記擬似乱
数発生器により発生された擬似乱数データを浮動小数点
演算に適した擬似乱数データに変換して前記演算器に与
える手段とを含むことを特徴とする。
のこの発明に係るセルフテスト機能付マイクロプロセッ
サは、固定小数点演算と浮動小数点演算とが可能な演算
器と、前記演算器をテストするための擬似乱数発生器と
を備えたセルフテスト機能付マイクロプロセッサであっ
て、前記演算器が固定小数点演算の実行状態か浮動小数
点演算の実行状態かを示すフラグを発生する手段と、前
記発生されたフラグが固定小数点演算の実行状態を示す
場合には、前記擬似乱数発生器により発生された擬似乱
数データを前記演算器に与え、前記発生されたフラグが
浮動小数点演算の実行状態を示す場合には、前記擬似乱
数発生器により発生された擬似乱数データを浮動小数点
演算に適した擬似乱数データに変換して前記演算器に与
える手段とを含むことを特徴とする。
【0021】
【作用】以上のこの発明では、浮動小数点演算の実行状
態の場合には、擬似乱数発生器により発生された擬似乱
数データが正規化されるので、従来例のごとく正規化さ
れた数値を見越してより多くのデータによる演算を実行
する必要がなくなる。その結果短い時間でより正しいテ
ストを行なうことができる。
態の場合には、擬似乱数発生器により発生された擬似乱
数データが正規化されるので、従来例のごとく正規化さ
れた数値を見越してより多くのデータによる演算を実行
する必要がなくなる。その結果短い時間でより正しいテ
ストを行なうことができる。
【0022】
【実施例】図1は、この発明の一実施例を示すブロック
図である。図1を参照して、このセルフテスト機能付マ
イクロプロセッサが図6のセルフテスト機能付マイクロ
プロセッサと異なるところは、浮動小数点演算または固
定小数点演算を指定するためのフロートフラグ16を発
生するステータスフラグ15と、ステータスフラグ回路
15により発生されたフロートフラグ16に応答して、
擬似乱数発生器2からのデータを正規化する正規化回路
14とが設けられていることである。その他の回路につ
いては、図6に示したものと同様でありその説明は適宜
省略する。ステータスフラグ回路15は、マイクロプロ
セッサの状態を示すステータスフラグを発生する。フロ
ートフラグ16はこのステータスフラグの1つである。
このステータスフラグ回路は、浮動小数点演算を実行す
る場合には、フロートフラグ16を“1”にし、固定小
数点演算を実行する場合にはフロートフラグ16を
“0”にする。この実施例においては外部から浮動小数
点演算の指定あるいは固定小数点演算の指定がなされ、
それに応答してプログラムメモリ6がフロートフラグを
“1”または“0”にセットする。
図である。図1を参照して、このセルフテスト機能付マ
イクロプロセッサが図6のセルフテスト機能付マイクロ
プロセッサと異なるところは、浮動小数点演算または固
定小数点演算を指定するためのフロートフラグ16を発
生するステータスフラグ15と、ステータスフラグ回路
15により発生されたフロートフラグ16に応答して、
擬似乱数発生器2からのデータを正規化する正規化回路
14とが設けられていることである。その他の回路につ
いては、図6に示したものと同様でありその説明は適宜
省略する。ステータスフラグ回路15は、マイクロプロ
セッサの状態を示すステータスフラグを発生する。フロ
ートフラグ16はこのステータスフラグの1つである。
このステータスフラグ回路は、浮動小数点演算を実行す
る場合には、フロートフラグ16を“1”にし、固定小
数点演算を実行する場合にはフロートフラグ16を
“0”にする。この実施例においては外部から浮動小数
点演算の指定あるいは固定小数点演算の指定がなされ、
それに応答してプログラムメモリ6がフロートフラグを
“1”または“0”にセットする。
【0023】図2は、正規化回路14と擬似乱数発生器
2の詳細を示すブロック図である。図2を参照して、擬
似乱数発生器2は、図7と同様である。正規化回路14
は、インバータ14aおよび14bと、各々がPチャネ
ルトランジスタとNチャネルトランジスタとを備えるト
ランスファーゲート14cおよび14dとを備える。ト
ランスファーゲート14cおよび14dの各々は、2つ
の導通端子を含み、トランスファーゲート14cの一方
の導通端子は擬似乱数発生器2のビット14の出力デー
タを受けるように接続され、他方の導通端子はデータパ
ス4に接続される。トランスファーゲート14dの一方
の導通端子は、擬似乱数発生器2のビット15の出力デ
ータを受けるように接続され。他方の導通端子はデータ
パス4に接続される。
2の詳細を示すブロック図である。図2を参照して、擬
似乱数発生器2は、図7と同様である。正規化回路14
は、インバータ14aおよび14bと、各々がPチャネ
ルトランジスタとNチャネルトランジスタとを備えるト
ランスファーゲート14cおよび14dとを備える。ト
ランスファーゲート14cおよび14dの各々は、2つ
の導通端子を含み、トランスファーゲート14cの一方
の導通端子は擬似乱数発生器2のビット14の出力デー
タを受けるように接続され、他方の導通端子はデータパ
ス4に接続される。トランスファーゲート14dの一方
の導通端子は、擬似乱数発生器2のビット15の出力デ
ータを受けるように接続され。他方の導通端子はデータ
パス4に接続される。
【0024】動作において、フロートフラグ16が
“0”の場合には、トランスファーゲート14cのPチ
ャネルトランジスタおよびNチャネルトランジスタがオ
ン状態となり、トランスファーゲート14dのPチャネ
ルトランジスタおよびNチャネルトランジスタがOFF
状態になる。したがって、擬似乱数発生器2のビット1
4のデータがそのままデータパス4に伝達される。一
方、フロートフラグ16が“1”の場合には、トランス
ファーゲート14cのPチャネルトランジスタおよびN
チャネルトランジスタがオフ状態となり、トランスファ
ーゲート14dのPチャネルトランジスタおよびNチャ
ネルトランジスタがオン状態になる。トランスファーゲ
ート14dの一方の導通端子にはインバータ14bによ
りビット15のデータを反転させたデータが与えられ
る。したがって、データパス4にはビット14のデータ
に代えてビット15のデータを反転させたデータとビッ
ト15のデータとが与えられる。この結果擬似乱数発生
器2により発生されるビット15のデータが“1”の場
合には、データパス4に与えられるビット14および1
5は“01”となる。また、擬似乱数発生器2により発
生されるビット15のデータが“0”にの場合には、デ
ータパス4に与えられるビット14および15は“1
0”となる。このようにして擬似乱数データが浮動小数
点演算に適したデータに変換される。
“0”の場合には、トランスファーゲート14cのPチ
ャネルトランジスタおよびNチャネルトランジスタがオ
ン状態となり、トランスファーゲート14dのPチャネ
ルトランジスタおよびNチャネルトランジスタがOFF
状態になる。したがって、擬似乱数発生器2のビット1
4のデータがそのままデータパス4に伝達される。一
方、フロートフラグ16が“1”の場合には、トランス
ファーゲート14cのPチャネルトランジスタおよびN
チャネルトランジスタがオフ状態となり、トランスファ
ーゲート14dのPチャネルトランジスタおよびNチャ
ネルトランジスタがオン状態になる。トランスファーゲ
ート14dの一方の導通端子にはインバータ14bによ
りビット15のデータを反転させたデータが与えられ
る。したがって、データパス4にはビット14のデータ
に代えてビット15のデータを反転させたデータとビッ
ト15のデータとが与えられる。この結果擬似乱数発生
器2により発生されるビット15のデータが“1”の場
合には、データパス4に与えられるビット14および1
5は“01”となる。また、擬似乱数発生器2により発
生されるビット15のデータが“0”にの場合には、デ
ータパス4に与えられるビット14および15は“1
0”となる。このようにして擬似乱数データが浮動小数
点演算に適したデータに変換される。
【0025】図3は図1および図2に示したセルフテス
ト機能付マイクロプロセッサの動作を説明するためのフ
ローチャートである。
ト機能付マイクロプロセッサの動作を説明するためのフ
ローチャートである。
【0026】まず、固定小数点演算または浮動小数点演
算のいずれを実行するかの命令を与える。この命令に応
答して、ステータスフラグ15はフロートフラグ16を
“0”または“1”にセットする(ステップ1)。ステ
ップ2においてセットしたフロートフラグを変更するか
否かを判別し、必要に応じてフロートフラグを変更する
(ステップ2および3)。ステップ4においてフローフ
ラグ16が“1”かどうかが判別され、フロートフラグ
16が“1”でない場合は、ステップ6においいて擬似
乱数発生器2により発生される擬似乱数データをそのま
まALU7にロードする。逆にフロートフラグ16が
“1”の場合は、擬似乱数データを正規化したデータを
ALUにロードする。この場合において、正規化回路1
4は、“1”であるフロートフラグ16に応答して、擬
似乱数データのうちのビット14および15のデータを
“01”または“10”にすることにより、浮動小数点
演算に適したデータに変換する。
算のいずれを実行するかの命令を与える。この命令に応
答して、ステータスフラグ15はフロートフラグ16を
“0”または“1”にセットする(ステップ1)。ステ
ップ2においてセットしたフロートフラグを変更するか
否かを判別し、必要に応じてフロートフラグを変更する
(ステップ2および3)。ステップ4においてフローフ
ラグ16が“1”かどうかが判別され、フロートフラグ
16が“1”でない場合は、ステップ6においいて擬似
乱数発生器2により発生される擬似乱数データをそのま
まALU7にロードする。逆にフロートフラグ16が
“1”の場合は、擬似乱数データを正規化したデータを
ALUにロードする。この場合において、正規化回路1
4は、“1”であるフロートフラグ16に応答して、擬
似乱数データのうちのビット14および15のデータを
“01”または“10”にすることにより、浮動小数点
演算に適したデータに変換する。
【0027】ステップ7では、ステップ5で与えられた
入力データが正規化データなので、浮動少数点演算命令
が与えられデコードされる。そして、ステップ9におい
て、この浮動少数点演算命令がALUで実行される。ま
た、ステップ8では、スッテプ6で与えられた入力デー
タが正規化されていないデータなので、固定少数点演算
命令が与えられ、デコードされる。そして、ステップ1
0において、この固定少数点演算命令がALUで実行さ
れる。
入力データが正規化データなので、浮動少数点演算命令
が与えられデコードされる。そして、ステップ9におい
て、この浮動少数点演算命令がALUで実行される。ま
た、ステップ8では、スッテプ6で与えられた入力デー
タが正規化されていないデータなので、固定少数点演算
命令が与えられ、デコードされる。そして、ステップ1
0において、この固定少数点演算命令がALUで実行さ
れる。
【0028】ステップ11において演算結果がALUか
らデータ圧縮器3に転送され、ここでデータは圧縮され
る。ステップ12において、ALUがすべての演算のテ
ストを終了したかどうかが判別され、終了していないと
判別した場合には、ステップ2〜12の処理が繰り返さ
れる。すべての演算テストを終了したと判別した場合に
は、ステップ13においてテストを終了する。
らデータ圧縮器3に転送され、ここでデータは圧縮され
る。ステップ12において、ALUがすべての演算のテ
ストを終了したかどうかが判別され、終了していないと
判別した場合には、ステップ2〜12の処理が繰り返さ
れる。すべての演算テストを終了したと判別した場合に
は、ステップ13においてテストを終了する。
【0029】以上の図1ないし図3に示した実施例であ
れば、命令によりフロートフラグ10を“1”にするこ
とにより、擬似乱数データを正規化することができるの
で、ALUの浮動小数点の演算テストを実行するための
時間を短縮することができる。
れば、命令によりフロートフラグ10を“1”にするこ
とにより、擬似乱数データを正規化することができるの
で、ALUの浮動小数点の演算テストを実行するための
時間を短縮することができる。
【0030】また、前記実施例では、命令によりフロー
トフラグ16を“0”または“1”にセットしたが、こ
れに代えて、マイクロプロセッサの命令デコード時にお
いて浮動小数点命令をデコードすることによりフロート
フラグ16を“1”にセットしたり、固定小数点演算命
令をデコードすることによりフロートフラグ16を
“0”にセットしたりすることが可能である。このこと
を実現するためのプログラムが図4に示される。
トフラグ16を“0”または“1”にセットしたが、こ
れに代えて、マイクロプロセッサの命令デコード時にお
いて浮動小数点命令をデコードすることによりフロート
フラグ16を“1”にセットしたり、固定小数点演算命
令をデコードすることによりフロートフラグ16を
“0”にセットしたりすることが可能である。このこと
を実現するためのプログラムが図4に示される。
【0031】図4は、第2の実施例を示すフローチャー
トである。図4に示すフローチャートが図3のフローチ
ャートと異なるところは、図3に示した演算命令を直接
ステータスフラグに与えるためのステップ1〜3が省略
され、図5のステップ5および6においてフロートフラ
グを“1”または“0”にセットしていることである。
このようにすることにより、命令デコーダ時において浮
動小数点演算命令をデコードし、デコード結果に基づい
てフロートフラグを“0”、“1”にセットすることが
可能になる。
トである。図4に示すフローチャートが図3のフローチ
ャートと異なるところは、図3に示した演算命令を直接
ステータスフラグに与えるためのステップ1〜3が省略
され、図5のステップ5および6においてフロートフラ
グを“1”または“0”にセットしていることである。
このようにすることにより、命令デコーダ時において浮
動小数点演算命令をデコードし、デコード結果に基づい
てフロートフラグを“0”、“1”にセットすることが
可能になる。
【0032】ただしマイクロプロセッサでは通常図5に
示すようなパイプライン処理をとっている。すなわち、 LOAD A←P;レジスタPからレジスタAにロード LOAD B←P;レジスタPからレジスタBにロード ADGF C←A+B;AとBとを浮動小数点加算し結
果をCへ出力 MOVE P←C;レジスタCからレジスタPに転送 という一連の動作を行なう。各動作は、命令フェッチI
と、命令デコーダDと、実行Eとからなり、3つのクロ
ックを必要とする。したがって、図6からわかるよう
に、レジスタAにデータが転送されるのが時刻T3、レ
ジスタBにデータが転送されるのが時刻T4、浮動小数
点加算の命令がデコードを終了するのが時刻T4の終了
時であるので、この浮動小数点演算の入力データのこの
デコード結果を反映させることはできない。つまり、命
令デコード時にはこの命令で使用する演算入力データは
既にロードされていなければ演算の実行はできないの
で、変更されたフロートフラグ16は次の演算で使用さ
れる擬似乱数データの発生に使われることになる。ゆえ
に、固定小数点演算と浮動小数点演算とが混在したテス
トフローではたとえば固定小数点演算の後に浮動小数点
演算を実行する場合において、固定小数点演算の実行後
に擬似乱数発生器2からALU7内の演算入力レジスタ
にデータをロードすると、固定小数点データ用の正規化
されていない乱数を転送し、そのデータに対し次の演算
である浮動小数点演算を実行することになる。この結
果、正規化されない入力データで浮動小数点演算をする
場合が存在してしまう(逆に、浮動小数点演算の後に固
定小数点演算を実行する場合には、固定小数点データを
ビット15および14が“01”あるいは“10”であ
っても正しいデータであるので問題はない)。
示すようなパイプライン処理をとっている。すなわち、 LOAD A←P;レジスタPからレジスタAにロード LOAD B←P;レジスタPからレジスタBにロード ADGF C←A+B;AとBとを浮動小数点加算し結
果をCへ出力 MOVE P←C;レジスタCからレジスタPに転送 という一連の動作を行なう。各動作は、命令フェッチI
と、命令デコーダDと、実行Eとからなり、3つのクロ
ックを必要とする。したがって、図6からわかるよう
に、レジスタAにデータが転送されるのが時刻T3、レ
ジスタBにデータが転送されるのが時刻T4、浮動小数
点加算の命令がデコードを終了するのが時刻T4の終了
時であるので、この浮動小数点演算の入力データのこの
デコード結果を反映させることはできない。つまり、命
令デコード時にはこの命令で使用する演算入力データは
既にロードされていなければ演算の実行はできないの
で、変更されたフロートフラグ16は次の演算で使用さ
れる擬似乱数データの発生に使われることになる。ゆえ
に、固定小数点演算と浮動小数点演算とが混在したテス
トフローではたとえば固定小数点演算の後に浮動小数点
演算を実行する場合において、固定小数点演算の実行後
に擬似乱数発生器2からALU7内の演算入力レジスタ
にデータをロードすると、固定小数点データ用の正規化
されていない乱数を転送し、そのデータに対し次の演算
である浮動小数点演算を実行することになる。この結
果、正規化されない入力データで浮動小数点演算をする
場合が存在してしまう(逆に、浮動小数点演算の後に固
定小数点演算を実行する場合には、固定小数点データを
ビット15および14が“01”あるいは“10”であ
っても正しいデータであるので問題はない)。
【0033】ゆえに、固定小数点演算命令同士また浮動
小数点演算命令同士を一まとめにし、固定小数点演算命
令を浮動小数点演算命令の間にはダミーの浮動小数点演
算命令を加えてやるようにテストプログラムを構成して
やればよいことになる。もちろん命令によるフロートフ
ラグ16のセットと演算命令のデコードによるフロート
フラグのセットとの両方を行なうことが可能にすること
もできる。
小数点演算命令同士を一まとめにし、固定小数点演算命
令を浮動小数点演算命令の間にはダミーの浮動小数点演
算命令を加えてやるようにテストプログラムを構成して
やればよいことになる。もちろん命令によるフロートフ
ラグ16のセットと演算命令のデコードによるフロート
フラグのセットとの両方を行なうことが可能にすること
もできる。
【0034】
【発明の効果】以上のこの発明によれば、常に正しく正
規化された演算データによる演算を実行することがで
き、かつデータの乱数性も保たれているため、従来例と
比較してテスト時間が短縮されかつ正確なテストを行な
うことができるという効果が得られる。
規化された演算データによる演算を実行することがで
き、かつデータの乱数性も保たれているため、従来例と
比較してテスト時間が短縮されかつ正確なテストを行な
うことができるという効果が得られる。
【図面の簡単な説明】
【図1】この発明の一実施例を示すブロック図である。
【図2】図1の擬似乱数発生器および正規化回路の詳細
を示すブロック図である。
を示すブロック図である。
【図3】図1および図2に示したセルフテスト機能付マ
イクロプロセッサの動作を示すフローチャートである。
イクロプロセッサの動作を示すフローチャートである。
【図4】この発明の第2の実施例を示すフローチャート
である。
である。
【図5】パイプライン処理を示す図である。
【図6】従来のセルフテスト機能付マイクロプロセッサ
のブロック図である。
のブロック図である。
【図7】図6のセルフテスト機能付マイクロプロセッサ
の擬似乱数発生器のブロック図である。
の擬似乱数発生器のブロック図である。
【図8】図6および図7に示すセルフテスト機能付マイ
クロプロセッサのセルフテストを示すフローチャートで
ある。
クロプロセッサのセルフテストを示すフローチャートで
ある。
【図9】従来のAULのテストを実行するためのフロー
チャートである。
チャートである。
【図10】演算データのデータ形式を示す図である。
【符号の説明】 1 マイクロプロセッサ 2 擬似乱数発生器 3 データ圧縮器 4 データバス 6 プログラムメモリ 7 ALU 14 正規化回路 15 ステータスフラグ 16 フロートフラグ
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図3
【補正方法】変更
【補正内容】
【図3】
Claims (1)
- 【請求項1】 固定小数点演算と浮動小数点演算とが可
能な演算器と、前記演算器をテストするための擬似乱数
発生器とを備えたセルフテスト機能付マイクロプロセッ
サであって、 前記演算器が固定小数点演算の実行状態か浮動小数点演
算の実行状態かを示すフラグを発生する手段と、 前記発生されたフラグが固定小数点演算の実行状態を示
す場合には、前記擬似乱数発生器により発生された擬似
乱数データを前記演算器に与え、前記発生されたフラグ
が浮動小数点演算の実行状態を示す場合には、前記擬似
乱数発生器により発生された擬似乱数データを浮動小数
点演算に的した擬似乱数データに変換して前記演算器に
与える手段とを含むことを特徴とするセルフテスト機能
付マイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3285111A JPH05120052A (ja) | 1991-10-30 | 1991-10-30 | セルフテスト機能付マイクロプロセツサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3285111A JPH05120052A (ja) | 1991-10-30 | 1991-10-30 | セルフテスト機能付マイクロプロセツサ |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH05120052A true JPH05120052A (ja) | 1993-05-18 |
Family
ID=17687262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3285111A Withdrawn JPH05120052A (ja) | 1991-10-30 | 1991-10-30 | セルフテスト機能付マイクロプロセツサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH05120052A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416665A (zh) * | 2019-08-20 | 2021-02-26 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
JP2023092442A (ja) * | 2021-12-21 | 2023-07-03 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 集積回路チップ検証方法、装置、電子デバイス及び記憶媒体 |
-
1991
- 1991-10-30 JP JP3285111A patent/JPH05120052A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416665A (zh) * | 2019-08-20 | 2021-02-26 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
CN112416665B (zh) * | 2019-08-20 | 2024-05-03 | 北京地平线机器人技术研发有限公司 | 检测处理器运行状态的装置和方法 |
JP2023092442A (ja) * | 2021-12-21 | 2023-07-03 | ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド | 集積回路チップ検証方法、装置、電子デバイス及び記憶媒体 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8832166B2 (en) | Floating point multiplier circuit with optimized rounding calculation | |
US5258943A (en) | Apparatus and method for rounding operands | |
US5442577A (en) | Sign-extension of immediate constants in an alu | |
US5561619A (en) | Arithmetic logic unit provided with combinational circuit and zero value detector connected in parallel | |
EP0127988A1 (en) | A normalizing circuit | |
US6205461B1 (en) | Floating point arithmetic logic unit leading zero count using fast approximate rounding | |
US4203157A (en) | Carry anticipator circuit and method | |
EP0234495A2 (en) | Arithmetic circuit capable of executing floating point operations and fixed point operations | |
JPH05120052A (ja) | セルフテスト機能付マイクロプロセツサ | |
EP0936537B1 (en) | Cyclic redundancy check in a computer system | |
US20050256996A1 (en) | Register read circuit using the remainders of modulo of a register number by the number of register sub-banks | |
US4683546A (en) | Floating point condition code generation | |
US4991130A (en) | Normalization control system for floating point arithmetic operation | |
EP0168406B1 (en) | Floating point condition code generation | |
US4890253A (en) | Predetermination of result conditions of decimal operations | |
US6760738B2 (en) | Exponent unit of data processing system | |
KR970004474B1 (ko) | 디지탈 데이타 처리기 및 그 방법 | |
EP0265948A2 (en) | Data processor capable of immediately calculating branch address in relative address branch | |
US5220670A (en) | Microprocessor having ability to carry out logical operation on internal bus | |
US7237000B2 (en) | Speed of execution of a conditional subtract instruction and increasing the range of operands over which the instruction would be performed correctly | |
JP2615746B2 (ja) | ビット操作回路 | |
KR960012664B1 (ko) | 정규화를 위한 시프트-넘버 검출 회로를 구비한 고정 소수점 디지탈 신호 처리기 | |
JPH0469734A (ja) | 浮動小数点加減算のアンダーフロー例外発生予測回路 | |
JPH10105377A (ja) | 浮動小数点データ処理手段 | |
JPS62259140A (ja) | アドレス生成回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 19990107 |