JPH01211119A - 条件コードの予測装置 - Google Patents

条件コードの予測装置

Info

Publication number
JPH01211119A
JPH01211119A JP63319661A JP31966188A JPH01211119A JP H01211119 A JPH01211119 A JP H01211119A JP 63319661 A JP63319661 A JP 63319661A JP 31966188 A JP31966188 A JP 31966188A JP H01211119 A JPH01211119 A JP H01211119A
Authority
JP
Japan
Prior art keywords
bit
zero
result
condition
carry
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
Application number
JP63319661A
Other languages
English (en)
Other versions
JPH0542011B2 (ja
Inventor
Stamatis Vassiliadis
スタマテイス・ヴアセリアデイス
Michael Putrino
マイケル・プツリノ
Ann E Huffman
アン・エリザベス・ホフマン
Brice J Feal
ブライス・ジヨン・フイール
Gerald G Pechanek
ジエラルド・ジヨージ・ペチヤネク
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH01211119A publication Critical patent/JPH01211119A/ja
Publication of JPH0542011B2 publication Critical patent/JPH0542011B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/57Arithmetic logic units [ALU], i.e. arrangements or devices for performing two or more of the operations covered by groups G06F7/483 – G06F7/556 or for performing logical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】 A、産業上の利用分野 本発明はディジタル計算機の演算に係り、更に詳細に説
明すれば算術演算の結果を反映する条件コードを予測す
ることに係る。
B、従来の技術 計算機システムの性能は、算術演算の速度と精度によっ
て大きく左右される。というのは、計算機が実行する多
くの命令は算術演算を必要とするからである。一般に、
算術回路は多数のゲートおよび論理レベルを含むので、
これは計算機の命令実行ユニットにおいて最も複雑な回
路である。従って、算術演算は、低速でエラーにあいや
すい。
算術演算の結果が有する1つの重要な側面は、それが条
件コードを決定するという点である。条件コードは、算
的演算の結果を反映するために、計算機によってセット
される。このコードは、計算機が算術演算の結果に依存
して動作上の判断を行なうのに役立つ。条件コードはま
た幾つかの非算術演算、たとえば補数データの発生を含
むロード命令においても重要である。計算機の性能を向
上させるためには、演算の実行と平行してその条件コー
ドを計算することが望ましい。
一般に、条件コードは、演算の結果がゼロより大きい(
GT)条件、ゼロより小さい(LT)条件、またはゼロ
に等しい(EQ)条件を指示するために用いられる。L
T条件は単に結果の符号を調べることを必要とするにす
ぎないから、その検出は最も容易である。これに対し、
結果がゼロまたは正である場合、結果の符号は正にセッ
トされるから、GTおよびEQ条件の検出は一層困雅と
なる。つまり、結果がゼロに等しい場合、その符号を調
べても、結果がゼロまたは正のどちらであるかを判別す
ることができないのである。然し乍ら、特定のデータに
関する特定の命令の結果については、EQおよびGT条
件は互いに排他的である。かくて、−旦LT条件が排除
されてしまうと、EQおよびLT条件のうち一方を決定
することは他方を決定することにつながるのである。加
算器の演算で、結果がゼロに等しい(E Q)条件を決
定する通常の方法は、演算論理ユニット(ALU)にお
ける加算回路のすべての出力ビットを否定論理和(NO
R)することであった、然し乍ら、多くのアーキテクチ
ャは固定小数点のユニットについて32ビツトのデータ
路を必要とするから、これらは32ビツト幅の加算器を
も必要としている。
かくて、通常の方法に従って出力ビットの否定論理和を
とるようにすると、実現テクノロジーによっては、少な
くとも2段の論理を追加する必要がでてくる。ところで
、サイクル時間の改良に対する要請は強いものがあるか
ら、このように論理段を追加すると、条件コードの経路
がクリチカルとなり、従ってその計算を次の機械サイク
ルで行なうことを余儀無くされてしまう。
C0発明が解決しようとする課題 算術演算の結果がゼロより大きい(GT)条件を初期の
段階で計算できれば、計算機の演算速度が向上すること
は明らかである。本発明は、EQおよびLT条件を早い
段階で取り除くことによってGT条件を検出することが
できる、という知見に基いてなされたものである。
本発明の目的は1条件コードを決定するための2つの装
置を提供することである。これらの装置のうち、一方の
装置は加算器のクリチカルな量。
すなわちキャリイを必要とせずに結果がゼロに等しい(
E Q)条件を生じ、他方の装置は暗黙のうちに加算器
のキャリイを考慮に入れるように設計されている。
本発明の他の目的は、加算器と平行してEQ条件を発生
することにより、その計算に関連するクリチカルな遅延
を減少させることである。
本発明の他の目的は、演算を遂行するユニットに関連す
る遅延を少なくした、条件コードを決定するための実現
形態を提供することである。
ここで注意すべきは、(1)計算機アーキテクチャでは
、2の補数を対象とする加算、減算またはロード命令の
どれが実行されるかに依存して、算術演算に対する条件
コード・ビットが「和がゼロである」またはr差がゼロ
である」という条件を反映することが置溝あり、また(
2)成るマイクロコード命令はEQ条件を伝えるために
マイクロコード条件レジスタで同様のビットを使用する
ということである。これらの点を念頭において、本発明
の他の目的は、算術演算を必要とするすべての命令がど
のようなタイプの機械で実行されるかに関係無く、これ
らの命令について必要な条件コードを発生することにあ
る。本発明が提供するこれらの装置は、2の補数を対象
とする加算、減算、比較、ロード命令およびこれらの命
令と同様の他の命令に対する予測された条件コードを発
生する。
本発明の他の目的は、2倍精度のすべての算術演算に対
する条件コードを発生することである。
これらの2倍精度の命令は、加算または減算命令のキャ
リイ出力を保存し且つこれを適正な結果の計算のために
加算器のキャリイ入力として使用することによって、算
術演算のビット幅を2倍にするというものである。
説明を簡単にするため、ここでは算術演算が32ビツト
のオペランドについて遂行されるものと仮定する。然し
乍ら、本発明の他の目的は、これらの表現を適正に拡張
することによって、任意の長さのオペランドに対す、る
結論を引き出すことである。
本発明の1実施態様は、すべての算術命令を2つのカテ
ゴリー、即ち演算論理ユニット(ALU)へのキャリイ
入力がゼロに等しいことを必要とするタイプOと、演算
論理ユニット(ALU)へのキャリイ入力が1に等しい
ことを必要とするタイプ1とに類別する。
本発明の他の目的は1両タイプの命令について内部的キ
ャリイを必要としないような最小化されたプール式を実
行するための回路および方法を提供することである。つ
まり、この回路は演算論理ユニット(ALU)と平行に
条件コードを発生し、かくてその計算をクリチカルな経
路から除去するのである。本質的に、加算器(キャリイ
を含む)の如何なる部分もこの方法に使用されるわけで
はなく、また条件コードは演算論理ユニット(ALU)
よりも小さい遅延で計算される。さらに、どんなキャリ
イも必要ではないのである。
本発明の他の目的は1組合わされた1組のハードウェア
を使用して1両タイプの命令に対する条件コードを発生
し、もってハードウェアを節減することである。
本発明の他の目的は、オペランドおよび強制された1の
ストリングについて動作する変形されたキャリイ・セイ
ブ加算器(MC8A)を使用して。
結果がゼロに等しい(EQ)条件を決定することである
本発明の他の目的は、MC8Aの出力を調べてオペラン
ドを演算する演算論理ユニット(A L U)内の加算
器の出力がゼロに等しいか否かを決定することにより、
キャリイ・ビットまたは他のクリチカルな量を決定する
必要を無くすことである。
本発明の他の目的は、予測された条件コードを決定する
ための第2の実施態様を提供することである。
本発明の第2の実施態様の他の目的は、加算器によって
発生される和の各ビット位置ごとに、そのビット位置が
加算後にゼロに等しくなるのに必要な全ての条件を決定
することである。
本発明の他の目的は、2つのオペランドの組合せについ
て、可能な条件が次のとおりであるのを決定することで
ある。
A1両オペランド・ビットがゼロに等しく、且つキャリ
イ入力ビットがゼロに等しいこと。
B、一方のオペランド・ビットのみが1に等しく、且つ
キャリイ入力がゼロに等しいこと。
C0両オペランド・ビットが1に等しく、且つキャリイ
入力ビットがゼロに等しいこと。
本発明の第2の実施態様の他の目的は、前記可能な全て
の条件に関する先の結果を使用して、結果がゼロに等し
い(E Q)条件、ゼロより大きい(G T)条件、ま
たはゼロより小さい(LT)条件を決定することである
D、実施例 第1図ないし第11図を参照して1本発明の第1の実施
態様を説明するにの実施態様は、本発明が32ビツトの
アーキテクチャを有する計算機で使用される場合に相当
する。本発明の装置は、2オペランドについて行なねれ
る算術演算の結果が、ゼロより大きい(GT)条件、ゼ
ロに等しい(EQ)条件、またはゼロより小さい(LT
)条件を検出し、これを指示する。この装置は、このよ
うな条件の検出および指示を、算術演算の実行と平行に
行なう。
第1図において、演算論理ユニット(ALU)10は、
2オペランドAおよびBについて所与の算術演算を行な
う。ALU  10は、オペランドAおよびBについて
算術演算を実行するような任意の機械、例えばIBMシ
ステム/370に見られるような加算器で構成すること
ができる。第1図において、オペランドAおよびBは、
32ビツトのデータ対象である。オペランドAは、ビッ
トAO・・・Ai・・・A31から成り、AOが最上位
ビット(MSB)である。オペランドBのビットも同様
にBiと識別され、iは最上位から最下位にかけてO・
・・31に等しい。ALU  1Oは、32ビツトの結
果Rを発生し、これは最上位から最下位にかけて結果ビ
ットO・・・31から成る。規約により、結果RのMS
Bは符号であり、これが「1」ヘセットされていれば結
果が負であることを指示し、「0」ヘセットされていれ
ば結果が正またはゼロであることを指示する。
ALU  10が加算器であると仮定すると、これに付
属するキャリイ選択回路12はALU  10によって
行なわれる算術演算のためのキャリイ入力(Cin)を
供給するように動作する。キャリイ選択回路12は全て
の点で通常のものであり、現命令の解読結果である命令
信号に応答して、Cin線13を反転選択信号線14ま
たはALUloの最上位ビット段から得られるキャリイ
出力信号線15へ接続するように動作するにのような回
路は公知であり、その1例は米国特許筒3゜986.0
15号に示されている。公知のごとく。
Cinは、ALU  10によって実行されている演算
中へ「1」または「O」のどちらがキャリイ入力される
かを指示するように、キャリイ選択回路12によって条
件づけられる。
例えば、一対の64ビツト・オペランドについて2倍精
度の演算が行なわれている場合、C1n=1またはゼロ
である。このような演算は2段階で行なわれ、第1段階
はオペランドAおよびBの下位32ビツトを結合し、第
2段階は上位32ビツトを結合する。Cin線1線上3
上号は、下位ビットから上位ビットへのキャリイ入力が
存在するか否かを指示する。
オペランドAからオペランドBを減算することは、オペ
ランドBの2の補数をオペランドAと結合することによ
って行なわれる。オペランドBの2の補数は、まず1の
補数を発生し、次いでオペランドBの最下位ビットへ「
ホット1」を加算する、という2ステツプのシーケンス
によって得られる。公知のごとく、オペランドAがオペ
ランドBの1の補数と結合された後に、「ホット1」を
加算することができる。線14上の反転選択信号は、オ
ペランドBを反転すべき場合には、「1」にセットされ
る。この反転選択信号は、通常の排他的論理和(XOR
)回路18へ供給され、当該回路はオペランドBのビッ
ト単位の補数化を行なう。この反転選択信号はキャリイ
選択回路12によってCin線13にも接続され、がく
てALUloでオペランドBの2の補数を完成する「ホ
ット1」を与える。
本発明の第1の実施態様は、変形されたキャリイ・セイ
ブ加算器(MC8A)20、行組立回路22およびEQ
決定回路25を含む。本発明のこの実施態様はオペラン
ドAおよびBを受取り、ALUIOによって行なわれる
演算の結果がゼロの値を有する場合には、このことを検
出してその旨を指示する。以下の説明において、この条
件はEQ信号線26を「1」ヘセットする本発明の装置
によって指示される。第1図の装置による結果がゼロに
等しいというEQ条件の決定は、ALUloによる演算
の実行と同時に行なわれる。EQ条件の決定を早期に行
なうことは、このような決定を演算結果が得られた後に
だけ行なっていた先行技術と比較すれば、−層有利であ
ることは明がである。このことは、本発明の装置によっ
て生ぜられるEQ倍信号制御下でNORゲート27が結
果が正である(GT)条件を早期に指示しうろことを意
味する。
以下の説明では、本発明のALUおよび装置がプログラ
ム式計算機の環境で動作するものと仮定する1周知のよ
うに、プログラムを構成する一連の命令は演算命令を含
み、かかる命令はALUloの動作を制御するために計
算機の制御ユニットによって解読される。
一般に、関係のある演算命令には、加算、減算、比較、
ロードの4種類がある。補数化が行なわれない場合、加
算命令およびロード命令はCi n=Oを用いて加算を
行なう加算器を必要とする。−方、2の補数化が行なわ
れる場合、減算命令、比較命令およびロード命令はCi
 n=1を用いて加算を行なう加算器を必要とする。更
に、減算動作の場合は、減算されるべきオペランドは1
の補数形式で加算器へ供給されねばならない。この1の
補数化オペランドがC1n=1へ加算されると、減算が
行なわれる。
2倍精度の演算では、オペランドは実際には64データ
・ビット・ワードから成る。各オペランドは2つの32
データ・ビット・ワードへ分けられ、その一方は上位ビ
ットを含み、他方は下位ビットを含む。最初に、下位デ
ータ・ワードを演算すると、適当な値を有するCinビ
ットが生ぜられる6次いで、このCinビットと上位デ
ータ・ビットが演算される622倍精の場合には、適当
な加算動作または減算動作が下位データ・ワードについ
て行なわれねばならず、そしてCi nが適正にセット
されねばならない、このキャリイ・ビットの効果につい
ては、以下で説明する。
減算が行なわれる場合に線14の反転選択信号が1であ
ると、オペランドBはXOR回路18でビット単位で反
転される1反転選択信号が0である場合、オペランドB
はXOR回路18を非反転のまま通過する。
この実施態様の理解を容易にするため、演算命令を次の
2種類に類別する。その第1はCi n=Oを用いるも
の(以下「タイプOの命令」と呼ぶ)で、第2はCi 
n=1を用いるもの(以下「タイプlの命令」と呼ぶ)
ある、これら両タイプの命令についてEQ条件の予測が
付録AおよびBで調べられている。
付録Aは、タイプ0の命令についてEQ条件を予測する
プール式の展開を詳細に記述している。
この表現は、式(A、3)において次のように与えられ
ている。
(A、3) EQ(タイプO) ” Px3t・[(P
xo V pyu)’(pxt V Pyz)”−−−
”(Px、。V pyiz)] = Pxa1・D 但し、 D = [(pxo V Pyt)(Pxt 
V Py、)、、、(Px、、 V Py、、)]ここ
で、タイプOの命令に対するEQ条件の計算には、キャ
リイ伝播が必要ないことが理解されよう、このEQ倍信
号ついては、キャリイを全てのビット位置にわたって波
及させることに伴う遅延がないので、式(A、3)の実
現に関連する遅延はEQ条件を予測するための既存の方
法に比べると一層小さくなる。
付録Bは、タイプ1の命令についてEQ条件を予測する
ためのプール式を展開して示している。
この表現は、以下の式(8,3)によって与えられる。
(8,3) EQ(タイプ1) = Pxmt′・[(
Px、 V Py、)PxlV Py2)’−−,”P
Xzo V PY3t)]=Px、、’・D 但し、D =[(Pxa V Pyt)Pxt V P
yi)−−−(PXa。v pyat)]付録Bの式(
8,1)と付録Aの式(A、1)を比較すると1両タイ
プの命令についてPxiおよびPyiを生ずるのに同じ
ハードウェアを使用しうろことが分かる。また1式(A
、3)と式(8゜3)を比較すると、前者にPxa1が
含まれ且つ後者にPx31’が含まれていることとを除
くと、両者は同じであることが分かる。
EQ条件の予測が全ての命令タイプについて効力を持つ
には、付録AおよびBの式(A、3)はその各々につい
て行なわれる命令選択とともに使用されねばならない。
従って、−船釣なEQ条件は次のように表現することが
できる。
(1) EQ = (J−PX3□・D) I (K−
PX、1’D)= o−c(、r−px:+x) l 
(K−Px31″)]但し、 Jはタイプ0の命令に対する選択線 にはタイプ1の命令に対する選択線 D ” c((px、+ V pyi)(pxt V 
P!/z)’−8−・(Px31) V [’yi1)
]本発明の装置は式(1)並びに(A、3)および(8
,3)を参照して導かれる。第1図と式(A。
3)、(8,3)および(1)を参照するに、本発明の
第1の実施態様は第6図ないし第11図に詳細に示され
ている。第6図ないし第11図において、変形されたキ
ャリイ・セイブ加算器(MC5A)20は中間項Pxi
およびPyiを発生し、そして排他的論理和反転(XO
RI)ゲート3oないし92と、論理和(OR)ゲート
31ないし91を含んでいる。
加算器20の各X0RIゲートはAおよびBオペランド
の対応ビットを受取り、式(A、1.a)および(B、
1.a)に従って対応する中間項Pxiを発生する。同
様に、加算器20の各ORゲートは、式(A、1.b)
および(B、1.b)に従って中間項Pyiを発生する
。これらの中間項PXおよびpyは、オペランドBの形
式に関係無く。
加算器20によって順序づけられたシーケンスPxiお
よびPyiとして供給される。つまり、加算器20は、
オペランドBが1の補数形式であると否とに関係無く、
中間項を発生するのである。
石組立回路22は、排他的論理和(XOR)ゲート10
0ないし130として実現されている。
石組立回路22は、第1シーケンスの中間項(Pxiお
よびPyi)を受取り、これらの項を結合してPx十P
yに対応する第2組の中間項を発生する。
これに関連して、石組立回路22は式(A、2)および
(B、2)の連結を発生する。これらの式の順序づけら
れたシーケンスは、Px31を「+1」およびr+1+
IJとそれぞれ結合するエレメントを除き、それらの全
てのエレメントにおいて等価である。
EQ(結果=O)信号を発生し且つこれを条件づけるE
Q決定回路25は、ANDゲート140−144 (第
6図ないし第10図)1選択回路150(第11図)お
よびANDゲート160(第11図)の組合せを含む。
明らかなように、ANDゲート140−144は、式(
A、3.a)におけるD (i、i+5)項の1つを表
わす信号を発生する。選択回路150は、Jおよびに信
号に応答して、式(1)によって必要とされるようなP
x31に対する正または反゛転値を選択する。Jおよび
に信号は第1図のドライバ回路23によって図式的に示
されている。入力をCin線13に接続されたドライバ
回路23は、その相補的出力としてJおよびに信号をE
Q決定回路25へ供給する。
ここで、ドライバ回路23はJおよびに信号の発生を図
式的に示しているにすぎず、これらの信号を通常の命令
解読を通して供給することもできることに注意すべきで
ある。ドライバ回路23は、Cinの値と、Jおよびに
信号と、命令のカテゴリーとの間の関係を伝える。最後
に、ANDゲート160は、ANDゲート140−14
4 &、−よって発生される中間のD項を、XORゲー
ト130によって発生されるD30項、さらにはJまた
はに信号に応答する選択回路150によって発生される
Px31の値と結合する。この点に関連して、タイプO
の命令が実行されている場合、J信号が真であり、かく
てP x31の正の値をANDゲート160へ供給する
。同様に、タイプ1の命令が実行されている場合は、に
信号が真となるので1選択回路150はP x31の補
数値をANDゲート16oへ供給する。ANDゲート1
60によって発生されるEQ(結果=0)信号は、第1
図のEQ決定回路25からその出力線26に供給される
計算機の設計では、条件コードの計算が重要であること
は言うまでもない。結果がゼロより小さい(LT)条件
が除外されたということを仮定すると、結果がゼロより
大きい(GT)条件はEQ条件の否定によって指示され
るから、その計算はEQ条件の決定から直接に導くこと
ができる。かくて、EQ条件、その否定および結果の符
号が、GT条件を決定する。このような計算は第1図に
示されており、そこでは線28にある結果の符号ビット
と線26にあるEQ倍信号がNQRゲート27で結合さ
れて[結果がゼロより大きいJGT条件を指示する信号
を線29に供給する。
本発明の第2の実施態様は、第12図に示されている。
第12図ないし第19図に示されている第2の実施態様
の装置は、特にシステムが32ビツトの演算を使用する
場合を想定している。この装置は、2つの32ビツト・
オペランドについて行なわれる算術演算のGT条件、E
Q条件またはLT条件を検出する。
第2の実施態様では、オペランドAおよびBに関する算
術演算は演算論理ユニット(ALU)211によって行
なわれる。ALU 211は、第1図のALU  10
と同じ機能を遂行する。また、オペランドAおよびBは
第12図のブロック211ないし215へ同時に供給さ
れるが、オペランドBはその前に反転選択信号に応答す
る第12図のXORゲート210でビット単位で補数化
される。キャリイ選択回路200はALU  211の
演算のためにCinを発生する。
本発明の第2の実施態様は、結果の3条件(EQ、LT
およびGT)を予測するため、ALU211と平行に動
作する。第2の実施態様において、EQ倍信号状態の予
測は、伝達回路(TM)ブロック2121発生回路(G
)ブロック213および補助回路(ZW)ブロック21
4で発生される中間項の論理的結合によって達成される
。さらに、LTおよびGT条件のそれぞれの状態を予測
するための項は、第2の補助論理(LD)ブロック21
5によって発生される。これらの回路ブロックによって
発生された中間項は、真数形式および補数形式のCi 
nとともに条件コード回路(CC)ブロック216へ供
給され、よって3つの条件コード信号を発生することを
可能にする。
ここで1回路ブロック212−215およびEQ倍信号
発生するためのCCブロック216の部分を特徴づける
表現を理解するために、付録Cおよび第12図ないし第
19図を参照されたい。
第12図のTMブロック212は、伝達項T(i)とグ
ループ伝達項M()とを発生する6第13図を参照する
に、NORゲート300各々は対応するオペランド・ビ
ット対A (i)およびB (i)を受取り、これに対
応する伝達項T (i)を発生する。これらの伝達項は
ANDゲート302に供給され、そこでグループ伝達項
M()が発生される。
発生順G (i)は、その詳細を第14図に示したGブ
ロック213によって発生される、発生項G (i)N
o各々は、オペランド・ビットA (i)およびB (
i)に応答するANDゲート304によってそれぞれ発
生される。
ZWブロック214は、第15図に示されている。ZW
ブロック214において、2項の各々は、それぞれのA
NDゲート308を2つ以上のXORゲート306と組
み合わせることによって発生される。XORゲート30
6の各々は対応するオペランド・ビット対A(i)およ
びB (i)を受取り、その出力を1つ以上のANDゲ
ート308へ供給する。第15図に示すように、オペラ
ンド・ビット対A(0)およびB−(0)を受は取るx
Rゲート306は、半和W (0)を発生することに注
意されたい。
CCブロック216のEQ部分は、第17図に示されて
いる。付録Cに記述されたシーケンスを参照するに、そ
の第1のシーケンXT(0)’T(1)’−,。
、・T(M−1)’(Cin = Oの場合)は、六方
としてグループ伝達項M (0,31)およびCin″
を受は取るANDゲート320によって発生される。が
くて、第1のシーケンスが生ずる場合、ANDゲート3
20は正の状態を呈する。同様に、ANDゲート324
はグループ伝達項M (1,31) 、発生順G (0
)およびCi n’倍信号受取り、シーケンス(2,b
)が生ずるとき、正の信号を供給して当該シーケンスを
監視する。ANDゲート324の各々は1発生項G (
i) 、グループ伝達項M (i+1.N−1)および
グループ半和項W(0)・・1==1の場合・・または
Z (0,i −1)・・i > Oの場合・・からな
る中間項のグループをそれぞれ受は取る。またANDゲ
ート324の各々はCin’信号を受取り、シーケンス
(2)が生ずるとき、高い出力を発生する。ANDゲー
ト328は、シーケンス(2,a)を検出するため、発
生順G(31)、グループ半和項Z(0,30)ならび
にCi n’ を受は取る。ANDゲート328は、こ
のシーケンスが生ずるとき、高い出力を供給する。付録
Cに記述された第3のシーケンスはANDゲート340
によって検出され、当該ゲートはCi n’の正の信号
を反転(I)ゲート330を介して受取り且つこれをグ
ループ半和信号Z (0,31)と結合する。ORゲー
ト345はこれらのANDゲート320の出力を結合し
、当該ANDゲートの少なくとも1つが高い出力を発生
するとき、EQ倍信号1ヘセツトする。
もちろん、付録Cに記述された3つのシーケンスのうち
どれも2つの現オペランドについて満足されなければ、
第17図の回路はEQ倍信号ゼロヘセットする。
EQ条件はこのように加算器と平行に予測されるので、
この機能の経路遅延は先行技術のそれに比べて減少する
。殆どのALUは加算器を必要とするから、EQ条件の
予測に必要な多くの項はすでに加算器のために発生され
ている筈である。従って、EQ条件の予測を実現するた
めの追加のコストは、殆ど必要ない。
最後に、EQ条件の予測に関連して、LTおよびGT条
件を予測するためにLDブロック215が設けられる。
LDブロック215は付録りの項L (i)およびD 
(i)によって正確に表わされており、また第16図に
示されている。3つの条件(EQ、LT、GT)を知る
には、その2つだけを発生すればよい。第3の条件は、
他の2つの条件から知ることができる。EQ条件の計算
は、発生論理の小さなサブセットでなければならない。
ここではLTおよびGT条件の両方が発生されるが、そ
の一方だけが使用されねばならない。
LTおよびGT条件は、オペランド・ビットのストリン
グを最上位から最下位へむけてビット単位で比較するこ
とによって決定される。この場合、最初の不一致はどの
ビット・ストリングがGT条件に該当し、そしてどのビ
ット・ストリングがLT条件に該当するかを決定する。
最初の不一致ビット位置にいたるまでのビット・ストリ
ングは等しいから、このビット位置までに生ずる全ての
比較一致は無視される。同様に、最初の不一致の後に生
ずる全ての比較一致も無視される。というのは、それら
の大きさは最初の不一致ビット位置に比較すると、小さ
いからである。
この原理に基ずくプール式は、付録りに記述されている
任意の長さを有するオペランド・ビットのストリングに
ついて、付録りの関数から導かれたLTおよびGTは、
両ストリングの同じ位置における少なくとも1セツトの
ビットが異なる場合にのみ、結果(表明)を与える。こ
の関数は、両ストリングのビットが異なる最上位ビット
位置についてのみ表明を与える。もしこの関数が「Aは
Bより小さいJであれば、ビット・ストリングAの大き
さがビット・ストリングBより小さい場合にのみ、LT
関数が表明される。もしこの関数が「AはBより大きい
」であれば、ビット・ストリングAの大きさがビット・
ストリングBより大きい場合にのみ、GT関数が表明さ
れる。既に発生された加算器用の項を利用することによ
り、LTおよびGT関数の実現コストを大幅に減少させ
ることができる。
CCブロック216のLTおよびGT部分は第18図お
よび第19図にそれぞれ示されている。
これらの回路は、付録りの該当する項をそれぞれ実現し
たものである。
E0発明の効果 本発明によれば、算術演算の結果がゼロに等しいという
(E Q)条件を当該算術演算と時間的に平行して決定
することができるので、中央処理ユニットはこの算術演
算の結果が得られる前にその条件コードを決定すること
ができ、かくて中央処理ユニットの全体的な速度を向上
させることができる。
〔付録A〕
C1n==0に対するEQ条件の計算 以下の説明は、最初に提案した装置を詳細に規定する。
「最上位ビット」とは、左端ビット、即ちビット位置O
をいう。「最下位ビット」とは、右端ビット、即ちビッ
ト・ストリング長さN−1に相当するビット位置をいう
。簡単のため、以下の表記法を使用する。
1、 1は論理和(OR)を表わす 2、  ・は論理積(AND)を表わす3、  Vは排
他的論理和(XOR)を表わす4、 +は加算を表わす 5、−は減算を表わす 66 A′はAの1の補数を表わす 7、 11は連結を表わす C1n=0を有する命令(タイプ0の命令)については
、第1図のキャリイ・セイブ加算器20に加わる3人力
は次の関係を表現するために使用される。
A+B= (A+B−1)+1 =Px+Py+1 但し、   Px+Py= (A+B−1)ここで、2
の補数化表記法における−1がPxおよびpyの全ての
ビットjについて[11,、。
1111]に等価であると仮定すると1次の式が成立す
る。
(A、 1. a)  Px、 ” A、 V B、 
VIll = (A、 V B、)’ (A、 1. b)  py、 = (A、・B、) 
I (A、・1) l (B、・■)= A、 l B
これは、第1図ないし第3図のキャリイ・セイブ加算器
(MCSA)20の動作を記述するものである。加算器
20によって生ぜられた中間的な結果信号(Pxおよび
Py)は、pyの最上位ビットを除く全てのビットをP
xへ加算することによって、行組立回路22で結合され
る。この場合、pyはPxに対し1ビツトだけシフトさ
れる。これを式で表現すると、次のようになる。
(A−1)  Px”Py ” (PXo”Py□)D
 (pxz+pyz) 11−−− II(PX3o”
Pyai) I PX31この式は、第2図および第4
図に図式的に示されている。これらの式をバランスさせ
るためにPyのシフトによって空白になった最下位ビッ
ト位置へ「ホット1」が加算される。
A+Bの結果がゼロに等しくなるためには、第4図に示
すように「ホット1」へ加算される式(A、1)のPx
+Pyもゼロに等しくなければならない。
従って、以下の式が真である場合にのみ、EQ条件は真
である。
(A、2)  Px+Py+1=(Pxo+Pyz)I
f(Pxz”PyJD、−1(PX3o”P)’at)
 If (PXiz”1)=0 式(A、2)は、第4図において加数オペランドとして
図式的に示されている。「ホット1」はP x31へ加
算されるから、結果ビット31がゼロになるためには、
P x31が1に等しくなければならない。もしこれが
真であれば、結果ビット31はゼロに等しくなり、そし
てビット位置30へのキャリイ伝播が生ずる。ビット位
置30へのキャリイ入力は1に等しいから、結果ビット
30がゼロに等しくなるためには、ビット(Px30お
よびPyai)の1つだけが1に等しくなければならな
い。もしこれが真であれば、ビット位置29へのキャリ
イ伝播が生じ、そして結果ビット29がゼロに等しくな
るためには、ビット(Px29およびP y3o)の1
つだけが1に等しくなければならない。この伝播効果は
、全てのビット位置にも及ぶ。
この意味するところは、Ai+Biがゼロに等しくなる
ためには、PxiおよびPyi+1の一方だけが(両方
ではない)1に等しくなければならない、ということで
ある。これを式の形で示すと、次のようになる。
EQ(タイプO)、=Px、vPy、+1この式は、所
与の結果ビット位置iがゼロに等しくなるための条件を
計算するものである。ビット位置31については、「ホ
ット1」の加算が行なわれると、これは次のようになる
EQ(タイプ0)、□= PX、、 従って、A+Bの結果がゼロに等しくなるためには、以
下の関係が真でなければならない。
(A、3)  EQ (タイプ0)=Px31・[Px
lllvPyl)・(PxLvPYz)”−−−’(P
Xto  V  Py、+x)コ= Px、□・D 但し、D = [(Pxo V Pyz)・(Pxt 
V Py、)・、、、(Px、。vPy3.)コ信号り
は、さらに次のように定義される。
(A、 3 、 a )  D :D(0,5)・D(
6,1110(12,17)D(18,23)・D(2
4,29)・D(30) 但し、0311 ” (PX311 V Pyal)D
(i、l+5) = (Pxlv pyj+1)−(p
xi、1v pyi+2)−、、、−(Pxi+5vP
yi+6) 〔付録B〕 Ci n=1に対するEQ条件の計算 以下の説明は、最初に提案した装置を詳細な記述である
。「最上位ビット」は左端ビット、即ちビットOを指示
する。「最下位ビット」は右端ビット、即ちビット・ス
トリング長さN−1に相当するビット位置を指示する。
簡単のために、以下の表記法を使用する。
1、 1は論理和(OR)を表わす 2、  ・は論理積(AND)を表わす3、  Vは排
他的論理和(XOR)を表わす4、 +は加算を表わす 5、−は減算を表わす 6、 A′はAの1の補数を表わす 7、  1は連結を表わす C1n=1を用いる命令(タイプ1の命令)について、
第1図のキャリイ・セイブ加算器(MC3A)20は以
下の関係を表現するために使用される。
A−B=A+B’ +1 =  (A+B’−1)+1+1 =Px+Py+1+1 但し、   Px+Py” (A+B’  −1)2の
補数化表記法について、−1が[111,。
、11111に等価であると仮定すると、PxおよびP
yのすべてのビットiについて以下の表現が真となる。
(B、 1. a)  Px、 =A、 V B’、 
Vlll      1 = (A、 V B’ 、)’ (B、 1. b)  Py−;(A、・B’ 、) 
I (A、・1) I (B’ 、・1)=A、lB’
これは、第3図の加算器20の動作を式の形式で記述す
る。加算器20によって生ぜられる中間項(Pxおよび
Py)は、Pyの最上位ビットを除く全てのビットをP
xへ加算することによって。
生ぜられる。この場合、pyはPxに対し1ビツトだけ
シフトされている。32ビツトのオペランドについては
、これは次の式によって表わされる。
(8,1)  Px+Py :(Px。”Pyt) 1
1 (pxt+pyz) I 、、、 1(PXao”
PYat) If Px、1この式は、第3図および第
5図に図式的に示されている。最初の「ホット1」が加
算されるのは、Pxおよびpyを決定するために加算さ
れる−1についてこの式をバランスさせるためである。
第2の「ホット1」 (制御されたホット1)が加算さ
れるのは、B′が1の補数形式で与えられるためである
。1の補数形式を適正な2の補数形式へ変換するために
、他の1が1の補数形式へ加算されねばならない。
A+Bの結果がゼロに等しくなるためには、第5図に示
すように2つの「ホット1」へ加算された式(8,1)
の項(Px+Py)もまたゼロに等しくなければならな
い。従って、EQ条件は、以下の式が真である場合にの
み真である。
(B 、 2)  Px+Py+1+1 : (Pxo
”Pyi) l (Pxl”PyJ If−1,If(
PXaa”Pyit) It (PX31”l+1)二
〇 式(B、2)は、第5図において加算動作として図式的
に示されている。2つの「ホット1」がPX31へ加算
されたから、PX31がゼロに等しい場合にのみ、結果
ビット31はゼロに等しくなる。
もしこれが真であれば、結果ビット31はゼロに等しく
なり、そしてビット位置30へのキャリイ伝播が生ずる
ことになる。ビット位置30へのキャリイ入力は1に等
しいから、結果ビット30がゼロに等しくなるためには
、ビット(PX30およびPyal)の一方だけが1に
等しくなければならない。この伝播効果は、全てのビッ
ト位置へ及ぶ。
この意味するところは、Ai+Biがゼロに等しくなる
ため番こは、Pxiおよびpy+xの一方だけが(両方
ではない)1に等しくなければならない。
ということである。これを式の形で示すと1次のように
なる。
EQ(タイプ1)  −= Px、V  Pyi+1こ
の式は、所与のビット位[iがゼロに等しくなるための
条件を計算する。ビット位置31については、「ホット
1」の加算が行なわれると、次のようになる。
EQ(タイプ1 ) ai” Px、1′従って、A+
Bの結果がゼロに等しくなるためには、以下の関係が真
でなければならない。
(B、3)  EQ (タイプ1) = Px、t’(
(PxoV Pyi)・(Px□V Pyz)・−、、
(Px3.I VPy3□)] = Px’、、拳り 但し、D = [(Px、V Pyl)・(PxlV 
Pyz)’−−−”(PXia V P)’31)]〔
付録C〕 第2の実施態様を説明するにあたり、以下の表記法、プ
ール記号および定義を使用する。
■、 表記法 1) ′は関連する表現または項の補数である2)  
 (a + b)はaとbの論理和を表わす3)   
(ab)はaとbの論理積を表わす4)   (aVb
)はaとbの排他的論理和を表わす■、 プール表現 (1,1)  IVa=a’ ■、 加算のための伝達(T)、発生(G)および半和
(W)関数 (1,2) T(i) ;A(i)IB(i)(1,3
) G(i) = A(i)B(i)(1,4) V(
i) =A(i) V B(i)(1,5)和(i)=
^(i) V B(i) V C(i+1)但し、N=
加算の幅 0<=i<=N−1 A (i) =入力オペランドのビット位置iB (i
) =入力オペランドのピッ1−位[iC(i+1)=
ピット位置iへのキャリイ入力 C(N) =加算器の最下位ビット位置へのキャリイ入
力 加算の結果がゼロに等しいか否かを決定するには、加算
自体を行、なう必要はない。結果がゼロに等しくなるた
めの要件が、2つのオペランドによって満足されている
ことだけをチエツクすればよいからである。
オペランドAの任意のビットA (i)およびオペラン
ドBの対応するビットB (i)については、成る幾つ
かのビット組合せだけが加算結果のビットiにゼロを発
生する。これらの組合せは、次のようなものである。
ケース1.一方のオペランドのビットiがゼロに等しく
、他方のオペランドのビッ トiが1に等しく、且つキャリイ入 力が1に等しい場合。即ち、 W(i) :A(i) V B(i) =1但し、C(
i+1)=1 和(i)  = A(i)  V  B(i)  V 
 C(i+1)  =  0但し、キャリイ出力=1 ケース2. 両オペランドのビットiが1に等しく、且
つキャリイ入力がゼロに等し い場合。即ち。
G(i) =A(i)B(i) = 1但し、 C(i
+1) = 0 和(i) =A(i) V B(i) V C(i+1
) = 0但し、キャリイ出力=1 ケース3. 両オペランドのビットiがゼロに等しく、
且つキャリイ久方がゼロに等 しい場合。即ち、 T(i) =A(i)IB(i) 二〇但し、C(i÷
1);O 和(i) =A(i) V B(i) V C(i+1
) =0但し、キャリイ出力=0 長さNのビット・ストリングについては、前記リストさ
れた3つの条件の成る順列だけが、加算動作の結果とし
てゼロのストリングを許容する。
成るiについてT(i)=Qである場合、もし和(i)
がゼロに等しくなるのであれば、ビットjより下位のビ
ットについて行なわれる加算動作はキャリイ出力1を生
ずることができない。和がゼロに等しい場合、キャリイ
出カ1を生ずることができないのはT (i) =O(
但し、A(i)=B (i)=O)だけである。換言す
れば、もしビット位[iがオペランドAおよびBの両方
でゼロであったなら、ビット位置i+1は両オペランド
についてゼロを持たなければならない、ということであ
る。成るiについてT (i)=Oである場合、ビット
iないしN−1の和がゼロであるためには、ビット位[
iないしN−1のオペランドAおよびBもゼロでなけれ
ばならない。さもなければ、成るiについてケース3に
違反する状況が生ずる。ビットN−1へのキャリイ入力
もゼロでなければならない。
成るiについてW(i)=1である場合、和がゼロに等
しくなるためには、ビットi+1に関する加算動作はキ
ャリイ出力1を生じなければならない。前記でリストし
た動作のうちキャリイ出カ1を生ずるのは、ケース1お
よび2である。換言すれば、もしビット位置iが1つの
オペランドだけで1を有していたならば、ビット位置i
+1はC(i+2)=1を伴うW(i+1)=1.また
はC(i+2)=Oを伴うG (i+1)=1を有さな
ければならない。
成るiについてG (i)=1である場合、和(i)が
ゼロに等しくなるためには、ビットi+1に関する加算
動作はキャリイ出力Oを生じなければならない。前記で
リストした動作のキャリイ出力0を生ずるのは、T (
i)=Oの場合だけである。即ち、もしビット位置iが
両オペランドにおいて1を有していたならば、ビット位
置i+1は両オペランドAおよびBについてゼロを有し
なければならない。このことは、G (i)=1につい
て、T (i+1)=T (i+2)=0.、=T(N
)=Oを暗示する。
また、ビットiの和がゼロに等しくなるためにG (i
)=1およびW(i)=1はキャリイ出力を発生しなけ
ればならないから、G(i−1)またはT(i−1)は
G (i)=1またはW(i)=1に追従することがで
きない。
もしオペランドの和がゼロに等しければ、前記動作を互
いに論理的に結合して1に等しくすると、以下に示す3
つの可能なシーケンスが生ずる。
1、  T (0)’ T (1)’ 、、、T (N
−1)’但し、C1n=0 ここで、T (i)は、全ての必要なiについて、第1
3図の回路によって生ぜられる。
T (0)’ T (1)’ 、、、T (N−1)’
は、オペランドの各ビット位置に関する1組の連続的な
T′動作であって、ビット0で開始し且つビットNで終
了する。このシーケンスについては1両オペランドは全
てのビット位置において全ゼロを有する。
2、   W (0)W (1)、、、W (i−1)
G(i) T (i+1) ’ T (i+2) ’ 
、 、 。
T(N−1)’ 但し、C1n=0 ここで、W (0)W (1)、、、W (i−1)は
オペランドの各ビット位置に関する1組の連続的なW演
算であり、ビット0で開始し且つビットi−1で終了す
る。
T (i+1) ’  T (i+2) ’  、  
、  、 T (N −1)′は、オペランドの各ビッ
ト位置に関する1組の連続的なT′演算であり、ビット
i+1で開始し且つビットN−1で終了する。一般に、
このシーケンスでは、両オペランドはビット位置(N−
1)ないしくi + 1)に全ゼロを有し、ビット位置
iに1を有する。ビット位置(i−1)ないし0におけ
る各オペランドは、同じビット位置における他方の1の
補数である。
2 (a) 、  G (i) =G (N−1)であ
るシーケンス2の特別なケースについては、 W (0)W (1)、、、W (N−2)G (N−
1)    但し、Ci n=0 ココテ、W (0)W (1)、、、W (N−1)は
、オペランドの各ビット位置に関する1組の連続的なW
演算であり、ビット0で開始し且つビットN−2で終了
する。
2 (b) 、  G (i) =G (0)であるシ
ーケンス2の特別なケースについては、 G (0) T (1) ’ T (2) ’ 、 、
 、 T (N=2)’  T (N−1)’    
 但し、C1n=0ここで、T (1) ’ T (2
) ’ 、 、 、 T (N −21)’ T (N
−1)’はオペランドの各ビット位置に関する1組の連
続的なT′演算であり、ビット1で開始し且つビットN
−1で終了する。
3、  W(0)W(1)、、、W(N−1)但し、C
i n=1 ここで、W (0)W (1)、、、W (N−1)は
、オペランドの各ビット位置に関する1組のW演算であ
り、ビット0で開始し且つビットN−1で終了する。こ
のケースでは、各オペランドは他方の1の補数である。
ここで、次のことを仮定する。
Z(0,1)、1(0)11(1)    =(A(0
)V  B(0))(A(1)V  B(1))Z(0
,2)=W(0)It(1)W(2)=(A(0) V
 B(0))(A(1) V B(1))(A(2) 
V B(2)) Z (0,i)、即ち全ての必要とされるiに対するグ
ループ半和は、第15図のゲート論理回路によって生ぜ
られる。
また、 M(0,1)=T(0)’T(1)’ M(0,2)=T(0)’T(1)’T(2)’M (
0,i) 、即ち全ての必要とされるiに対するグルー
プ伝達は、第13図のゲート論理回路によって生ぜられ
る。
ここで、Cinが最下位ビットへのキャリイ入力を表わ
すものと仮定する。そうすると、ビット長Nのオペラン
ドについては、EQ条件に等価な「結果=OJ関数(F
)は次のように表わすことができる。
(1)  F=M(0,N−1)C,’n ÷G(0)M(1,N−1)C,’ n +11(0)G(1)M(2,N−1)C,’n +Z(0,1)G(2)M(3,N−1)C,’n +Z(0,2)G(3)M(4,N−1)C,’n +2(0,N−2)G(N−1)C,’n +2(0,N−1)C。
n 但し、Fは第17図の回路によって生ぜられる。
プール式で表現した実現形態は次のとおりである。
レベル 0 A(i)、B(i)、A(i)’、B(i)、C1n レベル I G(i) w(i)、T(i)’ 、NC,o:(C1o)’  
       (two each)レベル 2 ZA(00,07)=11(0)It(1)W(2)東
3)W(4)W(5)W(6)W(7)ZB(00,0
7)=11(のW (1)It(2)II’ (3)I
II(4) W (5) W (6)1(7)ZC(0
0,07)=W (0)W (1)W (2)lit(
3)W (4)lit(5)Iil(6)V (7)Z
A(08,15)=W(8)W(9)W(1のW(11
)Iil(12)lit(13)W(14)W(15)
ZB (08,15)=til (8)W (9)It
 (10)lit (11)lit (12)W (1
3)V (14)W (15)ZA (16,23)=
Iil(16)V (17)Iil(18)V (19
)V (20)W (21)# (22)W (23)
NC。
n MA(08,15)=T(8)’T(9)’T(1の’
TQI)’T(12)’T(13)’T(14)’T(
15)’MA(16,23)=T(16) ’ T(1
7)’ T(18)’ T(19)’ T(20)’ 
T(21) ’ T(22) ’ T(23)’MB(
16,23)=T(16)’ T(17)’ T(18
)’ T(19)’ T(20)’ T(21)’ T
(22)’ T(23)’MA (24,31)=T 
(24)’ T(25)’ T(26)’ T(27)
’ T(28)’ T(29)’ T(30)’ T(
31)’C1n MB(24,31)=T(24) ’ T(25)’ 
T(26) ’ T(27) ’ T(28)’ T(
29) ’ T(30)’ T(31)’C1n MC(24,31)=T(24)’ T(25)’ T
(26) ’ T(27) ’ T(28)’ T(2
9) ’ T(3のT(31)’NC。
n Z(00,03)=V(0)V(1)W(2)V(3)
 。
Z(04,07)=V(4)W(5)す(6)lit(
7)。
Z(08,11)=11(8)w(9)W(10)V(
11) 。
Z(12,15)=l+1(12)W(13)V(14
)W(15)Z(16,19)=li1(16)lit
(17)V(18)V(19) 。
Z(20,23)=V(20)W(21)V(22)V
(23)Z(24,27)=Id(24)Iil(25
)It(26)lit(27)NC。
n に(04,07)=T(4)’ T(5)’ T(6)
’ T(7)’M(08,11)=T(8)’T(9)
’T(10)’TOI)’。
M(12,15)=T(12)’ T(13)’ T(
14)’ T(15)’M(16,19)=T(16)
’T(17)’T(18)’T(19)’ 。
M(20,23)=T(20)’T(21)’T(22
)’T(23)’M(24,27)=T(24)’T(
25)’T(26)’T(27)’ 。
M(28,31)=T(28)’ T(29)’ T(
30)’ T(31)’WA(i)=W(i)、MA(
i)、MA(i):T(i)’         (p
ower up)Z(28,31)、lt+(28)す
(29)W(30)W(31)レベル 3 ZOA=ZA (00,07) ZOB=ZA(00,07) ZOC=ZA (00,07) Z01A=ZB(00,07)ZA(08,15)Z0
1B=ZB(00,07)ZA(08,15)Z01C
=ZB(00,07)ZA(08,15)Z012A=
ZC(00,07)ZB(08,15)ZA(16,2
3)2012B=ZC(00,07)ZB(08,15
)ZA(16,23)Z012C=ZC(00,07)
ZB(08,15)ZA(16,23)M123A=M
A(08,15)MA(16,23)HA(24,31
)M123B=MA(08,15)MA(16,23)
MA(24,31)M123C=M^(08,15)H
A(16,23)MA(24,31)M23A=MB(
16,23)MB(24,31)M23B=MB(16
,23)MB(24,31)M23C=MB(16,2
3)MB(24,31)M3A=M(:(24,31) M3[3=MC(24,31) H3C=MC(24,31) M013C=MC(00,07)MB(08,15)M
B(24,31)ZA(00,03):Z(00,03
)、 ZA(04,07)=Z(04,07)  (p
ower up)ZA(08,11)=2(08,11
)、 ZA(12,15):Z(12,15)  (p
ower up)ZA(16,19)”Z(16,19
)、 ZA(20,23)=Z(20,23)  (p
otyer up)ZA(24,27)=Z(24,2
7)、 ZA(04,07)=Z(04,07)  (
power up)MA(08,11)堵(08,11
)、 MA(12,15)二M(12,15)  (p
ower up)MA(16,19)−M(16,19
)、 MA(20,23)二M(20,23)  (p
otyer up)MA(24,27)二M(24,2
7)、 MA(28,31)二M(28,31)  (
power up)レベル 4 FZERO5=(M(00,07)M(08,15)M
123A(1))F00=(G(0)MA(1)MA(
2)MA(3)HA(04,07)M123A(1))
Fol、(111A(0)G(1)MA(2)MA(3
)MA(04,07)M123A(1))F02=(W
A(0)IIA(1)G(2)HA(3)MA(04,
07)M123B(1))F03=(WA(0)WA(
1)WA(2)G(3)MA(04,07)M123B
(1))F04=(Z(00,03)G(4)HA(5
)HA(6)HA(7)M123B(1))F05=(
ZA(00,03)IJA(4)G(5)HA(6)M
A(7)M123C(1))F06=(ZA(00,0
3)IIA(4)WA(5)G(6)MA(7)M12
3(1))Fo7=(zA(oo、o3)wA(4)w
A(5)wA(6)G(7)+n23cO))FO8=
(ZOA (1)G(8)MA (9)MA (10)
HA (11)M (12,15)M23A (1) 
)FO9= (ZOA (1)WA (8)G (9)
MA (10)MA (11)HA (12,15)M
23A (1))FIO,(ZOA (1)WA (8
)WA (9)G (10)MA (11)MA (1
2、15)M23A (1))F11=(ZOB(1,
)WA(8)WA(9)勤(10)G(11)MA(1
2,15)823B(]、))F12=(ZOB(1)
Z(08,11)G(12)HA(13)MA(14)
MA(15)M23B(1))Fl 3= (ZOB 
(1)ZA (08、11)IilA (12)G (
13)MA (14)MA (15)M23!3 (1
))F14=(ZOC(1)ZA (08,11)WA
 (12)WA (13)G(14)MA (15)M
23C(1))F15=(ZOC(1)ZA (08,
i 1uA(t2)tyA (13)wA (14Xt
5)M23CO))F16:(ZOIA(1)G(16
)MA(17)MA(18)HA(19)MA(20,
23)阿3A(1))F17= (ZOIA (1)W
A (16)G (17)MA (18)MA (19
)MA (20、23)M23A (1))F18= 
(ZOIA (1)tilA (16)WA (17)
G (18)MA (19)HA (20、23)M2
3A (1))F19= (201B (1)IilA
 (16)WA (17)WA (18)G (19)
HA (20、23)83B (1) )F20= (
ZOIB (1)Z (16、19)G (20)MA
 (21)MA (22)MA (23)M3C(1)
)F21= (ZOIB (1)ZA (16,19)
WA (2)G (21)MA (22)HA (23
)M3C(1))F22= (ZOIC(1)ZA (
16,19)WA (20)WA (21)G (22
)MA (23)M2C(1))F23= (ZOIC
(1)ZA (16、19)IIA (20)WA (
21)WA (22)G (23)M2C(1))F2
4=(2012A (1)G(24)MA (25)M
A (26)MA (27)M (28、31))F2
5=(Z012A(1)すA(24)G(25)MA(
26)MA(27)HA(28,31))F26=(Z
012A(1)すA(24)すA(25)G(26)M
A(27)MA(28,31))F27= (ZO12
B (1)WA (24)WA (25)WA (26
)G(27)MA (28,31))F28= (ZO
12B (1)Z(24,27)G (28)MA (
29)HA (30)MA (31))F29= (Z
O12B (1)ZA (24、27)VA (28)
G (29)HA (30)MA (31) )F30
= (2012C(1)ZA (24、27)wA (
28)lilA (29)G (30)MA (31)
 )F31= (2012C(1)ZA (24、27
)VA (28)VA (29)WA (30)G (
31))FONES= (ZOIC(1)Z(16,1
9)Z(20,23)Z(24,27)Z(28,31
)C,n)yぺ止旦 AO= FOO(1) IFOI(1) 1FO2(1
) 1FO3(1) 1FO4(1)AI = FO5
(1) IFO6(1) 1FO7(1) 1FO8(
1) 1FO9(1)A2 = Floo)+1711
(1)lF12(1)lF13(1)lF14(1)A
3 = F15(1) 1F16(1) 1FL7(1
) lF18(1) 1F19(1)A4 = F20
(1)lF2m)lF22(1)lF23(1)lF2
4(1)A5 = F250)lF260)IF:/7
(1)lF28(1)lF29(1)A6 = F30
0)lF31(1)IFZERO5Q)IONES(1
)kベル 旦 F = (AO(1)lA[)lA2(1)lA3(1
]A4(1)lA5(1)lA6(1))〔付録D〕 A (i)をビット・ストリングAのビット位置iであ
ると仮定する。
B (i)をビット・ストリングBのビット位置iであ
ると仮定する。
L (i)およびD(i)をビット位置iに対するビッ
ト比較関数であると仮定する。即ち、L (i) =A
 (i)”B (i)   より小さい場合D (i)
 =A (i) B (i) ’   より大きし1場
合Nビット・ストリングについては、ストリング比較関
数は次のように表わすことができる。
LT = L(0) + CG(0) IT(0)’)L(1)+ (G(0
) IT(0)’)(G(1) IT(1)’)L(2
)+ (G(0)IT(0)’)(GO)IT(1)’
) (G(2)IT(2)’)L(3)■ +(G(0)IT(0)’)(GO)IT(1)’)・
・・CG(N−2)IT(N−2)’)L(N−1)L
Tは第18図に記述されている。
また、 GT = D(0) + (G(0) IT(0)つD(1)1 (G(0)
IT(0)’)(G(1iT(1)’)D(2)+ (
G(0) IT(0)’) (G(1) IT(1)’
)(G(2) IT(2)’)D(3)+ (G(0)
 IT(0)す(G(1) IT(1)’)・・・(G
(N−2)IT(N−2)’)D(N−1)GTは第1
8図に記述されている。
【図面の簡単な説明】
第1図は本発明の第1の実施態様を示すブロック図、第
2図および第3図は第1図に示す第1の実施態様を更に
詳細に示すブロック図、第4図および第5図は第1図の
行組立回路の詳細を示す図、第6図ないし第11図はE
Q条件を検出するための第1図の部分を詳細に示す図、
第12図は本発明の第2の実施態様を示す図、第13図
ないし第19図は第12図の要素を詳細に示す図である
。 10−パ°演算論理ユニット、12・・・・キャリイ選
択回路、20・・・・変形されたキャリイ・セイブ加算
器、22・・・・行組立回路、25・・・・ZQ決定回
路 出願人  インターナショナル・ビジネス・マシーンズ
・コーポレーション 代理人  弁理士  頓  宮  孝  −(外1名) I@栗     LT       GT      
EQPx     Py     +1 FIG、15 FIG、  14 FIG、  16 FIG、  18 FIG、  19

Claims (4)

    【特許請求の範囲】
  1. (1)キャリイ入力信号に応答して、各々が順序づけら
    れたシーケンスの複数ビットから成る1対のオペランド
    AおよびBの算術演算を遂行し且つ該算術演算の結果を
    表わすディジタル出力信号を発生するための算術演算ユ
    ニットを含む計算機システムにおいて、 前記オペランドに応答して該オペランドを算術的に結合
    することにより順序づけられたシーケンスの中間的結果
    信号を発生するためのディジタル論理回路と、 前記ディジタル論理回路に接続され、前記キャリイ入力
    信号と前記キャリイ入力信号と順序づけられたシーケン
    スの中間的結果信号との算術的結合に基づいて第1の条
    件コード信号を前記算術演算と平行して発生することに
    より、前記算術演算の結果がゼロに等しいか否かを指示
    するための条件コード予測手段とから成る、条件コード
    の予測装置。
  2. (2)前記ディジタル論理回路が、前記オペランドをキ
    ャリイ無しで結合するための変形されたキャリイ・セイ
    ブ加算器を含む、特許請求の範囲第1項記載の条件コー
    ドの予測装置。
  3. (3)前記条件コード予測手段が、前記第1の条件コー
    ド信号に応答して第2の条件コード信号を発生すること
    により前記算術演算の結果が正または負の何れであるか
    を指示するための手段を含む、特許請求の範囲第1項記
    載の条件コードの予測装置。
  4. (4)前記ディジタル論理回路が、前記オペランドを結
    合して複数の伝達項を含む順序づけられたシーケンスの
    第1の中間的結果信号、複数の半和項、発生項および伝
    達項を含む順序づけられたシーケンスの第2の中間的結
    果信号、ならびに複数の半和項を含む順序づけられたシ
    ーケンスの第3の中間的結果信号を発生するためのゲー
    ト論理を含む、特許請求の範囲第1項記載の条件コード
    の予測装置。
JP63319661A 1988-02-17 1988-12-20 条件コードの予測装置 Granted JPH01211119A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/157,500 US4924422A (en) 1988-02-17 1988-02-17 Method and apparatus for modified carry-save determination of arithmetic/logic zero results
US157500 1993-11-26

Publications (2)

Publication Number Publication Date
JPH01211119A true JPH01211119A (ja) 1989-08-24
JPH0542011B2 JPH0542011B2 (ja) 1993-06-25

Family

ID=22564006

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63319661A Granted JPH01211119A (ja) 1988-02-17 1988-12-20 条件コードの予測装置

Country Status (3)

Country Link
US (1) US4924422A (ja)
EP (1) EP0328871A3 (ja)
JP (1) JPH01211119A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827708B2 (ja) * 1990-04-04 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレーション Alu状況判定装置

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5359718A (en) * 1991-03-29 1994-10-25 International Business Machines Corporation Early scalable instruction set machine alu status prediction apparatus
US5245563A (en) * 1991-09-20 1993-09-14 Kendall Square Research Corporation Fast control for round unit
US5270955A (en) * 1992-07-31 1993-12-14 Texas Instruments Incorporated Method of detecting arithmetic or logical computation result
US5469377A (en) * 1992-08-18 1995-11-21 Nec Corporation Floating point computing device for simplifying procedures accompanying addition or subtraction by detecting whether all of the bits of the digits of the mantissa are 0 or 1
US5548665A (en) * 1992-09-09 1996-08-20 Matsushita Electric Industrial Co., Ltd. Vector correlation detecting circuit
US6173305B1 (en) 1993-11-30 2001-01-09 Texas Instruments Incorporated Division by iteration employing subtraction and conditional source selection of a prior difference or a left shifted remainder
US5493524A (en) * 1993-11-30 1996-02-20 Texas Instruments Incorporated Three input arithmetic logic unit employing carry propagate logic
US5420809A (en) * 1993-11-30 1995-05-30 Texas Instruments Incorporated Method of operating a data processing apparatus to compute correlation
US5640578A (en) * 1993-11-30 1997-06-17 Texas Instruments Incorporated Arithmetic logic unit having plural independent sections and register storing resultant indicator bit from every section
US6219688B1 (en) 1993-11-30 2001-04-17 Texas Instruments Incorporated Method, apparatus and system for sum of plural absolute differences
US6016538A (en) * 1993-11-30 2000-01-18 Texas Instruments Incorporated Method, apparatus and system forming the sum of data in plural equal sections of a single data word
GB9404377D0 (en) * 1994-03-07 1994-04-20 Texas Instruments Ltd Improvements in or relating to a comparator scheme
GB2293665A (en) * 1994-09-29 1996-04-03 Texas Instruments Ltd A look-ahead scheme.
US5586069A (en) * 1994-09-30 1996-12-17 Vlsi Technology, Inc. Arithmetic logic unit with zero sum prediction
US5798958A (en) * 1996-06-05 1998-08-25 Samsung Electronics Co., Ltd. Zero detect for binary sum
US6018757A (en) * 1996-08-08 2000-01-25 Samsung Electronics Company, Ltd. Zero detect for binary difference
US5862065A (en) * 1997-02-13 1999-01-19 Advanced Micro Devices, Inc. Method and circuit for fast generation of zero flag condition code in a microprocessor-based computer
US6035390A (en) * 1998-01-12 2000-03-07 International Business Machines Corporation Method and apparatus for generating and logically combining less than (LT), greater than (GT), and equal to (EQ) condition code bits concurrently with the execution of an arithmetic or logical operation
US6292814B1 (en) * 1998-06-26 2001-09-18 Hitachi America, Ltd. Methods and apparatus for implementing a sign function
US7062633B1 (en) * 1998-12-16 2006-06-13 Matsushita Electric Industrial Co., Ltd. Conditional vector arithmetic method and conditional vector arithmetic unit
US6598153B1 (en) 1999-12-10 2003-07-22 International Business Machines Corporation Processor and method that accelerate evaluation of pairs of condition-setting and branch instructions
US8015230B2 (en) * 2007-06-08 2011-09-06 Apple Inc. Fast modular zero sum and ones sum determination
US20090292757A1 (en) * 2008-05-23 2009-11-26 Steven Leeland Method and apparatus for zero prediction
US9323534B2 (en) 2013-03-15 2016-04-26 Freescale Semiconductor, Inc. Method and apparatus for detecting a collision between multiple threads of execution for accessing a memory array
US9116799B2 (en) 2013-06-30 2015-08-25 Freescale Semiconductor, Inc. Method for detecting bank collision at a memory and device therefor

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63208938A (ja) * 1987-02-26 1988-08-30 Hitachi Ltd フラグ発生回路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3983382A (en) * 1975-06-02 1976-09-28 International Business Machines Corporation Adder with fast detection of sum equal to zeroes or radix minus one
US3986015A (en) * 1975-06-23 1976-10-12 International Business Machines Corporation Arithmetic unit for use in a digital data processor and having an improved system for parity check bit generation and error detection
US4338661A (en) * 1979-05-21 1982-07-06 Motorola, Inc. Conditional branch unit for microprogrammed data processor
US4373180A (en) * 1980-07-09 1983-02-08 Sperry Corporation Microprogrammed control system capable of pipelining even when executing a conditional branch instruction
US4430706A (en) * 1980-10-27 1984-02-07 Burroughs Corporation Branch prediction apparatus and method for a data processing system
US4407015A (en) * 1980-11-26 1983-09-27 Burroughs Corporation Multiple event driven micro-sequencer
US4630192A (en) * 1983-05-18 1986-12-16 International Business Machines Corporation Apparatus for executing an instruction and for simultaneously generating and storing related information
US4578750A (en) * 1983-08-24 1986-03-25 Amdahl Corporation Code determination using half-adder based operand comparator

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63208938A (ja) * 1987-02-26 1988-08-30 Hitachi Ltd フラグ発生回路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827708B2 (ja) * 1990-04-04 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレーション Alu状況判定装置

Also Published As

Publication number Publication date
EP0328871A2 (en) 1989-08-23
JPH0542011B2 (ja) 1993-06-25
EP0328871A3 (en) 1991-07-03
US4924422A (en) 1990-05-08

Similar Documents

Publication Publication Date Title
JPH01211119A (ja) 条件コードの予測装置
US5508950A (en) Circuit and method for detecting if a sum of two multibit numbers equals a third multibit constant number prior to availability of the sum
JPH07210368A (ja) 算術演算の結果として生じる正および負のオーバーフローのハードウェアによる効率的な取り扱い方法
US6018757A (en) Zero detect for binary difference
US6947962B2 (en) Overflow prediction algorithm and logic for high speed arithmetic units
US6085211A (en) Logic circuit and floating-point arithmetic unit
US4811272A (en) Apparatus and method for an extended arithmetic logic unit for expediting selected floating point operations
US7437400B2 (en) Data processing apparatus and method for performing floating point addition
US4947359A (en) Apparatus and method for prediction of zero arithmetic/logic results
US6499044B1 (en) Leading zero/one anticipator for floating point
JP2554452B2 (ja) 自己検査型補数加算器ユニット
US5574677A (en) Adaptive non-restoring integer divide apparatus with integrated overflow detect
EP0436905A2 (en) High performance adder using carry predictions
JP5243446B2 (ja) ディジタル論理回路におけるマルチビットベクトルの効率的な比較演算のためのシステムおよび方法
US20050210095A1 (en) Data processing apparatus and method for determining a processing path to perform a data processing operation on input data elements
JPH09114641A (ja) 最上位デジットを決定するための装置と方法
US4914579A (en) Apparatus for branch prediction for computer instructions
US7386580B2 (en) Data processing apparatus and method for computing an absolute difference between first and second data elements
Li et al. Design of a fully pipelined single-precision multiply-add-fused unit
JP3512700B2 (ja) 浮動小数点演算装置
US5689721A (en) Detecting overflow conditions for negative quotients in nonrestoring two's complement division
JPH0479014B2 (ja)
JPH09185493A (ja) 加算器用集積回路
KR950015180B1 (ko) 고속연산형 가산기
EP0704793B1 (en) Method and circuit to compare the sum of two numbers to a third number