JP5376659B2 - 積和演算装置及び積和演算装置の制御方法 - Google Patents
積和演算装置及び積和演算装置の制御方法 Download PDFInfo
- Publication number
- JP5376659B2 JP5376659B2 JP2009203499A JP2009203499A JP5376659B2 JP 5376659 B2 JP5376659 B2 JP 5376659B2 JP 2009203499 A JP2009203499 A JP 2009203499A JP 2009203499 A JP2009203499 A JP 2009203499A JP 5376659 B2 JP5376659 B2 JP 5376659B2
- Authority
- JP
- Japan
- Prior art keywords
- product
- result
- sum operation
- operand
- multiplication
- 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
Description
図1は、本発明の実施の形態1にかかる積和演算装置100の構成を示すブロック図である。積和演算装置100は、第1のオペランド111、第2のオペランド112、第3のオペランド113及び第4のオペランド114を入力し、外部からの積和演算の有無を示す指示115に応じて、3項の入力に対する積和演算、又は、2項の入力に対する乗算及び2項の入力に対する加算を切り替えて実行し、出力結果116を出力するものである。すなわち、積和演算装置100は、積和演算有を示す指示を受け付けた場合、積和演算結果(例えば、A*B+C)を出力し、積和演算無を示す指示を受け付けた場合、乗算結果(A*B)及び加算結果(C+D)を出力する。
図3は、本発明の実施の形態2にかかる積和演算装置200の構成を示すブロック図である。積和演算装置200は、図6に示した浮動小数点の3項の入力に対する積和演算を行う積和演算回路80に改良を加えて、本発明の実施の形態1にかかる積和演算装置100を適用した一実施例である。積和演算装置200は、4つの入力ポート(不図示)から4つのオペランド(以下、A,B,C及びDと呼ぶ)を入力し、演算結果(以下、E及びFと呼ぶ)を2つの出力ポート(不図示)へ出力する。尚、積和演算装置200は、積和演算を行う場合は、1つの出力ポートのみへ出力しても良い。以下では、被乗数をA、乗数をB、被加算数をC及び加算数をDとする。
図4は、本発明の実施の形態3にかかる積和演算装置201の構成を示すブロック図である。本発明の実施の形態3にかかる積和演算装置201は、本発明の実施の形態2に係る積和演算装置200に改良を加えたものである。すなわち、外部からの指示が積和演算無を示す場合に、積和演算装置200のCSA36で行われていた被加算数C及び加算数Dの加算処理を加算器34で行うようにするため、加算器45を外し、セレクタ64乃至67の追加と、配線の変更を行った。尚、図4において、図3と同様の構成については、詳細な説明を省略する。以下では、本発明の実施の形態2との違いを中心に説明する。
図5は、本発明の実施の形態4にかかる積和演算装置202の構成を示すブロック図である。本発明の実施の形態4にかかる積和演算装置202は、本発明の実施の形態3に係る積和演算装置201に改良を加えたものである。すなわち、外部からの指示が積和演算無を示す場合に、積和演算装置201のCSA36で行われていた被乗数A及び乗数Bの乗算結果をそのまま加算器39へ出力する処理を待たずに、桁上げ値d21及び加算結果d22を直接加算器39へ出力するようにしたものである。そのために、積和演算装置201のセレクタ65に代えて、CSA36の後段にセレクタ68及び69を追加した。尚、図5において、図4と同様の構成については、詳細な説明を省略する。以下では、本発明の実施の形態3との違いを中心に説明する。
本発明により、情報処置装置で加減算や乗算処理を行う場合に、本発明の実施の形態1乃至4にかかる積和演算装置100及び200乃至202のいずれかを使用することにより、少ないハードウェアで積和動作か乗算及び加算の同時実行可能な演算器が使用可能となる。本発明は、情報処理を行う積和演算器において、回路の使用効率を高めて、異なる命令の乗算処理と加算処理要求があった場合にも同時に実行できるようにしたことにある。
101 演算部
102 出力部
111 第1のオペランド
112 第2のオペランド
113 第3のオペランド
114 第4のオペランド
115 指示
116 出力結果
200 積和演算装置
201 積和演算装置
202 積和演算装置
21 レジスタ
211 指数部
212 仮数部
22 レジスタ
221 指数部
222 仮数部
23 レジスタ
231 指数部
232 仮数部
24 レジスタ
241 指数部
242 仮数部
25 unpacker
26 unpacker
27 unpacker
28 unpacker
31 指数加算器
32 指数加算器
33 シフト回路
34 加算器
35 乗算ツリー
36 CSA
37 PG生成回路
38 LZA
39 加算器
40 シフト回路
41 STICKY生成回路
42 丸め判定回路
43 STICKY生成回路
44 丸め判定回路
45 加算器
46 後処理シフト回路
47 丸め回路
48 丸め回路
49 repacker
50 レジスタ
51 repacker
52 レジスタ
60 セレクタ
61 セレクタ
62 セレクタ
63 セレクタ
64 セレクタ
65 セレクタ
66 セレクタ
67 セレクタ
68 セレクタ
69 セレクタ
d10 指数
d11 仮数
d12 指数
d13 仮数
d14 指数
d15 仮数
d16 指数
d17 仮数
d18 指数加算結果
d19 指数加算結果
d20 シフト結果
d21 桁上げ値
d22 加算結果
d23 桁上げ値
d24 加算結果
d25 加算結果
d26 PG結果
d27 LZA結果
d28 加算結果
d29 シフト結果
d30 STICKY結果
d31 丸め指示
d32 STICKY結果
d33 丸め指示
d34 加算結果
d35 シフト結果
d36 丸め結果
d37 丸め結果
d38 repack結果
d39 repack結果
A 被乗数
B 乗数
C 被加算数
D 加算数
80 積和演算回路
81 レジスタ
811 指数部
812 仮数部
82 レジスタ
821 指数部
822 仮数部
83 レジスタ
831 指数部
832 仮数部
84 指数部加算部
85 指数部加算部
86 シフト回路
87 仮数部乗算回路
88 仮数部加算部
89 セロカウンタ
90 指数部補正回路
91 正規化回路
92 丸め回路
Claims (14)
- 入力された第1及び第2のオペランドを乗算する乗算処理と、外部からの積和演算の有無を示す指示に応じて、入力された第3のオペランドを用いた所定の演算処理とを行う演算部と、
前記演算部の処理結果を出力する出力部とを備え、
前記演算部は、前記指示が積和演算有を示す場合に、前記乗算処理による乗算結果に前記第3のオペランドを加算して積和演算結果を求める積和演算処理と、前記指示が積和演算無を示す場合に、さらに入力された第4のオペランドに前記第3のオペランドを加算して加算結果を求める加算処理とを行い、
前記出力部は、前記演算部により前記積和演算処理が行われた場合に、前記積和演算結果を出力し、前記演算部により前記加算処理が行われた場合に、前記乗算結果及び前記加算結果を出力する積和演算装置。 - 前記演算部は、前記乗算処理を行う乗算器と、少なくとも前記加算処理を行う第1の加算器と、前記外部からの積和演算の有無を示す指示により前記第1の加算器への出力を選択する第1の機能セレクタとを有し、
前記第1の機能セレクタは、当該指示が積和演算無を示す場合に、前記第4のオペランドを選択して前記第1の加算器へ出力し、
前記第1の加算器は、前記第1の機能セレクタにより出力された第4のオペランドを用いて前記加算処理を行うことを特徴とする請求項1に記載の積和演算装置。 - 前記第1の機能セレクタは、当該指示が積和演算有を示す場合に、前記乗算結果を選択して前記第1の加算器へ出力し、
前記第1の加算器は、前記第1の機能セレクタにより出力された乗算結果を用いて前記積和演算処理を行うことを特徴とする請求項2に記載の積和演算装置。 - 前記第1の機能セレクタは、当該指示が積和演算有を示す場合に、前記第3のオペランドを補正する補正値を選択して前記第1の加算器へ出力し、
前記第1の加算器は、前記第1の機能セレクタにより出力された補正値に前記第3のオペランドを加算して補正結果を求める補正処理をさらに行い、
前記出力部は、前記演算部により前記補正処理が行われた場合に、前記積和演算結果を前記補正結果に基づき補正して出力することを特徴とする請求項2に記載の積和演算装置。 - 前記演算部は、
前記積和演算処理を行う第2の加算器と、
前記外部からの積和演算の有無を示す指示により前記第2の加算器への出力を選択する第2の機能セレクタとをさらに備え、
前記第2の機能セレクタは、当該指示が積和演算有を示す場合に、前記第3のオペランドを選択して前記第2の加算器へ出力し、
前記第2の加算器は、前記第2の機能セレクタにより出力された前記第3のオペランドを用いて前記積和演算処理を行うことを特徴とする請求項4に記載の積和演算装置。 - 前記外部からの指示が積和演算有を示す場合に、前記積和演算結果を選択し、当該指示が積和演算無を示す場合に、前記乗算結果を選択して前記出力部へ出力する第3の機能セレクタをさらに備えることを特徴とする請求項1乃至5のいずれか1項に記載の積和演算装置。
- 前記第1、第2、第3及び第4のオペランドは、浮動小数点のデータであり、
前記出力部は、前記演算部の処理結果に丸め処理を行い、出力することを特徴とする請求項1乃至6のいずれか1項に記載の積和演算装置。 - 外部からの積和演算の有無を示す指示に応じて、少なくとも入力された第1、第2及び第3のオペランドを演算する演算部と、前記演算部の処理結果を出力する出力部とを備える積和演算装置の制御方法であって、
前記演算部において、入力された前記第1のオペランドと前記第2のオペランドとを乗算して乗算結果を求める乗算処理ステップと、
前記演算部において、前記外部からの指示を受け付け、当該指示が積和演算有無のいずれを示すかを判定する判定ステップと、
前記演算部において、前記指示が積和演算有を示すと判定された場合に、前記乗算ステップによる乗算結果に前記第3のオペランドを加算して積和演算結果を求める積和演算処理ステップと、
前記出力部において、前記積和演算処理ステップが行われた場合に、前記積和演算結果を出力するステップと、
前記演算部において、前記指示が積和演算無を示すと判定された場合に、さらに入力された第4のオペランドに前記第3のオペランドを加算して加算結果を求める加算処理ステップと、
前記出力部において、前記加算処理ステップが行われた場合に、前記乗算結果及び前記加算結果を出力するステップとを含む制御方法。 - 当該指示が積和演算無を示すと判定された場合に、前記第4のオペランドを選択する第1の選択ステップをさらに含み、
前記加算処理ステップは、前記第1の選択ステップにより選択された第4のオペランドを用いて前記加算結果を求めることを特徴とする請求項8に記載の制御方法。 - 前記第1の選択ステップは、当該指示が積和演算有を示すと判定された場合に、前記乗算結果を選択し、
前記積和演算処理ステップは、前記第1の選択ステップにより選択された乗算結果を用いて前記積和演算結果を求めることを特徴とする請求項9に記載の制御方法。 - 前記第1の選択ステップは、当該指示が積和演算有を示すと判定された場合に、前記第3のオペランドを補正する補正値を選択し、
前記演算部において、前記第1の選択ステップにより選択された補正値に前記第3のオペランドを加算して補正結果を求める補正処理ステップと、
前記補正処理ステップが行われた場合に、前記出力部において、前記積和演算結果を前記補正結果に基づき補正して出力するステップと、をさらに含むことを特徴とする請求項9に記載の制御方法。 - 当該指示が積和演算有を示すと判定された場合に、前記第3のオペランドを選択する第2の選択ステップをさらに含み、
前記積和演算処理ステップは、前記第2の選択ステップにより選択された前記第3のオペランドを用いて前記積和演算結果を求めることを特徴とする請求項11に記載の制御方法。 - 当該指示が積和演算有を示すと判定された場合に、前記積和演算結果を選択し、当該指示が積和演算無を示すと判定した場合に、前記乗算結果を選択して前記出力部へ出力するステップをさらに含むことを特徴とする請求項8乃至12のいずれか1項に記載の制御方法。
- 前記第1、第2、第3及び第4のオペランドは、浮動小数点のデータであり、
前記出力部において、前記演算部の処理結果に丸め処理を行い、出力するステップをさらに含むことを特徴とする請求項8乃至13のいずれか1項に記載の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009203499A JP5376659B2 (ja) | 2009-09-03 | 2009-09-03 | 積和演算装置及び積和演算装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009203499A JP5376659B2 (ja) | 2009-09-03 | 2009-09-03 | 積和演算装置及び積和演算装置の制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011054012A JP2011054012A (ja) | 2011-03-17 |
JP5376659B2 true JP5376659B2 (ja) | 2013-12-25 |
Family
ID=43942931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009203499A Active JP5376659B2 (ja) | 2009-09-03 | 2009-09-03 | 積和演算装置及び積和演算装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5376659B2 (ja) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6526430B1 (en) * | 1999-10-04 | 2003-02-25 | Texas Instruments Incorporated | Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing) |
JP2002073586A (ja) * | 2000-08-28 | 2002-03-12 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
US7107305B2 (en) * | 2001-10-05 | 2006-09-12 | Intel Corporation | Multiply-accumulate (MAC) unit for single-instruction/multiple-data (SIMD) instructions |
JP4482052B2 (ja) * | 2006-02-14 | 2010-06-16 | 富士通株式会社 | 演算装置および演算方法 |
-
2009
- 2009-09-03 JP JP2009203499A patent/JP5376659B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2011054012A (ja) | 2011-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100994862B1 (ko) | 선택가능한 하위 정밀도에 대하여 감소된 전력 요구조건들을 가지는 부동 소수점 프로세서 | |
US8965945B2 (en) | Apparatus and method for performing floating point addition | |
US7949696B2 (en) | Floating-point number arithmetic circuit for handling immediate values | |
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
US8838664B2 (en) | Methods and apparatus for compressing partial products during a fused multiply-and-accumulate (FMAC) operation on operands having a packed-single-precision format | |
WO2016071661A1 (en) | Apparatus and method for vector processing with selective rounding mode | |
JP6415236B2 (ja) | 浮動小数点加算ユニットを含む装置及びシステム、並びに浮動小数点加算方法 | |
US9712185B2 (en) | System and method for improved fractional binary to fractional residue converter and multipler | |
US8751555B2 (en) | Rounding unit for decimal floating-point division | |
JP7115211B2 (ja) | 演算処理装置および演算処理装置の制御方法 | |
US20230092574A1 (en) | Single-cycle kulisch accumulator | |
CN112241291A (zh) | 用于指数函数实施的浮点单元 | |
US8019805B1 (en) | Apparatus and method for multiple pass extended precision floating point multiplication | |
JP4858794B2 (ja) | 浮動小数点除算器、及びそれを用いた情報処理装置 | |
GB2539265A (en) | Apparatus and method for controlling rounding when performing a floating point operation | |
GB2539415A (en) | Apparatus and method for inhibiting roundoff error in a floating point argument reduction operation | |
US10331407B2 (en) | Tiny detection in a floating-point unit | |
GB2549153B (en) | Apparatus and method for supporting a conversion instruction | |
JP2006172035A (ja) | 除算・開平演算器 | |
WO2020161458A1 (en) | Encoding special value in anchored-data element | |
JP5376659B2 (ja) | 積和演算装置及び積和演算装置の制御方法 | |
US8041927B2 (en) | Processor apparatus and method of processing multiple data by single instructions | |
US6615228B1 (en) | Selection based rounding system and method for floating point operations | |
JP4613992B2 (ja) | Simd演算器、simd演算器の演算方法、演算処理装置及びコンパイラ | |
JP4159565B2 (ja) | ベクトル積和演算回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120809 |
|
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: 20130827 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130920 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5376659 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |