JPH0542012B2 - - Google Patents

Info

Publication number
JPH0542012B2
JPH0542012B2 JP63119426A JP11942688A JPH0542012B2 JP H0542012 B2 JPH0542012 B2 JP H0542012B2 JP 63119426 A JP63119426 A JP 63119426A JP 11942688 A JP11942688 A JP 11942688A JP H0542012 B2 JPH0542012 B2 JP H0542012B2
Authority
JP
Japan
Prior art keywords
byte
circuit
carry
operand
addition
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
JP63119426A
Other languages
English (en)
Other versions
JPS6410323A (en
Inventor
Putsurino Mitsucheru
Uashiiriiadeisu Sutaamateisu
Maaku Shewaatsu Eritsuku
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 JPS6410323A publication Critical patent/JPS6410323A/ja
Publication of JPH0542012B2 publication Critical patent/JPH0542012B2/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/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/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/382Reconfigurable for different fixed word lengths

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)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】
以下に従つて本発明を説明する。 A 産業上の利用分野 B 従来技術 C 発明が解決しようとする問題点 D 問題点を解決するための手段 E 実施例 E1 全体の構成(第1図) E2 セツトアツプ論理回路14の構成(第2
図) E3 セツト/マスク論理回路18の構成(第
3図) E4 特別加算回路20の構成(第4図〜第1
2図) E5 全体の動作(第1図) E6 セツトアツプ論理回路14の動作(第2
図) E7 セツト/マスク論理回路18の動作(第
3図) E8 特別加算回路20の動作(第4図〜第1
2図) E9 理論的補足 F 発明の効果 A 産業上の利用分野 本発明の主題は計算機システムに関し、さらに
詳細には、計算機システムで使用するための並列
構成の加算回路に関するものである。 B 従来技術 計算機システムは正則加算および減算を実行す
るための加算機構を含まなければならない。その
ような加算機構を設計するには、一般にまず加算
機構を実現するためのブール式を作成する。何ら
かの「最小化」手法を使つてこれらの式を適切に
修正しない限り、これらのブール式から得られる
加算機構は、正則加算および正則減算を実行する
際に、受け入れ難い遅延を生じることになる。さ
らに、そのような加算機構は、正則加算および正
則減算と同様にバイト加算およびバイト減算を実
行することができない。 加算機能の従来の公式は、カイ・フアング
(Kai Hwang)の著書“計算機演算の原理、ア
ーキテクチヤ、設計(Computer Arithmetic
Principles、Architecture、and Design)”、P.84
−91の第3.8節および第3.9節に記載されている。
この公式は、遅延に関して、2つの経路、すなわ
ち、(1)半和を発生する経路と、(2)桁上げを発生す
る経路に依存する。漸化式は次の通りである。 SUMi=Hi V Ci+1 Ci=Gi+TiCi+1 この公式は、即時計算であるHiと、前の桁上
げ(Ci+2)の計算に依存するCi+1を必要とす
るので、非常に遅い。 やはり、上記のカイ・フアングの著書に記載さ
れている桁上げルツクアヘツド(CLA)手法を
使うと、同じ公式を用いてより優れた解決策を得
ることができる。しかし、この解決策は上記の従
来の公式に対する改善であるが、桁上げが依然と
してクリテイカル・パスになつている。和は明示
的にも暗示的にも計算することができる。和を暗
示的に計算するには、前のビツト・グループから
伝播する桁上げを発生させ、その桁上げを含む和
に対して公式を適用する。和を明示的に計算する
には、特定のビツト位置で桁上げを発生させ、排
他的ORを使つて和を発生させる。暗示的計算で
は、そのビツト・グループへの桁上げを発生させ
た後に1つの追加段階で和を発生させ、明示的計
算では、あるビツト・グループへの桁上げを発生
させた後の2つの段階で和を発生させる。遅延に
関するクリテイカル・パスは、桁上げの発生によ
るものである。暗示的計算でも明示的計算でも、
和を得るには、適当な桁上げの後で少なくとも1
つの段階が必要である。さらに、加算に対して、
たとえば、バイト加算またはバイト減算あるいは
その両方など他の要件が課されている場合は、前
記の公式を適切に変更しなければならない。そう
しなければならない場合、(任意のビツト・グル
ープについてでなく)バイト境界について桁上げ
を行なわなければならず、これは遅延に関して最
も好ましい選択とはならないことがある。すなわ
ち、桁上げをマスクまたはセツトするために必要
な条件を含むように桁上げ式を拡張しなければな
らず、必要とされる演算を考慮するために和の式
を変更する必要となるかもしれず、クリテイカ
ル・パスに一層の遅延が加わるおそれがある。和
を計算するのに必要な遅延を改善するには、桁上
げよりも少しの遅延しか必要としない臨界量を発
生させなければならず、従来の公式と同じかまた
はそれより少ない遅延で実施できるブール式を必
要とするような形で和を発生させなければならな
い。 C 発明が解決しようとする問題点 したがつて、本発明の主な目的は、計算機シス
テムで使用するための並列構成の加算回路の新し
い実施形態を提供することである。 本発明の他の目的は、正則加算および正則減算
だけでなくバイト加算およびバイト減算も最小の
遅延で実行することができる加算回路を提供する
ことである。 D 問題点を解決するための手段 本発明の上記およびその他の目的は、並列構成
手法を使つて、計算機システムで使用するための
加算回路を設計することにより実現される。本発
明の加算回路は、桁上げと等価でも等しくもない
擬似桁上げ(Si)と呼ばれる新しい量を作成する
ことにより、全体的遅延を改善する。さらに、バ
イト加算およびバイト減算をそれらの擬似量に組
み込む。桁上げの実施とは違つて、Siはその実施
に関して必要なハードウエアおよび遅延がより少
ない。補助関数、擬似桁上げ(Si)、および和を
表わすブール式を使つて、加算関数との等価性を
維持する新しい和の式を作成した。この新しい和
の式は、擬似桁上げの発生後に1段階の遅延で実
現することができる。この新しい和の公式は、正
則加算を含むだけでなく、バイト加算およびバイ
ト減算をも含む。新しい公式は遅延の点で、正則
加算に関する従来の公式よりもすぐれているの
で、バイト加算/バイト減算を考慮するときは、
はるかに大きな利点をもたらす。何故ならば、前
述のように、バイト加算は、従来の公式を使つて
設計された加算機構の能力を低下させるからであ
る。したがつて、この機能の新しい公式は従来の
公式に比べて実行時間が速く、加算に関する等価
性を保持する。この新しい公式はより多くの関数
を計算し、バイト加算を含ませた従来の公式に比
べて、遅延の点で能力が大幅に優れている。 この新しい加算回路の公式では、Aオペランド
とBオペランドを加算機構に入力する。加算機構
はオペランド自体の加算と減算の他にオペランド
の個々のバイトの加算と減算をも実行する。セツ
トアツプ論理回路が、計算機システムで実行中の
特定の命令に基づく特定の方式でBオペランドを
処理する。セツト/マスク論理回路も特定の命令
に応じ、桁上げをマスク、またはセツトし、ある
いは桁上げに関して「どちらでもよい」状態を活
動化する。AオペランドおよびBオペランドの特
定のバイトに関して、バイト加算/減算を実行す
るとき、その特定バイトの加算または減算から生
じる桁上げを、加算/減算を施されているAオペ
ランド/Bオペランドの次のバイトに関連する加
算/減算演算からマスクし、または、加算/減算
を施されているAオペランド/Bオペランドの次
のバイトに関連する加算/減算演算に挿入(セツ
ト)することができる。セツト/マスク論理回路
はそのような桁上げに関する「どちらでもよい」
状態を活動化することができる。この状態では、
特定バイトのバイト加算/バイト減算から生じる
桁上げが、関連するオペランドの特定バイトに対
する演算に応じてそのような桁上げが自然に生じ
るに従つて、Aオペランドまたは処理済みBオペ
ランドの次のバイトと関連するバイト加算/バイ
ト減算に繰り越されたり、繰り越されなかつたり
する。特別な加算回路が、Aオペランド、セツト
アツプ論理回路の出力、およびセツト/マスク論
理回路の出力に応じて、加算/減算を施されてい
るAオペランドおよび処理済みBオペランドに関
連する特定のバイトのビツト0−5に対する演算
を実行し、Aオペランドおよび処理済みBオペラ
ンドの特定のバイトのビツト6に対する演算を実
行し、Aオペランドおよび処理済みBオペランド
の特定のバイトのビツト7に対する演算を実行
し、Aオペランドおよび処理済みBオペランドの
特定バイトのビツト0−5、ビツト6およびビツ
ト7に関連する演算の結果を連結する。連結され
た結果は、Aオペランドおよび処理済みBオペラ
ンドに関連する特定バイトの和または差を表わ
す。 E 実施例 E1 全体の構成 第1図を参照すると、本発明の並列加算機構
のダイアグラムが示されている。 第1図で、Aオペランド10は特別加算回路
20に入力される。Bオペランド(B0−Bn)
12はセツトアツプ論理回路14に入力され
る。セツトアツプ論理回路14はさらに、修正
されたBオペランド(B0# −Bn# )12を含
むレジスタ16に入力され、セツトアツプ論理
回路14は特定の命令制御に応答する。レジス
タ16中の修正されたBオペランドは特別加算
回路20に入力される。セツト/マスク論理回
路18は命令制御および正則減算制御に応答す
る。セツト/マスク論理回路18はマスク出力
信号、セツト出力信号、桁上げ(Cin)出力信
号を発生し、これらの信号はそれぞれ特別加算
回路20に入力される。特別加算回路20は、
Aオペランド、修正されたBオペランド、マス
ク出力信号およびセツト出力信号に応答する補
助関数回路20aと、Aオペランド、修正され
たBオペランド、マスク出力信号、セツト出力
信号および桁上げ(Cin)出力信号に応答する
擬似桁上げ回路20bを備えている。和回路2
0cは補助関数回路20a、擬似桁上げ回路2
0bおよびセツト信号に応答して、マスク出力
信号、セツト出力信号およびCin信号に応じ
て、Aオペランドと修正されたBオペランドの
和をもたらす。和回路20cは、Aオペランド
および修正されたBオペランドと関連するビツ
ト0−5の和を表わす第1の和を決定し、Aオ
ペランドおよび修正されたBオペランドと関連
するビツト6の和を表わす第2の和を決定し、
Aオペランドおよび修正されたBオペランドと
関連するビツト7の和を表わす第3の和を決定
し、第1の和と第2の和を連結して結果を発生
し、この結果と第3の和を連結して最終結果を
出力信号として発生する。この最終結果はAオ
ペランドとBオペランドの和であり、この加算
は命令制御および正則減算制御に基づいて実行
される。 E2 セツトアツプ論理回路14の構成 第2図には、セツトアツプ論理回路14の構
成が示されている。第2図で、セツトアツプ論
理回路14は、第1図に示すようにBオペラン
ドおよび命令制御を受け取る。命令制御には、
バイト(0)加算、バイト(0)減算、バイト
(1)加算、バイト(1)減算、…、バイト(b)加算、バ
イト(b)減算、…、バイト(n)加算、バイト(n)減算
が含まれる。BオペランドにはB0、B1、…、
Bb、…、およびBnが含まれる。第2図の命令
制御は第1のORゲート・グループ14a,1
4b,14c,14dと、第1の排他的OR
(XOR)ゲート・グループ14eないし14h
を活動化する。第1のORゲート・グループ1
4aないし14dの出力はNORゲート・グル
ープ14iないし14Lの入力を活動化する。
NORゲート・グループ14iないし14lの
出力は第1のANDゲート・グループ14m,
14n,14p,14qの入力を活動化する。
ANDゲート14m,14n,14p,14q
の出力はXORゲート14eないし14hの入
力を活動化する。最後に、BオペランドB0−
Bnは第1のANDゲート・グループ14m,1
4n,14p,14qのそれぞれの入力を活動
化する。XORゲート14eないし14hの出
力は修正されたBオペランドB0# −Bn# であ
る。 動作時には、第2図のセツトアツプ論理回路
14はBオペランドB0−Bnおよび命令制御に
応答し、命令制御に応じてBオペランドB0−
Bnを修正して、修正されたBオペランドB0#
−Bn# を発生する働きをする。 E3 セツト/マスク論理回路18の構成 第3図には、セツト/マスク論理回路18の
構成が示されている。第1図に示すように、セ
ツト/マスク論理回路は命令制御および正則減
算制御を受け取つて、マスク出力信号、セツト
出力信号および桁上げ(Cin)出力信号を発生
する。第3図は、命令制御はORゲート18(1)
ないし18(n)に入力される。これらのORゲー
ト18(1)ないし18(n)の出力はセツト出力信号
およびマスク出力信号、セツト0、マスク0、
セツト1、マスクb−1、セツトb、マスクn
−1である。桁上げ出力信号(Cin)はORゲ
ート18(n)から出力される。 動作時には、セツト/マスク論理回路18
は、対応する2つの先行データ・バイトが算術
演算を施されているときに、先行バイトから次
のバイトに桁上げを繰り越させ、または桁上げ
の繰越しを禁止し、または、桁上げの繰越しに
関連して「どちらでもよい」状態を活動化す
る。たとえば、2組の2進データB0−B3と
B0′−B3′を含む以下の加算演算を考えてみる。 B0 B1 B2 B3 B0′ B1′ B2′ B3′ セツト(2)=1かつマスク(2)=0の場合(ただ
し、2は第1および第2の組の2進データB2
とB2′の第3データ・バイトを表わす)、演算
B3+B3′を実行するとき、この演算から桁上げ
「1」が正常に生じるなら、セツト(2)=1によ
る演算の本来の順序がどうであれ、桁上げ
「1」は次のデータ・バイトB2およびB2′に強
制的に繰り越される。この桁上げの強制では、
B2/B2′演算でそのような桁上げが必要かどう
かにかかわらず、演算B2+B2′で「1」を考慮
する必要がある。しかし、セツト(2)=0かつマ
スク(2)=1の場合は、次のデータ・バイトB2
およびB2′に桁上げ「1」を繰り越すことが禁
止される。この桁上げの禁止により、演算B2
+B2′で「1」を考慮することが完全に妨げら
れる。セツト(2)=0かつマスク(2)=0の場合
は、桁上げ「1」は、演算の本来の順序に応じ
て次のバイトに桁上げされたり、桁上げされな
かつたりする。すなわち、桁上げが生じる場合
は次のバイトに繰り越されるが、桁上げが生じ
なかつた場合は次のバイトに繰り越されない。 E4 特別加算回路20の構成 次に第4図には、特別加算回路20の構成が
示されている。第4図は、補助関数回路20
a、擬似桁上げ回路20bおよび和回路20c
の構成は、それぞれブール式を使つて記述する
ことができる。 補助関数回路20aは以下のブール式で記述
される。 m=(b×8)−1 ただし、bはバイトの数に対応する。 Ji−1=Mi−1T(i+1,m)(Tm+1+
SETb) Ki−1=Mi−1G# (i,m) +Hi−1(T(i+1,m) (Tm+1+SETb))′G# (i,m)′ Yi−1=Hi−1G# (i,m)′;and Ei−1=Mi−1(G# (i,m)+
Ti′MASKb) 擬似桁上げ回路20bは以下のブール式で記
述される。 ブール式: S(m+1,z) =MASKb′G# (m+1,z)+MASKb′T
(m+2,z+1) S(z+1,k)+SETb 和回路20cは以下のブール式で記述され
る。 (1) SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Ei−1)S(ml+1,z)′ ただし、Ji−1、Ki−1、S(m+1,z)、
Yi−1、Ei−1およびS(m+1,z)′は、
上記の擬似桁上げ回路20bおよび補助関数回
路20aを表わす式で定義されている。上記の
ブール式(1)は、加算を施されている2つの各デ
ータ・バイトに関連する最初の6ビツト(0−
5)の和を表わす。 (2) SUMi+6 =(Hi6′Gi+7SETb′+Hi+6Ti+7′ +Hi+6′Ti+7SETb+Hi+6′Ti+7Ti +8+Hi+6Gi−7′Ti+8′SETb′)S(i +8,i+15)+(Hi+6′Gi+7+Hi+6Gi +7′)S(i+8,i+15)′ 加算を施されている2つの各データ・バイト
に関連するビツト6、すなわち、ビツト6、
14、22等については、上記ブール式(2)を使用す
る(ただし、i=0,8,16,…)。 (3) SUMi+7 =(Hi+7Ti+8′SETb′+Hi+7′Ti +8+Hi+7′SETb)S(i+8,i+15) +Hi +7S(i+8,i+15)′ 加算を施されている2つの各データ・バイト
に関連するビツト7、すなわち、ビツト7、
15、23等については、上記ブール式(3)を使用す
る。ただし、i=0、8、16…である。 Hi、Ti、Gi等、上記で定義されていない他
の変数は、本明細書の付録1に記載された式(1)
ないし(3)の証明で完全に定義されている。 第4図で、補助関数回路20aは以下の回
路、すなわちTi−1回路20a1、Gi−1回
路20a2、Hi−1回路20a3、Mi−1回
路20a4、G# (i,m)回路20a5、T
(i,m)回路20a6、Ji−1回路20a7、
Ki−1回路20a8、Yi−1回路20a9、
およびEi−1回路20a10を含んでいる。
Ti−1回路20a1、Gi−1回路20a2、
Hi−1回路20a3およびMi−1回路20a
4は、それぞれAオペランド・バイト(Ai)
および修正されたBオペランド・バイト(Bi)
に応答する(すなわち、直接接続されている)。
G# (i,m)回路20a5は、Ti−1回路
20a1とGi−1回路20a2に応答する。
T(i,m)回路20a6は、Ti−1回路20
a1のみに応答する。Ji−1回路20a7は、
T(i,m)回路20a6、Ti−1回路20a
1、Mi−1回路20a4、およびセツト/マ
スク論理回路18からのセツト出力信号に応答
する。Ki−1回路20a8は、G# (i,m)
回路20a5、T(i,m)回路20a6、Hi
−1回路20a3、Mi−1回路20a4、Ti
−1回路20a1、およびセツト/マスク論理
回路18からのセツト出力信号に応答する。
Yi−1回路20a9は、G# (i,m)回路
20a5とHi−1回路20a3に応答する。
最後に、Ei−1回路20a10は、Mi−1回
路20a4、G# (i,m)回路20a5、
Ti−1回路20a1、およびセツト/マスク
論理回路18からのマスク出力信号に応答す
る。 第4図で、擬似桁上げ回路20bは、T(i,
m)回路20a6、G# (i,m)回路20a
5、セツト/マスク論理回路18からのセツト
出力信号およびマスク出力信号に応答するS
(m+1,z)回路20b1から成る。 第4図で、和回路20cは、バイト(0)に
ついての和、バイト(1)についての和…、バイト
(b)についての和、…、およびバイト(n)について
の和の各部分に分割される。したがつて、Aオ
ペランドおよび修正されたBオペランドを構成
する個々のバイトが加算/減算またはバイト加
算/減算を施されていることが理解できる。 第5図には、第4図のTi−1回路20a1、
Gi−1回路20a2、Hi−1回路20a3お
よびMi−1回路20a4の各々を表わす単一
構成が示されている。Ti−1回路はTi−1信
号を発生し、Gi−1回路はGi−1信号を発生
し、Hi−1回路はHi−1信号を発生し、Mi−
1回路はMi−1信号を発生する。第5図で、
ANDゲート20a(1)、ORゲート20a(2)、排
他的OR(XOR)ゲート20a(3)はそれぞれ前
のAオペランドAi−1および前の修正された
BオペランドBi−1を受け取る。これらの各
ゲートの出力は、それぞれGi−1信号、Ti−
1信号、およびHi−1信号を発生する。XOR
ゲート20a(3)の出力はXORゲート20a(4)
の入力に接続され、XORゲート20a(4)の他
方の入力はORゲート20a(5)の出力に接続さ
れている。ORゲート20a(5)の入力は、それ
ぞれ現在のAオペランドAiおよび修正された
BオペランドBiを受け取る。XORゲート20
a(4)の出力はMi−1信号である。 第6図には、第4図のG# (i,m)回路2
0a5およびT(i,m)回路20a6の各々
を表わす単一構成が示されている。G# (i,
m)回路20a5およびT(i,m)回路20
a6は、Ti−1回路20a1およびGi−1回
路20a2の出力を受け取る。Ti−1回路2
0a1の出力は、信号発生の対象となる考慮中
のビツト位置に応じてTi−1信号、Ti信号、
Ti+1信号、Ti+2信号等になる。Gi−1回
路20a2についても同じことが当てはまる。
第6図で、Gi信号およびGi+1信号は、ORゲ
ート20a(6)に直接入力される。Ti+1信号
およびTi+2信号はANDゲート20a(7)に入
力され、その出力がORゲート20a(6)に入力
される。Ti+1信号およびTi+2信号はAND
ゲート20a(8)に入力され、その出力がGi+
3信号と共にANDゲート20a(9)に入力され、
ANDゲート20a(9)の出力はORゲート20a
(6)に入力される。Ti+1信号、Ti+2信号、
Ti+3信号は、ANDゲート20a(10)でAND
演算されて合成Ti信号を発生し、合成Ti信号
はさらにANDゲート20a(11)で対応するGi+
4信号とAND演算され、その出力がORゲート
20a(6)に入力される。以下、自明のように進
行する。すなわちTi信号はAND演算されて合
成Ti信号を発生し、合成Ti信号は対応するGi
信号とAND演算され、その出力がORゲート2
0a(6)に入力される。ORゲート20a(6)の出
力はG# (i,m)であり、これは第4図のG
# (i,m)回路20a5の出力である。さら
に、Ti、Ti+1、Ti+2、Ti+3、…、Tm
−1、Tm等のすべてのTi信号がANDゲート
20a(12)に入力される。ANDゲート20a(12)
の出力はT(i,m)であり、これは第4図の
T(i,m)回路20a6の出力である。 第7図には、第4図のJi−1回路20a7、
Yi−1回路20a9およびEi−1回路20a
10の各々を表わす単一構成が示されている。
第4図で、Ji−1回路、Yi−1回路およびEi−
1回路はすべて以下の信号、すなわちT(i,
m)回路20a6からのT(i,m)信号、Ti
−1回路20a1からのTi信号、Mi−1回路
20a4からのMi信号、セツト/マスク回路
18からのセツト出力信号、G# (i,m)回
路20a5からのG# (i,m)信号、Hi−
1回路20a3からのHi信号、およびセツ
ト/マスク回路18からのマスク出力信号に応
答する。第7図で、Mi信号はMi−1、T(i,
m)信号はT(i+1,m)、Ti信号はTiおよ
びTm+1、Hi信号はHi−1である。第7図
の出力は信号Ji−1、Yi−1およびEi−1であ
る。第7図の回路は、ORゲートa7(1)、AND
ゲートa7(2)、インバータa7(3)、ANDゲー
トa7(4)、インバータa7(5)、ANDゲートa
7(6)、ORゲートa7(7)およびANDゲートa7
(8)を含んでいる。 第8図には、第4図のKi−1回路20a8
の構成が示されている。第8図で、Ki−1回
路20a8は以下の信号、すなわちT(i,m)
回路20a6(T(i+1,m))からのT(i,
m)信号、Ti−1回路20a1(Tm+1)か
らのTi信号、Mi−1回路20a4(Mi−1)
からのMi信号、セツト/マスク回路18から
のセツト出力信号、G# (i,m)回路20a
5(G# (i,m))からのG# (i,m)信
号、およびHi−1回路20a3(Hi−1)か
らのHi信号に応答する。第8図からの出力は
Ki−1信号である。第8図のKi−1回路20
a8は、ORゲートa8(1)、NANDゲートa8
(2)、ANDゲートa8(3)、ORゲートa8(4)、イ
ンバータa8(5)およびANDゲートa8(6)を含
んでいる。 第9図には、第1図および第4図の擬似桁上
げ回路20bに関連するS(m+1,z)回路
20b1の構成が示されている。第9図で、S
(m+1,z)回路20b1は以下の信号、す
なわちCin、第1図のセツト/マスク論理回路
18からのセツト出力信号およびマスク出力信
号、第4図のG# (i,m)回路20a5から
の出力信号、および第4図のT(i,m)回路
20a6からの出力信号に応答する。第9図
で、G# (i,m)信号は信号G# (m+1,
z)として現われ、G# (z+1,n)信号お
よびT(i,m)信号は信号T(m+2,z+
1)、T(z+2,n)として現われる。第9図
のS(m+1,z)回路20b1の出力はS(m
+1,z)である。第9図のS(m+1,z)
回路20b1は、インバータb1(1)、ANDゲ
ートb1(2)、ANDゲートb1(3)、ORゲートb
1(4)、ANDゲートb1(5)およびORゲートb1
(6)を含んでいる。 第10図、第11図および第12図には、第
4図の和回路20cの構成が示されている。第
4図で、和回路20cは補助関数回路20aお
よび擬似桁上げ回路20bから出力信号を受け
取り、それに応答して、AオペランドおよびB
オペランドの加算の「結果」を発生することに
留意されたい。「結果」は、上述し、かつ以下
に繰り返す和の式によつて定義される。SUMi
−1は第10図の出力信号であり、下記の式(1)
に現われ、SUMi+6は第11図の出力信号で
あり、下式(2)に現われ、SUMi+7は第12図
の出力信号であり、下式(3)に現われる。 (1) SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ ただし、Ji−1、Ki−1、S(m+1,z)、
Yi−1、Ei−1およびS(m+1,z)′は、
上記で擬似桁上げ回路20bおよび補助関数回
路20aを表わす式によつて定義されている。
上記のブール式(1)は、加算を施されている2つ
の各データ・バイトと関連する最初の6ビツト
(0−5)の和を表わす。 (2)SUMi+6= (Hi+6′Gi+7SETb′+Hi+6Ti +7′+Hi+6′Ti+7SETb+Hi+6′Ti +7Ti+8+Hi+6Gi+7′Ti +8′SETb′)S(i+8,i+15)+(Hi+
6′Gi +7+Hi+6Gi+7′)S(i+8,i+
15)′ 加算を施されている2つの各データ・バイト
に関連するビツト6、すなわち、ビツト6、
14、22等については、上記のブール式(2)を使用
する(ただし、i=0,8,16,…)。 (3) SUMi+7 =(Hi+7Ti+8′SETb′ +Hi+7′Ti+8+Hi+7′SETb)S(i +8,i+15)+Hi+7S(i+8,i+
15)′ 加算を施されている2つの各データ・バイト
と関連するビツト7、すなわち、ビツト7、
15、23等については、上記のブール式(3)を使用
する。(ただし、i=0,8,16,…)。 第10図では、ORゲートc1、ANDゲート
c2、ORゲートc3、ORゲートc4、イン
バータc5およびANDゲートc6を含む回路
から、結果SUMi−1が生成される。ORゲー
トc1は第7図および第8図の回路からそれぞ
れJi−1信号およびKi−1信号を受け取り、
ANDゲートc2およびインバータc5は第9
図の擬似桁上げ回路20bからS(m+1,z)
信号を受け取る。ORゲートc4は第7図の回
路からYi−1信号およびEi−1信号を受け取
る。ANDゲートc2およびc6はORゲートc
3に供給され、ORゲートc3はSUMi−1出
力信号を発生する。 第11図では、インバータc7ないしc1
2、ANDゲートc13ないしc19、ORゲー
トc20と21、ANDゲートc22と23、
および出力和信号SUMi+6を発生するORゲ
ートc24を含む回路から、結果SUMi+6が
生成される。インバータc7はセツト出力信号
を受け取り、インバータc8ないしc11は第
4図のTi−1回路20a1、Gi−1回路20
a2、Hi−1回路20a3からそれぞれTi、
Gi、Hi出力信号を受け取る。インバータc1
2は第9図の擬似桁上げ回路20b1からS
(i+8,i+15)出力信号を受け取る。 第12図では、インバータc24ないしc2
7、ANDゲートc28ないしc30、ORゲー
トc31、ANDゲートc32とc33、およ
び出力和信号SUMi+7を発生するORゲート
c34を含む回路から、結果SUMi+7が生成
される。インバータc24はセツト/マスク論
理回路18からセツト出力信号を受け取り、イ
ンバータc25とc28は第4図のTi−1回
路20a1およびHi−1回路20a3からそ
れぞれTiおよびHi出力信号を受け取る。イン
バータc27は第4図および第9図の擬似桁上
げ回路20b1からS(i+8,i+15)出力
信号を受け取る。 E5 全体の動作 次に、図面の第1図を参照しながら、本発明
の並列加算機構の演算の機能的説明を行なう。 第1図には、本発明の並列加算機構が示され
ている。第1図の並列「バイト」加算機構によ
り下記の4種類の演算が実行される。 1 正則加算 2 正則減算 3 バイト加算 4 バイト減算 この考察では、2つのオペランドAおよびB
を想定する。各オペランドは長さ32ビツトであ
るが、32ビツトのオペランドに関して以下で引
き出されるどのような結論も、他の任意の幅の
オペランドに関しても引き出すことができる。
オペランドAおよびBは以下のように表わされ
る。 A=(A0 A1 A2…A29 A30 A31) B=(B0 B1 B2…B29 B30 B31) 第1図で、32ビツトの「A」オペランドおよ
び32ビツトの「B」オペランドについて以下の
演算が実行される。 1 正則加算 A+B=(A0 A1 A2…A29 A30 A31) +(B0 B1 B2…B29 B30 B31) ただし、「+」は加算を示す。 2 正則減算 A−B=(A0 A1 A2…A29 A30 A31) −(B0 B1 B2…B29 B30 B31) ただし、「−」は減算を示す。 3 バイト加算“[A+B]バイト1” AオペランドおよびBオペランドはそれぞ
れ複数のバイトを含む。Aオペランドおよび
Bオペランドは幅32ビツトなので、Aオペラ
ンドに4バイト、Bオペランドに4バイト、
すなわち、バイト0、1、2、3がある。バ
イト0は最上位バイトであり、バイト3は最
下位バイトである。以下の考察では、記号
「||」は「と連結される」という意味を有
するものとする。バイト1(第2のバイト)
に関してバイト加算が実行される場合、以下
の演算が実行される。 [A+B]byte1=[A0 A1…A7] ||[A8 A9…A15] +[B8 B9…B15]||[A16 A17…A31] この演算では、Aの第1バイトが、Aの第
3バイトおよび第4バイトと連結されたAお
よびBの第2バイトの加算と連結される。他
の任意のバイトについても同じ演算を実行す
ることができる。 4 バイト減算“[A−B]バイト1” 上記3のバイト加算と同様、バイト1、す
なわち、2番目のバイトについてバイト減算
が実行されるものとする。 [A−B]byte1=[A0 A1…A7] ||[A8 A9…A15] −[B8 B9…B15]|| [A16 A17…A31] この演算では、Aの第1バイトが、Aの第
3および第4バイトと連結されたAの第2バ
イトからのBの第2バイトの減算と連結され
る。同様に、他の任意のバイトについても同
じ演算を実行することができる。 第1図で、並列加算機構は上記4種類の演算
の各々を実行する。Aオペランドはレジスタ1
0に記憶され、Bオペランドはレジスタ12に
記憶される。AオペランドおよびBオペランド
は、命令制御および正則減算制御を含む一組の
命令と共に、本発明の並列加算機構に入力され
る。セツトアツプ論理回路14はBオペランド
を受け取り、Bオペランドを修正し、修正され
たBオペランドB# を発生し、修正されたBオ
ペランドB# はレジスタ16に記憶される。B
オペランドは、実行される特定の演算に特有の
方式でセツトアツプ論理回路14によつて修正
される。たとえば、バイト加算演算が実行され
る場合は、Bオペランドはバイト加算演算に特
有の第1の方式で修正され、一方、バイト減算
が実行される場合は、Bオペランドはバイト減
算演算に特有の第2の方式で修正される。した
がつて、Aオペランドおよび修正されたBオペ
ランドB# が特別加算回路20に入力される。
セツトアツプ論理回路14の詳細な機能につい
ては後で説明する。セツトb/マスクb論理回
路18はセツト出力信号SETb;マスク出出力
信号MASKbおよび桁上げ出力信号Cinを発生
する。これらは、上記4種類の演算を実行する
ため特別加算回路20で必要とされる情報であ
る。セツト出力信号SETbおよびマスク出力信
号MASKbを使つて、先行バイトから生じる桁
上げを、処理を受ける次のバイトに繰り越さ
せ、先行バイトから生じる桁上げが次のバイト
に繰り越されるのを禁止し、または、演算の本
来の順序に応じてそのような桁上げを強制した
り禁止したりする。減算演算(A−B)が実行
されているときは、桁上げ出力信号「Cin」は
「1」にセツトされる。減算演算はA+B′+1
という演算を実行することにより実行される。
ただし、「B′」はBの逆数であり、「1」は桁
上げ出力信号「Cin」である。差A−Bはこの
演算の結果から最初の最上位の2進ビツトを取
り去つたものである(たとえば、1001が結果で
ある場合、差は001になり、最初の「1」は無
視される)。次に図面の第3図を参照して、セ
ツト/マスク論理回路18の詳細な機能につい
て説明する。特別加算回路20はAオペランド
および修正されたBオペランドの各バイトを一
度に1バイトずつ処理する。特別加算回路20
はAオペランド、修正されたBオペランドB
# 、マスク出力信号、セツト出力信号および桁
上げCin出力信号に応答して上記4種類の演算
の1つを実行し、処理された結果をもたらす。
下記でセツトアツプ論理回路に関して述べる第
1の方式でBオペランドが修正される場合、処
理された結果はバイト加算演算を反映し、下記
でセツトアツプ論理回路に関して述べる第2の
方式でBオペランドが修正される場合は、処理
された結果はバイト減算演算を反映する。 E6 セツトアツプ論理回路14の動作 次に図面の第2図を参照して、セツトアツプ
論理回路14の機能的動作について説明する。 セツトアツプ論理回路14はBオペランドB
から修正されたBオペランドB# を発生し、B
# は特別加算回路20に入力される。B# の正
確な形式は、上記4種類の演算のどれが実行さ
れるかによつて変わる。したがつて、セツトア
ツプ論理回路14は、機能上の視点から、上記
4種類の演算の各々についてオペランドBから
オペランドB# を以下のように発生する。 1 正則加算 BオペランドBを使つて正則加算を実行する
場合、B# =Bである。修正されたBオペラン
ドB# を発生するとき、Bオペランドは全く変
更されない。 2 正則減算 BオペランドBを使つて正則減算を実行する
場合、B# =B′である。ただし、B′はBのビ
ツトごとの反転である。 3 バイト加算 Bオペランドの特定のバイトについてバイト
加算を実行する場合、加算演算に関係するBの
特定バイトを除くBのすべてのバイトを0にす
ることにより、B# がBから生成される。たと
えば、32ビツトのBオペランド、B=[B0,
B1…B31]の場合、バイト0、1、2、3の
2番目のバイトであるバイト1が加算を施され
るとき、B# は次のようになる。 B# =[00000000]|| [B8 B9…B15]||[000…0] この例では、BからB# を発生するために
は、Bの最初のバイトを0にし、B# の2番目
のバイトはBの2番目のバイトに等しく、Bの
3番目および4番目のバイトを0にする。同様
に、他の任意のバイトについても同じ演算を行
なうことができる。 4 バイト減算 BオペランドBの特定のバイトについてバイ
ト減算を実行する場合、減算演算に関係するB
の特定バイトを除くBのすべてのバイトを0に
することにより、B# がBから生成される。さ
らに、Bのその特定バイトはビツト毎の反転操
作を施される。たとえば、32ビツトのBオペラ
ンドの場合、B=[B0,B1…B31]である。バ
イト0、1、2、3の2番目のバイトであるバ
イト1が減算を施されるとき、B# は次のよう
になる。 B# =[00000000]|| [B8′ B9′…B15′]||[000…0] ただし、B′はBの反転である。 この例では、BからB# を発生するため、B
の最初のバイトを0にし、Bの2番目のバイト
を反転し、Bの3番目および4番目のバイトを
0にする。同様に、他の任意のバイトに関して
も同じ演算を行なうことができる。 第1図の「命令制御」がセツトアツプ論理回
路14に入力される。「命令制御」は特定の命
令を含み、この特定命令は、セツトアツプ論理
回路14に上記4種類の演算の1つを実行する
よう指示する。セツトアツプ論理回路14にど
んな命令が入力されるかに応じて、セツトアツ
プ論理回路14は、上記4種類の関数演算の1
つを使つて、BからB# を計算する。 E7 セツト/マスク論理回路18の動作 次に図面の第3図を参照しながら、セツト/マ
スク論理回路18の関数演算について説明する。 セツト/マスク論理回路の出力信号はSETb出
力信号、MASKb出力信号および桁上げ「Cin」
出力信号である。Aオペランドおよび修正された
Bオペランドの各バイト(最下位バイトを除く)
毎に、セツトSETb出力信号およびマスク
MASKb出力信号が存在する。この例では、バイ
トはバイト0、1、2、3である。バイト0ない
し2に対しては、SETbおよびMASKbを供給し
なければならず、バイト3に対しては、「Cin」
桁上げ出力信号を供給しなければならない。第3
図では、SETb、MASKbおよびCinは次のよう
に計算される。 1 正則加算の場合は、すべてのbに対して
MASKb=SETb=Cin=0である。 2 正則減算の場合は、すべてのbに対して
MASKb=SETb=0であり、Cin=1であ
る。 3 バイト1についてのバイト加算の場合、
Cin=0、MASK0=1、MASK2=0、
SET0=0、SET1=0、かつbに対して
SETb=0である。他の任意のバイトについ
ても同様である。 4 バイト1についてのバイト減算の場合、
Cin=0、MASKO=1、MASK1=0、
MASK2=0、SET0=0、SET1=1、
SET2=0である。バイト0および2の場合
も同様である。バイト3の場合は、Cin=
1、MASK2=1であり、他のすべては0で
ある。 機能上の見地から、SET、MASKおよび
Cin出力信号が上記のように計算されるのは
以下の理由による。 a 正則加算の場合、演算に応じて桁上げが
自然に生じることによる桁上げの伝播が行
なわれるように、すべてのマスクおよびセ
ツトおよびCinを0に等しくしなければな
らない。 b 正則減算の場合、演算に応じて桁上げが
自然に生じることによる桁上げの伝播が行
なわれるように、すべてのマスクおよびセ
ツトを0に等しくしなければならない。
Cinは1に等しくなければならない。修正
されたBオペランド(この場合は、Bの1
の補数)に1(Cin=1)を加算すると、
B# は−Bに等しくなる。したがつて、正
則減算は(A+(−B))になる。たとえ
ば、A=110、B=101で、A−Bが演算で
あると仮定する。したがつて、A−B=
001である。すなわち、110(A)+010(B′)
+1(Cin)=1001となり、最初の「1」を
無視すると、「001」が残る。 c バイト加算の場合、加算に関係するバイ
トの桁上げは、上位バイトに影響を及ぼさ
ないように、禁止しなければならない。そ
うするには、上位バイトのマスク
(MASK0)を1に等しくする。 d バイト減算の場合、減算に関係するバイ
トへの桁上げは、そのバイトに対するセツ
ト(SET1)を1に等しくすることにより
セツトしなければならない。Bオペランド
の関係バイトの1の補数が修正されたBオ
ペランド中に提示されるので、次にバイト
減算が実行される。また、関係バイトの桁
上げは、上位バイトに影響を及ぼさないよ
うに、禁止しなければならない。そうする
には、上位バイトのマスク(MASK0)を
1に等しくする。 E8 特別加算回路20の動作 次に第4図ないし第12図を参照して、特別
加算回路20の関数演算について説明する。 補助関数回路20aは、Aオペランド「A」、
修正されたオペランド「B# 」、SETb、およ
びMASKbを受け取り、A、B# 、SETbおよ
びMASKbに応答して以下の出力信号を発生す
るための以下の回路を含んでいる。すなわち、
それぞれTi−1出力信号、Gi−1出力信号お
よびHi−1出力信号を発生するためのTi−1、
Gi−1およびHi−1回路、それぞれJi−1出
力信号、Ki−1出力信号、Yi−1出力信号お
よびEi−1出力信号を発生するためのJi−1、
Ki−1、Yi−1およびEi−1回路を含んでい
る。これらの出力信号は和回路20cが受け取
る。 第1図、第4図および第9図の擬似桁上げ回
路20b,20b1は、セツト/マスク論理回
路18のセツト出力信号およびマスク出力信号
に応じて、かつ第4図のGi(m)回路20a5お
よびTi(m)回路20a6の出力信号(それぞれ
Aオペランドおよび修正されたBオペランドの
関数である)に応じて、セツト/マスク論理回
路18の桁上げ(Cin)出力信号(第9図)を
変更し、その変更を表わすS(m+1,z)出
力信号を発生する。 和回路20cは、セツト/マスク論理回路1
8からSETb出力信号、擬似桁上げ回路20b
からS(m+1,z)出力信号、補助関数回路
20aから出力信号を受け取り、補助関数回路
20aからの出力信号、擬似桁上げ回路20b
からの出力信号、およびセツト/マスク論理回
路18からのセツト出力信号に示された「変
数」を使つて、加算または減算を施されている
Aオペランドおよび修正されたBオペランドの
特定のバイトの和を表わす結果を発生する。結
果は以下の和の式に従つて生成される。 (1) SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ ただし、Ji−1、Ki−1、S(m+1,1)、
Yi−1、Ei−1およびS(m+1,z)′は、
擬似桁上げ回路20bおよび補助関数回路20
aを表わす式によつて定義される。上記ブール
式は、加算を施されている2つの各データ・バ
イトに関連する最初の6ビツト(0−5)の和
を表わす。 (2) SUMi+6 =(Hi+6′Gi+7SETb′+Hi+6Ti +7′+Hi+6′Ti+7SETb+Hi+6′Ti +7Ti+8+Hi+6Gi+7′Ti +8′SETb′)S(i+8,i+15) +(Hi+6Gi +7+Hi+6Gi+7′)S(i+8,i +15)′ 加算を施されている2つの各データ・バイト
に関連するビツト6、すなわち、ビツト6、
14、22等については、上記のブール式(2)を使用
しなければならない(ただし、i=0,8,
16,…)。 (3) SUMi+7 =(Hi+7Ti+8′SETb′+Hi+7′Ti +8+Hi+7′SETb)S(i+8,i+15) +Hi+7S(i+8,i+15)′ 加算を施されている2つの各データ・バイト
に関連するビツト7、すなわち、ビツト7、
15、23等については、上記のブール式(3)を使用
しなければならない(ただし、i=0,8,
16,…)。 動作時には、特別加算回路20は、Aオペラ
ンド、セツトアツプ論理回路14の出力および
セツト/マスク論理回路18の出力に応答し
て、加算または減算を施されるAオペランドお
よび修正されたBオペランドに関連する特定バ
イトのビツト0−5に対して演算を実行し、A
オペランドおよび修正されたBオペランドの特
定バイトのビツト6に対して演算を実行し、A
オペランドおよび修正されたBオペランドの特
定バイトのビツト7に対して演算を実行し、A
オペランドおよび修正されたBオペランドの特
定バイトのビツト0−5、ビツト6およびビツ
ト7に関連する演算の結果を連結する。連結さ
れた結果は、Aオペランドおよび修正されたB
オペランドに関連する特定バイトの和または差
を表わす。 前述の演算は、補助関数および擬似桁上げに
よつて実現され、適当な和の式に収斂する。こ
の擬似桁上げは、従来技術で記述された桁上げ
と等価でもなく、また等しくもない。この擬似
桁上げは、桁上げについての従来の記述と比較
すると、項が少なくなり、したがつて、実施す
る際のハードウエアおよび遅延がより少なくな
る。さらに、擬似桁上げは、従来の桁上げと比
較して、余分な項を追加することなく、従来の
桁上げよりも多くの関数を計算する。関数に対
する遅延を均衡させるため、補助関数は擬似桁
上げをビツト内に発生せず、すなわち、擬似桁
上げ発生のちようど1段階後に和を発生する。
和の式が擬似桁上げおよび補助関数を使用する
ものとすると、和の式は従来の公式とは異なる
が、付録1で証明するように必要とされる関数
に対する等価性を保持する。前述した加算/減
算、バイト加算/減算の公式は実行時間が一層
速く、並列方式で実行され、従来の和の形式よ
りも多くの関数を計算する。和の式はパラメー
タ方程式であり、これらの式がオペランドの特
定の長さによつて制限されないこと、すなわ
ち、擬似桁上げ回路20bから出力される擬似
桁上げが、バイト加算およびバイト減算の特別
関数に必要とされるバイト境界に対して生成さ
れる場合には、和の式を任意の長さのオペラン
ドと共に使用できることを意味する。さらに、
技術に依存せず、したがつて新しい公式が、何
らの制限もなく任意の技術で実現できることが
暗示される。 E9 理論的な補足 1.0 表記法 1 V=排他的OR 2 B′=Bの1の補数 3 SUMi−1=ビツト位置i−1における
和 2.00 序論 考察を容易にするため、32ビツトの加算回路を
想定する。定義により、バイト加算を含む32ビツ
トの加算回路は、32ビツトの加数中の4バイトの
1つを、32ビツトの被加数中のそれと対応するバ
イトに加算することができるものである。加数の
他のバイトは0であり、加算に関係しない被加数
のバイトは変更を加えないで和の出力に移さなけ
ればならない。 したがつて、和に移すべき被加数の未変更のバ
イトについては、加算に関係するバイトからの桁
上げを禁止しなければならないことになる。ま
た、減算が行なわれる場合は、関係するバイトへ
の桁上げを「1」の状態にセツトしなければなら
ない。mビツト加算回路という一般的な場合につ
いても、同様の考察が適用できる。 3.0 基礎知識 (3) G# (i,m) =Gi+Gi+1+Ti+1Gi+2 +Ti+1Ti+2Gi +3+……+Ti+1Ti+2Ti+3…… Tm−1Gm (3.0) T(i,m)=TiTi+1Ti+2…… Tm−1Tm Ti=Ai+Bi,Gi=AiBiの場合、 (3.1) Hi=AiVBi;かつ (3.2) Mi=HiVTi+1 上記のように仮定すると、適当な代入によ
り、下記の一組の式が加算と等価であることが
証明できる。 (3.3) SUMi−1 =Mi−1G# (i,m)+Mi−1T(i +1,m+1)S(m+1,z)+Hi −1T(i+1,m+1)′G# (i,m)′ +Hi−1G# (i,m)′S(m+1,z)′ (3.4) S(m+1,z) =G# (m+1,z)+T(m+2,z+1) S(z+1,k) 4.0 桁上げのマスキング マスキングの場合は、バイトへの桁上げは、
強制的に「0」の状態にされるものと考えられ
る。加算に関係するバイトに隣接する上位のバ
イトへの桁上げは、和にもたらされる値に影響
を及ぼさないようにマスクしなければならな
い。 和の式(3.3)は以下の形に書くことができ
る。 (3.3)=>SUMi−1=Zi−1 +Mi−1T(i+1,m+1)S(m+1,z) +Hi−1G# (i,m)′S(m+1,z)′ ただし、 Zi−1=Mi−1G# (i,m) +Hi−1T(i+1,m+1)′G# (i,m)′ =Mi−1G# (i,m)+Di−1G# (i,m)′ ただし、 Di−1=Hi−1T(i+1,m+1)′ さらに、 SUMi−1=Zi−1+Wi −1S(m+1,z)+Yi−1S(m+1,z)′ ただし、 Wi−1=Mi−1T(i+1,m+1) Yi−1=Hi−1G# (i,m)′ 最後に、 (4.1) SUMi−1 =(Wi-1+Zi-1)S(m+1,z) +(Yi-1+Zi-1)S(m+1,z)′ ただし、 Yi−1+Zi−1=Hi−1G# (i,m)′ +Mi−1G# (i,m)+Di−1G# (i,m)′ =Hi−1G# (i,m)′+Mi−1G# (i,m) +Hi−1T(i+1,m+1)′G# (i,m)′ =Hi−1G# (i,m)′+Mi−1G# (i,m) =Yi−1+Mi−1G# (i,m) バイトの考察が重要であるとすれば、すべての
バイトについてS(m+1,z)が生成されると
想定しなければならない。この考察全体を通じて
の仮定は、Sまたは変更されたSがバイトの境界
上に生成されることである。形式的に言うと、m
=(b×8)−1に対して、bがバイトの列に対応
するような(すなわち、nバイト加算回路の場合
は、b=0,1,2…n−1)S(m+1,z)
が生成される。 桁上げをマスクするときは、擬似桁上げもマス
クしなければならないという要件が式(4.1)に
課される場合、擬似桁上げは強制的に「0」の状
態にされるので、以下の結果になる。 (4.1)=>SUMi−1=Yi−1+Zi−1 しかし、これだけでは桁上げをマスクするには
十分でない。桁上げが0に等しい和と等価になる
ように、和の式を変更しなければならない。以下
の結果が得られる。 定理1:和(SUM)は、 SUMi−1 =(Wi−1+Zi−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ ただし、 Ei−1=Mi−1(G# (i,m)+Ti′MASKb) で計算され、加算または桁上げが強制的に「0」
にされる加算と等価である。MASKbは当該のバ
イトに対するマスク状態である(bはバイト番
号)。 証明 事例1: MASKb=‘1'かつS(m+1,z)=‘0'、すな
わち、桁上げをマスクする場合。 SUMi−1 =(Wi−1+Zi−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ =Yi−1+Ei−1 =Hi−1G# (i,m)′+Mi −1(G# (i,m)+Ti′) =Hi−1G# (i,m)′+Hi −1Ti′(G# (i,m)+Ti′) +Hi−1′Ti(G# (i,m)+Ti′) =Hi−1G# (i,m)′+Hi−1Ti′ +Hi−1′TiG# (i,m) =Hi−1(G# (i,m)′+Ti′) +Hi−1′TiG# (i,m) =Hi−1(G# (i,m)Ti)′ +Hi−1′G(i,m) =Hi−1G(i,m)′+Hi−1′G(i,m) =Hi−1VG(i,m) これは、桁上げ=‘0'のときの加算と等価であ
る。 事例2: MASKb=‘0'、すなわち、正則加算の場合。 SUMi−1 =(Wi−1+Zi−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ =(Wi−1+Zi−1)S(m+1,z) +(Yi−1+Mi−1G# (i,m))S(m+1,z)′ =(Wi−1+Zi−1)S(m+1,z) +(Yi−1+Zi−1)s(m+1,z)′ これは、和(SUM)と等価である。 したがつて、グループへの桁上げをマスクさせ
る和の式は次の通りである。 (4.2)SUMi−1 =(Wi−1+Zi−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ 擬似桁上げをマスクして、上記要件を満たすに
は、MASKbを擬似桁上げの式にも適用しなけれ
ばならない。それは次のようになる。 定理2:擬似桁上げは、 (3.4)=> (4.3) S(m+1,z) =MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+
1,k) で計算され、定理1で要求されるようにS
をマスクする。 証明 事例1: MASKb=‘1'、すなわち、桁上げをマスクす
る場合、 S(m+1,z)=MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,k) =0+0 =0 これは、桁上げをマスクするために必要とさ
れる状態である。 事例2: MASKb=‘0'、すなわち、正則加算の場合。 S(m+1,z)=MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,k) =G# (m+1,z) +T(m+2,z+1)S(z+1,k) これが、正則加算の場合の擬似桁上げであ
る。 5.0 桁上げのセツテイング バイト減算の場合は、減算に関係するバイト
への桁上げを「オン」状態にセツトしなければ
ならない。次に、減数の1の補数が加算回路の
入力に与えられる限り、減算が実行される。た
だし、補数を取るのは、減算に関係する減数の
バイトだけである。減数の他のバイトはすべて
0のままでなければならない。 さらに、減算に関係するバイトに隣接する上
位のバイトへの桁上げは、和にもたらされる値
に影響を及ぼさないようにし、マスクしなけれ
ばならない。 ここでは桁上げのセツテイングのみを扱う。
桁上げのマスキングは、前節で考察したものと
同じである。詳しくは、前節を参照されたい。 桁上げをセツトするときは、擬似桁上げもセ
ツトしなければならないという要件が式(4.1)
に課される場合、擬似桁上げは強制的に「1」
の状態にされるので、以下の結果になる。 (4.1)=>SUMi−1=Wi−1+Zi−1 しかし、これだけでは、桁上げをセツトする
には十分でない。桁上げが0に等しい和と等価
になるように、和の式をやはり少し変更しなけ
ればならない。以下の結果が得られる。 定理3:和の式は、 SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Zi−1)S(m+1,z)′ ただし、 Ji−1=Mi−1T(i+1,m)(Tm+1+
SETb) Ki−1=Mi−1G# (i,m)+Hi −1(T(i+1,m)(Tm+1 +SETb))′G# (i,m)′ で計算され、桁上げが強制的に「0」にされる
加算と等価である。SETbは当該のバイトに対
するセツト状態である(bはバイト番号であ
る)。 証明 事例1: SETb=‘1'かつS(m+1,z)=‘1'の場合。 SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Zi−1)S(m+1,z)′ =Ji−1+Ki−1 =Mi−1T(i+1,m)+Mi−1G# (i,m) +Hi−1T(i+1,m)′G# (i,m)′ =Mi−1(T(i+1,m)+G# (i,m)) +Hi−1T(i+1,m)′G# (i,m)′ =Hi−1Ti′(T(i,m)+G# (i,m)) +Hi−1′Ti(T(i+1,m)+G# (i,m)) +Hi−1T(i+1,m)′G# (i,m)′ =Hi−1Ti′+Hi−1T(i +1,m)′G# (i,m)′ +Hi−1′Ti(T(i+1,m)+G# (i,m)) =Hi−1(Ti′+T(i+1,m)′G# (i,
m)′) +Hi−1′Ti(T(i+1,m)+G# (i,m)) =Hi−1(Ti(T(i+1,m)+G# (i,
m))′ +Hi−1′Ti(T(i+1,m)+G# (i,m)) =Hi−1(T(i,m)+G(i,m)′ +Hi−1′(T(i+1,m)+G(i,m)) =Hi−1V(T(i,m)+G(i,m)) これは、桁上げ=‘1'のときの加算と等価で
ある。 事例2: SETb=‘0'、すなわち、正則加算の場合。 SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Zi−1)S(m+1,z)′ =(Mi−1T(i+1,m+1) +Ki−1)S(m+1,z) +(Yi−1+Zi−1)S(m+1,z)′ =(Wi−1+Mi−1G# (i,m) +Hi−1T(i+1,m +1)′G# (i,m)′)S(m+1,z) +(Yi−1+Zi−1)S(m+1,z)′ =(Wi−1+Zi−1)S(m+1,z) +(Yi−1+Zi−1)S(m+1,z)′ これは、加算と等価である。 したがつて、グループへの桁上げをセツトさ
せる和の式は次の通りである。 (5.1) SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Zi−1)S(m+1,z)′ 擬似桁上げをセツトして、上記要件を満たす
には、SETbを擬似桁上げの式にも適用しなけ
ればならない。 定理4:擬似桁上げは式(3.4)で計算され、 (5.2) S(m+1,z) =G# (m+1,z)+T(m+2,z+
1)S(z+1,k) +SETb を生じ、定理3で要求されるようにSをセ
ツトする。 証明 事例1: SETb=‘1'、すなわち、桁上げをセツトする
場合。 S(m+1,z)=G# (m+1,z)T(m +2,z+1)S(z+1,k)+SETb =G# (m+1,z)+T(m +2,z+1)S(z+1,k)+1 =1 これが、桁上げをセツトするために必要とさ
れる状態である。 事例2: SETb=‘0'、すなわち、正則加算の場合。 S(m+1,z)=G# (m+1,z)+T(m +2,z+1)S(z+1,k)+SETb =G# (m+1,z)+T(m +2,z+1)S(z+1,k)+0 =G# (m+1,z)+T(m +2,z+1)S(z+1,k) これが、正則加算の場合の擬似桁上げであ
る。 6.0 和の式 桁上げをセツトおよびマスクする組み合わせ
関数を同じ一組の加算式に適用するには、
MASKbおよびSETが(同じバイトに対して)
互いに排他的であることが必要である。すなわ
ち、MASK0が「オン」の場合は、SET0は
「オン」でなければならず、逆も同様である。
【表】 したがつて、バイト加算の場合は、加数のバ
イト1を被加数のバイト1に加算する場合に、
MASK0を「オン」にしなければならない。
MASK0は、バイト0の和の式に適用すると
き、バイト1からのいかなる桁上げの伝播もバ
イト0に影響を及ぼさないようにする。 さらに、バイト減算の場合は、(前節で述べ
たマスキングおよび桁上げに加えて)減数のバ
イト1を被減数のバイト1から減算する場合
に、SET1を「オン」にしなければならない。
これにより、バイト1への桁上げが強制され、
したがつて、適切な減算が可能になる。 以下の一組の式が得られる。 定理5:一組の式 (6.1) SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ (6.2) S(m+1,z) =MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,
k)+SETb ただし、 m=(b×8)−1であり、bはバイトの列に対
応する。 Ji−1=Mi−1T(i+1,m)(Tm+1,
SETb) Ki−1=Mi−1G# (i,m)+Hi−1(T(i +1,m)(Tm合1+SETb))′G# (i,
m)′ Yi−1=Hi−1G# (i,m)′ Ei−1=Mi−1(G# (i,m)+
Ti′MASKb) は加算、バイト加算またはバイト減算のいずれ
かと等価である。 証明 事例1:すべてのバイトについての正則加算。 SETb=‘0'かつMASKb=‘0'の場合。 S(m+1,z)=MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,
k) +SETb=G# (m+1,z) +T(m+2,z+1)S(z+1,k) これは、加算の場合の擬似桁上げと等価であ
る。 かつ SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ =(M:−1T(i+1,m+1) +Mi−1G# (i,m) +Hi−1T(i+1,m +1)′G# (i,m)′)S(m+1,z) +(Yi−1+Mi−1G# (i,m))S(m+
1,z)′ =(Wi−1+Zi−1)S(m+1,z) +(Yi−1+Zi−1)S(m+1,z)′ これは、加算と等価である。 事例2:バイト減算またはバイト加算 その1:桁上げのマスキング SETb=‘0'かつMASKb=‘1'の場合、 S(m+1,z) =MASKb′G# (m+1,z)+MASKb′T(m +2,z+1)S(Z+1,k)+SETb=0 かつ SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Ei−1)S(m+1,z)′ =Yi−1+Ei−1 これは、グループへの桁上げ=‘0'のときの
和と等価であることが第4.0節で証明された。 その2:桁上げのセツテイング SETb=‘1'かつMASKb=‘0'の場合、 S(m+1,z) =MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,
k) +SETb=G# (m+1,z)+T(m+2,z +1)S(z+1,k)+1=1 かつ SUMi−1=(Ji−1+Ki−1)S(m+1,
z) +(Yi−1+Ei−1)S(m+1,z)′ =Ji−1+Ki−1 これは、グループへの桁上げ=‘1'のときの
和と等価であることが第5.0節で証明された。 バイトbについてバイト加算を実行しなけれ
ばならない場合は、バイトb−1への桁上げを
マスクしなければならない。バイトb−1を除
くすべてのバイトに対しては、SET=MASK
=0であり、バイトb−1に対して、SETb−
1=0およびMASKb−1であることが暗示さ
れる。 バイトbについてバイト減算を実行しなけれ
ばならない場合は、バイトbへの桁上げをセツ
トし、バイトb−1への桁上げをマスクしなけ
ればならない。このことは、バイトbおよびb
−1を除くすべてのバイトに対してSET=
MASK=0を強制することと等価である。バ
イトbに対してはMASKb=0およびSETb=
1であり、バイトb−1に対しては、MASKb
−1=1およびSETb−1=0である。 7.0 境界条件 式(6.1)および(6.2)の実施を試みる場
合、i−1≧m−1のとき問題が発生すること
が理解できる。j>kのときT(j,k)およ
びG# (j,k)に対する定義はないので(第
3節の定義1および2参照)、これらの式は適
用されない。したがつて、バイトのビツト6お
よび7に対して生じるi−1≧m−1のときの
SUMi−1に対して、新しい加算の式を追加し
なければならない。 7.1 ビツト6、14、22等に対する和の式 ビツトi+6(i=0,8,16等)に対する
和の式を得るため、式(3.3)を出発点として
使う。SETb=1、MSKb=1、または両方が
0であるとき、適当な部分が得られるように、
セツトおよびマスクを適用したときの結果を
SETbおよびMASKbと共に式に加える。 (3.3)=> (7.1) SUMi+6 =Mi+6Gi+7+Mi +6Ti+8S(i+8,i+15) +Hi+6Gi+7′Ti+8′+Hi+6Gi +7′S(i+8,i+15)′ =(Mi+6Gi+7+Mi+6Ti+8 +Hi+6Gi+7′Ti+8′)S(i+8,i+15) +(Mi+6Gi+7+Hi+6Gi+7′Ti+8′ +Hi+6Gi+7′)S(i+8,i+15)′ =(Hi+6Ti+7′Gi+7 +Hi+6′Ti+7Gi+7 +Hi+6Ti+7′Ti+8 +Hi+6′Ti+7Ti+8+Hi+6Gi+7′Ti +8′)S(i+8,i+15) +(Hi+6Ti+7′Gi+7 +Hi+6′Ti+7Gi+7 +H+6Gi+7′)S(i+8,i+15)′ =(Hi+6′Gi+7+Hi+6Ti+7′Ti+8+Hi +6′Ti+7Ti+8 +Hi+6Gi+7′Ti+8′)S(i+8,i+15) +(Hi+6′Gi+7+Hi+6Gi +7′)S(i+8,i+15)′ =(Hi+6′Gi+7+Hi+6Ti +7′+Hi+6′Ti+7Ti+8 +Hi+6Gi+7′Ti+8′)S(i+8,i+15) +(Hi+6′Gi+7+Hi+6Gi +7′)S(i+8,i+15)′ SETb=1(すなわち、CIN=1)のとき、
次のような式が得られることが望まれる。 通常の加算式から、 SUMi+6=Hi+6 V Ci+7 =Hi+6 V (Gi+7+Ti+7CIN) =Hi+6 V (Gi+7+Ti+7) =Hi+6 V Ti+7 =Hi+6Ti+7′+Hi+6′Ti+7 したがつて、SETb=1かつS(i+18,i
+15)=1のとき、SUMi+6はMi+6に等し
くなければならない。以下の結果が得られる。 定理6:和は、 (7.2) SUMi+6 =(Hi+6′Gi+7SETb′+Hi+6Ti+7′ +Hi+6′Ti+7SETb +Hi+6′Ti+7Ti+8SETb′ +Hi+6Gi+7′Ti+8′SETb′)S(i +8,i+15)′+(Hi+6′Gi +7+Hi+6Gi+7′)S(i +8,i+15)′ =(Hi+6′Gi+7SETb′+Hi+6Ti +7′+Hi +6′Ti+7SETb +Hi+6′Ti+7Ti+8 +Hi+6Gi+7′Ti+8′SETb′)S(i +8,i+15)+(Hi+6′Gi+7+Hi +6Gi+7′)S(i+8,i+15)′ で計算され、バイトの7番目のビツトに対する
加算、バイト加算またはバイト減算のいずれか
と等価である。 MASKb=1(すなわち、CIN=0)のとき
は、次の式が得られることが望まれる。 通常の加算式から、 SUMi+6=Hi+6 V Ci+7 =Hi+6 V (Gi+7+Ti+7CIN) =Hi+6 V Gi+7 =Hi+6Gi+7′+Hi+6′Gi+7 MASKb=1かつS(i+8,i+15)=0の
とき、結果はすでに、CIN=0に対して望まし
いものであることが式(7.2)から理解できる。
したがつて、和の式のそれ以上の処理は必要で
ない。 証明 事例1: SETb=‘0'かつMASKb=‘0'、すなわち、
正則加算の場合。 S(m+1,z)=MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,
k)+SETb =G# (m+1,z)+T(m +2,z+1)S(z+1,k) これは、加算の場合の疑似桁上げと等価であ
る。 かつ SUMi+6 =(Hi+6′Gi+7SETb′+Hi+6Ti +7′+Hi+6′Ti+7SETb +Hi+6′Ti+7Ti+8 +Hi+6Gi+7′Ti+8′SETb′)S(i +8,i+15) +(Hi+6′Gi+7+Hi +6Gi+7′)S(i+8,i+15)′ =(Hi+6′Gi+7+Hi+6Ti+7′ +Hi+6′Ti+7Ti+8 +Hi+6Gi+7′Ti+8′)S(i+8,i+15) +(Hi+6′Gi+7+Hi+6Gi +7′)S(i+8,i+15)′ これは、ビツトi+6に対する加算と等価で
あり、上記の式(7.1)の最終変形と見なすこ
とができる。 事例2: SETb=‘0'かつMASKb=‘1'、すなわち、
桁上げをマスクする場合。 S(m+1,z) =MASKb′G# (m+1,z) +MASKb′T(m +2,z+1)S(z+1,k)+SETb =0 かつ SUMi+6 =(Hi+6′Gi+7SETb′+Hi+6Ti+7′ +Hi+6′Ti+7SETb+Hi+6′Ti+7Ti +8+Hi+6Gi+7′Ti+8′SETb′)S(i +8,i+15)+(Hi+6′Gi +7+Hi+6Gi+7′)S(i +8,i+15)′ =Hi+6′Gi+7+Hi+6Gi+7′ これは、グループへの桁上げ=‘0'のときの
SUMi+6と等価である。 事例3: SETb=‘1'かつMASKb=‘0'、すなわち、
桁上げをセツトする場合。 S(m+1,z)=MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,
k) +SETb =G# (m+1,z)+T(m+2,z+1)
S(z+1,k)+1 =1 かつ SUMi+6 =(Hi+6′Gi+7SETb′+Hi+6Ti +7′+Hi+6′Ti+7SETb +Hi+6′Ti+7Ti+8+Hi+6Gi+7′Ti +8′SETb′)S(i+8,i+15) +(Hi+6′Gi+7+Hi+6Gi +7′)S(i+8,i+15)′=Hi+6Ti+7′ +Hi+6′Ti+7+Hi+6′Ti+7Ti+8 =Hi+6Ti+7′+Hi+6′Ti+7 これは、グループへの桁上げ=‘1'のときの
SUMi+6と等価である。 定理5と同様の考察により、バイトの7番目
のビツトについてバイト加算、加算および減算
が実行されると結論することができる。 7.2 ビツト7、15、23等に対する和の式 ビツトi+7(i=0、8、16等)に対する
和の式を得るため、式(3.1)を出発点として
使う。次に、SETb=1、MASKb=1、また
は両方が0であるとき、適当な部分が得られる
ように、セツトおよびマスクを適用したときの
結果をSETbおよびMASKbと共に式に加える。 (3.1)=> (7.3) SUMi+7=Mi+7S(i +8,i+15)+Hi+7S(i+8,i+
15)′ SETb=1(すなわち、CIN=1)のとき、
次の式が得られることが望まれる。 通常の加算式から、 SUMi+7=Hi+7 V Ci+8 =Hi+7 V CIN =Hi+7′ したがつて、SETb=1かつS(i+8,i
+15)=1のとき、SUMi+7はHi+7′に等し
くなければならない。下の結果が得られる。 定理7:和は、 (7.4) SUMi+7 =(Mi+7SETb′+Hi+7′SETb)S(i +8,i+15)+Hi+7S(i+8,i+
15)′ =(Hi+7Ti+8′SETb′+Hi+7′Ti +8SETb′+Hi+7′SETb)S(i+8,i +15)+Hi+7S(i+8,i+15)′ =(Hi+7Ti+8′SETb′+Hi+7′Ti+8 +Hi+7′SETb)S(i+8,i+15) +Hi+7S(i+8,i+15)′ で計算され、バイトの8番目のビツト位置に対
する加算、バイト加算またはビツト減算と等価
である。 MASKb=1(すなわち、CIN=0)のとき、
次の式が得られることが望まれる。 通常の加算式から、 SUMi+7=Hi+7 V Ci+8 =Hi+7 V CIN =Hi+7 MASKb=1かつS(i+8,i+15)=0の
とき、結果はすでに、CIN=0に対して望まし
いものであることが式(7.2)から理解できる。
したがつて、和の式のそれ以上の処理は必要で
ない。 証明 事例1: SETb=‘0'かつMASKb=‘0'、すなわち、
正則加算の場合。 S(m+1,z) =MASKb′G# (m+1,z) +MASKb′T(m +2,z+1)S(z+1,k)+SETb=G
# (m+1,z) +T(m+2,z+1)S(z+1,k) これは、加算の場合の擬似桁上げと等価であ
る。 かつ SUMi+7 =(Hi+7Ti+8′SETb′+Hi+7′Ti+8 +Hi+7′SETb)S(i+8,i+15) +Hi+7S(i+8,i+15)′ =(Hi+7Ti+8′+Hi+7′Ti+8)S(i +8,i+15)+Hi+7S(i+8,i+15)′ =Mi+7S(i+8,i+15) +Hi+7S(i+8,i+15)′ これは、ビツトi+7に対する加算と等価で
ある。 事例2: SETb=‘0'かつMASKb=‘1'、すなわち、
桁上げをマスクする場合。 S(m+1,z)=MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,
k) +SETb=0 かつ SUMi+7 =(Hi+7Ti+8′SETb′+Hi+7′Ti+8 +Hi+7′SETb)S(i+8,i+15) +Hi+7S(i+8,i+15)′ =Hi+7 これは、グループへの桁上げ=‘0'のときの
SUMi+7と等価である。 事例3: SETb=‘1'かつMASKb=‘0'、すなわち、
桁上げをセツトする場合。 S(m+1,z) =MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,
k)+SETb =G# (m+1,z)+T(m+2,z+1)
S(z +1,k)+1=1 かつ SUMi+7 =(Hi+7Ti+8′SETb′+Hi+7′Ti+8 +Hi+7′SETb)S(i+8,i+15) +Hi+7S(i+8,i+15)′ =Hi+7′Ti+8+Hi+7′ =Hi+7′ これは、グループへの桁上げ=‘1'のときの
SUMi+7と等価である。 定理5と同様な考察により、バイトの8番目
のビツトについてバイト加算、加算および減算
が実行されると結論することができる。 8.0 最終の式 第6.0節で述べたバイト加算および減算を含
む一般の和の式を下記の式(8.1)および
(8.2)としてここに再度示す。 (8.1) SUMi−1 =(Ji−1+Ki−1)S(m+1,z) +(Yi−1+Ei−1)s(m+1,z)′ (8.2) S(m+1,z) =MASKb′G# (m+1,z) +MASKb′T(m+2,z+1)S(z+1,
k)+SETb ただし、 m=(b×8)−1であり、bはバイトの列に
対応する。 Ji−1=Mi−1T(i+1,m) (Tm+1+SETb) Ki−1=Mi−1G# (i,m)+Hi−1(T(i +1,m)(Tm+1+SETb))′G# (i,
m)′ Yi−1=Hi−1G# (i,m)′ Ei−1=Mi−1(G# (i,m)+
Ti′MASKb) 各バイトのビツト6、すなわち、ビツト6、
14、22等に対して、以下の式(8.3)を使用し
なければならない。(i=0、8、16…)。 (8.3) SUMi+6 =(Hi+6′Gi+7SETb′+Hi+6Ti +7′+Hi +6′Ti+7SETb +Hi+6′Ti+7Ti+8 +Hi+6Gi+7′Ti+8′SETb′)S(i +8,i+15)+(Hi+6′Gi+7+Hi+6Gi +7′)S(i+8,i+15)′ 各バイトのビツト7、すなわち、ビツト7、
15、23等に対して、以下の式(8.4)を使用し
なければならない(i=0、8、16…)。 (8.4) SUMi+7 =(Hi+7Ti+8′SETb′+Hi+7′Ti+8 +Hi+7′SETb)S(i+8,i+15) +Hi+7S(i+8,i+15)′ F 発明の効果 以上説明したようにこの発明によれば並列構
成の加算回路が実現される。この加算回路は、
桁上げと等価でも等しくもない擬似桁上げ
(Si)と呼ばれる新しい量を作成することによ
り、全体的遅延を改善する。さらに、バイト加
算およびバイト減算をそれらの擬似量に組み込
む。桁上げの実施とは違つて、Siはその実施に
関して必要なハードウエアおよび遅延がより少
ない。補助関数、擬似桁上げ(Si)、および和
を表わすブール式を使つて、加算関数との等価
性を維持する新しい和の式が作成され、この新
しい和の式は、擬似桁上げの発生後に1段階の
遅延で実現することができる。この新しい和の
公式は、正則加算を含むだけでなく、バイト加
算およびバイト減算をも含む。新しい公式は遅
延の点で、正則加算に関する従来の公式よりも
優れているので、バイト加算/バイト減算を考
慮するときは、はるかに大きな利点をもたら
す。何故ならば、前述のように、バイト演算
は、従来の公式を使つて設計された加算機構の
能力を低下させるからである。したがつて、こ
の機能の新しい公式は従来の公式に比べて実行
時間が速く、加算に関する等価性を保持する。
この新しい公式はより多くの関数を計算し、バ
イト演算を含ませた従来の公式に比べて、遅延
の点で能力が大幅に優れている。
【図面の簡単な説明】
第1図は、セツトアツプ論理回路、セツト/マ
スク論理回路、およびセツトアツプ論理回路とセ
ツト/マスク論理回路に応答する特別加算回路を
含む、本発明の加算回路を表わす演算機構の構成
図である。第2図は、第1図のセツトアツプ論理
回路の構成図である。第3図は、第1図のセツ
ト/マスク論理回路の構成図である。第4図は、
補助関数回路、擬似桁上げ回路およびバイト和
(SUMb)回路を含む、第1図の特別加算回路の
構成図である。第5図ないし第8図は、第4図の
補助関数回路の各種の部分の構成図である。第9
図は第4図の擬似桁上げ回路の構成図である。第
10図ないし第12図は第4図のSUMバイト(b)
回路の構成図である。 14……セツトアツプ論理回路、16……レジ
スタ、18……セツト/マスク論理回路、20…
…特別加算回路、20a……補助関数回路、20
b……擬似桁上げ回路、20c……和回路。

Claims (1)

  1. 【特許請求の範囲】 1 命令に従つて複数のバイトを有する第1のマ
    ルチ・バイト・オペランドAと複数のバイトを有
    する第2のマルチ・バイト・オペランドBで演算
    を行なう算術演算装置において、 命令制御により前記第2のオペランドを修正
    し、実行される各演算方式に対応する修正された
    オペランドB# を生成するセツトアツプ論理回路
    と、 命令制御および正則減算制御に応答して、前記
    各演算方式に対応するマスク出力信号、セツト出
    力信号および桁上げ出力信号をそれぞれ生成する
    セツト/マスク論理回路と、 前記第1のオペランドA、前記修正されたオペ
    ランドB# 、前記マスク出力信号および前記セツ
    ト出力信号により任意の関数を生成する補助関数
    回路、前記セツト出力信号と前記マスク出力信号
    および前記第1のオペランドA並びに前記修正さ
    れたオペランドB# に応じて前記桁上げ出力信号
    を変更する信号を発生する擬似桁上げ回路、前記
    第1のオペランドAおよび前記修正されたオペラ
    ンドB# の特定バイトの各ビツト0−5を演算し
    た結果得られた第1の演算結果、前記特定バイト
    の各ビツト6を演算した結果得られた第2の演算
    結果および前記特定バイトの各ビツト7を演算し
    た結果得られた第3の演算結果を結合する和回路
    からなる特別加算回路とを備えていることを特徴
    とする算術演算装置。
JP63119426A 1987-06-26 1988-05-18 Arithmetically computing apparatus Granted JPS6410323A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/066,580 US4914617A (en) 1987-06-26 1987-06-26 High performance parallel binary byte adder

Publications (2)

Publication Number Publication Date
JPS6410323A JPS6410323A (en) 1989-01-13
JPH0542012B2 true JPH0542012B2 (ja) 1993-06-25

Family

ID=22070409

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63119426A Granted JPS6410323A (en) 1987-06-26 1988-05-18 Arithmetically computing apparatus

Country Status (3)

Country Link
US (1) US4914617A (ja)
EP (1) EP0296457A3 (ja)
JP (1) JPS6410323A (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5189636A (en) * 1987-11-16 1993-02-23 Intel Corporation Dual mode combining circuitry
US5333287A (en) * 1988-12-21 1994-07-26 International Business Machines Corporation System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters
JP2504156B2 (ja) * 1989-01-25 1996-06-05 日本電気株式会社 情報処理装置
US5327368A (en) * 1989-06-23 1994-07-05 Digital Equipment Corporation Chunky binary multiplier and method of operation
JP2601960B2 (ja) * 1990-11-15 1997-04-23 インターナショナル・ビジネス・マシーンズ・コーポレイション データ処理方法及びその装置
FR2693287B1 (fr) * 1992-07-03 1994-09-09 Sgs Thomson Microelectronics Sa Procédé pour effectuer des calculs numériques, et unité arithmétique pour la mise en Óoeuvre de ce procédé.
US5327369A (en) * 1993-03-31 1994-07-05 Intel Corporation Digital adder and method for adding 64-bit, 16-bit and 8-bit words
US5390135A (en) * 1993-11-29 1995-02-14 Hewlett-Packard Parallel shift and add circuit and method
US5883824A (en) * 1993-11-29 1999-03-16 Hewlett-Packard Company Parallel adding and averaging circuit and method
US5596763A (en) * 1993-11-30 1997-01-21 Texas Instruments Incorporated Three input arithmetic logic unit forming mixed arithmetic and boolean combinations
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
US5719802A (en) * 1995-12-22 1998-02-17 Chromatic Research, Inc. Adder circuit incorporating byte boundaries
US5835782A (en) * 1996-03-04 1998-11-10 Intel Corporation Packed/add and packed subtract operations
US6003125A (en) * 1997-01-24 1999-12-14 Texas Instruments Incorporated High performance adder for multiple parallel add operations
US20030065696A1 (en) * 2001-09-28 2003-04-03 Ruehle Michael D. Method and apparatus for performing modular exponentiation
US6922717B2 (en) 2001-09-28 2005-07-26 Intel Corporation Method and apparatus for performing modular multiplication
CN101803205B (zh) * 2008-08-15 2013-12-18 Lsi公司 近码字的ram列表解码

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5827241A (ja) * 1981-08-12 1983-02-17 Hitachi Ltd 十進演算装置
JPS60229139A (ja) * 1984-04-25 1985-11-14 Nec Corp 10進演算装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1245441A (en) * 1968-08-27 1971-09-08 Int Computers Ltd Improvements in or relating to adders operating on variable fields within words
US3987291A (en) * 1975-05-01 1976-10-19 International Business Machines Corporation Parallel digital arithmetic device having a variable number of independent arithmetic zones of variable width and location
US4021655A (en) * 1976-03-30 1977-05-03 International Business Machines Corporation Oversized data detection hardware for data processors which store data at variable length destinations
JPS5824941A (ja) * 1981-08-07 1983-02-15 Hitachi Ltd 演算装置
JPS6055438A (ja) * 1983-09-05 1985-03-30 Matsushita Electric Ind Co Ltd 2入力加算器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5827241A (ja) * 1981-08-12 1983-02-17 Hitachi Ltd 十進演算装置
JPS60229139A (ja) * 1984-04-25 1985-11-14 Nec Corp 10進演算装置

Also Published As

Publication number Publication date
EP0296457A3 (en) 1991-07-17
US4914617A (en) 1990-04-03
EP0296457A2 (en) 1988-12-28
JPS6410323A (en) 1989-01-13

Similar Documents

Publication Publication Date Title
JPH0542012B2 (ja)
US6411980B2 (en) Data split parallel shifter and parallel adder/subtractor
US5892698A (en) 2's complement floating-point multiply accumulate unit
JPH0479013B2 (ja)
JPH07122846B2 (ja) 3―1alu装置
US5337269A (en) Carry skip adder with independent carry-in and carry skip paths
JP3813127B2 (ja) 3つのゲートのクリティカル・パスを有するワイド加算器
JPH0628158A (ja) 桁上げ先見加算方法とその装置
JP3388819B2 (ja) 数値計算を実行するプロセスおよびそのプロセスを実現する演算装置
US5027311A (en) Carry select multiplexer
US6061707A (en) Method and apparatus for generating an end-around carry in a floating-point pipeline within a computer system
KR20060128007A (ko) 저전력 동작을 위해 로직 레벨을 조절하는 산술 회로
JPH08161152A (ja) 浮動小数点演算装置
US6684236B1 (en) System of and method for efficiently performing computations through extended booth encoding of the operands thereto
US4099248A (en) One's complement subtractive arithmetic unit utilizing two's complement arithmetic circuits
JPH06195201A (ja) 不等桁上げ方式(varied carry scheme)を用いた高速加算器とそれに関連する方法
US7216141B2 (en) Computing carry-in bit to most significant bit carry save adder in current stage
JPH0366693B2 (ja)
JPH056263A (ja) 加算器およびその加算器を用いた絶対値演算回路
US7444366B2 (en) Faster shift value calculation using modified carry-lookahead adder
JPH0454256B2 (ja)
JP3462054B2 (ja) 並列加減算回路
JP3286793B2 (ja) キャリアウトを確定する回路及び方法
US11294630B2 (en) Adder-subtractor circuit and method of controlling adder-subtractor circuit
US5944777A (en) Method and apparatus for generating carries in an adder circuit