(57)【要約】【課題】一例として、積和演算を少ない手順で実行することができる演算装置を提供する。【解決手段】実施形態に係る演算装置は、ｎ（ｎは２以上の自然数）個の乗算項を加算する積和演算を実行する演算装置であって、ｎ個の第１演算器と、第２演算器とを備える。ｎ個の第１演算器は、ｎ個の乗算項のそれぞれの演算を行う。第２演算器は、ｎ個の第１演算器による演算結果を加算する。【選択図】図３
2020086680.tif 000002
【特許請求の範囲】
【請求項１】
ｎ（ｎは２以上の自然数）個の乗算項を加算する積和演算を実行する演算装置であって、
前記ｎ個の乗算項のそれぞれの演算を行う前記ｎ個の第１演算器と、
前記ｎ個の第１演算器による演算結果を加算する第２演算器と
を備える、演算装置。
【請求項２】
前記ｎ個の第１演算器は、加算器である、請求項１に記載の演算装置。
【請求項３】
前記ｎ個の第１演算器に対し、前記乗算項の演算を時分割で実行させる制御部
を備える、請求項２に記載の演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、演算装置に関する。
【背景技術】
【０００２】
従来、演算対象のデータをビットシリアルに処理する演算装置が知られている。たとえば、特許文献１には、データ転送路と演算回路との間でビット単位かつエントリパラレル態様でデータを転送する複数のデータ転送回路を備え、演算回路が多ビットデータに対してビットシリアルな態様で演算を実行する半導体装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１２７４６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
たとえば画像処理や画像認識の分野においては、３×３ピクセルや５×５ピクセル等の積和演算が頻出する。この場合、従来技術では、１ピクセルごとに積和演算が実行されるため、たとえば３×３ピクセルの積和演算を行うためには合計９回の演算処理を実行する必要がある。
【０００５】
本発明は、一例として、積和演算を少ない手順で実行することができる演算装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態に係る演算装置は、一例として、ｎ（ｎは２以上の自然数）個の乗算項を加算する積和演算を実行する演算装置であって、前記ｎ個の乗算項のそれぞれの演算を行う前記ｎ個の第１演算器と、前記ｎ個の第１演算器による演算結果を加算する第２演算器とを備える。よって、一例としては、積和演算におけるｎ個の乗算項をｎ個の第１演算器を用いて並列に演算し、ｎ個の第１演算器の各演算結果を第２演算器により加算するため、積和演算を少ない手順で実行することができる。
【０００７】
上記演算装置では、一例として、前記ｎ個の第１演算器は、加算器である。よって、一例としては、第１演算器を乗算器で構成した場合と比較して回路規模を小さくすることができる。
【０００８】
上記演算装置は、一例として、前記ｎ個の第１演算器に対し、前記乗算項の演算を時分割で実行させる制御部を備える。よって、一例としては、第１演算器をたとえば２ビット加算器や４ビット加算器等、演算対象となるデータのビット数よりも少ないビット数の加算器で構成することが可能となるため、回路規模をさらに小さくすることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態に係る演算装置の構成例を示すブロック図である。
【図２】図２は、実施形態に係る演算部の構成例を示すブロック図である。
【図３】図３は、実施形態に係る積和演算処理の説明図である。
【発明を実施するための形態】
【００１０】
図１は、実施形態に係る演算装置の構成例を示すブロック図である。図１に示すように、実施形態に係る演算装置１は、入力部１０と、記憶部２０と、演算部３０と、制御部４０と、出力部５０とを備える。なお、演算装置１は、記憶部２０および演算部３０を複数セット備えていてもよい。
【００１１】
入力部１０は、撮像装置２によって撮像された撮像画像を取得する。また、入力部１０は、取得した撮像画像の画像データを記憶部２０に記憶させる。撮像装置２は、たとえば、ＣＣＤ（Charge  Coupled  Device）カメラ等である。
【００１２】
記憶部２０は、たとえばＲＡＭ（Random  Access  Memory）である。記憶部２０は、演算部３０での演算に用いられるデータ、ここでは、画像データを一時的に記憶する。また、記憶部２０は、フィルタデータおよび演算部３０による演算結果のデータも記憶する。
【００１３】
演算部３０は、記憶部２０に記憶された画像データに対して畳み込み演算（フィルタ演算）を行う。具体的には、演算部３０は、ｎ（ｎは２以上の自然数）個の乗算項を加算する積和演算を実行する。ここでは、一例として、記憶部２０に記憶された画像データおよびフィルタデータを用いて、３×３ピクセル（すなわち、ｎ＝９）の積和演算を実行するものとする。なお、フィルタの種類は限定されるものではなく、メディアンフィルタやガウシアンフィルタなど種々のフィルタを適用することができる。
【００１４】
制御部４０は、記憶部２０および演算部３０を制御する。出力部５０は、記憶部２０に記憶された演算結果を外部に出力する。
【００１５】
次に、演算装置１が備える演算部３０の構成例について図２を参照して説明する。図２は、実施形態に係る演算部３０の構成例を示すブロック図である。
【００１６】
図２に示すように、実施形態に係る演算部３０は、９個の第１演算器３１ａ〜３１ｉと第２演算器３２とを備えており、これら第１演算器３１ａ〜３１ｉおよび第２演算器３２を用いて３×３ピクセルの積和演算を実行する。
【００１７】
ここで、実施形態に係る積和演算処理の内容について図３を参照して説明する。図３は、実施形態に係る積和演算処理の説明図である。
【００１８】
図３に示すように、演算装置１は、入力画像の画像データのうち、注目画素（ここでは、画素値Ｅの画素）および注目画素の周囲に位置する８つの画素の計９個の画素データと、３×３のフィルタＦとを用いた積和演算を行う。ここで、画素値Ａ〜Ｉの画素データと係数ａ〜ｉのフィルタＦとの積和演算は、Ａ×ａ＋Ｂ×ｂ＋Ｃ×ｃ＋Ｄ×ｄ＋Ｅ×ｅ＋Ｆ×ｆ＋Ｇ×ｇ＋Ｈ×ｈ＋Ｉ×ｉの式で表される。以下では、乗算項「Ａ×ａ」〜「Ｉ×ｉ」をそれぞれ乗算項ｍ１〜ｍ９と称する。
【００１９】
まず、演算装置１は、記憶部２０からデータを読み出す処理を行う。具体的には、制御部４０は、記憶部２０を制御して、乗算項ｍ１に含まれる画素値Ａおよび係数ａを乗算項ｍ１に対応する第１演算器３１ａに出力させる。同様に、制御部４０は、記憶部２０を制御して、乗算項ｍ２〜ｍ９のデータを乗算項ｍ２〜ｍ９に対応する第１演算器３１ｂ〜３１ｉに出力させる。この読出処理は、９個の第１演算器３１ａ〜３１ｉに対して並列に実行される。つまり、乗算項ｍ１〜ｍ９のデータは同時に読み出される。
【００２０】
９個の第１演算器３１ａ〜３１ｉは、入力されたデータを用いて乗算処理を行う。具体的には、第１演算器３１ａは、乗算項ｍ１の乗算処理（「Ａ×ａ」）を行う。同様に、第１演算器３１ｂ〜３１ｉは、乗算項ｍ２〜ｍ９の乗算処理を行う。上述したように、９個の第１演算器３１ａ〜３１ｉには、乗算項ｍ１〜ｍ９のデータが同時に入力されるため、９個の第１演算器３１ａ〜３１ｉによる乗算処理は同時に実行される。演算処理を終えると、各第１演算器３１ａ〜３１ｉは、演算結果のデータを記憶部２０に書き戻す。
【００２１】
つづいて、制御部４０は、記憶部２０を制御して、９個の第１演算器３１ａ〜３１ｉによる各演算結果を第２演算器３２に出力させる。第２演算器３２は、加算器であり、入力された９個の演算結果を足し合わせる加算処理を実行し、演算結果を出力画像の画像データとして記憶部２０へ書き戻す。
【００２２】
このように、実施形態に係る演算部３０は、３×３ピクセルの積和演算における９個の乗算項を９個の第１演算器３１ａ〜３１ｉを用いて並列に演算し、９個の第１演算器３１ａ〜３１ｉの各演算結果を第２演算器３２により加算することによって３×３ピクセルの積和演算を実現する。これにより、実施形態に係る演算装置１は、記憶部２０からのデータの読み出し、３×３ピクセルの積和演算、演算結果の記憶部２０への書き戻しを１サイクルで行うことができる。
【００２３】
実施形態に係る演算装置１において、第１演算器３１ａ〜３１ｉは、加算器で構成され、制御部４０は、既知の乗算アルゴリズムであるブースのアルゴリズムに従って記憶部２０および第１演算器３１ａ〜３１ｉを制御することにより、加算器である第１演算器３１ａ〜３１ｉを用いて乗算処理を実現する。
【００２４】
このように、第１演算器３１ａ〜３１ｉを加算器で構成することにより、たとえば、第１演算器３１ａ〜３１ｉを乗算器で構成した場合と比較して回路規模を小さくすることができる。
【００２５】
また、制御部４０は、第１演算器３１ａ〜３１ｉに対し乗算処理を時分割で実行させる。これにより、第１演算器３１ａ〜３１ｉをたとえば２ビット加算器や４ビット加算器等、演算対象となるデータのビット数よりも少ないビット数の加算器で構成することが可能となるため、回路規模をさらに小さくすることができる。
【００２６】
たとえば、第１演算器３１ａ〜３１ｉが２ビット加算器であり、演算対象となる入力データがそれぞれ８ビットである場合、第１演算器３１ａ〜３１ｉを用いて時分割で２ビットずつ演算を行うことで、８ビット×８ビットの乗算を実現することができる。なお、この場合、第１演算器３１ａ〜３１ｉは、演算対象となる２ビットのデータがそれぞれ入力される２つのデータ入力部と、演算結果を出力する１つのデータ出力部の他、桁上げ（キャリー）の信号が入力されるキャリー入力部と、桁上げ（キャリー）の信号を出力するキャリー出力部とを備える。
【００２７】
上述してきたように、実施形態に係る演算装置１は、ｎ（ｎは２以上の自然数）個の乗算項を加算する積和演算を実行する演算装置であって、ｎ個の第１演算器（ここでは、９個の第１演算器３１ａ〜３１ｉ）と、第２演算器３２とを備える。ｎ個の第１演算器は、ｎ個の乗算項のそれぞれの演算を行う。第２演算器３２は、ｎ個の第１演算器による演算結果を加算する。よって、一例としては、積和演算におけるｎ個の乗算項をｎ個の第１演算器を用いて並列に演算し、ｎ個の第１演算器の各演算結果を第２演算器３２により加算するため、積和演算を少ない手順で実行することができる。
【００２８】
また、実施形態に係る演算装置１において、ｎ個の第１演算器は、加算器である。よって、一例としては、第１演算器を乗算器で構成した場合と比較して回路規模を小さくすることができる。
【００２９】
また、実施形態に係る演算装置１は、ｎ個の第１演算器に対し、乗算項の演算を時分割で実行させる制御部４０を備える。よって、一例としては、第１演算器をたとえば２ビット加算器や４ビット加算器等、演算対象となるデータのビット数よりも少ないビット数の加算器で構成することが可能となるため、回路規模をさらに小さくすることができる。
【００３０】
ここでは、３×３ピクセルの積和演算を実行する場合の演算装置の構成例として、９個の第１演算器３１ａ〜３１ｉを備える構成例について説明したが、演算装置１が備える第１演算器の個数は９個に限定されない。すなわち、演算装置１は、積和演算における乗算項の個数と少なくとも同数の第１演算器を備えていれば良く、たとえば、５×５ピクセルの積和演算を実行する場合には、２５個の第１演算器を備えていればよい。
【００３１】
また、上述した実施形態では、画像処理におけるフィルタ演算に用いられる積和演算を演算装置１が実行する場合の例について説明したが、演算装置１の用途は上記の例に限定されない。たとえば、演算装置１は、撮像画像を用いたセンシング技術におけるニューラルネットワーク・アルゴリズムの処理に用いられる積和演算を実行するものであってもよい。
【００３２】
以上、本発明の実施形態を例示したが、上記実施形態および変形例はあくまで一例であって、発明の範囲を限定することは意図していない。上記実施形態や変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、組み合わせ、変更を行うことができる。また、各実施形態や各変形例の構成や形状は、部分的に入れ替えて実施することも可能である。
【符号の説明】
【００３３】
１…演算装置、２…撮像装置、１０…入力部、２０…記憶部、３０…演算部、４０…制御部、５０…出力部、３１ａ〜３１ｉ…第１演算器、３２…第２演算器。
【図１】
2020086680.tif 000003
【図２】
2020086680.tif 000004
【図３】
2020086680.tif 000005