JP3897356B2 - Arithmetic processing device and self-diagnosis method thereof - Google Patents
Arithmetic processing device and self-diagnosis method thereof Download PDFInfo
- Publication number
- JP3897356B2 JP3897356B2 JP2006158758A JP2006158758A JP3897356B2 JP 3897356 B2 JP3897356 B2 JP 3897356B2 JP 2006158758 A JP2006158758 A JP 2006158758A JP 2006158758 A JP2006158758 A JP 2006158758A JP 3897356 B2 JP3897356 B2 JP 3897356B2
- Authority
- JP
- Japan
- Prior art keywords
- adder
- self
- diagnosis
- arithmetic processing
- result
- 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
Links
Images
Landscapes
- Retry When Errors Occur (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Description
本発明は、自己診断機能を内蔵したプロセッサに関し、特に診断結果を評価する期待値データを必要とすることなく加減算器の自己診断を可能とするプロセッサなどの演算処理装置及びその自己診断方法に関する。
The present invention relates to a processor with a built-in self-diagnosis function, and more particularly to an arithmetic processing unit such as a processor that enables self-diagnosis of an adder / subtractor without requiring expected value data for evaluating a diagnosis result, and a self-diagnosis method thereof.
従来、自己診断機能を内蔵したプロセッサ等の集積回路の製造工程にあっては、集積回路に自己診断回路としてTAPコントローラ(Test Access Port Controler)を内蔵し、ウェハー製造段階やパッケージ製造段階において、内蔵RAMや内蔵演算器に対する自己診断テストを実施することにより、製造不具合を起している集積回路を発見して取除き、自己診断テストをパスした集積回路を使用することで、LSIパッケージ組上げやプロセッサ・モジュール組上げの無駄を防止し、ウェハー製造後の工程における歩留りを向上するようにしている。 Conventionally, in the manufacturing process of an integrated circuit such as a processor with a built-in self-diagnosis function, a TAP controller (Test Access Port Controller) is built in the integrated circuit as a self-diagnosis circuit. By performing a self-diagnosis test on the RAM and the built-in arithmetic unit, an integrated circuit causing a manufacturing defect is found and removed, and by using the integrated circuit that has passed the self-diagnosis test, an LSI package assembly or processor・ The module assembly is prevented from being wasted, and the yield in the process after wafer manufacture is improved.
図22はプロセッサの基本的なハードェア構成である。図22において、命令メモリマネジメントユニット(IMMU)は、命令TLB(Instruction Translation Lookaside Buffer)を使用して論理アドレスと部率アドレスの間の変換を行い、プリフェッチユニット104により分岐予測108による命令フィ−ルド106に命令キャッシュ110からプリフェッチを行う。命令キュッシュ110とプロセッサロ−カルタンタ−コネクタ114との間には更に2次キャッシュ112が設けられ、プロセッサロ−カルタンタ−コネクタ114を介して外部ユニットと接続される。
FIG. 22 shows the basic hardware configuration of the processor. In FIG. 22, the instruction memory management unit (IMMU) performs conversion between a logical address and a percentage address using an instruction TLB (Instruction Translation Lookup Buffer), and the
命令キャッシュ110から取出された命令は、プリデコードユニット116でプリデコードされた後、命令バッファ118に格納され、ディスパッチユニット120により分岐ユニット122、整数演算器レジスタファイル(IEUレジスタファイル)124、浮動小数点演算器レジスタファイル(FPUレジスタファイル)128に分配される。
The instruction fetched from the
IEUレジスタファイル124に続いては整数演算器(IE ALU)130−1,130−2が設けられ、整数演算命令を実行して完了ユニット134に出力し、ロードストアユニット126からの指示でロード又はストアが行われる。
Subsequent to the IEU register file 124, integer arithmetic units (IE ALU) 130-1 and 130-2 are provided, execute integer arithmetic instructions, output them to the completion unit 134, and load or store in accordance with instructions from the load /
また浮動小数点演算器レジスタファイル128に続いては浮動小数点演算器(FP ALU)132−1,132−2が設けられ、浮動小数点演算命令を実行して完了ユニット136に出力し、ロードストアユニット126からの指示でロード又はストアが行われる。
The floating point arithmetic unit register file 128 is followed by floating point arithmetic units (FP ALU) 132-1 and 132-2, which execute floating point arithmetic instructions and output them to the
図23は、図22のプロセッサにおける命令デコーダを含む整数演算器の基本構成である。ディスパッチユニット138から整数演算命令はステージングラッチ144でラッチされ、デコーダ150で解読される。ソースレジスタ140は命令の第1オペランドを格納し、ソースレジスタ142は第2オペランドを格納し、各々のステージングラッチ146,148でラッチし、演算器(ALU)152に入力する。
FIG. 23 shows a basic configuration of an integer arithmetic unit including an instruction decoder in the processor of FIG. An integer operation instruction from the dispatch unit 138 is latched by the staging latch 144 and decoded by the
演算器152はデコーダ150で解読された加算命令ADD又は減算命令SUBの演算指示を受けて、2つの入力データの加算又は減算を実行してステージングラッチ156にラッチさせる。ステージングラッチ156の演算結果は、マルチプレクサ164からステージングラッチ166を介してディスティネーションレジスタ168に格納される。
The arithmetic unit 152 receives the operation instruction of the addition instruction ADD or the subtraction instruction SUB decoded by the
デコーダ150で解読された加算命令ADDと減算名一実施例SUB以外の演算命令は、ステージングラッチ154でラッチされた後に論理命令ユニット162に与エラーれ、このときステージジングラッチ158,160を介して入力する2つのデータについて、AND、OR、NAND、NPR、XOR又はXNORの論理演算を実行し、演算結果はマルチプレクサ164及びステージングラッチ166を介してディスティネーションレジスタ168に格納される。
The addition instruction ADD and the subtraction name decoded by the
このような演算器を内蔵したプロセッサは、例えば図24の演算器152に設けた加減算器を対象とする自己診断回路を実装し、ウェハー製造段階やパッケージ製造段階において、内蔵演算器に対する自己診断テストを実施する。 A processor incorporating such an arithmetic unit, for example, mounts a self-diagnosis circuit for the adder / subtracter provided in the arithmetic unit 152 of FIG. 24, and performs a self-diagnosis test on the internal arithmetic unit at the wafer manufacturing stage or package manufacturing stage. To implement.
図24は、自己診断回路を実装した従来の加減算回路の構成である。図24において、試験対象部200には例えばキャリー入力Cin付きの2入力の加減算器202が実装されている。
FIG. 24 shows a configuration of a conventional addition / subtraction circuit in which a self-diagnosis circuit is mounted. In FIG. 24, for example, a two-input adder /
加減算器202の入力側には、汎用レジスタファイル204、セレクタ210,212、ソースレジスタ214,215が設けられる。ソースレジスタ215の出力は2つに分岐されセレクタ218の一方に直接入力されると共に、インバータ216で反転してセレクタ218の他方に入力される。セレクタ218は加減算器202に対する加算入力と減算入力を切替える。加減算器200の演算結果はディストネーションレジスタ220に格納される。
A general-
また加減算器202の加算と減算は、オペコード232を解読したデコーダ230の加算命令ADD又は減算命令SUBに基づいて行われる。いまソースレジスタ214,216のデータを各々A,Bとすると、デコーダ230から加算命令ADDが出された場合、セレクタ218はソースレジスタ215の値Bを選択して加減算器202に入力し、同時に加減算器202のキャリー入力をCin=0として、このため加減算器202はC=A+Bの加算を実行する。
Addition and subtraction by the adder /
またデコーダ230から減算命令SUBが出された場合、セレクタ218はソースレジスタ215の値Bを反転したインバータ216の出力を選択して加減算器202に入力し、同時に加減算器202のキャリー入力をCin=1として、このため加減算器202はC=A−Bの減算を実行する。尚、加減算器202によるC=A−Bの減算は、インバータ216によるBの反転値は1の補数B1’sであり、これにキャリー入力Cin=1を加減算器202の内部で加算するこで2の補数B2’sを求め、これをAに加算することでC=A−B=A+B1’s+1=A+B2’sとて減算を行っている。
When the subtract instruction SUB is issued from the decoder 230, the
このような加減算回路に対する自己診断回路として、TAPコントローラ(Test Access Port コントローラ)226と比較器234を備えた自己診断コントローラ228が設けられる。 As a self-diagnosis circuit for such an addition / subtraction circuit, a self-diagnosis controller 228 including a TAP controller (Test Access Port controller) 226 and a comparator 234 is provided.
この自己診断回路を実装したプロセッサにあっては、自己診断の開始に先だち、TAPコントローラ226は外部のRAM等から膨大な量の自己診断用の入力データと、入力データを用いた自己診断により演算器が正常に動作したときに得られる膨大な量の期待値データを汎用レジスタファイル204に読込んで準備する。
In a processor equipped with this self-diagnosis circuit, before starting the self-diagnosis, the TAP controller 226 calculates a large amount of input data for self-diagnosis from an external RAM or the like and self-diagnosis using the input data. A huge amount of expected value data obtained when the device operates normally is read into the
次にTAPコントローラ226は自己診断コントローラ228を起動し、最初のサイクルで汎用レジスタファイル204から第1オペランドとしてのソースデータ206、第1オペランドしてのソースデータ208、更に期待値225を読み出し、ソースデータ206,208はセレクタ210,212を介してソースレジスタ214,215に格納する。また期待値225は自己診断コントローラ228の比較器234の一方の入力にセットする。
Next, the TAP controller 226 activates the self-diagnosis controller 228, reads the source data 206 as the first operand, the
次のサイクルでは、例えば加算命令ADDによって2つのソースデータの加算を行ってディストネーションレジスタ220に格納し、この加算結果224を自己診断コントローラ228の比較器234で既に読み出している期待値225と比較する。
In the next cycle, for example, two source data are added by the addition instruction ADD and stored in the
比較234により両者が一致すれば演算器202は正常であり、不一致の場合は演算器202の異常と判断しエラーを外部に出力し、エラーを起したプロセッサを製造工程から取除く。
If the two match in the comparison 234, the
このような自己診断処理を汎用レジスタファイル204に準備した全ての入力データと期待値について実行して異常がなけば、そのプロセッサは試験にパスし、次の工程に送られる。
If such a self-diagnosis process is executed for all input data and expected values prepared in the general-
また図24の演算回路には、擬似乱数発生器として動作するリニアフィードバックレジスタ(LFSR: LineAr Feedback Shift Register)236,238が設けられ、汎用レジスタファイル204から読み出したデータX,Yをソースレジスタ214,215を介して初期値としてセットした後に、自己診断コントローラ228からの制御で擬似乱数を発生して自己診断を行うことができる。
24 includes linear feedback registers (LFSR) 236 and 238 that operate as pseudo-random number generators, and the data X and Y read from the general-
この擬似乱数を発生する自己診断にあっても、診断時に発生する乱数に対応した期待値を予め準備して汎用レジスタファイル204に読み込んでおく必要があり、入力データの準備と読込みは不要にできるが、期待値を必要とする。
しかしながら、このような演算器を内蔵したプロセッサ等の集積回路において、集積回路に演算器の自己診断機能を実装した場合、自己診断テストを実施する際に、外部のRAM等から膨大な量の自己診断用の入力データと、入力データを用いた自己診断により演算器が正常に動作したときに得られる膨大な量の期待値データを読み込み、入力データに基づく演算結果が格納されるシグネチャ・レジスタの値と期待値とを比較する処理を繰り返しており、大規模で且つ複雑な自己診断回路を必要としている。 However, in an integrated circuit such as a processor incorporating such an arithmetic unit, when the self-diagnosis function of the arithmetic unit is mounted on the integrated circuit, a large amount of self-test is performed from an external RAM or the like when the self-diagnosis test is performed. The signature register that stores the input data for diagnosis and the huge amount of expected value data obtained when the arithmetic unit operates normally by self-diagnosis using the input data, and stores the calculation result based on the input data. The process of comparing the value with the expected value is repeated, and a large-scale and complicated self-diagnosis circuit is required.
このため集積回路に演算器の自己診断機能を実装した場合には、集積回路の本体であるシリコン半導体の部分のサイズを小型化してウェハーから製造できるチップの数を増すことで歩留りを向上しようとしても、大規模で且つ複雑な自己診断回路の実装によってダイサイズを小さくすることができず、歩留りの低下を招いている。 For this reason, when the self-diagnosis function of an arithmetic unit is mounted on an integrated circuit, it is attempted to improve the yield by reducing the size of the silicon semiconductor portion that is the main body of the integrated circuit and increasing the number of chips that can be manufactured from the wafer. However, the die size cannot be reduced by mounting a large-scale and complicated self-diagnosis circuit, resulting in a decrease in yield.
またダイサイズの小型化によってプロセッサの低消費電力化を計ろうとしても、自己診断回路が大規模で複雑になるため、ダイサイズを小さくすることができず、低消費電力化が十分に実現できない問題があった。 Also, even if trying to reduce the power consumption of the processor by reducing the die size, the self-diagnostic circuit becomes large and complicated, so the die size cannot be reduced and the power consumption cannot be sufficiently realized. There was a problem.
更に、プロセッサ等の集積回路の製造にあっては、その月の生産台数によってプロセッサ1台辺りの自己診断テストに割当てることのできる時間が決まり、この割当て時間に合せて自己診断に使用する入力データとその期待値データを作り直しており、その準備に手間と時間がかかる問題があった。 Furthermore, in the manufacture of an integrated circuit such as a processor, the time that can be allocated to the self-diagnosis test per processor is determined by the number of units produced in the month, and the input data used for self-diagnosis is determined according to the allocated time. The expected value data was recreated, and there was a problem that it took time and effort to prepare.
本発明は、期待値データを必要とせずに入力データのみを使用して演算器の自己診断ができるプロセッサ等の演算処理装置及びその方法を提供することを目的とする。
It is an object of the present invention to provide an arithmetic processing apparatus such as a processor and a method thereof that can perform self-diagnosis of an arithmetic unit using only input data without requiring expected value data.
図1は本発明の原理説明図である。本発明は、自己診断機能を備えた集積回路を対象とし、診断対象となる加減算器12を備えた演算回路10−1と、自己診断用データを格納するデータ格納部14と、自己診断用データを入力して演算回路10−1により演算結果が全ビットがオール0(はオール1)となるように診断処理を実行させる自己診断処理部10−2とを備えたことを特徴とする。
FIG. 1 is a diagram illustrating the principle of the present invention. The present invention is directed to an integrated circuit having a self-diagnosis function, and includes an arithmetic circuit 10-1 including an adder /
本発明は、任意の自己診断用の入力データに対して、演算結果として検査が容易な全てビットがオール0(又はオール1)が得られるように演算回路及び自己診断処理部を構成したことにより、期待値および期待値の比較回路を不要にして、自己診断を実現するために必要な回路規模を小さくし、これによってダイサイズの小形化を実現し、プロセッサの歩留り向上や低消費電力化に寄与する自己診断機能を実装したプロセッサ等の集積回路を実現する。 According to the present invention, an arithmetic circuit and a self-diagnosis processing unit are configured so that all bits that can be easily inspected as an operation result are obtained with all 0 (or all 1) as input for arbitrary self-diagnosis input data. This eliminates the need for the expected value and the comparison circuit for the expected value, reduces the circuit scale required to realize self-diagnosis, thereby reducing the die size, improving processor yield and reducing power consumption. An integrated circuit such as a processor that implements a self-diagnosis function that contributes is realized.
ここで自己診断処理部は、2つの入力データをX,Yとすると、次の加減算により演算結果をオール0とした自己診断を行う。
(1)Xを被減数、Yを減数とする減算 Z=X−Y
(2)Yを被減数、Xを減数とする減算 Z’=Y−X
(3)2つの減算結果の加算 Z’’=Z’+Z
(4)加算結果がオール0で正常、オール0でなければ異常
Here, when the two input data are X and Y, the self-diagnosis processing unit performs self-diagnosis with the calculation result being all 0 by the next addition / subtraction.
(1) Subtraction with X as a subtracted number and Y as a subtracted number Z = XY
(2) Subtraction with Y as a subtracted number and X as a subtracted number Z ′ = Y−X
(3) Addition of two subtraction results Z ″ = Z ′ + Z
(4) The result of addition is normal if all 0s, abnormal if not all 0s
具体的な例としては、まず演算回路10−1として、図1(B)のように、第1オペランドAを格納する第1ソースレジスタ24と、第2オペランドBを格納する第2ソースレジスタ26と、第2オペランドBを反転して1の補数B1’sを出力する補数回路(インバータ)30と、第1オペランドAを被減数として入力し、補数回路30の出力値B1’sを減数としてキャリーCinと共に入力し、1の補数B1’sに1を加算した2の補数B2’sを内部生成して第1オペランドAに加算することにより減算C=(A−B)を実行する試験対象となるキャリー入力付きの第1加減算器12と、第1加減算器12の次段に設けられた第2加減算器36とを備える。
As a specific example, first, as the arithmetic circuit 10-1, as shown in FIG. 1B, a first source register 24 for storing the first operand A and a second source register 26 for storing the second operand B are used. And a complement circuit (inverter) 30 that inverts the second operand B and outputs a one's complement B1's, and the first operand A is input as a subordinate, and the output value B1's of the
このような演算回路10−1を対象に自己診断処理部10−2は、第1及び第2ソースレジスタ24,26に格納した所定ビット長の任意の自己診断用データX,Yを使用して次の診断処理を行う。
(1)第1サイクルで補数回路30及び第1加減算器12を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行する。
(2)第2サイクルで被減数Xと減数Yを入れ替えて補数回路30及び第1加減算器12を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として実行する。
(3)第3サイクルで第2加減算器36を用いて第1及び第2サイクルの減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行する。
(4)加算結果が全ビット0であれば正常と判断し、全ビット0以外の場合は異常と判断する。
For such an arithmetic circuit 10-1, the self-diagnosis processing unit 10-2 uses arbitrary self-diagnosis data X, Y having a predetermined bit length stored in the first and second source registers 24, 26. Perform the following diagnostic process.
(1) In the first cycle, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1) using the
(2) Substituting the subtracted number X and the reduction number Y in the second cycle and subtracting Z ′ = (Y−X) using the
(3) In the third cycle, the second adder /
(4) If the addition result is all
また自己診断処理部10−2は、別の形態として、2つの入力データをX,Yとすると、次の減算、変換、比較判定により自己診断を行う。
(1)Xを被減数、Yを減数とする減算 Z=X−Y
(2)Yを被減数、Xを減数とする減算 Z’=Y−X
(3)減算結果Z’につき2の補数Z2’sを算出
Z’2’s=Z1’s+1
(3)比較 Z=Z’2’s
(4)一致で正常、不一致で異常
Further, as another form, when the two input data are X and Y, the self-diagnosis processing unit 10-2 performs self-diagnosis by the following subtraction, conversion, and comparison determination.
(1) Subtraction with X as a subtracted number and Y as a subtracted number Z = XY
(2) Subtraction with Y as a subtracted number and X as a subtracted number Z ′ = Y−X
(3) Calculate 2's complement Z2's for subtraction result Z '
Z'2's = Z1's + 1
(3) Comparison Z = Z'2's
(4) Normal when matched, abnormal when mismatched
この場合の具体的な例としては、まず演算回路は、第1オペランドAを格納する第1ソースレジスタと、第2オペランドBを格納する第2ソースレジスタと、第2オペランドBを反転して1の補数B1’sを出力する第1補数回路と、第1オペランドAを被減数として入力し、反転回路の出力値B1’sを減数としてキャリーCin=1と共に入力して1の補数B1’sに1を加算した2の補数B2’sを内部生成して第1オペランドAに加算することにより減算C=(A−B)を実行する試験対象となるキャリー入力付きの加減算器と、加減算器の減算値Cを反転して1を加算することで2の補数C2’sを出力する第2補数回路と、加減算器と第2補数回路の出力を比較する比較器とを備える。 As a specific example in this case, first, the arithmetic circuit first inverts the first source register storing the first operand A, the second source register storing the second operand B, and the second operand B to 1 The first complement circuit for outputting the complement B1's of the first and second operands A are input as the attenuator, and the output value B1's of the inverting circuit is input as a subtract together with the carry Cin = 1 to the one's complement B1's An adder / subtracter with a carry input to be tested to execute subtraction C = (A−B) by internally generating a 2's complement B2 ′s obtained by adding 1 and adding it to the first operand A; A second complement circuit that outputs the 2's complement C2's by inverting the subtraction value C and adding 1 and a comparator that compares the outputs of the adder / subtractor and the second complement circuit are provided.
このような演算回路を対象に自己診断回路は、第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用して次の処理を実行する。
(1)第1サイクルで前記第1補数回路及び加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行する。
(2)第2サイクルで被減数Xと減数Yを入れ替えて第1補数回路及び加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として実行し、第2補数回路から減算結果Z’の補数Z’2’=(Z1’s+1)を出力して第1サイクルの減算結果Zと比較し、両者が一致(Z’2’s=Y2’s−X2’s=X+Y2’s=Z)すれば正常と判断し、不一致であれば異常と判断する。
For such an arithmetic circuit, the self-diagnosis circuit executes the following processing using arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers.
(1) In the first cycle, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1) using the first complement circuit and the adder / subtracter.
(2) In the second cycle, the subtracted number X and the number Y are exchanged and the subtraction Z ′ = (Y−X) is executed as Z = (Y + X2 ′s) = (Y + X1 ′s + 1) using the first complement circuit and the adder / subtracter. Then, the complement Z′2 ′ = (Z1 ′s + 1) of the subtraction result Z ′ is output from the second complement circuit and compared with the subtraction result Z in the first cycle, and the two match (Z′2 ′s = Y2 ′). s−X2 ′s = X + Y2 ′s = Z), it is determined to be normal, and if they do not match, it is determined to be abnormal.
ここで比較器で判断する
Z’2’s=Y2’s−X2’s=X+Y2’s=Z (1)
の成立を証明すると次のようになる。
Z=X−Y=X+Y1’s+1=X+Y2’s (2)
Z’=Y−X=Y+X1’s+1=Y+X2’s (3)
(2)より
Y2’s=−Y (4)
(3)より
X2’s=−X (5)
従って(4)(5)を(1)に代入して変形すると、
Z’2’s=Y2’s−X2’s
=−Y−(−X)
=−Y+X
=X−Y
となる。ここで右辺第2項の−Yに(2)式を代入すると、
Z’2’s=X+Y2’s
=Z
となり、(1)のZ’2’s=Zの関係が成立する。
Here, Z′2 ′s = Y2′s−X2 ′s = X + Y2 ′s = Z determined by the comparator (1)
Proving the establishment of is as follows.
Z = X−Y = X + Y1 ′s + 1 = X + Y2 ′s (2)
Z ′ = Y−X = Y + X1 ′s + 1 = Y + X2 ′s (3)
From (2) Y2's = -Y (4)
From (3), X2's = -X (5)
Therefore, if (4) and (5) are substituted into (1) and transformed,
Z′2 ′s = Y2′s−X2 ′s
= -Y-(-X)
= -Y + X
= XY
It becomes. Here, substituting equation (2) for -Y in the second term on the right side,
Z'2's = X + Y2's
= Z
Thus, the relationship of Z′2 ′s = Z in (1) is established.
このような自己診断の演算結果をオール0もしくは2つの演算結果を一致させる具体的な演算回路の構成と自己診断処理については、様々な変形がある。
There are various variations in the configuration of the specific arithmetic circuit and the self-diagnosis processing for making all of the self-diagnosis calculation results equal to zero or two calculation results.
本発明によれば、任意の自己診断用の入力データに対し、演算結果として検査が容易な全ビットがオールゼロまたはオール1が得られるように演算回路及び自己診断処理部を構成したことで、従来の自己診断に必要な期待値及び期待値の比較回路を不要とし、これによって自己診断を実現するための必要な回路規模を小さくし、結果として大サイズを小型化し、プロセッサの歩留り向上や低消費電力化に寄与した自己診断機能を実装したプロセッサなどのプロセッサを実現することができる。 According to the present invention, with respect to arbitrary input data for self-diagnosis, the arithmetic circuit and the self-diagnosis processing unit are configured so that all bits that can be easily inspected as an operation result are obtained as all zeros or all ones. This eliminates the need for the expected value and the comparison circuit for the expected value for self-diagnosis, thereby reducing the necessary circuit scale for realizing the self-diagnosis, resulting in a smaller size, improved processor yield, and lower consumption. A processor such as a processor having a self-diagnosis function that contributes to electric power can be realized.
またテストデータを外部から読み込む場合については、期待値を必要としないことから外部データの読み込みが短時間にでき、且つプロセッサなどのプロセッサの生産計画により1台当たりの自己診断に要する時間が変わるような場合にも、期待値の準備を必要としない分、柔軟に且つ容易に対応することができる。
Also, when reading test data from outside, the expected value is not required, so external data can be read in a short time, and the time required for self-diagnosis per unit varies depending on the production plan of the processor such as a processor. Even in such a case, it is possible to flexibly and easily cope with the fact that preparation of the expected value is not required.
図2は本発明によるプロセッサの基本構成を示した回路ブロック図である。 FIG. 2 is a circuit block diagram showing the basic configuration of the processor according to the present invention.
図2において、本発明による自己診断機能付きのプロセッサは、診断対象とする加減算器12を備えた演算回路10−1、自己診断用データを格納するデータ格納部としての汎用レジスタファイル14、オペコードを入力して解読することにより加算命令ADDまたは減算命令SUBを出力するデコーダ50を備える。
In FIG. 2, a processor with a self-diagnosis function according to the present invention includes an arithmetic circuit 10-1 having an adder /
このような試験対象としての加減算器12を含む演算回路10−1に対し、自己診断処理部10−2が設けられる。自己診断処理部10−2にはTAPコントローラ(Test Access Port Controller)42と自己診断コントローラ44が設けられる。TAPコントローラ42はLSI製造工程におけるウェハー製造段階やパッケージ製造段階において、LSIに内蔵しているRAMや内蔵演算器に対する自己診断テストを自己診断コントローラ44の制御により行う。
A self-diagnosis processing unit 10-2 is provided for the arithmetic circuit 10-1 including the adder /
即ち、自己診断対象となる加減算器12を備えた演算回路10−1にあっては、入力テストデータX,Yについて2の補数を生成できるように構成しており、自己診断処理の際には2つの入力テストデータX,Yについて
(1)Xを被減数、Yを減数とする減算Z=X−Y
(2)Yを被減数、Xを減数とする減算Z’=Y−X
(3)2つの減算結果の加算Z’’=Z+Z’=0
を実行し、最終的な演算結果ZZの全ビットが0となることを確認することにより演算結果と期待値との比較を不要とした演算回路10−1の自己診断処理を実行する。
In other words, the arithmetic circuit 10-1 including the adder /
(2) Subtraction Z ′ = Y−X where Y is a subtracted number and X is a subtracted number
(3) Addition of two subtraction results Z ″ = Z + Z ′ = 0
, And the self-diagnosis process of the arithmetic circuit 10-1 that does not require comparison between the operation result and the expected value by confirming that all bits of the final operation result ZZ are 0 is executed.
また本発明の自己診断処理の別の形態にあっては、2つの入力テストデータX,Yにつき次の減算、変換、比較判定を行う。
(1)Xを被減数、Yを減数とする減算Z=X−Y
(2)Yを被減数、Xを減数とする減算Z’=Y−X
(3)減算結果Z’につき2の補数Z2’sを算出する。Z2’s=Z1’s+1
(4)減算結果と変換結果の比較Z=Z2’s
そして、この比較結果の一致を確認することにより演算結果と期待値の比較を不要とするような自己診断を実行する。
In another form of the self-diagnosis process of the present invention, the following subtraction, conversion, and comparison determination are performed for the two input test data X and Y.
(1) Subtraction Z = X−Y, where X is a subtracted number and Y is a subtracted number
(2) Subtraction Z ′ = Y−X where Y is a subtracted number and X is a subtracted number
(3) A two's complement Z2 ′s is calculated for the subtraction result Z ′. Z2's = Z1's + 1
(4) Comparison of subtraction result and conversion result Z = Z2's
Then, the self-diagnosis is executed such that the comparison between the calculation result and the expected value is unnecessary by confirming the coincidence of the comparison result.
図3は、本発明による自己診断機能付きプロセッサの第1実施形態であり、この第1実施形態にあっては演算回路に対し演算結果が全ビットにつきオール0となるように演算して、この演算結果を確認するようにしたことを特徴とする。 FIG. 3 shows a first embodiment of a processor with a self-diagnosis function according to the present invention. In this first embodiment, an arithmetic circuit is operated so that the operation result is all 0 for all bits. It is characterized in that the calculation result is confirmed.
図3において、第1実施形態のプロセッサは、演算回路部10−1と自己診断処理部10−2から構成される。自己診断処理部10−2にはTAPコントローラ42と自己診断コントローラ44が設けられている。TAPコントローラ42はLSI製造工程におけるウェハー製造段階やパッケージ製造段階において、演算回路10−1に内蔵している試験対象11としての加減算器12に対する自己診断テストを制御する。具体的には自己診断コントローラ44に対するBIST START信号により起動をみか、診断終了をBIST DONE 信号により受け取る。
In FIG. 3, the processor according to the first embodiment includes an arithmetic circuit unit 10-1 and a self-diagnosis processing unit 10-2. The self-diagnosis processing unit 10-2 is provided with a
自己診断コントローラ44は、TAPコントローラ42からのBIST START信号により動作し、演算回路10−1側を制御して自己診断テストを実行する。この自己診断コントローラ44にはオールゼロ検出器48が設けられており、演算回路10−1からの自己診断テストによる演算結果40を入力し、演算結果40の全ビットがオールゼロであれば試験対象11としての加減算器12は正常であると判断し、一方、全ビットがオールゼロでなかった場合には試験対象11としての加減算器12の異常と判断し、エラー信号E4を外部に出力してエラーの検出通知を行う。
The self-diagnosis controller 44 operates in response to the BIST START signal from the
次に自己診断テストの対象となる演算回路10−1側を説明する。演算回路10−1には、汎用レジスタファイル14、マルチプレクサ20,22、第1ソースレジスタ24、第2ソースレジスタ26、1の補数を生成する補数回路としてのインバータ30、マルチプレクサ28、試験対象11となるキャリーCin付きの2入力の加減算器12、ディストネーションレジスタ32,34,38、キャリー入力を持たない2入力の加減算器36及びデコーダ50が設けられる。
Next, the side of the arithmetic circuit 10-1 to be subjected to the self-diagnosis test will be described. The arithmetic circuit 10-1 includes a general-
デコーダ50はプログラムのオペコード52を入力し、演算器に対する命令として加算命令ADDまたは減算命令SUBをデコードする。汎用レジスタファイル14は、プロセッサ内部で使用する整数データ、アドレスなどのデータを保持するレジスタの集合であり、本発明の自己診断テストにあっては、自己診断に使用する予め準備されたテストデータが外部のRAMなどからライトポートWRを通じて予め読み込まれている。
The
この汎用レジスタファイル14の格納データは第1ソースデータ16及び第2ソースデータ18としてリードポートRDから読み出され、マルチプレクサ20,22を介して第1ソースレジスタ24と第2ソースレジスタ26に格納される。自己診断テストの際には、汎用レジスタファイル14より第1テストデータXと第2テストデータYが読み出され、第1ソースレジスタ24及び第2ソースレジスタ26にそれぞれ格納される。ここで、この実施形態で扱うデータは例えば32ビット幅のデータである。
Data stored in the general-
マルチプレクサ20は、自己診断コントローラ44からの制御信号E2により第1ソースデータ16の値と第1ソースレジスタ24の値を選択して出力する。同様にマルチプレクサ22は自己診断コントローラ44からの制御信号E2により第2ソースデータ18の値と第2ソースレジスタ26の値を選択して出力する。
The
ここで第1ソースレジスタ24は加減算器の第1オペランドの値を保持し、また第2ソースレジスタ26は加減算器の第2オペランドの値を保持する。 Here, the first source register 24 holds the value of the first operand of the adder / subtractor, and the second source register 26 holds the value of the second operand of the adder / subtracter.
インバータ30は、第2ソースレジスタ26に保持されている値を反転し、1の補数を生成する補数回路として機能する。マルチプレクサ28はデコーダ50からの演算命令により第2ソースレジスタ26の値とインバータ30の値を選択して出力する。本発明の自己診断テストにあっては、デコーダ50からの減算命令SUBが出力され、マルチプレクサ28はインバータ30から出力を選択し、第2ソースレジスタ26の値を反転した1の補数を出力する。
The
この第1実施形態の試験対象11となる加減算器12は、デコーダ50の出力をキャリー入力Cinとしたキャリー入力付きの2入力の加減算器であり、加算命令ADDの場合にはキャリー入力はCin=0となり、一方、減算命令SUBの際にはキャリー入力はCin=1となる。
The adder /
このため通常の加算命令ADDの際には、加減算器12の第1オペランドをA、第2オペランドをB、加算出力をCとすると、C=A+Bの加算を行う。また加減算器12は自己診断テストの際にはデコーダ50より減算命令SUBを受けることから、第1ソースレジスタ24の値を第1オペランドA、第2ソースレジスタ26の値を第2オペランドBとすると、マルチプレクサ28により第2オペランドBを反転した1の補数B1’sを生成し、更に加減算器12に対するキャリー入力Cin=1により第2オペランドBの2の補数B2’s(=B1’s+1)を生成することによりC’=A+B2’s=A−Bの減算命令を実行する。
Therefore, in the normal addition instruction ADD, if the first operand of the adder /
図3のキャリー入力Cin付きの2入力の加減算器12は、具体的には図4の回路構成を持っている。演算器10は加減算器12−1と加減算器12−2で構成され、加減算器12−1の一方に命令の第1オペランドAを入力し、他方には加減算器12−2の加算結果を入力している。加減算器12−2は命令の第2オペランドBとキャリー入力Cinを加算して出力する。したがって加減算器12の加算出力CはC=A+B+Cinとなり、このキャリー入力Cinはデコーダ50からの加算命令ADDでCin=0、減算命令SUBでCin=1となっている。
Specifically, the 2-input adder /
再び図3を参照するに、加減算器12の出力側に設けたディストネーションレジスタ32は、通常の演算処理にあっては加減算器12の演算結果を保持し、保持した演算結果の値をデータフォワ−ドパス35に出力し、最終的に汎用レジスタファイル14に演算結果を反映させる。
Referring to FIG. 3 again, the
また本発明による自己診断テストの際には、2サイクル目の演算結果である減算結果Z’=Y−X(=Y+X2’s=Y+X1’s+1)の値が保持される。また次のディストネーションレジスタ34は、自己診断テストの際には1サイクル目の減算結果となるZ=X−Y(=X+Y2’s=X+Y1’s+1)の値が保持される。 In the self-diagnosis test according to the present invention, the value of the subtraction result Z ′ = Y−X (= Y + X2 ′s = Y + X1 ′s + 1), which is the operation result of the second cycle, is held. The next destination register 34 holds a value of Z = X−Y (= X + Y2 ′s = X + Y1 ′s + 1), which is a subtraction result of the first cycle in the self-diagnosis test.
2入力の加減算器36は、自己診断テストの際にのみ有効となり、自己診断コントローラ44からの制御信号E3を受けて減算器12による2回の減算で得られたディストネーションレジスタ34の減算結果Zとディストネーションレジスタ32の減算結果Z’の加算により、Z’’=Z+Z’=(X−Y)+(Y−X)=X+Y2’s+Y+X2’sを演算する。
The two-input adder /
加減算器36の出力段のディストネーションレジスタ38は、自己診断テストの最終的な演算結果Z’’=Z+Z’を保持するもので、この演算結果40は自己診断コントローラ44のオールゼロ検出器48に与エラーれ、オールゼロの確認が行われる。
The destination register 38 at the output stage of the adder /
次に図3の第1実施形態における通常の演算命令である加算命令ADDによるC=A+B及び減算命令SUBによるC’=A−Bに対する動作を説明する。 Next, the operation for C = A + B by the addition instruction ADD and the C '= AB by the subtraction instruction SUB, which are normal operation instructions in the first embodiment of FIG. 3, will be described.
まず演算命令の第1オペランドA及び第2オペランドBが汎用レジスタファイル14のリードポートからそれぞれ第1ソースデータ16及び第2ソースデータ18として読み出され、マルチプレクサ20,22を介して第1ソースレジスタ24と第2ソースレジスタ26に格納される。
First, the first operand A and the second operand B of the operation instruction are read from the read port of the general-
一方、演算命令のオペコード52はデコーダ50で解読され、加算命令ADDであればマルチプレクサ28により第1ソースレジスタ26の第2オペランドBがそのまま選択されることから、加減算器12には第1オペランドA、第2オペランドB及びキャリー入力Cin=0が入力され、C=A+Bが演算される。
On the other hand, the opcode 52 of the operation instruction is decoded by the
また減算命令SUBであればマルチプレクサ28はインバータ30の出力を選択し、このため加減算器12には第1オペランドA、第2オペランドBを反転した1の補数B1’s及びキャリー入力Cin=1が入力され、C’=A−B=A+B2’s=A+B1’s+1が演算される。
In the case of the subtraction instruction SUB, the
加減算器12の演算結果となるCやC’の値はディストネーションレジスタ32に保持され、データフォワ−ドパス35に出力され、最終的にはライトポートから汎用レジスタファイル14に反映される。
The values of C and C ′ that are the calculation results of the adder /
次に本発明の自己診断テストによる動作を説明する。自己診断テストの際にはTAPコントローラ42が自己診断コントローラ44に対するBIST START信号をアサートし、自己診断テストの動作が開始される。この自己診断テストの開始により、汎用レジスタファイル14に既に格納されているテストデータである演算の第1オペランドX及び第2オペランドYがリードポートから読み出され、マルチプレクサ20,22により選択され、第1ソースレジスタ24及び第2ソースレジスタ26に保持される。
Next, the operation by the self-diagnosis test of the present invention will be described. In the self-diagnosis test, the
一方、自己診断コントローラ44は制御信号E1によりデコーダ50を制御し、オペコード52のデコードによって減算命令SUBを出力する。このデコーダ50からの減算命令SUBによりマルチプレクサ28はインバータ30の出力を選択し、これによって加減算器12には第1オペランドX、第2オペランドYを反転した1の補数Y1’s及びキャリー入力Cin=1が入力される。
On the other hand, the self-diagnosis controller 44 controls the
この結果、自己診断処理の第1サイクルにおいては、加減算器12は減算結果Zとして
Z=X−Y=X+Y2’s=X+Y1’s+1
を演算し、ディストネーションレジスタ32に演算結果Zを保持する。
As a result, in the first cycle of the self-diagnosis process, the adder /
And the operation result Z is held in the
次に1クロック後の自己診断テストの第2サイクル目にあっては、自己診断コントローラ44はマルチプレクサ20,22を制御して第1ソースレジスタ24と第2ソースレジスタ26の値X,Yを入れ替えるように入力する選択を行い、これによって第1ソースレジスタ24に第1オペランドYが、また第2ソースレジスタ26に第2オペランドXが、第1サイクル目の値とは入れ替わって保持される。
Next, in the second cycle of the self-diagnosis test after one clock, the self-diagnosis controller 44 controls the
またマルチプレクサ28はデコーダ50の減算命令SUBによって継続してインバータ30の出力を選択している。このため加減算器12には、第1オペランドY,第2オペランドX、キャリー入力Cin=1が入力され、
Z’=Y−X=Y+X2’s=Y+X1’s+1
が演算される。このとき前回の演算結果であるZ=X−Yの値は1クロック経過しているためにディストネーションレジスタ34に保持されており、今回の減算結果であるZ’=Y−Xの値がディストネーションレジスタ32に保持される。
Further, the
Z ′ = Y−X = Y + X2 ′s = Y + X1 ′s + 1
Is calculated. At this time, the value of Z = X−Y, which is the previous calculation result, is held in the destination register 34 since one clock has elapsed, and the value of Z ′ = Y−X, which is the current subtraction result, is It is held in the
このようにディストネーションレジスタ32,34に保持された減算結果Z’,Zは、第1オペランドZ’及び第2オペランドZとして2入力の加減算器36に入力され、Z’’=Z+Z’が演算される。この演算結果Z’’はディストネーションレジスタ38に保持され、演算結果40として自己診断コントローラ44のオールゼロ検出器48に出力される。
The subtraction results Z ′ and Z held in the destination registers 32 and 34 in this way are input to the 2-
ここで試験対象11としての加減算器12が正常であった場合には、減算結果Z’’は次の関係となる。
Z’’=Z+Z’=(X−Y)+(Y−X)
=X+Y2’s +Y+X2’s
=(X+X2’s )+(Y+Y2’s )
=0+0
=0
Here, when the adder /
Z ″ = Z + Z ′ = (X−Y) + (Y−X)
= X + Y2's + Y + X2's
= (X + X2's) + (Y + Y2's)
= 0 + 0
= 0
そのため自己診断コントローラ44のオールゼロ検出器48は演算結果40の全ビットがオール0であることを検査すればよく、従来のようにテストデータX,Yの演算結果としての期待値を用意して実際の演算結果との比較を行う必要がない。このためオールゼロ検出器48としては、例えば全ビットのOR論理をとる回路構成とすれば良く、このような全ビットOR入力の論理回路のOR出力によって、もし全ビットがオール0でなければエラー信号E4を出力して外部に演算器12の異常を通知できる。
Therefore, the all-zero
このような自己診断テストを汎用レジスタファイル14に前もって格納している残りの2つの入力データの組について複数回繰り返すことにより、自己診断を完了する。
Such a self-diagnosis test is repeated a plurality of times for the remaining two sets of input data stored in advance in the general-
図5は、演算結果と期待値の比較を不要とした本発明の自己診断機能付きプロセッサの第2実施形態の回路ブロック図である。この第2実施形態にあっては、2つの入力テストデータX,Yについて減算Z=X−YとZ’=Y−Xを減算した後、1回目の演算結果Zと2回目の演算結果Z’の2の補数Z’2’sを比較し、この比較結果から入力データX,Yの期待値との比較を必要としない自己診断テストを行うようにしたことを特徴とする。 FIG. 5 is a circuit block diagram of a second embodiment of the processor with a self-diagnostic function according to the present invention, in which the comparison between the calculation result and the expected value is unnecessary. In the second embodiment, after subtracting the subtraction Z = X−Y and Z ′ = Y−X for the two input test data X and Y, the first calculation result Z and the second calculation result Z The two's complement Z'2's is compared, and a self-diagnosis test that does not require comparison with the expected values of the input data X and Y is performed based on the comparison result.
図5において、演算回路10−1側の汎用レジスタファイル14からディストネーションレジスタ34までの構成は図3の第1実施形態と同じである。このため自己診断テストの際には、汎用レジスタファイル14から2つのテストデータX,Yが読み出されて第1ソースレジスタ24,第2ソースレジスタ26に保持された後、第1サイクルで減算Z=X−Y=X+Y2’s=(X+Y1’s+1)を実行し、ディストネーションレジスタ32に保持する第1サイクル目の処理を行う。
In FIG. 5, the configuration from the general-
次の第2サイクル目では入力データX,Yを入れ替えた減算Z’=(Y−X)=(Y+X2’s)=(Y+X1’s+1)を行い、第1サイクル目の演算結果を1クロック後であることからディストネーションレジスタ34に保持し、2回目の演算結果はディストネーションレジスタ32に保持する。
In the next second cycle, the subtraction Z ′ = (Y−X) = (Y + X2 ′s) = (Y + X1 ′s + 1) is performed by switching the input data X and Y, and the calculation result in the first cycle is one clock later. Therefore, it is held in the destination register 34, and the second calculation result is held in the
このようなディストネーションレジスタ32,34に続いて、第2実施形態にあっては比較器54を設けている。比較器54の一方の入力にはディストネーションレジスタ34に保持した1回目の減算結果Zが入力される。また比較器54の他方の入力にはインバータ56と+1インクリメント回路58が設けられている。
Following the destination registers 32 and 34, a comparator 54 is provided in the second embodiment. The first subtraction result Z held in the destination register 34 is input to one input of the comparator 54. An inverter 56 and a +1
このためディストネーションレジスタ32に保持された2回目の減算結果Z’はインバータ56で反転されて1の補数Z1’sとなり、続いて+1インクリメント回路58で1を加えることによりZ’の2の補数Z’2’s=Z’1’s+1に変換されて比較器54に入力される。
Therefore, the second subtraction result Z ′ held in the
このため比較器54は、ディストネーションレジスタ34の値となる第1オペランドZと、インバータ56と+1インクリメント回路58により変換された第2オペランドZ’2’sとの比較を実行し、比較結果40−1を出力する。
Therefore, the comparator 54 compares the first operand Z, which is the value of the destination register 34, with the second operand Z′2 ′s converted by the inverter 56 and the +1
一方、自己診断処理部10−2側にはTAPコントローラ42と自己診断コントローラ44−1が設けられており、自己診断コントローラ44−1にはエラー検出器60が設けられている。エラー検出器60は演算回路部10−1の比較器54からの比較結果40−1を入力し、比較器54における第1オペランドZと第1オペランドZ’2’sが一致していれば試験対象10の加減算器12は正常と判断し、一方、比較結果が不一致であればエラーを検出して外部に加減算器12の異常を示すエラー信号E4を出力する。
On the other hand, a
ここで比較器54における第1オペランドZと第2オペランドZ’2’sの一致関係の成立を証明すると次のようになる。 Here, it is proved that the coincidence relationship between the first operand Z and the second operand Z′2 ′s in the comparator 54 is established as follows.
まず最終的な演算結果は次のようになる。
Z’2’s=Y2’S−X2’S=X+Y2’S=Z (6)
この成立を証明すると次のようになる。ここで
Z=X−Y=X+Y1’s+1=X+Y2’S (7)
Z’=Y−X=Y+X1’s+1=Y+X2’S (8)
である。そこで(7)より
Y2’s=−Y (9)
となり、(8)より
X2’s=−X (10)
となる。従って(9)(10)を(6)に代入して変形すると、
Z’2’s=X+Y2’s
=−Y−(−X)
=−Y+X
=X−Y
となる。ここで右辺第2項の−Yに(7)式を代入すると、
Z’2‘s=X+Y2’s
=Z
となり、(5)のZ’2’s=Zの関係が成立する。
First, the final calculation result is as follows.
Z′2 ′s = Y2′S−X2 ′S = X + Y2 ′S = Z (6)
Proving this is as follows. Here, Z = X−Y = X + Y1 ′s + 1 = X + Y2 ′S (7)
Z ′ = Y−X = Y + X1 ′s + 1 = Y + X2 ′S (8)
It is. Therefore, Y2's = -Y from (7) (9)
From (8), X2 ′s = −X (10)
It becomes. Therefore, when (9) and (10) are substituted into (6) and transformed,
Z'2's = X + Y2's
= -Y-(-X)
= -Y + X
= XY
It becomes. Here, substituting equation (7) for -Y in the second term on the right side,
Z'2's = X + Y2's
= Z
Thus, the relationship of Z′2 ′s = Z in (5) is established.
また比較器54としては、演算器12の演算動作が正しいときに第1オペランドZ’と第2オペランドZ’2’sは一致していることから、第1オペランドZと第2オペランドZ’2’sのそれぞれについて全ビットのEXOR論理をとった後に全ビットのEXOR出力のOR論理をとれば良く、比較器54そのものも簡単な論理データで構成できる。
Further, as the comparator 54, when the arithmetic operation of the
図6は本発明の自己診断機能を備えたプロセッサの第3実施形態の回路ブロック図である。この第3実施形態にあっては、試験対象としてキャリー入力を持たない2入力の加減算器を備えたことを特徴とする。 FIG. 6 is a circuit block diagram of a third embodiment of a processor having a self-diagnosis function of the present invention. The third embodiment is characterized in that a 2-input adder / subtracter having no carry input is provided as a test target.
図6において、自己診断処理部10−2は、図3の第1実施形態と同様、TAPコントローラ42と自己診断コントローラ44で構成され、自己診断コントローラ44にはオールゼロ検出器48が設けられている。
In FIG. 6, the self-diagnosis processing unit 10-2 includes a
演算回路10−1は試験対象10としてキャリー入力を持たない2入力の加減算器65を備えている。この加減算器65の入力側にはレジスタファイル14、マルチプレクサ20,22及び第1ソースレジスタ24及び第2ソースレジスタ26、インバータ30及びマルチプレクサ28が設けられている点は図3の第1実施形態と同じであるが、加減算器65をキャリー入力なしとしたことに伴い、インバータ30に続いて+1インクリメント回路61を設けている。
The arithmetic circuit 10-1 includes a two-input adder / subtracter 65 having no carry input as the
このインバータ30と+1インクリメント回路61によって第2ソースレジスタ26の第2オペランドBをインバータ30で反転して1の補数B1’sに変換した後、+1インクリメント回路61で1を加えることによって2の補数B2’sに変換して加減算器65に出力するようにしている。
The
このため加減算器65にあっては、デコーダ50からの減算命令SUBによるマルチプレクサ28の第2オペランドB2’sの選択による出力で第1オペランドAを入力し、C=A+B2’s=A−Bの減算を実行することになる。
Therefore, in the adder / subtracter 65, the first operand A is input as an output by the selection of the second operand B2's of the
加減算器65の出力段にはディストネーションレジスタ32,34、2入力の加減算器36及びディストネーションレジスタ38が設けられており、これは図3の第1実施形態と同じである。
At the output stage of the adder / subtractor 65, there are provided destination registers 32 and 34, a two-input adder /
次に図6の第3実施形態について自己診断テストの動作を説明する。TAPコントローラ42がBIST START信号をアサートすると、自己診断コントローラ44が動作し、自己診断テストを開始する。まず汎用レジスタファイル14よりテストデータとしてのオペランドX,Yを読み出し、マルチプレクサ20,22を介して第1ソースレジスタ24と第2ソースレジスタ26に保持する。
Next, the operation of the self-diagnosis test will be described for the third embodiment of FIG. When the
このときデコーダ50の制御によって減算命令SUBが出力されていることから、マルチプレクサ28は+1インクリメント回路61の出力を選択している。このため試験対象10としての加減算器65には第1オペランドXと第2オペランドB2’sが入力され、
Z=X+Y2’s=X+Y1’s+1=X−Y
が演算され、ディストネーションレジスタ32に保持される。
At this time, since the subtraction instruction SUB is output under the control of the
Z = X + Y2 ′s = X + Y1 ′s + 1 = X−Y
Is calculated and held in the
次の第2サイクル目では、自己診断コントローラ44の制御信号E2によってマルチプレクサ20が第2ソースレジスタ26のテストデータXを選択して出力し、同時にマルチプレクサ22が第1ソースレジスタ24のテストデータXを選択して出力し、これによってソースレジスタ24と26の値が入れ替わる。
In the next second cycle, the
このときマルチプレクサ28はデコーダ50の減算命令SUBを継続して受けている。このため加減算器65には第1オペランドYとインバータ30及び+1インクリメント回路61で変換された第2オペランドX2’sが入力し、
Z’=Y+X2’s=Y+X1’s+1=Y−X
を実行する。この2回目の減算結果は1クロック後であることからディストネーションレジスタ32に保持され、1つ前の減算結果Zは次のディストネーションレジスタ34に保持されている。
At this time, the
Z ′ = Y + X2 ′s = Y + X1 ′s + 1 = Y−X
Execute. Since the second subtraction result is one clock later, it is held in the
このため加減算器36には第1オペランドZ’と第2オペランドZが入力し、Z’’=Z+Z’の演算を実行してディストネーションレジスタ38に保持する。この加減算器36における演算結果Z’’は、加減算器65が正常であれば、
Z’’=Z+Z’=(X−Y)+(Y−X)
=X+Y2’s+Y2’s+Y+X2’s
=(X+X2’s)+(Y+Y2’s)
=0+0
=0
となる。
For this reason, the first and second operands Z ′ and Z are input to the adder /
Z ″ = Z + Z ′ = (X−Y) + (Y−X)
= X + Y2's + Y2's + Y + X2's
= (X + X2's) + (Y + Y2's)
= 0 + 0
= 0
It becomes.
加減算器36の加算結果40は自己診断コントローラ44のオールゼロ検出器48に与えられ、全ビットがオールゼロであれば加減算器65は正常と判断し、オールゼロでなければ加減算器65の異常と判断してエラー信号E4を外部に出力する。
The addition result 40 of the adder /
この図6の第3実施形態にあっては、試験対象の加減算器として図3の第1実施形態のようにキャリー入力付きの2入力の加減算器12ではなく、キャリー入力を持たない加減算器を使用している場合の自己診断テストに対応することができる。
In the third embodiment of FIG. 6, an adder / subtracter having no carry input is used as an adder / subtracter to be tested instead of the two-input adder /
図7は、本発明による自己診断機能付きプロセッサの第4実施形態の回路ブロック図である。この第4実施形態にあっては、図3の第1実施形態で出力段に設けている加減算器36を廃止し、この加減算器36による2回目の演算を試験対象10として設けているキャリー入力付きの2入力の加減算器12で行うように構成したことを特徴とする。このように2回目の演算に専用の加減算器を必要としない分、演算回路の構成を簡単にすることができる。
FIG. 7 is a circuit block diagram of a fourth embodiment of a processor with a self-diagnosis function according to the present invention. In the fourth embodiment, the adder /
図7において、試験対象11となるキャリー入力付きの2入力の加減算器12の入力側には、汎用レジスタファイル14、マルチプレクサ20,22、第1ソースレジスタ24、第2ソースレジスタ26、インバータ30、マルチプレクサ28が設けられ、続いて新たにマルチプレクサ64,66を設けている。
In FIG. 7, a general-
マルチプレクサ64,66は、自己診断コントローラ44からの制御信号E5によって、第1サイクル目では第1ソースレジスタ24及びマルチプレクサ28の出力を選択しているが、第2サイクル目については加減算器12の出力側のディストネーションレジスタ34,32の値を選択して出力するようにしたことを特徴とする。また加減算器12に対してはキャリー入力Cinに加え、1回目の演算と2回目の演算を制御する制御信号E3も入力されている。
The multiplexers 64 and 66 select the outputs of the first source register 24 and the
次に図7の第4実施形態における自己診断テストの動作を説明する。TAPコントローラ42がBIST START信号をアサートすることで自己診断コントローラ44が動作すると、まず汎用レジスタファイル14から任意のテストデータX,Yを読み出し、マルチプレクサ20,22を介して第1ソースレジスタ24に第1オペランドXを保持し、同時に第2ソースレジスタ26に第2オペランドYを保持する。
Next, the operation of the self-diagnosis test in the fourth embodiment of FIG. 7 will be described. When the self-diagnosis controller 44 operates when the
このときマルチプレクサ28はインバータ30の出力を選択しており、またマルチプレクサ64,66は第1ソースレジスタ24の出力及びマルチプレクサ28の出力を選択している。もちろん、デコーダ50は減算命令SUBを出力している。このため試験対象10の加減算器12には第1オペランドX、第2オペランドY2’s及びキャリー入力Cin=1が入力し、
Z=X+Y2’s=X+Y1’s+1=X−Y
の減算を実行し、減算結果Zをディストネーションレジスタ32に保持する。
At this time, the
Z = X + Y2 ′s = X + Y1 ′s + 1 = X−Y
And the subtraction result Z is held in the
第2サイクル目にあっては、自己診断コントローラ44はデコーダ50の減算命令SUBを維持したままマルチプレクサ20,22を制御して第1ソースレジスタ24と第2ソースレジスタ26のオペランドX,Yを入れ替えて保持し、マルチプレクサ28及びマルチプレクサ64,66の制御は第1サイクル目と同じであることから、加減算器12には第1オペランドY、第2オペランドX2’s及びキャリー入力Cin=1が入力し、
Z’=Y+X2’s=Y+X1’s+1=Y−X
の減算を実行する。
In the second cycle, the self-diagnosis controller 44 controls the
Z ′ = Y + X2 ′s = Y + X1 ′s + 1 = Y−X
Perform subtraction.
この2回目の減算結果Z’はディストネーションレジスタ32に保持され、1回目の減算結果Zは1クロック後であることから次のディストネーションレジスタ34に保持されている。
The second subtraction result Z ′ is held in the
次の第3サイクル目にあっては、自己診断コントローラ44はデコーダ50を制御して加算命令ADDを出力させ、また制御信号E5によってマルチプレクサ64,66を制御して加減算器12の出力側を選択させる。
In the next third cycle, the self-diagnosis controller 44 controls the
このため加減算器12には、ディストネーションレジスタ34に保持している第1オペランドZ、ディストネーションレジスタ32に保持している第2オペランドZ’、及びキャリー入力Cin=0が入力し、Z’’=Z+Z’の加算を実行する。
Therefore, the first operand Z held in the destination register 34, the second operand Z ′ held in the
この3サイクル目の加算結果Z’’はディストネーションレジスタ32に保持され、自己診断コントローラ44のオールゼロ検出器48に演算結果40として出力される。この最終的に得られた演算結果Z’’は、加減算器12が正常であれば、
Z’’=Z+Z’=(X−Y)+(Y−X)
=X+Y2’s+Y+X2’s
=(X+X2’s)+(Y+Y2’s)
=0+0
=0
となる。
The addition result Z ″ in the third cycle is held in the
Z ″ = Z + Z ′ = (X−Y) + (Y−X)
= X + Y2's + Y + X2's
= (X + X2's) + (Y + Y2's)
= 0 + 0
= 0
It becomes.
このため自己診断コントローラ44のオールゼロ検出器48は加算結果40がオールゼロであれば加減算器12は正常と判断し、一方、オールゼロでなければ加減算器12の異常と判断し、エラー信号E4を外部に出力する。
For this reason, the all-zero
この図7の第4実施形態にあっては、加減算器12の出力段に別の加減算器を必要としない分、図3の第1実施形態に比べ演算回路10−1の回路構成を簡単にできる。一方、図3の第1実施形態にあっては、加減算器36を設けた分、回路構成は複雑になるが、自己診断動作が2サイクルで済む点で高速にでき、これに対し図7の第4実施形態は自己診断動作を3サイクルで行うことから、その分、時間が掛かることになる。したがって図3の第1実施形態と図7の第4実施形態は、回路構成の簡略化をとるか自己診断動作の高速化をとるかのいずれかの要求に応じて使用すれば良い。
In the fourth embodiment of FIG. 7, the circuit configuration of the arithmetic circuit 10-1 is simpler than that of the first embodiment of FIG. 3 because another adder / subtracter is not required at the output stage of the adder /
図8は、本発明による自己診断機能付きプロセッサの第5実施形態の回路ブロック図である。この第5実施形態にあっては、図6の第3実施形態について出力側に設けている加減算器36を省略し、図7の第4実施形態と同様、試験対象10に設けている加減算器65を使用して2回目の加算を行うようにしたことを特徴とする。
FIG. 8 is a circuit block diagram of a fifth embodiment of a processor with a self-diagnosis function according to the present invention. In the fifth embodiment, the adder /
図8において、演算回路10−1は、試験対象10となる2入力の加減算器65の入力側に汎用レジスタファイル14、マルチプレクサ20,22、第1ソースレジスタ24、第2ソースレジスタ26、インバータ30、+1インクリメント回路61、マルチプレクサ28を設けている点は図6の第3実施形態と同じであるが、これに加えて加減算器65の入力側に図7の第4実施形態と同様、マルチプレクサ64,66を新たに設けている。
In FIG. 8, the arithmetic circuit 10-1 has a general-
マルチプレクサ64,66は自己診断テストの第1サイクル目及び第2サイクル目の減算動作の際には第1ソースレジスタ24の第1オペランドとマルチプレクサ28の第2オペランドを選択して出力するが、第3サイクル目の加算動作では加減算器65の出力側を選択するように制御される。
The multiplexers 64 and 66 select and output the first operand of the first source register 24 and the second operand of the
また自己診断処理部10−2側は、図6の第3実施形態と同様、TAPコントローラ42及びオールゼロ検出器48を備えた自己診断コントローラ44で構成される。
Further, the self-diagnosis processing unit 10-2 side is configured by a self-diagnosis controller 44 including a
次に図8の第5実施形態の自己診断テストの動作を説明する。TAPコントローラ42からのBIST START信号がアサートされ、自己診断コントローラ44が自己診断動作を開始すると、まず汎用レジスタファイル14から任意のテストデータX,Yが読み出され、マルチプレクサ20,22で選択されて第1ソースレジスタ24と第2ソースレジスタ26に格納される。
Next, the operation of the self-diagnosis test of the fifth embodiment in FIG. 8 will be described. When the BIST START signal from the
このときデコーダ50は自己診断コントローラ44による制御で減算命令SUBを出力しており、マルチプレクサ28は第2ソースレジスタ26に保持したテストデータYをインバータ30で反転して1の補数Y1’sとした後、+1インクリメント回路61で1を加えることで2の補数Y2’sとした出力を選択している。
At this time, the
またマルチプレクサ64,66は制御信号E5によって第1ソースレジスタ24とマルチプレクサ28の出力を選択している。このため第1サイクル目にあっては、試験対象10の加減算器65には第1オペランドXと第2オペランドY2’sが入力し、
Z=X+Y2’s=X+Y1’s+1=X−Y
の演算を実行し、演算結果Zをディストネーションレジスタ32に保持する。
The multiplexers 64 and 66 select the outputs of the first source register 24 and the
Z = X + Y2 ′s = X + Y1 ′s + 1 = X−Y
The operation result Z is executed, and the operation result Z is held in the
次の第2サイクル目にあっては、自己診断コントローラ44の制御信号E2によってマルチプレクサ20が第2ソースレジスタ26の値Yを選択して出力し、同時にマルチプレクサ22が第1ソースレジスタ24の値Xを選択して出力し、入力データX,Yが入れ替わる。
In the next second cycle, the
またマルチプレクサ28及びマルチプレクサ64,66の選択状態は同じである。このため試験対象10の加減算器65には第1オペランドYと第2オペランドX2’sが入力し、
Z’’=Y+X2’s=Y+X1’s+1=Y−X
の減算を実行する。この2回目の減算結果Z’’はディストネーションレジスタ32に保持され、1クロック後であることから、1回目の減算結果Zはデストネーションレジスタ34に保持される。
The selection states of the
Z ″ = Y + X2 ′s = Y + X1 ′s + 1 = Y−X
Perform subtraction. This second subtraction result Z ″ is held in the
次の第3サイクル目にあっては、自己診断コントローラ44の制御によりデコーダ50は加算命令ADDを出力し、また制御信号E5によってマルチプレクサ64はディストネーションレジスタ34に保持した値Zを選択して出力し、同時にマルチプレクサ66はディストネーションレジスタ32に保持した値Z’を選択して出力する。
In the next third cycle, the
このため3回目について加減算器65は第1オペランドZと第2オペランドZ’を入力し、Z’’=Z+Z’の演算を実行し、演算結果Z’’をディストネーションレジスタ32に保持する。このような3サイクル目の演算結果40は自己診断コントローラ44のオールゼロ検出器48に与えられ、オールゼロの有無がチェックされる。
Therefore, for the third time, the adder / subtractor 65 inputs the first operand Z and the second operand Z ′, executes the calculation of Z ″ = Z + Z ′, and holds the calculation result Z ″ in the
このときの自己診断による最終的な演算結果Z’’は加減算器65が正常であれば、
Z’’=Z+Z’=(X−Y)+(Y−X)
=X+Y2’s+Y+X2’s
=(X+X2’s)+(Y+Y2’s)
=0+0
=0
となる。このためオールゼロ検出器48で演算結果40から全ビットのオールゼロを検出すると加減算器45は正常と判断し、一方、オールゼロでなかった場合には加減算器65の異常と判断し、エラー信号E4を外部に出力する。
If the final calculation result Z '' by the self-diagnosis at this time is normal, the adder / subtractor 65 is
Z ″ = Z + Z ′ = (X−Y) + (Y−X)
= X + Y2's + Y + X2's
= (X + X2's) + (Y + Y2's)
= 0 + 0
= 0
It becomes. For this reason, when the all-zero
この図8の第5実施形態にあっては、図6の第3実施形態と対比すると、第3実施形態が自己診断テストの動作を2サイクルで終了するのに対し3サイクルを必要とするため、その分、遅くなるが、試験対象10となる加減算器65の出力段に別の加減算器を必要とせず、その分、演算回路10−1の回路構成を簡単にできる利点がある。 In the fifth embodiment of FIG. 8, in contrast to the third embodiment of FIG. 6, the third embodiment requires three cycles, whereas the self-diagnosis test operation is completed in two cycles. However, there is an advantage that the circuit configuration of the arithmetic circuit 10-1 can be simplified correspondingly without requiring another adder / subtracter at the output stage of the adder / subtractor 65 to be tested 10.
図9は、本発明による自己診断機能付きプロセッサの第6実施形態の回路ブロック図である。この第6実施形態にあっては、自己診断テストの1サイクルで2つのテストデータの減算Z=X−Yとテストデータを入れ替えた減算Z’=Y−Xを同時に実行して、2つの減算結果の加算結果Z’’=Z+Z’を実行するようにしたことを特徴とする。 FIG. 9 is a circuit block diagram of a sixth embodiment of a processor with a self-diagnosis function according to the present invention. In the sixth embodiment, two subtractions Z = X−Y of two test data and subtraction Z ′ = Y−X in which the test data are exchanged are simultaneously executed in one cycle of the self-diagnosis test. The addition result Z ″ = Z + Z ′ is executed.
図9の第6実施形態において、試験対象10となるキャリー入力付きの2入力の加減算器12の入力側には汎用レジスタファイル14に続いて直接、第1ソースレジスタ24、第2ソースレジスタ26を設け、図3の第1実施形態におけるマルチプレクサ20,22は除いている。
In the sixth embodiment of FIG. 9, the first source register 24 and the second source register 26 are directly connected to the input side of the two-input adder /
試験対象10となる加減算器12の第1オペランドとしては第1ソースレジスタ24の値が入力され、第2オペランドとしては第2ソースレジスタ26の値またはインバータ30で反転した値のいずれかをマルチプレクサ28で選択している。加減算器12の出力にはディストネーションレジスタ32が設けられ、ディストネーションレジスタ32の値は次の加減算器36に入力されている。
The value of the first source register 24 is input as the first operand of the adder /
この第1ソースレジスタ24,26、インバータ30、マルチプレクサ28、加減算器12及びディストネーションレジスタ32の系統によって減算Z=X−Yを実行する。一方、この演算Zの演算系統と並列にインバータ70、マルチプレクサ68、加減算器72及びディストネーションレジスタ34が設けられている。
Subtraction Z = X−Y is executed by the system of the first source registers 24 and 26, the
マルチプレクサ68は第1ソースレジスタ24の値またはインバータ70で反転した値を選択して出力する。加減算器72は第2ソースレジスタ26の値を第1オペランド、マルチプレクサ68で選択した値を第2オペランド、更にキャリー入力Cinによる入力を受けて、Z’=Y−Xの減算を実行してディストネーションレジスタ74に格納する。
The multiplexer 68 selects and outputs the value of the first source register 24 or the value inverted by the
加減算器36はディストネーションレジスタ32と74のそれぞれに並列的な演算により格納された演算結果Z,Z’をオペランドとして入力し、Z’’=Z+Z’の加算を実行し、ディストネーションレジスタ38に格納する。
The adder /
一方、自己診断処理部10−2側はTAPコントローラ42とオールゼロ検出器48を備えた自己診断コントローラ44により構成されている。
On the other hand, the self-diagnosis processing unit 10-2 side is constituted by a self-diagnosis controller 44 having a
次に図9の第6実施形態の自己診断テストの動作を説明する。TAPコントローラ42がBIST START信号をアサートすると自己診断コントローラ44が動作し、自己診断テストを開始する。まず汎用レジスタファイル14に格納されている任意のテストデータX,Yをリードポートから読み出し、第1ソースレジスタ24及び第2ソースレジスタ26のそれぞれに保持する。
Next, the operation of the self-diagnosis test of the sixth embodiment in FIG. 9 will be described. When the
このときデコーダ50は自己診断コントローラ44の制御信号E1によって減算命令SUBを出力しており、このためマルチプレクサ68,28はインバータ70,30の出力を選択している。また加減算器12,72に対するキャリー入力CinはCin=1となっている。
At this time, the
したがって加減算器12には第1オペランドX、第2オペランドY1’s、キャリー入力Cin=1が入力し、Z=X+Y1’s+1の演算を実行し、ディストネーションレジスタ32に保持する。同時に加減算器72には第1オペランドY、第2オペランドX1’s及びキャリー入力Cin=1が入力し、Z’=Y+X1’s+1の演算を実行してディストネーションレジスタ74に保持する。
Therefore, the first operand X, the second operand Y1's, and the carry input Cin = 1 are input to the adder /
この結果、加減算器36はディストネーションレジスタ74の値Z’を第1オペランド、ディストネーションレジスタ732値Zを第2オペランドとする加算Z’’=Z’+Zを実行し、ディストネーションレジスタ38に加算結果Z’’を保持する。
As a result, the adder /
このため自己診断処理の第1サイクル目で得られた演算結果40が自己診断コントローラ44のオールゼロ検出器48に与えられる。ここで加減算器36からの演算結果40Z’’は、試験対象10となる加減算器12が正常であれば、
Z’’=Z+Z’
=(X−Y)+(Y−X)
=X+Y2’s+Y+X2’s
=(X+X2’s)+(Y+Y2’s)
=0+0
=0
となっている。
Therefore, the calculation result 40 obtained in the first cycle of the self-diagnosis process is given to the all-zero
Z ″ = Z + Z ′
= (X−Y) + (Y−X)
= X + Y2's + Y + X2's
= (X + X2's) + (Y + Y2's)
= 0 + 0
= 0
It has become.
このため自己診断コントローラ44のオールゼロ検出器48が演算結果40の全ビットゼロを検出すると、試験対象10の加減算器12は正常と判断し、一方、オールゼロでないことを判別すると加減算器12の異常と判断し、エラー実行E4を外部に出力する。
For this reason, when the all-zero
この図9の第6実施形態にあっては、2つのテストデータX,Yの減算とこれを入れ替えた減算を同時に行い、その減算結果を加算することで自己診断動作を1サイクルで終了することができ、より高速の自己診断処理が実行できる。 In the sixth embodiment of FIG. 9, the subtraction of the two test data X and Y and the subtraction obtained by exchanging the test data are performed simultaneously, and the self-diagnosis operation is completed in one cycle by adding the subtraction results. And higher-speed self-diagnosis processing can be executed.
図10は、本発明による自己診断処理機能を備えたプロセッサの第7実施形態の回路ブロック図である。この第7実施形態にあっては、図4の第2実施形態における2サイクルの自己診断テストの処理を1サイクルで終了させる高速化を図ったことを特徴とする。 FIG. 10 is a circuit block diagram of a seventh embodiment of a processor having a self-diagnosis processing function according to the present invention. The seventh embodiment is characterized in that the two-cycle self-diagnosis test process in the second embodiment of FIG. 4 is speeded up in one cycle.
図10において、第7実施形態の演算回路部10−1にあっては、汎用レジスタファイル14に続いて直接、第1ソースレジスタ24と第2ソースレジスタ26が設けられ、図5の第2実施形態のマルチプレクサ20,22は除かれている。第1及び第2ソースレジスタ24,26、インバータ30、マルチプレクサ28、試験対象10としてのキャリー入力付きの加減算器12及びディストネーションレジスタ32によって、Z=X−Yの演算系統を構成している。
In FIG. 10, in the arithmetic circuit unit 10-1 of the seventh embodiment, a first source register 24 and a second source register 26 are provided directly after the general-
一方、第1及び第2ソースレジスタ24,26、インバータ70、マルチプレクサ68、キャリー入力Cin付きの加減算器72及びディストネーションレジスタ74によって、テストデータX,Yを入れ替えたZ’=Y−Xの演算系統を構成している。この点は図9の第6実施形態と同じであることが分かる。
On the other hand, the first and second source registers 24 and 26, the
この第7実施形態にあっては、図5の第2実施形態に対応していることから、減算結果Z,Z’の2系統の演算結果に続いて比較器54を設けている。比較器54の一方にはディストネーションレジスタ32の減算結果Zが入力される。また比較器54の他方の入力にはディストネーションレジスタ74に保持した減算結果Z’をインバータ56で反転して1の補数Z’1’sを求め、次に+1インクリメント回路58で1を加えた2の補数Z’2’sに変換して入力している。
Since the seventh embodiment corresponds to the second embodiment of FIG. 5, the comparator 54 is provided following the two systems of subtraction results Z and Z ′. The subtraction result Z of the
このため比較器54は減算結果Zと減算結果Z’の2の補数Z’2’sを比較し、比較結果40−1を自己診断コントローラ44−1のエラー検出器60に入力している。比較器54における演算結果Zと演算結果Z’の2の補数Z’2’sが一致していれば試験対象10となる加減算器12は正常であり、不一致であれば加減算器12は異常であり、これをエラー検出器60で検出して加減算器12の異常を示すエラー信号E4を外部に出力することになる。
For this reason, the comparator 54 compares the subtraction result Z and the two's complement Z'2's of the subtraction result Z ', and inputs the comparison result 40-1 to the error detector 60 of the self-diagnosis controller 44-1. If the calculation result Z in the comparator 54 and the two's complement Z′2 ′s of the calculation result Z ′ match, the adder /
また自己診断処理部10−2はTAPコントローラ42と自己診断コントローラ44−1を備え、図5の第1実施形態と異なる点は第1及び第2ソースレジスタ24,26側のマルチプレクサ20,22に対する制御信号がない点である。
The self-diagnosis processing unit 10-2 includes a
次に図10の第7実施形態における自己診断テストの動作を説明する。TAPコントローラ42がBIST START信号をアサートすると、自己診断コントローラ44−1が起動して演算回路10−1の自己診断テストが開始される。まず汎用レジスタファイル14より任意のテストデータX,Yをリードポートから読み出し、第1ソースレジスタ24にテストデータXを、また第2ソースレジスタ26にテストデータYを保持する。
Next, the operation of the self-diagnosis test in the seventh embodiment of FIG. 10 will be described. When the
このときデコーダ50は自己診断コントローラ44−1の制御信号E1によってオペコード52を解読して減算命令SUBを出力している。これによってマルチプレクサ68,28はインバータ70,30の出力を選択している。
At this time, the
このとき試験対象10としての加減算器12を見ると、第1オペランドX、第2オペランドY2’s及びキャリー入力Cin=1を入力しており、Z=X+Y1’s及びキャリー入力Cin=1を入力し、Z=X+Y1’s+1の減算を実行し、減算結果Zをディストネーションレジスタ32に保持する。
At this time, when looking at the adder /
同時に加減算器72は第1オペランドY,第2オペランドX1’s及びキャリー入力Cin=1を入力し、Z’=Y+X1’s+1の演算を実行し、演算結果をディストネーションレジスタ74に保持する。
At the same time, the adder / subtracter 72 receives the first operand Y, the second operand X1's and the carry input Cin = 1, executes the operation of Z '= Y + X1's + 1, and holds the operation result in the
更に比較器54はディストネーションレジスタ32に保持した演算結果Zを入力し、またディストネーションレジスタ34に保持した演算結果Z’をインバータ56で反転して1の補数Z’1’sとした後、+1インクリメント回路58で1を加えることで2の補数Z’2’sに変換して入力し、両者を比較している。
Further, the comparator 54 inputs the operation result Z held in the
このとき試験対象10の加減算器12が正常であれば比較器54に入力しているZとZ’2’sは一致し、この比較一致を自己診断コントローラのエラー検出器60で検出し、加減算器12が正常であることを認識する。一方、比較器54でZとZ’2’sが不一致であった場合には、エラー検出器60は試験対象10の加減算器12の異常と判断し、外部にエラー信号E4出力する。
At this time, if the adder /
この図10の第7実施形態にあっては、図5の第2実施形態と比較すると、比較処理に必要な減算Z=X−Yと減算Z’=Y−Xの2の補数Z’2’sが自己診断テストの1サイクルで演算されて比較結果を得ることができ、より高速の自己診断動作を行うことができる。 In the seventh embodiment of FIG. 10, as compared with the second embodiment of FIG. 5, the two's complement Z′2 of the subtraction Z = X−Y and the subtraction Z ′ = Y−X necessary for the comparison processing is provided. The comparison result can be obtained by calculating 's in one cycle of the self-diagnosis test, and a higher-speed self-diagnosis operation can be performed.
図11は、本発明による自己診断機能付きのプロセッサの第8実施形態の回路ブロック図である。この第8実施形態は、図6の第3実施形態における試験対象10のキャリー入力Cinを持たない加減算器65について、図9の第6実施形態と同様、テストデータX,Yの減算とこれを入れ替えた減算を並列的に行って1サイクルで動作を終了するようにしたことを特徴とする。
FIG. 11 is a circuit block diagram of an eighth embodiment of a processor with a self-diagnosis function according to the present invention. In the eighth embodiment, with respect to the adder / subtracter 65 having no carry input Cin of the
図11において、演算回路部10−1は汎用レジスタファイル14に続いて直接、第1ソースレジスタ24と第2ソースレジスタ26を設けている。第1ソースレジスタ24及び第2ソースレジスタ26、インバータ30、+1インクリメント回路61、マルチプレクサ28、試験対象10の加減算器65及びディストネーションレジスタ32によって、減算Z=X−Yの演算系統を構成している。
In FIG. 11, the arithmetic circuit unit 10-1 is provided with a first source register 24 and a second source register 26 directly after the general-
また第1及び第2ソースレジスタ24,26、インバータ76、+1インクリメント回路78、マルチプレクサ68、加減算器72及びディストネーションレジスタ74によって、テストデータX,Yを入れ替えた減算Z’=Y−Xの演算系統を構成している。
Further, the subtraction Z ′ = Y−X in which the test data X and Y are exchanged by the first and second source registers 24 and 26, the inverter 76, the +1
この並列的に行われるディストネーションレジスタ32,74に保持される減算結果Z,Z’は加減算器36に入力され、Z’’=Z+Z’の加算が行われてディストネーションレジスタ38に保持され、演算結果40として自己診断コントローラ44のオールゼロ検出器48に出力される。もちろん自己診断処理部10−2側には、TAPコントローラ42が自己診断コントローラ44と共に設けられている。
The subtraction results Z and Z ′ held in the destination registers 32 and 74 performed in parallel are input to the adder /
次に図11の実施形態における自己診断テストの動作を説明する。TAPコントローラ42がBIST START信号をアサートすると、自己診断コントローラ44が起動し、まず汎用レジスタファイル14より任意のテストデータX,Yをリードポートから読み出して第1ソースレジスタ24と第2ソースレジスタ26のそれぞれに保持する。このときデコーダ54は自己診断コントローラ44の制御信号E1によって減算命令SUBを出力している。
Next, the operation of the self-diagnosis test in the embodiment of FIG. 11 will be described. When the
これによってマルチプレクサ68,61は+1インクリメント回路78,61の出力を選択している。まず加減算器12側の動作を見ると、加減算器12には第1ソースレジスタ24の第1オペランドXと第1ソースレジスタ26のテストデータYをインバータ30で反転して1の補数Y1’sに変換した後、+1インクリメント回路61で1を加えることで2の補数Y2’sに変換した第2オペランドが入力される。
As a result, the multiplexers 68 and 61 select the outputs of the +1
このため加減算器12はZ=X+Y2‘s=X+Y1’s+1=X−Yの演算を実行し、演算結果Zをディストネーションレジスタ32に保持する。同時に加減算器72は、第2ソースレジスタ26のオペランドYと第1ソースレジスタ24の入力データYをインバータ76で反転して1の補数Y1’sに変換した後、+1インクリメント回路78で1を加5て2の補数X2’sに変換した第2オペランドを入力し、Z’=Y+X2’s=Y+X1’s+1=Y−Xの演算を実行し、演算結果Z’をディストネーションレジスタ74に保持する。
For this reason, the adder /
このため加減算器36は、ディストネーションレジスタ74の第1オペランドZ’とディストネーションレジスタ32の第2オペランドZを入力してZ’’=Z’+Zの加算を実行し、演算結果、Z’’をディストネーションレジスタ38に保持し、演算結果40として自己診断コントローラ44のオールゼロ検出器48に出力する。
Therefore, the adder /
このような演算結果40としてのZ’’は、試験対象10の加減算器12が正常である場合は
Z’’=Z+Z’=(X−Y)+(Y−X)
=X+Y2’s+Y+X2’s
=(X+X2’s)+(Y+Y2’s)
=0+0
=0 (11)
となる。このため自己診断コントローラ44のオールゼロ検出器48は、演算結果40のZ’’がオールゼロであれば加減算器12は正常と判断し、オールゼロでなければ加減算器12の異常と判断してエラー信号E4を外部に出力する。
Z ″ as the calculation result 40 is Z ″ = Z + Z ′ = (X−Y) + (Y−X) when the adder /
= X + Y2's + Y + X2's
= (X + X2's) + (Y + Y2's)
= 0 + 0
= 0 (11)
It becomes. Therefore, the all-zero
図12は、本発明による自己診断機能を備えたプロセッサの第9実施形態の回路ブロック図である。この第9実施形態にあっては、図9の第6実施形態における加減算器36を省略し、この加算を試験対象10の加減算器12で行うようにしたことを特徴とする。
FIG. 12 is a circuit block diagram of a ninth embodiment of a processor having a self-diagnosis function according to the present invention. The ninth embodiment is characterized in that the adder /
即ち図9の第6実施形態にあっては、第1サイクルで全ての演算を終了するが、図12の第9実施形態にあっては2サイクルを必要とし、その分、第6実施形態の加減算器36を不要として回路構成を簡単にしている。
That is, in the sixth embodiment shown in FIG. 9, all calculations are completed in the first cycle, but in the ninth embodiment shown in FIG. 12, two cycles are required. The circuit configuration is simplified by eliminating the adder /
図12において、演算回路10−1でレジスタファイル14から読み出した任意の2つのテストデータX,Yについての減算Z=X−Yは、第1ソースレジスタ24、第2ソースレジスタ26、インバータ30、マルチプレクサ28、試験対象10としての加減算器12及びディストネーションレジスタ32の系統で行われる。この系統には加減算器12の入力段に新たにマルチプレクサ80,82を設けている。
In FIG. 12, the subtraction Z = X−Y for any two test data X and Y read from the
また汎用レジスタファイル14から読み出した任意のテストデータX,Yを入れ替えた減算Z’=Y−Xは第1ソースレジスタ24,第2ソースレジスタ26、インバータ70、マルチプレクサ68、加減算器72及びディストネーションレジスタ34の系統で演算が実行される。
Further, subtraction Z ′ = Y−X in which arbitrary test data X and Y read out from the general-
マルチプレクサ80,82はデコーダ50からの加算命令ADDと減算命令SUBにより切り替エラーれる。減算命令SUBの出力時にはマルチプレクサ68,28の出力を選択している。一方、加算命令ADDの際にはディストネーションレジスタ74,32の値を選択して出力する。自己診断処理部10−2側はTAPコントローラ42及びオールゼロ検出器48を備えた自己診断コントローラ44で構成される。
The multiplexers 80 and 82 are switched by the addition instruction ADD and the subtraction instruction SUB from the
次に図12の第9実施形態の自己診断テストの動作を説明する。TAPコントローラ42がBIST START信号をアサートすると、自己診断コントローラ44が自己診断テストを開始する。まず汎用レジスタファイル14から任意のテストデータX,Yを読み出し、第1ソースレジスタ24に第1オペランドXとして保持し、第2ソースレジスタ26に第2オペランドYとして保持する。
Next, the operation of the self-diagnosis test of the ninth embodiment in FIG. 12 will be described. When the
このときデコーダ50は自己診断コントローラ44からの制御信号E1によってオペコード52を解読して減算命令SUBを出力している。このためマルチプレクサ68,28はインバータ70,30の出力をそれぞれ選択している。またマルチプレクサ80,82の第1ソースレジスタ24の出力とマルチプレクサ28の出力を選択している。
At this time, the
これによって試験対象11となる加減算器12には第1オペランドX、第2オペランドとしてテストデータYをインバータ30で反転した1の補数Y1’s、更にキャリー入力Cin=1が入力している。これによって加減算器12はZ=X+Y1’s+1の演算を実行し、演算結果Zをディストネーションレジスタ32に保持する。
As a result, the adder /
同時に加減算器72は、第1オペランドX、第2オペランドとして第1ソースレジスタ24のテストデータXをインバータ70で反転して得た1の補数X1’s、更にキャリー入力Cin=1を入力している。このため加減算器72はZ’=Y+X1’s+1の演算を実行し、演算結果をディストネーションレジスタ74に保持する。
At the same time, the adder / subtracter 72 receives the 1's complement X1's obtained by inverting the test data X of the first source register 24 by the
次の第2サイクル目にあっては、自己診断コントローラ44は制御信号E1によりデコーダ50を制御して加算命令ADDを出力し、制御信号E3により加減算器12の加算動作を指示する。このデコーダ50からの加算命令ADDにより、マルチプレクサ80はディストネーションレジスタ34の出力を選択し、またマルチプレクサ82はディストネーションレジスタ32の出力を選択する。
In the next second cycle, the self-diagnosis controller 44 controls the
このため加減算器12は、第1オペランドZ’、第2オペランドZ、キャリー入力Cin=0を入力し、Z’’=Z’+Zの演算を実行し、ディストネーションレジスタ32に保持する。このディストネーションレジスタ32の値Z’’は演算結果40として自己診断コントローラ44のオールゼロ検出器48に与えられる。
Therefore, the adder /
ここで試験対象10としての加減算器12が正常な場合は
Z’’=Z+Z’=(X−Y)+(Y−X)
=X+Y2’s+Y+X2’s
=(X+X2’s)+(Y+Y2’s)
=0+0
=0 (11)
となる。
Here, when the adder /
= X + Y2's + Y + X2's
= (X + X2's) + (Y + Y2's)
= 0 + 0
= 0 (11)
It becomes.
このため自己診断コントローラ44のオールゼロ検出器48は演算結果40の全ビットがオールゼロであれば加減算器12は正常と判断し、一方、オールゼロでなければ加減算器12の異常と判断し、外部にエラー信号E4を外部に出力する。
For this reason, the all-zero
図13は、本発明による自己診断機能付きのプロセッサの第10実施形態の回路ブロック図である。この第10実施形態にあっては、図11の第8実施形態の出力に設けた加減算器36を省略し、試験対象10の加減算器12により加算処理を行うようにしたことを特徴とし、図11の加減算器36を設けていない分、回路構成を簡単にすることができる。
FIG. 13 is a circuit block diagram of a tenth embodiment of a processor with a self-diagnosis function according to the present invention. In the tenth embodiment, the adder /
図13の第10実施形態において、演算回路10−1は図11の第8実施形態の試験対象10の加減算器12の前段に新たにマルチプレクサ80,82を設けており、このマルチプレクサ80,82によってディストネーションレジスタ34,38の出力を選択して加減算器12に入力できるようにしたことを特徴とし、それ以外の構成は図8の実施形態と同じである。
In the tenth embodiment shown in FIG. 13, the arithmetic circuit 10-1 newly provides multiplexers 80 and 82 before the adder /
この図13の第10実施形態の自己診断処理の動作を説明すると次のようになる。TAPコントローラ42がBIST START信号をアサートすると、自己診断コントローラ44が動作し、自己診断テストが開始される。まず汎用レジスタファイル14から任意のテストデータX,Yを読み出し、第1,第2ソースレジスタ24,26のそれぞれに保持する。
The operation of the self-diagnosis process of the tenth embodiment of FIG. 13 will be described as follows. When the
このときデコーダ50は減算命令SUBを出力しており、マルチプレクサ68,28は+1インクリメント回路78,61の出力を選択している。またマルチプレクサ80,82は制御信号E6により第1ソースレジスタ24及びマルチプレクサ28の出力を選択している。
At this time, the
このため試験対象10の加減算器12には、第1オペランドXと第2オペランドとしてインバータ30で反転することで1の補数Y1’sに変換した後、+1インクリメント回路61で1を加えて2の補数Y2’sに変換した値が入力される。これによって加減算器12はZ=X+Y2’sの演算を実行し、ディストネーションレジスタ38に保持する。
For this reason, the adder /
同時に加減算器72には第1オペランドYとテストデータXをインバータ76で反転した1の補数X1’sに+1インクリメント回路78で1を加えた2の補数X2’sを入力している。これによって加減算器72はZ’=Y+X2’sの演算を実行し、演算結果Z’をディストネーションレジスタ74に保持する。
At the same time, the 2nd complement X2's obtained by adding 1 by the +1
次の第2サイクル目にあっては、自己診断コントローラ44はデコーダ50の制御で加算命令ADDを出力させ、また制御信号E6によってマルチプレクサ80,82をディストネーションレジスタ38,74の選択状態に切り替える。このため加減算器12は、マルチプレクサ80から第1オペランドZ’を入力すると同時にマルチプレクサ82より第2オペランドZを入力し、これによって減算Z’’=Z’+Zを実行し、演算結果Z’’をディストネーションレジスタ38に保持し、演算結果40として自己診断コントローラ44のオールゼロ検出器48に出力する。
In the next second cycle, the self-diagnosis controller 44 outputs the addition instruction ADD under the control of the
ここで最終的な演算結果40としてのZ’’は、加減算器12が正常であれば、
Z’’=Z+Z’=(X−Y)+(Y−X)
=X+Y2’s+Y+X2’s
=(X+X2’s)+(Y+Y2’s)
=0+0
=0 (11)
となる。
Here, Z ″ as the final calculation result 40 is, if the adder /
Z ″ = Z + Z ′ = (X−Y) + (Y−X)
= X + Y2's + Y + X2's
= (X + X2's) + (Y + Y2's)
= 0 + 0
= 0 (11)
It becomes.
このため自己診断コントローラ44のオールゼロ検出器48はオールゼロを検出すれば試験対象10としての加減算器12が正常であると判断し、一方、オールゼロでなければ加減算器12の異常と判断し、外部にエラー信号E4を出力する。
For this reason, the all-zero
図14は、本発明による自己診断機能を備えたプロセッサの第11実施形態を示した回路ブロック図である。この第11実施形態にあっては、自己診断テストのためのテストデータとしてリニアフィードバックシフトレジスタ(LFSR)を使用して疑似乱数発生を行うようにしたことを特徴とする。 FIG. 14 is a circuit block diagram showing an eleventh embodiment of a processor having a self-diagnosis function according to the present invention. The eleventh embodiment is characterized in that pseudorandom numbers are generated using a linear feedback shift register (LFSR) as test data for a self-diagnosis test.
図14の第11実施形態は、図3の第1実施形態に対し疑似乱数発生用のリニアフィードバックシフトレジスタ84,86を追加した構成としている。このリニアフィードバックシフトレジスタ84,86を加えたことに伴い、第1ソースレジスタ24と第2ソースレジスタ26の入力段に3入力のマルチプレクサ88,90を設け、レジスタファイル14、ソースレジスタ24,26またはリニアフィードバックシフトレジスタ84,86のいずれかを選択できるようにしている。それ以外の演算回路10−1及び自己診断処理部10−2の構成は図3の第1実施形態と同じである。
The eleventh embodiment shown in FIG. 14 has a configuration in which linear feedback shift registers 84 and 86 for generating pseudo-random numbers are added to the first embodiment shown in FIG. With the addition of the linear feedback shift registers 84 and 86, three-
図15は図14に使用している疑似乱数発生用のリニアフィードバックシフトレジスタの回路構成の一例である。リニアフィードバックシフトレジスタ84は、例えば32ビット幅のシフトレジスタ92とEX−OR回路94で構成される。EX−OR回路94はシフトレジスタ92におけるB0〜B31の32ビットの内の任意の位置の2つのビット、例えば第19ビットB18と第26ビットB25を入力して、その排他論理和をとって例えば最上位ビットB31(最下位ビットB0に入力してもよい)にシフト入力する構成をとる。
FIG. 15 shows an example of the circuit configuration of the linear feedback shift register for generating pseudo-random numbers used in FIG. The linear
シフトレジスタ92には、例えば図14にあっては汎用レジスタファイル14から読み出した任意のテストデータXが初期値としてロードされ、ロード後にシフトクロックを供給することでEX−OR94の出力をシフト入力しながら32ビットシフトデータとしてテストデータを疑似乱数データとして出力して自己診断テストを実行することになる。
In FIG. 14, for example, arbitrary test data X read from the general-
次に図14の第1実施形態について自己診断テストの動作を説明する。TAPコントローラ42がBIST START信号をアサートすると、自己診断コントローラ44が起動し、演算回路10−1の自己診断テストの動作を開始する。まず汎用レジスタファイル14より任意のテストデータX,Yが読み出され、マルチプレクサ88,90で選択され、第1ソースレジスタ24及び第2ソースレジスタ26を介してリニアフィードバックシフトレジスタ84,86のシフトレジスタに初期データとしてセットされる。
Next, the operation of the self-diagnosis test will be described for the first embodiment of FIG. When the
このようにしてリニアフィードバックシフトレジスタ84,86に対する初期データのセットで準備が整うと、自己診断コントローラ44は制御信号E2によりマルチプレクサ88,90をリニアフィードバックシフトレジスタ84,86の出力の選択状態とし、リニアフィードバックシフトレジスタ84,86からシフトクロックに同期して出力される疑似乱数のテストデータを使用した自己診断動作を開始する。この自己診断動作は図3の第1実施形態と同じである。
When the initial data set for the linear feedback shift registers 84 and 86 is ready in this way, the self-diagnosis controller 44 sets the
図16は、本発明による自己診断機能を備えたプロセッサの第12実施形態の回路ブロック図である。この第12実施形態にあっては、図5の2つの減算結果を比較する第2実施形態について、図15の第11実施形態と同様、疑似乱数データを発生するリニアフィードバックシフトレジスタ84,86を設け、マルチプレクサ88,90により疑似乱数データを発生しながら自己診断テストを繰り返し行うようにしたことを特徴とする。これ以外の点は図5の第2実施形態と同じである。
FIG. 16 is a circuit block diagram of a twelfth embodiment of a processor having a self-diagnosis function according to the present invention. In the twelfth embodiment, linear feedback shift registers 84 and 86 for generating pseudo-random data are provided in the second embodiment for comparing the two subtraction results in FIG. 5 as in the eleventh embodiment in FIG. And the self-diagnosis test is repeatedly performed while generating pseudo-random number data by the
図17は、本発明による自己診断機能を備えたプロセッサの第13実施形態の回路ブロック図である。この第13実施形態は、図7の第4実施形態について疑似乱数データを発生するリニアフィードバックシフトレジスタ84,86と、その選択出力を行うマルチプレクサ88,90を設けたことを特徴とし、それ以外の点は図7の第4実施形態と同じである。
FIG. 17 is a circuit block diagram of a thirteenth embodiment of a processor having a self-diagnosis function according to the present invention. The thirteenth embodiment is characterized in that linear feedback shift registers 84 and 86 that generate pseudorandom data and
図18は、本発明による自己診断機能を備えたプロセッサの第14実施形態の回路ブロック図である。この第14実施形態は図9の第6実施形態について、疑似乱数発生用のリニアフィードバックシフトレジスタ84,86と、その出力を選択するマルチプレクサ88,90を設けたことを特徴とし、それ以外の点は図9の第6実施形態と同じである。
FIG. 18 is a circuit block diagram of a fourteenth embodiment of a processor having a self-diagnosis function according to the present invention. This 14th embodiment is characterized in that, in the sixth embodiment of FIG. 9, linear feedback shift registers 84 and 86 for generating pseudo-random numbers and
図19は、本発明による自己診断機能を備えたプロセッサの第15実施形態の回路ブロック図である。この第15実施形態にあっては、図8の第5実施形態について疑似乱数発生用のリニアフィードバックシフトレジスタ84,86と、その出力を選択するマルチプレクサ88,90を設けたことを特徴とし、それ以外の構成及び動作は図8の第5実施形態と同じである。
FIG. 19 is a circuit block diagram of a fifteenth embodiment of a processor having a self-diagnosis function according to the present invention. The fifteenth embodiment is characterized in that the fifth embodiment of FIG. 8 is provided with linear feedback shift registers 84 and 86 for generating pseudo-random numbers and
図20は、本発明による自己診断機能を備えたプロセッサの第16実施形態の回路ブロック図である。この第16実施形態にあっては、単一のリニアフィードバックシフトレジスタから疑似乱数としてテストデータXを発生し、1つのテストデータXについて反転することで1の補数X1’sを求め、減算Z=X−Yの演算を、その補数X2’sの生成で行い、減算結果Zがオールゼロであれば試験対象10の加減算器12は正常、オールゼロでなければ加減算器12の異常を判断する。
FIG. 20 is a circuit block diagram of a sixteenth embodiment of a processor having a self-diagnosis function according to the present invention. In the sixteenth embodiment, test data X is generated as a pseudorandom number from a single linear feedback shift register, and one test data X is inverted to obtain one's complement X1's, and subtraction Z = The calculation of XY is performed by generating the complement X2's. If the subtraction result Z is all zero, the adder /
そこで、まず演算回路10−1を説明すると、レジスタファイル14に続いてマルチプレクサ20,22、第1ソースレジスタ24及び第2ソースレジスタ26を設け、更に疑似乱数発生用のリニアフィードバックシフトレジスタ84を設けている。
First, the arithmetic circuit 10-1 will be described. The
マルチプレクサ20は汎用レジスタファイル14からの第1オペランドとしてのソースデータ16またはリニアフィードバックシフトレジスタ84からのテストデータのいずれかを選択して出力する。マルチプレクサ22は汎用レジスタファイル14からの第2オペランドのソースデータ18かまたはリニアフィードバックシフトレジスタ84のテストデータをインバータ96で反転して1の補数に変換した出力を選択して出力する。
The
ここでリニアフィードバックシフトレジスタ84から出力されるテストデータをXとすると、自己診断テストの際には第1ソースレジスタ24にはテストデータXが保持され、同時に第2ソースレジスタ26にはインバータ96で反転して1の補数X1’sに変換した値が保持される。
Here, assuming that the test data output from the linear
第1ソースレジスタ24と第2ソースレジスタ26に続いては、キャリー入力Cin付きの2入力の加減算器12が試験対象10として設けられている。加減算器12は第1オペランドAと第2オペランドB、更にキャリー入力Cinを入力し、デコーダ50が加算命令ADDを出力している場合にはC=A+B+0=A+Bの演算を実行し、また減算命令SUBが出力されている場合にはC’=A+B+1=A+B1’sの演算を実行する。
Following the first source register 24 and the second source register 26, a two-input adder /
このとき第2ソースレジスタ26から第2オペランドとして1の補数B1’sが入力されている場合には、C’=A+B1’s+1=A+B2’s=A−Bの演算を実行することになる。 At this time, when 1's complement B1's is input from the second source register 26 as the second operand, the operation of C '= A + B1's + 1 = A + B2's = AB is executed.
この加減算器12の演算結果はディストネーションレジスタ32に保持され、通常の演算処理にあってはデータフォワ−ドパス35により最終的に汎用レジスタファイル14に書き込まれて反映される。これに対し本発明による自己診断テストの際には、演算結果40として自己診断コントローラ44のオールゼロ検出器48に出力される。
The calculation result of the adder /
次に図20の第16実施形態における自己診断テストの動作を説明する。TAPコントローラ42がBIST START信号をアサートすると、自己診断コントローラ44が動作し、汎用レジスタファイル14から任意のテストデータX,Yを読み出し、この内、第1ソースデータ16としての入力データXがマルチプレクサ20、第1ソースレジスタ24を介してリニアフィードバックシフトレジスタ84に初期値としてセットされる。
Next, the operation of the self-diagnosis test in the sixteenth embodiment of FIG. 20 will be described. When the
それ以降は処理サイクルごとに疑似乱数のテストデータとして発生され、マルチプレクサ20,22により選択されて第1ソースレジスタ24に第1オペランドXとして保持され、一方、第2ソースレジスタ26にはインバータ96で反転された第2オペランドX1’sとして保持される。
Thereafter, pseudo random number test data is generated for each processing cycle, selected by the
加減算器12は、デコーダ50が自己診断コントローラ44の制御により加算命令SUBを出力していることから、第1オペランドX、第2オペランドX1’s及びキャリー入力Cin=1を入力し、
Z=X+X1’s+1=X+X2’s=X−X
の演算を実行し、演算結果Zをディストネーションレジスタ32に保持する。
The adder /
Z = X + X1 ′s + 1 = X + X2 ′s = X−X
The operation result Z is executed, and the operation result Z is held in the
ディストネーションレジスタ32に保持した値は演算結果40として自己診断コントローラのオールゼロ検出器48に出力され、全ビットがオール0であれば加減算器12は正常に動作したものと判断し、オールゼロでなければ加減算器12に異常があることからエラー実行E4を外部に出力する。
The value held in the
この第16実施形態にあっては、試験対象10となる加減算器12を使用した1回目の減算で正常に動作している場合にはオール0となる演算結果を得ているため、図3乃至図19の実施形態に比べ演算回路10−1の回路構成が大幅に簡略化できる。また演算回路10−1の構成が簡単となることに加え、演算処理のサイクルも短いことから、より高速の処理ができる。
In the sixteenth embodiment, when the first subtraction using the adder /
なお、図20の第16実施形態にあっては、1回の自己診断テストで試験対象11となる加減算器12の演算は1回しか行っておらず、図3〜図19の実施形態における試験対象10となる加減算器12の演算動作が2回行われている場合に比べ、自己診断テストの評価の信頼性はその分、低くなる。これを解消するためには自己診断の演算繰返し数を2倍とすれば、図3乃至図19の実施形態と同等な自己診断テストの評価結果を得ることができる。
In the sixteenth embodiment of FIG. 20, the calculation of the adder /
図21は、本発明による自己診断機能を備えたプロセッサの第17実施形態の回路ブロック図である。この第17実施形態にあっては、基本的には図20の第16実施形態と同じ演算回路10−1の構成を簡略化したものであり、試験対象10としてキャリー入力のない加減算器65を対象とした点が相違している。
FIG. 21 is a circuit block diagram of a seventeenth embodiment of a processor having a self-diagnosis function according to the present invention. In the seventeenth embodiment, the configuration of the same arithmetic circuit 10-1 as that in the sixteenth embodiment in FIG. 20 is basically simplified, and an adder / subtracter 65 having no carry input is used as the
この試験対象11としてキャリー入力Cinを持たない加減算器65を使用したことで、第2ソースレジスタ26側のマルチプレクサ22に対するリニアフィードバックシフトレジスタ84の出力ラインに、テストデータXを反転して1の補数X1’sを設けるインバータ96に続いて+1インクリメント回路98を設け、1の補数X1’sに1を加えることで2の補数X2’sに変換するようにしている。それ以外の構成は図20の第6実施形態と同じである。この第17実施形態の動作は次のようになる。
By using the adder / subtractor 65 not having the carry input Cin as the
TAPコントローラ42がBIST START信号をアサートすると、自己診断コントローラ44が動作し、汎用レジスタファイル14から読み出した第1ソースデータ16をマルチプレクサ20、第1ソースレジスタ24を介してリニアフィードバックシフトレジスタ84にセットし、それ以降はリニアフィードバックシフトレジスタ84からの疑似乱数をテストデータとして自己診断動作が行われる。
When the
即ち自己診断動作の際には、制御実行E2によってマルチプレクサ20,22はリニアフィードバックシフトレジスタ84側の出力を選択した状態にある。このときリニアフィードバックシフトレジスタ84がテストデータXを出力していたとすると、第1ソースレジスタ24にはテストデータXが第1オペランドとして保持され、一方、第2ソースレジスタ26にはテストデータXをインバータ96で反転して1の補数X1’sに変換した後、+1インクリメント回路98で1を加えて2の補数X2’sに変換した値が保持される。
That is, during the self-diagnosis operation, the
これによって試験対象10としての加減算器65は第1オペランドXと第2オペランドY2’sを入力し、
Z=X+X2’s=X+X1’s+1=X−X
の演算を実行し、ディストネーションレジスタ32に保持する。
As a result, the adder / subtracter 65 as the
Z = X + X2 ′s = X + X1 ′s + 1 = X−X
The above calculation is executed and held in the
このディストネーションレジスタ32に保持された値Zは演算結果40として自己診断コントローラ44のオールゼロ検出器48に入力される。オールゼロ検出器48は演算結果40の値Zが全ビット0であれば試験対象10としての加減算器65は正常と判断する。一方、演算結果40としての値Zが全ビット0でなければ試験対象10としての加減算器65は異常と判断し、エラー信号E4を外部に出力する。
The value Z held in the
尚、上記の実施形態にあっては、自己診断テストにおける演算結果がオールゼロとなるように演算回路を構成し且つ自己診断処理を行うようにした実施形態を例にとるものであったが、同様に期待値を使用しなくとも演算結果の検査が容易なオール1が得られるように演算回路及び自己診断処理部を構成するようにしても良い。 In the above embodiment, the arithmetic circuit is configured such that the calculation result in the self-diagnosis test is all zero, and the self-diagnosis process is performed as an example. In addition, the arithmetic circuit and the self-diagnosis processing unit may be configured so that all 1 that allows easy inspection of the operation result can be obtained without using the expected value.
この演算結果としてオール1が得られるようにする構成は、上記の各実施形態の負論理の構成をとった場合である。また本発明は上記の実施形態に限定されず、その目的と利点を損なわない適宜の変形を含む。更に本発明は上記の実施形態に示した数値による限定は受けない。 The configuration in which all 1 is obtained as a result of this calculation is the case where the negative logic configuration of each of the above embodiments is employed. Moreover, this invention is not limited to said embodiment, The appropriate deformation | transformation which does not impair the objective and advantage is included. Further, the present invention is not limited by the numerical values shown in the above embodiments.
以上、本発明の実施形態を説明したが、本発明の実施の形態は、以下に記載する発明を同様に開示している。 Although the embodiment of the present invention has been described above, the embodiment of the present invention similarly discloses the invention described below.
自己診断機能を備えたプロセッサに於いて、
演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
第1又は第2オペランドのいずれか一方を初期値として入力した後の演算周期毎の乱数発生処理により新たなオペランドを発生して第1ソースレジスタに格納する擬似乱数発生器と、
前記乱数発生器が出力する例えばオペランドBを反転して1を加算するで2の補数B2’sを生成して前記第2ソースレジスタに格納する補数回路と、
減算(A−B)を実行する場合に、前記補正回路で生成した2の補数B2’sを第1オペランドAに加算するキャリー入力なしの診断対象となる2入力の加減算器と、
を備え、
自己診断処理部は、擬似乱数発生器から第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,及び補数回路で生成したXの2の補数X2’sを前記加減算器に入力して減算Z=(X−X)をZ=(X+X2’s)=(X+X1’s+1)として実行し、減算結果Zが全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断する。
In a processor with a self-diagnosis function,
The arithmetic circuit
A first source register storing a first operand A;
A second source register storing a second operand B;
A pseudo-random number generator that generates a new operand and stores it in the first source register by a random number generation process for each operation period after inputting one of the first and second operands as an initial value;
A complement circuit for generating, for example, 2's complement B2's by inverting operand B output from the random number generator and adding 1 to the second source register;
A two-input adder / subtracter to be diagnosed without a carry input that adds the two's complement B2 ′s generated by the correction circuit to the first operand A when performing subtraction (A−B);
With
The self-diagnosis processing unit adds or subtracts the arbitrary self-diagnosis data X having a predetermined bit length stored in the first and second source registers from the pseudo random number generator and the two's complement X2 ′s of X generated by the complement circuit. Subtraction Z = (X−X) is executed as Z = (X + X2 ′s) = (X + X1 ′s + 1), and when the subtraction result Z is all 0 bits, it is determined to be normal, and all bits are not 0 In the case of, it is judged as abnormal.
(付記)
(付記1)
診断対象とする加減算器を備えた演算回路と、
自己診断用データを格納するデータ格納部と、
前記自己診断用データを入力して前記演算回路により演算結果がオール0又はオ
−ル1となるように診断処理を実行させる自己診断処理部と、
を備えたことを特徴とするプロセッサ。(1)
(Appendix)
(Appendix 1)
An arithmetic circuit including an adder / subtracter to be diagnosed;
A data storage unit for storing self-diagnosis data;
A self-diagnosis processing unit that inputs the self-diagnosis data and causes the arithmetic circuit to execute a diagnostic process so that a calculation result is all 0 or all 1;
A processor comprising: (1)
(付記2)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1の補数B1’sを出力する補数回路と、
前記第1オペランドAを被減数として入力し、前記補数回路の出力値B1’sを減数としてキャリーと共に入力し、前記1の補数B1’sに1を加算した2の補数B2’sを内部生成して第1オペランドAに加算することにより減算C=(A−B)を実行する診断対象となるキャリー入力付きの第1加減算器と、
前記第1加減算器の次段に設けられた第2加減算器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記補数回路及び第1加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行し、
第2サイクルで前記被減数Xと減数Yを入れ替えて前記補数回路及び第1加減算器を用いて減算Z’=(Y−X)をZ’=(Y+X2’s)=(Y+X1’s+1)として実行し、
第3サイクルで前記第2加減算器を用いて前記第1及び第2サイクルの減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行し、加算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。(2)
(Appendix 2)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A complement circuit that inverts the second operand B and outputs a one's complement B1's;
The first operand A is input as a divisor, the output value B1's of the complement circuit is input as a reduction together with a carry, and a two's complement B2's obtained by adding 1 to the one's complement B1's is internally generated. A first adder / subtracter with a carry input to be diagnosed to perform subtraction C = (A−B) by adding to the first operand A,
A second adder / subtracter provided in a stage subsequent to the first adder / subtractor;
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers,
In the first cycle, using the complement circuit and the first adder / subtracter, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1),
In the second cycle, the attenuator X and the subtractor Y are exchanged and the subtraction Z ′ = (Y−X) is executed as Z ′ = (Y + X2 ′s) = (Y + X1 ′s + 1) using the complement circuit and the first adder / subtracter. And
In the third cycle, using the second adder / subtracter, the addition Z ″ = (Z + Z ′) = (X + X1 ′s + 1 + Y + Y1 ′s + 1) of the subtraction results Z and Z ′ of the first and second cycles is executed, and the addition result A processor characterized in that if all bits are 0, it is determined to be normal, and if all bits are not 0, it is determined to be abnormal. (2)
(付記3)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1の補数B1’sを出力する第1補数回路と、
前記第1オペランドAを被減数として入力し、前記第1補数回路の出力値B1’sを減数としてキャリーと共に入力し、前記1の補数B1’sに1を加算した2の補数B2’sを内部生成して第1オペランドAに加算することにより減算C=(A−B)を実行する診断対象となるキャリー付きの加減算器と、
前記加減算器の減算値Cを反転して1を加算することで2の補数C2‘sを出力する第2補数回路と、
前記加減算器と第2補数回路の出力を比較する比較器と、
を備え、
前記演算回路は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記第1補数回路及び加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行し、
第2サイクルで前記被減数Xと減数Yを入れ替えて前記第1補数回路及び加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として実行し、前記第2補数回路から減算結果Z’の補数Z’2s=(Z1’s+1)を出力して前記第1サイクルの減算結果Zと比較し、両者が一致(Z’2’s=Y2’s−X2’s=X+Y2’s=Z)すれば正常と判断し、不一致であれば異常と判断することを特徴とするプロセッサ。(3)
(Appendix 3)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A first complement circuit that inverts the second operand B and outputs a one's complement B1's;
The first operand A is input as a divisor, the output value B1's of the first complement circuit is input as a reduction together with a carry, and a two's complement B2's obtained by adding 1 to the one's complement B1's is internally stored. An adder / subtracter with carry to be diagnosed to generate and add to the first operand A to perform subtraction C = (A−B);
A second complement circuit that outputs 2's complement C2's by inverting the subtraction value C of the adder / subtractor and adding 1;
A comparator for comparing the output of the adder / subtractor and the second complement circuit;
With
The arithmetic circuit uses arbitrary self-diagnosis data X, Y having a predetermined bit length stored in the first and second source registers,
Subtract Z = (X−Y) using the first complement circuit and adder / subtracter in the first cycle as Z = (X + Y2 ′s) = (X + Y1 ′s + 1),
In the second cycle, the attenuator X and the subtractor Y are exchanged, and the subtraction Z ′ = (Y−X) is executed as Z = (Y + X2 ′s) = (Y + X1 ′s + 1) using the first complement circuit and the adder / subtracter. , The complement Z′2s = (Z1 ′s + 1) of the subtraction result Z ′ is output from the second complement circuit and compared with the subtraction result Z of the first cycle, and the two match (Z′2 ′s = Y2 ′). s−X2 ′s = X + Y2 ′s = Z), a processor is determined to be normal, and a mismatch is determined to be abnormal. (3)
(付記4)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1を加えることで2の補数B2’sを出力する補数回路と、
前記第1オペランドAを被加数として入力し、前記補数回路の出力値B2’sを加数として入力して加算することにより減算C=(A−B)を実行する診断対象の第1加減算器と、
前記第1加減算器の次段に設けられた第2加減算器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記補数回路及び第1加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行し、
第2サイクルで前記被減数Xと減数Yを入れ替えて前記補数回路及び第1加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として実行し、
第3サイクルで前記第2加減算器を用いて前記第1及び第2サイクルの減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行し、加算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。(4)
(Appendix 4)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A complement circuit that outputs the 2's complement B2's by inverting the second operand B and adding 1;
The first operand A is input as an addend, and the output value B2's of the complement circuit is input as an addend and added to perform subtraction C = (A−B). And
A second adder / subtracter provided in a stage subsequent to the first adder / subtractor;
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers,
In the first cycle, using the complement circuit and the first adder / subtracter, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1),
In the second cycle, the attenuator X and the subtractor Y are exchanged, and subtraction Z ′ = (Y−X) is executed as Z = (Y + X2 ′s) = (Y + X1 ′s + 1) using the complement circuit and the first adder / subtractor. ,
In the third cycle, using the second adder / subtracter, the addition Z ″ = (Z + Z ′) = (X + X1 ′s + 1 + Y + Y1 ′s + 1) of the subtraction results Z and Z ′ of the first and second cycles is executed, and the addition result A processor characterized in that if all bits are 0, it is determined to be normal, and if all bits are not 0, it is determined to be abnormal. (4)
(付記5)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1の補数B1’sを出力する補数回路と、
前記第1オペランドAを被減数として入力し、前記補数回路の出力値B1’sを減数としてキャリーと共に入力し、前記1の補数B1’sに1を加算した2の補数B2’sを内部生成して第1オペランドAに加算することにより減算C=(A−B)を実行する診断対象となるキャリー入力付きの加減算器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記補数回路及び加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行し、
第2サイクルで前記被減数Xと減数Yを入れ替えて前記補数回路及び加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として実行し、
第3サイクルで前記加減算器を用いて前記第1及び第2サイクルの減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行し、加算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。(5)
(Appendix 5)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A complement circuit that inverts the second operand B and outputs a one's complement B1's;
The first operand A is input as a divisor, the output value B1's of the complement circuit is input as a reduction together with a carry, and a two's complement B2's obtained by adding 1 to the one's complement B1's is internally generated. An adder / subtracter with carry input to be diagnosed to perform subtraction C = (A−B) by adding to the first operand A,
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers,
In the first cycle, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1) using the complement circuit and the adder / subtractor,
Subtract Z ′ = (Y−X) using the complement circuit and the adder / subtracter by exchanging the attenuator X and the subtractor Y in the second cycle, and execute Z = (Y + X2 ′s) = (Y + X1 ′s + 1).
In the third cycle, using the adder / subtracter, the addition of the subtraction results Z and Z ′ in the first and second cycles is performed as follows: Z ″ = (Z + Z ′) = (X + X1 ′s + 1 + Y + Y1 ′s + 1). A processor characterized in that when
(付記6)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1を加えることで2の補数B2’sを出力する補数回路と、
前記第1オペランドAを被加数として入力し、前記補数回路の出力値B2’sを加数として入力して加算することにより減算C=(A−B)を実行する診断対象の加減算器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記補数回路及び加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行し、
第2サイクルで前記被減数Xと減数Yを入れ替えて前記補数回路及び加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として実行し、
第3サイクルで前記加減算器を用いて前記第1及び第2サイクルの減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行し、加算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。
(Appendix 6)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A complement circuit that outputs the 2's complement B2's by inverting the second operand B and adding 1;
An adder / subtracter to be diagnosed for performing subtraction C = (A−B) by inputting the first operand A as an addend and inputting and adding the output value B2 ′s of the complement circuit as an addend; ,
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers,
In the first cycle, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1) using the complement circuit and the adder / subtractor,
Subtract Z ′ = (Y−X) using the complement circuit and the adder / subtracter by exchanging the attenuator X and the subtractor Y in the second cycle, and execute Z = (Y + X2 ′s) = (Y + X1 ′s + 1).
In the third cycle, using the adder / subtracter, the addition of the subtraction results Z and Z ′ in the first and second cycles is performed as follows: Z ″ = (Z + Z ′) = (X + X1 ′s + 1 + Y + Y1 ′s + 1). A processor characterized in that when
(付記7)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1の補数B1’sを出力する第1補数回路と、
前記第1オペランドAを反転して1の補数A1’sを出力する第2補数回路と、
前記第1オペランドAを被減数として入力し、前記第2補数回路の出力値B1’sを減数としてキャリーと共に入力し、1を加算した2の補数B2’sを内部生成して第1オペランドAに加算することにより減算C=(A−B)を実行する診断対象となるキャリー入力付きの第1加減算器と、
前記第2オペランドBを被減数として入力し、前記第1補数回路のの出力値A1’sを減数としてキャリーと共に入力して1を加算した2の補数A2’sを内部生成して第2オペランドBに加算することにより減算C’=(B−A)を実行すキャリー入力付き第2加減算器と、
前記第1加減算器と第2加減算器の出力を加算する第3加減算器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記第1補数回路及び第1加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行すると同時に、前記第2補数回路及び第2加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として並列に実行し、
第2サイクルで前記第3加減算器を用いて前記第1加減算器と第2加減算器の減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行し、加算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。
(Appendix 7)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A first complement circuit that inverts the second operand B and outputs a one's complement B1's;
A second complement circuit that inverts the first operand A and outputs a 1's complement A1's;
The first operand A is input as a divisor, the output value B1's of the second complement circuit is input as a reduction together with the carry, and a two's complement B2's obtained by adding 1 is internally generated to the first operand A. A first adder / subtracter with carry input to be diagnosed to perform subtraction C = (A−B) by adding,
The second operand B is input as a divisor, and the output value A1's of the first complement circuit is input as a reduction number together with a carry, and a two's complement A2's obtained by adding 1 is internally generated to generate a second operand B. A second adder / subtracter with carry input that performs subtraction C ′ = (B−A) by adding to
A third adder / subtracter for adding the outputs of the first adder / subtractor and the second adder / subtractor;
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers,
In the first cycle, using the first complement circuit and the first adder / subtracter, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1), and at the same time, the second complement circuit and Subtract Z ′ = (Y−X) using the second adder / subtracter in parallel as Z = (Y + X2 ′s) = (Y + X1 ′s + 1),
In the second cycle, the third adder / subtractor is used to perform the addition Z ″ = (Z + Z ′) = (X + X1 ′s + 1 + Y + Y1 ′s + 1) of the subtraction results Z and Z ′ of the first adder / subtracter and the second adder / subtracter. A processor characterized in that if the addition result is all 0 bits, it is determined to be normal, and if it is not all 0 bits, it is determined to be abnormal.
(付記8)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1の補数B1’sを出力する第1補数回路と、
前記第1オペランドAを反転して1の補数A1’sを出力する第2補数回路と、
前記第1オペランドAを被減数として入力し、前記第2補数回路のの出力値B1’sを減数としてキャリーと共に入力し、1を加算した2の補数B2’sを内部生成して第1オペランドAに加算することにより減算C=(A−B)を実行する診断対象となるキャリー入力付きの第1加減算器と、
前記第2オペランドBを被減数として入力し、前記第1補数回路の出力値A1’sを減数としてキャリーと共に入力し、1を加算した2の補数A2’sを内部生成して第2オペランドBに加算することにより減算C’=(B−A)を実行する診断対象となるキャリー入力付き第2加減算器と、
前記第2加減算器の減算値C’を反転して1を加算することで2の補数C’2’sを出力する第3補数回路と、
前記加減算器と第3補数回路の出力を比較する比較器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、第1サイクルで前記第1補数回路及び第1加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行すると同時に、前記第2補数回路及び第2加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として並列に実行し、
第2サイクルで前記第3補数回路から前記第2加減算器の減算結果Z’の補数Z‘2’=(Z1’s+1)を出力して前記第1加減算器の減算結果Zとを前記比較器で比較し、両者が一致(Z’2’s=Y2’s−X2’s=X+Y2’s=Z)すれば正常と判断し、不一致であれば異常と判断することを特徴とするプロセッサ。
(Appendix 8)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A first complement circuit that inverts the second operand B and outputs a one's complement B1's;
A second complement circuit that inverts the first operand A and outputs a 1's complement A1's;
The first operand A is input as a divisor, the output value B1's of the second complement circuit is input as a subtract together with the carry, and a two's complement B2's obtained by adding 1 is internally generated to generate the first operand A. A first adder / subtracter with carry input to be diagnosed to perform subtraction C = (A−B) by adding to
The second operand B is input as a divisor, the output value A1's of the first complement circuit is input as a reduction together with a carry, and a two's complement A2's obtained by adding 1 is internally generated to be a second operand B. A second adder / subtracter with carry input to be diagnosed to perform subtraction C ′ = (B−A) by adding;
A third complement circuit that outputs 2's complement C'2's by inverting the subtraction value C 'of the second adder / subtracter and adding 1;
A comparator for comparing the output of the adder / subtractor and the third complement circuit;
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers, and uses the first complement circuit and the first adder / subtracter in a first cycle. The subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1), and at the same time, the subtraction Z ′ = (Y−X) using the second complement circuit and the second adder / subtractor. ) In parallel with Z = (Y + X2 ′s) = (Y + X1 ′s + 1)
In the second cycle, a complement Z′2 ′ = (Z1 ′s + 1) of the subtraction result Z ′ of the second adder / subtractor is output from the third complement circuit, and the subtraction result Z of the first adder / subtractor is output to the comparator. A processor characterized in that if both match (Z′2 ′s = Y2′s−X2 ′s = X + Y2 ′s = Z), it is determined to be normal, and if they do not match, it is determined to be abnormal.
(付記9)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1を加算することで2の補数B2’sを出力する第1補数回路と、
前記第1オペランドAを反転して1を加算することで2の補数A2’sを出力する第2補数回路と、
前記第1オペランドAを被減数として入力し、前記第1補数回路の出力値B2’sを減数として入力して減算C=(A−B)を実行する診断対象の第1加減算器と、
前記第2オペランドBを被減数として入力し、前記第2補数回路の出力値A2’sを減数として入力して減算C’=(B−A)を実行する第2加減算器と、
前記第1加減算器と第2加減算器の出力を加算する第3加減算器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記第1補数回路及び第1加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行すると同時に、前記第2補数回路及び第2加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として並列に実行し、
第2サイクルで前記第3加減算器を用いて前記第1加減算器と第2加減算器の減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行し、加算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。
(Appendix 9)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A first complement circuit that inverts the second operand B and adds 1 to
A second complement circuit that outputs 2's complement A2's by inverting the first operand A and adding 1;
A first adder / subtracter to be diagnosed that inputs the first operand A as a subordinate and inputs the output value B2 ′s of the first complement circuit as a subtract to execute subtraction C = (A−B);
A second adder / subtractor that inputs the second operand B as a subordinate and inputs the output value A2 ′s of the second complement circuit as a subtract to perform subtraction C ′ = (B−A);
A third adder / subtracter for adding the outputs of the first adder / subtractor and the second adder / subtractor;
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers,
In the first cycle, using the first complement circuit and the first adder / subtracter, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1), and at the same time, the second complement circuit and Subtract Z ′ = (Y−X) using the second adder / subtracter in parallel as Z = (Y + X2 ′s) = (Y + X1 ′s + 1),
In the second cycle, the third adder / subtractor is used to perform the addition Z ″ = (Z + Z ′) = (X + X1 ′s + 1 + Y + Y1 ′s + 1) of the subtraction results Z and Z ′ of the first adder / subtracter and the second adder / subtracter. A processor characterized in that if the addition result is all 0 bits, it is determined to be normal, and if it is not all 0 bits, it is determined to be abnormal.
(付記10)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1の補数B1’sを出力する第1補数回路と、
前記第1オペランドAを反転して1の補数A1’sを出力する第2補数回路と、
前記第1オペランドAを被減数として入力し、前記第2補数回路のの出力値B1’sを減数としてキャリーと共に入力し、1を加算した2の補数B2’sを内部生成して第1オペランドAに加算することにより減算C=(A−B)を実行する診断対象となるキャリー入力付きの第1加減算器と、
前記第2オペランドBを被減数として入力し、前記第1補数回路の出力値A1’sを減数としてキャリーと共に入力し、1を加算した2の補数A2’sを内部生成して第2オペランドBに加算することにより減算C’=(B−A)を実行するキャリー入力付き第2加減算器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記第1補数回路及び第1加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行すると同時に、前記第2補数回路及び第2加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)=(Y+X1’s+1)として並列に実行し、
第2サイクルで前記第1加減算器を用いて第1サイクル目の前記第1加減算器と第2加減算器の減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行し、加算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。
(Appendix 10)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A first complement circuit that inverts the second operand B and outputs a one's complement B1's;
A second complement circuit that inverts the first operand A and outputs a 1's complement A1's;
The first operand A is input as a divisor, the output value B1's of the second complement circuit is input as a subtract together with the carry, and a two's complement B2's obtained by adding 1 is internally generated to generate the first operand A. A first adder / subtracter with carry input to be diagnosed to perform subtraction C = (A−B) by adding to
The second operand B is input as a divisor, the output value A1's of the first complement circuit is input as a reduction together with a carry, and a two's complement A2's obtained by adding 1 is internally generated to be a second operand B. A second adder / subtracter with carry input for performing subtraction C ′ = (B−A) by adding;
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers,
In the first cycle, using the first complement circuit and the first adder / subtracter, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1), and at the same time, the second complement circuit and Subtract Z ′ = (Y−X) using the second adder / subtracter in parallel as Z = (Y + X2 ′s) = (Y + X1 ′s + 1),
Using the first adder / subtracter in the second cycle, the addition of the subtraction results Z and Z ′ of the first adder / subtracter in the first cycle Z ″ = (Z + Z ′) = (X + X1 ′s + 1 + Y + Y1 ′) s + 1) is executed, and when the addition result is all
(付記11)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドAを格納する第1ソースレジスタと、
第2オペランドBを格納する第2ソースレジスタと、
前記第2オペランドBを反転して1を加算することで2の補数B2’sを出力する第1補数回路と、
前記第1オペランドAを反転して1を加算することで2の補数A2’sを出力する第2補数回路と、
前記第1オペランドAを被減数として入力し、前記第1補数回路の出力値B2’sを減数として入力して減算C=(A−B)を実行する診断対象の第1加減算器と、
前記第2オペランドBを被減数として入力し、前記第2補数回路の出力値A2’sを減数として入力して減算C’=(B−A)を実行する第2加減算器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用し、
第1サイクルで前記第1補数回路及び第1加減算器を用いて減算Z=(X−Y)をZ=(X+Y2’s)=(X+Y1’s+1)として実行すると同時に、前記第2補数回路及び第2加減算器を用いて減算Z’=(Y−X)をZ=(Y+X2’s)
=(Y+X1’s+1)として並列に実行し、
第2サイクルで前記第1加減算器を用いて第1サイクル目の前記第1加減算器と第2加減算器の減算結果Z,Z’の加算Z’’=(Z+Z’)=(X+X1’s+1+Y+Y1’s+1)を実行し、加算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。
(Appendix 11)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand A;
A second source register storing a second operand B;
A first complement circuit that inverts the second operand B and adds 1 to
A second complement circuit that outputs 2's complement A2's by inverting the first operand A and adding 1;
A first adder / subtracter to be diagnosed that inputs the first operand A as a subordinate and inputs the output value B2 ′s of the first complement circuit as a subtract to execute subtraction C = (A−B);
A second adder / subtractor that inputs the second operand B as a subordinate and inputs the output value A2 ′s of the second complement circuit as a subtract to perform subtraction C ′ = (B−A);
With
The self-diagnosis processing unit uses arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers,
In the first cycle, using the first complement circuit and the first adder / subtracter, the subtraction Z = (X−Y) is executed as Z = (X + Y2 ′s) = (X + Y1 ′s + 1), and at the same time, the second complement circuit and Subtract Z ′ = (Y−X) using the second adder / subtractor Z = (Y + X2 ′s)
= (Y + X1's + 1)
Using the first adder / subtracter in the second cycle, the addition of the subtraction results Z and Z ′ of the first adder / subtracter in the first cycle Z ″ = (Z + Z ′) = (X + X1 ′s + 1 + Y + Y1 ′) s + 1) is executed, and when the addition result is all
(付記11)
付記2乃至10のいずれかに記載のプロセッサに於いて、
前記演算回路は、更に、
前記第1ソースレジスタに格納した第1オペランドAを初期値して入力した後の演算周期毎に新たな第1オペランドを乱数処理により発生して前記第1ソースレジスタに格納する第1擬似乱数発生器と、
前記第2ソースレジスタに格納した第2オペランドBを初期値として入力した後の演算周期毎に新たな第2オペランドを乱数処理により発生して前記第2ソースレジスタに格納する第2擬似乱数発生器と、
を備え、
前記自己診断処理部は、前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,Yを使用した自己診断処理が正常終了する毎に、前記第1及び第2擬似乱数発生器に新たな自己診断用データX,Yを生成させて自己診断処理を繰返し実行することを特徴とするプロセッサ。
(Appendix 11)
In the processor according to any one of
The arithmetic circuit further includes:
First pseudo-random number generation in which a new first operand is generated by random number processing and stored in the first source register every calculation cycle after the first operand A stored in the first source register is input as an initial value And
A second pseudo-random number generator that generates a new second operand by random number processing and stores it in the second source register every calculation cycle after the second operand B stored in the second source register is input as an initial value. When,
With
The self-diagnosis processing unit performs the first and second each time the self-diagnosis process using arbitrary self-diagnosis data X and Y having a predetermined bit length stored in the first and second source registers ends normally. A processor characterized by causing a pseudo-random number generator to generate new self-diagnosis data X and Y and repeatedly executing self-diagnosis processing.
(付記12)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドを格納する第1ソースレジスタと、
第2オペランドを格納する第2ソースレジスタと、
前記第1又は第2オペランドのいずれか一方を初期値として入力した後の演算周期毎の乱数発生処理により新たなオペランドAを発生して第1ソースレジスタに格納する擬似乱数発生器と、
前記乱数発生器が発生するオペランドAを反転した1の補数A1’sを前記第2ソースレジスタに格納する補数回路と、
前記第1オペランドBを被減数として入力し、前記2オペランドA1’sを減数としてキャリーと共に入力して1を加算した2の補数A2’sを内部生成して加算することにより減算C=(A−A)を実行する診断対象となるキャリー入力付きの加減算器と、
を備え、
前記自己診断処理部は、前記擬似乱数発生器から前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,X1’sをキャリーと共に前記加減算器に入力して減算Z=(X−X)をZ=(X+X2’s)=(X+X1’s+1)として実行し、減算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。
(Appendix 12)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand;
A second source register storing a second operand;
A pseudo-random number generator that generates a new operand A by a random number generation process for each operation cycle after inputting one of the first and second operands as an initial value and stores the new operand A in a first source register;
A complement circuit for storing one's complement A1's obtained by inverting operand A generated by the random number generator in the second source register;
Subtract C = (A−) by internally generating and adding two's complement A2 ′s obtained by inputting the first operand B as a divisor and inputting the two operands A1 ′s together with a carry as a subtract and adding 1. An adder / subtracter with carry input to be diagnosed to execute A);
With
The self-diagnosis processing unit inputs arbitrary self-diagnosis data X, X1 ′s having a predetermined bit length stored in the first and second source registers from the pseudo-random number generator to the adder / subtracter together with carry. Z = (X−X) is executed as Z = (X + X2 ′s) = (X + X1 ′s + 1). If the subtraction result is all 0 bits, it is determined to be normal, and if it is not all 0 bits, it is determined to be abnormal. A processor characterized by:
(付記13)
付記1記載のプロセッサに於いて、
前記演算回路は、
第1オペランドを格納する第1ソースレジスタと、
第2オペランドを格納する第2ソースレジスタと、
前記第1又は第2オペランドのいずれか一方を初期値として入力した後の演算周期毎の乱数発生処理により新たなオペランドAを発生して第1ソースレジスタに格納する擬似乱数発生器と、
前記乱数発生器が出力するオペランドAを反転して1を加算するで2の補数A2‘sを生成して前記第2ソースレジスタに格納する補数回路と、
前記第1オペランドAを被減数として入力し、前記第2オペランドA2’sを減数として入力して減算C=(A−A)を実行する診断対象となる加減算器と、
を備え、
前記自己診断処理部は、前記擬似乱数発生器から前記第1及び第2ソースレジスタに格納した所定ビット長の任意の自己診断用データX,X1’sを前記加減算器に入力して減算Z=(X−X)をZ=(X+X2’s)=(X+X1’s+1)として実行し、減算結果が全ビット0の場合は正常と判断し、全ビット0以外の場合には異常と判断することを特徴とするプロセッサ。
(Appendix 13)
In the processor described in
The arithmetic circuit is:
A first source register storing a first operand;
A second source register storing a second operand;
A pseudo-random number generator that generates a new operand A by a random number generation process for each operation cycle after inputting one of the first and second operands as an initial value and stores the new operand A in a first source register;
A complement circuit that inverts operand A output by the random number generator and adds 1 to generate 2's complement A2's and store it in the second source register;
An adder / subtracter to be diagnosed, which inputs the first operand A as a divisor and inputs the second operand A2's as a subtract and executes subtraction C = (AA);
With
The self-diagnosis processing unit inputs arbitrary self-diagnosis data X, X1 ′s having a predetermined bit length stored in the first and second source registers from the pseudo-random number generator to the adder / subtractor and performs subtraction Z = (X−X) is executed as Z = (X + X2 ′s) = (X + X1 ′s + 1). When the subtraction result is all 0 bits, it is determined to be normal, and when it is not all 0 bits, it is determined to be abnormal. Processor.
10−1:演算回路
10−2:自己診断処理部
11:試験対象
12,72:加減算器(キャリー入力付き2入力加減算器)
14:汎用レジスタファイル
16:ソースデータ(第1オペランド)
18:ソースデータ(第2オペランド)
20,22,28,64,66,68,80,82,88,90:セレクタ
24:第1ソースレジスタ
26:第2ソースレジスタ
30,56,70,76,96:インバータ
32,34,38,74:ディスティネーションレジスタ
36:加減算器
40:演算結果
42:テストアクセスポートコントローラ(TAPコントローラ)
44:自己診断コントローラ(BISTコントローラ)
48:オールゼロ検出器
50:デコーダ
52:オペコード
54:比較器
58,61,78,98:+1インクリメント
60:エラー検出器
65:加減算器(キャリー入力なし)
84,88:リニアフィードバックシフトレジスタ(LFSR)
92:シフトレジスタ
94:EX−OR
10-1: Arithmetic circuit 10-2: Self-diagnosis processing unit 11:
14: General-purpose register file 16: Source data (first operand)
18: Source data (second operand)
20, 22, 28, 64, 66, 68, 80, 82, 88, 90: selector 24: first source register 26: second source register 30, 56, 70, 76, 96:
44: Self-diagnosis controller (BIST controller)
48: all zero detector 50: decoder 52: opcode 54:
84, 88: Linear feedback shift register (LFSR)
92: Shift register 94: EX-OR
Claims (11)
第1サイクルにおいて前記加減算器に、第1の演算処理として自己診断用被減数Xから自己診断用減数Yの減算を行わせるとともに、第2サイクルにおいて前記加減算器に、第2の演算処理として前記診断用被減数Xと前記診断用減数Yとを入れ替えたことにより減算を行わせる制御部と、
前記第1の演算処理の結果であるZ=X−Yと、前記第2の演算処理の結果であるZ’=Y−Xの加算Z''=Z+Z'を行う加算器と、
前記加算器の加算結果Z''の全ビットが0であることを検出する検出器と、
を備えたことを特徴とする演算処理装置。
An adder / subtracter to be diagnosed;
In the first cycle, the adder / subtracter subtracts the self-diagnosis subtract Y from the self-diagnosis subtracted number X as the first arithmetic processing, and in the second cycle, the adder / subtractor performs the diagnosis as the second arithmetic processing. A control unit that performs subtraction by exchanging the reduced number X and the diagnostic reduction number Y;
An adder that performs Z = X−Y as a result of the first arithmetic processing and Z ′ = Y−X as a result of the second arithmetic processing; and Z ″ = Z + Z ′;
A detector for detecting that all bits of the addition result Z ″ of the adder are 0;
An arithmetic processing apparatus comprising:
第1サイクルにおいて前記加減算器に、第1の演算処理として自己診断用被減数Xから自己診断用減数Yの減算を行わせるとともに、第2サイクルにおいて前記加減算器に、第2の演算処理として前記診断用被減数Xと前記診断用減数Yとを入れ替えたことにより減算を行わせる制御部と、
前記第1の演算処理の結果であるZ=X−Yと、前記第2の演算処理の結果であるZ'=Y−Xの加算Z''=Z+Z'を行う加算器と、
前記加算器の加算結果Z''の反転を行う反転器と、
前記反転器の反転結果の全ビットが1であることを検出する検出器と、
を備えたことを特徴とする演算処理装置。
An adder / subtracter to be diagnosed;
In the first cycle, the adder / subtracter subtracts the self-diagnosis subtract Y from the self-diagnosis subtracted number X as the first arithmetic processing, and in the second cycle, the adder / subtractor performs the diagnosis as the second arithmetic processing. A control unit that performs subtraction by exchanging the reduced number X and the diagnostic reduction number Y;
An adder that performs Z = X−Y as a result of the first arithmetic processing and Z ′ = Y−X as a result of the second arithmetic processing; and Z ″ = Z + Z ′;
An inverter for inverting the addition result Z ″ of the adder;
A detector for detecting that all bits of the inversion result of the inverter are 1.
An arithmetic processing apparatus comprising:
前記第1の演算処理は、前記補数回路により前記Yの1の補数Y1'sを生成するとともに、前記増分器により前記Y1'sに1を加算した結果である前記Yの2の補数Y2'sを生成し、前記加算器を用いて前記Xと前記Y2'sの加算を行うことにより、前記自己診断用被減数Xから前記自己診断用減数Yの減算を行い、
前記第2の演算処理は、前記補数回路により前記Xの1の補数X1'sを生成するとともに、前記増分器により前記X1'sに1を加算した結果である前記Xの2の補数X2'sを生成し、前記加算器を用いて前記Yと前記X2'sの加算を行うことにより、前記診断用被減数Xと前記診断用減数Yとを入れ替えた減算を行うことを特徴とする請求項1又は2記載の演算処理装置。
The adder / subtractor has a complement circuit, an incrementer, and an adder,
The first arithmetic processing generates the Y's one's complement Y1's by the complement circuit, and adds 1 to the Y1's by the incrementer. The Y's two's complement Y2 ' subtracting the self-diagnosis subtract Y from the self-diagnostic divisor X by generating X and adding the X and Y2's using the adder,
In the second arithmetic processing, the one's complement X1 ′s of the X is generated by the complement circuit, and the two's complement X2 ′ of the X is a result of adding 1 to the X1 ′s by the incrementer. The s is generated, and the addition of the Y and the X2's using the adder is performed to perform subtraction by exchanging the diagnostic divisor X and the diagnostic subtraction Y. The arithmetic processing apparatus according to 1 or 2.
第1サイクルにおいて、第1の演算処理として自己診断用データXと前記補数回路により生成された前記Y1'sとキャリー入力1についての加算Z=(X+Y1's +1)を行うとともに、第2サイクルにおいて、第2の演算処理として自己診断用データXと前記補数回路により生成された前記Y1'sとキャリー入力1についての加算Z'=(X1's+Y+1)を行う診断対象である第1のキャリー入力付き加算器と、
前記第1の演算処理の結果であるZと前記第2の演算処理の結果であるZ'の加算Z''=Z+Z'を行う第2の加算器と、
前記第2の加算器の加算結果Z''の全ビットが0であることを検出する検出器と、
を備えたことを特徴とする演算処理装置。
A complement circuit that inverts the self-diagnosis data X or Y to generate the inverted value X1 ′s of X or the inverted value Y1 ′s of Y;
In the first cycle, as the first calculation process, addition Z = (X + Y1 ′s + 1) for the self-diagnosis data X and the Y1 ′s generated by the complement circuit and the carry input 1 is performed, and the second cycle 1, the first carry that is the diagnosis target for performing addition Z ′ = (X1 ′s + Y + 1) for the self-diagnosis data X and the Y1 ′s generated by the complement circuit and the carry input 1 as the second arithmetic processing An adder with input;
A second adder for performing addition Z ″ = Z + Z ′ of Z that is the result of the first arithmetic processing and Z ′ that is the result of the second arithmetic processing;
A detector for detecting that all bits of the addition result Z ″ of the second adder are 0;
An arithmetic processing apparatus comprising:
第1サイクルにおいて、第1の演算処理として自己診断用データXと前記補数回路により生成された前記Y1'sとキャリー入力1についての加算Z=(X+Y1's +1)を行うとともに、第2サイクルにおいて、第2の演算処理として自己診断用データXと前記補数回路により生成された前記Y1'sとキャリー入力1についての加算Z'=(X1's+Y+1)を行う診断対象である第1のキャリー入力付き加算器と、
前記第1の演算処理の結果であるZと前記第2の演算処理の結果であるZ'の加算Z''=Z+Z'を行う第2の加算器と、
前記第2の加算器の加算結果Z''の反転を行う反転器と、
前記反転器の反転結果の全ビットが1であることを検出する検出器と、
を備えたことを特徴とする演算処理装置。
A complement circuit that inverts the self-diagnosis data X or Y to generate the inverted value X1 ′s of X or the inverted value Y1 ′s of Y;
In the first cycle, as the first calculation process, addition Z = (X + Y1 ′s + 1) for the self-diagnosis data X and the Y1 ′s generated by the complement circuit and the carry input 1 is performed, and the second cycle 1, the first carry that is the diagnosis target for performing addition Z ′ = (X1 ′s + Y + 1) for the self-diagnosis data X and the Y1 ′s generated by the complement circuit and the carry input 1 as the second arithmetic processing An adder with input;
A second adder for performing addition Z ″ = Z + Z ′ of Z that is the result of the first arithmetic processing and Z ′ that is the result of the second arithmetic processing;
An inverter for inverting the addition result Z ″ of the second adder;
A detector for detecting that all bits of the inversion result of the inverter are 1.
An arithmetic processing apparatus comprising:
前記自己診断用減数Xと前記自己診断用被減数Yは前記データ格納部に格納されることを特徴とする請求項1乃至5記載の演算処理装置。
The arithmetic processing unit further includes a data storage unit,
6. The arithmetic processing apparatus according to claim 1, wherein the self-diagnosis subtraction number X and the self-diagnosis subtraction number Y are stored in the data storage unit.
前記自己診断用減数Xと前記自己診断用被減数Yは前記乱数発生手段により生成されることを特徴とする請求項1乃至5記載の演算処理装置。
The arithmetic processing unit further includes random number generating means,
6. The arithmetic processing unit according to claim 1, wherein the self-diagnosis subtraction number X and the self-diagnosis subtraction number Y are generated by the random number generation means.
前記加減算器が、第1の演算処理として自己診断用被減数Xから自己診断用減数Yの減算を行うステップと、
前記加減算器が、第2の演算処理として前記診断用被減数Xと前記診断用減数Yとを入れ替えたことにより減算を行うステップと、
前記加算器が、前記第1の演算処理の結果であるX−Yと、前記第2の演算処理の結果であるY−Xの加算を行うステップと、
前記検出器が、前記加算器の加算結果の全ビットが0であることの検出を行うステップと、
を備えたことを特徴とする演算処理装置の自己診断方法。
In a self-diagnosis method of an arithmetic processing unit having an adder / subtracter to be diagnosed, an adder that performs addition, and a detector that detects that all bits are 0,
The adder / subtracter subtracts the self-diagnosis subtract Y from the self-diagnostic subtract X as the first arithmetic processing;
The subtractor performs subtraction by exchanging the diagnostic subtraction number X and the diagnostic subtraction number Y as a second calculation process;
The adder adds XY as a result of the first arithmetic processing and Y-X as a result of the second arithmetic processing; and
The detector detects that all bits of the addition result of the adder are 0;
A self-diagnosis method for an arithmetic processing unit, comprising:
前記加減算器が、第1の演算処理として自己診断用被減数Xから自己診断用減数Yの減算を行うステップと、
前記加減算器が、第2の演算処理として前記診断用被減数Xと前記診断用減数Yとを入れ替えたことにより減算を行うステップと、
前記加算器が、前記第1の演算処理の結果であるX−Yと、前記第2の演算処理の結果であるY−Xの加算を行うステップと、
前記反転器が、前記加算器の加算結果の反転を行うステップと、
前記検出器が、前記反転器の反転結果の全ビットが1であることの検出を行うステップと、
を備えたことを特徴とする演算処理装置の自己診断方法。
In a self-diagnosis method of an arithmetic processing unit having an adder / subtracter to be diagnosed, an adder that performs addition, an inverter that inverts an input value, and a detector that detects that all bits are 1.
The adder / subtracter subtracts the self-diagnosis subtract Y from the self-diagnostic subtract X as the first arithmetic processing;
The subtractor performs subtraction by exchanging the diagnostic subtraction number X and the diagnostic subtraction number Y as a second calculation process;
The adder adds XY as a result of the first arithmetic processing and Y-X as a result of the second arithmetic processing; and
The inverter reverses the addition result of the adder; and
The detector detects that all bits of the inversion result of the inverter are 1, and
A self-diagnosis method for an arithmetic processing unit, comprising:
前記補数回路が、自己診断用データYを反転して、前記Yの反転値Y1'sを生成するステップと、
前記第1のキャリー入力付き加算器が、第1の演算処理として自己診断用データXと前記補数回路により生成された前記Y1'sとキャリー入力1についての加算Z=(X+Y1's +1)を行うステップと、
前記補数回路が、自己診断用データXを反転して、前記Xの反転値Xの反転値X1'sを生成するステップと、
前記第1のキャリー入力付き加算器が、第2の演算処理として自己診断用データXと前記補数回路により生成された前記Y1'sとキャリー入力1についての加算Z'=(X1's+Y+1)を行うステップと、
前記第2の加算器が、前記第1の演算処理の結果であるZと、前記第2の演算処理の結果であるZ'の加算Z''=Z+Z''を行うステップと、
前記検出器が、前記加算器の加算結果Z''の全ビットが0であることの検出を行うステップと、
を備えたことを特徴とする演算処理装置の自己診断方法。
Computation having a complement circuit that inverts input data, a first adder with carry input to be diagnosed, a second adder that performs addition, and a detector that detects that all bits are 0 In the self-diagnosis method of the processing device,
The complement circuit inverts the self-diagnosis data Y to generate the inverted value Y1 ′s of Y;
The adder with the first carry input adds the self-diagnosis data X and the Y1's generated by the complement circuit and the carry input 1 Z = (X + Y1's + 1) as the first arithmetic processing. Steps to perform,
The complement circuit inverts the self-diagnosis data X to generate an inverted value X1's of the inverted value X of the X;
The first adder with carry input adds self-diagnosis data X and Y1 ′s generated by the complement circuit and carry input 1 Z ′ = (X1 ′s + Y + 1) as the second arithmetic processing. Steps to perform,
The second adder performs an addition Z ″ = Z + Z ″ of Z as a result of the first arithmetic processing and Z ′ as a result of the second arithmetic processing;
The detector detects that all bits of the addition result Z ″ of the adder are 0;
A self-diagnosis method for an arithmetic processing unit, comprising:
前記補数回路が、自己診断用データYを反転して、前記Yの反転値Y1'sを生成するステップと、
前記第1のキャリー入力付き加算器が、第1の演算処理として自己診断用データXと前記補数回路により生成された前記Y1'sとキャリー入力1についての加算Z=(X+Y1's +1)を行うステップと、
前記補数回路が、自己診断用データXを反転して、前記Xの反転値Xの反転値X1'sを生成するステップと、
前記第1のキャリー入力付き加算器が、第2の演算処理として自己診断用データXと前記補数回路により生成された前記Y1'sとキャリー入力1についての加算Z'=(X1's+Y+1)を行うステップと、
前記第2の加算器が、前記第1の演算処理の結果であるZと、前記第2の演算処理の結果であるZ'の加算Z''=Z+Z'を行うステップと、
前記反転器が、前記加算器の加算結果Z''の反転を行うステップと、
前記検出器が、前記反転器の反転結果の全ビットが1であることの検出を行うステップと、
を備えたことを特徴とする演算処理装置の自己診断方法。 Complement circuit that inverts input data, first adder with carry input to be diagnosed, second adder that performs addition, inverter that inverts input value, and all bits are 1. In a self-diagnosis method of an arithmetic processing unit having a detector for detecting
The complement circuit inverts the self-diagnosis data Y to generate the inverted value Y1 ′s of Y;
The adder with the first carry input adds the self-diagnosis data X and the Y1's generated by the complement circuit and the carry input 1 Z = (X + Y1's + 1) as the first arithmetic processing. Steps to perform,
The complement circuit inverts the self-diagnosis data X to generate an inverted value X1's of the inverted value X of the X;
The first adder with carry input adds self-diagnosis data X and Y1 ′s generated by the complement circuit and carry input 1 Z ′ = (X1 ′s + Y + 1) as the second arithmetic processing. Steps to perform,
The second adder performs an addition Z ″ = Z + Z ′ of Z as a result of the first arithmetic processing and Z ′ as a result of the second arithmetic processing;
The inverter reverses the addition result Z ″ of the adder;
The detector detects that all bits of the inversion result of the inverter are 1, and
A self-diagnosis method for an arithmetic processing unit, comprising:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006158758A JP3897356B2 (en) | 2006-06-07 | 2006-06-07 | Arithmetic processing device and self-diagnosis method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006158758A JP3897356B2 (en) | 2006-06-07 | 2006-06-07 | Arithmetic processing device and self-diagnosis method thereof |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000287950A Division JP2002099447A (en) | 2000-09-22 | 2000-09-22 | Processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006286015A JP2006286015A (en) | 2006-10-19 |
JP3897356B2 true JP3897356B2 (en) | 2007-03-22 |
Family
ID=37407792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006158758A Expired - Fee Related JP3897356B2 (en) | 2006-06-07 | 2006-06-07 | Arithmetic processing device and self-diagnosis method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3897356B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011142015A1 (en) * | 2010-05-12 | 2011-11-17 | トヨタ自動車株式会社 | Operator anomaly assessment device and method |
JP5732933B2 (en) * | 2011-03-14 | 2015-06-10 | 日本電気株式会社 | Arithmetic apparatus and error detection method |
JP7119543B2 (en) * | 2018-05-01 | 2022-08-17 | 富士通株式会社 | Adder/subtractor circuit and method of controlling the adder/subtractor circuit |
JP7218222B2 (en) * | 2019-03-14 | 2023-02-06 | ルネサスエレクトロニクス株式会社 | Semiconductor device, arithmetic function diagnostic method, and program |
-
2006
- 2006-06-07 JP JP2006158758A patent/JP3897356B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006286015A (en) | 2006-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8832166B2 (en) | Floating point multiplier circuit with optimized rounding calculation | |
US6272623B1 (en) | Methods and apparatus for branch prediction using hybrid history with index sharing | |
JPH0414366B2 (en) | ||
US4926374A (en) | Residue checking apparatus for detecting errors in add, subtract, multiply, divide and square root operations | |
JP2002091792A (en) | Processor and method for executing hardware test during instruction execution in ordinary mode | |
JP3897356B2 (en) | Arithmetic processing device and self-diagnosis method thereof | |
US6721905B2 (en) | Processor | |
US6101621A (en) | Logic circuit and method for designing the same | |
US6519621B1 (en) | Arithmetic circuit for accumulative operation | |
US6263424B1 (en) | Execution of data dependent arithmetic instructions in multi-pipeline processors | |
JP6428488B2 (en) | Adder / Subtractor and Control Method of Adder / Subtractor | |
US8713086B2 (en) | Three-term predictive adder and/or subtracter | |
US6640198B2 (en) | Semiconductor device having self test function | |
Bernardi et al. | On the in-field testing of spare modules in automotive microprocessors | |
JP2000504444A (en) | Programmable instruction trap system and method | |
US6760738B2 (en) | Exponent unit of data processing system | |
Ubar et al. | Functional built-in self-test for processor cores in SoC | |
Refan et al. | Bridging presilicon and postsilicon debugging by instruction-based trace signal selection in modern processors | |
CN110659480B (en) | Trojan circuit detection and error recovery method during equipment operation | |
US8473541B2 (en) | M-bit race delay adder and method of operation | |
US11586793B2 (en) | Method for producing an association list | |
US20040249878A1 (en) | High frequency compound instruction mechanism and method | |
Pflanz et al. | A new method for on-line state machine observation for embedded microprocessors | |
JP2000040081A (en) | Vector data processor | |
WO2006129356A1 (en) | Information processing device and its incorrect operation detection method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061218 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110105 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110105 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120105 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130105 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130105 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140105 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |