JPH02500310A - スライスされた加数の加速された加算を行うための方法および装置 - Google Patents
スライスされた加数の加速された加算を行うための方法および装置Info
- Publication number
- JPH02500310A JPH02500310A JP1504403A JP50440389A JPH02500310A JP H02500310 A JPH02500310 A JP H02500310A JP 1504403 A JP1504403 A JP 1504403A JP 50440389 A JP50440389 A JP 50440389A JP H02500310 A JPH02500310 A JP H02500310A
- Authority
- JP
- Japan
- Prior art keywords
- slice
- microinstruction
- sum
- addition
- microinstructions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3884—Pipelining
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/386—Special constructional features
- G06F2207/3896—Bit slicing
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。
Description
【発明の詳細な説明】
高速加算器
技術分野
本発明は、−m的にプロセッサの分野に関し、更に詳しくはスライスされた算術
論理演算部(ALU)において、加算を加速する論理回路に関する。
背景技術
ALU用の多くのスライス設計では、性能を改善するためパイプラインが使用さ
れている0例えば、各々の加数が最上位スライスと最下位スライスにスライスさ
れている2つのスライスによって形成された設計の場合、加算動作は2つのサイ
クルで実行される。第1サイクルでは、部分的な結果が加数の各スライスに対し
て計算される。合計および桁上げ出力は、最下位スライスに対して計算される、
最上位スライスの場合、部分合計と部分合計+1が計算される。これらの部分合
計は、桁上げ入力のある場合および桁上げ入力のない場合の両方に対して発生さ
れる、すなわち、最下位スライスからの桁上げ入力のない場合に、最上位スライ
スの部分合計が使用され、最下位スライスからの桁上げ入力のある場合に、部分
合計+1が使用される。同様に、桁上げ発生信号が発生されて上位スライスに送
られ、桁上げ入力があるかどうかを指示する。第2サイクルでは、桁上げ発生信
号がチップからチップへとALUを横切って最上位スライス加算動作に対して桁
上げ入力信号を発生する。この桁上げ入力信号は、以前のサイクルの最上位スラ
イスからのいずれの部分的な結果が出力されるべきかを選択する。したがって、
全体の答は2つのサイクルで完成される。2つのサイクルの中で最初に実行され
る演算は独立しているから、ALUはパイプラインで接続されることができる。
加算のためには2つのサイクルが必要であるが、各サイクル毎に新しい結果か発
生される。しかし、最上位スライスの場合、このパイプライン効果は、1つの加
算動作の結果が次の加算動作に対する入力として必要である場合はいつも失われ
る。
これに対する従来の解決策は、以前の結果が入手可能となるまで加算を遅延する
ため、連続する加算の間に非演算(NOP)命令または異なったデータに対する
ALUの動作を加えることである。しかし、しばしばこの期間に役立たない作業
が行われ、したがって、このサイクルが無駄に使用される。
発明の開示
1回以上の加算を連続的に実行し、その結果を次のサイクルに直ちに使用するこ
とがしばしば望ましい、多くの場合、連続加算は小さな増分を加えるものである
に過ぎないことが分かっている。
一般的な場合では、例えば、スタック動作や文字列の命令等を実行するため、シ
ーケンスになった長い語をメモリから読み出すまたはメモリに書き込む場合であ
る。これらの増分の小さな加算を実行する場合、最上位スライスの部分合計が最
上位スライス入力に等しいということが成立するが、その理由は、小さな加数の
最上位スライスがゼロであるためである。更に、最上位スライスの部分合計+1
は最上位入力+1に等しい、最下位スライスの結果は常に1つのサイクルで計算
される。その結果、遅滞なくサイクル毎に連続加算を実行するためには、1つの
サイクルで最上位スライスの結果を計算することが可能であることのみが必要で
ある。
連続した小さな加゛算増分の存在する状況を利用するため、すなわち連続加算動
作の加数の1つの上位スライスがゼロに等しい場合を利用するため、本発明は上
位スライス加算器に論理ハードウェアを有している。このハードウェアは以前の
サイクルの合計を記憶している。更に、このハードウェアは現在のサイクルと以
前のサイクルの両方が加算動作であり、以前のサイクルの部分合計が現在の加算
サイクルに対する入力として使用されていることを認識する。
上記の状況が検出されると、上位スライスのハードウェアは、以前の上位スライ
スの合計が現在の加算に対する上位スライスの答として使用されるという規則を
実行する。しかし、もし桁上げ出力がハードウェアによって検出された場合、現
在の部分合計+1が現在の加算に対する答として使用される。この場合、只1つ
の制約として、連続加算列には桁上げ出力が2つ以上存在してはいけないことを
守らなければならない。
図面の簡単な説明
第1図は、一連のパイプラインで接続されたマイクロ命令の湾状チャートである
。
第1A図は、第1図の湾状チャートに対応するマイクロ命令の表である。
第2図は、本発明の好適なハードウェアの論理回路のブロックある。
発明を実施するための最良の形態
高速加算論理回路は、以下で概略的に説明する条件を満足する連続した加算を正
確かつ高速に処理するため各三術論理演算部(A L U)の上位スライスに含
まれている0本発明では説明を明確にするため2つのスライスを使用した設計に
対して説明が行われることに留意のこと、しかし、本発明は3つ以上の数のスラ
イスを有するスライス設計にも使用することが可能である。
まず、加算合計は最下位スライスの大きさ以下でなければならない、しかし、加
算された合計はサイクル毎に変化してもよい。
第2に、「0次」のマイクロ命令に対するALUの終端がr(n+1)次」のマ
イクロ命令に対するソースとして使用されなければならない。この要求によって
、加算が連続的であり以前の答が次のマイクロ命令の加算を行うために必要であ
ることが保証される。最後に、マイクロコードは、加算シーケンスが最下位スラ
イスから多くても1つの桁上げを発生するように制限されなければならない、上
記の条件のいずれかを満足しない加算は、その結果を得るために完全に2サイク
ル待たなければならない。
第1図を参照して、ここにはマイクロ命令のシーケンスのタイミングチャートの
一部が示されている。このようなチャートは流状チャートとして知られている。
第1図の流状チャートはパイプラインで結ばれたマイクロ命令1−4の一連の加
算器ピースのみを示している。各マイクロ命令1−4は2つのスライスに分割さ
れる。最下位スライス10は最下位バイトについて加算動作を実行する。桁上げ
出力が加算動作で発生すると、この最下位スライスはまた信号を発生する。最上
位スライス12は、「合計十〇」と「合計+1」の動作の両方を実行する。
各クロック・サイクルは、位相Aと位相Bの両方を有している。
クロックの位相AとBは時間線rtJに示されている。第1図はALυバイブラ
インの4つのマイクロ命令(5クロツク・サイクル)を示す。
第1A図を参照してマイクロ命令の表が第1図の4つのマイクロ命令に対応して
示される。またこの表には第1図のデータに対応するマイクロ命令と連動する一
連の加算の例が与えられている。
さて、第1図および第1A図に示す例を使用した高速加算の動作を説明する。第
1マイクロ命令1はGとHの価を加算してその結果を工に載置する。この例では
16進数rAB+oIJが加算されてrAClを発生する。このことは第1図に
示され、ここで最下位スライス10は最下位ビア ) rB+IJを加えて第1
クロツク・サイクルで合計「C」を得る。第2クロツク・サイクルは、最下位合
計の結果をパスする。
最上位スライス12は最上位ビットrA+OJを加えて部分合計rAJを発生す
る。しかし、最下位スライスから桁上げ入力の発生する可能性があるから、最上
位スライスはまた合計+1の加算動作を実行し、これはrBJに等しい部分合計
+1を発生する。
第2クロツク・サイクルはマルチプレクサ(MUX)を使用し、桁上げ入力が発
生したかどうかによって、「合計」または「合計+1」のいずれかを選択する。
基本的に、最下位スライス10は、加算の第1サイクルで合計と桁上げ出力を計
算する。最上位スライス12はこの第1サイクルで部分合計と部分合計+1を計
算する。第2サイクルでは、桁上げ出力がチップからチップに横切って再上位ス
ライス12で計算された結果を選択する。したがって、全体の答は2つのクロッ
ク・サイクルで完了する。
引き続き、次のマイクロ命令2がrlJと「j」の価を加算してその結果をrK
Jに載置する。しかし、命令がパイプラインで結ばれているため第2マイクロ命
令2は、以前のマイクロ命令1の後、1サイクルを開始する。従って、rlJO
値はまだ発生されていす、このため第2マイクロ命令2に対する入力として使用
することはできない。今までに知られているシステムでは、第1の加算が終了す
るまで第2の加算を遅延させるため、NOP命令を挿入する機構になっていた。
しかし、このことは、第2の連続する加算が別のクロック・サイクルの計算され
るのを待たなければならない結果、パイプラインの効率を低下させる。
本発明は、連続加算の増分が小さい場合、この遅延を除去するものである。加算
が小さい場合最上位の部分合計は最上位の入力に等しいが、その理由は、「小さ
な増分」の加数の最上位スライスがゼロであるためである。更に、最上位部分合
計+1は最上位入力+1に等しい、また最下位の結果は常に1つのサイクルで計
算される。
最上位スライスの高速加算回路は、これらの事実を利用して連続する小さな加算
の効率を高める。この高速加算回路は現在および以前のサイクルがいずれも加算
動作であり以前の加算動作の結果は現在のサイクルの加算に対する入力として使
用されるべきであることを検出する。これらの条件が発生すると、高速加算装置
は以前の合計を現在の最上位スライス加算の結果として使用することによって動
作する。この場合の唯一の例外は、最下位スライスで桁上げ出力が発生する場合
現在の部分合計+1が最上位スライスに対する結果として使用されることである
。
再び例を参照して、もしマイクロ命令2が16進数rAC+02」を加算してr
AEJを発生すれば、高速加算回路が実行される。この場合、最下位スライス1
0が通常通り加算されて「E」を発生する。しかし、最上位スライスは高速加算
法を実行し第2マイクロ命令の答に対して、線16によって示されるように、以
前の結果を選択する。MrAJは以前の最上位スライスの結果であり、したがっ
て、マイクロ命令2に対する答はrAEJである。
以前の結果の値をrLJO値に加算して出力rMJを発生する第3マイクロ命令
3に続いて、高速加算回路はまだ動作したままである。「L」の値が16進数「
02」であり、桁上げ出力が最下位スライスで発生すると仮定すれば高速加算法
は線18の以前の最上位部分合計+1を最上位スライスの答として選択する。通
常最下位スライスを加算し合計+1の結果を使用することによってマイクロ命令
3の加算動作は正しい答「B1」を発生する。
マイクロ命令4はこの例を別の桁上げの無い加算にも拡張する。
高速加算法を使用することによって最上位スライスは、マイクロ命令3から得ら
れる最上位の結果を使用する。したがって、線10に示されるように、現在の合
計B3が計算される。高速加算論理は、連続加算列において、2つ以上の桁上げ
出力が決して存在しないことを前提としている。もし第2桁上げ出力が発生すれ
ば、加算は、新しい最上位部分合計と部分合計+1を発生するため、1サイクル
待たなければならない。
第2図は、高速加算論理のハードウェアの好適な実施例のブロック図である。比
較器30は以前のサイクルの書き込みアドレスを現在のサイクルの読み出しアド
レスと比較する。もし読み出しアドレスが書き込みアドレスと等しければ、信号
が比較器30を加算マルチプレクサ選択線制御装置34に接続する81I32に
出力される。ANDゲート36は以前のマイクロ命令と現在のマイクロ命令がい
ずれも加算命令であるかどうかを判断する。もしこれらがいずれも加算であれば
、加算マルチプレクサ選択線制御装置34に対する線38に信号が出力される。
加算マルチプレクサ選択線制御装置に接続された線40は、桁上げが最下位スラ
イスで発生したかどうかを示す。
加算マルチプレクサ選択線制御装置34は、最上位スライスの結果を出力するマ
ルチプレクサ42を制御する。マルチプレクサ42は、その入力としてALU加
算装置からの部分的な現在の合計を線44に有し、部分的な現在の合計+1を線
46に有する。
マルチプレクサ42のvA48に対する出力は、ラッチ50と52を介して供給
される。フィードバック経路54は、ラッチ52からマルチプレクサ42の入力
に接続される。これによって、加算マルチプレクサ選択線制御装置34が最上位
スライスに対する出力として以前の結果または部分的な現在の合計+1のいずれ
かを選択することが可能になる0選択は上の例に示した方法にしたがって決定さ
れる。したがって、この高速加算論理のハードウェアは連続する小さな加算の処
理においてパイプラインを効果的に使用することを可能にする。
国際調査報告
Claims (3)
- 1.連続的にパイプラインによって接続されたマイクロ命令においてスライスさ れた加数で加算動作を実行する方法であって、上記の加数は少なくとも1つの上 位スライスと1つの最下位スライスを有し、連続するマイクロ命令に於ける加数 の1つの上位スライスが上記の各々の連続するマイクロ命令でゼロである上記の 方法において、 a)連続するクロック・サイクルに於ける第1および第2マイクロ命令を監視し て、両方のマイクロ命令が加算動作であるかどうかを判定するステップ、 b)第2マイクロ命令の加算動作に対するソースとしての第1マイクロ命令の終 端が使用されていることを検出するステップ、 c)上記の各々の連続するマイクロ命令において加数の少なくとも1つに於ける 上位スライスがゼロであることを要求するステップ、 d)上記の第1マイクロ命令に於ける上記のスライスの各々で上記の加算動作を 実行して上位および最下位スライスの合計を計算するステップ、 e)第1マイクロ命令の最下位スライスで桁上げ出力が発生したかどうかを検出 するステップ、 f)ステップ(a)および(b)と関連して、両方のマイクロ命令が加算動作で あると判定され、第2マイクロ命令の加算動作に対するソースとしての第1マイ クロ命令の終端が使用されていることが検出された場合、 (i)上記の桁上げ出力が検出されない場合、上記の第2マイクロ命令の上位ス ライス合計である第1マイクロ命令の上位スライス合計を選択するステップ、お よび(ii)上記の桁上げ出力が検出された場合、上記の第2マイクロ命令の上 位スライス合計である上位スライス合計プラス1を選択するステップによって構 成されることを特徴とする方法。
- 2.スライスされた加数は、各々最上位スライスと最下位スライスにスライスさ れることを特徴とする請求の範囲第1項記載の方法。
- 3.スライスされた加算をコンピュータで実行する装置であって、連続するマイ クロ命令に於ける加数の1つの上位スライスがゼロである上記の装置において、 マイクロ命令の加算動作の加数の上位スライス合計、上位スライス合計+1およ び最下位スライス合計を計算する手段、選択線の制御信号によって制御され、上 記の手段から入力を受取り、上位スライス合計と上位スライス合計+1を計算し 、かつマルチプレクサの入力に接続された出力を有する上記マルチプレクサ、お よび 上記の選択線に接続された出力を有し、(i)上記の最下位スラスイの合計が桁 上げ出力を有する場合、(ii)連続的クロック・サイクルに於ける第1および 第2マイクロ命令がいずれも加算動作である場合、および(iii)第1マイク ロ命令の終端が第2マイクロ命令の加算動作のソースである場合、第1制御信号 を出力し、条件(i)、(ii)および(iii)のいずれかが満足されない場 合、第2制御信号を発生する論理ゲートによって構成され、上記のマルチプレク サは、第1制御信号が出力された場合上位スライス合計+1を出力し、第2制御 が出力された場合、上位スライス合計を出力することを特徴とする装置。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US176,594 | 1988-04-01 | ||
| US07/176,594 US4878193A (en) | 1988-04-01 | 1988-04-01 | Method and apparatus for accelerated addition of sliced addends |
| PCT/US1989/001310 WO1989009440A1 (en) | 1988-04-01 | 1989-03-30 | Fast adder |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH02500310A true JPH02500310A (ja) | 1990-02-01 |
| JPH0772862B2 JPH0772862B2 (ja) | 1995-08-02 |
Family
ID=22645003
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP1504403A Expired - Lifetime JPH0772862B2 (ja) | 1988-04-01 | 1989-03-30 | スライスされた加数の加速された加算を行うための方法および装置 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US4878193A (ja) |
| JP (1) | JPH0772862B2 (ja) |
| WO (1) | WO1989009440A1 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5418736A (en) * | 1994-03-11 | 1995-05-23 | Nexgen, Inc. | Optimized binary adders and comparators for inputs having different widths |
| US8417761B2 (en) * | 2008-12-08 | 2013-04-09 | International Business Machines Corporation | Direct decimal number tripling in binary coded adders |
| US20140280429A1 (en) * | 2013-03-15 | 2014-09-18 | Lsi Corporation | Efficient Hardware Structure For Sorting/Adding Multiple Inputs Assigned To Different Bins |
| DE102015209123A1 (de) * | 2015-05-19 | 2016-11-24 | Robert Bosch Gmbh | Recheneinrichtung und Betriebsverfahren hierfür |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3789957A (en) * | 1972-04-05 | 1974-02-05 | J Close | Check out system |
| US3900723A (en) * | 1974-05-28 | 1975-08-19 | Control Data Corp | Apparatus for controlling computer pipelines for arithmetic operations on vectors |
| JPS57134774A (en) * | 1981-02-13 | 1982-08-20 | Hitachi Ltd | Vector operating device |
| US4789957A (en) * | 1986-03-28 | 1988-12-06 | Texas Instruments Incorporated | Status output for a bit slice ALU |
-
1988
- 1988-04-01 US US07/176,594 patent/US4878193A/en not_active Expired - Lifetime
-
1989
- 1989-03-30 WO PCT/US1989/001310 patent/WO1989009440A1/en not_active Ceased
- 1989-03-30 JP JP1504403A patent/JPH0772862B2/ja not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0772862B2 (ja) | 1995-08-02 |
| WO1989009440A1 (en) | 1989-10-05 |
| US4878193A (en) | 1989-10-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5394351A (en) | Optimized binary adder and comparator having an implicit constant for an input | |
| Anderson et al. | The IBM system/360 model 91: Floating-point execution unit | |
| US5699279A (en) | Optimized binary adders and comparators for inputs having different widths | |
| US6487575B1 (en) | Early completion of iterative division | |
| KR20190090817A (ko) | 부동 소수점 수를 누산하기 위한 산술 연산을 수행하는 장치 및 방법 | |
| US9146707B2 (en) | Generating a fast 3x multiplicand term for radix-8 booth multiplication | |
| JPH0542011B2 (ja) | ||
| US5481488A (en) | Block floating point mechanism for fast Fourier transform processor | |
| EP0487814A2 (en) | Overflow determination for three-operand alus in a scalable compound instruction set machine | |
| IE62033B1 (en) | Apparatus and method for converting floating point data formats in a microprocessor | |
| US5590351A (en) | Superscalar execution unit for sequential instruction pointer updates and segment limit checks | |
| JPH0618040B2 (ja) | 剰余検査装置 | |
| US7392273B2 (en) | High-sticky calculation in pipelined fused multiply/add circuitry | |
| JP3304971B2 (ja) | 絶対値演算回路 | |
| JPH02500310A (ja) | スライスされた加数の加速された加算を行うための方法および装置 | |
| JPH04270415A (ja) | 高性能加算器 | |
| EP0840207A1 (en) | A microprocessor and method of operation thereof | |
| US6729168B2 (en) | Circuit for determining the number of logical one values on a data bus | |
| EP0534760A2 (en) | High speed multiplier device | |
| US7028068B1 (en) | Alternate phase dual compression-tree multiplier | |
| Pang et al. | A self-timed ICT chip for image coding | |
| Praneeth et al. | Design: High-Speed Block-Based Carry Speculative Adder for Error-Tolerant Applications | |
| JP2000040081A (ja) | ベクトルデータ処理装置 | |
| JP3310316B2 (ja) | 演算装置 | |
| US5588127A (en) | High speed microprocessor branch decision circuit |