JPH1195981A - 乗算回路 - Google Patents

乗算回路

Info

Publication number
JPH1195981A
JPH1195981A JP9253970A JP25397097A JPH1195981A JP H1195981 A JPH1195981 A JP H1195981A JP 9253970 A JP9253970 A JP 9253970A JP 25397097 A JP25397097 A JP 25397097A JP H1195981 A JPH1195981 A JP H1195981A
Authority
JP
Japan
Prior art keywords
bits
multiplication
circuit
bit
circuits
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.)
Granted
Application number
JP9253970A
Other languages
English (en)
Other versions
JP3479438B2 (ja
Inventor
Naoyoshi Yano
直佳 矢野
Naoyuki Tamura
尚之 田村
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP25397097A priority Critical patent/JP3479438B2/ja
Priority to US09/156,674 priority patent/US6286024B1/en
Publication of JPH1195981A publication Critical patent/JPH1195981A/ja
Priority to US09/906,095 priority patent/US20010044816A1/en
Application granted granted Critical
Publication of JP3479438B2 publication Critical patent/JP3479438B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/53Multiplying only in parallel-parallel fashion, i.e. both operands being entered in parallel
    • G06F7/5324Multiplying 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

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)
  • Advance Control (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【課題】 m/2ビット×n/2ビットの乗算を4組並
列に行うと共に、mビット×nビットの乗算をも行う乗
算回路を提供する。 【解決手段】 乗算回路MA1,MA2,MA3,MA
4は、それぞれ符号付き、符号無しの両方の16ビット
×16ビット乗算を実行する。乗算回路MA1,MA
2,MA3,MA4には、それぞれ被乗数のデータ選択
を行う選択回路Sel1,Sel3,Sel5,Sel
7、および乗数のデータ選択を行う選択回路Sel2,
Sel4,Sel6,Sel8が付加される。連結回路
Con1は、乗算回路MA3からの出力out16_3
と、乗算回路MA4からの出力out16_4とを連結
し、加算回路Add1は、この連結した値を、乗算回路
MA1からの出力out16_1を所定ビットシフトし
たデータおよび乗算回路MA2からの出力out16_
2を所定ビットシフトしたデータと加算して出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理プロセ
ッサやマイクロプロセッサなどの演算回路として使用さ
れる乗算回路に関する。
【0002】
【従来の技術】近年、オーディオデータや画像データな
どを対象としたマルチメディア処理において、プロセッ
サのデータビット幅(例えば32ビットなど)に比べ、
小さいビット幅(例えば16ビットなど)で多数組の乗
算処理を行うことが要求される。しかし、乗算の高速化
には限度があるため、多数組の乗算を行うためには、ビ
ット幅が小さいことを利用して、並列に複数の乗算(例
えば4並列など)を行う。もちろん、通常のビット幅
(例えば32ビットなど)での乗算も処理できなければ
ならない。
【0003】図6は、32ビット×32ビットの乗算機
能と、16ビット×16ビットの乗算を4組並列に行う
機能を全て装備した回路例を示す。32ビット×32ビ
ットの乗算を行う際は、32ビット×32ビット乗算器
51が働き、16ビット×16ビットの乗算を4組行う
際は、16ビット×16ビット乗算器52a,52b,
52c,52dが四つ同時に働く。
【0004】しかし、回路の占有面積が問題となる場合
には、上記のように全ての回路を装備することができな
いため、32ビット×32ビット乗算器のみを用いて乗
算を行う。
【0005】図7は、32ビット×32ビット乗算器の
みを用いて、16ビット×16ビット乗算と32ビット
×32ビット乗算とを行う回路例を示す。16ビット×
16ビットの乗算を行う際は、32ビット×32ビット
乗算器を61a,61b,61c,61dの4ブロック
に分割し、データの伝播が重ならない乗算ブロック61
aと乗算ブロック61dとを2回用いて乗算を行う。ま
た、32ビット×32ビットの乗算を行う際は、通常の
32ビット×32ビット乗算器として扱う。乗算ブロッ
ク61cおよび乗算ブロック61dの出力が、32ビッ
ト×32ビット乗算の場合および16ビット×16ビッ
ト乗算の場合、共に乗算結果の出力となる。なお、16
ビット×16ビット乗算を行う際には、乗算ブロック6
1aと乗算ブロック61dとの間で、データの干渉がお
こらないようにキャリーの伝播を切る機能が必要であ
る。
【0006】ここで以下の説明において、a(被乗数)
×b(乗数)として、mビットデータは0を下位側、
(m−1)を上位側として<(m−1):0>と表す。
32ビット×32ビット演算を行う際の、2の補数表現
された入力データの被乗数をx<31:0>、乗数をy
<31:0>と表す。また、4組の16ビット×16ビ
ット演算を行う際の、2の補数表現された入力データの
被乗数をa1<15:0>,a2<15:0>,a3<
15:0>,a4<15:0>とし、それぞれに対応す
る乗数をb1<15:0>,b2<15:0>,b3<
15:0>,b4<15:0>とする。
【0007】各乗算ブロック61a,61b,61c,
61dごとに、データ入力の前段に被乗数のデータ選択
を行う選択回路Sel1,Sel3,Sel5,Sel
7、および乗数のデータ選択を行う選択回路Sel2,
Sel4,Sel6,Sel8をそれぞれ付加し、4並
列の16ビット×16ビット乗算に対応する。
【0008】選択回路Sel1には、32ビット乗算の
下位16ビット被乗数データx<15:0>と、4並列
16ビット乗算の被乗数データa1<15:0>,a3
<15:0>とが入力され、選択回路Sel2には、3
2ビット乗算の下位16ビット乗数データy<15:0
>と、4並列16ビット乗算の乗数データb1<15:
0>,b3<15:0>とが入力される。同様に、選択
回路Sel3には、32ビット乗算の上位16ビット被
乗数データx<31:16>と0とが入力され、選択回
路Sel4には、y<15:0>と0とが入力される。
選択回路Sel5には、データx<15:0>と0とが
入力され、選択回路Sel6には、32ビット乗算の上
位16ビット乗数データy<31:16>と、0とが入
力される。選択回路Sel7には、データx<31:1
6>と、4並列16ビット乗算の被乗数データa2<1
5:0>,a4<15:0>とが入力され、選択回路S
el8には、データy<31:16>と、4並列16ビ
ット乗算の乗数データb2<15:0>,b4<15:
0>とが入力される。
【0009】次に上記乗算器の動作を説明する。32ビ
ット×32ビット乗算の場合には、乗算ブロック61a
は、選択回路Sel1によって被乗数データx<15:
0>、選択回路Sel2によって乗数データy<15:
0>が選択される。同様に、乗算ブロック61bは、選
択回路Sel3によって被乗数データx<31:16
>、選択回路Sel4にによって乗数データy<15:
0>が選択される。乗算ブロック61cは、選択回路S
el5によって被乗数データx<15:0>、選択回路
Sel6にによって乗数データy<31:16>が選択
される。乗算ブロック61dは、選択回路Sel7によ
って被乗数データx<31:16>、選択回路Sel8
にによって乗数データy<31:16>が選択される。
そして通常通り、入力データから部分積を生成し、部分
積の累積加算を行えば、32ビット×32ビット乗算結
果が得られる。
【0010】16ビット×16ビット乗算の場合には、
以下の順で演算する。演算すべき4組の16ビット×1
6ビットデータを、被乗数、乗数の順に、第1組:a1
<15:0>,b1<15:0>、第2組:a2<1
5:0>,b2<15:0>、第3組:a3<15:0
>,b3<15:0>、第4組:a4<15:0>,b
4<15:0>とする。最初の演算サイクルで第1組、
第2組、次の演算サイクルで第3組、第4組の乗算を実
行する。
【0011】まず、最初の演算サイクルでは、乗算ブロ
ック61aには、被乗数a1<15:0>、乗数b1<
15:0>が入力されるように選択回路Sel1,Se
l2にて入力データを選択する。また乗算ブロック61
dには、被乗数a2<15:0>、乗数b2<15:0
>が入力されるように選択回路Sel7,Sel8にて
入力データを選択する。また乗算ブロック61b,乗算
ブロック61cは、累積加算時に余分なデータの伝播を
避けるために、被乗数、乗数共に、選択回路Sel3,
Sel5および選択回路Sel4,Sel6にて入力デ
ータ0を選択する。この状態で、32ビット×32ビッ
トの乗算を行うと、出力64ビットのうち、上位32ビ
ットに第2組:a2×b2の乗算結果が、下位32ビッ
トに第1組:a1×b1の乗算結果が出力される。
【0012】次の演算サイクルでは、同様にして第3
組:a3×b3,第4組:a4×b4の乗算結果を求め
る。こうして計2回の演算サイクルで4組の乗算結果が
求められる。
【0013】
【発明が解決しようとする課題】しかしながら、上記図
6の例では、占有面積の大きい乗算器が多数存在し、し
かも命令によって必ず動作しない回路が存在し、無駄が
多い。このため面積を重視する場合には非常に大きな問
題となる。
【0014】上記図7の例では、16ビット×16ビッ
トの乗算ブロック四つに相当する乗算ブロックを搭載し
ているにもかかわらず、4組の16ビット×16ビット
乗算結果を得るためには、2回の演算サイクルを要す
る。すなわち、本従来例では、16ビット×16ビット
の乗算の性能から考えると、2倍もの回路面積を占有し
ているということになる。
【0015】本発明は、回路面積を増大すること無く、
かつ回路の機能を有効に利用して演算時間も増加させる
こと無く、m(mは偶数の自然数)/2ビット×n(n
は偶数の自然数)/2ビットの乗算を4組並列に行うと
共に、mビット×nビットの乗算をも行う乗算回路を提
供することを目的とする。
【0016】
【課題を解決するための手段】上述の課題を解決するた
め、本発明の請求項1に記載の乗算回路は、m/2ビッ
ト×n/2ビットの乗算を行う四つの乗算回路と、これ
らの各乗算回路の被乗数入力側に接続され、複数の被乗
数から一つを選択する四つの被乗数選択回路と、前記各
乗算回路の乗数入力側に接続され、複数の乗数から一つ
を選択する四つの乗数選択回路と、前記各乗算回路から
の四つの出力データのうち、二つの出力データを連結す
る連結回路と、この連結回路によって連結されたデータ
と、前記四つの出力データのうちの他の二つの出力デー
タとを所定のビット位置にあわせて加算する加算回路と
を備え、四組のm/2ビット×n/2ビットの乗算を行
う際には、前記各被乗数選択回路が各々のm/2ビット
の被乗数を選択し、前記各乗数選択回路が対応する各々
のn/2ビットの乗数を選択して前記各乗算回路に入力
して4組の乗算を並列に行い、mビット×nビットの乗
算を行う際には、前記各被乗数選択回路がmビットのう
ち上位または下位のm/2ビットの被乗数を選択し、前
記各乗数選択回路がnビットのうち上位または下位のn
/2ビットの乗数を選択して前記各乗算回路に入力し、
これら各乗算回路の四つの乗算結果のうち、(mビット
のうち下位m/2ビット)×(nビットのうち下位n/
2ビット)および(mビットのうち上位m/2ビット)
×(nビットのうち上位n/2ビット)の乗算結果を前
記連結回路にて連結し、この連結された乗算結果と、他
の二つの乗算結果とを前記加算回路にてそれぞれ所定の
ビット位置にあわせて加算することを特徴とする構成を
有する。
【0017】上記の構成によって、本発明の請求項1に
記載の乗算回路は、四つの乗算回路からの乗算結果のう
ち二つの結果を連結して用いることによって、加算すべ
きデータを三つに削減することができ、四組のm/2ビ
ット×n/2ビット乗算とmビット×nビット乗算とを
行えるようしても、処理時間の増大を小さく抑えること
ができ、m/2ビット×n/2ビット乗算回路およびm
ビット×nビット乗算回路の両方を搭載する必要が無
い。
【0018】本発明の請求項2に記載の乗算回路は、m
/2ビット×n/2ビットの乗算を行う二つの乗算回路
と、これらの各乗算回路の被乗数入力側に接続され、複
数の被乗数から一つを選択する二つの被乗数選択回路
と、前記各乗算回路の乗数入力側に接続され、複数の乗
数から一つを選択する二つの乗数選択回路と、前記各乗
算回路からの二つの出力データを連結する連結回路と、
前記各乗算回路に対応して、それぞれの出力データを保
持する第1および第2の出力保持回路と、これら第1お
よび第2の出力保持回路からの二つの出力データを加算
する第1の加算回路と、この第1の加算回路からの出力
データと、前記連結回路によって連結されたデータとを
所定のビット位置にあわせて加算する第2の加算回路と
を備え、四組のm/2ビット×n/2ビットの乗算を行
う際には、前記各被乗数選択回路が2組のm/2ビット
の被乗数を選択し、前記各乗数選択回路が各被乗数に対
応するn/2ビットの乗数を選択して、前記各乗算回路
に入力して2組の乗算を並列に行い、それら二つの出力
データを前記第1および第2の出力保持回路にて保持
し、さらに、再度、前記各被乗数選択回路が残りの2組
のm/2ビットの被乗数をそれぞれ選択し、前記各乗数
選択回路が各被乗数に対応する残りのn/2ビットの乗
数を選択して、前記各乗算回路に入力して残りの2組の
乗算を並列に行い、mビット×nビットの乗算を行う際
には、一方の乗算回路に接続される被乗数選択回路がm
ビットのうち上位m/2ビットの被乗数を選択し、対応
する乗数選択回路がnビットのうち下位n/2ビットの
乗数を選択して、他方の乗算回路に接続される被乗数選
択回路がmビットのうち下位m/2ビットの被乗数を選
択し、対応する乗数選択回路がnビットのうち上位n/
2ビットの乗数を選択して、前記各乗算回路に入力して
(mビットのうち上位m/2ビット)×(nビットのう
ち下位n/2ビット)および(mビットのうち下位m/
2ビット)×(nビットのうち上位n/2ビット)の2
組の乗算を並列に行い、それら二つの出力データを前記
第1および第2の出力保持回路にて保持し、さらに、再
度、一方の乗算回路に接続される被乗数選択回路がmビ
ットのうち下位m/2ビットの被乗数を選択し、対応す
る乗数選択回路がnビットのうち下位n/2ビットの乗
数を選択して、他方の乗算回路に接続される被乗数選択
回路がmビットのうち上位m/2ビットの被乗数を選択
し、対応する乗数選択回路がnビットのうち上位n/2
ビットの乗数を選択して、前記各乗算回路に入力して
(mビットのうち下位m/2ビット)×(nビットのう
ち下位n/2ビット)および(mビットのうち上位m/
2ビット)×(nビットのうち上位n/2ビット)の2
組の乗算を並列に行い、それら二つの乗算結果を前記連
結回路にて連結すると共に、前記第1および第2の出力
保持回路に保持されている2組の出力データを前記第1
の加算回路にて加算し、この第1の加算回路の加算結果
と前記連結回路にて連結されたデータとを、前記第2の
加算回路にて所定のビット位置にあわせて加算すること
を特徴とする。
【0019】上記の構成によって、本発明の請求項2に
記載の乗算回路は、乗算回路を四つから二つに削減し
て、2回に分けて実行することによって、1回目に乗算
した二つの乗算結果の加算を、2回目の乗算の最中に実
行できる。
【0020】本発明の請求項3に記載の乗算回路は、m
/2ビット×n/2ビットの乗算を行う二つの乗算回路
と、これらの各乗算回路の被乗数入力側に接続され、複
数の被乗数から一つを選択する二つの被乗数選択回路
と、前記各乗算回路の乗数入力側に接続され、複数の乗
数から一つを選択する二つの乗数選択回路と、前記各乗
算回路からの二つの出力データを連結する連結回路と、
前記各乗算回路に対応して、それぞれの出力データを保
持する第1および第2の出力保持回路と、二つのデータ
を加算する加算回路と、この加算回路の加算結果を保持
する加算出力保持回路と、前記加算回路への入力データ
を切換え選択する加算入力選択回路とを備え、四組のm
/2ビット×n/2ビットの乗算を行う際には、前記各
被乗数選択回路が2組のm/2ビットの被乗数をそれぞ
れ選択し、前記各乗数選択回路が各被乗数に対応するn
/2ビットの乗数を選択して、前記各乗算回路に入力し
て2組の乗算を並列に行い、それら二つの出力データを
前記第1および第2の出力保持回路にて保持し、さら
に、再度、前記各被乗数選択回路が残りの2組のm/2
ビットの被乗数をそれぞれ選択し、前記各乗数選択回路
が各被乗数に対応する残りのn/2ビットの乗数を選択
して、前記各乗算回路に入力して残りの2組の乗算を並
列に行い、mビット×nビットの乗算を行う際には、一
方の乗算回路に接続される被乗数選択回路がmビットの
うち上位m/2ビットの被乗数を選択し、対応する乗数
選択回路がnビットのうち下位n/2ビットの乗数を選
択して、他方の乗算回路に接続される被乗数選択回路が
mビットのうち下位m/2ビットの被乗数を選択し、対
応する乗数選択回路がnビットのうち上位n/2ビット
の乗数を選択して、前記各乗算回路に入力して(mビッ
トのうち上位m/2ビット)×(nビットのうち下位n
/2ビット)および(mビットのうち下位m/2ビッ
ト)×(nビットのうち上位n/2ビット)の2組の乗
算を並列に行い、それら二つの出力データを前記第1お
よび第2の出力保持回路にて保持し、さらに、再度、一
方の乗算回路に接続される被乗数選択回路がmビットの
うち下位m/2ビットの被乗数を選択し、対応する乗数
選択回路がnビットのうち下位n/2ビットの乗数を選
択して、他方の乗算回路に接続される被乗数選択回路が
mビットのうち上位m/2ビットの被乗数を選択し、対
応する乗数選択回路がnビットのうち上位n/2ビット
の乗数を選択して、前記各乗算回路に入力して(mビッ
トのうち下位m/2ビット)×(nビットのうち下位n
/2ビット)および(mビットのうち上位m/2ビッ
ト)×(nビットのうち上位n/2ビット)の2組の乗
算を並列に行うと共に、前記第1および第2の出力保持
回路にて保持された加算結果を前記加算入力選択回路に
て選択して、前記加算回路にて加算し、その結果を前記
加算出力保持回路にて保持し、前記第1および第2の出
力保持回路に保持されている2組の出力データを前記連
結回路にて連結し、この連結回路にて連結されたデータ
と前記加算出力保持回路に保持された加算結果とを、前
記加算入力選択回路にて選択して、前記加算回路にて所
定のビット位置にあわせて加算することを特徴とする。
【0021】上記の構成によって、本発明の請求項3に
記載の乗算回路は、加算回路を一つに削減して、2回使
用することによって、請求項2に記載の乗算回路と比較
して面積を削減できる。
【0022】
【発明の実施の形態】以下、図面を参照して本発明の実
施の形態を詳細に説明する。
【0023】図1は、本発明の第1の実施の形態の乗算
回路のブロック図である。まず32ビット×32ビット
演算を行う際の、2の補数表現された入力データの被乗
数をx<31:0>、乗数をy<31:0>と表す。ま
た、4並列の16ビット×16ビット演算を行う際の、
2の補数表現された入力データの被乗数をa1<15:
0>,a2<15:0>,a3<15:0>,a4<1
5:0>とし、それぞれに対応する乗数をb1<15:
0>,b2<15:0>,b3<15:0>,b4<1
5:0>とする。
【0024】乗算回路MA1,MA2,MA3,MA4
は、それぞれ符号付き、符号無しの両方の16ビット×
16ビット乗算を実行する。乗算回路MA1には、デー
タ入力の前段に被乗数のデータ選択を行う選択回路Se
l1および乗数のデータ選択を行う選択回路Sel2が
付加されている。選択回路Sel1には、32ビット乗
算の上位16ビット被乗数データx<31:16>と、
4並列16ビット乗算の被乗数データのうちa1<1
5:0>とが入力され、選択回路Sel2には、32ビ
ット乗算の下位16ビット乗数データy<15:0>
と、4並列16ビット乗算の乗数データのうちのb1<
15:0>とが入力される。そして乗算回路MA1は、
出力out16_1を出力する。
【0025】同様に、乗算回路MA2,MA3,MA4
には、それぞれ被乗数のデータ選択を行う選択回路Se
l3,Sel5,Sel7、および乗数のデータ選択を
行う選択回路Sel4,Sel6,Sel8が付加され
る。
【0026】選択回路Sel3には、32ビット乗算の
下位16ビット被乗数データx<15:0>と、4並列
16ビット乗算の被乗数データのうちa2<15:0>
とが入力され、選択回路Sel4には、32ビット乗算
の上位16ビット乗数データy<31:16>と、4並
列16ビット乗算の乗数データのうちのb2<15:0
>とが入力される。そして乗算回路MA2は、出力ou
t16_2を出力する。
【0027】選択回路Sel5には、32ビット乗算の
下位16ビット被乗数データx<15:0>と、4並列
16ビット乗算の被乗数データのうちa3<15:0>
とが入力され、選択回路Sel6には、32ビット乗算
の下位16ビット乗数データy<15:0>と、4並列
16ビット乗算の乗数データのうちのb3<15:0>
とが入力される。そして乗算回路MA3は、出力out
16_3を出力する。
【0028】選択回路Sel7には、32ビット乗算の
上位16ビット被乗数データx<31:16>と、4並
列16ビット乗算の被乗数データのうちa4<15:0
>とが入力され、選択回路Sel8には、32ビット乗
算の上位16ビット乗数データy<31:16>と、4
並列16ビット乗算の乗数データのうちのb4<15:
0>とが入力される。そして乗算回路MA4は、出力o
ut16_4を出力する。
【0029】連結回路Con1は、乗算回路MA3から
の出力out16_3と、乗算回路MA4からの出力o
ut16_4とを、出力out16_4を上位側、出力
out16_3を下位側として連結する。加算回路Ad
d1は、この連結した値と、乗算回路MA1からの出力
out16_1を<47:16>のビット位置にシフト
した値と、乗算回路MA2からの出力out16_2を
<47:16>のビット位置にシフトした値とを加算し
て出力する。
【0030】上記構成によって、4組の16ビット×1
6ビット乗算を行う場合、選択回路Sel1にて16ビ
ットデータa1<15:0>を選択し、同様に選択回路
Sel2にてb1、選択回路Sel3にてa2、選択回
路Sel4にてb2、選択回路Sel5にてa3、選択
回路Sel6にてb3、選択回路Sel7にてa4、選
択回路Sel8にてb4を選択して、それぞれ乗算回路
MA1,MA2,MA3,MA4に入力する。そして各
乗算回路の出力out16_1,out16_2,ou
t16_3,out16_4が乗算結果となる。
【0031】次に、32ビット×32ビット乗算を行う
場合について説明する。まず、2の補数表示された、3
2ビットデータx<31:0>とy<31:0>との積
は、以下の式にて求められる。
【0032】まず、入力データx,y共に最上位ビット
を符号ビットとして、 (−x31*231+x30*230+…+x16*216+x15*215 +…+x*2)×(−y31*231+y30*230+…+y16*2 +y15*215+…+y*2) =(−x31*215+x30*214+…+x16*2)×(−y31*215 +y30*214+…+y16*2)*231 +(−x31*215+x30*214+…+x16*2)×(y15*2 +y14*214+…+y*2)*215 +(x15*215+x14*214+…+x*2)×(−y31*215 +y30*214+…+y16*2)*215 +(x15*215+x14*214+…+x*2)×(y15*215+ y14*214+…+y*2) =x<31:16>×y<31:16>*231+x<31:16>×y<15 :0>*215+x<15:0>×y<31:16>*215+x<15:0> ×y<15:0> =Z1+Z2+Z3+Z4・・・(A) ただし、Z1=x<15:0>×y<15:0>、Z2
=x<15:0>×y<31:16>*215、Z3=
x<31:16>×y<15:0>*215、Z4=x
<31:16>×y<31:16>*231とする。
【0033】以上によって、32ビット×32ビット乗
算:x<31:0>×y<31:0>の結果を得るため
には、部分積Z1,Z2,Z3,Z4をそれぞれ求め、
Z1+Z2+Z3+Z4を実行すれば良い。
【0034】図2は、部分積Z1,Z2,Z3,Z4の
出力結果のビット位置を示す。図に示されるように、Z
1とZ4とは、ビット位置が全く重ならないので、連結
して一つのデータとして扱うことが可能である。すなわ
ちZ1とZ4とを連結したデータをZ14とすれば、Z
14+Z2+Z3を計算することによって、32ビット
×32ビット乗算:x<31:0>×y<31:0>の
結果が得られる。
【0035】前述の図1の乗算回路MA1でZ3を、M
A2でZ2を、MA3でZ1を、MA4でZ4を計算す
るには、選択回路Sel1にてデータx<31:16>
を選択し、同様に選択回路Sel2にてy<15:0>
を、選択回路Sel3にてx<15:0>を、選択回路
Sel4にてy<31:16>を、選択回路Sel5に
てx<15:0>を、選択回路Sel6にてy<15:
0>を、選択回路Sel7にてx<31:16>を、選
択回路Sel8にてy<31:16>を選択する。
【0036】この時、式(A)より、Z1は被乗数、乗
数共に符号無しデータ、Z2は被乗数が符号無しデー
タ、乗数が符号付きデータ(2の補数表示データ)、Z
3は被乗数が符号付きデータ、乗数が符号無しデータ、
Z4は被乗数、乗数共に符号付きデータとして扱う必要
がある。
【0037】上記入力データに応じた乗算結果は、出力
out16_1を所定ビット(16ビット)シフトした
ものがZ3、out16_2を所定ビット(16ビッ
ト)シフトしたものがZ2、out16_3がZ1、o
ut16_4を所定ビット(32ビット)シフトしたも
のがZ4に対応する。このため、連結回路Con1に
て、out16_3とout16_4とを、out16
_4を上位側として連結し、さらに加算回路Add1に
て、連結した結果とout16_1を所定ビット(16
ビット)シフトしたものおよびout16_2を所定ビ
ット(16ビット)シフトしたものと加算することによ
って、32ビット×32ビットの乗算結果が得られる。
【0038】なお、上記加算回路Add1は、順次桁上
げ加算器(carry propagation adder) に限らず、桁上げ
保存加算器(carry save adder)を用いることも可能であ
る。
【0039】図3は、本発明の第2の実施の形態の乗算
回路のブロック図である。各入力データは、第1の実施
の形態と同様である。
【0040】乗算回路MA11,MA12は、それぞれ
符号付き、符号無しの両方の16ビット×16ビット乗
算を実行する。乗算回路MA11には、データ入力の前
段に被乗数のデータ選択を行う選択回路Sel11およ
び乗数のデータ選択を行う選択回路Sel12が付加さ
れている。選択回路Sel11には、32ビット乗算の
被乗数データ上位16ビットx<31:16>および下
位16ビットx<15:0>と、4並列16ビット乗算
の被乗数データのうちa1<15:0>,a3<15:
0>とが入力され、選択回路Sel12には、32ビッ
ト乗算の乗数データ下位16ビットy<15:0>と、
4並列16ビット乗算の乗数データのうちのb1<1
5:0>,b3<15:0>とが入力される。そして乗
算回路MA11は、出力out16_11を出力する。
【0041】同様に、乗算回路MA12には、被乗数の
データ選択を行う選択回路Sel13および乗数のデー
タ選択を行う選択回路Sel14が付加される。
【0042】選択回路Sel13には、32ビット乗算
の被乗数データ上位16ビットx<31:16>および
下位16ビットx<15:0>と、4並列16ビット乗
算の被乗数データのうちa2<15:0>,a4<1
5:0>とが入力され、選択回路Sel14には、32
ビット乗算の乗数データ上位16ビットy<31:16
>と、4並列16ビット乗算の乗数データのうちのb2
<15:0>,b4<15:0>とが入力される。そし
て乗算回路MA12は、出力out16_12を出力す
る。
【0043】レジスタReg1は、乗算回路MA11か
らの出力out16_11を保持し、レジスタReg2
は、乗算回路MA12からの出力out16_12を保
持する。加算回路Add11は、レジスタReg1の出
力とレジスタReg2の出力とを加算する。
【0044】また連結回路Con11は、乗算回路MA
11からの出力out16_11と、乗算回路MA12
からの出力out16_12とを、出力out16_1
2を上位側、出力out16_11を下位側として連結
して出力out16_cとする。加算回路Add12
は、この連結した出力out16_cと、加算回路Ad
d11からの出力を<47:16>のビット位置にシフ
トしたデータとを加算して出力する。
【0045】上記構成によって、4組の16ビット×1
6ビット乗算を行う場合、2サイクルタイムを要して、
以下の動作を行う。
【0046】第1サイクル:選択回路Sel11にて1
6ビット乗算の被乗数データa1<15:0>を選択
し、同様に選択回路Sel12にて16ビット乗算の乗
数データb1<15:0>を、選択回路Sel13にて
16ビット乗算の被乗数データa2<15:0>を、選
択回路Sel14にて16ビット乗算の乗数データb2
<15:0>を選択する。
【0047】乗算回路MA11,MA12は、それぞれ
入力されたデータを乗算して、その結果を出力out1
6_11,out16_12に出力し、レジスタReg
1,レジスタReg2にて保持する。
【0048】第2サイクル:選択回路Sel11にて1
6ビット乗算の被乗数データa3<15:0>を選択
し、同様に選択回路Sel12にて16ビット乗算の乗
数データb3<15:0>を、選択回路Sel13にて
16ビット乗算の被乗数データa4<15:0>を、選
択回路Sel14にて16ビット乗算の乗数データb4
<15:0>を選択する。
【0049】乗算回路MA11,MA12は、それぞれ
入力されたデータを乗算して、その結果を出力out1
6_11,out16_12に出力する。そして先にレ
ジスタReg1,レジスタReg2に保持されたデータ
とあわせて、計4組の16ビット×16ビット乗算結果
が得られる。
【0050】次に、32ビット×32ビット乗算を行う
場合も、4組の16ビット×16ビット乗算と同様に2
サイクルタイムを要する。
【0051】第1サイクル:式(A)のZ3を乗算回路
MA11にて、Z2を乗算回路MA12にて求めるた
め、選択回路Sel11にて32ビット乗算の被乗数デ
ータ上位16ビットx<31:16>を選択し、同様に
選択回路Sel12にて32ビット乗算の乗数データ下
位16ビットy<15:0>を、選択回路Sel13に
て32ビット乗算の被乗数データ下位16ビットx<1
5:0>を、選択回路Sel14にて32ビット乗算の
乗数データ上位16ビットy<31:16>を選択す
る。
【0052】乗算回路MA11,MA12は、それぞれ
入力されたデータを乗算して、その結果を出力out1
6_11,out16_12に出力し、レジスタReg
1,レジスタReg2にて保持する。
【0053】第2サイクル:式(A)のZ1を乗算回路
MA11にて、Z4を乗算回路MA12にて求めるた
め、選択回路Sel11にて32ビット乗算の被乗数デ
ータ下位16ビットx<15:0>を選択し、同様に選
択回路Sel12にて32ビット乗算の乗数データ下位
16ビットy<15:0>を、選択回路Sel13にて
32ビット乗算の被乗数データ上位16ビットx<3
1:16>を、選択回路Sel14にて32ビット乗算
の乗数データ上位16ビットy<31:16>を選択す
る。
【0054】乗算回路MA11,MA12は、それぞれ
入力されたデータを乗算して、その結果を出力out1
6_11,out16_12に出力し、out16_1
2を上位側、out16_11を下位側として連結し
て、この結果をout16_cとする。
【0055】また第1サイクルで求められてレジスタR
eg1に保持されたデータと,レジスタReg2に保持
されたデータとを、加算回路Add11にて加算する。
その加算結果を<47:16>のビット位置にあわせて
シフトし、加算回路Add12にてシフトした結果と連
結結果out16_cとを加算して出力し、32ビット
×32ビット乗算結果を得る。
【0056】なお、本実施の形態においても加算回路A
dd11,12は、順次桁上げ加算器に限らず、桁上げ
保存加算器を用いることも可能である。また本実施の形
態では、乗数側を固定して被乗数側を切り替えたが、被
乗数側を固定して乗数側を切り替えても同様の結果が得
られる。
【0057】図4は、本発明の第3の実施の形態の乗算
回路のブロック図である。本実施の形態は、第2の実施
の形態と比べ、各入力データおよび乗算回路、連結回
路、レジスタなどの構成は同様である。本実施の形態で
は、第2の実施の形態の加算回路Add11および加算
回路Add12の機能を、加算回路Add21にて兼用
して実行するため、加算出力保持回路と加算入力選択回
路とを備える。
【0058】本実施の形態で4組の16ビット×16ビ
ット乗算を行う場合の動作は、前述の第2の実施の形態
と同様である。
【0059】本実施の形態の32ビット×32ビット乗
算において、第1サイクルでは乗算回路MA11,MA
12にてZ3,Z2を求め、レジスタReg1,レジス
タReg2に保持する。
【0060】第2サイクルでは乗算回路MA11,MA
12にてZ1,Z4を求めて、レジスタReg1,レジ
スタReg2に保持すると共に、レジスタReg1,レ
ジスタReg2に保持された値を加算入力選択回路にて
選択し、加算回路Add21にて加算して、その結果を
加算出力保持回路にて保持する。
【0061】そして第3サイクルでは、レジスタReg
1に保持されている値と、レジスタReg2に保持され
ている値とを、連結回路Con21にてレジスタReg
2の出力を上位、レジスタReg1の出力を下位になる
ように連結して、この連結されたデータZ14と加算出
力保持回路に保持された加算結果をビット位置<47:
16>にあわせてシフトしたものとを、加算入力選択回
路にて選択して、加算回路Add21にて加算する。
【0062】図5は、上記本実施の形態の乗算回路の動
作をパイプライン動作とした場合のタイムチャートであ
る。第1の乗算命令開始によって、第1サイクルでは乗
算回路MA11,MA12にてZ3,Z2を求める。第
2サイクルでは加算回路Add21にてZ3+Z2を求
める(その加算結果をZa23とする)と共に、並列し
て乗算回路MA11,MA12にてZ1,Z4を求め
る。第3サイクルでは、第2の乗算命令開始によって、
乗算回路MA11,MA12にてZ3,Z2を求めると
共に、並列して加算回路Add21にて第1の乗算命令
のZ14+Za23を求める。このように、乗算回路M
A11,MA12にて乗算処理中に、並列して加算回路
Add21にて前の演算サイクルの乗算結果を用いて加
算処理を行う。このため、連続実行時には、実質的に2
サイクルごとに32ビット×32ビット乗算を行うこと
ができる。
【0063】
【発明の効果】以上説明した通り、本発明の請求項1に
記載の乗算回路は、m/2ビット×n/2ビットの乗算
を行う四つの乗算回路と、複数の被乗数から一つを選択
する四つの被乗数選択回路と、複数の乗数から一つを選
択する四つの乗数選択回路と、ビット位置の重ならない
二つの乗算出力データを連結する連結回路と、連結され
たデータと、他の二つの出力データとを加算する加算回
路とを備えたので、四つの乗算回路からの乗算結果を連
結して用いることによって、加算すべきデータを三つに
削減することができ、このため四組のm/2ビット×n
/2ビット乗算とmビット×nビット乗算とを行えるよ
うしても、処理時間の増大を小さく抑えることができ、
m/2ビット×n/2ビット乗算回路およびmビット×
nビット乗算回路の両方を搭載する必要が無いので面積
の増大もほとんどない。すなわちmビット×nビット乗
算回路とほぼ同様の回路面積にて、演算時間をほとんど
増やすこと無く、四組のm/2ビット×n/2ビット乗
算とmビット×nビット乗算とを行うことができる。
【0064】本発明の請求項2に記載の乗算回路は、m
/2ビット×n/2ビットの乗算を行う二つの乗算回路
と、複数の被乗数から一つを選択する二つの被乗数選択
回路と、複数の乗数から一つを選択する二つの乗数選択
回路と、ビット位置の重ならない二つの乗算出力データ
を連結する連結回路と、乗算出力データを保持する第1
および第2の出力保持回路と、出力保持回路からの出力
データを加算する第1の加算回路と、加算出力データと
連結されたデータとを加算する第2の加算回路とを備え
たので、乗算回路を四つから二つに削減して、2回に分
けて実行することによって、1回目に乗算した二つの乗
算結果の加算を、2回目の乗算の最中に実行できるた
め、mビット×nビット乗算を分割して実行したことに
よる加算時間の増加分が吸収され、搭載している回路に
対して、最良の性能を発揮できる。
【0065】本発明の請求項3に記載の乗算回路は、m
/2ビット×n/2ビットの乗算を行う二つの乗算回路
と、複数の被乗数から一つを選択する二つの被乗数選択
回路と、複数の乗数から一つを選択する二つの乗数選択
回路と、ビット位置の重ならない二つの乗算出力データ
を連結する連結回路と、乗算出力データを保持する第1
および第2の出力保持回路と、二つのデータを加算する
加算回路と、加算結果を保持する加算出力保持回路と、
加算回路への入力データを切換え選択する加算入力選択
回路とを備えたので、加算回路を一つに削減して、2回
使用することによって、請求項2に記載の乗算回路と比
較して、面積の削減を行うことができる。処理速度が一
見低下するように見えるが、パイプライン動作を行うこ
とによって、命令を連続実行時の処理速度は、加算回路
を二つ搭載した場合と同様の処理速度が得られる。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態の乗算回路のブロッ
ク図である。
【図2】部分積Z1,Z2,Z3,Z4の出力結果のビ
ット位置を示す図である。
【図3】本発明の第2の実施の形態の乗算回路のブロッ
ク図である。
【図4】本発明の第3の実施の形態の乗算回路のブロッ
ク図である。
【図5】第3の実施の形態の乗算回路のパイプライン動
作のタイムチャートである。
【図6】従来の32ビット×32ビット乗算器と4並列
の16ビット×16ビット乗算器とを装備した回路例を
示す図である。
【図7】従来の32ビット×32ビット乗算器のみで1
6ビット×16ビット乗算と32ビット×32ビット乗
算とを行う回路例を示す図である。
【符号の説明】
MA1,MA2,MA3,MA4 乗算回路 Sel1〜Sel8 選択回路 Add1 加算回路 Con1 連結回路

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 m(mは偶数の自然数)/2ビット×n
    (nは偶数の自然数)/2ビットの乗算を行う四つの乗
    算回路と、 これらの各乗算回路の被乗数入力側に接続され、複数の
    被乗数から一つを選択する四つの被乗数選択回路と、 前記各乗算回路の乗数入力側に接続され、複数の乗数か
    ら一つを選択する四つの乗数選択回路と、 前記各乗算回路からの四つの出力データのうち、二つの
    出力データを連結する連結回路と、 この連結回路によって連結されたデータと、前記四つの
    出力データのうちの他の二つの出力データとを所定のビ
    ット位置にあわせて加算する加算回路とを備え、 四組のm/2ビット×n/2ビットの乗算を行う際に
    は、前記各被乗数選択回路が各々のm/2ビットの被乗
    数を選択し、前記各乗数選択回路が対応する各々のn/
    2ビットの乗数を選択して前記各乗算回路に入力して4
    組の乗算を並列に行い、 mビット×nビットの乗算を行う際には、前記各被乗数
    選択回路がmビットのうち上位または下位のm/2ビッ
    トの被乗数を選択し、前記各乗数選択回路がnビットの
    うち上位または下位のn/2ビットの乗数を選択して前
    記各乗算回路に入力し、これら各乗算回路の四つの乗算
    結果のうち、(mビットのうち下位m/2ビット)×
    (nビットのうち下位n/2ビット)および(mビット
    のうち上位m/2ビット)×(nビットのうち上位n/
    2ビット)の乗算結果を前記連結回路にて連結し、この
    連結された乗算結果と、他の二つの乗算結果とを前記加
    算回路にてそれぞれ所定のビット位置にあわせて加算す
    ることを特徴とする乗算回路。
  2. 【請求項2】 m/2ビット×n/2ビットの乗算を行
    う二つの乗算回路と、 これらの各乗算回路の被乗数入力側に接続され、複数の
    被乗数から一つを選択する二つの被乗数選択回路と、 前記各乗算回路の乗数入力側に接続され、複数の乗数か
    ら一つを選択する二つの乗数選択回路と、 前記各乗算回路からの二つの出力データを連結する連結
    回路と、 前記各乗算回路に対応して、それぞれの出力データを保
    持する第1および第2の出力保持回路と、 これら第1および第2の出力保持回路からの二つの出力
    データを加算する第1の加算回路と、 この第1の加算回路からの出力データと、前記連結回路
    によって連結されたデータとを所定のビット位置にあわ
    せて加算する第2の加算回路とを備え、 四組のm/2ビット×n/2ビットの乗算を行う際に
    は、前記各被乗数選択回路が2組のm/2ビットの被乗
    数を選択し、前記各乗数選択回路が各被乗数に対応する
    n/2ビットの乗数を選択して、前記各乗算回路に入力
    して2組の乗算を並列に行い、それら二つの出力データ
    を前記第1および第2の出力保持回路にて保持し、 さらに、再度、前記各被乗数選択回路が残りの2組のm
    /2ビットの被乗数をそれぞれ選択し、前記各乗数選択
    回路が各被乗数に対応する残りのn/2ビットの乗数を
    選択して、前記各乗算回路に入力して残りの2組の乗算
    を並列に行い、 mビット×nビットの乗算を行う際には、一方の乗算回
    路に接続される被乗数選択回路がmビットのうち上位m
    /2ビットの被乗数を選択し、対応する乗数選択回路が
    nビットのうち下位n/2ビットの乗数を選択して、他
    方の乗算回路に接続される被乗数選択回路がmビットの
    うち下位m/2ビットの被乗数を選択し、対応する乗数
    選択回路がnビットのうち上位n/2ビットの乗数を選
    択して、前記各乗算回路に入力して(mビットのうち上
    位m/2ビット)×(nビットのうち下位n/2ビッ
    ト)および(mビットのうち下位m/2ビット)×(n
    ビットのうち上位n/2ビット)の2組の乗算を並列に
    行い、それら二つの出力データを前記第1および第2の
    出力保持回路にて保持し、 さらに、再度、一方の乗算回路に接続される被乗数選択
    回路がmビットのうち下位m/2ビットの被乗数を選択
    し、対応する乗数選択回路がnビットのうち下位n/2
    ビットの乗数を選択して、他方の乗算回路に接続される
    被乗数選択回路がmビットのうち上位m/2ビットの被
    乗数を選択し、対応する乗数選択回路がnビットのうち
    上位n/2ビットの乗数を選択して、前記各乗算回路に
    入力して(mビットのうち下位m/2ビット)×(nビ
    ットのうち下位n/2ビット)および(mビットのうち
    上位m/2ビット)×(nビットのうち上位n/2ビッ
    ト)の2組の乗算を並列に行い、それら二つの乗算結果
    を前記連結回路にて連結すると共に、前記第1および第
    2の出力保持回路に保持されている2組の出力データを
    前記第1の加算回路にて加算し、 この第1の加算回路の加算結果と前記連結回路にて連結
    されたデータとを、前記第2の加算回路にて所定のビッ
    ト位置にあわせて加算することを特徴とする乗算回路。
  3. 【請求項3】 m/2ビット×n/2ビットの乗算を行
    う二つの乗算回路と、 これらの各乗算回路の被乗数入力側に接続され、複数の
    被乗数から一つを選択する二つの被乗数選択回路と、 前記各乗算回路の乗数入力側に接続され、複数の乗数か
    ら一つを選択する二つの乗数選択回路と、 前記各乗算回路からの二つの出力データを連結する連結
    回路と、 前記各乗算回路に対応して、それぞれの出力データを保
    持する第1および第2の出力保持回路と、 二つのデータを加算する加算回路と、 この加算回路の加算結果を保持する加算出力保持回路
    と、 前記加算回路への入力データを切換え選択する加算入力
    選択回路とを備え、 四組のm/2ビット×n/2ビットの乗算を行う際に
    は、前記各被乗数選択回路が2組のm/2ビットの被乗
    数をそれぞれ選択し、前記各乗数選択回路が各被乗数に
    対応するn/2ビットの乗数を選択して、前記各乗算回
    路に入力して2組の乗算を並列に行い、それら二つの出
    力データを前記第1および第2の出力保持回路にて保持
    し、 さらに、再度、前記各被乗数選択回路が残りの2組のm
    /2ビットの被乗数をそれぞれ選択し、前記各乗数選択
    回路が各被乗数に対応する残りのn/2ビットの乗数を
    選択して、前記各乗算回路に入力して残りの2組の乗算
    を並列に行い、 mビット×nビットの乗算を行う際には、一方の乗算回
    路に接続される被乗数選択回路がmビットのうち上位m
    /2ビットの被乗数を選択し、対応する乗数選択回路が
    nビットのうち下位n/2ビットの乗数を選択して、他
    方の乗算回路に接続される被乗数選択回路がmビットの
    うち下位m/2ビットの被乗数を選択し、対応する乗数
    選択回路がnビットのうち上位n/2ビットの乗数を選
    択して、前記各乗算回路に入力して(mビットのうち上
    位m/2ビット)×(nビットのうち下位n/2ビッ
    ト)および(mビットのうち下位m/2ビット)×(n
    ビットのうち上位n/2ビット)の2組の乗算を並列に
    行い、それら二つの出力データを前記第1および第2の
    出力保持回路にて保持し、 さらに、再度、一方の乗算回路に接続される被乗数選択
    回路がmビットのうち下位m/2ビットの被乗数を選択
    し、対応する乗数選択回路がnビットのうち下位n/2
    ビットの乗数を選択して、他方の乗算回路に接続される
    被乗数選択回路がmビットのうち上位m/2ビットの被
    乗数を選択し、対応する乗数選択回路がnビットのうち
    上位n/2ビットの乗数を選択して、前記各乗算回路に
    入力して(mビットのうち下位m/2ビット)×(nビ
    ットのうち下位n/2ビット)および(mビットのうち
    上位m/2ビット)×(nビットのうち上位n/2ビッ
    ト)の2組の乗算を並列に行うと共に、前記第1および
    第2の出力保持回路にて保持された加算結果を前記加算
    入力選択回路にて選択して、前記加算回路にて加算し、
    その結果を前記加算出力保持回路にて保持し、 前記第1および第2の出力保持回路に保持されている2
    組の出力データを前記連結回路にて連結し、 この連結回路にて連結されたデータと前記加算出力保持
    回路に保持された加算結果とを、前記加算入力選択回路
    にて選択して、前記加算回路にて所定のビット位置にあ
    わせて加算することを特徴とする乗算回路。
JP25397097A 1997-09-18 1997-09-18 乗算回路 Expired - Fee Related JP3479438B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP25397097A JP3479438B2 (ja) 1997-09-18 1997-09-18 乗算回路
US09/156,674 US6286024B1 (en) 1997-09-18 1998-09-18 High-efficiency multiplier and multiplying method
US09/906,095 US20010044816A1 (en) 1997-09-18 2001-07-17 High-efficiency multiplier and multiplying method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP25397097A JP3479438B2 (ja) 1997-09-18 1997-09-18 乗算回路

Publications (2)

Publication Number Publication Date
JPH1195981A true JPH1195981A (ja) 1999-04-09
JP3479438B2 JP3479438B2 (ja) 2003-12-15

Family

ID=17258472

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25397097A Expired - Fee Related JP3479438B2 (ja) 1997-09-18 1997-09-18 乗算回路

Country Status (2)

Country Link
US (2) US6286024B1 (ja)
JP (1) JP3479438B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019082511A1 (ja) * 2017-10-23 2019-05-02 日立オートモティブシステムズ株式会社 演算装置及び車載制御装置
WO2019189878A1 (ja) * 2018-03-30 2019-10-03 国立研究開発法人理化学研究所 演算装置および演算システム

Families Citing this family (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6556044B2 (en) 2001-09-18 2003-04-29 Altera Corporation Programmable logic device including multipliers and configurations thereof to reduce resource utilization
JP3139466B2 (ja) * 1998-08-28 2001-02-26 日本電気株式会社 乗算器及び積和演算器
US6421698B1 (en) * 1998-11-04 2002-07-16 Teleman Multimedia, Inc. Multipurpose processor for motion estimation, pixel processing, and general processing
US6574651B1 (en) * 1999-10-01 2003-06-03 Hitachi, Ltd. Method and apparatus for arithmetic operation on vectored data
US6598064B1 (en) * 2000-01-04 2003-07-22 National Semiconductor Corporation Split multiplier array and method of operation
US7062526B1 (en) * 2000-02-18 2006-06-13 Texas Instruments Incorporated Microprocessor with rounding multiply instructions
US7191202B2 (en) 2001-05-25 2007-03-13 Sun Microsystems, Inc. Comparator unit for comparing values of floating point operands
US7363337B2 (en) 2001-05-25 2008-04-22 Sun Microsystems, Inc. Floating point divider with embedded status information
US7613762B2 (en) * 2001-05-25 2009-11-03 Sun Microsystems, Inc. Floating point remainder with embedded status information
US7003540B2 (en) * 2001-05-25 2006-02-21 Sun Microsystems, Inc. Floating point multiplier for delimited operands
US7366749B2 (en) * 2001-05-25 2008-04-29 Sun Microsystems, Inc. Floating point adder with embedded status information
US7430576B2 (en) * 2001-05-25 2008-09-30 Sun Microsystems, Inc. Floating point square root provider with embedded status information
US7228324B2 (en) * 2001-05-25 2007-06-05 Sun Microsystems, Inc. Circuit for selectively providing maximum or minimum of a pair of floating point operands
US7069289B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point unit for detecting and representing inexact computations without flags or traps
US7069288B2 (en) * 2001-05-25 2006-06-27 Sun Microsystems, Inc. Floating point system with improved support of interval arithmetic
US6993549B2 (en) * 2001-05-25 2006-01-31 Sun Microsystems, Inc. System and method for performing gloating point operations involving extended exponents
US7133890B2 (en) * 2001-05-25 2006-11-07 Sun Microsystems, Inc. Total order comparator unit for comparing values of two floating point operands
US7395297B2 (en) * 2001-05-25 2008-07-01 Sun Microsystems, Inc. Floating point system that represents status flag information within a floating point operand
US7831652B2 (en) 2001-05-25 2010-11-09 Oracle America, Inc. Floating point multiplier with embedded status information
US7016928B2 (en) * 2001-05-25 2006-03-21 Sun Microsystems, Inc. Floating point status information testing circuit
US7444367B2 (en) * 2001-05-25 2008-10-28 Sun Microsystems, Inc. Floating point status information accumulation circuit
WO2003088033A1 (en) * 2002-04-09 2003-10-23 University Of Rochester Multiplier-based processor-in-memory architectures for image and graphics processing
US7219117B2 (en) * 2002-12-17 2007-05-15 Sun Microsystems, Inc. Methods and systems for computing floating-point intervals
US7236999B2 (en) * 2002-12-17 2007-06-26 Sun Microsystems, Inc. Methods and systems for computing the quotient of floating-point intervals
US7082592B1 (en) 2003-06-16 2006-07-25 Altera Corporation Method for programming programmable logic device having specialized functional blocks
US7318080B2 (en) * 2003-11-06 2008-01-08 Telefonaktiebolaget L M Ericsson (Publ) Split radix multiplication
US7698358B1 (en) 2003-12-24 2010-04-13 Altera Corporation Programmable logic device with specialized functional block
US7769797B2 (en) * 2004-01-20 2010-08-03 Samsung Electronics Co., Ltd. Apparatus and method of multiplication using a plurality of identical partial multiplication modules
US7506017B1 (en) 2004-05-25 2009-03-17 Altera Corporation Verifiable multimode multipliers
US20060004903A1 (en) * 2004-06-30 2006-01-05 Itay Admon CSA tree constellation
EP1710689A1 (en) * 2005-04-07 2006-10-11 STMicroelectronics (Research & Development) Limited Combining circuitry for multipliers
US8620980B1 (en) 2005-09-27 2013-12-31 Altera Corporation Programmable device with specialized multiplier blocks
US8266199B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US8041759B1 (en) 2006-02-09 2011-10-18 Altera Corporation Specialized processing block for programmable logic device
US8301681B1 (en) 2006-02-09 2012-10-30 Altera Corporation Specialized processing block for programmable logic device
US8266198B2 (en) 2006-02-09 2012-09-11 Altera Corporation Specialized processing block for programmable logic device
US7739324B1 (en) 2006-03-22 2010-06-15 Cadence Design Systems, Inc. Timing driven synthesis of sum-of-product functional blocks
US7836117B1 (en) 2006-04-07 2010-11-16 Altera Corporation Specialized processing block for programmable logic device
US7822799B1 (en) 2006-06-26 2010-10-26 Altera Corporation Adder-rounder circuitry for specialized processing block in programmable logic device
US8386550B1 (en) 2006-09-20 2013-02-26 Altera Corporation Method for configuring a finite impulse response filter in a programmable logic device
US7930336B2 (en) 2006-12-05 2011-04-19 Altera Corporation Large multiplier for programmable logic device
US8386553B1 (en) 2006-12-05 2013-02-26 Altera Corporation Large multiplier for programmable logic device
US7814137B1 (en) 2007-01-09 2010-10-12 Altera Corporation Combined interpolation and decimation filter for programmable logic device
US7865541B1 (en) 2007-01-22 2011-01-04 Altera Corporation Configuring floating point operations in a programmable logic device
US8650231B1 (en) 2007-01-22 2014-02-11 Altera Corporation Configuring floating point operations in a programmable device
US8645450B1 (en) 2007-03-02 2014-02-04 Altera Corporation Multiplier-accumulator circuitry and methods
US7949699B1 (en) 2007-08-30 2011-05-24 Altera Corporation Implementation of decimation filter in integrated circuit device using ram-based data storage
US8959137B1 (en) 2008-02-20 2015-02-17 Altera Corporation Implementing large multipliers in a programmable integrated circuit device
US8244789B1 (en) 2008-03-14 2012-08-14 Altera Corporation Normalization of floating point operations in a programmable integrated circuit device
US8626815B1 (en) 2008-07-14 2014-01-07 Altera Corporation Configuring a programmable integrated circuit device to perform matrix multiplication
US8255448B1 (en) 2008-10-02 2012-08-28 Altera Corporation Implementing division in a programmable integrated circuit device
US8307023B1 (en) 2008-10-10 2012-11-06 Altera Corporation DSP block for implementing large multiplier on a programmable integrated circuit device
US8468192B1 (en) 2009-03-03 2013-06-18 Altera Corporation Implementing multipliers in a programmable integrated circuit device
US8549055B2 (en) 2009-03-03 2013-10-01 Altera Corporation Modular digital signal processing circuitry with optionally usable, dedicated connections between modules of the circuitry
US8645449B1 (en) 2009-03-03 2014-02-04 Altera Corporation Combined floating point adder and subtractor
US8886696B1 (en) 2009-03-03 2014-11-11 Altera Corporation Digital signal processing circuitry with redundancy and ability to support larger multipliers
US8706790B1 (en) 2009-03-03 2014-04-22 Altera Corporation Implementing mixed-precision floating-point operations in a programmable integrated circuit device
US8805916B2 (en) 2009-03-03 2014-08-12 Altera Corporation Digital signal processing circuitry with redundancy and bidirectional data paths
US8650236B1 (en) 2009-08-04 2014-02-11 Altera Corporation High-rate interpolation or decimation filter in integrated circuit device
US8412756B1 (en) 2009-09-11 2013-04-02 Altera Corporation Multi-operand floating point operations in a programmable integrated circuit device
US8396914B1 (en) 2009-09-11 2013-03-12 Altera Corporation Matrix decomposition in an integrated circuit device
US7948267B1 (en) 2010-02-09 2011-05-24 Altera Corporation Efficient rounding circuits and methods in configurable integrated circuit devices
US8539016B1 (en) 2010-02-09 2013-09-17 Altera Corporation QR decomposition in an integrated circuit device
US8601044B2 (en) 2010-03-02 2013-12-03 Altera Corporation Discrete Fourier Transform in an integrated circuit device
US8458243B1 (en) 2010-03-03 2013-06-04 Altera Corporation Digital signal processing circuit blocks with support for systolic finite-impulse-response digital filtering
US8484265B1 (en) 2010-03-04 2013-07-09 Altera Corporation Angular range reduction in an integrated circuit device
US8510354B1 (en) 2010-03-12 2013-08-13 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8539014B2 (en) 2010-03-25 2013-09-17 Altera Corporation Solving linear matrices in an integrated circuit device
US8589463B2 (en) 2010-06-25 2013-11-19 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8862650B2 (en) 2010-06-25 2014-10-14 Altera Corporation Calculation of trigonometric functions in an integrated circuit device
US8577951B1 (en) 2010-08-19 2013-11-05 Altera Corporation Matrix operations in an integrated circuit device
US8645451B2 (en) 2011-03-10 2014-02-04 Altera Corporation Double-clocked specialized processing block in an integrated circuit device
US9600278B1 (en) 2011-05-09 2017-03-21 Altera Corporation Programmable device using fixed and configurable logic to implement recursive trees
US8812576B1 (en) 2011-09-12 2014-08-19 Altera Corporation QR decomposition in an integrated circuit device
US9053045B1 (en) 2011-09-16 2015-06-09 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8949298B1 (en) 2011-09-16 2015-02-03 Altera Corporation Computing floating-point polynomials in an integrated circuit device
US8762443B1 (en) 2011-11-15 2014-06-24 Altera Corporation Matrix operations in an integrated circuit device
US8543634B1 (en) 2012-03-30 2013-09-24 Altera Corporation Specialized processing block for programmable integrated circuit device
US9098332B1 (en) 2012-06-01 2015-08-04 Altera Corporation Specialized processing block with fixed- and floating-point structures
US8996600B1 (en) 2012-08-03 2015-03-31 Altera Corporation Specialized processing block for implementing floating-point multiplier with subnormal operation support
US9207909B1 (en) 2012-11-26 2015-12-08 Altera Corporation Polynomial calculations optimized for programmable integrated circuit device structures
US9189200B1 (en) 2013-03-14 2015-11-17 Altera Corporation Multiple-precision processing block in a programmable integrated circuit device
US9348795B1 (en) 2013-07-03 2016-05-24 Altera Corporation Programmable device using fixed and configurable logic to implement floating-point rounding
US9379687B1 (en) 2014-01-14 2016-06-28 Altera Corporation Pipelined systolic finite impulse response filter
US9684488B2 (en) 2015-03-26 2017-06-20 Altera Corporation Combined adder and pre-adder for high-radix multiplier circuit
KR102338863B1 (ko) * 2015-09-09 2021-12-13 삼성전자주식회사 연산을 제어하기 위한 장치 및 방법
US10942706B2 (en) 2017-05-05 2021-03-09 Intel Corporation Implementation of floating-point trigonometric functions in an integrated circuit device
CN107315710B (zh) * 2017-06-27 2020-09-11 上海兆芯集成电路有限公司 全精度及部分精度数值的计算方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754421A (en) * 1985-09-06 1988-06-28 Texas Instruments Incorporated Multiple precision multiplication device
JPS62229440A (ja) * 1986-03-31 1987-10-08 Toshiba Corp 配列乗算器
US6014684A (en) * 1997-03-24 2000-01-11 Intel Corporation Method and apparatus for performing N bit by 2*N-1 bit signed multiplication

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019082511A1 (ja) * 2017-10-23 2019-05-02 日立オートモティブシステムズ株式会社 演算装置及び車載制御装置
JP2019079183A (ja) * 2017-10-23 2019-05-23 日立オートモティブシステムズ株式会社 演算装置及び車載制御装置
WO2019189878A1 (ja) * 2018-03-30 2019-10-03 国立研究開発法人理化学研究所 演算装置および演算システム
CN111971649A (zh) * 2018-03-30 2020-11-20 国立研究开发法人理化学研究所 运算装置和运算系统
JPWO2019189878A1 (ja) * 2018-03-30 2021-04-08 国立研究開発法人理化学研究所 演算装置および演算システム

Also Published As

Publication number Publication date
JP3479438B2 (ja) 2003-12-15
US6286024B1 (en) 2001-09-04
US20010044816A1 (en) 2001-11-22

Similar Documents

Publication Publication Date Title
JP3479438B2 (ja) 乗算回路
US6230179B1 (en) Finite field multiplier with intrinsic modular reduction
JP3667635B2 (ja) 演算装置
EP0890899A2 (en) Multiplication method and apparatus
JPS6347874A (ja) 算術演算装置
US6009450A (en) Finite field inverse circuit
JP2012528391A (ja) 飽和を伴う整数乗算および乗算加算演算
US4677583A (en) Apparatus for decimal multiplication
US5757377A (en) Expediting blending and interpolation via multiplication
US5870322A (en) Multiplier to selectively perform unsigned magnitude multiplication or signed magnitude multiplication
US6202078B1 (en) Arithmetic circuit using a booth algorithm
US5912904A (en) Method for the production of an error correction parameter associated with the implementation of modular operations according to the Montgomery method
JPH10503311A (ja) ガロアフィールド多項式乗算/除算回路およびそれを組込むディジタル信号プロセッサ
JP3252954B2 (ja) 乗算方法および乗算回路
US20050246406A9 (en) Emod a fast modulus calculation for computer systems
KR100315303B1 (ko) 디지탈 신호 처리기
KR100251547B1 (ko) 디지탈신호처리기(Digital Sgnal Processor)
JPH0621983B2 (ja) 乗算器
KR100386979B1 (ko) 갈로아체상에서 비트 직렬 승산기의 병렬화 방법 및 이를이용한 직병렬 승산기
JP2001134556A (ja) 繰り返し型乗算器とアレイ型乗算器
KR100246472B1 (ko) 디지탈신호처리기
JPH0414173A (ja) 固定小数点演算器
JPH08292876A (ja) 演算装置
JPH1069372A (ja) 演算実行方法及び演算装置
KR19990021767A (ko) 디지탈신호처리기

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081003

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081003

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091003

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101003

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111003

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121003

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131003

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees