JP6749358B2 - 演算処理装置 - Google Patents

演算処理装置 Download PDF

Info

Publication number
JP6749358B2
JP6749358B2 JP2018051544A JP2018051544A JP6749358B2 JP 6749358 B2 JP6749358 B2 JP 6749358B2 JP 2018051544 A JP2018051544 A JP 2018051544A JP 2018051544 A JP2018051544 A JP 2018051544A JP 6749358 B2 JP6749358 B2 JP 6749358B2
Authority
JP
Japan
Prior art keywords
storage device
array
processing
stored
summation
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.)
Active
Application number
JP2018051544A
Other languages
English (en)
Other versions
JP2019164520A (ja
Inventor
小野 瑞城
瑞城 小野
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2018051544A priority Critical patent/JP6749358B2/ja
Priority to US16/126,006 priority patent/US10754920B2/en
Publication of JP2019164520A publication Critical patent/JP2019164520A/ja
Application granted granted Critical
Publication of JP6749358B2 publication Critical patent/JP6749358B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Evolutionary Computation (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Neurology (AREA)
  • Complex Calculations (AREA)
  • Semiconductor Memories (AREA)
  • Image Processing (AREA)

Description

本発明の実施形態は、演算処理装置に関する。
従来、複数の処理層の畳み込みニューラルネットワーク回路を実現する演算処理装置は、各処理層ごとにその出力の全てを格納する記憶装置を有しており、各処理層の処理を全て行ってその全ての出力をその記憶装置に格納し、その格納されている数値を用いて次の処理層の処理を行っている。記憶装置は、行方向および列方向に数値が配置された配列を少なくとも1つ有する。複数個の配列を有する場合、これらの複数の配列は、行方向および列方向を含む平面に交差する方向に配置され、この交差する方向を深さ方向と云う。
処理層が行う処理として、例えば、畳み込み処理が挙げられる。ここで、畳み込み処理とは、核と呼ばれる特定の数値からなる配列と、その核と等しい深さを持つ数値の配列との間で、対応する数値の積和を求める処理を意味する。なお、核の数値の各々は重みと呼ばれる。その積和に引き続いて積和の値にバイアスと呼ばれる特定の数値を加える処理を行う場合もある。
更に引き続いて積和ないしバイアスを加える処理の結果に対して発火関数処理を行う場合もある。発火関数処理とは、特定の数値に対して特定の関数の値を対応させる処理を意味する。特定の関数としては、例えば数値xに対してtanh(x)の値を対応させる、または数値xに対してxとゼロとの大きい方を対応させる処理(Rectified Linear Unit処理)等がある。
なお、畳み込み処理に引き続いてプーリング(pooling)処理を行うこともある。プーリング処理とは、特定の数値の集まりを1個の数値で代表させる処理を意味する。代表させる方法としてはそれらの数値の最大値を抽出する方法、それらの数値の相加平均を算出する方法等がある。なお、畳み込み処理に於ける核の深さは通常はその処理を施す数値の配列の深さ、プーリング処理に於ける特定の数値の集まりの深さは通常は1である。
上述した様に、従来の演算処理装置は、各処理層にその出力の全てを格納する記憶装置を有しており、各処理層の処理を全て行ってその全ての出力を対応する記憶装置に格納し、その格納されている数値を用いて次の処理層の処理を行っていた。そのために各処理層ごとにその出力の全てを格納する記憶装置が必要となる。それ故に大きな回路面積が必要となり、その結果として製造コストの増大を惹き起こしてしまうという問題点があった。
特開2015−210709号公報
本実施形態は、記憶装置の容量を削減することのできる演算処理装置を提供する。
本実施形態による演算処理装置は、第1方向および前記第1方向に交差する第2方向に配列されたメモリ素子を有する第1アレイを少なくとも1個備えた組をm(m≧2)個有する第1記憶装置と、前記第1方向および前記第2方向に配置されたメモリ素子を有する第2アレイを少なくとも1個備えた組をn(m>n≧1)個有する第2記憶装置と、前記第1記憶装置の前記第1アレイのm個の組から前記第1アレイのn個の組を選択し、この選択した組に含まれる第1アレイのメモリ素子に記憶されたデータを読み出し、前記第2記憶装置の前記第2アレイのメモリ素子に格納する第1読み取り装置と、前記第1方向および前記第2方向に配置されたメモリ素子を有する第3アレイを少なくとも1個備えた第3記憶装置と、前記第1方向および前記第2方向に配置されたメモリ素子を有する第4アレイをk(m>k≧1)個有する第4記憶装置と、前記第2記憶装置の前記第2アレイのメモリ素子に格納されたデータを用いて前記第3記憶装置の前記第3アレイに対して畳み込み処理を行い、前記第4記憶装置の前記第4アレイのメモリ素子に格納する第1処理層と、を備えている。
第1実施形態による演算処理装置の概要を説明する図。 第1実施形態における処理層の畳み込み処理を説明する図。 第1実施形態による演算処理装置の概要を説明する図。 第1実施形態に用いられる記憶装置を示す図。 第1実施形態における処理層の畳み込み処理を説明する図。 第1実施形態における処理層の畳み込み処理を説明する図。 第1実施形態における処理層の畳み込み処理を説明する図。 第1実施形態における他の処理層の畳み込み処理を説明する図。 第1実施形態における他の処理層の畳み込み処理を説明する図。 第1実施形態における他の処理層の畳み込み処理を説明する図。 第1実施形態における他の処理層の畳み込み処理を説明する図。 第2実施形態による演算処理装置の概要を説明する図。 第2実施形態における処理層の畳み込み処理を説明する図。 第2実施形態における処理層の畳み込み処理を説明する図。 第2実施形態における処理層の畳み込み処理を説明する図。 第2実施形態における処理層の畳み込み処理を説明する図。 第2実施形態における処理層の畳み込み処理を説明する図。 第2実施形態における処理層の畳み込み処理を説明する図。 第2実施形態における処理層の畳み込み処理を説明する図。 第3実施形態による演算処理装置の概要を説明する図。 第3実施形態における処理層の畳み込み処理を説明する図。 第3実施形態における処理層の畳み込み処理を説明する図。 第3実施形態における処理層の畳み込み処理を説明する図。
以下、図面を参照して本発明の実施形態を詳細に説明する。図面に示される数値の配列は説明の為に特定の並び方としているが、その並び方は本質ではなく他の並び方であってもよい。また本発明は以下の実施形態に限定されるものではなく、種々変更して用いる事ができる。
以下の実施形態では、処理層が2層の場合を例にとって説明する。処理層が3以上であっても連続する2つの処理層に適用することができる。
(第1実施形態)
第1実施形態による演算処理装置について図1乃至図7を参照して説明する。この第1実施形態の演算処理装置は、複数の処理層の畳み込みニューラルネットワーク回路を実現し、その概要を図1に示す。この演算処理装置1は、処理層30と、処理層60とを有し、処理層30は、記憶装置20に格納されたデータに対して畳み込み処理を行い、処理結果を記憶装置50に格納する。処理層60は、記憶装置50に格納されたデータに対して畳み込み処理を行い、処理結果を記憶装置70に格納する。
記憶装置20は、図1に示すように8個のアレイA〜Aを有し、各アレイA(i=1,・・・,8)は、11行11列の要素(メモリ素子)を有している。各アレイA(i=1,・・・,8)における第j(j=1,・・・,11)行第k(k=1,・・・,11)列の要素をA(j,k)と表す。なお、本明細書では、この要素A(j,k)(i=1.・・・,8,j,k=1,・・・,11)は、この要素に格納されるデータをも表す。要素A(j,k)(i=1.・・・,8,j,k=1,・・・,11)に格納されるデータは図3に示す演算処理装置1内の読み取り部2によって外部記憶装置200から読み取られ、数値記憶部4にある記憶装置20に格納される。
記憶装置50は、図1に示すように3個のアレイC〜Cを有し、各アレイC(i=1,2,3)は、8行8列の要素(メモリ素子)を有している。各アレイC(i=1,2,3)における第j(j=1,・・・,8)行第k(k=1,・・・,8)列の要素をC(j,k)と表す。なお、本明細書では、この要素C(j,k)(i=1.2,3,j,k=1,・・・,8)は、この要素に格納されるデータをも表す。
記憶装置70は、図1に示すように9個のアレイD〜Dを有し、各アレイD(i=1,・・・,9)は、6行6列の要素(メモリ素子)を有している。各アレイD(i=1,・・・,9)における第j(j=1,・・・,6)行第k(k=1,・・・,6)列の要素をD(j,k)と表す。なお、本明細書では、この要素D(j,k)(i=1.・・・,9,j,k=1,・・・,6)は、この要素に格納されるデータをも表す。
(処理層30の第1処理)
次に、処理層30における畳み込み処理の一部の処理(第1処理)について図2乃至図7を参照して説明する。この畳み込み処理には、図2に示す3個の核W〜Wが用いられる。核W〜Wはそれぞれ、8個のアレイを有し、それぞれのアレイは4行4列に配置された要素を有している。例えば、核Wは、8個のアレイW 〜W を有し、各アレイW (i=1,・・・,8)は、4行4列に配置された要素(メモリ素子)を有する。各アレイW (i=1,・・・,8)における第j(j=1,・・・,4)行第k(k=1,・・・,4)列に配置された要素をW (j,k)と表す。要素W (j,k)(j,k=1.・・・、4)は、この要素に格納されるデータ(重みとも云う)をも表す。その他の核W、Wの要素も同様な表示とする。
なお、処理層30の畳み込み処理には12個の核E〜E12が用いられる。核E(j=1,・・・,12)はそれぞれ、8個のアレイE 〜E を有し、各アレイE (i=1,・・・,8)は、4行4列に配置された要素(メモリ素子)を有する。各アレイE (i=1,・・・,8)の第m行n列に配置された要素をE (m,n)と表し、この要素E (m,n)は、この要素に格納されたデータをも表す。これらの核E〜E12の要素に格納される予め求められた値および後述するバイアスの値は、外部記憶装置202から図3に示す読み取り部2によって読み取られ、数値記憶部4にある記憶装置35(図4参照)に記憶される。上記核E〜E12のそれぞれに含まれるアレイの個数(深さ方向の数)は、処理層30の入力の深さ、すなわち記憶装置20のアレイの個数と同じである。また、核E〜E12の個数(=12)は処理層30の出力の深さと同じである。また、処理層30に用いられるバイアスの値をB1(1≦i≦12)とする。
本実施形態の演算処理装置1は、図3に示す数値記憶部4の記憶部35に格納された核E〜E12から少なくとも一部、例えば核E〜Eのデータをそれぞれ、図3に示す読み取り部5を用いて読み取り、図2に示す記憶装置40の核W〜Wにそれぞれ格納する。
続いて、図5に示す様に、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に対して、記憶装置20に格納されたデータA(j,k)と、記憶装置40に格納されたデータW (j,k)との積の総和を算出する。すなわち、この総和は、
ΣΣΣ(A(j,k)×W (j,k))
と表される。最初の総和記号Σはiに対しての総和を求め、2番目に示す総和記号Σはjに対しての総和を求め、3番目に示す総和記号Σはkに対しての総和を求める。この総和は、図3に示す演算処理部6によって求められる。この処理に於いて各々のi(i=1,・・・,8)に対する総和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、求めた総和に、処理層30のバイアス値B1を加え、必要に応じて発火関数処理を施した値を図1に示す記憶装置50のアレイCの要素C(1,1)に格納する(図5)。
次に、図6に示す様に、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に対して、記憶装置20に格納されたデータA(j,k+1)と、記憶装置40に格納されたデータW (j,k)との積の総和を算出する。すなわち、この総和は、
ΣΣΣ(A(j,k+1)×W (j,k))
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目に示す総和記号Σはjに対しての総和を求め、3番目に示す総和記号Σはkに対しての総和を求める。この総和は、図3に示す演算処理部6によって求められる。この処理に於いて各々のi(i=1,・・・,8)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、求めた総和に、処理層30のバイアス値B1を加え、必要に応じて発火関数処理を施した値を図1に示す記憶装置50のアレイCの要素C(1,2)に格納する(図6)。
同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に渡って算出する。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目に示す総和記号Σはjに対しての総和を求め、3番目に示す総和記号Σはkに対しての総和を求める。この総和は、図3に示す演算処理部6によって求められる。なお、この総和は、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して求められる。この処理に於いて各々のr(r=1,2,3)に対する総和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して求めた総和に処理層30のバイアス値B1を加え、必要に応じて発火関数処理を施した値を図1に示す記憶装置50のアレイCの要素C(p、q)に格納する(図7)。この状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の深さがrの値と同一の値が格納されている。
(処理層60の第1処理)
続いて処理層60の処理の一部(第1処理)を行う。処理層30の場合と同様に処理層60に用いられる核F〜Fの重みの数値も、図3に示す読み取り部2によって外部記憶装置202から読み出され、この読み出された値が演算処理装置1の内の数値記憶部4にある記憶装置55に格納される(図8)。核F(i=1,・・・,9)は、3個のアレイF 、F 、F を有し、各アレイF (j=1,2,3)は、3行3列に配置された要素(メモリ素子)を有している。各アレイF (j=1,2,3)の第p(p=1,2,3)行第q(q=1,2,3)列の要素はF (p,q)と表され、この要素に格納される数値(重み)もF (p,q)と表される。
演算処理装置1は、図3に示す数値記憶部4に格納されている核F〜Fの重み数値を、図3に示す読み取り部5を用いて読み出し、記憶装置58の核VのアレイV 〜V に格納する。各アレイV (j=1,2,3)は、3行3列に配置された要素(メモリ素子)を有している。各アレイV (j=1,2,3)の第p(p=1,2,3)行第q(q=1,2,3)列の要素はV (p,q)と表され、この要素に格納される数値(重み)もV (p,q)と表される。なお、核F(i=1,・・・,9)の深さは処理層60の入力の深さ9である。そして、処理層60の出力は、9個のアレイD〜Dを有する記憶装置70に格納される(図9)。また、処理層60のバイアス値をB2(1≦i≦9)とする。
まず、図9に示す様に、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に対して、記憶装置50に格納されたアレイCのデータC(j,k)と、記憶装置58に格納された核VのデータV (j,k)との積の総和を算出する。すなわち、この総和は、
ΣΣΣC(j,k)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この総和は図3に示す演算処理部6によって求められる。そして、上記総和は、記憶装置70のアレイDの要素D(1,1)に格納される。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、図10に示す様に、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に対して、記憶装置50に格納されたアレイCのデータC(j,k+1)と、記憶装置58に格納された核VのデータV (j,k)との積の総和を算出する。すなわち、この総和は、
ΣΣΣC(j,k+1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この総和は図3に示す演算処理部6によって求められる。そして、上記総和は、記憶装置70のアレイDの要素D(1,2)に格納される。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して、記憶装置50に格納されたアレイC(i=1,2,3)のデータC(j+p−1,k+q−1)と、記憶装置58に格納されたアレイV の要素V (j,k)(j,k=1,2,3)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って算出する。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この総和は、図3に示す演算処理部6によって、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組のそれぞれに対して求められ、記憶装置70のアレイDの要素D(p,q)に格納される。この処理の終了した状態を図11に示す。この処理に於いて各々のi(i=1.2.3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,・・・,9)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第2処理)
引き続いて、処理層30の一部の処理(第2処理)を行う。i(1≦i≦8)、j(1≦j≦3)、k,m(1≦k,m≦4)に対して数値記憶部4の記憶装置35に格納されている核Ej+3のアレイEj+3 の要素Ej+3 (k、m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40の核WのアレイW の要素W (k、m)に格納する。
続いて、図5乃至図7で説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組のそれぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)(i=1,・・・,8、j,k=1,・・・,4)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦8)、j(1≦j≦3)、k(1≦k≦3)に渡って算出する。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この総和は、図3に示す演算処理部6によって、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して求められる。この処理に於いて各々のi(i=1,・・・,8)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して求めた値に、処理層30のバイアスB1r+3を加え、必要に応じて発火関数処理を施した値を記憶装置50のアレイCの要素C(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1.2.3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態でp(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の内の深さがr+3の値と同一の値が格納されている。
(処理層60の第2処理)
次に、i(1≦i≦3)、j(1≦j≦9)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されている核Fの要素F i+3(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58に格納される核Vの要素V (k,m)に格納する。
続いて、図9乃至図11を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組のそれぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。
p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組のそれぞれに対して求めた総和と、記憶装置70のアレイDの要素D(p,q)に格納されている数値との和を改めて要素D(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,・・・,9)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第3処理)
引き続いて、i(1≦i≦8)、j(1≦j≦3)、k、m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35に格納されている核Ej+6の要素Ej+6 (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40の核Wの要素W (k,m)に格納する。
続いて、図5乃至図7を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組のそれぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に渡って算出する。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この処理に於いて各々のi(i=1,・・・,8)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組のそれぞれに対して算出した総和に処理層30のバイアス値B1r+6を加え、必要に応じて発火関数処理を施した値を記憶装置50のアレイCの要素C(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の内の深さがr+6の値と同一の値が格納されている。
(処理層60の第3処理)
次に、i(1≦i≦3)、j(1≦j≦9)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55の要素F i+6(k,m)に格納されている数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58の核Vの要素V (k,m)に格納する。
続いて、図9乃至図11を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組のそれぞれに対して、記憶装置50のアレイCのデータC(j+p−1,k+q−1)と、記憶装置58に格納された核VのデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この処理に於いて各々のiに対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組のそれぞれに対して算出した総和と、記憶装置70のアレイDの要素D(p,q)に格納されている数値との和を改めて要素D(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,・・・,9)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第4処理)
引き続いて、i(1≦i≦8)、j(1≦j≦3)、k、m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶層35の要素Ej+9 (k,m)に格納されている数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40の要素W (k,m)に格納する。
続いて、図5乃至図7を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組のそれぞれに対して、記憶装置20の格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に渡って算出する。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この処理に於いて各々のi(i=1,・・・,8)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組のそれぞれに対して算出した総和に、処理層30のバイアス値B1r+9を加え、必要に応じて発火関数処理を施した値を、記憶装置50のアレイCの要素C(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組のそれぞれに対してアレイCの要素C(p,q)には処理層30の出力の内の深さがr+9の値と同一の値が格納されている。
(処理層60の第4処理)
次に、i(1≦i≦3)、j(1≦j≦9)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55の要素F i+9(k,m)に格納されている数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58の要素V (k,m)に格納する。
続いて、図9乃至図11を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組のそれぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組のそれぞれに対して求めた値に、記憶装置70のアレイDの要素D(p,q)に格納されている数値と処理層60のバイアス値B2を加え、必要に応じて発火関数処理を施した値を、記憶装置70のアレイDの要素D(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1,・・・,9)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組のそれぞれに対して、アレイDの要素D(p,q)には処理層60の出力の内の深さがrの値と同一の値が格納されている。
このようにして、図3に示す演算処理部6によって得られた処理結果は出力部8を介して、外部記憶装置300に格納される。
以上説明したように、本実施形態によれば、処理層30の出力を格納する記憶装置50のアレイの個数(=3)は、処理層30の出力の個数、すなわち記憶装置35に格納された核の個数(=12)よりも少ない。これにより、記憶装置の容量を削減することのできる演算処理装置を提供することができる。また、記憶装置の容量を削減することができるので、回路面積を縮小することが可能となり、製造コストを抑制することができる。
本実施形態に於いては、記憶装置40における核W〜Wの個数(=3)は、記憶装置50のアレイC〜Cの深さ(=3)に等しいとしたが、このことに必然性は無く両者が相異なる値であってもよい。但し、記憶装置40において、核W〜Wの個数が、記憶装置50のアレイC〜Cの深さよりも多いと、図5乃至図7を参照して説明した処理に於いて、記憶装置40の核の内で、記憶装置50のアレイの深さを超えた核は使われないので、それだけ無駄が生ずる。また、記憶装置40の核の個数が記憶装置50のアレイの深さよりも少ないと、図5乃至図7を参照して説明した処理に於いて、記憶装置50のアレイの内で、記憶装置40の核の個数を超えた深さは使われないので、それだけ無駄が生ずる。それ故、記憶装置40核の個数と記憶装置50のアレイの深さとは相等しいことが好ましい。
また、本実施形態に於いては、記憶装置55、58における核の深さは、記憶装置50のアレイの深さと等しいとしたが、このことに必然性は無く両者が相異なる値であってもよい。但し、記憶装置55,58の核の深さが記憶装置50のアレイの深さよりも大きいと、図9乃至図11を参照して説明した処理に於いて、記憶装置58の核の深さの内で、記憶装置50のアレイの深さを超えた深さは使われないので、それだけ無駄が生ずる。また、記憶装置58の核の深さが記憶装置50のアレイの深さよりも小さいと、図9乃至図11を参照して説明した処理に於いて、記憶装置50の核の内で、記憶装置58の核のアレイの深さを超えた深さは使われないので、それだけ無駄が生ずる。それ故、記憶装置55,58における核の深さと、記憶装置50のアレイの深さとは等しいことが好ましい。
特に、記憶装置40における核の個数と、記憶装置50のアレイの深さと、記憶装置55,58の核のアレイの深さとは、相等しいことが好ましい。
本実施形態に於いては、記憶装置40の核の個数と、記憶装置50のアレイの深さと、記憶装置58の核の深さとの三者は相等しく3とした。それは処理層30の出力の深さすなわち処理層60の入力の深さである12の約数である。このことに必然性はなく、記憶装置40の核の個数と、記憶装置50のアレイの深さと、記憶装置58の核の深さとの三者を相等しい値に設定する場合に、その相等しい値が処理層30の出力の深さすなわち処理層60の入力の深さの約数でなくてもよい。但し、相等しい数値の記憶装置40の核の個数と、記憶装置50のアレイの深さと、記憶装置58の核の深さとの三者の値が、処理層30の出力の深さすなわち処理層60の入力の深さの約数であると、本実施形態に示した様に図5乃至図8を参照して説明した処理と、図9乃至図11を参照して説明した処理と、を交互に行う場合に処理に無駄が生じないという利点が得られる。それ故、記憶装置40の核の個数と、記憶装置50のアレイの深さと、記憶装置58の核の深さとの三者が相等しく且つその相等しい値が処理層30の出力の深さすなわち処理層60の入力の深さの約数であることは好ましい。
本実施形態に於いては、畳み込み処理のみでプーリング(pooling)処理には言及していないが、プーリング処理は深さごとに独立に行われるので、処理層30ないし処理層60の畳み込み処理に続いてプーリング処理を行っても、同様の効果が得られる。
本実施形態に於いては、処理層30の出力を格納する記憶装置50は、図の面内方向は処理層30の出力と等しい大きさ、すなわち8×8の大きさで、かつ深さが3とした。しかし、処理層30の出力を格納する記憶装置として、処理層30の面内方向の大きさと等しい長さの1次元的な配列とすることも可能である(例えば、本出願人によって出願された特願2017−222293号)。しかしながら、この様な記憶装置を用いると、記憶装置55のアレイの値を、記憶装置58のアレイに格納する処理に於いて、同一の数値を記憶装置55より記憶装置58に格納する処理を複数回に渡って行う必要がある。これは、記憶装置のアクセスの回数を過剰に増やすこととなるので処理に無駄な時間を要する。すなわち、処理の高速化の妨げとなる。それ故、本実施形態に示した様に、処理層30の出力を格納する記憶装置は図の面内方向は行方向と列方向との双方に対して処理層30の出力と等しい大きさを持つことが好ましい。
本実施形態に於いては、処理層30の処理ないし処理層60の処理は何れも畳み込み処理であるとしたが、このことに必然性はない。一般に処理層の入力ないし出力は、図の面内方向の大きさが1×1であるとするとそれは全結合処理となる。それ故、処理層30ないし処理層60の処理が全結合処理であるとしても同様の効果が得られる。但し、一回の処理に於いて全結合処理に於いては各々の重みは一回のみ用いられるのに対して畳み込み処理に於いては各々の重みは複数回に渡って用いられる。それ故、記憶装置に対するアクセスの回数の帰結として定まるところの処理時間に鑑みると、処理層30の処理ないし処理層60の処理が何れも畳み込み処理である場合に特に効果が得られる。
(第2実施形態)
第2実施形態による演算処理装置について図12乃至図19を参照して説明する。この第2実施形態の演算処理装置1は、図1乃至図11に示す第1実施形態の演算処理装置において処理層30に用いられる核の深さすなわち核に含まれるアレイの個数が異なっている。第1実施形態においては、記憶装置40に格納される核に含まれるアレイの個数(=8)は、処理層30の入力の深さすなわち、記憶装置20に格納されたアレイの個数(=8)に等しかった。図12に示すように、第2実施形態においては、処理層30に用いられ、記憶装置40に格納される核の個数は3であって、核はそれぞれ2個のアレイを有している。各アレイは、4行×4列に配置されたメモリ素子を有する。すなわち、第1実施形態とは、処理層30に用いられる核の深さが異なっている。
次に、第2実施形態の演算処理装置の処理動作について、説明する。
(処理層30の第1処理)
まず、i(1≦i≦2)、j(1≦j≦3)、k、m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35に格納されている核の要素E (k,m)に格納されている数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40に格納されている核Wの要素W (k,m)に格納する。
続いて、図13に示す様に、記憶装置20に格納されたデータA(j,k)とデータW (j,k)との積の総和を、i(1≦i≦2)、j(1≦j≦4)、k(1≦k≦4)に渡って求める。すなわち、この総和は、
ΣΣΣA(j,k)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、この総和は、記憶装置50のアレイCの要素C(1,1)に格納される。この処理に於いて各々のi(i=1,2)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、図14に示す様に、記憶装置20に格納されたデータA(j,k+1)と記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦2)、j(1≦j≦4)、k(1≦k≦4)に渡って求める。すなわち、この総和は、
ΣΣΣA(j,k+1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、この総和は、記憶装置50のアレイCの要素C(1,2)に格納される。この処理に於いて各々のi(i=1,2)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
同様に、p(1≦p≦8)、q(1≦q≦8)の組のそれぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦2)、j(1≦j≦4)、k(1≦k≦4)に渡って求める。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、この総和は、p(1≦p≦8)、q(1≦q≦8)の組のそれぞれに対して求められ、記憶装置50のアレイCの要素C(p,q)に格納される。この処理に於いて各々のi(i=1,2)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この処理の終了した状態を図15に示す。
続いて、p(1≦p≦8)、q(1≦q≦8)の組のそれぞれに対し、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦2)、j(1≦j≦4)、k(1≦k≦4)に渡って求める。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、この総和は、p(1≦p≦8)、q(1≦q≦8)の組のそれぞれに対して求められ、記憶装置50のアレイCの要素C(p,q)に格納される。この処理に於いて各々のi(i=1,2)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この処理の終了した状態を図16に示す。
次に、p(1≦p≦8)、q(1≦q≦8)の組みのそれぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦2)、j(1≦j≦4)、k(1≦k≦4)に渡って求める。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、この総和は、p(1≦p≦8)、q(1≦q≦8)の組のそれぞれに対して求められ、記憶装置50のアレイCの要素C(p,q)に格納される。この処理に於いて各々のi(i=1,2)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この処理の終了した状態を図17に示す。なお、図13乃至図15を参照して説明した処理、図16を参照して説明した処理、および図17を参照して説明した処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦2)、j(1≦j≦3)、k、m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35に格納されているアレイE i+2の要素E i+2(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40のアレイW の要素W (k,m)に格納する。
そして、図13乃至図17を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置20に格納されたデータAi+2(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦2)、j(1≦j≦4)、k(1≦k≦4)に渡って求める。すなわち、この総和は、
ΣΣΣAi+2(j+p−1,k+q−1)×W (j,k)
と求められる。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して求めた総和と、記憶装置50のアレイCの要素C(p,q)との和を改めてC(p,q)に格納する。この処理に於いて各々のi(i=1,2)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この処理の終了した状態を図18に示す。
次に、i(1≦i≦2)、j(1≦j≦3)、k、m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35に格納されているアレイE i+4の要素E i+4(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40のアレイW の要素W (k,m)に格納する。
そして図18を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置20に格納されているデータAi+4(j+p−1,k+q−1)と、記憶装置40に格納されているデータW (j,k)との積の総和を、i(1≦i≦2)、j(1≦j≦4)、k(1≦k≦4)に渡って求める。すなわち、この総和は、
ΣΣΣAi+4(j+p−1,k+q−1)×W (j,k)
と求められる。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して求めた総和と、記憶装置50のアレイCの要素C(p,q)に格納された値との和を改めて要素C(p,q)に格納する。この処理に於いて各々のi(i=1,2)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦2)、j(1≦j≦3)、k、m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35に格納されているアレイE i+6の要素E i+6(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40のアレイW の要素W (k,m)に格納する。
そして図18を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置20に格納されているデータAi+6(j+p−1,k+q−1)と、記憶装置40に格納されているデータW (j,k)との積の総和を、i(1≦i≦2)、j(1≦j≦4)、k(1≦k≦4)に渡って求める。すなわち、この総和は、
ΣΣΣAi+6(j+p−1,k+q−1)×W (j,k)
と求められる。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して求めた総和と、記憶装置50に格納されたアレイCの要素C(p,q)との和を算出する。そして、上記和に処理層30のバイアス値B1を加え、必要に応じて発火関数処理を施した値を改めてアレイCの要素C(p,q)に格納する。この処理に於いて各々のi(i=1,2)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対してアレイCの要素C(p,q)には処理層30の出力の内の深さがrの値と同一の値が格納されている。
(処理層60の第1処理)
引き続いて、i(1≦i≦3)、j(1≦j≦9)、k,m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されているアレイF の要素F (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
そして、図9乃至図11を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して、記憶装置50に格納されているデータC(j+p−1,k+q−1)と、記憶装置58に格納されているデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って算出する。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して算出した総和は、記憶装置70のアレイDの要素D(p,q)に格納する。この処理の終了した状態を図19に示す。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,・・・,9)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第2処理)
次に、i(1≦i≦2)、j(1≦j≦3)、k、m(1≦k,m≦4)に対して、図13乃至図18を参照して説明した処理に関して、アレイE の要素E (k,m)に格納されている数値の読み取りに於いて、アレイE の要素E (k,m)を要素Ej+3 (k,m)と読み替えた処理を行う。この処理の終了した状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の内の深さがr+3の値と同一の値が格納されている。
(処理層60の第2処理)
次に、i(1≦i≦3)、j(1≦j≦9)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されているアレイF i+3の要素F i+3(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図9乃至図11を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って算出する。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して算出した総和と、記憶装置70のアレイDの要素D(p,q)に格納されている数値との和を改めて要素D(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,・・・,9)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第3処理)
そして、図13乃至図18を参照して説明した処理に関して、記憶装置35に格納されているアレイE の要素E (k,m)の数値の読み取りに於いて要素E (k,m)を要素Ej+6 (k,m)と読み替えた処理を行う。この処理の終了した状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の内の深さがr+6の値と同一の値が格納されている。
(処理層60の第3処理)
次に、i(1≦i≦3)、j(1≦j≦9)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されているアレイF i+6の要素F i+6(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイVの要素V (k,m)に格納する。
続いて、図9乃至図11を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対し、記憶装置50に格納されているデータC(j+p−1,k+q−1)と、記憶装置58に格納されているデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って算出する。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して算出された総和と、記憶装置70のアレイDの要素D(p,q)に格納されている数値との和を改めて要素D(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,・・・,9)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第4処理)
そして、1≦i≦2、1≦j≦3、1≦k,m≦4に対して、図13乃至図18を参照して説明した処理に於ける、アレイE の要素E (k,m)に格納されている数値の読み取りに関して、要素E (k,m)を要素Ej+9 (k,m)と読み替えた処理を行う。この処理の終了した状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の内の深さがr+9の値と同一の値が格納されている。
(処理層60の第4処理)
次に、i(1≦i≦3)、j(1≦j≦9)、k。m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されているアレイF i+9の要素F i+9(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図9乃至図11を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って算出する。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して算出された値と、記憶装置70のアレイDの要素D(p,q)に格納されている数値との和が算出される。この処理に於いて各々のi(i=1.2.3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、上記和に処理層60のバイアス値B2を加え、必要に応じて発火関数処理を施した値を改めて要素D(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1.・・・,9)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)の組それぞれに対して、記憶装置70に格納されているアレイDの要素D(p,q)には処理層60の出力の内の深さがrの値と同一の値が格納されている。
本実施形態に於いては、核W(i=1,2)の深さが2としてあるので、第1実施形態に示した場合と比べて、記憶装置40の容量が少なくなっている。それ故、記憶装置の更なる削減が図られるという利点がある。
一方、第1実施形態の演算処理装置では処理層30の入力側の深さ方向の処理を全ての深さに渡って並列に処理することが可能であるので、処理時間の短縮が図られる、すなわち動作の高速化が可能となるという利点がある。
本実施形態に於いては、核W(i=1,2)の深さが2としたが深さが2であることに必然性はない。但し、核W(i=1,2)の深さが処理層30の入力の深さ、すなわち記憶装置20のアレイの深さの約数である場合は、処理に無駄が生じないという利点が得られるので好ましい。
本実施形態に於いては畳み込み処理のみでプーリング処理には言及していないが、プーリング処理は深さごとに独立に行われるので、処理層30ないし処理層60の畳み込み処理に続いてプーリング処理を行っても、同様の効果が得られる。
以上説明したように、第2実施形態によれば、第1実施形態と同様に、記憶装置の容量を削減することのできる演算処理装置を提供することができる。また、記憶装置の容量を削減することができるので、回路面積を縮小することが可能となり、製造コストを抑制することができる。
(第3実施形態)
第3実施形態による演算処理装置1について図20乃至図23を参照して説明する。この実施形態の演算処理装置は、第1実施形態の演算処理装置1に於いて、記憶装置58の核の個数が異なっている。第1実施形態においては、記憶装置58の核の個数は処理層60の出力の深さ、すなわち記憶装置70のアレイの深さに等しかった。しかし、第3実施形態に於いては、図20に示す様に、記憶装置58に格納される核の個数が3であるとしている。記憶装置58に格納される核V(i=1,2,3)はそれぞれ、3行3列に配置されたアレイV 、V 、V を有している。
次に、本実施形態の動作について説明する。
(処理層30の第1処理)
先ず、i(1≦i≦8)、j(1≦j≦3)、k、m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35に格納されているアレイE の要素E (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40に格納されるアレイW の要素W (k,m)に格納する。
そして、図5乃至図7を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に渡って算出する。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この総和は、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して求められる。この処理に於いて各々のi(i=1,・・・,8)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、上記総和に処理層30のバイアス値B1を加え、必要に応じて発火関数処理を施した値を、記憶装置50のアレイCの要素C(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の内の深さがrの値と同一の値が格納されている。
(処理層60の第1処理)
次に、i(1≦i≦3)、j(1≦j≦3)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されているアレイF の要素F (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図9乃至図11を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されているデータC(j+p−1,k+q−1)と、記憶装置58に格納されているデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って算出する。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して算出した総和は、記憶装置70のアレイDの要素D(p,q)に格納する。この処理の終了した状態を図21に示す。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦3)、j(1≦j≦3)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されたアレイFj+3 の要素Fj+3 (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図21を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)に対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って算出する。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して算出した総和は、記憶装置70のアレイDr+3の要素Dr+3(p,q)に格納する。この処理の終了した状態を図22に示す。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦3)、j(1≦j≦3)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されているアレイFj+6 の要素Fj+6 (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図21を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求めた値は、記憶装置70のアレイDr+6の要素Dr+6(p,q)に格納する。この処理の終了した状態を図23に示す。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第2処理)
引き続いて、i(1≦i≦8)、j(1≦j≦3)、k,m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35に格納されたアレイEj+3 の要素Ej+3 (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40のアレイW の要素W (k,m)に格納する。
そして、図5乃至図7を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に渡って算出する。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この処理に於いて各々のi(i=1,・・・,8)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して算出した値に処理層30のバイアス値B1r+3を加え、必要に応じて発火関数処理を施した値を、記憶装置50のアレイCの要素C(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の内の深さがr+3の値と同一の値が格納されている。
(処理層60の第2処理)
次に、i(1≦i≦3)、j(1≦j≦3)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55のアレイF i+3の要素F i+3(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図21を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求めた値と、記憶装置70のアレイDの要素D(p,q)との和を改めて要素D(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦3)、j(1≦j≦3)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55のアレイFj+3 i+3の要素Fj+3 i+3(k,m)の数値を読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図22を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV の要素V (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求めた値と記憶装置70のアレイDの要素Dr+3(p,q)との和を改めて要素Dr+3(p,q)に格納する。この処理に於いて各々のi(i=1,2、3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦3)、j(1≦j≦3)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55のアレイFj+6 i+3の要素Fj+6 i+3(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図23を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求められた値と、記憶装置70のアレイDの要素Dr+6(p,q)との和を改めて要素Dr+6(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第3処理)
引き続いて、i(1≦i≦8)、j(1≦j≦3)、k。m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35のアレイEj+6 の要素Ej+6 (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40のアレイW の要素W (k,m)に格納する。
そして、図5乃至図7を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に渡って算出する。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この処理に於いて各々のi(i=1,・・・,8)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して算出した値に処理層30のバイアス値B1r+6を加え、必要に応じて発火関数処理を施した値を記憶装置50のアレイCの要素C(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)に対して、記憶装置Cの要素C(p,q)には処理層30の出力の内の深さがr+6の値と同一の値が格納されている。
(処理層60の第3処理)
次に、i(1≦i≦3)、j(1≦j≦3)、k,m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55のアレイF i+6の要素F i+6(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図21を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求めた値と、記憶装置70に格納されたアレイDの要素D(p,q)との和を改めて要素D(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦3)、j(1≦j≦3)、k,m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されたアレイFj+3 i+6の要素Fj+3 i+6(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図22を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求めた値と、記憶装置70のアレイDの要素Dr+3(p,q)との和を改めて要素Dr+3(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦3)、j(1≦j≦3)、k.m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55のアレイFj+6 i+6の要素Fj+6 i+6(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイVj+6 i+6の要素V (k,m)に格納する。
続いて、図23を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求めた値と、記憶装置70のアレイDの要素Dr+6(p,q)との和を改めて要素Dr+6(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
(処理層30の第4処理)
引き続いて、i(1≦i≦8)、j(1≦j≦3)、k.m(1≦k,m≦4)に対して、図3に示す数値記憶部4の記憶装置35のアレイEj+9 の要素Ej+9 (k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置40のアレイW の要素W (k,m)に格納する。
そして、図5乃至図7を参照して説明した処理と同様に、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置20に格納されたデータA(j+p−1,k+q−1)と、記憶装置40に格納されたデータW (j,k)との積の総和を、i(1≦i≦8)、j(1≦j≦4)、k(1≦k≦4)に渡って算出する。すなわち、この総和は、
ΣΣΣA(j+p−1,k+q−1)×W (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。この処理に於いて各々のi(i=1,・・・,8)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。そして、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して算出した値に処理層30のバイアス値B1r+9を加え、必要に応じて発火関数処理を施した値を、記憶装置50のアレイCの要素C(p,q)に格納する。なお、これらの処理に於いて各々のr(r=1,2,3)に対する処理は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この状態で、p(1≦p≦8)、q(1≦q≦8)、r(1≦r≦3)の組それぞれに対して、記憶装置50のアレイCの要素C(p,q)には処理層30の出力の内の深さがr+9の値と同一の値が格納されている。
(処理層60の第4処理)
次に、i(1≦i≦3)、j(1≦j≦3)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されたアレイF i+9の要素F i+9(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図21を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求めた値と、記憶装置70のアレイDの要素D(p,q)との和を算出する。その後、この和に処理層60のバイアス値B2を加え、必要に応じて発火関数処理を施した値を改めて要素D(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦3)、j(1≦j≦3)、k、m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されたアレイFj+3 i+9の要素Fj+3 i+9(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図22を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)の組それぞれに対して求めた値と、記憶装置70に格納されたアレイDの要素Dr+3(p,q)との和を算出する。その後、上記和に、処理層60のバイアス値B2r+3を加え、必要に応じて発火関数処理を施した値を改めて要素Dr+3(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。
次に、i(1≦i≦3)、j(1≦j≦3)、k,m(1≦k,m≦3)に対して、図3に示す数値記憶部4の記憶装置55に格納されたアレイFj+6 i+9の要素Fj+6 i+9(k,m)の数値を、図3に示す読み取り部5を用いて読み取り、記憶装置58のアレイV の要素V (k,m)に格納する。
続いて、図23を参照して説明した処理と同様に、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)に対して、記憶装置50に格納されたデータC(j+p−1,k+q−1)と、記憶装置58に格納されたデータV (j,k)との積の総和を、i(1≦i≦3)、j(1≦j≦3)、k(1≦k≦3)に渡って求める。すなわち、この総和は、
ΣΣΣC(j+p−1,k+q−1)×V (j,k)
と表される。1番目の総和記号Σはiに対しての総和を求め、2番目の総和記号Σはjに対しての総和を求め、3番目の総和記号Σはkに対しての総和を求める。そして、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦3)に対して求めた値と、記憶装置70のアレイDの要素Dr+6(p,q)との和を算出する。その後、上記和に処理層60のバイアス値B2r+6を加え、必要に応じて発火関数処理を施した値を改めて要素Dr+6(p,q)に格納する。この処理に於いて各々のi(i=1,2,3)に対する積和の算出は並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。また、各々のr(r=1,2,3)に対する処理も並列に行うことも可能であり、その場合には処理時間の短縮すなわち動作の高速化が図られるという利点が得られる。この処理の終了した状態で、p(1≦p≦6)、q(1≦q≦6)、r(1≦r≦9)に対して、アレイDの要素D(p,q)には処理層60の出力の内の深さがrの値と同一の値が格納されている。
本実施形態に於いては、記憶装置58の核の個数が3としてあるので、第1実施形態に示した場合と比べて記憶装置58の容量が少なくなっている。それ故、記憶装置の更なる削減が図られるという利点がある。一方、第1実施形態の演算処理装置では処理層60の出力側の深さ方向の処理を全ての深さに渡って並列に処理することが可能であるので、処理時間の短縮が図られるすなわち動作の高速化が可能となるという利点がある。
本実施形態に於いては記憶装置58の核の個数は3としたが3であることに必然性はない。但し、記憶装置58の核の個数が処理層60の出力の深さすなわち記憶装置70のアレイの深さの約数であると、処理に無駄が生じないという利点が得られるので好ましい。
本実施形態に於いては畳み込み処理のみでプーリング処理には言及していないが、プーリング処理は深さごとに独立に行われるので、処理層30ないし処理層60の畳み込み処理に続いてプーリング処理を行っても、同様の効果が得られる。
本実施形態に於いては、記憶装置40の核の深さは8としたが、このことに必然性はなく第2実施形態と同様に、記憶装置40の核の深さが2であるとしても、本実施形態と第2実施形態とに於いて説明した処理を組み合わせることにより処理層30と処理層60との処理を実行可能である。そして、仮に記憶装置40の核の深さを2とした場合は、本実施形態に比べて記憶装置40の容量が少なくなっており、本実施形態に示した場合と比べて記憶装置58の容量が少なくなっている。それ故、記憶装置の更なる削減が図られるという利点がある。一方、本実施形態ないし第2実施形態の様にすると処理層30の入力の深さないし処理層60の出力の深さ方向の全てに渡って処理を並列に実行することが可能となるので、処理時間の短縮が図られるすなわち動作の高速化が図られるという利点が得られる。
以上説明したように、第3実施形態によれば、第1実施形態と同様に、記憶装置の容量を削減することのできる演算処理装置を提供することができる。また、記憶装置の容量を削減することができるので、回路面積を縮小することが可能となり、製造コストを抑制することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
1・・・演算処理装置、2・・・読み取り部、4・・・数値記憶部、5・・・読み取り装置、6・・・演算処理部、8・・・出力部、20・・・記憶装置、30・・・処理層、35・・・記憶装置、40・・・記憶装置、50・・・記憶装置、55・・・記憶装置、58・・・記憶装置、60・・・処理層、70・・・記憶装置、200・・・外部記憶装置、202・・・外部記憶装置、300・・・外部記憶装置、A〜A・・・アレイ、C〜C・・・アレイ、D〜D・・・アレイ、E〜E12・・・アレイ、F〜F・・・アレイ、V〜V・・・核、V (i=1,・・・,9、j=1,2,3)・・・アレイ、W〜W12・・・核、W (i=1,2,3、j=1,・・・,8)・・・アレイ

Claims (10)

  1. 第1方向および前記第1方向に交差する第2方向に配列されたメモリ素子を有する第1アレイを少なくとも1個備えた組をm(m≧2)個有する第1記憶装置と、
    前記第1方向および前記第2方向に配置されたメモリ素子を有する第2アレイを少なくとも1個備えた組をn(m>n≧1)個有する第2記憶装置と、
    前記第1記憶装置の前記第1アレイのm個の組から前記第1アレイのn個の組を選択し、この選択した組に含まれる第1アレイのメモリ素子に記憶されたデータを読み出し、前記第2記憶装置の前記第2アレイのメモリ素子に格納する第1読み取り装置と、
    前記第1方向および前記第2方向に配置されたメモリ素子を有する第3アレイを少なくとも1個備えた第3記憶装置と、
    前記第1方向および前記第2方向に配置されたメモリ素子を有する第4アレイをk(m>k≧1)個有する第4記憶装置と、
    前記第2記憶装置の前記第2アレイのメモリ素子に格納されたデータを用いて前記第3記憶装置の前記第3アレイに対して畳み込み処理を行い、前記第4記憶装置の前記第4アレイのメモリ素子に格納する第1処理層と、
    を備えた演算処理装置。
  2. nはk以下である請求項1記載の演算処理装置。
  3. 前記第2記憶装置の各組における前記第2アレイの個数は、前記第1記憶装置の各組における前記第1アレイの個数以下である請求項1または2記載の演算処理装置。
  4. 前記第2アレイは前記第1および前記第2方向に配列されたメモリ素子の個数がそれぞれ前記第1アレイの前記第1および前記第2方向に配列されたメモリ素子の個数と同じである請求項1乃至3のいずれかに記載の演算処理装置。
  5. 前記第1方向および前記第2方向に配列されたメモリ素子を有する第5アレイを少なくとも1個備えた組をp(p≧2)個有する第5記憶装置と、
    前記第1方向および前記第2方向に配置されたメモリ素子を有する第6アレイを少なくとも1個備えた組をq(p>q≧1)個有する第6記憶装置と、
    前記第5記憶装置の前記第5アレイのp個の組から前記第5アレイのq個の組を選択し、この選択した組に含まれる第5アレイのメモリ素子に記憶されたデータを読み出し、前記第6記憶装置の前記第6アレイのメモリ素子に格納する第2読み取り装置と、
    前記第1方向および前記第2方向に配置されたメモリ素子を有する第7アレイをr(p>r≧1)個有する第7記憶装置と、
    前記第6記憶装置の前記第6アレイのメモリ素子に格納されたデータを用いて前記第4記憶装置の前記第4アレイに対して畳み込み処理を行い、前記第7記憶装置の前記第7アレイのメモリ素子に格納する第2処理層と、
    を更に備え、
    前記第6記憶装置の各組における前記第6アレイの個数は、前記第1記憶装置の各組における第1アレイの個数よりも少ない請求項1乃至4のいずれかに記載の演算処理装置。
  6. qはr以下である請求項5記載の演算処理装置。
  7. 前記第6記憶装置の各組における前記第6アレイの個数は、前記第4記憶装置の前記第4アレイの個数以下である請求項5または6記載の演算処理装置。
  8. 前記第6アレイは前記第1および前記第2方向に配列されたメモリ素子の個数がそれぞれ前記第5アレイの前記第1および前記第2方向に配列されたメモリ素子の個数と同じである請求項5乃至7のいずれかに記載の演算処理装置。
  9. 前記第2記憶装置における前記第2アレイの組の個数と、前記第4記憶装置の前記第4アレイの個数と、前記第6記憶装置の各組の前記第6アレイの個数と、が相等しい請求項7または8記載の演算処理装置。
  10. 前記第2記憶装置における前記第2アレイの組の個数は、前記第1記憶装置における前記第1アレイの組の個数の約数である請求項1乃至9のいずれかに記載の演算処理装置。
JP2018051544A 2018-03-19 2018-03-19 演算処理装置 Active JP6749358B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018051544A JP6749358B2 (ja) 2018-03-19 2018-03-19 演算処理装置
US16/126,006 US10754920B2 (en) 2018-03-19 2018-09-10 Arithmetic processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018051544A JP6749358B2 (ja) 2018-03-19 2018-03-19 演算処理装置

Publications (2)

Publication Number Publication Date
JP2019164520A JP2019164520A (ja) 2019-09-26
JP6749358B2 true JP6749358B2 (ja) 2020-09-02

Family

ID=67905630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018051544A Active JP6749358B2 (ja) 2018-03-19 2018-03-19 演算処理装置

Country Status (2)

Country Link
US (1) US10754920B2 (ja)
JP (1) JP6749358B2 (ja)

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPP779998A0 (en) * 1998-12-18 1999-01-21 Canon Kabushiki Kaisha Continuous kernel image interpolation
JP6314628B2 (ja) 2014-04-28 2018-04-25 株式会社デンソー 演算処理装置
JP6658033B2 (ja) 2016-02-05 2020-03-04 富士通株式会社 演算処理回路、および情報処理装置
JP6708044B2 (ja) 2016-07-28 2020-06-10 富士通株式会社 画像認識装置、画像認識プログラム、画像認識方法および認識装置
US20180046898A1 (en) * 2016-08-11 2018-02-15 Vivante Corporation Zero Coefficient Skipping Convolution Neural Network Engine
US10366328B2 (en) * 2017-09-19 2019-07-30 Gyrfalcon Technology Inc. Approximating fully-connected layers with multiple arrays of 3x3 convolutional filter kernels in a CNN based integrated circuit
US10817587B2 (en) * 2017-02-28 2020-10-27 Texas Instruments Incorporated Reconfigurable matrix multiplier system and method
US10558386B2 (en) * 2017-09-22 2020-02-11 Kabushiki Kaisha Toshiba Operation device and operation system
JP6839641B2 (ja) 2017-11-17 2021-03-10 株式会社東芝 演算処理装置
US10803379B2 (en) * 2017-12-12 2020-10-13 Amazon Technologies, Inc. Multi-memory on-chip computational network

Also Published As

Publication number Publication date
JP2019164520A (ja) 2019-09-26
US10754920B2 (en) 2020-08-25
US20190286685A1 (en) 2019-09-19

Similar Documents

Publication Publication Date Title
EP3373210B1 (en) Transposing neural network matrices in hardware
JP7279226B2 (ja) 代替ループ限界値
US20230195831A1 (en) Methods and systems for implementing a convolution transpose layer of a neural network
US10534607B2 (en) Accessing data in multi-dimensional tensors using adders
CN111247527B (zh) 在卷积神经网络模型中确定特征图像的方法和装置
EP3602280B1 (en) Accessing prologue and epilogue data
CN108304922B (zh) 用于神经网络计算的计算设备和计算方法
US10846365B2 (en) Sparse matrix multiplication in associative memory device
JP7234185B2 (ja) データを処理する方法及びその装置
US9946539B1 (en) Accessing data in multi-dimensional tensors using adders
US11562229B2 (en) Convolution accelerator using in-memory computation
US20190228307A1 (en) Method and apparatus with data processing
JP6839641B2 (ja) 演算処理装置
EP3093757B1 (en) Multi-dimensional sliding window operation for a vector processor
JP7435602B2 (ja) 演算装置および演算システム
JP6749358B2 (ja) 演算処理装置
KR101989793B1 (ko) 컨볼루션 신경망을 위한 가속기 인식 가지 치기 방법 및 기록 매체
CN111507456A (zh) 具有卷积神经网络处理的方法和装置
US20220230064A1 (en) Calibration of analog circuits for neural network computing
CN111221500B (zh) 大规模并行关联乘法器-累加器
US10802799B2 (en) Semiconductor device having plural operation circuits including multiplier and accumulator
US12026617B2 (en) Neural network method and apparatus
US20210174178A1 (en) Method and apparatus for processing data
JP7501617B2 (ja) グループ化畳み込み処理定義変更装置、グループ化畳み込み処理定義変更方法およびグループ化畳み込み処理定義変更プログラム
US20230274140A1 (en) Neural network method and apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190819

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200514

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200811

R151 Written notification of patent or utility model registration

Ref document number: 6749358

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151