JPH0776911B2 - 浮動小数点演算装置 - Google Patents

浮動小数点演算装置

Info

Publication number
JPH0776911B2
JPH0776911B2 JP63068600A JP6860088A JPH0776911B2 JP H0776911 B2 JPH0776911 B2 JP H0776911B2 JP 63068600 A JP63068600 A JP 63068600A JP 6860088 A JP6860088 A JP 6860088A JP H0776911 B2 JPH0776911 B2 JP H0776911B2
Authority
JP
Japan
Prior art keywords
digit
rounding
carry
arithmetic
circuit
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
JP63068600A
Other languages
English (en)
Other versions
JPH01240927A (ja
Inventor
隆志 谷口
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP63068600A priority Critical patent/JPH0776911B2/ja
Priority to US07/327,656 priority patent/US5122981A/en
Publication of JPH01240927A publication Critical patent/JPH01240927A/ja
Priority to US07/870,389 priority patent/US5373459A/en
Priority to US07/870,075 priority patent/US5289396A/en
Priority to US08/337,017 priority patent/US5495434A/en
Publication of JPH0776911B2 publication Critical patent/JPH0776911B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods 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 for evaluating functions by calculation
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/544Indexing scheme relating to group G06F7/544
    • G06F2207/5442Absolute difference
    • 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/49905Exception handling
    • G06F7/4991Overflow or underflow
    • 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/49942Significance control
    • G06F7/49947Rounding
    • 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
    • G06F7/506Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages
    • G06F7/508Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination with simultaneous carry generation for, or propagation over, two or more stages using carry look-ahead circuits

Landscapes

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

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、浮動小数点演算装置に係り、特に2つの浮動
小数点データの仮数部の加算あるいは減算と結果の丸め
を高速に実行するようにした浮動小数点演算装置に関す
るものである。
従来の技術 従来の浮動小数点データの加減算は、例えば第5図に示
すブロック図のような構成で行われていた。第5図にお
いて、Ex・Fxは入力データXのそれぞれ指数部および仮
数部データ、Ey・Fyは入力データYのそれぞれ指数部お
よび仮数部データ、501は指数比較回路、502,503,504は
選択回路、505はシフタ、506および508は補数回路、507
は加算器、509は丸め回路、510は正規化回路、Ez・Fzは
加減算結果の出力データZのそれぞれ指数部および仮数
部である。
以下に第5図のブロック図の動作を説明する。まず、指
数比較回路501により、入力データXおよびYの指数部E
x,Eyを比較し、大きな指数の値をもつ入力データの仮数
部が、補数回路506に入力され、小さな指数の値をもつ
入力データの仮数部がシフタ505に入力され、さらに、
指数部データExおよびEyのうち大きな値をもつ指数部デ
ータが正規化回路510に入力されるように選択回路502,5
03および504が制御される。また、この時指数部データ
の差の値がシフタ505に入力される。次に、シフタ505に
加えられた仮数部データを指数部データの差の分だけ右
にシフトして桁合わせをする。この時、シフトにより右
にはみだした桁は上位から保護桁(ガードビット),丸
め桁(ラウンドビット)、それ以下の全桁については論
理和をとり添付桁(スティッキビット)として最下位桁
に3桁付加され、演算結果の丸めに用いられる。この
後、補数回路506により、仮数部のデータに関する演算
が加算である場合には、選択回路502から出力される仮
数部データをそのまま加算器507に出力し、減算の場合
には選択回路502から出力される仮数部データの2の補
数値を生成して加算器507に出力する。次に、加算器507
により2つの桁合わせされた仮数部データを加算する。
次に、絶対値化された仮数部の結果を求めるために、補
数回路508により、加算器507の結果が正である場合には
加算器507の結果をそのまま丸め回路509に出力し、負で
ある場合には加算器507の結果の2の補数値を生成して
丸め回路509に出力する。丸め回路509では、仮数部の演
算結果を丸め、最後に正規化回路510により、桁合わせ
および指数部の補正などを行って演算を終了する。
発明が解決しようとする課題 上記のような従来技術では、演算回路506により、仮数
部のデータに関する演算が加算である場合には選択回路
502から出力される仮数部データをそのまま加算器507に
出力し、減算の場合には選択回路502から出力される仮
数部データの2の補数値を生成して加算器507に出力し
なければならない。また、絶対値化された仮数部の結果
を求めるために、補数回路508により、加算器507の結果
が正である場合には加算器507の結果をそのまま丸め回
路509に出力し、負である場合には加算器507の結果の2
の補数値を生成して丸め回路509に出力しなければなら
ない。これら2つの補数回路における2の補数の生成
は、具体的には、入力データの各桁を論理反転して、最
下位桁に1を加えることにより行われる。したがって、
仮数部に関する演算が減算であったり、演算結果が負に
なった場合には2の補数値を求めなければならないの
で、演算時間がかかり、また、2つの補数回路を必要と
するため回路の構成が複雑になるという問題点を有して
いた。
さらに、上記の従来技術では加算を終了した後に、演算
結果の絶対値の丸めを丸め回路509により行っている。
この場合の丸めは、絶対値化された演算結果に対して丸
めを行うべき桁を検出し、それに対応した桁へ、丸めに
より生じる桁上げを加算しなければならない。この場合
に、演算結果の絶対値が確定しなければ丸め演算を開始
できず、丸め演算に時間がかかり、回路も複雑になるな
どの問題点を有していた。
本発明は、係る点に鑑みてなされたもので、加減算器に
簡単な回路を付加することにより、簡単な構成で、仮数
部の演算、結果の丸めを高速に行う浮動小数点演算装置
を提供することを目的としている。
課題を解決するための手段 本発明は上記目的を達成するため、2つの浮動小数点数
のうち指数の大きいほうの第1の浮動小数点数の第1の
仮数部データと、前記第1の仮数部データに右シフトし
て桁合わせされた指数の小さいほうの第2の浮動小数点
数の第2の仮数部データとを基準の桁以上の桁で加算ま
たは減算の演算をし出力する第1の演算手段と、前記第
2の仮数部データと“1"との和と前記第1の仮数部デー
タとを前記基準の桁以上の桁で前記演算と同一の演算を
し出力する第2の演算手段と、前記演算および丸めを実
行した場合に生じる前記基準の桁への桁上げ信号を、前
記第1,第2の演算手段の演算と並行して出力する丸め桁
上げ生成手段と、前記丸め桁上げ生成手段の出力と、前
記第1の演算手段および前記第2の演算手段の上位桁か
ら、結果選択信号を生成する選択信号生成手段と、前記
結果選択信号により、前記第1の演算手段および前記第
2の演算手段の出力から選択して出力する選択手段とを
備えた構成とする。また、前記第1の演算手段と前記第
2の演算手段とを同一の桁上げ生成伝搬発生回路を共用
して構成することが望ましい。
作用 本発明は上気した構成により、第1の演算手段により、
(第1の仮数部データ±第2の仮数部データ)の結果を
求め、同時に第2の演算手段により、{第1の仮数部デ
ータ±(第2の仮数部データ+1)}の結果を求められ
る。丸めにより生じる桁上げを所定の基準桁に合わせて
おくことにより、桁上げの値が高々1なので、基準桁よ
り上位への丸め桁上げを求めて、桁あふれをふくむ上位
2桁から、演算結果を選択することにより、高速に演
算,丸めを高速に行うことができる。
また、前記第1の演算手段を行う回路と第2の演算手段
を行う回路とは、同一の桁上げ生成伝搬発生回路を共用
して構成することができるため、従来例のような2つの
補数回路、加減算器および丸め回路を独立にもたせる場
合に比較して、回路素子数を大幅に少なくすることがで
きる。
実施例 第1図は、本発明の実施例を示すブロック図である。第
1図において、101は桁上げ生成伝搬発生回路、102は丸
め桁上げ生成回路、103,104は和差生成回路、105は反転
回路、106は演算結果選択信号生成回路、107は選択回
路、Xは指数部の大きいデータの仮数部(以下被演算数
と呼ぶ。)、Yは指数部の小さいデータの右シフトされ
た仮数部の保護桁以下を除いた仮数部データ(以下演算
数と呼ぶ。)、GRSは指数部の小さいデータの右シフト
された仮数部の保護桁,丸め桁、および添付桁(以下単
にGRSと呼ぶ。)、MSUBは減算信号、Zは丸めを含む演
算結果である。
まず、第1図の動作を説明する。被演算数Xと演算数Y
が桁上げ生成伝搬発生回路101に入力されると、減算信
号MSUBの値により、仮数部に関する演算が加算の場合に
は、XとYを加算する場合に生じる各桁での桁上げ信号
C0108と、さらに最下位桁へ1の桁上げがある時にXと
Yを加算する場合に生じる各桁での桁上げ信号C1109を
求め、演算が減算である場合には、XからYを減算する
場合に生じる各桁での桁借り信号C0108と、さらに最下
位桁へ1の桁借りがある時にXからYを減算する場合に
生じる各桁で桁借り信号C1109を求め、和差生成回路103
および104に加えられる。以下ではC0,C1をともに桁上げ
信号と呼ぶ。これらの桁上げ信号C0,およびC1を生成す
るための回路は、大部分を共用して構成することができ
る。さらに、桁上げ生成伝搬発生回路101では、XとY
の各桁での排他的論理和出力の中間和Sを求める。ま
た、丸め桁上げ生成回路102では、被演算数Xと演算数
Yの一部およびGRSが入力され、XとYおよびGRSを含ん
だ演算に対して各の丸め桁位置での丸めを行なう場合に
生じるXまたはYの最下位桁への桁上げ(減算の場合に
は桁借り)111(以下のこの桁上げを丸め桁上げ信号と
呼ぶ。)を求め、演算結果選択信号生成回路106に入力
される。次に、和差生成回路103および104は桁上げ生成
伝搬発生回路101で求められた各桁での桁上げ信号C0108
およびC1109と、各桁の排他的論理和S110により、Xと
Yの演算結果X±Y112および、最下位桁へ桁上げあるい
は桁借りが生じる場合の演算結果X±(Y+1)113を
求める。これらの演算結果は、選択回路107に入力さ
れ、X±(Y+1)113については反転回路105にも入力
され、さらに、これら演算結果のそれぞれの桁あふれを
含む上位2桁114および115が、演算結果選択信号生成回
路106に入力される。反転回路105は、和差生成回路104
で求められた演算結果X±(Y+1)113の各桁を反転
して 116を求め、選択回路107に加えられる。この の値は、演算が減算の場合にX−Yの2の補数表現、す
なわち−(X−Y)の結果に等しい。最後に、丸め桁上
げ生成回路102で求められた丸め桁上げ信号111と、演算
結果の上位2桁114および115と減算信号MSUBから、演算
結果選択信号生成回路106により、演算結果112,113およ
び116のうち、正しい結果を選択するための選択信号117
を生成し、選択回路107によりその結果を選択し、丸め
および絶対値化した演算結果Zを出力する。以上説明し
たようにして、仮数部の演算を行うことにより、丸めお
よび絶対値化した演算結果を得られ、高速に、しかも少
ない素子数で仮数部演算器を構成することができる。
次に、各の回路について具体的に説明する。まず、桁上
げ生成伝搬発生回路101について説明する。この桁上げ
生成伝搬発生回路101は、この回路に入力される2つの
データXとYの加算あるいは減算を行なう場合に生じる
各桁での桁上げC0と、最下位桁への桁上げあるいは桁借
りがある時に、XとYとの加算あるいは減算を行う場合
に生じる各桁での桁上げC1を求めるための回路である。
以下入力されるデータをn桁としてX=xn-1……x1x0
よびY=yn-1……y1y0として説明する。まず、桁上げ生
成関数gi,jおよび桁上げ伝搬関数pi,jを考える。ここ
で、i≧jであり、gi,jはj桁目からi桁目まで加算あ
るいは減算を行った場合に上位へ桁上りあるいは桁借り
が生成されることを表し、pi,jはj桁目からi桁目まで
加算あるい減算を行った場合に、下位から桁上りあるい
は桁借りがあった場合に上位へ桁上りあるいは桁借りを
伝搬することを表している。以下では、桁上りと桁借り
を含めて桁上りと記述する。
この定義から、各桁自身の桁上げ生成関数gi,iおよび桁
上げ伝搬関数pi,iは入力データの各桁の値xiおよびyi
り以下のように与えられる。すなわち、 gi,i=(MSUBxi)・yi ……(1) pi,i=(MSUBxi)yi または、 =(MSUBxi)+yi ……(2) が成り立つ。ここで、MSUBは、減算信号であり、仮数部
に関する演算が減算の時“1"、加算の時“0"となる信号
である。また、i≧j≧kの関係を有するi,jおよびk
に対して以下の関数式がなり立つ。
すなわち、 gi,k=gi,j+pi,j・gj-1,k ……(3) pi,k=pi,j・pj-1,k ……(4) である。この(1)ないし(4)式によりある基準とな
る桁kから各々の桁iまでの桁上げ生成関数gi,kおよび
桁上げ伝搬関数pi,kを求めることができる。すなわち、
演算を行う各々の桁から(1)および(2)で表される
各桁自身の桁上げ生成関数gi,iおよび桁上げ伝搬関数p
i,iを求め、(3)および(4)式を繰り返し用いてあ
る基準となる桁から各々の桁までの桁上げ生成関数およ
び桁上げ伝搬関数を求めることができる。桁上げ生成関
数gi,kおよび桁上げ伝搬関数pi,jの定義から、全ての桁
の加算あるいは減算を考えたときのi桁目の桁上げCi
次式で与えられる。
Ci=gi,j+pi,j・cj-1 ……(5) また、(5)式においてj=0とおけば、 Ci=gi,0+pi,0・c-1 ……(6) となる。ここで、C-1は最下位桁への桁上りを意味して
おり、C-1を“0"とすればX±Yの演算に対する各桁か
らの桁上げ▲C0 i▼を求めることができる。また、C-1
を“1"とすれば、X±(Y+1)の演算に対する各桁か
らの桁上げ▲C1 i▼を求めることができる。また、桁上
げ生成伝搬発生回路101では、XとYの各桁での排他的
論理和による中間和Sを求める。すなわち、i桁目のデ
ータとして Si=xiyi ……(7) を出力している。この中間和Siは、前述の▲C0 i▼,▲
1 i▼とともに演算の最終和を求める時に用いられる。
次に和差生成回路103および104について述べる。この回
路は、XとYの演算時の桁上げC0およびC1と、中間和S
より、X±YとX±(Y+1)の結果を求めるものであ
る。すなわち、X±Yの演算結果のi桁▲Z0 i▼は、最
下位への桁上げC-1が“0"の場合のi桁への桁上げ▲C0
i-1▼より、 ▲Z0 i▼=xiyi▲C0 i-1▼ =Si▲C0 i-1▼ ……(8) として求められる。また、最下位桁へ桁上げがある場合
の演算結果X±(Y+1)のi桁▲Z1 i▼は、最下位へ
の桁上げC-1が“1"の場合のi桁への桁上げ▲C1 i-1
より、 ▲Z1 i▼=xiyi▲C1 i-1▼ =Si▲C1 i-1▼ ……(9) として求めることができる。
次に、丸め桁上げ生成回路102について述べる。この回
路は、XとYの下位桁の一部とGRSの信号により、GRSを
含んだXとYの演算に対して各の丸め桁位置での丸めを
行う場合に生じる、XまたはYの最下位桁への丸め桁上
げ信号111を求めるものである。まず、丸めについて説
明する。仮数部に関する加算において丸めを行うべき桁
は2つである。ここで、Xは正規化されたデータを考え
ているのでXの最上位桁は常に“1"になっている。した
がって、加算により桁あふれが生じる場合があり、この
時には有効桁が1桁上がるため、Xの最下位桁の1桁上
位桁までに丸めなければならない。また、加算により桁
あふれが生じない場合には、Xの最下位桁までに丸めな
ければならない。一方、減算においては、この場合も丸
めを行なうべき桁が2つあるが位置が1桁異なる。すな
わち、減算結果が正となる場合に、最上位桁が1となる
場合には、Xの最下位桁までに丸める。また、最上位桁
が0となる場合すなわち桁落ちが生じる場合には、Xの
最下位桁の1桁下位桁すなわち保護桁までに丸めなけれ
ばならない。この時、最上位桁から2桁以上連続して0
が並ぶ場合すなわち2桁以上桁落ちが生じる場合がある
が、このような場合が生じるのは、指数データの差が0
または1の場合に限られ、丸め桁以下の値は0となるの
で丸めを行う必要はないが、保護桁までに丸めた結果と
同一になる。また、減算結果が負になる場合があるが、
この時は常に2つの指数部データが等しい場合であり、
この時には丸めを行なう必要はない。以上のことから、
加算と減算をあわせて、3つの丸めを行なうべき桁が存
在する。すなわち、最下位桁,保護桁、および丸め桁で
ある。丸めモードとして、いくつかの方法がある。IEEE
754の浮動小数点演算規格では、4つの丸めモードが定
められている。すなわち、最近接丸め(round to neare
st),正方向丸め(round towara+∞),負方向丸め
(round toward−∞),零方向丸め(round toward 0)
である。したがって、丸め桁位置と丸めモードに対応す
るだけの、丸めにより生じる丸め桁上げ信号を丸め桁上
げ生成回路により求めておけばよい。ここでは、よく用
いられる丸めモードである最近接丸めについて述べる。
この最近接丸めは、丸めた時に正確な結果に最も近い値
となるように丸めるものであり、最も近い値が2つある
場合には丸められた結果の最下位が“0"となるように丸
めるものである。この丸めにより生じる丸め桁上げ信号
は、加算の場合について第3図の真理値表で、減算につ
いては第4図のような真理値表で与えられる。真理値表
において、▲Z0 1▼,▲Z0 0▼はXとYとを加算した時
の下位2桁の値であり、yG,yRおよびySは、それぞれ保
護桁,丸め桁および添付桁である。第3図において、yR
+ySはyRとySとの論理和を示す。減算の場合の−1は、
1の桁借りを意味する。また、加算の場合のCRUは、加
算により桁あふれが生じる場合の丸め桁上げを示すもの
であり、最下位桁の1桁上位桁すなわち▲Z0 1▼の桁ま
でに丸めた場合の結果と最下位へCRUの桁上げを行った
場合の▲Z0 1▼の桁以上の桁が等しくなるように丸め桁
上げを決定したものである。加算により桁あふれが生じ
る場合には、▲Z0 0▼の桁は丸めた結果として必要ない
ので、この桁の値が0であろうと1であろうとどちらで
もよい。したがって丸め桁上げは、0でも1でもよいよ
うな場合がある。第1表では*印で示している。また、
加算により桁あふれが生じない場合の丸めに対しては、
丸め桁上げの位置と丸めによる桁上げ位置が一致するの
で表に示すCRMのような値をとることになる。また、減
算で桁落ちが生じない場合、最下位桁までに丸めを行う
ことになり、この場合も、丸め桁上げを桁上げする桁と
実際の丸めの時の桁が一致する。また、減算で桁落ちが
生じる場合、保護桁までに丸めを行うことになり、丸め
による保護桁への桁上げが生じ、これに伴う保護桁から
最下位への丸め桁上げは、第2表のCRLで示している。
これら2つの表からわかるように、丸めにより生じる最
下位桁への桁上げあるいは桁借りは高々1であり、した
がって、丸めた後のデータの最下位桁以上の桁は結果が
正になる時は、X±YあるいはX±(Y+1)の値しか
とりえない。以上の真理値表から、XおよびYの下位2
桁をそぞれx1、x0およびy1、y0として丸め桁上げを求め
れば、加算について、 CRU=x1y1+yG+yR+yS ……(10) CRM=yG(x0y0+yR+yS) ……(11) また、減算については、 CRM=yG(x0y0+yR+yS) ……(12) CRL=yG+yRyS ……(13) となる。(11)と(12)式を比較すると加算の場合に
も、減算の場合にも保護桁での丸め桁上げCRMは同一信
号で表わされることがわかる。したがって、3つの信号
のみを生成すればよい。
減算の結果が負になる場合を考える。この場合は、2つ
の指数データが同一の時のみ生じ、丸めは必要ない。演
算結果の仮数部の値は常に絶対値でなければならないの
で、減算の結果が負となった場合には2の補数として絶
対値化しなければならない。この減算結果X−Yの2つ
の補数を求めるにはX−(Y+1)の全桁の反転▲
▼を求めればよい。一般に、2の補数を求め
るには、そのデータの全桁を反転しさらに最下位に1を
加えけばよい。すなわち、次式が成り立つ。
−A=+1 ……(14) したがって、(1)式を −(X+Y)=−(X−Y−1)−1 =▲▼+1−1 =▲▼ ……(15) となり、X−(Y+1)の全桁の反転を求めることによ
り、X−Yの符号反転値を得ることができる。反転回路
105は、このX−(Y+1)の反転▲▼
を求めるためのものである。減算結果X−Yが負かどう
かは、X−Yの演算時の上位あふれ信号により決定でき
るので、この上位あふれが1の時は、▲
▼を結果として出力し、0の場合にはX−YあるいはX
−(Y+1)を出力すればよいことになる。
最後に、演算結果選択信号生成回路106について説明す
る。この回路は、上述の和差生成回路103および104の出
力あるいは、反転回路105の出力から、丸めおよび絶対
値化された演算結果を選択するための回路である。ま
ず、反転回路105の出力が選択される場合を考えれば、
この場合は、仮数部に関する演算が減算でかつX−Yが
負、すなわち、X−Yの演算結果の上位あふれRC0が1
の場合である。したがって、この選択信号をSL2とすれ
ば、 SL2=MSUB・RC0 ……(16) 次に、和差生成回路104の出力X±(Y+1)を選択す
る信号SL1は、次式のように表わされる。
ここで、RC1は、X±(Y+1)の上位あふれ信号であ
り▲S1 M▼は、最上位桁、▲S0 M▼はX±Yの最上位桁
を表わしている。(17)式は、SL2を除き、各演算での
下位での丸め行なった場合の上位あふれの信号により正
しい丸め桁を判断し、その桁に対応する丸め桁上げの信
号により、X±Yあるいは、X±(Y+1)を選択する
ようになっている。(17)式を簡略化すれば、 ここで、(10)ないし(13)式より、 CRU・CRM=CRM ……(19) CRM・CRL=CRM ……(20) が成り立つ。したがって、(18)式はさらに、 となる。
また、和差生成回路103の出力X±Yを選択する信号SL0
は、次式で表わされる。
以上のようにして、演算結果の丸めおよび絶対値化を行
った最終結果を得ることができる。以上のような構成を
用いれば、多くの素子を必要とする桁上げ生成伝搬等の
回路が1つのみでよく、演算結果の丸めおよび絶対値出
力を演算と同時に求めることができ、高速な演算を行な
うことができる。
以上の説明では、保護桁,丸め桁,添付桁を除く上位の
桁を桁上げ生成伝搬発生回路に加えているが、入力する
桁を変えても同様の効果を得ることができる。さらに、
ここでは、最近接丸めについてのみ述べたが、その他の
丸めモードの場合にも同様の考え方で構成できる。
第2図は、本発明を仮数部の桁数を8桁として具体的に
論理を構成したものである。第2図において、201は桁
上げ生成伝搬発生回路であり、202は丸め桁上げ生成回
路、206は演算結果選択信号生成回路である。第2図に
おいて、Z-1は、演算を行った場合に最上位桁数が0と
なった時、丸め桁で丸めることになり、この場合には結
果として最下位に1桁追加される。この場合の出力は
yG,yR,ySより求めることができる。
発明の効果 以上述べてきたように、本発明によれば、仮数部の演算
器に簡単な回路を付加するだけで、演算,丸めを同時に
高速に行うことができ、さらに、選択すべき演算結果を
求める演算器の桁上げ生成伝搬発生回路は共用して構成
することができるので回路素子数を大幅に削減できる等
の効果を有し、実用的に極めて有用である。
【図面の簡単な説明】
第1図は本発明の実施例を示すブロック図、第2図は本
発明の実施例をCMOS回路で構成した論理回路図、第3
図、第4図は、各々加減算に於ける論理真理値図、第5
図は従来方法の回路構成を示すブロック図である。 101……桁上げ生成伝搬発生回路、102……丸め桁上げ生
成回路、103,104……和差生成回路、105……反転回路、
106……演算結果選択信号生成回路。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】2つの浮動小数点数のうち指数の大きいほ
    うの第1の浮動小数点数の第1の仮数部データと、前記
    第1の仮数部データに右シフトして桁合わせされた指数
    の小さいほうの第2の浮動小数点数の第2の仮数部デー
    タとを基準の桁以上の桁で加算または減算の演算をし出
    力する第1の演算手段と、 前記第2の仮数部データと“1"との和と前記第1の仮数
    部データとを前記基準の桁以上の桁で前記演算と同一の
    演算をし出力する第2の演算手段と、 前記演算および丸めを実行した場合に生じる前記基準の
    桁への桁上げ信号を、前記第1,第2の演算手段の演算と
    並行して出力する丸め桁上げ生成手段と、 前記丸め桁上げ生成手段の出力と、前記第1の演算手段
    および前記第2の演算手段の上位桁から、結果選択信号
    を生成する選択信号生成手段と、 前記結果選択信号により、前記第1の演算手段および前
    記第2の演算手段の出力から選択して出力する選択手段
    と を備えたことを特徴とする浮動小数点演算装置。
  2. 【請求項2】前記第2の演算手段の出力の全桁を論理反
    転して出力する反転手段を有し、前記選択手段は前記結
    果選択信号により、前記第1の演算手段、前記第2の演
    算手段および前記反転手段の出力から選択して出力する
    ことを特徴とする特許請求の範囲第1項記載の浮動小数
    点演算装置。
  3. 【請求項3】前記第1の演算手段と前記第2の演算手段
    とを同一の桁上げ生成伝搬発生回路を共用して構成した
    ことを特徴とする特許請求の範囲第1項記載の浮動小数
    点演算装置。
  4. 【請求項4】前記丸め桁上げ生成手段が複数の桁で丸め
    を実行したとき生じる基準の桁への複数の桁上げ信号を
    出力することを特徴とする特許請求の範囲第1項記載の
    浮動小数点演算装置。
  5. 【請求項5】前記丸め桁上げ生成手段が加算を行った場
    合に桁あふれが生じる場合と生じない場合、さらに減算
    を行った場合に桁落ちが生じる場合と生じない場合につ
    いて、所定の桁で丸めを実行したとき生じる基準の桁へ
    の桁上げ信号を出力することを特徴とする特許請求の範
    囲第4項記載の浮動小数点演算装置。
JP63068600A 1988-03-23 1988-03-23 浮動小数点演算装置 Expired - Lifetime JPH0776911B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP63068600A JPH0776911B2 (ja) 1988-03-23 1988-03-23 浮動小数点演算装置
US07/327,656 US5122981A (en) 1988-03-23 1989-03-23 Floating point processor with high speed rounding circuit
US07/870,389 US5373459A (en) 1988-03-23 1992-04-17 Floating point processor with high speed rounding circuit
US07/870,075 US5289396A (en) 1988-03-23 1992-04-17 Floating point processor with high speed rounding circuit
US08/337,017 US5495434A (en) 1988-03-23 1994-11-07 Floating point processor with high speed rounding circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63068600A JPH0776911B2 (ja) 1988-03-23 1988-03-23 浮動小数点演算装置

Publications (2)

Publication Number Publication Date
JPH01240927A JPH01240927A (ja) 1989-09-26
JPH0776911B2 true JPH0776911B2 (ja) 1995-08-16

Family

ID=13378443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63068600A Expired - Lifetime JPH0776911B2 (ja) 1988-03-23 1988-03-23 浮動小数点演算装置

Country Status (2)

Country Link
US (4) US5122981A (ja)
JP (1) JPH0776911B2 (ja)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5170371A (en) * 1988-03-31 1992-12-08 Darley Henry M Method and apparatus for rounding in high-speed multipliers
US4926370A (en) * 1989-04-17 1990-05-15 International Business Machines Corporation Method and apparatus for processing postnormalization and rounding in parallel
US5432727A (en) * 1989-11-02 1995-07-11 Intergraph Corporation Apparatus for computing a sticky bit for a floating point arithmetic unit
US5146419A (en) * 1989-11-28 1992-09-08 Matsushita Electric Industrial Co., Ltd. Floating point addition-subtraction apparatus
JP2523962B2 (ja) * 1990-08-20 1996-08-14 松下電器産業株式会社 浮動小数点演算装置
JPH04102122A (ja) * 1990-08-22 1992-04-03 Fujitsu Ltd 浮動小数点乗算器
JP2894015B2 (ja) * 1991-06-28 1999-05-24 日本電気株式会社 桁あふれ検出方法および回路
US5258943A (en) * 1991-12-23 1993-11-02 Intel Corporation Apparatus and method for rounding operands
US5251164A (en) * 1992-05-22 1993-10-05 S-Mos Systems, Inc. Low-power area-efficient absolute value arithmetic unit
US5625374A (en) * 1993-09-07 1997-04-29 Apple Computer, Inc. Method for parallel interpolation of images
JPH07168696A (ja) * 1993-10-19 1995-07-04 Mitsubishi Electric Corp 2進数加算器のオーバフロー,アンダフロー処理回路
US6219688B1 (en) * 1993-11-30 2001-04-17 Texas Instruments Incorporated Method, apparatus and system for sum of plural absolute differences
US5781465A (en) * 1995-12-22 1998-07-14 Lucent Technologies Inc. Method and apparatus for fast carry generation detection and comparison
JP3313560B2 (ja) * 1996-01-31 2002-08-12 株式会社日立製作所 浮動小数点演算処理装置
US5835389A (en) * 1996-04-22 1998-11-10 Samsung Electronics Company, Ltd. Calculating the absolute difference of two integer numbers in a single instruction cycle
US5742533A (en) * 1996-05-21 1998-04-21 International Business Machines Corporation Method and apparatus for modulus error checking
US5798958A (en) * 1996-06-05 1998-08-25 Samsung Electronics Co., Ltd. Zero detect for binary sum
JPH1091397A (ja) * 1996-09-12 1998-04-10 Toshiba Corp 演算回路
US5850347A (en) * 1996-09-24 1998-12-15 Samsung Semiconductor, Inc. Calculating 2A+ sign(A) in a single instruction cycle
US5831886A (en) * 1996-09-24 1998-11-03 Samsung Electronics Co., Ltd. Calculating a + sign(A) in a single instruction cycle
US5831887A (en) * 1996-09-24 1998-11-03 Samsung Electronics Co., Ltd. Calculating 2A-sign(A) in a single instruction cycle
US5835394A (en) * 1996-09-24 1998-11-10 Samsung Electronics Co., Ltd. Calculating selected sign 3 expression in a single instruction cycle
US5856936A (en) * 1996-09-24 1999-01-05 Samsung Semiconductor, Inc. Calculating A - sign(A) in a single instruction cycle
US5930159A (en) * 1996-10-17 1999-07-27 Samsung Electronics Co., Ltd Right-shifting an integer operand and rounding a fractional intermediate result to obtain a rounded integer result
US5844827A (en) * 1996-10-17 1998-12-01 Samsung Electronics Co., Ltd. Arithmetic shifter that performs multiply/divide by two to the nth power for positive and negative N
US6007232A (en) * 1996-11-14 1999-12-28 Samsung Electronics Co., Ltd. Calculating the average of two integer numbers rounded towards zero in a single instruction cycle
US5917739A (en) * 1996-11-14 1999-06-29 Samsung Electronics Co., Ltd. Calculating the average of four integer numbers rounded towards zero in a single instruction cycle
US6044392A (en) * 1997-08-04 2000-03-28 Motorola, Inc. Method and apparatus for performing rounding in a data processor
US6055555A (en) * 1997-12-29 2000-04-25 Intel Corporation Interface for performing parallel arithmetic and round operations
US6175851B1 (en) * 1998-02-06 2001-01-16 S3 Incorporated Fast adder/subtractor for signed floating point numbers
GB2342193B (en) 1998-06-19 2003-06-04 Sgs Thomson Microelectronics Addition circuitry
JP2000155671A (ja) * 1998-11-24 2000-06-06 Mitsubishi Electric Corp 浮動小数点演算装置
US6151616A (en) * 1999-04-08 2000-11-21 Advanced Micro Devices, Inc. Method and circuit for detecting overflow in operand multiplication
JP4439060B2 (ja) * 1999-12-17 2010-03-24 株式会社ルネサステクノロジ 浮動小数点加算器
US7206800B1 (en) 2000-08-30 2007-04-17 Micron Technology, Inc. Overflow detection and clamping with parallel operand processing for fixed-point multipliers
US6754688B2 (en) * 2001-02-14 2004-06-22 Intel Corporation Method and apparatus to calculate the difference of two numbers
US7133890B2 (en) * 2001-05-25 2006-11-07 Sun Microsystems, Inc. Total order comparator unit for comparing values of two floating point operands
US6601160B2 (en) 2001-06-01 2003-07-29 Microchip Technology Incorporated Dynamically reconfigurable data space
US6976158B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Repeat instruction with interrupt
US7003543B2 (en) * 2001-06-01 2006-02-21 Microchip Technology Incorporated Sticky z bit
US6934728B2 (en) * 2001-06-01 2005-08-23 Microchip Technology Incorporated Euclidean distance instructions
US6552625B2 (en) 2001-06-01 2003-04-22 Microchip Technology Inc. Processor with pulse width modulation generator with fault input prioritization
US7020788B2 (en) * 2001-06-01 2006-03-28 Microchip Technology Incorporated Reduced power option
US6728856B2 (en) 2001-06-01 2004-04-27 Microchip Technology Incorporated Modified Harvard architecture processor having program memory space mapped to data memory space
US20020184566A1 (en) 2001-06-01 2002-12-05 Michael Catherwood Register pointer trap
US20030005269A1 (en) * 2001-06-01 2003-01-02 Conner Joshua M. Multi-precision barrel shifting
US6985986B2 (en) * 2001-06-01 2006-01-10 Microchip Technology Incorporated Variable cycle interrupt disabling
US6604169B2 (en) 2001-06-01 2003-08-05 Microchip Technology Incorporated Modulo addressing based on absolute offset
US6975679B2 (en) * 2001-06-01 2005-12-13 Microchip Technology Incorporated Configuration fuses for setting PWM options
US7467178B2 (en) * 2001-06-01 2008-12-16 Microchip Technology Incorporated Dual mode arithmetic saturation processing
US20030028696A1 (en) * 2001-06-01 2003-02-06 Michael Catherwood Low overhead interrupt
US7007172B2 (en) * 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US6952711B2 (en) * 2001-06-01 2005-10-04 Microchip Technology Incorporated Maximally negative signed fractional number multiplication
US20030005268A1 (en) * 2001-06-01 2003-01-02 Catherwood Michael I. Find first bit value instruction
US6937084B2 (en) * 2001-06-01 2005-08-30 Microchip Technology Incorporated Processor with dual-deadtime pulse width modulation generator
US20030023836A1 (en) * 2001-06-01 2003-01-30 Michael Catherwood Shadow register array control instructions
US6552567B1 (en) 2001-09-28 2003-04-22 Microchip Technology Incorporated Functional pathway configuration at a system/IC interface
US20040021483A1 (en) * 2001-09-28 2004-02-05 Brian Boles Functional pathway configuration at a system/IC interface
GB2392261B (en) * 2002-08-19 2005-08-03 Texas Instruments Ltd Device for computing an absolute difference
US7386580B2 (en) * 2004-03-18 2008-06-10 Arm Limited Data processing apparatus and method for computing an absolute difference between first and second data elements
US7372296B2 (en) * 2004-10-29 2008-05-13 Sicronic Remote Kg, Llc Configurable logic device providing enhanced flexibility, scalability and providing area efficient implementation of arithmetic operation on n-bit variables
US20070239816A1 (en) * 2005-06-03 2007-10-11 Gordienko Valerity I Formation Process for Logical and Control Functions in Information Processing and Control Systems
US7689640B2 (en) * 2005-06-06 2010-03-30 Atmel Corporation Method and apparatus for formatting numbers in microprocessors
US20080021943A1 (en) * 2006-07-20 2008-01-24 Advanced Micro Devices, Inc. Equality comparator using propagates and generates
US9348557B1 (en) * 2014-02-21 2016-05-24 Altera Corporation Fused floating point datapath with correct rounding
US9817661B2 (en) * 2015-10-07 2017-11-14 Arm Limited Floating point number rounding
US9996319B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Floating point (FP) add low instructions functional unit
US9996320B2 (en) * 2015-12-23 2018-06-12 Intel Corporation Fused multiply-add (FMA) low functional unit

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3814925A (en) * 1972-10-30 1974-06-04 Amdahl Corp Dual output adder and method of addition for concurrently forming the differences a{31 b and b{31 a
US3825895A (en) * 1973-05-14 1974-07-23 Amdahl Corp Operand comparator
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
JPS5320833A (en) * 1976-08-11 1978-02-25 Seiko Epson Corp Absolute value arithmetic circuit
US4218751A (en) * 1979-03-07 1980-08-19 International Business Machines Corporation Absolute difference generator for use in display systems
JPS5666790A (en) * 1979-11-05 1981-06-05 Seiko Epson Corp Wrist watch
DE3036065A1 (de) * 1980-09-25 1982-05-06 Deutsche Itt Industries Gmbh, 7800 Freiburg Binaere mos-parallel-komparatoren
JPS5776634A (en) * 1980-10-31 1982-05-13 Hitachi Ltd Digital signal processor
JPS59126337U (ja) * 1983-02-15 1984-08-25 横河メディカルシステム株式会社 演算装置
JPS59188740A (ja) * 1983-04-11 1984-10-26 Hitachi Ltd フロ−テイング加算器
US4562553A (en) * 1984-03-19 1985-12-31 Analogic Corporation Floating point arithmetic system and method with rounding anticipation
JPS6133539A (ja) * 1984-07-25 1986-02-17 Toshiba Corp 浮動小数点演算装置
JPS6170635A (ja) * 1984-09-14 1986-04-11 Hitachi Ltd 丸め制御装置
JPS61213927A (ja) * 1985-03-18 1986-09-22 Hitachi Ltd 浮動小数点演算処理装置
JPS61214025A (ja) * 1985-03-20 1986-09-22 Mitsubishi Electric Corp 差の絶対値比較回路
EP0208939A3 (en) * 1985-06-19 1990-08-22 Nec Corporation Arithmetic circuit for calculating absolute difference values
US4815021A (en) * 1986-01-30 1989-03-21 Star Technologies, Inc. Multifunction arithmetic logic unit circuit
JPH0650462B2 (ja) * 1986-02-18 1994-06-29 日本電気株式会社 シフト数制御回路
JPH0644225B2 (ja) * 1986-03-27 1994-06-08 日本電気株式会社 浮動小数点丸め正規化回路
US4858166A (en) * 1986-09-19 1989-08-15 Performance Semiconductor Corporation Method and structure for performing floating point comparison
US4809172A (en) * 1987-03-11 1989-02-28 Kabushiki Kaisha Toshiba Method for obtaining image data with a tomographic apparatus
US4858165A (en) * 1987-06-19 1989-08-15 Digital Equipment Corporation Apparatus and method for acceleration of effective subtraction procedures by the approximation of the absolute value of the exponent argument difference
US4888722A (en) * 1987-07-02 1989-12-19 General Datacomm, Inc. Parallel arithmetic-logic unit for as an element of digital signal processor
US4841467A (en) * 1987-10-05 1989-06-20 General Electric Company Architecture to implement floating point multiply/accumulate operations
JPH01204138A (ja) * 1988-02-09 1989-08-16 Nec Corp 演算回路
US4935719A (en) * 1989-03-31 1990-06-19 Sgs-Thomson Microelectronics, Inc. Comparator circuitry
US5117384A (en) * 1990-01-24 1992-05-26 International Business Machines Corporation Method and apparatus for exponent adder

Also Published As

Publication number Publication date
US5373459A (en) 1994-12-13
JPH01240927A (ja) 1989-09-26
US5495434A (en) 1996-02-27
US5289396A (en) 1994-02-22
US5122981A (en) 1992-06-16

Similar Documents

Publication Publication Date Title
JPH0776911B2 (ja) 浮動小数点演算装置
US6820107B1 (en) Square root extraction circuit and floating-point square root extraction device
US5222037A (en) Floating-point processor for performing an arithmetic operation on fixed-point part data with high speed rounding of a result
JPH09269891A (ja) 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置
JPH02196328A (ja) 浮動小数点演算装置
JP2002108606A (ja) スティッキービット生成回路及び乗算器
US4758974A (en) Most significant digit location
JP3345894B2 (ja) 浮動小数点乗算器
JPS6125245A (ja) 丸め処理回路
JP2511527B2 (ja) 浮動小数点演算器
JPH0464091B2 (ja)
JPH09222991A (ja) 加算方法および加算器
JPH01290035A (ja) 高速乗算器における丸めの方法及び装置
JP4439060B2 (ja) 浮動小数点加算器
JPH04172526A (ja) 浮動小数点除算器
JP2856792B2 (ja) 浮動小数点数演算装置
JP2555135B2 (ja) 演算回路
JP2681968B2 (ja) 演算処理装置
JP3233432B2 (ja) 乗算器
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法
JP2506891B2 (ja) 浮動小数点演算装置
JPH0285922A (ja) 演算回路
JPS6349835A (ja) 演算処理装置
JP3124286B2 (ja) 浮動小数点数演算装置
JP2653134B2 (ja) 演算処理装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070816

Year of fee payment: 12

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080816

Year of fee payment: 13

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080816

Year of fee payment: 13