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
Links
Description
理方法に関し、さらに詳細には、関数計算を高速で行え
るようにした乗算器における乗算処理方法に関する。
数値計算においては、初等関数の計算が重要な役割を担
っている。
等関数の計算は、コンピュータ・グラフィックスや画像
処理においては必須のものとなっている。
ト浮動小数点の計算を行うことができる資源を備えた乗
算器(2倍長浮動小数点高速乗算器)を一つ用いて、乗
算あるいは加算以外の初等関数、例えば、除算などの計
算を行うには、ソフトウェア・プログラムの制御によ
り、当該乗算器により、例えば、数十回程度の乗算を繰
り返し行う必要があるので、計算速度が極めて遅くなっ
てしまうという問題点があった。
点高速乗算器の有する問題点に鑑みてなされたものであ
り、その目的とするところは、乗算器の資源を増加させ
ることなしに、関数計算を極めて高速化することができ
る乗算器における乗算処理方法を提供することにある。
に、本発明による乗算器における乗算処理方法は、64
ビット浮動小数点の計算を行うことができる資源を備え
た乗算器を用いて、多項式により示される関数を計算す
るための乗算器における乗算処理方法において、64ビ
ットよりビット数の少ない乗算を複数かつ並列に行うよ
うに資源を分割する第1のステップと、上記第1のステ
ップにおいて上記資源を分割した各領域において、多項
式による関数計算に必要な上記多項式を構成する各項に
関する乗算を並列に行う第2のステップと、上記第2の
ステップにおける上記乗算の乗算結果を固定少数点で加
算して出力し、上記多項式による関数計算の計算値を得
る第3のステップとを有するようにしたものである。
構成する各項のいくつかを並列に計算できるようにする
ために、並列に計算する対象の項のビット幅以上の計算
が可能なように乗算器の資源を分割する。こうして分割
した領域において、多項式の各項の計算を並列に行う。
記と同様にして多項式の各項を順次計算して行き、最終
的に各項の乗算結果を固定小数点で加算して出力するこ
とにより、多項式による関数計算の計算値を得る。
より、複数の乗算を並列して行うことができるようにし
たので、乗算器の資源を増加させることなく、関数計算
の計算値を得るまでの乗算回数を極めて減少することが
でき、関数計算を極めて高速化することができる。
における乗算処理方法の一実施例を詳細に説明すること
とする。
用いて、 C(x)=C0+C1x+C2x2+C3x3+C4x4 ・・・ 多項式(A) により示される基本初等関数を計算する際における、乗
算器の回路資源の分割使用の状況が示されている。
る初等関数計算の処理の流れを示す説明図であり、この
計算は図1中左から右へ一点鎖線で区画された三段階を
経る。全所要時間は、64ビット浮動小数点乗算の34
/16である。なお、符号部および指数部の取り扱いに
関しては、従来の技術と同様であるので説明を省略す
る。
4ビット浮動小数点は、1ビットの符号部、11ビット
の指数部、および52ビットの仮数部を持つものであ
る。そして、この仮数部が与えられたものとして、正規
化された仮数部を 1+10X+42X のように、上位10ビットと下位42ビットとに分割す
る。ここにおいて、10Xは区間[0,1−2-10]に値
を持つ10ビットの小数であり、42Xは区間[0,2
-10−2-52]に値を持つ42ビットの小数である。
数F(X’+x)を最適近似する多項式 F=C(x)=C0+C1x+C2x2+C3x3+C4x4 ・・・ 多項式(A ) が知られており、係数Ciが10Xをアドレスとする表と
して与えられたものとする。
64ビット浮動小数点として表示するので、上記多項式
(A)の計算に求められる精度は正規化された仮数部に
ついて、規格化ビットの1ビットを加えた53ビットで
ある。
を得るには、xについて4次までの項の計算を行うこと
が必要かつ十分である。なお、上記した基本関数とは、
逆数、平方根、指数関数、対数関数、三角関数および逆
三角関数である。
ビットのガード・ビットを付け加えて、57ビットの仮
数部を計算するものとする。従って、上記多項式(A)
の計算に求められる精度も、高々57ビットとなり、上
記多項式(A)をそれぞれの項の乗算の結果のビット数
を前置添字として付して示すと、 57C(x)=57C0+47C1x+37C2x2+27C3x3+17C4x4 ・・・多項式 (A’) となる。
算は、57ビットの桁上げ保存固定小数点方式で計算す
ればよいので、この計算に要する時間も回路資源も浮動
小数点乗算に比べれば、無視できるほど小さくなる。こ
のため、以下の説明においては、この所要時間を無視す
ることとする。
れる以上は、xの高次項の計算も、必要な桁数だけの乗
算を行えばよいことになる。
は、少なくとも1クロックに1回の「53ビット×53
ビット」の乗算を行うことができる回路資源が備わって
いるので、これを分割使用することにより、53ビット
より桁数の少ない乗算をいくつか並行して同時に計算す
ることができるようになる。
に格納するようにする。そして、この係数Ciの表の読
み出しには、2倍長浮動小数点高速乗算器の入力用デー
タ線を使用することにより、1クロックに少なくとも6
4ビットを読み込めるはずなので十分である。
の計算は、図1に示すように、2倍長浮動小数点高速乗
算器の回路資源をクロック毎に2分割あるいは3分割
し、多項式(A’)を構成する複数の項の乗算を並列に
行うと、3クロックの処理により仮数部の計算を行うこ
とができる。
長浮動小数点高速乗算器の回路資源の分割態様ならびに
計算内容に関して説明する。なお、図1において、算用
数字で示した添字は乗算の結果のビット数を示す。
位10ビット10X0とガード・ビットを含む下位47Xを
うけとる。10X0は、初等関数の多項式(A)の係数の
アドレスとして使われる。このアドレスを使って、まず
37ビットの37C2と27ビットの27C3が読み出され
る。読み幅は、合計64ビットである。同時に乗算器の
一部を使って、47X上位27ビットの二乗を計算する。
これらの結果は、元の入力10X0および47Xとともに、
次の第二段階の入力となる。所要時間は、64ビット浮
動小数点乗算の9/16である。
47C1と17ビットの17C4が読み出される。読み幅は、
再び合計64ビットである。同時に乗算器を三分割し
て、次の三つの乗算を並列に行う。即ち、 (ア) 37ビット乗算37C2×37x (イ) 17ビット乗算17x2×17x2 (ウ) 27ビット乗算27C3×27x2 の三つの乗算を行う。
37C2x+27C3x2を行う。
12/16である。
57C0が読み出される。同時に乗算器を二分割して、次
の二つの乗算を並列に行う。即ち、 (ア) 17ビット乗算17C4×17x4 (イ) 47ビット乗算47x×(47C1+37C2x+27C
3x2) の二つの乗算を行う。
47x×(47C1+37C2x+27C3x2)+17C4 17x4を行
う。この結果が、目的の初等関数の仮数部である。
13/16である。
「12τ」、「13τ」などとあるのは、ATA法の論
文の付録(著者 後藤、黄 「初等関数の高速計算方
法」情報処理学会論文誌第34刊第1570頁乃至第1
579頁)に述べたECL論理回路によってこの装置を
実現した場合の段数である。同じ回路を用いて64ビッ
ト倍精度浮動小数点の乗算に必要な段数は、「16τ」
である。
高速乗算器による分割並行乗算処理操作を略記すると、 〔47(〔27(27(27x2)I×27{C3}I)II+37(37x
×37{C2}I)II+47{C1}II)II〕×47x)III+57
{C0}III+17(17(27(27x2)I 2)II×
17{C4}II)III〕III となる。
による添字は、当該括弧によってくくられた乗算の結果
のビット数を表し、また括弧の右下付きのローマ数字に
よる添字は、当該乗算のクロック・タイミングを表す。
乗算の場合と同様に、中括弧の左下付きの算用数字によ
る添字は、当該中括弧の係数の有効桁数を表し、また中
括弧の右下付きのローマ数字による添字は、当該読み込
みのクロック・タイミングを表す。
算をくくり、大括弧の右下付きのローマ数字による添字
は、当該加算のクロック・タイミングを表す。
本初等関数の数値計算に際して、仮数部の計算に要する
時間は、64ビット浮動小数点数乗算の3回分程度とな
るので、その計算時間を大幅に短縮することができる。
要な乗算ゲート数が、「n×m」にほぼ比例するので、
上記したクロックI乃至クロックIIIの各段階で必要
となる回路資源は、この単位で、 クロックI :27×27=729 クロックII :17×17+27×27+37×37
=2387 クロックIII:17×17+47×47=2498 に比例することになる。
ビット浮動小数点数同士の乗算に必要とされる 53×53=2809 より少ないことになる。
速乗算器においては、従来の2倍長浮動小数点高速乗算
器の回路資源と比較しても、回路資源を増大することな
く、計算の高速化を実現することができる。
高速乗算器を分割使用して、二つのIEEE規格64ビ
ット浮動小数点数XおよびYの商Q(Q=Y/X)を高
速に計算する場合について説明する。ただし、IEEE
規格に規定されている剰余補正を行わない高速版の命令
の選択を許すものとする。また、符号および指数の取り
扱いに関しては、従来の技術と同様であるので説明を省
略する。
格64ビット浮動小数点乗算の3回分程度となる。IE
EE規格の剰余補正を行う場合には、4回分程度とな
る。
ビット浮動小数点除算の処理の流れを示す説明図であ
り、図1と同様に、この計算も図2中左から右へ一点鎖
線で区画された三段階を経る。全所要時間は、64ビッ
ト浮動小数点乗算の34/16である。ただし、IEE
E規格に従う剰余補正を行うには、もう一段階余計に必
要である。
味は、上記と同様とする。
おののガード・ビットを含む仮数部57ビット、57X
および57Yをうけとる。本願出願人と同一の出願人に
よる特願平4−326661号「初等関数の計算装置お
よび計算方法」に開示したATA法を用いて、除数57
Xの上位29ビットの逆数X−1(以下、X−1を、
29IATAと表す。)を計算する。所用時間は、64
ビット浮動小数点乗算の14/16である。
示されたATA法とは、予め計算に使用する所定の関数
の関数値を、表として記憶手段に記憶させておき、この
記憶手段内の表を利用して電子回路により初等関数の計
算を行う計算方法であって、所定の恒等式に従って並列
に入力した入力値を、それぞれ加算および減算する第一
の工程と、この第一の工程によって加算および減算され
た値に基づいて、それぞれ並列に上記記憶手段内の表を
表引きし、上記関数の関数値を求める第二の工程と、こ
の第二の工程によって求められた関数値をそれぞれ上記
恒等式に従って加算および減算する第三の工程とを備え
るものである。
のアドレスとして表引きし、最後に表から読み出された
値を加算(減算)するという手順で、時間のかかる乗算
を用いずに計算を実行するものである。
計算を並列に行う。即ち、 (ア) 29ビット×57ビット乗算29IATA×# 57X (イ) 29ビット×57ビット乗算29IATA×57Y を行う。ただし、(ア)は、29ビット×57ビット乗
算29IATA×57Xの結果の上位29ビットを捨ててしま
い、下位28ビット28xだけを求めるもので、回路資源
をさらに節約できる。
9/16である。
ビット乗算28x×(29IATA×57Y)を行い、続いてそ
の結果に29IATA×57Yを57ビット固定長で加える。
この結果は、商Y/Xと等しい。所要時間は、64ビッ
ト浮動小数点乗算の11/16である。
の精度では1に等しいからである。
ているので、以下に記載されるような効果を奏する。
できる資源を備えた乗算器を用いて、多項式により示さ
れる関数を計算するための乗算器における乗算処理方法
において、64ビットよりビット数の少ない乗算を複数
かつ並列に行うように資源を分割する第1のステップ
と、上記第1のステップにおいて上記資源を分割した各
領域において、多項式による関数計算に必要な上記多項
式を構成する各項に関する乗算を並列に行う第2のステ
ップと、上記第2のステップにおける上記乗算の乗算結
果を固定少数点で加算して出力し、上記多項式による関
数計算の計算値を得る第3のステップとを有するように
したため、乗算器の資源を分割使用することにより、複
数の乗算を並列して行うことができるようになるので、
乗算器の資源を増加させることなく、関数計算の計算値
を得るまでの乗算回数を極めて減少することができるよ
うになり、関数計算を極めて高速化することができるも
のである。
増加させることなく、関数計算を極めて高速化すること
ができる乗算器における乗算処理方法を提供することが
できる。
る関数計算の処理を示す説明図である。
る除算の処理を示す説明図である。
Claims (1)
- 【請求項1】 64ビット浮動小数点の計算を行うこ
とができる資源を備えた乗算器を用いて、多項式により
示される関数を計算するための乗算器における乗算処理
方法において、 64ビットよりビット数の少ない乗算を複数かつ並列に
行うように資源を分割する第1のステップと、 前記第1のステップにおいて前記資源を分割した各領域
において、多項式による関数計算に必要な前記多項式を
構成する各項に関する乗算を並列に行う第2のステップ
と、 前記第2のステップにおける前記乗算の乗算結果を固定
少数点で加算して出力し、前記多項式による関数計算の
計算値を得る第3のステップとを有する乗算器における
乗算処理方法。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930342B (zh) * | 2020-09-15 | 2021-01-19 | 浙江大学 | 一种针对规格化浮点数的误差无偏近似乘法器及其实现方法 |
-
1993
- 1993-09-02 JP JP24200793A patent/JP3201097B2/ja not_active Expired - Fee Related
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 |