JPH04367932A - 倍精度乗算方法 - Google Patents

倍精度乗算方法

Info

Publication number
JPH04367932A
JPH04367932A JP3144890A JP14489091A JPH04367932A JP H04367932 A JPH04367932 A JP H04367932A JP 3144890 A JP3144890 A JP 3144890A JP 14489091 A JP14489091 A JP 14489091A JP H04367932 A JPH04367932 A JP H04367932A
Authority
JP
Japan
Prior art keywords
bits
precision
double
bit
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.)
Withdrawn
Application number
JP3144890A
Other languages
English (en)
Inventor
Tomoyuki Kishi
智之 岸
Yukio Suzuki
幸夫 鈴木
Hideki Kamoi
鴨井 秀樹
Hiromi Ando
安藤 博美
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry 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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP3144890A priority Critical patent/JPH04367932A/ja
Publication of JPH04367932A publication Critical patent/JPH04367932A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、2の補数フォーマット
専用の乗算器を使用し、2進数表現された倍精度数値の
乗算を行う倍精度乗算方法に関するものである。
【0002】
【従来の技術】従来、この種の分野の技術としては、「
アナログ・ディバイス  DSPデータブック」(19
90/1991)アナログ・ディバイス株式会社P.4
−52〜4−54に記載されるものがあった。以下、そ
の内容を概説する。
【0003】上記文献では、2の補数フォーマット専用
の24×24ビット乗算器を用いて倍精度乗算を行って
いる。この乗算器の場合、単精度は24ビット、倍精度
は48ビットとなり、そのデータフォーマット例を図2
に示す。
【0004】図2は、従来の倍精度乗算方法におけるデ
ータフォーマット例を示す図である。
【0005】この図2において、24ビットX0 〜X
23の最上位ビット(以下、MSBという)X23と、
48ビットX0 〜X47の上位2ビットX46,X4
7とは、共に2の補数フォーマットの符号ビットである
。ただし、最下位ビット(以下、LSBという)を0ビ
ット目とする。
【0006】この乗算器が倍精度乗算を行うときは、図
2の48ビットX0〜X47を単純に上位側、下位側2
4ビットずつに分割するのではなく、2の補数フォーマ
ット専用乗算器のため図3に示すようなフォーマット調
整が必要である。
【0007】このフォーマット調整は次のようにして行
われる。
【0008】まず、下位側23ビット(10)はそのま
まにしておき(10a)、23ビット目(11)、つま
り下位側のMSBを0(11a)とする。続いて、23
ビット目から46ビット目までの24ビット(12)を
1ビット左シフトして上位側24ビット(12a)とす
る。こうすることにより、上位側24ビット、下位側2
4ビット共に2の補数フォーマットとなる。なお、図中
の各ビット(12、13、11a、及び13a)は符号
ビットである。
【0009】次に、例えば48×24ビットの倍精度乗
算方法を図4を参照しつつ説明する。
【0010】図4において、(21)はフォーマット調
整後の上位側24ビット、(22)はフォーマット調整
後の下位側24ビット、(23)は24ビット乗数、及
び(24)はフォーマット調整後の下位ビット側24ビ
ット(22)と24ビット乗数(23)との部分積であ
る。
【0011】さらに、(25)はフォーマット調整後の
上位ビット(21)と24ビット乗数(23)との部分
積、斜線部の(27,28)はそれぞれ部分積(24,
25)の符号拡張部、及び(28)は72ビットの乗算
結果である。なお、72ビットの乗算結果(28)内の
数字は、そのビットが右から何ビット目であるかを表し
ている。
【0012】まず、部分積(24)を、次に部分積(2
5)を求め、部分積(25)のLSBを部分積(24)
の23ビット目に桁合わせし、加算することによって7
2ビットの乗算結果(28)が求められる。
【0013】図5は、従来の他の倍精度乗算方法を説明
するための説明図である。
【0014】図5において、(31)は、フォーマット
調整後の48ビット被乗数の上位側24ビット、(32
)はフォーマット調整後の48ビット被乗数の下位側2
4ビット、(33)はフォーマット調整後の48ビット
乗数の上位側24ビット、(34)はフォーマット調整
後の48ビット乗数の下位側24ビットである。
【0015】さらに、(35)はフォーマット調整後の
48ビット被乗数の下位側24ビット(32)とフォー
マット調整後の48ビット乗数の下位側24ビット(3
4)との部分積、及び(36)はフォーマット調整後の
48ビット被乗数の上位側24ビット(31)とフォー
マット調整後の48ビット乗数の下位側24ビット(3
4)との部分積である。
【0016】(37)はフォーマット調整後の48ビッ
ト被乗数の下位側24ビット(32)とフォーマット調
整後の48ビット乗数の上位側24ビット(33)との
部分積、(38)はフォーマット調整後の48ビット被
乗数の上位側24ビット(31)とフォーマット調整後
の48ビット乗数の上位側24ビット(33)との部分
積である。また、図中斜線部の(35a,36a,37
a,38a)はそれぞれ部分積(35,36,37,3
8)の符号拡張部、(39)は96ビットの乗算結果で
ある。なお、96ビットの乗算結果(39)内の数字は
そのビットが右から何ビット目であるかを表している。
【0017】まず、部分積(35)を、次に部分積(3
6,37)を求め、部分積(36,37)のLSBを部
分積(35)の23ビット目に桁合わせをし、さらに部
分積(38)を求める。さらに、この部分積(38)の
LSBを部分積(35)の46ビット目に桁合わせをし
て加算することによって96ビットの乗算結果(35)
が求められる。
【0018】
【発明が解決しようとする課題】しかしながら、上記の
倍精度乗算方法では、扱い可能な倍精度数値スケールが
、48ビット整数の場合、 −246≦  倍精度数値  ≦246−1となり、2
の補数フォーマット48ビット整数の最大スケールであ
る −247≦  倍精度数値  ≦247−1の半分しか
扱えないという問題があった。
【0019】本発明は前記従来技術の持っていた課題と
して、倍精度数値が最大スケールの半分しか扱えない点
について解決した倍精度乗算方法を提供するものである
【0020】
【課題を解決するための手段】第1の発明は、前記課題
を解決するために、2の補数フォーマット専用のN×N
ビット(N;偶数)乗算器を用い、倍精度数値(2Nビ
ット)と単精度数値(Nビット)との乗算を行う倍精度
乗算方法において、次のような手段を講じたものである
【0021】即ち、前記倍精度数値の下位側Nビットを
2の補数フォーマットとして扱い、該下位側Nビットと
前記単精度数値との乗算を行って第1の部分積を求める
と共に、前記倍精度数値の下位側Nビットの最上位ビッ
トが1または0のいずれであるかの判定を行い、その判
定結果が1であれば前記倍精度数値の上位側Nビットに
予め1を加えておく。
【0022】そして、その倍精度数値の上位側Nビット
と前記単精度数値との乗算を行って第2の部分積を求め
、前記第2の部分積の最下位ビットを前記第1の部分積
のNビット目に桁合わせして前記第1と第2の部分積と
の加算を行うようにしたものである。
【0023】第2の発明では、2の補数フォーマット専
用のN×Nビット(N;偶数)乗算器を用い、第1及び
第2の倍精度数値(2Nビット)の乗算(2N×2Nビ
ット)を行う倍精度乗算方法において、次のような手段
を講じたものである。
【0024】即ち、前記第1及び第2の倍精度数値の下
位側Nビットをそれぞれ2の補数フォーマットとして扱
い、その各下位側Nビットの乗算を行って第1の部分積
を求めると共に、前記第1及び第2の倍精度数値の下位
側Nビットの最上位ビットが1または0のいずれである
かの判定を行い、その判定結果がいずれも1であれば前
記第1及び第2の倍精度数値の上位側Nビットにそれぞ
れ予め1を加えておく。
【0025】そして、その第1の倍精度数値の上位側N
ビットと前記第2の倍精度数値の下位側Nビットとの乗
算を行って第2の部分積を求め、前記第1の倍精度数値
の下位側Nビットと前記第2の倍精度数値の上位側Nビ
ットとの乗算を行って第3の部分積を求め、前記第2及
び第3の部分積の最下位ビットを前記第1の部分積のN
ビット目に桁合わせして前記第1、第2及び第3の部分
積の加算処理を行った後、前記第1及び第2の倍精度数
値の上位側Nビットの乗算を行って第4の部分積を求め
、前記第4の部分積の最下位ビットを前記第1の部分積
の2Nビット目に桁合わせして前記加算処理の加算結果
と前記第4の部分積との加算を行うようにしたものであ
る。
【0026】
【作用】第1の発明は、以上のように倍精度乗算方法を
構成したので、倍精度数値の下位側Nビットの最上位ビ
ットが1の場合に、該倍精度数値の上位側ビットに予め
1を加えておくことにより、本来、絶対値フォーマット
である倍精度数値の下位側Nビットを2の補数フォーマ
ットとして扱ったことに対する補正がなされる。そして
、第2の部分積の最下位ビットを第1の部分積のNビッ
ト目に桁合わせして第1と第2の部分積との加算を行う
ことにより、乗算結果が得られる。これにより、倍精度
乗算が容易に最大スケールで扱える。
【0027】第2の発明は、第1及び第2の倍精度数値
の下位側Nビットの最上位ビットが1の場合に、その第
1及び第2の倍精度数値の上位側Nビットに予め1を加
えておくことにより、本来、絶対値フォーマットである
第1及び第2の倍精度数値の下位側Nビットを2の補数
フォーマットとして扱ったことに対する補正がなされる
。そして、第1、第2及び第3の部分積の加算処理を行
った後、第1及び第2の倍精度数値の上位側Nビットの
乗算を行って第4の部分積を求め、その第4の部分積の
最下位ビットを前記第1の部分積の2Nビット目に桁合
わせして前記加算処理の加算結果と前記第4の部分積と
の加算を行えば、乗算結果が得られる。これにより、第
1の発明同様に倍精度乗算が容易に最大スケールで扱え
る。
【0028】従って、前記課題を解決できるのである。
【0029】
【実施例】図1は本発明の第1の実施例を示す倍精度乗
算方法を説明するための説明図、及び図6(a),(b
)は図1の実施例で使用されるデータフォーマット例を
示す図であり、同図(a)は24ビットのデータフォー
マット例、同図(b)は48ビットのデータフォーマッ
ト例である。
【0030】本実施例の倍精度乗算は、2の補数フォー
マット専用の24×24ビット乗算器を用いて実施され
るものであり、この乗算器の場合、単精度数値は24ビ
ット、倍精度数値は48ビットとなり、そのデータフォ
ーマット例が図6(a),(b)に示されている。なお
、図中のMSBのX23とX47は共に2の補数フォー
マットの符号ビットである。
【0031】以下、倍精度乗算の乗算方法を説明する。
【0032】図1において、(40)は48ビット被乗
数(倍精度数値)の補正された上位側24ビット、(4
1)は48ビット被乗数の下位側24ビット、(42)
は48ビット被乗数の下位側24ビット(41)のMS
B、及び(43)は24ビット乗数(単精度数値)であ
る。
【0033】(44)は48ビット被乗数の下位側24
ビット(41)と24ビット乗数(43)との部分積(
第1の部分積)、(45)は48ビット被乗数の補正さ
れた上位側24ビット(40)と24ビット乗数(43
)との部分積(第2の部分積)、(46)は72ビット
の乗算結果、及び図中斜線部の(44a)は部分積(4
4)の符号拡張部である。
【0034】48ビット被乗数の上位側24ビット(4
0)の補正は、下位側24ビットのMSB(42)が1
の時に、上位側(40)に予め1を加えることにより行
われる。
【0035】倍精度乗算方法は、次のように行われる。
【0036】まず、48ビット被乗数の下位側24ビッ
ト(41)を実際は絶対値フォーマットになっているも
のを、フォーマット調整することなしに、そのまま2の
補数フォーマットとして扱い、部分積(44)を求める
。次に部分積(45)を求め、部分積(45)のLSB
の部分積(44)の24ビット目に桁合わせして加算す
ることによって、72ビット乗算結果(46)が求めら
れる。
【0037】以下、上記倍精度乗算の補正方法を数式を
用いて説明する。
【0038】48ビット被乗数をX、24ビット乗数を
Yとすると、                   但し、xi ,
yi は0又は1であり、iは右から何ビット目である
かを示す。
【0039】(1)式を上位側、下位側24ビットに分
割したものをそれぞれX1,X0とすると、  (4)
式は絶対値フォーマットになっているが、実際の乗算で
は、X0を2の補数フォーマットとして扱うので、これ
をX0a とすると、 (4)式を変形して、 (7)式第2項のx23・224を上位側24ビットX
1に加えることにより、補正された上位側24ビットを
X1a とすると、Xは、             X=X1+x23・224+
X0a               =X1a +X
0a                       
          ……(8)となる。
【0040】このように、本実施例は、下位側24ビッ
トのMSB((8)式のx23)が1のとき、上位側2
4ビットに1を加えることにより補正され、上位側24
ビット、下位側24ビットともに2の補数フォーマット
専用の乗算器において、最大スケールの倍精度乗算が容
易に行える。
【0041】図7は、本発明の第2の実施例を示す倍精
度乗算方法を説明するための説明図である。
【0042】本実施例は、2の補数フォーマット専用の
24×24ビット乗算器を用い、倍精度数値(48ビッ
ト)同志の乗算(48×48ビット)を行うものである
【0043】図7において、(51)は48ビット被乗
数(第1の倍精度数値)の補正された上位側24ビット
、(52)は48ビット被乗数の下位側24ビット、(
53)は48ビット乗数(第2の倍精度数値)の補正さ
れた上位側24ビット、(54)は48ビット乗数の下
位側24ビット、(55,56)はそれぞれ48ビット
被乗数、及び48ビット乗数の下位側24ビット(52
,54)のMSBである。
【0044】また、(57)は48ビット被乗数の下位
側24ビット(52)と48ビット乗数の下位側24ビ
ット(54)との部分積(第1の部分積)、(58)は
48ビット被乗数の補正された上位側24ビット(51
)と48ビット乗数の下位側24ビット(54)との部
分積(第2の部分積)、(59)は48ビット被乗数の
下位側24ビット(52)と48ビット乗数の補正され
た上位側24ビット(53)との部分積(第3の部分積
)、(60)は48ビット被乗数の補正された上位側2
4ビット(51)と48ビット乗数の補正された上位側
24ビット(53)との部分積(第4の部分積)、(6
1)は96ビットの乗算結果、(57a,58a,59
a)はそれぞれ部分積(57,58,59)の符号拡張
部である。
【0045】上位側24ビット(51,53)の補正は
下位側24ビットのMSB(55,56)が1のときに
、それぞれの上位側(51,53)に予め1を加えるこ
とにより行われる。
【0046】乗算方法は、次のようになる。48ビット
の下位側24ビット(52,54)の実際は絶対値フォ
ーマットになっているものを、フォーマット調整するこ
となしにそのまま2の補数フォーマットとして扱い、部
分積(57)を求める。次に部分積(58,59)を求
め、それぞれのLSBを部分積(57)の24ビット目
に桁合わせして加算し、最後に部分積(60)を求め、
そのLSBを部分積(57)の48ビット目に桁合わせ
して加算することによって、96ビット乗算結果(61
)が求められる。
【0047】この倍精度乗算の補正方法を数式で表す。
【0048】48ビット被乗数をX、48ビット乗数を
Yとすると、                   (但し、xi 
,yi は0又は1であり、iは右から何ビット目であ
るかを示す。)となる。 X,Yフォーマットが同じであるので、Xについてのみ
示すと、上記実施例における(3)式〜(8)式と同一
の数式で表せ、同様に、最大スケールの倍精度乗算が容
易に行える。
【0049】なお、本発明は、図示の実施例に限定され
ず、種々の変形が可能である。例えば、上記実施例の倍
精度乗算は、2の補数フォーマット専用の24×24ビ
ット乗算器を用いて実施したが、24×24ビットに限
定されず、N×Nビット(N;偶数)乗算器で実施する
ようにしても良い。
【0050】
【発明の効果】以上詳細に説明したように、第1の発明
によれば、倍精度数値と単精度数値との乗算を行うに際
し、絶対値フォーマットである倍精度数値の下位側Nビ
ットをフォーマット調整することなしに2の補数フォー
マットとして扱い、この下位側Nビットの最上位ビット
が1であれば、その上位側Nビットに1を加えて補正す
るようにしたので、倍精度数値の扱えるスケールが従来
の2倍となって最大スケールのすべてを容易に扱うこと
が可能となる。これにより、倍精度乗算の精度が従来の
2倍となる。
【0051】第2の発明によれば、第1及び第2の倍精
度数値の乗算を行うに際し、絶対値フォーマットである
第1及び第2の倍精度数値の下位側Nビットをフォーマ
ット調整することなしに2の補数フォーマットとして扱
い、その各下位側Nビットの最上位ビットが1であれば
、それぞれの上位側Nビットに1を加えて補正するよう
にしたので、第1の発明と同様の効果がある。
【0052】さらに、例えば2の補数フォーマット専用
の乗算器を内蔵したDSP(ディジタル・シグナル・プ
ロセッサ)等に本発明を適用すれば、そのDSPの精度
の向上が期待できる。
【図面の簡単な説明】
【図1】本発明の第1の実施例を示す倍精度乗算方法を
説明するための説明図である。
【図2】従来の倍精度乗算方法におけるデータフォーマ
ット例を示す図である。
【図3】従来の倍精度乗算方法におけるフォーマット調
整を示す図である。
【図4】従来の倍精度乗算方法を説明するための説明図
である。
【図5】従来の他の倍精度乗算方法を説明するための説
明図である。
【図6】図1の実施例のデータフォーマット例を示す図
である。
【図7】本発明の第2の実施例の倍精度乗算方法を説明
するための説明図である。
【符号の説明】
40  倍精度数値の上位側ビット 41  倍精度数値の下位側ビット 42  倍精度数値の下位側ビットのMSB43  単
精度数値 44,57、45,58  第1及び第2の部分積51
,53  第1及び第2の倍精度数値の上位側ビット5
2,54  第1及び第2の倍精度数値の下位側ビット
55,56  第1及び第2の倍精度数値の下位側ビッ
トのMSB 59,60  第3及び第4の部分積

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】  2の補数フォーマット専用のN×Nビ
    ット(N;偶数)乗算器を用い、倍精度数値(2Nビッ
    ト)と単精度数値(Nビット)との乗算を行う倍精度乗
    算方法において、前記倍精度数値の下位側Nビットを2
    の補数フォーマットとして扱い、該下位側Nビットと前
    記単精度数値との乗算を行って第1の部分積を求めると
    共に、前記倍精度数値の下位側Nビットの最上位ビット
    が1または0のいずれであるかの判定を行い、その判定
    結果が1であれば前記倍精度数値の上位側Nビットに予
    め1を加えておき、その倍精度数値の上位側Nビットと
    前記単精度数値との乗算を行って第2の部分積を求め、
    前記第2の部分積の最下位ビットを前記第1の部分積の
    Nビット目に桁合わせして前記第1と第2の部分積との
    加算を行うことを特徴とする倍精度乗算方法。
  2. 【請求項2】  2の補数フォーマット専用のN×Nビ
    ット(N;偶数)乗算器を用い、第1及び第2の倍精度
    数値(2Nビット)の乗算(2N×2Nビット)を行う
    倍精度乗算方法において、前記第1及び第2の倍精度数
    値の下位側Nビットをそれぞれ2の補数フォーマットと
    して扱い、その各下位側Nビットの乗算を行って第1の
    部分積を求めると共に、前記第1及び第2の倍精度数値
    の下位側Nビットの最上位ビットが1または0のいずれ
    であるかの判定を行い、その判定結果がいずれも1であ
    れば前記第1及び第2の倍精度数値の上位側Nビットに
    それぞれ予め1を加えておき、その第1の倍精度数値の
    上位側Nビットと前記第2の倍精度数値の下位側Nビッ
    トとの乗算を行って第2の部分積を求め、前記第1の倍
    精度数値の下位側Nビットと前記第2の倍精度数値の上
    位側Nビットとの乗算を行って第3の部分積を求め、前
    記第2及び第3の部分積の最下位ビットを前記第1の部
    分積のNビット目に桁合わせして前記第1、第2及び第
    3の部分積の加算処理を行った後、前記第1及び第2の
    倍精度数値の上位側Nビットの乗算を行って第4の部分
    積を求め、前記第4の部分積の最下位ビットを前記第1
    の部分積の2Nビット目に桁合わせして前記加算処理の
    加算結果と前記第4の部分積との加算を行うことを特徴
    とする倍精度乗算方法。
JP3144890A 1991-06-17 1991-06-17 倍精度乗算方法 Withdrawn JPH04367932A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3144890A JPH04367932A (ja) 1991-06-17 1991-06-17 倍精度乗算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3144890A JPH04367932A (ja) 1991-06-17 1991-06-17 倍精度乗算方法

Publications (1)

Publication Number Publication Date
JPH04367932A true JPH04367932A (ja) 1992-12-21

Family

ID=15372736

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3144890A Withdrawn JPH04367932A (ja) 1991-06-17 1991-06-17 倍精度乗算方法

Country Status (1)

Country Link
JP (1) JPH04367932A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544344A (ja) * 2005-05-09 2008-12-04 サンディスク アイエル リミテッド 大数乗算方法およびデバイス

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544344A (ja) * 2005-05-09 2008-12-04 サンディスク アイエル リミテッド 大数乗算方法およびデバイス
US7672989B2 (en) 2005-05-09 2010-03-02 Sandisk Il Ltd. Large number multiplication method and device
JP4728392B2 (ja) * 2005-05-09 2011-07-20 サンディスク アイエル リミテッド 大数乗算方法およびデバイス

Similar Documents

Publication Publication Date Title
US6233597B1 (en) Computing apparatus for double-precision multiplication
US5260889A (en) Computation of sticky-bit in parallel with partial products in a floating point multiplier unit
JPH09325955A (ja) 二乗和の平方根演算回路
JPH04367932A (ja) 倍精度乗算方法
JP2000347835A (ja) 自乗計算方法及び自乗計算装置
JPH04367933A (ja) 倍精度乗算方法
US6546411B1 (en) High-speed radix 100 parallel adder
JPS6027024A (ja) 演算装置
JP2645422B2 (ja) 浮動小数点演算処理装置
JPH0540605A (ja) 浮動小数点乗算装置
JP2578482B2 (ja) 浮動小数点演算器
JPH0793134A (ja) 乗算器
US11983237B2 (en) Floating point dot product multiplier-accumulator
US11893360B2 (en) Process for a floating point dot product multiplier-accumulator
JP3071607B2 (ja) 乗算回路
JPS61262925A (ja) 演算回路
JP3230349B2 (ja) 10進乗算器
JP3415569B2 (ja) 10進データ除算方法およびそのプログラム記録媒体
JPH0377539B2 (ja)
JP2753922B2 (ja) 固定小数点除算方法
JP2820701B2 (ja) 2進数への変換方法
SU824203A1 (ru) Устройство дл сложени п-разр дныхдЕС ТичНыХ чиСЕл
SU1315970A1 (ru) Устройство дл умножени
JPH04153827A (ja) ディジタル乗算器
SU1474640A2 (ru) Устройство дл умножени в дополнительном коде

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980903