JPH10333886A - 浮動小数点の乗算回路 - Google Patents

浮動小数点の乗算回路

Info

Publication number
JPH10333886A
JPH10333886A JP14120797A JP14120797A JPH10333886A JP H10333886 A JPH10333886 A JP H10333886A JP 14120797 A JP14120797 A JP 14120797A JP 14120797 A JP14120797 A JP 14120797A JP H10333886 A JPH10333886 A JP H10333886A
Authority
JP
Japan
Prior art keywords
value
circuit
product
multiplier
adder
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
JP14120797A
Other languages
English (en)
Inventor
Yayoi Sotozono
弥生 外園
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP14120797A priority Critical patent/JPH10333886A/ja
Publication of JPH10333886A publication Critical patent/JPH10333886A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 浮動小数点の乗算回路の回路規模を縮小す
る。 【解決手段】 値Aの符号部SA と値Bの符号部SB と
から積Cの符号部SC を出力するイクスクルーシブオア
回路11を設ける。値Aの仮数部FA と値Bの仮数部F
B とを乗算する乗算器31と、この乗算器31の乗算結
果を正規化して積Cの仮数部FC を出力する正規化回路
35とを設ける。値Aの指数部EA と値Bの指数部EB
とを加算する加算器21と、この加算器21の加算結果
を正規化回路35からの信号にしたがって補正して積C
の指数部EC を出力するインクリメンタ23とを設け
る。乗算器31は、2次のブースデコーダおよびセレク
タにより部分積を求めてアレイ式に加算するものとす
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、浮動小数点の乗
算回路に関する。
【0002】
【従来の技術】例えばコンピュータゲーム機において、
3Dグラフィックス表示などを行う場合には、乗算処理
により座標軸の演算を高速に行う必要があるとともに、
その処理回数も多くなるので、専用の乗算器が必要にな
る。
【0003】
【発明が解決しようとする課題】ところが、そのような
乗算器として、浮動小数点で乗算を行うとともに、IEEE
754 規格にしたがったものを採用すると、回路規模が大
きくなり、コストが高くなってしまう。したがって、家
庭用のゲーム機に、そのような乗算器を搭載することは
できない。
【0004】その点、乗算器として、固定小数点で乗算
を行うものを使用すれば、コストの問題は生じないが、
座標の演算結果の精度が低くなるので、演算結果をソフ
トウエアなどにより補正する必要があり、ソフトウエア
が複雑になってしまう。
【0005】また、ポリゴンの座標変換は行列同士の積
になるので、積和演算が多用されるが、乗算器と加算器
とを組み合わせて演算をすると、命令の実行に2サイク
ル以上かかってしまい、速度が低下してしまう。
【0006】この発明は、以上のような問題点を解決し
ようとするものである。
【0007】
【課題を解決するための手段】このため、この発明にお
いては、二つの単精度の浮動小数点の値A、Bからそれ
らの積Cを求める乗算回路において、上記値Aの符号部
と上記値Bの符号部とのイクスクルーシブオアから上記
積Cの符号部を出力するイクスクルーシブオア回路と、
上記値Aの仮数部と上記値Bの仮数部とを乗算する乗算
器と、この乗算器の乗算結果を正規化して上記積Cの仮
数部を出力する正規化回路と、上記値Aの指数部と上記
値Bの指数部とを加算する加算器と、この加算器の加算
結果を上記正規化回路からの信号にしたがって補正して
上記積Cの指数部を出力するインクリメンタとを有し、
上記乗算器は、2次のブースデコーダおよびセレクタに
より部分積を求めてアレイ式に加算いくようにした浮動
小数点の乗算回路とするものである。したがって、縮小
された回路で浮動小数点の乗算が実行される。
【0008】
【発明の実施の形態】図1は、この発明の一例を示す。
そして、IEEE754 の浮動小数点の演算規格には、64ビッ
トの倍精度と、32ビットの単精度とがあるが、この例に
おいては、家庭用のコンピュータゲーム機などに使用さ
れることを考慮して、32ビットの単精度処理に特化した
場合である。
【0009】したがって、A×B=Cの乗算において、
被乗数Aの符号部SA は1ビット、指数部EA は8ビッ
ト、仮数部FA は23ビットであり、同様に、乗数Bおよ
び積Cの符号部SB 、SC は1ビット、指数部EB 、E
C は8ビット、仮数部FB 、FC は23ビットである。
【0010】そして、図1において、符号1A、1Bは
値A、Bがそれぞれロードされる入力レジスタを示し、
符号1Cは演算結果である積Cを取り出すための出力レ
ジスタである。
【0011】そして、符号部の演算は、符号部SA 、S
B のイクスクルーシブオアから求めるもので、値A、B
が入力レジスタ1A、1Bにロードされると、その符号
部SA 、SB がイクスクルーシブオア回路11に供給さ
れて、SC =SA ^SBで示される論理演算により、積
Cの符号部SC が求められ、この符号部SC が出力レジ
スタ1Cに供給される。
【0012】また、指数部の演算は、指数部EA 、EB
の和から所定のバイアス値EBIASを減算して求める。そ
して、このとき、 EA +EB −EBIAS=EA +EB +(!EBIAS+1) ただし、!EBIASは、値EBIASの否定値(1の補数値) (!EBIAS+1)は、値EBIASの2の補数値 である。
【0013】そこで、レジスタ1A、1Bから指数部E
A 、EB が10ビットの加算器21に供給されるととも
に、補数値(!EBIAS+1)が加算器21に供給され、
加算器21から、半加算値(キャリーによる桁上げを含
まない加算値)と、先送りしたキャリーとが取り出さ
れ、これらの値が加算器22に供給されて加算結果EAD
Dが取り出される。そして、この加算結果EADD には、
仮数部からの正規化処理によるインクリメント処理が行
われるので、値EADD はいったんインクリメンタ23に
供給される。
【0014】さらに、仮数部の演算は乗算器31により
行うものであるが、この乗算器31は、24ビット×24ビ
ットの2次のブースのアルゴリズムを採用したものとさ
れ、これにレジスタ1A、1Bから仮数部FA 、FB が
供給される。
【0015】すなわち、乗算器31は、2次のブースデ
コーダおよびセレクタにより部分積を求めてアレイ式に
加算いくものであり、求められた部分積は、キャリーを
先送りにした加算器により加算される。この場合、アレ
イ式に順に加算が行われるので、下位と上位との部分積
は入り混じることがなく規則正しく並ぶ。また、半加算
値および下位のキャリーは、そのまま切り捨てることが
できるので、丸め回路は省略される。
【0016】さらに、乗算器31からの半加算値および
先送りしたキャリーが、ラッチ32、33を通じて24ビ
ットの加算器34に供給されて加算され、その加算結果
FADD が正規化回路35に供給される。この正規化回路
35においては、値FADD が、最上位が“1”となるま
で左シフトされ、そのシフト結果のうち、最上位の
“1”のビットの次のビットから23ビットが、仮数部の
演算結果FC としてレジスタ1Cに供給される。
【0017】また、正規化回路35において、値FADD
が左シフトされた回数を示す値がインクリメンタ23に
供給されて加算値EADD が補正され、その結果が、指数
部の演算結果EC としてレジスタ1Cに供給される。
【0018】さらに、このとき、インクリメンタ23に
おけるオーバーフローおよびアンダーフローが検出回路
24により検出され、この検出結果により、オーバーフ
ローあるいはアンダーフローを生じたときには、これが
CPU40に通知される。あるいはシステムの構成によ
っては、値Cが所定の設定値に差し替えられる。
【0019】以上により、レジスタ1Cに浮動小数点の
乗算結果Cが取り出される。
【0020】こうして、浮動小数点の乗算が行われる
が、この場合、特に上述の乗算回路によれば、家庭用の
コンピュータゲーム機などに使用されることを考慮して
IEEE754 規格のうちの単精度の乗算だけを扱うようにし
たので、回路規模を大幅に縮小することができる。
【0021】また、乗算器31の部分積加算の形式をア
レイ型に構成し、下位をそのまま切り捨てるようにした
ので、丸めのための回路が不要になり、この点からも回
路規模を縮小することができる。
【0022】さらに、以上のことからコストを低減する
ことができ、家庭用のコンピュータゲーム機などにも使
用することができるとともに、その描画能力あるいは表
現能力を高めることできる。
【0023】ところで、仮数部の乗算器31のうち、部
分積を加算する部分をキャリー先送り型(キャリーセー
ブ型)に構成すると、図2にその一部を示すように、初
段が半加算器HAとされ、次段以降が全加算器FAとさ
れるが、図3に示す例においては、その初段も全加算器
FAとされ、そのキャリー入力に、セレクタ36を通じ
て第三の値D(D0 、D1 、…は、その各ビット)ある
いは“0”が選択的に入力される場合である。
【0024】したがって、セレクタ36により“0”が
選択されて入力されるときには、初段の全加算器FAは
半加算器HAと等価になるので、上記のように、部分積
の加算が行われる。しかし、セレクタ36により、値D
が選択されて入力されるときには、部分積の加算に加え
て値Dが加算されることになる。
【0025】したがって、この乗算器は、必要に応じて
乗算(A×B)と積和演算(A×B+D)とを選択的に
実行できることになる。
【0026】そして、このように乗算器に積和演算の機
能を付加することができるので、例えばゲーム機全体と
しての構成を簡略化できるとともに、コストを低減する
ことができる。
【0027】
【発明の効果】この発明によれば、回路規模を大幅に縮
小することができるとともに、コストを低減することが
できる。さらに、乗算だけでなく、積和演算も行うこと
ができる。
【図面の簡単な説明】
【図1】この発明の一形態を示す系統図である。
【図2】この発明を説明するための系統図である。
【図3】この発明の他の形態の一部を示す系統図であ
る。
【符号の説明】
1Aおよび1B=入力用レジスタ、1C=出力用レジス
タ、11=イクスクルーシブオア回路、21および22
=加算器、23=インクリメンタ、24=検出回路、3
1=乗算器、32および33=ラッチ、34=加算器、
35=正規化回路、36=セレクタ、40=CPU

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】二つの単精度の浮動小数点の値A、Bから
    それらの積Cを求める乗算回路において、 上記値Aの符号部と上記値Bの符号部とのイクスクルー
    シブオアから上記積Cの符号部を出力するイクスクルー
    シブオア回路と、 上記値Aの仮数部と上記値Bの仮数部とを乗算する乗算
    器と、 この乗算器の乗算結果を正規化して上記積Cの仮数部を
    出力する正規化回路と、 上記値Aの指数部と上記値Bの指数部とを加算する加算
    器と、 この加算器の加算結果を上記正規化回路からの信号にし
    たがって補正して上記積Cの指数部を出力するインクリ
    メンタとを有し、 上記乗算器は、2次のブースデコーダおよびセレクタに
    より部分積を求めてアレイ式に加算いくようにした浮動
    小数点の乗算回路。
  2. 【請求項2】請求項1に記載の浮動小数点の乗算回路に
    おいて、 上記部分積を求める回路の初段を全加算器により構成
    し、 この全加算器のキャリー入力に、“0”と任意の値Dと
    を選択的に供給するようにした浮動小数点の乗算回路。
  3. 【請求項3】請求項2に記載の浮動小数点の乗算回路に
    おいて、 上記全加算器のキャリー入力に、上記“0”と上記値D
    とをセレクタを通じて選択的に供給するようにした浮動
    小数点の乗算回路。
  4. 【請求項4】請求項3に記載の浮動小数点の乗算回路に
    おいて、 上記インクリメンタに、オーバーフローおよびアンダー
    フローの検出回路を接続するようにした浮動小数点の乗
    算回路。
JP14120797A 1997-05-30 1997-05-30 浮動小数点の乗算回路 Pending JPH10333886A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14120797A JPH10333886A (ja) 1997-05-30 1997-05-30 浮動小数点の乗算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14120797A JPH10333886A (ja) 1997-05-30 1997-05-30 浮動小数点の乗算回路

Publications (1)

Publication Number Publication Date
JPH10333886A true JPH10333886A (ja) 1998-12-18

Family

ID=15286642

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14120797A Pending JPH10333886A (ja) 1997-05-30 1997-05-30 浮動小数点の乗算回路

Country Status (1)

Country Link
JP (1) JPH10333886A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929423B1 (ko) * 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 부동소수점의 복합 연산 장치
US8041758B2 (en) 2006-02-23 2011-10-18 Nec Computer Techno, Ltd. Multiplier and arithmetic unit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100929423B1 (ko) * 2002-10-11 2009-12-03 매그나칩 반도체 유한회사 부동소수점의 복합 연산 장치
US8041758B2 (en) 2006-02-23 2011-10-18 Nec Computer Techno, Ltd. Multiplier and arithmetic unit

Similar Documents

Publication Publication Date Title
US6049865A (en) Method and apparatus for implementing floating point projection instructions
US7720900B2 (en) Fused multiply add split for multiple precision arithmetic
US8046399B1 (en) Fused multiply-add rounding and unfused multiply-add rounding in a single multiply-add module
JP4418578B2 (ja) 第1、第2、第3オペランドに浮動小数点演算を適用するためのデータ処理装置および方法
US8606840B2 (en) Apparatus and method for floating-point fused multiply add
US8838664B2 (en) Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format
US20180052660A1 (en) Apparatus and method for fixed point to floating point conversion and negative power of two detector
JPH02196328A (ja) 浮動小数点演算装置
US20100125621A1 (en) Arithmetic processing device and methods thereof
US5148386A (en) Adder-subtracter for signed absolute values
EP3447634A1 (en) Non-linear function computing device and method
KR101560340B1 (ko) 포화가 적용된 정수 곱셈 연산 및 곱셈-덧셈 연산
US8060551B2 (en) Method and apparatus for integer division
Takagi et al. A hardware algorithm for integer division
JPH09212337A (ja) 浮動小数点演算処理装置
US20050228844A1 (en) Fast operand formatting for a high performance multiply-add floating point-unit
US20070038693A1 (en) Method and Processor for Performing a Floating-Point Instruction Within a Processor
JP2010238011A (ja) ベクトル乗算処理装置および方法ならびにプログラム
US10310809B2 (en) Apparatus and method for supporting a conversion instruction
Gök et al. Multi-functional floating-point MAF designs with dot product support
US7080112B2 (en) Method and apparatus for computing an approximation to the reciprocal of a floating point number in IEEE format
JP2010218197A (ja) 浮動小数点積和演算装置、浮動小数点積和演算方法、及び浮動小数点積和演算用プログラム
JPH10333886A (ja) 浮動小数点の乗算回路
JPH0540605A (ja) 浮動小数点乗算装置
JP2517064B2 (ja) 非正規化数の処理方式