JP4376904B2 - 乗算装置 - Google Patents
乗算装置 Download PDFInfo
- Publication number
- JP4376904B2 JP4376904B2 JP2006531356A JP2006531356A JP4376904B2 JP 4376904 B2 JP4376904 B2 JP 4376904B2 JP 2006531356 A JP2006531356 A JP 2006531356A JP 2006531356 A JP2006531356 A JP 2006531356A JP 4376904 B2 JP4376904 B2 JP 4376904B2
- Authority
- JP
- Japan
- Prior art keywords
- partial product
- partial
- encoding
- multiplicand
- result
- 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.)
- Active
Links
Images
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/499—Denomination or exception handling, e.g. rounding or overflow
- G06F7/49905—Exception handling
- G06F7/4991—Overflow or underflow
- G06F7/49921—Saturation, i.e. clipping the result to a minimum or maximum value
-
- 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/533—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
- G06F7/5334—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product
- G06F7/5336—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm
- G06F7/5338—Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by using multiple bit scanning, i.e. by decoding groups of successive multiplier bits in order to select an appropriate precalculated multiple of the multiplicand as a partial product overlapped, i.e. with successive bitgroups sharing one or more bits being recoded into signed digit representation, e.g. using the Modified Booth Algorithm each bitgroup having two new bits, e.g. 2nd order MBA
Description
以下では、M+1ビットの被乗数AとN+1ビットの乗数Bとの乗算をする場合について説明する(M,Nは、2以上の整数)。ここで、被乗数A及び乗数Bは2の補数で表現された符号付きの固定小数点数であり、その最上位ビットの右側に小数点が存在するとし、最上位ビットは正又は負の符号を示すとする。この固定小数点形式では、正の最大値は、0.99…9(各ビットの値は、“011…11”)であり、負の最大値は、その絶対値が最大である負の数であって、−1.00…0(各ビットの値は、“100…00”)である。
図7は、本発明の第2の実施形態に係る第1の部分積生成回路340の構成を示す回路図である。図7の部分積生成回路340は、図2の部分積生成回路140において、補正項生成回路146に代えて補正項生成回路346を備えるものである。第2の実施形態において、ブースエンコード結果BE_kは、最上位以外のブースエンコード結果を示すものとする。
図9は、本発明の第3の実施形態に係る第1の部分積生成回路440の構成を示す回路図である。図9の部分積生成回路440は、図4の部分積生成回路180において、最下位の2個の選択回路142には、ブースエンコード結果BE_kではなく、エンコード結果補正部188の出力を与え、これらよりも上位の選択回路142には、ブースエンコード結果BE_kを与えるようにしたものである。第3の実施形態において、ブースエンコード結果BE_kは、最上位以外のブースエンコード結果を示すものとする。
図12は、本発明の第4の実施形態に係る第1の部分積生成回路640の構成を示す回路図である。図12の部分積生成回路640は、図2の部分積生成回路140において、補正項生成回路146に代えて補正項生成回路646を備え、飽和処理回路231を更に備えたものである。飽和処理回路231は、例えばORゲートである。第4の実施形態において、ブースエンコード結果BE_kは、最上位以外のブースエンコード結果を示すものとする。
本実施形態では、図1の乗算装置を変形した積和演算装置について説明する。図14は、本発明の第5の実施形態に係る積和演算装置の構成を示すブロック図である。
14 オーバーフロー検出部
16 部分積生成部
22 累算部
24 最終加算部
32 固定小数点シフト部
34 桁上げ保存加算部
36 桁上げ伝播加算部
38 セレクタ
140,340,440,540,640 第1の部分積生成回路
142,144 選択回路
146,166,346,646 補正項生成回路
160 第2の部分積生成回路
180,280 第3の部分積生成回路
188 エンコード結果補正部
231 飽和処理回路
Claims (3)
- 2の補数で表現された固定小数点数である被乗数と、2の補数で表現されたN+1(Nは2以上の整数)ビットの固定小数点数である乗数との乗算による積を求める乗算装置であって、
前記乗数を2次のブースのアルゴリズムに基づいてエンコードし、得られた複数のエンコード結果を出力するエンコード部と、
前記被乗数と前記乗数とが共に負の最大値である場合に、オーバーフローが発生することを検出するオーバーフロー検出部と、
前記被乗数と前記複数のエンコード結果のそれぞれとの間の複数の部分積と、前記複数の部分積のそれぞれに対応し、対応する部分積に加算してその部分積の2の補数を得るための複数の補正項とを生成して出力する部分積生成部と、
前記複数の部分積及び前記複数の補正項の累算を行い、2つの中間積に圧縮して出力する累算部と、
前記2つの中間積の加算を行い、その結果を乗算結果として出力する最終加算部とを備え、
前記部分積生成部は、
前記複数のエンコード結果のうちの最上位及び最下位以外のエンコード結果のそれぞれを入力とし、前記被乗数と入力されたエンコード結果との間で、前記複数の部分積及び前記複数の補正項のうち、入力されたエンコード結果に対応する最上位及び最下位以外の部分積及び補正項を生成する複数の第1の部分積生成回路と、
前記被乗数と前記複数のエンコード結果のうちの最上位のエンコード結果との間で、前記複数の部分積及び前記複数の補正項のうち、最上位の部分積及び補正項を生成する第2の部分積生成回路と、
前記被乗数と前記複数のエンコード結果のうちの最下位のエンコード結果との間で、前記複数の部分積及び前記複数の補正項のうち、最下位の部分積及び補正項を生成する第3の部分積生成回路とを有するものであり、
前記第2の部分積生成回路は、
前記オーバーフロー検出部によってオーバーフローが発生することが検出された場合には、前記最上位の補正項として0を出力するものであり、
前記第3の部分積生成回路は、
前記被乗数及び選択信号に応じて前記最下位の部分積のうちの1ビットをそれぞれ生成する複数の選択回路と、
エンコード結果補正部とを有するものであり、
前記複数の選択回路のうち、前記最下位の部分積の下位N−1ビットを出力するN−1個の選択回路には前記エンコード結果補正部の出力が、その他の選択回路には前記最下位のエンコード結果が、前記選択信号として与えられており、
前記エンコード結果補正部は、
前記オーバーフロー検出部によってオーバーフローが発生することが検出された場合には、当該エンコード結果補正部の出力が与えられる選択回路から1が出力されるような値を出力し、その他の場合には、前記最下位のエンコード結果を出力するものである
ことを特徴とする乗算装置。 - 2の補数で表現された固定小数点数である被乗数と、2の補数で表現されたN+1(Nは2以上の整数)ビットの固定小数点数である乗数との乗算による積を求める乗算装置であって、
前記乗数を2次のブースのアルゴリズムに基づいてエンコードし、得られた複数のエンコード結果を出力するエンコード部と、
前記被乗数と前記乗数とが共に負の最大値である場合に、オーバーフローが発生することを検出するオーバーフロー検出部と、
前記被乗数と前記複数のエンコード結果のそれぞれとの間の複数の部分積と、前記複数の部分積のそれぞれに対応し、対応する部分積に加算してその部分積の2の補数を得るための複数の補正項とを生成して出力する部分積生成部と、
前記複数の部分積及び前記複数の補正項の累算を行い、2つの中間積に圧縮して出力する累算部と、
前記2つの中間積の加算を行い、その結果を乗算結果として出力する最終加算部とを備え、
前記部分積生成部は、
前記複数のエンコード結果のうちの最上位及び最下位以外のエンコード結果のそれぞれを入力とし、前記被乗数と入力されたエンコード結果との間で、前記複数の部分積及び前記複数の補正項のうち、入力されたエンコード結果に対応する最上位及び最下位以外の部分積及び補正項を生成する複数の第1の部分積生成回路と、
前記被乗数と前記複数のエンコード結果のうちの最上位のエンコード結果との間で、前記複数の部分積及び前記複数の補正項のうち、最上位の部分積及び補正項を生成する第2の部分積生成回路と、
前記被乗数と前記複数のエンコード結果のうちの最下位のエンコード結果との間で、前記複数の部分積及び前記複数の補正項のうち、最下位の部分積及び補正項を生成する第3の部分積生成回路とを有するものであり、
前記第2の部分積生成回路は、
前記オーバーフロー検出部によってオーバーフローが発生することが検出された場合には、前記最上位の補正項として0を出力するものであり、
前記第3の部分積生成回路は、
前記被乗数及び選択信号に応じて前記最下位の部分積のうちの1ビットをそれぞれ生成する複数の選択回路と、
前記複数の選択回路のうち、前記最下位の部分積の下位N−1ビットを出力するN−1個の選択回路のそれぞれに対応するN−1個の飽和処理回路とを有するものであり、
前記複数の選択回路は、それぞれ、
前記最下位のエンコード結果を前記選択信号として用いるものであり、
前記N−1個の飽和処理回路は、それぞれ、
前記オーバーフロー検出部によってオーバーフローが発生することが検出された場合には、前記複数の選択回路のうち、対応する選択回路の出力を1に補正して出力し、その他の場合には、前記対応する選択回路の出力をそのまま出力させるものである
ことを特徴とする乗算装置。 - 2の補数で表現された固定小数点数である被乗数と、2の補数で表現された固定小数点数である乗数との乗算による積を求める乗算装置であって、
前記乗数を2次のブースのアルゴリズムに基づいてエンコードし、得られた複数のエンコード結果を出力するエンコード部と、
前記被乗数と前記乗数とが共に負の最大値である場合に、オーバーフローが発生することを検出するオーバーフロー検出部と、
前記被乗数と前記複数のエンコード結果のそれぞれとの間の複数の部分積と、前記複数の部分積のそれぞれに対応し、対応する部分積に加算してその部分積の2の補数を得るための複数の補正項とを生成して出力する部分積生成部と、
前記複数の部分積及び前記複数の補正項の累算を行い、2つの中間積に圧縮して出力する累算部と、
前記2つの中間積の加算を行い、その結果を乗算結果として出力する最終加算部とを備え、
前記部分積生成部は、
前記複数のエンコード結果のうちの最上位以外のエンコード結果のそれぞれを入力とし、前記被乗数と入力されたエンコード結果との間で、前記複数の部分積及び前記複数の補正項のうち、入力されたエンコード結果に対応する最上位以外の部分積及び補正項を生成する複数の第1の部分積生成回路と、
前記被乗数と前記複数のエンコード結果のうちの最上位のエンコード結果との間で、前記複数の部分積及び前記複数の補正項のうち、最上位の部分積及び補正項を生成する第2の部分積生成回路とを有するものであり、
前記複数の第1の部分積生成回路は、それぞれ、
対応するエンコード結果に従って選択された1ビットの値と前記オーバーフロー検出部によるオーバーフローの検出結果との論理和を、対応する2ビットの補正項の下位ビットとして、前記オーバーフロー検出部によるオーバーフローの検出結果を、前記対応する2ビットの補正項の上位ビットとして出力するものであり、
前記第2の部分積生成回路は、
前記オーバーフロー検出部によってオーバーフローが発生することが検出された場合には、前記最上位の補正項として0を出力するものである
ことを特徴とする乗算装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004246881 | 2004-08-26 | ||
JP2004246881 | 2004-08-26 | ||
PCT/JP2005/012954 WO2006022089A1 (ja) | 2004-08-26 | 2005-07-13 | 乗算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2006022089A1 JPWO2006022089A1 (ja) | 2008-05-08 |
JP4376904B2 true JP4376904B2 (ja) | 2009-12-02 |
Family
ID=35967309
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006531356A Active JP4376904B2 (ja) | 2004-08-26 | 2005-07-13 | 乗算装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20080098057A1 (ja) |
JP (1) | JP4376904B2 (ja) |
CN (1) | CN100517213C (ja) |
TW (1) | TW200627261A (ja) |
WO (1) | WO2006022089A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8082287B2 (en) * | 2006-01-20 | 2011-12-20 | Qualcomm Incorporated | Pre-saturating fixed-point multiplier |
US7958180B2 (en) * | 2007-07-05 | 2011-06-07 | International Business Machines Corporation | Multiplier engine |
CN111258542B (zh) * | 2018-11-30 | 2022-06-17 | 上海寒武纪信息科技有限公司 | 乘法器、数据处理方法、芯片及电子设备 |
CN110209375B (zh) * | 2019-05-30 | 2021-03-26 | 浙江大学 | 一种基于radix-4编码和差分权重存储的乘累加电路 |
CN110688087B (zh) * | 2019-09-24 | 2024-03-19 | 上海寒武纪信息科技有限公司 | 数据处理器、方法、芯片及电子设备 |
CN111752528B (zh) * | 2020-06-30 | 2021-12-07 | 无锡中微亿芯有限公司 | 一种支持高效乘法运算的基本逻辑单元 |
CN116991359B (zh) * | 2023-09-26 | 2023-12-22 | 上海为旌科技有限公司 | Booth乘法器、混合Booth乘法器及运算方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11126157A (ja) * | 1997-10-24 | 1999-05-11 | Matsushita Electric Ind Co Ltd | 乗算方法および乗算回路 |
-
2005
- 2005-07-13 US US11/661,145 patent/US20080098057A1/en not_active Abandoned
- 2005-07-13 WO PCT/JP2005/012954 patent/WO2006022089A1/ja active Application Filing
- 2005-07-13 CN CNB2005800287481A patent/CN100517213C/zh not_active Expired - Fee Related
- 2005-07-13 JP JP2006531356A patent/JP4376904B2/ja active Active
- 2005-08-15 TW TW094127741A patent/TW200627261A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20080098057A1 (en) | 2008-04-24 |
JPWO2006022089A1 (ja) | 2008-05-08 |
TW200627261A (en) | 2006-08-01 |
CN101010665A (zh) | 2007-08-01 |
WO2006022089A1 (ja) | 2006-03-02 |
CN100517213C (zh) | 2009-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4376904B2 (ja) | 乗算装置 | |
US7315163B2 (en) | Arithmetic unit | |
KR20010014992A (ko) | 고차 기수 제산기 및 그 방법 | |
EP0613082B1 (en) | 4:2 adder and multiplier circuit employing the same | |
JP2009135891A (ja) | データ変換装置及びその制御方法 | |
JP6350111B2 (ja) | 乗算回路及びその乗算方法 | |
JPS595350A (ja) | 組合わせ乗算器 | |
US20190042198A1 (en) | Methods for using a multiplier to support multiple sub-multiplication operations | |
JP4273071B2 (ja) | 除算・開平演算器 | |
US20090228538A1 (en) | Multi input coding adder, digital filter, signal processing device, synthesizer device, synthesizing program, and synthesizing program recording medium | |
JP6734938B2 (ja) | ニューラルネットワーク回路 | |
US7840628B2 (en) | Combining circuitry | |
JP4933405B2 (ja) | データ変換装置及びその制御方法 | |
JP2010102431A (ja) | 浮動小数点数演算回路と浮動小数点演算方法及びサーボ制御装置 | |
JPH0793134A (ja) | 乗算器 | |
Gao et al. | Decimal floating-point multiplier with binary-decimal compression based fixed-point multiplier | |
JP2606326B2 (ja) | 乗算器 | |
JPH11237973A (ja) | 乗算器 | |
JPH11126157A (ja) | 乗算方法および乗算回路 | |
TW200534161A (en) | Sign extension method and architecture of a multiplier | |
US5923888A (en) | Multiplier for the multiplication of at least two figures in an original format | |
Dave et al. | Multiplication by complements | |
JP4042215B2 (ja) | 演算処理装置およびその方法 | |
US9632751B2 (en) | Arithmetic circuit and arithmetic method | |
JP2006301685A (ja) | 乗算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090407 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090608 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090818 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090909 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120918 Year of fee payment: 3 |