JPH0772862B2 - スライスされた加数の加速された加算を行うための方法および装置 - Google Patents

スライスされた加数の加速された加算を行うための方法および装置

Info

Publication number
JPH0772862B2
JPH0772862B2 JP1504403A JP50440389A JPH0772862B2 JP H0772862 B2 JPH0772862 B2 JP H0772862B2 JP 1504403 A JP1504403 A JP 1504403A JP 50440389 A JP50440389 A JP 50440389A JP H0772862 B2 JPH0772862 B2 JP H0772862B2
Authority
JP
Japan
Prior art keywords
sum
slice
microinstruction
output
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.)
Expired - Lifetime
Application number
JP1504403A
Other languages
English (en)
Other versions
JPH02500310A (ja
Inventor
デブラ バーンスタイン
ジェイムズ バーナード ケラー
Original Assignee
ディジタル イクイプメント コーポレーション
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 ディジタル イクイプメント コーポレーション filed Critical ディジタル イクイプメント コーポレーション
Publication of JPH02500310A publication Critical patent/JPH02500310A/ja
Publication of JPH0772862B2 publication Critical patent/JPH0772862B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3884Pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/386Special constructional features
    • G06F2207/3896Bit 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)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

Description

【発明の詳細な説明】 技術分野 本発明は、一般的にプロセッサの分野に関し、更に詳し
くはスライスされた算術論理演算部(ALU)において、
加算を加速する論理回路に関する。
背景技術 ALU用の多くのスライス設計では、性能を改善するため
パイプラインが使用されている。例えば、各々の加数が
最上位スライスと最下位スライスにスライスされている
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図は、本発明の好適なハードウェアの論理回路のブ
ロックある。
発明を実施するための最良の形態 高速加算論理回路は、以下で概略的に説明する条件を満
足する連続した加算を正確かつ高速に処理するため各算
術論理演算部(ALU)の上位スライスに含まれている。
本発明では説明を明確にするため2つのスライスを使用
した設計に対して説明が行われることに留意のこと。し
かし、本発明は3つ以上の数のスライスを有するスライ
ス設計にも使用することが可能である。
まず、加算合計は最下位スライスの大きさ以下でなけれ
ばならない。しかし、加算された合計はサイクル毎に変
化してもよい。
第2に、「n次」のマイクロ命令に対するALUの出力結
果の行き先が「(n+1)次」のマイクロ命令に対する
ソースとして使用されなければならない。この要求によ
って、加算が連続的であり以前の答が次のマイクロ命令
の加算を行うために必要であることが保証される。最後
に、マイクロコードは、加算シーケンスが最下位スライ
スから多くても1つの桁上げを発生するように制限され
なければならない。上記の条件のいずれかを満足しない
加算は、その結果を得るために完全に2サイクル待たな
ければならない。
第1図を参照して、ここにはマイクロ命令のシーケンス
のタイミングチャートの一部が示されている。このよう
なチャートは滝状チャートとして知られている。第1図
の滝状チャートはパイプラインで結ばれたマイクロ命令
1−4の一連の加算器ピースのみを示している。各マイ
クロ命令1−4は2つのスライスに分割される。最下位
スライス10は最下位バイトについて加算動作を実行す
る。桁上げ出力が加算動作で発生すると、この最下位ス
ライスはまた信号を発生する。最上位スライス12は、
「合計+0」と「合計+1」の動作の両方を実行する。
各クロック・サイクルは、位相Aと位相Bの両方を有し
ている。クロックの位相AとBは時間線「t」に示され
ている。第1図はALUパイプラインの4つのマイクロ命
令(5クロック・サイクル)を示す。
第1A図を参照してマイクロ命令の表が第1図の4つのマ
イクロ命令に対応して示される。またこの表には第1図
のデータに対応するマイクロ命令と連動する一連の加算
の例が与えられている。
さて、第1図および第1A図に示す例を使用した高速加算
の動作を説明する。第1マイクロ命令1はGとHの値を
加算してその結果をIに載置する。この例では16進数
「AB+01」が加算されて「AC」を発生する。このことは
第1図に示されて、ここで最下位スライス10は最下位ビ
ット「B+1」を加えて第1クロック・サイクルで合計
「C」を得る。第2クロック・サイクルは、最下位合計
の結果をパスする。
最上位スライス12は最上位ビット「A+0」を加えて部
分合計「A」を発生する。しかし、最下位スライスから
桁上げ入力の発生する可能性があるから、最上位スライ
スはまた合計+1の加算動作を実行し、これは「B」に
等しい部分合計+1を発生する。第2クロック・サイク
ルはマルチプレクサ(MUX)を使用し、桁上げ入力が発
生したかどうかによって、「合計」または「合計+1」
のいずれかを選択する。
基本的に、最下位スライス10は、加算の第1サイクルで
合計と桁上げ出力を計算する。最上位スライス12はこの
第1サイクルで部分合計と部分合計+1を計算する。第
2サイクルでは、桁上げ出力がチップからチップに横切
って再上位スライス12で計算された結果を選択する。し
たがって、全体の答は2つのクロック・サイクルで完了
する。
引き続き、次のマイクロ命令2が「I」と「J」の値を
加算してその結果を「K」に載置する。しかし、命令が
パイプラインで結ばれているため第2マイクロ命令2
は、以前のマイクロ命令1の後、1サイクルを開始す
る。従って、「I」の値はまだ発生されていず、このた
め第2マイクロ命令2に対する入力として使用すること
はできない。今までに知られているシステムでは、第1
の加算が終了するまで第2の加算を遅延させるため、NO
P命令を挿入する機構になっていた。しかし、このこと
は、第2の連続する加算が別のクロック・サイクルで計
算されるのを待たなければならない結果、パイプライン
の効率を低下させる。
本発明は、連続加算の増分が小さい場合、この遅延を除
去するものである。加算が小さい場合最上位の部分合計
は最上位の入力に等しいが、その理由は、「小さな増
分」の加数の最上位スライスがゼロであるためである。
更に、最上位部分合計+1は最上位入力+1に等しい。
また最下位の結果は常に1つのサイクルで計算される。
最上位スライスの高速加算回路は、これらの事実を利用
して連続する小さな加算の効率を高める。この高速加算
回路は現在および以前のサイクルがいずれも加算動作で
あり以前の加算動作の結果は現在のサイクルの加算に対
する入力として使用されるべきであることを検出する。
これらの条件が発生すると、高速加算装置は以前の合計
を現在の最上位スライス加算の結果として使用すること
によって動作する。この場合の唯一の例外は、最下位ス
ライスで桁上げ出力が発生する場合現在の部分合計+1
が最上位スライスに対する結果として使用されることで
ある。
再び例を参照して、もしマイクロ命令2が16進数「AC+
02」を加算して「AE」を発生すれば、高速加算回路が実
行される。この場合、最下位スライス10が通常通り加算
されて「E」を発生する。しかし、最上位スライスは高
速加算法を実行し第2マイクロ命令の答に対して、線16
によって示されるように、以前の結果を選択する。値
「A」は以前の最上位スライスの結果であり、したがっ
て、マイクロ命令2に対する答は「AE」である。
以前の結果の値を「L」の値に加算して出力「M」を発
生する第3マイクロ命令3に続いて、高速加算回路はま
だ動作したままである。「L」の値が16進数「02」であ
り、桁上げ出力が最下位スライスで発生すると仮定すれ
ば高速加算法は線18の以前の最上位部分合計+1を最上
位スライスの答として選択する。通常最下位スライスを
加算し合計+1の結果を使用することによってマイクロ
命令3の加算動作は正しい答「B1」を発生する。
マイクロ命令4はこの例を別の桁上げの無い加算にも拡
張する。高速加算法を使用することによって最上位スラ
イスは、マイクロ命令3から得られる最上位の結果を使
用する。したがって、線10に示されるように、現在の合
計B3が計算される。高速加算論理は、連続加算列におい
て、2つ以上の桁上げ出力が決して存在しないことを前
提としている。もし第2桁上げ出力が発生すれば、加算
は、新しい最上位部分合計と部分合計+1を発生するた
め、1サイクル待たなければならない。
第2図は、高速加算論理のハードウェアの好適な実施例
のブロック図である。比較器30は以前のサイクルの書き
込みアドレスを現在のサイクルの読み出しアドレスと比
較する。もし読み出しアドレスが書き込みアドレスと等
しければ、信号が比較器30を加算マルチプレクサ選択線
制御装置34に接続する線32に出力される。ANDゲート36
は以前のマイクロ命令と現在のマイクロ命令がいずれも
加算命令であるかどうかを判断する。もしこれらがいず
れも加算であれば、加算マルチプレクサ選択線制御装置
34に対する線38に信号が出力される。加算マルチプレク
サ選択線制御装置に接続された線40は、桁上げが最下位
スライスで発生したかどうかを示す。
加算マルチプレクサ選択線制御装置34は、最上位スライ
スの結果を出力するマルチプレクサ42を制御する。マル
チプレクサ42は、その入力としてALU加算装置からの部
分的な現在の合計を線44に有し、部分的な現在の合計+
1を線46に有する。
マルチプレクサ42の線48に対する出力は、ラッチ50と52
を介して供給される。フィードバック経路54は、ラッチ
52からマルチプレクサ42の入力に接続される。これによ
って、加算マルチプレクサ選択線制御装置34が最上位ス
ライスに対する出力として以前の結果または部分的な現
在の合計+1のいずれかを選択することが可能になる。
選択は上の例に示した方法にしたがって決定される。し
たがって、この高速加算論理のハードウェアは連続する
小さな加算の処理においてパイプラインを効果的に使用
することを可能にする。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】連続的にパイプラインによって接続された
    マイクロ命令においてスライスされた加数で加算動作を
    実行する方法であって、上記の加数は少なくとも1つの
    上位スライスと1つの最下位スライスを有し、連続する
    マイクロ命令に於ける加数の1つの上位スライスが上記
    の各々の連続するマイクロ命令でゼロである上記の方法
    において、 a)連続するクロック・サイクルに於ける連続的にパイ
    プラインによって接続された第1及び第2マイクロ命令
    を監視して、両方のマイクロ命令が加算命令があるかど
    うかを判定するステップ、 b)第2マイクロ命令の加算動作に対するソースとして
    第1マイクロ命令の結果が使用されることを検出するス
    テップ、 c)上記の第1マイクロ命令に於ける上記のスライスの
    各々で上記の加算動作を実行して上位及び最下位スライ
    スの合計及び上位スライスの合計+1を計算するステッ
    プ、 d)第1マイクロ命令の最下位スライスで桁上げ出力が
    発生したかどうかを検出するステップ、 e)ステップ(a)及び(b)と関連して、両方のマイ
    クロ命令が加算動作であると判定され、第2マイクロ命
    令の加算動作に対するソースとしての第1マイクロ命令
    の結果が使用されていることが検出された場合、 (i)上記の桁上げ出力が検出されない場合、上記の第
    2マイクロ命令の上位スライス合計として第1マイクロ
    命令の上位スライス合計を選択するステップ、および、 (ii)上記の桁上げ出力が検出された場合、上記の第2
    マイクロ命令の上位スライス合計として第1マイクロ命
    令の上位スライス合計+1を選択するステップによって
    構成されることを特徴とする方法。
  2. 【請求項2】スライスされた加数は、各々最上位スライ
    スと最下位スライスにスライスされることを特徴とする
    請求の範囲第1項記載の方法。
  3. 【請求項3】連続するマイクロ命令に於けるスライスさ
    れた加数に対して加算動作をコンピュータで実行する装
    置であって、連続するマイクロ命令に於ける加数の一つ
    の上位スライスがゼロである上記の装置において、 連続するマイクロ命令の加算動作の加数の上位スライス
    合計、上位スライス合計+1及び最下位スライス合計を
    計算する手段、 3つの入力と1つの出力とを有し、選択線の制御信号に
    よって上記の入力の選択が制御されるマルチプレクサで
    あって、上記の入力の内第1及び第2の入力が、上記計
    算する手段から、上位スライス合計と上位スライス合計
    +1とをそれぞれ受け、第3の入力が上記の出力に結合
    していて以前の合計を受けるマルチプレクサ、および 上記の選択線に接続された出力を有し、 (i)上記の最下位スライスの合計が桁上げ出力を有す
    る場合、 (ii)連続的クロック・サイクルに於ける連続する第1
    および第2マイクロ命令がいずれも加算動作である場
    合、および (iii)第1マイクロ命令の結果が第2マイクロ命令の
    加算動作のソースである場合、第1制御信号を出力し、 条件(ii)及び(iii)のいずれかが満足されない場
    合、第2制御信号を発生する論理ゲートによって構成さ
    れ、 上記のマルチプレクサは、第1制御信号が出力された場
    合、上位スライス合計+1を出力し、第2制御信号が出
    力された場合、上位スライス合計を出力することを特徴
    とする装置。
  4. 【請求項4】上記マルチプレクサは、上記3つの条件の
    内条件(i)のみが満足されない時、上記の第3の入力
    に受けた以前の合計を出力することを特徴とする請求項
    3記載の装置。
JP1504403A 1988-04-01 1989-03-30 スライスされた加数の加速された加算を行うための方法および装置 Expired - Lifetime JPH0772862B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US07/176,594 US4878193A (en) 1988-04-01 1988-04-01 Method and apparatus for accelerated addition of sliced addends
US176,594 1988-04-01
PCT/US1989/001310 WO1989009440A1 (en) 1988-04-01 1989-03-30 Fast adder

Publications (2)

Publication Number Publication Date
JPH02500310A JPH02500310A (ja) 1990-02-01
JPH0772862B2 true 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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Also Published As

Publication number Publication date
WO1989009440A1 (en) 1989-10-05
US4878193A (en) 1989-10-31
JPH02500310A (ja) 1990-02-01

Similar Documents

Publication Publication Date Title
US5394351A (en) Optimized binary adder and comparator having an implicit constant for an input
US5699279A (en) Optimized binary adders and comparators for inputs having different widths
US5581718A (en) Method and apparatus for selecting instructions for simultaneous execution
US5299319A (en) High performance interlock collapsing SCISM ALU apparatus
US5892699A (en) Method and apparatus for optimizing dependent operand flow within a multiplier using recoding logic
JPH02227769A (ja) データ処理システム
JPS59226971A (ja) 全浮動小数点ベクトルプロセツサ
US4541045A (en) Microprocessor architecture employing efficient operand and instruction addressing
JPH0542011B2 (ja)
JP2683488B2 (ja) 3−1論理演算装置
JPS633337B2 (ja)
JPH02226420A (ja) 浮動小数点演算実行装置
IE62033B1 (en) Apparatus and method for converting floating point data formats in a microprocessor
US6209076B1 (en) Method and apparatus for two-stage address generation
US7827226B2 (en) Hybrid arithmetic logic unit
US5590351A (en) Superscalar execution unit for sequential instruction pointer updates and segment limit checks
SE432027B (sv) Digital datamultiplikator
US7809932B1 (en) Methods and apparatus for adapting pipeline stage latency based on instruction type
US5721697A (en) Performing tree additions via multiplication
JPH0772862B2 (ja) スライスされた加数の加速された加算を行うための方法および装置
JPH07253888A (ja) データ処理装置
JP2001092631A (ja) ゼロ結果検出器およびゼロ結果を検出する方法
Unwala et al. Superpipelined adder designs
US9262123B2 (en) Data processing apparatus and method for performing a narrowing-and-rounding arithmetic operation
Stephenson Case study of the pipelined arithmetic unit for the TI advanced scientific computer