JPH1185471A - 演算方法および演算装置 - Google Patents
演算方法および演算装置Info
- Publication number
- JPH1185471A JPH1185471A JP10187061A JP18706198A JPH1185471A JP H1185471 A JPH1185471 A JP H1185471A JP 10187061 A JP10187061 A JP 10187061A JP 18706198 A JP18706198 A JP 18706198A JP H1185471 A JPH1185471 A JP H1185471A
- Authority
- JP
- Japan
- Prior art keywords
- bit
- precision
- double
- multiplier
- word
- 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
Links
Abstract
(57)【要約】
【課題】 桁合わせ手段の回路規模を減らし効率良く倍
精度乗算を実現する。 【解決手段】 最上位ビットを符号ビットSとし、最上
位ビットと最上位ビットより1ビット下位ビットとの間
を小数点位置とする2進固定小数点数体系において、単
精度乗算器を用いて倍精度被乗数の上位ワードXH/下
位ワードXLと倍精度乗数の上位ワードYH/下位ワー
ドYLとの各々の積を求め、この求めた積について各々
桁合わせ加算を行い倍精度乗算結果を得る際に、倍精度
被乗数の上位ワードXH/下位ワードXLと倍精度乗数
の上位ワードYH/下位ワードYLとの各々の積を、小
数点位置より上位に少なくとも2つ以上の桁をもつこと
により倍精度ビット幅より少なくとも1ビット多いビッ
ト幅で求める。
精度乗算を実現する。 【解決手段】 最上位ビットを符号ビットSとし、最上
位ビットと最上位ビットより1ビット下位ビットとの間
を小数点位置とする2進固定小数点数体系において、単
精度乗算器を用いて倍精度被乗数の上位ワードXH/下
位ワードXLと倍精度乗数の上位ワードYH/下位ワー
ドYLとの各々の積を求め、この求めた積について各々
桁合わせ加算を行い倍精度乗算結果を得る際に、倍精度
被乗数の上位ワードXH/下位ワードXLと倍精度乗数
の上位ワードYH/下位ワードYLとの各々の積を、小
数点位置より上位に少なくとも2つ以上の桁をもつこと
により倍精度ビット幅より少なくとも1ビット多いビッ
ト幅で求める。
Description
【0001】
【発明の属する技術分野】本発明は、単精度乗算器を用
いて倍精度乗算を実行する演算方法および演算装置に関
するものである。
いて倍精度乗算を実行する演算方法および演算装置に関
するものである。
【0002】
【従来の技術】従来の倍精度乗算方式としては、単精度
乗算器を用いて倍精度被乗数の上位ワード/下位ワード
と倍精度乗数の上位ワード/下位ワードの各々の積を求
め、この求めた積について各々桁合わせ加算を行い倍精
度乗算結果を得る方式がある。この方式は、例えば、特
開平8−30439号公報に示されている。この特開平
8−30439号公報に記載の従来例では、倍精度乗数
下位ワードの最上位ビットを保持する手段を設け、倍精
度乗数下位ワードの最上位ビットを倍精度乗数上位ワー
ドの符号化の際に用いることにより、倍精度乗数下位ワ
ードを符号付き2進数として扱っている。また倍精度被
乗数下位ワードの乗算を行うために、被乗数が符号無し
2進数の場合にも乗算が可能な機能を備えた乗算手段を
設けている。この従来例では以上のことにより倍精度乗
算を精度を落とすことなく実現している。
乗算器を用いて倍精度被乗数の上位ワード/下位ワード
と倍精度乗数の上位ワード/下位ワードの各々の積を求
め、この求めた積について各々桁合わせ加算を行い倍精
度乗算結果を得る方式がある。この方式は、例えば、特
開平8−30439号公報に示されている。この特開平
8−30439号公報に記載の従来例では、倍精度乗数
下位ワードの最上位ビットを保持する手段を設け、倍精
度乗数下位ワードの最上位ビットを倍精度乗数上位ワー
ドの符号化の際に用いることにより、倍精度乗数下位ワ
ードを符号付き2進数として扱っている。また倍精度被
乗数下位ワードの乗算を行うために、被乗数が符号無し
2進数の場合にも乗算が可能な機能を備えた乗算手段を
設けている。この従来例では以上のことにより倍精度乗
算を精度を落とすことなく実現している。
【0003】
【発明が解決しようとする課題】しかしながら、特開平
8−30439号公報に記載の従来例では、乗算手段で
被乗数を符号無し2進数として扱う際に、その被乗数の
最上位ビットより1ビット上位ビットに正数であること
を示す符号を想定する。そのため乗算結果の符号の桁位
置が符号付き2進数である被乗数との乗算結果と異な
る。そのために倍精度被乗数の上位ワード/下位ワード
と倍精度乗数の上位ワード/下位ワードの各々の積を加
算する際の桁合わせシフト数がそれぞれ異なり、桁合わ
せ手段の回路規模が大きくなるという問題点を有してい
た。
8−30439号公報に記載の従来例では、乗算手段で
被乗数を符号無し2進数として扱う際に、その被乗数の
最上位ビットより1ビット上位ビットに正数であること
を示す符号を想定する。そのため乗算結果の符号の桁位
置が符号付き2進数である被乗数との乗算結果と異な
る。そのために倍精度被乗数の上位ワード/下位ワード
と倍精度乗数の上位ワード/下位ワードの各々の積を加
算する際の桁合わせシフト数がそれぞれ異なり、桁合わ
せ手段の回路規模が大きくなるという問題点を有してい
た。
【0004】本発明は、上記問題点を解決するもので、
桁合わせ手段の回路規模を減らし効率良く倍精度乗算を
実現する演算方法および演算装置を提供することを目的
とする。
桁合わせ手段の回路規模を減らし効率良く倍精度乗算を
実現する演算方法および演算装置を提供することを目的
とする。
【0005】
【課題を解決するための手段】本発明の演算方法は、最
上位ビットを符号ビットとし、最上位ビットと1ビット
下位のビットの間を小数点位置とする2進固定小数点数
体系において、単精度乗算器を用いて倍精度被乗数の上
位ワード/下位ワードと倍精度乗数の上位ワード/下位
ワードとの各々の積を求め、この求めた積について各々
桁合わせ加算を行い倍精度乗算結果を得る際に、倍精度
被乗数の上位ワード/下位ワードと倍精度乗数の上位ワ
ード/下位ワードとの各々の積を、小数点位置より上位
に少なくとも2つ以上の桁をもつことにより倍精度のビ
ット幅より少なくとも1ビット多いビット幅で求めるこ
とを特徴とする(請求項1)。
上位ビットを符号ビットとし、最上位ビットと1ビット
下位のビットの間を小数点位置とする2進固定小数点数
体系において、単精度乗算器を用いて倍精度被乗数の上
位ワード/下位ワードと倍精度乗数の上位ワード/下位
ワードとの各々の積を求め、この求めた積について各々
桁合わせ加算を行い倍精度乗算結果を得る際に、倍精度
被乗数の上位ワード/下位ワードと倍精度乗数の上位ワ
ード/下位ワードとの各々の積を、小数点位置より上位
に少なくとも2つ以上の桁をもつことにより倍精度のビ
ット幅より少なくとも1ビット多いビット幅で求めるこ
とを特徴とする(請求項1)。
【0006】このように、小数点位置より上位に少なく
とも2つ以上の桁をもつことにより倍精度のビット幅よ
り少なくとも1ビット多いビット幅で求めた各々の積の
桁合わせのためのシフト数は、相対的に同じビット幅に
限定され、桁合わせ手段の回路規模を減らし効率良く倍
精度乗算を実現することができる。ここで、倍精度被乗
数の上位ワード/下位ワードと倍精度乗数の上位ワード
/下位ワードとの各々の積を、小数点位置より上位に少
なくとも3つ以上の桁をもつことにより倍精度のビット
幅より2ビット、3ビット、あるいはそれ以上多いビッ
ト幅で求めることは、1ビット多いビット幅で求めた積
を符号拡張することに他ならず回路規模が大きくなるだ
けなので、通常は小数点位置より上位に2つの桁をもつ
ことにより倍精度のビット幅より1ビット多いビット幅
で求めれば十分である。以下では倍精度被乗数の上位ワ
ード/下位ワードと倍精度乗数の上位ワード/下位ワー
ドとの各々の積を、倍精度のビット幅より1ビット多い
ビット幅で求めるものとして本発明の演算方法を説明す
る。
とも2つ以上の桁をもつことにより倍精度のビット幅よ
り少なくとも1ビット多いビット幅で求めた各々の積の
桁合わせのためのシフト数は、相対的に同じビット幅に
限定され、桁合わせ手段の回路規模を減らし効率良く倍
精度乗算を実現することができる。ここで、倍精度被乗
数の上位ワード/下位ワードと倍精度乗数の上位ワード
/下位ワードとの各々の積を、小数点位置より上位に少
なくとも3つ以上の桁をもつことにより倍精度のビット
幅より2ビット、3ビット、あるいはそれ以上多いビッ
ト幅で求めることは、1ビット多いビット幅で求めた積
を符号拡張することに他ならず回路規模が大きくなるだ
けなので、通常は小数点位置より上位に2つの桁をもつ
ことにより倍精度のビット幅より1ビット多いビット幅
で求めれば十分である。以下では倍精度被乗数の上位ワ
ード/下位ワードと倍精度乗数の上位ワード/下位ワー
ドとの各々の積を、倍精度のビット幅より1ビット多い
ビット幅で求めるものとして本発明の演算方法を説明す
る。
【0007】この場合、上記の演算方法では、倍精度被
乗数下位ワードと倍精度乗数下位ワードの積を求める際
には、例えば、倍精度被乗数下位ワード最上位ビットよ
り1ビット上位に正数を示す符号ビットを付加したデー
タと、倍精度乗数下位ワードの最上位ビットを符号ビッ
トとしたデータとの乗算を行い、その乗算結果の最下位
ビットの1ビット下位に値“0”を付加したものを、求
める積として出力する(請求項2)。
乗数下位ワードと倍精度乗数下位ワードの積を求める際
には、例えば、倍精度被乗数下位ワード最上位ビットよ
り1ビット上位に正数を示す符号ビットを付加したデー
タと、倍精度乗数下位ワードの最上位ビットを符号ビッ
トとしたデータとの乗算を行い、その乗算結果の最下位
ビットの1ビット下位に値“0”を付加したものを、求
める積として出力する(請求項2)。
【0008】また、倍精度被乗数上位ワードと倍精度乗
数下位ワードの積を求める際には、例えば、倍精度被乗
数上位ワード最上位ビットの符号ビットを1ビット符号
拡張したデータと、倍精度乗数下位ワードの最上位ビッ
トを符号ビットとしたデータとの乗算を行い、その乗算
結果の最下位ビットの1ビット下位に値“0”を付加し
たものを、求める積として出力する(請求項3)。
数下位ワードの積を求める際には、例えば、倍精度被乗
数上位ワード最上位ビットの符号ビットを1ビット符号
拡張したデータと、倍精度乗数下位ワードの最上位ビッ
トを符号ビットとしたデータとの乗算を行い、その乗算
結果の最下位ビットの1ビット下位に値“0”を付加し
たものを、求める積として出力する(請求項3)。
【0009】また、倍精度被乗数下位ワードと倍精度乗
数上位ワードの積を求める際には、例えば、倍精度被乗
数下位ワード最上位ビットより1ビット上位に正数を示
す符号ビットを付加したデータと、倍精度乗数上位ワー
ドの最下位ビットの桁位置に倍精度乗数下位ワードの最
上位ビットと同じ値を持つデータを加えたデータとの乗
算を行い、その乗算結果の最下位ビットの1ビット下位
に値“0”を付加したものを、求める積として出力する
(請求項4)。
数上位ワードの積を求める際には、例えば、倍精度被乗
数下位ワード最上位ビットより1ビット上位に正数を示
す符号ビットを付加したデータと、倍精度乗数上位ワー
ドの最下位ビットの桁位置に倍精度乗数下位ワードの最
上位ビットと同じ値を持つデータを加えたデータとの乗
算を行い、その乗算結果の最下位ビットの1ビット下位
に値“0”を付加したものを、求める積として出力する
(請求項4)。
【0010】また、倍精度被乗数上位ワードと倍精度乗
数上位ワードの積を求める際には、例えば、倍精度被乗
数上位ワード最上位ビットの符号ビットを1ビット符号
拡張したデータと、倍精度乗数上位ワードの最下位ビッ
トの桁位置に倍精度乗数下位ワードの最上位ビットと同
じ値を持つデータを加えたデータとの乗算を行い、その
乗算結果の最下位ビットの1ビット下位に値“0”を付
加したものを、求める積として出力する(請求項5)。
数上位ワードの積を求める際には、例えば、倍精度被乗
数上位ワード最上位ビットの符号ビットを1ビット符号
拡張したデータと、倍精度乗数上位ワードの最下位ビッ
トの桁位置に倍精度乗数下位ワードの最上位ビットと同
じ値を持つデータを加えたデータとの乗算を行い、その
乗算結果の最下位ビットの1ビット下位に値“0”を付
加したものを、求める積として出力する(請求項5)。
【0011】ここで、通常用いられる単精度乗算器は2
つの単精度数の乗算を行い、乗算結果は倍精度より1ビ
ット少ないビット幅のデータとして得られるが、小数点
位置を揃えることと倍精度のビット幅で結果を出力する
ことのために、乗算結果の最下位ビットの1ビット下位
に値“0”を付加し、倍精度のデータを積として出力す
る。
つの単精度数の乗算を行い、乗算結果は倍精度より1ビ
ット少ないビット幅のデータとして得られるが、小数点
位置を揃えることと倍精度のビット幅で結果を出力する
ことのために、乗算結果の最下位ビットの1ビット下位
に値“0”を付加し、倍精度のデータを積として出力す
る。
【0012】また、倍精度被乗数の上位ワード/下位ワ
ードと倍精度乗数の上位ワード/下位ワードとの各々の
積を求めるための単精度乗算器(請求項2,3,4,
5)は、被乗数の最上位ビットの1ビット上位に符号拡
張するか正数を示す符号ビットを付加するので、乗算結
果は倍精度と同じビット幅になる。しかしながら、符号
拡張や正数を示す符号ビットを付加しても被乗数の小数
点位置は変わらないので、上記の単精度乗算器で求めら
れた乗算結果は、従来の単精度乗算器の乗算結果と比べ
て小数点位置より上位に少なくとも2つ以上の桁をもつ
ことにより1ビット多くデータを持つものとして得られ
ることになる。そして、上記の単精度乗算器は、桁位置
の関係から先に記した様に乗算結果の最下位ビットの1
ビット下位に値“0”を付加し、小数点位置より上位に
2つの桁をもつことにより倍精度ビット幅より1ビット
多いビット幅で積を求める。
ードと倍精度乗数の上位ワード/下位ワードとの各々の
積を求めるための単精度乗算器(請求項2,3,4,
5)は、被乗数の最上位ビットの1ビット上位に符号拡
張するか正数を示す符号ビットを付加するので、乗算結
果は倍精度と同じビット幅になる。しかしながら、符号
拡張や正数を示す符号ビットを付加しても被乗数の小数
点位置は変わらないので、上記の単精度乗算器で求めら
れた乗算結果は、従来の単精度乗算器の乗算結果と比べ
て小数点位置より上位に少なくとも2つ以上の桁をもつ
ことにより1ビット多くデータを持つものとして得られ
ることになる。そして、上記の単精度乗算器は、桁位置
の関係から先に記した様に乗算結果の最下位ビットの1
ビット下位に値“0”を付加し、小数点位置より上位に
2つの桁をもつことにより倍精度ビット幅より1ビット
多いビット幅で積を求める。
【0013】本発明の演算装置は、2つの符号付き2進
固定小数点数データの乗算を行う単精度乗算器を用いて
倍精度乗算を実行するもので、乗数の最上位ビットを保
持するMSB保持手段と、MSB保持手段の保持データ
および値“0”のうち一方を選択して出力するデータ選
択手段と、乗数とデータ選択手段の出力データとを用い
て乗数を符号化して出力する乗数エンコード手段と、被
乗数判別信号が非能動状態ならば被乗数の最上位ビット
である符号ビットを1ビット符号拡張して乗数エンコー
ド手段の出力データとの乗算結果を求め、被乗数判別信
号が能動状態ならば被乗数最上位ビットの1ビット上位
に正数であることを示す符号ビットを付加して乗数エン
コード手段の出力データとの乗算結果を求め、求めた乗
算結果を小数点位置より上位に少なくとも2つ以上の桁
をもつことにより倍精度のビット幅より少なくとも1ビ
ット多いビット幅で出力する乗算手段と、乗算手段の出
力データを加数とし、倍精度のビット幅より少なくとも
1ビット多いビット幅を持つ被加数との加算を行い、倍
精度のビット幅より少なくとも1ビット多いビット幅を
持つ加算結果を出力する加算手段と、加算手段の出力す
る加算結果を保持する加算結果保持手段と、加算結果保
持手段の保持データおよび値“0”のうち一方を選択
し、桁合わせ処理を行い加算手段の被加数として出力す
る桁合わせ手段とを備えたことを特徴とする(請求項
6)。
固定小数点数データの乗算を行う単精度乗算器を用いて
倍精度乗算を実行するもので、乗数の最上位ビットを保
持するMSB保持手段と、MSB保持手段の保持データ
および値“0”のうち一方を選択して出力するデータ選
択手段と、乗数とデータ選択手段の出力データとを用い
て乗数を符号化して出力する乗数エンコード手段と、被
乗数判別信号が非能動状態ならば被乗数の最上位ビット
である符号ビットを1ビット符号拡張して乗数エンコー
ド手段の出力データとの乗算結果を求め、被乗数判別信
号が能動状態ならば被乗数最上位ビットの1ビット上位
に正数であることを示す符号ビットを付加して乗数エン
コード手段の出力データとの乗算結果を求め、求めた乗
算結果を小数点位置より上位に少なくとも2つ以上の桁
をもつことにより倍精度のビット幅より少なくとも1ビ
ット多いビット幅で出力する乗算手段と、乗算手段の出
力データを加数とし、倍精度のビット幅より少なくとも
1ビット多いビット幅を持つ被加数との加算を行い、倍
精度のビット幅より少なくとも1ビット多いビット幅を
持つ加算結果を出力する加算手段と、加算手段の出力す
る加算結果を保持する加算結果保持手段と、加算結果保
持手段の保持データおよび値“0”のうち一方を選択
し、桁合わせ処理を行い加算手段の被加数として出力す
る桁合わせ手段とを備えたことを特徴とする(請求項
6)。
【0014】この構成によれば、乗算手段が小数点位置
より上位に少なくとも2つ以上の桁をもつことにより倍
精度のビット幅より少なくとも1ビット多いビット幅で
乗算結果を出力することにより、各々の乗算結果の桁合
わせのためのシフト数は、相対的に同じビット幅に限定
され、桁合わせ手段の回路規模を減らし効率良く倍精度
乗算を実現することができる。
より上位に少なくとも2つ以上の桁をもつことにより倍
精度のビット幅より少なくとも1ビット多いビット幅で
乗算結果を出力することにより、各々の乗算結果の桁合
わせのためのシフト数は、相対的に同じビット幅に限定
され、桁合わせ手段の回路規模を減らし効率良く倍精度
乗算を実現することができる。
【0015】この場合、上記の演算装置では、倍精度乗
算を実行する際のMSB保持手段の動作として、例え
ば、倍精度乗数下位ワードと倍精度被乗数上位ワード/
下位ワードとの積を求める際に倍精度乗数下位ワードの
最上位ビットを保持するようにしている(請求項7)。
また、上記の演算装置では、倍精度乗算を実行する際の
データ選択手段の動作として、例えば、倍精度乗数下位
ワードと倍精度被乗数上位ワード/下位ワードとの積を
求める際に値“0”を選択出力し、倍精度乗数上位ワー
ドと倍精度被乗数上位ワード/下位ワードとの積を求め
る際にMSB保持手段が保持している倍精度乗数下位ワ
ードの最上位ビットを選択出力するようにしている(請
求項8)。
算を実行する際のMSB保持手段の動作として、例え
ば、倍精度乗数下位ワードと倍精度被乗数上位ワード/
下位ワードとの積を求める際に倍精度乗数下位ワードの
最上位ビットを保持するようにしている(請求項7)。
また、上記の演算装置では、倍精度乗算を実行する際の
データ選択手段の動作として、例えば、倍精度乗数下位
ワードと倍精度被乗数上位ワード/下位ワードとの積を
求める際に値“0”を選択出力し、倍精度乗数上位ワー
ドと倍精度被乗数上位ワード/下位ワードとの積を求め
る際にMSB保持手段が保持している倍精度乗数下位ワ
ードの最上位ビットを選択出力するようにしている(請
求項8)。
【0016】また、上記の演算装置では、倍精度乗算を
実行する際の乗数エンコード手段の動作として、例え
ば、倍精度乗数下位ワードと倍精度被乗数上位ワード/
下位ワードとの積を求める際に入力される倍精度乗数下
位ワードとデータ選択手段の選択した値“0”の出力デ
ータをブースのアルゴリズムで符号化して出力し、倍精
度乗数上位ワードと倍精度被乗数上位ワード/下位ワー
ドとの積を求める際にデータ選択手段の選択したMSB
保持手段が保持している倍精度乗数下位ワードの最上位
ビットの出力データをブースのアルゴリズムで符号化し
て出力するようにしている(請求項9)。
実行する際の乗数エンコード手段の動作として、例え
ば、倍精度乗数下位ワードと倍精度被乗数上位ワード/
下位ワードとの積を求める際に入力される倍精度乗数下
位ワードとデータ選択手段の選択した値“0”の出力デ
ータをブースのアルゴリズムで符号化して出力し、倍精
度乗数上位ワードと倍精度被乗数上位ワード/下位ワー
ドとの積を求める際にデータ選択手段の選択したMSB
保持手段が保持している倍精度乗数下位ワードの最上位
ビットの出力データをブースのアルゴリズムで符号化し
て出力するようにしている(請求項9)。
【0017】また、上記の演算装置では、乗算手段が、
例えば被乗数判別信号が能動状態ならば入力される被乗
数が倍精度被乗数の下位ワードであると判別し、被乗数
の最上位ビットの1ビット上位に正数を示す符号ビット
を付加して、乗数エンコード手段の出力データとの部分
積を求め、被乗数判別信号が非能動状態ならば入力され
る被乗数が倍精度被乗数の上位ワードであると判別し、
被乗数の最上位ビットである符号ビットを1ビット符号
拡張して、乗数エンコード手段の出力データとの部分積
を求める部分積生成手段を備えている(請求項10)。
上記の乗算手段は、部分積生成手段を少なくとも2つ備
え、複数の部分積生成手段の出力データである部分積を
桁位置を合わせて加算し、部分積加算結果の最下位ビッ
トの1ビット下位に値“0”のデータを付加して求める
積として出力するようにしてもよい(請求項11)。
例えば被乗数判別信号が能動状態ならば入力される被乗
数が倍精度被乗数の下位ワードであると判別し、被乗数
の最上位ビットの1ビット上位に正数を示す符号ビット
を付加して、乗数エンコード手段の出力データとの部分
積を求め、被乗数判別信号が非能動状態ならば入力され
る被乗数が倍精度被乗数の上位ワードであると判別し、
被乗数の最上位ビットである符号ビットを1ビット符号
拡張して、乗数エンコード手段の出力データとの部分積
を求める部分積生成手段を備えている(請求項10)。
上記の乗算手段は、部分積生成手段を少なくとも2つ備
え、複数の部分積生成手段の出力データである部分積を
桁位置を合わせて加算し、部分積加算結果の最下位ビッ
トの1ビット下位に値“0”のデータを付加して求める
積として出力するようにしてもよい(請求項11)。
【0018】また上記の演算装置では、乗算手段の出力
データを一時保持し、加算手段の加数として出力する乗
算結果保持手段を設け、乗算手段と加算手段とが並列に
動作可能としてもよい(請求項12)。これにより、演
算時間を短縮することができる。また、上記の演算装置
では、乗数エンコード手段は、入力データである乗数の
最下位ビットを強制的に値“0”にする機能を有してい
てもよく(請求項13)、乗算手段は、入力データであ
る被乗数の最下位ビットを強制的に値“0”にする機能
を有していてもよい(請求項14)。
データを一時保持し、加算手段の加数として出力する乗
算結果保持手段を設け、乗算手段と加算手段とが並列に
動作可能としてもよい(請求項12)。これにより、演
算時間を短縮することができる。また、上記の演算装置
では、乗数エンコード手段は、入力データである乗数の
最下位ビットを強制的に値“0”にする機能を有してい
てもよく(請求項13)、乗算手段は、入力データであ
る被乗数の最下位ビットを強制的に値“0”にする機能
を有していてもよい(請求項14)。
【0019】本発明では高精度の倍精度乗算を効率良く
実行することを目的としているが、現在実用化されてい
るアプリケーションでは低精度の倍精度乗算で規格が決
められているものがある。例えばデジタル携帯電話など
で用いられる音声符号化処理などがそうである。そこ
で、上述のように、それぞれ乗数と被乗数の最下位ビッ
トを強制的に値“0”にする機能(請求項13,14)
を有することにより、低精度の倍精度乗算を用いたアプ
リケーションとの互換性をとることができる。
実行することを目的としているが、現在実用化されてい
るアプリケーションでは低精度の倍精度乗算で規格が決
められているものがある。例えばデジタル携帯電話など
で用いられる音声符号化処理などがそうである。そこ
で、上述のように、それぞれ乗数と被乗数の最下位ビッ
トを強制的に値“0”にする機能(請求項13,14)
を有することにより、低精度の倍精度乗算を用いたアプ
リケーションとの互換性をとることができる。
【0020】ここで、低精度の倍精度乗算と呼んでいる
のは、倍精度乗算の実行において倍精度乗数下位ワード
や倍精度被乗数下位ワードのデータを用いた乗算を行う
際に、それぞれ倍精度乗数下位ワードや倍精度被乗数下
位ワードを1ビット右シフトし、最上位ビットの桁位置
に正数を示す符号ビットを挿入したデータをあらかじめ
作成して、それらのデータを倍精度乗数下位ワードや倍
精度被乗数下位ワードのデータの代わりに用いて乗算を
行う倍精度乗算である。倍精度乗数と倍精度被乗数の符
号ビットはそれぞれ倍精度乗数上位ワードと倍精度被乗
数上位ワードの最上位ビットにあたり、倍精度乗数下位
ワードと倍精度被乗数下位ワードは符号ビットを持たな
い全てデータビットのデータであることになる。
のは、倍精度乗算の実行において倍精度乗数下位ワード
や倍精度被乗数下位ワードのデータを用いた乗算を行う
際に、それぞれ倍精度乗数下位ワードや倍精度被乗数下
位ワードを1ビット右シフトし、最上位ビットの桁位置
に正数を示す符号ビットを挿入したデータをあらかじめ
作成して、それらのデータを倍精度乗数下位ワードや倍
精度被乗数下位ワードのデータの代わりに用いて乗算を
行う倍精度乗算である。倍精度乗数と倍精度被乗数の符
号ビットはそれぞれ倍精度乗数上位ワードと倍精度被乗
数上位ワードの最上位ビットにあたり、倍精度乗数下位
ワードと倍精度被乗数下位ワードは符号ビットを持たな
い全てデータビットのデータであることになる。
【0021】符号付き2進固定小数点数を扱う通常の単
精度乗算器は全てデータビットであるデータを扱える構
成にはなっていない。そこで、倍精度乗数下位ワードと
倍精度被乗数下位ワードはそれぞれ正数のデータである
と考えられるので正数を示す符号ビットを付加すること
を考えるが、そのままではビット幅が単精度のビット幅
より1ビット多くなってしまうので、1ビット右シフト
することにより最下位ビットのデータを切り捨てて単精
度のビット幅に押さえている。つまり、倍精度乗数下位
ワードと倍精度被乗数下位ワードの最下位ビットのデー
タが切り捨てられるので、その分だけ精度が悪くなるこ
とになる。また、この1ビット右シフトにより発生する
桁位置のずれは、倍精度乗数上位ワード/下位ワードと
倍精度被乗数上位ワード/下位ワードのそれぞれの積を
加算するときの桁位置合わせ処理の中で吸収している。
精度乗算器は全てデータビットであるデータを扱える構
成にはなっていない。そこで、倍精度乗数下位ワードと
倍精度被乗数下位ワードはそれぞれ正数のデータである
と考えられるので正数を示す符号ビットを付加すること
を考えるが、そのままではビット幅が単精度のビット幅
より1ビット多くなってしまうので、1ビット右シフト
することにより最下位ビットのデータを切り捨てて単精
度のビット幅に押さえている。つまり、倍精度乗数下位
ワードと倍精度被乗数下位ワードの最下位ビットのデー
タが切り捨てられるので、その分だけ精度が悪くなるこ
とになる。また、この1ビット右シフトにより発生する
桁位置のずれは、倍精度乗数上位ワード/下位ワードと
倍精度被乗数上位ワード/下位ワードのそれぞれの積を
加算するときの桁位置合わせ処理の中で吸収している。
【0022】また、上記の演算装置では、MSB保持手
段は、符号付き2進数である乗数の最上位ビットを保持
する手段に代えて、乗数の最上位ビットおよび値“0”
のうち一方を選択して保持する手段としてもよい(請求
項15)。これにより、倍精度データと倍精度データの
乗算を行う場合と、倍精度データと単精度データの乗算
を行う場合との命令の共通化が図れ、命令数を削減する
ことができる。
段は、符号付き2進数である乗数の最上位ビットを保持
する手段に代えて、乗数の最上位ビットおよび値“0”
のうち一方を選択して保持する手段としてもよい(請求
項15)。これにより、倍精度データと倍精度データの
乗算を行う場合と、倍精度データと単精度データの乗算
を行う場合との命令の共通化が図れ、命令数を削減する
ことができる。
【0023】
〔第1の実施の形態〕以下本発明の第1の実施の形態に
ついて、図面を参照しながら説明する。図1は本発明の
実施の形態における演算装置の構成を示す図である。図
1において、MSB保持手段10は符号付き2進固定小
数点数である乗数の最上位ビットを保持する。データ選
択手段11はMSB保持手段10の出力か値“0”を選
択して出力する。乗数エンコード手段12は乗数とデー
タ選択手段11の出力を2次のブースのアルゴリズムで
符号化する。
ついて、図面を参照しながら説明する。図1は本発明の
実施の形態における演算装置の構成を示す図である。図
1において、MSB保持手段10は符号付き2進固定小
数点数である乗数の最上位ビットを保持する。データ選
択手段11はMSB保持手段10の出力か値“0”を選
択して出力する。乗数エンコード手段12は乗数とデー
タ選択手段11の出力を2次のブースのアルゴリズムで
符号化する。
【0024】乗算手段13は符号付き2進固定小数点数
である被乗数と乗数エンコード手段12の出力と被乗数
判別信号C1とを入力し、被乗数判別信号C1が値
“0”で非能動状態ならば被乗数を倍精度被乗数上位ワ
ードと判別し、被乗数の最上位ビットである符号ビット
を1ビット符号拡張して、乗数エンコード手段12の出
力データとの乗算結果を求める。一方、被乗数判別信号
C1が値“1”で能動状態ならば被乗数を倍精度被乗数
下位ワードと判別し、被乗数の最上位ビットの1ビット
上位に正数を示す符号として値“0”の符号ビットを付
加して、乗数エンコード手段12の出力データとの乗算
結果を求める。そして、求めた乗算結果の最下位ビット
の1ビット下位に値“0”のデータを付加したデータ
を、小数点位置より上位に少なくとも2つ以上の桁をも
つことにより倍精度のビット幅より少なくとも1ビット
多いビット幅を持つ積として出力する。
である被乗数と乗数エンコード手段12の出力と被乗数
判別信号C1とを入力し、被乗数判別信号C1が値
“0”で非能動状態ならば被乗数を倍精度被乗数上位ワ
ードと判別し、被乗数の最上位ビットである符号ビット
を1ビット符号拡張して、乗数エンコード手段12の出
力データとの乗算結果を求める。一方、被乗数判別信号
C1が値“1”で能動状態ならば被乗数を倍精度被乗数
下位ワードと判別し、被乗数の最上位ビットの1ビット
上位に正数を示す符号として値“0”の符号ビットを付
加して、乗数エンコード手段12の出力データとの乗算
結果を求める。そして、求めた乗算結果の最下位ビット
の1ビット下位に値“0”のデータを付加したデータ
を、小数点位置より上位に少なくとも2つ以上の桁をも
つことにより倍精度のビット幅より少なくとも1ビット
多いビット幅を持つ積として出力する。
【0025】ここで、本発明では単精度データと倍精度
データの表現として、最上位ビットが符号ビットであ
り、最上位ビットと最上位ビットより1ビット下位のビ
ットとの間が小数点位置である2進固定小数点数体系を
考えている。通常小数点位置より上位には符号ビットと
なるビットが1つだけ存在する。つまり、上記「小数点
位置より上位に少なくとも2つ以上の桁をもつ」という
表現と「倍精度のビット幅より少なくとも1ビット多い
ビット幅をもつ」という表現は同じことを述べている。
データの表現として、最上位ビットが符号ビットであ
り、最上位ビットと最上位ビットより1ビット下位のビ
ットとの間が小数点位置である2進固定小数点数体系を
考えている。通常小数点位置より上位には符号ビットと
なるビットが1つだけ存在する。つまり、上記「小数点
位置より上位に少なくとも2つ以上の桁をもつ」という
表現と「倍精度のビット幅より少なくとも1ビット多い
ビット幅をもつ」という表現は同じことを述べている。
【0026】加算手段14は乗算手段13の出力を加数
とし、小数点位置より上位に少なくとも2つ以上の桁を
もつことにより倍精度のビット幅より少なくとも1ビッ
ト多いビット幅を持つ被加数との加算を行い、小数点位
置より上位に少なくとも2つ以上の桁をもつことにより
倍精度のビット幅より少なくとも1ビット多いビット幅
の加算結果を出力する加算手段である。加算結果保持手
段15は加算手段14の出力を保持する。桁合わせ手段
16は2ビットで表現される桁合わせ制御信号C2が
(C2-1,C2-0)=(0,1)のとき加算結果保持手
段15の出力をシフトせずに出力し、桁合わせ制御信号
C2が(C2-1,C2-0)=(1,0)のとき加算結果
保持手段15の出力を16ビット右シフトして出力し、
桁合わせ制御信号C2が(C2-1,C2-0)=(0,
0)のとき値“0”を選択し出力する。
とし、小数点位置より上位に少なくとも2つ以上の桁を
もつことにより倍精度のビット幅より少なくとも1ビッ
ト多いビット幅を持つ被加数との加算を行い、小数点位
置より上位に少なくとも2つ以上の桁をもつことにより
倍精度のビット幅より少なくとも1ビット多いビット幅
の加算結果を出力する加算手段である。加算結果保持手
段15は加算手段14の出力を保持する。桁合わせ手段
16は2ビットで表現される桁合わせ制御信号C2が
(C2-1,C2-0)=(0,1)のとき加算結果保持手
段15の出力をシフトせずに出力し、桁合わせ制御信号
C2が(C2-1,C2-0)=(1,0)のとき加算結果
保持手段15の出力を16ビット右シフトして出力し、
桁合わせ制御信号C2が(C2-1,C2-0)=(0,
0)のとき値“0”を選択し出力する。
【0027】なお、記号C2-1,C2-0は、それぞれ桁
合わせ制御信号C2のビット構成要素を示す。符号20
は本実施の形態の演算装置で実行される各演算命令のソ
ースとデスティネーションになる記憶手段である。な
お、ここでは、乗算結果保持手段17および選択手段1
8,19は存在せず、乗算手段13の出力が加算手段1
4に直接入力され、加算結果保持手段15の出力が桁合
わせ手段16に直接入力されているものとして説明す
る。また、乗算結果保持手段17および選択手段18,
19については後述する。
合わせ制御信号C2のビット構成要素を示す。符号20
は本実施の形態の演算装置で実行される各演算命令のソ
ースとデスティネーションになる記憶手段である。な
お、ここでは、乗算結果保持手段17および選択手段1
8,19は存在せず、乗算手段13の出力が加算手段1
4に直接入力され、加算結果保持手段15の出力が桁合
わせ手段16に直接入力されているものとして説明す
る。また、乗算結果保持手段17および選択手段18,
19については後述する。
【0028】また、図1の中で、乗算エンコード手段1
2に入力される乗数制御信号C3および乗算手段13に
入力される被乗数制御信号C4は、第2の実施の形態に
おいて必要な信号であり、第1の実施の形態では不要で
ある。さらに、MSB保持手段10に入力される値
“0”および保持データ選択信号C5は、第3の実施の
形態において必要な信号であり、第1の実施の形態では
不要である。
2に入力される乗数制御信号C3および乗算手段13に
入力される被乗数制御信号C4は、第2の実施の形態に
おいて必要な信号であり、第1の実施の形態では不要で
ある。さらに、MSB保持手段10に入力される値
“0”および保持データ選択信号C5は、第3の実施の
形態において必要な信号であり、第1の実施の形態では
不要である。
【0029】以上のように構成された演算装置につい
て、その動作を説明する。簡単のため16ビット幅の符
号付き2進固定小数点数を単精度データとし、32ビッ
ト幅の符号付き2進固定小数点数を倍精度データとす
る。倍精度データと倍精度データの乗算を行う場合につ
いて説明するが、倍精度被乗数は上位ワードXHと下位
ワードXLからなり、倍精度乗数は上位ワードYHと下
位ワードYLからなるものとする。また、データ選択手
段11は、ここでは倍精度乗数下位ワードYLについて
乗算を行う場合に値“0”を選択し、倍精度乗数上位ワ
ードYHについて乗算を行う場合にMSB保持手段10
の出力を選択するものとする。また、被乗数判別信号C
1は、倍精度被乗数下位ワードXLについて乗算を行う
場合に値“1”で能動状態となり、倍精度被乗数上位ワ
ードXHについて乗算を行う場合に値“0”で非能動状
態となる信号である。
て、その動作を説明する。簡単のため16ビット幅の符
号付き2進固定小数点数を単精度データとし、32ビッ
ト幅の符号付き2進固定小数点数を倍精度データとす
る。倍精度データと倍精度データの乗算を行う場合につ
いて説明するが、倍精度被乗数は上位ワードXHと下位
ワードXLからなり、倍精度乗数は上位ワードYHと下
位ワードYLからなるものとする。また、データ選択手
段11は、ここでは倍精度乗数下位ワードYLについて
乗算を行う場合に値“0”を選択し、倍精度乗数上位ワ
ードYHについて乗算を行う場合にMSB保持手段10
の出力を選択するものとする。また、被乗数判別信号C
1は、倍精度被乗数下位ワードXLについて乗算を行う
場合に値“1”で能動状態となり、倍精度被乗数上位ワ
ードXHについて乗算を行う場合に値“0”で非能動状
態となる信号である。
【0030】まず、倍精度被乗数下位ワードXLと倍精
度乗数下位ワードYLの積(以下XL×YL)を求め
る。倍精度乗数下位ワードYLは乗数エンコード手段1
2に入力され、その最上位ビットはMSB保持手段10
に保持される。データ選択手段11は値“0”を選択
し、乗数エンコード手段12へ出力する。乗数エンコー
ド手段12は倍精度乗数下位ワードYLとデータ選択手
段11の出力データをブースのアルゴリズムを用いて符
号化し、データ選択手段11の出力である値“0”は倍
精度乗数下位ワードYLの下位2ビットの符号化に用い
られる。被乗数判別信号C1は値“1”で能動状態であ
り入力された被乗数が倍精度被乗数下位ワードXLであ
ることを示す。乗算手段13は被乗数判別信号C1によ
り倍精度被乗数下位ワードXLの最上位ビットの1ビッ
ト上位に正数であることを示す符号として値“0”の符
号ビットを付加し、乗数エンコード手段12の出力との
積を求め33ビット幅で出力する。
度乗数下位ワードYLの積(以下XL×YL)を求め
る。倍精度乗数下位ワードYLは乗数エンコード手段1
2に入力され、その最上位ビットはMSB保持手段10
に保持される。データ選択手段11は値“0”を選択
し、乗数エンコード手段12へ出力する。乗数エンコー
ド手段12は倍精度乗数下位ワードYLとデータ選択手
段11の出力データをブースのアルゴリズムを用いて符
号化し、データ選択手段11の出力である値“0”は倍
精度乗数下位ワードYLの下位2ビットの符号化に用い
られる。被乗数判別信号C1は値“1”で能動状態であ
り入力された被乗数が倍精度被乗数下位ワードXLであ
ることを示す。乗算手段13は被乗数判別信号C1によ
り倍精度被乗数下位ワードXLの最上位ビットの1ビッ
ト上位に正数であることを示す符号として値“0”の符
号ビットを付加し、乗数エンコード手段12の出力との
積を求め33ビット幅で出力する。
【0031】このとき、桁合わせ制御信号C2が(C2
-1,C2-0)=(0,0)で、桁合わせ手段16は値
“0”を選択し出力する。加算手段14は乗算手段13
の出力である積XL×YLと桁合わせ手段16の出力で
ある値“0”との加算結果を出力する。加算結果保持手
段15は加算手段14の出力である積XL×YLを保持
する。
-1,C2-0)=(0,0)で、桁合わせ手段16は値
“0”を選択し出力する。加算手段14は乗算手段13
の出力である積XL×YLと桁合わせ手段16の出力で
ある値“0”との加算結果を出力する。加算結果保持手
段15は加算手段14の出力である積XL×YLを保持
する。
【0032】次に、倍精度被乗数上位ワードXHと倍精
度乗数下位ワードYLの積(以下XH×YL)を求め
る。倍精度乗数下位ワードYLは倍精度乗数エンコード
手段12に入力され、その最上位ビットはMSB保持手
段10に保持される。データ選択手段11は値“0”を
選択し、乗数エンコード手段12へ出力する。乗数エン
コード手段12は倍精度乗数下位ワードYLとデータ選
択手段11の出力データをブースのアルゴリズムを用い
て符号化し、データ選択手段11の出力である値“0”
は倍精度乗数下位ワードYLの下位2ビットの符号化に
用いられる。被乗数判別信号C1は値“0”で非能動状
態であり入力された被乗数が倍精度被乗数上位ワードX
Hであることを示す。乗算手段13は被乗数判別信号C
1により倍精度被乗数上位ワードXHの最上位ビットで
ある符号ビットを1ビット符号拡張し、乗数エンコード
手段12の出力との積を求め33ビット幅で出力する。
度乗数下位ワードYLの積(以下XH×YL)を求め
る。倍精度乗数下位ワードYLは倍精度乗数エンコード
手段12に入力され、その最上位ビットはMSB保持手
段10に保持される。データ選択手段11は値“0”を
選択し、乗数エンコード手段12へ出力する。乗数エン
コード手段12は倍精度乗数下位ワードYLとデータ選
択手段11の出力データをブースのアルゴリズムを用い
て符号化し、データ選択手段11の出力である値“0”
は倍精度乗数下位ワードYLの下位2ビットの符号化に
用いられる。被乗数判別信号C1は値“0”で非能動状
態であり入力された被乗数が倍精度被乗数上位ワードX
Hであることを示す。乗算手段13は被乗数判別信号C
1により倍精度被乗数上位ワードXHの最上位ビットで
ある符号ビットを1ビット符号拡張し、乗数エンコード
手段12の出力との積を求め33ビット幅で出力する。
【0033】このとき、桁合わせ制御信号C2が(C2
-1,C2-0)=(1,0)で、桁合わせ手段16は加算
結果保持手段15が保持している積XL×YLを選択
し、桁合わせのために16ビット右シフトして出力す
る。加算手段14は乗算手段13の出力である積XH×
YLと桁合わせ手段16の出力である積XL×YLとの
加算結果を出力する。加算結果保持手段15は加算手段
14の出力であるXL×YL+XH×YLを保持する。
-1,C2-0)=(1,0)で、桁合わせ手段16は加算
結果保持手段15が保持している積XL×YLを選択
し、桁合わせのために16ビット右シフトして出力す
る。加算手段14は乗算手段13の出力である積XH×
YLと桁合わせ手段16の出力である積XL×YLとの
加算結果を出力する。加算結果保持手段15は加算手段
14の出力であるXL×YL+XH×YLを保持する。
【0034】次に、倍精度被乗数下位ワードXLと倍精
度乗数上位ワードYHの積(以下XL×YH)を求め
る。倍精度乗数上位ワードYHは乗数エンコード手段1
2に入力される。データ選択手段11はMSB保持手段
10の出力を選択し、MSB保持手段10が保持してい
る倍精度乗数下位ワードYLの最上位ビットのデータを
乗数エンコード手段12へ出力する。乗数エンコード手
段12は倍精度乗数上位ワードYHとデータ選択手段1
1の出力データをブースのアルゴリズムを用いて符号化
し、データ選択手段11の出力である倍精度乗数下位ワ
ードYLの最上位ビットのデータは倍精度乗数上位ワー
ドYHの下位2ビットの符号化に用いられる。被乗数判
別信号C1は値“1”で能動状態であり入力された被乗
数が倍精度被乗数下位ワードXLであることを示す。乗
算手段13は被乗数判別信号C1により倍精度被乗数下
位ワードXLの最上位ビットの1ビット上位に正数であ
ることを示す符号として値“0”の符号ビットを付加
し、乗数エンコード手段12の出力との積を求め33ビ
ット幅で出力する。
度乗数上位ワードYHの積(以下XL×YH)を求め
る。倍精度乗数上位ワードYHは乗数エンコード手段1
2に入力される。データ選択手段11はMSB保持手段
10の出力を選択し、MSB保持手段10が保持してい
る倍精度乗数下位ワードYLの最上位ビットのデータを
乗数エンコード手段12へ出力する。乗数エンコード手
段12は倍精度乗数上位ワードYHとデータ選択手段1
1の出力データをブースのアルゴリズムを用いて符号化
し、データ選択手段11の出力である倍精度乗数下位ワ
ードYLの最上位ビットのデータは倍精度乗数上位ワー
ドYHの下位2ビットの符号化に用いられる。被乗数判
別信号C1は値“1”で能動状態であり入力された被乗
数が倍精度被乗数下位ワードXLであることを示す。乗
算手段13は被乗数判別信号C1により倍精度被乗数下
位ワードXLの最上位ビットの1ビット上位に正数であ
ることを示す符号として値“0”の符号ビットを付加
し、乗数エンコード手段12の出力との積を求め33ビ
ット幅で出力する。
【0035】このとき、桁合わせ制御信号C2が(C2
-1,C2-0)=(0,1)で、桁合わせ手段16は加算
結果保持手段15が保持しているXL×YL+XH×Y
Lを選択し出力する。加算手段14は乗算手段13の出
力である積XL×YHと桁合わせ手段16の出力である
XL×YL+XH×YLとの加算結果を出力する。加算
結果保持手段15は加算手段14の出力であるXL×Y
L+XH×YL+XL×YHを保持する。
-1,C2-0)=(0,1)で、桁合わせ手段16は加算
結果保持手段15が保持しているXL×YL+XH×Y
Lを選択し出力する。加算手段14は乗算手段13の出
力である積XL×YHと桁合わせ手段16の出力である
XL×YL+XH×YLとの加算結果を出力する。加算
結果保持手段15は加算手段14の出力であるXL×Y
L+XH×YL+XL×YHを保持する。
【0036】最後に、倍精度被乗数上位ワードXHと倍
精度乗数上位ワードYHの積(以下XH×YH)を求め
る。倍精度乗数上位ワードYHは乗数エンコード手段1
2に入力される。データ選択手段11はMSB保持手段
10の出力を選択し、MSB保持手段10が保持してい
る倍精度乗数下位ワードYLの最上位ビットのデータを
乗数エンコード手段12へ出力する。乗数エンコード手
段12は倍精度乗数上位ワードYHとデータ選択手段1
1の出力データをブースのアルゴリズムを用いて符号化
し、データ選択手段11の出力である乗数下位ワードY
Lの最上位ビットのデータは乗数上位ワードYHの下位
2ビットの符号化に用いられる。被乗数判別信号C1は
値“0”で非能動状態であり入力された被乗数が倍精度
被乗数上位ワードXHであることを示す。乗算手段13
は被乗数判別信号C1により倍精度被乗数上位ワードX
Hの最上位ビットである符号ビットを1ビット符号拡張
し、乗数エンコード手段12の出力との積を求め33ビ
ット幅で出力する。
精度乗数上位ワードYHの積(以下XH×YH)を求め
る。倍精度乗数上位ワードYHは乗数エンコード手段1
2に入力される。データ選択手段11はMSB保持手段
10の出力を選択し、MSB保持手段10が保持してい
る倍精度乗数下位ワードYLの最上位ビットのデータを
乗数エンコード手段12へ出力する。乗数エンコード手
段12は倍精度乗数上位ワードYHとデータ選択手段1
1の出力データをブースのアルゴリズムを用いて符号化
し、データ選択手段11の出力である乗数下位ワードY
Lの最上位ビットのデータは乗数上位ワードYHの下位
2ビットの符号化に用いられる。被乗数判別信号C1は
値“0”で非能動状態であり入力された被乗数が倍精度
被乗数上位ワードXHであることを示す。乗算手段13
は被乗数判別信号C1により倍精度被乗数上位ワードX
Hの最上位ビットである符号ビットを1ビット符号拡張
し、乗数エンコード手段12の出力との積を求め33ビ
ット幅で出力する。
【0037】このとき、桁合わせ制御信号C2が(C2
-1,C2-0)=(1,0)で、桁合わせ手段16は加算
結果保持手段15が保持しているXL×YL+XH×Y
L+XL×YHを選択し、桁合わせのために16ビット
右シフトして出力する。加算手段14は乗算手段13の
出力である積XH×YHと桁合わせ手段16の出力であ
るXL×YL+XH×YL+XL×YHの加算を行い加
算結果を出力する。この加算手段14の出力であるXL
×YL+XH×YL+XL×YH+XH×YHが倍精度
乗算の求める積となる。
-1,C2-0)=(1,0)で、桁合わせ手段16は加算
結果保持手段15が保持しているXL×YL+XH×Y
L+XL×YHを選択し、桁合わせのために16ビット
右シフトして出力する。加算手段14は乗算手段13の
出力である積XH×YHと桁合わせ手段16の出力であ
るXL×YL+XH×YL+XL×YHの加算を行い加
算結果を出力する。この加算手段14の出力であるXL
×YL+XH×YL+XL×YH+XH×YHが倍精度
乗算の求める積となる。
【0038】なお、上記実施の形態において、倍精度被
乗数上位ワードXH/下位ワードXLと倍精度乗数上位
ワードYH/下位ワードYLとの積をそれぞれ求め桁合
わせ加算を行う際に、倍精度乗数上位ワードYHの積を
求める前に少なくとも1つの倍精度乗数下位ワードYL
の積を求めMSB保持手段10に倍精度乗数下位ワード
YLの最上位ビットを保持すれば良く、本実施の形態で
は積XH×YLと積XL×YHを求める乗算と桁合わせ
加算を行う順序は入れ替わっても良い。倍精度データと
単精度データの乗算は単精度データを倍精度データの下
位ワードのデータが無いものと考え、その倍精度下位ワ
ードの積を求める過程を省けばよく、倍精度データと倍
精度データの乗算と同様にできる。
乗数上位ワードXH/下位ワードXLと倍精度乗数上位
ワードYH/下位ワードYLとの積をそれぞれ求め桁合
わせ加算を行う際に、倍精度乗数上位ワードYHの積を
求める前に少なくとも1つの倍精度乗数下位ワードYL
の積を求めMSB保持手段10に倍精度乗数下位ワード
YLの最上位ビットを保持すれば良く、本実施の形態で
は積XH×YLと積XL×YHを求める乗算と桁合わせ
加算を行う順序は入れ替わっても良い。倍精度データと
単精度データの乗算は単精度データを倍精度データの下
位ワードのデータが無いものと考え、その倍精度下位ワ
ードの積を求める過程を省けばよく、倍精度データと倍
精度データの乗算と同様にできる。
【0039】なお、上記説明では、前述したように、乗
算結果保持手段17および選択手段18,19は存在し
ないものとして説明したが、乗算手段13と加算手段1
4との間に乗算結果を保持する乗算結果保持手段17を
配置し、乗算処理と加算処理を並列に動作できるように
しても良い。なお、図1に示す選択手段18,19は、
それぞれ乗算器と倍精度加算器を単体で動作させる際
に、バスからデータを供給するために使用するものであ
り、本発明には直接関係はない。
算結果保持手段17および選択手段18,19は存在し
ないものとして説明したが、乗算手段13と加算手段1
4との間に乗算結果を保持する乗算結果保持手段17を
配置し、乗算処理と加算処理を並列に動作できるように
しても良い。なお、図1に示す選択手段18,19は、
それぞれ乗算器と倍精度加算器を単体で動作させる際
に、バスからデータを供給するために使用するものであ
り、本発明には直接関係はない。
【0040】以下では、本実施の形態における構成要素
の内部構成と動作の詳細について、さらに図2〜図10
を参照しながら説明する。図2は倍精度乗算実行時の倍
精度乗数のデータ分割を説明するための模式図である。
図2中の波線はそのビットが負の重みを持つビットであ
ることを示す。上段に示してあるデータ列が倍精度乗数
を示している。ここでY31〜Y0 は各桁位置のデータを
示しており、最上位ビットであるY31が符号ビットであ
り、負の重みを持つ。「負の重みを持つ」という意味
は、そのビットが1ならば値“−1”であることを示
し、そのビットが0ならば値“0”であることを示すと
いうことである。中段に示してあるのは、倍精度乗数を
ブースのアルゴリズムに基づいて変形した場合の模式図
である。ここで、箱で囲まれた3つのデータが1つのブ
ースのエンコード値を示し、それぞれ偶数桁位置に−2
〜+2範囲の値をとる。ところが、本発明では単精度乗
算器を用いて高精度な倍精度乗算を効率良く行うことを
目的としており、倍精度乗数を一度にブースのアルゴリ
ズムで符号化することができない。そこで、倍精度乗数
上位ワードと下位ワードの境にあるデータに着目する
と、倍精度乗数下位ワードの最上位ビットにあたるY15
を倍精度乗数上位ワードの符号化に用いることができれ
ば、倍精度乗数の符号化を上手く実行することができる
ことが分かる。下段が本発明での倍精度乗数のデータ供
給を示している。先に倍精度乗数下位ワードの積を求め
る演算を行い、その際倍精度乗数下位ワードの最上位ビ
ットにあたるY15を保持しておく。次に倍精度乗数上位
ワードの積を求める際に、保持していた倍精度乗数下位
ワードの最上位ビットY15を倍精度乗数上位ワードの符
号化に用いるのである。ここで、図2中YHとYLはそ
れぞれ倍精度乗数上位ワードと下位ワードを示す。
の内部構成と動作の詳細について、さらに図2〜図10
を参照しながら説明する。図2は倍精度乗算実行時の倍
精度乗数のデータ分割を説明するための模式図である。
図2中の波線はそのビットが負の重みを持つビットであ
ることを示す。上段に示してあるデータ列が倍精度乗数
を示している。ここでY31〜Y0 は各桁位置のデータを
示しており、最上位ビットであるY31が符号ビットであ
り、負の重みを持つ。「負の重みを持つ」という意味
は、そのビットが1ならば値“−1”であることを示
し、そのビットが0ならば値“0”であることを示すと
いうことである。中段に示してあるのは、倍精度乗数を
ブースのアルゴリズムに基づいて変形した場合の模式図
である。ここで、箱で囲まれた3つのデータが1つのブ
ースのエンコード値を示し、それぞれ偶数桁位置に−2
〜+2範囲の値をとる。ところが、本発明では単精度乗
算器を用いて高精度な倍精度乗算を効率良く行うことを
目的としており、倍精度乗数を一度にブースのアルゴリ
ズムで符号化することができない。そこで、倍精度乗数
上位ワードと下位ワードの境にあるデータに着目する
と、倍精度乗数下位ワードの最上位ビットにあたるY15
を倍精度乗数上位ワードの符号化に用いることができれ
ば、倍精度乗数の符号化を上手く実行することができる
ことが分かる。下段が本発明での倍精度乗数のデータ供
給を示している。先に倍精度乗数下位ワードの積を求め
る演算を行い、その際倍精度乗数下位ワードの最上位ビ
ットにあたるY15を保持しておく。次に倍精度乗数上位
ワードの積を求める際に、保持していた倍精度乗数下位
ワードの最上位ビットY15を倍精度乗数上位ワードの符
号化に用いるのである。ここで、図2中YHとYLはそ
れぞれ倍精度乗数上位ワードと下位ワードを示す。
【0041】図3は倍精度被乗数上位ワードXHと倍精
度乗数上位ワードYH/下位ワードYLとの乗算実行時
のデータ出力形式を説明するための図である。図3中の
波線はそのビットが負の重みを持つビットであることを
示し、記号Sは符号ビットを示すが、マスクされている
Sがある場合、マスクされた記号Sは符号拡張された符
号ビットを示し、その1ビット下位の記号Sは符号ビッ
トではなく符号ビットと同じ値をとるデータビットであ
ることを示すようになる。また、記号0はデータとして
値“0”が付加されていることを示しており、一番上に
示してある21,20 ,2-1,…,2-31 は各桁位置で
の位取りを示している。
度乗数上位ワードYH/下位ワードYLとの乗算実行時
のデータ出力形式を説明するための図である。図3中の
波線はそのビットが負の重みを持つビットであることを
示し、記号Sは符号ビットを示すが、マスクされている
Sがある場合、マスクされた記号Sは符号拡張された符
号ビットを示し、その1ビット下位の記号Sは符号ビッ
トではなく符号ビットと同じ値をとるデータビットであ
ることを示すようになる。また、記号0はデータとして
値“0”が付加されていることを示しており、一番上に
示してある21,20 ,2-1,…,2-31 は各桁位置で
の位取りを示している。
【0042】ここで、通常の2つの単精度データの乗算
をすると、求める乗算結果は20 の桁位置に符号ビット
を持ち、2-1から2-30 の桁位置にデータビットを持つ
31ビット幅のデータになる。そこで、2-31 の桁位置
に値“0”を付加し32ビット幅の倍精度データとして
出力する。本発明では被乗数上位ワードYHを1ビット
符号拡張してあり、求める乗算結果は20 の桁位置の符
号ビットを21 の桁位置に1ビット符号拡張したものと
して得られる。この結果を32ビットのビット幅で出力
するならば、先に説明した単精度データの乗算を実行し
たときのデータ出力と整合性をとるために、図3中に
「32ビット出力」と示している範囲で出力する方が良
い。このとき、20 の桁位置が符号ビットになる。本発
明では、小数点位置より上位に少なくとも2つ以上の桁
をもつことにより倍精度のビット幅より少なくとも1ビ
ット多いビット幅でデータを出力する。ここで、2ビッ
ト、3ビット、あるいはそれ以上多いビット幅で出力す
ることは、1ビット多いビット幅で求めた積を符号拡張
することに他ならず回路規模が大きくなるだけなので、
本実施の形態ではこれ以降、求める積を小数点位置より
上位に少なくとも2つ以上の桁をもつことにより倍精度
のビット幅より1ビット多い33ビット幅で求めるもの
として説明する。また、図2で示した様に倍精度乗数を
データ分割することにより、倍精度乗数下位ワードYL
の最上位ビットY15を負の重みを持つデータとして扱え
るので、倍精度被乗数上位ワードXHと倍精度乗数下位
ワードYLとの積を求める際に、倍精度乗数下位ワード
YLをそのままブースのアルゴリズムで符号化すること
ができる。一方、倍精度被乗数上位ワードXHと倍精度
乗数上位ワードYHとの積を求める際は、倍精度乗数上
位ワードYHの符号化に倍精度乗数下位ワードYLの最
上位ビットY15のデータを用いる。以上のことから、図
3中では倍精度乗数下位ワードYLは単精度の符号付き
2進固定小数点数と同様の表現にしてあり、倍精度乗数
上位ワードYHの乗算の場合は倍精度乗数下位ワードY
Lの最上位ビットY15のデータを図示しなければならな
いが、ここではデータ出力形式を説明するのが目的なの
で簡単のために省いている。
をすると、求める乗算結果は20 の桁位置に符号ビット
を持ち、2-1から2-30 の桁位置にデータビットを持つ
31ビット幅のデータになる。そこで、2-31 の桁位置
に値“0”を付加し32ビット幅の倍精度データとして
出力する。本発明では被乗数上位ワードYHを1ビット
符号拡張してあり、求める乗算結果は20 の桁位置の符
号ビットを21 の桁位置に1ビット符号拡張したものと
して得られる。この結果を32ビットのビット幅で出力
するならば、先に説明した単精度データの乗算を実行し
たときのデータ出力と整合性をとるために、図3中に
「32ビット出力」と示している範囲で出力する方が良
い。このとき、20 の桁位置が符号ビットになる。本発
明では、小数点位置より上位に少なくとも2つ以上の桁
をもつことにより倍精度のビット幅より少なくとも1ビ
ット多いビット幅でデータを出力する。ここで、2ビッ
ト、3ビット、あるいはそれ以上多いビット幅で出力す
ることは、1ビット多いビット幅で求めた積を符号拡張
することに他ならず回路規模が大きくなるだけなので、
本実施の形態ではこれ以降、求める積を小数点位置より
上位に少なくとも2つ以上の桁をもつことにより倍精度
のビット幅より1ビット多い33ビット幅で求めるもの
として説明する。また、図2で示した様に倍精度乗数を
データ分割することにより、倍精度乗数下位ワードYL
の最上位ビットY15を負の重みを持つデータとして扱え
るので、倍精度被乗数上位ワードXHと倍精度乗数下位
ワードYLとの積を求める際に、倍精度乗数下位ワード
YLをそのままブースのアルゴリズムで符号化すること
ができる。一方、倍精度被乗数上位ワードXHと倍精度
乗数上位ワードYHとの積を求める際は、倍精度乗数上
位ワードYHの符号化に倍精度乗数下位ワードYLの最
上位ビットY15のデータを用いる。以上のことから、図
3中では倍精度乗数下位ワードYLは単精度の符号付き
2進固定小数点数と同様の表現にしてあり、倍精度乗数
上位ワードYHの乗算の場合は倍精度乗数下位ワードY
Lの最上位ビットY15のデータを図示しなければならな
いが、ここではデータ出力形式を説明するのが目的なの
で簡単のために省いている。
【0043】図4は倍精度被乗数下位ワードXLと倍精
度乗数上位ワードYH/下位ワードYLとの乗算実行時
のデータ出力形式を説明するための模式図である。図4
中の波線はそのビットが負の重みを持つビットであるこ
とを示し、記号Sは符号ビットを示す。また、記号0は
データとして値“0”が付加されていることを示してお
り、一番上に示してある21 ,20 ,2-1,…,2-31
は各桁位置での位取りを示している。
度乗数上位ワードYH/下位ワードYLとの乗算実行時
のデータ出力形式を説明するための模式図である。図4
中の波線はそのビットが負の重みを持つビットであるこ
とを示し、記号Sは符号ビットを示す。また、記号0は
データとして値“0”が付加されていることを示してお
り、一番上に示してある21 ,20 ,2-1,…,2-31
は各桁位置での位取りを示している。
【0044】本発明では、倍精度被乗数下位ワードの最
上位ビットがデータビットになるので1ビット上位に正
数を示す符号として値“0”の符号ビットを付加してお
り、求める乗算結果は21 の桁位置が符号ビットであ
り、20 から2-30 の桁位置にデータビットを持つ32
ビット幅のデータとして得られる。この結果を32ビッ
トのビット幅で出力するならば、図4中に「32ビット
出力」と示している範囲で出力しなければならない。こ
の出力範囲を図3中に示してある「32ビット出力」の
範囲と比較すると出力する桁位置が1桁ずれていること
が分かる。つまり、「32ビット出力」する場合は出力
範囲を切り替える手段が必要になることが分かる。一方
本発明では、小数点位置より上位に少なくとも2つ以上
の桁をもつことにより倍精度のビット幅より1ビット多
い33ビット幅でデータを出力するので、図3中に示し
てある「33ビット出力」と全く同じ桁位置の関係でデ
ータを出力することができる。ここで、図3の説明の中
でも述べたように2-31 の桁位置には乗算によって得ら
れるデータがないので、値“0”を付加して出力する。
上位ビットがデータビットになるので1ビット上位に正
数を示す符号として値“0”の符号ビットを付加してお
り、求める乗算結果は21 の桁位置が符号ビットであ
り、20 から2-30 の桁位置にデータビットを持つ32
ビット幅のデータとして得られる。この結果を32ビッ
トのビット幅で出力するならば、図4中に「32ビット
出力」と示している範囲で出力しなければならない。こ
の出力範囲を図3中に示してある「32ビット出力」の
範囲と比較すると出力する桁位置が1桁ずれていること
が分かる。つまり、「32ビット出力」する場合は出力
範囲を切り替える手段が必要になることが分かる。一方
本発明では、小数点位置より上位に少なくとも2つ以上
の桁をもつことにより倍精度のビット幅より1ビット多
い33ビット幅でデータを出力するので、図3中に示し
てある「33ビット出力」と全く同じ桁位置の関係でデ
ータを出力することができる。ここで、図3の説明の中
でも述べたように2-31 の桁位置には乗算によって得ら
れるデータがないので、値“0”を付加して出力する。
【0045】また、図3と同様に倍精度乗数下位ワード
YLは単精度の符号付き2進固定小数点数と同様の表現
にしてあり、倍精度乗数上位ワードYHの乗算の場合は
倍精度乗数下位ワードYLの最上位ビットY15のデータ
を図示しなければならないが、ここではデータ出力形式
を説明するのが目的なので簡単のために省いている。図
5は32ビット幅で乗算結果を出力する従来の桁合わせ
ビットシフトを説明するための模式図である。図3と図
4で示した様に32ビット幅でデータを出力すると、倍
精度被乗数上位ワードXHの積と倍精度被乗数下位ワー
ドXLの積の桁位置の関係が1ビットずれるので、図5
に示してあるように倍精度乗算結果を求める際の桁合わ
せのためのシフト数がそれぞれ異なってしまう。
YLは単精度の符号付き2進固定小数点数と同様の表現
にしてあり、倍精度乗数上位ワードYHの乗算の場合は
倍精度乗数下位ワードYLの最上位ビットY15のデータ
を図示しなければならないが、ここではデータ出力形式
を説明するのが目的なので簡単のために省いている。図
5は32ビット幅で乗算結果を出力する従来の桁合わせ
ビットシフトを説明するための模式図である。図3と図
4で示した様に32ビット幅でデータを出力すると、倍
精度被乗数上位ワードXHの積と倍精度被乗数下位ワー
ドXLの積の桁位置の関係が1ビットずれるので、図5
に示してあるように倍精度乗算結果を求める際の桁合わ
せのためのシフト数がそれぞれ異なってしまう。
【0046】図6は33ビット幅で乗算結果を出力する
本発明の桁合わせビットシフトを説明するための図であ
る。33ビット幅でデータを出力すると、倍精度被乗数
上位ワードXHの積と倍精度被乗数下位ワードXLの積
の桁位置の関係が相対的に同じになるので、図6に示し
てあるように倍精度乗算結果を求める際の桁合わせのた
めのシフト数が相対的に単精度のビット幅に限定される
ことが分かる。したがって、桁合わせ手段16の回路規
模を、32ビット幅でデータを出力する従来例と比べて
削減することができる。
本発明の桁合わせビットシフトを説明するための図であ
る。33ビット幅でデータを出力すると、倍精度被乗数
上位ワードXHの積と倍精度被乗数下位ワードXLの積
の桁位置の関係が相対的に同じになるので、図6に示し
てあるように倍精度乗算結果を求める際の桁合わせのた
めのシフト数が相対的に単精度のビット幅に限定される
ことが分かる。したがって、桁合わせ手段16の回路規
模を、32ビット幅でデータを出力する従来例と比べて
削減することができる。
【0047】図7は乗数エンコード手段12の回路構成
を示す回路図である。図7中の200は1つのエンコー
ド値を生成するブースエンコード手段を示す。乗数は2
次のブースのアルゴリズムによりエンコードされる。エ
ンコード結果BEi は−2,−1,0,1,2の5つの値
をとり、その値は1Ei ,2Ei およびSEi の3ビットで表
現され、その値の絶対値を2Ei ,1Ei の2ビットで示
し、負のときに1が立つことによりその値の正負をSEi
で示す。ただし、NSEiは部分積を生成する際に使用する
ために出力するSEi の反転信号である。ここで、i は
0,2,4,6,8,10,12,14であり、Y-1は
データ選択手段11の出力が入力される。
を示す回路図である。図7中の200は1つのエンコー
ド値を生成するブースエンコード手段を示す。乗数は2
次のブースのアルゴリズムによりエンコードされる。エ
ンコード結果BEi は−2,−1,0,1,2の5つの値
をとり、その値は1Ei ,2Ei およびSEi の3ビットで表
現され、その値の絶対値を2Ei ,1Ei の2ビットで示
し、負のときに1が立つことによりその値の正負をSEi
で示す。ただし、NSEiは部分積を生成する際に使用する
ために出力するSEi の反転信号である。ここで、i は
0,2,4,6,8,10,12,14であり、Y-1は
データ選択手段11の出力が入力される。
【0048】図8は乗算手段13の構成を示すブロック
図である。図8中の符号300は被乗数拡張手段を示
し、符号301は部分積生成手段を示し、符号302は
部分積加算手段を示している。被乗数拡張手段300
は、被乗数判別信号C1が値“0”をとるときは被乗数
の最上位ビットX[15]を出力し、被乗数判別信号C1が
値“1”をとるときは値“0”を出力する。部分積生成
手段301は乗数エンコード手段12の出力と被乗数拡
張手段300の出力と被乗数X とからそれぞれ部分積を
生成する。部分積加算手段302はそれぞれ部分積生成
手段301が生成した部分積の加算を行い乗算結果を求
め、最下位ビットとなるビット0の桁位置には乗算によ
り得られるデータがないので値“0”を付加して出力す
る。
図である。図8中の符号300は被乗数拡張手段を示
し、符号301は部分積生成手段を示し、符号302は
部分積加算手段を示している。被乗数拡張手段300
は、被乗数判別信号C1が値“0”をとるときは被乗数
の最上位ビットX[15]を出力し、被乗数判別信号C1が
値“1”をとるときは値“0”を出力する。部分積生成
手段301は乗数エンコード手段12の出力と被乗数拡
張手段300の出力と被乗数X とからそれぞれ部分積を
生成する。部分積加算手段302はそれぞれ部分積生成
手段301が生成した部分積の加算を行い乗算結果を求
め、最下位ビットとなるビット0の桁位置には乗算によ
り得られるデータがないので値“0”を付加して出力す
る。
【0049】図9は乗算手段13の被乗数拡張手段30
0と部分積生成手段301の回路構成を示す回路図であ
る。図9中の符号303は生成される部分積の符号ビッ
トのビット反転を生成する部分積符号ビット反転生成回
路を示し、符号304は1ビット当りの部分積生成回路
を示し、符号305は補正項PPHを生成する部分積補
正項生成回路を示している。被乗数の最上位ビットの1
ビット上位に、被乗数判別信号C1が値“0”のときは
被乗数の符号ビットをそのまま出力し、被乗数判別信号
C1が値“1”のときは値“0”を出力する。エンコー
ド結果BEi が正のときは符号拡張した被乗数をそのまま
選択し、負のときはビット反転を選択する。複合ゲート
はエンコード結果BEi が1か−1のときは各々のビット
の選択値を出力し、エンコード結果BEi が2か−2のと
きは1ビット下位の選択値を出力し、エンコード結果BE
i が0のときは0を出力する。複合ゲートの出力が生成
される部分積のビットnの出力PPOn になる。2の補
数化のための補正項PPHは制御信号NSEiと2Ei と1Ei
の否定の論理積をとることにより生成される。これはエ
ンコード結果BEi が−1か−2のときに成り立ち、生成
する部分積の最下位ビットの桁位置に出力される。
0と部分積生成手段301の回路構成を示す回路図であ
る。図9中の符号303は生成される部分積の符号ビッ
トのビット反転を生成する部分積符号ビット反転生成回
路を示し、符号304は1ビット当りの部分積生成回路
を示し、符号305は補正項PPHを生成する部分積補
正項生成回路を示している。被乗数の最上位ビットの1
ビット上位に、被乗数判別信号C1が値“0”のときは
被乗数の符号ビットをそのまま出力し、被乗数判別信号
C1が値“1”のときは値“0”を出力する。エンコー
ド結果BEi が正のときは符号拡張した被乗数をそのまま
選択し、負のときはビット反転を選択する。複合ゲート
はエンコード結果BEi が1か−1のときは各々のビット
の選択値を出力し、エンコード結果BEi が2か−2のと
きは1ビット下位の選択値を出力し、エンコード結果BE
i が0のときは0を出力する。複合ゲートの出力が生成
される部分積のビットnの出力PPOn になる。2の補
数化のための補正項PPHは制御信号NSEiと2Ei と1Ei
の否定の論理積をとることにより生成される。これはエ
ンコード結果BEi が−1か−2のときに成り立ち、生成
する部分積の最下位ビットの桁位置に出力される。
【0050】図10は乗算処理を説明するための模式図
である。図10中において記号D,E,F,G,H,
I,J,Kは生成される8個の部分積をそれぞれ示して
おり、記号Zは被乗数Xと乗数Yの積である。図10中
の一番上に示してある21 ,2 0 ,2-1,…,2-31 は
各桁位置での位取りを示している。また、データを示す
記号の上の傍線はビット反転を示している。ここで、図
10中に示されている値“1”は符号拡張の替わりに加
算されるデータである。
である。図10中において記号D,E,F,G,H,
I,J,Kは生成される8個の部分積をそれぞれ示して
おり、記号Zは被乗数Xと乗数Yの積である。図10中
の一番上に示してある21 ,2 0 ,2-1,…,2-31 は
各桁位置での位取りを示している。また、データを示す
記号の上の傍線はビット反転を示している。ここで、図
10中に示されている値“1”は符号拡張の替わりに加
算されるデータである。
【0051】先の傍線で示される各部分積の符号ビット
のビット反転と図10中に示されている値“1”を加え
ることで、部分積を足しあわせるときに符号ビットの桁
位置を合わせるために行う必要がある符号拡張と同等の
処理を行っている。これは通常良く用いられる方法であ
り、ここでは詳細は説明しない。乗算手段13では、図
10に示されているように部分積生成手段301によっ
て部分積が生成され、それらは部分積加算手段302に
よって加算される。なお、小数点位置の関係で図10中
の各部分積構成要素に付けてある番号と出力データZの
構成要素に付けてある番号の関係が1ビットずれてい
る。さらに、それぞれの部分積は2-31 の桁位置にはデ
ータを持たないのでZ0には常に値“0”が出力される。
のビット反転と図10中に示されている値“1”を加え
ることで、部分積を足しあわせるときに符号ビットの桁
位置を合わせるために行う必要がある符号拡張と同等の
処理を行っている。これは通常良く用いられる方法であ
り、ここでは詳細は説明しない。乗算手段13では、図
10に示されているように部分積生成手段301によっ
て部分積が生成され、それらは部分積加算手段302に
よって加算される。なお、小数点位置の関係で図10中
の各部分積構成要素に付けてある番号と出力データZの
構成要素に付けてある番号の関係が1ビットずれてい
る。さらに、それぞれの部分積は2-31 の桁位置にはデ
ータを持たないのでZ0には常に値“0”が出力される。
【0052】ここで、乗算手段13と加算手段14の間
に乗算結果を保持する乗算結果保持手段17を配置した
本実施の形態の演算装置で、倍精度データと倍精度デー
タの乗算と、倍精度データと単精度データの乗算を実行
する際の命令を表1に示す。
に乗算結果を保持する乗算結果保持手段17を配置した
本実施の形態の演算装置で、倍精度データと倍精度デー
タの乗算と、倍精度データと単精度データの乗算を実行
する際の命令を表1に示す。
【0053】
【表1】表1に示すAからDの命令を順次実行すること
により4つの積XL×YL、XH×YL、XL×YH、
XH×YHを順次求め、これらを桁合わせ加算すること
により倍精度データと倍精度データの乗算は実行され
る。また、表1に示すE,Fの命令を順次実行すること
により2つの積XL×YH、XH×YHを順次求め、桁
合わせ加算することにより倍精度データと単精度データ
の乗算は実行される。表1はMSB保持手段10とデー
タ選択手段11と乗数エンコード手段12による乗数エ
ンコード処理と、乗算手段13による乗算処理と、加算
手段14と桁合わせ手段16による加算処理におけるデ
ータの流れと処理内容を示している。ここで、表1中の
R0はMSB保持手段10を示し、R1は乗算結果保持
手段17を示し、R2は加算結果保持手段15を示して
いる。
により4つの積XL×YL、XH×YL、XL×YH、
XH×YHを順次求め、これらを桁合わせ加算すること
により倍精度データと倍精度データの乗算は実行され
る。また、表1に示すE,Fの命令を順次実行すること
により2つの積XL×YH、XH×YHを順次求め、桁
合わせ加算することにより倍精度データと単精度データ
の乗算は実行される。表1はMSB保持手段10とデー
タ選択手段11と乗数エンコード手段12による乗数エ
ンコード処理と、乗算手段13による乗算処理と、加算
手段14と桁合わせ手段16による加算処理におけるデ
ータの流れと処理内容を示している。ここで、表1中の
R0はMSB保持手段10を示し、R1は乗算結果保持
手段17を示し、R2は加算結果保持手段15を示して
いる。
【0054】表1において、それぞれの命令は2サイク
ル命令である。エンコード処理の欄では、MSB保持手
段10へのデータ格納とデータ選択手段11の選択する
データを示し、括弧内の記述(命令C,DにおけるYL
[15])はその命令実行時にMSB保持手段10に保持さ
れているデータを示している。乗算処理の欄では、乗算
手段13で求める乗算結果を示している。加算処理の欄
では、桁合わせ手段16で選択されるデータと桁合わせ
のための16ビット右シフト処理の有無と、加算手段1
4で求める加算結果を示している。
ル命令である。エンコード処理の欄では、MSB保持手
段10へのデータ格納とデータ選択手段11の選択する
データを示し、括弧内の記述(命令C,DにおけるYL
[15])はその命令実行時にMSB保持手段10に保持さ
れているデータを示している。乗算処理の欄では、乗算
手段13で求める乗算結果を示している。加算処理の欄
では、桁合わせ手段16で選択されるデータと桁合わせ
のための16ビット右シフト処理の有無と、加算手段1
4で求める加算結果を示している。
【0055】以上のように第1の実施の形態によれば、
乗算手段13の乗算結果を小数点位置より上位に少なく
とも2つ以上の桁をもつことにより倍精度のビット幅よ
り少なくとも1ビット多いビット幅で出力する、例えば
33ビット幅で出力することにより、桁合わせのための
シフト数が相対的に単精度のビット幅に限定されるとい
うように、従来例に対し、桁合わせ手段16の回路規模
が小さくなり、被乗数下位ワードをソースとする乗算を
実行したときに乗算結果を32ビット精度で出力するた
めに必要な1ビット右シフト手段が不要になる。
乗算手段13の乗算結果を小数点位置より上位に少なく
とも2つ以上の桁をもつことにより倍精度のビット幅よ
り少なくとも1ビット多いビット幅で出力する、例えば
33ビット幅で出力することにより、桁合わせのための
シフト数が相対的に単精度のビット幅に限定されるとい
うように、従来例に対し、桁合わせ手段16の回路規模
が小さくなり、被乗数下位ワードをソースとする乗算を
実行したときに乗算結果を32ビット精度で出力するた
めに必要な1ビット右シフト手段が不要になる。
【0056】また、乗算結果保持手段17を設け、乗算
手段13と加算手段14とを並列に動作させることによ
り、演算時間の短縮を図ることができる。 〔第2の実施の形態〕以下本発明の第2の実施の形態に
ついて説明する。第2の実施の形態の構成は、第1の実
施の形態において、乗数エンコード手段12が、乗数制
御信号C3が値“1”をとるときに入力される乗数の最
下位ビットを強制的に値“0”に設定する機能を有する
ように構成され、乗算手段13が、被乗数制御信号C4
が値“1”をとるときに入力される被乗数の最下位ビッ
トを強制的に値“0”に設定する機能を有するように構
成される。
手段13と加算手段14とを並列に動作させることによ
り、演算時間の短縮を図ることができる。 〔第2の実施の形態〕以下本発明の第2の実施の形態に
ついて説明する。第2の実施の形態の構成は、第1の実
施の形態において、乗数エンコード手段12が、乗数制
御信号C3が値“1”をとるときに入力される乗数の最
下位ビットを強制的に値“0”に設定する機能を有する
ように構成され、乗算手段13が、被乗数制御信号C4
が値“1”をとるときに入力される被乗数の最下位ビッ
トを強制的に値“0”に設定する機能を有するように構
成される。
【0057】図11は第2の実施の形態における乗数エ
ンコード手段12の回路構成を示す図である。図11中
の符号201は乗数制御信号C3が値“1”をとると
き、乗数の最下位ビットを強制的に値“0”に設定する
乗数制御手段である。この乗数制御手段201は、乗数
の最下位ビットであるY0と乗数制御信号C3の論理反
転との論理積をとることにより、乗数制御信号C3が値
“1”をとるとき、乗数の最下位ビットY0を強制的に
値“0”に設定している。
ンコード手段12の回路構成を示す図である。図11中
の符号201は乗数制御信号C3が値“1”をとると
き、乗数の最下位ビットを強制的に値“0”に設定する
乗数制御手段である。この乗数制御手段201は、乗数
の最下位ビットであるY0と乗数制御信号C3の論理反
転との論理積をとることにより、乗数制御信号C3が値
“1”をとるとき、乗数の最下位ビットY0を強制的に
値“0”に設定している。
【0058】図12は第2の実施の形態における乗算手
段13の構成を示すブロック図である。図12中の符号
306は被乗数制御信号C4が値“1”をとるときに、
被乗数の最下位ビットを強制的に値“0”に設定する被
乗数制御手段である。この被乗数制御手段306は、被
乗数の最下位ビットであるX0 と被乗数制御信号C4の
論理反転との論理積をとることにより、被乗数制御信号
C4が値“1”をとるとき被乗数の最下位ビットX0 を
強制的に値“0”に設定している。
段13の構成を示すブロック図である。図12中の符号
306は被乗数制御信号C4が値“1”をとるときに、
被乗数の最下位ビットを強制的に値“0”に設定する被
乗数制御手段である。この被乗数制御手段306は、被
乗数の最下位ビットであるX0 と被乗数制御信号C4の
論理反転との論理積をとることにより、被乗数制御信号
C4が値“1”をとるとき被乗数の最下位ビットX0 を
強制的に値“0”に設定している。
【0059】以上のように構成された演算装置につい
て、その動作を説明する。単精度乗算器を用いて倍精度
乗算を行う方法として以下の方法がよく用いられる。そ
れぞれ乗数下位ワードと被乗数下位ワードを単精度の符
号付き2進固定小数点数として扱うために、1ビット右
シフトして最上位ビットに正数を示す符号として値
“0”の符号ビットを付加し、最下位ビットを切り捨て
るのである。このため倍精度データと倍精度データの乗
算結果は31ビット×31ビット精度になり、倍精度デ
ータと単精度データの乗算結果は31ビット×16ビッ
ト精度になる。
て、その動作を説明する。単精度乗算器を用いて倍精度
乗算を行う方法として以下の方法がよく用いられる。そ
れぞれ乗数下位ワードと被乗数下位ワードを単精度の符
号付き2進固定小数点数として扱うために、1ビット右
シフトして最上位ビットに正数を示す符号として値
“0”の符号ビットを付加し、最下位ビットを切り捨て
るのである。このため倍精度データと倍精度データの乗
算結果は31ビット×31ビット精度になり、倍精度デ
ータと単精度データの乗算結果は31ビット×16ビッ
ト精度になる。
【0060】第1の実施の形態では、倍精度データと倍
精度データの乗算を32ビット×32ビット精度で、倍
精度データと単精度データの乗算を32ビット×16ビ
ット精度で実行することができる。この第2の実施の形
態によれば、第1の実施の形態の構成に対し、乗数エン
コード手段12に乗数制御手段201を、乗算手段13
に被乗数制御手段306を設けるというわずかな回路を
付加することにより、31ビット×31ビット精度と3
1ビット×16ビット精度の倍精度乗算を実行できる。
精度データの乗算を32ビット×32ビット精度で、倍
精度データと単精度データの乗算を32ビット×16ビ
ット精度で実行することができる。この第2の実施の形
態によれば、第1の実施の形態の構成に対し、乗数エン
コード手段12に乗数制御手段201を、乗算手段13
に被乗数制御手段306を設けるというわずかな回路を
付加することにより、31ビット×31ビット精度と3
1ビット×16ビット精度の倍精度乗算を実行できる。
【0061】第2の実施の形態を用いることにより、本
発明の演算装置は、それぞれ乗数と被乗数の最下位ビッ
トを強制的に値“0”にする機能を有することにより、
低精度の倍精度乗算を用いたアプリケーションとの互換
性をとることができる。 〔第3の実施の形態〕以下本発明の第3の実施の形態に
ついて説明する。
発明の演算装置は、それぞれ乗数と被乗数の最下位ビッ
トを強制的に値“0”にする機能を有することにより、
低精度の倍精度乗算を用いたアプリケーションとの互換
性をとることができる。 〔第3の実施の形態〕以下本発明の第3の実施の形態に
ついて説明する。
【0062】第3の実施の形態の構成は、第1の実施の
形態において、MSB保持手段10が、保持データ選択
信号C5が値“1”をとるときは乗数の最上位ビットを
選択保持し、保持データ選択信号C5が値“0”をとる
ときは値“0”を選択保持する機能を有するように構成
される。ここで、乗算手段13と加算手段14の間に乗
算結果を保持する乗算結果保持手段17を配置した本実
施の形態の演算装置で、倍精度データと倍精度データの
乗算と、倍精度データと単精度データの乗算を実行する
際の命令を表2に示す。
形態において、MSB保持手段10が、保持データ選択
信号C5が値“1”をとるときは乗数の最上位ビットを
選択保持し、保持データ選択信号C5が値“0”をとる
ときは値“0”を選択保持する機能を有するように構成
される。ここで、乗算手段13と加算手段14の間に乗
算結果を保持する乗算結果保持手段17を配置した本実
施の形態の演算装置で、倍精度データと倍精度データの
乗算と、倍精度データと単精度データの乗算を実行する
際の命令を表2に示す。
【0063】
【表2】表2に示すAからDの命令を順次実行すること
により4つの積XL×YL、XH×YL、XL×YH、
XH×YHを順次求め、これらを桁合わせ加算すること
により倍精度データと倍精度データの乗算は実行され
る。また、表2に示すA(E),D(F)の命令を順次
実行することにより2つの積XL×YH、XH×YHを
順次求め、桁合わせ加算することにより倍精度データと
単精度データの乗算は実行される。表2はMSB保持手
段10とデータ選択手段11と乗数エンコード手段12
による乗数エンコード処理と、乗算手段13による乗算
処理と、加算手段14と桁合わせ手段16による加算処
理におけるデータの流れと処理内容を示している。ここ
で、表2中のR0はMSB保持手段10を示し、R1は
乗算結果保持手段17を示し、R2は加算結果保持手段
15を示している。
により4つの積XL×YL、XH×YL、XL×YH、
XH×YHを順次求め、これらを桁合わせ加算すること
により倍精度データと倍精度データの乗算は実行され
る。また、表2に示すA(E),D(F)の命令を順次
実行することにより2つの積XL×YH、XH×YHを
順次求め、桁合わせ加算することにより倍精度データと
単精度データの乗算は実行される。表2はMSB保持手
段10とデータ選択手段11と乗数エンコード手段12
による乗数エンコード処理と、乗算手段13による乗算
処理と、加算手段14と桁合わせ手段16による加算処
理におけるデータの流れと処理内容を示している。ここ
で、表2中のR0はMSB保持手段10を示し、R1は
乗算結果保持手段17を示し、R2は加算結果保持手段
15を示している。
【0064】表2において、それぞれの命令は2サイク
ル命令である。エンコード処理の欄では、MSB保持手
段10へのデータ格納とデータ選択手段11の選択する
データを示し、括弧内の記述(命令C,DにおけるYL
[15]と命令D(F)における0)はその命令実行時にM
SB保持手段10に保持されているデータを示してい
る。乗算処理の欄では、乗算手段13で求める乗算結果
を示している。加算処理の欄では、桁合わせ手段16で
選択されるデータと桁合わせのための16ビット右シフ
ト処理の有無と、加算手段14で求める加算結果を示し
ている。
ル命令である。エンコード処理の欄では、MSB保持手
段10へのデータ格納とデータ選択手段11の選択する
データを示し、括弧内の記述(命令C,DにおけるYL
[15]と命令D(F)における0)はその命令実行時にM
SB保持手段10に保持されているデータを示してい
る。乗算処理の欄では、乗算手段13で求める乗算結果
を示している。加算処理の欄では、桁合わせ手段16で
選択されるデータと桁合わせのための16ビット右シフ
ト処理の有無と、加算手段14で求める加算結果を示し
ている。
【0065】ここで、先に示した表1と比較すると、表
2では、命令Aで、MSB保持手段10に格納するデー
タを値“0”にしている。このことにより、命令Aと命
令Dの組み合わせで倍精度データと単精度データの乗算
を実現することができる。したがって、第3の実施の形
態によれば、倍精度データと倍精度データの乗算と、倍
精度データと単精度データの乗算とを実行するために必
要な命令数を命令の共通化によって削減できる。
2では、命令Aで、MSB保持手段10に格納するデー
タを値“0”にしている。このことにより、命令Aと命
令Dの組み合わせで倍精度データと単精度データの乗算
を実現することができる。したがって、第3の実施の形
態によれば、倍精度データと倍精度データの乗算と、倍
精度データと単精度データの乗算とを実行するために必
要な命令数を命令の共通化によって削減できる。
【0066】
【発明の効果】本発明の演算方法によれば、小数点位置
より上位に少なくとも2つ以上の桁をもつことにより倍
精度のビット幅より少なくとも1ビット多いビット幅で
求めた各々の積の桁合わせのためのシフト数は、相対的
に同じビット幅に限定され、桁合わせ手段の回路規模を
減らし効率良く倍精度乗算を実現することができる。
より上位に少なくとも2つ以上の桁をもつことにより倍
精度のビット幅より少なくとも1ビット多いビット幅で
求めた各々の積の桁合わせのためのシフト数は、相対的
に同じビット幅に限定され、桁合わせ手段の回路規模を
減らし効率良く倍精度乗算を実現することができる。
【0067】本発明の演算装置によれば、乗算手段が小
数点位置より上位に少なくとも2つ以上の桁をもつこと
によって倍精度のビット幅より少なくとも1ビット多い
ビット幅で乗算結果を出力することにより、各々の乗算
結果の桁合わせのためのシフト数は、相対的に同じビッ
ト幅に限定され、桁合わせ手段の回路規模を減らし効率
良く倍精度乗算を実現することができる。
数点位置より上位に少なくとも2つ以上の桁をもつこと
によって倍精度のビット幅より少なくとも1ビット多い
ビット幅で乗算結果を出力することにより、各々の乗算
結果の桁合わせのためのシフト数は、相対的に同じビッ
ト幅に限定され、桁合わせ手段の回路規模を減らし効率
良く倍精度乗算を実現することができる。
【図1】本発明の第1の実施の形態の演算装置の構成を
示すブロック図である。
示すブロック図である。
【図2】倍精度乗数のデータ分割を説明するための模式
図である。
図である。
【図3】被乗数上位ワードと乗数上位ワード/下位ワー
ドとの積のデータ出力形式を説明するための模式図であ
る。
ドとの積のデータ出力形式を説明するための模式図であ
る。
【図4】被乗数下位ワードと乗数上位ワード/下位ワー
ドとの積のデータ出力形式を説明するための模式図であ
る。
ドとの積のデータ出力形式を説明するための模式図であ
る。
【図5】従来の桁合わせビットシフトを説明するための
模式図である。
模式図である。
【図6】本発明の第1の実施の形態の桁合わせビットシ
フトを説明するための模式図である。
フトを説明するための模式図である。
【図7】乗数エンコード手段の回路構成を示す回路図で
ある。
ある。
【図8】乗算手段の構成を示すブロック図である。
【図9】乗算手段の被乗数拡張手段と部分積生成手段の
回路構成を示す回路図である。
回路構成を示す回路図である。
【図10】乗算処理を説明するための模式図である。
【図11】本発明の第2の実施の形態における乗数エン
コード手段の回路構成を示す回路図である。
コード手段の回路構成を示す回路図である。
【図12】本発明の第2の実施の形態における乗算手段
の構成を示すブロック図である。
の構成を示すブロック図である。
10 MSB保持手段 11 データ選択手段 12 乗数縁コード手段 13 乗算手段 14 加算手段 15 加算結果保持手段 16 桁合わせ手段 17 乗算結果選択手段 18,19 選択手段 20 記憶手段 200 ブースエンコード手段 201 乗数制御手段 300 被乗数拡張手段 301 部分積生成手段 302 部分積加算手段 303 部分積符号ビット反転生成回路 304 部分積生成回路 305 部分積補正項生成回路 306 被乗数制御手段
─────────────────────────────────────────────────────
【手続補正書】
【提出日】平成10年9月10日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】0053
【補正方法】変更
【補正内容】
【0053】
【表1】 表1に示すAからDの命令を順次実行することにより4
つの積XL×YL、XH×YL、XL×YH、XH×Y
Hを順次求め、これらを桁合わせ加算することにより倍
精度データと倍精度データの乗算は実行される。また、
表1に示すE,Fの命令を順次実行することにより2つ
の積XL×YH、XH×YHを順次求め、桁合わせ加算
することにより倍精度データと単精度データの乗算は実
行される。表1はMSB保持手段10とデータ選択手段
11と乗算エンコード手段12による乗数エンコード処
理と、乗算手段13による乗算処理と、加算手段14と
桁合わせ手段16による加算処理におけるデータの流れ
と処理内容を示している。ここで、表1中のR0はMS
B保持手段10を示し、R1は乗算結果保持手段17を
示し、R2は加算結果保持手段15を示している。
つの積XL×YL、XH×YL、XL×YH、XH×Y
Hを順次求め、これらを桁合わせ加算することにより倍
精度データと倍精度データの乗算は実行される。また、
表1に示すE,Fの命令を順次実行することにより2つ
の積XL×YH、XH×YHを順次求め、桁合わせ加算
することにより倍精度データと単精度データの乗算は実
行される。表1はMSB保持手段10とデータ選択手段
11と乗算エンコード手段12による乗数エンコード処
理と、乗算手段13による乗算処理と、加算手段14と
桁合わせ手段16による加算処理におけるデータの流れ
と処理内容を示している。ここで、表1中のR0はMS
B保持手段10を示し、R1は乗算結果保持手段17を
示し、R2は加算結果保持手段15を示している。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0063
【補正方法】変更
【補正内容】
【0063】
【表2】 表2に示すAからDの命令を順次実行することにより4
つの積XL×YL、XH×YL、XL×YH、XH×Y
Hを順次求め、これらを桁合わせ加算することにより倍
精度データと倍精度データの乗算は実行される。また、
表2に示すA(E),D(F)の命令を順次実行するこ
とにより2つの積XL×YH、XH×YHを順次求め、
桁合わせ加算することにより倍精度データと単精度デー
タの乗算は実行される。表2はMSB保持手段10とデ
ータ選択手段11と乗算エンコード手段12による乗数
エンコード処理と、乗算手段13による乗算処理と、加
算手段14と桁合わせ手段16による加算処理における
データの流れと処理内容を示している。ここで、表2中
のR0はMSB保持手段10を示し、R1は乗算結果保
持手段17を示し、R2は加算結果保持手段15を示し
ている。
つの積XL×YL、XH×YL、XL×YH、XH×Y
Hを順次求め、これらを桁合わせ加算することにより倍
精度データと倍精度データの乗算は実行される。また、
表2に示すA(E),D(F)の命令を順次実行するこ
とにより2つの積XL×YH、XH×YHを順次求め、
桁合わせ加算することにより倍精度データと単精度デー
タの乗算は実行される。表2はMSB保持手段10とデ
ータ選択手段11と乗算エンコード手段12による乗数
エンコード処理と、乗算手段13による乗算処理と、加
算手段14と桁合わせ手段16による加算処理における
データの流れと処理内容を示している。ここで、表2中
のR0はMSB保持手段10を示し、R1は乗算結果保
持手段17を示し、R2は加算結果保持手段15を示し
ている。
Claims (15)
- 【請求項1】 最上位ビットを符号ビットとし、前記最
上位ビットと前記最上位ビットより1ビット下位ビット
との間を小数点位置とする2進固定小数点数体系におい
て、単精度乗算器を用いて倍精度被乗数の上位ワード/
下位ワードと倍精度乗数の上位ワード/下位ワードとの
各々の積を求め、この求めた積について各々桁合わせ加
算を行い倍精度乗算結果を得る演算方法であって、 前記倍精度被乗数の上位ワード/下位ワードと倍精度乗
数の上位ワード/下位ワードとの各々の積を、小数点位
置より上位に少なくとも2つ以上の桁をもつことにより
倍精度ビット幅より少なくとも1ビット多いビット幅で
求めることを特徴とする演算方法。 - 【請求項2】 前記単精度乗算器は前記倍精度被乗数の
下位ワードと前記倍精度乗数の下位ワードの積を求める
際に、 前記倍精度被乗数の下位ワード最上位ビットの1ビット
上位に正数であることを示す符号ビットを持つ、単精度
ビット幅より1ビット多いビット幅のデータと、 前記倍精度乗数の下位ワード最上位ビットを符号ビット
とした、単精度ビット幅のデータとの乗算を行い、 倍精度ビット幅を持つ乗算結果の最下位ビットの1ビッ
ト下位に値“0”のデータを付加し、倍精度ビット幅よ
り1ビット多いビット幅のデータを前記倍精度被乗数の
下位ワードと前記倍精度乗数の下位ワードの積として出
力することを特徴とする請求項1に記載の演算方法。 - 【請求項3】 前記単精度乗算器は前記倍精度被乗数の
上位ワードと前記倍精度乗数の下位ワードの積を求める
際に、 前記倍精度被乗数の上位ワード最上位ビットの符号ビッ
トを1ビット符号拡張した、単精度ビット幅より1ビッ
ト多いビット幅のデータと、 前記倍精度乗数の下位ワード最上位ビットを符号ビット
とした、単精度ビット幅のデータとの乗算を行い、 倍精度ビット幅を持つ乗算結果の最下位ビットの1ビッ
ト下位に値“0”のデータを付加し、倍精度ビット幅よ
り1ビット多いビット幅のデータを前記倍精度被乗数の
上位ワードと前記倍精度乗数の下位ワードの積として出
力することを特徴とする請求項1に記載の演算方法。 - 【請求項4】 前記単精度乗算器は前記倍精度被乗数の
下位ワードと前記倍精度乗数の上位ワードの積を求める
際に、 前記倍精度被乗数の下位ワード最上位ビットの1ビット
上位に正数であることを示す符号ビットを持つ、単精度
ビット幅より1ビット多いビット幅のデータと、 前記倍精度乗数の上位ワード最下位ビットの桁位置に前
記倍精度乗数の下位ワード最上位ビットと同じ値を持つ
データを加えた、単精度ビット幅のデータとの乗算を行
い、 倍精度ビット幅を持つ乗算結果の最下位ビットの1ビッ
ト下位に値“0”のデータを付加し、倍精度ビット幅よ
り1ビット多いビット幅のデータを前記倍精度被乗数の
下位ワードと前記倍精度乗数の上位ワードの積として出
力することを特徴とする請求項1に記載の演算方法。 - 【請求項5】 前記単精度乗算器は前記倍精度被乗数の
上位ワードと前記倍精度乗数の上位ワードの積を求める
際に、 前記倍精度被乗数の上位ワード最上位ビットの符号ビッ
トを1ビット符号拡張した、単精度ビット幅より1ビッ
ト多いビット幅のデータと、 前記倍精度乗数の上位ワード最下位ビットの桁位置に前
記倍精度乗数の下位ワード最上位ビットと同じ値を持つ
データを加えた、単精度ビット幅のデータとの乗算を行
い、 倍精度ビット幅を持つ乗算結果の最下位ビットの1ビッ
ト下位に値“0”のデータを付加し、倍精度ビット幅よ
り1ビット多いビット幅のデータを前記倍精度被乗数の
上位ワードと前記倍精度乗数の上位ワードの積として出
力することを特徴とする請求項1に記載の演算方法。 - 【請求項6】 2つの符号付き2進固定小数点数データ
の乗算を行う単精度乗算器を用いて倍精度乗算を実行す
る演算装置であって、 乗数の最上位ビットを保持するMSB保持手段と、 前記MSB保持手段の保持データおよび値“0”のうち
一方を選択して出力するデータ選択手段と、 前記乗数と前記データ選択手段の出力データとを用いて
前記乗数を符号化して出力する乗数エンコード手段と、 被乗数と前記乗数エンコード手段の出力データと被乗数
判別信号とを入力し、前記被乗数判別信号が非能動状態
ならば前記被乗数の最上位ビットである符号ビットを1
ビット符号拡張して、前記乗数エンコード手段の出力デ
ータとの乗算結果を求め、前記被乗数判別信号が能動状
態ならば前記被乗数の最上位ビットの1ビット上位に正
数であることを示す符号ビットを付加して、前記乗数エ
ンコード手段の出力データとの乗算結果を求め、求めた
乗算結果を小数点位置より上位に少なくとも2つ以上の
桁をもつことにより倍精度のビット幅より少なくとも1
ビット多いビット幅で出力する乗算手段と、 前記乗算手段の出力データを加数とし、小数点位置より
上位に少なくとも2つ以上の桁をもつことにより倍精度
のビット幅より少なくとも1ビット多いビット幅を持つ
被加数との加算を行い、小数点位置より上位に少なくと
も2つ以上の桁をもつことにより倍精度のビット幅より
少なくとも1ビット多いビット幅を持つ加算結果を出力
する加算手段と、 前記加算手段の出力する加算結果を保持する加算結果保
持手段と、 前記加算結果保持手段の保持データおよび値“0”のう
ち一方を選択し、桁合わせ処理を行い前記加算手段の被
加数として出力する桁合わせ手段とを設けたことを特徴
とする演算装置。 - 【請求項7】 MSB保持手段は、倍精度乗算の実行に
おいて倍精度乗数下位ワードと倍精度被乗数上位ワード
/下位ワードとの積を求める際に倍精度乗数下位ワード
の最上位ビットを保持することを特徴とする請求項6記
載の演算装置。 - 【請求項8】 データ選択手段は、倍精度乗算の実行に
おいて倍精度乗数下位ワードと倍精度被乗数上位ワード
/下位ワードとの積を求める際に値“0”を選択出力
し、倍精度乗数上位ワードと倍精度被乗数上位ワード/
下位ワードとの積を求める際に前記MSB保持手段が保
持している倍精度乗数下位ワードの最上位ビットを選択
出力すること特徴とする請求項6記載の演算装置。 - 【請求項9】 乗数エンコード手段は、倍精度乗算の実
行において倍精度乗数下位ワードと倍精度被乗数上位ワ
ード/下位ワードとの積を求める際に入力される倍精度
乗数下位ワードと前記データ選択手段の選択した値
“0”の出力データをブースのアルゴリズムで符号化し
て出力し、倍精度乗数上位ワードと倍精度被乗数上位ワ
ード/下位ワードとの積を求める際に前記データ選択手
段が選択した前記MSB保持手段が保持している倍精度
乗数下位ワードの最上位ビットの出力データをブースの
アルゴリズムで符号化して出力することを特徴とする請
求項6記載の演算装置。 - 【請求項10】 乗算手段は、倍精度乗算の実行におい
て前記被乗数判別信号が能動状態ならば入力される被乗
数が倍精度被乗数の下位ワードであると判別し、前記被
乗数の最上位ビットの1ビット上位に正数を示す符号ビ
ットを付加して、前記乗数エンコード手段の出力データ
との部分積を求め、前記被乗数判別信号が非能動状態な
らば入力される被乗数が倍精度被乗数の上位ワードであ
ると判別し、前記被乗数の最上位ビットである符号ビッ
トを1ビット符号拡張して、前記乗数エンコード手段の
出力データとの部分積を求める部分積生成手段を備える
ことを特徴とする請求項6記載の演算装置。 - 【請求項11】 乗算手段は、前記部分積生成手段を少
なくとも2つ備え、複数の前記部分積生成手段の出力デ
ータである部分積を桁位置を合わせて加算し、加算結果
の最下位ビットの1ビット下位に値“0”のデータを付
加して求める積として出力することを特徴とする請求項
6記載の演算装置。 - 【請求項12】 乗算手段の出力データを一時保持し、
加算手段の加数として出力する乗算結果保持手段を設
け、前記乗算手段と前記加算手段とが並列に動作可能と
したことを特徴とする請求項6記載の演算装置。 - 【請求項13】 乗数エンコード手段は、入力データで
ある乗数の最下位ビットを強制的に値“0”にする機能
を有したことを特徴とする請求項6記載の演算装置。 - 【請求項14】 乗算手段は、入力データである被乗数
の最下位ビットを強制的に値“0”にする機能を有した
ことを特徴とする請求項6記載の演算装置。 - 【請求項15】 MSB保持手段は、乗数の最上位ビッ
トを保持する手段に代えて、前記乗数の最上位ビットお
よび値“0”のうち一方を選択して保持する手段とした
ことを特徴とする請求項6記載の演算装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP10187061A JPH1185471A (ja) | 1997-07-09 | 1998-07-02 | 演算方法および演算装置 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18388097 | 1997-07-09 | ||
| JP9-183880 | 1997-07-09 | ||
| JP10187061A JPH1185471A (ja) | 1997-07-09 | 1998-07-02 | 演算方法および演算装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH1185471A true JPH1185471A (ja) | 1999-03-30 |
Family
ID=26502148
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP10187061A Pending JPH1185471A (ja) | 1997-07-09 | 1998-07-02 | 演算方法および演算装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH1185471A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008544344A (ja) * | 2005-05-09 | 2008-12-04 | サンディスク アイエル リミテッド | 大数乗算方法およびデバイス |
-
1998
- 1998-07-02 JP JP10187061A patent/JPH1185471A/ja active Pending
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008544344A (ja) * | 2005-05-09 | 2008-12-04 | サンディスク アイエル リミテッド | 大数乗算方法およびデバイス |
| KR101247164B1 (ko) * | 2005-05-09 | 2013-03-25 | 샌디스크 아이엘 엘티디 | 큰 수 곱셈 방법 및 디바이스 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6233597B1 (en) | Computing apparatus for double-precision multiplication | |
| JP3139466B2 (ja) | 乗算器及び積和演算器 | |
| JPH09269891A (ja) | 部分積加算方法および装置、浮動小数点乗算方法および装置、浮動小数点積和演算方法および装置 | |
| KR20080094813A (ko) | 부스 곱셈 방법들 및 시스템들을 위한 전력-효율적인 부호 확장 | |
| CN109634558B (zh) | 可编程的混合精度运算单元 | |
| US10528325B2 (en) | Efficient modulo calculation | |
| JPH07168697A (ja) | 倍精度除算回路および方法 | |
| US5195051A (en) | Computation of sign bit and sign extension in the partial products in a floating point multiplier unit | |
| JP4273071B2 (ja) | 除算・開平演算器 | |
| JP2001222410A (ja) | 除算器 | |
| US4677583A (en) | Apparatus for decimal multiplication | |
| GB2549153B (en) | Apparatus and method for supporting a conversion instruction | |
| KR100317767B1 (ko) | 부동 소수점 2진 4 워드 포맷 승산 명령 유닛 | |
| US5870322A (en) | Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication | |
| JPH1185471A (ja) | 演算方法および演算装置 | |
| JPH04256016A (ja) | 2の補数の乗算器を無符号数の乗算を行うように修正する方法および装置 | |
| JP2645422B2 (ja) | 浮動小数点演算処理装置 | |
| JP2578482B2 (ja) | 浮動小数点演算器 | |
| JPH04172526A (ja) | 浮動小数点除算器 | |
| JP2682142B2 (ja) | 乗算装置 | |
| JP2777265B2 (ja) | 高基数開平演算装置 | |
| JP2991788B2 (ja) | 復号器 | |
| JP2001134556A (ja) | 繰り返し型乗算器とアレイ型乗算器 | |
| JP3100868B2 (ja) | 浮動小数点数のための算術演算装置 | |
| JP2006338215A (ja) | ベクトル積和演算回路 |