JP2020086680A - 演算装置 - Google Patents
演算装置 Download PDFInfo
- Publication number
- JP2020086680A JP2020086680A JP2018216936A JP2018216936A JP2020086680A JP 2020086680 A JP2020086680 A JP 2020086680A JP 2018216936 A JP2018216936 A JP 2018216936A JP 2018216936 A JP2018216936 A JP 2018216936A JP 2020086680 A JP2020086680 A JP 2020086680A
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic
- unit
- units
- calculation
- product
- 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.)
- Pending
Links
Images
Landscapes
- Complex Calculations (AREA)
- Image Processing (AREA)
Abstract
【課題】一例として、積和演算を少ない手順で実行することができる演算装置を提供する。【解決手段】実施形態に係る演算装置は、n(nは2以上の自然数)個の乗算項を加算する積和演算を実行する演算装置であって、n個の第1演算器と、第2演算器とを備える。n個の第1演算器は、n個の乗算項のそれぞれの演算を行う。第2演算器は、n個の第1演算器による演算結果を加算する。【選択図】図3
Description
本発明の実施形態は、演算装置に関する。
従来、演算対象のデータをビットシリアルに処理する演算装置が知られている。たとえば、特許文献1には、データ転送路と演算回路との間でビット単位かつエントリパラレル態様でデータを転送する複数のデータ転送回路を備え、演算回路が多ビットデータに対してビットシリアルな態様で演算を実行する半導体装置が開示されている。
たとえば画像処理や画像認識の分野においては、3×3ピクセルや5×5ピクセル等の積和演算が頻出する。この場合、従来技術では、1ピクセルごとに積和演算が実行されるため、たとえば3×3ピクセルの積和演算を行うためには合計9回の演算処理を実行する必要がある。
本発明は、一例として、積和演算を少ない手順で実行することができる演算装置を提供する。
実施形態に係る演算装置は、一例として、n(nは2以上の自然数)個の乗算項を加算する積和演算を実行する演算装置であって、前記n個の乗算項のそれぞれの演算を行う前記n個の第1演算器と、前記n個の第1演算器による演算結果を加算する第2演算器とを備える。よって、一例としては、積和演算におけるn個の乗算項をn個の第1演算器を用いて並列に演算し、n個の第1演算器の各演算結果を第2演算器により加算するため、積和演算を少ない手順で実行することができる。
上記演算装置では、一例として、前記n個の第1演算器は、加算器である。よって、一例としては、第1演算器を乗算器で構成した場合と比較して回路規模を小さくすることができる。
上記演算装置は、一例として、前記n個の第1演算器に対し、前記乗算項の演算を時分割で実行させる制御部を備える。よって、一例としては、第1演算器をたとえば2ビット加算器や4ビット加算器等、演算対象となるデータのビット数よりも少ないビット数の加算器で構成することが可能となるため、回路規模をさらに小さくすることができる。
図1は、実施形態に係る演算装置の構成例を示すブロック図である。図1に示すように、実施形態に係る演算装置1は、入力部10と、記憶部20と、演算部30と、制御部40と、出力部50とを備える。なお、演算装置1は、記憶部20および演算部30を複数セット備えていてもよい。
入力部10は、撮像装置2によって撮像された撮像画像を取得する。また、入力部10は、取得した撮像画像の画像データを記憶部20に記憶させる。撮像装置2は、たとえば、CCD(Charge Coupled Device)カメラ等である。
記憶部20は、たとえばRAM(Random Access Memory)である。記憶部20は、演算部30での演算に用いられるデータ、ここでは、画像データを一時的に記憶する。また、記憶部20は、フィルタデータおよび演算部30による演算結果のデータも記憶する。
演算部30は、記憶部20に記憶された画像データに対して畳み込み演算(フィルタ演算)を行う。具体的には、演算部30は、n(nは2以上の自然数)個の乗算項を加算する積和演算を実行する。ここでは、一例として、記憶部20に記憶された画像データおよびフィルタデータを用いて、3×3ピクセル(すなわち、n=9)の積和演算を実行するものとする。なお、フィルタの種類は限定されるものではなく、メディアンフィルタやガウシアンフィルタなど種々のフィルタを適用することができる。
制御部40は、記憶部20および演算部30を制御する。出力部50は、記憶部20に記憶された演算結果を外部に出力する。
次に、演算装置1が備える演算部30の構成例について図2を参照して説明する。図2は、実施形態に係る演算部30の構成例を示すブロック図である。
図2に示すように、実施形態に係る演算部30は、9個の第1演算器31a〜31iと第2演算器32とを備えており、これら第1演算器31a〜31iおよび第2演算器32を用いて3×3ピクセルの積和演算を実行する。
ここで、実施形態に係る積和演算処理の内容について図3を参照して説明する。図3は、実施形態に係る積和演算処理の説明図である。
図3に示すように、演算装置1は、入力画像の画像データのうち、注目画素(ここでは、画素値Eの画素)および注目画素の周囲に位置する8つの画素の計9個の画素データと、3×3のフィルタFとを用いた積和演算を行う。ここで、画素値A〜Iの画素データと係数a〜iのフィルタFとの積和演算は、A×a+B×b+C×c+D×d+E×e+F×f+G×g+H×h+I×iの式で表される。以下では、乗算項「A×a」〜「I×i」をそれぞれ乗算項m1〜m9と称する。
まず、演算装置1は、記憶部20からデータを読み出す処理を行う。具体的には、制御部40は、記憶部20を制御して、乗算項m1に含まれる画素値Aおよび係数aを乗算項m1に対応する第1演算器31aに出力させる。同様に、制御部40は、記憶部20を制御して、乗算項m2〜m9のデータを乗算項m2〜m9に対応する第1演算器31b〜31iに出力させる。この読出処理は、9個の第1演算器31a〜31iに対して並列に実行される。つまり、乗算項m1〜m9のデータは同時に読み出される。
9個の第1演算器31a〜31iは、入力されたデータを用いて乗算処理を行う。具体的には、第1演算器31aは、乗算項m1の乗算処理(「A×a」)を行う。同様に、第1演算器31b〜31iは、乗算項m2〜m9の乗算処理を行う。上述したように、9個の第1演算器31a〜31iには、乗算項m1〜m9のデータが同時に入力されるため、9個の第1演算器31a〜31iによる乗算処理は同時に実行される。演算処理を終えると、各第1演算器31a〜31iは、演算結果のデータを記憶部20に書き戻す。
つづいて、制御部40は、記憶部20を制御して、9個の第1演算器31a〜31iによる各演算結果を第2演算器32に出力させる。第2演算器32は、加算器であり、入力された9個の演算結果を足し合わせる加算処理を実行し、演算結果を出力画像の画像データとして記憶部20へ書き戻す。
このように、実施形態に係る演算部30は、3×3ピクセルの積和演算における9個の乗算項を9個の第1演算器31a〜31iを用いて並列に演算し、9個の第1演算器31a〜31iの各演算結果を第2演算器32により加算することによって3×3ピクセルの積和演算を実現する。これにより、実施形態に係る演算装置1は、記憶部20からのデータの読み出し、3×3ピクセルの積和演算、演算結果の記憶部20への書き戻しを1サイクルで行うことができる。
実施形態に係る演算装置1において、第1演算器31a〜31iは、加算器で構成され、制御部40は、既知の乗算アルゴリズムであるブースのアルゴリズムに従って記憶部20および第1演算器31a〜31iを制御することにより、加算器である第1演算器31a〜31iを用いて乗算処理を実現する。
このように、第1演算器31a〜31iを加算器で構成することにより、たとえば、第1演算器31a〜31iを乗算器で構成した場合と比較して回路規模を小さくすることができる。
また、制御部40は、第1演算器31a〜31iに対し乗算処理を時分割で実行させる。これにより、第1演算器31a〜31iをたとえば2ビット加算器や4ビット加算器等、演算対象となるデータのビット数よりも少ないビット数の加算器で構成することが可能となるため、回路規模をさらに小さくすることができる。
たとえば、第1演算器31a〜31iが2ビット加算器であり、演算対象となる入力データがそれぞれ8ビットである場合、第1演算器31a〜31iを用いて時分割で2ビットずつ演算を行うことで、8ビット×8ビットの乗算を実現することができる。なお、この場合、第1演算器31a〜31iは、演算対象となる2ビットのデータがそれぞれ入力される2つのデータ入力部と、演算結果を出力する1つのデータ出力部の他、桁上げ(キャリー)の信号が入力されるキャリー入力部と、桁上げ(キャリー)の信号を出力するキャリー出力部とを備える。
上述してきたように、実施形態に係る演算装置1は、n(nは2以上の自然数)個の乗算項を加算する積和演算を実行する演算装置であって、n個の第1演算器(ここでは、9個の第1演算器31a〜31i)と、第2演算器32とを備える。n個の第1演算器は、n個の乗算項のそれぞれの演算を行う。第2演算器32は、n個の第1演算器による演算結果を加算する。よって、一例としては、積和演算におけるn個の乗算項をn個の第1演算器を用いて並列に演算し、n個の第1演算器の各演算結果を第2演算器32により加算するため、積和演算を少ない手順で実行することができる。
また、実施形態に係る演算装置1において、n個の第1演算器は、加算器である。よって、一例としては、第1演算器を乗算器で構成した場合と比較して回路規模を小さくすることができる。
また、実施形態に係る演算装置1は、n個の第1演算器に対し、乗算項の演算を時分割で実行させる制御部40を備える。よって、一例としては、第1演算器をたとえば2ビット加算器や4ビット加算器等、演算対象となるデータのビット数よりも少ないビット数の加算器で構成することが可能となるため、回路規模をさらに小さくすることができる。
ここでは、3×3ピクセルの積和演算を実行する場合の演算装置の構成例として、9個の第1演算器31a〜31iを備える構成例について説明したが、演算装置1が備える第1演算器の個数は9個に限定されない。すなわち、演算装置1は、積和演算における乗算項の個数と少なくとも同数の第1演算器を備えていれば良く、たとえば、5×5ピクセルの積和演算を実行する場合には、25個の第1演算器を備えていればよい。
また、上述した実施形態では、画像処理におけるフィルタ演算に用いられる積和演算を演算装置1が実行する場合の例について説明したが、演算装置1の用途は上記の例に限定されない。たとえば、演算装置1は、撮像画像を用いたセンシング技術におけるニューラルネットワーク・アルゴリズムの処理に用いられる積和演算を実行するものであってもよい。
以上、本発明の実施形態を例示したが、上記実施形態および変形例はあくまで一例であって、発明の範囲を限定することは意図していない。上記実施形態や変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、組み合わせ、変更を行うことができる。また、各実施形態や各変形例の構成や形状は、部分的に入れ替えて実施することも可能である。
1…演算装置、2…撮像装置、10…入力部、20…記憶部、30…演算部、40…制御部、50…出力部、31a〜31i…第1演算器、32…第2演算器。
Claims (3)
- n(nは2以上の自然数)個の乗算項を加算する積和演算を実行する演算装置であって、
前記n個の乗算項のそれぞれの演算を行う前記n個の第1演算器と、
前記n個の第1演算器による演算結果を加算する第2演算器と
を備える、演算装置。 - 前記n個の第1演算器は、加算器である、請求項1に記載の演算装置。
- 前記n個の第1演算器に対し、前記乗算項の演算を時分割で実行させる制御部
を備える、請求項2に記載の演算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018216936A JP2020086680A (ja) | 2018-11-20 | 2018-11-20 | 演算装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018216936A JP2020086680A (ja) | 2018-11-20 | 2018-11-20 | 演算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020086680A true JP2020086680A (ja) | 2020-06-04 |
Family
ID=70908091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018216936A Pending JP2020086680A (ja) | 2018-11-20 | 2018-11-20 | 演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020086680A (ja) |
-
2018
- 2018-11-20 JP JP2018216936A patent/JP2020086680A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6865847B2 (ja) | 処理装置、チップ、電子設備及び方法 | |
US20230064381A1 (en) | Memory-Size- and Bandwidth-Efficient Method for Feeding Systolic Array Matrix Multipliers | |
JP6700712B2 (ja) | 畳み込み演算装置 | |
EP3557484A1 (en) | Neural network convolution operation device and method | |
WO2018132718A1 (en) | Methods and apparatus for matrix processing in a convolutional neural network | |
JP2018073102A (ja) | 演算回路、その制御方法及びプログラム | |
JP6561877B2 (ja) | 演算処理装置 | |
CN108629406B (zh) | 用于卷积神经网络的运算装置 | |
CA2929403C (en) | Multi-dimensional sliding window operation for a vector processor | |
CN108681773B (zh) | 数据运算的加速方法、装置、终端及可读存储介质 | |
KR20200049366A (ko) | 뉴럴 네트워크 프로세서 및 그것의 컨볼루션 연산 방법 | |
US11341400B1 (en) | Systems and methods for high-throughput computations in a deep neural network | |
JP6567381B2 (ja) | 演算装置、方法及びプログラム | |
JP5229314B2 (ja) | Cordic演算回路及び方法 | |
JP7435602B2 (ja) | 演算装置および演算システム | |
JP2017027314A (ja) | 並列演算装置、画像処理装置及び並列演算方法 | |
US20200026998A1 (en) | Information processing apparatus for convolution operations in layers of convolutional neural network | |
JP2020086680A (ja) | 演算装置 | |
CN114600126A (zh) | 一种卷积运算电路和卷积运算方法 | |
AU2014380166B2 (en) | A method for electronic zoom with sub-pixel offset | |
CN112668709B (zh) | 计算装置以及用于数据重用的方法 | |
US20210034956A1 (en) | Minimum memory digital convolver | |
CN113672612A (zh) | 索引源数组中的元素 | |
US8666172B2 (en) | Providing multiple symmetrical filters | |
Bevara et al. | VLSI implementation of high throughput parallel pipeline median finder for IoT applications |