JPH09114641A - 最上位デジットを決定するための装置と方法 - Google Patents
最上位デジットを決定するための装置と方法Info
- Publication number
- JPH09114641A JPH09114641A JP8234577A JP23457796A JPH09114641A JP H09114641 A JPH09114641 A JP H09114641A JP 8234577 A JP8234577 A JP 8234577A JP 23457796 A JP23457796 A JP 23457796A JP H09114641 A JPH09114641 A JP H09114641A
- Authority
- JP
- Japan
- Prior art keywords
- xor
- value
- propagation
- shift
- operands
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/485—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49936—Normalisation mentioned as feature only
Landscapes
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】
【課題】 本発明は、浮動小数点加算回路に関し、特
に、先頭0/1検出の回路と方法に関する。 【解決手段】 先頭0/1検出(LZD)回路と使用方
法を使用する加算器は、少ない論理レベルとゲート数で
正確な正規化シフトを決定し、かなりの実行時間を節約
し、時間の改善ばかりでなく、加算器を実現する論理の
サイズを減少する。加えて、最上位デジットを位置決め
する並列な方法が開示される。そのようなLZD回路と
方法は、集積回路に組み込まれ、LZD回路は、オペラ
ンドを表す入力信号から伝搬値を発生するための伝搬値
発生器と、発生された伝搬値から位置値を発生するため
に位置値発生器を含んでいる。
に、先頭0/1検出の回路と方法に関する。 【解決手段】 先頭0/1検出(LZD)回路と使用方
法を使用する加算器は、少ない論理レベルとゲート数で
正確な正規化シフトを決定し、かなりの実行時間を節約
し、時間の改善ばかりでなく、加算器を実現する論理の
サイズを減少する。加えて、最上位デジットを位置決め
する並列な方法が開示される。そのようなLZD回路と
方法は、集積回路に組み込まれ、LZD回路は、オペラ
ンドを表す入力信号から伝搬値を発生するための伝搬値
発生器と、発生された伝搬値から位置値を発生するため
に位置値発生器を含んでいる。
Description
【0001】
【発明の属する技術分野】本発明は、浮動小数点加算回
路に関し、特に、先頭0/1検出の回路と方法に関す
る。
路に関し、特に、先頭0/1検出の回路と方法に関す
る。
【0002】
【従来の技術】浮動少数点加算後、正規化がオペランド
の非正規化和に対して行われ、結果としての和は正規化
数となる。従来の方法では、正規化和は、その数の符号
に依存して、先頭の0/1のための先頭0/1検出(L
ZD)技術により探される。その後、非正規化和は、左
方向にLZDにより決定された量だけシフトされ、浮動
少数点が従って調整される。一般に、シフトされるべき
量は、加算が終了するまで計算されることができない。
種々のLZD回路と方法が当業界で知られている。回路
動作をかなり高速化する他の技術では、フィールド等に
発行された米国特許番号4,758,974は、加算演算の間に
少なくともだいたいの最上位デジット(MSD)を決定
するためのMSD位置システムと方法を開示している。
その特許は、ここに共通に譲渡され、引用によりここに
組み込まれる。
の非正規化和に対して行われ、結果としての和は正規化
数となる。従来の方法では、正規化和は、その数の符号
に依存して、先頭の0/1のための先頭0/1検出(L
ZD)技術により探される。その後、非正規化和は、左
方向にLZDにより決定された量だけシフトされ、浮動
少数点が従って調整される。一般に、シフトされるべき
量は、加算が終了するまで計算されることができない。
種々のLZD回路と方法が当業界で知られている。回路
動作をかなり高速化する他の技術では、フィールド等に
発行された米国特許番号4,758,974は、加算演算の間に
少なくともだいたいの最上位デジット(MSD)を決定
するためのMSD位置システムと方法を開示している。
その特許は、ここに共通に譲渡され、引用によりここに
組み込まれる。
【0003】
【発明の概要】LZD回路を使用する加算器と使用法が
正確な正規化シフトを決定するために開示される。加え
て、MSDを位置決めするための並列な方法が開示され
る。そのようなLZD回路と方法は、集積回路に組み込
まれ、LZD回路は、オペランドを表す入力信号から伝
搬値を発生するための伝搬値発生器と、発生された伝搬
値から位置値を発生するための位置値発生器を含んでい
る。
正確な正規化シフトを決定するために開示される。加え
て、MSDを位置決めするための並列な方法が開示され
る。そのようなLZD回路と方法は、集積回路に組み込
まれ、LZD回路は、オペランドを表す入力信号から伝
搬値を発生するための伝搬値発生器と、発生された伝搬
値から位置値を発生するための位置値発生器を含んでい
る。
【0004】開示される加算器は、オペランドの結合の
間に発生されるパラメーターと位置値からシフト条件を
決定するためのシフト発生器を含んでいる。シフト発生
器は、シフト条件に応答して、オペランドの結合の非正
規化結果を正規化する際に、正規化和出力信号を発生す
るために使用されるシフト信号を発生する。LZD回路
を使用する加算器と方法の特徴は、添付図面に関してな
される本発明の図示される実施例の以下の詳細な説明を
参照して明らかになり、またよりよく理解されよう。
間に発生されるパラメーターと位置値からシフト条件を
決定するためのシフト発生器を含んでいる。シフト発生
器は、シフト条件に応答して、オペランドの結合の非正
規化結果を正規化する際に、正規化和出力信号を発生す
るために使用されるシフト信号を発生する。LZD回路
を使用する加算器と方法の特徴は、添付図面に関してな
される本発明の図示される実施例の以下の詳細な説明を
参照して明らかになり、またよりよく理解されよう。
【0005】
【発明の実施の形態】以下の詳細な説明は、加算と並列
に動作するLZD回路を使用してMSDの正確な位置を
決定する加算器に関する。加算器を実現する典型的な技
術は、論理レベルの減少された数となり、それは、オペ
ランドを加算し正規化する際にかなりの実行時間を確保
する。図面を特に詳細に参照して、図1に示されるよう
に、同様な参照番号は同様なあるいは同一の素子を識別
する。本発明は、集積回路上で実現されることができる
加算器10と使用の方法を説明する。加算器10は、浮動小
数点加算回路12と、浮動小数点加算回路12と同時に並
列に動作して受信入力16を処理する先頭0/1検出器
(LZD)回路14とを具備する。
に動作するLZD回路を使用してMSDの正確な位置を
決定する加算器に関する。加算器を実現する典型的な技
術は、論理レベルの減少された数となり、それは、オペ
ランドを加算し正規化する際にかなりの実行時間を確保
する。図面を特に詳細に参照して、図1に示されるよう
に、同様な参照番号は同様なあるいは同一の素子を識別
する。本発明は、集積回路上で実現されることができる
加算器10と使用の方法を説明する。加算器10は、浮動小
数点加算回路12と、浮動小数点加算回路12と同時に並
列に動作して受信入力16を処理する先頭0/1検出器
(LZD)回路14とを具備する。
【0006】受信入力16は、図2のようにAとBとラ
ベルされる例示的なオペランドのようなオペランドを表
すデータ信号を含んでいる。浮動小数点加算回路12
は、オペランドを結合して、入力信号16から非正規化
和値Si、キャリー値Ci、及び和値Siの符号値を表す
信号を含めて、データ信号として非正規化浮動小数点和
を発生する回路である。LZD14は、以下に詳細に説
明するように、Ui信号20として伝搬信号を発生する
ための伝搬値Ui発生器18を含み、LZD14は、以
下に詳細に説明するようにUi信号20からLi信号24
として位置値を発生するための位置値Li発生器22を
含んでいる。加算器10は、更に、シフト発生器26と
正規化器30をを含んでいる。シフト発生器26は、浮
動小数点加算回路12からデータ信号と同様にLi信号
24を受信してシフト信号28を発生する。正規化器3
0は、浮動小数点加算回路12からの非正規化和信号を
シフトし正規化して正規化和出力32を発生するために
シフト信号28を受信する。
ベルされる例示的なオペランドのようなオペランドを表
すデータ信号を含んでいる。浮動小数点加算回路12
は、オペランドを結合して、入力信号16から非正規化
和値Si、キャリー値Ci、及び和値Siの符号値を表す
信号を含めて、データ信号として非正規化浮動小数点和
を発生する回路である。LZD14は、以下に詳細に説
明するように、Ui信号20として伝搬信号を発生する
ための伝搬値Ui発生器18を含み、LZD14は、以
下に詳細に説明するようにUi信号20からLi信号24
として位置値を発生するための位置値Li発生器22を
含んでいる。加算器10は、更に、シフト発生器26と
正規化器30をを含んでいる。シフト発生器26は、浮
動小数点加算回路12からデータ信号と同様にLi信号
24を受信してシフト信号28を発生する。正規化器3
0は、浮動小数点加算回路12からの非正規化和信号を
シフトし正規化して正規化和出力32を発生するために
シフト信号28を受信する。
【0007】種々の構成要素12−30を含めて加算器
10は、一般に集積回路(IC)内に組み込まれてい
て、格納レジスタと算術/論理ユニット(ALU)のよ
うなICの他の回路に接続され、それと共に組み込まれ
ていてもよい。加算器10は、ICに動作的に接続さ
れ、あるいはそれに含まれる制御機構により当業者に知
られている方法で制御される。浮動小数点加算回路12
は、フィールド等に共通に譲渡された米国特許4,758,97
4号に述べられている浮動小数点加算回路のように、当
業者に知られている方法で実現されてもよい。2つの浮
動少数点数を加算後、浮動小数点加算回路12により発
生される和は、非正規化浮動少数点数である。以下は、
4つの可能な場合を説明し、MSDの位置は位置値Li
の論理1により示される、即ちMSDにおいてLi=1
である。
10は、一般に集積回路(IC)内に組み込まれてい
て、格納レジスタと算術/論理ユニット(ALU)のよ
うなICの他の回路に接続され、それと共に組み込まれ
ていてもよい。加算器10は、ICに動作的に接続さ
れ、あるいはそれに含まれる制御機構により当業者に知
られている方法で制御される。浮動小数点加算回路12
は、フィールド等に共通に譲渡された米国特許4,758,97
4号に述べられている浮動小数点加算回路のように、当
業者に知られている方法で実現されてもよい。2つの浮
動少数点数を加算後、浮動小数点加算回路12により発
生される和は、非正規化浮動少数点数である。以下は、
4つの可能な場合を説明し、MSDの位置は位置値Li
の論理1により示される、即ちMSDにおいてLi=1
である。
【0008】ケースA:A>0,B>0,A+B>0
【表1】
【表2】
【表3】
【0009】ケースB:A<0,B<0,A+B<0
【表4】
【表5】
【表6】
【0010】ケースC:A>0,B<0,A+B<0
【表7】
【表8】
【表9】
【0011】ケースD:A>0,B<0,A+B>0
【表10】
【表11】
【表12】
【0012】ここで、用語「デジット」は、加算器10
により実現される予め決められた数系において使用され
るシンボルであると定義される。ここに開示される例で
は、2値デジットが示され、それでは、開示される加算
器10は、基数2でオペランドを表すデータ信号の加算
を実行する。当業者は、開示される加算器10と使用方
法の原理を実現できて基数10のようないかなる基数の
オペランドを表すデータ信号の加算あるいは減算を実行
することができることは理解されよう。
により実現される予め決められた数系において使用され
るシンボルであると定義される。ここに開示される例で
は、2値デジットが示され、それでは、開示される加算
器10は、基数2でオペランドを表すデータ信号の加算
を実行する。当業者は、開示される加算器10と使用方
法の原理を実現できて基数10のようないかなる基数の
オペランドを表すデータ信号の加算あるいは減算を実行
することができることは理解されよう。
【0013】上記のテーブルでは、nは左端の値であ
り、N−1に等しくてもよい。ここで、Nは、オペラン
ドのビット数であり、例えば、32ビット加算ではN=
32である。上記の”X”値は、「ドントケアー」ビッ
トを示し、U関数は、オペランドから発生される伝搬関
数であり、Ui値20は、MSDの位置を示すポインタ
ーを伝搬するために使用されてもよい。
り、N−1に等しくてもよい。ここで、Nは、オペラン
ドのビット数であり、例えば、32ビット加算ではN=
32である。上記の”X”値は、「ドントケアー」ビッ
トを示し、U関数は、オペランドから発生される伝搬関
数であり、Ui値20は、MSDの位置を示すポインタ
ーを伝搬するために使用されてもよい。
【0014】例示的な実施例では、Uに対する論理式
は、以下のように表される。 Ui = (NOT N1) AND (NOT N2) AND (NOT N3) (1) ここで、 N1 = Pi AND (NOT Pi+1) N2 = (NOT Pi) AND (NOT Pi+1) AND (NOT Pi+2) AND Gi N3 = (NOT Pi) AND (NOT Pi+1) AND Pi+2 AND (NOT Gi) Gi = (Ai XOR Ai+1) であり、伝搬キャリーポインター
Pi、Pi+1、Pi+2はそれぞれビット位置i、i+1、
i+2において、 Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される。
は、以下のように表される。 Ui = (NOT N1) AND (NOT N2) AND (NOT N3) (1) ここで、 N1 = Pi AND (NOT Pi+1) N2 = (NOT Pi) AND (NOT Pi+1) AND (NOT Pi+2) AND Gi N3 = (NOT Pi) AND (NOT Pi+1) AND Pi+2 AND (NOT Gi) Gi = (Ai XOR Ai+1) であり、伝搬キャリーポインター
Pi、Pi+1、Pi+2はそれぞれビット位置i、i+1、
i+2において、 Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される。
【0015】LZD14は、上記式(1)を実現するた
めにUi発生器18を含んでいる。図2に示される実施
例では、Ui発生器は、3論理ステージに構成された論
理ゲートの、即ち4論理レベルに構成された3ステージ
の論理ゲートの複数のセル34を含んでいる。各セル
は、Ai、Ai+1、Ai+2、Bi、Bi+1、Bi+2とラベルが
付けられた関連するビット38を持つA、Bとラベルが
付けられたオペランド36から、i=0からi=N−1
までに対して各Uiを発生する。図2に示されるよう
に、第1の論理ステージ40の排他的論理和(XOR)
ゲートは、ビット38を受信して、Pi、Pi+1、
Pi+2、Gi=(Ai XOR Ai+1)を発生する。ここ
で、2論理レベルは、第1の論理ステージにおけるXO
Rゲートを実現し、その結果3論理ステージは、高々4
論理レベルを含むだけである。第2の論理ステージ42
は、上記のように、N1、N2、N3を発生するためにN
ANDゲートとインバーターを含んでいる。第3の論理
ステージは、式(1)で上述したように、N1、N2、N
3からUiを発生するためにANDゲートを含んでいる。
めにUi発生器18を含んでいる。図2に示される実施
例では、Ui発生器は、3論理ステージに構成された論
理ゲートの、即ち4論理レベルに構成された3ステージ
の論理ゲートの複数のセル34を含んでいる。各セル
は、Ai、Ai+1、Ai+2、Bi、Bi+1、Bi+2とラベルが
付けられた関連するビット38を持つA、Bとラベルが
付けられたオペランド36から、i=0からi=N−1
までに対して各Uiを発生する。図2に示されるよう
に、第1の論理ステージ40の排他的論理和(XOR)
ゲートは、ビット38を受信して、Pi、Pi+1、
Pi+2、Gi=(Ai XOR Ai+1)を発生する。ここ
で、2論理レベルは、第1の論理ステージにおけるXO
Rゲートを実現し、その結果3論理ステージは、高々4
論理レベルを含むだけである。第2の論理ステージ42
は、上記のように、N1、N2、N3を発生するためにN
ANDゲートとインバーターを含んでいる。第3の論理
ステージは、式(1)で上述したように、N1、N2、N
3からUiを発生するためにANDゲートを含んでいる。
【0016】他の実施例では、伝搬値Uiは、 Ui = (NOT N4) AND (NOT N5) (2) として表され、ここで、 N4 = (Gi OR Hi) AND (NOT Pi+2) N5 = NOT (Gi AND Hi) AND Pi+2 AND (NOT Pi+1) であり、Hi = (Bi XOR Bi+1)である。
【0017】Ui発生器18は、実施例では、図3に示
されるように上記式(2)を実現する。ここで、Ui発
生器18は、4論理ステージに構成された論理ゲート、
即ち論理レベルにおいて構成された4ステージの論理ゲ
ートの複数のセル46を含んでいる。図3に示されるよ
うに、4論理ステージは、5論理レベルを含み、ここ
で、各XORゲートは、2論理レベルを使用して実現さ
れる。各セルは、Ai、Ai+1、Ai+2、Bi、Bi+1、B
i+2とラベルが付けられた関連するビット38を持つ
A、Bとラベルが付けられたオペランド36から、i=
0からi=N−1までに対して各Uiを発生する。図2
に示されるように、第1の論理ステージ48の排他的論
理和(XOR)ゲートは、ビット38を受信して、P
i+1、Pi+2、Gi=(Ai XOR Ai+1)と、Hi=
(Bi XOR Bi+1)を発生する。ここで、2論理レ
ベルは、第1の論理ステージ48のXORゲートを実現
し、それで4論理ステージは、高々5論理レベルを含む
だけである。第2の論理ステージ50は、ORゲートと
NANDゲートを含んでいる。第3の論理ステージ52
は、上記のようにN4とN5を発生するためにインバータ
ーとNANDゲートを含んでいる。第4の論理ステージ
54は、式(2)で上記したように、N4とN5からUi
を発生するためにANDゲートを含んでいる。Ui発生
器18により発生されたUi値20を用いて、加算器1
0は、MSDの近似的位置を決める高速で並列な方法を
実行し、Li値を発生してMSDの正確な位置を決定
し、非正規化浮動少数点のシフトを実行する。
されるように上記式(2)を実現する。ここで、Ui発
生器18は、4論理ステージに構成された論理ゲート、
即ち論理レベルにおいて構成された4ステージの論理ゲ
ートの複数のセル46を含んでいる。図3に示されるよ
うに、4論理ステージは、5論理レベルを含み、ここ
で、各XORゲートは、2論理レベルを使用して実現さ
れる。各セルは、Ai、Ai+1、Ai+2、Bi、Bi+1、B
i+2とラベルが付けられた関連するビット38を持つ
A、Bとラベルが付けられたオペランド36から、i=
0からi=N−1までに対して各Uiを発生する。図2
に示されるように、第1の論理ステージ48の排他的論
理和(XOR)ゲートは、ビット38を受信して、P
i+1、Pi+2、Gi=(Ai XOR Ai+1)と、Hi=
(Bi XOR Bi+1)を発生する。ここで、2論理レ
ベルは、第1の論理ステージ48のXORゲートを実現
し、それで4論理ステージは、高々5論理レベルを含む
だけである。第2の論理ステージ50は、ORゲートと
NANDゲートを含んでいる。第3の論理ステージ52
は、上記のようにN4とN5を発生するためにインバータ
ーとNANDゲートを含んでいる。第4の論理ステージ
54は、式(2)で上記したように、N4とN5からUi
を発生するためにANDゲートを含んでいる。Ui発生
器18により発生されたUi値20を用いて、加算器1
0は、MSDの近似的位置を決める高速で並列な方法を
実行し、Li値を発生してMSDの正確な位置を決定
し、非正規化浮動少数点のシフトを実行する。
【0018】LZD14は、LZD機能を実行するため
に使用されるLi値24を発生するためのLi発生器22
を含んでいる。正の整数値Dは、例えば、LZD14の
演算特性に依存する予め決められた数であると定義され
る。加算で全体のビット数がNである場合では、i=0
からN−1に対するLi値は、ブール代数式に従って以
下のように決定される。 Li = NOT Ui AND Vi AND Xi (3) ここで、[]は、最小整数関数であり、i=0からN-1に対
してk=[i/D]であり、i<N-1に対してp=D*k、q=D*(k+1)-
1、r=D*(K+1)であり、i=N-1ではr=N-1であり、s=N-1で
あり、関数AND(x,y)は、xからyまでの範囲の数値列の
ANDを取ったものとして定義される。例えば、 Vi = 論理1 i = q ならば、 AND(Ui+1、 Uq) i < qならば、 Wi = 論理1 i ≧ N-D ならば、 AND (Ur, Us) i < N-Dならば、 Xi = (NOT AND(Up, Uq)) AND Wi AND(U0,U3) = U0 AND U1 AND U2 AND U3 (4) で、AND(x,x)=Xであり、例えば、AND(U31,U31)=U31であ
る。
に使用されるLi値24を発生するためのLi発生器22
を含んでいる。正の整数値Dは、例えば、LZD14の
演算特性に依存する予め決められた数であると定義され
る。加算で全体のビット数がNである場合では、i=0
からN−1に対するLi値は、ブール代数式に従って以
下のように決定される。 Li = NOT Ui AND Vi AND Xi (3) ここで、[]は、最小整数関数であり、i=0からN-1に対
してk=[i/D]であり、i<N-1に対してp=D*k、q=D*(k+1)-
1、r=D*(K+1)であり、i=N-1ではr=N-1であり、s=N-1で
あり、関数AND(x,y)は、xからyまでの範囲の数値列の
ANDを取ったものとして定義される。例えば、 Vi = 論理1 i = q ならば、 AND(Ui+1、 Uq) i < qならば、 Wi = 論理1 i ≧ N-D ならば、 AND (Ur, Us) i < N-Dならば、 Xi = (NOT AND(Up, Uq)) AND Wi AND(U0,U3) = U0 AND U1 AND U2 AND U3 (4) で、AND(x,x)=Xであり、例えば、AND(U31,U31)=U31であ
る。
【0019】上記式(1)−(4)から、Li値は、実
施例では、Liを決定するために図4に示される論理ゲ
ートを含む回路を用いて発生される。ここで、先頭のゼ
ロは32ビット加算を正規化するために検出される。こ
こで、例えば、N=32でD=4が上記式(1)−
(4)で使用される。Dの値は、Li発生器22の論理
ゲートの演算特性により決定される。例えば、そのよう
な論理ゲートは、最大4入力で最適に動作し、それで論
理ゲートの各々は高々4入力を持つだけである。上記式
(1)−(3)に従って、64ビット加算、128ビッ
ト加算、及び他の多数ビット加算と減算演算と同様に、
32ビット加算に対するLi値の決定を行うための論理
回路を当業者は容易に設計できることは理解されよう。
施例では、Liを決定するために図4に示される論理ゲ
ートを含む回路を用いて発生される。ここで、先頭のゼ
ロは32ビット加算を正規化するために検出される。こ
こで、例えば、N=32でD=4が上記式(1)−
(4)で使用される。Dの値は、Li発生器22の論理
ゲートの演算特性により決定される。例えば、そのよう
な論理ゲートは、最大4入力で最適に動作し、それで論
理ゲートの各々は高々4入力を持つだけである。上記式
(1)−(3)に従って、64ビット加算、128ビッ
ト加算、及び他の多数ビット加算と減算演算と同様に、
32ビット加算に対するLi値の決定を行うための論理
回路を当業者は容易に設計できることは理解されよう。
【0020】上記実施例は、正の論理を使用する。即
ち、論理値TRUEは論理1あるいは高い信号により表
される。当業者には、負論理を使用することができるこ
とは理解されよう。加えて、式(1)−(4)を関数に
おいて論理的に等価であるように変換することができる
こと、例えば、ド・モルガンの法則が式(1)を Ui = NOT (N1 OR N2 OR N3) (5) に変換するために適用可能であることは当業者には理解
されよう。上記式では、例えば、図2の第2ステージ4
2のNANDゲートをANDゲートで置換し、第3ステ
ージ44のANDゲートを多入力NORゲートで置換す
ることにより実現される。
ち、論理値TRUEは論理1あるいは高い信号により表
される。当業者には、負論理を使用することができるこ
とは理解されよう。加えて、式(1)−(4)を関数に
おいて論理的に等価であるように変換することができる
こと、例えば、ド・モルガンの法則が式(1)を Ui = NOT (N1 OR N2 OR N3) (5) に変換するために適用可能であることは当業者には理解
されよう。上記式では、例えば、図2の第2ステージ4
2のNANDゲートをANDゲートで置換し、第3ステ
ージ44のANDゲートを多入力NORゲートで置換す
ることにより実現される。
【0021】図4の回路では、Li発生器22は、Ui値
20を受信するために複数のNANDゲート56を含ん
でいる。各ANDゲートはD入力値、例えばD=4を受
信する。各NANDゲート56の出力は、ANDゲート
60、インバーター62、及びANDゲート64のよう
な複数の論理ゲートを有する論理回路58により受信さ
れる。特に、論理回路58のANDゲートは、予め決め
られたANDゲートの出力と、その予め決められたAN
Dゲートに先行するNANDゲート56のサブセットの
反転出力に対してAND演算機能を実行する。反転出力
は、NANDゲート64と同様に、インバーター62を
用いて発生されてもよい。直列に接続された2つのイン
バーターは、論理的にはインバーターがないのと等価で
あると評価されるが、回路のタイミングは、そのような
直列接続されたインバーター対を使用する必要があると
いうことは理解されよう。
20を受信するために複数のNANDゲート56を含ん
でいる。各ANDゲートはD入力値、例えばD=4を受
信する。各NANDゲート56の出力は、ANDゲート
60、インバーター62、及びANDゲート64のよう
な複数の論理ゲートを有する論理回路58により受信さ
れる。特に、論理回路58のANDゲートは、予め決め
られたANDゲートの出力と、その予め決められたAN
Dゲートに先行するNANDゲート56のサブセットの
反転出力に対してAND演算機能を実行する。反転出力
は、NANDゲート64と同様に、インバーター62を
用いて発生されてもよい。直列に接続された2つのイン
バーターは、論理的にはインバーターがないのと等価で
あると評価されるが、回路のタイミングは、そのような
直列接続されたインバーター対を使用する必要があると
いうことは理解されよう。
【0022】論理回路58は、出力ゲート値列66を出
力し、その値列は、複数のANDゲート68によりUi
値20に関してあるいはそれらの否定に関してANDさ
れ、複数のLi値24をそれぞれ発生する。こうして、
図4に示されるLi発生器22の回路は、上記式(3)
を実現する。特に、ゲート出力値66は、ga0、g
a1、...ga7とラベルが付けられる。ここで、i=
0からN−1で、あるk=[i/D]では、i=D*k
からD*(k+1)−1では、上記の定義のように、g
ak=Xiである。また、[]は最小整数関数である。
力し、その値列は、複数のANDゲート68によりUi
値20に関してあるいはそれらの否定に関してANDさ
れ、複数のLi値24をそれぞれ発生する。こうして、
図4に示されるLi発生器22の回路は、上記式(3)
を実現する。特に、ゲート出力値66は、ga0、g
a1、...ga7とラベルが付けられる。ここで、i=
0からN−1で、あるk=[i/D]では、i=D*k
からD*(k+1)−1では、上記の定義のように、g
ak=Xiである。また、[]は最小整数関数である。
【0023】図9で以下に詳細に説明される、Li値を
用いてMSDの正確な位置を見つける方法では、シフト
レジスター26は、Li=1であるかどうかと非正規化
和値Si +1は、非正規化和の値Si+2とは異なかどうかを
決定し、それで、左シフトを発生し、他の場合には、シ
フトは発生しない。即ち、シフト条件が決定され、シフ
ト信号が従って発生される。
用いてMSDの正確な位置を見つける方法では、シフト
レジスター26は、Li=1であるかどうかと非正規化
和値Si +1は、非正規化和の値Si+2とは異なかどうかを
決定し、それで、左シフトを発生し、他の場合には、シ
フトは発生しない。即ち、シフト条件が決定され、シフ
ト信号が従って発生される。
【0024】正規化器30は、浮動小数点加算回路12
から非正規化和とシフト信号28を受信し、それらから
正規化和出力32を発生する。図5の実施例では、正規
化器30は、論理0値88と非正規化和90を受信し、
その和90は、複数のスイッチ92−96で非正規化値
S0からSn+1の列である。複数のスイッチ92ー96の
各々は、シフト信号28に応答して、少なくとも2つの
連続値の間でスイッチして正規化和値列98−102を
発生する。それらは、正規化和としてSUM0、SU
M1、...、SUMnとラベルされる。例えば、スイッ
チ94は、シフト信号28がハイ、即ち論理1のとき、
S0がSUM1として出力され、シフト信号28がロー、
即ち論理0であるとき、S1がSUM1として出力される
ように、S0とS1の間でスイッチする。実施例では、ス
イッチ92−96は、マルチプレクサー(MUX)であ
る。他の実施例では、スイッチ92−96は、当業者に
知られているようにシフト信号28に応答して連続する
非正規化値間でスイッチするように動作するシフトレジ
スター、スイッチングトランジスター、及び/あるいは
論理ゲートであってもよい。
から非正規化和とシフト信号28を受信し、それらから
正規化和出力32を発生する。図5の実施例では、正規
化器30は、論理0値88と非正規化和90を受信し、
その和90は、複数のスイッチ92−96で非正規化値
S0からSn+1の列である。複数のスイッチ92ー96の
各々は、シフト信号28に応答して、少なくとも2つの
連続値の間でスイッチして正規化和値列98−102を
発生する。それらは、正規化和としてSUM0、SU
M1、...、SUMnとラベルされる。例えば、スイッ
チ94は、シフト信号28がハイ、即ち論理1のとき、
S0がSUM1として出力され、シフト信号28がロー、
即ち論理0であるとき、S1がSUM1として出力される
ように、S0とS1の間でスイッチする。実施例では、ス
イッチ92−96は、マルチプレクサー(MUX)であ
る。他の実施例では、スイッチ92−96は、当業者に
知られているようにシフト信号28に応答して連続する
非正規化値間でスイッチするように動作するシフトレジ
スター、スイッチングトランジスター、及び/あるいは
論理ゲートであってもよい。
【0025】加算器10の動作は図6−10のフローチ
ャートに示されている。図6は、加算器の主動作を示
し、以下のステップを含んでいる。ステップ104で加
算の実行を開始し、ステップ106でオペランドを表す
入力データ信号16を受信し、浮動小数点加算回路12
を用いてステップ108で入力オペランドの非正規化和
を発生し、ステップ108での非正規化和の発生と同時
に、また並列にステップ110でLZD14を用いて先
頭の0/1を検出し、ステップ112でシフト発生器2
6を用いてシフト信号28を発生し、ステップ114で
非正規化和を正規化してシフト信号28に応答する正規
化器30を用いて正規化和出力32を発生する。
ャートに示されている。図6は、加算器の主動作を示
し、以下のステップを含んでいる。ステップ104で加
算の実行を開始し、ステップ106でオペランドを表す
入力データ信号16を受信し、浮動小数点加算回路12
を用いてステップ108で入力オペランドの非正規化和
を発生し、ステップ108での非正規化和の発生と同時
に、また並列にステップ110でLZD14を用いて先
頭の0/1を検出し、ステップ112でシフト発生器2
6を用いてシフト信号28を発生し、ステップ114で
非正規化和を正規化してシフト信号28に応答する正規
化器30を用いて正規化和出力32を発生する。
【0026】ステップ110における先頭の0/1を検
出するステップは、Ui発生器18を用いてステップ1
16でUiとラベルが付けられた複数の伝搬値20を発
生し、伝搬値Uiからステップ118Li信号としてLi
とラベルされた複数の位置値24を発生するステップを
含んでいる。特に、Ui値とLi値は、式(1)−(3)
に従って決定され、図7−8の方法により実現される。
出するステップは、Ui発生器18を用いてステップ1
16でUiとラベルが付けられた複数の伝搬値20を発
生し、伝搬値Uiからステップ118Li信号としてLi
とラベルされた複数の位置値24を発生するステップを
含んでいる。特に、Ui値とLi値は、式(1)−(3)
に従って決定され、図7−8の方法により実現される。
【0027】図2−3のいずれかの実施例に関して図7
を参照して、i=0からN−1までからUi値を発生す
るステップ116は、ステップ120でUiの発生を開
始し、ステップ122でオペランドA、BのAi、
Ai+1、Ai+2、Bi、Bi+1、Bi+2を含むオペランド値
を受信し、図2に示されるステージ42−44を用いて
しき(1)と関連して上記したように、他に、図3に示
されるステージ50−54を用いて式(2)と関連して
上記したように、ステップ124でオペランド力伝搬キ
ャリーと中間論理値を発生し、それぞれ、式(1)ある
いは(2)に従って、伝搬キャリーと中間論理値からス
テップ126で伝搬値Uiを発生するステップを含んで
いる。特に、中間論理値は、上で定義されたように、G
iとHiを含んでいる。
を参照して、i=0からN−1までからUi値を発生す
るステップ116は、ステップ120でUiの発生を開
始し、ステップ122でオペランドA、BのAi、
Ai+1、Ai+2、Bi、Bi+1、Bi+2を含むオペランド値
を受信し、図2に示されるステージ42−44を用いて
しき(1)と関連して上記したように、他に、図3に示
されるステージ50−54を用いて式(2)と関連して
上記したように、ステップ124でオペランド力伝搬キ
ャリーと中間論理値を発生し、それぞれ、式(1)ある
いは(2)に従って、伝搬キャリーと中間論理値からス
テップ126で伝搬値Uiを発生するステップを含んで
いる。特に、中間論理値は、上で定義されたように、G
iとHiを含んでいる。
【0028】図4と関連して図8を参照して、Li値2
4を発生するステップ118は、ステップ128でLi
値の発生を開始し、複数のNANDゲート56でステッ
プ130でUi値20を受信し、ステップ132で各N
ANDゲート56でUi位置の予め決められた数DをN
ANDし、ステップ134で複数のANDゲートを有す
る論理回路によりNANDゲート56の出力を処理して
式(3)に従ってゲート値gakを発生し、ここで、i
=0からN−1に対してk=[i/4]であり、[]は
最小整数関数であり、及びステップ136でgak値と
各Ui力各Li値を発生するステップを含んでいる。
4を発生するステップ118は、ステップ128でLi
値の発生を開始し、複数のNANDゲート56でステッ
プ130でUi値20を受信し、ステップ132で各N
ANDゲート56でUi位置の予め決められた数DをN
ANDし、ステップ134で複数のANDゲートを有す
る論理回路によりNANDゲート56の出力を処理して
式(3)に従ってゲート値gakを発生し、ここで、i
=0からN−1に対してk=[i/4]であり、[]は
最小整数関数であり、及びステップ136でgak値と
各Ui力各Li値を発生するステップを含んでいる。
【0029】シフト発生器26は、その後、図9に示さ
れる方法を用いてシフト信号28を発生する。図9を参
照して、シフト発生器26は、ステップ138でシフト
信号28の発生を開始し、ステップ140で浮動小数点
加算回路12から非正規化和値Siのような合計パラメ
ーターと、LZD14から位置値Liを受信し、その
後、i=0からN−1に対してシフト発生器26は、ス
テップ142でシフトが行われるべきかどうかを判定
し、ステップ144でシフト信号を出力する。ステップ
142でのシフトを判定するステップは、ステップ14
6−152を含み、そこでは、Li=1で、和値S
i+1が、ステップ146で、非正規化和の値Si+2とは異
なると判定されれば、シフト発生器26は、ステップ1
48でシフト信号28として論理1のようなシフト値を
発生する。他の場合には、シフト発生器26は、ステッ
プ150でシフト信号28として論理0のような非シフ
ト値を発生する。シフト発生器26は、シフト信号28
を正規化器30にステップ144で出力する。
れる方法を用いてシフト信号28を発生する。図9を参
照して、シフト発生器26は、ステップ138でシフト
信号28の発生を開始し、ステップ140で浮動小数点
加算回路12から非正規化和値Siのような合計パラメ
ーターと、LZD14から位置値Liを受信し、その
後、i=0からN−1に対してシフト発生器26は、ス
テップ142でシフトが行われるべきかどうかを判定
し、ステップ144でシフト信号を出力する。ステップ
142でのシフトを判定するステップは、ステップ14
6−152を含み、そこでは、Li=1で、和値S
i+1が、ステップ146で、非正規化和の値Si+2とは異
なると判定されれば、シフト発生器26は、ステップ1
48でシフト信号28として論理1のようなシフト値を
発生する。他の場合には、シフト発生器26は、ステッ
プ150でシフト信号28として論理0のような非シフ
ト値を発生する。シフト発生器26は、シフト信号28
を正規化器30にステップ144で出力する。
【0030】加算器と方法が好適実施例を参照して特に
示され、説明されたが、形式と詳細における種々の変形
が本発明の範囲と精神から離れることなくなされること
ができることは当業者には理解されよう。従って、上記
のような変形は、それらに制限されないが、本発明の範
囲内にあると考えるべきである。
示され、説明されたが、形式と詳細における種々の変形
が本発明の範囲と精神から離れることなくなされること
ができることは当業者には理解されよう。従って、上記
のような変形は、それらに制限されないが、本発明の範
囲内にあると考えるべきである。
【図1】本発明の加算器のブロックダイアグラムであ
る。
る。
【図2】伝搬値発生器の例示的な論理図である。
【図3】伝搬値発生器の他の論理図である。
【図4】位置値発生器の例示的な論理図である。
【図5】正規化器回路のブロックダイアグラムである。
【図6】加算器の動作の方法のフローチャートである。
【図7】伝搬値を発生するための方法のフローチャート
である。
である。
【図8】位置値を発生するための方法のフローチャート
である。
である。
【図9】位置値からシフト信号を発生するための方法の
フローチャートである。
フローチャートである。
12 浮動小数点加算回路 14 先頭0/1検出器 16 入力 18 Ui発生器 22 Li発生器 24 Li信号 26 シフト発生器 30 正規化器 32 正規化和出力
Claims (22)
- 【請求項1】 各々複数のデジットを含む第1のオペラ
ンドAと第2のオペランドBを表す入力信号を結合して
正規化和出力信号を得るための加算器を含む集積回路で
あって、 前記オペランドの非正規化結果への結合に応答する先頭
0/1検出器(LZD)であって、その正規化のために
該結合の間に該非正規化結果の最上位デジットの正確な
位置値を決定するための先頭0/1検出器(LZD)を
具備する集積回路。 - 【請求項2】 前記LZDは、入力信号から伝搬値を発
生するための伝搬値発生器と、及び前記非正規化結果を
正規化するために前記発生された伝搬値から前記位置値
を発生するための位置値発生器を具備する請求項1に記
載の集積回路。 - 【請求項3】 前記伝搬値発生器は、対応するビット位
置i、i+1、i+2においてオペランドA、Bに対応
する複数のビットAi、Ai+1、Ai+2、Bi、Bi+1、B
i+2から伝搬値Uiを発生するための回路を具備し、ここ
で、 Ui = (NOT N1) AND (NOT N2) AND (NOT N3) であり、 N1 = Pi AND (NOT Pi+1) N2 = (NOT Pi) AND (NOT Pi+1) AND (NOT Pi+2) AND Gi N3 = (NOT Pi) AND (NOT Pi+1) AND Pi+2 AND (NOT Gi) Gi = (Ai XOR Ai+1) であり、伝搬キャリーポインターPi、Pi+1、P
i+2は、ビット位置i、i+1、i+2においてそれぞ
れ Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される請求項2に記載の集積回路。 - 【請求項4】 前記伝搬値発生器は、対応するビット位
置i、i+1、i+2においてオペランドA、Bに対応
する複数のビットAi、Ai+1、Ai+2、Bi、Bi+1、B
i+2から伝搬値Uiを発生するための回路を具備し、ここ
で、 Ui = (NOT N4) AND (NOT N5) であり、 N4 = (Gi OR Hi) AND (NOT Pi+2) N5 = NOT (Gi AND Hi) AND Pi+2 AND (NOT Pi+1) Gi = (Ai XOR Ai+1) Hi = (Bi XOR Bi+1) であり、伝搬キャリーポインターPi、Pi+1、P
i+2は、ビット位置i、i+1、i+2においてそれぞ
れ Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される請求項2に記載の集積回路。 - 【請求項5】 前記位置値発生器は、対応するビット位
置i、i+1、i+2においてオペランドA、Bに対応
する複数のビットAi、Ai+1、Ai+2、Bi、Bi+1、B
i+2から位置値Liを発生するための回路を具備し、ここ
で、 Li = (NOT Ui) AND Vi AND Xi であり、 Vi = 論理1 i = q ならば、 AND(Ui+1、 Uq) i < qならば、 Wi = 論理1 i ≧ N-D ならば、 AND (Ur, Us) i < N-Dならば、 Xi = (NOT AND(Up, Uq)) AND Wi であり、NはオペランドAとBにおけるビット数であ
り、Dは予め決められた演算特性であり、[]は最小整
数関数であり、i=0からN−1までに対してk=[i
/D]であり、p=D*kであり、q=D*(k+1)
−1であり、i<N−1に対してr=D*(k+1)で
あり、i=N−1に対してr=N−1であり、s=N−
1であり、関数AND(x,y)はxからy間での範囲
の一連の値のANDを取ることとして定義され、Ui,
Up、Uq、Ur、Usは、それぞれビットインデックス
i、p、q、r、sと関連する伝搬値である請求項2に
記載の集積回路。 - 【請求項6】 前記結合の間に発生されるパラメーター
と前記位置値からシフト条件を決定し、前記正規化和出
力信号を発生するために、前記シフト条件に応答して前
記非正規化結果を正規化する際に使用されるシフト信号
を発生するためのシフト発生器を更に具備する請求項2
に記載の集積回路。 - 【請求項7】 前記オペランドを結合して前記非正規化
結果と前記パラメーターを発生するための浮動小数点加
算回路を更に具備する請求項6に記載の集積回路。 - 【請求項8】 前記シフト信号に応答して、前記非正規
化結果をシフトして前記正規化和出力信号を発生するた
めの正規化器を更に具備する請求項6に記載の集積回
路。 - 【請求項9】 対応するビット位置i、i+1、i+2
においてオペランドA、Bを表す入力信号に対応する複
数のビットAi、Ai+1、Ai+2、Bi、Bi+1、Bi+2から
伝搬値Uiを発生するための伝搬値発生器と、 前記発生された伝搬値UiからオペランドA、Bの非正
規化和の最上位デジットを示す位置値Liを発生するた
めの位置値発生器を具備し、ここで、 Li = (NOT Ui) AND Vi AND Xi であり、 Vi = 論理1 i = q ならば、 AND(Ui+1, Uq) i < qならば、 Wi = 論理1 i ≧ N-D ならば、 AND (Ur, Us) i < N-Dならば、 Xi = (NOT AND(Up, Uq)) AND Wi であり、NはオペランドAとBにおけるビット数であ
り、Dは予め決められた演算特性であり、[]は最小整
数関数であり、i=0からN−1までに対してk=[i
/D]であり、p=D*kであり、q=D*(k+1)
−1であり、i<N−1に対してr=D*(k+1)で
あり、i=N−1に対してr=N−1であり、s=N−
1であり、関数AND(x,y)はxからy間での範囲
の一連の値のANDを取ることとして定義され、Ui、
Up、Uq、Ur、Usは、それぞれビットインデックス
i、p、q、r、sと関連する伝搬値である先頭0/1
検出器(LZD)。 - 【請求項10】 前記伝搬値発生器は、 Ui = (NOT N1) AND (NOT N2) AND (NOT N3) に従って、複数の論理ゲートを用いてUiを決定し、こ
こで、 N1 = Pi AND (NOT Pi+1) N2 = (NOT Pi) AND (NOT Pi+1) AND (NOT Pi+2) AND Gi N3 = (NOT Pi) AND (NOT Pi+1) AND Pi+2 AND (NOT Gi) Gi = (Ai XOR Ai+1) 伝搬キャリーポインターPi、Pi+1、Pi+2は、ビット
位置i、i+1、i+2においてそれぞれ Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される請求項9に記載の先頭0/1検出器。 - 【請求項11】 前記伝搬値発生器は、 Ui = (NOT N4) AND (NOT N5) に従って、複数の論理ゲートを用いてUiを決定し、こ
こで、 N4 = (Gi OR Hi) AND (NOT Pi+2) N5 = NOT (Gi AND Hi) AND Pi+2 AND (NOT Pi+1) Gi = (Ai XOR Ai+1) Hi = (Bi XOR Bi+1) であり、伝搬キャリーポインターPi、Pi+1、P
i+2は、ビット位置i、i+1、i+2においてそれぞ
れ Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される請求項9に記載の集積回路。 - 【請求項12】 前記伝搬値発生器は、高々5論理レベ
ルに構成される複数の論理ゲートを用いてUiを決定す
る請求項9に記載の先頭0/1検出器。 - 【請求項13】 オペランドに対応する入力信号から非
正規化結果と、関連する和パラメーターを発生するため
の浮動小数点加算回路と、 前記オペランドの前記非正規化結果への結合に応答し
て、該結合の間に該非正規化結果の最上位デジットの位
置値を決定するための先頭0/1検出器(LZD)と、 前記結合の間に発生されるパラメーターと前記位置値か
らシフト条件を決定し、前記正規化和出力信号を発生す
るために、前記シフト条件に応答するシフト発生器と、
及び前記シフト信号に応答して、前記非正規化結果を正
規化して前記オペランドの和に対応する正規化和出力信
号を発生するための正規化器とを具備する加算器。 - 【請求項14】 前記LZDは、 対応するビット位置i、i+1、i+2においてオペラ
ンドA、Bを表す入力信号に対応する複数のビット
Ai、Ai+1、Ai+2、Bi、Bi+1、Bi+2から伝搬値Ui
を発生するための伝搬値発生器を具備し、ここで、 Ui = (NOT N1) AND (NOT N2) AND (NOT N3) であり、 N1 = Pi AND (NOT Pi+1) N2 = (NOT Pi) AND (NOT Pi+1) AND (NOT Pi+2) AND Gi N3 = (NOT Pi) AND (NOT Pi+1) AND Pi+2 AND (NOT Gi) Gi = (Ai XOR Ai+1) であり、伝搬キャリーポインターPi、Pi+1、P
i+2は、ビット位置i、i+1、i+2においてそれぞ
れ Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される請求項13に記載の加算器。 - 【請求項15】 前記LZDは、 対応するビット位置i、i+1、i+2においてオペラ
ンドA、Bを表す入力信号に対応する複数のビット
Ai、Ai+1、Ai+2、Bi、Bi+1、Bi+2から伝搬値Ui
を発生するための伝搬値発生器を具備し、ここで、 Ui = (NOT N4) AND (NOT N5) であり、 N4 = (Gi OR Hi) AND (NOT Pi+2) N5 = NOT (Gi AND Hi) AND Pi+2 AND (NOT Pi+1) Gi = (Ai XOR Ai+1) Hi = (Bi XOR Bi+1) であり、伝搬キャリーポインターPi、Pi+1、P
i+2は、ビット位置i、i+1、i+2においてそれぞ
れ Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される請求項13に記載の加算器。 - 【請求項16】 前記LZDは、 発生された伝搬値UiからオペランドA、Bの非正規化
和の最上位デジットを示す位置値Liを発生するための
位置値発生器を具備し、ここで、 Li = (NOT Ui) AND Vi AND Xi であり、 Vi = 論理1 i = q ならば、 AND(Ui+1, Uq) i < qならば、 Wi = 論理1 i ≧ N-D ならば、 AND (Ur, Us) i < N-Dならば、 Xi = (NOT AND(Up, Uq)) AND Wi であり、NはオペランドAとBにおけるビット数であ
り、Dは予め決められた演算特性であり、[]は最小整
数関数であり、i=0からN−1までに対してk=[i
/D]であり、p=D*kであり、q=D*(k+1)
−1であり、i<N−1に対してr=D*(k+1)で
あり、i=N−1に対してr=N−1であり、s=N−
1であり、関数AND(x,y)はxからy間での範囲
の一連の値のANDを取ることとして定義され、Ui、
Up、Uq、Ur、Usは、それぞれビットインデックス
i、p、q、r、sと関連する伝搬値である請求項13
に記載の加算器。 - 【請求項17】 前記シフト発生器は、あるビット位置
における前記非正規化結果の和ビットが前記非正規化結
果の値と異なっているかどうかを、前記シフト条件とし
て決定して、前記シフト信号としてシフト値を発生し、
他の場合に前記シフト信号としてシフト無し値を発生す
る請求項13に記載の加算器。 - 【請求項18】 オペランドA、Bを加算してそれらか
ら正規化和を得る方法であって、 前記オペランドA、Bに対応する入力信号を受信するこ
とと、 前記オペランドを結合して、入力信号から非正規化結果
と、関連する和パラメーターを発生することと、 前記結合の間に、前記非正規化結果の最上位デジットの
一値を決定することと、 前記結合の間に発生される和パラメーターと前記位置値
からシフト条件を決定することと、 前記シフト条件に応答してシフト信号を発生すること
と、及び前記シフト信号を用いて、前記非正規化結果を
正規化して前記オペランドの正規化和に対応する正規化
和出力信号を発生することとを具備する方法。 - 【請求項19】 前記位置値を決定するステップは、 対応するビット位置i、i+1、i+2においてオペラ
ンドA、Bを表す入力信号に対応する複数のビット
Ai、Ai+1、Ai+2、Bi、Bi+1、Bi+2から伝搬値Ui
を発生することを具備し、ここで、 Ui = (NOT N1) AND (NOT N2) AND (NOT N3) であり、 N1 = Pi AND (NOT Pi+1) N2 = (NOT Pi) AND (NOT Pi+1) AND (NOT Pi+2) AND Gi N3 = (NOT Pi) AND (NOT Pi+1) AND Pi+2 AND (NOT Gi) Gi = (Ai XOR Ai+1) であり、伝搬キャリーポインターPi、Pi+1、P
i+2は、ビット位置i、i+1、i+2においてそれぞ
れ Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される請求項18に記載の方法。 - 【請求項20】 前記位置値を決定するステップは、 対応するビット位置i、i+1、i+2においてオペラ
ンドA、Bを表す入力信号に対応する複数のビット
Ai、Ai+1、Ai+2、Bi、Bi+1、Bi+2から伝搬値Ui
を発生することを具備し、ここで、 Ui = (NOT N4) AND (NOT N5) であり、 N4 = (Gi OR Hi) AND (NOT Pi+2) N5 = NOT (Gi AND Hi) AND Pi+2 AND (NOT Pi+1) Gi = (Ai XOR Ai+1) Hi = (Bi XOR Bi+1) であり、伝搬キャリーポインターPi、Pi+1、P
i+2は、ビット位置i、i+1、i+2においてそれぞ
れ Pi = Ai XOR Bi Pi+1 = Ai+1 XOR Bi+1 Pi+2 = Ai+2 XOR Bi+2 として定義される請求項18に記載の方法。 - 【請求項21】 前記位置値を決定するステップは、発
生された伝搬値UiからオペランドA、Bの非正規化和
の最上位デジットを示す位置値Liを発生することを具
備し、ここで、 Li = (NOT Ui) AND Vi AND Xi であり、 Vi = 論理1 i = q ならば、 AND(Ui+1, Uq) i < qならば、 Wi = 論理1 i ≧ N-D ならば、 AND (Ur, Us) i < N-Dならば、 Xi = (NOT AND(Up, Uq)) AND Wi であり、NはオペランドAとBにおけるビット数であ
り、Dは予め決められた演算特性であり、[]は最小整
数関数であり、i=0からN−1までに対してk=[i
/D]であり、p=D*kであり、q=D*(k+1)
−1であり、i<N−1に対してr=D*(k+1)で
あり、i=N−1に対してr=N−1であり、s=N−
1であり、関数AND(x,y)はxからy間での範囲
の一連の値のANDを取ることとして定義され、Ui、
Up、Uq、Ur、Usは、それぞれビットインデックス
i、p、q、r、sと関連する伝搬値である請求項18
に記載の方法。 - 【請求項22】 前記シフト条件を決定するステップ
は、 あるビット位置における前記非正規化結果の和ビットが
前記非正規化結果の値と異なっているかどうかを、前記
シフト条件として決定することと、 前記シフト信号としての前記シフト条件に応答してシフ
ト値を発生することと、及び前記シフト信号として他の
場合にシフト無し値を発生することとを具備する請求項
18に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US52397195A | 1995-09-06 | 1995-09-06 | |
US08/523971 | 1995-09-06 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09114641A true JPH09114641A (ja) | 1997-05-02 |
Family
ID=24087190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8234577A Pending JPH09114641A (ja) | 1995-09-06 | 1996-09-05 | 最上位デジットを決定するための装置と方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5920493A (ja) |
EP (1) | EP0762268A1 (ja) |
JP (1) | JPH09114641A (ja) |
KR (1) | KR970016936A (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6085208A (en) * | 1997-10-23 | 2000-07-04 | Advanced Micro Devices, Inc. | Leading one prediction unit for normalizing close path subtraction results within a floating point arithmetic unit |
US6360238B1 (en) * | 1999-03-15 | 2002-03-19 | International Business Machines Corporation | Leading zero/one anticipator having an integrated sign selector |
US6594679B1 (en) * | 2000-03-20 | 2003-07-15 | International Business Machines Corporation | Leading-zero anticipator having an independent sign bit determination module |
US6587070B2 (en) * | 2001-04-03 | 2003-07-01 | Raytheon Company | Digital base-10 logarithm converter |
US6988115B2 (en) * | 2001-05-04 | 2006-01-17 | Broadcom Corporation | Method and apparatus to correct leading one prediction |
JP2004056642A (ja) * | 2002-07-23 | 2004-02-19 | Pioneer Electronic Corp | 対数変換器及び対数変換方法 |
US6904518B2 (en) * | 2002-07-25 | 2005-06-07 | Intel Corporation | Finding a significant bit in a computer data word |
US20060179098A1 (en) * | 2005-02-09 | 2006-08-10 | International Business Machines Corporation | System and method for reduction of leading zero detect for decimal floating point numbers |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4247891A (en) * | 1979-01-02 | 1981-01-27 | Honeywell Information Systems Inc. | Leading zero count formation |
CA1229415A (en) * | 1983-12-09 | 1987-11-17 | Masayuki Ikeda | Floating-point addition/subtraction system |
US4758974A (en) * | 1985-01-29 | 1988-07-19 | American Telephone And Telegraph Company, At&T Bell Laboratories | Most significant digit location |
JPS64821A (en) * | 1987-06-23 | 1989-01-05 | Matsushita Electric Ind Co Ltd | Priority encoder |
US4864527A (en) * | 1987-08-24 | 1989-09-05 | Victor Peng | Apparatus and method for using a single carry chain for leading one detection and for "sticky" bit calculation |
US4926369A (en) * | 1988-10-07 | 1990-05-15 | International Business Machines Corporation | Leading 0/1 anticipator (LZA) |
US4969118A (en) * | 1989-01-13 | 1990-11-06 | International Business Machines Corporation | Floating point unit for calculating A=XY+Z having simultaneous multiply and add |
US5144570A (en) * | 1989-08-02 | 1992-09-01 | Cyrix Corporation | Normalization estimator |
JP2523962B2 (ja) * | 1990-08-20 | 1996-08-14 | 松下電器産業株式会社 | 浮動小数点演算装置 |
JP2508912B2 (ja) * | 1990-10-31 | 1996-06-19 | 日本電気株式会社 | 浮動小数点加算装置 |
US5282156A (en) * | 1991-01-31 | 1994-01-25 | Matsushita Electric Industrial Co., Ltd. | Leading one anticipator and floating point addition/subtraction apparatus employing same |
US5204825A (en) * | 1991-08-30 | 1993-04-20 | Weitek Corporation | Method and apparatus for exact leading zero prediction for a floating-point adder |
US5359548A (en) * | 1992-04-15 | 1994-10-25 | Fujitsu Limited | Floating-point arithmetic system having multiple-input addition and subtraction means |
US5343413A (en) * | 1992-07-06 | 1994-08-30 | Matsushita Electric Industrial Co., Ltd. | Leading one anticipator and floating point addition/subtraction apparatus |
US5375078A (en) * | 1992-12-15 | 1994-12-20 | International Business Machines Corporation | Arithmetic unit for performing XY+B operation |
US5317527A (en) * | 1993-02-10 | 1994-05-31 | Digital Equipment Corporation | Leading one/zero bit detector for floating point operation |
US5341319A (en) * | 1993-02-10 | 1994-08-23 | Digital Equipment Corporation | Method and apparatus for controlling a rounding operation in a floating point multiplier circuit |
US5493520A (en) * | 1994-04-15 | 1996-02-20 | International Business Machines Corporation | Two state leading zero/one anticipator (LZA) |
-
1996
- 1996-08-16 KR KR1019960033825A patent/KR970016936A/ko not_active Application Discontinuation
- 1996-08-28 EP EP96306216A patent/EP0762268A1/en not_active Withdrawn
- 1996-09-05 JP JP8234577A patent/JPH09114641A/ja active Pending
-
1997
- 1997-08-15 US US08/912,046 patent/US5920493A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
KR970016936A (ko) | 1997-04-28 |
US5920493A (en) | 1999-07-06 |
EP0762268A1 (en) | 1997-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5373459A (en) | Floating point processor with high speed rounding circuit | |
EP0585619B1 (en) | Method of detecting zero condition of arithmetic or logical computation result, and circuit for same | |
KR950029924A (ko) | 부동 소수점점 덧셈/뺄셈 연산기의 반올림 방법 및 장치 | |
US5633819A (en) | Inexact leading-one/leading-zero prediction integrated with a floating-point adder | |
US6175851B1 (en) | Fast adder/subtractor for signed floating point numbers | |
US6205461B1 (en) | Floating point arithmetic logic unit leading zero count using fast approximate rounding | |
US20070050434A1 (en) | Data processing apparatus and method for normalizing a data value | |
US6499044B1 (en) | Leading zero/one anticipator for floating point | |
US6947962B2 (en) | Overflow prediction algorithm and logic for high speed arithmetic units | |
JPH09114641A (ja) | 最上位デジットを決定するための装置と方法 | |
US8732226B2 (en) | Integer rounding operation | |
US7139789B2 (en) | Adder increment circuit | |
JPH0542697B2 (ja) | ||
US7356553B2 (en) | Data processing apparatus and method for determining a processing path to perform a data processing operation on input data elements | |
JP4439060B2 (ja) | 浮動小数点加算器 | |
US6360238B1 (en) | Leading zero/one anticipator having an integrated sign selector | |
US7386580B2 (en) | Data processing apparatus and method for computing an absolute difference between first and second data elements | |
KR100252766B1 (ko) | 고속으로 동작하는 스티키 신호 생성기 | |
Kwak et al. | High-speed CORDIC based on an overlapped architecture and a novel σ-prediction method | |
CN112671411B (zh) | 一种基于ieee 754和posit的浮点数据格式的双向转换电路 | |
US20040049528A1 (en) | Apparatus and method for adding multiple-bit binary-strings | |
JP3286793B2 (ja) | キャリアウトを確定する回路及び方法 | |
Vazquez et al. | A Sum Error Detection Scheme for Decimal Arithmetic | |
US20040220991A1 (en) | Faster shift value calculation using modified carry-lookahead adder | |
JP3187402B2 (ja) | 浮動小数点データ加減算回路 |