JP3201097B2 - 乗算器における乗算処方方法 - Google Patents

乗算器における乗算処方方法

Info

Publication number
JP3201097B2
JP3201097B2 JP24200793A JP24200793A JP3201097B2 JP 3201097 B2 JP3201097 B2 JP 3201097B2 JP 24200793 A JP24200793 A JP 24200793A JP 24200793 A JP24200793 A JP 24200793A JP 3201097 B2 JP3201097 B2 JP 3201097B2
Authority
JP
Japan
Prior art keywords
multiplication
multiplier
calculation
bit
polynomial
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 - Fee Related
Application number
JP24200793A
Other languages
English (en)
Other versions
JPH0773021A (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.)
Fujitsu Ltd
Hitachi Ltd
NEC Corp
IBM Japan Ltd
RIKEN Institute of Physical and Chemical Research
Original Assignee
Fujitsu Ltd
Hitachi Ltd
NEC Corp
IBM Japan Ltd
RIKEN Institute of Physical and Chemical Research
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 Fujitsu Ltd, Hitachi Ltd, NEC Corp, IBM Japan Ltd, RIKEN Institute of Physical and Chemical Research filed Critical Fujitsu Ltd
Priority to JP24200793A priority Critical patent/JP3201097B2/ja
Publication of JPH0773021A publication Critical patent/JPH0773021A/ja
Application granted granted Critical
Publication of JP3201097B2 publication Critical patent/JP3201097B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、乗算器における乗算処
理方法に関し、さらに詳細には、関数計算を高速で行え
るようにした乗算器における乗算処理方法に関する。
【0002】
【発明の背景】現在、コンピュータにおいて処理される
数値計算においては、初等関数の計算が重要な役割を担
っている。
【0003】即ち、例えば、平方根や三角関数などの初
等関数の計算は、コンピュータ・グラフィックスや画像
処理においては必須のものとなっている。
【0004】しかしながら、従来においては、64ビッ
ト浮動小数点の計算を行うことができる資源を備えた乗
算器(2倍長浮動小数点高速乗算器)を一つ用いて、乗
算あるいは加算以外の初等関数、例えば、除算などの計
算を行うには、ソフトウェア・プログラムの制御によ
り、当該乗算器により、例えば、数十回程度の乗算を繰
り返し行う必要があるので、計算速度が極めて遅くなっ
てしまうという問題点があった。
【0005】本発明は、上記した従来の2倍長浮動小数
点高速乗算器の有する問題点に鑑みてなされたものであ
り、その目的とするところは、乗算器の資源を増加させ
ることなしに、関数計算を極めて高速化することができ
る乗算器における乗算処理方法を提供することにある。
【0006】
【課題を解決するための手段】上記目的を達成するため
に、本発明による乗算器における乗算処理方法は、64
ビット浮動小数点の計算を行うことができる資源を備え
た乗算器を用いて、多項式により示される関数を計算す
るための乗算器における乗算処理方法において、64ビ
ットよりビット数の少ない乗算を複数かつ並列に行うよ
うに資源を分割する第1のステップと、上記第1のステ
ップにおいて上記資源を分割した各領域において、多項
式による関数計算に必要な上記多項式を構成する各項に
関する乗算を並列に行う第2のステップと、上記第2の
ステップにおける上記乗算の乗算結果を固定少数点で加
算して出力し、上記多項式による関数計算の計算値を得
る第3のステップとを有するようにしたものである。
【0007】
【作用】多項式による関数計算を行う際には、多項式を
構成する各項のいくつかを並列に計算できるようにする
ために、並列に計算する対象の項のビット幅以上の計算
が可能なように乗算器の資源を分割する。こうして分割
した領域において、多項式の各項の計算を並列に行う。
【0008】上記した計算の計算結果を用いながら、上
記と同様にして多項式の各項を順次計算して行き、最終
的に各項の乗算結果を固定小数点で加算して出力するこ
とにより、多項式による関数計算の計算値を得る。
【0009】即ち、乗算器の資源を分割使用することに
より、複数の乗算を並列して行うことができるようにし
たので、乗算器の資源を増加させることなく、関数計算
の計算値を得るまでの乗算回数を極めて減少することが
でき、関数計算を極めて高速化することができる。
【0010】
【実施例】次に、図面に基づいて、本発明による乗算器
における乗算処理方法の一実施例を詳細に説明すること
とする。
【0011】図1には、2倍長浮動小数点高速乗算器を
用いて、 C(x)=C0+C1x+C22+C33+C44 ・・・ 多項式(A) により示される基本初等関数を計算する際における、乗
算器の回路資源の分割使用の状況が示されている。
【0012】即ち、図1は、本発明による乗算器におけ
る初等関数計算の処理の流れを示す説明図であり、この
計算は図1中左から右へ一点鎖線で区画された三段階を
経る。全所要時間は、64ビット浮動小数点乗算の34
/16である。なお、符号部および指数部の取り扱いに
関しては、従来の技術と同様であるので説明を省略す
る。
【0013】以下に、詳細に説明する。
【0014】IEEE(米国電気電子工学会)規格の6
4ビット浮動小数点は、1ビットの符号部、11ビット
の指数部、および52ビットの仮数部を持つものであ
る。そして、この仮数部が与えられたものとして、正規
化された仮数部を 1+10X+42X のように、上位10ビットと下位42ビットとに分割す
る。ここにおいて、10Xは区間[0,1−2-10]に値
を持つ10ビットの小数であり、42Xは区間[0,2
-10−2-52]に値を持つ42ビットの小数である。
【0015】そして、 X’=1+10X の近傍[X’,X’+2-10]において、目的の基本関
数F(X’+x)を最適近似する多項式 F=C(x)=C0+C1x+C22+C33+C44 ・・・ 多項式(A ) が知られており、係数Ci10Xをアドレスとする表と
して与えられたものとする。
【0016】また、目的の関数Fの値もIEEE規格の
64ビット浮動小数点として表示するので、上記多項式
(A)の計算に求められる精度は正規化された仮数部に
ついて、規格化ビットの1ビットを加えた53ビットで
ある。
【0017】従って、基本関数の計算では、必要な精度
を得るには、xについて4次までの項の計算を行うこと
が必要かつ十分である。なお、上記した基本関数とは、
逆数、平方根、指数関数、対数関数、三角関数および逆
三角関数である。
【0018】ここにおいて、乗算器内部においては、4
ビットのガード・ビットを付け加えて、57ビットの仮
数部を計算するものとする。従って、上記多項式(A)
の計算に求められる精度も、高々57ビットとなり、上
記多項式(A)をそれぞれの項の乗算の結果のビット数
を前置添字として付して示すと、 57C(x)=570471x+372227331744 ・・・多項式 (A’) となる。
【0019】従って、この多項式(A’)中に現れる加
算は、57ビットの桁上げ保存固定小数点方式で計算す
ればよいので、この計算に要する時間も回路資源も浮動
小数点乗算に比べれば、無視できるほど小さくなる。こ
のため、以下の説明においては、この所要時間を無視す
ることとする。
【0020】一方、加算が保存固定小数点方式で計算さ
れる以上は、xの高次項の計算も、必要な桁数だけの乗
算を行えばよいことになる。
【0021】ところで2倍長浮動小数点高速乗算器に
は、少なくとも1クロックに1回の「53ビット×53
ビット」の乗算を行うことができる回路資源が備わって
いるので、これを分割使用することにより、53ビット
より桁数の少ない乗算をいくつか並行して同時に計算す
ることができるようになる。
【0022】なお、係数Ciの表は、外付けのメモリ内
に格納するようにする。そして、この係数Ciの表の読
み出しには、2倍長浮動小数点高速乗算器の入力用デー
タ線を使用することにより、1クロックに少なくとも6
4ビットを読み込めるはずなので十分である。
【0023】上記したことを踏まえて、多項式(A’)
の計算は、図1に示すように、2倍長浮動小数点高速乗
算器の回路資源をクロック毎に2分割あるいは3分割
し、多項式(A’)を構成する複数の項の乗算を並列に
行うと、3クロックの処理により仮数部の計算を行うこ
とができる。
【0024】以下に、第一段階乃至第三段階毎に、2倍
長浮動小数点高速乗算器の回路資源の分割態様ならびに
計算内容に関して説明する。なお、図1において、算用
数字で示した添字は乗算の結果のビット数を示す。
【0025】(1)第一段階 第一段階は、入力として初等関数の引き数の仮数部の上
位10ビット100とガード・ビットを含む下位47Xを
うけとる。100は、初等関数の多項式(A)の係数の
アドレスとして使われる。このアドレスを使って、まず
37ビットの372と27ビットの273が読み出され
る。読み幅は、合計64ビットである。同時に乗算器の
一部を使って、47X上位27ビットの二乗を計算する。
これらの結果は、元の入力100および47Xとともに、
次の第二段階の入力となる。所要時間は、64ビット浮
動小数点乗算の9/16である。
【0026】(2)第二段階 第二段階では、アドレス100を使って、47ビットの
471と17ビットの174が読み出される。読み幅は、
再び合計64ビットである。同時に乗算器を三分割し
て、次の三つの乗算を並列に行う。即ち、 (ア) 37ビット乗算372×37x (イ) 17ビット乗算172×172 (ウ) 27ビット乗算273×272 の三つの乗算を行う。
【0027】さらに、47ビットの固定長加算471
372x+2732を行う。
【0028】所要時間は、64ビット浮動小数点乗算の
12/16である。
【0029】(3)第三段階 第三段階では、アドレス100を使って、57ビットの
570が読み出される。同時に乗算器を二分割して、次
の二つの乗算を並列に行う。即ち、 (ア) 17ビット乗算174×174 (イ) 47ビット乗算47x×(471372x+27
32) の二つの乗算を行う。
【0030】さらに、57ビットの固定長加算570
47x×(471372x+2732)+174 174を行
う。この結果が、目的の初等関数の仮数部である。
【0031】所要時間は、64ビット浮動小数点乗算の
13/16である。
【0032】図1(および図2)において、「9τ」、
「12τ」、「13τ」などとあるのは、ATA法の論
文の付録(著者 後藤、黄 「初等関数の高速計算方
法」情報処理学会論文誌第34刊第1570頁乃至第1
579頁)に述べたECL論理回路によってこの装置を
実現した場合の段数である。同じ回路を用いて64ビッ
ト倍精度浮動小数点の乗算に必要な段数は、「16τ」
である。
【0033】なお、図1に示した上記2倍長浮動小数点
高速乗算器による分割並行乗算処理操作を略記すると、 〔47(〔2727272I×27{C3III3737
×37{C2III47{C1IIII〕×47x)III57
{C0III171727272I 2II×
17{C4IIIIIIII となる。
【0034】上記において、括弧の左下付きの算用数字
による添字は、当該括弧によってくくられた乗算の結果
のビット数を表し、また括弧の右下付きのローマ数字に
よる添字は、当該乗算のクロック・タイミングを表す。
【0035】そして、中括弧は係数の読み込みを表し、
乗算の場合と同様に、中括弧の左下付きの算用数字によ
る添字は、当該中括弧の係数の有効桁数を表し、また中
括弧の右下付きのローマ数字による添字は、当該読み込
みのクロック・タイミングを表す。
【0036】さらに、大括弧は桁上げ保存固定小数点加
算をくくり、大括弧の右下付きのローマ数字による添字
は、当該加算のクロック・タイミングを表す。
【0037】上記したことから、上記実施例における基
本初等関数の数値計算に際して、仮数部の計算に要する
時間は、64ビット浮動小数点数乗算の3回分程度とな
るので、その計算時間を大幅に短縮することができる。
【0038】なお、「nビット×mビット」の乗算に必
要な乗算ゲート数が、「n×m」にほぼ比例するので、
上記したクロックI乃至クロックIIIの各段階で必要
となる回路資源は、この単位で、 クロックI :27×27=729 クロックII :17×17+27×27+37×37
=2387 クロックIII:17×17+47×47=2498 に比例することになる。
【0039】上記の結果はいずれも、IEEE規格64
ビット浮動小数点数同士の乗算に必要とされる 53×53=2809 より少ないことになる。
【0040】従って、本発明による2倍長浮動小数点高
速乗算器においては、従来の2倍長浮動小数点高速乗算
器の回路資源と比較しても、回路資源を増大することな
く、計算の高速化を実現することができる。
【0041】次に、図2に基づいて、2倍長浮動小数点
高速乗算器を分割使用して、二つのIEEE規格64ビ
ット浮動小数点数XおよびYの商Q(Q=Y/X)を高
速に計算する場合について説明する。ただし、IEEE
規格に規定されている剰余補正を行わない高速版の命令
の選択を許すものとする。また、符号および指数の取り
扱いに関しては、従来の技術と同様であるので説明を省
略する。
【0042】この計算に必要とする時間は、IEEE規
格64ビット浮動小数点乗算の3回分程度となる。IE
EE規格の剰余補正を行う場合には、4回分程度とな
る。
【0043】図2は、本発明による乗算器における64
ビット浮動小数点除算の処理の流れを示す説明図であ
り、図1と同様に、この計算も図2中左から右へ一点鎖
線で区画された三段階を経る。全所要時間は、64ビッ
ト浮動小数点乗算の34/16である。ただし、IEE
E規格に従う剰余補正を行うには、もう一段階余計に必
要である。
【0044】なお、以下の説明においては、各添字の意
味は、上記と同様とする。
【0045】(1)第一段階 第一段階では、入力として、除数Xおよび被除数Yおの
おののガード・ビットを含む仮数部57ビット、57
および57Yをうけとる。本願出願人と同一の出願人に
よる特願平4−326661号「初等関数の計算装置お
よび計算方法」に開示したATA法を用いて、除数57
Xの上位29ビットの逆数X−1(以下、X−1を、
29ATAと表す。)を計算する。所用時間は、64
ビット浮動小数点乗算の14/16である。
【0046】なお、上記特願平4−326661号に開
示されたATA法とは、予め計算に使用する所定の関数
の関数値を、表として記憶手段に記憶させておき、この
記憶手段内の表を利用して電子回路により初等関数の計
算を行う計算方法であって、所定の恒等式に従って並列
に入力した入力値を、それぞれ加算および減算する第一
の工程と、この第一の工程によって加算および減算され
た値に基づいて、それぞれ並列に上記記憶手段内の表を
表引きし、上記関数の関数値を求める第二の工程と、こ
の第二の工程によって求められた関数値をそれぞれ上記
恒等式に従って加算および減算する第三の工程とを備え
るものである。
【0047】即ち、まず加算(減算)し、その結果を表
のアドレスとして表引きし、最後に表から読み出された
値を加算(減算)するという手順で、時間のかかる乗算
を用いずに計算を実行するものである。
【0048】(2)第二段階 第二段階においては、乗算器を二分割し、以下の二つの
計算を並列に行う。即ち、 (ア) 29ビット×57ビット乗算29ATA×# 57X (イ) 29ビット×57ビット乗算29ATA×57Y を行う。ただし、(ア)は、29ビット×57ビット乗
29ATA×57Xの結果の上位29ビットを捨ててしま
い、下位28ビット28xだけを求めるもので、回路資源
をさらに節約できる。
【0049】所要時間は、64ビット浮動小数点乗算の
9/16である。
【0050】(3)第三段階 第三段階では、乗算器の一部を使って28ビット×57
ビット乗算28x×(29ATA×57Y)を行い、続いてそ
の結果に29ATA×57Yを57ビット固定長で加える。
この結果は、商Y/Xと等しい。所要時間は、64ビッ
ト浮動小数点乗算の11/16である。
【0051】即ち、恒等式 Q=YX-1=(IY)(IX)-1=(IY)(1−x)-1 =(IY)(1+x)(1−x2-1 において、その最右辺の(1−x2-1は、57ビット
の精度では1に等しいからである。
【0052】
【発明の効果】本発明は、以上説明したように構成され
ているので、以下に記載されるような効果を奏する。
【0053】64ビット浮動小数点の計算を行うことが
できる資源を備えた乗算器を用いて、多項式により示さ
れる関数を計算するための乗算器における乗算処理方法
において、64ビットよりビット数の少ない乗算を複数
かつ並列に行うように資源を分割する第1のステップ
と、上記第1のステップにおいて上記資源を分割した各
領域において、多項式による関数計算に必要な上記多項
式を構成する各項に関する乗算を並列に行う第2のステ
ップと、上記第2のステップにおける上記乗算の乗算結
果を固定少数点で加算して出力し、上記多項式による関
数計算の計算値を得る第3のステップとを有するように
したため、乗算器の資源を分割使用することにより、複
数の乗算を並列して行うことができるようになるので、
乗算器の資源を増加させることなく、関数計算の計算値
を得るまでの乗算回数を極めて減少することができるよ
うになり、関数計算を極めて高速化することができるも
のである。
【0054】従って、本発明によれば、乗算器の資源を
増加させることなく、関数計算を極めて高速化すること
ができる乗算器における乗算処理方法を提供することが
できる。
【図面の簡単な説明】
【図1】本発明による乗算器における乗算処理方法によ
る関数計算の処理を示す説明図である。
【図2】本発明による乗算器における乗算処理方法によ
る除算の処理を示す説明図である。
フロントページの続き (73)特許権者 592073101 日本アイ・ビー・エム株式会社 東京都港区六本木3丁目2番12号 (73)特許権者 000004237 日本電気株式会社 東京都港区芝五丁目7番1号 (72)発明者 後藤 英一 神奈川県藤沢市辻堂東海岸3−9 湘南 ハイム FE305 (72)発明者 太田 滋生 東京都世田谷区三軒茶屋2−23−6 (56)参考文献 特開 平6−309154(JP,A) 特開 平6−175824(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 7/52,17/10

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 64ビット浮動小数点の計算を行うこ
    とができる資源を備えた乗算器を用いて、多項式により
    示される関数を計算するための乗算器における乗算処理
    方法において、 64ビットよりビット数の少ない乗算を複数かつ並列に
    行うように資源を分割する第1のステップと、 前記第1のステップにおいて前記資源を分割した各領域
    において、多項式による関数計算に必要な前記多項式を
    構成する各項に関する乗算を並列に行う第2のステップ
    と、 前記第2のステップにおける前記乗算の乗算結果を固定
    少数点で加算して出力し、前記多項式による関数計算の
    計算値を得る第3のステップとを有する乗算器における
    乗算処理方法。
JP24200793A 1993-09-02 1993-09-02 乗算器における乗算処方方法 Expired - Fee Related JP3201097B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24200793A JP3201097B2 (ja) 1993-09-02 1993-09-02 乗算器における乗算処方方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP24200793A JP3201097B2 (ja) 1993-09-02 1993-09-02 乗算器における乗算処方方法

Publications (2)

Publication Number Publication Date
JPH0773021A JPH0773021A (ja) 1995-03-17
JP3201097B2 true JP3201097B2 (ja) 2001-08-20

Family

ID=17082877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24200793A Expired - Fee Related JP3201097B2 (ja) 1993-09-02 1993-09-02 乗算器における乗算処方方法

Country Status (1)

Country Link
JP (1) JP3201097B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930342B (zh) * 2020-09-15 2021-01-19 浙江大学 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法

Also Published As

Publication number Publication date
JPH0773021A (ja) 1995-03-17

Similar Documents

Publication Publication Date Title
EP0411491B1 (en) Method and apparatus for performing division using a rectangular aspect ratio multiplier
US5790446A (en) Floating point multiplier with reduced critical paths using delay matching techniques
JP2622896B2 (ja) 除算装置
US6115729A (en) Floating point multiply-accumulate unit
JPH02196328A (ja) 浮動小数点演算装置
US5184318A (en) Rectangular array signed digit multiplier
JP2002108606A (ja) スティッキービット生成回路及び乗算器
US5132925A (en) Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction
US8060551B2 (en) Method and apparatus for integer division
US4594680A (en) Apparatus for performing quadratic convergence division in a large data processing system
US7725522B2 (en) High-speed integer multiplier unit handling signed and unsigned operands and occupying a small area
US5144576A (en) Signed digit multiplier
US6182100B1 (en) Method and system for performing a logarithmic estimation within a data processing system
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
US20040010536A1 (en) Apparatus for multiplication of data in two's complement and unsigned magnitude formats
US5825681A (en) Divider/multiplier circuit having high precision mode
JP3201097B2 (ja) 乗算器における乗算処方方法
US4190894A (en) High speed parallel multiplication apparatus with single-step summand reduction
US7051062B2 (en) Apparatus and method for adding multiple-bit binary-strings
JPH10187416A (ja) 浮動小数点演算装置
JPH0540605A (ja) 浮動小数点乗算装置
JPH04172526A (ja) 浮動小数点除算器
US5208769A (en) Unsigned integer multiply/divide circuit
JPH0831024B2 (ja) 演算プロセッサ
JP3137131B2 (ja) 浮動小数点乗算器及び乗算方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 19990309

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees