JPH061438B2 - 倍精度乗算器 - Google Patents
倍精度乗算器Info
- Publication number
- JPH061438B2 JPH061438B2 JP59084578A JP8457884A JPH061438B2 JP H061438 B2 JPH061438 B2 JP H061438B2 JP 59084578 A JP59084578 A JP 59084578A JP 8457884 A JP8457884 A JP 8457884A JP H061438 B2 JPH061438 B2 JP H061438B2
- Authority
- JP
- Japan
- Prior art keywords
- precision
- double
- word
- register
- multiplier
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/53—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
- G06F7/5324—Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel partitioned, i.e. using repetitively a smaller parallel parallel multiplier or using an array of such smaller multipliers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2207/00—Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F2207/38—Indexing scheme relating to groups G06F7/38 - G06F7/575
- G06F2207/3804—Details
- G06F2207/3808—Details concerning the type of numbers or the way they are handled
- G06F2207/3812—Devices capable of handling different types of numbers
- G06F2207/382—Reconfigurable for different fixed word lengths
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Description
【発明の詳細な説明】 (産業上の利用分野) 本発明は倍精度乗算器に関する。
(従来技術とその問題点) nビット(nは自然数)1ワードのデータを単精度数と
したとき、一般には2nビットのデータを倍精度数と呼
ぶが、ここでは2の補数表現の単精度数どうしの乗算に
よって得られる2n−1ビットのデータを倍精度数と呼
ぶことにする。
したとき、一般には2nビットのデータを倍精度数と呼
ぶが、ここでは2の補数表現の単精度数どうしの乗算に
よって得られる2n−1ビットのデータを倍精度数と呼
ぶことにする。
この倍精度数どうしの乗算を、単精度の2の補数乗算器
を用いて行うときは倍精度数を単精度のデータに分割し
なければならない。ところが従来の2の補数乗算器をも
つプロセッサにおいては、このデータの分割の方法につ
いて、倍精度乗算に対する考慮がなされていなかった。
を用いて行うときは倍精度数を単精度のデータに分割し
なければならない。ところが従来の2の補数乗算器をも
つプロセッサにおいては、このデータの分割の方法につ
いて、倍精度乗算に対する考慮がなされていなかった。
従来の2の補数乗算器を有するプロセッサとしては、例
えば2の補数単精度乗算器の入力がデータバスに接続さ
れ2の補数単精度乗算器の出力が加減算器に接続された
シグナルプロセッサが知られている。このシグナルプロ
セッサについては、西谷他によりアイ・イー・イー・イ
ー ジャーナル オブ ソリッド ステート サーキッ
ツ(IEEE Journal of Solid-State Circuits).SC-16
巻、NO.4.第372頁より376頁に発表された論文「ア シ
ングル チップ ディジタル シグナル プロセッサ
フォー テレコミュニケーション アプリケーションズ
(A Single Chip Digital Signal Process or for Tele
communication Applications)」に記載されたシグナル
プロセッサにおいては、2n−1ビットの倍精度数で
ある乗算結果を上位ワードと下位ワードに分割すると
き、倍精度数の上位nビットと下位n−1ビットのLS
B側に0を付け加えてnビットにしたものに分割する
か、或いは、たとえば2の補数単精度乗算器の入力がデ
ータバスに接続され、2の補数単精度乗算器の出力が倍
精度加減算器に接続されたシグナルプロセッサも知られ
ている。このシグナルプロセッサについては、ケー・マ
グドナウ(K.McDonough)他により、エレクトロニク
ス(Electronics)誌、1982年2月24日号に発表された論
文「マイクロ コンピュータ ウィズ 32ビット ア
リスメティック ダズハイ ブリシィジョン ナンバー
クランチング(Microcomputer with 32-bit arithmet
ic does high-Precision number crunchng)」に記載さ
れている。このシグナルプロセッサでは倍精度数の上位
n−1ビットの最上位ビットである符号ビットを1ビッ
ト拡張してnビットにしたものと、下位nビットに分割
する方法がとられており、いずれの場合も下位ワードの
MSBが0になるか、1になるかは倍精度乗算結果に依
存し一定ではない。前記下位ワードを、2の補数乗算器
に入力するとMSBが1の場合は前記下位ワードを負の
数とした乗算結果が得られる。そのため、前記下位ワー
ドを乗算器入力とするときは、常に符号ビットを判定し
てこれによる乗算結果の修正を施す必要があり、操作が
複雑になり、そのために計算時間が増大するという欠点
があった。
えば2の補数単精度乗算器の入力がデータバスに接続さ
れ2の補数単精度乗算器の出力が加減算器に接続された
シグナルプロセッサが知られている。このシグナルプロ
セッサについては、西谷他によりアイ・イー・イー・イ
ー ジャーナル オブ ソリッド ステート サーキッ
ツ(IEEE Journal of Solid-State Circuits).SC-16
巻、NO.4.第372頁より376頁に発表された論文「ア シ
ングル チップ ディジタル シグナル プロセッサ
フォー テレコミュニケーション アプリケーションズ
(A Single Chip Digital Signal Process or for Tele
communication Applications)」に記載されたシグナル
プロセッサにおいては、2n−1ビットの倍精度数で
ある乗算結果を上位ワードと下位ワードに分割すると
き、倍精度数の上位nビットと下位n−1ビットのLS
B側に0を付け加えてnビットにしたものに分割する
か、或いは、たとえば2の補数単精度乗算器の入力がデ
ータバスに接続され、2の補数単精度乗算器の出力が倍
精度加減算器に接続されたシグナルプロセッサも知られ
ている。このシグナルプロセッサについては、ケー・マ
グドナウ(K.McDonough)他により、エレクトロニク
ス(Electronics)誌、1982年2月24日号に発表された論
文「マイクロ コンピュータ ウィズ 32ビット ア
リスメティック ダズハイ ブリシィジョン ナンバー
クランチング(Microcomputer with 32-bit arithmet
ic does high-Precision number crunchng)」に記載さ
れている。このシグナルプロセッサでは倍精度数の上位
n−1ビットの最上位ビットである符号ビットを1ビッ
ト拡張してnビットにしたものと、下位nビットに分割
する方法がとられており、いずれの場合も下位ワードの
MSBが0になるか、1になるかは倍精度乗算結果に依
存し一定ではない。前記下位ワードを、2の補数乗算器
に入力するとMSBが1の場合は前記下位ワードを負の
数とした乗算結果が得られる。そのため、前記下位ワー
ドを乗算器入力とするときは、常に符号ビットを判定し
てこれによる乗算結果の修正を施す必要があり、操作が
複雑になり、そのために計算時間が増大するという欠点
があった。
(本発明の目的) 本発明はハードウェアによって上記分割を行うことがで
きるように設計することにより、以上に述べた複雑な操
作を回避することを目的とする。
きるように設計することにより、以上に述べた複雑な操
作を回避することを目的とする。
(本発明の構成) 本発明は、単精度の内部データバスと、2つの入力が前
記内部データバスに接続され、倍精度の乗算結果を出力
する単精度乗算器と、前記内部データバスに入力が接続
され入力される単精度のデータバスの最上位ビットを拡
張して倍精度にして出力するシフタと、前記単精度乗算
器の出力が、前記シフタの出力のいずれかを選択して出
力する選択回路と、前記選択回路の出力と後述するレジ
スタファイルの1つのレジスタの出力との間の算術論理
演算を行ないその結果を前記レジスタファイルの1つの
レジスタに出力する倍精度算術論理演算回路と、前記倍
精度算術論理回路の出力を保持する複数のレジスタから
構成される倍精度のレジスタファイルと、前記レジスタ
ファイルの1つのレジスタの上位の単精度データ或い
は、残りの下位データの最上位ビットに0をつけて得ら
れる単精度データを選択して前記内部データバスに出力
するワード選択回路と、前記単精度乗算器にデータを供
給する複数ワードの単精度メモリとから構成される。
記内部データバスに接続され、倍精度の乗算結果を出力
する単精度乗算器と、前記内部データバスに入力が接続
され入力される単精度のデータバスの最上位ビットを拡
張して倍精度にして出力するシフタと、前記単精度乗算
器の出力が、前記シフタの出力のいずれかを選択して出
力する選択回路と、前記選択回路の出力と後述するレジ
スタファイルの1つのレジスタの出力との間の算術論理
演算を行ないその結果を前記レジスタファイルの1つの
レジスタに出力する倍精度算術論理演算回路と、前記倍
精度算術論理回路の出力を保持する複数のレジスタから
構成される倍精度のレジスタファイルと、前記レジスタ
ファイルの1つのレジスタの上位の単精度データ或い
は、残りの下位データの最上位ビットに0をつけて得ら
れる単精度データを選択して前記内部データバスに出力
するワード選択回路と、前記単精度乗算器にデータを供
給する複数ワードの単精度メモリとから構成される。
(本発明の作用・原理) 第1図は倍精度乗算方式を概念的に示す図である。
倍精度数どうしの乗算を単精度の2の補数乗算器を用い
て行なう場合、第1図a,bに示すように、2n−1ビ
ットの倍精度数の乗数Xをその上位nビットをとった上
位ワードXMと、下位n−1ビットをとったものの最上
位ビットに0を付け加えて得られる下位ワードXLに分
割し、一方2n−1ビットの倍精度数の被乗数Yをその
上位nビットをとった上位ワードYMと、下位n−1ビ
ットをとったものの最上位ビットに0を付け加えて得ら
れる下位ワードYLに分割する。
て行なう場合、第1図a,bに示すように、2n−1ビ
ットの倍精度数の乗数Xをその上位nビットをとった上
位ワードXMと、下位n−1ビットをとったものの最上
位ビットに0を付け加えて得られる下位ワードXLに分
割し、一方2n−1ビットの倍精度数の被乗数Yをその
上位nビットをとった上位ワードYMと、下位n−1ビ
ットをとったものの最上位ビットに0を付け加えて得ら
れる下位ワードYLに分割する。
倍精度乗算結果は符号ビット+2n−2ビットのデータ
どうしの乗算結果であるから4n−3ビットのデータに
なる。
どうしの乗算結果であるから4n−3ビットのデータに
なる。
第1図に示すように倍精度乗算結果は、倍精度乗数Xの
下位ワードXLと倍精度被乗数Yの下位ワードYLの乗
算結果M1の符号ビット(常に0)を拡張して4n−3
ビットにしたもの(第1図c)と、倍精度乗数Xの下位
ワードXLと倍精度乗数Yの上位ワードYMの乗算結果
M2をn−1ビットけた上げし0をつめる符号ビットを
拡張して4n−3ビットにしたもの(第1図d)と、倍
精度乗数Xの上位ワードXMと倍精度被乗数Yの下位ワ
ードYLの乗算結果M3をn−1ビットけた上げし(0
をつめる)、符号ビットを拡張して4n−3ビットにし
たもの(第1図e)と、倍精度乗数Xの上位ワードXM
と倍精度被乗数Yの上位ワードYMの乗算結果M4を2
n−2ビットけた上げし(0をつめる)て4n−3ビッ
トにしたもの(第1図f)をすべて加算することにより
得られる(第1図g)。なお第1図hは、第1図a〜g
の各部分のビット長を示している。
下位ワードXLと倍精度被乗数Yの下位ワードYLの乗
算結果M1の符号ビット(常に0)を拡張して4n−3
ビットにしたもの(第1図c)と、倍精度乗数Xの下位
ワードXLと倍精度乗数Yの上位ワードYMの乗算結果
M2をn−1ビットけた上げし0をつめる符号ビットを
拡張して4n−3ビットにしたもの(第1図d)と、倍
精度乗数Xの上位ワードXMと倍精度被乗数Yの下位ワ
ードYLの乗算結果M3をn−1ビットけた上げし(0
をつめる)、符号ビットを拡張して4n−3ビットにし
たもの(第1図e)と、倍精度乗数Xの上位ワードXM
と倍精度被乗数Yの上位ワードYMの乗算結果M4を2
n−2ビットけた上げし(0をつめる)て4n−3ビッ
トにしたもの(第1図f)をすべて加算することにより
得られる(第1図g)。なお第1図hは、第1図a〜g
の各部分のビット長を示している。
(本発明の実施例) 以下に本発明による倍精度乗算器の一実施例について第
2図を参照して詳細に説明する。
2図を参照して詳細に説明する。
第2図は、内部データバス21、単精度乗算器22、シ
フタ23、選択回路24、倍精度算術論理演算回路(倍
精度ALU)25、レジスタファイル26、ワード選択
回路27、単精度メモリ28から構成される。また、単
精度乗算器22は入力レジスタ22−1、入力レジスタ
22−2、乗算回路22−3、及び出力レジスタ22−
4から構成される。一方レジスタファイル26はレジス
タ26−1、レジスタ26−2、レジスタ26−3、レ
ジスタ26−4、レジスタ26−5の5本の倍精度レジ
スタから構成される。内部データバス21は単精度(以
下nビットを単精度とする)のビット幅をもつデータバ
スである。単精度乗算器22は2つの単精度入力レジス
タである入力レジスタ22−1と入力レジスタ22−2
データバス21に接続され倍精度(2n−1ビット)の
乗算結果を出力レジスタ22−4に出力する2の補数乗
算器である。この例としては例えば米国特許番号386603
0「ツース コンプリメント パラレル アレイ マル
チプライヤ(Two′s complement parallel array Multi
plier)」などがある。
フタ23、選択回路24、倍精度算術論理演算回路(倍
精度ALU)25、レジスタファイル26、ワード選択
回路27、単精度メモリ28から構成される。また、単
精度乗算器22は入力レジスタ22−1、入力レジスタ
22−2、乗算回路22−3、及び出力レジスタ22−
4から構成される。一方レジスタファイル26はレジス
タ26−1、レジスタ26−2、レジスタ26−3、レ
ジスタ26−4、レジスタ26−5の5本の倍精度レジ
スタから構成される。内部データバス21は単精度(以
下nビットを単精度とする)のビット幅をもつデータバ
スである。単精度乗算器22は2つの単精度入力レジス
タである入力レジスタ22−1と入力レジスタ22−2
データバス21に接続され倍精度(2n−1ビット)の
乗算結果を出力レジスタ22−4に出力する2の補数乗
算器である。この例としては例えば米国特許番号386603
0「ツース コンプリメント パラレル アレイ マル
チプライヤ(Two′s complement parallel array Multi
plier)」などがある。
シフタ23は入力が前記内部データバス21に接続さ
れ、入力される単精度のデータの最上位ビットをn−1
ビット上位方向に拡張して倍精度(2n−1)ビットに
して出力する回路である。
れ、入力される単精度のデータの最上位ビットをn−1
ビット上位方向に拡張して倍精度(2n−1)ビットに
して出力する回路である。
選択回路24は、前記単精度乗算器22の出力か、前記
シフタ23の出力のいずれかを選択して出力する2n−
1ビットのセレクタで実現できる。
シフタ23の出力のいずれかを選択して出力する2n−
1ビットのセレクタで実現できる。
倍精度ALU25は前記選択回路24の出力を後述するレ
ジスタファイル26の5本の倍精度レジスタの中での選
択された1本からの出力とを加算して、出力するか或い
は、前記倍精度レジスタからの出力を加算せずに、前記
選択回路24からの出力をそのまま出力するかのどちら
かが選択可能な2n−1ビットの加算回路である。
ジスタファイル26の5本の倍精度レジスタの中での選
択された1本からの出力とを加算して、出力するか或い
は、前記倍精度レジスタからの出力を加算せずに、前記
選択回路24からの出力をそのまま出力するかのどちら
かが選択可能な2n−1ビットの加算回路である。
レジスタファイル26は前記倍精度ALU25の出力を入
力して記憶する5本の2n−1ビットのレジスタ、レジ
スタ26−1、レジスタ22−2、レジスタ26−3、
レジスタ26−4、レジスタ26−5から構成される。
ワード選択回路27は、前記レジスタファイル26の中
から選択された1本の2n−1ビットのレジスタの上位
nビット、或いは残りの下位n−1ビットのデータの最
上位ビットに0をつけて得られるnビットの単精度デー
タを選択して前記内部データバス21に出力するnビッ
トのマルチプレクサで実現される。
力して記憶する5本の2n−1ビットのレジスタ、レジ
スタ26−1、レジスタ22−2、レジスタ26−3、
レジスタ26−4、レジスタ26−5から構成される。
ワード選択回路27は、前記レジスタファイル26の中
から選択された1本の2n−1ビットのレジスタの上位
nビット、或いは残りの下位n−1ビットのデータの最
上位ビットに0をつけて得られるnビットの単精度デー
タを選択して前記内部データバス21に出力するnビッ
トのマルチプレクサで実現される。
ワード選択回路27の構成を第3図に示す。集線部41
は入力された2n−1ビットの信号から上位nビットの
信号をとり出すものであり、集線部42は入力された2
n−1ビットの信号の下位n−1ビットの上位側に0信
号を付加して得られるnビットの信号をとり出すもので
ある。マルチプレクサ43は前記集線部41の出力、或
いは、集線部42の出力のいずれかを選択して出力する
ものである。
は入力された2n−1ビットの信号から上位nビットの
信号をとり出すものであり、集線部42は入力された2
n−1ビットの信号の下位n−1ビットの上位側に0信
号を付加して得られるnビットの信号をとり出すもので
ある。マルチプレクサ43は前記集線部41の出力、或
いは、集線部42の出力のいずれかを選択して出力する
ものである。
単精度メモリ28は前記内部データバス21に接続され
る複数ワードのnビットのランダムアクセスメモリーで
構成される。
る複数ワードのnビットのランダムアクセスメモリーで
構成される。
このプロセッサは1マシンサイクルで以下の機能の並列
実行が可能である。
実行が可能である。
1 単精度乗算器22において、 2つの入力レジスタ22−1,22−2に蓄えられた2
つの単精度データどうしの乗算を実行し出力の倍精度デ
ータを出力レジスタ22−4に蓄える。
つの単精度データどうしの乗算を実行し出力の倍精度デ
ータを出力レジスタ22−4に蓄える。
2 レジスタファイル26の中から選択された1本の倍
精度レジスタの上位ワード或いは最上位ビットに0を加
えた下位ワードをワード選択回路27で選択し内部デー
タバス21に出力するか、或いは単精度メモリ28の指
定された番地の内容を内部データバス21に出力する。
次に内部データバス21に入力されたデータをシフタ2
3により倍精度データに変換して選択回路24に出力す
る。選択回路24は前記シフタ23からの入力か、単精
度乗算器22の出力する乗算結果(1つ前のマシンサイ
クルで乗算された結果)のいずれかを選択して倍精度A
LU25に出力する。倍精度ALU25は選択回路24
の出力をそのまま出力するか或いは、選択回路24の出
力とレジスタファイル26の中から選択された倍精度レ
ジスタの出力とを加算したものを出力する。前記選択回
路27の出力はレジスタファイル26の中から選択され
た倍精度レジスタにて記憶される。
精度レジスタの上位ワード或いは最上位ビットに0を加
えた下位ワードをワード選択回路27で選択し内部デー
タバス21に出力するか、或いは単精度メモリ28の指
定された番地の内容を内部データバス21に出力する。
次に内部データバス21に入力されたデータをシフタ2
3により倍精度データに変換して選択回路24に出力す
る。選択回路24は前記シフタ23からの入力か、単精
度乗算器22の出力する乗算結果(1つ前のマシンサイ
クルで乗算された結果)のいずれかを選択して倍精度A
LU25に出力する。倍精度ALU25は選択回路24
の出力をそのまま出力するか或いは、選択回路24の出
力とレジスタファイル26の中から選択された倍精度レ
ジスタの出力とを加算したものを出力する。前記選択回
路27の出力はレジスタファイル26の中から選択され
た倍精度レジスタにて記憶される。
また内部データバス21上のデータはシフタ23に供給
されると同時に単精度乗算器22の入力レジスタ22−
1あるいは22−2、或いは単精度メモリ28のいずれ
かに供給することも可能である。
されると同時に単精度乗算器22の入力レジスタ22−
1あるいは22−2、或いは単精度メモリ28のいずれ
かに供給することも可能である。
3 次のマシンサイクルで使用可能な単精度メモリ28
のアドレス指定をポート29から指定する。
のアドレス指定をポート29から指定する。
以上で説明した倍精度乗算に適したプロセッサにおい
て、レジスタファイル26におけるレジスタ26−1に
倍精度乗数データ、レジスタ26−2に倍精度被乗数デ
ータが与えられたときの倍精度乗算について(本発明の
原理)で説明した方法に従って説明する。
て、レジスタファイル26におけるレジスタ26−1に
倍精度乗数データ、レジスタ26−2に倍精度被乗数デ
ータが与えられたときの倍精度乗算について(本発明の
原理)で説明した方法に従って説明する。
演算手順は13のステップからなり第4図a,bに示す手
順で実行される。
順で実行される。
以下に各ステップでの動作について述べる。
まずはじめのステップ(マシンサイクル、第4図中
S1)ではレジスタ26−1にたくわえられた倍精度乗
数の下位ワード(最上位ビットを0としたnビットデー
タとする以下同じ)をワード選択回路27で選択して、
単精度乗算器22の入力レジスタ22−1に入力する。
次のステップ(第4図中S2)ではレジスタ26−2に
蓄えられた倍精度被乗数の下位ワードをワード選択回路
27で選択して、単精度乗算器22の入力レジスタ22
−2に入力する。
S1)ではレジスタ26−1にたくわえられた倍精度乗
数の下位ワード(最上位ビットを0としたnビットデー
タとする以下同じ)をワード選択回路27で選択して、
単精度乗算器22の入力レジスタ22−1に入力する。
次のステップ(第4図中S2)ではレジスタ26−2に
蓄えられた倍精度被乗数の下位ワードをワード選択回路
27で選択して、単精度乗算器22の入力レジスタ22
−2に入力する。
第3のステップでは、レジスタ26−2に蓄えられた倍
精度被乗数の上位ワードをワード選択回路27で選択し
て単精度乗算器22の入力レジスタ22−2に入力す
る。同時に倍精度乗数の下位ワードと倍精度被乗数の下
位ワードの乗算結果である単精度乗算器22の出力を選
択回路24で選択し、倍精度ALU25で加算をせずに
そのままレジスタファイル26のレジスタ26−3に入
力する。
精度被乗数の上位ワードをワード選択回路27で選択し
て単精度乗算器22の入力レジスタ22−2に入力す
る。同時に倍精度乗数の下位ワードと倍精度被乗数の下
位ワードの乗算結果である単精度乗算器22の出力を選
択回路24で選択し、倍精度ALU25で加算をせずに
そのままレジスタファイル26のレジスタ26−3に入
力する。
第4のステップでは、レジスタ26−1に蓄えられた倍
精度乗数の上位ワードをワード選択回路27で選択して
単精度乗算器22の入力レジスタ22−1に入力する。
同時に倍精度乗数の下位ワードと倍精度被乗数の上位ワ
ードの乗算結果である単精度乗算器22の出力を選択回
路24で選択し、倍精度ALU25で加算をせずにその
ままレジスタファイル26のレジスタ26−4に入力す
る。
精度乗数の上位ワードをワード選択回路27で選択して
単精度乗算器22の入力レジスタ22−1に入力する。
同時に倍精度乗数の下位ワードと倍精度被乗数の上位ワ
ードの乗算結果である単精度乗算器22の出力を選択回
路24で選択し、倍精度ALU25で加算をせずにその
ままレジスタファイル26のレジスタ26−4に入力す
る。
第5のステップでは、レジスタ26−2に蓄えられた倍
精度被乗数の下位ワードをワード選択回路27で選択し
て単精度乗算器22の入力レジスタ22−2に入力す
る。同時に倍精度乗数の上位ワードと、倍精度被乗数の
上位ワードの乗算結果である単精度乗算器22の出力を
選択回路24で選択し、倍精度ALU25で加算をせず
にそのままレジスタファイル26の26−5に入力す
る。また、次のステップで使用する単精度メモリ28の
アドレスをポート29から指定する。
精度被乗数の下位ワードをワード選択回路27で選択し
て単精度乗算器22の入力レジスタ22−2に入力す
る。同時に倍精度乗数の上位ワードと、倍精度被乗数の
上位ワードの乗算結果である単精度乗算器22の出力を
選択回路24で選択し、倍精度ALU25で加算をせず
にそのままレジスタファイル26の26−5に入力す
る。また、次のステップで使用する単精度メモリ28の
アドレスをポート29から指定する。
第6のステップでは、レジスタ26−3に蓄えられた倍
精度乗数の下位ワードと倍精度被乗数の下位ワードの乗
算結果の下位ワードをワード選択回路27で選択して単
精度メモリ28に格納する。これは倍精度乗算の乗算結
果の最下位ワードとなっている。
精度乗数の下位ワードと倍精度被乗数の下位ワードの乗
算結果の下位ワードをワード選択回路27で選択して単
精度メモリ28に格納する。これは倍精度乗算の乗算結
果の最下位ワードとなっている。
同時に倍精度乗数の上位ワードと倍精度被乗数の下位ワ
ードとの乗算結果である単精度乗算器22の出力を、選
択回路24で選択し、倍精度ALU25で加算をせずに
そのままレジスタファイル26のレジスタ26−2に入
力する。
ードとの乗算結果である単精度乗算器22の出力を、選
択回路24で選択し、倍精度ALU25で加算をせずに
そのままレジスタファイル26のレジスタ26−2に入
力する。
第7のステップでは、レジスタ26−3に蓄えられた倍
精度乗数の下位ワードと倍精度被乗数の下位ワードの乗
算結果の上位ワードをワード選択回路27で選択し、シ
フタ23で最上位ビット(単に0)を拡張して倍精度デ
ータに1、これを選択回路24で選択し、倍精度ALU
25で加算をせずにそのままレジスタファイル26のレ
ジスタ26−1に入力する。
精度乗数の下位ワードと倍精度被乗数の下位ワードの乗
算結果の上位ワードをワード選択回路27で選択し、シ
フタ23で最上位ビット(単に0)を拡張して倍精度デ
ータに1、これを選択回路24で選択し、倍精度ALU
25で加算をせずにそのままレジスタファイル26のレ
ジスタ26−1に入力する。
第8のステップではレジスタ26−4に蓄えられた倍精
度乗数の下位ワードと倍精度被乗数の上位ワードとの乗
算結果の下位ワードをワード選択回路27で選択し、シ
フタ23で最上位ビットを拡張して倍精度データにし、
これを選択回路24で選択し、倍精度ALU25で倍精
度乗数の下位ワード倍精度被乗数の下位ワードの乗算結
果の上位ワードの最上位ビットを拡張したものが蓄えら
れているレジスタ26−1に倍精度ALU25によって
加算する。
度乗数の下位ワードと倍精度被乗数の上位ワードとの乗
算結果の下位ワードをワード選択回路27で選択し、シ
フタ23で最上位ビットを拡張して倍精度データにし、
これを選択回路24で選択し、倍精度ALU25で倍精
度乗数の下位ワード倍精度被乗数の下位ワードの乗算結
果の上位ワードの最上位ビットを拡張したものが蓄えら
れているレジスタ26−1に倍精度ALU25によって
加算する。
第9のステップではレジスタ26−3に蓄えられた倍精
度乗数の上位ワードと倍精度被乗数の下位ワードの乗数
結果の下位ワードをワード選択回路27で選択し、シフ
タ23で最上位ビットを拡張して倍精度データにし、こ
れを選択回路24で選択し、倍精度ALU25で、倍精
度乗数の下位ワードと倍精度被乗数の下位ワードの乗算
結果の上位ワードの最上位ビットを拡張したものと、倍
精度乗数の下位ワードと倍精度被乗数の上位ワードの乗
算結果の下位ワードの最上位ビットを拡張したものの倍
精度加算結果が蓄えられているレジスタ26−1に倍精
度ALU25により加算する。この加算結果をAと名付
ける。
度乗数の上位ワードと倍精度被乗数の下位ワードの乗数
結果の下位ワードをワード選択回路27で選択し、シフ
タ23で最上位ビットを拡張して倍精度データにし、こ
れを選択回路24で選択し、倍精度ALU25で、倍精
度乗数の下位ワードと倍精度被乗数の下位ワードの乗算
結果の上位ワードの最上位ビットを拡張したものと、倍
精度乗数の下位ワードと倍精度被乗数の上位ワードの乗
算結果の下位ワードの最上位ビットを拡張したものの倍
精度加算結果が蓄えられているレジスタ26−1に倍精
度ALU25により加算する。この加算結果をAと名付
ける。
第10のステップではレジスタ26−1に蓄えられてい
るAの上位ワードをワード選択回路27で選択し、シフ
タで最上位ビットを拡張して倍精度データにし、これを
選択回路24で選択し、倍精度ALU25で倍精度乗数
の上位ワードと倍精度被乗数の上位ワードの乗算結果が
蓄えられているレジスタ26−5に倍精度ALU25に
より加算する。第11のステップではレジスタ26−4
に蓄えられている倍精度乗数の下位ワードと倍精度被乗
数の上位ワードの乗算結果の上位ワードをワード選択回
路27で選択し、シフタ23で最上位ビットを拡張して
倍精度データにし、これを選択回路24で選択し、倍精
度乗数の上位ワードと倍精度被乗数の上位ワードとの乗
算結果とAの上位ワードの最上位ビットを拡張したもの
の倍精度加算結果が蓄えられているレジスタ26−5と
倍精度ALU25により加算する。
るAの上位ワードをワード選択回路27で選択し、シフ
タで最上位ビットを拡張して倍精度データにし、これを
選択回路24で選択し、倍精度ALU25で倍精度乗数
の上位ワードと倍精度被乗数の上位ワードの乗算結果が
蓄えられているレジスタ26−5に倍精度ALU25に
より加算する。第11のステップではレジスタ26−4
に蓄えられている倍精度乗数の下位ワードと倍精度被乗
数の上位ワードの乗算結果の上位ワードをワード選択回
路27で選択し、シフタ23で最上位ビットを拡張して
倍精度データにし、これを選択回路24で選択し、倍精
度乗数の上位ワードと倍精度被乗数の上位ワードとの乗
算結果とAの上位ワードの最上位ビットを拡張したもの
の倍精度加算結果が蓄えられているレジスタ26−5と
倍精度ALU25により加算する。
第12のステップでは、レジスタ26−2に蓄えられて
いる倍精度乗数の上位ワードと倍精度被乗数の下位ワー
ドの乗算結果の上位ワードをワード選択回路27で選択
し、シフタ23で最上位ビットを拡張して倍精度データ
にし、これを選択回路24で選択し、倍精度乗数の上位
ワードと倍精度被乗数の上位ワードとの乗算結果とAの
上位ワードの最上位ビットを拡張したものと倍精度乗数
の下位ワードと倍精度被乗数の上位ワードの乗算結果と
をすべて倍精度加算した結果が蓄えられているレジスタ
26−5と倍精度ALU25により加算する。また、次
のステップで使用する単精度メモリ28のアドレスをポ
ート29から指定する。
いる倍精度乗数の上位ワードと倍精度被乗数の下位ワー
ドの乗算結果の上位ワードをワード選択回路27で選択
し、シフタ23で最上位ビットを拡張して倍精度データ
にし、これを選択回路24で選択し、倍精度乗数の上位
ワードと倍精度被乗数の上位ワードとの乗算結果とAの
上位ワードの最上位ビットを拡張したものと倍精度乗数
の下位ワードと倍精度被乗数の上位ワードの乗算結果と
をすべて倍精度加算した結果が蓄えられているレジスタ
26−5と倍精度ALU25により加算する。また、次
のステップで使用する単精度メモリ28のアドレスをポ
ート29から指定する。
第13のステップはAが蓄えられているレジスタ26−
1の下位ワードをワード選択回路27で選択した単精度
メモリ28に格納するこれは倍精度乗数の乗算結果の下
から2番目の単精度ワードとなる。(但しここで、1ワ
ットはn−1ビット)また第12ステップを得られたレ
ジスタ26−5の結果が倍精度乗算の乗算結果の上位2
nワードとなっている。
1の下位ワードをワード選択回路27で選択した単精度
メモリ28に格納するこれは倍精度乗数の乗算結果の下
から2番目の単精度ワードとなる。(但しここで、1ワ
ットはn−1ビット)また第12ステップを得られたレ
ジスタ26−5の結果が倍精度乗算の乗算結果の上位2
nワードとなっている。
(本発明の効果) 以上に示したように本発明によるプロセッサを用いるこ
とにより倍精度乗算を、高速に行うことができる。
とにより倍精度乗算を、高速に行うことができる。
また容易に考えられるようにワード選択回路に倍精度レ
ジスタを含ませ、内部データバスからはワード選択回路
と同じ形式の上位ワードと下位ワードが別々にアクセス
できるようにしてワード選択回路内の倍精度データを汎
用に扱った構成も本発明の範囲である。
ジスタを含ませ、内部データバスからはワード選択回路
と同じ形式の上位ワードと下位ワードが別々にアクセス
できるようにしてワード選択回路内の倍精度データを汎
用に扱った構成も本発明の範囲である。
第1図は本発明における倍精度乗算方式を説明するため
の図、 第2図は本発明の倍精度乗算器の構成を示す。ブロック
図、第3図はワード選択回路の構成例を示す図、第4図
は、本発明に関わる倍精度乗算の手順を説明するための
図である。 第2図において 21……内部データバス、22……単精度乗算器、 23……シフタ、24……選択回路、25……倍精度算
術論理演算回路、26……レジスタファイル、 27……ワード選択回路、28……単精度メモリ、であ
る。
の図、 第2図は本発明の倍精度乗算器の構成を示す。ブロック
図、第3図はワード選択回路の構成例を示す図、第4図
は、本発明に関わる倍精度乗算の手順を説明するための
図である。 第2図において 21……内部データバス、22……単精度乗算器、 23……シフタ、24……選択回路、25……倍精度算
術論理演算回路、26……レジスタファイル、 27……ワード選択回路、28……単精度メモリ、であ
る。
Claims (1)
- 【請求項1】定められた有限語長を単精度として扱う2
の補数乗算器を有するプロセッサにおいて、単精度の内
部データバスと前記内部データバスに2つの入力が接続
され倍精度の乗算結果を出力する単精度乗算器と、前記
内部データバスに入力が接続される単精度のデータの最
上位ビットを拡張して倍精度にして出力するシフタと、
前記単精度乗算器の出力か、前記シフタの出力のいずれ
かを選択して出力する選択回路と、前記選択回路の出力
と後述するレジスタファイルの1つのレジスタの出力と
の間の算術論理演算を行ないその結果を前記レジスタフ
ァイルの1つのレジスタに出力する倍精度算術論理演算
回路と、前記倍精度算術論理演算回路の出力を保持する
複数のレジスタから構成される倍精度のレジスタファイ
ルと、前記レジスタファイルの中の1つのレジスタの上
位の単精度データ或いは、残りの下位データの最上位ビ
ットに0をつけて得られる単精度データを選択して前記
内部データバスに出力するワード選択回路と、前記単精
度乗算器にデータを供給する複数ワードの単精度メモリ
とから少くとも構成されることを特徴とする倍精度乗算
器。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59084578A JPH061438B2 (ja) | 1984-04-26 | 1984-04-26 | 倍精度乗算器 |
DE8585302908T DE3585928D1 (de) | 1984-04-26 | 1985-04-25 | Multiplizierer mit doppelter genauigkeit. |
US06/727,020 US4722068A (en) | 1984-04-26 | 1985-04-25 | Double precision multiplier |
EP85302908A EP0161089B1 (en) | 1984-04-26 | 1985-04-25 | Double precision multiplier |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59084578A JPH061438B2 (ja) | 1984-04-26 | 1984-04-26 | 倍精度乗算器 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS60229140A JPS60229140A (ja) | 1985-11-14 |
JPH061438B2 true JPH061438B2 (ja) | 1994-01-05 |
Family
ID=13834554
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59084578A Expired - Lifetime JPH061438B2 (ja) | 1984-04-26 | 1984-04-26 | 倍精度乗算器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4722068A (ja) |
EP (1) | EP0161089B1 (ja) |
JP (1) | JPH061438B2 (ja) |
DE (1) | DE3585928D1 (ja) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6115233A (ja) * | 1984-06-30 | 1986-01-23 | Sony Corp | 乗算器 |
JPS6211933A (ja) * | 1985-07-09 | 1987-01-20 | Nec Corp | 演算回路 |
JPS62256129A (ja) * | 1986-04-30 | 1987-11-07 | Sony Corp | 演算処理装置 |
GB8808569D0 (en) * | 1988-04-12 | 1988-05-11 | Texas Instruments Ltd | Improvements in/relating to digital signal processors |
US4893268A (en) * | 1988-04-15 | 1990-01-09 | Motorola, Inc. | Circuit and method for accumulating partial products of a single, double or mixed precision multiplication |
US4901268A (en) * | 1988-08-19 | 1990-02-13 | General Electric Company | Multiple function data processor |
JP2583599B2 (ja) * | 1989-02-14 | 1997-02-19 | 富士通株式会社 | 2進整数乗算処理方法 |
US5031135A (en) * | 1989-05-19 | 1991-07-09 | Hitachi Micro Systems, Inc. | Device for multi-precision and block arithmetic support in digital processors |
US5625713A (en) * | 1991-08-09 | 1997-04-29 | Ricoh Corporation | Apparatus and method for increasing the throughput of an acoustic or image compression system |
US5136537A (en) * | 1991-11-19 | 1992-08-04 | Advanced Micro Devices, Inc. | Method and apparatus for determining the product of two numbers |
US5631859A (en) * | 1994-10-27 | 1997-05-20 | Hewlett-Packard Company | Floating point arithmetic unit having logic for quad precision arithmetic |
US5805475A (en) * | 1995-02-10 | 1998-09-08 | International Business Machines Corporation | Load-store unit and method of loading and storing single-precision floating-point registers in a double-precision architecture |
US5678016A (en) * | 1995-08-08 | 1997-10-14 | International Business Machines Corporation | Processor and method for managing execution of an instruction which determine subsequent to dispatch if an instruction is subject to serialization |
US5751622A (en) * | 1995-10-10 | 1998-05-12 | Chromatic Research, Inc. | Structure and method for signed multiplication using large multiplier having two embedded signed multipliers |
US5787025A (en) * | 1996-02-28 | 1998-07-28 | Atmel Corporation | Method and system for performing arithmetic operations with single or double precision |
DE19637369C2 (de) * | 1996-09-13 | 2001-11-15 | Micronas Gmbh | Digitaler Signalprozessor mit Multipliziereinrichtung und -Verfahren |
KR100222032B1 (ko) * | 1996-12-24 | 1999-10-01 | 윤종용 | 디지탈 신호 처리기에서의 2배 정밀도 곱셈연산 수행방법 |
US6055619A (en) * | 1997-02-07 | 2000-04-25 | Cirrus Logic, Inc. | Circuits, system, and methods for processing multiple data streams |
US6259957B1 (en) | 1997-04-04 | 2001-07-10 | Cirrus Logic, Inc. | Circuits and methods for implementing audio Codecs and systems using the same |
US6233597B1 (en) | 1997-07-09 | 2001-05-15 | Matsushita Electric Industrial Co., Ltd. | Computing apparatus for double-precision multiplication |
US6347326B1 (en) * | 1999-03-02 | 2002-02-12 | Philips Electronics North America Corporation | N bit by M bit multiplication of twos complement numbers using N/2+1 X M/2+1 bit multipliers |
US6912557B1 (en) * | 2000-06-09 | 2005-06-28 | Cirrus Logic, Inc. | Math coprocessor |
US7124237B2 (en) * | 2002-10-03 | 2006-10-17 | Seagate Technology Llc | Virtual machine emulation in the memory space of a programmable processor |
FR2853425B1 (fr) | 2003-04-07 | 2006-01-13 | Atmel Corp | Sequence de multiplication efficace pour operandes a grands nombres entiers plus larges que le materiel multiplicateur |
US7650374B1 (en) * | 2004-03-02 | 2010-01-19 | Sun Microsystems, Inc. | Hybrid multi-precision multiplication |
JP2006154979A (ja) * | 2004-11-25 | 2006-06-15 | Sony Corp | 浮動小数点数演算回路 |
US7672989B2 (en) | 2005-05-09 | 2010-03-02 | Sandisk Il Ltd. | Large number multiplication method and device |
WO2008022307A2 (en) * | 2006-08-18 | 2008-02-21 | Conexant Systems, Inc. | Systems and methods for implementing a double precision arithmetic memory architecture |
US10037189B2 (en) | 2016-09-20 | 2018-07-31 | Altera Corporation | Distributed double-precision floating-point multiplication |
US11599334B2 (en) * | 2020-06-09 | 2023-03-07 | VeriSilicon Microelectronics | Enhanced multiply accumulate device for neural networks |
US20250036715A1 (en) * | 2021-12-03 | 2025-01-30 | Nippon Telegraph And Telephone Corporation | Data processing device, data processing method, and data processing program |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6083140A (ja) * | 1983-10-14 | 1985-05-11 | Hitachi Ltd | 乗算器 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3871578A (en) * | 1972-10-10 | 1975-03-18 | Digital Equipment Corp | Data processing system for multiplying and intergerizing floating point numbers |
US3814924A (en) * | 1973-03-12 | 1974-06-04 | Control Data Corp | Pipeline binary multiplier |
JPS5534455B2 (ja) * | 1974-05-31 | 1980-09-06 | ||
US4086657A (en) * | 1976-08-18 | 1978-04-25 | The United States Of America As Represented By The Secretary Of The Air Force | Five-stage four-bit complex multiplier |
JPS5759245A (en) * | 1980-09-26 | 1982-04-09 | Fujitsu Ltd | Double-length multiplier |
JPS5899839A (ja) * | 1981-12-10 | 1983-06-14 | Toshiba Corp | 符号付き乗算補正回路 |
-
1984
- 1984-04-26 JP JP59084578A patent/JPH061438B2/ja not_active Expired - Lifetime
-
1985
- 1985-04-25 US US06/727,020 patent/US4722068A/en not_active Expired - Lifetime
- 1985-04-25 DE DE8585302908T patent/DE3585928D1/de not_active Expired - Lifetime
- 1985-04-25 EP EP85302908A patent/EP0161089B1/en not_active Expired - Lifetime
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6083140A (ja) * | 1983-10-14 | 1985-05-11 | Hitachi Ltd | 乗算器 |
Also Published As
Publication number | Publication date |
---|---|
EP0161089A3 (en) | 1988-02-03 |
JPS60229140A (ja) | 1985-11-14 |
DE3585928D1 (de) | 1992-06-04 |
EP0161089A2 (en) | 1985-11-13 |
EP0161089B1 (en) | 1992-04-29 |
US4722068A (en) | 1988-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH061438B2 (ja) | 倍精度乗算器 | |
US5790446A (en) | Floating point multiplier with reduced critical paths using delay matching techniques | |
EP1293891B2 (en) | Arithmetic processor accomodating different finite field size | |
US6209017B1 (en) | High speed digital signal processor | |
WO2018160738A2 (en) | Reconfigurable matrix multiplier system and method | |
US4466077A (en) | Method and apparatus for division employing associative memory | |
JPH07104778B2 (ja) | 浮動小数点数演算処理装置 | |
JP2511914B2 (ja) | 複素乗算器及び複素乗算方法 | |
US9372665B2 (en) | Method and apparatus for multiplying binary operands | |
EP0502782A2 (en) | Microcircuit for the implementation of RSA algorithm and ordinary and modular arithmetic, in particular exponentiation, with large operands | |
CA2329104C (en) | Method and apparatus for calculating a reciprocal | |
JP2597775B2 (ja) | 除算方法および除算装置 | |
US7296049B2 (en) | Fast multiplication circuits | |
US5912904A (en) | Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method | |
JP3660075B2 (ja) | 除算装置 | |
JPH10503311A (ja) | ガロアフィールド多項式乗算/除算回路およびそれを組込むディジタル信号プロセッサ | |
JP3252954B2 (ja) | 乗算方法および乗算回路 | |
JPH0981541A (ja) | 累算器 | |
EP1504338A1 (en) | "emod" a fast modulus calculation for computer systems | |
JPH0831024B2 (ja) | 演算プロセッサ | |
JP3210420B2 (ja) | 整数上の乗算回路 | |
JP2972326B2 (ja) | 平方根計算装置 | |
JPS6259828B2 (ja) | ||
US6643677B2 (en) | Digital arithmetic integrated circuit | |
JPH07253874A (ja) | 演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |