JPH10143355A - 種々の書式のオペランドを高効率で乗算する能力を有するマイクロプロセッサ及びその演算方法 - Google Patents

種々の書式のオペランドを高効率で乗算する能力を有するマイクロプロセッサ及びその演算方法

Info

Publication number
JPH10143355A
JPH10143355A JP9299021A JP29902197A JPH10143355A JP H10143355 A JPH10143355 A JP H10143355A JP 9299021 A JP9299021 A JP 9299021A JP 29902197 A JP29902197 A JP 29902197A JP H10143355 A JPH10143355 A JP H10143355A
Authority
JP
Japan
Prior art keywords
operand
bit
multiplication
multiplier
partial product
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.)
Pending
Application number
JP9299021A
Other languages
English (en)
Inventor
Shannon A Wichman
エイ.ウイッチマン シャノン
Tuan Q Dao
キュー.ダオ ツアン
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.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
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 Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of JPH10143355A publication Critical patent/JPH10143355A/ja
Pending 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/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5306Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel with row wise addition of partial products
    • 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/5334Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
    • G06F7/5336Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
    • G06F7/5338Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
    • 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/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49994Sign extension

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)
  • Advance Control (AREA)

Abstract

(57)【要約】 【課題】 符号付き乗算及び符号なし乗算を遂行する乗
算器を有する浮動小数点装置を含むマイクロプロセッサ
を提供する。 【解決手段】 乗算器86内で、選択回路64は、乗算
の種類を表示する信号SIGNXに応答して、符号付き
乗算では被乗数の最上位ビットS/MSBを符号ビット
信号線路SGNに供給し、符号なし乗算では低論理レベ
ルを線路SGNに供給する。被乗数を1ビット位置だけ
右へけた送りした状態61の最上位ビット内に線路SG
Nの状態が複写される。乗数に応答してブースエンコー
ダ68が制御線路Z、N、Xに、それぞれ、零、負、絶
対値制御信号を発生する。部分積発生器66がブースエ
ンコーダ68からの制御信号に従って発生した部分積P
Pは、接頭辞論理70が零、負制御信号と線路SGN上
の信号とから発生した符号拡張接頭辞FPXを付加さ
れ、乗算器アレー72内で合計されて積になる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、集積回路の分野、
特にマイクロプロセッサ集積回路内の演算電子回路に関
する。
【0002】技術上根本的である通り、算術計算は、現
代のマイクロプロセッサによって遂行される重要な機能
である。現代のマイクロプロセッサは、整数算術能力の
みならず、また浮動小数点書式(すなわち、仮数部及び
指数部に加えて、符号ビット)で表現された数に算術演
算を容易に遂行するためにオンチップ浮動小数点装置
を、いまでは通常に含んでいる。浮動小数点算術能力
は、信号処理のような複雑な問題においてしばしば出合
うように、計算集中(computation−int
ensive)プログラムの実行にもちろん有効であ
る。
【0003】従来のマイクロプロセッサは、広範囲の算
術演算を遂行するに当たって乗算に依存し、またそれゆ
え乗算器電子回路に極めて多く依存する。従来の調査研
究に従えば、高性能乗算器電子回路は、利用可能な回路
技術を用いて容易に実現されると云ってよい。その結
果、積和演算(multiply−and−add o
perations)を敏速に遂行する現代のマイクロ
プロセッサの能力の利点を活して、繰返し乗算を伴う近
似アルゴリズムの使用を通して除算、平方根、及び離散
フーリエ変換のような演算を遂行することは、周知であ
る。
【0004】アレー乗算器は、従来のマイクロプロセッ
サ回路に使用された周知の種類の乗算器である。一般
に、アレー乗算器は、一連の部分積を加算することによ
って演算し、その場合これらの部分積は各乗数ビットの
値に従って選択された被乗数のけた送りされた(shi
fted)複写である。これらの部分積は、一緒に加算
されて最終和に達し被乗数と乗数との積となる。分離部
分積発生器が加算器アレーと組み合わせて使用される
か、又は代わりに加算器アレー内の各セルが特定の乗数
ビットと被乗数ビットを受け取ることがある。多くのア
レー乗算器はブース(Booth)コード化を含み、こ
れは合計しようとする部分積の数を減少させる周知の技
術である。ブースコード化は、部分積として供給しよう
とする被乗数の倍数を選択するために乗数中の隣接ビッ
トを調べる。例えば、2ビットブースコード化は部分積
として0又は±1×被乗数のどちらかを選択し、3ビッ
トブースコード化は±0×、±1×、又は±2×被乗数
から部分積を発生する。
【0005】符号付きオペランドは、乗算プロセスに複
雑性を追加する。技術上根本的である通り、符号付き2
進数は典型的に先頭符号ビットによって表される。符号
付オペランドはアレイ乗算器によって幾つかの方法で取
り扱われる。最も簡単な技術は、加算器の全幅にわたり
部分積をその符号ビットだけ単に拡張し、符号情報を加
算器の全長に沿って伝搬させることである。この簡単な
アプローチは、下位部分積加算器の各々をその結果の全
幅にわたって(例えば、各部分積のビット数の2倍ま
で)拡張することを必要とし、これは、もちろん、実現
に多量のチップ面積を費やす。この困難は、けた上げを
1つの加算器段から次の段へ伝搬し、それによって、こ
れらの加算器段の必要なビット幅を狭めるのに充分なビ
ット(enough bits)まで各部分積内の符号
ビット(sign bit)をただ拡張することによっ
て、克服される。符号拡張は、ボーフ他、「2の補数並
列アレー乗算アルゴリズム」、コンピュータに関する論
文誌(米国電気電子学会、1973年12月)、ページ
143〜145(Baugh,et al.,“ATw
o’s Complement Parallel A
rray Multiplication Algor
ithm”,Trans Computer(IEE
E,Dec.1973),pp.143−145)に説
明されている。
【0006】しかしながら、符号拡張ビットの発生は、
乗算されるオペランドの型式に依存する。IEEE 7
54 浮動小数点規格に従う浮動小数点オペランドの乗
算は典型的にアレー乗算器の外部で別個に取り扱われ、
更に、符号なし整数乗算もまたオペランド符号の取扱い
を必要としない。しかしながら、ブースコード化は負部
分積を伴うことがあるので、符号拡張は、浮動小数点オ
ペランド又は符号なし整数オペランドについて演算する
アレー乗算器内に依然として必要とされる。符号付き整
数の乗算は、ブースエンコーダ乗算器内では特に、その
符号拡張が符号付き整数(すなわち、負整数)オペラン
ドに対してとブースコード化された浮動小数点オペラン
ド及び正整数(又は符号なし整数)オペランドに対する
のと異なるので、符号拡張をなおさら複雑にする。
【0007】多くの従来アーキテクチャでは、アレー乗
算器は、単一オペランド型式に従って実現される。これ
は、乗算に先立ちオペランドを他の書式に再書式付け
(reformatting)することを必要とする。
このような再書式付けに必要とされる追加の電子回路及
び時間が乗算に必要とされる時間に加わり、乗算が繰り
返し遂行される離散フーリエ変換のような演算を実行す
るとき特に不利である。
【0008】オペランド変換に起因する性能上の犠牲を
回避するために、様々なオペランド型式に対して分離乗
算器電子回路を提供することも、もちろん望ましくな
い。したがって、符号なし整数オペランド、符号付き整
数オペランド、及び浮動小数点オペランドを効率的に乗
算できる単一乗算器アレーを提供することが望ましい。
【0009】更に背景として、米国特許第5,195,
051号は、浮動乗数点オペランド、符号なし整数オペ
ランド、及び符号付き整数オペランドを乗算する4ビッ
トブースコード化アレー乗算器を説明している。この参
考資料によれば、部分積符号ビットは、浮動小数点及び
符号なし整数の場合その部分積に対する4ビットブース
コード化群の最上位乗数ビットによって発生され、及び
符号付き整数の場合この最上位乗数ビットと最上位被乗
数ビットとの排他的ORによって発生される。
【0010】
【発明が解決しようとする課題】本発明の目的は、浮動
小数点オペランド、符号なし整数オペランド、及び符号
付き整数オペランドを含む種々の型式のオペランドを乗
算する能力のある乗算器電子回路を備えるマイクロプロ
セッサを提供することにある。
【0011】本発明の更に目的は、このような乗算をオ
ペランド変換を必要とすることなく効率的に遂行するこ
のようなマイクロプロセッサを提供することにある。
【0012】本発明の更に目的は、乗算器アレー内の加
算器電子回路の幅を極力狭くするために、符号拡張を各
オペランド型式の乗算に使用するこのようなマイクロプ
ロセッサを提供することにある。
【0013】本発明の更に目的は、ブースコード化され
たアレー乗算器内のこのような乗算能力を提供すること
にある。
【0014】本発明の更に目的は、マイクロプロセッサ
の浮動小数点装置内にこのような乗算能力を提供するこ
とにある。
【0015】本発明の他の目的及び利点は、次の詳細な
説明をその添付図面と共に参照するならば当業者に明ら
かになろう。
【0016】
【課題を解決するための手段】本発明は、マイクロプロ
セッサの乗算器電子回路内に実現することができる。符
号付き整数乗算を表示する制御信号と最上位オペランド
ビットとの論理組合わせが、その被乗数に対する新最上
位ビットを発生するために使用される。これらの信号
は、乗数のブースコード化の結果と組み合わされて、積
を形成する加算に先立ち、各部分積の接頭辞(pref
ix)を発生するために使用される。接頭辞は、符号付
き整数乗算用のものと他の乗算用のものとでは異なり、
このことが同じアレー乗算器を異なる型式のオペランド
の乗算に使用可能にする。
【0017】
【発明の実施の形態】図1に示す実例のデータ処理シス
テム300は実例のスーパスカラパイプラインマイクロ
プロセッサ10を含み、この中に本発明の好適実施例が
実現される。これについて説明する。本発明は種々のア
ーキテクチャのマイクロプロセッサ内に利用されてよい
と考えられるので、云うまでもなく、システム300の
及びマイクロプロセッサ10のアーキテクチャはただ例
としてここに説明される。したがって、この詳細な説明
を参照したならば、当業者は他のマイクロプロセッサア
ーキテクチャ内で本発明を容易に実現することができる
と考えられる。更に、シリコン基板、絶縁物上シリコ
ン、ガリウム−ヒ素で完成された集積回路の製造技術、
及びその他の製造技術を用いて、かつMOS、CMO
S、双極性、BiMOS装置製造、又はその他の装置製
造を使用して、単一チップマイクロプロセッサ及びマイ
クロコンピュータ内に、又は多数チップマイクロプロセ
ッサ等内に本発明を実現できると考えられる。
【0018】図1に示されたように、マイクロプロセッ
サ10は、外部バスBUSを経由して他のシステム装置
に接続される。外部バスBUSは、この例では、単一バ
スとして示されているが、外部バスBUSはPCIロー
カルバスアーキテクチャを利用する従来のコンピュータ
で既知であるように、異なる速度及びプロトコルを有す
る多重バスを表してよい。システム300は、通信ポー
ト303(モデムポート及びモデム、ネットワークイン
タフェース等を含む)、グラフィックディスプレイシス
テム304(ビデオメモリ、ビデオプロセッサ、グラフ
ィックモニタを含む)、ダイナミックRAM(DRA
M)を介して典型的に実現され、かつメモリスタック3
07を含むことがある主メモリシステム305、入力装
置306(キーボード、ポインティング装置、及びこれ
らの装置用インタフェース電子回路)、及びディスクシ
ステム308(ハードディスク駆動装置、フロッピーデ
ィスク駆動装置、及びCD−ROM駆動装置を含む)の
ような従来のサブシステムを含む。したがって、図1の
システム300は、技術上いまは普通であるような、従
来のデスクトップコンピュータ又はワークステーション
に相当すると考えられる。もちろん、当業者に認められ
うように、マイクロプロセッサ10の他のシステムによ
る実現もまた本発明から利益を得ることができる。
【0019】マイクロプロセッサ10は外部バスBUS
に接続されたバスインタフェース装置(以下、BIU)
8を含み、これはマイクロプロセッサ10とシステム3
00内の他の素子と間の伝達を制御しかつ実施する。B
IU8はこの機能を遂行する適当な制御及びクロック電
子回路を含み、この電子回路は演算速度を向上するため
に書込みバッファを含み、かつ内部マイクロプロセッサ
演算の結果を外部バスBUSタイミング制約と同期させ
るようにタイミング電子回路を含む。マイクロプロセッ
サ10はまたクロック発生及び制御電子回路20を含
み、この電子回路はシステムクロックSYSCLKに基
づいてクロック位相を発生する。この例では、クロック
発生及び制御電子回路20は、システムクロックSYS
CLKからバスクロックBCLK及びコアクロックPC
LKを発生する。
【0020】図1で明白なように、マイクロプロセッサ
10は内部キャッシュメモリの3つのレベルを有し、こ
れらの最高のものはレベル2キャッシュ6であって、内
部バスを経由してBIU8に接続される。この例では、
レベル2キャッシュ6は、統一(unified)キャ
ッシュであり、かつ、マイクロプロセッサ10によって
提供されるバストラフィックの多くがレベル2キャッシ
ュ6を経て達成されるように、BIU8を経て外部バス
BUSからの全てのキャッシュ可能(cacheabl
e)データ及び全てのキャッシュ可能命令を受け取るよ
うに構成される。もちろん、マイクロプロセッサ10
は、或る決まったバス読出し及び書込みを「キャッシュ
不可能」として取り扱うことによってキャッシュ6の回
りでバストラフィックを実施してよい。図2に示された
ように、レベル2キャッシュ6は、2つのレベル1キャ
ッシュ16に接続される。レベル1データキャッシュ1
dはデータに専用されるのに対して、レベル1命令キ
ャッシュ16i は命令に専用される。マイクロキャッシ
ュ18は、この例では、全二重ポート付きレベル0デー
タキャッシュである。
【0021】図1に示されたように、マイクロプロセッ
サ10は、スーパスカラ型式であり、それゆえ、多数の
実行装置を含む。これらの実行装置は、条件分岐演算、
整数演算、及び論理演算用2つの論理演算装置(以下、
ALU)420 、421 、浮動小数点装置(以下、FP
U)31、2つのロード/記憶装置400 、401 、及
びマイクロシーケンサ48を含む。2つのロード/記憶
装置40は、マイクロキャッシュ18への真並列アクセ
ス用にこれへの2つのポートを利用し、かつまたレジス
タファイル39内のレジスタへのロード動作及び記憶動
作を遂行する。データマイクロ翻訳ルックアサイド(l
ookaside)バッファ(μTLB)38は、従来
のように、論理データアドレスを物理アドレスに翻訳す
るために備えられる。
【0022】これらの多数実行装置は、各々が7段の多
数パイプラインを介して、ライトバック(write−
back)を用いて、制御される。これらのパイプライ
ン段は、次の通り。
【0023】F 取出し: この段は、命令アド
レスを発生しかつ命令キャッシュ又はメモリから命令を
読み出す。 PD0 プリデコード段0: この段は、3つまでの
x86型命令の長さ及び開始位置を判定する。 PD1 プリデコード段1: この段は、取出しx8
6型命令バイトを抽出しかつデコードするためこれらを
固定長書式で記録する。 DC デコード: この段は、x86命令をアトミ
ック演算(以下、AOps)に翻訳する。 SC スケジュール: この段は、4つまでのAO
psを適当な実行装置(FPU31を含む)に割り当て
る。 OP オペランド: この段は、AOpsによって
表示されたレジスタオペランドを検索する。 EX 実行: この段は、AOps及び検索された
オペランドに従って実行装置をランさせる。 WB ライトバック: この段は、実行の結果をレ
ジスタ又はメモリに記憶する。
【0024】このパイプラインは、「整数パイプライン
(integer pipeline)」と以下に称さ
れ、本発明の好適実施例に従ってFPU31の浮動小数
点パイプラインと組み合わさって動作する。
【0025】図1に戻って参照すると、上に挙げたパイ
プライン段は、マイクロプロセッサ10内の種々の機能
ブロックによって遂行される。取出し装置26は、命令
マイクロ翻訳ルックアサイドバッファ(μTLB)22
を経由して命令ポインタから命令アドレスを取り出し
て、レベル1命令キャッシュ16i に供給する。命令キ
ャッシュ16i は命令データの流れを発生して取出し装
置26へ送り、後者は、立ち代わって、命令コードを所
望の順序に従ってプリデコード0段28及びプリデコー
ド1段32へ転送する。これら2つの段は分離パイプラ
イン段として動作し、かつ3つまでのx86命令を位置
決めしかつこれらをデコーダ34に供給するように一緒
に動作する。プリデコード0段28は3つだけの可変長
x86命令の寸法及び位置を決定するのに対して、プリ
デコード1段32は、デコードを容易にするために、多
数バイト命令を固定長書式に翻訳する。デコーダ34
は、この例では、4つの命令デコーダを含み、これらの
各々はプリデコード1段32から固定長x86命令を受
け取りかつ1つから3つのAOpsを発生する能力を有
し、これらの演算は実質的にRISC命令に等しい。ス
ケジューラ36は、デコーダ34の出力におけるデコー
ド待ち行列から4つまでのAOpsを読み出し、かつこ
れらのAOpsを適当な実行装置に割り当てる。オペラ
ンド装置44は、マルチプレクサ45を経てスケジュー
ラ36及びまたマイクロコードROM46から入力を受
け取り、かつ命令の実行に使用されるレジスタオペラン
ドを取り出す。更に、この例によれば、オペランド装置
44は、記憶する準備を整えたレジスタへ結果を送るた
めにオペランド転送を実行し、かつまたロード及び記憶
型のAOps用アドレス発生を遂行する。
【0026】マイクロシーケンサ48及びマイクロコー
ドROM46はマイクロコード入口(entry)AO
psの実行に当たってALU42及びロード/記憶装置
40を制御する。このAOpsは、一般に、サイクル中
実行する最終AOpsである。この例では、マイクロシ
ーケンサ48は、マイクロコードROM46に記憶され
たマイクロ命令を通して順序動作して、複雑なx86命
令又は稀に使用されるx86命令、例外及び割込みを取
り扱うセグメントレジスタ又は制御レジスタを修正する
x86命令、及び(REP命令、及び全てのレジスタを
PUSH及びPOPする命令のような)多サイクル命令
のようなマイクロコード化マイクロ命令に応答して制御
を実施する。
【0027】マイクロプロセッサ10はまた、製造の完
了の際、及びリセット及び他の事象の際にマイクロプロ
セッサ10の演算の妥当性を保証するJTAG走査試
験、及び或る決まった組込み自己試験(BIST)機能
を制御する電子回路24を含む。
【0028】図2は、本発明のこの実施例によるFPU
31の構成、及びマイクロプロセッサ10の他の機能ブ
ロックとのその相互接続を示す。これについて詳細に説
明する。云うまでもなく、本発明は他のアーキテクチャ
及び設計に従って構成される浮動小数点装置の実現にも
有益であるので、FPU31のこの構成はただ例として
示されている。
【0029】FPU31はFPU待ち行列段49を含
み、後者は現に命令バッファであって、マイクロプロセ
ッサ10の整数部とFPU31の実行段との間にある。
FPU待ち行列段49は、整数マイクロシーケンサ48
の制御下にあるマルチプレクサ45を経て、(マイクロ
コード命令の場合)スケジューラ36から又はマイクロ
シーケンサ48からFPU命令を受け取る。FPU待ち
行列段49はまた、マイクロコード化FPU命令を実行
するために、FPUマイクロシーケンサ47からFPU
命令を受け取る。
【0030】FPU待ち行列段49はFPUスケジュー
ラ50に接続され、FPUスケジューラ50は、立ち代
わって、マイクロプロセッサ10の整数部内のスケジュ
ーラ36とは別個に、浮動小数点命令に対するスケジュ
ーリング機能を遂行する。FPUスケジューラ50は論
理であって、この論理は、FPU待ち行列段49からこ
れに転送される命令に応答して、かつまたレジスタファ
イル39からこれに転送されるアドレス情報に応答し
て、スケジューラ36と同じように動作する。レジスタ
ファイル39は少なくとも1つのレジスタFLS TA
Gを含み、このレジスタはFPU31が使用しようとす
るデータオペランドの書式を記憶する。スヌープ(Sn
oop)論理37は、例えばレジスタFLS TAGに
記憶される浮動小数点命令に相当するロード/記憶動作
用パイプラインを監視するためにレジスタファイル39
に関連している。スヌープ論離37は、浮動小数点ロー
ド/記憶指示に相当する或る決まった情報をコード化し
かつこの情報をバスLS_TAGを通してFPUスケジ
ューラ50に転送する。浮動小数点AOps及びロード
/記憶指示に応答して、FPU31に伝達された命令を
実行するためにFPUスケジューラ50は制御信号をF
PU31内に発する。
【0031】この例では、FPU31は、それ自身のレ
ジスタファイル52を含む。FPUレジスタファイル5
2に含まれたレジスタは浮動小数点状態語(FSW)、
浮動小数点制御語(FCV)、及び8レジスタデータス
タック(x86命令の組からなる)を含む。割込み操作
に有効な5つの浮動小数点環境レジスタは、これらのレ
ジスタがFPU31によって内部的に使用されないの
で、レジスタファイル39内に含まれる(図2にENV
REGとして示されている)。
【0032】FPUルータ54は、FPUスケジューラ
50と一緒に動作して、所望のオペランドをFPU31
の実行段へ転送する。FPUルータ54は、多数ソース
から浮動小数点オペランドを受け取る。メモリから検索
されたオペランドは、(それぞれ、バスLOAD_DA
TA0、LOAD_DATA1にデータを供給する)ロ
ード/記憶装置400 、401 からFPUルータ54へ
転送される。FPUルータ54はまた、FPUレジスタ
ファイル52、定数データROM55、及び(先行命令
の結果からのライトバックデータを供給する)FPU第
3実行段60から浮動小数点オペランドを受け取る。定
数データROM55は、浮動小数点命令実行に、特に超
越関数評価及び反復集束型除算に使用されることがある
通常の浮動小数点定数
【外1】 を記憶する。
【0033】本発明のこの好適実施例によれば、FPU
スケジューラ50は、3つのソースからの命令、制御信
号、及び指示(directives)、すなわち、バ
スLS_TAGを通してのロード/記憶装置40からの
指示、FPU待ち行列段49からのデコードされた制御
信号及び演算コード(opcodes)、及び先に開始
(launched)されかつ実行された単一パス命令
に応答してFPU第3実行段60によって発生されたラ
イトバックバスWB(writeback bus)か
らのアドレス情報を受け取る。これらの入力に基づい
て、FPUスケジューラ50は、これらの命令、制御信
号、及び指示の宛先であるリソース間の依存性、また
は、パイプライン衝突を検査する。既にパイプライン内
にある浮動小数点AOpsに対するソース及び宛先リソ
ースが、上掲の機能を遂行するに当たって各新命令又指
示に関してFPUスケジューラ50によって記録されか
つ分析される。FPUスケジューラ50はまた、例え
ば、浮動小数点状態語FSW及び浮動小数点制御語FC
Wを介して、機械状態を更新しかつ維持する。非正規化
(denormalized)オペランド及び他の例外
の識別を含む状態情報は、各浮動小数点結果毎に浮動小
数点状態語FSWからレジスタファイル39内の環境レ
ジスタE REG及びFPU待ち行列段49を経てFP
U誤りレジスタ62に記憶されるように伝達される。
【0034】この情報に基づいて、FPUスケジューラ
50内スケジューリングの論理が次のサイクル内の実行
のために動作を開始するべきか判定する。依存性か検出
されない場合及び現行スケジュールされた命令がスタッ
ク内のレジスタからの読出し又はこれへの書込みを含む
場合、FPUスケジューラ50は、スケジュールされつ
るある命令に従って先に発せられたイネーブル信号を妥
当検査するためにFPUレジスタファイル52に命令を
発し、かつ開始されつつある命令に従ってFPU第1実
行段56へ転送する適当なオペランドを選択するために
FPUルータ54に対して信号を発生する。単一パス命
令は、FPU第1実行段56への制御信号に応答してF
PUスケジューラ50によって開始される。
【0035】この命令に従って、FPUスケジューラ5
0はまた、(線路μFPIを通して)FPUマイクロシ
ーケンサ47へ責任ある浮動小数点命令及び相当するマ
イクロコード入口アドレスを発することによって浮動小
数点マイクロコード化シーケンスを開始してよく、マイ
クロシーケンサ47は、立ち代わって、この入口アドレ
スからマイクロコードルーチンを開始させて、実行用命
令の次の順序を発生する。FPUマイクロシーケンサ4
7は、浮動小数点命令を発しかつ制御し、これらの命令
はFPU実行段56、58、60を通る多重パスを必要
とする。FPUマイクロシーケンサ47は、技術上従来
のように、マイクロROMを含み、このROMはスケジ
ューラ50が発生したマイクロコード入口アドレスによ
って呼び出された実行可能命令を記憶する。FPUマイ
クロシーケンサ47のアーキテクチャは、分岐常時型
(branch−always type)のものであ
って、ここでは次のマイクロ命令アドレスが現行のマイ
クロ命令内の4つの分岐の1つから判定される。マイク
ロコードシーケンサの入口で、FPUマイクロシーケン
サ47は、FPUスケジューラ50によるスケジューリ
ングのために、FPU待ち行列段49へ一続きの実行可
能命令コードを供給する。
【0036】衝突も依存性も検出されない正規動作で
は、毎サイクルに新浮動小数点命令がFPUスケジュー
ラ50を通過する。依存性が検出される場合、FPUス
ケジューラ50は、パイプラインをストール(立往生
(stall))させる。ストールのときにスケジュー
ルされつつある命令は進行せず、依存性又は例外が一掃
されるまで保留される。(例えば、非正規(denor
mal)オペランドの際の命令の実行、又は偽番号(n
ot−a−number)NaNをもたらす実行に先立
ち)早期命令の実行が正規様式で完了しない原因となる
衝突の場合、FPUスケジューラ50は放棄シーケンス
を発することになり、この場合、浮動小数点パイプライ
ン内に現在ある命令はフラッシュ(flushed)さ
れ、かつ浮動小数点シーケンスが再開始される。
【0037】FPUスケジューラ50はまた、ライトバ
ック及び機械状態の更新を含む命令完了を取り扱う。偽
番号NaN、あふれ、下位けたあふれ等のような、浮動
小数点演算の実行から生じるなんらかの例外の場合、ス
ケジューラ50はまた、これらの例外を取り扱い、かつ
これらの例外を、上に挙げたように、浮動小数点状態語
FSWを介して整数パイプラインに報告する責任を有す
る。スケジューラ50及びルータ54は、FPU31へ
のスケジューリング機能の分配に必要とされるに従っ
て、整数論理を備えるインタフェースを提供する。
【0038】図3は、EPU第1、第2、第3実行段5
6、58、60のデータ経路を示す。これについて説明
する。上に挙げたように、実行段56、58、60の各
々は制御パイプライン及び状態パイプラインを含み、こ
れらに沿って制御信号及び状態情報が相当するデータ経
路内のオペランドと一緒に走行する。
【0039】図3は、本発明の好適実施例のFPU第1
実行段56のデータ経路部分の構成を示す。オペランド
OPA及びOPBは、ルータ54から受け取られ、か
つ、それぞれ、レジスタ81A、81Bに記憶される。
本発明のこの実施例では、FPU第1実行段56は3つ
のデータ経路を含む。1つのデータ経路は浮動小数点オ
ペランドOPA及びOPBの指数を取り扱い、第2デー
タ経路は加算命令及び減算命令に対してオペランドOP
Aの仮数部とOPBの仮数部とを整列させ、及び第3デ
ータ経路は乗算命令及び除算命令に対してオペランドO
PAとOPBを乗算する。それゆえ、FPU第1実行段
56内の指数加算器82は、それぞれ、オペランドOP
A、OPBの指数部EXPA、EXPBを受け取り、か
つ4つの結果、すなわち、乗算に使用されたEXPA+
EXPB−バイアス、除算に使用されたEXPA−EX
PB+バイアス、浮動小数点加算及び減算に使用された
EXPB−EXPA及びEXPA−EXPBを生じる。
指数選択器88は、現行命令に対して発生された、FP
Uスケジューラ50からの制御信号の制御の下に、指数
加算器のこれら4つの結果の中から選択する。指数選択
器88の出力は指数値を発生し、これをFPU第2実行
段58へ転送する。FPU第1実行段56からのこれら
の出力及び他の出力は、安定目的のために典型的にレジ
スタに記憶された出力である(明瞭のために図3にはこ
れらのレジスタは図示されていない)。
【0040】FPU第1実行段56内の追加データ経路
は従来の整列シフタ84を含み、このシフタは、結果E
XPA−EXPB又はEXPB−EXPAの大きい方に
基づいて、浮動小数点加算及び減算のような付加的命令
によって及び指数選択器88が表示したけた送りカウン
トによって要求されるに従って、(線路MANTA及び
MANTBを通してこのシフタに供給された)オペラン
ドの仮数部をけた送りする。線路ADDA、ADDB、
CIN(けた上げ)上の整列シフタ84の出力、及びス
ティッキービット(図示されていない)は、FPU第2
実行段58に供給される。技術上根本的である通り、ス
ティッキービットは、整列シフタ84の端からけた送り
されるビットの論理ORであり、丸めのために使用され
る。有効減算の場合に結果の符号を計算する又は2つの
偽番号NaNオペランドのうちの大きい方を判定する仮
数部比較器等のような他の従来の浮動小数点加算アード
ウェアもまた、整列シフタ84と組み合わされて具備さ
れることがある。
【0041】FPU第1実行段56内の乗算データ経路
は乗算器86を含み、この乗算器は、それぞれ、オペラ
ンドレジスタ81A、81Bから線路MANTA、MA
NTBを通して仮数部を受け取り、かつ出力を保護ビッ
ト、丸めビット、スティッキービットと共に線路MPY
SUM、MPYCARRYを通してFPU第2実行段5
8へ供給する。乗算器86はまたFPUスケジューラ5
0から線路SIGNXを通して制御信号を受け取り、こ
の制御信号は符号付き整数乗算を遂行するべきかどうか
を表示し、この制御信号に従って乗算器86は更に以下
に説明するように適当な符号拡張接頭辞を発生する。一
般に、本発明のこの実施例による乗算器86は、部分積
の数を36に減少させるために3ビットブースコード化
を使用して、72ビット×72ビットけた上げ保留アー
キテクチャに従って構成される。各群にこれと異なるビ
ット幅(すなわち、3ビットでなく2ビット又は4ビッ
ト)を使用するブースコード化もまた本発明の範囲にあ
るので、このような代わりのブースコード化もこの詳細
な説明を参照したならば当業者によって代わりに実現さ
れると、もちろん考えられる。本発明のこの実施例で
は、被乗数は線路MANTA上の2進値に関連している
のに対して、乗数は線路MANTB上の2進値に関連し
ている。
【0042】最高精度IEEE 754規格書式でも6
4ビット仮数部を要求しているのに、この実施例の構成
では、乗算器86に供給される仮数部オペランドは幅が
72ビットもある。これら追加ビットの或るいくつか
は、乗算器86によって遂行されるディジタル乗算は限
定精度のものであることを考慮して、除算及び超越関数
の計算(例えば、三角関数及び双曲線関数評価)のよう
な演算に対する充分に精確な結果を達成するために必要
である。72ビット幅のうちの残りのビットは、この例
では、以下に説明されるように加算器段の組織の結果と
して提供され、実際には精度上の「自由ビット」であ
り、もしこれらの臨時ビットを供給しなかったならば加
算器段の数を減少させないであろうことを考慮してのも
のである。
【0043】図4に、本発明のこの実施例による乗算器
86の構成を示す。これを説明する。前に挙げたよう
に、乗算器86は、符号なし整数、浮動小数点、符号付
き整数を含む種々の書式でのオペランドを乗算する能力
を有する。符号なし整数と浮動小数点についての乗算の
場合、乗算器86は、符号なしオペランドについて演算
する(浮動小数点乗算に対する符号ビットは別個に取り
扱われる)。乗算器86によって遂行される符号付き乗
算は、特に、本発明のこの実施例に従って乗算器86に
よって遂行される部分積の加算において及びブースコー
ド化乗算に対する符号拡張において、オペランド符号ビ
ットを考慮することを必要とする。
【0044】図4に示されたように、線路MANTA
は、乗算器86によって遂行される乗算のために72ビ
ット被乗数を供給する。ビットS/MSBとして図4に
示された被乗数の最上位ビットは、符号付き整数被乗数
の場合には符号ビットに相当するが、浮動小数点及び符
号なしオペランドの場合は最上位絶対値に相当する。本
発明のこの実施例にれば、線路MANTA上の被乗数の
最上位ビットS/MSBはマルチプレクサ64の1つの
入力へ転送され、このマルチプレクサの他の入力は接地
されている(すなわち、論理0にある)。マルチプレク
サ64の制御入力はFPUスケジューラ50から線路S
IGNXを通して制御信号を受け取り、この信号は遂行
しようとする乗算が符号付き整数乗算かどうかを表示す
る。本発明のこの実施例によれば、マルチプレクサ64
は、浮動小数点乗算及び符号なし整数乗算(線路SIG
NX不活性)の場合は“0”をその出力及び線路SGN
に供給し、及び符号付き整数乗算(線路SIGNX活
性)の場合は線路MANTA上のビットS/MSBの状
態を線路SGNに供給する。
【0045】図4に機能的に示されたように、本発明の
好適実施例によれば、被乗数は、線路MANTAを通し
て乗算器86によって受け取られ、かつけた送りされた
被乗数状態61に示されたように1ビット位置だけ右へ
けた送りされる。けた送りされた被乗数状態61は、本
発明のこの実施例によれば、乗算器86が単一サイクル
内で演算する(すなわち、状態61は、記憶に1サイク
ルを必要とすると思われるレジスタでは、好適には、な
い)ので、被乗数と他の情報との組合わせを単に表示し
かつ乗算器86内のこの組合わせの経路指定を単に表示
する。被乗数のけた送りは線路MANTA上の値の最下
位ビットを捨て、このことが現に被乗数を2で除す。本
発明のこの実施例によれば、72ビット乗算器86にか
らの必要とされる最高精度浮動小数点出力は64ビット
に過ぎず、かつ線路MANTA、MANTB上の最上位
32ビットによって表される(下位ビットは0にセット
される)。それゆえ、各入力オペランドの最下位ビット
は、浮動小数点被乗数及び整数被乗数の両方で拡張可能
である。この同じけた送り(2で除す)は乗数にも遂行
され、乗数の内容を線路MANTB上から右へけた送り
し、その結果、線路MANTB上の最上位ビットはブー
スエンコーダ68に供給された際の乗数の新最上位ビッ
ト内に複写される。これらのけた送りによる1/4なる
率による損失は、乗算の完了の際に回復されることにな
る。図4に戻って参照すると、けた送りされた被乗数状
態61の最上位ビットは、マルチプレクサ64から線路
SGNを通して、符号付き整数乗算の場合、線路MAN
TA上のビットS/MSBの複写を受けとり、及び浮動
小数点乗算及び符号なし整数乗算の場合、“0”状態を
受け取る(すなわち、これらの場合、そのオペランドが
正値として取り扱われる)。けた送りされた被乗数状態
61は、2で除された(すなわち、右へけた送りされ
た)被除数であり、乗算モードに従ってセットされたそ
の最上位ビット及び線路GSN上の符号を備えており、
次いで、これの状態が線路MCNを通して部分積発生器
66へ転送される。
【0046】線路MANTB上の値はマルチプレクサを
通してブースエンコーダ68へ転送される。上に挙げた
ように、線路MANTB上の値もまたブースエンコーダ
68に供給されるに先立ち2で除される。本発明のこの
好適実施例によれば、ブースエンコーダ68は、乗数の
3ビットの逐次の群にブースコード化を遂行する(すな
わち、3ビットブースコード化)。技術的に既知のよう
に、ブースコード化は、乗数内の多数の隣接ビットにブ
ースアルゴリズムを適用することで以て選択した特定の
倍数を用いて被除数の正倍数及び負倍数である部分積を
発生することによって、加算しようとする部分積の数を
減少させる。本発明のこの実施例によるブースエンコー
ダ68によって遂行される3ビットブースコード化で
は、被乗数の±0×、±1×、±2×倍数の中から各部
分積を選択するために、乗数の3つの隣接ビットを問い
合わせる。技術的に周知であるように、ブースコード化
は、積を発生するに当たって加算しようとする部分積の
数を減少させる。72ビットオペランドの乗算のこの例
では、3ビットブースコード化は、可能な部分積の数を
(ブースコード化なしの場合の)72から36へ減少さ
せる。ブースエンコーダ68は、各部分積ごとにその出
力を3つの制御線路N、Z、Xに発生し、制御線路Nは
(活性のとき)部分積が負倍数であることを表示し、制
御線路Zは(活性のとき)部分積が零であることを表示
し、及び制御線路Xは部分積が2×倍数(活性のとき)
であるか又は1×倍数(不活性のとき)であるかを表示
する。以下に説明されるように、制御線路N、Z、Xの
各々はそれらの制御信号を接頭辞論理70へ転送し、か
つ制御線路Nは乗算器アレー72へ転送し、制御線路
N、Zはまた線路MCNを通して部分積発生器66へ転
送する。
【0047】部分積発生器66は、使用される特定ブー
スコー化技術に対して、部分積を発生する従来技術に従
って技術に従って構成されてよい。図5aは、例とし
て、3ビットブースコード化の場合に対する部分積発生
器66の機能構成を示す。この例で、部分積発生器66
は、乗算に必要とされる部分積の全てを並列に発生し、
それゆえ、n+1部分積発生器660 から66n として
機能的に配置され、これらの部分積発生器の各々は線路
MCNを通して被除数を入力として受け取る。ここに説
明される特定の例では、72ビットオペランドが3ビッ
トブースコード化を使用して乗算されて、32の部分積
PP0 からPP35を発生する(すなわち、n=35)。
上の述べたように、ブースエンコーダ68は、制御線路
N、Z、Xの組を通して制御信号を各部分積発生器66
に伝達して、乗数の相当する3つのビットに基づいて、
部分積PPを発生させる。それゆえ、部分積発生器66
0 から66n は、並列に、部分積PPからPPn を出力
として発生する。
【0048】部分積発生器660 から66n の各々は、
相当する部分積PP0 からPPn 内の各出力ビット位置
に関連した論理を含み、線路MCN上の被乗数入力ビッ
トに従って及びその部分積に対するブースエンコーダ6
8から制御線路N、Z、Xを通しての制御信号に従って
出力状態を発生する。図5bは、部分積発生器660
ら66n のうちの第i部分積発生器内の論理セル66
i,j の例を機能的に示す。セル66i,j は、第i部分積
PPi の第jビット位置を発生する。この例では、けた
送りされた被乗数状態16(すなわち、上に挙げたよう
に、線路SGNの状態と組み合わされ、けた送りされた
被乗数値)からの線路MCNj 及びMCN j-1 上の2つ
の被乗数ビットがセル66i,j 内のマルチプテクサ73
に受け取られる。マルチプレクサ73は、制御線路Xi
上の制御信号によって制御されて、線路MCNj の被乗
数ビット又は線路MCNj-1 の被乗数ビットを選択し、
その結果の出力を線路MLTi,j を通してマルチプレク
サ74へ供給する。制御線路Xi が活性のとき、セル6
i,j 内のマルチプレクサ73は線路MCNi-j 上の被
乗数ビットを選択して線路MLTi,j へ供給し、1ビッ
トだけ左へけた送りを遂行し、それゆえ線路MCN上の
値に2なる率を乗じる。そうでなくて、制御線路Xi
不活性のとき、マルチプレクサ73は線路MCNj 上の
被乗数ビットを選択し、これを線路MCNから線路ML
Tへ単に通過させる。線路MLTi,j の被乗数ビットは
真状態と補数状態でマルチプレクサ74の入力へ供給さ
れ、後者はその第3入力を接地され(すなわち、論理
“0”にある)。セル66i,j 内のマルチプレクサ74
は、ブースデコーダ68からの制御線路Ni 、Zi 上の
制御信号によって制御されて、“0”状態、又は線路M
LTi,j の真値又は補数値のいずれかを選択し、部分積
ビットPPi,j として出力を発生する。例えば、部分積
を発生するに当たって、もし制御線路Zi が活性なら
ば、これはこの部分積が零であることを表示し、マルチ
プレクサ74は接地レベルを選択してその出力へ供給す
る。制御線路Zi が不活性(すなわち、部分積が非零で
ある)場合、制御線路Zi はマルチプレクサ74を制御
して線路MLT上の論理補数を選択させるか(線路N活
性)又は真値を選択させる(線路N不活性)。それゆ
え、部分積ビットPPi,j は、ブースエンコーダ68か
らの制御線路Xi 、Ni 、Zi に従って線路MCNj
MCNj-1 上のた送りされた被乗数から発生される。
【0049】もちろん、部分積発生器66は、これに代
わり、適当な部分積を発生する他の技術に従って構成さ
れてよい。例えば、もし望むならば、マルチプレクサ7
3、74の代わりに、各セル66i,j を直接に論理を実
現するものとして実現してよい。部分積発生器66を構
成するこのような技術は、当業者に明らかであると考え
られる。
【0050】所与の部分積PPi の各ビットは同様のセ
ル66i によって駆動され、セル66i は制御線路
i 、Ni 、Zi の同じ状態を受け取るが、しかし線路
MCNを通して異なるけた送りされた被乗数を受け取
る。例えば、図5bのセル66i,jを参照すると、隣接
セル66i,j-1 (図示されていない)が被乗数の線路M
CN j-1 及び線路MCNj-2 から受け取るのに反して、
隣接セル66i,+1(図示されていない)は線路MCNj
及び線路MCNj+1 から受け取る。それゆえ、部分積発
生器66i 内の全てのマルチプレクサ73の組合わせ
は、活性のとき制御線路Xi に応答して線路MCN上の
被乗数に2なる率を乗じ、かつ制御線路Ni 、Z i の状
態に応答するその部分積に従って、零、又は線路MLT
i 上の真値又は補数値を選択する。したがって、本発明
のこの実施例によれば、各部分積PPi は、±0×、±
1×、又は±2×被乗数に相当すると云える。
【0051】図5aに戻って参照すると、部分積PP0
からPPn は、接頭辞論理70によって発生された相当
する接頭辞ビットPFX0 からPFXn と組み合わされ
て、組合わせ部分積状態670 から67n として乗算器
アレー72に供給される。これについて説明する。マル
チプレクサ64の出力側の線路SGNが接頭辞論理70
に接続されるように、ブースエンコーダ68によって発
生された各部分積に対する制御線N、Zも接頭辞論理7
0に接続される。説明の明確のために、図4は、単一部
分積PPのみに対する符号拡張接頭辞の発生及び使用を
示す。これらの部分積の各々が接頭辞論理70によって
発生された接頭辞を同様に受け取ることは、云うまでも
ない。
【0052】接頭辞論理70は組合わせ論理であって、
これは線路SGN、N、Z上の論理状態を組み合わせて
線路PFX上に接頭辞を発生し、この接頭辞が部分積発
生器66によって発生された相当する部分積PPに供給
される。本発明の好適実施例によれば、最低位部分積
(図5aの部分積PP0 )は乗数の最下位ビットから発
生されたものであって3ビット接頭辞を受け取るのに対
して、他の部分積(図5aの部分積PP1 からPPn
は2ビット符号拡張接頭辞を受け取る。本発明のこの実
施例に従って発生された3ビット接頭辞及び2ビット接
頭辞は、精確な結果をもたらす最小寸法拡張接頭辞であ
る。もし望むならば、かつもし接頭辞付き部分積の加算
に使用される電子回路に関して考えるならば、より長い
接頭辞を発生しかつこれらの部分積に供給してよいこと
は、云うまでもない。接頭辞論理70によって発生され
る符号拡張接頭辞は、符号付き整数乗算を遂行中である
かどうかに依存し、もしそうならば、その被乗数の符号
に依存し、またその部分積に対するブースコード化が零
であるか又は負であるかに依存する。この情報は、マル
チプレクサ64からの線路SGN及びブースエンコーダ
68からの制御線路N、Zを介して接頭辞論理70へ供
給される。
【0053】最低位部分積PP0 に対して、接頭辞論理
70は、次の表1に示すように線路SGN、N0 、Z0
上の信号に応答して3ビット接頭辞を発生する。
【0054】
【表1】
【0055】全ての他の部分積PP1 からPPn (すな
わち、部分積PPi >0)に対して、接頭辞論理70
は、次の表2に示すように線路SGN、Ni 、Zi 上の
信号に応答して2ビット接頭辞を発生する。
【0056】
【表2】
【0057】上の機能説明を与えられるならば、当業者
は、従来のブール最小化技術を使用して接頭辞論理70
を容易に構成することができると考えられる。
【0058】部分積PP0 からPPn とそれらの相当す
る接頭辞PFX0 からPFXn との組合わせ、すなわ
ち、組合せ部分積状態670 から67n として図4及び
図5aに示された組合わせは、乗算器アレー72へ転送
されてここで加算され最終積になる。図6は、乗算器ア
レー72の構成及び演算を示す。これについて詳細に説
明する。
【0059】乗算器アレー72は、上に挙げたように、
けた上げ保留加算器(carry−save adde
rs)の多重レベルを含み、これらを介して、ブース符
号化乗数によって示された被乗数の部分積が加算されて
積となる。本発明のこの実施例によれば、けた上げ保留
加算器の5つのけた上げ保留レベル91、93、95、
97、99が使用されて、ブースエンコーダ68によっ
て選択された被乗数の36の部分積を加算して、線路M
ANTA、MANTB上の仮数部の積を構成する合計
(図3の線路MPYSUM)及びけた上げ(線路MYP
CARRY)を作る。云うまでもなく、乗算器アレー7
2のけた上げ保留レベル91、93、95、97、99
の配置は図6に機能的に示され、集積回路上のレベル9
1、93、95、97、99の実際の物理的レイアウト
は、種々のレベル間でけた上げ保留加算器を好適にはイ
ンタリーブして、これらの間に更に効率的に信号及び演
算結果を経路指定する。このようなレイアウトは、技術
的に従来から知られいる。
【0060】第1けた上げ保留レベル91は、9つの4
−2(4−to−2)けた上げ保留加算器(CSA)か
らなる。レベル91の9つのけた上げ保留加算器は、そ
れらの入力に4つの部分積を受け取り、かつこれらの部
分積を加算して2つの中間結果(各ビット位置に対する
合計及びけた上げビット)を形成する。図6に示された
ように、レベル91内のけた上げ保留加算器は、各々少
なくとも75ビット幅を有し、3つまでの符号拡張ビッ
トに適応する。したがって、第1けた上げ保留レベル9
1のけた上げ保留加算器は各々、4つの部分積PPの組
の形をした組合わせ部分積67を受け取り、これらの部
分積の各々は相当する符号拡張接頭辞PFXを有する。
更に、第1けた上げ保留レベル91内のけた上げ保留加
算器の各々は、けた上げ入力にブースエンコーダ68か
ら4つの制御線路Nの組を受け、これらの制御線路の各
々は各入力部分積PPと関連する。上に論じたように、
制御線路Ni は、アサートされた(asserted)
とき、その関連した部分積PPi が、2の補数の意味で
否定されるべきことを表示し、制御線路Ni がその関連
した部分積PPi を第1けた上げ保留レベル91内の適
当なけた上げ保留加算器のけた上げ入力(carry−
in)へ転送し、これによって2の補数表示(two’
s complement representati
ons)を発生するのに必要な、最下位ビットにおける
“1”の加算を実施する。
【0061】図7は、本発明の好適実施例による第1け
た上げ保留レベル91内のけた上げ保留加算器910
機能的に示す。第1けた上げ保留レベル91内の他のけ
た上げ保留加算器は、もちろん、これと同様に構成され
る。けた上げ保留加算器91 0 は、この例では、80の
加算器AS0からAS79を含み、これらの各々が部分
積PP0 からPP3 が供給する4つまでの入力ビット
と、これらに加えて適当なけた上げビットとを受け取
り、従来の4対2けた上げ保留加算器のように、各段か
らの合計及びけた上げ出力に相当する2つの出力を発生
する。加算器AS0からAS79は、技術上既知の従来
技術に従って構成される。
【0062】上に挙げたように、最低位部分積PP0
72ビット値であり、接頭辞論理70によって発生され
た3ビット接頭辞PFX0 を有する。接頭辞PFX
0 は、部分積PP0 のビット位置72から74における
ビットP0 からP2 として図7に示されている。図7の
部分積PP1 からPP3 (及び部分積発生器66によっ
て発生された部分積PP35まで)は、各々、図7にビッ
トP0 、P1 として示された、接頭辞論理70によって
発生された2ビット接頭辞PFXを有する。部分積PP
は、上に述べたブースエンコーダ68によって遂行され
たブースコード化に従って乗数ビットの群と関連してお
り、それゆえ、乗算器アレー72の第1けた上げ保留レ
ベル91に供給されるとき互いにスタガした仕方で整列
する。けた上げ保留加算器910 内の加算器AS0から
AS79に対する部分積PP0 からPP3 の整列は、図
7に示されている。
【0063】加算器AS0は、部分積PP0 から最下位
ビット(ビット0)のみを加数入力として受け取り、か
つ最低位部分積PP0 に対するブースエンコーダ68か
らの相当する制御線路N0 を通してけた上げ入力を受け
取り、かつ2つの出力ビットを発生する。同様に、加算
器AS1は、部分積PP0 から次の最下位ビット(ビッ
ト1)のみを加数入力として受け取り、かつ2つの出力
を発生する。加算器AS2は、部分積PP0 から加数入
力(ビット2)及び部分積PP1 から最下位ビットを加
数入力として受け取り、かつこれらと共に部分積PP1
に関連した制御線路N1 からけた上げ入力を受け取る。
加算器AS2へ供給される入力、及びこれより高位の加
算器に供給される入力も同様にして配置され、例えば、
加算器AS6は4つの部分積PP0 (ビット6)、PP
1 (ビット4)、PP2 (ビット2)、PP3 (ビット
0)の全てから括弧内のビットを加数として入力すると
共に、部分積PP3 に関連した制御線路N3 からけた上
げ入力を受け取る。高位側では、例えば、加算器AS7
6は、部分積PP2 (接頭辞ビットP0 )及び部分積P
3 (そのビット70)のみを加数入力として受け取
り、加算器AS77は部分積PP2 から接頭辞ビットP
1 をかつ部分積PP3 からビット71を受け取る。加算
器AS78、AS79は、部分積PP3 から関連した接
頭辞ビットP0、P1 を受け取るだけである。
【0064】したがって、けた上げ保留加算器91
0 は、接頭辞PFX0 からPFX3 を含む、かつブース
エンコーダ68によって表示された制御線路N0 からN
3 上の必要なけた上げ入力ビットを含む、整列した部分
積PP0 からPP3 の合計に相当する出力ビットの80
対を発生する。第1けた上げ保留レベル91内の残りの
8つの加算器は、残りの32の部分積を同様に加算する
ように、もちろん同様に構成される。それゆえ、第1け
た上げ保留レベル91は、36の部分積PP0 からPP
35(接頭辞PFX付き)の加算から18の結果を発生
し、このレベル内の各けた上げ保留加算器は2つの結果
(合計及びけた上げ)を発生する。
【0065】図6に戻って参照すると、第1けた上げ保
留レベル91からの18の結果は、82ビットまでの2
進語の形で第2けた上げ保留レベル93へ転送される。
第2けた上げ保留レベル93は、6つの3対2けた上げ
保留加算器で構成され、上掲の18結果を受け取り、か
つ88ビットまでのビット幅の、12の結果を発生し、
これらは、立ち代わって、第3けた上げ保留レベル95
へ供給される。第3けた上げ保留レベル95は3つの3
対2けた上げ保留加算器を有し、これらは100ビット
までの語の形で6つの結果を発生し、これらを第4けた
上げ保留レベル97に供給する。第3けた上げ保留レベ
ル95からの結果の或るいくつかは第4けた上げ保留レ
ベル97へ転送されないで、代わりにスティッキービッ
ト(sticky bit)電子回路103へ転送さ
れ、スティッキービット電子回路は丸めに使用されるス
ティッキービットを発生する。第4けた上げ保留レベル
97は2つの3対2けた上げ保留加算器を含み、これら
は124ビットまでの幅の4つの語を発生すると共に、
それらの最下位ビットの或るいくつかをまたスティッキ
ービット電子回路103へ転送する。第4けた上げ保留
レベル97からの4つの結果は、第5けた上げ保留レベ
ル99へ転送され、後者のレベルは1つの4対2けた上
げ保留加算器を有し、これが145ビットまでの幅の合
計結果語及びけた上げ結果語を発生する。第5けた上げ
保留レベル99からの合計結果語及びけた上げ結果語の
72の最上位ビットは、被乗数の初期右けた送りによる
1/4なる損失率による損失を回復するために2ビット
位置だけ左へけた送りされた後に、それぞれ、合計レジ
スタ101s、けた上げレジスタ101cに記憶され
る。この左けた送りによって発生されたけた上げビット
は、けた上げビットレジスタ101cbに記憶される。
スティッキービットは、けた上げ保留レベル95、9
7、99の結果の最下位ビットからスティッキービット
論理回路103によって発生され、かつスティッキービ
ットレジスタ101sbに記憶される。保護ビットFG
及び丸めビットBがまた、技術上従来のように、レジス
タ101に記憶された72ビットの下側ビットから取り
出されてレジスタ101sb内のスティッキービットS
と組み合わされて使用されて、所望モードに従って乗算
結果を適当に丸める。次いで、乗算器86からの最終結
果が図3に示したように線路MPYSUM、MPYCA
RRY、CINを通してFPU第2実行段58内の加算
器90へ転送され、この加算器が乗算器86の合計結果
及びけた上げ結果から積を発生する。丸めビット(G、
R、S)は、FPU第3実行段60内の丸め電子回路1
06へ転送される。
【0066】それゆえ、本発明のこの実施例による乗算
器86は、浮動小数点、符号なし整数、符号付き整数を
含む種々の書式でのオペランドの乗算を遂行する能力を
有する。符号拡張接頭辞は、乗算器86によって遂行さ
れつつある乗算モードに基づいて、ダイナミックに乗算
器86によって発生される。これは、乗算器86に、マ
イクロプロセッサ10によって実行されるコンピュータ
プログラムに必要などんな型式の乗算も効率的に遂行可
能にし、技術上従来行われているような符号付き整数乗
算に使用される分離乗算器回路の必要を除去する。
【0067】種々の書式でのオペランドの乗算を遂行す
るに当たってのマイクロプロセッサ10の演算を、2つ
の4ビットオペランドを乗じる簡単な数値例に関して説
明する。ここに提供された説明を参照したならば当業者
はこれらの比較的簡単な例から72ビットオペランドの
乗算を実施するに当たってのマイクロプロセッサ10の
演算を容易に理解することができると考えられる。
【0068】浮動小数点オペランドの符号ビットについ
ての演算は、別個に、好適には以下に挙げるように第3
実行段60で遂行されるので、技術的に既知であるよう
にかつ以上に説明したように、浮動小数点仮数部の乗算
は符号付き整数の乗算と同等に遂行される。マイクロプ
ロセッサ10による符号なし整数オペランド又は浮動小
数点オペランドのどちらかの乗算を、1410=10進法
の14(すなわち、11102 =2進法の1110)の
自乗の例を参照して説明する。この例で、FPUスケジ
ューラ50は、線路SIGNXを低論理レベル(論理
“0”)へ駆動して、マルチプレクサ64を制御して線
路SGNへ供給する接地状態(論理“0”)を選択す
る。この“0”状態は、以上に挙げたように被乗数を1
ビットだけ右へけた送りすることで以て、この被乗数の
最上位ビット内に複写される。この4ビット例における
けた送りされた被乗数状態16は、それゆえ、0111
である。乗数もまた、これを0111によって表される
ように先頭“0”を挿入することで以て、その内容を2
で除すようにけた送りされる。
【0069】次いで、3ビットブースコード化を使用し
て、被乗数からの部分積の発生が遂行される。技術上既
知であるように、0はブースコード化における最下位ビ
ットの下側ビットに対して仮定される。この例では、2
つの部分積が発生され、1つは乗数の2つの最下位ビッ
ト(この例では11)を低位仮定0と共に使用し、かつ
1つは3つの最上位ビット(011)を使用する。この
例では、3ビットの場合のブースアルゴリズムにより、
低位部分積PP0 は−1xであり、高位部分積PP1
+2xである。それゆえ、ブースエンコーダ68は、低
位部分積PP0に対してN0 =1、X0 =0、Z0 =0
なる制御線路状態を、及び高位部分積PP1 に対してN
1 =0、X0 =1、Z0 =0なる制御線路状態を発生
し、その結果、部分積PP0 =1000及びPP1 =1
110を発生する。
【0070】以上に述べたように、接頭辞論理70は、
線路SGNの状態を各接頭辞PPiに対するブースエン
コーダ68からの制御線路Zi 、Ni の状態と一緒に受
け取り、接頭辞PFX0 、PFX1 を発生し、これら
は、それぞれ、部分積PP0 、PPi に供給されかつこ
れらと共に記憶される。この例では、上に挙げた真理値
表(表1、表2)に従って、下位部分積PP0 は3ビッ
ト接頭辞PFX0 =011を受け取り、高位部分積PP
1 は2ビット接頭辞PFX1 =11を受け取る。これら
の接頭辞PFXは、これらの関連した部分積PPと組み
合わされ、かつ乗算器アレー72に供給されて加算さ
れ、積になる。
【0071】この例の乗算器アレー72は互いに加算さ
れる2つの部分積PP0 、PP1 を有するに過ぎない。
もちろん、以上に述べたように、全72ビット実現に当
たっては、乗算器アレー72は、積を生じるために加算
する76の部分積を有することになる。この例では、し
たがって、乗算器アレー72によって遂行される加算
は、次のようになる。
【0072】
【数1】
【0073】この積は、この例の説明の明確のために、
乗算器86の出力おけるそのけた上げ保留(すなわち、
合計及びけた上げ数字)の形ではなくFPU第2実行段
58内の加算器90によって発生された2進形で上に示
されている。本発明のこの実施例によれば、積に4を乗
じるために積を2ビット位置だけ左へけた送りし、部分
積の発生の前に乗数及び被乗数の各々を除した2なる率
を補償する。したがって、この例における結果の積は符
号なし整数又は浮動小数点仮数部としての110001
1002 であり、これは19610に相当する(かつそれ
ゆえ正しい積である)。
【0074】符号付き整数の場合、線路SIGNX上の
制御信号はFPUスケジューラ50によって活性化され
かつマルチプレクサ64に供給され、後者は線路MAN
TA上の被乗数からの符号ビットS/MSBを線路SG
Nへ転送する。例として、マイクロプロセッサ10によ
る−210を自乗する4ビット乗算を説明する。この場
合、被乗数及び乗数は、11102 なる4ビット符号付
き整数オペランドとして表される。この場合、被乗数
(及び、前のように、乗数が)が1ビット位置だけ右へ
けた送りされて、線路SGNの状態(これは、被乗数が
負であることを考慮して、この例では“1”である)の
複写をその最上位ビットに受け取る。それゆえ、けた送
りされた被乗数状態16は2進値11112 である。乗
数も、先の最上位ビットを新最上位ビット位置に複写す
ることで以て、同様に1ビット位置だけ右へけた送りさ
れ、このようにして乗数もまた11112 として表され
る。
【0075】部分積発生器66が、前のように、3ビッ
トブースコード化に従って選択された被乗数の倍数とし
て部分積PP0 、PP1 を発生する。この例では、(乗
数の最下位ビット11及び仮定した0に基づく)低位部
分積PP0 は−1xであり、(乗数最上位ビット111
に基づく)高位部分積PP1 は−0xである。それゆ
え、ブースエンコーダ68は、低位部分積PP0 に対し
てはN1 =1、X0 =0、Z0 =0なる制御線路状態を
発生し、及び高位部分積PP1 に対してはN1 =1、X
0 =0、Z1 =0なる制御線路状態を発生して、部分積
PP0 =0000及びPP1 =1111を発生する。
【0076】以上に述べたように、接頭辞論理70は、
線路SGNの状態(この場合“1”)を、各部分積PP
i に対するブースエンコーダ68からの制御線路Zi
iの状態と共に受け取り、それぞれ、部分積PP0
PP1 に関連する接頭辞PFX0 、PFX1 を発生す
る。この例では、上に挙げた真理値表(表1、表2)に
従って、下位部分積PP0 は3ビット接頭辞PFX0
100を受け取り、高位部分積PP1 は2ビット接頭辞
PFX1 =10を受け取る。これらの接頭辞PFXは、
これらの関連した部分積PPと組み合わされ、かつ乗算
器アレー72に供給されて加算され、積になる。
【0077】この4ビット例では、乗算器アレー72
は、それぞれの部分積の相当する接頭辞PFX0 、PF
1 を含む2つの部分積PP0 、PP1 を加算する。乗
算器アレー72によって遂行されるこの加算は、次のよ
うになる。
【0078】
【数2】
【0079】先の場合のように、この積は、けた上げ保
留(すなわち、合計及びけた上げ数字)形でなくその2
進形で示されている。次いで、積に4を乗じるために積
を2ビット位置だけ左へけた送りし、部分積の発生の前
に乗数及び被乗数の各々の最初の除算を補償する。した
がって、この例における結果の積は“0”なる符号付き
整数としての000001002 であり、これは410
相当する(かつそれゆえ正しい積である)。
【0080】したがって、上に述べたように、乗算器8
6は、乗算モードを表示する制御信号SIGNXの制御
の下に、被乗数の符号又は最上位ビットの論理的組み合
わせに基づいて適当に発生された符号拡張接頭辞を用い
て、異なる書式での2進オペランドを乗算する能力有す
る。それゆえ、種々の乗算モードに対する追加の乗算電
子回路の必要を回避する。
【0081】図3に戻って参照すると、FPU第1実行
段56はまた、非正規化オペランドなる例外、及び零、
無限、偽番号NaN等である例外が入力オペランドOP
A、OPBとして表されたとき、これらの例外を認識す
る論理(図示されていない)を含む。この認識は入力段
で遂行される。それは、本発明のこの実施例によれば、
FPU31内の実行段56、58、60が非正規化オペ
ランドについてのみ演算するように配置されているから
である。典型的に、これらの入力例外は、FPUマイク
ロシーケンサ47へ浮動小数点シーケンサ要求を発する
FPU第1実行段56によって取り扱われる。次いで、
これらの入力オペランドが、FPUマイクロシーケンサ
47から呼び出されたマイクロコードシーケンスを実行
する実行段56、58、60によって遂行される。FP
U待ち行列段49内及びスケジュール段51、53内の
後続の命令は、入力例外が取り扱われるまで中止され
る。
【0082】第2実行段58は指数調節回路94を含
み、この調節回路は、好適には、従来の先頭ビット推定
器回路み、この推定器回路は第3実行段60の仮数部デ
ータ経路内の正規化回路100へ転送するために結果の
先頭ビットの位置を推定する指数けた送りカウントを導
出する。指数値はまた、指数調節回路94内で増分又は
減分されてよく、かつFPU第3実行段60に供給され
る。更に、指数調節回路からの指数値はあふれ/下位け
たあふれ検出器98へ転送され、この検出器は例外の場
合に浮動小数点状態語FSW内に下位けたあふれフラグ
及びあふれフラグを発生する。前掲のように、加算の場
合及び乗算の場合に対する仮数部が、加算命令又は乗算
命令が実行されつつあるかどうかに従って制御パイプラ
イン(図示されていない)からの制御信号によって制御
されるマルチプレクサを経由して加算器90に供給され
る。加算器90は、けた上げ伝搬(CPA)型の従来加
算器であって、FPU第1実行段56から仮数部結果を
受け取り、かつまた選択されたけた上げ入力を受け取
る。加算器90による加算の結果は、FPU第3段60
内の正規化回路100に供給される。保護ビット、丸め
ビット、スティッキービットもまたFPU第3実行段6
0内の丸め電子回路106へ転送される。
【0083】FPU第3実行段60で、正規化電子回路
100は、FPU第2実行段58からけた送りカウント
を受け取り、かつ表示されたけた送りカウントだけ加算
器90の結果をけた送りし、かつまた必要とされる微細
けた送りを遂行する。FPU第3実行段60はまた丸め
電子回路106を含み、この電子回路は、実行されつつ
ある命令に対する精密モードに従って選択されたいくつ
かの先に記憶された丸め項目(entries)のうち
の1つを使用して丸めた値を計算するために、正規化仮
数部を増分する。精密モードに相当する適当な丸めマス
クがまた(増分を伴う及び増分を伴わないの両方の)正
規化仮数部と組み合わされ、仮数部結果として適当な値
が、組合わせ論理からの丸め論理の制御の下に、結果選
択器115に供給される。この組合わせ論理は、正規化
された仮数部を丸めるべきかどうか、かついかに丸める
べきか判定するために仮数部の符号ビット、最下位ビッ
ト、保護ビット、スティッキービットの状態を分析す
る。
【0084】現行演算及びそのオペランド自体の値によ
って決定されるに従って、FPU第2実行段58から適
当な指数値が結果選択器115に供給される。符号ビッ
トは、並列浮動小数点状態パイプライン(図示されてい
ない)から結果レジスタ117内の符号ビット位置に直
接供給される。
【0085】図3に示されたように、FPU第3実行段
60はまた高速ROM110を含み、このROMは、不
確定偽番号QNaN、零、無限(±)、π、πの通常使
用される分数、及び各利用可能な精密書式での最大表現
可能数のような或る決まった定数を記憶する。これらの
定数は、演算の結果として又は例外の場合に、浮動小数
点演算にしばしば使用される。これらの定数は、FPU
第1実行段56によって発生されるアドレス値によって
アクセスされる。結果選択器115は、計算された仮数
部、符号、指数値、及び高速ROM110の出力の中か
ら選択して、命令の結果(すなわち、例外が起こってい
るかどうか)に従って、その結果を結果レジスタ117
に記憶する。結果レジスタ117の内容は、図2に関し
て上に論じたようにライトバックバスWBを通してFP
Uルータ54へ転送される。FPU第3実行段60の演
算の完了で以て、浮動小数点命令の遂行に当たっての1
パスが完了する。
【0086】したがって、本発明の好適実施例によれ
ば、符号付き書式及び符号なし書式を含む異なる書式で
の2進オペランドを乗算する能力のある電子回路がマイ
クロプロセッサ及びこのマイクロプロセッサを含むシス
テム内に提供される。乗算電子回路の構成上の効率が符
号拡張接頭辞の使用を通して向上される。本発明の乗算
電子回路は、乗算モード又はオペランド書式を表示する
制御信号の制御の下に、これらの符号拡張ビットを被乗
数の符号ビットから適正に発生するに当たって種々のオ
ペランド書式に対応する。それゆえ、種々の乗算モード
及びオペランド書式を取り扱う乗算回路の増設(dup
lication)を回避する。
【0087】本発明がその好適実施例によって説明され
たが、もちろん、本発明の利点及び利益をもたらす変形
実施例及び代替実施例のような変形実施例及び代替実施
例は、この詳細な説明及びその添付図面を参照するなら
ば当業者にとって明白であると考えられる。このような
変形実施例及び代替実施例は、前掲の本発明の特許請求
の範囲に包含されると考える。
【0088】以上の説明に関して更に以下の項を開示す
る。
【0089】(1) 集積回路内に実現されるマイクロ
プロセッサであって、オペランドを表すディジタルデー
タ語を記憶するメモリであって、各オペランドを符号付
き書式と符号なし書式を含む複数の書式の1つで記憶す
前記メモリと、前記メモリから第1オペランドと第2オ
ペランドとを検索し、かつ前記オペランドの乗算に相当
する積オペランドを発生するために、プログラム命令に
従って制御可能な演算電子回路とを包含し、前記演算電
子回路が前記プログラム命令に相当する命令コードを受
け取り、かつ前記乗算が符号付きオペランドについてで
あるか又は符号なしオペランドについてであるか表示す
る符号制御信号を発生するスケジューラと、被乗数とし
て第1オペランドを受け取りかつ乗数として第2オペラ
ンドを受け取る乗算回路とを含み、前記乗算回路が前記
乗算が符号付きオペランドについてであると表示する制
御信号に応答して最上位ビットに相当する符号ビット信
号を発生し、及び前記乗算が符号なしオペランドについ
てであると表示する制御信号に応答して固定論理レベル
に相当する符号ビット信号を発生するために、データ入
力に前記第1オペランドからの前記最上位ビットを受け
取りかつ制御入力に前記制御信号を受け取る選択回路
と、複数の部分積を発生するために、前記第2オペラン
ドを受け取るように結合されかつ前記符号ビット信号に
相当する修正された最上位ビットを有する前記第1オペ
ランドを受け取るように結合された部分積発生電子回路
であって、前記複数の部分積の各々が前記第2オペラン
ドの相当する部分の値に応答して前記修正された第1オ
ペランドの倍数に相当する前記部分積発生電子回路と、
前記符号制御信号と前記部分積に対する前記第2オペラ
ンドの相当する部分とに応答して各部分積に接頭辞を供
給する接頭辞論理と、積オペランドを形成するために接
頭辞を有する部分積を加算する加算電子回路とを含むマ
イクロプロセッサ。
【0090】(2) 第1項記載のマイクロプロセッサ
において、前記部分積発生電子回路が、前記第2オペラ
ンドを受け取り、かつ制御信号の複数の組を発生するブ
ースエンコーダであって、制御信号の各組が前記第2オ
ペランドの相当する部分の値に相当する状態を有する前
記ブースエンコーダと、複数の部分積を発生するため
に、前記修正された第1オペランドを受け取るように結
合され、かつ前記制御信号の複数の組を受け取るように
前記ブースエンコーダに結合された部分積発生器であっ
て、各部分積が制御信号の相当する組に応答して選択さ
れた前記修正された第1オペランドの値の倍数に相当す
る前記部分積発生器とを含むマイクロプロセッサ。
【0091】(3) 第2項記載のマイクロプロセッサ
において、前記接頭辞論理が前記ブースエンコーダから
前記制御信号の複数の組を受け取るように前記ブースエ
ンコーダに結合され、各部分積に対して前記部分積論理
によって発生された接頭辞が前記制御信号の相当する組
内の制御信号の状態と組み合わせられた前記符号制御信
号に応答するマイクロプロセッサ。
【0092】(4) 第3項記載のマイクロプロセッサ
において、前記ブースエンコーダによって発生された前
記制御信号の組は、各々、関連した部分積が零であるべ
きことを、活性のとき表示する零制御信号と、前記関連
した部分積が負であるべきことを、活性のとき表示する
負制御信号とを含むマイクロプロセッサ。
【0093】(5) 第4項記載のマイクロプロセッサ
において、各部分積に対して前記接頭辞論理によって発
生された前記接頭辞が前記零制御信号の状態と前記負制
御信号の状態と組み合わされた前記符号制御信号に応答
するマイクロプロセッサ。
【0094】(6) 第4項記載のマイクロプロセッサ
において、前記加算器電子回路が加算器の第1レベルで
あって、前記第1レベル内の各加算器が少なくとも2つ
の部分積を受け取り、かつ前記少なくとも2つの部分積
を加算する前記加算器の第1レベルと、加算器の第2レ
ベルであって、前記第2レベル内の各加算器が前記加算
器の第1レベル内の少なくとも2つの加算器から結果を
受け取り、かつ前記受け取った結果を加算する前記加算
器の第2レベルとを含み、各部分積に対する前記負制御
信号が前記加算器の第1レベル内の加算器の相当する部
分積を受け取る該加算器のけた上げ入力に結合されてい
るマイクロプロセッサ。
【0095】(7) 第4項記載のマイクロプロセッサ
において、前記ブースエンコーダによって発生された前
記制御信号の組が前記関連した部分積を発生するに当た
って前記第2オペランドの値に非単位率を乗じるべきか
どうか表示する絶対値制御信号を更に含むマイクロプロ
セッサ。
【0096】(8) 第7項記載のマイクロプロセッサ
において、各部分積に対して前記接頭辞論理によって発
生された接頭辞が前記零制御信号の状態と前記負制御信
号の状態と組み合わされた前記符号制御信号に応答する
マイクロプロセッサ。
【0097】(9) 第7項記載のマイクロプロセッサ
において、前記ブースエンコーダによって使用される前
記第2オペランドの相当する部分が各3ビットであるマ
イクロプロセッサ。
【0098】(10) 第2項記載のマイクロプロセッ
サにおいて、前記接頭辞論理が第1長の接頭辞を最低位
部分積に供給し、前記第1長より短い第2長の接頭辞を
高位部分積に供給するマイクロプロセッサ。
【0099】(11) 第10項記載のマイクロプロセ
ッサにおいて、前記第1長が3ビットであり、かつ前記
第2長が2ビットであるマイクロプロセッサ。
【0100】(12) 第1項記載のマイクロプロセッ
サにおいて、前記加算器電子回路がけた上げ保留加算器
の複数のレベルを含むマイクロプロセッサ。
【0101】(13) 第1項記載のマイクロプロセッ
サであって、整数形のオペランドにプログラム命令を実
行する少なくとも1つの整数実行装置を更に包含し、前
記演算電子回路が前記マイクロプロセッサ内の浮動小数
点装置に相当するマイクロプロセッサ。
【0102】(14) 第13項記載のマイクロプロセ
ッサにおいて、前記符号付き書式が符号付き整数オペラ
ンド書式に相当し、前記複数の書式が複数の符号なし書
式を含み、前記符号なし書式が浮動小数点書式と符号な
し整数書式とを含むマイクロプロセッサ。
【0103】(15) 第1項記載のマイクロプロセッ
サであって、一方の側で前記演算電子回路と前記メモリ
とに結合され、かつ、他方の側で外部バスに結合された
バスインタフェース装置と、前記外部バスに結合された
外部サブシステムとを更に包含するマイクロプロセッ
サ。
【0104】(16) 符号なし書式又は符号付き書式
でのオペランドに乗算を遂行するためにマイクロプロセ
ッサ内の演算電子回路を演算させる方法であって、前記
乗算が符号付き書式でのオペランドについてであるか又
は符号なし書式でのオペランドについてであるか判定す
るステップと、先頭符号ビット信号で以て第1オペラン
ドを修正するステップであって、前記先頭符号ビットは
前記乗算が符号付き書式でのオペランドについてである
と判定することに応答して前記第1オペランドの符号ビ
ットに相当し、前記先頭符号ビットは前記乗算が符号な
し書式でのオペランドについてであると判定することに
応答して固定論理レベルにある前記第1オペランドを前
記修正するステップと、複数の部分積を発生するステッ
プであって、各部分積は第2オペランドに相当する部分
の値に応答して選択された前記修正された第1オペラン
ドの倍数である前記複数の部分積を発生するステップ
と、符号拡張接頭辞で以て前記複数の部分積の各々を修
正するステップであって、各符号拡張接頭辞は前記先頭
符号ビットと前記第2オペランドの前記相当する部分の
値とに応答して発生される前記複数の部分積の各々を前
記修正するステップと、前記修正された複数の部分積を
加算するステップとを包含する方法。
【0105】(17) 第16項記載の方法において、
前記複数の部分積を発生するステップが相当する部分積
が零であるべきことを表示する零信号と、相当する部分
積が負であるべきことを表示する負信号とを含む複数の
倍数制御信号を発生するために前記第2オペランドの複
数の部分の各々をブースコード化するステップと、複数
の部分積を発生するステップであって、各部分積が前記
第2オペランドの前記修正された第1オペランドに相当
するブースコード化部分に対する前記複数の倍数制御信
号によって表示された前記複数の修正された第1オペラ
ンドの倍数である前記複数の部分積を発生するステップ
とを含む方法。
【0106】(18) 第17項記載の方法において、
各符号拡張接頭辞が前記先頭符号ビット信号と、前記零
信号の状態と、前記負信号の状態とに応答して発生され
る方法。
【0107】(19) 第18項記載の方法において、
前記加算するステップが各部分積に対する前記負信号の
状態に相当するけた上げ入力信号を供給するステップ
と、積オペランドを導出するために前記部分積と前記け
た上げ入力信号とを一緒に加算するステップとを含む方
法。
【0108】(20) 第17項記載の方法において、
前記ブースコード化するステップにおいて発生された前
記複数の倍数制御信号がまた、前記複数の部分積を発生
するに当たって選択された前記複数の修正された第1オ
ペランドの倍数の絶対値を表示する絶対値制御信号を含
む方法。
【0109】(21) 第20項記載の方法において、
各符号拡張接頭辞が前記先頭符号ビット信号と、前記零
信号の状態と、前記負信号の状態とに応答して発生され
る方法。
【0110】(22) 第16項記載の方法であって、
前記乗算が前記符号なし書式でのオペランドについてで
あると判定することに応答して、指数結果を発生するた
めに前記符号なし書式での第1オペランドの指数部分と
第2オペランドの指数部分とを加算するステップを更に
包含し、第1オペランドを前記修正するステップと、前
記発生するステップと、部分積の各々を前記修正するス
テップと、前記加算するステップとが前記第1オペラン
ドの仮数部と前記第2オペランドの仮数部とに遂行され
る方法。
【0111】(23) 符号付き乗算と符号なし乗算と
を遂行する能力のある乗算器86を有する浮動小数点装
置(FPU)を含むマイクロプロセッサと前記マイクロ
プロセッサを含むシステムが開示される。前記乗算器8
6は、被乗数の最上位ビットに複写される信号を符号ビ
ット信号線路SGN上に発生する選択回路64を含む。
前記選択回路64は、符号付き乗算又は符号なし乗算を
遂行すべきかどうか表示する制御信号SIGNXを受け
取る。符号付き乗算では、選択回路64は被乗数の最上
位ビットS/MSBを前記符号ビット信号線路SGNに
供給する。符号なし乗算では、前記選択回路64は、低
論理レベルを前記符号ビット信号線路SGNに供給す
る。被乗数は1ビット位置だけ右へけた送りされ、かつ
前記符号ビット信号線路SGNの状態が新最上位ビット
として記憶される。ブースエンコーダ68は、乗数に3
ビットブースコード化を遂行し、かつ制御線路Z、N、
Xに、それぞれ、零制御信号、負制御信号、絶対値制御
信号を発生する。前記線路Z上の零制御信号と前記線路
N上の負制御信号とは、前記線路SGN上の符号ビット
信号と一緒に接頭辞論理70に供給され、前記論理70
は符号拡張接頭辞PFXを発生し、前記接頭辞PFXは
前記ブースエンコーダ68の出力に従って部分積発生器
66によって発生された部分積PPに付加される。前記
部分積PPと前記接頭辞PFXとは、乗算器アレー72
によって加算されて積になる。それゆえ、前記乗算器6
8は、符号拡張を使用して、多数の書式でのオペランド
を乗算する能力を有する。
【図面の簡単な説明】
【図1】本発明の好適実施により構成されたマイクロプ
ロセッサ及びシステムのブロック電気回路ブロック図。
【図2】本発明の好適実施例による図1のマイクロプロ
セッサ内の浮動小数点装置のブロック電気回路図。
【図3】本発明の好適実施例による図2の浮動小数点装
置内の実行段のブロック電気回路図。
【図4】本発明の好適実施例による図2の浮動小数点装
置内の乗算器のブロック電気回路図。
【図5】本発明の好適実施例による図4の乗算器内の機
能素子のブロック電気回路図であって、aは部分積発生
器及び部分積レジスタの図、bはaの部分積発生器内の
論理セルの図。
【図6】本発明の好適実施例による図2の浮動小数点装
置内の乗算器アレーのブロック電気回路図。
【図7】本発明の好適実施例による図6の乗算器アレー
の第1けた上げ保留レベル内のけた上げ保留加算器のブ
ロック電気回路図。
【符号の説明】
6 レベル2キャッシュ 8 バスインタフェース装置 10 マイクロプロセッサ 16 レベル1キャッシュ 18 マイクロキャッシュ 20 クロック及び発生制御電子回路 22 命令マイクロ翻訳ルックアサイドバッファ 26 取出し装置 28 プリデコード0段 31 浮動小数点装置(FPU) 32 プリデコード1段 34 デコーダ 36 正数部内のスケジューラ 37 スヌープ論理 38 データマイクロ翻訳ルックアサイドバッファ 39 レジスタファイル 40 論理演算装置(ALU) 42 ロード/記憶装置 44 オペランド装置 46 マイクロコードROM 47 FPUマイクロシーケンサ 48 整数マイクロシーケンサ 49 FPU待ち行列段 50 FPUスケジューラ 52 FPUレジスタファイル 54 FPUルータ 55 定数データROM 56 FPU第1実行段 58 FPU第2実行段 60 FPU第3実行段 61 けた送りされた被乗数状態 62 FPU誤りレジスタ 64 マルチプレクサ 66 部分積発生器 68 ブースエンコーダ 70 接頭辞論理 72 乗算器アレー 73 マルチプレクサ 74 マルチプレクサ 81 オペランドレジスタ 82 指数加算器 84 整列シフタ 86 乗算器 88 指数選択器 90 加算器 91、93 けた上げ保留レベル 94 指数調節回路 95、97 けた上げ保留レベル 98 あふれ/下位けたあふれ検出器 99 けた上げ保留レベル 100 正規化電子回路 103 スティッキービット論理回路 106 丸め電子回路 110 高速ROM 115 結果選択器 117 結果レジスタ

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 集積回路内に実現されるマイクロプロセ
    ッサであって、 オペランドを表すディジタルデータ語を記憶するメモリ
    であって、各オペランドを符号付き書式と符号なし書式
    を含む複数の書式の1つで記憶す前記メモリと、 前記メモリから第1オペランドと第2オペランドとを検
    索し、かつ前記オペランドの乗算に相当する積オペラン
    ドを発生するために、プログラム命令に従って制御可能
    な演算電子回路とを包含し、前記演算電子回路が前記プ
    ログラム命令に相当する命令コードを受け取り、かつ前
    記乗算が符号付きオペランドについてであるか又は符号
    なしオペランドについてであるか表示する符号制御信号
    を発生するスケジューラと、 被乗数として第1オペランドを受け取りかつ乗数として
    第2オペランドを受け取る乗算回路とを含み、前記乗算
    回路が前記乗算が符号付きオペランドについてであると
    表示する制御信号に応答して最上位ビットに相当する符
    号ビット信号を発生し、及び前記乗算が符号なしオペラ
    ンドについてであると表示する制御信号に応答して固定
    論理レベルに相当する符号ビット信号を発生するため
    に、データ入力に前記第1オペランドからの前記最上位
    ビットを受け取りかつ制御入力に前記制御信号を受け取
    る選択回路と、 複数の部分積を発生するために、前記第2オペランドを
    受け取るように結合されかつ前記符号ビット信号に相当
    する修正された最上位ビットを有する前記第1オペラン
    ドを受け取るように結合された部分積発生電子回路であ
    って、前記複数の部分積の各々が前記第2オペランドの
    相当する部分の値に応答して前記修正された第1オペラ
    ンドの倍数に相当する前記部分積発生電子回路と、 前記符号制御信号と前記部分積に対する前記第2オペラ
    ンドの相当する部分とに応答して各部分積に接頭辞を供
    給する接頭辞論理と、 積オペランドを形成するために接頭辞を有する部分積を
    加算する加算電子回路とを含むマイクロプロセッサ。
  2. 【請求項2】 符号なし書式又は符号付き書式でのオペ
    ランドに乗算を遂行するためにマイクロプロセッサ内の
    演算電子回路を演算させる方法であって、 前記乗算が符号付き書式でのオペランドについてである
    か又は符号なし書式でのオペランドについてであるか判
    定するステップと、 先頭符号ビット信号で以て第1オペランドを修正するス
    テップであって、前記先頭符号ビットは前記乗算が符号
    付き書式でのオペランドについてであると判定すること
    に応答して前記第1オペランドの符号ビットに相当し、
    前記先頭符号ビットは前記乗算が符号なし書式でのオペ
    ランドについてであると判定することに応答して固定論
    理レベルにある前記第1オペランドを前記修正するステ
    ップと、 複数の部分積を発生するステップであって、各部分積は
    第2オペランドに相当する部分の値に応答して選択され
    た前記修正された第1オペランドの倍数である前記複数
    の部分積を発生するステップと、 符号拡張接頭辞で以て前記複数の部分積の各々を修正す
    るステップであって、各符号拡張接頭辞は前記先頭符号
    ビットと前記第2オペランドの前記相当する部分の値と
    に応答して発生される前記複数の部分積の各々を前記修
    正するステップと、 前記修正された複数の部分積を加算するステップとを包
    含する方法。
JP9299021A 1996-10-30 1997-10-30 種々の書式のオペランドを高効率で乗算する能力を有するマイクロプロセッサ及びその演算方法 Pending JPH10143355A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US2968096P 1996-10-30 1996-10-30
US029680 1996-10-30

Publications (1)

Publication Number Publication Date
JPH10143355A true JPH10143355A (ja) 1998-05-29

Family

ID=21850312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9299021A Pending JPH10143355A (ja) 1996-10-30 1997-10-30 種々の書式のオペランドを高効率で乗算する能力を有するマイクロプロセッサ及びその演算方法

Country Status (2)

Country Link
EP (1) EP0840207A1 (ja)
JP (1) JPH10143355A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527064A (ja) * 2006-02-15 2009-07-23 クゥアルコム・インコーポレイテッド ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP2009527060A (ja) * 2006-02-15 2009-07-23 クゥアルコム・インコーポレイテッド 拡張された削減ツリー回路構成を有するブース乗算器
JP2010160708A (ja) * 2009-01-09 2010-07-22 Sony Corp 演算器、プロセッサ、コンパイル処理装置およびコンパイル処理方法
US7809783B2 (en) 2006-02-15 2010-10-05 Qualcomm Incorporated Booth multiplier with enhanced reduction tree circuitry
JP2015111421A (ja) * 2010-09-24 2015-06-18 インテル・コーポレーション ベクトル機能ユニット、方法、およびコンピューティングシステム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102007014808A1 (de) * 2007-03-28 2008-10-02 Texas Instruments Deutschland Gmbh Multiplizier- und Multiplizier- und Addiereinheit
US9477516B1 (en) 2015-03-19 2016-10-25 Google Inc. Concurrent in-memory data publication and storage system
CN113031918A (zh) * 2019-12-24 2021-06-25 上海寒武纪信息科技有限公司 数据处理器、方法、装置及芯片

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4495593A (en) * 1982-07-01 1985-01-22 Hewlett-Packard Company Multiple bit encoding technique for combinational multipliers
FR2546318B1 (fr) * 1983-05-20 1987-12-24 Efcis Multiplieur binaire avec extension de signe pour la multiplication de nombres signes ou non signes
US4575812A (en) * 1984-05-31 1986-03-11 Motorola, Inc. X×Y Bit array multiplier/accumulator circuit
FR2722590B1 (fr) * 1994-07-15 1996-09-06 Sgs Thomson Microelectronics Circuit logique de multiplication parallele

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009527064A (ja) * 2006-02-15 2009-07-23 クゥアルコム・インコーポレイテッド ブース乗算方法及びシステムのための電力効率の良い符号拡張
JP2009527060A (ja) * 2006-02-15 2009-07-23 クゥアルコム・インコーポレイテッド 拡張された削減ツリー回路構成を有するブース乗算器
US7797366B2 (en) 2006-02-15 2010-09-14 Qualcomm Incorporated Power-efficient sign extension for booth multiplication methods and systems
US7809783B2 (en) 2006-02-15 2010-10-05 Qualcomm Incorporated Booth multiplier with enhanced reduction tree circuitry
JP2010160708A (ja) * 2009-01-09 2010-07-22 Sony Corp 演算器、プロセッサ、コンパイル処理装置およびコンパイル処理方法
JP2015111421A (ja) * 2010-09-24 2015-06-18 インテル・コーポレーション ベクトル機能ユニット、方法、およびコンピューティングシステム

Also Published As

Publication number Publication date
EP0840207A1 (en) 1998-05-06

Similar Documents

Publication Publication Date Title
US6487575B1 (en) Early completion of iterative division
US6269384B1 (en) Method and apparatus for rounding and normalizing results within a multiplier
US6397238B2 (en) Method and apparatus for rounding in a multiplier
Zhang et al. Efficient multiple-precision floating-point fused multiply-add with mixed-precision support
US6490607B1 (en) Shared FP and SIMD 3D multiplier
US6038583A (en) Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products
US5272660A (en) Method and apparatus for performing integer and floating point division using a single SRT divider in a data processor
US6099158A (en) Apparatus and methods for execution of computer instructions
US6144980A (en) Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication
US5392228A (en) Result normalizer and method of operation
US5790446A (en) Floating point multiplier with reduced critical paths using delay matching techniques
US6360189B1 (en) Data processing apparatus and method for performing multiply-accumulate operations
US6647404B2 (en) Double precision floating point multiplier having a 32-bit booth-encoded array multiplier
JPH06236257A (ja) データ・プロセッサにおいて浮動小数点実行ユニット内で後正規化を実行する方法および装置
WO1991011765A1 (en) Architecture for minimal instruction set computing system
US5426600A (en) Double precision division circuit and method for digital signal processor
US11068238B2 (en) Multiplier circuit
Hickmann et al. A parallel IEEE P754 decimal floating-point multiplier
WO2006039610A1 (en) An apparatus and method for address generation using a hybrid adder
Naini et al. 1 GHz HAL SPARC64/sup R/Dual Floating Point Unit with RAS features
US5991863A (en) Single carry/borrow propagate adder/decrementer for generating register stack addresses in a microprocessor
US6175911B1 (en) Method and apparatus for concurrently executing multiplication and iterative operations
Boersma et al. The POWER7 binary floating-point unit
Vázquez et al. Iterative algorithm and architecture for exponential, logarithm, powering, and root extraction
JPH10143355A (ja) 種々の書式のオペランドを高効率で乗算する能力を有するマイクロプロセッサ及びその演算方法