JP2007206887A - Lsiチップ及び演算処理システム - Google Patents

Lsiチップ及び演算処理システム Download PDF

Info

Publication number
JP2007206887A
JP2007206887A JP2006023630A JP2006023630A JP2007206887A JP 2007206887 A JP2007206887 A JP 2007206887A JP 2006023630 A JP2006023630 A JP 2006023630A JP 2006023630 A JP2006023630 A JP 2006023630A JP 2007206887 A JP2007206887 A JP 2007206887A
Authority
JP
Japan
Prior art keywords
data
lsi chip
kernel
arithmetic
input
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
Application number
JP2006023630A
Other languages
English (en)
Other versions
JP4947983B2 (ja
Inventor
Osamu Nomura
修 野村
Takashi Morie
隆 森江
Keisuke Koresumi
圭祐 是角
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2006023630A priority Critical patent/JP4947983B2/ja
Publication of JP2007206887A publication Critical patent/JP2007206887A/ja
Application granted granted Critical
Publication of JP4947983B2 publication Critical patent/JP4947983B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

【課題】 LSIチップに内蔵するメモリ回路ブロックのメモリサイズを超える2次元データに対する演算処理を効率的に実行可能な技術を提供する。
【解決手段】 2次元の対象データと2次元のカーネルとの畳み込み演算を行うLSIチップであって、前記対象データを保持する対象データメモリ10と、前記カーネルを保持するカーネルメモリ11と、前記対象データと、前記カーネルと、に基づいて畳み込み演算処理を行う演算回路16と、前記対象データを外部のLSIチップと入出力する入出力配線と、を備え、前記演算回路16は、前記演算回路における演算において必要な対象データであって、当該LSIチップに備えられた前記対象データメモリ10に存在しないデータは、前記入出力配線を介して、前記外部のLSIチップに備えられた前記対象データメモリから入力することを特徴とする。
【選択図】 図4

Description

本発明は、LSIチップ及び演算処理システムに関する。
従来より、演算回路が実装された基板を複数接続することで、階層的な演算処理を実行する演算処理システムが知られている(特許文献1)。このような演算処理システムについて、図23を参照して説明する。図23は、演算回路が実装された複数の基板を接続してなる演算処理システムの構成例を模式的に示した図である。
図23においては、演算回路に相当する複数個の学習機能付き神経細胞模倣素子20が、階層型網状に接続して設けられている。さらに、これらの神経細胞模倣素子20を制御する制御手段を備えた演算処理システムにおいて、神経細胞模倣素子20は、層A2、A3毎に設けられた基板55a、55b上に分割して搭載されている。このような構成により、ニューロコンピュータシステムとしての演算処理システムが構築されている。
また、画像データ等の2次元的に分布するデータに対して、2次元的に分布する重みを有するカーネルとの畳込み演算を実行するLSI(large-scale integration)チップが知られている(非特許文献1)。このようなLSIチップの処理フローについて、図24を参照して説明する。図24は、2次元データに対して畳み込み演算を実行するLSIチップにおける、データの流れを模式的に示した図である。
画像データとカーネルデータは、それぞれSRAM(Image SRAMとKernel SRAM)に記憶される。画像データは、シフトレジスタ(SR)、デジタル/PWM変換器(D/P)を経てPWM積和演算回路(PWM−MAC)に入力される。カーネルデータは、SR、D/P、PWM/アナログ変換器(P/A)を経てPWM−MACに入力される。ただし、SRはSRAMが出力するシリアルデータをパラレルデータに変換する。また、D/PとP/Aはそれぞれ、デジタル信号をPWM信号、PWM信号をアナログ電圧に変換する。PWM−MACは畳込み演算処理を並列に行なう。なお、PWMはpulse-width modulation(パルス幅変調)の略称である。
PWM−MACの出力は、PWM/デジタル変換器(P/D)を経てデジタル累算器(ACC)によって累算される。累算結果はマルチプレクサ(MUX)を経てルックアップテーブル(LUT)により非線形変換され、再びImage SRAMに記憶される。以上の処理を繰り返すことにより、画像データから特徴の検出を行う。
特開平5−233582号公報 K.Korekado et al., "An Image Filtering Processor for Face/Object Recognition Using Merged/Mixed Analog-Digital Architecture", in 2005 Symposium on VLSI Circuits, Digest of Technical papers, pp. 220-223, Kyoto, Japan, June 2005.
しかしながら、特許文献1に開示された演算処理システムにおいては、異なる基板の神経細胞模倣素子間における全ての接続について配線を実装する必要があるため、接続する素子の数が増えた場合、その配線を全て実装することが困難になる。特に、画像データのように2次元的に分布するデータに対して2次元的な重み分布を有するカーネルとの畳み込み演算を実行する場合、多数の素子を複雑に接続する必要があるため、神経細胞模倣素子同士の全ての接続を実装することは困難である。
また非特許文献1に開示されたLSIチップにおいては、当該LSIチップに含まれるImage SRAMのメモリサイズを越えるサイズの2次元データに対して、演算処理を実行することが困難である。
本発明は上記問題に鑑みなされたものであり、LSIチップに内蔵するメモリ回路ブロックのメモリサイズを超える2次元データに対する演算処理を効率的に実行可能な技術を提供することを目的とする。
上記目的を達成するため、本発明によるLSIチップは以下の構成を備える。即ち、
2次元の対象データと2次元のカーネルとの畳み込み演算を行うLSIチップであって、
前記対象データを保持する対象データメモリと、
前記カーネルを保持するカーネルメモリと、
前記対象データと、前記カーネルと、に基づいて畳み込み演算処理を行う演算回路と、
前記対象データを外部のLSIチップと入出力する入出力配線と、
を備え、
前記演算回路は、前記演算回路における演算において必要な対象データであって、当該LSIチップに備えられた前記対象データメモリに存在しないデータは、前記入出力配線を介して、前記外部のLSIチップに備えられた前記対象データメモリから入力する。
また、本発明による演算処理システムは以下の構成を備える。即ち、
複数のLSIチップを接続してなり、2次元の対象データと2次元のカーネルとの畳み込み演算を行う、演算処理システムであって、
前記LSIチップのそれぞれは、
前記対象データを保持する対象データメモリと、
前記カーネルを保持するカーネルメモリと、
前記対象データと、前記カーネルと、に基づいて畳み込み演算処理を行う演算回路と、
前記対象データを隣接する前記LSIチップと入出力する入出力配線と、
を備え、
前記対象データは隣接する複数の前記LSIチップのそれぞれに備えられた前記対象データメモリに分散して保持され、
前記演算回路は、該演算回路における演算において必要な対象データであって、当該演算回路を備える前記LSIチップに備えられた前記対象データメモリに存在しないデータは、前記入出力配線を介して、隣接する前記LSIチップに備えられた前記対象データメモリから入力する。
本発明によれば、LSIチップに内蔵するメモリ回路ブロックのメモリサイズを超える2次元データに対する演算処理を効率的に実行可能な技術を提供することができる。
以下、添付図面を参照して本発明に係る実施の形態を詳細に説明する。ただし、この実施の形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
<<第1実施形態>>
(演算処理システム)
図1は、本実施形態に係る演算処理システムを模式的に示した図である。図1に示すように演算処理システムは、4個のLSIチップ1〜4が1列に配置されて構成される。なお、LSIチップの個数は、演算処理対象のデータサイズに応じて変更することが可能であり、本実施形態においては一例として4個のケースを示している。またそれぞれのLSIチップは、隣接するLSIチップとデータを入力及び出力する配線5によって接続されている。ここで、本実施形態においては、それぞれのチップ間で入力及び出力されるデータ幅を6ビットとしてるが、その他のデータ幅を有するものであっても良い。その場合は、データ幅に応じて配線の本数が変わる。なお図1では、6bitの配線及びLSIチップのピンを1本の配線及びピンで略記している。また図1においては、前述した入力及び出力用の配線5以外の配線は、本実施形態の説明に必要でないため、記載していない。
(演算処理例)
次に、前記の演算処理システムで実現する演算処理の一例について、図2を参照して説明する。図2は、階層型コンボリューショナル・ニューラルネットワークを用いて顔の位置検出を行う処理を模式的に示した図である。
図2に示すように、本実施形態における演算処理は、初段層8に画像データ7を入力し、所定の2次元的に分布する重みを有するカーネル6との畳込み演算を階層的に繰り返し実行する。階層1〜6においては、初段層に対して実行した畳込み演算の演算結果群に対して、初段層と同様にカーネル6との畳込み演算を実行する。この場合、ある階層に含まれる一つの演算素子で実行される演算は、前段出力値をo、カーネルの重みをwとした場合、以下の式(1)で表される。
u=Σw・o ・・・(1)
階層的に畳込み演算を行う際に、それぞれの階層で算出された演算結果は、次段の畳込み演算に対する入力値となる。また各層においては、畳込み演算結果として、複数の異なる演算結果群を算出する場合もある。この場合の複数の異なる演算結果は、図2に示すように、複数の異なる特徴の検出結果に相当する。これはカーネルの重み分布を変更することによって実現される。また図2に示すように、畳込み演算は前段層の複数の演算結果群を入力値とする場合もある。
本実施形態における演算処理は、2次元的にデータが分布する自然画像から特徴を検出する手法として知られている、階層型コンボリューショナル・ニューラルネットワークを用いて顔の位置検出を行う場合を想定するが、これに限られない。即ち、2次元的に分布するデータと、所定の2次元的に分布する重みを有するカーネルとの畳込み演算を実行するものであれば、その他のアルゴリズムを実行するものであっても良い。
(LSIチップの回路構成)
続いて、前記の演算処理システムを構成するLSIチップ1〜4の回路構成について、図3を参照して説明する。図3は、LSIチップの回路構成を模式的に示したブロック図である。図3に示すように、本実施形態におけるLSIチップは以下の回路ブロックを有する。
・メモリ回路ブロック(MEM)10。
・カーネルデータメモリ回路ブロック(KMEM)11。
・レジスタ(REG)12,14。
・デジタル‐PWM変換回路ブロック(D/P)13,15。
・PWM‐アナログ変換回路(P/A)17。
・演算回路ブロック(PWM−MAC)16。
・累算回路ブロック(ACC)19。
・PWM‐デジタル変換回路ブロック(P/D)18。
・マルチプレクサ(MUX)20。
・ルックアップテーブル(LUT)21。
なお、図3中では、配線は省略している。
(処理の流れ)
続いて、前記の各回路ブロックが実行する処理の流れについて、図4を参照して説明する。図4は、回路ブロック間のデータの流れを模式的に示したブロック図である。
画像データまたは前段層の演算結果は、メモリ回路ブロック(MEM)10に記憶される。また、カーネルの重みに関するデータは、カーネルデータメモリ回路ブロック(KMEM)11に記憶される。
カーネルデータメモリ回路ブロック(KMEM)11に保持されたカーネルの重みに関するデータは、レジスタ(REG)12に入力され、パラレルデータに変換される。続いて、51個のデジタル‐PWM変換回路ブロック(D/P)13によってPWM信号に変換される。PWM信号はPWM‐アナログ変換ブロック(P/A)17によってアナログ信号に変換され、さらに演算回路ブロック(PWM−MAC)16に入力される。
また、メモリ回路ブロック(MEM)10に保持されている画像データまたは前段層による演算結果のデータは、レジスタ(REG)14、デジタル‐PWM変換回路ブロック(D/P)15を経て、演算回路ブロック(PWM−MAC)16に入力される。この時、メモリ回路ブロック(MEM)10から出力された画像データまたは前段層による演算結果のデータは、隣接するLSIチップに対しても出力される。またレジスタ(REG)14には、図4に示すように、隣接したLSIチップから出力された画像データまたは前段層による演算結果のデータが入力される。なお、隣接するLSIチップとのデータの入出力に係る処理、及びレジスタ(REG)14へのデータの入力に係る処理に関しては、後で詳細な説明を行う。
なお、レジスタ(REG)14は、メモリ回路ブロック(MEM)10が出力するシリアルデータをパラレルデータに変換する。デジタル‐PWM変換回路ブロック(D/P)13,15とPWM‐アナログ変換回路ブロック(P/A)17は、それぞれデジタル信号をPWM信号に、PWM信号をアナログ電圧に変換する。演算回路ブロック(PWM−MAC)16は、入力されたカーネルの重みに関するデータと、画像データまたは前段層の演算結果に対して、畳込み演算処理を並列に実行する。
演算回路ブロック16の出力結果はPWM信号として出力され、PWM‐デジタル変換回路ブロック(P/D)18によってデジタル信号化された後、累算回路ブロック(ACC)19によって累算される。累算結果はマルチプレクサ(MUX)20を経てルックアップテーブル(LUT)21により非線形変換され、再びメモリ回路ブロック(MEM)10に保持される。
以上の処理を特徴数回及び階層数回繰り返すことにより、階層型コンボリューショナル・ニューラルネットワークの演算処理が実現される。
(回路ブロック)
続いて、前述したLSIチップを構成する回路ブロックの中で、演算回路ブロック(PWM−MAC)16の詳細な回路構成について、図5を参照して説明を行う。図5は、演算回路ブロック16の回路構成を示した図である。
本実施形態における演算回路ブロック16中の演算回路25(図中網掛部)は、演算回路1個につきそれぞれ51個のスイッチド電流源(SCS)23と1個の積分容量(C)24を有している(紙面の都合上、図5には5個のSCS23のみ記載している)。演算回路ブロック16は、80個の演算回路25から構成され、1つのメモリ回路ブロック(MEM)10の1列のメモリセルの個数と一致する(紙面の都合上、図5には3個の演算回路のみ記載している)。演算回路ブロック16中の複数の演算回路25は、図5に示すように、入力画像データ又は前段層の演算結果に相当するPWM信号PIiとカーネルの重みデータに相当するアナログ電圧VWjを共有する。ただし、i=1,・・・,130、j=1,・・・,51である。また、PWM信号PIiはD/P15を介してレジスタ(REG)14から入力され、アナログ電圧VWjはD/P12、P/A17を介してレジスタ(REG)12から入力される。
なお、本実施形態では、1個のLSIにおいて、サイズが51×51のカーネルを用いて畳み込み演算を行い、サイズが80×80の出力を得ることが可能な構成について例示的に説明する。従って、51×51のカーネルを用いた畳み込み演算により80×80の出力を得るために、1個のLSIにおける2次元入力データのサイズは130×130となる(ただし、80+51−1=130)。また、メモリ回路ブロック(MEM)10は80×80のメモリセルから構成される。
この場合、演算回路25は以下の手順で動作する。
(1)スイッチド電流源(SCS)23に入力PWM信号PIを入力する。
(2)PWM信号を積分容量(C)24の電荷に変換することで、アナログ電圧VWjによる重み付け加算を行う。
(3)積分容量(C)24の両端に掛かる電圧Vkを線形なランプ信号Vrefと比較することでPWM信号POkに変換する。
即ち、以下の式が成り立つ。
PO1=PI1・VW1+・・・+PI51・VW51
・・・・
PO80=PI80・VW1+・・・+PI130・VW51
なお、積分容量(C)24の電荷は、演算開始前にRSTにHigh信号を入力することによりリセットされる。
次に、本実施形態におけるLSIチップを構成するその他の回路ブロックについて説明する。
PWM‐アナログ変換回路(P/A)17は、PWM信号に変換されたカーネルの重みデータをさらにアナログ電圧VWjに変換し、当該変換されたアナログ電圧VWjを演算回路ブロック16に対して出力する。なお、PWM‐アナログ変換回路(P/A)17は、1個のスイッチド電流源と積分容量、及びソースフォロアバッファから構成され、スイッチド電流源はPWM信号を積分容量の電荷に変換し、ソースフォロアバッファは、積分容量の電圧を出力する。
また、メモリ回路ブロック(MEM)10、カーネルデータメモリ回路ブロック(KMEM)11は、本実施形態の場合SRAMから構成される。REG12,14、D/P13,15、ACC19、P/D18、MUX20、及び、LUT21に関しては、デジタル回路であり、前述した機能を有するものであればどのような回路構成であっても構わないため、詳細な説明を省略する。
(畳み込み演算)
演算回路ブロック16において実行される畳み込み演算の実行フローについて、図6を参照して説明する。図6は、演算回路ブロック16による畳込み演算の様子を模式的に示した図である。
上記のように、本実施形態において1個のLSIチップが演算対象とする最大画像サイズは、130×130画素である(ただし、後述するように、130×130画素の全てが当該LSIのメモリに保持されているわけではない)。また、カーネルの1辺の最大画素サイズは、1個の演算回路中のスイッチド電流源(SCS)23の数に等しく51である。
このような状況において、画像データもしくは前段層の1つの特徴の演算結果の1行に属する130画素は、80個の演算回路25に同時に入力される。言い換えると、80個の演算回路25のそれぞれは、演算対象の2次元データの1行に属する130画素のうち演算に必要な51個のデータを、D/P15を介してREG14から取得する。そして、演算回路25のそれぞれは、入力されたデータとカーネルの1行分の重みデータとの畳込み演算を並列に実行する。この演算(並列演算)をカーネル51行分の計算のために51回繰り返し、さらに前記演算をカーネルの正と負の値に分割して実行するために2回繰り返す。従って、メモリ回路ブロック10の1行のメモリセルの個数80個分の演算結果を確定するために、演算回路ブロック16は、51×2回の前記並列演算を実行する。さらに、80行全ての演算結果を確定するために、前記51×2回の演算を80回実行する。
(並列演算)
上記のように、51×51のカーネルに基づいて畳み込み演算により80×80のデータを取得するためには、130×130の2次元データが入力される必要がある。しかし、メモリ回路ブロック(MEM)10のサイズは80×80である。このため、図6のように、演算回路25に入力される演算対象の130画素のデータのうち、80×80の画素サイズを超える部分(図中斜線部)のデータは、演算を実行するLSIチップ内には保持されていないことになる。そこで、本実施形態に係る構成においては、LSIチップを並列に接続し、隣接するLSIチップから処理に必要な画素データを取得し、当該画素データを用いて2次元データの畳み込み演算を行う。以下、複数のLSIチップによる並列演算について、上記のLSIチップを4つ一列に接続して画像サイズが320×240画素に対して演算を行う場合を例示的に取り上げて説明する。
図7は、4つのLSIチップ1〜4を用いて320×240の2次元データに対してカーネルとの畳み込み演算を行う様子を模式的に示した図である。図7において、711〜714は、一列に接続された4つのLSIチップ1〜4による演算対象の領域をそれぞれ示している。LSIチップ1〜4は、それぞれの演算領域711〜714における対応する位置のデータについて、他のLSIチップによる演算と同期して畳み込み演算を行う。
701〜704は、LSIチップ1〜4のカーネル、即ち、LSIチップ1〜4が演算を実行するために必要な2次元データの範囲をそれぞれ示している。図7に示すように、1つのメモリ回路ブロック10のサイズ(80×80)よりも大きいサイズの画像を演算対象とする場合に、カーネルが、隣接するLSIチップのメモリ回路ブロック10に保持する画像データまたは演算結果の領域にはみ出してしまう。なお図7では、はみ出し部を斜線で表示している。
本実施形態に係る構成においては、はみ出し部に含まれる画像データを用いて演算を行うために、LSIチップ1〜4を隣接させて接続する。そしてさらに隣接するLSIチップ1〜4間で、内蔵メモリに保持していない演算対象データ(カーネルがはみ出している部分のデータ)をお互いに入出力しあって補完するものである。
次に、それぞれのLSIチップ1〜4の演算処理において、カーネルが、隣接するLSIチップ1〜4が保持するデータ領域にはみ出した場合の、隣接するチップ間でデータを入出力する様子について、図8を参照して説明する。図8は、各チップのメモリ回路ブロック10に保持された画像データまたは前段層の演算結果から、演算対象となるデータを読み出し、隣接するチップのレジスタに入出力する際の入力行のメモリ読み出し順序、及びデータの流れを模式的に示した図である。なお図8には、各LSIチップ1〜4内のメモリ回路ブロック10中の、演算対象としている80×80の領域のみが示されている。また、後段層における演算の算出位置がターゲット行として重ねて表示されている。
図8において、カーネルがはみ出した場合を演算するために、はみ出している部分の入力行のデータ(図中黒色部)を隣接するLSIチップから取り込んでいることが分かる。例えば、LSIチップ1は、801の位置における演算を行うために、811のデータをLSIチップ2から取り込んでいる。この時のメモリ読み出し順序、及びレジスタにデータを入力する際のデータの流れを以下で詳しく説明する。
本実施形態においては、一つのメモリ回路ブロックの左側から一つずつデータを読み出していくため(図中の入力行)、まず図8の(a)に示すように、メモリ回路の左側に保持されているデータが、左側に隣接するLSIチップに受け渡される。例えば、811のデータがLSIチップ1に受け渡される。つまり(a)のデータのやり取りは、各LSIチップにおけるカーネルのはみ出しが、カーネルの右側に発生している場合に相当する。ここで、受け渡されたデータは、後段層のターゲット行の演算に使用される。なお図8では省略されているが、この際前記の受け渡されたデータは、このデータを保持しているメモリ回路ブロック10を有するLSIチップ自体のレジスタ14にも入力されている。
その後、メモリ回路ブロック10からのデータの読み出しが右側に移動していくと、カーネルのはみ出しは発生しなくなり、各LSIチップに内蔵されたメモリ回路ブロック10からのデータのみがレジスタ14に入力される。
そして、さらにメモリ回路からのデータの読み出しが右側に移動していくと、今度は各LSIチップにおけるカーネルのはみ出しが、カーネルの左側に発生するようになる。このため、図8(b)に示すように、メモリ回路の右側に保持されているデータが、右側に隣接するLSIチップに受け渡される。例えば、812のデータがLSIチップ2に受け渡される。ここで、受け渡されたデータは、後段層のターゲット行の演算に使用される。なお図8では省略されているが、この際前記の受け渡されたデータは、このデータを保持しているメモリ回路ブロック10を有するLSIチップ自体のレジスタ14にも入力されている。
上記のように、本実施形態に係る構成においては、4個のLSIチップのそれぞれのレジスタ(REG)14には、各LSIチップにおける演算に必要なデータ(130個)が正しく入力され、保持される。このため、本実施形態に係る構成においては、各LSIチップのメモリに格納可能なサイズよりも大きいサイズの2次元データについて演算を行うことができる。更に、各LSIチップ1〜4のメモリ読み出し位置は、4個のLSIチップで全て共通なため、読み出し時の制御が容易である。また、各LSIチップ1〜4で演算対象とするカーネルの重みデータも各LSIチップ1〜4で共通であるため、制御が容易である。
(データの入出力)
続いて、再度図4を参照して、隣接するLSIチップとのデータの入出力方法について説明を行う。図4に示したように、隣接したLSIチップとのデータの入出力は、左側のLSIチップから右側のLSIチップへデータが入力される場合と、右側のチップから左側のチップへデータが入力される場合の2種類のケースがある。そこで本実施形態においては、データの入出力の左右方向を切り替えるために、トライステートバッファ26を使用している。二つのトライステートバッファ26は、逆相の制御信号で制御することにより、データの出力方向を左側と右側で切り替えることが可能である。
また、図9に示すブロック図のようにトライステートバッファ27を用いることにより、LSIチップからデータを入・出力する配線を共用することが可能となる。図9は、隣接するLSIチップからデータを入出力するための配線が共用された構成を例示的に示した図である。
この場合、左側のLSIチップからの出力を取り込むときには、右側のLSIチップにデータを出力するように配線を切り替え、右側のLSIチップから出力を取り込むときには、左側のLSIチップにデータを出力するように配線を切り替える。この手法を用いた場合、隣接するLSIチップ間の配線は、図10に示すように、6ビットの配線28の1組のみとなり、配線数を削減することができる。
なお、隣接したLSIチップ間で以上説明したようにデータを入出力できるものであれば、配線構造及びバッファ回路等の構成はその他のものを使用しても構わない。また、入出力の配線は、チップ内部で共有または分配しても、チップ外部で共有または分配してもどちらでも構わない。図10では、チップ内部で配線を共有した場合が示されている。
上記のように、本実施形態においては、演算対象である2次元の対象データと2次元のカーネルとの畳み込み演算を行うLSIチップが開示されている。このLSIチップは、対象データを保持するMEM10(対象データメモリ)、カーネルを保持するKMEM11(カーネルメモリ)、PWM−MAC16(演算回路)、対象データを外部のLSIチップと入出力する入出力配線と、を備える。ただし、PWM−MAC16は、対象データとカーネルとに基づいて畳み込み演算処理を行う。また、PWM−MAC16は、当該演算回路における演算において必要な対象データであって、当該LSIチップに備えられたMEM10に存在しないものは、入出力配線を介して、外部のLSIチップに備えられたMEM10から入力する。
このため、本実施形態に係る構成によれば、LSIチップに内蔵するメモリ回路ブロックのメモリサイズを超える2次元データに対する演算処理を効率的に実行することが可能である。大きなサイズの2次元データ(画等データなど)に対して演算処理を行う際に、配線数を過剰に増大させること無く演算処理を実行することが可能となる。また、複数の同一のLSIチップを接続することで演算処理システムを構築することにより、1個のLSIチップの面積を縮小することができ、製造時の歩留まりを高くすることが可能となる。また、接続するLSIチップの個数を変えることで、LSIチップの回路構成を変更することなく、様々なサイズの演算対象データに対して畳み込み演算を実行することが可能となる。
また、演算回路における演算処理は並列に実行されるため、2次元データについて効率的に演算処理を実行することができる。また、本実施形態に係る構成においては、LSIチップが一列に配置されて構成されているため、小さな回路規模で様々なサイズの2次元データについて畳み込み演算を実行することができる。
なお、回路ブロックやその構成要素の説明において示した個数、画像サイズ等は本実施形態を説明するために例示したものであり、これに限られないことは明らかである。
<<第2実施形態>>
第1実施形態に係る構成においては、演算回路ブロック16がアナログ回路で構成されていた。本実施形態では、演算回路ブロックをデジタル回路で構成した場合について説明する。本実施形態に係る構成は、演算回路ブロックのデジタル回路化に伴う変更以外は、全て第1実施形態と同様である。このため、本実施形態においては、第1実施形態と異なる部分についてのみ説明を行い、それ以外は第1実施形態と同様であるため説明を省略する。
(LSIチップの回路構成)
図11は、本実施形態における演算処理システムを構成するLSIチップの回路構成を模式的に示したブロック図である。図11に示すように、本実施形態におけるLSIチップは以下の回路ブロックを有する。
・メモリ回路ブロック(MEM)10。
・カーネルデータメモリ回路ブロック(KMEM)11。
・レジスタ(REG)12,14。
・デジタル演算回路ブロック(D−MAC)29。
・累算回路ブロック(ACC)19。
・マルチプレクサ(MUX)20。
・ルックアップテーブル(LUT)21。
なお、図11では、配線は省略している。
(処理の流れ)
続いて、前記の各回路ブロックが実行する処理の流れについて、図12を参照して説明する。図12は、回路ブロック間のデータの流れを模式的に示したブロック図である。
画像データまたは前段層の演算結果は、メモリ回路ブロック(MEM)10に記憶される。また、カーネルの重みに関するデータは、カーネルデータメモリ回路ブロック(KMEM)11に記憶される。
カーネルデータメモリ回路ブロック(KMEM)11に保持されたカーネルの重みに関するデータは、レジスタ(REG)12に入力されてパラレルデータに変換され、さらに演算回路ブロック(D−MAC)29に入力される。画像データまたは前段層の演算結果は、レジスタ(REG)14を経て、演算回路ブロック(D−MAC)29に入力される。この時、メモリ回路ブロック(MEM)10から出力された画像データまたは前段層の演算結果のデータは、同時に隣接するLSIチップに対しても出力される。またレジスタ(REG)14には、図12に示すように、隣接したLSIチップから出力された画像データまたは前段層の演算結果のデータが入力される。ここでレジスタ(REG)14は、メモリ回路ブロック(MEM)10が出力するシリアルデータをパラレルデータに変換する。
演算回路ブロック(D−MAC)29はデジタル乗算回路から構成され、入力されたカーネルの重みに関するデータと、画像データまたは前段層の演算結果に対して、畳込み演算処理を並列に実行する。演算回路ブロック(D−MAC)29の出力結果は、累算回路ブロック(ACC)19によって累算される。累算結果はマルチプレクサ(MUX)20を経てルックアップテーブル(LUT)21により非線形変換され、再びメモリ回路ブロック(MEM)10に記憶される。
以上の処理を特徴数回及び階層数回繰り返すことにより、階層型コンボリューショナル・ニューラルネットワークの演算処理が実現される。
(演算回路ブロック)
続いて、前述したLSIチップを構成する回路ブロックの中で、演算回路ブロック(D−MAC)29の詳細な回路構成について、図13を参照して説明を行う。図13は、演算回路ブロック29の回路構成を示した図である。
本実施形態における演算回路ブロック(D−MAC)29中の1個の演算回路31は51個のデジタル乗算回路(MUL)30を有しており、それぞれの乗算回路30は、後段の累算回路ブロック(ACC)19に接続している。ただし、図5には、紙面の都合上、5個のMUL30のみ記載している。演算回路ブロック(D−MAC)29は、80個の演算回路31から構成され、1つのメモリ回路ブロックの1列のメモリセルの個数と一致する(図5には、紙面の都合上、3個の演算回路のみ記載している)。演算回路ブロック29中の複数の演算回路31は、図13に示すように、入力される2次元データに相当するデジタル信号DIiとカーネルの重みデータに相当するデジタル電圧DWjを共有する。ただし、i=1,・・・,130、j=1,・・・,51である。また、入力デジタル信号DIiはレジスタ(REG)14から入力され、デジタル電圧DWjはレジスタ(REG)12から入力される。
なお、本実施形態においても、1個のLSIにおいて、サイズが51×51のカーネルを用いて畳み込み演算を行い、サイズが80×80の出力を得ることが可能な構成について例示的に説明する。このため、第1実施形態と同様に、51×51のカーネルを用いた畳み込み演算により80×80の出力を得るために、1個のLSIにおける2次元入力データのサイズは130×130となる。また、メモリ回路ブロック(MEM)10は80×80のメモリセルから構成される。
この場合、演算回路29及び後段に接続する累算回路19は以下の手順で動作する。
(1)乗算回路(MUL)30にデジタル信号DI及びDWを入力する。
(2)乗算回路(MUL)30より、DIとDWの乗算結果が出力され、累算回路ブロック(ACC)19に入力される。
(3)累算回路ブロック(ACC)19は、最大51個の乗算回路(MUL)30からの入力を累算する。
以上のように、本実施形態における構成によれば、第1実施形態における演算回路が実行する演算をデジタル的に実行することができる。なお、本実施形態における演算処理システムは、前述した演算回路ブロックのデジタル回路化に伴う変更以外、全て第1実施形態に係る構成と同様である。従って、LSIチップを1列に接続して、演算対象となるデータを入出力する方法等に関しては、第1実施形態と同様であるため、説明を省略する。また、隣接したLSIチップとのデータの入出力方法は、第1実施形態と同様に、入力配線と出力配線を共有したものであっても構わない。また、同様の機能を実現できるものであれば、その他の回路構成を用いても構わない。
また上記の説明では、累算回路は51個の演算回路の乗算結果(51個)を並列に累算する例を示したがこれに限られない。例えば、図14に示すように、51個の乗算回路がBUSにより累算回路ブロックと接続され、パイプライン処理により、51個の乗算結果をシリアルに累算する構成であっても良い。また、それ以外の構成であっても、同様の演算を実現できるデジタル回路であれば、演算回路ブロックはどのような構成をとっても構わない。
<<第3実施形態>>
第1、第2実施形態に係る構成においては、LSIチップが一列に接続されていた。本実施形態においては、複数のLSIチップを平面的に配置、接続することで、更に高速な演算処理を実行可能な構成について説明する。
(演算処理システム)
図15は、本実施形態に係る演算処理システムを模式的に示した図である。図15に示すように演算処理システムは、12個のLSIチップ01〜12が3行4列に配置されて構成される。なお、LSIチップの個数は、演算処理対象のデータサイズに応じて変更することが可能であり、本実施形態においては12個のケースを示している。またそれぞれのLSIチップは、隣接するLSIチップとデータを入力及び出力する配線5によって接続されている。ここで、本実施形態においては、それぞれのチップ間で入力及び出力されるデータサイズを6ビットとしてるが、その他のデータサイズを有するものであっても良い。その場合は、データサイズに応じて配線の本数が変わる。また図15においては、前述した入力及び出力用の配線以外の配線は、本実施形態の説明に必要でないため、記載していない。
なお、本実施形態における演算処理システムで実現する演算処理は、第1実施形態と同様に、初段層に画像データを入力し、所定の2次元的に分布する重みを有するカーネルとの畳込み演算を階層的に繰り返し実行するものである。従って、演算処理の詳細は第1実施形態と同様であるため、説明を省略する。
(LSIチップの回路構成)
続いて図16に、前記の演算処理システムを構成するLSIチップ01〜12の回路構成について、図16を参照して説明する。図16は、LSIチップの回路構成を模式的に示したブロック図である。
図16に示すように、本実施形態におけるLSIチップは以下の回路ブロックを有する。
・メモリ回路ブロック(MEM)10。
・カーネルデータメモリ回路ブロック(KMEM)11。
・レジスタ(REG)12,14。
・デジタル‐PWM変換回路ブロック(D/P)13,15。
・PWM‐アナログ変換回路(P/A)17。
・演算回路ブロック(PWM−MAC)16。
・累算回路ブロック(ACC)19。
・PWM‐デジタル変換回路ブロック(P/D)18。
・マルチプレクサ(MUX)20。
・ルックアップテーブル(LUT)21。
・セレクタ(SEL)32。
なお、前記の各回路ブロックの構成、及び処理の流れは、後述するように、本実施形態ではセレクタ32を介して隣接するチップとデータの入出力をすることを除いて第1実施形態と同様であるため、説明を省略する。また、LSIチップの演算回路ブロックによる畳込み演算の実行フローに関しても第1実施形態の場合と同様であるため、説明を省略する。
(並列演算)
図17は、12個のLSIチップ01〜12を用いて320×240の2次元データに対してカーネルとの畳み込み演算を行う様子を模式的に示した図である。図15、図17に示すように本実施形態においては、第1実施形態でLSIチップ4個を1列に並べたものをさらに3行配置することで、第1実施形態で逐次処理によって演算を実行した縦方向の演算ステップを1/3の演算ステップで実行することができる。なお、LSIチップ01〜12は、それぞれの演算領域における対応する位置のデータについて、他のLSIチップによる演算と同期して畳み込み演算を行う。
本実施形態においては、図17に示すよう320×240画素の画像データに対して、3行4列に並べたLSIチップを演算処理システムとして構成している。このため、カーネルが、4個のLSIチップがメモリ回路に保持している画素のデータ領域に重なるケースが生じる。そこで、本実施形態に係る構成においては、隣接するLSIチップ間で、内蔵メモリに保持していない演算対象データ(カーネルがはみ出している部分のデータ)をお互いに入出力しあって補完する。なお隣接するLSIチップとは、本実施形態の場合、斜め方向に並ぶチップ対も含む。
以下、それぞれのLSIチップの演算処理において、カーネルが、隣接するLSIチップが保持するデータ領域にはみ出した場合の、隣接するチップ間でのデータの入出力の状況を詳しく説明する。本実施形態においては、カーネルが各チップ内のメモリ回路からはみ出すケースとして、以下の3通りがあり得る。
(1)左又は右にはみ出すケース
(2)左又は右、及び、下又は左下又は右下にはみ出すケース
(3)左又は右、及び、上又は左上又は右上にはみ出すケース
これらのうち、(1)のケースは、左右に隣接したLSIチップ間でのみデータを入出力し合うものであり、従って、各LSIチップ間のデータの流れは第1実施形態と同様である。このため、説明を省略する。
続いて(2)(3)のケースについて、図18,19を用いて説明を行う。なお、(2)(3)におけるカーネルが左・右にはみ出した場合の処理は、(1)のケースと同様に、左右に隣接したLSIチップ間でのみデータを入出力し合うものであり、各LSIチップ間のデータの流れは第1実施形態と同様である。このため、本実施形態においては詳細な説明を省略する。
図18,19は、各チップのメモリ回路ブロックに保持した画像データまたは前段層の演算結果から、演算対象となるデータを読み出し、隣接するチップのレジスタに入出力する際の入力行のメモリ読み出し順序、及びデータの流れを示した図である。ただし、図18は上記の(2)のケース、図19は上記の(3)のケースに係る図である。なお、図18,19には、各LSIチップ内のメモリ回路ブロック中の、演算対象としている80×80の領域のみが示されている。また、後段層における演算の算出位置をターゲット行として重ねて表示されている。
(2)においては、一つのメモリブロックの左側から一つずつデータを読み出していく(図18中の入力行)ため、まず図18の(a)に示すように、メモリ回路の左上側に保持されているデータが、左上側及び上側に隣接するLSIチップに受け渡される。例えば、1801の位置における演算を行うために、1811のデータがLSIチップ01に受け渡され、例えば、1802の位置における演算を行うために、1811のデータがLSIチップ02に受け渡されている。ここで、受け渡されたデータは、後段層のターゲット行の演算に使用される。すなわち(a)のデータのやり取りは、各LSIチップにおけるカーネルのはみ出しが、カーネルの右下側及び下側に発生している場合に相当する。なお図18では省略されているが、この際前記の受け渡されたデータは、このデータを保持しているメモリ回路ブロック(MEM)10を有するLSIチップ自体のレジスタ(REG)14にも入力されている。
次に、図18の(b)に示すように、メモリ回路からのデータの読み出しが右側に移動していくと(図18中の入力行)、メモリ回路の中央上側に保持されているデータが、上側に隣接するLSIチップに受け渡される。例えば、1803の位置における演算を行うために、1812のデータがLSIチップ02に受け渡されている。ここで、受け渡されたデータは、後段層のターゲット行の演算に使用される。すなわち(b)のデータのやり取りは、各LSIチップにおけるカーネルのはみ出しが、カーネルの下側に発生している場合に相当する。なお図18では省略されているが、この際前記の受け渡されたデータは、このデータを保持しているメモリ回路ブロック(MEM)10を有するLSIチップ自体のレジスタ(REG)14にも入力されている。
そして、さらにメモリ回路からのデータの読み出しが右側に移動していくと(図18中の入力行)、今度は各LSIチップにおけるカーネルのはみ出しが、カーネルの左下側及び下側に発生する。このため、図18(c)に示すように、メモリ回路の右上側に保持されているデータが、右上側及び上側に隣接するLSIチップに受け渡される。例えば、1804の位置における演算を行うために、1813のデータがLSIチップ01に受け渡され、例えば、1805の位置における演算を行うために、1813のデータがLSIチップ02に受け渡されている。ここで、受け渡されたデータは、後段層のターゲット行の演算に使用される。なお図18では省略されているが、この際前記の受け渡されたデータは、このデータを保持しているメモリ回路ブロック(MEM)10を有するLSIチップ自体のレジスタ(REG)14にも入力されている。
続いて(3)のケースについて、図19を用いて説明を行う。(3)においては、一つのメモリブロックの左側から一つずつデータを読み出していくため(図19中の入力行)、まず図19の(a)に示すように、メモリ回路の左下側に保持されているデータが、左下側及び下側に隣接するLSIチップに受け渡される。例えば、1901の位置における演算を行うために、1911のデータがLSIチップ05に受け渡され、例えば、1902の位置における演算を行うために、1911のデータがLSIチップ06に受け渡されている。ここで、受け渡されたデータは、後段層のターゲット行の演算に使用される。すなわち(a)のデータのやり取りは、各LSIチップにおけるカーネルのはみ出しが、カーネルの右上側及び上側に発生している場合に相当する。なお図19では省略されているが、この際前記の受け渡されたデータは、このデータを保持しているメモリ回路ブロック(MEM)10を有するLSIチップ自体のレジスタ(REG)14にも入力されている。
次に、図19の(b)に示すように、メモリ回路からのデータの読み出しが右側に移動していくと(図中の入力行)、メモリ回路の中央上側に保持されているデータが、下側に隣接するLSIチップに受け渡される。例えば、1903の位置における演算を行うために、1912のデータがLSIチップ06に受け渡されている。ここで、受け渡されたデータは、後段層のターゲット行の演算に使用される。すなわち(b)のデータのやり取りは、各LSIチップにおけるカーネルのはみ出しが、カーネルの上側に発生している場合に相当する。なお図19では省略されているが、この際前記の受け渡されたデータは、このデータを保持しているメモリ回路ブロック(MEM)10を有するLSIチップ自体のレジスタ(REG)14にも入力されている。
そして、さらにメモリ回路からのデータの読み出しが右側に移動していくと(図中の入力行)、今度は各LSIチップにおけるカーネルのはみ出しが、カーネルの左上側及び上側に発生する。このため、図19の(c)に示すように、メモリ回路の右下側に保持されているデータが、右下側及び下側に隣接するLSIチップに受け渡される。例えば、1904の位置における演算を行うために、1913のデータがLSIチップ05に受け渡され、例えば、1905の位置における演算を行うために、1913のデータがLSIチップ06に受け渡されている。ここで、受け渡されたデータは、後段層のターゲット行の演算に使用される。なお図19では省略されているが、この際前記の受け渡されたデータは、このデータを保持しているメモリ回路ブロック(MEM)10を有するLSIチップ自体のレジスタ(REG)14にも入力されている。
なお、以上の説明は、隣接するLSIチップが8個存在するケースに関するものであり、隣接するLSIチップが8個未満の場合は、前述したデータのやり取りは発生しない場合がある。ただしその場合は、単に入出力配線に隣接LSIチップが接続されないに過ぎず、特別の回路構成や制御を必要とするものでは無い。
このようにして、12個のLSIチップのそれぞれのシフトレジスタには、演算対象となるデータ130個が正しく入力され、保持される。この場合、各LSIチップのメモリ読み出し位置は、12個のLSIチップで全て共通なため、読み出し時の制御が簡易になる。また、各LSIチップで演算対象とするカーネルの重みデータも共通であるため、制御が簡易になる。
続いて図20に、隣接するLSIチップとのデータの流れを加えたブロック図を示す。図20に示したように、各LSIチップは、セレクタ32を介して、最大8個の隣接するLSIチップと接続されている。すなわち、隣接するチップ間で前述したようにデータを入出力する際に、セレクタを切り替えることで、適切な隣接チップへデータを出力し、かつ適切な隣接チップからの入力を受けるものである。なお、隣接したLSIチップ間で以上説明したようにデータを入出力できるものであれば、配線構造及びセレクタ等の構成はその他のものを使用しても構わない。
以上説明したように、本実施形態のようにLSIチップを行列状に接続して並列動作させることにより、大きなサイズの画像をより高速に演算処理することが可能となる。また、接続するLSIチップの個数を変えることで、LSIチップの回路構成を変更することなく、様々なサイズの演算対象データに対して畳み込み演算を実行することが可能となる。
<<第4実施形態>>
第3実施形態に係る構成においては、演算回路ブロック16がアナログ回路で構成されていた。本実施形態では、演算回路ブロックをデジタル回路で構成した場合について説明する。本実施形態に係る構成は、演算回路ブロックのデジタル回路化に伴う変更以外は、全て第3実施形態と同様である。このため、本実施形態においては、第3実施形態と異なる部分についてのみ説明を行い、それ以外は第3実施形態と同様であるため説明を省略する。
(LSIチップの回路構成)
図21は、本実施形態における演算処理システムを構成するLSIチップの回路構成を模式的に示したブロック図である。図21に示すように、本実施形態におけるLSIチップは以下の回路ブロックを有する。
・メモリ回路ブロック(MEM)10。
・カーネルデータメモリ回路ブロック(KMEM)11。
・レジスタ(REG)12,14。
・デジタル演算回路ブロック(D−MAC)29。
・セレクタ(SEL)32。
・累算回路ブロック(ACC)19。
・マルチプレクサ(MUX)20。
・ルックアップテーブル(LUT)21。
なお、図21では、配線は省略している。
(処理の流れ)
続いて、前記の各回路ブロックが実行する処理の流れについて、図22を参照して説明する。図22は、回路ブロック間のデータの流れを模式的に示したブロック図である。
画像データまたは前段層の演算結果は、メモリ回路ブロック(MEM)10に記憶される。また、カーネルの重みに関するデータは、カーネルデータメモリ回路ブロック(KMEM)11に記憶される。
カーネルデータメモリ回路ブロック(KMEM)11に保持されたカーネルの重みに関するデジタルデータは、レジスタ(REG)12に入力されてパラレルデータに変換され、さらに演算回路ブロック(D−MAC)29に入力される。画像データまたは前段層の演算結果は、レジスタ(REG)14を経て、演算回路ブロック(D−MAC)29に入力される。この時、メモリ回路ブロック(MEM)10から出力された画像データまたは前段層の演算結果のデータは、同時にセレクタ(SEL)32を介して、隣接する適切なLSIチップに対して出力される。またレジスタ(REG)14には、図22に示すように、隣接したLSIチップから出力された画像データまたは前段層の演算結果のデータが入力される。ここでレジスタ(REG)14は、メモリ回路ブロック(MEM)10が出力するシリアルデータをパラレルデータに変換する。
演算回路ブロック(D−MAC)29はデジタル乗算回路(MUL)30から構成され、入力されたカーネルの重みに関するデータと、画像データまたは前段層の演算結果に対して、畳込み演算処理を並列に実行する。演算回路の出力結果は、累算回路ブロック(ACC)19によって累算される。累算結果はマルチプレクサ(MUX)20を経てルックアップテーブル(LUT)21により非線形変換され、再びメモリ回路ブロック(MEM)10に記憶される。
以上の処理を特徴数回及び階層数回繰り返すことにより、階層型コンボリューショナル・ニューラルネットワークの演算処理が実現される。
以上のように、本実施形態における構成によれば、第3実施形態における演算回路が実行する演算をデジタル的に実行することができる。なお、前述したLSIチップを構成する回路ブロックの中で、演算回路ブロック(D−MAC)29の詳細な回路構成は、第2実施形態で説明したものと同一であるため、詳しい説明を省略する。この時、本実施形態における演算処理システムは、前述した演算回路ブロックのデジタル回路化に伴う変更以外、全て第3実施形態と同様である。従って、LSIチップを行列状に接続して、演算対象となるデータを入出力する方法等に関しては、第3実施形態と同様として説明を省略する。
演算処理システムを模式的に示した図である。 階層型コンボリューショナル・ニューラルネットワークを用いて顔の位置検出を行う処理を模式的に示した図である。 LSIチップの回路構成を模式的に示したブロック図である。 回路ブロック間のデータの流れを模式的に示したブロック図である。 演算回路ブロックの回路構成を示した図である。 演算回路ブロックによる畳込み演算の様子を模式的に示した図である。 4つのLSIチップを用いて2次元データに対してカーネルとの畳み込み演算を行う様子を模式的に示した図である。 隣接するLSIチップのメモリ回路ブロックから演算対象となるデータを読み出す際の、メモリ読み出し順序、データの流れを模式的に示した図である。 隣接するLSIチップとの入出力配線が共用された構成を例示的に示した図である。 チップ内部で配線が共有した構成を例示的に示した図である。 LSIチップの回路構成を模式的に示したブロック図である。 回路ブロック間のデータの流れを模式的に示したブロック図である。 演算回路ブロックの回路構成を示した図である。 演算回路ブロックの回路構成を示した図である。 演算処理システムを模式的に示した図である。 LSIチップの回路構成を模式的に示したブロック図である。 12個のLSIチップを用いて2次元データに対してカーネルとの畳み込み演算を行う様子を模式的に示した図である。 隣接するLSIチップのメモリ回路ブロックから演算対象となるデータを読み出す際の、メモリ読み出し順序、データの流れを模式的に示した図である。 隣接するLSIチップのメモリ回路ブロックから演算対象となるデータを読み出す際の、メモリ読み出し順序、データの流れを模式的に示した図である。 回路ブロック間のデータの流れを模式的に示したブロック図である。 演算処理システムを構成するLSIチップの回路構成を模式的に示したブロック図である。 回路ブロック間のデータの流れを模式的に示したブロック図である。 演算回路が実装された複数の基板を接続してなる演算処理システムの構成例を模式的に示した図である。 2次元データに対して畳み込み演算を実行するLSIチップにおける、データの流れを模式的に示した図である。

Claims (8)

  1. 2次元の対象データと2次元のカーネルとの畳み込み演算を行うLSIチップであって、
    前記対象データを保持する対象データメモリと、
    前記カーネルを保持するカーネルメモリと、
    前記対象データと、前記カーネルと、に基づいて畳み込み演算処理を行う演算回路と、
    前記対象データを外部のLSIチップと入出力する入出力配線と、
    を備え、
    前記演算回路は、前記演算回路における演算において必要な対象データであって、当該LSIチップに備えられた前記対象データメモリに存在しないデータは、前記入出力配線を介して、前記外部のLSIチップに備えられた前記対象データメモリから入力する
    ことを特徴とするLSIチップ。
  2. 前記演算回路における前記演算処理は並列に実行される
    ことを特徴とする請求項1に記載のLSIチップ。
  3. 前記演算回路は、アナログ回路又はデジタル回路であることを特徴とする
    請求項1又は2に記載のLSIチップ。
  4. 更に、
    前記外部のLSIチップとの前記入出力配線における接続を切り替えるスイッチ回路
    を備えることを特徴とする請求項1乃至3のいずれか1項に記載のLSIチップ。
  5. 更に、
    前記外部のLSIチップとの前記入出力配線における接続を切り替えるセレクタ
    を備えることを特徴とする請求項1乃至3のいずれか1項に記載のLSIチップ。
  6. 複数のLSIチップを接続してなり、2次元の対象データと2次元のカーネルとの畳み込み演算を行う、演算処理システムであって、
    前記LSIチップのそれぞれは、
    前記対象データを保持する対象データメモリと、
    前記カーネルを保持するカーネルメモリと、
    前記対象データと、前記カーネルと、に基づいて畳み込み演算処理を行う演算回路と、
    前記対象データを隣接する前記LSIチップと入出力する入出力配線と、
    を備え、
    前記対象データは隣接する複数の前記LSIチップのそれぞれに備えられた前記対象データメモリに分散して保持され、
    前記演算回路は、該演算回路における演算において必要な対象データであって、当該演算回路を備える前記LSIチップに備えられた前記対象データメモリに存在しないデータは、前記入出力配線を介して、隣接する前記LSIチップに備えられた前記対象データメモリから入力する
    ことを特徴とする演算処理システム。
  7. 前記LSIチップは1列に配置される
    ことを特徴とする請求項6に記載の演算処理システム。
  8. 前記LSIチップは行列形式に配置される
    ことを特徴とする請求項6に記載の演算処理システム。
JP2006023630A 2006-01-31 2006-01-31 演算処理システム Expired - Fee Related JP4947983B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006023630A JP4947983B2 (ja) 2006-01-31 2006-01-31 演算処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006023630A JP4947983B2 (ja) 2006-01-31 2006-01-31 演算処理システム

Publications (2)

Publication Number Publication Date
JP2007206887A true JP2007206887A (ja) 2007-08-16
JP4947983B2 JP4947983B2 (ja) 2012-06-06

Family

ID=38486319

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006023630A Expired - Fee Related JP4947983B2 (ja) 2006-01-31 2006-01-31 演算処理システム

Country Status (1)

Country Link
JP (1) JP4947983B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009041350A1 (en) * 2007-09-26 2009-04-02 Canon Kabushiki Kaisha Calculation processing apparatus and method
US11907327B2 (en) 2018-06-04 2024-02-20 Socionext Inc. Arithmetic method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3460724A1 (en) 2017-09-22 2019-03-27 Kabushiki Kaisha Toshiba Operation device and operation system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63118885A (ja) * 1986-11-06 1988-05-23 Matsushita Electric Ind Co Ltd 並列型画像処理プロセツサ
JPH04291682A (ja) * 1991-03-20 1992-10-15 Res Dev Corp Of Japan 超高速画像処理システムのフィルタリング処理方式
JPH1115801A (ja) * 1997-06-24 1999-01-22 Sony Corp データ演算装置および方法、並びに伝送媒体
JP2002537613A (ja) * 1999-02-17 2002-11-05 サン マイクロシステムズ,インコーポレイティッド スーパサンプリング・サンプル・バッファを有し、表示効果を実現するため選択的フィルタ調節を使用して出力ピクセルを生成するグラフィックス・システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63118885A (ja) * 1986-11-06 1988-05-23 Matsushita Electric Ind Co Ltd 並列型画像処理プロセツサ
JPH04291682A (ja) * 1991-03-20 1992-10-15 Res Dev Corp Of Japan 超高速画像処理システムのフィルタリング処理方式
JPH1115801A (ja) * 1997-06-24 1999-01-22 Sony Corp データ演算装置および方法、並びに伝送媒体
JP2002537613A (ja) * 1999-02-17 2002-11-05 サン マイクロシステムズ,インコーポレイティッド スーパサンプリング・サンプル・バッファを有し、表示効果を実現するため選択的フィルタ調節を使用して出力ピクセルを生成するグラフィックス・システム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009041350A1 (en) * 2007-09-26 2009-04-02 Canon Kabushiki Kaisha Calculation processing apparatus and method
CN101809597A (zh) * 2007-09-26 2010-08-18 佳能株式会社 计算处理装置及方法
US8391306B2 (en) 2007-09-26 2013-03-05 Canon Kabushiki Kaisha Calculation processing apparatus and method
CN101809597B (zh) * 2007-09-26 2013-06-12 佳能株式会社 计算处理装置及方法
US11907327B2 (en) 2018-06-04 2024-02-20 Socionext Inc. Arithmetic method

Also Published As

Publication number Publication date
JP4947983B2 (ja) 2012-06-06

Similar Documents

Publication Publication Date Title
JP6945986B2 (ja) 演算回路、その制御方法及びプログラム
EP2017743B1 (en) High speed and efficient matrix multiplication hardware module
Komuro et al. A dynamically reconfigurable SIMD processor for a vision chip
EP0390907B1 (en) Parallel data processor
US11487845B2 (en) Convolutional operation device with dimensional conversion
CN111666255A (zh) 脉动阵列和处理系统
JP2007536628A (ja) Simdアレープロセッサ用のビットシリアル処理要素
JPH0233191B2 (ja)
CN109074516A (zh) 计算处理装置和计算处理方法
JPH04128982A (ja) プロセッサエレメント、プロセッシングユニット、プロセッサ、及びその演算処理方法
JP5360194B2 (ja) 再構成可能な論理回路
EP0112885A1 (en) CONNECTION LEVEL USED IN A MODULAR DATA FIELD PROCESSOR.
JPH09505921A (ja) 並列データ処理プロセッサ
JP4947983B2 (ja) 演算処理システム
KR20070061538A (ko) Simd 프로세서 및 데이터 통신 방법
JP2002297377A (ja) ソート機能を有するsimd型マイクロプロセッサ
JP2006154992A (ja) ニューロプロセッサ
JP2017027314A (ja) 並列演算装置、画像処理装置及び並列演算方法
US7522190B2 (en) Image detection processing device for calculating the moments of image data
US7046821B2 (en) Image detection processor
CN112970036A (zh) 用于实施神经网络应用的卷积块阵列及其使用方法、和卷积块电路
JPH09259115A (ja) ビット−シリアルマトリックス転置のための超大規模集積回路
US11579875B2 (en) Computing chip, hashrate board and data processing apparatus
US8131909B1 (en) System and method of signal processing engines with programmable logic fabric
JP3639014B2 (ja) 信号処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090202

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100323

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100423

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100622

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101018

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110715

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111017

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111129

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: 20120302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120306

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R151 Written notification of patent or utility model registration

Ref document number: 4947983

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees