(57)【要約】 【課題】占有面積が小さい演算処理装置を提供する。【解決手段】本実施形態による演算処理装置は、第１方向および前記第１方向に交差する第２方向に配列されたメモリ素子を有する第１アレイを少なくとも１つ備えた第１記憶装置と、前記第１方向に配列されたメモリ素子を有する第２アレイを少なくとも１つ備える第２記憶装置と、前記第１方向および前記第２方向に配列されたメモリ素子を有する第３アレイを少なくとも１つ備え、前記第３アレイは、前記第１方向に配列されたメモリ素子が前記第１アレイの前記第１方向に配列されたメモリ素子の個数よりも少なくかつ前記第２方向に配列されたメモリ素子の個数が前記第１アレイの前記第２方向に配列されたメモリ素子の個数よりも少ない第３記憶装置と、前記第３アレイの前記メモリ素子に格納されたデータを用いて、前記第１アレイの前記メモリ素子に格納されたデータに対して畳み込み処理を行い、前記畳み込み処理の結果を前記第２アレイのメモリ素子に格納する第１処理層と、を備えている。【選択図】  図４
2019095862.tif 000002
【特許請求の範囲】
【請求項１】
第１方向および前記第１方向に交差する第２方向に配列されたメモリ素子を有する第１アレイを少なくとも１つ備えた第１記憶装置と、
前記第１方向に配列されたメモリ素子を有する第２アレイを少なくとも１つ備える第２記憶装置と
前記第１方向および前記第２方向に配列されたメモリ素子を有する第３アレイを少なくとも１つ備え、前記第３アレイは、前記第１方向に配列されたメモリ素子が前記第１アレイの前記第１方向に配列されたメモリ素子の個数よりも少なくかつ前記第２方向に配列されたメモリ素子の個数が前記第１アレイの前記第２方向に配列されたメモリ素子の個数よりも少ない第３記憶装置と、
前記第３アレイの前記メモリ素子に格納されたデータを用いて、前記第１アレイの前記メモリ素子に格納されたデータに対して畳み込み処理を行い、前記畳み込み処理の結果を前記第２アレイのメモリ素子に格納する第１処理層と、
を備えた演算処理装置。
【請求項２】
前記第２アレイは、前記メモリ素子が前記第１方向にのみ一次元的に配列される請求項１記載の演算処理装置。
【請求項３】
前記第２アレイは、前記第１アレイよりも前記第１方向に配列されたメモリ素子の個数が少ない請求項１または２記載の演算処理装置。
【請求項４】
第１処理層は、前記第１方向に沿って前記畳み込み処理を行う請求項１乃至３のいずれかに記載の演算処理装置。
【請求項５】
前記第２記憶装置は、複数の第２アレイを備えている請求項１乃至４のいずれかに記載の演算処理装置。
【請求項６】
前記第１記憶装置は、ｍ（ｍ≧１）個の第１アレイを有し、前記第３記憶装置は、ｍ個の第３アレイを有する請求項１乃至５のいずれかに記載の演算処理装置。
【請求項７】
前記第３記憶装置は、前記第１方向および前記第２方向に配列されたメモリ素子を有する第４アレイを少なくとも１つ更に備え、前記第４アレイは前記第１方向および前記第２方向に配列されたメモリ素子の個数がそれぞれ前記第３アレイの前記第１方向および前記第２方向に配列されたメモリ素子の個数と同じであり、かつｍ（ｍ≧１）個の第４アレイを備え、
前記第２記憶装置は、２個の第２アレイを備え、
前記第１処理層は、前記第３アレイを用いて畳み込み処理を行った結果を前記２個の前記第２アレイの一方に格納し、前記第４アレイを用いて畳み込み処理を行った結果を前記２個の前記第２アレイの他方に格納する請求項６記載の演算処理装置。
【請求項８】
前記第１方向および前記第２方向に配列されたメモリ素子を有する第５アレイを少なくとも１つ備える第４記憶装置と、
前記第２アレイの前記メモリ素子に格納されたデータに対してプーリング処理を行い、処理結果を前記第５アレイのメモリ素子に格納する第２処理層と、
を備えた請求項１乃至７のいずれかに記載の演算処理装置。
【請求項９】
前記第１方向および前記第２方向に配列されたメモリ素子を有する第５アレイを少なくとも１つ備える第４記憶装置と、
前記第１方向および前記第２方向に配列されたメモリ素子を有する第６アレイを少なくとも１つ備える第５記憶装置と、
前記第６アレイの前記メモリ素子に格納されたデータを用いて、前記第２アレイの前記メモリ素子に格納されたデータに対して畳み込み処理を行い、処理結果を前記第５アレイのメモリ素子に格納する第２処理層と、
を備えた請求項１乃至７のいずれかに記載の演算処理装置。
【請求項１０】
第１方向および前記第１方向に交差する第２方向に配列されたメモリ素子を有する第１アレイを少なくとも１つ備えた外部記憶装置からのデータの少なくとも１部を読み取る装置と、
前記第１方向および前記第２方向に配列されたメモリ素子を有する第２アレイを少なくとも１つ備え、前記読み取り装置によって読み取られた前記少なくとも１部のデータが前記第２アレイに格納される第１記憶装置と、
前記第１方向および前記第２方向に配列されたメモリ素子を有する第３アレイを少なくとも１つ備える第３記憶装置と、
前記第１方向および前記第２方向に配列されたメモリ素子を有する第４アレイを少なくとも１つ備える第４記憶装置と、
前記第４アレイの前記メモリ素子に格納されたデータを用いて、前記第２アレイの前記メモリ素子に格納されたデータに対して畳み込み処理を行い、前記畳み込み処理の結果を前記第３アレイのメモリ素子に格納する処理層と、
を備えた演算処理装置。
【請求項１１】
前記第２アレイは、前記第１方向に配列されたメモリ素子の個数が前記第１アレイの前記第１方向に配列されたメモリ素子の個数と同じであり、前記第２方向に配列されたメモリ素子の個数が前記第１アレイの前記第２方向に配列されたメモリ素子の個数と同じである請求項１０記載の演算処理装置。
【請求項１２】
前記第２アレイは、前記第１方向に配列されたメモリ素子の個数が前記第１アレイの前記第１方向に配列されたメモリ素子の個数と同じであり、前記第２方向に配列されたメモリ素子の個数が前記第４アレイの前記第２方向に配列されたメモリ素子の個数と同じである請求項１０記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、演算処理装置に関する。
【背景技術】
【０００２】
従来、複数の処理層の畳み込みニューラルネットワークを実現する演算処理装置は、処理層ごとにその出力の全てを格納する記憶装置を有しており、各処理層の処理を全て行ってその全ての出力をその記憶装置に格納し、その格納されている数値を用いて次の処理層の処理を行っている。
【０００３】
また、複数の処理層の畳み込みニューラルネットワークを実現する演算処理装置は、外部にある記憶装置（外部記憶装置とも云う）に記憶されている数値を複数の処理に用いる場合、すなわち複数回に渡って用いる場合にその度ごとに外部記憶装置より読み出していた。
【０００４】
従来の演算処理装置は、後述するように、チップ占有面積が大きく、かつ動作速度が遅いという問題があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１５−２１０７０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本実施形態は、占有面積が小さい演算処理装置を提供する。
【課題を解決するための手段】
【０００７】
本実施形態による演算処理装置は、第１方向および前記第１方向に交差する第２方向に配列されたメモリ素子を有する第１アレイを少なくとも１つ備えた第１記憶装置と、前記第１方向に配列されたメモリ素子を有する第２アレイを少なくとも１つ備える第２記憶装置と、前記第１方向および前記第２方向に配列されたメモリ素子を有する第３アレイを少なくとも１つ備え、前記第３アレイは、前記第１方向に配列されたメモリ素子が前記第１アレイの前記第１方向に配列されたメモリ素子の個数よりも少なくかつ前記第２方向に配列されたメモリ素子の個数が前記第１アレイの前記第２方向に配列されたメモリ素子の個数よりも少ない第３記憶装置と、前記第３アレイの前記メモリ素子に格納されたデータを用いて、前記第１アレイの前記メモリ素子に格納されたデータに対して畳み込み処理を行い、前記畳み込み処理の結果を前記第２アレイのメモリ素子に格納する第１処理層と、を備えている。
【図面の簡単な説明】
【０００８】
【図１】従来の演算処理装置の問題点を説明する模式図。
【図２】従来の演算処理装置の問題点を説明する模式図。
【図３】第１実施形態による演算処理装置を示すブロック図。
【図４】第１実施形態の演算処理装置を説明する図。
【図５】図５Ａ乃至図５Ｑは、第１実施形態における畳み込み処理を説明する図。
【図６】図６Ａ乃至図６Ｆは、第１実施形態におけるプーリング処理を説明する図。
【図７】第１実施形態における畳み込み処理の一部を説明する図。
【図８】図８Ａ乃至図８Ｆは、第１実施形態におけるプーリング処理の一部を説明する図。
【図９】図９Ａ乃至図９Ｆは、第１実施形態におけるプーリング処理の一部を説明する図。
【図１０】第１実施形態におけるプーリング処理の一部を説明する図。
【図１１】第１実施形態におけるプーリング処理の一部を説明する図。
【図１２】第２実施形態による演算処理装置を示す図。
【図１３】図１３Ａ乃至図１３Ｌは、第２実施形態における畳み込みの一部を説明する図。
【図１４】図１４Ａ乃至図１４Ｍは、第２実施形態における畳み込みの一部を説明する図。
【図１５】第１または第２実施形態の第１変形例による演算処理装置を示す図。
【図１６】第１または第２実施形態の第２変形例による演算処理装置を示す図。
【図１７】第１または第２実施形態の第３変形例による演算処理装置を示す図。
【図１８】第３実施形態による演算処理装置を示す図。
【図１９】第３実施形態の第１変形例による演算処理装置を示す図。
【図２０】第３実施形態の第１変形例の動作を説明する図。
【図２１】図２１Ａ乃至図２１Ｅは、第３実施形態の第１変形例の動作を説明する図。
【図２２】図２２Ａ乃至図２２Ｋは、第３実施形態の第１変形例の動作を説明する図。
【図２３】第３実施形態の第１変形例の他の例による演算処理装置を示す図。
【図２４】第３実施形態の第２変形例による演算処理装置を示す図。
【図２５】第３実施形態の第２変形例の動作を説明する図。
【図２６】図２６Ａ乃至図２６Ｋは、第３実施形態の第２変形例の動作を説明する図。
【図２７】第３実施形態の第２変形例の動作を説明する図。
【図２８】第３実施形態の第２変形例の動作を説明する図。
【図２９】第３実施形態の第３変形例による演算処理装置を示す図。
【図３０】第３実施形態の第３変形例の動作を説明する図。
【図３１】図３１Ａおよび図３１Ｂは、第３実施形態の第３変形例の動作を説明する図。
【図３２】図３２Ａ乃至図３２Ｊは、第３実施形態の第３変形例の動作を説明する図。
【図３３】第３実施形態の第３変形例の他の例による演算処理装置を示す図。
【発明を実施するための形態】
【０００９】
本発明の実施形態を説明する前に、本発明に至った経緯について説明する。
【００１０】
まず、複数の処理層の畳み込みニューラルネットワーク（Convolutional Neural Network）を実現する従来の演算処理装置の一例の概要を図１および図２を参照して説明する。この演算処理装置は、記憶装置１００と、記憶装置２００と、記憶装置３００と、処理層４００と、処理層５００と、を備えている。記憶装置１００は、７組のアレイＡ１〜Ａ７を有し、各アレイＡｉ（ｉ＝１，・・・，７）は、１１行×１１列に配置されたメモリ素子を有している。アレイＡ１〜Ａ７は、各アレイが配置された面内方向に交差する方向（深さ方向）に、７個配置されている。各アレイＡｉ（ｉ＝１，・・・，７）の第ｊ（ｊ＝１，・・・，１１）行第ｋ（ｋ＝１，・・・、１１）列のメモリ素子をＡｉ（ｊ，ｋ）と表す。このＡｉ（ｊ，ｋ）はアレイＡｉ（ｉ＝１，・・・，７）の第ｊ行第ｋ列のメモリ素子に格納される数値も表す。記憶装置２００は、１０組のアレイＢ１〜Ｂ１０を有し、各アレイＢｉ（ｉ＝１，・・・，１０）は、８行×８列に配置されたメモリ素子を有している。各アレイＢｉ（ｉ＝１，・・・，１０）の第ｊ（ｊ＝１，・・・８）行第ｋ（ｋ＝１，・・・，８）列のメモリ素子をＢｉ（ｊ，ｋ）と表す。このＢｉ（ｊ，ｋ）は、アレイＢｉ（ｉ＝１，・・・，１０）の第ｊ行第ｋ列のメモリ素子に格納される数値も表す。記憶装置３００は、１０組のアレイＣ１〜Ｃ１０を有し、各アレイＣｉ（ｉ＝１，・・・，１０）は、６行×６列に配置されたメモリ素子を有している。各アレイＣｉ（ｉ＝１，・・・，１０）の第ｊ（ｊ＝１，・・・，６）行第ｋ（ｋ＝１，・・・，６）列のメモリ素子をＣｉ（ｊ，ｋ）と表す。このＣｉ（ｊ，ｋ）は、アレイＣｉ（ｉ＝１，・・・，１０）の第ｊ行第ｋ列のメモリ素子に格納される数値も表す。またこの例では、処理層４００は、例えば畳み込み処理を行う層であり、処理層５００は、例えばプーリング（pooling）処理を行う層である。なお、本明細書において、以降では、積和演算処理を畳み込み処理と呼ぶ。畳み込み処理の対象の数値がどの次元方向に配置されているかは問わない。例えば第１方向を１次元、第１方向に第２方向を加えて２次元、更に第３方向（奥行き、深さ方向）を加えて３次元と呼ぶ。そして、畳み込み処理の対象が何次元に配置されているかも問わない。
【００１１】
処理層４００は、例えば４行４列のアレイに配列されメモリ素子からなる図示しない第１乃至第１０の核（kernel）を用いて、記憶装置１００の４行４列のメモリ素子のメモリ素子同士に格納されている数値の積を演算し、これらの積の和を記憶装置２００の対応するアレイの対応するメモリ素子に格納する。なお、第１乃至第１０のそれぞれの核は、Ａ１〜Ａ７と同様に、各アレイが配置された面内方向に交差する方向（深さ方向）に、７個配置されている。すなわち第１乃至第１０の核のそれぞれは、４行４列のアレイが７個存在する。上記第１乃至第１０の核をそれぞれ用いた積和演算を行う。例えば、第１の核を用いた積和演算は以下のように行われる。第１の核における深さ１のメモリ素子に格納された数値と、斜線で示すメモリ素子Ａ１（４，２）〜Ａ１（７，５）との対応するメモリ素子同士に格納されている数値の積を演算し、これらの積の和を記憶装置２００の対応するアレイの対応する斜線で示すメモリ素子Ｂ１（４，２）に格納する。例えば、第１の核における深さ１の第１行第１列のメモリ素子に格納された数値とメモリ素子Ａ１（４，２）に格納された数値との積、第１の核の第２行第１列のメモリ素子に格納された数値とメモリ素子Ａ１（５，２）に格納された数値との積、第１の核の第３行第１列のメモリ素子に格納された数値とメモリ素子Ａ１（６，２）に格納された数値との積、第１の核の第４行第１列のメモリ素子に格納された数値とメモリ素子Ａ１（７，２）に格納された数値との積とをそれぞれ演算する。同様に、第１の核の第２列のメモリ素子にそれぞれ格納された数値とアレイＡ１の第４行第３列〜第７行第３列の対応するメモリ素子に格納された数値との積を演算し、第１の核の第３列のメモリ素子にそれぞれ格納された数値とアレイＡ１の第４行第４列〜第７行第４列の対応するメモリ素子に格納された数値との積を演算し、第１の核の第１行第４列のメモリ素子にそれぞれ格納された数値とアレイＡ１の第４行第５列〜第７行第５列の対応するメモリ素子に格納された数値との積を演算する。その後、それらの積の和、すなわち積和を求める。このような積和演算を第１の核における深さｉ（ｉ＝１，・・・，７）のアレイと、アレイＡｉとの積和を演算し、各々のiに対する積和を求める。この様にして求めた積和の総和をアレイＢ１のメモリ素子に格納する。このような積和演算を第１乃至第１０の核に対してそれぞれ行い、畳み込み処理が完了する。すなわち、第２の核を用いた畳み込み演算の結果をアレイＢ２に格納され、第ｉ（ｉ＝３，・・・、１０）の核を用いた畳み込み演算はアレイＢｉに格納される。
【００１２】
また、処理装層５００は、例えば記憶装置２００の３行３列のメモリ素子、例えば斜線で示すメモリ素子Ｂ１（５，４）〜Ｂ１（７，６）からなる部分アレイに格納されている数値から１つの代表値を演算し、この代表値を記憶装置３００の対応するアレイの対応する斜線で示すメモリ素子Ｃ１（５，４）に格納する。代表値として、最大値または平均値等が用いられる。処理層５００は、記憶装置２００の各アレイＢｉ（ｉ＝１，・・・，１０）における任意の３行３列のメモリ素子に対して同様の演算を行い、演算結果を記憶装置３００の対応するアレイＣｉの対応するメモリ素子に格納する。
【００１３】
このように、従来の演算処理装置においては、各処理層に対応してこの処理層の全ての出力を格納する記憶装置を備えている。そして、各処理層の処理を全て行い、その全ての出力を上記記憶装置に格納する。その後、上記記憶装置に格納されている数値を用いて次の処理層が処理を行っている。このため、処理層毎にその出力の全てを格納する容量を有する記憶装置が存在することが好ましい。それ故に大きな占有面積が必要となり、その結果として製造コストの増大を惹き起こしてしまうという問題点があった。
【００１４】
また、従来の演算処理装置においては、図２に示すように、演算処理装置の外部にある記憶装置すなわち外部記憶装置６００に記憶されている数値を複数の処理に用いる場合、その度ごとに外部記憶装置６００より読み出していた。図２では外部記憶装置６００より読み出した数値に対して処理層６５０によって畳み込み処理を行う場合を例に示している。すなわち、外部記憶装置６００に格納されている数値を読み出して畳み込み処理を施すことに依り得られた結果を、演算処理装置に内蔵されている記憶装置（内部記憶装置）７００のアレイＤ１に格納し、再び外部記憶装置６００に格納されている数値を読み出して畳み込み処理を施すことに依り得られた結果を内部記憶装置７００の次の深さのアレイＤ２に格納し、再び外部記憶装置６００に格納されている数値を読み出して畳み込み処理を施すことに依り得られた結果を内部記憶装置７００の次の深さのアレイＤ３に格納し、という操作を必要な回数に渡って繰り返している。
【００１５】
このように、従来の演算処理装置は、外部記憶装置に格納されている数値を複数の処理に用いる場合すなわち複数回に渡って用いる場合にその度ごとに外部記憶装置より読み出していた。外部記憶装置に格納されている数値を読み出すことは、内部記憶装置に記憶されている数値を読み出すことと比べると読出し時間が長い。それ故に処理に長い時間を要することとなるために速い動作速度が得られず、例えば動体の認識等の速い動作速度の必要となる用途への適用が困難という問題点があった。それを回避するために多数の処理装置を設けて並列処理を行うことは可能ではあるが、それは大きな回路面積が必要となるために製造コストの増大を惹き起こしてしまうという問題点があった。
【００１６】
そこで、本発明者達は、鋭意研究に努めた結果、処理層の出力の一部があれば次の処理の少なくとも一部を開始することが可能な処理層においては、その出力を格納する記憶装置として、その出力の個数よりも少ない個数の記憶装置であれば良いと考えた。また、外部記憶装置の数値を用いて複数の処理を行う処理層においては、外部記憶装置の数値を一時的に格納する記憶装置を設け、処理を行う際にはその一時的に記憶する記憶装置から読出しを行うことにより、外部記憶装置の数値を読み出すことに伴う処理時間を削減して全体としての処理時間を短縮し、動作速度の高速化を図ることができると考えた。
【００１７】
以下に、図面を参照して本発明の実施形態を詳細に説明する。図面に示される数値の配列は説明の為に特定の並び方としているが、その並び方は本質ではなく他の並び方であってもよい。また本発明は以下の実施形態に限定されるものではなく、種々変更して用いることができる。
【００１８】
（第１実施形態）
第１実施形態による演算処理装置を図３および図４に示す。この実施形態の演算処理装置１は、図３に示すように、畳み込みニューラルネットワークを実現する装置であって、読み取り置１０と、記憶装置２０と、処理層３０と、記憶装置４０と、記憶装置５０と、処理層６０と、記憶装置６５と、記憶装置７０と、出力装置８０と、を備えている。読み取り装置１０は、外部記憶装置６００からデータを読み出し、記憶装置２０に格納する。
【００１９】
記憶装置２０は、図４に示すように、７個のアレイＡ１〜Ａ７を有し、各アレイＡｉ（ｉ＝１，・・・，７）は、１１行×１１列に配置されたメモリ素子を有している。すなわち、記憶装置２０は図４における面内方向の大きさが１１×１１で深さが７のメモリを有する。各アレイＡｉ（ｉ＝１，・・・，７）の第ｊ（ｊ＝１，・・・，１１）行第ｋ（ｋ＝１，・・・、１１）列のメモリ素子に格納される数値をＡｉ（ｊ，ｋ）と表す。
【００２０】
記憶装置４０は、図４に示すように、畳み込み処理に用いられる第１乃至第１０の核Ｗ１〜Ｗ１０を記憶する。なお、図４においては、第１の核Ｗ１しか表示していない。第ｉの核Ｗｉ（ｉ＝１，・・・、１０）はそれぞれ、第１乃至第７のアレイＷｉ１〜Ｗｉ７を有し、各アレイＷｉｊ（ｉ＝１，・・・、１０、ｊ＝１，・・・，７）は、４行×４列に配置されたメモリ素子を有している。すなわち、記憶装置４０は図４における面内方向の大きさが４×４で深さが７のアレイＷｉｊ（ｉ＝１，・・・、１０、ｊ＝１，・・・，７）を有する。各アレイＷｉｊ（ｉ＝１，・・・、１０、ｊ＝１，・・・，７）は、４行×４列に配置されたメモリ素子を有している。すなわち、記憶装置４０は図４における面内方向の大きさが４×４で深さが７のアレイを有する。各アレイＷｉｊ（ｉ＝１，・・・、１０、ｊ＝１，・・・，７）の第ｍ（ｍ＝１，・・・，４）行第ｎ（ｎ＝１，・・・、４）列のメモリ素子に格納される数値をＷｉｊ（ｍ，ｎ）と表す。
【００２１】
記憶装置５０は、図４に示すように、８行１列に配置されたメモリ素子Ｍ１〜Ｍ８を有している。
【００２２】
記憶装置６５には、畳み込み処理またはプーリング処理に用いられる核が格納される。
【００２３】
記憶装置７０は、図４に示すように、１０個のアレイＣ１〜Ｃ１０を有し、各アレイＣｉ（ｉ＝１，・・・，１０）は、６行×６列に配置されたメモリ素子を有している。すなわち、記憶装置７０は図４における面内方向の大きさが６×６で深さが１０のメモリを有する。各アレイＣｉ（ｉ＝１，・・・，７）の第ｊ（ｊ＝１，・・・，６）行第ｋ（ｋ＝１，・・・、６）列のメモリ素子に格納される数値をＣｉ（ｊ，ｋ）と表す。
【００２４】
処理層３０は、記憶装置４０の核と、記憶装置２０のアレイとの畳み込み処理を行い、処理結果を記憶装置５０に格納する。処理層６０は、記憶装置５０に格納されたデータに基づいてプーリング処理を行い、処理結果を記憶装置７０に格納する。
【００２５】
（第１畳み込み処理）
次に、処理層３０の第１畳み込み処理について説明する。
【００２６】
記憶装置２０のアレイＡ１〜Ａ７の第１列〜第４列に対する記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１の第１のアレイＷ１１を用いた畳み込み処理について図５Ａ乃至図５Ｑを参照して説明する。
【００２７】
記憶装置２０のアレイＡ１の第１列に対して、記憶装置４０のアレイＷ１１の第１列を用いた畳み込み処理について図５Ａ乃至図５Ｈを参照して説明する。
【００２８】
図５Ａに示す様に、記憶装置２０のアレイＡ１の第１列のメモリ素子に格納されている斜線で示す数値Ａ１（１，１）〜Ａ１（４，１）のそれぞれと、記憶装置４０のアレイＷ１１の第１行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（１，１）との積を演算し、演算結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納する。すなわち、Ｗ１１（１，１）とＡ１（１，１）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ１に格納する。続いてＷ１１（１，１）とＡ１（２，１）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ２に格納する。次にＷ１１（１，１）とＡ１（３，１）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ３に格納する。更にＷ１１（１，１）とＡ１（４，１）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ４に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００２９】
次に図５Ｂに示す様に、記憶装置２０のアレイＡ１の第１列のメモリ素子に格納されている斜線で示す数値Ａ１（２，１）〜Ａ１（５，１）のそれぞれと、記憶装置４０のアレイＷ１１の第２行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（２，１）との積を演算し、これらの積と記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をメモリ素子Ｍ１〜Ｍ４に改めて格納する。すなわち、Ｗ１１（２，１）とＡ１（２，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ１に格納されている数値との和を演算し、この和をメモリ素子Ｍ１に改めて格納する。続いてＷ１１（２，１）とＡ１（３，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ２に格納されている数値との和を演算し、この和をメモリ素子Ｍ２に改めて格納する。次にＷ１１（２，１）とＡ１（４，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ３に格納されている数値との和を演算し、この和をメモリ素子Ｍ３に改めて格納する。更にＷ１１（２，１）とＡ１（５，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ４に格納されている数値との和を演算し、この和をメモリ素子Ｍ４に改めて格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３０】
次に図５Ｃに示す様に、記憶装置２０のアレイＡ１の第１列のメモリ素子に格納されている斜線で示す数値Ａ１（３，１）〜Ａ１（６，１）のそれぞれと、記憶装置４０のアレイＷ１１の第３行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（３，１）との積を演算し、これらの積と記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をメモリ素子Ｍ１〜Ｍ４に改めて格納する。すなわち、Ｗ１１（３，１）とＡ１（３，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ１に格納されている数値との和を演算し、この和をメモリ素子Ｍ１に改めて格納する。続いてＷ１１（３，１）とＡ１（４，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ２に格納されている数値との和を演算し、この和をメモリ素子Ｍ２に改めて格納する。次にＷ１１（３，１）とＡ１（５，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ３に格納されている数値との和を演算し、この和をメモリ素子Ｍ３に改めて格納する。更にＷ１１（３，１）とＡ１（６，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ４に格納されている数値との和を演算し、この和をメモリ素子Ｍ４に改めて格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３１】
次に図５Ｄに示す様に、記憶装置２０のアレイＡ１の第１列のメモリ素子に格納されている斜線で示す数値Ａ１（４，１）〜Ａ１（７，１）のそれぞれと、記憶装置４０のアレイＷ１１の第４行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（４，１）との積を演算し、これらの積と記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をメモリ素子Ｍ１〜Ｍ４に改めて格納する。すなわち、Ｗ１１（４，１）とＡ１（４，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ１に格納されている数値との和を演算し、この和をメモリ素子Ｍ１に改めて格納する。続いてＷ１１（４，１）とＡ１（５，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ２に格納されている数値との和を演算し、この和をメモリ素子Ｍ２に改めて格納する。次にＷ１１（４，１）とＡ１（６，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ３に格納されている数値との和を演算し、この和をメモリ素子Ｍ３に改めて格納する。更にＷ１１（４，１）とＡ１（７，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ４に格納されている数値との和を演算し、この和をメモリ素子Ｍ４に改めて格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３２】
次に図５Ｅに示す様に、記憶装置２０のアレイＡ１の第１列のメモリ素子に格納されている斜線で示す数値Ａ１（５，１）〜Ａ１（８，１）のそれぞれと、記憶装置４０のアレイＷ１１の第１行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（１，１）との積を演算し、演算結果を記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納する。すなわち、Ｗ１１（１，１）とＡ１（５，１）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ５に格納する。続いてＷ１１（１，１）とＡ１（６，１）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ６に格納する。次にＷ１１（１，１）とＡ１（７，１）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ７に格納する。更にＷ１１（１，１）とＡ１（８，１）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ８に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３３】
次に図５Ｆに示す様に、記憶装置２０のアレイＡ１の第１列のメモリ素子に格納されている斜線で示す数値Ａ１（６，１）〜Ａ１（９，１）のそれぞれと、記憶装置４０のアレイＷ１１の第２行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（２，１）との積を演算し、これらの積と記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をメモリ素子Ｍ５〜Ｍ８に改めて格納する。すなわち、Ｗ１１（２，１）とＡ１（６，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ５に格納されている数値との和を演算し、この和をメモリ素子Ｍ５に改めて格納する。続いてＷ１１（２，１）とＡ１（７，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ６に格納されている数値との和を演算し、この和をメモリ素子Ｍ６に改めて格納する。次にＷ１１（２，１）とＡ１（８，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ７に格納されている数値との和を演算し、この和をメモリ素子Ｍ７に改めて格納する。更にＷ１１（２，１）とＡ１（９，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ８に格納されている数値との和を演算し、この和をメモリ素子Ｍ８に改めて格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３４】
次に図５Ｇに示す様に、記憶装置２０のアレイＡ１の第１列のメモリ素子に格納されている斜線で示す数値Ａ１（７，１）〜Ａ１（１０，１）のそれぞれと、記憶装置４０のアレイＷ１１の第３行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（３，１）との積を演算し、これらの積と記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をメモリ素子Ｍ５〜Ｍ８に改めて格納する。すなわち、Ｗ１１（３，１）とＡ１（７，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ５に格納されている数値との和を演算し、この和をメモリ素子Ｍ５に改めて格納する。続いてＷ１１（３，１）とＡ１（８，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ６に格納されている数値との和を演算し、この和をメモリ素子Ｍ６に改めて格納する。次にＷ１１（３，１）とＡ１（９，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ７に格納されている数値との和を演算し、この和をメモリ素子Ｍ７に改めて格納する。更にＷ１１（３，１）とＡ１（１０，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ８に格納されている数値との和を演算し、この和をメモリ素子Ｍ８に改めて格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３５】
次に図５Ｈに示す様に、記憶装置２０のアレイＡ１の第１列のメモリ素子に格納されている斜線で示す数値Ａ１（８，１）〜Ａ１（１１，１）のそれぞれと、記憶装置４０のアレイＷ１１の第４行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（４，１）との積を演算し、これらの積と記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をメモリ素子Ｍ５〜Ｍ８に改めて格納する。すなわち、Ｗ１１（４，１）とＡ１（８，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ５に格納されている数値との和を演算し、この和をメモリ素子Ｍ５に改めて格納する。続いてＷ１１（４，１）とＡ１（９，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ６に格納されている数値との和を演算し、この和をメモリ素子Ｍ６に改めて格納する。次にＷ１１（４，１）とＡ１（１０，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ７に格納されている数値との和を演算し、この和をメモリ素子Ｍ７に改めて格納する。更にＷ１１（４，１）とＡ１（１１，１）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ８に格納されている数値との和を演算し、この和をメモリ素子Ｍ８に改めて格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３６】
次に、記憶装置２０のアレイＡ１の第２列に対して、記憶装置４０のアレイＷ１１の第２列を用いた畳み込み処理について図５Ｉ乃至図５Ｐを参照して説明する。
【００３７】
まず、図５Ｉに示す様に、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（１，２）〜Ａ１（４，２）のそれぞれと、記憶装置４０のアレイＷ１１の第１行第２列のメモリ素子に格納されている斜線で示す数値Ｗ１１（１，２）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ１〜Ｍ４に格納する。すなわち、Ｗ１１（１，２）とＡ１（１，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ１に格納されている数値との和を演算し、この和をメモリ素子Ｍ１に格納する。続いてＷ１１（１，２）とＡ１（２，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ２に格納されている数値との和を演算し、この和をメモリ素子Ｍ２に格納する。次にＷ１１（１，２）とＡ１（３，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ３に格納されている数値との和を演算し、この和をメモリ素子Ｍ３に格納する。更にＷ１１（１，２）とＡ１（４，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ４に格納されている数値との和を演算し、この和をメモリ素子Ｍ４に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３８】
次に、図５Ｊに示す様に、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（２，２）〜Ａ１（５，２）のそれぞれと、記憶装置４０のアレイＷ１１の第２行第２列のメモリ素子に格納されている斜線で示す数値Ｗ１１（２，２）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ１〜Ｍ４に格納する。すなわち、Ｗ１１（２，２）とＡ１（２，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ１に格納されている数値との和を演算し、この和をメモリ素子Ｍ１に格納する。続いてＷ１１（２，２）とＡ１（３，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ２に格納されている数値との和を演算し、この和をメモリ素子Ｍ２に格納する。次にＷ１１（２，２）とＡ１（４，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ３に格納されている数値との和を演算し、この和をメモリ素子Ｍ３に格納する。更にＷ１１（２，２）とＡ１（５，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ４に格納されている数値との和を演算し、この和をメモリ素子Ｍ４に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００３９】
次に、図５Ｋに示す様に、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（３，２）〜Ａ１（６，２）のそれぞれと、記憶装置４０のアレイＷ１１の第３行第２列のメモリ素子に格納されている斜線で示す数値Ｗ１１（３，２）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ１〜Ｍ４に格納する。すなわち、Ｗ１１（３，２）とＡ１（３，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ１に格納されている数値との和を演算し、この和をメモリ素子Ｍ１に格納する。続いてＷ１１（３，２）とＡ１（４，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ２に格納されている数値との和を演算し、この和をメモリ素子Ｍ２に格納する。次にＷ１１（３，２）とＡ１（５，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ３に格納されている数値との和を演算し、この和をメモリ素子Ｍ３に格納する。更にＷ１１（３，２）とＡ１（６，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ４に格納されている数値との和を演算し、この和をメモリ素子Ｍ４に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００４０】
次に、図５Ｌに示す様に、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（４，２）〜Ａ１（７，２）のそれぞれと、記憶装置４０のアレイＷ１１の第４行第２列のメモリ素子に格納されている斜線で示す数値Ｗ１１（４，２）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ１〜Ｍ４に格納する。すなわち、Ｗ１１（４，２）とＡ１（４，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ１に格納されている数値との和を演算し、この和をメモリ素子Ｍ１に格納する。続いてＷ１１（４，２）とＡ１（５，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ２に格納されている数値との和を演算し、この和をメモリ素子Ｍ２に格納する。次にＷ１１（４，２）とＡ１（６，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ３に格納されている数値との和を演算し、この和をメモリ素子Ｍ３に格納する。更にＷ１１（４，２）とＡ１（７，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ４に格納されている数値との和を演算し、この和をメモリ素子Ｍ４に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００４１】
次に、図５Ｍに示す様に、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（５，２）〜Ａ１（８，２）のそれぞれと、記憶装置４０のアレイＷ１１の第１行第２列のメモリ素子に格納されている斜線で示す数値Ｗ１１（１，２）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ５〜Ｍ８に格納する。すなわち、Ｗ１１（１，２）とＡ１（５，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ５に格納されている数値との和を演算し、この和をメモリ素子Ｍ５に格納する。続いてＷ１１（１，２）とＡ１（６，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ６に格納されている数値との和を演算し、この和をメモリ素子Ｍ６に格納する。次にＷ１１（１，２）とＡ１（７，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ７に格納されている数値との和を演算し、この和をメモリ素子Ｍ７に格納する。更にＷ１１（１，２）とＡ１（８，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ８に格納されている数値との和を演算し、この和をメモリ素子Ｍ８に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００４２】
次に、図５Ｎに示す様に、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（６，２）〜Ａ１（９，２）のそれぞれと、記憶装置４０のアレイＷ１１の第２行第２列のメモリ素子に格納されている斜線で示す数値Ｗ１１（２，２）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ５〜Ｍ８に格納する。すなわち、Ｗ１１（２，２）とＡ１（６，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ５に格納されている数値との和を演算し、この和をメモリ素子Ｍ５に格納する。続いてＷ１１（２，２）とＡ１（７，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ６に格納されている数値との和を演算し、この和をメモリ素子Ｍ６に格納する。次にＷ１１（２，２）とＡ１（８，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ７に格納されている数値との和を演算し、この和をメモリ素子Ｍ７に格納する。更にＷ１１（２，２）とＡ１（９，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ８に格納されている数値との和を演算し、この和をメモリ素子Ｍ８に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００４３】
次に、図５Ｏに示す様に、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（７，２）〜Ａ１（１０，２）のそれぞれと、記憶装置４０のアレイＷ１１の第３行第２列のメモリ素子に格納されている斜線で示す数値Ｗ１１（３，２）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ５〜Ｍ８に格納する。すなわち、Ｗ１１（３，２）とＡ１（７，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ５に格納されている数値との和を演算し、この和をメモリ素子Ｍ５に格納する。続いてＷ１１（３，２）とＡ１（８，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ６に格納されている数値との和を演算し、この和をメモリ素子Ｍ６に格納する。次にＷ１１（３，２）とＡ１（９，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ７に格納されている数値との和を演算し、この和をメモリ素子Ｍ７に格納する。更にＷ１１（３，２）とＡ１（１０，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ８に格納されている数値との和を演算し、この和をメモリ素子Ｍ８に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００４４】
次に、図５Ｐに示す様に、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（８，２）〜Ａ１（１１，２）のそれぞれと、記憶装置４０のアレイＷ１１の第４行第２列のメモリ素子に格納されている斜線で示す数値Ｗ１１（４，２）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ５〜Ｍ８に格納する。すなわち、Ｗ１１（４，２）とＡ１（８，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ５に格納されている数値との和を演算し、この和をメモリ素子Ｍ５に格納する。続いてＷ１１（４，２）とＡ１（９，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ６に格納されている数値との和を演算し、この和をメモリ素子Ｍ６に格納する。次にＷ１１（４，２）とＡ１（１０，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ７に格納されている数値との和を演算し、この和をメモリ素子Ｍ７に格納する。更にＷ１１（４，２）とＡ１（１１，２）との積を演算し、この積と記憶装置５０のメモリ素子Ｍ８に格納されている数値との和を演算し、この和をメモリ素子Ｍ８に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００４５】
次に、記憶装置２０のアレイＡ１の第３列に対して記憶装置４０のアレイＷ１１の第３列を用いた畳み込み処理を、図５Ｉ乃至図５Ｐで説明した場合と同様に行う。この場合、例えば、記憶装置２０のアレイＡ１の第３列のメモリ素子に格納されている数値Ａ１（１，３）〜Ａ１（４，３）のそれぞれと、記憶装置４０のアレイＷ１の第１行第３列のメモリ素子に格納されている数値Ｗ１１（１，３）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ１〜Ｍ４に格納する。また、例えば、記憶装置２０のアレイＡ１の第３列のメモリ素子に格納されている数値Ａ１（５，３）〜Ａ１（８，３）のそれぞれと、記憶装置４０のアレイＷ１１の第１行第３列のメモリ素子に格納されている数値Ｗ１１（１，３）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ５〜Ｍ８に格納する。
【００４６】
次に、記憶装置２０のアレイＡ１の第４列に対して記憶装置４０のアレイＷ１１の第４列を用いた畳み込み処理を、図５Ｉ乃至図５Ｐで説明した場合と同様に行う。この場合、例えば、記憶装置２０のアレイＡ１の第４列のメモリ素子に格納されている数値Ａ１（１，４）〜Ａ１（４，４）のそれぞれと、記憶装置４０のアレイＷ１１の第１行第４列のメモリ素子に格納されている数値Ｗ１１（１，４）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ１〜Ｍ４に格納する。また、例えば、記憶装置２０のアレイＡ１の第４列のメモリ素子に格納されている数値Ａ１（５，４）〜Ａ１（８，４）のそれぞれと、記憶装置４０のアレイＷ１１の第１行第４列のメモリ素子に格納されている数値Ｗ１１（１，４）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ５〜Ｍ８に格納する。
【００４７】
以上説明した処理は、記憶装置２０のアレイＡ１の第１列〜第４列に対して記憶装置４０のアレイＷ１１を用いた畳み込み処理である。
【００４８】
次に、記憶装置２０のアレイＡ２の第１列〜第４列に対する記憶装置４０のアレイＷ１２を用いた畳み込み処理について説明する。
【００４９】
まず、記憶装置２０のアレイＡ２の第１列に対して記憶装置４０のアレイＷ１２の第１列を用いた畳み込み処理を、図５Ａ乃至図５Ｈで説明した場合と同様に行う。この場合、例えば、図５Ｑに示すように、記憶装置２０のアレイＡ２の第１列のメモリ素子に格納されている数値Ａ１（１，１）〜Ａ１（４，１）のそれぞれと、記憶装置４０のアレイＷ１２の第１行第１列のメモリ素子に格納されている数値Ｗ１２（１，１）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ１〜Ｍ４に格納する。また、例えば、記憶装置２０のアレイＡ２の第１列のメモリ素子に格納されている数値Ａ２（５，１）〜Ａ２（８，１）のそれぞれと、記憶装置４０のアレイＷ２の第１行第１列のメモリ素子に格納されている数値Ｗ１２（１，１）との積をそれぞれ演算し、これらの積と、記憶装置５０のメモリ素子Ｍ５〜Ｍ８に格納されている数値との和をそれぞれ演算し、これらの和をそれぞれメモリ素子Ｍ５〜Ｍ８に格納する。
【００５０】
次に、記憶装置２０のアレイＡ２の第２列に対して記憶装置４０のアレイＷ１２の第２列を用いた畳み込み処理を、図５Ｉ乃至図５Ｐで説明した場合と同様に行う。その後、記憶装置２０のアレイＡ２の第３列に対して記憶装置４０のアレイＷ１２の第３列を用いた畳み込み処理を、図５Ｉ乃至図５Ｐで説明した場合と同様に行う。続いて、記憶装置２０のアレイＡ２の第４列に対して記憶装置４０のアレイＷ１２の第４列を用いた畳み込み処理を、図５Ｉ乃至図５Ｐで説明した場合と同様に行う。
【００５１】
次に、記憶装置２０のアレイＡ３の第１列〜第４列に対する記憶装置４０のアレイＷ１３を用いた畳み込み処理も、記憶装置２０のアレイＡ２の第１列〜第４列に対する記憶装置４０のアレイＷ２を用いた畳み込み処理と同様に行う。
【００５２】
次に、記憶装置２０のアレイＡ４の第１列〜第４列に対する記憶装置４０のアレイＷ１４を用いた畳み込み処理も、記憶装置２０のアレイＡ２の第１列〜第４列に対する記憶装置４０のアレイＷ１２を用いた畳み込み処理と同様に行う。
【００５３】
次に、記憶装置２０のアレイＡ５の第１列〜第４列に対する記憶装置４０のアレイＷ１５を用いた畳み込み処理も、記憶装置２０のアレイＡ２の第１列〜第４列に対する記憶装置４０のアレイＷ１２を用いた畳み込み処理と同様に行う。
【００５４】
次に、記憶装置２０のアレイＡ６の第１列〜第４列に対する記憶装置４０のアレイＷ１６を用いた畳み込み処理も、記憶装置２０のアレイＡ２の第１列〜第４列に対する記憶装置４０のアレイＷ１２を用いた畳み込み処理と同様に行う。
【００５５】
次に、記憶装置２０のアレイＡ７の第１列〜第４列に対する記憶装置４０のアレイＷ１７を用いた畳み込み処理も、記憶装置２０のアレイＡ２の第１列〜第４列に対する記憶装置４０のアレイＷ１２を用いた畳み込み処理と同様に行う。
【００５６】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【００５７】
この様にして、アレイＡ１〜Ａ７の第１列〜第４列に対する記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いた第１畳み込み処理が完了する。
【００５８】
（第１プーリング処理）
次に、処理層６０の第１プーリング処理について図６Ａ乃至図６Ｆを参照して説明する。この処理層６０は、例えばプーリング処理を行う。なお、以下のプーリング処理は、図１で説明した場合と同様に、第３行第３列のアレイからなる核を用いて行う。この核は記憶装置６５に格納されている。
【００５９】
まず、図６Ａに示す様に、記憶装置５０の斜線で示すメモリ素子Ｍ１、メモリ素子Ｍ２、メモリ素子Ｍ３に格納されている数値のなから最大値を代表値とし、この代表値を記憶装置７０のアレイＣ１のメモリ素子Ｃ１（１，１）に格納する。なお、プーリング処理の代表値として平均値を用いる場合には、メモリ素子Ｍ１、メモリ素子Ｍ２、メモリ素子Ｍ３に格納されている数値の和を演算し、この和をアレイＣ１の斜線で示すメモリ素子Ｃ１（１，１）に格納する。
【００６０】
続いて、図６Ｂに示す様に、斜線で示すメモリ素子Ｍ２、メモリ素子Ｍ３、メモリ素子Ｍ４に格納されている数値から代表値を演算し、この代表値をアレイＣ１の斜線で示すメモリ素子Ｃ１（２，１）に格納する。
【００６１】
図６Ｃに示す様に、斜線で示すメモリ素子Ｍ３、メモリ素子Ｍ４、メモリ素子Ｍ５に格納されている数値から代表値を演算し、この代表値をアレイＣ１の斜線で示すメモリ素子Ｃ１（３，１）に格納する。
【００６２】
図６Ｄに示す様に、斜線で示すメモリ素子Ｍ４、メモリ素子Ｍ５、メモリ素子Ｍ６に格納されている数値から代表値を演算し、この代表値をアレイＣ１の斜線で示すメモリ素子Ｃ１（４，１）に格納する。
【００６３】
図６Ｅに示す様に、斜線で示すメモリ素子Ｍ５、メモリ素子Ｍ６、メモリ素子Ｍ７に格納されている数値から代表値を演算し、この代表値をアレイＣ１の斜線で示すメモリ素子Ｃ１（５，１）に格納する。
【００６４】
図６Ｆに示す様に、斜線で示すメモリ素子Ｍ６、メモリ素子Ｍ７、メモリ素子Ｍ８に格納されている数値から代表値を演算し、この代表値をアレイＣ１の斜線で示すメモリ素子Ｃ１（６，１）に格納する。
【００６５】
以上により、記憶装置２０のアレイＡ１〜Ａ７の第１列〜第４列に対する記憶装置４０に格納された４行４列で深さが７の核Ｗを用いた畳み込み処理が行われたデータに関する第１プーリング処理が完了する。
【００６６】
（第２畳み込み処理）
次に、記憶装置２０のアレイＡ１〜Ａ７の第２列〜第５列に対する記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いた第２畳み込み処理を、図５Ａで説明した処理から図６Ａで説明した第１プーリング処理の直前までを第１畳み込み処理と同様に行う。
【００６７】
この第２畳み込み処理は、処理層３０によって行われる。例えば、まず図７に示すように、、記憶装置２０のアレイＡ１の第２列のメモリ素子に格納されている斜線で示す数値Ａ１（１，２）〜Ａ１（４，２）のそれぞれと、記憶装置４０のアレイＷ１１の第１行第１列のメモリ素子に格納されている斜線で示す数値Ｗ１１（１，１）との積を演算し、演算結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ４に格納する。すなわち、Ｗ１１（１，１）とＡ１（１，２）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ１に格納する。続いてＷ１１（１，１）とＡ１（２，２）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ２に格納する。次にＷ１１（１，１）とＡ１（３，２）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ３に格納する。更にＷ１１（１，１）とＡ１（４，２）との積を演算し、この積を記憶装置５０のメモリ素子Ｍ４に格納する。これらの演算処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【００６８】
以下、図５Ｂで説明した処理から図６Ａで説明したプーリング処理の直前の処理までと同様の処理を行い、記憶装置２０のアレイＡ１〜Ａ７の第２列〜第５列に対する記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いた畳み込み処理を完了する。この畳み込み処理が完了したデータは、記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納される。
【００６９】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【００７０】
（第２プーリング処理）
次に、記憶装置２０のアレイＡ１〜Ａ７の第２列〜第５列に関する第２畳み込み処理が完了し、記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納されたデータについて第２プーリング処理を行う。この第２プーリング処理は、処理層６０によって行われる。
【００７１】
まず、図８Ａに示すように、記憶装置５０のメモリ素子Ｍ１に格納されている数値と、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（１，２）に格納する。その後、メモリ素子Ｍ１に格納されている数値と、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（１，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（１，１）に改めて格納する。なお、この場合、代表値として平均値を用いる場合は、メモリ素子Ｍ１に格納されている数値と、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｃ１（１，１）に格納されている数値との和を演算し、この和をメモリ素子Ｃ１（１，１）に改めて格納する。
【００７２】
その後、図８Ｂに示すように、記憶装置５０のメモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（２，２）に格納する。その後、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値と、アレイＣ１のメモリ素子Ｃ１（２，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（２，１）に改めて格納する。
【００７３】
続いて、図８Ｃに示すように、記憶装置５０のメモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（３，２）に格納する。その後、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値と、アレイＣ１のメモリ素子Ｃ１（３，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（３，１）に改めて格納する。
【００７４】
次に、図８Ｄに示すように、記憶装置５０のメモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（４，２）に格納する。その後、メモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値と、アレイＣ１のメモリ素子Ｃ１（４，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（４，１）に改めて格納する。
【００７５】
その後、図８Ｅに示すように、記憶装置５０のメモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（５，２）に格納する。その後、メモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値と、アレイＣ１のメモリ素子Ｃ１（５，１）に格納された数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（５，１）に改めて格納する。
【００７６】
続いて、図８Ｆに示すように、記憶装置５０のメモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値と、メモリ素子Ｍ８に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（６，２）に格納する。その後、メモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値と、メモリ素子Ｍ８に格納されている数値と、アレイＣ１のメモリ素子Ｃ１（６，１）に格納された数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（６，１）に改めて格納する。
【００７７】
（第３畳み込み処理）
次に、処理層３０によって第３畳み込み処理を行う。この第３畳み込み処理は、記憶装置２０のアレイＡ１〜Ａ７の第３列〜第６列に対して記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いて、第２畳み込み処理と同様に行う。この第３畳み込み処理は、処理層３０によって行われる。この第３畳み込み処理が完了したデータは、記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納される。
【００７８】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【００７９】
（第３プーリング処理）
次に、処理層６０による第３プーリング処理について図９Ａ乃至図９Ｆを参照して説明する。この第３プーリング処理は、第３畳み込み処理が行われて記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納されされたデータについて行う。
【００８０】
まず、図９Ａに示す様に、記憶装置５０のメモリ素子Ｍ１に格納されている数値と、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（１，３）に格納する。続いて、メモリ素子Ｍ１に格納されている数値と、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（１，２）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（１，２）に改めて格納する。その後、メモリ素子Ｍ１に格納されている数値と、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（１，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（１，１）に改めて格納する。これにより、メモリ素子Ｃ１（１，１）には、第１畳み込み処理、第２畳み込み処理、および第３畳み込み処理のそれぞれによって、メモリ素子Ｍ１、メモリ素子Ｍ２、およびメモリ素子Ｍ３に格納された数値から演算された代表値のうちから求められた代表値が格納される。すなわち、第１畳み込み処理によってメモリ素子Ｍ１、メモリ素子Ｍ２、およびメモリ素子Ｍ３に格納された数値から演算された第１代表値と、第２畳み込み処理によってメモリ素子Ｍ１、メモリ素子Ｍ２、およびメモリ素子Ｍ３に格納された数値から演算された第２代表値と、第３畳み込み処理によってメモリ素子Ｍ１、メモリ素子Ｍ２、およびメモリ素子Ｍ３に格納された数値から演算された第３代表値と、から演算された代表値がメモリ素子Ｃ１（１，１）に格納される。また、メモリ素子Ｃ１（１，２）には、第２畳み込み処理、および第３畳み込み処理のそれぞれによって、メモリ素子Ｍ１、メモリ素子Ｍ２、およびメモリ素子Ｍ３に格納された数値から演算された代表値のうちから求められた代表値が格納される。すなわち、第２畳み込み処理によってメモリ素子Ｍ１、メモリ素子Ｍ２、およびメモリ素子Ｍ３に格納された数値から演算された第２代表値と、第３畳み込み処理によってメモリ素子Ｍ１、メモリ素子Ｍ２、およびメモリ素子Ｍ３に格納された数値から演算された第３代表値と、から演算された代表値がメモリ素子Ｃ１（１，２）に格納される。
【００８１】
続いて、図９Ｂに示す様に、記憶装置５０のメモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（２，３）に格納する。続いて、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（２，２）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（２，２）に改めて格納する。その後、メモリ素子Ｍ２に格納されている数値と、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（２，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（２，１）に改めて格納する。
【００８２】
その後、図９Ｃに示す様に、記憶装置５０のメモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（３，３）に格納する。続いて、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（３，２）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（３，２）に改めて格納する。その後、メモリ素子Ｍ３に格納されている数値と、メモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（３，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（３，１）に改めて格納する。
【００８３】
次に、図９Ｄに示す様に、記憶装置５０のメモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（４，３）に格納する。続いて、メモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（４，２）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（４，２）に改めて格納する。その後、メモリ素子Ｍ４に格納されている数値と、メモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（４，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（４，１）に改めて格納する。
【００８４】
続いて、図９Ｅに示す様に、記憶装置５０のメモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（５，３）に格納する。続いて、メモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（５，２）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（５，２）に改めて格納する。その後、メモリ素子Ｍ５に格納されている数値と、メモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（５，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（５，１）に改めて格納する。
【００８５】
その後、図９Ｆに示す様に、記憶装置５０のメモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値と、メモリ素子Ｍ８に格納されている数値とから代表値を演算し、この代表値を記憶装置７０のアレイＣ１の斜線で示すメモリ素子Ｃ１（６，３）に格納する。続いて、メモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値と、メモリ素子Ｍ８に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（６，２）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（６，２）に改めて格納する。その後、メモリ素子Ｍ６に格納されている数値と、メモリ素子Ｍ７に格納されている数値と、メモリ素子Ｍ８に格納されている数値と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（６，１）に格納されている数値とから代表値を演算し、この代表値をアレイＣ１のメモリ素子Ｃ１（６，１）に改めて格納する。
【００８６】
以上により、第３プーリング処理が完了する。このとき、記憶装置７０のアレイＣ１の第３列には、第３畳み込み処理によって得られ記憶装置５０に格納されたデータから演算された第３代表値が格納される。また、記憶装置７０のアレイＣ１の第２列には、第２畳み込み処理によって得られたデータから演算された第２代表値と、上記第３代表値とから演算された新たな第２代表値が格納される。この新たな第２代表値は、同一の行同士における第２代表値と第３代表値とから演算される。更に、記憶装置７０のアレイＣ１の第１列には、第１畳み込み処理によって得られたデータから演算された第１代表値と、第２畳み込み処理によって得られたデータから演算された第２代表値と、上記第３代表値とから演算された新たな第１代表値が格納される。
【００８７】
（第４畳み込み処理）
次に、処理層３０によって第４畳み込み処理を行う。この第４畳み込み処理は、記憶装置２０のアレイＡ１〜Ａ７の第４列〜第７列に対して記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いて、第３畳み込み処理と同様に行う。この第４畳み込み処理は、処理層３０によって行われる。この第４畳み込み処理が完了したデータは、記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納される。
【００８８】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【００８９】
（第４プーリング処理）
次に、処理層６０によって第４プーリング処理を行う。この第４プーリング処理は、前述した第３プーリング処理と同様に行う。第４プーリング処理によって、記憶装置７０のアレイＣ１の第４列には、第４畳み込み処理によって得られ記憶装置５０に格納されたデータから演算された第４代表値が格納される。また、記憶装置７０のアレイＣ１の第３列には、第３畳み込み処理によって得られたデータから演算された第３代表値と、上記第４代表値とから演算された新たな第３代表値が格納される。更に、記憶装置７０のアレイＣ１の第２列には、第２畳み込み処理によって得られたデータから演算された第２代表値と、第２畳み込み処理によって得られたデータから演算された第３代表値と、上記第４代表値とから演算された新たな第２代表値が格納される。
【００９０】
（第５畳み込み処理）
次に、処理層３０によって第５畳み込み処理を行う。この第５畳み込み処理は、記憶装置２０のアレイＡ１〜Ａ７の第５列〜第８列に対して記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いて、第４畳み込み処理と同様に行う。この第５畳み込み処理は、処理層３０によって行われる。この第５畳み込み処理が完了したデータは、記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納される。
【００９１】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【００９２】
（第５プーリング処理）
次に、処理層６０によって第５プーリング処理を行う。この第５プーリング処理は、前述した第４プーリング処理と同様に行う。第５プーリング処理によって、記憶装置７０のアレイＣ１の第５列には、第５畳み込み処理によって得られ記憶装置５０に格納されたデータから演算された第５代表値が格納される。また、記憶装置７０のアレイＣ１の第４列には、第４畳み込み処理によって得られたデータから演算された第４代表値と、上記第５代表値とから演算された新たな第４代表値が格納される。更に、記憶装置７０のアレイＣ１の第３列には、第３畳み込み処理によって得られたデータから演算された第３代表値と、第４畳み込み処理によって得られたデータから演算された第４代表値と、上記第５代表値とから演算された新たな第３代表値が格納される。
【００９３】
（第６畳み込み処理）
次に、処理層３０によって第６畳み込み処理を行う。この第６畳み込み処理は、記憶装置２０のアレイＡ１〜Ａ７の第６列〜第９列に対して記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いて、第５畳み込み処理と同様に行う。この第６畳み込み処理は、処理層３０によって行われる。この第６畳み込み処理が完了したデータは、記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納される。
【００９４】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【００９５】
（第６プーリング処理）
次に、処理層６０によって第６プーリング処理を行う。第６プーリング処理によって、記憶装置７０のアレイＣ１の第６列には、第６畳み込み処理によって得られ記憶装置５０に格納されたデータから演算された第６代表値が格納される。また、記憶装置７０のアレイＣ１の第５列には、第５畳み込み処理によって得られたデータから演算された第５代表値と、上記第６代表値とから演算された新たな第５代表値が格納される。更に、記憶装置７０のアレイＣ１の第４列には、第４畳み込み処理によって得られたデータから演算された第４代表値と、第５畳み込み処理によって得られたデータから演算された第５代表値と、上記第６代表値とから演算された新たな第６代表値が格納される。この状態を図１０に示す。なお、図１０において、アレイＣ１の斜線で示す第１列〜第４列は、全てのプーリング処理が完了した状態を示し、第５列および第６列は、プーリング処理が途中まで行われた状態となっている。
【００９６】
（第７畳み込み処理）
次に、処理層３０によって第７畳み込み処理を行う。この第７畳み込み処理は、記憶装置２０のアレイＡ１〜Ａ７の第７列〜第１０列に対して記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いて、第６畳み込み処理と同様に行う。この第７畳み込み処理は、処理層３０によって行われる。この第７畳み込み処理が完了したデータは、記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納される。
【００９７】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【００９８】
（第７プーリング処理）
次に、処理層６０によって第７プーリング処理を行う。記憶装置７０のアレイＣ１の容量を節約するために、この第７プーリング処理は、第６プーリング処理とは若干異なっている。第７プーリング処理によって、記憶装置７０のアレイＣ１の第５列には、第７畳み込み処理によって得られた第７代表値と、第５畳み込み処理によって得られたデータから演算された第５代表値と、第６畳み込み処理によって得られた第６代表値とから演算された新たな第７代表値が格納される。また、記憶装置７０のアレイＣ１の第６列には、第７畳み込み処理によって得られた第７代表値と、第６畳み込み処理によって得られた第６代表値とから演算された新たな第６代表値が格納される。この第７プーリング処理が完了すると、記憶装置７０のアレイＣ１の第５列は、全てのプーリング処理が完了した状態となり、第６列は、プーリング処理が途中まで行われた状態となっている。
【００９９】
（第８畳み込み処理）
次に、処理層３０によって第８畳み込み処理を行う。この第８畳み込み処理は、記憶装置２０のアレイＡ１〜Ａ７の第８列〜第１１列に対して記憶装置４０に格納された４行４列で深さが７の第１の核Ｗ１を用いて、第７畳み込み処理と同様に行う。この第８畳み込み処理は、処理層３０によって行われる。この第８畳み込み処理が完了したデータは、記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納される。
【０１００】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【０１０１】
（第８プーリング処理）
次に、処理層６０によって第８プーリング処理を行う。記憶装置７０のアレイＣ１の容量を節約するために、この第８プーリング処理は、第６プーリング処理とは若干異なっている。第８プーリング処理によって、記憶装置７０のアレイＣ１の第６列には、第８畳み込み処理によって得られた第８代表値と、第７畳み込み処理によって得られた第７代表値と、第６畳み込み処理によって得られたデータから演算された第６代表値とから演算された新たな第６代表値が格納される。これにより、記憶装置７０のアレイＣ１の第６列は、全てのプーリング処理が完了した状態となる。この状態を図１１に示す。すなわち、記憶装置７０のアレイＣ１の第１〜第６列は斜線で表示されている。この第８プーリング処理が完了した状態で、代表値として最大値を用いた場合は、これで、第１の核Ｗ１を用いた畳み込み処理と全てのプーリング処理が完了する。しかし、代表値として平均値を用いた場合は、アレイＣ１の各メモリ素子に格納された数値を、プーリング処理に用いた核のアレイに含まれるメモリ素子の個数で除算した値をアレイＣ１の各メモリ素子に改めて格納する。すなわち本実施形態では、プーリング処理に用いた核は第３行第３列のアレイであるから、アレイＣ１の各メモリ素子に格納された数値を、９で除算した値をアレイＣ１の各メモリ素子に改めて格納する。
【０１０２】
以上説明したことにより、アレイＡ１〜Ａ７に対する第１の核Ｗ１を用いた畳み込み処理と、この畳み込み処理に続くプーリング処理が完了し、完了したデータは、記憶装置７０のアレイＣ１に格納される。なお、本実施形態では、バイアスＢ１をメモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値に加える処理と、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理とは、各畳み込み処理が終了した直後に行ったが、発火関数処理がＲｅＬＵ関数（Rectified Linear Unit）であり且つプーリング処理の代表値として最大値を用いる場合には、図１１に示す処理が完了した後に行ってもよい。
【０１０３】
次に、アレイＡ１〜Ａ７に対する第ｉの核Ｗｉを（ｉ＝２，・・・，１０）を用いた畳み込み処理と、それぞれの畳み込み処理に続くプーリング処理を、第１の核Ｗ１を用いた場合と同様に行い、完了したデータは、記憶装置７０のアレイＣｉに格納される。なお、このとき、各畳み込み処理が完了し、この畳み込み処理に対応するプーリング処理を行う前に、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢiを（i＝２・・・，１０）を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【０１０４】
以上により、アレイＡ１〜Ａ７に対する第１乃至第１０の核Ｗ１〜Ｗ１０のそれぞれを用いた畳み込み処理と、それぞれの畳み込み処理に続くプーリング処理が完了し、畳み込みニューラルネットワークを実現することができる。すなわち、本実施形態においては、記憶装置５０の容量が第８行第１列のメモリ素子で済み、占有面積が小さい演算処理装置を提供することができる。
【０１０５】
なお、各畳み込み処理において、並列処理を行うことにより、処理時間の短縮を図ることができる。
【０１０６】
また、第１乃至第１０の核Ｗ１〜Ｗ１０を用いた畳み込み処理は、記憶装置５０の容量を８行１０列にすることにより、それらの処理を並列に処理することが可能になるので処理時間の短縮を図ることができる。
【０１０７】
以上説明したように、第１実施形態によれば、記憶装置５０の容量が従来の場合に比べて小さくすることが可能となり、占有面積が小さい演算処理装置を提供することができる。
【０１０８】
（第２実施形態）
次に、第２実施形態による演算処理装置について図１２乃至図１４Ｍを参照して説明する。第１実施形態においては、処理層６０は、プーリング処理を行った。処理層６０が行う処理はプーリング処理に限るものではなく、例えば畳み込み処理であったとしても同様の効果が得られる。この第２実施形態は、処理層６０の処理が畳み込み処理であるとして説明する。
【０１０９】
この第２実施形態の演算処理装置を図１２に示す。この第２実施形態の演算処理装置は、第１実施形態の演算処理装置において、記憶装置６５には、畳み込み処理に用いられる核が格納されている。この第２実施形態の演算処理装置においては、処理層６０によって行われる畳み込み処理は、図１２に示すように、記憶装置６５に格納された第１乃至第１０の核Ｘ１〜Ｘ１０が用いられ、各核Ｘｉ（ｉ＝１，・・・，１０）は１０個の第３行第３列のアレイＸｉ１〜Ｘｉ１０を有している。なお、図１２においては、第１の核Ｘ１のみを表示している。アレイＸｉｊ（ｉ＝１．・・・，１０、ｊ＝１，・・・，１０）の第ｍ（ｍ＝１，・・・，３）行、第ｎ（ｎ＝１，・・・．３）列のメモリ素子をＸｉｊ（ｍ、ｎ）と表し、このメモリ素子に格納されている数値もＸｉｊ（ｍ、ｎ）と表す。
【０１１０】
以下に、第２実施形態の演算処理装置の処理動作について説明する。
【０１１１】
（処理層３０による第１畳み込み処理）
まず、処理層３０によって第１実施形態で説明した第１畳み込み処理を行う。すなわち、図４に示す記憶装置４０に格納されている第１の核Ｗ１を用いて、記憶装置２０に格納されているアレイＡ１〜Ａ７の第１乃至第４列のメモリ素子に対して畳み込み処理を行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。
【０１１２】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【０１１３】
（処理層６０による第１畳み込み処理）
次に、図１３Ａに示す様に、第１の核Ｘ１のアレイＸ１１の第１行第１列のメモリ素子に格納されている数値Ｘ１１（１，１）と、メモリ素子Ｍ１に格納されている数値との積を記憶装置７０のアレイＣ１の第１行第１列のメモリ素子Ｃ１（１，１）に格納する。続いて、数値Ｘ１１（１，１）と、メモリ素子Ｍ２に格納されている数値との積をアレイＣ１のメモリ素子Ｃ１（２，１）に格納する。その後、数値Ｘ１１（１，１）と、メモリ素子Ｍ３に格納されている数値との積をアレイＣ１のメモリ素子Ｃ１（３，１）に格納する。これらの処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１１４】
次に、図１３Ｂに示す様に、アレイＸ１１の第２行第１列のメモリ素子に格納されている数値Ｘ１１（２，１）とメモリ素子Ｍ２に格納されている数値との積を演算するとともに、この積と、記憶装置７０のアレイＣ１のメモリ素子Ｃ１（１，１）に格納されている数値との和を改めてメモリ素子Ｃ１（１，１）に格納する。続いて、数値Ｘ１１（２，１）とメモリ素子Ｍ３に格納されている数値との積を演算するとともに、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（２，１）に格納されている数値との和を改めてメモリ素子Ｃ１（２，１）に格納する。その後、数値Ｘ１１（２，１）とメモリ素子Ｍ４に格納されている数値との積を演算するとともに、この積とアレイＣ１のメモリ素子Ｃ１（３，１）に格納されている数値との和を改めてメモリ素子Ｃ１（３，１）に格納する。これらの処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１１５】
次に、図１３Ｃに示す様に、アレイＸ１１の第３行第１列のメモリ素子に格納されている数値Ｘ１１（３，１）とメモリ素子Ｍ３に格納されている数値との積を演算し、この積とアレイＣ１のメモリ素子Ｃ１（１，１）に格納されている数値との和を改めてメモリ素子Ｃ１（１，１）に格納する。続いて、数値Ｘ１１（３，１）とメモリ素子Ｍ４に格納されている数値との積を演算するとともに、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（２，１）に格納されている数値との和を改めてメモリ素子Ｃ１（２，１）に格納する。その後、数値Ｘ１１（３，１）とメモリ素子Ｍ５に格納されている数値との積を演算するとともに、この積とアレイＣ１のメモリ素子Ｃ１（３，１）に格納されている数値との和を改めてメモリ素子Ｃ１（３，１）に格納する。これらの処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１１６】
次に、図１３Ｄに示す様に、アレイＸ１１の第１行第１列のメモリ素子に格納されている数値Ｘ１１（１，１）とメモリ素子Ｍ４に格納されている数値との積を演算し、この積をメモリ素子Ｃ１（４，１）に格納する。続いて、数値Ｘ１１（１，１）とメモリ素子Ｍ５に格納されている数値との積を演算し、この積をメモリ素子Ｃ１（５，１）に格納する。その後、数値Ｘ１１（１，１）とメモリ素子Ｍ６に格納されている数値との積を演算し、この積をメモリ素子Ｃ１（６，１）に格納する。これらの処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１１７】
次に、図１３Ｅに示す様に、アレイＸ１１の第２行第１列のメモリ素子に格納されている数値Ｘ１１（２，１）とメモリ素子Ｍ５に格納されている数値との積を演算し、この積とアレイＣ１のメモリ素子Ｃ１（４，１）に格納されている数値との和を改めてメモリ素子Ｃ１（４，１）に格納する。続いて、数値Ｘ１１（２，１）とメモリ素子Ｍ６に格納されている数値との積を演算し、この積とアレイＣ１のメモリ素子Ｃ１（５，１）に格納されている数値との和を改めてメモリ素子Ｃ１（５，１）に格納する。その後、数値Ｘ１１（２，１）とメモリ素子Ｍ７に格納されている数値との積を演算し、この積とアレイＣ１のメモリ素子Ｃ１（６，１）に格納されている数値との和を改めてメモリ素子Ｃ１（６，１）に格納する。これらの処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１１８】
次に、図１３Ｆに示すように、アレイＸ１１の第３行第１列のメモリ素子に格納されている数値Ｘ１１（３，１）とメモリ素子Ｍ６に格納されている数値との積を演算し、この積とアレイＣ１のメモリ素子Ｃ１（４，１）に格納されている数値との和を改めてメモリ素子Ｃ１（４，１）に格納する。続いて、数値Ｘ１１（３，１）とメモリ素子Ｍ７に格納されている数値との積を演算し、この積とアレイＣ１のメモリ素子Ｃ１（５，１）に格納されている数値との和を改めてメモリ素子Ｃ１（５，１）に格納する。その後、数値Ｘ１１（３，１）とメモリ素子Ｍ８に格納されている数値との積を演算し、この積とアレイＣ１のメモリ素子Ｃ１（６，１）に格納されている数値との和を改めてメモリ素子Ｃ１（６，１）に格納する。これらの処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１１９】
以上の処理に依り、図１３Ｇに示す様に、第１の核Ｘ１のアレイＸ１１の第１列を用いた記憶装置５０のメモリ素子Ｍ１〜Ｍ８に対する畳み込み処理が完了し、この処理結果が記憶装置７０のアレイＣ１の第１列のメモリ素子Ｃ１（１，１）〜Ｃ１（６，１）に格納される。
【０１２０】
次に、第１の核Ｘ１のアレイＸ１１の代わりに第２の核Ｘ２のアレイＸ２１の第１列を用いた記憶装置５０のメモリ素子Ｍ１〜Ｍ８に対する畳み込み処理を行い、この処理結果を記憶装置７０のアレイＣ２の第１列のメモリ素子Ｃ２（１，１）〜Ｃ２（６，１）に格納する。この畳み込み処理は、図１３Ａ乃至図１３Ｇで説明した処理において、第１の核Ｘ１のアレイＸ１１〜Ｘ１１０の第１列を第２の核Ｘ２のアレイＸ２１〜Ｘ２１０の第１列にそれぞれ換えて行う。
【０１２１】
以下、同様に、第１の核Ｘ１を第ｉの核Ｘｉ（ｉ＝３，・・・，１０）にそれぞれ換えて記憶装置５０のメモリ素子Ｍ１〜Ｍ８の畳み込み処理を行い、この処理結果を記憶装置７０のアレイＣｉの第１列のメモリ素子Ｃｉ（１，１）〜Ｃｉ（６，１）に格納する。
【０１２２】
以上により、第１の核Ｗ１を用いた処理層３０によるアレイＡ１〜Ａ７の第１列〜第４列に関する畳み込み処理と、第１乃至第１０の核Ｘ１〜Ｘ１０のそれぞれの第１列を用いた処理層６０によるメモリ素子Ｍ１〜Ｍ８に対する畳み込み処理が完了し、処理された結果が記憶装置７０のアレイＣ１〜Ｃ１０のそれぞれの第１列に格納される。この状態を図１３Ｈに示す。
【０１２３】
なお、図１３Ａ乃至図１３Ｈで説明した処理において、異なる核Ｘｍ（ｍ＝１，・・・，１０）に対する処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１２４】
（処理層３０による第２畳み込み処理）
次に、第２の核Ｗ２を用いた処理層３０によるアレイＡ１〜Ａ７の第１列〜第４列に関する畳み込み処理を図１２で説明した場合と同様に行い、この畳み込み処理の結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。この畳み込み処理は、図１２に説明する畳み込み処理において、核Ｗ１を核Ｗ２に置き換えて行われる。
【０１２５】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ２を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【０１２６】
（処理層６０による第２畳み込み処理）
次に、この第２畳み込み処理は、第２の核Ｗ２を用いたアレイＡ１〜Ａ７の第１列〜第４列に関する畳み込み処理の結果に対して、第１乃至第１０の核Ｘ１〜Ｘ１０を用いて行う。
【０１２７】
まず、図１３Ｉに示す様に、記憶装置６５に格納されている第１の核Ｘ１のアレイＸ１２の第１行第１列に格納されている数値Ｘ１２（１，１）とメモリ素子Ｍ１に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（１，１）に格納されている数値との和を改めてメモリ素子Ｃ１（１，１）に格納する。続いて、数値Ｘ１２（１，１）とメモリ素子Ｍ２に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（２，１）に格納されている数値との和を改めてメモリ素子Ｃ１（２，１）に格納する。その後、数値Ｘ１２（１，１）とメモリ素子Ｍ３に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（３，１）に格納されている数値との和を改めてメモリ素子Ｃ１（３，１）に格納する。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１２８】
続いて、図１３Ｂで説明した処理において、数値Ｘ１１（２，１）を数値Ｘ１２（２、１）に置き換えて行う。すなわち、アレイＸ１２の第２行第１列に格納されている数値Ｘ１２（２，１）とメモリ素子Ｍ２に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（１，１）に格納されている数値との和を改めてメモリ素子Ｃ１（１，１）に格納する。続いて、数値Ｘ１２（２，１）とメモリ素子Ｍ３に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（２，１）に格納されている数値との和を改めてメモリ素子Ｃ１（２，１）に格納する。その後、数値Ｘ１２（２，１）とメモリ素子Ｍ４に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（３，１）に格納されている数値との和を改めてメモリ素子Ｃ１（３，１）に格納する。
【０１２９】
その後、図１３Ｃで説明した処理において、数値Ｘ１１（３，１）を数値Ｘ１２（３、１）に置き換えて行う。
【０１３０】
次に、図１３Ｄで説明した処理において、数値Ｘ１１（１，１）を数値Ｘ１２（１、１）に置き換えて行う。すなわち、図１３Ｊに示す様に、数値Ｘ１２（１、１）とメモリ素子Ｍ４に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（４，１）に格納されている数値との和を改めてメモリ素子Ｃ１（４，１）に格納する。続いて、数値Ｘ１２（１，１）とメモリ素子Ｍ５に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（５，１）に格納されている数値との和を改めてメモリ素子Ｃ１（５，１）に格納する。その後、数値Ｘ１２（１，１）とメモリ素子Ｍ６に格納されている数値との積を演算し、この積と記憶装置７０のアレイＣ１のメモリ素子Ｃ１（６，１）に格納されている数値との和を改めてメモリ素子Ｃ１（６，１）に格納する。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１３１】
続いて、図１３Ｅで説明した処理において、数値Ｘ１１（２，１）を数値Ｘ１２（２、１）に置き換えて行う。
【０１３２】
その後、図１３Ｆで説明した処理において、数値Ｘ１１（３，１）を数値Ｘ１２（３、１）に置き換えて行う。
【０１３３】
以上により、メモリ素子Ｍ１〜Ｍ８に対する核Ｘ１のアレイＸ１２の第１列を用いた畳み込み処理が完了する。
【０１３４】
次に、メモリ素子Ｍ１〜Ｍ８に対する第ｍ（ｍ＝２，・・・，１０）の核ＸｍのアレイＸｍ２の第１列を用いた畳み込み処理を図１３Ａ乃至図１３Ｈで説明した場合と同様に行う。
【０１３５】
以上の処理結果は、記憶装置７０のアレイＣｉ（ｉ＝１，・・・，１０）の第１列のメモリ素子Ｃｉ（１，１）〜Ｃｉ（６，１）（ｉ＝１，・・・，１０）に格納される。すなわち、第２の核Ｗ２を用いた処理層３０によるアレイＡ１〜Ａ７の第１列〜第４列に関する畳み込み処理と、第１乃至第１０の核Ｘ１〜Ｘ１０のアレイＸ１２〜Ｘ１０２のそれぞれの第１列を用いた処理層６０によるメモリ素子Ｍ１〜Ｍ８に対する畳み込み処理が完了し、処理された結果が記憶装置７０のアレイＣｉ（ｉ＝１，・・・，１０）の第１列のメモリ素子Ｃｉ（１，１）〜Ｃｉ（６，１）（ｉ＝１，・・・，１０）に格納される。
【０１３６】
なお、上記処理において、アレイＸｍ２（ｍ＝１，・・・，１０）を用いた畳み込み処理は、異なるアレイを用いた処理において、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１３７】
（処理層３０による第３畳み込み処理）
次に、第３の核Ｗ３を用いた処理層３０によるアレイＡ１〜Ａ７の第１列〜第４列に関する畳み込み処理を図１２で説明した場合と同様に行い、この畳み込み処理の結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。この畳み込み処理は、図１２に説明する畳み込み処理において、核Ｗ１を核Ｗ３に置き換えて行われる。
【０１３８】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ３を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【０１３９】
（処理層６０による第３畳み込み処理）
続いて、第３の核Ｗ３を用いたアレイＡ１〜Ａ７の第１列〜第４列に関する畳み込み処理の結果に対する第１乃至第１０の核Ｘ１〜Ｘ１０のアレイＸ１３〜Ｘ１０３のそれぞれの第１列を用いた第３畳み込み処理を図１３Ｉおよび図１３Ｊで説明した処理層６０による第２畳み込み処理と同様に行う。
【０１４０】
第３の核Ｗ３を用いた処理層３０によるアレイＡ１〜Ａ７の第１列〜第４列に関する畳み込み処理と、第１乃至第１０の核Ｘ１〜Ｘ１０のアレイＸ１３〜Ｘ１０３のそれぞれの第１列を用いた処理層６０によるメモリ素子Ｍ１〜Ｍ８に対する畳み込み処理が完了し、この畳み込み処理された結果が図１３Ｋに示すように、記憶装置７０のアレイＣｉ（ｉ＝１，・・・，１０）の第１列のメモリ素子Ｃｉ（１，１）〜Ｃｉ（６，１）（ｉ＝１，・・・，１０）に格納される。
【０１４１】
（処理層３０の畳み込み処理および処理層６０による畳み込み処理）
同様にして、第ｉの核Ｗｉ（ｉ＝４，・・・，１０）を用いた処理層３０によるアレイＡ１〜Ａ７の第１列〜第４列に関する畳み込み処理を図１２に示す場合と同様に行い、この畳み込み処理の結果がメモリ素子Ｍ１〜Ｍ８に記憶される。このとき、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢｉが（ｉ＝１，・・・，１０）を加えられ、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納される。
【０１４２】
続いて、メモリ素子Ｍ１〜Ｍ８に対する第１乃至第１０の核Ｘ１〜Ｘ１０のアレイＸ１ｉ〜Ｘ１０ｉのそれぞれの第１列を用いた第３畳み込み処理を、図１３Ｉおよび図１３Ｊで説明した処理層６０による第２畳み込み処理と同様に行う。
【０１４３】
これらの処理をｉ＝４，・・・，１０の各々に対して順次、行う。
【０１４４】
以上により、第ｉの核Ｗｉ（ｉ＝１，・・・，１０）を用いた処理層３０によるアレイＡ１〜Ａ７の第１列〜第４列に関するそれぞれの畳み込み処理と、これらの畳み込み処理のそれぞれに対する第１乃至第１０の核Ｘ１〜Ｘ１０のアレイＸ１ｉ〜Ｘ１０ｉのそれぞれの第１列を用いた処理層６０によるメモリ素子Ｍ１〜Ｍ８に対する畳み込み処理が完了し、この結果が図１３Ｌに示すように、記憶装置７０のアレイＣ１〜Ｃ１０のそれぞれの第１列に格納される。
【０１４５】
（処理層３０による畳み込み処理）
次に、図４に示す記憶装置４０に格納されている第１の核Ｗ１を用いて、記憶装置２０におけるアレイＡ１〜Ａ７の第２乃至第５列のメモリ素子の畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。
【０１４６】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【０１４７】
（処理層６０による畳み込み処理）
次に、核Ｘ１のアレイＸ１１のメモリ素子Ｘ１１（ｉ，１）（ｉ＝１，・・・，６）を用いて、図１３Ａ乃至図１３Ｆで説明した処理と同様に、処理層６０による畳み込み処理を行い、処理結果を記憶装置のアレイＣ１の第２列のメモリ素子Ｃ１（１，２）〜Ｃ１（６，２）にそれぞれ格納する。続いてＸ１１（ｉ，２）（ｉ＝１，・・・，６）を用いて、図１３Ａ乃至図１３Ｆで説明した処理と同様に、処理層６０による畳み込み処理を行い、処理結果をメモリ素子Ｃ１（ｉ、１）に格納されている数値に加算し、この加算された数値をメモリ素子Ｃ１（ｉ、１）に改めて格納する。
【０１４８】
以上により、メモリ素子Ｍ１〜Ｍ８に対する第１の核Ｘ１のアレイＸ１１の第２列を用いた畳み込み処理が完了する。この処理結果を図１４Ａに示す。
【０１４９】
次に、第ｉ（ｉ＝２，・・・，１０）の核ＸｉのアレイＸｉ１の第２列を用いた畳み込み処理を、アレイＸ１１の第２列を用いて説明した場合と同様に行い、処理結果をそれぞれ記憶装置７０のアレイＣｉの第１列のメモリ素子Ｃｉ（１，１）〜Ｃｉ（６，１）に格納されている数値に加算しこれらの和をメモリ素子Ｃｉ（１，１）〜Ｃｉ（６，１）に改めて格納する。そしてアレイＸｉ１の第１列を用いた畳み込み処理を、アレイＸ１１の第１列を用いて説明した場合と同様に行い、処理結果を記憶装置のアレイＣｉの第２列のメモリ素子Ｃｉ（１，２）〜Ｃｉ（６，２）に格納する。この処理結果を図１４Ｂに示す。図１４Ｂは、核Ｗ１を用いてアレイＡ１〜Ａ７の第２行乃至第５列に関して畳み込み処理を行い、これらの畳み込み処理に対して核Ｘｉ（ｉ＝２，・・・，１０）のアレイＸｉ１の第１列と第２列とを用いた畳み込み処理の結果を示す。図１４Ａおよび図１４Ｂで説明した処理の内の相異なる核に対する処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１５０】
（処理層３０による畳み込み処理）
次に、第２の核Ｗ２を用いて記憶装置２０におけるアレイＡ１〜Ａ７の第２乃至第５列のメモリ素子に対する畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ２を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【０１５１】
（処理層６０による畳み込み処理）
次に、第１の核Ｘ１のアレイＸ１２の第１列を用いてメモリ素子Ｍ１〜Ｍ８に対して畳み込みを行い、処理結果を記憶装置７０のアレイＣ１の第２列のメモリ素子Ｃ１（１，２）〜Ｃ１（６、２）に格納されている数値との和をそれぞれ演算し第２列のメモリ素子Ｃ１（１，２）〜Ｃ１（６、２）に改めて格納する。続いてアレイＸ１２の第２列を用いてメモリ素子Ｍ１〜Ｍ８に対して畳み込みを行い、処理結果と対応するアレイＣ１の第１列のメモリ素子に格納されている値との和を演算し、それらの和を対応するアレイＣ１の第１列のメモリ素子に改めて格納する。
【０１５２】
同様に、第ｉ（ｉ＝２，・・・，１０）の核ＸｉのアレイＸｉ２の第１列と第２列とを用いてメモリ素子Ｍ１〜Ｍ８に対して畳み込みを行い、上記処理結果とアレイＣｉの第２列のメモリ素子Ｃｉ（１，２）〜Ｃｉ（６、２）に格納されている数値との和をそれぞれ演算し、それらの和を対応するアレイＣｉの第２列のメモリ素子に改めて格納するとともに、上記処理結果とアレイＣｉの第１列のメモリ素子Ｃｉ（１，１）〜Ｃｉ（６、１）に格納されている数値との和をそれぞれ演算し、それらの和を対応するアレイＣｉの第１列のメモリ素子に改めて格納する。
【０１５３】
以上により、第１の核Ｗ１を用いたアレイＡ１〜Ａ７の第２乃至第５列のメモリ素子に対する畳み込み処理の結果がメモリ素子Ｍ１〜Ｍ８に格納され、これらのメモリ素子Ｍ１〜Ｍ８に対する第ｉ（ｉ＝２，・・・，１０）の核ＸｉのアレイＸｉ２の第１列と第２列とを用いた畳み込み処理が完了する。
【０１５４】
（処理層３０および処理層６０による畳み込み処理）
次に、第ｉ（ｉ＝２，・・・，１０）の核Ｗｉを用いてアレイＡ１〜Ａ７の第２乃至第５列のメモリ素子に対する畳み込み処理を同様に行い、これらの畳み込み処理のそれぞれに対して第ｊの核Ｘｊの（ｊ＝１，・・・，１０）アレイＸｊｉの第１列と第２列とを用いて畳み込み処理を処理層６０によって行い、これらの処理結果は、記憶装置７０のアレイＣｉの第１列および第２列に格納される。この処理結果を図１４Ｃに示す。
【０１５５】
（処理層３０による畳み込み処理）
次に、図４に示す記憶装置４０に格納されている第１の核Ｗ１を用いて、記憶装置２０に格納されているアレイＡ１〜Ａ７の第３乃至第６列のメモリ素子に対して畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。
【０１５６】
続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢ１を加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。
【０１５７】
（処理層６０による畳み込み処理）
次に、メモリ素子Ｍ１〜Ｍ８に対する第１の核Ｘ１のアレイＸ１１の第３列を用いた畳み込み処理を図１３Ａ乃至図１３Ｆで説明した処理と同様に行う。この処理結果は、図１４Ｄに示すように、記憶装置７０に格納されたアレイＣ１の第３列、第２列、第１列に格納される。なお、このアレイＣ１の第３列には、第１の核Ｘ１のアレイＸ１１の第１列を用いた畳み込み処理が格納され、第２列のメモリ素子Ｃ１（１，２）〜Ｃ１（６，２）に記憶された数値と第１の核Ｘ１のアレイＸ１１の第２列を用いた畳み込み処理の結果との和が改めて第２列のメモリ素子Ｃ１（１，２）〜Ｃ１（６，２）に格納され、アレイＣ１の第３列のメモリ素子Ｃ１（１，３）〜Ｃ１（６，３）に格納された数値と第１の核Ｘ１のアレイＸ１１の第３列を用いた畳み込み処理の結果との和が改めてアレイＣ１の第３列のメモリ素子Ｃ１（１，３）〜Ｃ１（６，３）に格納される。
【０１５８】
続いて、メモリ素子Ｍ１〜Ｍ８に対して第１の核Ｘ１のアレイＸ１１を第ｉ（ｉ＝２，・・・，１０）の核ＸｉのアレイＸｉ１の第１列から第３列に置き換えた畳み込み処理を図１４Ｄで説明した場合と同様に行う。この処理結果を図１４Ｅに示す。なお、図１４Ｄ、１４Ｅで説明した処理の内の相異なるアレイＸｍ１（ｍ＝１，・・・，１０）に対する処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１５９】
（処理層３０および処理層６０による畳み込み）
次に、記憶装置４０に格納されている第ｉ（ｉ＝２、・・・，１０）の核Ｗｉを用いて、記憶装置２０に格納されているアレイＡ１〜Ａ７の第３乃至第６列のメモリ素子に対して畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢｉを加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。続いて、第ｉの核Ｗｉ（ｉ＝２、・・・，１０）を用いて行われた畳み込み処理のそれぞれに対して、第ｊ（ｊ＝２，・・・，１０）の核ＸｊのアレイＸｊｉの第１列から第３列を用いた畳み込み処理を図１４Ｄおよび図１４Ｅで説明した場合と同様に行い、処理結果をアレイＣｉの第３列、第２列、第１列に格納する。この処理結果を図１４Ｆに示す。このとき、アレイＣｉ（ｉ＝１，・・・，１０）の第１列の各メモリ素子Ｃｉ（１，１）〜Ｃｉ（６、１）に対してバイアス値Ｙｉを加算し、必要に応じて発火関数の処理を施した値を改めてＣｉ（１，１）〜Ｃｉ（６、１）に格納する。
【０１６０】
以上により、第ｉの核Ｗｉ（ｉ＝１、・・・，１０）を用いて行われた畳み込み処理のそれぞれに対して、第ｊ（ｊ＝１，・・・，１０）の核ＸｊのアレイＸｊｉの第１列から第３列を用いた畳み込み処理が図１４Ｄおよび図１４Ｅで説明した場合と同様に行われ、処理結果がアレイＣｉの第３列、第２列、第１列に格納される。
【０１６１】
次に、記憶装置４０に格納されている第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いて、記憶装置２０に格納されているアレイＡ１〜Ａ７の第４乃至第７列のメモリ素子に対して畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢｉを加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。その後、図１４Ｄ乃至図１４Ｆで説明した場合と同様に、第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いたアレイＡ１〜Ａ７の第４乃至第７のメモリ素子に対して行われた畳み込み処理の結果それぞれに対して第ｊの核Ｘｊ（ｊ＝１，・・・，１０）を用いて畳み込み処理を処理層６０によって行い、これらの処理結果は、記憶装置７０のアレイＣｊの第４列、第３列、および第２列に格納される。
【０１６２】
次に、記憶装置４０に格納されている第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いて、記憶装置２０に格納されているアレイＡ１〜Ａ７の第５乃至第８列のメモリ素子に対して畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢｉを加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。その後、図１４Ｄ乃至図１４Ｆで説明した場合と同様に、第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いたアレイＡ１〜Ａ７の第５乃至第８のメモリ素子に対して行われた畳み込み処理の結果それぞれに対して第ｊの核Ｘｊ（ｊ＝１，・・・，１０）を用いて畳み込み処理を処理層６０によって行い、これらの処理結果は、記憶装置７０のアレイＣｊの第５列、第４列、および第３列に格納される。
【０１６３】
次に、記憶装置４０に格納されている第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いて、記憶装置２０に格納されているアレイＡ１〜Ａ７の第６乃至第９列のメモリ素子に対して畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢｉを加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。その後、図１４Ｄ乃至図１４Ｆで説明した場合と同様に、第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いたアレイＡ１〜Ａ７の第６乃至第９のメモリ素子に対して行われた畳み込み処理の結果それぞれに対して第ｊの核Ｘｊ（ｊ＝１，・・・，１０）を用いて畳み込み処理を処理層６０によって行い、これらの処理結果は、記憶装置７０のアレイＣｊの第６列、第５列、および第４列に格納される。ここまでの処理の結果を図１４Ｇに示す。
【０１６４】
次に、記憶装置４０に格納されている第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いて、記憶装置２０に格納されているアレイＡ１〜Ａ７の第７乃至第１０列のメモリ素子に対して畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスｉを加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。その後、図１４Ｄ乃至図１４Ｆで説明した場合と同様に、アレイＡ１〜Ａ７の第７乃至第１０列のメモリ素子に対して行われた畳み込み処理の結果それぞれに対して第ｊの核Ｘｊ（ｊ＝１，・・・，１０）を用いて畳み込み処理を処理層６０によって行い、これらの処理結果は、記憶装置７０のアレイＣｊの第６列および第５列に格納される。このとき、アレイＣ１の第６列および第５列にはそれぞれ、処理層６０による畳み込み処理結果が加算され、その加算結果がアレイＣ１の第６列および第５列に改めて格納される。この処理結果を図１４Ｈに示す。
【０１６５】
次に、図１４Ｈで説明した処理において、第１の核Ｘ１を第ｉ（ｉ＝２，・・・，１０）の核Ｘｉに置き換えた処理を行う。この処理結果を図１４Ｉに示す。すなわち、アレイＣｍ（ｍ＝２，・・・，１０）の第５列および第６列には、新たな数値が格納される。なお、図１４Ｈおよび図１４Ｉで説明した処理の内、相異なる核Ｘｉ（ｉ＝１，・・・，１０）に対する処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１６６】
以上の処理により、図１４Ｊに示す様にＣｉ（ｉ＝１，・・・，１０）の第５列および第６列に新たな数値が格納される。
【０１６７】
次に、記憶装置４０に格納されている第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いて、記憶装置２０に格納されているアレイＡ１〜Ａ７の第８乃至第１１列のメモリ素子に対して畳み込み処理を処理層３０によって行い、処理結果を記憶装置５０のメモリ素子Ｍ１〜Ｍ８に格納する。続いて、処理層３０によって、メモリ素子Ｍｋ（１≦ｋ≦８）に格納されている数値の各々にバイアスＢｉを加え、例えばＲｅＬＵ関数（Rectified Linear Unit）等の発火関数処理を必要に応じて施し、改めてメモリ素子Ｍｋに格納する。その後、第ｉ（ｉ＝１，・・・，１０）の核Ｗｉを用いたアレイＡ１〜Ａ７の第８乃至第１１のメモリ素子に対して行われた畳み込み処理の結果それぞれに対して、図１３Ａ乃至図１３Ｆで説明した処理において、第１の核Ｘ１のアレイＸ１１を第１の核Ｘ１のアレイＸ１ｉに置き換えて畳み込み処理を行う。この畳み込み処理は、この畳み込み処理の結果がアレイＣ１の第６列のメモリ素子に格納された数値に加えられ、この和がアレイＣ１の第６列のメモリ素子に改めて格納される。この処理の結果を図１４Ｋに示す。
【０１６８】
次に、図１４Ｋで説明した処理において、第１の核Ｘ１のアレイＸ１ｉ（ｉ＝１，・・・，１０）の第３列を第ｍ（ｍ＝２，・・・，１０）の核ＸｍのアレイＸｍｉの第３列に置き換えて畳み込み処理を行い、処理結果がアレイＣｍの第６列のアレイＣ１の第６列のメモリ素子に格納された数値に加えられ、この和がアレイＣ１の第６列のメモリ素子に改めて格納される。この処理の結果を図１４Ｌに示す。
【０１６９】
図１４Ｋおよび図１４Ｌで説明した処理の内、相異なる核Ｘｉ（ｉ＝１，・・・，１０）に対する処理は並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１７０】
次に、図１４Ｊで説明した処理に続く処理において、第１の核Ｗ１のアレイＷ１ｈ（ｈ＝１，・・・，１０）を第ｎの核Ｗｎ（ｎ＝２，・・・，１０）のアレイＷｎｈに置き換えて畳み込み処理を行い、この畳み込み処理のそれぞれの結果に対して第ｍの核ＸｍのアレイＸｍｎを用いた畳み込みを処理層６０によって行う。この処理結果をアレイＣｍ（ｍ＝２，・・・，１０）の第６列のメモリ素子に格納されている数値に加えられ、この和がアレイＣｍ（ｍ＝２，・・・，１０）の第６列のメモリ素子に改めて格納される。そして、アレイＣｍ（ｍ＝１，・・・，１０）の第６列のメモリ素子に格納されている数値にバイアス値Ｙｍを加算し、必要に応じて例えばRectified Linear Unit等の発火関数の処理を施した値を改めてアレイＣｍ（ｍ＝１，・・・，１０）の第６列のメモリ素子に改めて格納する。この処理結果を図１４Ｍに示す。
【０１７１】
以上により、処理層３０による畳み込み処理と、この畳み込み処理のそれぞれに対する処理層６０による畳み込み処理が施された数値がアレイＣｍ（ｍ＝１，・・・，１０）のメモリ素子Ｃｍ（ｉ，ｊ）（ｉ，ｊ＝１，・・・，６）に格納される。
【０１７２】
また、第１または第２実施形態においては、畳み込み処理の施されるアレイの大きさが１１×１１で深さが７、畳み込み処理の核のアレイの大きさが４×４であり、続くプーリング処理ないし畳み込み処理に用いられる核のアレイの大きさが３×３の場合を例に取って説明したが、これらのサイズに必然性はなく、これらとは異なるサイズの場合にも同様の効果が得られることは無論である。畳み込み処理の核の深さに関しても同様である。
【０１７３】
また、第１または第２実施形態においては、畳み込み処理に於いてもプーリング処理においても、それらの処理を施す核の移動（ｓｔｒｉｄｅ）は数値一つ分ずつ、すなわち移動が１の場合を例に取って説明したが、移動が１であることに必然性はなく移動が２以上の場合にも同様の効果が得られることは無論である。
【０１７４】
また、第１または第２実施形態においては、発火関数の処理を図６Ａを用いて説明した処理の直前に行っているが、例えば発火関数処理がRectified Linear Unit処理であり且つプーリング処理が最大値の抽出である場合等、発火関数処理をプーリング処理の後に行っても等価な結果の得られる処理の場合には、プーリング処理の後に行っても同様の効果が得られることは無論である。
【０１７５】
また、第１または第２実施形態においては、発火関数の処理としてRectified Linear Unit処理を施す場合を例に取って説明したが、Rectified Linear Unit処理に限るものではなく、例えばｓｉｇｍｏｉｄ関数処理等の他の処理を施した場合にも同様の効果が得られることは無論である。
【０１７６】
また、第１または第２実施形態においてはパッディング（ｐａｄｄｉｎｇ）処理、すなわちアレイに於いて既存の数値の周囲にゼロを補う処理、には言及していないが、パッディング処理を行った場合にも同様の効果が得られることは無論である。
【０１７７】
また、第１または第２本実施形態においては、特定の層の出力を格納する記憶装置の個数（アレイの個数）は、その層の出力（アレイ）の一列分の個数に等しい場合を例に取って説明したが、その個数がその層の出力（アレイ）の一列分の個数に等しい場合に限るものではく、その層の出力の一列分の個数以上であれば同様の効果が得られることは無論である。但し、その層の出力の一列分の個数に等しい場合には記憶装置の個数の削減の効果が最も大きくなるという利点が得られる。
【０１７８】
また、第１または第２実施形態においては、処理層３０の出力を格納する記憶装置として、処理層３０の出力の１列分を格納する個数のアレイを備えた記憶装置を有するとしているが、例えば図１５に示す様に処理層３０の出力（アレイ）の１列分の個数に、２以上の整数を乗じた個数の記憶装置５０Ａを有していてもよい。その様にすると第２実施形態において図６Ａを用いて説明した処理より前に説明した処理ないしそれに於いて必要な置き換えを行った処理、ないし第２実施形態における処理の内、相異なる核を持つ処理の、乗じた整数個までの処理を並列に行うことが可能となるので処理時間の短縮が図られるという利点が得られる。
【０１７９】
図１５には乗ずる整数として、処理層３０の出力（アレイ）の個数を取った場合が例示してあるが、乗ずる整数として処理層３０の出力（アレイ）の個数を取る必然性はなく、それとは異なる整数を取ったとしても同様の効果が得られることは無論である。但し、乗ずる整数として処理層３０の出力（アレイ）の個数以上の整数を取ると全深さに渡る処理を並列に行うことが可能であるために処理時間の短縮が図られるので好ましい。また、乗ずる整数として処理層３０の出力（アレイ）の個数のある約数以上の整数を取ると、上記個数の約数分だけの並列処理を行うことが可能であり且つその並列処理の全てに渡って無駄なく処理を行うことが可能であるので好ましい。
【０１８０】
また、第１または第２実施形態においては核のアレイの大きさが、その層（アレイ）に対する処理結果が出力される層のアレイの大きさの約数である場合が示されているが、このことは本質ではなく核のアレイの大きさとその層に対する処理結果の出力される層のアレイの大きさとの間に倍数または約数関係が存在しない場合でも同様の効果が得られることは無論である。
【０１８１】
第１または第２実施形態においては処理層３０の出力を格納する記憶装置の個数は、処理層３０の出力の１列分と等しい個数の記憶装置を有するとしており、それは図の縦の方向に並んでいるとしているが、その配置は本質ではなく例えば図１６に示す様にそれが横に並んだ記憶装置５０Ｂを用いたとしても同様の効果が得られることは無論である。その場合には図５Ａ〜図１４Ｍを用いて説明した処理において図中の行方向と列方向とを入れ替えた処理を施せばよい。
【０１８２】
また、図１５には１列のアレイが縦（図面の奥行き方向）に並んだ記憶装置５０Ａが用いられたが、図１７に示す様にアレイが横に並んだ記憶装置５０Ｃを用いても同様の効果が得られることは無論である。
【０１８３】
以上説明したように、第２実施形態によれば、記憶装置５０の容量が従来の場合に比べて小さくすることが可能となり、占有面積が小さい演算処理装置を提供することができる。
【０１８４】
（第３実施形態）
第３実施形態による演算処理装置を図１８に示す。この第３実施形態の演算処理装置は、外部記憶装置６００からデータを読み出し、演算処理装置内の記憶装置７００に格納する。この記憶装置７００に格納されたデータ（数値）に対して、第１実施形態で説明した畳み込み処理を行い、処理結果を演算処理装置内の記憶装置８００に格納する。すなわち、第１または第２実施形態において、記憶装置２０を記憶装置７００に置き換えた構成を有している。
【０１８５】
外部記憶装置６００は、図１８に示すように、アレイＥ１〜Ｅ３を備え、各アレイＥｉ（ｉ＝１，２．３）は１５行１５列のメモリ素子を有する。畳み込み処理に用いられる核Ｗｉ（ｉ＝１，・・・．７）は、アレイＷｉ１〜Ｗｉ３を有し、各アレイＷｉｊ（ｊ＝１，２，３）は５行５列のメモリ素子を有する。
【０１８６】
記憶装置７００は、外部記憶装置６００と同じサイズのアレイＦ１〜Ｆ３を有し、各アレイＦｉ（ｉ＝１，２．３）は１５行１５列のメモリ素子を有する。また、記憶装置８００は、アレイＧ１〜Ｇ７を有し、各アレイＧｉ（ｉ＝１，・・・．７）は１１行１１列のメモリ素子を有する。
【０１８７】
一方、アレイＥ１〜Ｅ３を有する外部記憶装置６００の配列に対して核Ｗを用いて図２で説明した従来の畳み込み処理を行うと、外部記憶装置６００に格納されている数値の配列を７回、読み出す必要がある。
【０１８８】
これに対して、第３実施形態では、外部記憶装置６００に格納されている数値の配列を先ず記憶装置７００にアレイＦ１〜Ｆ３として格納し、アレイＧ１〜Ｇ７を有する記憶装置８００に格納するための畳み込み処理は、記憶装置７００に格納されているアレイＦ１〜Ｆ３に対して行われる。それ故、７回の数値の配列の読み出しは記憶装置７００に格納されているＦ１〜Ｆ３に対して行われる。
【０１８９】
一般に、記憶装置からの読み出し時間は、外部記憶装置からの読み出し時間に比べて短い。それ故、第３実施形態においては、従来の場合と比較して処理時間が短縮され、その結果として高速動作が実現される。
【０１９０】
第３実施形態においては、外部記憶装置６００に格納された数値のアレイＥ１〜Ｅ３を改めて格納するための記憶装置７００はアレイＥ１〜Ｅ３と等しいサイズを持つとしたが、このことに限るものではなく、アレイＥ１〜Ｅ３と異なるサイズを持つとしてもよい。アレイＥ１〜Ｅ３と同じかそれ以上のサイズを持つとしても同様の効果が得られることは無論である。但し、アレイＥ１〜Ｅ３と同じサイズを持つとした場合には、記憶装置の容量が少なくて済むという他の利点が得られる。
【０１９１】
（第１変形例）
この第１変形例による演算処理装置を図１９に示す。この第１変形例の演算処理装置は、図１８に示す第３実施形態の演算処理装置において、記憶装置７００がアレイＦ１〜Ｆ３を備え、各アレイＦｉ（ｉ＝１，２，３）は１５行５列のメモリ素子を有している。また、畳み込み処理に用いられる核は、第１乃至第７の核Ｗ１〜Ｗ７を有している。第ｉ（ｉ＝１，・・・，７）の核ＷｉはアレイＷｉ１、Ｗｉ２、Ｗｉ３を有し、各アレイＷｉｊは（ｊ＝１，・・・，３）は、５行５列のメモリ素子を有する。特に図１９に示す様に、図中に示す行方向ないし奥行き方向にはアレイＥ１〜Ｅ３と等しいサイズないし深さ（図１９では３）を持ち且つ列方向には畳み込み処理に用いる核のサイズと等しい大きさを持つとしてもよい。この様にすると記憶装置の数が削減されるので回路面積の削減が図られるという他の利点が得られる。
【０１９２】
次に、第１変形例の演算処理装置における畳み込み処理の動作について図２０乃至図２２Ｋを参照して説明する。以下の説明においては、各アレイＥｉ（ｉ＝１，２，３）の第ｍ行第ｎ列のメモリ素子は、Ｅｉ（ｍ，ｎ）と表される。また各アレイＦｉ（ｉ＝１，２，３）の第ｍ行第ｎ列のメモリ素子は、Ｆｉ（ｍ，ｎ）と表される。各アレイＧｉ（ｉ＝１，・・・，７）の第ｍ行第ｎ列のメモリ素子は、Ｇｉ（ｍ，ｎ）と表される。第ｉ（ｉ＝１，・・・，７）の核Ｗｉは、アレイＷｉ１〜Ｗｉ３を有し、各アレイＷｉｊ（ｊ＝１，２，３）のメモリ素子第ｍ行第ｎ列のメモリ素子は、Ｗｉｊ（ｍ，ｎ）と表される。
【０１９３】
まず、図２０に示す様に、外部記憶装置６００のアレイＥｉ（ｉ＝１，２，３）の第１行〜第１５行かつ第１列〜第５列のメモリ素子Ｅｉ（１、１）〜Ｅｉ（１５，１）、Ｅｉ（１、２）〜Ｅｉ（１５，２）、Ｅｉ（１，３）〜Ｅｉ（１５，３）、Ｅｉ（１、４）〜Ｅｉ（１５，４）、Ｅｉ（１，５）〜Ｅｉ（１５，５）に格納されている数値を読み出し、記憶装置７００のアレイＦｉの第１行〜第１５行かつ第１列〜第５列のメモリ素子Ｆｉ（１、１）〜Ｆｉ（１５，１）、Ｆｉ（１、２）〜Ｆｉ（１５，２）、Ｆｉ（１，３）〜Ｆｉ（１５，３）、Ｆｉ（１、４）〜Ｆｉ（１５，４）、Ｆｉ（１，５）〜Ｆｉ（１５，５）に格納する。なお、以下の説明においては、例えば、メモリ素子Ｅｉ（１、１）は、このメモリ素子に格納されている数値をも表す。他のメモリ素子も同様である。
【０１９４】
次に、図２１Ａに示すように、第１の核Ｗ１におけるアレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されている数値と、記憶装置７００のアレイＦ１の第１行第１列のメモリ素子Ｆ１１（１，１）との積を演算し、この積を記憶装置８００のアレイＧ１の第１行第１列のメモリ素子Ｇ１１（１，１）に格納する。続いて、アレイＷ１１のメモリ素子Ｗ１１（１，１）に格納されている数値と、アレイＦ１の第２行第１列のメモリ素子Ｆ１１（２，１）との積を演算し、この積をアレイＧ１の第２行第１列のメモリ素子Ｇ１１（２，１）に格納する。続いて、アレイＷ１１のメモリ素子Ｗ１１（１，１）に格納されている数値と、アレイＦ１の第３行第１列のメモリ素子Ｆ１１（３，１）との積を演算し、この積をアレイＧ１の第３行第１列のメモリ素子Ｇ１１（３，１）に格納する。また、アレイＷ１１のメモリ素子Ｗ１１（１，１）に格納されている数値と、アレイＦ１の第４行第１列のメモリ素子Ｆ１１（４，１）に格納されている数値との積を演算し、この積をアレイＧ１の第４行のメモリ素子Ｇ１１（４、１）に格納する。引き続き、アレイＷ１１のメモリ素子Ｗ１１（１，１）に格納されている数値と、アレイＦ１の第５行第１列のメモリ素子Ｆ１１（５、１）に格納されいる数値との積を演算し、この積をアレイＧ１の第５行第１列のメモリ素子Ｇ１１（５，１）に格納する。以上の処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１９５】
次に、図２１Ｂに示すように、核Ｗ１におけるアレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されている数値と、記憶装置７００のアレイＦ１の第２行第１列のメモリ素子Ｆ１１（２，１）との積を演算し、この積と、記憶装置８００のアレイＧ１の第１行第１列のメモリ素子Ｇ１１（１，１）に格納されている数値との和を演算し、この和を改めてメモリ素子Ｇ１１（１，１）に格納する。続いて、アレイＷ１１のメモリ素子Ｗ１１（２，１）に記憶されている数値と、アレイＦ１の第３行第１列のメモリ素子Ｆ１１（３，１）との積を演算し、この積と、記憶装置８００のアレイＧ１の第２行第１列のメモリ素子Ｇ１１（２，１）に格納されている数値との和を演算し、この和を改めてメモリ素子Ｇ１１（２，１）に格納する。その後、アレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されている数値と、アレイＦ１の第４行第１列のメモリ素子Ｆ１１（４，１）との積を演算し、この積と、記憶装置８００のアレイＧ１の第３行第１列のメモリ素子Ｇ１１（３，１）に格納されている数値との和を演算し、この和を改めてメモリ素子Ｇ１１（３，１）に格納する。また、アレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されている数値と、アレイＦ１の第５行第１列のメモリ素子Ｆ１１（５，１）との積を演算し、この積と、記憶装置８００のアレイＧ１の第４行第１列のメモリ素子Ｇ１１（４，１）に格納されている数値との和を演算し、この和を改めてメモリ素子Ｇ１１（４，１）に格納する。引き続き、アレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されている数値と、と、アレイＦ１の第６行第１列のメモリ素子Ｆ１１（６，１）との積を演算し、この積と、記憶装置８００のアレイＧ１の第５行第１列のメモリ素子Ｇ１１（５，１）に格納されている数値との和を演算し、この和を改めてメモリ素子Ｇ１１（５，１）に格納する。以上の処理を並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０１９６】
以下、第１実施形態において図５Ａ〜５Ｑで説明した処理と同様に、記憶装置７００のアレイＦ１〜Ｆ３に対する第１の核Ｗ１におけるアレイＷ１１〜Ｗ１３を用いた畳み込み処理を行う。その後、アレイＧ１の第１列のメモリ素子Ｇ１（１，１）〜Ｇ１（１１，１）にそれぞれバイアス値Ｂ１を加え、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧ１の第１列のメモリ素子Ｇ１（１，１）〜Ｇ１（１１，１）にそれぞれ格納する。これにより、図２１Ｃに示すように、記憶装置８００のアレイＧ１の第１列のメモリ素子Ｇ１（１，１）〜Ｇ１（１１，１）には、第１の核Ｗ１を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第１乃至第５列に対する畳み込み処理が完了したデータが格納される。
【０１９７】
次に、図２１Ａ乃至２１Ｃで説明した処理において、第１の核Ｗ１を第２の核Ｗ２に置き換えて畳み込み処理を行う。これにより、畳み込み処理結果が記憶装置８００のアレイＧ２の第１列のメモリ素子Ｇ２（１，１）〜Ｇ２（１１，１）に格納される。その後、アレイＧ２の第１列のメモリ素子Ｇ２（１，１）〜Ｇ２（１１，１）にそれぞれバイアス値Ｂ２を加え、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧ２の第１列のメモリ素子Ｇ２（１，１）〜Ｇ２（１１，１）にそれぞれ格納する。これにより、図２１Ｄに示すように、記憶装置８００のアレイＧ２の第１列のメモリ素子Ｇ２（１，１）〜Ｇ２（１１、１）には、第２の核Ｗ２を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第１乃至第５列に対する畳み込み処理が完了したデータが格納される。
【０１９８】
続いて図２１Ａ乃至２１Ｃで説明した処理において、第１の核Ｗ１を第ｉ（ｉ＝３，・・・，７）の核Ｗｉに置き換えて畳み込み処理を行う。これにより、畳み込み処理結果が記憶装置８００の第ｉ（ｉ＝３，・・・，７）のアレイＧｉの第１列のメモリ素子Ｇｉ（１，１）〜Ｇｉ（１１，１）に格納される。その後、アレイＧｉの第１列のメモリ素子Ｇｉ（１，１）〜Ｇｉ（１１，１）にそれぞれバイアス値Ｂｉを加え、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧｉの第１列のメモリ素子Ｇｉ（１，１）〜Ｇｉ（１１，１）にそれぞれ格納する。これにより、図２１Ｅに示すように、記憶装置８００の第ｉ（ｉ＝１，・・・，７）のアレイＧｉの第１列のメモリ素子Ｇｉ（１，１）〜Ｇｉ（１１、１）には、第１乃至第７の核Ｗ１〜Ｗ７を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第１乃至第５列に対する畳み込み処理が完了したデータが格納される。
【０１９９】
次に、図２２Ａに示すように、外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれの第６列のデータを読み出し、記憶装置７００のアレイＦ１〜Ｆ３の第１列のメモリ素子に格納されているデータと置き換える。このとき、記憶装置７００のアレイＦ１〜Ｆ３の第２乃至第５列のメモリ素子には、前の処理によって外部記憶装置６００のアレイＥ１〜Ｅ３の第２列乃至第５列から読み出されたデータが格納されている。
【０２００】
続いて、図２１Ａ乃至２１Ｄで説明した処理において、アレイＦ１〜Ｆ３のそれぞれのデータに対して、第１乃至第７の核Ｗ１〜Ｗ７のアレイを用いて、畳み込み処理を行い、処理結果を記憶装置８００のアレイＧ１〜Ｇ７の第２列のメモリ素子に格納する。なお、この畳み込み処理においては、図２２Ｂに示すように、第ｉ（ｉ＝１，・・・，７）の核ＷｉのアレイＷｉｊの（ｊ＝１，２，３）の第１列のメモリ素子と記憶装置のアレイＦｊの第２列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第２列のメモリ素子と記憶装置のアレイＦｊの第３列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第３列のメモリ素子と記憶装置のアレイＦｊの第４列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第４列のメモリ素子と記憶装置のアレイＦｊの第５列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第５列のメモリ素子と記憶装置のアレイＦｊの第１列の対応するメモリ素子との積和が演算される。第ｉ（ｉ＝１，・・・，７）の核Ｗｉと記憶装置７００のアレイＦｊ（ｊ＝１，２，３）との積和は記憶装置８００のアレイＧｉの第２列のメモリ素子に格納される。
【０２０１】
その後、各アレイＧｉ（ｉ＝１，・・・，７）の第２列のメモリ素子Ｇｉ（１，２）〜Ｇｉ（１１，２）に格納されている数値にバイアス値Ｂｉを加算し、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧｉの第２列のメモリ素子Ｇｉ（１，２）〜Ｇｉ（１１，２）にそれぞれ格納する。これにより、図２２Ｂに示すように、記憶装置８００の第ｉ（ｉ＝１，・・・，７）のアレイＧｉの第２列のメモリ素子Ｇｉ（１，２）〜Ｇｉ（１１、２）には、第１乃至第７の核Ｗ１〜Ｗ７を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第２乃至第６列に対する畳み込み処理が完了したデータが格納される。
【０２０２】
次に、図２２Ｃに示すように、外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれの第７列のデータを読み出し、記憶装置７００のアレイＦ１〜Ｆ３の第２列のメモリ素子に格納されているデータと置き換える。このとき、記憶装置７００のアレイＦ１〜Ｆ３の第３乃至第５列のメモリ素子には、外部記憶装置６００のアレイＥ１〜Ｅ３の第３列乃至第５列から読み出されたデータが格納され、記憶装置７００のアレイＦ１〜Ｆ３の第１および第２列のメモリ素子には、外部記憶装置６００のアレイＥ１〜Ｅ３の第６列および第７列から読み出されたデータが格納される。
【０２０３】
続いて、図２１Ａ乃至２１Ｄで説明した処理において、アレイＦ１〜Ｆ３のそれぞれのデータに対して、第１乃至第７の核Ｗ１〜Ｗ７のアレイを用いて、畳み込み処理を行い、処理結果を記憶装置８００のアレイＧ１〜Ｇ７の第３列のメモリ素子に格納する。なお、この畳み込み処理においては、図２２Ｄに示すように、第ｉ（ｉ＝１，・・・，７）の核ＷｉのアレイＷｉｊの（ｊ＝１，２，３）の第１列のメモリ素子と記憶装置のアレイＦｊの第３列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第２列のメモリ素子と記憶装置のアレイＦｊの第４列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第３列のメモリ素子と記憶装置のアレイＦｊの第５列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第４列のメモリ素子と記憶装置のアレイＦｊの第１列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第５列のメモリ素子と記憶装置のアレイＦｊの第２列の対応するメモリ素子との積和が演算される。第ｉ（ｉ＝１，・・・，７）の核Ｗｉと記憶装置７００のアレイＦｊ（ｊ＝１，２，３）との積和は記憶装置８００のアレイＧｉの第３列のメモリ素子に格納される。
【０２０４】
その後、各アレイＧｉ（ｉ＝１，・・・，７）の第３列のメモリ素子Ｇｉ（１，３）〜Ｇｉ（１１，３）に格納されている数値にバイアス値Ｂｉを加算し、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧｉの第３列のメモリ素子Ｇｉ（１，３）〜Ｇｉ（１１，３）にそれぞれ格納する。これにより、図２２Ｄに示すように、記憶装置８００の第ｉ（ｉ＝１，・・・，７）のアレイＧｉの第３列のメモリ素子Ｇｉ（１，３）〜Ｇｉ（１１、３）には、第１乃至第７の核Ｗ１〜Ｗ７を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第３乃至第７列に対する畳み込み処理が完了したデータが格納される。
【０２０５】
次に、図２２Ｅに示すように、外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれの第８列のデータを読み出し、記憶装置７００のアレイＦ１〜Ｆ３の第３列のメモリ素子に格納されているデータと置き換える。このとき、記憶装置７００のアレイＦ１〜Ｆ３の第４および第５列のメモリ素子には、外部記憶装置６００のアレイＥ１〜Ｅ３の第４列および第５列から読み出されたデータが格納され、記憶装置７００のアレイＦ１〜Ｆ３の第１乃至第３列のメモリ素子には、外部記憶装置６００のアレイＥ１〜Ｅ３の第６乃至第８列から読み出されたデータが格納される。
【０２０６】
続いて、図２１Ａ乃至２１Ｄで説明した処理において、アレイＦ１〜Ｆ３のそれぞれのデータに対して、第１乃至第７の核Ｗ１〜Ｗ７のアレイを用いて、畳み込み処理を行い、処理結果を記憶装置８００のアレイＧ１〜Ｇ７の第４列のメモリ素子に格納する。なお、この畳み込み処理においては、図２２Ｆに示すように、第ｉ（ｉ＝１，・・・，７）の核ＷｉのアレイＷｉｊの（ｊ＝１，２，３）の第１列のメモリ素子と記憶装置のアレイＦｊの第４列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第２列のメモリ素子と記憶装置のアレイＦｊの第５列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第３列のメモリ素子と記憶装置のアレイＦｊの第１列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第４列のメモリ素子と記憶装置のアレイＦｊの第２列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第５列のメモリ素子と記憶装置のアレイＦｊの第３列の対応するメモリ素子との積和が演算される。第ｉ（ｉ＝１，・・・，７）の核Ｗｉと記憶装置７００のアレイＦｊ（ｊ＝１，２，３）との積和は記憶装置８００のアレイＧｉの第４列のメモリ素子に格納される。
【０２０７】
その後、各アレイＧｉ（ｉ＝１，・・・，７）の第４列のメモリ素子Ｇｉ（１，４）〜Ｇｉ（１１，４）に格納されている数値にバイアス値Ｂｉを加算し、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧｉの第４列のメモリ素子Ｇｉ（１，４）〜Ｇｉ（１１，４）にそれぞれ格納する。これにより、図２２Ｆに示すように、記憶装置８００の第ｉ（ｉ＝１，・・・，７）のアレイＧｉの第４列のメモリ素子Ｇｉ（１，４）〜Ｇｉ（１１、４）には、第１乃至第７の核Ｗ１〜Ｗ７を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第４乃至第８列に対する畳み込み処理が完了したデータが格納される。
【０２０８】
次に、図２２Ｇに示すように、外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれの第９列のデータを読み出し、記憶装置７００のアレイＦ１〜Ｆ３の第４列のメモリ素子に格納されているデータと置き換える。このとき、記憶装置７００のアレイＦ１〜Ｆ３の第５列のメモリ素子には、外部記憶装置６００のアレイＥ１〜Ｅ３の第５列から読み出されたデータが格納され、記憶装置７００のアレイＦ１〜Ｆ３の第１乃至第４列のメモリ素子には、外部記憶装置６００のアレイＥ１〜Ｅ３の第６乃至第９列から読み出されたデータが格納される。
【０２０９】
続いて、図２１Ａ乃至２１Ｄで説明した処理において、アレイＦ１〜Ｆ３のそれぞれのデータに対して、第１乃至第７の核Ｗ１〜Ｗ７のアレイを用いて、畳み込み処理を行い、処理結果を記憶装置８００のアレイＧ１〜Ｇ７の第５列のメモリ素子に格納する。なお、この畳み込み処理においては、図２２Ｈに示すように、第ｉ（ｉ＝１，・・・，７）の核ＷｉのアレイＷｉｊの（ｊ＝１，２，３）の第１列のメモリ素子と記憶装置のアレイＦｊの第５列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第２列のメモリ素子と記憶装置のアレイＦｊの第１列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第３列のメモリ素子と記憶装置のアレイＦｊの第２列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第４列のメモリ素子と記憶装置のアレイＦｊの第３列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第５列のメモリ素子と記憶装置のアレイＦｊの第４列の対応するメモリ素子との積和が演算される。第ｉ（ｉ＝１，・・・，７）の核Ｗｉと記憶装置７００のアレイＦｊ（ｊ＝１，２，３）との積和は記憶装置８００のアレイＧｉの第５列のメモリ素子に格納される。
【０２１０】
その後、各アレイＧｉ（ｉ＝１，・・・，７）の第５列のメモリ素子Ｇｉ（１，５）〜Ｇｉ（１１，５）に格納されている数値にバイアス値Ｂｉを加算し、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧｉの第５列のメモリ素子Ｇｉ（１，５）〜Ｇｉ（１１，５）にそれぞれ格納する。これにより、図２２Ｈに示すように、記憶装置８００の第ｉ（ｉ＝１，・・・，７）のアレイＧｉの第５列のメモリ素子Ｇｉ（１，５）〜Ｇｉ（１１、５）には、第１乃至第７の核Ｗ１〜Ｗ７を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第５乃至第９列に対する畳み込み処理が完了したデータが格納される。
【０２１１】
次に、図２２Ｉに示すように、外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれの第１０列のデータを読み出し、記憶装置７００のアレイＦ１〜Ｆ３の第５列のメモリ素子に格納されているデータと置き換える。このとき、記憶装置７００のアレイＦ１〜Ｆ３の第１乃至第４列のメモリ素子には、外部記憶装置６００のアレイＥ１〜Ｅ３の第５乃至第９列から読み出されたデータが格納される。
【０２１２】
続いて、図２１Ａ乃至２１Ｄで説明した処理において、アレイＦ１〜Ｆ３のそれぞれのデータに対して、第１乃至第７の核Ｗ１〜Ｗ７のアレイを用いて、畳み込み処理を行い、処理結果を記憶装置８００のアレイＧ１〜Ｇ７の第６列のメモリ素子に格納する。なお、この畳み込み処理においては、図２２Ｊに示すように、第ｉ（ｉ＝１，・・・，７）の核ＷｉのアレイＷｉｊの（ｊ＝１，２，３）の第１列のメモリ素子と記憶装置のアレイＦｊの第１列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第２列のメモリ素子と記憶装置のアレイＦｊの第２列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第３列のメモリ素子と記憶装置のアレイＦｊの第３列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第４列のメモリ素子と記憶装置のアレイＦｊの第４列の対応するメモリ素子との積和が演算され、アレイＷｉｊの（ｊ＝１，２，３）の第５列のメモリ素子と記憶装置のアレイＦｊの第５列の対応するメモリ素子との積和が演算される。第ｉ（ｉ＝１，・・・，７）の核Ｗｉと記憶装置７００のアレイＦｊ（ｊ＝１，２，３）との積和は記憶装置８００のアレイＧｉの第６列のメモリ素子に格納される。
【０２１３】
その後、各アレイＧｉ（ｉ＝１，・・・，７）の第６列のメモリ素子Ｇｉ（１，６）〜Ｇｉ（１１，６）に格納されている数値にバイアス値Ｂｉを加算し、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧｉの第６列のメモリ素子Ｇｉ（１，６）〜Ｇｉ（１１，６）にそれぞれ格納する。これにより、図２２Ｊに示すように、記憶装置８００の第ｉ（ｉ＝１，・・・，７）のアレイＧｉの第６列のメモリ素子Ｇｉ（１，６）〜Ｇｉ（１１、６）には、第１乃至第７の核Ｗ１〜Ｗ７を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第６乃至第１０列に対する畳み込み処理が完了したデータが格納される。
【０２１４】
次に、図２２Ａで説明した場合と同様に、外部記憶装置６００のアレイＥ１〜Ｅ３の第１１列のメモリ素子からデータを読み出し、記憶装置の７００のアレイＦ１〜Ｆ３の第１列のメモリ素子に格納する。その後、図２２Ｂで説明した同様の畳み込み処理を行い、この畳み込み処理結果を記憶装置８００のアレイＧｉ（ｉ＝１，・・・，７）の第７列のメモリ素子に格納する。
【０２１５】
続いて、図２２Ｃで説明した場合と同様に、外部記憶装置６００のアレイＥ１〜Ｅ３の第１２列のメモリ素子からデータを読み出し、記憶装置の７００のアレイＦ１〜Ｆ３の第２列のメモリ素子に格納する。その後、図２２Ｄで説明した同様の畳み込み処理を行い、この畳み込み処理結果を記憶装置８００のアレイＧｉ（ｉ＝１，・・・，７）の第８列のメモリ素子に格納する。
【０２１６】
図２２Ｅで説明した場合と同様に、外部記憶装置６００のアレイＥ１〜Ｅ３の第１３列のメモリ素子からデータを読み出し、記憶装置の７００のアレイＦ１〜Ｆ３の第３列のメモリ素子に格納する。その後、図２２Ｆで説明した同様の畳み込み処理を行い、この畳み込み処理結果を記憶装置８００のアレイＧｉ（ｉ＝１，・・・，７）の第９列のメモリ素子に格納する。
【０２１７】
図２２Ｇで説明した場合と同様に、外部記憶装置６００のアレイＥ１〜Ｅ３の第１４列のメモリ素子からデータを読み出し、記憶装置の７００のアレイＦ１〜Ｆ３の第４列のメモリ素子に格納する。その後、図２２Ｈで説明した同様の畳み込み処理を行い、この畳み込み処理結果を記憶装置８００のアレイＧｉ（ｉ＝１，・・・，７）の第１０列のメモリ素子に格納する。
【０２１８】
図２２Ｉで説明した場合と同様に、外部記憶装置６００のアレイＥ１〜Ｅ３の第１５列のメモリ素子からデータを読み出し、記憶装置の７００のアレイＦ１〜Ｆ３の第５列のメモリ素子に格納する。その後、図２２Ｊで説明した同様の畳み込み処理を行い、この畳み込み処理結果を記憶装置８００のアレイＧｉ（ｉ＝１，・・・，７）の第１１列のメモリ素子に格納する。
【０２１９】
次に、各アレイＧｉ（ｉ＝１，・・・，７）の各メモリ素子に格納されている数値にバイアス値Ｂｉを加算し、例えばRectified Linear Unit等の発火関数処理を必要に応じて施し、改めてアレイＧｉの各メモリ素子にそれぞれ格納する。これにより、図２２Ｋに示すように、記憶装置８００のアレイＧ１〜Ｇ７の第７列乃至第１１列のメモリ素子には、第１乃至第７の核Ｗ１〜Ｗ７を用いた外部記憶装置６００のアレイＥ１〜Ｅ３の第７乃至第１５列に対する畳み込み処理が完了したデータが格納される。
【０２２０】
以上の手続きにより、外部記憶装置６００のアレイＥ１〜Ｅ３のメモリ素子に対して、第１乃至第７の核Ｗ１〜Ｗ７を用いて畳み込み処理を行った結果が記憶装置８００を構成するアレイＧ１〜Ｇ７のメモリ素子に格納される。
【０２２１】
なお、上記の処理の記憶装置８００のアレイＧ１〜Ｇ７のメモリ素子にデータ（数値）を格納する処理において、異なるアレイＧｍ（ｍ＝１，・・・，７）に対する処理は並列に行うことも可能であり、並列に行えば処理時間の短縮が図られるという利点が得られる。
【０２２２】
第１変形例においては、行方向および奥行き方向がアレイＥ１〜Ｅ３と同じサイズおよび深さを持つ記憶装置を用いたが、これに限るものではなく、列方向ないし奥行き方向がアレイＥ１〜Ｅ３のそれらと異なる記憶装置を用いても同様の効果が得られる。特に、行方向ないし奥行き方向がアレイＥ１〜Ｅ３と同じサイズおよび深さを持つ核を用いれば、記憶装置７００の容量の削減の効果が最も大きくなるという利点が得られる。
【０２２３】
また、第１変形例による演算処理装置おいては図１９に示した様に、行方向および深さ方向が外部記憶装置６００のアレイＥ１〜Ｅ３と同じ記憶装置を用いたが、例えば、図２３に示すように、奥行き方向および列方向がアレイＥ１〜Ｅ３と同じで且つ行方向が核と同じ行を有するアレイＨ１〜Ｈ３を有する記憶装置７００Ａを用いても同様の効果を得ることができる。この場合には、図２０乃至図２２Ｋで説明した処理において、図中に示す列方向の座標と行方向の座標とを入れ替えた処理を施すことにより、記憶装置８００を構成する全ての記憶装置に必要な処理の為された数値が格納される。なお、図中に示す奥行き（深さ）方向ないし列方向には外部記憶装置のアレイと等しい図の面内方向の大きさないし深さを持ち且つ行方向には畳み込み処理に用いる核の図の面内方向の大きさと等しい大きさを持つとしたが、これに限るものではなく、図中に示す奥行き方向ないし列方向には外部記憶装置６００のアレイ以上の面内方向の深さないし大きさを持ち且つ行方向には畳み込み処理に用いる核の図の面内方向の大きさ以上の大きさを持つとしても同様の効果が得られる。特に図中に示す奥行き方向ないし列方向には外部記憶装置６００と等しい深さないし図の面内方向の大きさを持ち且つ行方向には畳み込み処理に用いる核の図の面内方向の大きさと等しい大きさを持つとすると記憶装置の個数の削減の効果が最も大きくなるという利点が得られる。
【０２２４】
（第２変形例）
次に、第３実施形態の第２変形例による演算処理装置を図２４に示す。この第２変形例の演算処理装置は、図１８に示す第３実施形態の演算処理装置において、記憶装置７００を記憶装置７００Ｂに置き換えた構成を有している。
【０２２５】
この記憶装置７００Ｂは、記憶装置６００の各アレイＥ１〜Ｅ３のそれぞれと同じ大きさの１枚のアレイＩを有する。すなわち、アレイＩは、１５行１５列に配置されたメモリ素子を有している。なお、この第２変形例では、アレイＩが１枚である場合を例示してあるが、その深さが１であることは本質ではなく他の深さであっても同様の効果が得られることは無論である。
【０２２６】
（動作）
次に、第２変形例の演算処理装置に動作について図２５乃至図２８を参照して説明する。
【０２２７】
まず、図２５に示す様に、外部記憶装置６００のアレイＥ１のメモリ素子に格納されているデータを読み出し、記憶装置７００ＢのアレイＩの対応するメモリ素子に格納する。すなわち、アレイＥ１のｍ行ｎ列のメモリ素子Ｅ１（ｍ，ｎ）に格納されているデータは、アレイＩの対応するメモリ素子Ｉ（ｍ，ｎ）に格納する。
【０２２８】
続いて、第１の核Ｗ１のアレイＷ１１の第１列のメモリ素子Ｗ１１（１，１）〜Ｗ１１（５，１）に格納されているデータと、アレイＩの第１列のメモリ素子Ｉ（１，１）〜Ｉ（１５，１）に格納されているデータとの畳み込み処理を行う。この畳み込み処理は以下のように行われる。
【０２２９】
まず、図２６Ａに示す様に、第１の核Ｗ１のアレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第１行第１列のメモリ素子Ｉ（１，１）に格納されているデータとの積を演算し、この積を記憶装置８００のアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に格納する。その後、アレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第２行第１列のメモリ素子Ｉ（２，１）に格納されているデータとの積を演算し、この積を記憶装置８００のアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に格納する。アレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第３行第１列のメモリ素子Ｉ（３，１）に格納されているデータとの積を演算し、この積を記憶装置８００のアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に格納する。引き続き、アレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第４行第１列のメモリ素子Ｉ（４，１）に格納されているデータとの積を演算し、この積を記憶装置８００のアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に格納する。その後、アレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第５行第１列のメモリ素子Ｉ（５，１）に格納されているデータとの積を演算し、この積を記憶装置８００のアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に格納する。これらの処理結果を図２６Ａに示す。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０２３０】
次に、図２６Ｂに示す様に、第１の核Ｗ１のアレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されているデータと、アレイＩの第２行第１列のメモリ素子Ｉ（２，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に改めて格納する。続いて、アレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されているデータと、アレイＩの第３行第１列のメモリ素子Ｉ（３，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に改めて格納する。その後、アレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されているデータと、アレイＩの第４行第１列のメモリ素子Ｉ（４，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に改めて格納する。引き続いて、アレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されているデータと、アレイＩの第５行第１列のメモリ素子Ｉ（５，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に改めて格納する。その後、アレイＷ１１の第２行第１列のメモリ素子Ｗ１１（２，１）に格納されているデータと、アレイＩの第６行第１列のメモリ素子Ｉ（６，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に改めて格納する。これらの処理結果を図２６Ｂに示す。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０２３１】
次に、第１の核Ｗ１のアレイＷ１１の第３行第１列のメモリ素子Ｗ１１（３，１）に格納されているデータと、アレイＩの第３行第１列のメモリ素子Ｉ（３，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に改めて格納する。続いて、アレイＷ１１の第３行第１列のメモリ素子Ｗ１１（３，１）に格納されているデータと、アレイＩの第４行第１列のメモリ素子Ｉ（４，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に改めて格納する。その後、アレイＷ１１の第３行第１列のメモリ素子Ｗ１１（３，１）に格納されているデータと、アレイＩの第５行第１列のメモリ素子Ｉ（５，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に改めて格納する。引き続いて、アレイＷ１１の第３行第１列のメモリ素子Ｗ１１（３，１）に格納されているデータと、アレイＩの第６行第１列のメモリ素子Ｉ（６，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に改めて格納する。その後、アレイＷ１１の第３行第１列のメモリ素子Ｗ１１（３，１）に格納されているデータと、アレイＩの第７行第１列のメモリ素子Ｉ（７，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に改めて格納する。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０２３２】
次に、第１の核Ｗ１のアレイＷ１１の第４行第１列のメモリ素子Ｗ１１（４，１）に格納されているデータと、アレイＩの第４行第１列のメモリ素子Ｉ（４，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に改めて格納する。続いて、アレイＷ１１の第４行第１列のメモリ素子Ｗ１１（４，１）に格納されているデータと、アレイＩの第５行第１列のメモリ素子Ｉ（５，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に改めて格納する。その後、アレイＷ１１の第４行第１列のメモリ素子Ｗ１１（４，１）に格納されているデータと、アレイＩの第６行第１列のメモリ素子Ｉ（６，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に改めて格納する。引き続いて、アレイＷ１１の第４行第１列のメモリ素子Ｗ１１（４，１）に格納されているデータと、アレイＩの第７行第１列のメモリ素子Ｉ（７，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に改めて格納する。その後、アレイＷ１１の第４行第１列のメモリ素子Ｗ１１（４，１）に格納されているデータと、アレイＩの第８行第１列のメモリ素子Ｉ（８，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に改めて格納する。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０２３３】
次に、第１の核Ｗ１のアレイＷ１１の第５行第１列のメモリ素子Ｗ１１（５，１）に格納されているデータと、アレイＩの第５行第１列のメモリ素子Ｉ（５，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に改めて格納する。続いて、アレイＷ１１の第５行第１列のメモリ素子Ｗ１１（５，１）に格納されているデータと、アレイＩの第６行第１列のメモリ素子Ｉ（６，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に改めて格納する。その後、アレイＷ１１の第５行第１列のメモリ素子Ｗ１１（５，１）に格納されているデータと、アレイＩの第７行第１列のメモリ素子Ｉ（７，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に改めて格納する。引き続いて、アレイＷ１１の第５行第１列のメモリ素子Ｗ１１（５，１）に格納されているデータと、アレイＩの第８行第１列のメモリ素子Ｉ（８，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に改めて格納する。その後、アレイＷ１１の第５行第１列のメモリ素子Ｗ１１（５，１）に格納されているデータと、アレイＩの第９行第１列のメモリ素子Ｉ（９，１）に格納されているデータとの積を演算し、この積とアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に改めて格納する。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。以上の処理結果を図２６Ｃに示す。
【０２３４】
次に、図２６Ｄに示すように、第１の核Ｗ１のアレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第６行第１列のメモリ素子Ｉ（６，１）に格納されているデータとの積を演算し、この積をアレイＧ１の第６行第１列のメモリ素子Ｇ１（６，１）に格納する。続いて、アレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第７行第１列のメモリ素子Ｉ（７，１）に格納されているデータとの積を演算し、この積をアレイＧ１の第７行第１列のメモリ素子Ｇ１（７，１）に格納する。その後、アレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第８行第１列のメモリ素子Ｉ（８，１）に格納されているデータとの積を演算し、この積をアレイＧ１の第８行第１列のメモリ素子Ｇ１（８，１）に格納する。引き続き、アレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第９行第１列のメモリ素子Ｉ（９，１）に格納されているデータとの積を演算し、この積をアレイＧ１の第９行第１列のメモリ素子Ｇ１（９，１）に格納する。その後、アレイＷ１１の第１行第１列のメモリ素子Ｗ１１（１，１）に格納されているデータと、アレイＩの第１０行第１列のメモリ素子Ｉ（１０，１）に格納されているデータとの積を演算し、この積をアレイＧ１の第１０行第１列のメモリ素子Ｇ１（１０，１）に格納する。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０２３５】
次に、アレイＩにおける第７行第１列〜第１４行第１列のメモリ素子Ｉ（７，１）〜Ｉ（１４，１）に格納されたデータに対して、第１の核Ｗ１のアレイＷ１１の第１列に格納されたデータＷ１１（１，１）〜Ｗ１１（５，１）を用いて、図２６Ｂおよび図２６Ｃで説明した場合と同様の畳み込み処理を行い、これらの畳み込み処理結果をアレイＧ１の第７行第１列〜第１０行第１列のメモリ素子Ｇ１（７，１）〜Ｇ１（１０，１）に格納する。これらの処理結果を図２６Ｅに示す。
【０２３６】
次に、図２６Ｆに示すように、第１の核Ｗ１のアレイＷ１１の第１列のデータＷ１１（１，１）〜Ｗ１１（５，１）を用いて、アレイＩの第１１行第１列〜第１５行第１列のデータＩ（１１，１）〜Ｉ（１５，１）に対して畳み込み処理を行い、処理結果をアレイＧ１の第１５行第１列のメモリ素子Ｇ１（１５，１）に格納する。
【０２３７】
以上により、アレイＷ１１の第１列のメモリ素子Ｗ１１（１，１）〜Ｗ１１（５，１）に格納されているデータと、アレイＩの第１列のメモリ素子Ｉ（１，１）〜Ｉ（１５，１）に格納されているデータとの畳み込み処理が完了する。
【０２３８】
次に、第１の核Ｗ１のアレイＷ１１の第２列のメモリ素子Ｗ１１（１，２）〜Ｗ１１（５，２）に格納されてデータを用いて、アレイＩの第２列のメモリ素子Ｉ（１，２）〜Ｉ（１５，２）に格納されたデータとの畳み込み処理を行う。この畳み込み処理は、以下のように行われる。
【０２３９】
まず、図２６Ｇに示す様に、アレイＷ１１の第１行第２列のメモリ素子Ｗ１１（１，２）に格納されているデータと、アレイＩの第１行第２列のメモリ素子Ｉ（１，２）に格納されているデータとの積を演算し、この積と、アレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に格納されているデータとの和を演算し、この和を記憶装置８００のアレイＧ１の第１行第１列のメモリ素子Ｇ１（１，１）に改めて格納する。その後、アレイＷ１１の第１行第２列のメモリ素子Ｗ１１（１，２）に格納されているデータと、アレイＩの第２行第２列のメモリ素子Ｉ（２，２）に格納されているデータとの積を演算し、この積とアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に格納されているデータとの和を演算し、この和を記憶装置８００のアレイＧ１の第２行第１列のメモリ素子Ｇ１（２，１）に改めて格納する。アレイＷ１１の第１行第２列のメモリ素子Ｗ１１（１，２）に格納されているデータと、アレイＩの第３行第２列のメモリ素子Ｉ（３，２）に格納されているデータとの積を演算し、この積とアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第３行第１列のメモリ素子Ｇ１（３，１）に改めて格納する。引き続き、アレイＷ１１の第１行第２列のメモリ素子Ｗ１１（１，２）に格納されているデータと、アレイＩの第４行第２列のメモリ素子Ｉ（４，２）に格納されているデータとの積を演算し、この積とアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第４行第１列のメモリ素子Ｇ１（４，１）に改めて格納する。その後、アレイＷ１１の第１行第２列のメモリ素子Ｗ１１（１，２）に格納されているデータと、アレイＩの第５行第２列のメモリ素子Ｉ（５，２）に格納されているデータとの積を演算し、この積とアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に格納されているデータとの和を演算し、この和をアレイＧ１の第５行第１列のメモリ素子Ｇ１（５，１）に改めて格納する。これらの処理結果を図２６Ｇに示す。これらの処理は、並列に実行することも可能であり、それらを並列に実行すれば処理時間の短縮が図られるという利点が得られる。
【０２４０】
次に、図２６Ｂ乃至図２６Ｆで説明した場合と同様にして、アレイＷ１１の第２列のメモリ素子Ｗ１１（１，２）〜Ｗ１１（５，２）に格納されてデータを用いて、アレイＩの第２列のメモリ素子Ｉ（１，２）〜Ｉ（１５，２）に格納されたデータに対する畳み込み処理を行う。この畳み込み処理の結果は、アレイＧ１の第１行第１列乃至第１１行第１列のメモリ素子Ｇ１（１，１）〜Ｇ１（１１，１）に格納される。
【０２４１】
次に、図２６Ｇで説明した場合と同様にして、レイＷ１１の第３列のメモリ素子Ｗ１１（１，３）〜Ｗ１１（５，３）に格納されてデータを用いて、アレイＩの第３列のメモリ素子Ｉ（１，３）〜Ｉ（１５，３）に格納されたデータに対する畳み込み処理を行う。この畳み込み処理の結果は、アレイＧ１の第１行第１列乃至第１１行第１列のメモリ素子Ｇ１（１，１）〜Ｇ１（１１，１）に格納される。その後、図２６Ｇで説明した場合と同様にして、レイＷ１１の第４列のメモリ素子Ｗ１１（１，４）〜Ｗ１１（５，４）に格納されてデータを用いて、アレイＩの第４列のメモリ素子Ｉ（１，４）〜Ｉ（１５，４）に格納されたデータに対する畳み込み処理を行う。この畳み込み処理の結果は、アレイＧ１の第１行第１列乃至第１１行第１列のメモリ素子Ｇ１（１，１）〜Ｇ１（１１，１）に格納される。引き続き、図２６Ｇで説明した場合と同様にして、レイＷ１１の第５列のメモリ素子Ｗ１１（１，５）〜Ｗ１１（５，５）に格納されてデータを用いて、アレイＩの第５列のメモリ素子Ｉ（１，５）〜Ｉ（１５，５）に格納されたデータに対する畳み込み処理を行う。この畳み込み処理の結果は、アレイＧ１の第１行第１列乃至第１１行第１列のメモリ素子Ｇ１（１，１）〜Ｇ１（１１，１）に格納される。
【０２４２】
以上により、第１の核Ｗ１のアレイＷ１１を用いて、アレイＩの第１列〜第５列のメモリ素子Ｉ（１，１）〜Ｉ（１５，５）に格納されたデータに対する畳み込み処理が完了する。この処理結果を図２６Ｈに示す。
【０２４３】
次に、第１の核Ｗ１のアレイＷ１１を用いて、アレイＩの第２列〜第６列のメモリ素子Ｉ（１，２）〜Ｉ（１５，６）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。この処理結果は図２６Ｉに示すように、アレイＧ１の第２列のメモリ素子Ｇ１（１、２）〜Ｇ１（１１，２）に格納される。
【０２４４】
続いて、アレイＷ１１を用いて、アレイＩの第３列〜第７列のメモリ素子Ｉ（１，３）〜Ｉ（１５，７）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第３列のメモリ素子Ｇ１（１、３）〜Ｇ１（１１，３）に格納される。その後、アレイＷ１１を用いて、アレイＩの第４列〜第８列のメモリ素子Ｉ（１，４）〜Ｉ（１５，８）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第４列のメモリ素子Ｇ１（１、４）〜Ｇ１（１１，４）に格納される。引き続き、アレイＷ１１を用いて、アレイＩの第５列〜第９列のメモリ素子Ｉ（１，５）〜Ｉ（１５，９）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第５列のメモリ素子Ｇ１（１、５）〜Ｇ１（１１，５）に格納される。続いて、アレイＷ１１を用いて、アレイＩの第６列〜第１０列のメモリ素子Ｉ（１，６）〜Ｉ（１５，１０）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第６列のメモリ素子Ｇ１（１、６）〜Ｇ１（１１，６）に格納される。その後、アレイＷ１１を用いて、アレイＩの第７列〜第１１列のメモリ素子Ｉ（１，７）〜Ｉ（１５，１１）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第７列のメモリ素子Ｇ１（１、７）〜Ｇ１（１１，７）に格納される。続いて、アレイＷ１１を用いて、アレイＩの第８列〜第１２列のメモリ素子Ｉ（１，８）〜Ｉ（１５，１２）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第８列のメモリ素子Ｇ１（１、８）〜Ｇ１（１１，８）に格納される。その後、アレイＷ１１を用いて、アレイＩの第９列〜第１３列のメモリ素子Ｉ（１，９）〜Ｉ（１５，１３）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第９列のメモリ素子Ｇ１（１、９）〜Ｇ１（１１，９）に格納される。引き続き、アレイＷ１１を用いて、アレイＩの第１０列〜第１４列のメモリ素子Ｉ（１，１０）〜Ｉ（１５，１４）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第１０列のメモリ素子Ｇ１（１、１０）〜Ｇ１（１１，１０）に格納される。続いて、アレイＷ１１を用いて、アレイＩの第１１列〜第１５列のメモリ素子Ｉ（１，１１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｈで説明した場合と同様にして行う。処理結果は、アレイＧ１の第１１列のメモリ素子Ｇ１（１、１１）〜Ｇ１（１１，１１）に格納される。これらの処理結果を図２６Ｊに示す。
【０２４５】
以上により、第１の核Ｗ１のアレイＷ１１を用いて、アレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理が完了する。
【０２４６】
次に、第２の核Ｗ２のアレイＷ２１を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｊで説明した場合と同様に行う。この畳み込み処理の結果はアレイＧ２のメモリ素子Ｇ２（１，１）〜Ｇ２（１１，１１）に格納される。続いて、第３の核Ｗ３のアレイＷ３１を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｊで説明した場合と同様に行う。この畳み込み処理の結果はアレイＧ３のメモリ素子Ｇ３（１，１）〜Ｇ３（１１，１１）に格納される。その後、第４の核Ｗ４のアレイＷ４１を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｊで説明した場合と同様に行う。この畳み込み処理の結果はアレイＧ４のメモリ素子Ｇ４（１，１）〜Ｇ４（１１，１１）に格納される。引き続き、第５の核Ｗ５のアレイＷ５１を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｊで説明した場合と同様に行う。この畳み込み処理の結果はアレイＧ５のメモリ素子Ｇ５（１，１）〜Ｇ５（１１，１１）に格納される。その後、第６の核Ｗ６のアレイＷ６１を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｊで説明した場合と同様に行う。この畳み込み処理の結果はアレイＧ６のメモリ素子Ｇ６（１，１）〜Ｇ６（１１，１１）に格納される。続いて、第７の核Ｗ７のアレイＷ７１を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を、図２６Ａ乃至図２６Ｊで説明した場合と同様に行う。この畳み込み処理の結果はアレイＧ７のメモリ素子Ｇ７（１，１）〜Ｇ７（１１，１１）に格納される。これらの処理結果を図２６Ｋに示す。
【０２４７】
これまでの処理に依り、第１乃至第７の核Ｗ１〜Ｗ７のそれぞれの第１アレイＷ１１〜Ｗ７１を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理が完了する。なお、記憶装置８００のアレイＧ１〜Ｇ７のそれぞれのメモリ素子にデータを格納する処理において、記憶装置８００の異なるアレイに格納する処理を並列に行うことが可能である。並列に処理を行えば処理時間の短縮が図られるという利点が得られる。
【０２４８】
次に、図２７に示すように、外部記憶装置６００におけるアレイＥ２のそれぞれのメモリ素子からデータを読み出し、アレイＩの対応するメモリ素子に格納する。すなわち、アレイＩにはアレイＥ２と同じデータが格納される。
【０２４９】
続いて、図２６Ａ乃至図２６Ｋで説明した場合と同様に、第１乃至第７の核Ｗ１〜Ｗ７のそれぞれの第２のアレイＷ１２〜Ｗ７２を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を行う。この畳み込み処理の結果は、アレイＧ１〜Ｇ７のメモリ素子に格納される。この場合、第ｉ（ｉ＝１，・・・，７）のアレイＷｉ２のメモリ素子とアレイＩのメモリ素子との積は、この積が格納されるアレイＧｉのメモリ素子のデータと上記積との和が演算され、この和がアレイＧｉのメモリ素子に改めて格納されるように処理される。なお、記憶装置８００のアレイＧ１〜Ｇ７のそれぞれのメモリ素子にデータを格納する処理において、記憶装置８００の異なるアレイに格納する処理を並列に行うことが可能である。並列に処理を行えば処理時間の短縮が図られるという利点が得られる。
【０２５０】
次に、図２８に示すように、外部記憶装置６００におけるアレイＥ３のそれぞれのメモリ素子からデータを読み出し、アレイＩの対応するメモリ素子に格納する。すなわち、アレイＩにはアレイＥ３と同じデータが格納される。
【０２５１】
続いて、図２６Ａ乃至図２６Ｋで説明した場合と同様に、第１乃至第７の核Ｗ１〜Ｗ７のそれぞれの第３のアレイＷ１３〜Ｗ７３を用いてアレイＩのメモリ素子Ｉ（１，１）〜Ｉ（１５，１５）に格納されたデータに対する畳み込み処理を行う。この畳み込み処理の結果は、アレイＧ１〜Ｇ７のメモリ素子に格納される。この場合、第ｉ（ｉ＝１，・・・，７）のアレイＷｉ３のメモリ素子とアレイＩのメモリ素子との積は、この積が格納されるアレイＧｉのメモリ素子のデータと上記積との和が演算され、この和がアレイＧｉのメモリ素子に改めて格納されるように処理される。なお、記憶装置８００のアレイＧ１〜Ｇ７のそれぞれのメモリ素子にデータを格納する処理において、記憶装置８００の異なるアレイに格納する処理を並列に行うことが可能である。並列に処理を行えば処理時間の短縮が図られるという利点が得られる。
【０２５２】
次に、記憶装置８００のアレイＧｉ（ｉ＝１，・・・，７）のメモリ素子Ｇｉ（１，１）〜Ｇｉ（１１，１１）のそれぞれに対して、上記メモリ素子に格納されているデータと、バイアス値Ｂｉとの和を求め、例えばRectified Linear Unit等の発火関数処理等を必要に応じて施した数値を改めて上記メモリ素子に格納する。なお、この処理において、記憶装置８００の異なるアレイに格納する処理は、並列に処理を行うことが可能である。並列に処理を行えば処理時間の短縮が図られるという利点が得られる。
【０２５３】
以上の処理により、第１乃至第７の核Ｗ１〜Ｗ７を用いた、外部記憶装置６００に格納されたデータと同じデータに対する畳み込み処理が完了する。
【０２５４】
本変形例に於いては、記憶装置７００Ｂは、行方向乃至列方向には外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれと同じ大きさのアレイＩを有していたが、これに限るものではない。例えば、行方向乃至列方向には外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれよりも大きなサイズのアレイを有していてもよい。但し、行方向乃至列方向には外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれと同じ大きさのアレイＩを有している場合は、記憶装置７００Ｂの容量の削減の効果が最も大きくなるという利点が得られる。
【０２５５】
（第３変形例）
図２４に示す第２変形例においては、記憶装置７００Ｂは、行方向および列方向には外部記憶装置のアレイと等しい大きさを持ち、深さ方向は、外部記憶装置６００のアレイＥ１〜Ｅ３よりも枚数の少ないアレイＩを有していたが、図２９に示すように、行方向がアレイＥ１〜Ｅ３のそれぞれと同じ大きさで、列方向が畳み込み処理に用いる核と同じ大きさを有し、アレイＥ１〜Ｅ３よりも枚数の少ないアレイＪを有していてもよい。この場合は、更に記憶装置が削減されるので回路面積の更なる縮小が可能となる。この例を第３実施形態の第３変形例として説明する。
【０２５６】
この第３変形例による演算処理装置を図２９に示す。この第３変形例の演算処理装置は、図２４に示す第２変形例において、記憶装置７００Ｂを記憶装置７００Ｃに置き換えた構成を有している。記憶装置７００Ｃは、１５行５列のメモリ素子を有するアレイＪを備えている。記憶装置７００Ｃは、複数枚のアレイを備えていてもよい。
【０２５７】
（動作）
次に、第３変形例の動作について図３０乃至図３２Ｊを参照して説明する。
【０２５８】
まず、図３０に示す様に、記憶装置６００のアレイＥ１の第１列〜第５列のメモリ素子Ｅ１（１，１）〜Ｅ１（１５，５）に格納されているデータを読み出し、記憶装置７００ＣのアレイＪに格納する。これにより、ｍを１以上１５以下の整数、ｎを１以上５以下の整数とすると、アレイＥ１の第ｍ行第ｎ列のメモリ素子Ｅ１（ｍ，ｎ）に格納されたデータは、アレイＪの第ｍ行第ｎ列のメモリ素子Ｊ（ｍ，ｎ）に格納される。
【０２５９】
次に、図２１Ａ乃至図２１Ｃで説明した処理と同様の処理を施すことに依り、第１の核Ｗ１のアレイＷ１１のデータＷ１１（１，１）〜Ｗ１１（５，５）を用いてアレイＪの第１列乃至第５列のデータＪ（１，１）〜Ｊ（１５，５）に対する畳み込み処理を行う。アレイＷ１１を用いた畳み込み処理の結果が図３１Ａに示すように、記憶装置８００のアレイＧ１の第１列のメモリ素子Ｇ１（１，１）〜Ｇ１（１５，１）に格納される。
【０２６０】
次に、第ｉ（ｉ＝２，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１のデータＷｉ１（１，１）〜Ｗｉ１（５，５）を用いてアレイＪの第１列乃至第５列のデータＪ（１，１）〜Ｊ（１５，５）に対する畳み込み処理を行う。第ｉ（ｉ＝２，・・・，７）の核ＷｉにおけるアレイＷｉ１を用いた畳み込み処理の結果が図３１Ｂに示すように、記憶装置８００のアレイＧｉの第１列のメモリ素子に格納される。
【０２６１】
以上の処理により、第１乃至第７の核Ｗ１〜Ｗ７のそれぞれの第１のアレイＷ１１〜Ｗ７１のそれぞれを用いたアレイＪの第１列乃至第５列のデータＪ（１，１）〜Ｊ（１５，５）に対する畳み込み処理が完了する。記憶装置８００のアレイＧ１〜Ｇ７のそれぞれの第１列に格納する処理において、異なるアレイの第１列に格納する処理は並列に行うことも可能である。並列に処理を行うことにより処理時間の短縮が図られるという利点が得られる。
【０２６２】
次に、図３２Ａに示すように、アレイＥ１における第６列のメモリ素子Ｅ１（１，６）〜Ｅ（１５，６）のデータを読み出し、アレイＪの第１列のメモリ素子Ｊ（１，１）〜Ｊ（１５，１）に格納する。このとき、アレイＪの第２列のメモリ素子にはアレイＥ１における第２列のメモリ素子のデータが格納されており、アレイＪの第３列のメモリ素子にはアレイＥ１における第３列のメモリ素子のデータが格納されており、アレイＪの第４列のメモリ素子にはアレイＥ１における第４列のメモリ素子のデータが格納されており、アレイＪの第５列のメモリ素子にはアレイＥ１における第５列のメモリ素子のデータが格納されている。
【０２６３】
続いて、図３１Ａおよび図３１Ｂで説明した処理と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉに格納されているデータを用いて、アレイＪに格納されているデータに対して畳み込み処理を行い、この畳み込み処理の結果をアレイＧｉの第２列のメモリ素子Ｇｉ（１，２）〜Ｇｉ（１１，２）に格納する。なお、この畳み込み処理は、図３２Ｂに示すように、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１の第１列のデータとアレイＪの第２列のデータとの畳み込み処理が行われ、アレイＷｉ１の第２列のデータとアレイＪの第３列のデータとの畳み込み処理が行われ、アレイＷｉ１の第３列のデータとアレイＪの第４列のデータとの畳み込み処理が行われ、アレイＷｉ１の第４列のデータとアレイＪの第５列のデータとの畳み込み処理が行われ、アレイＷｉ１の第５列のデータとアレイＪの第１列のデータとの畳み込み処理が行われる。記憶装置８００のアレイＧ１〜Ｇ７のそれぞれの第２列に格納する処理において、異なるアレイの第２列に格納する処理は並列に並列に行うことも可能である。並列に処理を行うことにより処理時間の短縮が図られるという利点が得られる。
【０２６４】
次に、図３２Ｃに示すように、アレイＥ１における第７列のメモリ素子Ｅ１（１，７）〜Ｅ（１５，７）のデータを読み出し、アレイＪの第２列のメモリ素子Ｊ（１，２）〜Ｊ（１５，２）に格納する。このとき、アレイＪの第１列のメモリ素子にはアレイＥ１における第６列のメモリ素子のデータが格納されており、アレイＪの第３列のメモリ素子にはアレイＥ１における第３列のメモリ素子のデータが格納されており、アレイＪの第４列のメモリ素子にはアレイＥ１における第４列のメモリ素子のデータが格納されており、アレイＪの第５列のメモリ素子にはアレイＥ１における第５列のメモリ素子のデータが格納されている。
【０２６５】
続いて、図３１Ａおよび図３１Ｂで説明した処理と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉに格納されているデータを用いて、アレイＪに格納されているデータに対して畳み込み処理を行い、この畳み込み処理の結果をアレイＧｉの第３列のメモリ素子Ｇｉ（１，３）〜Ｇｉ（１１，３）に格納する。なお、この畳み込み処理は、図３２Ｄに示すように、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１の第１列のデータとアレイＪの第３列のデータとの畳み込み処理が行われ、アレイＷｉ１の第２列のデータとアレイＪの第４列のデータとの畳み込み処理が行われ、アレイＷｉ１の第３列のデータとアレイＪの第５列のデータとの畳み込み処理が行われ、アレイＷｉ１の第４列のデータとアレイＪの第１列のデータとの畳み込み処理が行われ、アレイＷｉ１の第５列のデータとアレイＪの第２列のデータとの畳み込み処理が行われる。記憶装置８００のアレイＧ１〜Ｇ７のそれぞれの第３列に格納する処理において、異なるアレイの第３列に格納する処理は並列に並列に行うことも可能である。並列に処理を行うことにより処理時間の短縮が図られるという利点が得られる。
【０２６６】
次に、図３２Ｅに示すように、アレイＥ１における第８列のメモリ素子Ｅ１（１，８）〜Ｅ（１５，８）のデータを読み出し、アレイＪの第３列のメモリ素子Ｊ（１，３）〜Ｊ（１５，３）に格納する。このとき、アレイＪの第１列のメモリ素子にはアレイＥ１における第６列のメモリ素子のデータが格納されており、アレイＪの第２列のメモリ素子にはアレイＥ１における第７列のメモリ素子のデータが格納されており、アレイＪの第４列のメモリ素子にはアレイＥ１における第４列のメモリ素子のデータが格納されており、アレイＪの第５列のメモリ素子にはアレイＥ１における第５列のメモリ素子のデータが格納されている。
【０２６７】
続いて、図３１Ａおよび図３１Ｂで説明した処理と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉに格納されているデータを用いて、アレイＪに格納されているデータに対して畳み込み処理を行い、この畳み込み処理の結果をアレイＧｉの第４列のメモリ素子Ｇｉ（１，４）〜Ｇｉ（１１，４）に格納する。なお、この畳み込み処理は、図３２Ｆに示すように、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１の第１列のデータとアレイＪの第４列のデータとの畳み込み処理が行われ、アレイＷｉ１の第２列のデータとアレイＪの第５列のデータとの畳み込み処理が行われ、アレイＷｉ１の第３列のデータとアレイＪの第１列のデータとの畳み込み処理が行われ、アレイＷｉ１の第４列のデータとアレイＪの第２列のデータとの畳み込み処理が行われ、アレイＷｉ１の第５列のデータとアレイＪの第３列のデータとの畳み込み処理が行われる。記憶装置８００のアレイＧ１〜Ｇ７のそれぞれの第４列に格納する処理において、異なるアレイの第４列に格納する処理は並列に並列に行うことも可能である。並列に処理を行うことにより処理時間の短縮が図られるという利点が得られる。
【０２６８】
次に、図３２Ｇに示すように、アレイＥ１における第９列のメモリ素子Ｅ１（１，９）〜Ｅ（１５，９）のデータを読み出し、アレイＪの第４列のメモリ素子Ｊ（１，４）〜Ｊ（１５，４）に格納する。このとき、アレイＪの第１列のメモリ素子にはアレイＥ１における第６列のメモリ素子のデータが格納されており、アレイＪの第２列のメモリ素子にはアレイＥ１における第７列のメモリ素子のデータが格納されており、アレイＪの第３列のメモリ素子にはアレイＥ１における第８列のメモリ素子のデータが格納されており、アレイＪの第５列のメモリ素子にはアレイＥ１における第５列のメモリ素子のデータが格納されている。
【０２６９】
続いて、図３１Ａおよび図３１Ｂで説明した処理と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉに格納されているデータを用いて、アレイＪに格納されているデータに対して畳み込み処理を行い、この畳み込み処理の結果をアレイＧｉの第５列のメモリ素子Ｇｉ（１，５）〜Ｇｉ（１１，５）に格納する。なお、この畳み込み処理は、図３２Ｈに示すように、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１の第１列のデータとアレイＪの第５列のデータとの畳み込み処理が行われ、アレイＷｉ１の第２列のデータとアレイＪの第１列のデータとの畳み込み処理が行われ、アレイＷｉ１の第３列のデータとアレイＪの第２列のデータとの畳み込み処理が行われ、アレイＷｉ１の第４列のデータとアレイＪの第３列のデータとの畳み込み処理が行われ、アレイＷｉ１の第５列のデータとアレイＪの第４列のデータとの畳み込み処理が行われる。記憶装置８００のアレイＧ１〜Ｇ７のそれぞれの第５列に格納する処理において、異なるアレイの第５列に格納する処理は並列に並列に行うことも可能である。並列に処理を行うことにより処理時間の短縮が図られるという利点が得られる。
【０２７０】
次に、図３２Ｉに示すように、アレイＥ１における第１０列のメモリ素子Ｅ１（１，１０）〜Ｅ（１５，１０）のデータを読み出し、アレイＪの第５列のメモリ素子Ｊ（１，５）〜Ｊ（１５，５）に格納する。このとき、アレイＪの第１列のメモリ素子にはアレイＥ１における第６列のメモリ素子のデータが格納されており、アレイＪの第２列のメモリ素子にはアレイＥ１における第７列のメモリ素子のデータが格納されており、アレイＪの第３列のメモリ素子にはアレイＥ１における第８列のメモリ素子のデータが格納されており、アレイＪの第４列のメモリ素子にはアレイＥ１における第９列のメモリ素子のデータが格納されている。
【０２７１】
続いて、図３１Ａおよび図３１Ｂで説明した処理と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉに格納されているデータを用いて、アレイＪに格納されているデータに対して畳み込み処理を行い、この畳み込み処理の結果をアレイＧｉの第６列のメモリ素子Ｇｉ（１，６）〜Ｇｉ（１１，６）に格納する。なお、この畳み込み処理は、図３２Ｊに示すように、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１の第１列のデータとアレイＪの第１列のデータとの畳み込み処理が行われ、アレイＷｉ１の第２列のデータとアレイＪの第２列のデータとの畳み込み処理が行われ、アレイＷｉ１の第３列のデータとアレイＪの第３列のデータとの畳み込み処理が行われ、アレイＷｉ１の第４列のデータとアレイＪの第４列のデータとの畳み込み処理が行われ、アレイＷｉ１の第５列のデータとアレイＪの第５列のデータとの畳み込み処理が行われる。記憶装置８００のアレイＧ１〜Ｇ７のそれぞれの第６列に格納する処理において、異なるアレイの第６列に格納する処理は並列に並列に行うことも可能である。並列に処理を行うことにより処理時間の短縮が図られるという利点が得られる。
【０２７２】
以上により、第１乃至第７の核Ｗ１〜Ｗ７のそれぞれの第１のアレイＷ１１〜Ｗ１７を用い、外部記憶装置６００のアレイＥ１の第１乃至第１０列のメモリ素子に格納されたデータに対する畳み込み処理が完了する。
【０２７３】
次に、外部記憶装置６００のアレイＥ１の第１１列のメモリ素子に格納されたデータを読み出し、この読み出しデータを図３２Ａに示すように、記憶装置７００ＣのアレイＪの第１列のメモリ素子に格納する。続いて、図３２Ｂで説明した場合と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１を用いてアレイＪのメモリ素子Ｊ（１，１）〜Ｊ（１５，５）に格納されているデータに対する畳み込み処理を行い、アレイＧｉの第７列のメモリ素子Ｇｉ（１，７）〜Ｇｉ（１１，７）に格納する。続いて、アレイＥ１の第１２列のメモリ素子に格納されたデータを読み出し、この読み出しデータを図３２Ｃに示すように、記憶装置７００ＣのアレイＪの第２列のメモリ素子に格納する。続いて、図３２Ｄで説明した場合と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１を用いてアレイＪのメモリ素子Ｊ（１，１）〜Ｊ（１５，５）に格納されているデータに対する畳み込み処理を行い、アレイＧｉの第８列のメモリ素子Ｇｉ（１，８）〜Ｇｉ（１１，８）に格納する。その後、アレイＥ１の第１３列のメモリ素子に格納されたデータを読み出し、この読み出しデータを図３２Ｅに示すように、記憶装置７００ＣのアレイＪの第３列のメモリ素子に格納する。続いて、図３２Ｆで説明した場合と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１を用いてアレイＪのメモリ素子Ｊ（１，１）〜Ｊ（１５，５）に格納されているデータに対する畳み込み処理を行い、アレイＧｉの第９列のメモリ素子Ｇｉ（１，９）〜Ｇｉ（１１，９）に格納する。引き続き、アレイＥ１の第１４列のメモリ素子に格納されたデータを読み出し、この読み出しデータを図３２Ｇに示すように、記憶装置７００ＣのアレイＪの第４列のメモリ素子に格納する。続いて、図３２Ｈで説明した場合と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１を用いてアレイＪのメモリ素子Ｊ（１，１）〜Ｊ（１５，５）に格納されているデータに対する畳み込み処理を行い、アレイＧｉの第１０列のメモリ素子Ｇｉ（１，１０）〜Ｇｉ（１１，１０）に格納する。その後、アレイＥ１の第１５列のメモリ素子に格納されたデータを読み出し、この読み出しデータを図３２Ｉに示すように、記憶装置７００ＣのアレイＪの第５列のメモリ素子に格納する。続いて、図３２Ｊで説明した場合と同様に、第ｉ（ｉ＝１，・・・，７）の核Ｗｉにおける第１のアレイＷｉ１を用いてアレイＪのメモリ素子Ｊ（１，１）〜Ｊ（１５，５）に格納されているデータに対する畳み込み処理を行い、アレイＧｉの第１１列のメモリ素子Ｇｉ（１，１１）〜Ｇｉ（１１，１１）に格納する。
【０２７４】
以上により、第１乃至第７の核Ｗ１〜Ｗ７のそれぞれの第１のアレイＷ１１〜Ｗ７１を用いた、外部記憶装置６００のアレイＥ１に格納されたデータと同じデータに対する畳み込み処理が完了する。
【０２７５】
次に、第１乃至第７の核Ｗ１〜Ｗ７のそれぞれの第ｊ（ｊ＝２、３）のアレイＷ１ｊ〜Ｗ７ｊを用いた、外部記憶装置６００のアレイＥｊ（ｊ＝２、３）に格納されたデータと同じデータに対する畳み込み処理を図３１Ａ乃至図３２Ｊで説明した処理および図３２Ｊで説明した以降の処理と同様に行う。この処理において演算された積は、この積が格納されるべきアレイＧ１〜Ｇ７のメモリ素子に格納されたデータとの和が演算され。この和が上記格納されるべきアレイＧ１〜Ｇ７のメモリ素子に改めて格納されるように処理される。
【０２７６】
以上の処理により、第１乃至第７の核Ｗ１〜Ｗ７を用いた、外部記憶装置６００のアレイＥ１〜Ｅ３に格納されたデータと同じデータに対する畳み込み処理が完了する。
【０２７７】
次に、ｍ、ｎを１以上１１以下の整数とした場合、アレイＧｉ（ｉ＝１，・・・，７）のｍ行ｎ列のメモリ素子Ｇｉ（ｍ，ｎ）に対して、バイアス値Ｂｉとの和を求め、例えばＲｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ等の発火関数処理等を必要に応じて施した数値を改めて上記メモリ素子Ｇｉ（ｍ，ｎ）に改めて格納する。これらの処理において、記憶装置８００の異なるアレイに格納する場合の処理を並列に行うことも可能である。並列に処理を行うことにより処理時間の短縮が図られるという利点が得られる。
【０２７８】
第３変形例においては、記憶装置７００Ｃは、行方向が外部記憶装置６００のアレイＥ１〜Ｅ３のそれぞれと同じ大きさを有し、列方向が畳み込み処理に用いる核と同じ大きさを有するアレイＪを備えていたが、これに限るものではない。例えば、行方向はアレイＥ１〜Ｅ３のそれぞれよりも大きく、列方向は畳み込み処理に用いる核の列方向の大きさよりも大きいアレイを用いてもよい。但し、第３変形例のように、行方向はアレイＥ１〜Ｅ３のそれぞれと同じ大きさを有し、列方向は畳み込み処理に用いる核の列方向大きさと同じであるアレイＪを用いた場合は、記憶装置の個数の削減の効果が最も大きくなるという利点が得られる。
【０２７９】
第３変形例においては、記憶装置７００Ｃは、行方向がアレイＥ１〜Ｅ３のそれぞれと同じ大きさを持ち、列方向が畳み込み処理に用いる核の列方向と同じ大きさを持ち、アレイＥ１〜Ｅ３よりも少ない枚数のアレイを備えていたが、これに限るものではない。例えば、図３３に示すように、列方向がアレイＥ１〜Ｅ３のそれぞれの列方向と同じ大きさを有し、行方向が畳み込み処理に用いる核の行方向の大きさと同じ大きさを持ち、アレイＥ１〜Ｅ３よりも少ない枚数のアレイを備えていても良い。この場合には図３０乃至図３２Ｊを用いて説明した処理において行方向の座標と列方向の座標とを入れ替えた処理を施すことに依り、記憶装置８００を構成する全ての記憶装置に、アレイＥ１〜Ｅ３に対して必要な畳み込み処理の為された数値が格納される。
【０２８０】
以上説明したように、第３実施形態およびその変形例によれば、記憶装置の容量が従来の場合に比べて小さくすることが可能となり、占有面積が小さい演算処理装置を提供することができる。
【０２８１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【０２８２】
１・・・演算処理装置、１０・・・読み取り装置、２０・・・記憶装置、３０・・・処理層、４０・・・記憶装置、５０・・・記憶装置、６０・・・処理層、６５・・・記憶装置、７０・・・記憶装置、８０・・・出力装置、１００・・・記憶装置、２００・・・記憶装置、３００・・・記憶装置、４００・・・処理層、５００・・・処理層、６００・・・外部記憶装置、６５０・・・処理層、７００，７００Ｂ，７００Ｃ・・・記憶装置、Ａ１〜Ａ７・・・アレイ、Ｍ１〜Ｍ８・・・メモリ素子、Ｃ１〜Ｃ１０・・・アレイ、Ｅ１〜Ｅ３・・・アレイ、Ｆ１〜Ｆ３・・・アレイ、Ｇ１〜Ｇ７・・・アレイ、Ｈ１〜Ｈ３・・・アレイ、Ｉ・・・アレイ、Ｊ・・・アレイ、Ｋ・・・アレイ、Ｗ１・・・第１の核、Ｗ２・・・第２の核、Ｗ３・・・第３の核、Ｗ４・・・第４の核、Ｗ５・・・第５の核、Ｗ６・・・第６の核、Ｗ７・・第７の核
【図１】
2019095862.tif 000003
【図２】
2019095862.tif 000004
【図３】
2019095862.tif 000005
【図４】
2019095862.tif 000006
【図５Ａ】
2019095862.tif 000007
【図５Ｂ】
2019095862.tif 000008
【図５Ｃ】
2019095862.tif 000009
【図５Ｄ】
2019095862.tif 000010
【図５Ｅ】
2019095862.tif 000011
【図５Ｆ】
2019095862.tif 000012
【図５Ｇ】
2019095862.tif 000013
【図５Ｈ】
2019095862.tif 000014
【図５Ｉ】
2019095862.tif 000015
【図５Ｊ】
2019095862.tif 000016
【図５Ｋ】
2019095862.tif 000017
【図５Ｌ】
2019095862.tif 000018
【図５Ｍ】
2019095862.tif 000019
【図５Ｎ】
2019095862.tif 000020
【図５Ｏ】
2019095862.tif 000021
【図５Ｐ】
2019095862.tif 000022
【図５Ｑ】
2019095862.tif 000023
【図６Ａ】
2019095862.tif 000024
【図６Ｂ】
2019095862.tif 000025
【図６Ｃ】
2019095862.tif 000026
【図６Ｄ】
2019095862.tif 000027
【図６Ｅ】
2019095862.tif 000028
【図６Ｆ】
2019095862.tif 000029
【図７】
2019095862.tif 000030
【図８Ａ】
2019095862.tif 000031
【図８Ｂ】
2019095862.tif 000032
【図８Ｃ】
2019095862.tif 000033
【図８Ｄ】
2019095862.tif 000034
【図８Ｅ】
2019095862.tif 000035
【図８Ｆ】
2019095862.tif 000036
【図９Ａ】
2019095862.tif 000037
【図９Ｂ】
2019095862.tif 000038
【図９Ｃ】
2019095862.tif 000039
【図９Ｄ】
2019095862.tif 000040
【図９Ｅ】
2019095862.tif 000041
【図９Ｆ】
2019095862.tif 000042
【図１０】
2019095862.tif 000043
【図１１】
2019095862.tif 000044
【図１２】
2019095862.tif 000045
【図１３Ａ】
2019095862.tif 000046
【図１３Ｂ】
2019095862.tif 000047
【図１３Ｃ】
2019095862.tif 000048
【図１３Ｄ】
2019095862.tif 000049
【図１３Ｅ】
2019095862.tif 000050
【図１３Ｆ】
2019095862.tif 000051
【図１３Ｇ】
2019095862.tif 000052
【図１３Ｈ】
2019095862.tif 000053
【図１３Ｉ】
2019095862.tif 000054
【図１３Ｊ】
2019095862.tif 000055
【図１３Ｋ】
2019095862.tif 000056
【図１３Ｌ】
2019095862.tif 000057
【図１４Ａ】
2019095862.tif 000058
【図１４Ｂ】
2019095862.tif 000059
【図１４Ｃ】
2019095862.tif 000060
【図１４Ｄ】
2019095862.tif 000061
【図１４Ｅ】
2019095862.tif 000062
【図１４Ｆ】
2019095862.tif 000063
【図１４Ｇ】
2019095862.tif 000064
【図１４Ｈ】
2019095862.tif 000065
【図１４Ｉ】
2019095862.tif 000066
【図１４Ｊ】
2019095862.tif 000067
【図１４Ｋ】
2019095862.tif 000068
【図１４Ｌ】
2019095862.tif 000069
【図１４Ｍ】
2019095862.tif 000070
【図１５】
2019095862.tif 000071
【図１６】
2019095862.tif 000072
【図１７】
2019095862.tif 000073
【図１８】
2019095862.tif 000074
【図１９】
2019095862.tif 000075
【図２０】
2019095862.tif 000076
【図２１Ａ】
2019095862.tif 000077
【図２１Ｂ】
2019095862.tif 000078
【図２１Ｃ】
2019095862.tif 000079
【図２１Ｄ】
2019095862.tif 000080
【図２１Ｅ】
2019095862.tif 000081
【図２２Ａ】
2019095862.tif 000082
【図２２Ｂ】
2019095862.tif 000083
【図２２Ｃ】
2019095862.tif 000084
【図２２Ｄ】
2019095862.tif 000085
【図２２Ｅ】
2019095862.tif 000086
【図２２Ｆ】
2019095862.tif 000087
【図２２Ｇ】
2019095862.tif 000088
【図２２Ｈ】
2019095862.tif 000089
【図２２Ｉ】
2019095862.tif 000090
【図２２Ｊ】
2019095862.tif 000091
【図２２Ｋ】
2019095862.tif 000092
【図２３】
2019095862.tif 000093
【図２４】
2019095862.tif 000094
【図２５】
2019095862.tif 000095
【図２６Ａ】
2019095862.tif 000096
【図２６Ｂ】
2019095862.tif 000097
【図２６Ｃ】
2019095862.tif 000098
【図２６Ｄ】
2019095862.tif 000099
【図２６Ｅ】
2019095862.tif 000100
【図２６Ｆ】
2019095862.tif 000101
【図２６Ｇ】
2019095862.tif 000102
【図２６Ｈ】
2019095862.tif 000103
【図２６Ｉ】
2019095862.tif 000104
【図２６Ｊ】
2019095862.tif 000105
【図２６Ｋ】
2019095862.tif 000106
【図２７】
2019095862.tif 000107
【図２８】
2019095862.tif 000108
【図２９】
2019095862.tif 000109
【図３０】
2019095862.tif 000110
【図３１Ａ】
2019095862.tif 000111
【図３１Ｂ】
2019095862.tif 000112
【図３２Ａ】
2019095862.tif 000113
【図３２Ｂ】
2019095862.tif 000114
【図３２Ｃ】
2019095862.tif 000115
【図３２Ｄ】
2019095862.tif 000116
【図３２Ｅ】
2019095862.tif 000117
【図３２Ｆ】
2019095862.tif 000118
【図３２Ｇ】
2019095862.tif 000119
【図３２Ｈ】
2019095862.tif 000120
【図３２Ｉ】
2019095862.tif 000121
【図３２Ｊ】
2019095862.tif 000122
【図３３】
2019095862.tif 000123