JPH0542011B2 - - Google Patents
Info
- Publication number
- JPH0542011B2 JPH0542011B2 JP63319661A JP31966188A JPH0542011B2 JP H0542011 B2 JPH0542011 B2 JP H0542011B2 JP 63319661 A JP63319661 A JP 63319661A JP 31966188 A JP31966188 A JP 31966188A JP H0542011 B2 JPH0542011 B2 JP H0542011B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- zero
- result
- carry
- signal
- 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 - Lifetime
Links
- 230000000295 complement effect Effects 0.000 claims description 25
- 238000007792 addition Methods 0.000 description 19
- 230000014509 gene expression Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
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/57—Arithmetic 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
-
- 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/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30094—Condition code generation, e.g. Carry, Zero flag
-
- 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
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)
Description
A 産業上の利用分野
本発明はデイジタル計算機の演算に係り、更に
詳細に説明すれば算術演算の結果を反映する条件
コードを予測することに係る。 B 従来の技術 計算機システムの性能は、算術演算の速度と精
度によつて大きく左右される。というのは、計算
機が実行する多くの命令は算術演算を必要とする
からである。一般に、算術回路は多数のゲートお
よび論理レベルを含むので、これは計算機の命令
実行ユニツトにおいても最も複雑な回路である。
従つて、算術演算は、低速でエラーにあいやす
い。算術演算の結果が有する1つの重要な側面
は、それが条件コードを決定するという点であ
る。条件コードは、算術演算の結果を反映するた
めに、計算機によつてセツトされる。このコード
は、計算機が算術演算の結果に依存して動作上の
判断を行なうのに役立つ。条件コードは補数デー
タの発生を含むロード命令のようないくつかの非
算術演算においても重要である。計算機の性能を
向上させるためには、演算の実行と並行してその
条件コードを計算することが望ましい。 一般に、条件コードは、演算の結果がゼロより
大きい(GT)条件、ゼロより小さい(LT)条
件、またはゼロに等しい(EQ)条件を指示する
ために用いられる。LT条件は単に結果の符号を
調べることを必要とするにすぎないから、その検
出は最も容易である。これに対し、結果がゼロま
たは正である場合、結果の符号は正にセツトされ
るから、GTおよびEQ条件の検出は一層困難と
なる。つまり、結果がゼロに等しい場合、その符
号を調べても、結果がゼロまたは正のどちらであ
るかを判別することができないのである。然し乍
ら、特定のデータに関する特定の命令の結果につ
いては、EQおよびGT条件は互いに排他的であ
る。かくて、一旦LT条件が排除されてしまうと、
EQおよびLT条件のうち一方を決定することは他
方を決定することにつながるのである。加算器の
演算で、結果がゼロに等しい(EQ)条件を決定
する通常の方法は、演算論理ユニツト(ALU)
における加算回路のすべての出力ビツトを否定論
理和(NOR)することであつた。然し乍ら、多
くのアーキテクチヤは固定小数点のユニツトにつ
いて32ビツトのデータ路を必要とするから、これ
らは32ビツト幅の加算器をも必要としている。か
くて、通常の方法に従つて出力ビツトの否定論理
和をとるようにすると、実現テクノロジーによつ
ては、少なくとも2段の論理を追加する必要がで
てくる。とろこで、サイクル時間の改良に対する
要請は強いものがあるから、このように論理段を
追加すると、条件コードの経路がクリチカルとな
り、従つてその計算を次の機械サイクルで行なう
ことを余儀無くされてしまう。 C 発明が解決しようとする課題 算術演算の結果がゼロより大きい(GT)条件
を初期の段階で計算できれば、計算機の演算速度
が向上することは明らかである。本発明は、EQ
およびLT条件を早い段階で取り除くことによつ
てGT条件を検出することができる、という知見
に基いてなされたものである。 本発明の目的は、条件コードを決定するための
2つの装置を提供することである。これらの装置
のうち、一方の装置は加算器のクリチカルな量、
すなわちキヤリイを必要とせずに結果がゼロに等
しい(EQ)条件を生じ、他方の装置は暗黙のう
ちに加算器のキヤリイを考慮に入れるように設計
されている。 本発明の他の目的は、加算器と並行してEQ条
件を発生することにより、その計算に関連するク
リチカルな遅延を減少させることである。 本発明の他の目的は、演算を実行するユニツト
に関連する遅延を少なくした、条件コードを決定
するための実現形態を提供することである。 ここで注意すべきは、(1)計算機アーキテクチヤ
では、2の補数を対象とする加算、減算またはロ
ード命令のどれが実行されるかに依存して、算術
演算に対する条件コード・ビツトが「和がゼロで
ある」または「差がゼロである」という条件を反
映することが屡屡あり、また(2)或るマイクロコー
ド命令はEQ条件を伝えるためにマイクロコード
条件レジスタで同様のビツトを使用するというこ
とである。これらの点を念頭において、本発明の
他の目的は、算術演算を必要とするすべての命令
がどのようなタイプの機械で実行されるかに関係
無く、これらの命令について必要な条件コードを
発生することにある。本発明が提供するこれらの
装置は、2の補数を対象とする加算、減算、比
較、ロード命令およびこれらの命令と同様の他の
命令に対する予測された条件コードを発生する。 本発明の他の目的は、2倍精度のすべての算術
演算に対する条件コードを発生することである。
これらの2倍精度の命令は、加算または減算命令
のキヤリイ出力を保存し且つこれを適正な結果の
計算のために加算器のキヤリイ入力として使用す
ることによつて、算術演算のビツト幅を2倍にす
るというものである。 説明を簡単にするため、ここでは算術演算が32
ビツトのオペランドについて実行されるものと仮
定する。然し乍ら、本発明の他の目的は、これら
の表現を適正に拡張することによつて、任意の長
さのオペランドに対する結論を引き出すことであ
る。 本発明の1実施態様は、すべての算術命令を2
つのカテゴリー、即ち演算論理ユニツト(ALU)
へのキヤリイ入力がゼロに等しいことを必要とす
るタイプ0の、演算論理ユニツト(ALU)への
キヤリイ入力が1に等しいことを必要とするタイ
プ1とに類別する。 本発明の他の目的は、両タイプの命令について
内部的キヤリイを必要としないような最小化され
たブール式を実行するための回路および方法を提
供することである。つまり、この回路は演算論理
ユニツト(ALU)と平行に条件コードを発生し、
かくてその計算をクリチカルな経路から除去する
のである。本質的に、加算器(キヤリイを含む)
の如何なる部分もこの方法に使用されるわけでは
なく、また条件コードは演算論理ユニツト
(ALU)よりも小さい遅延で計算される。さら
に、どんなキヤリイも必要ではないのである。 本発明の他の目的は、組合わされた1組のハー
ドウエアを使用して、両タイプの命令に対する条
件コードを発生し、もつてハードウエアを節減す
ることである。 本発明の他の目的は、オペランドおよび強制さ
れた1のストリングについて動作する変形された
キヤリイ・セイブ加算器(MCSA)を使用して、
結果がゼロに等しい(EQ)条件を決定すること
である。 本発明の他の目的は、MCSAの出力を調べて
オペランドを演算する演算論理ユニツト(ALU)
内の加算器の出力がゼロに等しいか否かを決定す
ることにより、キヤリイ・ビツトまたは他のクリ
チカルな量を決定する必要を無くすことである。 本発明の他の目的は、予測された条件コードを
決定するための第2の実施態様を提供することで
ある。 本発明の第2の実施態様の他の目的は、加算器
によつて発生される和の各ビツト位置ごとに、そ
のビツト位置が加算後にゼロに等しくなるのに必
要な全ての条件を決定することである。 本発明の他の目的は、2つのオペランドの組合
せについて、可能な条件が次のとおりであるのを
決定することである。 A 両オペランド・ビツトがゼロに等しく、且つ
キヤリイ入力ビツトがゼロに等しいこと。 B 一方のオペランド・ビツトのみが1に等し
く、且つキヤリイ入力がゼロに等しいこと。 C 両オペランド・ビツトが1に等しく、且つキ
ヤリイ入力ビツトがゼロに等しいこと。 本発明の第2の実施態様の他の目的は、前記可
能な全ての条件に関する先の結果を使用して、結
果がゼロに等しい(EQ)条件、ゼロより大きい
(GT)条件、またはゼロより小さい(LT)条件
を決定することである。 D 実施例 第1図ないし第11図を参照して、本発明の第
1の実施態様を説明する。この実施態様は、本発
明が32ビツトのアーキテクチヤを有する計算機で
使用される場合に相当する。本発明の装置は、2
オペランドについて行なわれる算術演算の結果
が、ゼロより大きい(GT)条件、ゼロに等しい
(EQ)条件、またはゼロより小さい(LT)条件
を検出し、これを指示する。この装置は、このよ
うな条件の検出および指示を、算術演算の実行と
並行して行なう。 第1図において、演算論理ユニツト(ALU)
10は、2オペランドAおよびBについて所定の
算術演算を行なう。ALU10は、オペランドA
およびBについて算術演算を実行するような任意
の機械、例えばIBMシステム/370に見られるよ
うな加算器で構成することができる。第1図にお
いて、オペランドAおよびBは、32ビツトのデー
ダ対象である。オペランドAは、ビツトA0……
Ai……A31から成り、A0が最上位ビツト
(MSB)である。オペランドBのビツトも同様に
Biと識別され、iは最上位から最下位にかけて
0………31に等しい。ALU10は、32ビツトの
結果Rを発生し、これは最上位から最下位にかけ
て結果ビツト0……31から成る。規約により、結
果RのMSBは符号であり、これが「1」へセツ
トされていれば結果が負であることを指示し、
「0」へセツトされていれば結果が正またはゼロ
であることを指示する。 ALU10が加算器であると仮定すると、これ
に付属するキヤリイ選択回路12はALU10に
よつて行なわれる算術演算のためのキヤリイ入力
(Cin)を供給するように動作する。キヤリイ選
択回路12は全ての点で通常のものであり、現命
令の解読結果である命令信号に応答して、Cin線
13を反転選択信号線14またはALU10の最
上位ビツト段から得られるキヤリイ出力信号線1
5へ接続するように動作する。このような回路は
公知であり、その1例は米国特許第3986015号に
示されている。公知のごとく、Cinは、ALU10
によつて実行されている演算中へ「1」または
「0」のどちらがキヤリイ入力されるかを指示す
るように、キヤリイ選択回路12によつて条件づ
けられる。 例えば、一対の64ビツト・オペランドについて
2倍精度の演算が行なわれている場合、Cin=1
またはゼロである。このような演算は2段階で行
なわれ、第1段階はオペランドAおよびBの下位
32ビツトを結合し、第2段階は上位32ビツトを結
合する。Cin線13上の信号は、下位ビツトから
上位ビツトへのキヤリイ入力が存在するか否かを
指示する。 オペランドAからオペランドBを減算すること
は、オペランドBの2の補数をオペランドAと結
合することによつて行なわれる。オペランドBの
2の補数は、まず1の補数を発生し、次いでオペ
ランドBの最下位ビツトへ「ホツト1」を加算す
る、という2ステツプのシーケンスによつて得ら
れる。公知のごとく、オペランドAがオペランド
Bの1の補数と結合された後に、「ホツト1」を
加算することができる。線14上の反転選択信号
は、オペランドBを反転すべき場合には、「1」
にセツトされる。この反転選択信号は、通常の排
他的論理和(XOR)回路18へ供給され、当該
回路はオペランドBのビツト単位の補数化を行な
う。この反転選択信号はキヤリイ選択回路12に
よつてCin線13にも接続され、かくてALU10
でオペランドBの2の補数を完成する「ホツト
1」を与える。 本発明の第1の実施態様は、変形されたキヤリ
イ・セイブ加算器(MCSA)20、行組立回路
22およびEQ決定回路25を含む。本発明のこ
の実施態様はオペランドAおよびBを受取り、
ALU10によつて行なわれる演算の結果がゼロ
の値を有する場合には、このことを検出してその
旨を指示する。以下の説明において、この条件は
EQ信号線26を「1」へセツトする本発明の装
置によつて指示される。第1図の装置による結果
がゼロに等しいというEQ条件の決定は、ALU1
0による演算の実行と同時に行なわれる。EQ条
件の決定を早期に行なうことは、このような決定
を演算結果が得られた後にだけ行なつていた先行
技術と比較すれば、一層有利であることは明かで
ある。このことは、本発明の装置によつて生ぜら
れるEQ信号の制御下でNORゲート27が結果が
正である(GT)条件を早期に指示しうることを
意味する。 以下の説明では、本発明のALUおよび装置が
プログラム式計算機の環境で動作するものと仮定
する。周知のように、プログラムを構成する一連
の命令は演算命令を含み、かかる命令はALU1
0の動作を制御するために計算機の制御ユニツト
によつて解読される。 一般に、関係のある演算命令には、加算、減
算、比較、ロードの4種類がある。補数化が行な
われない場合、加算命令およびロード命令はCin
=0を用いて加算を行なう加算器を必要とする。
一方、2の補数化が行なわれる場合、減算命令、
比較命令およびロード命令はCin=1を用いて加
算を行なう加算器を必要とする。更に、減算動作
の場合は、減算されるべきオペランドは1の補数
形式で加算器へ供給されねばならない。この1の
補数化オペランドがCin=1へ加算されると、減
算が行なわれる。 2倍精度の演算では、オペランドは実際には64
データ・ビツト・ワードから成る。各オペランド
は2つの32データ・ビツト・ワードへ分けられ、
その一方は上位ビツトを含み、他方は下位ビツト
を含む。最初に、下位データ・ワードを演算する
と、適当な値を有するCinビツトが生ぜられる。
次いで、このCinビツトと上位データ・ビツトが
演算される。2倍精度の場合には、適当な加算動
作または減算動作が下位データ・ワードについて
行なわれねばならず、そしてCinが適正にセツト
されねばならない。このキヤリイ・ビツトの効果
については、以下で説明する。 減算が行なわれる場合に線14の反転選択信号
が1であると、オペランドBはXOR回路18で
ビツト単位で反転される。反転選択信号が0であ
る場合、オペランドBはXOR回路18を非反転
のまま通過する。 この実施態様の理解を容易にするため、演算命
令を次の2種類に類別する。その第1はCin=0
を用いるもの(以下「タイプ0の命令」と呼ぶ)
で、第2はCin=1を用いるもの(以下「タイプ
1の命令」と呼ぶ)ある。これら両タイプの命令
についてEQ条件の予測が付録AおよびBで調べ
らている。 付録Aは、タイプ0の命令についてEQ条件を
予測するブール式の展開を詳細に記述している。
この表現は、式(A.3)において次のように与え
られている。 (A.3) EQ(タイプ0) =Px31・[(Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] =Px31・D 但し、 D=[(Px0 V Py1)(Px1 V Py2) ・……・(Px30 V Py31)] ここで、タイプ0の命令に対するEQ条件の計
算には、キヤリイ伝播が必要ないことが理解され
よう。このEQ信号については、キヤリイを全て
のビツト位置にわたつて波及させることに伴う遅
延がないので、式(A.3)の実現に関連する遅延
はEQ条件を予測するための既存の方法に比べる
と一層小さくなる。 付録Bは、タイプ1の命令についてEQ条件を
予測するためのブール式を展開して示している。
この表現は、以下の式(B.3)によつて与えられ
る。 (B.3) EQ(タイプ1) =Px31′・[(Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] =Px31′・D 但し、 D=[(Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] 付録Bの式(B.1)と付録Aの式(A.1)を比
較すると、両タイプの命令についてPxiおよび
Pyiを生ずるのに同じハードウエアを使用しうる
ことが分かる。また、式(A.3)と式(B.3)を
比較すると、前者にPx31が含まれ且つ後者に
Px31′が含まれていることとを除くと、両者は同
じであることが分かる。 EQ条件の予測が全ての命令タイプについて効
力を持つには、付録AおよびBの式(A.3)はそ
の各々について行なわれる命令選択とともに使用
されねばならない。従つて、一般的なEQ条件は
次のように表現することができる。 (1) EQ=(J・Px31・D|(K・Px31′D) =D・[J・Px31)|(K・Px31′)] 但し、 Jはタイプ0の命令に対する選択線 Kはタイプ1の命令に対する選択線 D=[(Px0 V Py1)(Px1 V Py2) ・……・(Px30 V Py31)] 本発明の装置は式(1)並びに(A.3)および
(B.3)を参照して導かれる。第1図と式(A.3)、
(B.3)および(1)を参照するに、本発明の第1の
実施態様は第6図ないし第11図に詳細に示され
ている、第6図ないし第11図において、変形さ
れたキヤリイ・セイブ加算器(MCSA)20は
中間項PxiおよびPyiを発生し、そして排他的論
理和反転(XORI)ゲート30ないし92と、論
理和(OR)ゲート31ないし91を含んでい
る。 加算器20の各XORIゲートは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)ゲ
ート100ないし130として実現されている。
行組立回路22は、第1のシーケンス中間項
(PxiおよびPyi)を受取り、これらの項を結合し
てPx+Pyに対応する第2組の中間項を発生す
る。これに関連して、行組立回路22は式
(A.2)および(B.2)の連結を発生する。これら
の式の順序づけられたシーケンスは、Px31を
「+1」および「+1+1」とそれぞれ結合する
エレメントを除き、それらの全てのエレメントに
おいて等価である。 EQ(結果=0)信号を発生し且つこれを条件づ
けるEQ決定回路25は、ANDゲート140−1
44(第6図ないし第10図)、選択回路150
(第11図)およびANDゲート160(第11
図)の組合せを含む、明らかなように、ANDゲ
ート140−144は、式(A.3.a)におけるD
(i、i+5)項の1つを表わす信号を発生する。
選択回路150は、JおよびK信号に応答して、
式(1)によつて必要とされるようなPx31に対する
正または反転値を選択する。JおよびK信号は第
1図のドライバ回路23によつて図式的に示され
ている。入力をCin線13に接続されたドライバ
回路23は、その相補的出力としてJおよびK信
号をEQ決定回路25へ供給する。ここで、ドラ
イバ回路23はJおよびK信号の発生を図式的に
示しているにすぎず、これらの信号を通常の命令
解読を通して供給することもできることに注意す
べきである。ドライバ回路23は、Cinの値と、
JおよびK信号と、命令のカテゴリーとの間の関
係を伝える。最後に、ANDゲート160は、
ANDゲート140−144によつて発生される
中間のD項を、XORゲート130によつて発生
されるD項30項、さらにはJまたはK信号に応答
する選択回路150によつて発生されるPx31
の値と結合する。この点に関連して、タイプ0の
命令が実行されている場合、J信号が真であり、
かくてPx31の正の値をANDゲート160へ供給
する。同様に、タイプ1の命令が実行されている
場合は、K信号が真となるので、選択回路150
はPx31の補数値をANDゲート160へ供給す
る。ANDゲート160によつて発生されるEQ
(結果=0)信号は、第1図のEQ決定回路25か
らその出力線26に供給される。 計算機の設計では、条件コードの計算が重要で
あることは言うまでもない。結果がゼロより小さ
い(LT)条件が除外されたということを仮定す
ると、結果がゼロより大きい(GT)条件はEQ
条件の否定によつて指示されるから、その計算は
EQ条件の決定から直接に導くことができる。か
くて、EQ条件、その否定および結果の符号が、
GT条件を決定する。このような計算を第1図に
示されており、そこでは線28にある結果の符号
ビツト線26にあるEQ信号とがNORゲート27
で結合されて「結果がゼロより大きい」GT条件
を指示する信号を線29に供給する。 本発明の第2の実施態様は、第12図に示され
ている。第12図ないし第19図に示されている
第2の実施態様の装置は、特にシステムが32ビツ
トの演算を使用する場合を想定している。この装
置は、2つの32ビツト・オペランドについて行な
われる算術演算のGT条件、EQ条件またはLT条
件を検出する。 第2の実施態様では、オペランドAおよびBに
関する算術演算は演算論理ユニツト(ALU)2
11によつて行なわれる。ALU211は、第1
図のALU10と同一機能を実行する。また、オ
ペランドAおよびBは第12図のブロツク211
ないし215へ同時に供給されるが、オペランド
Bはその前に反転選択信号に応答する第12図の
XORゲート210でビツト単位で補数化される。
キヤリイ選択回路200はALU211の演算の
ためにCinを発生する。 本発明の第2の実施態様は、結果の3条件
(EQ、LTおよびGT)を予測するため、ALU2
11と並列に動作する。第2の実施態様におい
て、EQ信号の状態の予測は、伝達回路(TM)
ブロツク212、発生回路(G)ブロツク213およ
び補助回路(ZW)ブロツク214で発生される
中間項の論理的結合によつて達成される。さら
に、LTおよびGT条件のそれぞれの状態を予測
するための項は、第2の補助論理(LD)ブロツ
ク215によつて発生される。これらの回路ブロ
ツクによつて発生された中間項は、真数形式およ
び補数形式のCinとともに条件コード回路(CC)
ブロツク216へ供給され、よつて3つの条件コ
ード信号を発生することを可能にする。 ここで、回路ブロツク212−215および
EQ信号を発生するためのCCブロツク216の部
分を特徴づける表現を理解するために、付録Cお
よび第12図ないし第19図を参照されたい。 第12図のTMブロツク212、伝達項T(i)と
グループ伝達項M( )とを発生する。第13図
を参照するに、NORゲート300各々は対応す
るオペランド・ビツト対A(i)およびB(i)を受取
り、これに対応する伝達項T(i)を発生する。これ
らの伝達項はANDゲート302に供給され、そ
こでグループ伝達項M( )が発生される。 発生項G(i)は、その詳細を第14図に示したG
ブロツク213によつて発生される。発生項G(i)
NO各々は、オペランド・ビツトA(i)およびB(i)
に応答するANDゲート304によつてそれぞれ
発生される。 ZWブロツク214は、第15図に示されてい
る。ZWブロツク214において、Z項の各々
は、それぞれのANDゲート308を2つ以上の
XORゲート306と組み合わせることによつて
発生される。XORゲート306の各々は対応す
るオペランド・ビツト対A(i)およびB(i)を受取
り、その出力を1つ以上のANDゲート308へ
供給する。第15図に示すように、オペランド・
ビツト対A(0)およびB(0)を受け取るXOR
ゲート306は、半和W(0)を発生することに
注意されたい。 CCブロツク216のEQ部分は、第17図に示
されている。付録Cに記述されたシーケンスを参
照するに、その第1のシーケンスT(0)′T
(1)′・……・T(M−1)′(Cin=0の場合)は、
入力としてグループ伝達項M(0、31)および
Cin′を受け取るANDゲート320によつて発生
される。かくて、第1のシーケンスが生ずる場
合、ANDゲート320は正の状態を呈する。同
様に、ANDゲート324はグループ伝達項M
(1、31)、発生項G(0)およびCin′信号を受取
り、シーケンス(2.b)が生ずるとき、正の信号
を供給して当該シーケンスを監視する。ANDゲ
ート324の各々は、発生項G(i)、グループ伝達
項M(i+1、N−1)およびグループ半和項W
(0)……i=1の場合……またはZ(0、i−
1)……i>0の場合……からなる中間項のグル
ープをそれぞれ受け取る。またANDゲート32
4の各々はCin′信号を受取り、シーケンス(2)が生
ずるとき、高い出力を発生する。ANDゲート3
28は、シーケンス(2.a)を検出するため、発
生項G(31)、グループ半和項Z(0、30)ならび
にCin′を受け取る。ANDゲート328は、この
シーケンスが生ずるとき、高い出力を供給する。
付録Cに記述された第3のシーケンスはANDゲ
ート340によつて検出され、当該ゲートは
Cin′の正の信号を反転()ゲート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は付録Dの項L
(i)およびD(i)によつて正確に表わされており、ま
た第16図に示されている。3つの条件(EQ、
LT、GT)を知るには、その2つだけを発生す
ればよい。第3の条件は、他の2つの条件から知
ることができる。EQ条件の計算は、発生論理の
小さなサブセツトでなければならない。ここでは
LTおよびGT条件の両方が発生されるが、その
一方だけが使用されねばならない。 LTおよびGT条件は、オペランド・ビツトの
ストリングを最上位から最下位へむけてビツト単
位で比較することによつて決定される。この場
合、最初の不一致はどのビツト・ストリングが
GT条件に該当し、そしてどのビツト・ストリン
グがLT条件に該当するかを決定する。 最初の不一致ビツト位置にいたるまでのビツ
ト・ストリングは等しいから、このビツト位置ま
でに生ずる全ての比較一致は無視される。同様
に、最初の不一致の後に生ずる全ての比較一致も
無視される。というのは、それらの大きさは最初
の不一致ビツト位置に比較すると、小さいからで
ある。この原理に基ずくブール式は、付録Dに記
述されている。 任意の長さを有するオペランド・ビツトのスト
リングについて、付録Dの関数から導かれたLT
およびGTは、両ストリングの同じ位置における
少なくとも1セツトのビツトが異なる場合にの
み、結果(表明)を与える。この関数は、両スト
リングのビツトが異なる最上位ビツト位置につい
てのみ表明を与える。もしこの関数が「AはBよ
り小さい」であれば、ビツト・ストリングAの大
きさがビツト・ストリングBより小さい場合にの
み、LT関数が表明される。もしこの関数が「A
はBより大きい」であれば、ビツト・ストリング
Aの大きさがビツト・ストリングBより大きい場
合にのみ、GT関数が表明される。既に発生され
た加算器用の項を利用することにより、LTおよ
びGT関数の実現コストを大幅に減少させること
ができる。 CCブロツク216のLTおよびGT部分は第1
8図および第19図にそれぞれ示されている。こ
れらの回路は、付録Dの該当する項をそれぞれ実
現したものである。 E 発明の効果 本発明によれば、算術演算の結果がゼロに等し
いという(EQ)条件を当該算術演算と時間的に
並行して決定すことができるので、中央処理ユニ
ツトはこの算術演算の結果が得られる前にその条
件コードを決定することができ、かくて中央処理
ユニツトの全体的な速度を向上させることができ
る。 〔付録A〕 Cin=0に対するEQ条件の計算 以下の説明は、最初に提案した装置を詳細に規
定する。「最上位ビツト」とは、左端ビツト、即
ちビツト位置0をいう。「最下位ビツト」とは、
右端ビツト、即ちビツト・ストリング長さN−1
に相当するビツト位置をいう。簡単のため、以下
の表記法を使用する。 1 |は論理和(OR)を表わす 2 ・は論理積(AND)を表わす 3 Vは排他的論理和(XOR)を表わす 4 +は加算を表わす 5 −は減算を表わす 6 A′はAの1の補数を表わす 7 ‖は連結を表わす Cin=0を有する命令(タイプ0の命令)につ
いては、第1図のキヤリイ・セイブ加算器20に
加わる3入力は次の関係を表現するために使用さ
れる。 A+B=(A+B−1)+1 =Px+Py+1 但し、 Px+Py=(A+B−1) ここで、2の補数化表記法における−1がPx
およびPyの全てのビツトiについて[11……
1111]に等価であると仮定すると、次の式が成立
する。 (A.1.a) Pxi =Ai V Bi V1 =(Ai V Bi)′ (A.1.b) Pyi =(Ai・Bi)|(Ai・1)|(Bi・1) =Ai|Bi これは、第1図ないし第3図のキヤリイ・セイ
ブ加算器(MCSA)20の動作を記述するもの
である。加算器20によつて生ぜられた中間的な
結果信号(PxおよびPy)は、Pyの最上位ビツト
を除く全てのビツトをPxへ加算することによつ
て、行組立回路22で結合される。この場合、
PyはPxに対し1ビツトだけシフトされる。これ
を式で表現すると、次のようになる。 (A.1) Px+Py =(Px0+Py1)‖(Px1+Py2)‖ ……‖(Px30+Py31)‖Px31 この式は、第2図および第4図に図式的に示さ
れている。これらの式をバランスさせるために
Pyのシフトによつて空白になつた最下位ビツト
位置へ「ホツト1」が加算される。 A+Bの結果がゼロに等しくなるためには、第
4図にように「ホツト1」へ加算される式
(A.1)のPx+Pyもゼロに等しくなければならな
い。 従つて、以下の式が真である場合にのみ、EQ
条件は真である。 (A.2) Px+Py+1 =(Px0+Py1)‖(Px1+Py2)‖ ……‖(Px30+Py31)‖(Px31+1)=0 式(A.2)は、第4図において加数オペランド
として図示的に示されている。「ホツト1」は
Px31へ加算されるから、結果ビツト31がゼロに
なるためには、Px31が1に等しくなければなら
ない。もしこれが真であれば、結果ビツト31はゼ
ロに等しくなり、そしてビツト位置30へのキヤリ
イ伝播が生ずる。ビツト位置30へのキヤリイ入
力は1に等しいから、結果ビツト30がゼロに等し
くなるためには、ビツト(Px30およびPy31)の
1つだけが1に等しくなければならない。もしこ
れが真であれば、ビツト位置29へのキヤリイ伝
播が生じ、そして結果ビツト29がゼロに等しくな
るためには、ビツト(Px29およびPy30)の1つ
だけが1に等しくなければならない。この伝播効
果は、全てのビツト位置にも及ぶ。この意味する
ところは、Ai+Biがゼロに等しくなるためには、
PxiおよびPyi+1の一方だけが(両方ではない)
1に等しくなければならない、ということであ
る。これを式の形で示すと、次のようになる。 EQ(タイプ0)i=Pxi V Pyi+1 この式は、所定の結果ビツト位置iがゼロに等
しくなるための条件を計算するものである。ビツ
ト位置31については、「ホツト1」の加算が行な
われると、これは次のようになる。 EQ(タイプ0)31=Px31 従つて、A+Bの結果がゼロに等しくなるため
には、以下の関係が真でなければならない。 (A.3) EQ(タイプ0) =Px31・[Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] =Py31・D 但し、 D=[(Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] 信号Dは、さらに次のように定義される。 (A.3.a) D =D(0、5)・D(6、11)・D(12、17) ・D(18、23)・D(24、29)・D(30) 但し、 D30=(Px30 V Py31) D(i、i+5) =(Pxi V Pyi+1)・(Pxi+1 V Pyi+2 ・……・(Pxi+5 V Pyi+6) 〔付録B〕 Cin=1に対するEQ条件の計算 以下の説明は、最初に提案した装置を詳細な記
述である。「最上位ビツト」は左端ビツト、即ち
ビツト0を指示する。「最下位ビツト」は右端ビ
ツト、即ちビツト・ストリング長さN−1に相当
するビツト位置を指示する。簡単のために、以下
の表記法を使用する。 1 |は論理和(OR)を表わす 2 ・は論理積(AND)を表わす 3 Vは排他的論理和(XOR)を表わす 4 +は加算を表わす 5 −は減算を表わす 6 A′はAの1の補数を表わす 7 ‖は連結を表わす Cin=1を用いる命令(タイプ1の命令)につ
いては、第1図のキヤリイ・セイブ加算器
(MCSA)20は以下の関係を表現するために使
用される。 A−B=A+B′+1 =(A+B′−1)+1+1 =Px+Py+1+1 但し、 Px+Py=(A+B′−1) 2の補数化表記法について、−1が[111……
1111]に等価であると仮定すると、PxおよびPy
のすべてのビツトiについて以下の表現が真とな
る。 (B.1.a) Pxi =Ai VB′iV1 =(Ai VB′i)′ (B.1.b) Pyi =Ai・B′i)|((Ai・1)|(B′i・1) =Ai|B′i これは、第3図の加算器20の動作を式の形式
で記述する。加算器20によつて生ぜられる中間
項(PxおよびPy)は、Pyの最上位ビツトを除く
全てのビツトをPxへ加算することによつて、生
ぜられる。この場合、PyはPxに対し1ビツトだ
けシフトされている。32ビツトのオペランドにつ
いては、これは次の式によつて表わされる。 (B.1) Px+Py =(Px0+Py1)‖(Px1+Py2)‖ ……‖(Px30+Py31)‖Px31 この式は、第3図および第5図に図式的に示さ
れている。最初の「ホツト1」が加算されるの
は、PxおよびPyを決定するために加算される−
1についてこの式をバランスさせるためである。
第2の「ホツト1」(制御されたホツト1)が加
算されるのは、B′が1の補数形式で与えられた
めである。1の補数形式を適正な2の補数形式へ
変換するために、他の1が1の補数形式へ加算さ
れねばならない。 A+Bの結果がゼロに等しくなるためには、第
5図に示すように2つの「ホツト1」へ加算され
た式(B.1)の項(Px+Py)もまたゼロに等し
くなければならない。従つて、EQ条件は、以下
の式が真である場合にのみ真である。 (B.2) Px+Py+1+1 =(Px0+Py1)‖(Px1+Py2)‖ ……‖(Px30+Py31)‖(Px31+1+1)=0 式(B.2)は、第5図において加算動作として
図式的に示されている。2つの「ホツト1」が
Px31へ加算されたから、Px31がゼロに等しい場
合にのみ、結果ビツト31はゼロに等しくなる。も
しこれが真であれば、結果ビツト31はゼロに等し
くなり、そしてビツト位置30へのキヤリイ伝播が
生ずることになる。ビツト位置30へのキヤリイ入
力は1に等しいから、結果ビツト30がゼロに等し
くなるためには、ビツト(Px30およびPy31)の
一方だけが1に等しくなければならない。この伝
播効果は、全てのビツト位置へ及ぶ。この意味す
るところは、Ai+Biがゼロに等しくなるために
は、PxiおよびPy+1の一方だけが(両方ではな
い)1に等しくなければならない、ということで
ある。これを式の形で示すと、次のようになる。 EQ(タイプ1)i=Pxi V Pyi+1 この式は、所定のビツト位置iがゼロに等しく
なるため条件を計算する。ビツト位置31について
は、「ホツト1」の加算が行なわれると、次のよ
うになる。 EQ(タイプ1)31=Px31′ 従つて、A+Bと結果がゼロに等しくなるため
には、以下の関係が真でなければならない。 (B.3). EQ(タイプ1) =Px31′・[Px0 V Py1)・(Px1 V Py2) ・……・[Px30 V Py31)] =Px′31・D 但し、 D=[(Px0 V Py1)・(Px1 V Py2) ・……・[Px30 V Py31)] 〔付録C〕 第2の実施態様を説明するにあたり、以下の表
記法、ブール記号および定義を使用する。 表記法 (1) ′は関連する表現または項の補数である (2) (a|b)はaとbの論理和を表わす (3) (ab)はaとbの論理積を表わす (4) (aVb)はaとbの排他的論理和を表わす ブール表現 (1.1) 1Va=a′ 加算のための伝達(T)、発生(G)および半和(W)関
数 (1.2) T(i)=A(i)|B(i) (1.3) G(i)=A(i)B(i) (1.4) W(i)=A(i) V B(i) (1.5) 和(i)=A(i) V B(i) V C(i+1) 但し、N=加算の幅 0<=i<=N−1 A(i)=入力オペランドのビツト位置i B(i)=入力オペランドのビツト位置i C(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)|B(i)=0 但し、 C(i+1)=0 和(i)=A(i) V B(i) V C(i+1)=0 但し、 キヤリイ出力=0 長さNのビツト・ストリングについては、前記
リストされた3つの条件の或る順列だけが、加算
動作の結果としてゼロのストリングを許容する、 或るiについてT(i)=0である場合、もし和(i)
がゼロに等しくなるのであれば、ビツトiより下
位のビツトについて行なわれる加算動作はキヤリ
イ出力1を生ずることができない。和がゼロに等
しい場合、キヤリイ出力1を生ずることができな
いのはT(i)=0(但し、A(i)=B(i)=0)だけで
ある。換言すれば、もしビツト位置iがオペラン
ドAおよびBの両方でゼロであつたなら、ビツト
位置i+1は両オペランドについてゼロを持たな
ければならない、ということである。或るiにつ
いてT(i)=0である場合、ビツト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)=0を伴うG(i+1)=1を有さなけれ
ばならない。 或るiについてG(i)=1である場合、和(i)がゼ
ロに等しくなるためには、ビツトi+1に関する
加算動作はキヤリイ出力0を生じなければならな
い。前記でリストした動作のキヤリイ出力0を生
ずるのは、T(i)=0の場合だけである。即ち、も
しビツト位置iが両オペランドにおいて1を有し
ていたならば、ビツト位置i+1は両オペランド
AおよびBについてゼロを有しなければならな
い、このことは、G(i)=1について、T(i+1)
=T(i+2)=……=T(N)=0を暗示する。 また、ビツト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)′ 但し、 Cin=0 ここで、T(i)は、全ての必要なiについて、
第13図の回路によつて生ぜられる。 T(0)′T(1)′……T(N−1)′は、オペラ
ンドの各ビツト位置に関する1組の連続的な
T′動作であつて、ビツト0で開始し且つビツ
トNで終了する。このシーケンスについては、
両オペランドは全てのビツト位置において全ゼ
ロを有する。 2 W(0)W(1)……W(i−1)G(i)T(i +1)′T(i+2)′……T(N−1)′ 但し、 Cin=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) 但し、 Cin=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)′ 但し、 Cin=0 ここで、T(1)′T(2)′……T(N−21)′T
(N−1)′はオペランドの各ビツト位置に関
する1組の連続的なT′演算であり、ビツト
1で開始し且つビツトN−1で終了する。 3 W(0)W(1)……W(N−1) 但し、 Cin=1 ここで、W(0)W(1)……W(N−1)は、オ
ペランドの各ビツト位置に関する1組のW演算
であり、ビツト0で開始し且つビツトN−1で
終了する。このケースでは、各オペランドは他
方の1の補数である、 ここで、次のことを仮定する。 Z(0、1)=W(0)W(1)=(A(0) V B
(0))(A(1) V B(1)) Z(0、2)=W(0)W(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条件に等
価な「結果=0」関数(F)は次のように表わすこ
とができる。 (1) F=M(0、N−1)Cio′ +G(0)M(1、N−1)Cio′ +W(0)G(1)M(2、N−1)Cio′ +Z(0、1)G(2)M(3、N−1)Cio′ +Z(0、2)G(3)M(4、N−1)Cio′ 〓 +Z(0、N−2)G(N−1)Cio′ +Z(0、N−1)Cio′ 但し、Fは第17図の回路によつて生ぜられ
る。ブール式で表現した実現形態は次のとおりで
ある。
詳細に説明すれば算術演算の結果を反映する条件
コードを予測することに係る。 B 従来の技術 計算機システムの性能は、算術演算の速度と精
度によつて大きく左右される。というのは、計算
機が実行する多くの命令は算術演算を必要とする
からである。一般に、算術回路は多数のゲートお
よび論理レベルを含むので、これは計算機の命令
実行ユニツトにおいても最も複雑な回路である。
従つて、算術演算は、低速でエラーにあいやす
い。算術演算の結果が有する1つの重要な側面
は、それが条件コードを決定するという点であ
る。条件コードは、算術演算の結果を反映するた
めに、計算機によつてセツトされる。このコード
は、計算機が算術演算の結果に依存して動作上の
判断を行なうのに役立つ。条件コードは補数デー
タの発生を含むロード命令のようないくつかの非
算術演算においても重要である。計算機の性能を
向上させるためには、演算の実行と並行してその
条件コードを計算することが望ましい。 一般に、条件コードは、演算の結果がゼロより
大きい(GT)条件、ゼロより小さい(LT)条
件、またはゼロに等しい(EQ)条件を指示する
ために用いられる。LT条件は単に結果の符号を
調べることを必要とするにすぎないから、その検
出は最も容易である。これに対し、結果がゼロま
たは正である場合、結果の符号は正にセツトされ
るから、GTおよびEQ条件の検出は一層困難と
なる。つまり、結果がゼロに等しい場合、その符
号を調べても、結果がゼロまたは正のどちらであ
るかを判別することができないのである。然し乍
ら、特定のデータに関する特定の命令の結果につ
いては、EQおよびGT条件は互いに排他的であ
る。かくて、一旦LT条件が排除されてしまうと、
EQおよびLT条件のうち一方を決定することは他
方を決定することにつながるのである。加算器の
演算で、結果がゼロに等しい(EQ)条件を決定
する通常の方法は、演算論理ユニツト(ALU)
における加算回路のすべての出力ビツトを否定論
理和(NOR)することであつた。然し乍ら、多
くのアーキテクチヤは固定小数点のユニツトにつ
いて32ビツトのデータ路を必要とするから、これ
らは32ビツト幅の加算器をも必要としている。か
くて、通常の方法に従つて出力ビツトの否定論理
和をとるようにすると、実現テクノロジーによつ
ては、少なくとも2段の論理を追加する必要がで
てくる。とろこで、サイクル時間の改良に対する
要請は強いものがあるから、このように論理段を
追加すると、条件コードの経路がクリチカルとな
り、従つてその計算を次の機械サイクルで行なう
ことを余儀無くされてしまう。 C 発明が解決しようとする課題 算術演算の結果がゼロより大きい(GT)条件
を初期の段階で計算できれば、計算機の演算速度
が向上することは明らかである。本発明は、EQ
およびLT条件を早い段階で取り除くことによつ
てGT条件を検出することができる、という知見
に基いてなされたものである。 本発明の目的は、条件コードを決定するための
2つの装置を提供することである。これらの装置
のうち、一方の装置は加算器のクリチカルな量、
すなわちキヤリイを必要とせずに結果がゼロに等
しい(EQ)条件を生じ、他方の装置は暗黙のう
ちに加算器のキヤリイを考慮に入れるように設計
されている。 本発明の他の目的は、加算器と並行してEQ条
件を発生することにより、その計算に関連するク
リチカルな遅延を減少させることである。 本発明の他の目的は、演算を実行するユニツト
に関連する遅延を少なくした、条件コードを決定
するための実現形態を提供することである。 ここで注意すべきは、(1)計算機アーキテクチヤ
では、2の補数を対象とする加算、減算またはロ
ード命令のどれが実行されるかに依存して、算術
演算に対する条件コード・ビツトが「和がゼロで
ある」または「差がゼロである」という条件を反
映することが屡屡あり、また(2)或るマイクロコー
ド命令はEQ条件を伝えるためにマイクロコード
条件レジスタで同様のビツトを使用するというこ
とである。これらの点を念頭において、本発明の
他の目的は、算術演算を必要とするすべての命令
がどのようなタイプの機械で実行されるかに関係
無く、これらの命令について必要な条件コードを
発生することにある。本発明が提供するこれらの
装置は、2の補数を対象とする加算、減算、比
較、ロード命令およびこれらの命令と同様の他の
命令に対する予測された条件コードを発生する。 本発明の他の目的は、2倍精度のすべての算術
演算に対する条件コードを発生することである。
これらの2倍精度の命令は、加算または減算命令
のキヤリイ出力を保存し且つこれを適正な結果の
計算のために加算器のキヤリイ入力として使用す
ることによつて、算術演算のビツト幅を2倍にす
るというものである。 説明を簡単にするため、ここでは算術演算が32
ビツトのオペランドについて実行されるものと仮
定する。然し乍ら、本発明の他の目的は、これら
の表現を適正に拡張することによつて、任意の長
さのオペランドに対する結論を引き出すことであ
る。 本発明の1実施態様は、すべての算術命令を2
つのカテゴリー、即ち演算論理ユニツト(ALU)
へのキヤリイ入力がゼロに等しいことを必要とす
るタイプ0の、演算論理ユニツト(ALU)への
キヤリイ入力が1に等しいことを必要とするタイ
プ1とに類別する。 本発明の他の目的は、両タイプの命令について
内部的キヤリイを必要としないような最小化され
たブール式を実行するための回路および方法を提
供することである。つまり、この回路は演算論理
ユニツト(ALU)と平行に条件コードを発生し、
かくてその計算をクリチカルな経路から除去する
のである。本質的に、加算器(キヤリイを含む)
の如何なる部分もこの方法に使用されるわけでは
なく、また条件コードは演算論理ユニツト
(ALU)よりも小さい遅延で計算される。さら
に、どんなキヤリイも必要ではないのである。 本発明の他の目的は、組合わされた1組のハー
ドウエアを使用して、両タイプの命令に対する条
件コードを発生し、もつてハードウエアを節減す
ることである。 本発明の他の目的は、オペランドおよび強制さ
れた1のストリングについて動作する変形された
キヤリイ・セイブ加算器(MCSA)を使用して、
結果がゼロに等しい(EQ)条件を決定すること
である。 本発明の他の目的は、MCSAの出力を調べて
オペランドを演算する演算論理ユニツト(ALU)
内の加算器の出力がゼロに等しいか否かを決定す
ることにより、キヤリイ・ビツトまたは他のクリ
チカルな量を決定する必要を無くすことである。 本発明の他の目的は、予測された条件コードを
決定するための第2の実施態様を提供することで
ある。 本発明の第2の実施態様の他の目的は、加算器
によつて発生される和の各ビツト位置ごとに、そ
のビツト位置が加算後にゼロに等しくなるのに必
要な全ての条件を決定することである。 本発明の他の目的は、2つのオペランドの組合
せについて、可能な条件が次のとおりであるのを
決定することである。 A 両オペランド・ビツトがゼロに等しく、且つ
キヤリイ入力ビツトがゼロに等しいこと。 B 一方のオペランド・ビツトのみが1に等し
く、且つキヤリイ入力がゼロに等しいこと。 C 両オペランド・ビツトが1に等しく、且つキ
ヤリイ入力ビツトがゼロに等しいこと。 本発明の第2の実施態様の他の目的は、前記可
能な全ての条件に関する先の結果を使用して、結
果がゼロに等しい(EQ)条件、ゼロより大きい
(GT)条件、またはゼロより小さい(LT)条件
を決定することである。 D 実施例 第1図ないし第11図を参照して、本発明の第
1の実施態様を説明する。この実施態様は、本発
明が32ビツトのアーキテクチヤを有する計算機で
使用される場合に相当する。本発明の装置は、2
オペランドについて行なわれる算術演算の結果
が、ゼロより大きい(GT)条件、ゼロに等しい
(EQ)条件、またはゼロより小さい(LT)条件
を検出し、これを指示する。この装置は、このよ
うな条件の検出および指示を、算術演算の実行と
並行して行なう。 第1図において、演算論理ユニツト(ALU)
10は、2オペランドAおよびBについて所定の
算術演算を行なう。ALU10は、オペランドA
およびBについて算術演算を実行するような任意
の機械、例えばIBMシステム/370に見られるよ
うな加算器で構成することができる。第1図にお
いて、オペランドAおよびBは、32ビツトのデー
ダ対象である。オペランドAは、ビツトA0……
Ai……A31から成り、A0が最上位ビツト
(MSB)である。オペランドBのビツトも同様に
Biと識別され、iは最上位から最下位にかけて
0………31に等しい。ALU10は、32ビツトの
結果Rを発生し、これは最上位から最下位にかけ
て結果ビツト0……31から成る。規約により、結
果RのMSBは符号であり、これが「1」へセツ
トされていれば結果が負であることを指示し、
「0」へセツトされていれば結果が正またはゼロ
であることを指示する。 ALU10が加算器であると仮定すると、これ
に付属するキヤリイ選択回路12はALU10に
よつて行なわれる算術演算のためのキヤリイ入力
(Cin)を供給するように動作する。キヤリイ選
択回路12は全ての点で通常のものであり、現命
令の解読結果である命令信号に応答して、Cin線
13を反転選択信号線14またはALU10の最
上位ビツト段から得られるキヤリイ出力信号線1
5へ接続するように動作する。このような回路は
公知であり、その1例は米国特許第3986015号に
示されている。公知のごとく、Cinは、ALU10
によつて実行されている演算中へ「1」または
「0」のどちらがキヤリイ入力されるかを指示す
るように、キヤリイ選択回路12によつて条件づ
けられる。 例えば、一対の64ビツト・オペランドについて
2倍精度の演算が行なわれている場合、Cin=1
またはゼロである。このような演算は2段階で行
なわれ、第1段階はオペランドAおよびBの下位
32ビツトを結合し、第2段階は上位32ビツトを結
合する。Cin線13上の信号は、下位ビツトから
上位ビツトへのキヤリイ入力が存在するか否かを
指示する。 オペランドAからオペランドBを減算すること
は、オペランドBの2の補数をオペランドAと結
合することによつて行なわれる。オペランドBの
2の補数は、まず1の補数を発生し、次いでオペ
ランドBの最下位ビツトへ「ホツト1」を加算す
る、という2ステツプのシーケンスによつて得ら
れる。公知のごとく、オペランドAがオペランド
Bの1の補数と結合された後に、「ホツト1」を
加算することができる。線14上の反転選択信号
は、オペランドBを反転すべき場合には、「1」
にセツトされる。この反転選択信号は、通常の排
他的論理和(XOR)回路18へ供給され、当該
回路はオペランドBのビツト単位の補数化を行な
う。この反転選択信号はキヤリイ選択回路12に
よつてCin線13にも接続され、かくてALU10
でオペランドBの2の補数を完成する「ホツト
1」を与える。 本発明の第1の実施態様は、変形されたキヤリ
イ・セイブ加算器(MCSA)20、行組立回路
22およびEQ決定回路25を含む。本発明のこ
の実施態様はオペランドAおよびBを受取り、
ALU10によつて行なわれる演算の結果がゼロ
の値を有する場合には、このことを検出してその
旨を指示する。以下の説明において、この条件は
EQ信号線26を「1」へセツトする本発明の装
置によつて指示される。第1図の装置による結果
がゼロに等しいというEQ条件の決定は、ALU1
0による演算の実行と同時に行なわれる。EQ条
件の決定を早期に行なうことは、このような決定
を演算結果が得られた後にだけ行なつていた先行
技術と比較すれば、一層有利であることは明かで
ある。このことは、本発明の装置によつて生ぜら
れるEQ信号の制御下でNORゲート27が結果が
正である(GT)条件を早期に指示しうることを
意味する。 以下の説明では、本発明のALUおよび装置が
プログラム式計算機の環境で動作するものと仮定
する。周知のように、プログラムを構成する一連
の命令は演算命令を含み、かかる命令はALU1
0の動作を制御するために計算機の制御ユニツト
によつて解読される。 一般に、関係のある演算命令には、加算、減
算、比較、ロードの4種類がある。補数化が行な
われない場合、加算命令およびロード命令はCin
=0を用いて加算を行なう加算器を必要とする。
一方、2の補数化が行なわれる場合、減算命令、
比較命令およびロード命令はCin=1を用いて加
算を行なう加算器を必要とする。更に、減算動作
の場合は、減算されるべきオペランドは1の補数
形式で加算器へ供給されねばならない。この1の
補数化オペランドがCin=1へ加算されると、減
算が行なわれる。 2倍精度の演算では、オペランドは実際には64
データ・ビツト・ワードから成る。各オペランド
は2つの32データ・ビツト・ワードへ分けられ、
その一方は上位ビツトを含み、他方は下位ビツト
を含む。最初に、下位データ・ワードを演算する
と、適当な値を有するCinビツトが生ぜられる。
次いで、このCinビツトと上位データ・ビツトが
演算される。2倍精度の場合には、適当な加算動
作または減算動作が下位データ・ワードについて
行なわれねばならず、そしてCinが適正にセツト
されねばならない。このキヤリイ・ビツトの効果
については、以下で説明する。 減算が行なわれる場合に線14の反転選択信号
が1であると、オペランドBはXOR回路18で
ビツト単位で反転される。反転選択信号が0であ
る場合、オペランドBはXOR回路18を非反転
のまま通過する。 この実施態様の理解を容易にするため、演算命
令を次の2種類に類別する。その第1はCin=0
を用いるもの(以下「タイプ0の命令」と呼ぶ)
で、第2はCin=1を用いるもの(以下「タイプ
1の命令」と呼ぶ)ある。これら両タイプの命令
についてEQ条件の予測が付録AおよびBで調べ
らている。 付録Aは、タイプ0の命令についてEQ条件を
予測するブール式の展開を詳細に記述している。
この表現は、式(A.3)において次のように与え
られている。 (A.3) EQ(タイプ0) =Px31・[(Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] =Px31・D 但し、 D=[(Px0 V Py1)(Px1 V Py2) ・……・(Px30 V Py31)] ここで、タイプ0の命令に対するEQ条件の計
算には、キヤリイ伝播が必要ないことが理解され
よう。このEQ信号については、キヤリイを全て
のビツト位置にわたつて波及させることに伴う遅
延がないので、式(A.3)の実現に関連する遅延
はEQ条件を予測するための既存の方法に比べる
と一層小さくなる。 付録Bは、タイプ1の命令についてEQ条件を
予測するためのブール式を展開して示している。
この表現は、以下の式(B.3)によつて与えられ
る。 (B.3) EQ(タイプ1) =Px31′・[(Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] =Px31′・D 但し、 D=[(Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] 付録Bの式(B.1)と付録Aの式(A.1)を比
較すると、両タイプの命令についてPxiおよび
Pyiを生ずるのに同じハードウエアを使用しうる
ことが分かる。また、式(A.3)と式(B.3)を
比較すると、前者にPx31が含まれ且つ後者に
Px31′が含まれていることとを除くと、両者は同
じであることが分かる。 EQ条件の予測が全ての命令タイプについて効
力を持つには、付録AおよびBの式(A.3)はそ
の各々について行なわれる命令選択とともに使用
されねばならない。従つて、一般的なEQ条件は
次のように表現することができる。 (1) EQ=(J・Px31・D|(K・Px31′D) =D・[J・Px31)|(K・Px31′)] 但し、 Jはタイプ0の命令に対する選択線 Kはタイプ1の命令に対する選択線 D=[(Px0 V Py1)(Px1 V Py2) ・……・(Px30 V Py31)] 本発明の装置は式(1)並びに(A.3)および
(B.3)を参照して導かれる。第1図と式(A.3)、
(B.3)および(1)を参照するに、本発明の第1の
実施態様は第6図ないし第11図に詳細に示され
ている、第6図ないし第11図において、変形さ
れたキヤリイ・セイブ加算器(MCSA)20は
中間項PxiおよびPyiを発生し、そして排他的論
理和反転(XORI)ゲート30ないし92と、論
理和(OR)ゲート31ないし91を含んでい
る。 加算器20の各XORIゲートは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)ゲ
ート100ないし130として実現されている。
行組立回路22は、第1のシーケンス中間項
(PxiおよびPyi)を受取り、これらの項を結合し
てPx+Pyに対応する第2組の中間項を発生す
る。これに関連して、行組立回路22は式
(A.2)および(B.2)の連結を発生する。これら
の式の順序づけられたシーケンスは、Px31を
「+1」および「+1+1」とそれぞれ結合する
エレメントを除き、それらの全てのエレメントに
おいて等価である。 EQ(結果=0)信号を発生し且つこれを条件づ
けるEQ決定回路25は、ANDゲート140−1
44(第6図ないし第10図)、選択回路150
(第11図)およびANDゲート160(第11
図)の組合せを含む、明らかなように、ANDゲ
ート140−144は、式(A.3.a)におけるD
(i、i+5)項の1つを表わす信号を発生する。
選択回路150は、JおよびK信号に応答して、
式(1)によつて必要とされるようなPx31に対する
正または反転値を選択する。JおよびK信号は第
1図のドライバ回路23によつて図式的に示され
ている。入力をCin線13に接続されたドライバ
回路23は、その相補的出力としてJおよびK信
号をEQ決定回路25へ供給する。ここで、ドラ
イバ回路23はJおよびK信号の発生を図式的に
示しているにすぎず、これらの信号を通常の命令
解読を通して供給することもできることに注意す
べきである。ドライバ回路23は、Cinの値と、
JおよびK信号と、命令のカテゴリーとの間の関
係を伝える。最後に、ANDゲート160は、
ANDゲート140−144によつて発生される
中間のD項を、XORゲート130によつて発生
されるD項30項、さらにはJまたはK信号に応答
する選択回路150によつて発生されるPx31
の値と結合する。この点に関連して、タイプ0の
命令が実行されている場合、J信号が真であり、
かくてPx31の正の値をANDゲート160へ供給
する。同様に、タイプ1の命令が実行されている
場合は、K信号が真となるので、選択回路150
はPx31の補数値をANDゲート160へ供給す
る。ANDゲート160によつて発生されるEQ
(結果=0)信号は、第1図のEQ決定回路25か
らその出力線26に供給される。 計算機の設計では、条件コードの計算が重要で
あることは言うまでもない。結果がゼロより小さ
い(LT)条件が除外されたということを仮定す
ると、結果がゼロより大きい(GT)条件はEQ
条件の否定によつて指示されるから、その計算は
EQ条件の決定から直接に導くことができる。か
くて、EQ条件、その否定および結果の符号が、
GT条件を決定する。このような計算を第1図に
示されており、そこでは線28にある結果の符号
ビツト線26にあるEQ信号とがNORゲート27
で結合されて「結果がゼロより大きい」GT条件
を指示する信号を線29に供給する。 本発明の第2の実施態様は、第12図に示され
ている。第12図ないし第19図に示されている
第2の実施態様の装置は、特にシステムが32ビツ
トの演算を使用する場合を想定している。この装
置は、2つの32ビツト・オペランドについて行な
われる算術演算のGT条件、EQ条件またはLT条
件を検出する。 第2の実施態様では、オペランドAおよびBに
関する算術演算は演算論理ユニツト(ALU)2
11によつて行なわれる。ALU211は、第1
図のALU10と同一機能を実行する。また、オ
ペランドAおよびBは第12図のブロツク211
ないし215へ同時に供給されるが、オペランド
Bはその前に反転選択信号に応答する第12図の
XORゲート210でビツト単位で補数化される。
キヤリイ選択回路200はALU211の演算の
ためにCinを発生する。 本発明の第2の実施態様は、結果の3条件
(EQ、LTおよびGT)を予測するため、ALU2
11と並列に動作する。第2の実施態様におい
て、EQ信号の状態の予測は、伝達回路(TM)
ブロツク212、発生回路(G)ブロツク213およ
び補助回路(ZW)ブロツク214で発生される
中間項の論理的結合によつて達成される。さら
に、LTおよびGT条件のそれぞれの状態を予測
するための項は、第2の補助論理(LD)ブロツ
ク215によつて発生される。これらの回路ブロ
ツクによつて発生された中間項は、真数形式およ
び補数形式のCinとともに条件コード回路(CC)
ブロツク216へ供給され、よつて3つの条件コ
ード信号を発生することを可能にする。 ここで、回路ブロツク212−215および
EQ信号を発生するためのCCブロツク216の部
分を特徴づける表現を理解するために、付録Cお
よび第12図ないし第19図を参照されたい。 第12図のTMブロツク212、伝達項T(i)と
グループ伝達項M( )とを発生する。第13図
を参照するに、NORゲート300各々は対応す
るオペランド・ビツト対A(i)およびB(i)を受取
り、これに対応する伝達項T(i)を発生する。これ
らの伝達項はANDゲート302に供給され、そ
こでグループ伝達項M( )が発生される。 発生項G(i)は、その詳細を第14図に示したG
ブロツク213によつて発生される。発生項G(i)
NO各々は、オペランド・ビツトA(i)およびB(i)
に応答するANDゲート304によつてそれぞれ
発生される。 ZWブロツク214は、第15図に示されてい
る。ZWブロツク214において、Z項の各々
は、それぞれのANDゲート308を2つ以上の
XORゲート306と組み合わせることによつて
発生される。XORゲート306の各々は対応す
るオペランド・ビツト対A(i)およびB(i)を受取
り、その出力を1つ以上のANDゲート308へ
供給する。第15図に示すように、オペランド・
ビツト対A(0)およびB(0)を受け取るXOR
ゲート306は、半和W(0)を発生することに
注意されたい。 CCブロツク216のEQ部分は、第17図に示
されている。付録Cに記述されたシーケンスを参
照するに、その第1のシーケンスT(0)′T
(1)′・……・T(M−1)′(Cin=0の場合)は、
入力としてグループ伝達項M(0、31)および
Cin′を受け取るANDゲート320によつて発生
される。かくて、第1のシーケンスが生ずる場
合、ANDゲート320は正の状態を呈する。同
様に、ANDゲート324はグループ伝達項M
(1、31)、発生項G(0)およびCin′信号を受取
り、シーケンス(2.b)が生ずるとき、正の信号
を供給して当該シーケンスを監視する。ANDゲ
ート324の各々は、発生項G(i)、グループ伝達
項M(i+1、N−1)およびグループ半和項W
(0)……i=1の場合……またはZ(0、i−
1)……i>0の場合……からなる中間項のグル
ープをそれぞれ受け取る。またANDゲート32
4の各々はCin′信号を受取り、シーケンス(2)が生
ずるとき、高い出力を発生する。ANDゲート3
28は、シーケンス(2.a)を検出するため、発
生項G(31)、グループ半和項Z(0、30)ならび
にCin′を受け取る。ANDゲート328は、この
シーケンスが生ずるとき、高い出力を供給する。
付録Cに記述された第3のシーケンスはANDゲ
ート340によつて検出され、当該ゲートは
Cin′の正の信号を反転()ゲート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は付録Dの項L
(i)およびD(i)によつて正確に表わされており、ま
た第16図に示されている。3つの条件(EQ、
LT、GT)を知るには、その2つだけを発生す
ればよい。第3の条件は、他の2つの条件から知
ることができる。EQ条件の計算は、発生論理の
小さなサブセツトでなければならない。ここでは
LTおよびGT条件の両方が発生されるが、その
一方だけが使用されねばならない。 LTおよびGT条件は、オペランド・ビツトの
ストリングを最上位から最下位へむけてビツト単
位で比較することによつて決定される。この場
合、最初の不一致はどのビツト・ストリングが
GT条件に該当し、そしてどのビツト・ストリン
グがLT条件に該当するかを決定する。 最初の不一致ビツト位置にいたるまでのビツ
ト・ストリングは等しいから、このビツト位置ま
でに生ずる全ての比較一致は無視される。同様
に、最初の不一致の後に生ずる全ての比較一致も
無視される。というのは、それらの大きさは最初
の不一致ビツト位置に比較すると、小さいからで
ある。この原理に基ずくブール式は、付録Dに記
述されている。 任意の長さを有するオペランド・ビツトのスト
リングについて、付録Dの関数から導かれたLT
およびGTは、両ストリングの同じ位置における
少なくとも1セツトのビツトが異なる場合にの
み、結果(表明)を与える。この関数は、両スト
リングのビツトが異なる最上位ビツト位置につい
てのみ表明を与える。もしこの関数が「AはBよ
り小さい」であれば、ビツト・ストリングAの大
きさがビツト・ストリングBより小さい場合にの
み、LT関数が表明される。もしこの関数が「A
はBより大きい」であれば、ビツト・ストリング
Aの大きさがビツト・ストリングBより大きい場
合にのみ、GT関数が表明される。既に発生され
た加算器用の項を利用することにより、LTおよ
びGT関数の実現コストを大幅に減少させること
ができる。 CCブロツク216のLTおよびGT部分は第1
8図および第19図にそれぞれ示されている。こ
れらの回路は、付録Dの該当する項をそれぞれ実
現したものである。 E 発明の効果 本発明によれば、算術演算の結果がゼロに等し
いという(EQ)条件を当該算術演算と時間的に
並行して決定すことができるので、中央処理ユニ
ツトはこの算術演算の結果が得られる前にその条
件コードを決定することができ、かくて中央処理
ユニツトの全体的な速度を向上させることができ
る。 〔付録A〕 Cin=0に対するEQ条件の計算 以下の説明は、最初に提案した装置を詳細に規
定する。「最上位ビツト」とは、左端ビツト、即
ちビツト位置0をいう。「最下位ビツト」とは、
右端ビツト、即ちビツト・ストリング長さN−1
に相当するビツト位置をいう。簡単のため、以下
の表記法を使用する。 1 |は論理和(OR)を表わす 2 ・は論理積(AND)を表わす 3 Vは排他的論理和(XOR)を表わす 4 +は加算を表わす 5 −は減算を表わす 6 A′はAの1の補数を表わす 7 ‖は連結を表わす Cin=0を有する命令(タイプ0の命令)につ
いては、第1図のキヤリイ・セイブ加算器20に
加わる3入力は次の関係を表現するために使用さ
れる。 A+B=(A+B−1)+1 =Px+Py+1 但し、 Px+Py=(A+B−1) ここで、2の補数化表記法における−1がPx
およびPyの全てのビツトiについて[11……
1111]に等価であると仮定すると、次の式が成立
する。 (A.1.a) Pxi =Ai V Bi V1 =(Ai V Bi)′ (A.1.b) Pyi =(Ai・Bi)|(Ai・1)|(Bi・1) =Ai|Bi これは、第1図ないし第3図のキヤリイ・セイ
ブ加算器(MCSA)20の動作を記述するもの
である。加算器20によつて生ぜられた中間的な
結果信号(PxおよびPy)は、Pyの最上位ビツト
を除く全てのビツトをPxへ加算することによつ
て、行組立回路22で結合される。この場合、
PyはPxに対し1ビツトだけシフトされる。これ
を式で表現すると、次のようになる。 (A.1) Px+Py =(Px0+Py1)‖(Px1+Py2)‖ ……‖(Px30+Py31)‖Px31 この式は、第2図および第4図に図式的に示さ
れている。これらの式をバランスさせるために
Pyのシフトによつて空白になつた最下位ビツト
位置へ「ホツト1」が加算される。 A+Bの結果がゼロに等しくなるためには、第
4図にように「ホツト1」へ加算される式
(A.1)のPx+Pyもゼロに等しくなければならな
い。 従つて、以下の式が真である場合にのみ、EQ
条件は真である。 (A.2) Px+Py+1 =(Px0+Py1)‖(Px1+Py2)‖ ……‖(Px30+Py31)‖(Px31+1)=0 式(A.2)は、第4図において加数オペランド
として図示的に示されている。「ホツト1」は
Px31へ加算されるから、結果ビツト31がゼロに
なるためには、Px31が1に等しくなければなら
ない。もしこれが真であれば、結果ビツト31はゼ
ロに等しくなり、そしてビツト位置30へのキヤリ
イ伝播が生ずる。ビツト位置30へのキヤリイ入
力は1に等しいから、結果ビツト30がゼロに等し
くなるためには、ビツト(Px30およびPy31)の
1つだけが1に等しくなければならない。もしこ
れが真であれば、ビツト位置29へのキヤリイ伝
播が生じ、そして結果ビツト29がゼロに等しくな
るためには、ビツト(Px29およびPy30)の1つ
だけが1に等しくなければならない。この伝播効
果は、全てのビツト位置にも及ぶ。この意味する
ところは、Ai+Biがゼロに等しくなるためには、
PxiおよびPyi+1の一方だけが(両方ではない)
1に等しくなければならない、ということであ
る。これを式の形で示すと、次のようになる。 EQ(タイプ0)i=Pxi V Pyi+1 この式は、所定の結果ビツト位置iがゼロに等
しくなるための条件を計算するものである。ビツ
ト位置31については、「ホツト1」の加算が行な
われると、これは次のようになる。 EQ(タイプ0)31=Px31 従つて、A+Bの結果がゼロに等しくなるため
には、以下の関係が真でなければならない。 (A.3) EQ(タイプ0) =Px31・[Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] =Py31・D 但し、 D=[(Px0 V Py1)・(Px1 V Py2) ・……・(Px30 V Py31)] 信号Dは、さらに次のように定義される。 (A.3.a) D =D(0、5)・D(6、11)・D(12、17) ・D(18、23)・D(24、29)・D(30) 但し、 D30=(Px30 V Py31) D(i、i+5) =(Pxi V Pyi+1)・(Pxi+1 V Pyi+2 ・……・(Pxi+5 V Pyi+6) 〔付録B〕 Cin=1に対するEQ条件の計算 以下の説明は、最初に提案した装置を詳細な記
述である。「最上位ビツト」は左端ビツト、即ち
ビツト0を指示する。「最下位ビツト」は右端ビ
ツト、即ちビツト・ストリング長さN−1に相当
するビツト位置を指示する。簡単のために、以下
の表記法を使用する。 1 |は論理和(OR)を表わす 2 ・は論理積(AND)を表わす 3 Vは排他的論理和(XOR)を表わす 4 +は加算を表わす 5 −は減算を表わす 6 A′はAの1の補数を表わす 7 ‖は連結を表わす Cin=1を用いる命令(タイプ1の命令)につ
いては、第1図のキヤリイ・セイブ加算器
(MCSA)20は以下の関係を表現するために使
用される。 A−B=A+B′+1 =(A+B′−1)+1+1 =Px+Py+1+1 但し、 Px+Py=(A+B′−1) 2の補数化表記法について、−1が[111……
1111]に等価であると仮定すると、PxおよびPy
のすべてのビツトiについて以下の表現が真とな
る。 (B.1.a) Pxi =Ai VB′iV1 =(Ai VB′i)′ (B.1.b) Pyi =Ai・B′i)|((Ai・1)|(B′i・1) =Ai|B′i これは、第3図の加算器20の動作を式の形式
で記述する。加算器20によつて生ぜられる中間
項(PxおよびPy)は、Pyの最上位ビツトを除く
全てのビツトをPxへ加算することによつて、生
ぜられる。この場合、PyはPxに対し1ビツトだ
けシフトされている。32ビツトのオペランドにつ
いては、これは次の式によつて表わされる。 (B.1) Px+Py =(Px0+Py1)‖(Px1+Py2)‖ ……‖(Px30+Py31)‖Px31 この式は、第3図および第5図に図式的に示さ
れている。最初の「ホツト1」が加算されるの
は、PxおよびPyを決定するために加算される−
1についてこの式をバランスさせるためである。
第2の「ホツト1」(制御されたホツト1)が加
算されるのは、B′が1の補数形式で与えられた
めである。1の補数形式を適正な2の補数形式へ
変換するために、他の1が1の補数形式へ加算さ
れねばならない。 A+Bの結果がゼロに等しくなるためには、第
5図に示すように2つの「ホツト1」へ加算され
た式(B.1)の項(Px+Py)もまたゼロに等し
くなければならない。従つて、EQ条件は、以下
の式が真である場合にのみ真である。 (B.2) Px+Py+1+1 =(Px0+Py1)‖(Px1+Py2)‖ ……‖(Px30+Py31)‖(Px31+1+1)=0 式(B.2)は、第5図において加算動作として
図式的に示されている。2つの「ホツト1」が
Px31へ加算されたから、Px31がゼロに等しい場
合にのみ、結果ビツト31はゼロに等しくなる。も
しこれが真であれば、結果ビツト31はゼロに等し
くなり、そしてビツト位置30へのキヤリイ伝播が
生ずることになる。ビツト位置30へのキヤリイ入
力は1に等しいから、結果ビツト30がゼロに等し
くなるためには、ビツト(Px30およびPy31)の
一方だけが1に等しくなければならない。この伝
播効果は、全てのビツト位置へ及ぶ。この意味す
るところは、Ai+Biがゼロに等しくなるために
は、PxiおよびPy+1の一方だけが(両方ではな
い)1に等しくなければならない、ということで
ある。これを式の形で示すと、次のようになる。 EQ(タイプ1)i=Pxi V Pyi+1 この式は、所定のビツト位置iがゼロに等しく
なるため条件を計算する。ビツト位置31について
は、「ホツト1」の加算が行なわれると、次のよ
うになる。 EQ(タイプ1)31=Px31′ 従つて、A+Bと結果がゼロに等しくなるため
には、以下の関係が真でなければならない。 (B.3). EQ(タイプ1) =Px31′・[Px0 V Py1)・(Px1 V Py2) ・……・[Px30 V Py31)] =Px′31・D 但し、 D=[(Px0 V Py1)・(Px1 V Py2) ・……・[Px30 V Py31)] 〔付録C〕 第2の実施態様を説明するにあたり、以下の表
記法、ブール記号および定義を使用する。 表記法 (1) ′は関連する表現または項の補数である (2) (a|b)はaとbの論理和を表わす (3) (ab)はaとbの論理積を表わす (4) (aVb)はaとbの排他的論理和を表わす ブール表現 (1.1) 1Va=a′ 加算のための伝達(T)、発生(G)および半和(W)関
数 (1.2) T(i)=A(i)|B(i) (1.3) G(i)=A(i)B(i) (1.4) W(i)=A(i) V B(i) (1.5) 和(i)=A(i) V B(i) V C(i+1) 但し、N=加算の幅 0<=i<=N−1 A(i)=入力オペランドのビツト位置i B(i)=入力オペランドのビツト位置i C(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)|B(i)=0 但し、 C(i+1)=0 和(i)=A(i) V B(i) V C(i+1)=0 但し、 キヤリイ出力=0 長さNのビツト・ストリングについては、前記
リストされた3つの条件の或る順列だけが、加算
動作の結果としてゼロのストリングを許容する、 或るiについてT(i)=0である場合、もし和(i)
がゼロに等しくなるのであれば、ビツトiより下
位のビツトについて行なわれる加算動作はキヤリ
イ出力1を生ずることができない。和がゼロに等
しい場合、キヤリイ出力1を生ずることができな
いのはT(i)=0(但し、A(i)=B(i)=0)だけで
ある。換言すれば、もしビツト位置iがオペラン
ドAおよびBの両方でゼロであつたなら、ビツト
位置i+1は両オペランドについてゼロを持たな
ければならない、ということである。或るiにつ
いてT(i)=0である場合、ビツト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)=0を伴うG(i+1)=1を有さなけれ
ばならない。 或るiについてG(i)=1である場合、和(i)がゼ
ロに等しくなるためには、ビツトi+1に関する
加算動作はキヤリイ出力0を生じなければならな
い。前記でリストした動作のキヤリイ出力0を生
ずるのは、T(i)=0の場合だけである。即ち、も
しビツト位置iが両オペランドにおいて1を有し
ていたならば、ビツト位置i+1は両オペランド
AおよびBについてゼロを有しなければならな
い、このことは、G(i)=1について、T(i+1)
=T(i+2)=……=T(N)=0を暗示する。 また、ビツト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)′ 但し、 Cin=0 ここで、T(i)は、全ての必要なiについて、
第13図の回路によつて生ぜられる。 T(0)′T(1)′……T(N−1)′は、オペラ
ンドの各ビツト位置に関する1組の連続的な
T′動作であつて、ビツト0で開始し且つビツ
トNで終了する。このシーケンスについては、
両オペランドは全てのビツト位置において全ゼ
ロを有する。 2 W(0)W(1)……W(i−1)G(i)T(i +1)′T(i+2)′……T(N−1)′ 但し、 Cin=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) 但し、 Cin=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)′ 但し、 Cin=0 ここで、T(1)′T(2)′……T(N−21)′T
(N−1)′はオペランドの各ビツト位置に関
する1組の連続的なT′演算であり、ビツト
1で開始し且つビツトN−1で終了する。 3 W(0)W(1)……W(N−1) 但し、 Cin=1 ここで、W(0)W(1)……W(N−1)は、オ
ペランドの各ビツト位置に関する1組のW演算
であり、ビツト0で開始し且つビツトN−1で
終了する。このケースでは、各オペランドは他
方の1の補数である、 ここで、次のことを仮定する。 Z(0、1)=W(0)W(1)=(A(0) V B
(0))(A(1) V B(1)) Z(0、2)=W(0)W(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条件に等
価な「結果=0」関数(F)は次のように表わすこ
とができる。 (1) F=M(0、N−1)Cio′ +G(0)M(1、N−1)Cio′ +W(0)G(1)M(2、N−1)Cio′ +Z(0、1)G(2)M(3、N−1)Cio′ +Z(0、2)G(3)M(4、N−1)Cio′ 〓 +Z(0、N−2)G(N−1)Cio′ +Z(0、N−1)Cio′ 但し、Fは第17図の回路によつて生ぜられ
る。ブール式で表現した実現形態は次のとおりで
ある。
【表】
【表】
【表】
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)′ より大きい場合 Nビツト・ストリングについては、ストリング
比較関数は次のように表わすことができる。 LT=L(0) |(G(0)|TB(0)′)L(1) |(G(0)|T(0)′)(G(1)|T(1)′)L(2
) |(G(0)|T(0)′)(G(1)|T(1)′)(G
(2) |T(2)′)L(3) | 〓 |(G(0)|T(0)′)(G(1)|T(1)′)…… (G(N−2)|T(N−2)′)L(N−1) LTは第18図に記述されている。 また、 GT=D(0) |(G(0)|T(0)′)D(1) |(G(0)|T(0)′)(G(1)|T(1)′)D(2
) |(G(0)|T(0)′)(G(1)|T(1)′)(G
(2)| T(2)′)D(3) | 〓 |(G(0)|T(0)′)(G(1)|T(1)′)…… (G(N−2)|T(N−2)′)D(N−1) GTは第18図に記述されている。
あると仮定する。 B(i)をビツト・ストリングBのビツト位置iで
あると仮定する。 L(i)およびD(i)をビツト位置iに対するビツト
比較関係であると仮定する。即ち、 L(i)=A(i)′B(i) より小さい場合 D(i)=A(i)B(i)′ より大きい場合 Nビツト・ストリングについては、ストリング
比較関数は次のように表わすことができる。 LT=L(0) |(G(0)|TB(0)′)L(1) |(G(0)|T(0)′)(G(1)|T(1)′)L(2
) |(G(0)|T(0)′)(G(1)|T(1)′)(G
(2) |T(2)′)L(3) | 〓 |(G(0)|T(0)′)(G(1)|T(1)′)…… (G(N−2)|T(N−2)′)L(N−1) LTは第18図に記述されている。 また、 GT=D(0) |(G(0)|T(0)′)D(1) |(G(0)|T(0)′)(G(1)|T(1)′)D(2
) |(G(0)|T(0)′)(G(1)|T(1)′)(G
(2)| T(2)′)D(3) | 〓 |(G(0)|T(0)′)(G(1)|T(1)′)…… (G(N−2)|T(N−2)′)D(N−1) GTは第18図に記述されている。
第1図は本発明の第1の実施態様を示すブロツ
ク図、第2図および第3図は第1図に示す第1の
実施態様を更に詳細に示すブロツク図、第4図お
よび第5図は第1図の行組立回路の詳細を示す
図、第6図ないし第11図はEQ条件を検出する
ための第1図の部分を詳細に示す図、第12図は
本発明の第2の実施態様を示す図、第13図ない
し第19図は第12図の要素を詳細に示す図であ
る。 10……演算論理ユニツト、12……キヤリイ
選択回路、20……変形されたキヤリイ・セイブ
加算器、22……行組立回路、25……ZQ決定
回路。
ク図、第2図および第3図は第1図に示す第1の
実施態様を更に詳細に示すブロツク図、第4図お
よび第5図は第1図の行組立回路の詳細を示す
図、第6図ないし第11図はEQ条件を検出する
ための第1図の部分を詳細に示す図、第12図は
本発明の第2の実施態様を示す図、第13図ない
し第19図は第12図の要素を詳細に示す図であ
る。 10……演算論理ユニツト、12……キヤリイ
選択回路、20……変形されたキヤリイ・セイブ
加算器、22……行組立回路、25……ZQ決定
回路。
Claims (1)
- 【特許請求の範囲】 1 キヤリイ入力信号に応答して、各々がNビツ
トの順序づけられたシーケンスのオペランド対A
(i)およびB(i)(ここで、i=0……N−1)の算
術演算を実行し、この算術演算の結果を表わすデ
イジタル出力信号を発生するための算術演算ユニ
ツトを含む計算機システムにおいて、 前記オペランドに応答してオペランドAとオペ
ランドBとのキヤリイなしの結合によつて順序づ
けられたシーケンスの中間結果信号を発生するた
めのキヤリイ・セイブ加算器と、 前記キヤリイ・セイブ加算器に接続され、前記
キヤリイ入力信号と前記順序づけられたシーケン
スの中間結果信号との代数的結合に基づいて条件
コード信号を発生し、前記算術演算の結果とほぼ
同時に与えられ、前記結果の大きさが0か否かの
指示を出すための条件コード予測手段とを備え、 前記キヤリイ・セイブ加算器は、Pxi=(A(i)
VB(i))または(A(i)VB(i)′)′およびPYi=(A(i)
|B(i))「または(A(i)|B(i)′)」(ここで、′
は
論理補数、Vは排他的オア演算、|はオア演算で
ある)のように中間結果信号PxiおよびPyiを発生
し、 前記キヤリイ入力信号は“1”又は“0”の値
を有するデイジタル信号であり、 前記条件コード予測手段は前記中間結果信号お
よび前記キヤリイ入力信号を受取り、前記条件コ
ード信号(“結果=0”)を、キヤリイ入力=0の
場合、“結果=0”=(Px(N−1)・D)、キヤリ
イ入力=1の場合、“結果=0”=(Px(N−
1)′・D)または(Px(N−1)・D)(ここで、
D=[(Px(0)VPy(1))・(Px(1)VPy(2))・……・
(Px(N−2)VPy(N−1))]、・はアンド演算で
ある)により発生することを特徴とする条件コー
ドの予測装置。
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 | 1988-02-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01211119A JPH01211119A (ja) | 1989-08-24 |
JPH0542011B2 true 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) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0478745A4 (en) * | 1990-04-04 | 1993-09-01 | International Business Machines Corporation | High performance interlock collapsing scism alu apparatus |
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 |
US6219688B1 (en) | 1993-11-30 | 2001-04-17 | Texas Instruments Incorporated | Method, apparatus and system for sum of plural absolute differences |
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 |
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 |
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 |
US5420809A (en) * | 1993-11-30 | 1995-05-30 | Texas Instruments Incorporated | Method of operating a data processing apparatus to compute correlation |
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 |
CN100428223C (zh) * | 1998-12-16 | 2008-10-22 | 松下电器产业株式会社 | 带条件矢量运算方法和带条件矢量运算装置 |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63208938A (ja) * | 1987-02-26 | 1988-08-30 | Hitachi Ltd | フラグ発生回路 |
Family Cites Families (8)
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 |
-
1988
- 1988-02-17 US US07/157,500 patent/US4924422A/en not_active Expired - Fee Related
- 1988-12-20 JP JP63319661A patent/JPH01211119A/ja active Granted
-
1989
- 1989-01-13 EP EP19890100516 patent/EP0328871A3/en not_active Withdrawn
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63208938A (ja) * | 1987-02-26 | 1988-08-30 | Hitachi Ltd | フラグ発生回路 |
Also Published As
Publication number | Publication date |
---|---|
EP0328871A3 (en) | 1991-07-03 |
JPH01211119A (ja) | 1989-08-24 |
US4924422A (en) | 1990-05-08 |
EP0328871A2 (en) | 1989-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH0542011B2 (ja) | ||
US6099158A (en) | Apparatus and methods for execution of computer instructions | |
US5299319A (en) | High performance interlock collapsing SCISM ALU apparatus | |
JP4388980B2 (ja) | 浮動小数点数の除算または平方根演算を行う演算装置及び演算方法 | |
US9146707B2 (en) | Generating a fast 3x multiplicand term for radix-8 booth multiplication | |
US5426600A (en) | Double precision division circuit and method for digital signal processor | |
EP0487814A2 (en) | Overflow determination for three-operand alus in a scalable compound instruction set machine | |
US3825895A (en) | Operand comparator | |
US4947359A (en) | Apparatus and method for prediction of zero arithmetic/logic results | |
US6085211A (en) | Logic circuit and floating-point arithmetic unit | |
US5831884A (en) | Apparatus for performing arithmetic operation of floating point numbers capable of improving speed of operation by performing canceling prediction operation in parallel | |
EP0436905A2 (en) | High performance adder using carry predictions | |
US6629118B1 (en) | Zero result prediction | |
US7024439B2 (en) | Leading Zero Anticipatory (LZA) algorithm and logic for high speed arithmetic units | |
US4914579A (en) | Apparatus for branch prediction for computer instructions | |
US6202078B1 (en) | Arithmetic circuit using a booth algorithm | |
JP3257278B2 (ja) | 冗長なシフト数予測とシフト誤り補正を用いた正規化装置 | |
US5926407A (en) | Combined add/shift structure | |
JPH0447333B2 (ja) | ||
EP0356940A2 (en) | Finite state machine | |
JP2591250B2 (ja) | データ処理装置 | |
JP3233432B2 (ja) | 乗算器 | |
JPH1040078A (ja) | 先行0、1数予測回路、浮動小数点演算装置、マイクロプロセッサおよび情報処理装置 | |
WO1998006029A1 (en) | Apparatus and methods for execution of computer instructions | |
WO1998006031A1 (en) | Floating point addition methods and apparatus |