JP2016045721A - データ格納方法、三値内積演算回路、それを備えた半導体装置、及び、三値内積演算処理プログラム - Google Patents
データ格納方法、三値内積演算回路、それを備えた半導体装置、及び、三値内積演算処理プログラム Download PDFInfo
- Publication number
- JP2016045721A JP2016045721A JP2014169635A JP2014169635A JP2016045721A JP 2016045721 A JP2016045721 A JP 2016045721A JP 2014169635 A JP2014169635 A JP 2014169635A JP 2014169635 A JP2014169635 A JP 2014169635A JP 2016045721 A JP2016045721 A JP 2016045721A
- Authority
- JP
- Japan
- Prior art keywords
- ternary
- data
- ternary data
- value
- 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.)
- Granted
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 57
- 239000004065 semiconductor Substances 0.000 title claims abstract description 10
- 238000013500 data storage Methods 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 29
- 238000005516 engineering process Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 102100036464 Activated RNA polymerase II transcriptional coactivator p15 Human genes 0.000 description 3
- 101000713904 Homo sapiens Activated RNA polymerase II transcriptional coactivator p15 Proteins 0.000 description 3
- 229910004444 SUB1 Inorganic materials 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000009792 diffusion process Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
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/49—Computations with a radix, other than binary, 8, 16 or decimal, e.g. ternary, negative or imaginary radices, mixed radix non-linear PCM
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Logic Circuits (AREA)
Abstract
Description
図1は、実施の形態1に係る画像認識装置(半導体装置)1を示す図である。
図1に示すように、画像認識装置1は、例えば車両に搭載され、ホストプロセッサ11と、画像認識用プロセッサ(三値内積演算回路)12と、メモリ13と、を少なくとも備える。
図2に示すように、まず、画像認識用プロセッサ12は、カメラ等によって取り込まれた画像を受け取る(ステップS101)。
図4に示すように、入力データ(特徴量データ等)は、N(Nは1以上の整数)個の三値データ(要素)からなるデータ配列Xで表される。また、ワード長はL(Lは2以上の整数)ビットである。ここでは、2N≦Lである場合について説明する。
図19は、関連技術の三値データ格納方法を示す図である。
図19に示すように、入力データは、N(Nは1以上の整数)個の三値データ(要素)からなるデータ配列Xで表される。また、ワード長はL(Lは2以上の整数)ビットである。
図6は、画像認識用プロセッサ12の構成を示すブロック図である。
図6に示すように、画像認識用プロセッサ12は、半導体基板上にCMOS製造プロセスを用いて形成され、メモリ13に記憶された入力データ(特徴量データ等)及び命令データに基づいて演算処理を実行して、演算結果(画像認識結果)を出力する。
図7は、三値乗算器123を示すブロック図である。ここでは、要素数N=8,ワード長L=16である場合について説明する。
次に、図9及図10を用いて、画像認識用プロセッサ12の動作について説明する。
図9は、三値内積演算処理に関するアセンブリプログラムである。
図10を参照すると、
1サイクル目にて、レジスタr0に
(+1,+1, 0, 0, 0,−1,−1,−1)
=(01,01,00,00,00,10,10,10)が格納され、
2サイクル目にて、レジスタr3に
(−1,+1,−1, 0,+1,−1, 0,+1)
=(10,01,10,00,01,10,00,01)が格納される。
(−1,+1, 0, 0, 0,+1, 0,−1)
=(10,01,00,00,00,01,00,10)となる。
(00,01,00,00,00,01,00,00)となる。
また、5サイクル目のビットマスク処理の結果は、
(10,00,00,00,00,00,00,10)となる。
図21は、関連技術の画像認識用プロセッサ52の構成を示すブロック図である。
図21に示すように、画像認識用プロセッサ52は、制御部521,ALU522と、を備える。また、制御部521は、複数のレジスタからなるレジスタ部524を有する。
次に、関連技術の画像認識用プロセッサ52の動作について説明する。図22は、関連技術の三値内積演算処理に関するアセンブリプログラムである。本例では、要素数N=128、ワード長L=16である場合について説明する。ここで、関連技術の構成では、上述のように1ワード当たり1つの三値データのみ格納される。
なお、画像認識用プロセッサ12及びそれを備えた画像認識装置1は、例えば、汎用的なコンピュータシステムにより実現可能である。以下、図11を用いて簡単に説明する。
続いて、画像認識装置1の他の適用事例について説明する。
図12は、画像認識装置1の適用事例を示す図である。
図13は、実施の形態2に係る画像認識用プロセッサ22を示すブロック図である。
図13に示すように、画像認識用プロセッサ22は、制御部221と、ALU222と、三値乗算器223と、三値用ビットカウンタ225と、を少なくとも備える。また、制御部221は、複数のレジスタからなるレジスタ部224を有する。なお、制御部221、ALU222、三値乗算器223及びレジスタ部224は、それぞれ、制御部121、ALU122、三値乗算器123及びレジスタ部124に対応する。
図14は、三値用ビットカウンタ225を示すブロック図である。ここでは、要素数N=8,ワード長L=16である場合について説明する。
次に、図15を用いて、画像認識用プロセッサ22の動作について説明する。
図15は、三値内積演算処理に関するアセンブリプログラムである。
図16は、実施の形態3に係る画像認識用プロセッサ32を示すブロック図である。
図16に示すように、画像認識用プロセッサ32は、制御部321と、ALU322と、三値乗算器323と、三値用ビットカウンタ(乗算結果処理部)325と、を少なくとも備える。また、制御部321は、複数のレジスタからなるレジスタ部324を有する。なお、制御部321、ALU322、三値乗算器323及びレジスタ部324は、それぞれ、制御部121、ALU122、三値乗算器123及びレジスタ部124に対応する。
図17は、三値用ビットカウンタ325を示すブロック図である。ここでは、要素数N=8,ワード長L=16である場合について説明する。
次に、図18を用いて、画像認識用プロセッサ32の動作について説明する。
図18は、三値内積演算処理に関するアセンブリプログラムである。
11 ホストプロセッサ
12 画像認識用プロセッサ
13 メモリ
121 制御部
122 ALU
123 三値乗算器
124 レジスタ部
3mul2b_0〜3mul2b_7 三値乗算回路
151,152,153 AND回路
154 OR回路
155 EXOR回路
22 画像認識用プロセッサ
221 制御部
222 ALU
223 三値乗算器
224 レジスタ部
225 三値用ビットカウンタ
32 画像認識用プロセッサ
321 制御部
322 ALU
323 三値乗算器
324 レジスタ部
325 三値用ビットカウンタ
BC1〜BC3 ビットカウント回路
SEL0〜SEL7 セレクタ
SUB1 減算回路
Claims (12)
- 第1ビットが第1値を示す場合に+1を表し、第2ビットが第1値を示す場合に−1を表し、前記第1及び前記第2ビットが何れも第2値を示す場合に0を表す、複数の2ビット幅の三値データを1つのワードに格納する、データ格納方法。
- 請求項1に記載のデータ格納方法を用いて第1及び第2入力データを構成し、
前記第1入力データを構成する複数の三値データと、前記第2入力データを構成する複数の三値データと、をそれぞれ乗算して複数の2ビット幅の三値データにより構成される乗算結果を出力し、
前記乗算結果を構成する前記複数の三値データのうち+1を表す三値データの数から−1を表す三値データの数を減算した数を内積演算結果として出力する、三値内積演算方法。 - 前記乗算結果を構成する前記複数の三値データのうち第1ビットが第1値を示す三値データの数をカウントすることで、+1を表す前記三値データの数を特定し、
前記乗算結果を構成する前記複数の三値データのうち第2ビットが第1値を示す三値データの数をカウントすることで、−1を表す前記三値データの数を特定し、
+1を表す前記三値データの数から−1を表す前記三値データの数を減算した数を前記内積演算結果として出力する、請求項2に記載の三値内積演算方法。 - 第1ビットが第1値を示す場合に+1を表し、第2ビットが第1値を示す場合に−1を表し、前記第1及び前記第2ビットが何れも第2値を示す場合に0を表す、複数の2ビット幅の三値データを1つのワードに格納することで構成される第1及び第2入力データのそれぞれの複数の三値データ間の乗算を行う三値乗算部を備え、
前記三値乗算部の乗算結果を構成する複数の三値データのうち+1を表す三値データの数から−1を表す三値データの数を減算した数が内積演算結果として出力される、三値内積演算回路。 - 前記三値乗算部の乗算結果を構成する前記複数の三値データのうち、+1を表す前記三値データの数、及び、−1を表す前記三値データの数、を選択的にカウントするカウンタをさらに備え、
前記カウンタによりカウントされた+1を表す前記三値データの数から−1を表す前記三値データの数を減算した数が内積演算結果として出力される、請求項4に記載の三値内積演算回路。 - 前記カウンタは、前記三値乗算部の乗算結果を構成する前記複数の三値データのうち第1ビットが第1値を示す三値データの数をカウントすることで、+1を表す前記三値データの数を特定するとともに、第2ビットが第1値を示す三値データの数をカウントすることで、−1を表す前記三値データの数を特定する、請求項5に記載の三値内積演算回路。
- 前記三値乗算部の乗算結果を構成する前記複数の三値データのうち+1を表す前記三値データの数から−1を表す前記三値データの数を減算した数を内積演算結果として出力する乗算結果処理部をさらに備えた、請求項4に記載の三値内積演算回路。
- 前記乗算結果処理部は、
前記三値乗算部の乗算結果を構成する前記複数の三値データのうち+1を表す前記三値データの数をカウントする第1カウンタと、
前記三値乗算部の乗算結果を構成する前記複数の三値データのうち−1を表す前記三値データの数をカウントする第2カウンタと、
前記第1カウンタのカウント結果から前記第2カウンタのカウント結果を減算する減算回路と、を有する、請求項7に記載の三値内積演算回路。 - 前記第1カウンタは、前記三値乗算部の乗算結果を構成する前記複数の三値データのうち第1ビットが第1値を示す三値データの数をカウントすることで、+1を表す前記三値データの数を特定し、
前記第2カウンタは、前記三値乗算部の乗算結果を構成する前記複数の三値データのうち第2ビットが第1値を示す三値データの数をカウントすることで、−1を表す前記三値データの数を特定する、請求項8に記載の三値内積演算回路。 - 請求項4に記載の三値内積演算回路と、
前記三値内積演算回路に入力される前記第1及び前記第2入力データが記憶されるメモリと、を少なくとも備えた半導体装置。 - 第1ビットが第1値を示す場合に+1を表し、第2ビットが第1値を示す場合に−1を表し、前記第1及び前記第2ビットが何れも第2値を示す場合に0を表す、複数の2ビット幅の三値データを1つのワードに格納することで構成される第1及び第2入力データのそれぞれの複数の三値データ間の乗算を行う乗算処理と、
前記乗算処理による乗算結果を構成する複数の三値データのうち+1を表す三値データの数をカウントする第1カウント処理と、
前記乗算処理による乗算結果を構成する複数の三値データのうち−1を表す三値データの数をカウントする第2カウント処理と、
+1を表す前記三値データの数から−1を表す前記三値データの数を減算する減算処理と、をコンピュータに実行させる三値内積演算処理プログラム。 - 前記第1カウント処理は、前記乗算結果を構成する前記複数の三値データのうち第1ビットが第1値を示す三値データの数をカウントすることで、+1を表す前記三値データの数を特定し、
前記第2カウント処理は、前記乗算結果を構成する前記複数の三値データのうち第2ビットが第1値を示す三値データの数をカウントすることで、−1を表す前記三値データの数を特定する、請求項11に記載の三値内積演算処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014169635A JP6324264B2 (ja) | 2014-08-22 | 2014-08-22 | 三値内積演算回路、三値内積演算処理プログラム、及び、三値内積演算回路による演算処理方法 |
US14/797,104 US10133552B2 (en) | 2014-08-22 | 2015-07-11 | Data storage method, ternary inner product operation circuit, semiconductor device including the same, and ternary inner product arithmetic processing program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014169635A JP6324264B2 (ja) | 2014-08-22 | 2014-08-22 | 三値内積演算回路、三値内積演算処理プログラム、及び、三値内積演算回路による演算処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016045721A true JP2016045721A (ja) | 2016-04-04 |
JP6324264B2 JP6324264B2 (ja) | 2018-05-16 |
Family
ID=55348372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014169635A Active JP6324264B2 (ja) | 2014-08-22 | 2014-08-22 | 三値内積演算回路、三値内積演算処理プログラム、及び、三値内積演算回路による演算処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10133552B2 (ja) |
JP (1) | JP6324264B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6324264B2 (ja) * | 2014-08-22 | 2018-05-16 | ルネサスエレクトロニクス株式会社 | 三値内積演算回路、三値内積演算処理プログラム、及び、三値内積演算回路による演算処理方法 |
CN108363559B (zh) * | 2018-02-13 | 2022-09-27 | 北京旷视科技有限公司 | 神经网络的乘法处理方法、设备和计算机可读介质 |
CN111555751A (zh) * | 2020-06-02 | 2020-08-18 | 杭州电子科技大学 | 基于忆阻器的三值异或和同或逻辑门电路 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS593550A (ja) * | 1982-06-30 | 1984-01-10 | Yokogawa Hokushin Electric Corp | 演算処理装置 |
JPH0793545A (ja) * | 1993-09-22 | 1995-04-07 | Mitsubishi Electric Corp | 画像処理装置 |
JP2001265779A (ja) * | 2000-03-16 | 2001-09-28 | Hitachi Ltd | 音響検索方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2536879A1 (fr) * | 1982-11-26 | 1984-06-01 | Efcis | Multiplieur binaire rapide |
JPH01195574A (ja) * | 1988-01-29 | 1989-08-07 | Nec Corp | ディジタル信号処理装置 |
JP3421933B2 (ja) * | 1994-10-31 | 2003-06-30 | 弘之 河▲崎▼ | 演算処理装置及び電子計算機 |
US5931893A (en) * | 1997-11-11 | 1999-08-03 | Ericsson, Inc. | Efficient correlation over a sliding window |
US6232894B1 (en) * | 1998-05-15 | 2001-05-15 | Kokochi Sangyo Co., Ltd. | Reproducible data conversion and/or compression method of digital signals and a data converter and a digital computer |
JP3418595B2 (ja) | 2000-06-29 | 2003-06-23 | 新日本無線株式会社 | 三値ディジタル回路 |
DE602004008904D1 (de) * | 2004-07-13 | 2007-10-25 | St Microelectronics Srl | Vorrichtung zur digitalen Signalverarbeitung unter Verwendung der CSD Darstellung |
US7562106B2 (en) * | 2004-08-07 | 2009-07-14 | Ternarylogic Llc | Multi-value digital calculating circuits, including multipliers |
JP6055391B2 (ja) * | 2012-11-05 | 2016-12-27 | 株式会社デンソーアイティーラボラトリ | 関連性判定装置、関連性判定プログラム、及び関連性判定方法 |
JP6324264B2 (ja) * | 2014-08-22 | 2018-05-16 | ルネサスエレクトロニクス株式会社 | 三値内積演算回路、三値内積演算処理プログラム、及び、三値内積演算回路による演算処理方法 |
-
2014
- 2014-08-22 JP JP2014169635A patent/JP6324264B2/ja active Active
-
2015
- 2015-07-11 US US14/797,104 patent/US10133552B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS593550A (ja) * | 1982-06-30 | 1984-01-10 | Yokogawa Hokushin Electric Corp | 演算処理装置 |
JPH0793545A (ja) * | 1993-09-22 | 1995-04-07 | Mitsubishi Electric Corp | 画像処理装置 |
JP2001265779A (ja) * | 2000-03-16 | 2001-09-28 | Hitachi Ltd | 音響検索方法 |
Also Published As
Publication number | Publication date |
---|---|
US10133552B2 (en) | 2018-11-20 |
US20160054979A1 (en) | 2016-02-25 |
JP6324264B2 (ja) | 2018-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nguyen et al. | A high-throughput and power-efficient FPGA implementation of YOLO CNN for object detection | |
CN110036368B (zh) | 用于执行算术运算以累加浮点数的装置及方法 | |
US20210089871A1 (en) | Processing system and method for binary weight convolutional neural network | |
JP6225687B2 (ja) | データ処理装置、およびデータ処理方法 | |
TW201104569A (en) | Microprocessors and methods for executing instruction | |
US10908877B2 (en) | Median value determination in a data processing system | |
US9678716B2 (en) | Apparatus and method for performing absolute difference operation | |
CN109863476A (zh) | 动态变量精度计算 | |
CN108733347B (zh) | 一种数据处理方法及装置 | |
JP6324264B2 (ja) | 三値内積演算回路、三値内積演算処理プログラム、及び、三値内積演算回路による演算処理方法 | |
CN107851007B (zh) | 宽数据类型的比较的方法和装置 | |
Venkatachalam et al. | Approximate sum-of-products designs based on distributed arithmetic | |
CN111936965A (zh) | 随机舍入逻辑 | |
US20220156043A1 (en) | Apparatus and Method for Processing Floating-Point Numbers | |
CN108364298B (zh) | 用于将像素识别为局部极值点的方法和布置 | |
WO2019023910A1 (zh) | 数据处理方法和设备 | |
JP6925823B2 (ja) | データを抽出する装置及び方法 | |
US8140608B1 (en) | Pipelined integer division using floating-point reciprocal | |
CN111445016B (zh) | 加速非线性数学计算的系统及方法 | |
US10180826B2 (en) | Estimation of bit widths of variables based on liveness | |
US20180032336A1 (en) | Processor and method for executing instructions on processor | |
Gaihua et al. | Instance segmentation convolutional neural network based on multi-scale attention mechanism | |
Eusse et al. | A flexible ASIP architecture for connected components labeling in embedded vision applications | |
Gan et al. | Parallel array histogram architecture for embedded implementations | |
CN112132272A (zh) | 神经网络的计算装置、处理器和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170524 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180116 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180314 |
|
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: 20180403 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180410 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6324264 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |