JP3370688B2 - 加算器のフラグ生成回路 - Google Patents

加算器のフラグ生成回路

Info

Publication number
JP3370688B2
JP3370688B2 JP23458191A JP23458191A JP3370688B2 JP 3370688 B2 JP3370688 B2 JP 3370688B2 JP 23458191 A JP23458191 A JP 23458191A JP 23458191 A JP23458191 A JP 23458191A JP 3370688 B2 JP3370688 B2 JP 3370688B2
Authority
JP
Japan
Prior art keywords
carry
digit
circuit
adder
flag
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
Application number
JP23458191A
Other languages
English (en)
Other versions
JPH0573270A (ja
Inventor
俊則 前田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP23458191A priority Critical patent/JP3370688B2/ja
Publication of JPH0573270A publication Critical patent/JPH0573270A/ja
Application granted granted Critical
Publication of JP3370688B2 publication Critical patent/JP3370688B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、2入力加算器における
フラグ生成回路に関し、特にキャリー先見回路の内部信
号を利用して零フラグの生成および条件分岐の判定を高
速に行う回路に関するものである。
【0002】
【従来の技術】例えば加算命令の後に、加算結果を反映
したフラグを用いて分岐判定を行う条件分岐命令が続く
ような命令列の場合、高速処理のためには加算器の高速
化のみならず、各フラグの生成、そして生成されたフラ
グによる分岐判定の高速化をも図る必要がある。このフ
ラグの中で最も生成の遅れるのが零フラグである。この
ように高速処理を行う上で、加算器の零フラグを高速に
生成することは、益々重要になってきている。
【0003】高速な加算器の零フラグ生成の方法として
は、例えば特開昭55−87243号がある。この方法
は各桁ごとに、加算時には加数と被加数が共に零である
ことを減算時には減数と被減数が等しいことを検出する
加算の中間結果を生成し、全桁についてこの中間結果の
論理積をとることで零フラグを高速に求めようというも
のである。
【0004】
【発明が解決しようとする課題】しかしながら上記従来
方法では、最下位桁へのキャリー入力が考慮されていな
いことから、キャリーの加算を伴う場合には対応できな
いという問題点を有していた。
【0005】本発明は上記問題点に鑑み、加算器の加算
出力が確定する時点よりも早い時点で加算器の零フラグ
の生成を行える、2進加算器のフラグ生成回路を提供す
るものである。
【0006】
【課題を解決するための手段】上記問題点を解決するた
めに本発明の加算器のフラグ生成回路は、n桁2入力加
算器において、入力の各桁毎に2入力の論理積で定義さ
れるキャリー生成関数と入力の各桁毎に2入力の排他的
論理和で定義されるキャリー伝搬関数と各桁毎の否定論
理和とを生成するPG生成回路と、前記各桁毎のキャリ
ー生成関数とキャリー伝搬関数と最下位桁へのキャリー
とを入力としキャリーフラグを生成するキャリー先見回
路と、前記キャリー先見回路で生成される内部信号であ
る、(数1)で示される論理信号と前記各桁毎の否定論
理和と前記最下位桁へのキャリーとを入力とし、(
)で示される零フラグを生成する零検出回路とを備え
たものである。
【0007】
【作用】n桁の加算器において、キャリーフラグCn-1
は、(数2)によって求まる。
【0008】
【数2】
【0009】ただし、Gi はキャリー生成関数、Pi は
キャリー伝搬関数であって、それぞれ(数3)で表さ
れ、PG生成回路で生成される。
【0010】
【数3】
【0011】また、C-1は最下位桁へのキャリーであ
る。ここで、Pi・Gi はPi とGi の論理積を、Pi
+Gi はPi とGi の論理和を、ai (i=0〜n−
2)は被加数のi桁目を、bi (i=0〜n−2)は加
数のi桁目を示す。このキャリーフラグCn-1 は、キャ
リー先見回路を用いて高速に生成される。
【0012】また零フラグは、加算出力がすべて零のと
き1となることから(数4)によって求まる。
【0013】
【数4】
【0014】ただし、Si (i=0〜n−1)はi桁目
の加算出力を示し、XSi はSi の論理否定を示す。
【0015】ここで、キャリーフラグの式と零フラグの
式を比較すると、下線部の論理において一致がみられ
る。また零フラグの式中のXPi・XGi(i=0〜n
−2)の項は、(数5)のように簡単に求められる。
【0016】
【数5】
【0017】本発明は、上記した構成によって、2入力
加算器の入力の各桁の論理否定和と、一致する論理部分
をキャリー先見回路の内部信号を用いて零フラグを生成
することで、少ない回路量の増加でキャリーフラグと同
様、高速に零フラグを生成できることとなる。
【0018】
【実施例】
(実施例1)以下、本発明の一実施例の零フラグ生成回
路について、図面を参照しながら説明する。以下の説明
で用いる図面中の同一の数字および文字は、全図面を通
じて同じ要素を示す。
【0019】図1は、本発明の実施例における零フラグ
生成回路のブロック図を示すものである。図1におい
て、1−a、1−bは入力制御部、2はキャリー先見回
路付き2入力2進加算器であって、それぞれの入力に入
力制御部1−a、1−bの出力する演算データA13、
演算データB14と、最下位桁へのキャリー15が与え
られる。また出力として、2進加算出力S16と、演算
結果を反映した零フラグ17とキャリーフラグ18を出
力する。3はPSR(Processor Status Register )3
であって、零フラグ17とキャリーフラグ18を入力し
これを保持する。4はキャリー制御回路であって、PS
R3の出力するキャリー19と演算制御線10を入力と
する。加算/減算の演算モードは、入力制御部1−bと
キャリー制御部4に入力された演算制御線10によって
制御され、減算時には入力データB(減数)12とキャ
リー19を反転(1の補数)し加算器2に与える。入力
制御部1−aは、加算/減算にかかわらず入力データA
11を演算データA13として出力し加算器2に与え
る。5はPG生成回路であって、演算データA13、演
算データB14を入力とし各桁毎にキャリー生成関数G
i 、キャリー伝搬関数Pi と2入力の否定論理和をとっ
た関数Zi を生成し、PG出力関数20として出力す
る。6はキャリー先見回路、7は零検出回路であって、
それぞれPG生成回路5の出力するPG出力関数20と
キャリー15を入力する。零検出回路7はキャリー先見
回路6の内部信号21をも入力とする。零検出回路7は
零フラグ17を、キャリー先見回路6はキャリーフラグ
18をそれぞれ生成し、PSR3に出力する。
【0020】以下、図1の動作を説明する。ここでの説
明は、4ビットの加算器(n=4)を例に行う。加算器
2において、加算時のキャリーフラグ18(=C3 )は
(数6)で与えられる。
【0021】
【数6】
【0022】ここで、Gi はキャリー生成関数、Pi は
キャリー伝搬関数であってそれぞれ、(数3)で求める
ことができる。
【0023】また、C-1は最下位桁へのキャリー15で
ある。ただし、ai 、bi は演算データA13、演算デ
ータB14の各ビットのデータを、ai ・bi はai と
biの論理積を、ai +bi はai とbi の論理和を、
ai xor biはai とbi の排他的論理和を示す。
【0024】減算時には、入力データB(減数)12と
キャリー(ボロー)19を反転(1の補数)して加算器
2に与えることにより、加算時と同様(数6)でキャリ
ー(ボロー)フラグ18を得ることができる。この加算
/減算の制御は、演算制御線10によって行われる。よ
って、以下の説明は加算の場合について述べる。
【0025】また、零フラグ17は、各ビットのキャリ
ー生成関数Gi 、キャリー伝搬関数Pi を用いて(数
7)のように表せる。
【0026】
【数7】
【0027】ここで、キャリーフラグの(数6)と零フ
ラグ17の(数7)の第3項目に注目してみる。(数
6)の第3項目つまりG1 ・P3 ・P2は、第1桁目で
キャリーが発生しこれが上位桁へ伝搬することを示して
おり、(数7)の第3項目つまりG1 ・P3 ・P2 ・X
G0・XP0は、最下位桁へのキャリーがない場合で第0
桁目の2入力が共に零でかつ第1桁目でキャリーが発生
し上位桁へ伝搬することで演算結果が零になることを示
している。また(数6)と(数7)を比較すると、各項
の下線部の論理がそれぞれ一致していることが分かる。
また、(数7)において下線部以外の項XGi ・XPi
(i=0〜2) は、(数5)のように2入力の否定論
理和をとればよく、PG生成回路においてPi 、Gi 同
様簡単に求めることができる。
【0028】下線部の論理をそれぞれ、(数8)
【0029】
【数8】
【0030】と置き、各桁の否定論理和Xai ・Xbi
をZi と置けば、零フラグの(数7)は、(数9)とな
る。
【0031】
【数9】
【0032】次に、キャリーフラグ18と零フラグ17
を生成する回路について、図2を用いて説明する。図2
は、零フラグの生成を説明する加算器2の構成を示すブ
ロック図である。PG生成回路5は、演算データA1
3、演算データB14を入力とし、各桁毎のキャリー生
成関数Gi 、キャリー伝搬関数Piと各桁の論理否定和
をとった関数Zi を生成し、PG出力関数20として出
力する。キャリー先見回路6は、最下位桁へのキャリー
15とPG出力関数20のうちキャリー生成関数Gi と
キャリー伝搬関数Pi を入力し、キャリーフラグ18と
内部信号21(U、V、W、BP・C-1)を出力する。
7は零フラグ生成回路であって、最下位桁へのキャリー
15とキャリー先見回路6の出力する内部信号21とP
G生成回路5の出力するPG出力関数20の一部である
キャリー伝搬関数P3を論理否定したXP3と前述の関数
Zi(i=0〜2)を入力し零フラグ17を出力する。
【0033】零フラグの(数7)の下線部の論理を、キ
ャリー先見回路6の内部信号21(U、V、W、BP・
-1)を利用して求めれば、少ない回路量の増加でキャ
リーフラグ18と同様に零フラグ17の生成を高速に行
える。
【0034】以上のように、本実施例によれば零フラグ
17の生成は、図2のようにゲート通過段数的にはキャ
リーフラグ18より高々1段程度の増加で求めることが
できる。
【0035】図1、図2では、キャリー先見回路付き4
ビット加算器について説明したが、語長の長い加算の場
合を図3、図4を用いて説明する。図3は、下位桁側加
算器のキャリー先見回路で生成したキャリーを、上位桁
側加算器のキャリー入力に接続することで、各加算器間
のキャリーをリップルキャリー方式で伝搬させる多語長
加算器のブロック図を、図4は、2段のブロックキャリ
ー先見方式を用いた多語長加算器のブロック図を示す。
【0036】まず、図3について説明する。各加算器内
のキャリー生成はキャリー先見回路で生成する。各加算
器間のキャリーの伝搬は、下位桁側加算器のキャリー出
力Co を、上位桁側加算器のキャリー入力Cinに接続す
ることで、リップルキャリー方式で伝搬させている。ま
た、キャリー出力Coと共に零検出出力Zo が下位桁側
加算器から出力され、上位桁側加算器の零検出入力Zin
に入力されている。零フラグの式(数7)と下位桁側か
ら入力される零検出入力Zinとの論理積をとることで、
各加算器での零検出出力が得られる。(数10)に最下
位桁加算器での零検出出力の論理式を示す。このように
語長の長い加算においてもキャリーフラグと同程度のゲ
ート通過段数で高速に零フラグの生成が行える。
【0037】
【数10】
【0038】ただし、最下位桁加算器のZinには常に1
が入力されて最上位桁加算器の零検出出力が零フラグ1
7となる。
【0039】次に、図4に示した2段のブロックキャリ
ー先見方式において、各ブロックの桁数を4ビットと
し、4ブロックに分割して16ビットの加算器を構成し
た場合について述べる。図4において、PG生成回路5
で生成されたPG出力関数20はブロックPG生成回路
8に出力される。ブロックPG生成回路8において、ブ
ロックキャリー生成関数BGi 、ブロックキャリー伝搬
関数BPi 、ブロックの2入力が共に零であることを示
す関数BZi 、ブロックの2入力が共に零でなくかつブ
ロックでの演算結果が零であることを示す関数BYi が
生成され、ブロックPG出力関数22として零検出回路
7とブロックキャリー先見回路9に出力される。9はブ
ロックキャリー先見回路でブロックPG出力関数22と
キャリーCin15より、キャリーC3 、C7 、C11とキ
ャリーフラグ18を生成する。7は零検出回路であって
ブロックPG出力関数22とキャリーCin15より零フ
ラグ17を生成し出力する。
【0040】最下位ブロックのブロックキャリー生成関
数BG0 と、ブロックキャリー伝搬関数BP0 は、(数
11)であり、他ブロックのブロックキャリー生成関数
BGi (i=1〜3)、ブロックキャリー伝搬関数BP
i (i=1〜3)でも同様の論理式で求まる。
【0041】
【数11】
【0042】またキャリーフラグは、(数12)で求め
られる。
【0043】
【数12】
【0044】同様に最下位ブロックにおける零フラグを
表わす式(数9)を、(数13)
【0045】
【数13】
【0046】のように変形し、最下位ブロックの関数B
Z0 、関数BY0 を(数14)
【0047】
【数14】
【0048】と置けば零フラグの式は、(数15)とな
る。
【0049】
【数15】
【0050】ここでもBYi (i=0〜3)は、ブロッ
クキャリー生成関数BGi を生成する際の内部信号U、
V、Wなどを利用して生成することで、少ない回路量の
増加で高速に求めることができる。
【0051】つまり、本方式は語長の長い加算器におい
ても適用可能であり、少ない回路量の増加で高速な零フ
ラグの生成が行える。
【0052】(実施例2)ここでは、条件分岐命令にお
ける分岐条件の成立/不成立の判定を高速に実行する回
路について説明する。(表1)に、分岐条件とその判定
論理式を示した。条件分岐の判定において最も処理時間
を要するのが、他のフラグに比べ生成に時間のかかる零
フラグを用いる”Branch on Less or Equal,Unsigned”
(以下BLEUと呼ぶ)と、”Branch on Less or Equal ”
である。
【0053】ここでは、BLEUの判定を高速に実行する回
路について図5を用いて説明する。図5において、23
は分岐判定回路であって、キャリー先見回路6の内部信
号21(U,V,W,BP・C-1)と零検出回路7の内部
信号24とPG生成関数20の一部であるG3を入力
し、分岐判定結果BLEU25を出力する。BLEUの
分岐判定は、(表1)のようにキャリーフラグと零フラ
グの論理和をとることで行える。零フラグの(数7)と
キャリーフラグの(数6)の論理和をとると、(数1
6)となる。
【0054】
【数16】
【0055】となる。(数16)式の論理を実現するの
が分岐判定回路23である。分岐判定回路23は、キャ
リー先見回路6の内部信号U,V,W,BP・C-1と零
検出回路7の内部信号24と最上位桁のキャリー生成関
数G3とを入力とすることで(数16)の論理を実現す
る。ここで(数16)の下線部の論理は零検出回路7の
内部信号24で実現できる。つまり、キャリー先見回路
6の内部信号U、V、W、BP・C-1を用い、キャリー
フラグ、零フラグと並列に分岐条件BLEUの成立/不
成立の判定を行うことで加算結果が確定するより早く分
岐の判定が行える。 なお、第1の実施例では加算器、
分割したブロックとも4ビットのものを例にとって説明
したが、桁数として4ビット以外の加算器、ブロックで
もよい。また多語長加算器を実現する上で桁数の異なる
加算器、ブロックを混用することも可能であることはい
うまでもない。
【0056】
【表1】
【0057】
【発明の効果】以上のように本発明は、n桁2入力加算
器において入力の各桁毎にキャリー生成関数とキャリー
伝搬関数と各桁毎の否定論理和とを生成するPG生成回
路と、前記各桁毎のキャリー生成関数とキャリー伝搬関
数と最下位桁へのキャリーとを入力としキャリーフラグ
を生成するキャリー先見回路と、前記キャリー先見回路
で生成される内部信号である、(数1)で示される論理
信号と前記各桁毎の否定論理和と前記最下位桁へのキャ
リーとを入力とする零検出回路とを設けることにより、
キャリー先見回路の内部信号を利用することで少ない回
路の付加でフラグの高速な生成、および分岐判定の高速
化が可能であることから、計算機の処理性能を向上させ
ることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施例における零フラグ生成回
路のブロック図
【図2】同実施例における零フラグ生成を説明する加算
器の構成を示すブロック図
【図3】同実施例における加算器間のキャリー伝搬をリ
ップルキャリー方式で行う加算器のブロック図
【図4】同実施例における2段のブロックキャリー先見
方式を用いた加算器のブロック図
【図5】BLEUの判定を高速に実行する回路のブロック図
【符号の説明】
1−a 入力制御部 1−b 入力制御部 2 2入力2進加算器 3 PSR 4 キャリー制御部 5 PG生成回路 6 キャリー先見回路 7 零検出回路
フロントページの続き (56)参考文献 特開 昭51−147932(JP,A) 特開 平1−211119(JP,A) 特開 昭60−142423(JP,A) 小高輝真「PC−9801拡張ボードの設 計」プロセッサ〔43〕(昭63)技術評論 社 P.2〜16

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 n桁2入力加算器において、入力の各桁
    毎に2入力の論理積で定義されるキャリー生成関数と入
    力の各桁毎に2入力の排他的論理和で定義されるキャリ
    ー伝搬関数と各桁毎の否定論理和とを生成するPG生成
    回路と、前記各桁毎のキャリー生成関数とキャリー伝搬
    関数と最下位桁へのキャリーとを入力としキャリーフラ
    グを生成するキャリー先見回路と、前記キャリー先見回
    路で生成される内部信号である、 【数1】 (数1)で示される論理信号と前記各桁毎の否定論理和
    と前記最下位桁へのキャリーとを入力とし、 【数4】 (数4)で示される零フラグを生成し、(数1)で示さ
    れる論理回路を前記キャリー先見回路と共有する零検出
    回路とを備えたことを特徴とする加算器のフラグ生成回
    路。
  2. 【請求項2】 請求項1記載において、少なくとも2つ
    以上の加算器を備え、下位桁側加算器の零検出回路で生
    成された零検出出力を、上位桁側加算器の零検出回路に
    入力するごとく加算器を直列に接続することを特徴とす
    る加算器のフラグ生成回路。
JP23458191A 1991-09-13 1991-09-13 加算器のフラグ生成回路 Expired - Fee Related JP3370688B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP23458191A JP3370688B2 (ja) 1991-09-13 1991-09-13 加算器のフラグ生成回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP23458191A JP3370688B2 (ja) 1991-09-13 1991-09-13 加算器のフラグ生成回路

Publications (2)

Publication Number Publication Date
JPH0573270A JPH0573270A (ja) 1993-03-26
JP3370688B2 true JP3370688B2 (ja) 2003-01-27

Family

ID=16973263

Family Applications (1)

Application Number Title Priority Date Filing Date
JP23458191A Expired - Fee Related JP3370688B2 (ja) 1991-09-13 1991-09-13 加算器のフラグ生成回路

Country Status (1)

Country Link
JP (1) JP3370688B2 (ja)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
小高輝真「PC−9801拡張ボードの設計」プロセッサ〔43〕(昭63)技術評論社 P.2〜16

Also Published As

Publication number Publication date
JPH0573270A (ja) 1993-03-26

Similar Documents

Publication Publication Date Title
US6099158A (en) Apparatus and methods for execution of computer instructions
US7395304B2 (en) Method and apparatus for performing single-cycle addition or subtraction and comparison in redundant form arithmetic
JP2508912B2 (ja) 浮動小数点加算装置
US5862065A (en) Method and circuit for fast generation of zero flag condition code in a microprocessor-based computer
JPH09269891A (ja) 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置
JP2002108606A (ja) スティッキービット生成回路及び乗算器
JP4388543B2 (ja) 3項入力の浮動小数点加減算器
JP2683488B2 (ja) 3−1論理演算装置
JPH0823811B2 (ja) 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
JPH0552530B2 (ja)
US7680874B2 (en) Adder
US6813628B2 (en) Method and apparatus for performing equality comparison in redundant form arithmetic
US20030061253A1 (en) Adder increment circuit
US5117384A (en) Method and apparatus for exponent adder
JP3370688B2 (ja) 加算器のフラグ生成回路
US6202078B1 (en) Arithmetic circuit using a booth algorithm
Ercegovac et al. Fast radix-2 division with quotient-digit prediction
US6421699B1 (en) Method and system for a speedup of a bit multiplier
Lutz et al. The half-adder form and early branch condition resolution
US6826588B2 (en) Method and apparatus for a fast comparison in redundant form arithmetic
JP3745759B2 (ja) 相補的なホット桁上げ信号を生成する桁上げ論理を含んだハイブリッド桁上げ先見型/桁上げ選択加算器およびその桁上げ論理を作る方法
JP3286793B2 (ja) キャリアウトを確定する回路及び方法
US7444366B2 (en) Faster shift value calculation using modified carry-lookahead adder
JP2685466B2 (ja) アドレス演算器

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees