JPH0139131B2 - - Google Patents

Info

Publication number
JPH0139131B2
JPH0139131B2 JP56000065A JP6581A JPH0139131B2 JP H0139131 B2 JPH0139131 B2 JP H0139131B2 JP 56000065 A JP56000065 A JP 56000065A JP 6581 A JP6581 A JP 6581A JP H0139131 B2 JPH0139131 B2 JP H0139131B2
Authority
JP
Japan
Prior art keywords
register
shift
multiplication
multiplier
bits
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
Application number
JP56000065A
Other languages
English (en)
Other versions
JPS56145427A (en
Inventor
Tee Shii Uongu Uiruson
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.)
Unisys Corp
Original Assignee
Unisys 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 Unisys Corp filed Critical Unisys Corp
Publication of JPS56145427A publication Critical patent/JPS56145427A/ja
Publication of JPH0139131B2 publication Critical patent/JPH0139131B2/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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5332Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm

Landscapes

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

Description

【発明の詳細な説明】
本発明は一般的にいえば計算機回路に関するも
のであり、具体的にいえば、ユニークなアーキテ
クチヤをもつた浮動小数点処理装置に関するもの
である。 従来技術においては、利用できる計算機械及び
計算装置が多数ある。これらの装置の多くは、演
算要求のいろいろな部分に対して乗算技術を用い
る殆んどの場合これらの乗算回路及び技術は、多
少厄介で計算装置の動作速度に対して遅く、乗算
処理を実施するのに非常に多くの構成部品を必要
とする。演算を改良するために、従来の装置及び
機械において種々の試みがなされてきた。例え
ば、周知の技術の一つは「幾つもの0や1を飛ば
す」ことであり、それは0または1つのストリン
グが乗算の中に検出されるとき、部分積を迅速に
桁送りすることによつて、ほとんど達成される。
この「飛ばし」技術は、周知の1デジツトずつ順
に行う乗算よりずつと速い。しかしながら、それ
はかなり多くの構成部品を必要とする。 以下に説明する本発明は「幾つもの0や1を飛
ばす」技術の速度を保ちながら、使用する構成部
品の数を少なくする方法を提供する。 本明細書に示す発明は、浮動小数点処理アーキ
テクチユアを説明し、特にそれの小数データ部分
を説明するが、それは乗数を記憶するために並列
に配置されているMQ(multplier−quotinent)レ
ジスタを用いる。二つのビツトがいつでもMQレ
ジスタによつて提供されるので、乗数を桁送りす
る速度を約二倍に大きくすることができる。この
構成は、たとえ部分積が組合せシフタで桁送りさ
れるとしても、部分積が桁送りされる速度に匹適
する速度で乗数を桁送りできるようにする。MQ
レジスタからの出力信号は乗数復号器に与えられ
る。この復号器は、固定記憶装置を含んでおり、
算術論理装置と組合せシフタとを制御するように
接続されている。本発明においては、固定記憶装
置の大きさが維持されるように、独自な復号技術
を用いる。これによつて構成部品の数がさらに少
なくなる。算術論理装置に与えて演算すべき情報
は被乗数と部分積をそれぞれ記憶しているAレジ
スタとBレジスタとによつて与えられる。Bレジ
スタに記憶されている部分積は、それが算術論理
装置に提供される前に復号器によつて制御される
組合せシフタを通過する。この復号器は、効果的
に乗数の中の0または1のストリングを探して、
部分積を組合せシフタによつて複数ビツトだけ桁
送りさせる。 さて第1図を参照すると、本発明の浮動小数点
処理装置に対する好ましいアーキテクチヤのブロ
ツク線図が示されている。特に、図示の浮動小数
点処理装置アーキテクチヤは二つの主データルー
プ、すなわち指数データループと小数データルー
プを含んでいる。小数データループは、本発明の
主たる関心事であるが、指数データループは浮動
小数点処理装置の小数データループの動作をさら
に理解するのに必要かまたは望ましい範囲で示し
て説明する。 浮動小数点処理装置アーキテクチヤにおいて、
源50は、任意の形式の計算機、中央処理装置な
どであつてよく、バスAに沿つてデータを送る。
バスAは、情報を浮動小数点処理装置に記憶した
り、それから取出すことのできる二方向性バスで
ある。指数データ経路において8ビツトの数(指
数を表す)がトランシーバ44に与えられ、それ
を経てさらにTレジスタ42に与えられる。浮動
小数点演算の結果として生ずる指数はまた、Eレ
ジスタ40からトランシーバ44を経て源50に
逆読みすることもできる。Tレジスタ42または
Eレジスタ40に記憶された数は、指数算術演算
装置(EALU)46に送ることができる。EALU
は、8ビツトの数をEレジスタ40及びFレジス
タ38ならびにプリアライン復号器26(あとで
説明する)に与える。なおシフトバツフア(SB)
36もまた情報をあとで説明するようにEALU4
6のB入力に与える。 源50はまた、16ビツトの数をバスAを介して
ゼロ検出器34及びトヤンシーバ10に送る。ゼ
ロ検出器34は後述のようにステツプカウンタ3
2に信号を送る。 トランシーバ10(トランシーバ44と同様)
は、情報ビツトをどちらの方向へも転送するよう
に接続されている。情報が源50から浮動小数点
処理装置に転送されるとき、トランシーバ10
は、バスAからビツトを受けてMQレジスタ12
(これはあとで詳細に説明する)及び符号(sign)
回路14へ56ビツトまで転送する。情報は、8ビ
ツトセグメント及び16ビツトセグメントで転送さ
れる。好ましい実施例において、MQレジスタ1
2は、複数の並列に配列されたレジスタ回路また
はセルを含んでいる。MQレジスタ12及びAレ
ジスタ22は、小数算術論理装置(FALU)18
の入力へ56ビツトの数を送る。Aレジスタ22は
また、浮動小数点処理装置内のデータがバスAに
読出されるべきとき、情報をトランシーバ10に
与える。FALU18の出力端子は、累算器または
Bレジスタ24の入力及びAレジスタ22の入力
へ60ビツト伝搬路を経て接続される。またFALU
18は左右シフト復号器28に接続されている。
Bレジスタ24の出力は、FALU18のB入力端
子に60ビツト信号を与える組合せシフタ20に接
続されている。 MQレジスタ12からの出力信号はまた、ウオ
ング(Wong)の米国特許第4276607号に記載さ
れているように、2ビツト同時に直列に乗数復号
器16に与えることもできる。乗数復号器16
は、プリアライン復号器26及び左右シフト復号
器28からの制御信号と共に制御信号をシフト・
レジスタ30に与えるように接続されている。シ
フタ・レジスタ30は、組合せシフタ20及びシ
フトバツフア36に信号を与える。 次に好ましい実施例における基本的算術のため
の演算の論理を説明する。 動作を説明すると、源50は、浮動小数点処理
装置のロード動作が定められているとき、数を表
す信号を浮動小数点装置に与える。これらの信号
は、バスAに沿つてトランシーバ10と44にそ
れぞれ与えられる。具体的には、その数の指数部
分がトランシーバ44を経てTレジスタ42にロ
ードされる。次にTレジスタの内容がEALU46
を経てEレジスタとFレジスタに転送される。同
様に、トランシーバ10は、バスAの上の数の小
数部分を受けて、それを16ビツトセグメント(8
ビツトから成る最上位セグメントを除く)でMQ
レジスタ12に転送する。これは本発明の実施例
において用いられる浮動小数点数フオーマツトで
ある。もちろん、他の浮動小数点数フオーマツト
も用いることができる。MQレジスタは、バスA
に沿つてトランシーバ10に与えられる16ビツト
語セグメントを記憶する四つの16ビツトレジスタ
から成つている。このレジスタは、8ビツトセグ
メント内に記憶された最上位セグメントに対応す
る。従つて、MQレジスタ12は適当な小数ビツ
トをロードされる。制御リテラル(CLIT)信号
の復号のときに、MQレジスタ12の内容は、A
レジスタ22及びBレジスタ24へFALU18を
経て転送される。この時点で、浮動小数点処理装
置は後述の動作の一つ以上を開始する用意ができ
ている。 浮動小数点加算または減算 浮動小数点処理装置命令は単一のオペランド命
令であるから、浮動小数点処理装置演算は、第1
のオペランドの指数がEレジスタ及びFレジスタ
にロードされ、第1のオペランドの小数が上述の
ようにAレジスタ及びBレジスタにロードされる
ように浮動小数点処理装置のロードまたは他の何
らかの操作が先に行われていなければならない。
(浮動小数点操作の結果は常にEレジスタ、Fレ
ジスタ、Aレジスタ及びBレジスタに記憶され
る。) 加算または減算のいずれかの開始によつて第2
のオペランドの指数がTレジスタ42にロードさ
れ、小数がMQレジスタ12にロードされる。浮
動小数点処理装置は、Tレジスタ42及びFレジ
スタ38の中の指数のそれぞれの大きさをEALU
46で比較して、次に二つの差をEレジスタ40
に記憶する。第2のオペランドが大きい方のオペ
ランドであれば、第2のオペランドの仮数がMQ
レジスタ12からAレジスタ22に転送される。
そうでない場合は、それはBレジスタ24に転送
される。すなわち、Bレジスタ24は、常に小さ
い方の指数をもつたオペランドの仮数を含んでい
る。 二つのオペランドの仮数を小数点について位置
合わせするために、プリアライン復号器26は、
二つの指数の差を検出してBレジスタ24に適宜
にシフタ20及びFALU18を介して記憶された
小さい方のオペランドの仮数を右に桁送りする。
次にAレジスタ及びBレジスタの内容についての
加算または減算がFALU18によつて行われる。
その結果は、左右シフト復号器28によつて制御
されるシフタ20及びFALU18によつて再正規
化される。この処理を完了すると、結果はAレジ
スタ及びBレジスタの両方に記憶される。 プリアラインメントの間、指数の差を含むEレ
ジスタ40は、桁送りの進行を記録するのに用い
られる。プリアラインメントののち、指数回路
は、Tレジスタ及びFレジスタの内容の大きい方
をEレジスタ及びFレジスタの両方に記憶する。
数の小数部分の正規化の間、Eレジスタ及びFレ
ジスタの内容はまた、Eレジスタの内容をシフト
バツフア36からくるデータと一緒に加算するか
または減算することによつて調節される。バツフ
ア36は、シフトレジスタ30(SHFR REG)
に接続されているので、それは浮動小数点処理装
置の数の小数部分に行われた桁送りの数を反映し
ている。 浮動小数点乗算 加算及び減算におけるように、第1のオペラン
ド(被乗数)は、既にレジスタE,F,A及びB
に記憶されている。第2のオペランド(乗数)は
Tレジスタ及びMQレジスタにロードされる。な
お、ステツプカウンタ32(SC)は、乗数の長
さ(すなわちビツトの数)から16ビツトインクリ
メントの中の尾端の0の数を引いたものに等しい
数をロードされる。次にBレジスタ24がクリア
される。続いて、Bレジスタ24がシフト−加
算/減算プロセスによつて作られた部分和を記憶
するのに用いられる。 乗算は、一連のシフト−加算/減算操作によつ
て行われる。Bレジスタ24に記憶された部分和
は、シフタ20によつて右へ桁送りされて、次に
Aレジスタ22に記憶された被乗数に加えられる
かそれから引かれる。シフトの数は、MQレジス
タ12に記憶された乗数によつて制御され、その
乗数は、後述のようにPROMの形にすることの
できる乗数復号器16によつて復号される。 ステツプカウンタ(SC)32は、各シフトご
とに計数を下げられる。シフト−加算/減算操作
は、SCがゼロに等しくなるまで繰返される。B
レジスタの中の積は、正規化されて丸められて、
Aレジスタ及びBレジスタに記憶される。同時に
Tレジスタ及びFレジスタの中の二つのオペラン
ドの指数の和は、正規化に従つて調節されてEレ
ジスタ及びFレジスタに記憶される。 浮動小数点除算 加算及び減算におけると同様に、第1のオペラ
ンド(被除数)は、既にレジスタE,F,A及び
Bに記憶されている。第2のオペランド(除数)
は、次にTレジスタ及びMQレジスタにロードさ
れる。 除数は、まずMQレジスタ12からAレジスタ
22に転送されて、そこでこれが一連のシフト減
算/加算操作の中の減数または加数としてあとで
用いられる。次にMQレジスタが商を記憶するた
めりクリアされる。ステツプカウンタ32は、除
数の長さに等しいシフト減算/加算計数をロード
される。シフト減算/加算を繰返す度ごとにカウ
ンタ32の計数を一つづつ減らす。同時に減算の
結果による正しい商のビツトがMQレジスタ12
にシフトされる。カウンタ32がゼロになると、
商全体がMQレジスタに記憶される。次にその商
は、Aレジスタ及びBレジスタに転送されて、そ
こでそれが正規化されて丸められる。Tレジスタ
42の中の除数は、Fレジスタ38の中の被除数
の指数から減算されて差がEレジスタ及びFレジ
スタに記憶される。他の演算におけると同様に、
それはまた仮数の正規化の間に調節される。 「浮動否定」、「浮動小数点対浮動固定小数点
数」及び「浮動平方根」などの他の操作をこの浮
動小数点処理装置アーキテクチヤによつて実行で
きる。しかしこれらの操作は改良された乗算操作
が最も適切であると信じられるのでここでは説明
しない。 次に好ましい実施例の詳細な回路の説明を行
う。 次に第2図を参照すると、第1図に示した回路
の一部が詳細に示されている。具体的には、トラ
ンシーバ回路200,202、及び204は、第
1図に示したトランシーバ10の一部分を含んで
いる。これらの回路の各々は、バスAから入力信
号を受けるかまたはバスAへ信号を送る。第2図
に示した回路では、奇数番号のバスA信号CB0
1ないしCB15はトランシーバ回路200に加
えられる。逆に、偶数番号の信号CB00ないし
CB14はトランシーバ202及び204へ並列
に加えられる。もちろん第2図に示す回路は、実
際のトランシーバ回路を構成する回路の一部分だ
けを表わしているということが分るはずである。
好ましい実施例において、第2図に示したラツチ
回路200と同様な七つのトランシーバ回路が用
いられている。これらの回路は、ほかの演算のた
めのバスAの信号を受けるかまたはある演算の結
果をバスAに送り返す。 トランシーバ200,202及び204の出力
端子は、MQレジスタ回路206,208及び2
10、FALU18及びAレジスタ22に信号を与
えるように接続されている。これらの信号はxを
識別番号としてFALAxxとして識別される。(第
3図はAレジスタの一部分とFALUを示してい
る)MQレジスタ回路212に与えられる信号
は、第2図に示してないトランシーバ回路から与
えられる。適当な制市信号MQS1とMQS0を
MQレジスタの端子S1及びS0に加えるとき、
トランシーバからのFALA信号を適当なMQレジ
スタに送つてそれに記憶させることができる。再
び、好ましい実施例の中に追加のMQレジスタ回
路があるが、それはこの説明において適宜上省略
してあることを理解されたい。さらにMQレジス
タ回路206及び208は、16ビツト並列MQレ
ジスタセグメントを形成していることに注意され
たい。一方の回路は、奇数ビツトを記憶し、また
他方の回路は偶数ビツトを記憶する。同様に、
MQレジスタ回路210及び212は、もう一つ
の16ビツト並列MQレジスタセグメントを形成す
る。各MQレジスタセグメントは、それ自身のト
ランシーバ回路に接続されている。 MQレジスタ回路206,208,210及び
212の入力端子にはクロツク信号HCLK,MQ
制御信号MQS1とMQS0、及びクリア信号
MQCLBCを含む適当な制御信号が加えられる。
また、MQレジスタのもう一つのセグメントから
の適当な入力信号が加えられる。そのような信号
の中で代表的なものは、レジスタ210によつて
レジスタ208に与えられるMQ14及びレジス
タ208によつてレジスタ210に与えられる
MQ16である。従つて、MQレジスタセグメン
トが連結されることがあり、左または右への直列
シフト操作が起る可能性がある。MQレジスタ回
路は並列に配線されているので、クロツク信号に
よつて一つの寄数ビツトと一つの偶数ビツトの2
ビツトをMQレジスタからシフトさせることに注
意願いたい。もちろん、追加のレジスタを必要な
らばさらに長いレジスタを与えるために鎖状に接
続することができる。 簡単にいえば、第2図に示した回路は、バスA
が信号CB00ないしCB15を与えるように動作
する。これらの信号はすべてのトランシーバ(第
2図には三つしか示されていないがすべてで七
つ)に加えられる。MQレジスタセグメントに対
応するトランシーバの二つは、CD端子に与えら
れる適当な使用可能信号例えば、ENOPC,
ENOPD、によつて使用可能にされるであろう。
さらに、一つの信号がトランシーバのT/入力
端子に送られて、その信号がトランシーバを送信
モードにして、A端子からB端子への信号経路を
形成する。第2図のトランシーバ200及び20
2が使用可能にされると、トランシーバのB端子
にある信号はMQレジスタ206及び208の端
子に加えられる。それらのCLK端子にクロツク
信号を加えると、MQレジスタ206及び208
から成るレジスタセグメントが使用可能にされ
て、トランシーバ200及び202からの信号に
よつて表わされた情報の16ビツトセグメントを記
憶する。図示のような接続のために、MQレジス
タまたはAレジスタもまた後述のようにこれらの
記憶された信号をFALU18のA端子に提供でき
る。MQレジスタのその他のシフテインゲ及び動
作はあとで説明する。 次に第3図を参照すると、第1図に示した回路
の小数ループの詳細な部分が示されている。第3
図に示した回路にはFALU18、Aレジスタ2
2、Bレジスタ24及びシフタ20の各部分があ
る。特に、MQレジスタからのFALA信号線(第
2図参照)は、AレジスタA1の出力端子に接続
されている。なお、FALA信号線は、MQレジス
タから回路ALU1及びALU2によつて表わされ
たFALU18のA入力端子に接続されている。も
ちろん、第3図に示したものと類似の複数の回路
を本発明のアーキテクチヤに設けることができる
ということが理解されなければならない。 回路ALU1及びALU2のB入力端子は、組合
わせシフタ回路S2及びS4の出力端子にそれぞ
れ接続されている。組合せシフタ回路S1及びS
3の出力端子は、多ビツトシフト能力を与えるよ
うにシフタS2及びS4の入力端子に図示のよう
に交差結合されている。レジスタB1及びB2の
出力端子は、シフタS1及びS3の入力端子にそ
れぞれ接続されている。前述したように、追加の
Bレジスタ装置は追加のシフタレジスタ装置と同
様に好ましい実施例において用いられている。従
つて、レジスタB1及びB2からのある出力信号
がこの図面に含まれている装置と類似の組合せシ
フタ(図示なし)に接続されている。同様にし
て、他のレジスタ(図示なし)からのBレジスタ
がシフタレジスタS1及びS3にそれぞれ加えら
れる。 制御回路300は、回路の小数ループ部分に
種々の制御信号を与えて組合せシフタのシフテイ
ング、FALUの動作、Bレジスタのシフテイング
とローテイング、及びAレジスタのローテイング
を第3図に示すように制御するすべての回路を表
わしている。好ましい実施例において、これらの
信号は、直接にはマイクロシーケによつて与えら
れ、間接的にはマイクロシーケンサからくる制御
信号によつて作動される何らかの回路を通じて与
えられる。 特に、第6図に示した回路は、マイクロシーケ
ンサが乗算操作を指定するときシフト信号BSCS
0,BSCS1及びBSCS2をシフタレジスタS1,
S2,S3及びS4に与える。同様にして、Bレ
ジスタB1及びB2に与えられる制御信号BSRS
1及びBSRS0は乗算操作中第6図の制御回路か
ら引出される。 マイクロシーケンサのブロツク線図が第4図に
示されている。三つの主な部分、すなわち次のア
ドレス発生回路401、制御記憶装置402及び
制御記憶装置バツフア403がある。好ましい実
施例における制御記憶装置は、プログラマブル固
定記憶装置(PROM)で構成されている。それ
ぞれがマイクロ命令と呼ばれる所望の制御信号パ
ターンは、PROMの種々のアドレスの中に記憶
される。次アドレス発生回路401は、PROM
のためのアドレスを発生する。一連のマイクロ命
令を一連の適当なアドレスを発生することによつ
てステツプスルーできる。次アドレス発生回路4
01は、上位計算機からの命令、先のマイクロ命
令の中で行われた幾つかの試験の結果及び現在の
マイクロ命令からの次アドレス情報を受取る。従
つて、その命令、試験結果及び次アドレス情報に
よつて、所望の制御信号を規定する適当な次アド
レスが発生されるであろう。PROMからの出力
はそれらが1クロツク周期の間安定に保持される
ように制御記憶装置バツフア403の中にラツチ
される。 特に、第4A図はマイクロシーケンサの詳細な
部分を示している。PROM P1〜P5は制御記
憶装置回路402を構成し、マルチプレクサM1
及びM2は次アドレス発生回路401を構成して
いる。 第3図に戻ると、算術論理素子ALU1及び
ALU2の出力端子は、Aレジスタ(レジスタ1)
及びBレジスタ(レジスタB1及びB2)にそれ
ぞれ接続されている。(第3図)論理回路素子
ALU1及びALU2からくる信号はFALUxx(ここ
でxxは数字を表す)として識別される。 動作について説明すると、Aレジスタまたは
MQレジスタ(第2図)のいずれかからの
FALAxx信号をFALU18の算術論理素子ALU
1及びALU2のA入力に与えることができる。
Bレジスタに記憶されていた情報を組合せシフタ
によつてシフトしてFALU18のALU1及び
ALU2のB入力に与えることができる。算術論
理素子ALU1及びALU2は、それぞれA入力及
びB入力に与えられた信号で動作してAレジスタ
及びBレジスタへ結果を伝える。組合せシフタは
3ビツトまでの左シフトまたは4ビツトまでの右
シフトをFALUによつて行われる算術演算と共に
行うことができる。非常に多数のシフトを用いる
設計もまた本発明を利用することができる。
FALUは、AがA入力を意味し、BがB入力を意
味するとして演算A−B,B−AまたはA+Bを
行うことができる。 第4A図を再び参照すると、複数のプログラマ
ブル固定記憶装置P1〜P5(PROM)を含む
制御記憶装置PROM回路が示されている。各
PROMは、制御可能化端子CE1及びCE2を否定
回路端子を介して接地に接続されている。従つて
各PROMは、使用可能にされて、それに与えら
れる入力アドレス信号を受けて、受けたアドレス
に関係するビツトパターンを供給するように適応
される。4:1マルチプレクサM1及びM2
(MUX)及び制御記憶装置バツフア信号(CSB)
によつて後述のように与えられる。マルチプレク
サからの出力信号は、TB00,TB01,TB0
2及びTB03である。これらの出力信号は、割
込み(IR0,IR1,IR2及びIR3)のような制
御信号ならびにオペランドの状態(ゼロまたは非
ゼロ)、オペランドの符号などを示す他の信号に
応動してマルチプレクサによつて作られる。 なお、ラツチ回路L1及びL2は、PROM回
路P1及びP2からの出力信号(CSM)を受け
るように接続されている。すべてのPROM回路
の入力端子は、マルチプレクサM1及びM2の入
力端子と同様にラツチ回路からの出力信号CSB
を受ける。これらの回路は、PROMが回路の
種々の復号部分からの信号によつてアクセスされ
て、それらの信号を表す出力信号を作るように相
互接続される。 次に第5図を参照すると、制御記憶装置バツフ
ア回路が示されている。第4A図のPROM回路
からの出力信号(CSMxx)は、第5図に示した
バツフア(またはラツチ回路に送られる。特に、
制御記憶装置信号CSM10ないしCSM35は
PROMからラツチ回路L3〜L6の入力端子に
与えられる。適当なクロツク信号MCLKを加え
ると、CSM信号は、ラツチ回路にラツチされて、
あとで検討されるその他の回路に利用できるよう
にされる。ラツチ回路からの出力信号、特に、
CSB信号は、MQレジスタ12の左右シフト操作
を制御するのに用いられる。なお、CSB信号の
中のあるものは、小数ループのBレジスタまたは
Aレジスタならびに指数ループ(ここでは詳細に
は説明しない)内の他のレジスタをロードするの
に有用である。さらに、CSB信号はあとで説明
するようにBレジスタのシフテイング操作を制御
するのに用いられる。 次に第6図を参照すると、本発明のための乗算
の間のシフテイング信号を作るための詳細な回路
構成が示されている。特に、4:1マルチプレク
サ600がそれの入力端子のところで4対の信
号、MQ00ないしMQ49を第2図に示した並
列MQレジスタ部から受けるように接続されてい
る。さらに詳しくいえば、信号対は、MQ00と
MQ01,MQ16とMQ17,MQ32とMQ3
3およびMQ48とMQ49である。ただ1対だ
けの信号が乗数の中に存在する尾端の0の数によ
つて4対の中からマルチプレクサによつて選択さ
れる。尾端の0は、ウオング(Wong)の米国特
許第4276607号に記載されているように、16のイ
ンクリメントで飛ばすことができる。マルチプレ
クサ600からの出力信号は、パイプラインレジ
スタ601の入力端子に接続されている。パイプ
ラインレジスタ601は、MQレジスタへの延長
のように動作する。それは記憶レジスタの二つの
2ビツト段から構成されている。MQレジスタか
らのシフトアウトする信号は、第1坪に通されて
次に第2段に通される。パイプラインレジスタの
入力C及びDならびに出力QC及びQDは、第1段
を構成する。QC及びQDから出る第1段の出力信
号は第2段A及びBの入力に送られる。第2段は
入力A及びBならびに出力QA及びQB端子で構
成されている。S1及びS0はシフトを可能にす
るために用いられ、一方クリア(CLR)端子を
パイプラインをクリアするのに用いることができ
る。ハーフロツク(HCLK)信号もまたパイプ
ラインレジスタ601に与えられる。 ラツチ回路602はパイプラインレジスタ60
1からの出力信号とマルチプレクサ600の出力
2Yから直接にくる信号を受けるように接続され
る。ラツチ回路602のパイプラインレジスタ6
01が合わさつて直並列変換回路を構成すること
になる。MQレジスタからのシフトアウトされた
信号は、一時的にパイプラインレジスタ601に
記憶されて、次に復号のために完全な1クロツク
期間(MCLK)の間保持される。なお、ラツチ
602は、アンドゲート603からの制御信号を
含む幾つかの他の制御信号を受け、アンドゲート
603はラツチ602のタイミングを制御するた
めに種々のシステムクロツク信号HCLK及び
MCLKを同時に加えることによつて起動される。 ラツチ602の出力は、この実施例においては
複数のPROM回路605と606を含む乗数複
号器の入力に接続されている。マルチデコード
PROM605及び606は入力端子において同
じ信号を受取る。ラツチ602の出力は入力端子
A0ないしA4に接続されている。 端子A7は、乗算処理の終りを示すNMULT
信号を受ける。端子A6は最終の機械サイクルで
起つた算術演算を示すMFOP信号を受ける。端
子A5はラツチ607に記憶されたシフトバイア
スを示すMBIAS信号を受取る。MBIAS信号は、
MQレジスタがあとで説明するように奇数番号の
ビツトをシフトアウトすることができないのを補
償するのに必要である。 PROM606は、第3図に関して説明したシ
フタ制御回路に与えられるシフタ制御信号BSCS
0ないしBSCS2を作る。 PROM605は、PROM605及びPROM6
06の端子A6及びA5に戻される。MFOP信
号及びラツチ607に一時的に記憶される
MBIAS信号を発生する。PROM605はまた、
右シフトBレジスタ信号RSHB及び2ビツトの
右シフトを意味する右シフト2信号RSHTW0
を作る。PROM605からのこれの信号はまた
ラツチ607に一時的に記憶されて1機械サイク
ルを通して固定信号レベルを設定する。PROM
606はMSHEN信号によつて使用可能にされ
ることに注意されたい。この信号は乗算操作を指
定するために用いられる制御信号から引出されて
マイクロシーケンサによつて与えられる。従つ
て、PROM606は、乗算操作の間だけ使用可
能にされる。他の操作の場合には、第6図の回路
は小数ループの操作に影響しないであろう。 以下に乗数の中の0のストリングと1のストリ
ングで飛ばす乗算を並列MQレジスタ法によつて
いかに速く実施できるかを説明する。 本願における演算の方法を定義するために、な
にが乗数の中のストリングを構成するかを定義す
ることが必要である。1のストリングまたは0の
ストリングは1または0の二つ以上の同じビツト
として定義される。逆に、1のストリングの中の
単一の0または0のストリングの中の単一の1
は、それぞれ孤立0または孤立1と定義される。
定義を示するために、次の例を与える。 乗数=〔00…0〕10110010001〔00…0〕 括弧の中の数字は、例示的乗数の一部分ではな
い。乗数の先頭ビツトが複数の0であると仮定さ
れているので左端に括弧内に入れた複数の0を書
いてある。右端の括弧内の0は乗数に対する復号
操作が0の長いストリングで始められること(す
なわち復号器の初期条件〕を示す。従つて、第1
(右端)の1は孤立1であることがわかる。次の
三つの0(左の方へ読んでゆく)は、0のストリ
ングを形成している。次のビツト、2進1、のあ
とに追加の0が続いているので、その1は孤立1
であり、0は0のストリングの続きである。しか
し、次の1のあとに追加の1が続いて1のストリ
ングを作つている。次の0はあとに1が続いてい
て、その0は孤立0であり、その1は1のストリ
ングの継続である。この例示は、1及び0のスト
リング、孤立1と0、及び遷移領域を示してい
る。 この装置の動作は、乗算の部分積が乗算の始め
に0に払われたBレジスタ24に記憶されている
という規則に従う。乗数は、LSB(最下位ビツ
ト)から始めてMQレジスタ12からシフトされ
て、上述の規則に従つて復号器16によつて調べ
られる。その次にAレジスタの中に記憶された被
乗数を、孤立1に遭遇するときは必ずまたは0の
ストリングの始まりに、Bレジスタ24に記憶さ
れた部分積に加える。逆に、被乗数を、孤立0に
遭遇するときまたは1のストリングの始めに必
ず、部分積から減算する。 部分積シフト制御装置は、Bレジスタの中の部
分積を乗数のビツトパターンに従つて組合せシフ
タ20を制御することによつて桁送りする。多数
桁送りは、0の数ストリング及び1の数ストリン
グにわたつて行われる。桁送り操作は加算または
減算操作を行うため、ストリングの始めまたは孤
立1もしくは孤立0においてのみ停止する。 この方法を用いると、4尾墜堵の最大シフトを
得るためには、0のストリングの始めと孤立0と
の間の差を識別するために乗数から5ビツトを監
視することが必要である。4ビツトだけ監視され
るとすれば、二つの場合の間を区別することは不
可能である。(同様に、もちろん、1のストリン
グと孤立1との間の差は、同じ困難性を生ずる。)
例えばビツトパターンX0111において、Xの値が
わかつていなければこの0が孤立0であるか0の
ストリングの始めであるかを判定することは不可
能である。すなわち、Xが0であれば、存在する
0は0のストリングの始めであり、その場合に被
乗数は上述したように加えられる。反対に、Xが
1であれば、存在する0は孤立を表わし、そのと
き被乗数は上述のように減算されなければならな
い。 背景論理 この浮動小数点処理装置が乗算を行うに当つ
て、いくつもの1や0にわたつて桁送りするのに
用いるアルゴリズムは、かなり複雑である。説明
を簡単にするために、この浮動小数点処理装置で
用いる技術を説明する前に幾つかの他の乗算技術
を説明する。 乗算に用いられる一つの簡単な方法は、1ビツ
トずつのやり方で乗数を調べることである。その
ビツトが0であれば、被乗数は一つだけ位置を左
へずらされる。そのビツトが1であれば、被乗数
は左へ送られて次の部分積に加えられる。
【表】 送りして加算
同じ結果はまた被乗数を左へ送る代りに部分積
を右へ送ることによつても得られる。実際には、
これはデータパスの巾を2倍にする必要がないの
でより良い方法であるということが分かつた。代
りに部分積の低位置のビツトがレジスタから単に
桁送りされて消失するだけである。この方法は0
のストリングをシフトオーバするだけである、す
なわち、算術演算が何も起らない。一方、乗数に
ある各「1」は、1回の加算を必要とする。一つ
の工夫は1のストリングと0のストリングの両方
をシフトオーバすることである。非常に高速で、
すなわち算術演算よりかなり速く桁送りを実行で
きるようにハードウエアを作ることができれば、
1のストリングと0のストリングの両方のシフト
オーバは、さらに速度を高めることにらるであろ
う。この演算は111…1=1000…0−1であるか
ら可能である。右側の式は、1のストリングの長
さに関係なく1を二つしか含んでいない。従つて
どんな1つストリングもそのストリングの最下位
ビツト位置において1を減算し、そのストリング
の最上位ビツトの先のビツト位置に1を加えるこ
とに引直しできる。そのストリングの残りは単に
シフトオーバされるだけでよい。これを下の例で
例示する。
【表】 と加算
本発明の設計において、浮動小数点処理装置
は、部分積を最大4ビツト位置だけ桁送りし、そ
の上1機械サイクル内に算術演算(加算または減
算)を加能にする組合せシフタを含んでいる。乗
数はまた、1機械サイクル中に試験のために最大
4ビツトだけ桁送りされることがある。そのとき
は、上の例における第1の方法は、完成するため
に4機械サイクル、すなわち 桁送り1と減算 桁送り3と加算 桁送り1と減算 桁送り3と加算 を必要とする。一方、第2の方法は完了するに3
機械サイクルしか必要としない、すなわち 桁送り1と減算 桁送り3と減算 桁送り4と加算 である。この設計では、1と0の両方をシフトオ
ーバする第2の方法がより良い性能を出すために
用いられている。 孤立1が0のストリングの中に起るかまたは孤
立0がストリングの中に起るかのいずれかのとき
に、この方法の追加の改良が得られる。この改要
方法では、乗数は、1または0のいずれかのスト
リングを識別するため2ビツトを「先取り」する
ことにより調べられる。ストリングは、上述され
かつ以下の例に示すように二つ以上の連続した同
一のビツトとして定義されている。
【表】 一つのストリング内でストリングと異なる単一
ビツトを孤立ビツトという。この孤立ビツトの例
を以下の例に示す。
【表】 この改良した方法の利点を強調するために、次
の例は1つのストリングの中に孤立0を含み、未
修正のアルゴリズムが用いられている。
【表】
リングの終り) 〓
先の例において、加算は23ビツト位置において
行われて、そのあとに次のビツト位置(24)にお
いて減算が行われる。これら二つの演算を孤立0
が置かれているところで減算を行うことによつて
一つの算術演算に縮小できる。これは(−24)+
(23)=(−23)であるから可能である。従つて先
の例は次に示すように縮小できる。
【表】 従つてこの例は四つではなく三つの機械サイク
ルしか実行する必要がない。 本発明の浮動小数点処理装置は次の例に示すよ
うに0のストリングの中の孤立1を取扱う。最後
の演算が加算であつたと仮定して、0のストリン
グが提示されるものとする、すなわち
【表】 この例は、2機械サイクルしか実行する必要が
ない。従つて、上述の方法に従つて乗算を実行す
るのに一般化した規則を作ることができる。
【表】 これらの規則を次の例で説明できる。
【表】 〓

Claims (1)

  1. 【特許請求の範囲】 1 被乗数に乗数を掛けるために複数の乗算サイ
    クルで演算できる乗算装置であり、 第1および第2の入力に加わる演算数について
    加減算を行う算術論理装置18と、 前記算術論理装置の前記第1の入力に接続され
    た被乗数レジスタ22と、 シフタ20を介して前記算術論理装置の第2の
    入力へ接続された部分積レジスタ24と、 乗数の桁送りを行うMQレジスタ12と、 前記MQレジスタから右へ桁送りされた乗数ビ
    ツトを記憶するパイプラインレジスタ601と、 前記MQレジスタと前記パイプラインレジスタ
    に接続された前記シフタ、MQレジスタおよび部
    分積レジスタの桁送りを制御するシフト復号器6
    05,606とを備え、 前記パイプライン・レジスタが前記MQレジス
    タから桁送りされた4ビツトを記憶できること、 前記シフト復号器が、各乗算サイクルごとに、
    乗数の奇数ビツトまたは偶数ビツトが前記パイプ
    ラインレジスタの最も右の桁にあるかどうかを指
    示するバイアス信号、加算または減算の演算を行
    うように前記算術論理装置を制御する算術論理指
    令、および前記シフタを制御するシフト指令を発
    生すること、および 一つの乗算サイクルの間に発生したバイアス信
    号および算術論理指令が前記パイプラインレジス
    タからの出力および前記MQレジスタの最下位ビ
    ツトとともに次の乗算サイクルで前記シフト復号
    器に加えられて、前記次の乗算サイクルのための
    バイアス信号、算術論理指令およびシフト指令を
    発生すること、を特徴とする乗算装置。 2 前記シフト復号器が固定記憶装置からなる特
    許請求の範囲第1項に記載の乗算装置。 3 前記MQレジスタが前記乗算サイクルの各々
    に2ビツトまたは4ビツトのいずれかを前記MQ
    レジスタから前記パイプラインレジスタへ桁送り
    するように制御されることをさらに特徴とする特
    許請求の範囲第1項に記載の乗算装置。 4 前記シフタを1,2,3または4ビツトの桁
    送りを生ずるように前記シフト指令によつて制御
    でき、前記MQレジスタが各乗算サイクルごとに
    2または4乗数ビツトのいずれかを前記パイプラ
    インレジスタに桁送りするように制御される特許
    請求の範囲第1項に記載の乗算装置。 5 前記MQレジスタが並列に桁送りするように
    接続された二つのレジスタセグメントからなり、
    前記レジスタセグメントの一方が奇数の乗数ビツ
    トを記憶し、他方の前記レジスタセグメントが偶
    数の乗数ビツトを記憶することをさらに特徴とす
    る特許請求の範囲第1項に記載の乗算装置。 6 1または2シフトパルスのいずれかが各乗算
    サイクル毎に前記レジスタセグメントの両方に加
    えられて、2または4乗数ビツトのいずれかが各
    乗算サイクルごとに前記MQレジスタから前記パ
    イプラインレジスタへ桁送りされる特許請求の範
    囲第5項に記載の乗算装置。
JP6581A 1979-12-31 1981-01-05 Multiplier decoding signal using parallel multiplication register Granted JPS56145427A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/108,339 US4334284A (en) 1979-12-31 1979-12-31 Multiplier decoding using parallel MQ register

Publications (2)

Publication Number Publication Date
JPS56145427A JPS56145427A (en) 1981-11-12
JPH0139131B2 true JPH0139131B2 (ja) 1989-08-18

Family

ID=22321638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6581A Granted JPS56145427A (en) 1979-12-31 1981-01-05 Multiplier decoding signal using parallel multiplication register

Country Status (2)

Country Link
US (1) US4334284A (ja)
JP (1) JPS56145427A (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2115190B (en) * 1982-02-10 1985-11-20 Singer Co Data word normalisation
US4577282A (en) 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4586131A (en) * 1982-02-22 1986-04-29 Texas Instruments Incorporated Microcomputer having data move circuits for within-memory shift of data words
US4491910A (en) * 1982-02-22 1985-01-01 Texas Instruments Incorporated Microcomputer having data shift within memory
EP0108664A3 (en) * 1982-10-04 1987-10-28 Fairchild Semiconductor Corporation Floating point microprocessor
US4928223A (en) * 1982-10-06 1990-05-22 Fairchild Semiconductor Corporation Floating point microprocessor with directable two level microinstructions
DE3335424A1 (de) * 1983-09-29 1985-04-18 Siemens AG, 1000 Berlin und 8000 München Multiplikationswerk und verfahren zu dessen betrieb
AU1486388A (en) * 1987-02-10 1988-09-14 Davin Computer Corporation Parallel string processor and method for a minicomputer
US5073864A (en) * 1987-02-10 1991-12-17 Davin Computer Corporation Parallel string processor and method for a minicomputer
US4896133A (en) * 1987-02-10 1990-01-23 Davin Computer Corporation Parallel string processor and method for a minicomputer
AU1933788A (en) * 1987-08-20 1989-03-09 Davin Computer Corporation Parallel string processor and method for a minicomputer
US5586288A (en) * 1993-09-22 1996-12-17 Hilevel Technology, Inc. Memory interface chip with rapid search capability
US7609895B2 (en) * 2004-11-16 2009-10-27 Pegasus Imaging Corporation Methods and apparatus for performing MQ-decoding operations
JP4935619B2 (ja) * 2007-10-23 2012-05-23 ヤマハ株式会社 デジタル信号処理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50110242A (ja) * 1974-02-06 1975-08-30
JPS5168743A (ja) * 1974-12-12 1976-06-14 Fujitsu Ltd Jozansochi
JPS5317043A (en) * 1976-07-07 1978-02-16 Gusev Valerij F Device for multiplying supplementary code number
JPS53133344A (en) * 1977-04-27 1978-11-21 Panafacom Ltd Floatinggpoint arithmetic processing system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3192363A (en) * 1961-05-24 1965-06-29 Ibm Binary multipler for skipping a string of zeroes or ones
US3730425A (en) * 1971-05-03 1973-05-01 Honeywell Inf Systems Binary two{40 s complement multiplier processing two multiplier bits per cycle
US3725649A (en) * 1971-10-01 1973-04-03 Raytheon Co Floating point number processor for a digital computer
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
US4208722A (en) * 1978-01-23 1980-06-17 Data General Corporation Floating point data processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50110242A (ja) * 1974-02-06 1975-08-30
JPS5168743A (ja) * 1974-12-12 1976-06-14 Fujitsu Ltd Jozansochi
JPS5317043A (en) * 1976-07-07 1978-02-16 Gusev Valerij F Device for multiplying supplementary code number
JPS53133344A (en) * 1977-04-27 1978-11-21 Panafacom Ltd Floatinggpoint arithmetic processing system

Also Published As

Publication number Publication date
US4334284A (en) 1982-06-08
JPS56145427A (en) 1981-11-12

Similar Documents

Publication Publication Date Title
US4484259A (en) Fraction bus for use in a numeric data processor
US4338675A (en) Numeric data processor
JP4980834B2 (ja) 算術プロセッサ
JP3605181B2 (ja) 掛け算累算命令を使用したデータ処理
USRE33629E (en) Numeric data processor
US4509144A (en) Programmable bidirectional shifter
JPH0139131B2 (ja)
US4390961A (en) Data processor performing a decimal multiply operation using a read only memory
US6295597B1 (en) Apparatus and method for improved vector processing to support extended-length integer arithmetic
US5426600A (en) Double precision division circuit and method for digital signal processor
EP0040279A2 (en) Binary divider
JP3081710B2 (ja) オーバーフロー検出機能付き乗算装置
US6728744B2 (en) Wide word multiplier using booth encoding
US4967343A (en) Pipelined parallel vector processor including parallel configured element processors for processing vector elements in parallel fashion
US4477879A (en) Floating point processor architecture which performs square root by hardware
US5144576A (en) Signed digit multiplier
JPH0113130B2 (ja)
GB2196453A (en) Treatment of floating point numbers
US4486848A (en) Microprocessor parallel additive execution of a computer count ones instruction
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
JPS6051733B2 (ja) 指数関数演算装置
US3001708A (en) Central control circuit for computers
US4817048A (en) Divider with quotient digit prediction
US5317531A (en) Apparatus for reducing the size of an arithmetic and logic unit necessary to practice non-restore division
US6240540B1 (en) Cyclic redundancy check in a computer system