JPH08212058A - 加算オーバフロ検出回路 - Google Patents
加算オーバフロ検出回路Info
- Publication number
- JPH08212058A JPH08212058A JP7041435A JP4143595A JPH08212058A JP H08212058 A JPH08212058 A JP H08212058A JP 7041435 A JP7041435 A JP 7041435A JP 4143595 A JP4143595 A JP 4143595A JP H08212058 A JPH08212058 A JP H08212058A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- addition
- bits
- addend
- 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.)
- Granted
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
- G06F7/505—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
- G06F7/506—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
- G06F7/507—Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using selection between two conditionally calculated carry or sum values
-
- 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/49905—Exception handling
- G06F7/4991—Overflow or underflow
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Executing Machine-Instructions (AREA)
Abstract
短いときでも、高速に加算オーバフロ検出が行なえる回
路を、少ないハードウェア量で実現する。 【構成】 符号なしnビット長の被加数11および加数
12を下位mビット、上位(n−m)ビットに分割す
る。下位側13,14は加算器1に入力し、第(m−
1)ビットから第mビットへのキャリ18を求める。上
位側15,16は2組の高速加算比較器2,3に入力
し、両者の和が全ビット0もしくは全ビット1になるこ
とを検出する。キャリ18の有無により、高速加算比較
器の検出出力19,20のうちいずれかを選択し、論理
反転して出力し、オーバフロ検出結果21とする。 【効果】 被加数と加数の下位側の加算と、上位側の高
速加算比較は並列に実行できるため、高速に加算オーバ
フロ検出を行なえる。
Description
または符号つき数の加算結果が正しく表現できないとき
のオーバフロを検出する加算オーバフロ検出回路、特に
加算器と並列に動作し、オーバフロ判定結果を高速に生
成する加算オーバフロ検出回路に関する。
て、図18から図21を用いて説明する。いま、符号な
しあるいは符号つき2進数で表された、nビット長の被
加数A=ai とB=bi (いずれも0≦i≦n−1)を
加算器に入力し、(n+1)ビット長の加算結果S=s
i (0≦i≦n)を得たとき、結果si が、規定のビッ
ト幅m(m≦n)で表現できるか、または表現できずに
オーバフロが発生するかを検出したいとする。
器の出力Sを参照してオーバフロ検出を行う。n=m=
16の場合の例を図18に示す。図18に示す構成で
は、被加数A141と加数B142を16ビット長加算
器131で加算し、その加算結果143とビット15か
らのキャリ144をオーバフロ検出回路132に入れ、
オーバフロ検出結果145を得ている。ところが、この
構成では、図19に示すように、加算器131での16
ビット長加算処理147が終了してからオーバフロ検出
回路132でオーバフロ検出処理148を開始するた
め、加算器131に被加数および加数146を与えてか
らオーバフロ検出処理148が終了するまでの遅延が長
いという欠点がある。
出を一部並列に行う手法が特開平3−62124公報で
提案されている。その回路構成を図20に示す。同図で
は図18と同様にn=m=16の場合が示されている。
この図20の回路では、被加数161と加数162とを
16ビット長加算器151に入力し、加算結果165を
得るとともに、被加数161の上位2ビットa14, 15 1
63と加数162の上位2ビットb14, 15 164とビッ
ト13からのキャリ166の計5ビットをオーバフロ検
出回路152に入力し、図21に示すように、被加数お
よび加数171の16ビット加算172のうち上位2ビ
ットの加算173とオーバフロ検出174を並列に行う
ことで、オーバフロ検出を高速化している。
す構成は、入力のビット長nが増え、さらに結果のビッ
ト長mがnより大幅に短いときには、回路規模が大きく
なりすぎ、事実上適用できない。図20に示す回路構成
では、オーバフロ検出回路152への入力線数は5ビッ
トであり、オーバフロ検出回路152は25 =32通り
の入力に対して1ビットのオーバフロ検出結果を決定す
る組合せ論理回路である。オーバフロ検出回路152の
内部構成については、特開平3−62124号公報に
は、具体的に開示されていないが、例えば汎用な組合せ
回路の実現手段であるプログラマブル・ロジック・アレ
イにより実現するとしても、入力ビット数からみて充分
実現可能な回路規模である。
プロセッサで、32ビット長のレジスタ上に置かれた符
号つきの2値を乗算し、結果をまた32ビット長のレジ
スタに書き戻す場合を考える。すると、乗算器内部の部
分積加算器ツリーの最終段では、被加数および加数につ
き64ビット長の2値a0 〜63とb0 〜63を加算し、そ
の結果が32ビットで正しく表せる範囲を超えた場合、
オーバフロが発生したとする必要がある。この場合、図
20と同様の構成をとれば、オーバフロ検出回路とし
て、67ビット入力(入力2値の上位33ビットa31〜
63とb31〜63および入力を加算したとき第30ビットか
ら発生するキャリ1ビット)の組合せ論理回路が必要に
なる。入力線数が67ビットに達する組合せ論理回路
は、プログラマブル・ロジック・アレイで実現したので
は回路規模が大きくなりすぎ、実用的ではない。
検出を行う回路のうち、加算器への入力ビット長nが大
きく、かつnと比較して結果のビット長mがかなり短い
ため、オーバフロ検出回路への入力ビット数が非常に多
くなる場合でも、小さな回路規模で実現できる並列オー
バフロ検出回路の構成方法を提供することにある。
ーバフロ検出回路では、符号なし数を扱うときは第(m
−1)ビットと第mビットの間を、符号つき数を扱うと
きは第(m−2)ビットと第(m−1)ビットの間を境
界にして、被加数と加数を上位側と下位側に分離し、下
位側を加算する1個の加算器と、上位側の加算結果があ
る目標値に等しいことを検出する1個以上の高速加算比
較器、および加算器が生成するキャリと高速加算比較器
の出力からオーバフロの有無を判定する回路を設け、上
記目的を達成している。
加数の上位側のうち1ないし2ビットをあらかじめ加算
する加算器を設け、その結果に基づき高速加算器の出力
を切り替える、もしくは高速加算比較器の動作状態を変
える回路を設けている。
の下位側の加算と、被加数と加数の上位側の加算結果が
目標値に等しいことを検出する高速加算比較とを並行し
て行なえる。従って、加算結果が確定した後、加算器が
生成するキャリと高速加算比較器の出力からオーバフロ
の有無を判定するだけのわずかな遅延でオーバフロ検出
結果を得られる。また、被加数と加数の上位側のうち1
ないし2ビットをあらかじめ加算する加算器を設け、そ
の結果に基づき高速加算器の出力を切り替える、もしく
は高速加算比較器の動作状態を変えれば、高速加算比較
器の個数を減らし、回路規模を削減できる。
図17を参照して説明する。まず、符号なし数の加算と
オーバフロの定義を行い、5通りの実施例すべてで使わ
れる高速加算比較器の構成を説明する。次に、符号なし
数の加算オーバフロを検出する第1と第2の実施例を説
明する。最後に、符号つき数の加算とオーバフロの定義
を行い、符号つき数の加算オーバフロを検出する第3か
ら第5の実施例を説明する。
符号なし数の加算とオーバフロを次のように定義する。
まず、nビット長の符号なし数の加算について、nビッ
ト長の被加数Aの各ビットを「ai 」(ただし0≦i≦
n−1)、加数Bの各ビットを「bi 」(ただし0≦i
≦n−1)と表す。このとき、被加数Aと加数Bの和S
=si (ただし0≦i≦n)は、次式(1) で定義され
る。被加数Aと加数Bの和をオーバフロなく表現するた
め、和Sは(n+1)ビット長である。
和Sの第mビットから第nビットがすべて0ならば、
(n+1)ビット長のSから下位mビット長を取り出し
たものを、再び(n+1)ビット長へ符号拡張しても値
が変わらない。すなわち和Sをmビットで表してもオー
バフロが発生しない。逆に、オーバフロが発生する条件
は次式(2) で表される。
フロが発生している。また▽は論理和を表す。さらに、
被加数Aと加数Bの上位(n−m)ビットの和R=ri
(ただしm≦i≦n)を、次式で定義する。ここで、R
は(n−m+1)ビット長である。
されるri には、次式の関係がある。
加算したときの、第cm-1 ビットから第cm ビットへの
キャリである。すなわちrm 〜n に、第cm-1 ビットか
ら第cm ビットへのキャリを加算すれば、sm 〜n に等
しくなる。
速加算比較器の構成について説明する。高速加算比較器
(Fast Adder-Comparator) は、式(3) で定義される被加
数Aと加数Bの和ri がある目標値K=ki (ただしm
≦i≦n)に等しいか否かを、2値の加算を行わずに高
速に判定する回路である。高速加算比較器の構成は、ア
イ・イー・イー・イー・トランザクションズ・オン・コ
ンピューターズ(IEEETransactions on Computers)第4
1巻11号 (1992年11月) 1484〜1488ページに掲載され
たCortadellaおよびLlaberiaによる論文、“Evaluation
of A+B=KConditions Without Carry Propagation
”に示されているので次に説明する。まず、伝搬キャ
リpi と生成キャリgi を次式で定義する。ここで*は
排他的論理和を、△は論理積を表す。
リ、すなわち第(i−1)ビットから第iビットへのキ
ャリがあった場合、第iビットから第(i+1)ビット
へのキャリが生成されることを示し、生成キャリg
i は、下位ビットからのキャリの有無にかかわらず第i
ビットから第(i+1)ビットへのキャリが生成される
ことを示す。次に、式(5) 、式(6) で表される伝搬キャ
リpi と生成キャリgi から、次式で定義されるキャリ
要求出力vi 、キャリ要求入力wi を定義する。
したときに、第iビットから上位ビット(第(i+1)
ビット)へ発生するキャリを示し、キャリ要求入力wi
は、第iビットからのキャリに対する、ki+1 =ri+1
になるために必要な条件を示す。従って、以下の式(9)
で表されるzi は、加算結果の第iビットri と目標値
の第iビットki が等しいとき真になり、その全ビット
にわたる論理積Zは、AとBの上位(n−m+1)ビッ
トの和Rが目標値Kに等しいとき真になる。このZが、
高速加算比較器の出力である。
Aと加数Bの第(i−1)ビットと第iビットのみを参
照して生成されていることに注意する。すなわちz
i は、被加数Aと加数Bのビット長nによらず一定の遅
延で生成でき、高速加算比較器の出力Zはnが増えて
も、高速に求められる。
フロの定義、および高速加算比較器の動作を参照しなが
ら、符号なし数のオーバフロ検出を行う第1の実施例に
ついて説明する。
号なし数の加算結果がm(m≦n)ビット長で正しく表
現できずオーバフロすることを検出するもので、図1に
示すように、nビット長の被加数A11の下位mビット
13およびnビット長の加数B12の下位mビット14
を加算するmビット長以上の加算器1と、被加数A11
の上位(n−m)ビット15および加数B12の上位
(n−m)ビット16を加算した結果の各ビットが、す
べて1に等しいことを検出する第1の高速加算比較器2
と、同じくすべて0に等しいことを検出する第2の高速
加算比較器3と、加算器1から取り出される第(m−
1)ビットから第mビットへのキャリ18を参照し、第
1の高速加算比較器2の全ビット1検出出力19か第2
の高速加算比較器3の全ビット0検出出力20のいずれ
かを選択して論理反転し、オーバフロ検出結果21とし
て出力するセレクタ4から構成される。
加数A11と加数B12の少なくとも下位mビットを加
算器1へ入力し、加算結果17と第(m−1)ビットか
ら第mビットへのキャリ18を取り出す。式(2) に示さ
れるように、符号なし数の加算結果がオーバフロしない
のは、加算結果Sの第mビットから第nビットがすべて
0であるときに限られる。この条件がみたされる場合
は、式(4) によれば、キャリ18の有無により、図2に
示す条件2-1 、条件2-2 の2通りがある。
2-1 、すなわち被加数A11の上位(n−m)ビット1
5と加数B12の上位(n−m)ビット16の和の各ビ
ットがすべて1であることを、言い替えれば式(7) と式
(8) においてki =1,(m≦i≦n)としたときの式
(10)を判定し、第2の高速加算比較器3では条件2-2、
すなわち被加数A11の上位(n−m)ビット15と加
数B12の上位(n−m)ビット16の和の各ビットが
すべて0であることを、言い替えれば式(7) と式(8) に
おいてki =0,(m≦i≦n)としたときの、式(10)
を判定する。そして、セレクタ4により、キャリ18が
1のとき第1の高速加算比較器2の出力を、キャリ18
が0のとき第2の高速加算比較器3の出力を選んで論理
反転し、オーバフロ検出結果21として出力すれば、こ
の出力は、nビット長の被加数A11と加数B12を加
算した結果がmビット長で表せず、オーバフロが発生し
たとき真となる。
1の高速加算比較器2、第2の高速加算比較器3、セレ
クタ4を論理ゲートレベルで実現した例を示す。加算器
1は、キャリ先見加算器やキャリ選択加算器などの一般
的なキャリ伝搬加算器であるため、ここでは内部構成を
特に規定しない。図3には2個の高速加算器が含まれる
ため、それぞれの内部ノードの値を区別するために、図
3中では、第1の高速加算比較器2における式(9) の値
をz1i 、第2の高速加算比較器3における式(7) およ
び式(9) の値をそれぞれv0i およびz0i と書いてい
る。v0i の値は、式(7) においてki =0とおいた場
合、
している。このORゲートは、giを生成するANDゲ
ートとともに、pi を生成するEXORゲートの内部か
ら取り出せ、回路が簡素化できる場合がある。第1の実
施例の動作タイミング・チャートを図4に示す。第1の
実施例によれば、被加数および加数121のmビット長
加算処理122と高速加算比較処理123を並列に行え
るため、図19、図21に示した、加算処理と大部分の
オーバフロ検出処理を直列的に実行する従来の実施例よ
り高速にオーバフロ検出を行なえる。図4において12
4はセレクタ4の選択処理を示す。
の実施例を説明する。本発明の第2の実施例も、nビッ
ト長の符号なし数の加算結果がm(m≦n)ビット長で
正しく表現できずオーバフロすることを検出するもの
で、図5に示すように、nビット長の被加数A40の下
位mビット42およびnビット長の加数B41の下位m
ビット43を加算するmビット長以上の加算器31と、
被加数A40の第mビット44および加数B41の第m
ビット45を加算する半加算器32と、被加数A40の
上位(n−m−1)ビット46および加数B41の上位
(n−m−1)ビット47を加算した結果の各ビット
が、すべて半加算器出力50に等しいことを検出する高
速加算比較器33と、加算器31から取り出される第
(m−1)ビットから第mビットへのキャリ49および
高速加算比較器33の一致検出出力51が等しくないこ
とを判定し、オーバフロ検出結果52として出力する不
一致検出器34から構成される。図5から図7を参照し
ながら、第2の実施例の動作を説明する。式(4) を次の
ように書き換え、rm の項を分離する。
結果がオーバフロしないのは、加算結果Sの第mビット
から第nビットがすべて0であるときに限られるが、図
2と同様に、この条件をみたす式(12)の右辺の各項の組
合せをすべて挙げると、図6に示される条件6-1 、条件
6-2 の2通りである。
の半加算器出力50を参照すれば、オーバフロ検出回路
に入力されている被加数A40、加数B41の組合せ
が、条件6-1 、条件6-2 のうち、いずれに該当する可能
性があるかを決められる。従って、第mビットの半加算
器出力50が0であればki =0,1であればki =1
として、式(5) から式(10)で規定される高速加算比較器
33を動作させ、その一致検出出力51と、加算器31
から得られる第(m−1)ビットから第mビットへのキ
ャリ31から、図6の条件が満たされオーバフロが発生
していないか、あるいは条件が満たされずオーバフロが
発生しているかが判定できる。すなわち、不一致検出器
34は、キャリ49と一致検出出力51の値が一致して
いればオーバフロは発生していないとして偽を、一致し
ていなければオーバフロが発生したとして真を、オーバ
フロ検出結果52として出力する。
算を行って求めなければならないcm-1 とは異なり、半
加算器1段、すなわちEXORゲート1段で高速に求め
られるため、高速加算比較器33が加算器31と大部分
並列に動作可能である。したがって、以上説明した第2
の実施例では、第1の実施例で2個用いられていた高速
加算比較器を1組に減らし回路を簡素化したにもかかわ
らず、オーバフロ検出結果52を第1の実施例とほぼ同
等の速度で高速に生成できる。
加算器32、高速加算比較器33、不一致検出器34を
論理ゲートレベルで実現した例を示す。加算器31は、
キャリ先見加算器やキャリ選択加算器などの一般的なキ
ャリ伝搬加算器であるため、ここでは内部構成を特に規
定しない。
明するために、符号つき数の加算とオーバフロについて
解説する。第3から第5の実施例では、負数の表現法と
して2の補数を対象とする。2の補数で表されたnビッ
ト長の符号つき数A,Bを加算し、(n+1)ビット長
の和Sを得る処理は、同じnビット長の符号なし数の加
算を行う回路で行なえる。得られた(n+1)ビット長
の加算結果Sが、mビット長で正しく表現できず、オー
バフロが発生することを検出する。ただし、符号つき数
のオーバフロの定義は次の通りに変わる。すなわち、和
Sの第(m−1)ビットから第nビットがすべて0もし
くはすべて1ならば、(n+1)ビット長の和Sから下
位mビット長を取り出したものを、再び(n+1)ビッ
ト長へ符号拡張しても値が変わらない。すなわち和Sを
mビットで表してもオーバフロが発生しない。逆に、オ
ーバフロが発生する条件はこの条件の否定であり、次式
で表される。ここでovfsignedが真ならば、オーバフ
ロが発生している。
れるRと同様に、被加数Aと加数Bの上位(n−m+
1)ビットの和Q=qi {ただし(m−1)≦i≦n}
を、次式で定義する。
されるqi には、次式の関係がある。
加算したときの、第cm-2 ビットから第cm-1 ビットへ
のキャリである。すなわちqm-1 〜n に、第cm-2 ビッ
トから第cm-1 ビットへのキャリを加算すれば、sm-1
〜n に等しくなる。
フロの定義、および高速加算比較器の動作を利用し、図
8から図11を参照しながら、符号つき数のオーバフロ
検出を行う第3の実施例の動作を説明する。nビット長
の符号つき数の加算結果がm(m≦n)ビット長で正し
く表現できずオーバフロすることを検出する、本発明の
第3の実施例は、図8に示すように、nビット長の被加
数A71の下位(m−1)ビット73およびnビット長
の加数B72の下位(m−1)ビット74を加算する
(m−1)ビット長以上の加算器61と、被加数A71
の上位(n−m+1)ビット75および加数B72の上
位(n−m+1)ビット76を加算した結果の各ビット
が、最下位ビットを除きすべて1に等しいことを検出す
る第1の高速加算比較器62と、同じくすべて1に等し
いことを検出する第2の高速加算比較器63と、同じく
すべて0に等しいことを検出する第3の高速加算比較器
64と、加算器61から取り出される第(m−2)ビッ
トから第(m−1)ビットへのキャリ78、第1の高速
加算比較器出力79、第2の高速加算比較器出力80お
よび第3の高速加算比較器出力81の計4ビットからオ
ーバフロ検出結果82を生成するデコーダ65から構成
される。
加数A71と加数B72の少なくとも下位(m−1)ビ
ットを加算器1へ入力し、加算結果77と第(m−2)
ビットから第(m−1)ビットへのキャリ78を取り出
す。式(13)に示されるように、符号つき数の加算結果が
オーバフロしないのは、加算結果Sの第(m−1)ビッ
トから第nビットがすべて0、あるいはすべて1である
場合である。この条件が満たされるのは、式(15)によれ
ば、sm-1 〜n の値およびキャリ78の有無により、図
9に示す条件9-1 、条件9-2 、条件9-3 の3通りがあ
る。ここで条件9-2 は、qn 〜m-1 が同じでcm-2 のみ
が異なる条件を論理圧縮した条件である。
件9-1 に対応するqi 、すなわち被加数A71の上位
(n−m+1)ビット75と加数B72の上位(n−m
+1)ビット76の和qi の各ビットのうち、最下位ビ
ットのみ0で残りがすべて1であることを、言い替えれ
ば式(7) と式(8) においてkm-1 =0かつki =1,
(m≦i≦n)としたときの式(10)を判定して第1の比
較器出力79を生成し、第2の高速加算比較器63では
条件9-2 、すなわち被加数A71の上位(n−m+1)
ビット75と加数B72の上位(n−m+1)ビット7
6の和qi の各ビットがすべて1であることを、言い替
えれば式(7) と式(8) においてki =1,(m−1≦i
≦n)としたときの式(10)を判定して第2の比較器出力
80を生成し、第3の高速加算比較器64では条件9-3
に対応するqi 、すなわち被加数A71の上位(n−m
+1)ビット75と加数B72の上位(n−m+1)ビ
ット76の和qi の各ビットがすべて0であることを、
言い替えれば式(7) と式(8) においてki =0,(m−
1≦i≦n)としたときの式(10)を判定して第3の比較
器出力81を生成する。
持つ組合せ回路で、被加数A71と加数B72を加算し
たときの第(m−2)ビットから第(m−1)ビットへ
のキャリ78と、第1,第2,第3の高速加算比較器6
2,63,64の比較器出力それぞれ79,80,81
を参照し、図9に示した条件が満たされる以下の3通り
の場合のみオーバフロは発生していないとみなし偽をオ
ーバフロ検出結果82に出力し、それ以外の場合、オー
バフロが発生したとして真を出力する。オーバフロが発
生しない条件は、第1の高速加算比較器62の出力79
が真、かつキャリ78が真で、条件9-1 が満たされると
き、第2の高速加算比較器63の出力80が真で、条件
9-2 が満たされるとき、第3の高速加算比較器64の出
力81が真かつキャリ78が偽で、条件9-3 が満たされ
るときの3通りである。同時に複数の加算比較器の出力
が真になることはないため、このような条件に対しては
デコーダ65の出力は定義する必要がない。
第1の高速加算比較器62と第2の高速加算比較器63
と第3の高速加算比較器64とデコータ65を論理ゲー
トレベルで実現した例を示す。加算器61は、キャリ先
見加算器やキャリ選択加算器などの一般的なキャリ伝搬
加算器であるため、ここでは内部構成を特に規定しな
い。
号つき数の加算オーバフロ検出を行う第4の実施例を説
明する。本発明の第4の実施例は、nビット長の符号つ
き数の加算結果がm(m≦n)ビット長で正しく表現で
きずオーバフロすることを検出するもので、図12に示
すように、nビット長の被加数A101の下位(m−
1)ビット103およびnビット長の加数B102の下
位(m−1)ビット104を加算する(m−1)ビット
長以上の加算器91と、被加数A101の第(m−1)
ビットと第mビット105および加数B102の第(m
−1)ビットと第mビット106を加算する2ビット加
算器92と、nビット長の被加数A101の上位(n−
m−1)ビット107およびnビット長の加数B102
の上位(n−m−1)ビット108を加算した結果の各
ビットが、すべて1に等しいことを検出する第1の高速
加算比較器93と、同じくすべて0に等しいことを検出
する第2の高速加算比較器94と、2ビット加算器92
の加算結果上位ビット112を参照し、第1の高速加算
比較器93の出力113か第2の高速加算比較器94の
出力114のいずれかを選択するセレクタ95と、加算
器91から取り出される第(m−2)ビットから第(m
−1)ビットへのキャリ110、2ビット加算器92の
加算結果の下位ビット111、同じく上位ビット112
およびセレクタ95の出力115の計4ビットからオー
バフロ検出結果116を生成するデコーダ96から構成
される。
加数A101の下位(m−1)ビット103とnビット
長の加数B102の下位(m−1)ビット104を加算
器91へ入力し、加算結果109と第(m−2)ビット
から第(m−1)ビットへのキャリ110を取り出す。
次に、式(15)を次のように書き換え、qm ,qm-1 の項
を分離する。
結果がオーバフロしないのは、加算結果Sの第(m−
1)ビットから第nビットがすべて0もしくはすべて1
であるときであるが、図9と同様に、この条件をみたす
式(16)の右辺の各項の組合せをすべて挙げると、図13
に示される条件12-1、条件12-2の2通りである。
1),第mビットの加算結果の上位ビット112を参照
すれば、オーバフロ検出回路に入力されている被加数A
101、加数B102の組合せが、条件12-1、条件12-2
のうち、いずれに該当する可能性があるかを決められ
る。従って、加算結果上位ビット112が0であればk
i=0,1であればki =1とし(いずれもm+1≦i
≦n)、式(5) から式(10)で規定される高速加算比較を
行った結果が必要となるので、第1の高速加算比較器9
3にはki =1として全ビット1検出出力113を生成
させ、第2の高速加算比較器94にはki =0として全
ビット0検出出力114を生成させ、上位ビット112
が1のとき全ビット1検出出力113を、上位ビット1
12が0のとき全ビット0検出出力114をセレクタ9
5で選択してセレクタ出力115として出力する。する
と、図12より、キャリ109、2ビット加算器92の
加算結果の上位ビット112、下位ビット111、セレ
クタ95の出力115の計4ビットから、図14に示す
真理値表を持つデコーダ96を用いオーバフロ検出結果
116を生成できる。
た2ビット加算器92、第1の高速加算比較器93、第
2の高速加算比較器94、セレクタ95、デコーダ96
を論理ゲートレベルで実現した例を示す。加算器61
は、キャリ先見加算器やキャリ選択加算器などの一般的
なキャリ伝搬加算器であるため、ここでは内部構成を特
に規定しない。
例では、第4の実施例に2個含まれる高速加算比較器
を、1個の高速加算比較器で置き換えた構成をとってい
る。図13に示した第4の実施例では、加算結果上位ビ
ット112の値を参照し、全ビット1検出出力113ま
たは全ビット0検出出力114のいずれかを選択し出力
していたが、図16に示す第5の実施例では、1個の高
速加算比較器97に対し、加算結果上位ビット112の
値が0からki =0を与え、1からki =1を与えて
(いずれもm+1≦i≦n)高速加算比較器出力117
を得る。高速加算比較器出力117は、図12における
セレクタ出力115と等価であるため、加算器91、2
ビット加算器92、デコーダ96の構成は第4の実施例
と同等である。
た2ビット加算器92、高速加算比較器97、セレクタ
95、デコーダ96を論理ゲートレベルで実現した例を
示す。以上説明した第5の実施例によれば、第4の実施
例で2個必要であった高速加算比較器の個数を1個に削
減し、回路を簡素化したにもかかわらず、オーバフロ検
出結果116を第4の実施例とほぼ同等の速度で生成で
きる。
第1,第2の実施例のうちいずれか1つと、符号つき数
のオーバフロを検出する第3,第4,第5の実施例のう
ちいずれか1つを組合わせ、入力が符号なし数と想定し
た時のオーバフロ、および入力が符号つき数と想定した
時のオーバフロのいずれか、もしくは両方を検出する加
算オーバフロ検出器の構成を考えることができる。特
に、第1の実施例と第3の実施例、第1の実施例と第4
の実施例、第2の実施例と第5の実施例はそれぞれ類似
点が多く、両者を組合わせると大部分の回路を共有で
き、効率よく符号なし数と符号つき数を扱えるオーバフ
ロ検出回路を構成できる。
加算オーバフロ検出回路は、高速加算比較器を用いるこ
とで、実現可能なハードウェア規模で、加算と並行して
高速にオーバフロを行なえる加算オーバフロ検出回路を
提供できるという効果がある。また、被加数と加数の部
分的な加算結果をもとに、高速加算比較器の目標値を変
えることで、高速加算比較器の個数を減らせ、さらにハ
ードウェア規模を小さくできるという効果がある。
オーバフロ検出回路を示すブロック図である。
の対照図である。
回路図である。
オーバフロ検出回路を示すブロック図である。
の対照図である。
回路図である。
オーバフロ検出回路を示すブロック図である。
の対照図である。
を定義する真理値の対照図である。
す回路図である。
算オーバフロ検出回路を示すブロック図である。
2の対照図である。
を定義する真理値の対照図である。
す回路図である。
算オーバフロ検出回路を示すブロック図である。
す回路図である。
る。
来の構成を示すブロック図である。
る。
Claims (6)
- 【請求項1】 nビット長の符号なし数の加算結果がm
(m≦n)ビット長で正しく表現できずオーバフロする
ことを検出する回路において、 nビット長の被加数の下位mビットおよびnビット長の
加数の下位mビットを加算するmビット長以上の加算器
と、 被加数の上位(n−m)ビットおよび加数の上位(n−
m)ビットを加算した結果の各ビットが、すべて1に等
しいことを検出する第1の高速加算比較器と、 被加数の上位(n−m)ビットおよび加数の上位(n−
m)ビットを加算した結果の各ビットが、すべて0に等
しいことを検出する第2の高速加算比較器と、 前記加算器から取り出される第(m−1)ビットから第
mビットへのキャリを参照し、前記第1の高速加算比較
器の全ビット1検出出力か前記第2の高速加算比較器の
全ビット0検出出力のいずれかを選択し論理反転して、
オーバフロ検出結果として出力するセレクタから構成さ
れる、加算オーバフロ検出回路。 - 【請求項2】 nビット長の符号なし数の加算結果がm
(m≦n)ビット長で正しく表現できずオーバフロする
ことを検出する回路において、 nビット長の被加数の下位mビットおよびnビット長の
加数の下位mビットを加算するmビット長以上の加算器
と、 被加数の第mビットおよび加数の第mビットを加算する
半加算器と、 被加数の上位(n−m−1)ビットおよび加数の上位
(n−m−1)ビットを加算した結果の各ビットが、前
記半加算器の出力に等しいことを検出する高速加算比較
器と、 前記加算器から取り出される第(m−1)ビットから第
mビットへのキャリおよび前記高速加算比較器の一致検
出出力が等しくないことを判定し、オーバフロ検出結果
として出力する不一致検出器から構成される、加算オー
バフロ検出回路。 - 【請求項3】 nビット長の符号つき数の加算結果がm
(m≦n)ビット長で正しく表現できずオーバフロする
ことを検出する回路において、 nビット長の被加数の下位(m−1)ビットおよびnビ
ット長の加数の下位(m−1)ビットを加算する(m−
1)ビット長以上の加算器と、 被加数の上位(n−m+1)ビットおよび加数の上位
(n−m+1)ビットを加算した結果の各ビットが、最
下位ビットを除きすべて1に等しいことを検出する第1
の高速加算比較器と、 被加数の上位(n−m+1)ビットおよび加数の上位
(n−m+1)ビットを加算した結果の各ビットが、す
べて1に等しいことを検出する第2の高速加算比較器
と、 被加数の上位(n−m+1)ビットおよび加数の上位
(n−m+1)ビットを加算した結果の各ビットが、す
べて0に等しいことを検出する第3の高速加算比較器
と、 前記加算器から取り出される第(m−2)ビットから第
(m−1)ビットへのキャリ、前記第1の高速加算比較
器の出力、前記第2の高速加算比較器の出力、前記第3
の高速加算比較器の出力の計4ビットからオーバフロ検
出結果を生成するデコーダから構成される、加算オーバ
フロ検出回路。 - 【請求項4】 nビット長の符号つき数の加算結果がm
(m≦n)ビット長で正しく表現できずオーバフロする
ことを検出する回路において、 nビット長の被加数の下位(m−1)ビットおよびnビ
ット長の加数の下位(m−1)ビットを加算する(m−
1)ビット長以上の加算器と、 被加数の第(m−1)から第mビットと、加数の第(m
−1)から第mビットを加算する2ビット加算器と、 nビット長の被加数の上位(n−m−1)ビットおよび
nビット長の加数の上位(n−m−1)ビットを加算し
た結果の各ビットが、すべて1に等しいことを検出する
第1の高速加算比較器と、 nビット長の被加数の上位(n−m−1)ビットおよび
nビット長の加数の上位(n−m−1)ビットを加算し
た結果の各ビットが、すべて0に等しいことを検出する
第2の高速加算比較器と、 前記2ビット加算器の加算結果の上位ビットを参照し、
前記第1の高速加算比較器の全ビット1検出出力か前記
第2の高速加算比較器の全ビット0検出出力のいずれか
を選択するセレクタと、 前記加算器から取り出される第(m−2)ビットから第
(m−1)ビットへのキャリ、前記2ビット加算器の加
算結果の上位ビット、および下位ビット、前記セレクタ
の出力の計4ビットからオーバフロ検出結果を生成する
デコーダから構成される、加算オーバフロ検出回路。 - 【請求項5】 第1の高速加算比較器、第2の高速加算
比較器、セレクタの代わりに、nビット長の被加数の上
位(n−m−1)ビットおよびnビット長の加数の上位
(n−m−1)ビットを加算した結果の各ビットが、す
べて2ビット加算器の加算結果の上位ビットに等しいこ
とを検出する高速加算比較器を備えた請求項4記載の加
算オーバフロ検出回路。 - 【請求項6】 請求項1もしくは請求項2に記載した、
符号なし数を扱う加算オーバフロ検出回路のうちいずれ
か1個と、 請求項3、請求項4、請求項5に記載した、符号つき数
を扱う加算オーバフロ検出回路のうちいずれか1個から
構成される、符号なし数および符号つき数の両方が扱え
る加算オーバフロ検出回路。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7041435A JP2789577B2 (ja) | 1995-02-07 | 1995-02-07 | 加算オーバフロ検出回路 |
US08/597,189 US5745397A (en) | 1995-02-07 | 1996-02-06 | Addition overflow detection circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP7041435A JP2789577B2 (ja) | 1995-02-07 | 1995-02-07 | 加算オーバフロ検出回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH08212058A true JPH08212058A (ja) | 1996-08-20 |
JP2789577B2 JP2789577B2 (ja) | 1998-08-20 |
Family
ID=12608300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP7041435A Expired - Fee Related JP2789577B2 (ja) | 1995-02-07 | 1995-02-07 | 加算オーバフロ検出回路 |
Country Status (2)
Country | Link |
---|---|
US (1) | US5745397A (ja) |
JP (1) | JP2789577B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2772946A1 (fr) * | 1997-12-23 | 1999-06-25 | Sgs Thomson Microelectronics | Procede de determination d'un depassement de format du resultat d'une operation arithmetique realisee sur deux operandes |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6012077A (en) * | 1995-08-04 | 2000-01-04 | United Microelectronics Corporation | Method and apparatus for indicating overflow status of bit-variable data employing pipelining adder |
US6161164A (en) * | 1996-09-16 | 2000-12-12 | International Business Machines Corp. | Content addressable memory accessed by the sum of two operands |
KR100236533B1 (ko) * | 1997-01-16 | 2000-01-15 | 윤종용 | 배럴 쉬프터와 산술논리 연산기가 연결되어 있는 디지탈 신호 처리기 및 그 오버플로 검출방법 |
US5889689A (en) * | 1997-09-08 | 1999-03-30 | Lucent Technologies Inc. | Hierarchical carry-select, three-input saturation |
US6151616A (en) * | 1999-04-08 | 2000-11-21 | Advanced Micro Devices, Inc. | Method and circuit for detecting overflow in operand multiplication |
US6473529B1 (en) | 1999-11-03 | 2002-10-29 | Neomagic Corp. | Sum-of-absolute-difference calculator for motion estimation using inversion and carry compensation with full and half-adders |
US7206800B1 (en) | 2000-08-30 | 2007-04-17 | Micron Technology, Inc. | Overflow detection and clamping with parallel operand processing for fixed-point multipliers |
US7058678B2 (en) * | 2002-01-02 | 2006-06-06 | International Business Machines Corporation | Fast forwarding ALU |
US6947962B2 (en) * | 2002-01-24 | 2005-09-20 | Intel Corporation | Overflow prediction algorithm and logic for high speed arithmetic units |
US7428567B2 (en) * | 2003-07-23 | 2008-09-23 | Sandbridge Technologies, Inc. | Arithmetic unit for addition or subtraction with preliminary saturation detection |
US7349938B2 (en) * | 2004-03-05 | 2008-03-25 | Sandbridge Technologies, Inc. | Arithmetic circuit with balanced logic levels for low-power operation |
US7524197B2 (en) * | 2007-04-30 | 2009-04-28 | Brookstone Purchasing, Inc. | Docking station for portable media player or storage device |
US8015230B2 (en) * | 2007-06-08 | 2011-09-06 | Apple Inc. | Fast modular zero sum and ones sum determination |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS61239327A (ja) * | 1985-04-16 | 1986-10-24 | Nec Corp | オ−バフロ−検出方式 |
JPH087670B2 (ja) * | 1989-07-28 | 1996-01-29 | 日本電気アイシーマイコンシステム株式会社 | 加算回路 |
EP0535963B1 (en) * | 1991-10-02 | 1998-06-10 | Matsushita Electric Industrial Co., Ltd. | Orthogonal transformation encoder |
-
1995
- 1995-02-07 JP JP7041435A patent/JP2789577B2/ja not_active Expired - Fee Related
-
1996
- 1996-02-06 US US08/597,189 patent/US5745397A/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2772946A1 (fr) * | 1997-12-23 | 1999-06-25 | Sgs Thomson Microelectronics | Procede de determination d'un depassement de format du resultat d'une operation arithmetique realisee sur deux operandes |
Also Published As
Publication number | Publication date |
---|---|
US5745397A (en) | 1998-04-28 |
JP2789577B2 (ja) | 1998-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3689183B2 (ja) | 正確な浮動小数点除算/平方根演算を実現する正確、かつ効果的なスティッキー・ビット計算 | |
JP5273866B2 (ja) | 乗算器/アキュムレータ・ユニット | |
US7395304B2 (en) | Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic | |
US4525797A (en) | N-bit carry select adder circuit having only one full adder per bit | |
US5633819A (en) | Inexact leading-one/leading-zero prediction integrated with a floating-point adder | |
JP2002108606A (ja) | スティッキービット生成回路及び乗算器 | |
CN101221490B (zh) | 一种具有数据前送结构的浮点乘加单元 | |
US8166092B2 (en) | Arithmetic device for performing division or square root operation of floating point number and arithmetic method therefor | |
JPH07210368A (ja) | 算術演算の結果として生じる正および負のオーバーフローのハードウェアによる効率的な取り扱い方法 | |
JPH08212058A (ja) | 加算オーバフロ検出回路 | |
US5508952A (en) | Carry-lookahead/carry-select binary adder | |
Kaivani et al. | Floating-point butterfly architecture based on binary signed-digit representation | |
Nannarelli | Tunable floating-point adder | |
US5471414A (en) | Fast static CMOS adder | |
Takagi et al. | A hardware algorithm for integer division | |
WO2016119547A1 (en) | Method and apparatus for converting from integer to floating point representation | |
Quach et al. | An improved algorithm for high-speed floating-point addition | |
US5867413A (en) | Fast method of floating-point multiplication and accumulation | |
JPWO2008096446A1 (ja) | 演算処理装置、情報処理装置、および演算方法 | |
JP3537378B2 (ja) | 加算器および集積回路 | |
Seidel et al. | How many logic levels does floating-point addition require? | |
US6826588B2 (en) | Method and apparatus for a fast comparison in redundant form arithmetic | |
US6615228B1 (en) | Selection based rounding system and method for floating point operations | |
Vassalos et al. | Modulo 2^ n+ 1 Arithmetic Units with Embedded Diminished-to-Normal Conversion | |
JP3778489B2 (ja) | プロセッサ、演算装置及び演算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080612 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090612 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100612 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100612 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110612 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110612 Year of fee payment: 13 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120612 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120612 Year of fee payment: 14 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130612 Year of fee payment: 15 |
|
LAPS | Cancellation because of no payment of annual fees |