JP5589628B2 - 内積演算装置および内積演算方法 - Google Patents
内積演算装置および内積演算方法 Download PDFInfo
- Publication number
- JP5589628B2 JP5589628B2 JP2010157564A JP2010157564A JP5589628B2 JP 5589628 B2 JP5589628 B2 JP 5589628B2 JP 2010157564 A JP2010157564 A JP 2010157564A JP 2010157564 A JP2010157564 A JP 2010157564A JP 5589628 B2 JP5589628 B2 JP 5589628B2
- Authority
- JP
- Japan
- Prior art keywords
- input vector
- inner product
- accumulator
- bit
- vector element
- 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 - Fee Related
Links
Images
Landscapes
- Complex Calculations (AREA)
Description
以下、本発明の第1の実施形態を、図1および図2を参照して説明する。図1は、本発明の第1の実施形態にかかる内積演算装置の構成図である。図2は、図1に示された内積演算装置の内積演算動作を示したプログラムリストである。
C0= 502 (+)1_1111_0110
C1= 426 (+)1_1010_1010
C2= 284 (+)1_0001_1100
C3= 100 (+)0_0110_0100
C4=−100 (−)0_0110_0100
C5=−284 (−)1_0001_1100
C6=−426 (−)1_1010_1010
C7=−502 (−)1_1111_0110
次に、本発明の第2の実施形態を図3および図4を参照して説明する。なお、前述した第1の実施形態と同一部分には、同一符号を付して説明を省略する。図3は、本発明の第2の実施形態にかかる内積演算装置に適用されるブースのアルゴリズム表である。図4は、本発明の第2の実施形態にかかる内積演算装置の内積演算動作を示したプログラムリストである。
C0= 502 (+)1_1111_0110
C1= 426 (+)1_1010_1010
C2= 284 (+)1_0001_1100
C3= 100 (+)0_0110_0100
C4=−100 (−)0_0110_0100
C5=−284 (−)1_0001_1100
C6=−426 (−)1_1010_1010
C7=−502 (−)1_1111_0110
であるからそれぞれの定数ベクトル要素の下位2ビットを含む(b1,b0,“0”)のビットパターンと定数ベクトル要素の符号から図3に示したブースのアルゴリズム表を参照して、部分内積の演算を行う。
次に、本発明の第3の実施形態を図5および図6を参照して説明する。なお、前述した第1、第2の実施形態と同一部分には、同一符号を付して説明を省略する。図5は、本発明の第3の実施形態にかかる内積演算装置の構成図である。図6は、図5に示された内積演算装置の内積演算動作を示したプログラムリストである。
次に、本発明の第4の実施形態を図7および図8を参照して説明する。なお、前述した第1〜第3の実施形態と同一部分には、同一符号を付して説明を省略する。図7は、本発明の第4の実施形態にかかる内積演算装置の構成図である。図8は、図7に示された内積演算装置の内積演算動作を示したプログラムリストである。
次に、本発明の第5の実施形態を図9ないし図13を参照して説明する。なお、前述した第1〜第4の実施形態と同一部分には、同一符号を付して説明を省略する。図9は、本発明の第5の実施形態にかかる内積演算方法を実行するマイクロプロセッサの演算器部分の構成図である。図10は、図9に示したマイクロプロセッサの機械語命令コードフォーマットである。図11は、図9に示したマイクロプロセッサの内積演算動作を示したプログラムリストの一の部分である。図12は、図9に示したマイクロプロセッサの内積演算動作を示したプログラムリストの他の部分である。図13は、図9に示したマイクロプロセッサで動作する内積演算方法のフローチャートである。
lda #0
この命令はアキュムレータ24にゼロ値をロードする命令のニモニックである。
add TmR0:s0
この命令はアキュムレータ24の値にソースオペランドである“TmR0”ラベルのレジスタ値を呼び出して加算する命令のニモニックである。ソースオペランドである“TmR0”の右側に“:s0”と補助コードが付加されているがこれは“s”に続く数字のビット数分の符号およびビット拡張つきの左シフトを行ってレジスタ値を読み出す動作を行うことを意味する。同様に“sub”は減算命令である。
sta TmR12:z5
と記述され、これはデスティネーションオペランドである“TmR12”の右側に“:z5”と補助コードが付加されているが、これは“z”に続くビット数分の右シフトを行ってアキュムレータ24の内容をレジスタ26に転送する動作を行う。“lda”は即値もしくはソースオペランドのレジスタ値をアキュムレータ24に読み出す命令である。
次に、本発明の第6の実施形態を図14を参照して説明する。なお、前述した第1〜第5の実施形態と同一部分には、同一符号を付して説明を省略する。図14は、本発明の第6の実施形態にかかるマイクロプロセッサの内積演算動作を示したプログラムリストである。
2 入力要素レジスタ(格納手段)
3 バレルシフタ(シフト手段)
4 加減算器(加減算手段)
5 アキュムレータ
6 シフタ(丸め手段)
7 セレクタ
8 制御部(演算制御手段)
9 加減算器(加減算手段)
10 シフタ(第一シフト手段)
11 シフタ(第二シフト手段)
12 セレクタ
13 加減算器(加減算手段)
14 シフタ(第一シフト手段)
20 マイクロプロセッサ(演算装置)
22 ALU(加減算手段)
24 アキュムレータ
26 レジスタ(格納手段)
28 バレルシフタ(シフト手段)
Claims (8)
- 所定のビット語長を有する複数の入力ベクトル要素から構成される入力ベクトルと複数の定数ベクトル要素から構成される定数ベクトルとの内積を求める内積演算装置において、
前記複数の入力ベクトル要素を格納する格納手段と、
前記格納手段から前記入力ベクトル要素を選択して、選択された前記入力ベクトルを左ビットシフトさせることにより前記定数ベクトル要素の2のべき乗項と入力ベクトル要素との部分積を求めるシフト手段と、
前記シフト手段が求めた前記部分積を累算するとともに、前記入力ベクトル要素と前記定数ベクトル要素とを乗算した際に必要となる乗算精度よりも小さいビット桁数で構成された加減算手段と、
前記加減算手段の累算結果を格納するアキュムレータと、
予め定めた桁数のビットシフトにより前記加減算手段による累算途中の前記アキュムレータに格納された結果の切り捨てを行って演算結果の丸めを行う丸め手段と、
前記加減算手段に、前記定数ベクトル要素の最下位の2のべき乗項の同じ項にかかる全ての入力ベクトル要素の部分積の累算を行わせて前記アキュムレータに格納させて、以降、順次高位の2のべき乗項にかかる部分積の累算を繰り返して最上位の2のべき乗項まで繰り返させるとともに、前記加減算手段の桁あふれが発生する前に前記丸め手段により類算途中の前記アキュムレータに格納された結果の下位桁を切捨てさせて、以降の累算の初期値とするように動作させる演算制御手段と、
を備えていることを特徴とする内積演算装置。 - 前記演算制御手段が、予め定めたテーブルに基づいて、前記シフト手段に対して前記入力ベクトル要素の2ビット毎に前記部分積を求めさせ、前記加減算手段に対して該部分積を累算させることを特徴とする請求項1に記載の内積演算装置。
- 前記丸め手段が前記加減算手段による累算途中の前記アキュムレータに格納された結果の切り捨てを行うビット桁数は、前記加減算手段のビット語長から前記入力ベクトル要素のビット語長および前記入力ベクトル要素数の2を底とする対数を減じた数以下のビット桁数として予め定められていることを特徴とする請求項1または2に記載の内積演算装置。
- 所定のビット語長を有する複数の入力ベクトル要素から構成される入力ベクトルと複数の定数ベクトル要素から構成される定数ベクトルとの内積を求める内積演算装置において、
前記複数の入力ベクトル要素を格納する格納手段と、
前記格納手段から前記入力ベクトル要素を選択して、前記定数ベクトル要素の2のべき乗項と選択された前記入力ベクトル要素との部分積を求めて累算するとともに、前記入力ベクトル要素と前記定数ベクトル要素とを乗算した際に必要となる乗算精度よりも小さいビット桁数で構成された加減算手段と、
前記加減算手段の累算結果を自身の上位桁側に格納するアキュムレータと、
前記アキュムレータの内容を下位桁方向に右ビットシフトして以降の累算値とするとともに、前記入力ベクトル要素と前記定数ベクトル要素とを乗算した際に必要となる乗算精度よりも小さいビット桁数で構成された第一シフト手段と、
前記加減算手段に、前記定数ベクトル要素の同じ桁の2のべき乗項の同じ項にかかる全ての入力ベクトル要素の部分積の累算を行わせて前記アキュムレータに格納させて、前記第一シフト手段に前記アキュムレータに格納された累算結果を右ビットシフトさせる動作を前記定数ベクトル要素の2のべき乗項の最上位桁まで繰り返させる演算制御手段と、
を備えていることを特徴とする内積演算装置。 - 前記格納手段に格納された前記入力ベクトル要素を2倍する第二シフト手段を備え、
前記演算制御手段が、予め定めたテーブルに基づいて、前記格納手段に格納された前記入力ベクトル要素または前記第二シフト手段が2倍にした入力ベクトル要素のいずれかを選択して前記加減算手段に累算させるとともに、前記第一シフト手段に2ビットシフトさせることを特徴とする請求項4に記載の内積演算装置。 - 所定のビット語長を有する複数の入力ベクトル要素から構成される入力ベクトルを格納する格納手段と、前記入力ベクトルを左ビットシフトさせることにより複数の定数ベクトル要素から構成される定数ベクトルの2のべき乗項と前記入力ベクトル要素との部分積を求めるシフト手段と、前記シフト手段が求めた前記部分積を累算するとともに、前記入力ベクトル要素と前記定数ベクトル要素とを乗算した際に必要となる乗算精度よりも小さいビット桁数で構成された加減算手段と、前記加減算手段の累算結果を格納するアキュムレータと、を備えたマイクロプロセッサでオペランドの加減算とシフトが一体に実行可能な命令を用いて前記入力ベクトルと前記定数ベクトルとの内積を求める内積演算方法において、
前記シフト手段が前記格納手段から前記入力ベクトル要素を選択して前記部分積を求める第一の工程と、
前記加減算手段に、前記定数ベクトル要素の最下位の2のべき乗項の同じ項にかかる全ての前記入力ベクトル要素の前記部分積の累算を行わせて前記アキュムレータに格納させる第二の工程と、
前記加減算手段の桁あふれが発生する前に前記アキュムレータに格納させている類算途中の前記アキュムレータに格納された結果の下位桁を切捨てて、以降の累算の初期値とする第三の工程と、
を備え、
前記第一の工程と前記第二の工程を順次高位の2のべき乗項にかかる部分積の累算を繰り返して最上位の2のべき乗項まで繰り返すとともに、前記第一の工程と前記第二の工程の繰り返しの途中に少なくとも前記第三の工程を1回以上行う
ことを特徴とする内積演算方法。 - 前記第一の工程は、前記入力ベクトル要素自身または前記入力ベクトル要素の2倍の値のいずれかを選択して前記部分積を求め、
前記第二の工程は、前記部分積の累算を2ビット毎に行う
ことを特徴とする請求項6に記載の内積演算方法。 - 前記第三の工程で前記加減算手段による累算途中の前記アキュムレータに格納された結果の切り捨てを行うビット桁数は、前記加減算手段のビット語長から前記入力ベクトル要素のビット語長および前記入力ベクトル要素数の2を底とする対数を減じた数以下のビット桁数として予め定められていることを特徴とする請求項6または7に記載の内積演算方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010157564A JP5589628B2 (ja) | 2010-07-12 | 2010-07-12 | 内積演算装置および内積演算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010157564A JP5589628B2 (ja) | 2010-07-12 | 2010-07-12 | 内積演算装置および内積演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012022363A JP2012022363A (ja) | 2012-02-02 |
JP5589628B2 true JP5589628B2 (ja) | 2014-09-17 |
Family
ID=45776636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010157564A Expired - Fee Related JP5589628B2 (ja) | 2010-07-12 | 2010-07-12 | 内積演算装置および内積演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5589628B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5951570B2 (ja) | 2013-09-13 | 2016-07-13 | 株式会社東芝 | 行列演算装置 |
JP7165018B2 (ja) | 2018-10-03 | 2022-11-02 | キヤノン株式会社 | 情報処理装置、情報処理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60254372A (ja) * | 1984-05-31 | 1985-12-16 | Nippon Precision Saakitsutsu Kk | 積和演算装置 |
JPH0526229A (ja) * | 1991-07-25 | 1993-02-02 | Ricoh Co Ltd | 動圧流体軸受および該軸受を用いたポリゴンスキヤナ |
JPH0962653A (ja) * | 1995-08-29 | 1997-03-07 | Mitsubishi Electric Corp | 積和演算装置、積和演算器集積回路装置及び累積加算器 |
JP2000132539A (ja) * | 1998-10-28 | 2000-05-12 | Matsushita Electric Ind Co Ltd | 演算装置 |
-
2010
- 2010-07-12 JP JP2010157564A patent/JP5589628B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012022363A (ja) | 2012-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11698773B2 (en) | Accelerated mathematical engine | |
JP6540725B2 (ja) | 演算処理装置、方法、およびプログラム | |
US9014508B2 (en) | Multiplierless coprocessor for difference of Gaussian (DoG) calculation | |
CN112465130A (zh) | 数论变换硬件 | |
JPH06103301A (ja) | 8x8離散コサイン変換回路および8x8離散コサイン逆変換回路 | |
US7020671B1 (en) | Implementation of an inverse discrete cosine transform using single instruction multiple data instructions | |
JP6357345B2 (ja) | ビデオデータ処理時に空間領域と周波数領域との間の変換を実行するためのデータ処理装置および方法 | |
JP5589628B2 (ja) | 内積演算装置および内積演算方法 | |
US8909687B2 (en) | Efficient FIR filters | |
JP2822399B2 (ja) | 対数関数演算装置 | |
JP3129392B2 (ja) | 2次元idct回路 | |
CN116888591A (zh) | 一种矩阵乘法器、矩阵计算方法及相关设备 | |
JP2508784B2 (ja) | 指数関数演算装置 | |
JP3660075B2 (ja) | 除算装置 | |
JP4933405B2 (ja) | データ変換装置及びその制御方法 | |
KR101527103B1 (ko) | 이산 코사인 변환 장치 및 방법 | |
EP1936492A1 (en) | SIMD processor with reduction unit | |
JP4405452B2 (ja) | 逆変換回路 | |
KR100575285B1 (ko) | 고속의 저전력 이산 코사인 변환 장치 및 방법 | |
JP2009245407A (ja) | 複素数の積和演算装置および積和演算方法 | |
Rybenkov et al. | High performance multiplier-less pipelined FPGA architecture for 2-D non-separable quaternionic filter banks | |
JP2001084242A (ja) | 可変演算プロセッサ | |
JP3970442B2 (ja) | 離散コサイン変換装置及び逆離散コサイン変換装置 | |
JP2008158855A (ja) | 相関演算器及び相関演算方法 | |
JP3652717B2 (ja) | 離散コサイン高速演算器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130621 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140225 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140226 |
|
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: 20140701 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140714 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5589628 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |