(57)【特許請求の範囲】
【請求項１】
中間層と全結合層とを有する畳み込みニューラルネットワークの演算を実行する演算処理装置（４）であって、
複数のシストリックアレイセル（２１）と、
複数の前記シストリックアレイセルのそれぞれに対応して設けられ、第１入力用端子（２２ａ）、第２入力用端子（２２ｂ）および第３入力用端子（２２ｃ）を有し、前記第１入力用端子と前記第３入力用端子とが接続された第１入力用接続状態と、前記第２入力用端子と前記第３入力用端子とが接続された第２入力用接続状態との何れか一方に切り替わる複数の入力スイッチ（２２）と、
複数の前記シストリックアレイセルのそれぞれに対応して設けられ、第１出力用端子（２３ａ）、第２出力用端子（２３ｂ）および第３出力用端子（２３ｃ）を有し、前記第１出力用端子と前記第２出力用端子とが接続された第１出力用接続状態と、前記第１出力用端子と前記第３出力用端子とが接続された第２出力用接続状態との何れか一方に切り替わる複数の出力スイッチ（２３）と、
前記中間層の畳み込み演算が実行される場合に、前記第２入力用接続状態となるように前記入力スイッチを切り替えるとともに前記第２出力用接続状態となるように前記出力スイッチを切り替え、前記畳み込み演算を実行するために複数の前記シストリックアレイセルへのデータ入力を制御する畳込演算制御部（１５）と、
前記全結合層の全結合演算が実行される場合に、前記第１入力用接続状態となるように前記入力スイッチを切り替えるとともに前記第１出力用接続状態となるように前記出力スイッチを切り替え、前記全結合演算を実行するために複数の前記シストリックアレイセルへのデータ入力を制御する全結合演算制御部（１６）とを備え、
前記シストリックアレイセルは、
前記シストリックアレイセルに対応して設けられた前記入力スイッチである対応入力スイッチの前記第３入力用端子から入力されるデータの出力タイミングを調整して、前記シストリックアレイセルに対応して設けられた前記出力スイッチである対応出力スイッチの前記第１出力用端子へ出力するタイミング調整部（３０）と、
前記対応入力スイッチの前記第３入力用端子から入力されるデータと予め設定された重み係数とを乗算した乗算値と、前記対応入力スイッチを介することなく入力されるデータとを加算した加算値をセル出力データとして、前記対応出力スイッチを介することなく前記セル出力データを出力する演算部（４０）とを備える
ことを特徴とする演算処理装置。
【請求項２】
前記全結合層の第１層、第２層、・・・、第ｖ層はそれぞれ、行列Ｗ１，Ｗ２，・・・・，Ｗｖを用いて前記全結合演算を実行するものであり、
複数の前記シストリックアレイセルは、二次元行列状に配列され、第ｉ行（ｉは１以上の整数）の第ｊ列（ｊは１以上の整数）に位置する前記シストリックアレイセルの前記重み係数には、下式に示すｗｉ，ｊが設定される
【数１２】
0006387913.tif 000013
ことを特徴とする請求項１に記載の演算処理装置。
【請求項３】
複数の前記シストリックアレイセルは、二次元行列状に配列され、
第１行に位置する前記シストリックアレイセルの前記入力スイッチの前記第１入力用端子は、前記全結合演算のための入力データである全結合演算用入力データが入力されるように接続され、
第２行以上に位置する前記シストリックアレイセルの前記入力スイッチの前記第１入力用端子は、行が１つ小さく且つ列が同じ位置に配置された前記シストリックアレイセルにおける前記出力スイッチの前記第２出力用端子に接続され、
予め設定されたデータ周期をΔｔとし、前記全結合演算用入力データの入力の開始時点からの経過時間をｔとして、前記全結合演算制御部は、前記経過時間がｔ＝ｎ×Δｔ（ｎは０以上の整数）であるときに、第１行の第ｊ列に位置する前記シストリックアレイセルの前記入力スイッチの前記第１入力用端子へ、２次元行列で表される前記全結合演算用入力データとして、（ｎ−ｊ＋１）が０未満のときには値が０となるｘｎ−ｊ＋１，ｊ−１が入力されるように制御する
ことを特徴とする請求項１または請求項２に記載の演算処理装置。
【請求項４】
複数の前記シストリックアレイセルは、行数がｐで列数がｑとなるようにして二次元行列状に配列され（ｐ，ｑは２以上の整数）、
前記全結合演算は、行数がｒで列数がｓとなる行列である全結合演算行列を用いた演算を行い（ｒ，ｓは１以上の整数）、
前記全結合演算制御部は、ｒをｑで除算することにより得られる除算値について小数点以下を切り上げた値をｕとして、前記二次元行列状に配列された複数の前記シストリックアレイセルのｐ個の行のうち、ｕ個の行に配置されているｒ個の前記シストリックアレイセルへ、前記全結合演算のためのｒ個の入力データが入力されるように制御する
ことを特徴とする請求項１に記載の演算処理装置。
【請求項５】
前記全結合層の第１層、第２層、・・・、第ｖ層はそれぞれ、行列Ｗ１，Ｗ２，・・・・，Ｗｖを用いて前記全結合演算を実行するものであり、
複数の前記シストリックアレイセルの前記重み係数には、前記行列Ｗ１，Ｗ２，・・・・，Ｗｖの行列積により算出された値が設定される
ことを特徴とする請求項４に記載の演算処理装置。
【請求項６】
二次元行列状に配列された複数の前記シストリックアレイセルは、互いに隣接するｓ行分の行を１個の行集合として、ｕ個の前記行集合に分割され、
前記行集合を構成する行の中で最も行番号が小さい行に位置する前記シストリックアレイセルの前記入力スイッチの前記第１入力用端子は、前記全結合演算のための前記入力データである全結合演算用入力データが入力されるように接続され、
前記行集合を構成する行の中で最も行番号が小さい行以外に位置する前記シストリックアレイセルの前記入力スイッチの前記第１入力用端子は、行が１つ小さく且つ列が同じ位置の前記シストリックアレイセルにおける前記出力スイッチの前記第２出力用端子に接続され、
予め設定されたデータ周期をΔｔとし、前記全結合演算用入力データの入力の開始時点からの経過時間をｔとし、ｕ個の前記行集合に対して分割番号１，２，・・・，ｕを付すと、
前記全結合演算制御部は、前記経過時間がｔ＝ｎ×Δｔ（ｎは０以上の整数）であるときに、分割番号がｗ（ｗ＝１，２，・・・，ｕ）である前記行集合を構成する行の中で最も行番号が小さい行の第ｊ列に位置する前記シストリックアレイセルの前記入力スイッチの前記第１入力用端子へ、２次元行列で表される前記全結合演算用入力データとして（ｎ−ｊ−ｗ＋２）が０未満のときには値が０となるｘｎ−ｊ−ｗ＋２，ｑ×（ｗ−１）＋ｊ−１が入力されるように制御する
ことを特徴とする請求項４または請求項５に記載の演算処理装置。
【請求項７】
複数の前記シストリックアレイセルは、行数がｐで列数がｑとなるようにして二次元行列状に配列され（ｐ，ｑは２以上の整数）、
前記全結合演算は、行数がｒで列数がｓとなる行列である全結合演算行列を用いた演算を行い（ｒ，ｓは１以上の整数）、
前記全結合演算制御部は、前記全結合演算のための前記入力データであるｒ個の全結合演算用入力データに対して、それぞれｓ個の前記シストリックアレイセルを割り当て、割り当てられたｓ個の前記シストリックアレイセルに対して、対応する１個の前記全結合演算用入力データが入力されるように制御する
ことを特徴とする請求項１に記載の演算処理装置。
【請求項８】
前記全結合層の第１層、第２層、・・・、第ｖ層はそれぞれ、行列Ｗ１，Ｗ２，・・・・，Ｗｖを用いて前記全結合演算を実行するものであり、
複数の前記シストリックアレイセルの前記重み係数には、前記行列Ｗ１，Ｗ２，・・・・，Ｗｖの行列積により算出された値が設定される
ことを特徴とする請求項７に記載の演算処理装置。
【請求項９】
ｒをｑで除算することにより得られる除算値について小数点以下を切り上げた値をｕとし、二次元行列状に配列された複数の前記シストリックアレイセルのｐ個の行のうちｓ行分の行を１個の行集合として、複数の前記シストリックアレイセルがｕ個の前記行集合に分割され、
予め設定されたデータ周期をΔｔとし、前記全結合演算用入力データの入力の開始時点からの経過時間をｔとし、ｕ個の前記行集合に対して分割番号１，２，・・・，ｕを付すと、
前記全結合演算制御部は、前記経過時間がｔ＝ｎ×Δｔ（ｎは０以上の整数）であるときに、分割番号がｗ（ｗ＝１，２，・・・，ｕ）である前記行集合を構成する行の第ｊ列に位置する前記シストリックアレイセルの前記入力スイッチの前記第１入力用端子へ、２次元行列で表される前記全結合演算用入力データとして（ｎ−ｊ−ｗ＋２）が０未満のときには値が０となるｘｎ−ｊ−ｗ＋２，ｑ×（ｗ−１）＋ｊ−１が入力されるように制御する
ことを特徴とする請求項７または請求項８に記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、畳み込みニューラルネットワークの演算を実行する演算処理装置に関する。
【背景技術】
【０００２】
従来、中間層と全結合層とを有する畳み込みニューラルネットワークの演算を実行する演算処理装置が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３１０７００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
畳み込みニューラルネットワークにおいて、全結合層で行われる処理は、中間層で行われる処理とは異なる。このため、演算処理の高速化を図るには、中間層と全結合層のそれぞれに対応した専用回路を用いる必要があり、演算処理装置に搭載される回路基板の面積が増大してしまう。一方、回路基板の面積の増大を抑制するために回路の共有化を図る場合には、全結合層のための回路と、中間層のための回路の少なくとも一方について、他方に合わせた回路構成とする必要があり、演算処理速度が低下してしまう。
【０００５】
本発明は、こうした問題に鑑みてなされたものであり、回路基板の面積の増大と演算処理速度の低下の両方を抑制する演算処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するためになされた本発明は、中間層と全結合層とを有する畳み込みニューラルネットワークの演算を実行する演算処理装置であって、複数のシストリックアレイセルと、複数の入力スイッチと、複数の出力スイッチと、畳込演算制御部と、全結合演算制御部とを備える。
【０００７】
複数の入力スイッチは、複数のシストリックアレイセルのそれぞれに対応して設けられ、第１入力用端子、第２入力用端子および第３入力用端子を有し、第１入力用端子と第３入力用端子とが接続された第１入力用接続状態と、第２入力用端子と第３入力用端子とが接続された第２入力用接続状態との何れか一方に切り替わる。
【０００８】
複数の出力スイッチは、複数のシストリックアレイセルのそれぞれに対応して設けられ、第１出力用端子、第２出力用端子および第３出力用端子を有し、第１出力用端子と第２出力用端子とが接続された第１出力用接続状態と、第１出力用端子と第３出力用端子とが接続された第２出力用接続状態との何れか一方に切り替わる。
【０００９】
畳込演算制御部は、中間層の畳み込み演算が実行される場合に、第２入力用接続状態となるように入力スイッチを切り替えるとともに第２出力用接続状態となるように出力スイッチを切り替え、畳み込み演算を実行するために複数のシストリックアレイセルへのデータ入力を制御する。
【００１０】
全結合演算制御部は、全結合層の全結合演算が実行される場合に、第１入力用接続状態となるように入力スイッチを切り替えるとともに第１出力用接続状態となるように出力スイッチを切り替え、全結合演算を実行するために複数のシストリックアレイセルへのデータ入力を制御する。
【００１１】
シストリックアレイセルは、タイミング調整部と、演算部とを備える。
タイミング調整部は、シストリックアレイセルに対応して設けられた入力スイッチである対応入力スイッチの第３入力用端子から入力されるデータの出力タイミングを調整して、シストリックアレイセルに対応して設けられた出力スイッチである対応出力スイッチの第１出力用端子へ出力する。
【００１２】
演算部は、対応入力スイッチの第３入力用端子から入力されるデータと予め設定された重み係数とを乗算した乗算値と、対応入力スイッチを介することなく入力されるデータとを加算した加算値をセル出力データとして、対応出力スイッチを介することなくセル出力データを出力する。
【００１３】
このように構成された本発明の演算処理装置は、複数の入力スイッチを第２入力用接続状態に切り替えるとともに複数の出力スイッチを第２出力用接続状態に切り替えることにより、シストリックアレイセルに中間層の畳み込み演算を実行させることができる。また、本発明の演算処理装置は、複数の入力スイッチを第１入力用接続状態に切り替えるとともに複数の出力スイッチを第１出力用接続状態に切り替えることにより、シストリックアレイセルに全結合層の全結合演算を実行させることができる。
【００１４】
このように本発明の演算処理装置は、複数の入力スイッチと複数の出力スイッチを追加することにより、換言すると、複数のシストリックアレイセルの構成を変えることなく、複数のシストリックアレイセルに中間層の畳み込み演算と全結合層の全結合演算の両方を複数のシストリックアレイセルに実行させることができる。
【００１５】
このため、本発明の演算処理装置は、畳み込み演算と全結合演算の共有化を図るために、畳み込み演算のための回路と、全結合演算のための回路の少なくとも一方について、他方の回路に合わせた回路構成とすることを必要最低限に抑えることができる。これにより、本発明の演算処理装置は、回路基板の面積の増大と演算処理速度の低下の両方を抑制して、中間層の畳み込み演算を行う回路と全結合層の全結合演算を行う回路とを共有化することができる。
【図面の簡単な説明】
【００１６】
【図１】運転支援装置１の構成を示すブロック図である。
【図２】畳み込みニューラルネットワークＣＮＮの構成を示す図である。
【図３】畳み込み演算の方法を説明する図である。
【図４】全結合層群Ｇ２の処理を説明する図である。
【図５】全結合層Ｌｊ１が実行する演算を示す図である。
【図６】演算処理装置４の構成を示すブロック図である。
【図７】第１実施形態のシストリックアレイ１１の構成を示す回路図である。
【図８】シストリックアレイセル２１の構成を示す回路図である。
【図９】第１実施形態の全結合演算制御部１６によるデータ出力方法を説明する図である。
【図１０】第２実施形態のシストリックアレイ１１の構成を示す回路図である。
【図１１】第２実施形態の全結合演算制御部１６によるデータ出力方法を説明する図である。
【図１２】第３実施形態のシストリックアレイ１１の構成を示す回路図である。
【図１３】第３実施形態の全結合演算制御部１６によるデータ出力方法を説明する図である。
【発明を実施するための形態】
【００１７】
（第１実施形態）
以下に本発明の第１実施形態を図面とともに説明する。
本実施形態の運転支援装置１は、車両に搭載され、図１に示すように、カメラ２と、記憶装置３と、演算処理装置４と、画像処理装置５と、表示装置６とを備える。
【００１８】
運転支援装置１は、車両の前方に歩行者が存在する場合に、歩行者が存在する位置を示す画像を表示装置６に表示させることにより、歩行者の存在を運転者に報知する。
カメラ２は、運転者がウインドシールド越しに視認可能な自車両前方の風景（以下、前景ともいう）を連続して撮影する。
【００１９】
記憶装置３は、カメラ２により撮影された画像データを一時的に記憶する。
演算処理装置４は、記憶装置３から画像データを取得し、画像データが示す前景内に歩行者が存在するか否かを検出するための演算処理を実行する。
【００２０】
画像処理装置５は、記憶装置３からの画像データと、演算処理装置４による検出結果とに基づいて、表示装置６に表示させる表示データを生成する。
表示装置６は、液晶ディスプレイ等の表示画面を有するカラー表示装置であり、画像処理装置５からの表示データの入力に応じて各種画像を表示画面に表示する。
【００２１】
演算処理装置４は、畳み込みニューラルネットワーク（Convolutional Neural Network）を利用して、カメラ２により撮影された画像内の歩行者を検出する。
畳み込みニューラルネットワークＣＮＮは、図２に示すように、中間層群Ｇ１と全結合層群Ｇ２を備える。中間層群Ｇ１は、複数の中間層Ｌｍ１，Ｌｍ２，・・・・を備える。全結合層群Ｇ２は、１以上の全結合層Ｌｊ１，Ｌｊ２，・・・・を備える。さらに、複数の中間層Ｌｍ１，Ｌｍ２，・・・・はそれぞれ、畳み込み層Ｌｃおよびプーリング層Ｌｐを備える。
【００２２】
次に、中間層群Ｇ１が３個の中間層Ｌｍ１，Ｌｍ２，Ｌｍ３で構成されている場合を例として、中間層群Ｇ１の処理を説明する。
図３に示すように、中間層群Ｇ１の中間層Ｌｍ１は、入力画像Ｄ０に対して、予め設定された特徴抽出フィルタＦｃ１で走査（例えばラスタスキャン）することにより、周知の畳み込み演算を行う。特徴抽出フィルタＦｃ１は、歩行者の特徴を抽出するために、２次元行列状に重み係数を配列して構成されている。特徴抽出フィルタＦｃ１は、抽出する特徴の数に応じて、１または複数（図３では４つ）設けられる。
【００２３】
畳み込み演算は、例えば下式（１）に示す関数を用いて行われる。なお、下式（１）のＷｐ，ｑは、Ｎ×Ｎ画素の特徴抽出フィルタＦｃ１において第ｐ行の第ｑ列に位置する重み係数を示す（ｐ，ｑ，Ｎは正の整数）。また、下式（１）のＸｉ，ｊは、入力画像において第（ｉ＋ｐ−１）行の第（ｊ＋ｑ−１）列に位置する画素の値を示す（ｉ，ｊは正の整数）。
【００２４】
【数１】
0006387913.tif 000002
この畳み込み演算によって、第ｉ行の第ｊ列に位置する要素を式（１）のＹｉｊとして二次元行列状に配列した特徴マップＭｃ１が特徴抽出フィルタＦｃ１毎に生成される。図３では、４つの特徴抽出フィルタＦｃ１が用いられているため、４つの特徴マップＭｃ１が生成される。
【００２５】
さらに、中間層群Ｇ１の中間層Ｌｍ１は、畳み込み演算後の特徴マップＭｃ１の各要素Ｙｉｊに対して、周知の活性化処理を行う。活性化処理は、例えは下式（２）に示すＲｅＬＵ（Rectified Linear Unit）関数などを用いて行われる。なお、上記の畳み込み演算と活性化処理は、中間層Ｌｍ１の畳み込み層Ｌｃで行われる。
【００２６】
【数２】
0006387913.tif 000003
さらに、中間層Ｌｍ１は、活性化処理後の特徴マップＭｃ１に対して、周知のプーリング処理を行うことにより、特徴マップＭｃ１のサイズを縮小する。プーリング処理は、特徴マップＭｃ１を例えば２×２画素の領域に分割し、下式（３）に示す最大プーリング関数などを用いて、分割された領域毎に値を算出する処理である。なお、上記のプーリング処理は、中間層Ｌｍ１のプーリング層Ｌｐで行われる。
【００２７】
【数３】
0006387913.tif 000004
また、中間層群Ｇ１の中間層Ｌｍ２は、プーリング処理後の特徴マップＭｃ１に対して、予め設定された特徴抽出フィルタＦｃ２で走査することにより、周知の畳み込み演算を行う。特徴抽出フィルタＦｃ２は、特徴抽出フィルタＦｃ１よりも複雑な歩行者の特徴を抽出するために、２次元行列状に重み係数を配列して構成されている。特徴抽出フィルタＦｃ２は、抽出する特徴の数に応じて、１個または複数個（図３では３個）設けられる。なお、図３では中間層Ｌｍ１は４つの特徴マップＭｃ１を生成している。このため、４つの特徴マップＭｃ１のそれぞれに対して１つの特徴抽出フィルタＦｃ２で走査することにより上式（１）の畳み込み演算を行った４つの演算結果を累積加算し、１つの特徴マップＭｃ２を生成する。図３では、３つの特徴抽出フィルタＦｃ２が用いられているため、３つの特徴マップＭｃ２が生成される。
【００２８】
さらに、中間層群Ｇ１の中間層Ｌｍ２は、畳み込み演算後の特徴マップＭｃ２の各要素に対して、周知の活性化処理を行う。なお、上記の畳み込み演算と活性化処理は、中間層Ｌｍ２の畳み込み層Ｌｃで行われる。
【００２９】
さらに、中間層Ｌｍ２は、活性化処理後の特徴マップＭｃ２に対して、周知のプーリング処理を行うことにより、特徴マップＭｃ２のサイズを縮小する。なお、上記のプーリング処理は、中間層Ｌｍ２のプーリング層Ｌｐで行われる。
【００３０】
また、中間層群Ｇ１の中間層Ｌｍ３は、プーリング処理後の特徴マップＭｃ２に対して、予め設定された特徴抽出フィルタＦｃ３で走査することにより、周知の畳み込み演算を行う。特徴抽出フィルタＦｃ３は、特徴抽出フィルタＦｃ２よりも複雑な歩行者の特徴を抽出するために、２次元行列状に重み係数を配列して構成されている。特徴抽出フィルタＦｃ３は、抽出する特徴の数に応じて、１個または複数個（図３では１個）設けられる。なお、図３では中間層Ｌｍ２は３つの特徴マップＭｃ２を生成している。このため、３つの特徴マップＭｃ２のそれぞれに対して１つの特徴抽出フィルタＦｃ３で走査することにより上式（１）の畳み込み演算を行った３つの演算結果を累積加算し、１つの特徴マップＭｃ３を生成する。図３では、１つの特徴抽出フィルタＦｃ３が用いられているため、１つの特徴マップＭｃ３が生成される。
【００３１】
さらに、中間層群Ｇ１の中間層Ｌｍ３は、畳み込み演算後の特徴マップＭｃ３の各要素に対して、周知の活性化処理を行う。なお、上記の畳み込み演算と活性化処理は、中間層Ｌｍ３の畳み込み層Ｌｃで行われる。
【００３２】
さらに中間層Ｌｍ３は、活性化処理後の特徴マップＭｃ３に対して、周知のプーリング処理を行うことにより、特徴マップＭｃ３のサイズを縮小する。なお、上記のプーリング処理は、中間層Ｌｍ３のプーリング層Ｌｐで行われる。
【００３３】
そして中間層Ｌｍ３は、プーリング処理後の特徴マップＭｃ３を全結合層群Ｇ２へ出力する。
次に、全結合層群Ｇ２が２つの全結合層Ｌｊ１，Ｌｊ２で構成されている場合を例として、全結合層群Ｇ２の処理を説明する。
【００３４】
図４に示すように、カメラ２により撮影された画像の撮影領域Ｒｓ内に、歩行者を検出するためのｓ枚（ｓは整数）の検出ウインドウＷｄ１，Ｗｄ２，Ｗｄ３，Ｗｄ４，・・・，Ｗｄｓが設定されている。検出ウインドウＷｄ１，Ｗｄ２，Ｗｄ３，Ｗｄ４，・・・，Ｗｄｓは、互いに同一の形状を有する矩形状に形成されており、ｓ枚の検出ウインドウで撮影領域Ｒｓ全体を覆うことができるようにして、互いに異なる領域に配置される。
【００３５】
全結合層群Ｇ２へ出力された特徴マップＭｃ３について検出ウインドウＷｄｉ（ｉ＝１，２，３，４，・・・，ｓ）の領域に対応する要素を下式（４）に示すように表記する。この場合に、全結合層Ｌｊ１は、下式（５）および図５に示す演算を行う。
【００３６】
【数４】
0006387913.tif 000005
次に、全結合層Ｌｊ２は、下式（６）に示す演算を行い、この演算結果を最終的な演算結果として出力する。
【００３７】
【数５】
0006387913.tif 000006
演算処理装置４は、図６に示すように、シストリックアレイ１１、活性化処理部１２、プーリング処理部１３、記憶部１４、畳込演算制御部１５、全結合演算制御部１６および検出部１７を備える。
【００３８】
シストリックアレイ１１は、中間層Ｌｍ１，Ｌｍ２，・・・・の畳み込み演算と、全結合層Ｌｊ１，Ｌｊ２，・・・・の演算（以下、全結合演算という）を行い、畳み込み演算の演算結果データ（以下、畳込演算結果データという）と、全結合演算の演算結果データ（以下、全結合演算結果データという）を出力する。
【００３９】
活性化処理部１２は、シストリックアレイ１１から出力された畳込演算結果データに対して上記の活性化処理を行う。プーリング処理部１３は、活性化処理部１２から出力された畳込演算結果データに対して上記のプーリング処理を行う。記憶部１４は、プーリング処理部１３から出力された畳込演算結果データを記憶する。
【００４０】
畳込演算制御部１５は、記憶装置３から画像データを取得するとともに、記憶部１４から畳込演算結果データを取得する。そして畳込演算制御部１５は、シストリックアレイ１１に畳み込み演算を実行させるために、シストリックアレイ１１へデータを出力するタイミングの制御と、シストリックアレイ１１の重み係数（後述）の設定と、シストリックアレイ１１のスイッチ２２，２３（後述）の切り替えを行う。
【００４１】
全結合演算制御部１６は、記憶部１４から畳込演算結果データを取得する。そして全結合演算制御部１６は、シストリックアレイ１１に全結合演算を実行させるために、シストリックアレイ１１へデータを出力するタイミングの制御と、シストリックアレイ１１の重み係数（後述）の設定と、シストリックアレイ１１のスイッチ２２，２３（後述）の切り替えを行う。
【００４２】
なお、畳込演算制御部１５が動作している間は、全結合演算制御部１６は動作しない。同様に、全結合演算制御部１６が動作している間は、畳込演算制御部１５は動作しない。
検出部１７は、シストリックアレイ１１から出力された全結合演算結果データに基づいて、カメラ２により撮影された画像内の歩行者を検出し、検出結果を示す検出データを画像処理装置５へ出力する。
【００４３】
シストリックアレイ１１は、図７に示すように、（ｋ＋１）行×（ｌ＋１）列で二次元行列状に配列された複数のシストリックアレイセル２１と、複数のシストリックアレイセル２１のそれぞれに対応して設けられた複数の入力スイッチ２２および出力スイッチ２３とを備える（ｋ，ｌは１以上の整数）。
【００４４】
入力スイッチ２２は、２つの入力端子２２ａ，２２ｂと１つの出力端子２２ｃとを備える。出力端子２２ｃは、対応するシストリックアレイセル２１に接続される。
出力スイッチ２３は、１つの入力端子２３ａと２つの出力端子２３ｂ，２３ｃとを備える。入力端子２３ａは、対応するシストリックアレイセル２１に接続される。
【００４５】
第１行の第ｊ列（ｊ＝１，２，・・・，ｌ＋１）に位置するシストリックアレイセル２１（図７のシストリックアレイセルａ０，０，ａ０，１，ａ０，２，・・・，ａ０，ｌを参照）に対応する入力スイッチ２２の入力端子２２ａは、全結合演算制御部１６に接続され、全結合演算制御部１６から畳込演算結果データが入力される。
【００４６】
第ｉ行（ｉ＝２，・・・，ｋ＋１）の第ｊ列（ｊ＝１，２，・・・，ｌ＋１）に位置するシストリックアレイセル２１（図７のシストリックアレイセルａ１，０，ａ１，１，ａ１，２，・・・，ａ１，ｌ，・・・，ａｋ，０，ａｋ，１，ａｋ，２，・・・，ａｋ，ｌを参照）の入力端子２２ａは、第（ｉ−１）行の第ｊ列に位置するシストリックアレイセル２１の出力スイッチ２３の出力端子２３ｂに接続される。
【００４７】
第ｉ行（ｉ＝１，２，・・・，ｋ＋１）の第１列に位置するシストリックアレイセル２１（図７のシストリックアレイセルａ０，０，ａ１，０，・・・，ａｋ，０を参照）に対応する入力スイッチ２２の入力端子２２ｂは、畳込演算制御部１５に接続され、畳込演算制御部１５から画像データと畳込演算結果データが入力される。
【００４８】
第ｉ行（ｉ＝１，２，・・・，ｋ＋１）の第ｊ列（ｊ＝２，・・・，ｌ＋１）に位置するシストリックアレイセル２１（図７のシストリックアレイセルａ０，１，ａ０，２，・・・，ａ０，ｌ，ａ１，１，ａ１，２，・・・，ａ１，ｌ，・・・，ａｋ，１，ａｋ，２，・・・，ａｋ，ｌを参照）に対応する入力スイッチ２２の入力端子２２ｂは、第ｉ行の第（ｊ−１）列に位置するシストリックアレイセル２１の出力スイッチ２３の出力端子２３ｃに接続される。
【００４９】
またシストリックアレイ１１は、（ｋ＋１）個の加算器２４と、（ｋ＋１）個のフリップフロップ回路２５とを備える。
（ｋ＋１）個の加算器２４はそれぞれ、第（ｌ＋１）列に位置する（ｋ＋１）個のシストリックアレイセル２１に対応して設けられており、対応するシストリックアレイセル２１からのデータが入力される。
【００５０】
また、第１行の第（ｌ＋１）列に位置するシストリックアレイセル２１（図７のシストリックアレイセルａ０，ｌを参照）に対応する加算器２４には、予め設定された初期値を示すデータが入力される。さらに、第ｉ行（ｉ＝２，・・・，ｋ＋１）の第（ｌ＋１）列に位置するシストリックアレイセル２１（図７のシストリックアレイセルａ１，ｌ，・・・，ａｋ，ｌを参照）に対応する加算器２４には、第（ｉ−１）行の加算器２４からの加算結果を示すデータが入力される。
【００５１】
（ｋ＋１）個のフリップフロップ回路２５はそれぞれ、（ｋ＋１）個の加算器２４に対応して設けられており、対応する加算器２４からの加算結果を示すデータを出力するタイミングを調整する。
【００５２】
シストリックアレイセル２１は、図８に示すように、タイミング調整部３０と演算部４０を備える。
タイミング調整部３０は、入力スイッチ２２から入力されたデータのタイミングを調整して出力スイッチ２３へ出力するためのものであり、フリップフロップ回路３１，３２を備える。フリップフロップ回路３１，３２は、データ入力端子にデータが入力されると、この入力データを予め設定された出力タイミングでデータ出力端子から出力する。
【００５３】
フリップフロップ回路３１のデータ入力端子は、入力スイッチ２２の出力端子２２ｃに接続され、フリップフロップ回路３１のデータ出力端子は、フリップフロップ回路３２のデータ入力端子に接続される。フリップフロップ回路３２のデータ出力端子は、出力スイッチ２３の入力端子２３ａに接続される。
【００５４】
演算部４０は、レジスタ４１、乗算器４２、加算器４３およびフリップフロップ回路４４を備える。
レジスタ４１は、畳込演算制御部１５により畳み込み演算の重み係数が設定される。またレジスタ４１は、全結合演算制御部１６により全結合演算の重み係数が設定される。
【００５５】
乗算器４２は、タイミング調整部３０から出力されるデータと、レジスタ４１に設定されているデータとの乗算値を算出して、この乗算値を示すデータを出力する。
加算器４３は、乗算器４２から出力されるデータと、前段のシストリックアレイセル２１から出力されるデータとの加算値を算出して、この加算値を示すデータを出力する。なお、第ｉ行の第ｊ列に位置するシストリックアレイセル２１における前段のシストリックアレイセル２１とは、第ｉ行の第（ｊ−１）列に位置するシストリックアレイセル２１である。
【００５６】
フリップフロップ回路４４は、データ入力端子にデータが入力されると、この入力データを予め設定された出力タイミングでデータ出力端子から出力する。フリップフロップ回路４４のデータ入力端子は加算器４３に接続される。フリップフロップ回路４４のデータ出力端子は、後段のシストリックアレイセル２１の加算器４３に接続される。なお、第ｉ行の第ｊ列に位置するシストリックアレイセル２１における後段のシストリックアレイセル２１とは、第ｉ行の第（ｊ＋１）列に位置するシストリックアレイセル２１である。
【００５７】
畳込演算制御部１５は、畳み込み演算を実行する場合に、シストリックアレイ１１のスイッチ２２，２３に対して、畳み込み演算を実行するための切り替えを行う。具体的には、畳込演算制御部１５は、入力スイッチ２２に対して、２つの入力端子２２ａ，２２ｂのうち入力端子２２ｂを選択し、入力端子２２ｂから入力されたデータを出力端子２２ｃから出力するようにデータ入出力経路を切り替える。さらに畳込演算制御部１５は、出力スイッチ２３に対して、２つの出力端子２３ｂ，２３ｃのうち出力端子２３ｃを選択し、入力端子２３ａから入力されたデータを出力端子２３ｃから出力するようにデータ入出力経路を切り替える。
【００５８】
また畳込演算制御部１５は、畳み込み演算を実行する場合に、畳み込み演算の重み係数をシストリックアレイセル２１のレジスタ４１に設定する。そして畳込演算制御部１５は、画像データまたは畳込演算結果データを、第ｉ行（ｉ＝１，２，・・・，ｋ＋１）の第１列に位置するシストリックアレイセル２１に対応するスイッチ２２の入力端子２２ｂへ出力する。
【００５９】
例えば、畳込演算制御部１５が、第ｉ行（ｉ＝１，２，・・・，ｋ＋１）の第ｊ列（ｊ＝１，２，・・・，ｌ＋１）に位置するシストリックアレイセル２１のレジスタ４１に重み係数Ｗｉ−１，ｊ−１を設定したとする。さらに、第ｉ行（ｉ＝１，２，・・・，ｋ＋１）の第１列に位置するシストリックアレイセル２１のスイッチ２２の入力端子２２ｂへデータＸｉ−１，０，Ｘｉ−１，１，Ｘｉ−１，２，・・・，Ｘｉ−１，ｌを順次出力するとする。
【００６０】
この場合には、第ｉ行（ｉ＝１，２，・・・，ｋ＋１）の第（ｌ＋１）列に位置するシストリックアレイセル２１の演算部４０から、下式（７）に示すデータＲｉ−１が出力される。
【００６１】
【数６】
0006387913.tif 000007
そして、第（ｋ＋１）行の第（ｌ＋１）列に位置するシストリックアレイセル２１（図７のシストリックアレイセルａｋ，ｌを参照）に対応する加算器２４から下式（８）に示す畳込演算出力データＲｃが出力される。
【００６２】
【数７】
0006387913.tif 000008
一方、全結合演算制御部１６は、全結合演算を実行する場合に、シストリックアレイ１１のスイッチ２２，２３に対して、全結合演算を実行するための切り替えを行う。具体的には、全結合演算制御部１６は、入力スイッチ２２に対して、２つの入力端子２２ａ，２２ｂのうち入力端子２２ａを選択し、入力端子２２ａから入力されたデータを出力端子２２ｃから出力するようにデータ入出力経路を切り替える。さらに全結合演算制御部１６は、出力スイッチ２３に対して、２つの出力端子２３ｂ，２３ｃのうち出力端子２３ｂを選択し、入力端子２３ａから入力されたデータを出力端子２３ｂから出力するようにデータ入出力経路を切り替える。
【００６３】
また全結合演算制御部１６は、全結合演算を実行する場合に、全結合演算の重み係数をシストリックアレイセル２１のレジスタ４１に設定する。
例えば、全結合層群Ｇ２が全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖを備えているとする（ｖは１以上の整数）。また、全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖはそれぞれ、行列Ｗ１，Ｗ２，・・・・，Ｗｖを用いて全結合演算を実行するとする。行列Ｗ１，Ｗ２，・・・・，Ｗｖはそれぞれ、（ｍ０×ｍ１）行列、（ｍ１×ｍ２）行列、・・・・，（ｍｖ−１×ｍｖ）行列である。そして全結合演算制御部１６は、第（ｉ＋１）行（ｉ＝０，１，２，・・・，ｋ）の第（ｊ＋１）列（ｊ＝０，１，２，・・・，ｌ）に位置するシストリックアレイセル２１のレジスタ４１に、下式（９）に示す重み係数ｗｉ，ｊを設定する。なお、式（９）において、ＷＴは、行列Ｗの転置行列であることを示す。
【００６４】
【数８】
0006387913.tif 000009
そして全結合演算制御部１６は、中間層群Ｇ１から全結合層群Ｇ２へ出力された畳込演算結果データを、第１行の第ｊ列（ｉ＝１，２，・・・，ｌ＋１）に位置するシストリックアレイセル２１に対応するスイッチ２２の入力端子２２ａへ出力する。
【００６５】
例えば図９に示すように、全結合演算制御部１６は、予め設定された出力周期Δｔが経過する毎に、畳込演算結果データをシストリックアレイ１１へ出力する。畳込演算結果データの出力を開始した時点からの経過時間ｔがｎ×Δｔ（ｎは０以上の整数）であるときに、第１行の第ｊ列（ｊ＝１，２，・・・，ｌ＋１）に位置するシストリックアレイセル２１へ出力される畳込演算結果データは、ｘｎ＋１−ｊ，ｊ−１である。但し、（ｎ＋１−ｊ）＜０である場合には、ｘｎ＋１−ｊ，ｊ−１＝０である。
【００６６】
この場合には、第ｉ行（ｉ＝１，２，・・・，ｋ＋１）の第（ｌ＋１）列に位置するシストリックアレイセル２１の演算部４０から、下式（１０）に示すデータＲｉ−１が出力される。
【００６７】
【数９】
0006387913.tif 000010
このように構成された演算処理装置４は、複数のシストリックアレイセル２１と、複数の入力スイッチ２２と、複数の出力スイッチ２３と、畳込演算制御部１５と、全結合演算制御部１６とを備える。
【００６８】
複数の入力スイッチ２２は、複数のシストリックアレイセル２１のそれぞれに対応して設けられ、入力端子２２ａ，２２ｂと出力端子２２ｃを有する。そして、複数の入力スイッチ２２は、入力端子２２ａと出力端子２２ｃとが接続された状態（以下、第１入力用接続状態という）と、入力端子２２ｂと出力端子２２ｃとが接続された状態（以下、第２入力用接続状態という）との何れか一方に切り替わる。
【００６９】
複数の出力スイッチ２３は、複数のシストリックアレイセル２１のそれぞれに対応して設けられ、入力端子２３ａと出力端子２３ｂ，２３ｃを有する。そして、複数の出力スイッチ２３は、入力端子２３ａと出力端子２３ｂとが接続された状態（以下、第１出力用接続状態という）と、入力端子２３ａと出力端子２３ｃとが接続された状態（以下、第２出力用接続状態という）との何れか一方に切り替わる。
【００７０】
畳込演算制御部１５は、中間層Ｌｍ１，Ｌｍ２，・・・・の畳み込み演算が実行される場合に、第２入力用接続状態となるように入力スイッチ２２を切り替えるとともに第２出力用接続状態となるように出力スイッチ２３を切り替え、中間層の畳み込み演算を実行するために複数のシストリックアレイセル２１へのデータ入力を制御する。
【００７１】
全結合演算制御部１６は、全結合層Ｌｊ１，Ｌｊ２，・・・・の全結合演算が実行される場合に、第１入力用接続状態となるように入力スイッチ２２を切り替えるとともに第１出力用接続状態となるように出力スイッチ２３を切り替え、全結合演算を実行するために複数のシストリックアレイセル２１へのデータ入力を制御する。
【００７２】
シストリックアレイセル２１は、タイミング調整部３０と、演算部４０とを備える。
タイミング調整部３０は、入力スイッチ２２の出力端子２２ｃから入力されるデータの出力タイミングを調整して、出力スイッチ２３の入力端子２３ａへ出力する。
【００７３】
演算部４０は、入力スイッチ２２の出力端子２２ｃから入力されるデータと予め設定された重み係数とを乗算した乗算値と、入力スイッチ２２を介することなく入力されるデータとを加算した加算値を、出力スイッチ２３を介することなく出力する。
【００７４】
このように構成された演算処理装置４は、複数の入力スイッチ２２を第２入力用接続状態に切り替えるとともに複数の出力スイッチ２３を第２出力用接続状態に切り替えることにより、シストリックアレイセル２１に中間層Ｌｍ１，Ｌｍ２，・・・・の畳み込み演算を実行させることができる。また演算処理装置４は、複数の入力スイッチ２２を第１入力用接続状態に切り替えるとともに複数の出力スイッチ２３を第１出力用接続状態に切り替えることにより、シストリックアレイセル２１に全結合層Ｌｊ１，Ｌｊ２，・・・・の全結合演算を実行させることができる。
【００７５】
このように演算処理装置４は、複数の入力スイッチ２２と複数の出力スイッチ２３を追加することにより、換言すると、複数のシストリックアレイセル２１の構成を変えることなく、複数のシストリックアレイセル２１に中間層Ｌｍ１，Ｌｍ２，・・・・の畳み込み演算と全結合層Ｌｊ１，Ｌｊ２，・・・・の全結合演算の両方を複数のシストリックアレイセル２１に実行させることができる。
【００７６】
このため、演算処理装置４は、畳み込み演算と全結合演算の共有化を図るために、畳み込み演算のための回路と、全結合演算のための回路の少なくとも一方について、他方の回路に合わせた回路構成とすることを必要最低限に抑えることができる。これにより、演算処理装置４は、回路基板の面積の増大と演算処理速度の低下の両方を抑制して、中間層Ｌｍ１，Ｌｍ２，・・・・の畳み込み演算を行う回路と全結合層Ｌｊ１，Ｌｊ２，・・・・の全結合演算を行う回路とを共有化することができる。
【００７７】
また、全結合層群Ｇ２が全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖを備えており、全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖはそれぞれ、行列Ｗ１，Ｗ２，・・・・，Ｗｖを用いて全結合演算を実行するとする。そして、複数のシストリックアレイセル２１は、二次元行列状に配列されている。この場合に、第（ｉ＋１）行（ｉ＝０，１，２，・・・，ｋ）の第（ｊ＋１）列（ｊ＝０，１，２，・・・，ｌ）に位置するシストリックアレイセル２１のレジスタ４１に、上式（９）に示す重み係数ｗｉ，ｊが設定される。
【００７８】
これにより、演算処理装置４は、全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖの全結合演算を全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖの順に実行する必要がなく、全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖの全結合演算をまとめて実行することができる。このため、演算処理装置４は、全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖの全結合演算を実行するために必要な計算量を低減することができる。
【００７９】
例えば、全結合層群Ｇ２が２つの全結合層Ｌｊ１，Ｌｊ２で構成されている場合に、全結合層Ｌｊ１が、ｓ行×ｍ０列の行列Ｘと、ｍｏ行×ｍ１列の行列Ｗ１との行列積Ｙを算出し、全結合層Ｌｊ２が、ｓ行×ｍ１列の行列Ｙと、ｍ１行×ｍ２列の行列Ｗ２との行列積Ｚを算出するとする。
【００８０】
全結合層Ｌｊ１の全結合演算では、Ｙ＝Ｘ×Ｗ１を算出するために、（ｓ×ｍ０×ｍ１）回の乗算を行う必要がある。また、全結合層Ｌｊ２の全結合演算では、Ｚ＝Ｙ×Ｗ２を算出するために、（ｓ×ｍ１×ｍ２）回の乗算を行う必要がある。このため、全結合層Ｌｊ１，Ｌｊ２の全結合演算を全結合層Ｌｊ１，Ｌｊ２の順に実行すると、（ｓ×ｍ０×ｍ１＋ｓ×ｍ１×ｍ２）回の乗算を行う必要がある。
【００８１】
一方、Ｚ＝Ｙ×Ｗ２＝（Ｘ×Ｗ１）×Ｗ２＝Ｘ×（Ｗ１×Ｗ２）である。このため、Ｗ＝（Ｗ１×Ｗ２）を事前に計算することで、Ｚ＝Ｘ×Ｗの計算を行い、Ｚを算出することができる。Ｗは、ｍｏ行×ｍ１列の行列Ｗ１と、ｍ１行×ｍ２列の行列Ｗ２との行列積であるため、ｍｏ行×ｍ２列の行列である。このため、Ｚ＝Ｘ×Ｗの計算では、（ｓ×ｍ０×ｍ２）回の乗算を行う必要がある。
【００８２】
したがって、Ｚ＝Ｘ×Ｗを算出する場合の乗算回数と、Ｙ＝Ｘ×Ｗ１とＺ＝Ｙ×Ｗ２を算出する場合の乗算回数との比は、（ｓ×ｍ０×ｍ２）／（ｓ×ｍ０×ｍ１＋ｓ×ｍ１×ｍ２）＝（ｍ０×ｍ２）／｛ｍ１×（ｍ０＋ｍ２）｝である。
【００８３】
例えば、ｓ＝２００×１００、ｍ０＝１０００、ｍ１＝１０００、ｍ２＝１００の場合には、（ｍ０×ｍ２）／｛ｍ１×（ｍ０＋ｍ２）｝＝１／１１であり、計算量を１１分の１に低減することができる。
【００８４】
また、第１行に位置するシストリックアレイセル２１の入力スイッチ２２の入力端子２２ａは、全結合演算制御部１６に接続されている。また、第２行以上に位置するシストリックアレイセル２１の入力スイッチ２２の入力端子２２ａは、行が１つ小さく且つ列が同じ位置に配置されたシストリックアレイセル２１における出力スイッチ２３の出力端子２３ｂに接続される。
【００８５】
そして、全結合演算制御部１６は、経過時間ｔがｎ×Δｔ（ｎは０以上の整数）であるときに、第１行の第ｊ列に位置するシストリックアレイセル２１の入力スイッチ２２の入力端子２２ａへ、２次元行列で表される畳込演算結果データとして、（ｎ−ｊ＋１）が０未満のときには値が０となるｘｎ−ｊ＋１，ｊ−１が入力されるように制御する。これにより、シストリックアレイ１１は、上式（１０）に示すデータＲｉ−１を、全結合演算結果データとして算出することができる。
【００８６】
以上説明した実施形態において、入力端子２２ａは本発明における第１入力用端子、入力端子２２ｂは本発明における第２入力用端子、出力端子２２ｃは本発明における第３入力用端子、入力端子２３ａは本発明における第１出力用端子、出力端子２３ｂは本発明における第２出力用端子、出力端子２３ｃは本発明における第３出力用端子である。
【００８７】
（第２実施形態）
以下に本発明の第２実施形態を図面とともに説明する。なお第２実施形態では、第１実施形態と異なる部分を説明する。
【００８８】
第２実施形態の運転支援装置１は、シストリックアレイ１１の構成が第１実施形態と異なる。
第２実施形態のシストリックアレイ１１は、図１０に示すように、２つのアレイセル群６１，６２を備える。アレイセル群６１は、３行×３列で二次元行列状に配列された９個のシストリックアレイセル２１（シストリックアレイセルａ０，０，ａ０，１，ａ０，２，・・・，ａ２，２を参照）を備える。アレイセル群６２は、３行×３列で二次元行列状に配列された９個のシストリックアレイセル２１（シストリックアレイセルｂ０，０，ｂ０，１，ｂ０，２を参照）を備える。なお、図１０では、アレイセル群６２が備える９個のシストリックアレイセル２１のうち、シストリックアレイセルｂ０，０，ｂ０，１，ｂ０，２を示している。
【００８９】
アレイセル群６１の第１，３行の第ｊ列（ｊ＝１，２，３）に位置するシストリックアレイセル２１（図１０のシストリックアレイセルａ０，０，ａ０，１，ａ０，２，ａ２，０，ａ２，１，ａ２，２を参照）に対応する入力スイッチ２２の入力端子２２ａは、全結合演算制御部１６に接続される。そして、全結合演算制御部１６から畳込演算結果データが入力される。
【００９０】
アレイセル群６１の第２行の第ｊ列（ｊ＝１，２，３）に位置するシストリックアレイセル２１（図１０のシストリックアレイセルａ１，０，ａ１，１，ａ１，２を参照）の入力端子２２ａは、第１行の第ｊ列に位置するシストリックアレイセル２１の出力スイッチ２３の出力端子２３ｂに接続される。
【００９１】
アレイセル群６１，６２の第ｉ行（ｉ＝１，２，３）の第１列に位置するシストリックアレイセル２１に対応する入力スイッチ２２の入力端子２２ｂは、畳込演算制御部１５に接続される。そして、畳込演算制御部１５から画像データと畳込演算結果データが入力される。
【００９２】
アレイセル群６２の第１行の第ｊ列（ｊ＝１，２，３）に位置するシストリックアレイセル２１（図１０のシストリックアレイセルｂ０，０，ｂ０，１，ｂ０，２を参照）の入力端子２２ａは、アレイセル群６１の第３行の第ｊ列に位置するシストリックアレイセル２１の出力スイッチ２３の出力端子２３ｂに接続される。
【００９３】
またシストリックアレイ１１は、スイッチ７１，７２，７３，７４と、加算器８１，８２，８３，８４と、フリップフロップ回路９１，９２，９３，９４と、スイッチ１０１，１０２，１０３，１０４とを備える。
【００９４】
スイッチ７１，７２，７３，７４はそれぞれ、入力端子７１ａ，７２ａ，７３ａ，７４ａおよび入力端子７１ｂ，７２ｂ，７３ｂ，７４ｂと、出力端子７１ｃ，７２ｃ，７３ｃ，７４ｃとを備える。
【００９５】
スイッチ１０１，１０２，１０３，１０４はそれぞれ、入力端子１０１ａ，１０２ａ，１０３ａ，１０４ａと、出力端子１０１ｂ，１０２ｂ，１０３ｂ，１０４ｂおよび出力端子１０１ｃ，１０２ｃ，１０３ｃ，１０４ｃとを備える。
【００９６】
スイッチ７１の２つの入力端子７１ａ，７１ｂには、予め設定された初期値を示すデータが入力される。加算器８１は、スイッチ７１の出力端子７１ｃからのデータと、アレイセル群６１の第１行の第３列に位置するシストリックアレイセル２１（図１０のシストリックアレイセルａ０，２を参照）からのデータとを加算し、この加算結果を示すデータを出力する。フリップフロップ回路９１は、加算器８１からの加算結果を示すデータを出力するタイミングを調整する。スイッチ１０１の入力端子１０１ａには、加算器８１からの加算結果を示すデータがフリップフロップ回路９１を介して入力される。そして、スイッチ１０１の出力端子１０１ｂと出力端子１０１ｃはそれぞれ、スイッチ７３の入力端子７３ａとスイッチ７２の入力端子７２ａに接続される。
【００９７】
スイッチ７２の入力端子７２ｂには、予め設定された初期値を示すデータが入力される。加算器８２は、スイッチ７２の出力端子７２ｃからのデータと、アレイセル群６１の第２行の第３列に位置するシストリックアレイセル２１（図１０のシストリックアレイセルａ１，２を参照）からのデータとを加算し、この加算結果を示すデータを出力する。フリップフロップ回路９２は、加算器８２からの加算結果を示すデータを出力するタイミングを調整する。スイッチ１０２の入力端子１０２ａには、加算器８２からの加算結果を示すデータがフリップフロップ回路９２を介して入力される。そして、スイッチ１０２の出力端子１０２ｂと出力端子１０２ｃはそれぞれ、スイッチ７３の入力端子７３ｂとスイッチ７４の入力端子７４ｂに接続される。
【００９８】
加算器８３は、スイッチ７３の出力端子７３ｃからのデータと、アレイセル群６１の第３行の第３列に位置するシストリックアレイセル２１（図１０のシストリックアレイセルａ２，２を参照）からのデータとを加算し、この加算結果を示すデータを出力する。フリップフロップ回路９３は、加算器８３からの加算結果を示すデータを出力するタイミングを調整する。スイッチ１０３の入力端子１０３ａには、加算器８３からの加算結果を示すデータがフリップフロップ回路９３を介して入力される。そして、スイッチ１０３の出力端子１０３ｃは、スイッチ７４の入力端子７４ａに接続される。
【００９９】
加算器８４は、スイッチ７４の出力端子７４ｃからのデータと、アレイセル群６２の第１行の第３列に位置するシストリックアレイセル２１（図１０のシストリックアレイセルｂ０，２を参照）からのデータとを加算し、この加算結果を示すデータを出力する。フリップフロップ回路９４は、加算器８４からの加算結果を示すデータを出力するタイミングを調整する。スイッチ１０４の入力端子１０４ａには、加算器８４からの加算結果を示すデータがフリップフロップ回路９４を介して入力される。
【０１００】
畳込演算制御部１５は、畳み込み演算を実行する場合に、スイッチ７１〜７４とスイッチ１０１〜１０４に対して切り替えを行う。具体的には、畳込演算制御部１５は、スイッチ７１に対して、２つの入力端子７１ａ，７１ｂのうち入力端子７１ａを選択し、入力端子７１ａから入力されたデータを出力端子７１ｃから出力するようにデータ入出力経路を切り替える。また畳込演算制御部１５は、スイッチ１０１に対して、２つの出力端子１０１ｂ，１０１ｃのうち出力端子１０１ｃを選択し、入力端子１０１ａから入力されたデータを出力端子１０１ｃから出力するようにデータ入出力経路を切り替える。同様にして畳込演算制御部１５は、スイッチ７２，７３，７４に対してそれぞれ、入力端子７２ａ，７３ｂ，７４ａを選択する。また畳込演算制御部１５は、スイッチ１０２，１０３，１０４に対してそれぞれ、出力端子１０２ｂ，１０３ｃ，１０４ｂを選択する。
【０１０１】
この場合に、第ｉ行（ｉ＝１，２，３，４）の第３列に位置するシストリックアレイセル２１の演算部４０から出力されるデータをＲｉ−１と表記すると、スイッチ１０４の出力端子１０４ｂから（Ｒ０＋Ｒ１＋Ｒ２＋Ｒ３）が出力される。
【０１０２】
全結合演算制御部１６は、全結合演算を実行する場合に、スイッチ７１〜７４とスイッチ１０１〜１０４に対して切り替えを行う。具体的には、全結合演算制御部１６は、スイッチ７１，７２，７３，７４に対してそれぞれ、入力端子７１ｂ，７２ｂ，７３ａ，７４ｂを選択する。また全結合演算制御部１６は、スイッチ１０１，１０２，１０３，１０４に対してそれぞれ、出力端子１０１ｂ，１０２ｃ，１０３ｂ，１０４ｃを選択する。
【０１０３】
この場合に、第ｉ行（ｉ＝１，２，３，４）の第３列に位置するシストリックアレイセル２１の演算部４０から出力されるデータをＲｉ−１と表記すると、スイッチ１０３の出力端子１０３ｂから（Ｒ０＋Ｒ２）が出力され、スイッチ１０４の出力端子１０４ｃから（Ｒ１＋Ｒ３）が出力される。
【０１０４】
また全結合演算制御部１６は、シストリックアレイセル２１のレジスタ４１に、上式（９）に示す重み係数ｗｉ，ｊを設定する。具体的には、重み係数ｗ０，０，ｗ０，１，ｗ０，２をそれぞれ、アレイセル群６１の第１行の第１列、第２列、第３列に位置するシストリックアレイセル２１（図１０のシストリックアレイセルａ０，０，ａ０，１，ａ０，２）のレジスタ４１に設定する。また、重み係数ｗ０，３，ｗ０，４，ｗ０，５をそれぞれ、アレイセル群６１の第３行の第１列、第２列、第３列に位置するシストリックアレイセル２１（図１０のシストリックアレイセルａ２，０，ａ２，１，ａ２，２）のレジスタ４１に設定する。また、重み係数ｗ１，０，ｗ１，１，ｗ１，２をそれぞれ、アレイセル群６１の第２行の第１列、第２列、第３列に位置するシストリックアレイセル２１（図１０のシストリックアレイセルａ１，０，ａ１，１，ａ１，２）のレジスタ４１に設定する。また、重み係数ｗ１，３，ｗ１，４，ｗ１，５をそれぞれ、アレイセル群６２の第１行の第１列、第２列、第３列に位置するシストリックアレイセル２１（図１０のシストリックアレイセルｂ０，０，ｂ０，１，ｂ０，２）のレジスタ４１に設定する。
【０１０５】
そして全結合演算制御部１６は、中間層群Ｇ１から全結合層群Ｇ２へ出力された畳込演算結果データを、第１，３行の第ｊ列（ｉ＝１，２，３）に位置するシストリックアレイセル２１に対応するスイッチ２２の入力端子２２ａへ出力する。
【０１０６】
例えば図１１に示すように、全結合演算制御部１６は、予め設定された出力周期Δｔが経過する毎に、畳込演算結果データをシストリックアレイ１１へ出力する。
畳込演算結果データの出力を開始した時点からの経過時間ｔがｎ×Δｔ（ｎは０以上の整数）であるときに、アレイセル群６１の第１行の第ｊ列（ｊ＝１，２，３）に位置するシストリックアレイセル２１へ出力される畳込演算結果データは、ｘｎ＋１−ｊ，ｊ−１である。但し、（ｎ＋１−ｊ）＜０である場合には、ｘｎ＋１−ｊ，ｊ−１＝０である。
【０１０７】
また、アレイセル群６１の第３行の第ｊ列（ｊ＝１，２，３）に位置するシストリックアレイセル２１へ出力される畳込演算結果データは、ｘｎ−ｊ，ｊ＋２である。但し、（ｎ−ｊ）＜０である場合には、ｘｎ−ｊ，ｊ＋２＝０である。
【０１０８】
この場合には、スイッチ１０３の出力端子１０３ｂから、下式（１１）に示すデータ（Ｒ０＋Ｒ２）が出力される。また、スイッチ１０４の出力端子１０４ｃから、下式（１２）に示すデータ（Ｒ１＋Ｒ３）が出力される。
【０１０９】
【数１０】
0006387913.tif 000011
このように構成された演算処理装置４では、複数のシストリックアレイセル２１が、行数が６で列数が３となるようにして二次元行列状に配列されている。また全結合演算は、行数が６で列数が２となる行列である全結合演算行列を用いた演算を行う。
【０１１０】
全結合演算行列の行数である６を、複数のシストリックアレイセル２１の列数である３で除算することにより得られる除算値について小数点以下を切り上げた値は２である。そして全結合演算制御部１６は、複数のシストリックアレイセル２１の６個の行のうち、２個の行に配置されている６個のシストリックアレイセル２１へ、全結合演算のための６個の畳込演算結果データが入力されるように制御する。
【０１１１】
これにより、演算処理装置４は、シストリックアレイ１１を構成する複数のシストリックアレイセル２１が畳み込み演算用に配列されている場合であっても、シストリックアレイ１１を用いて全結合演算を実行することができる。
【０１１２】
また、複数のシストリックアレイセル２１のレジスタ４１に、行列Ｗ１，Ｗ２，・・・・，Ｗｖの行列積により算出された値が重み係数ｗｉ，ｊとして設定される。これにより、演算処理装置４は、全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖの全結合演算を実行するために必要な計算量を低減することができる。
【０１１３】
また、二次元行列状に配列された複数のシストリックアレイセル２１は、互いに隣接する２行分の行を１個の行集合として、２個の行集合に分割される。また、行集合を構成する行の中で最も行番号が小さい行に位置するシストリックアレイセル２１の入力スイッチ２２の入力端子２２ａは、全結合演算制御部１６に接続される。
【０１１４】
行集合を構成する行の中で最も行番号が小さい行以外に位置するシストリックアレイセル２１の入力スイッチ２２の入力端子２２ａは、行が１つ小さく且つ列が同じ位置のシストリックアレイセル２１における出力スイッチ２３の出力端子２３ｂに接続される。
【０１１５】
２個の行集合に対して、分割番号１，２を付すと、分割番号１の行集合は、アレイセル群６１の第１，２行に位置するシストリックアレイセル２１である。また、分割番号２の行集合は、アレイセル群６１の第３行とアレイセル群６２の第１行に位置するシストリックアレイセル２１である。
【０１１６】
そして全結合演算制御部１６は、経過時間ｔがｎ×Δｔ（ｎは０以上の整数）であるときに、分割番号がｗ（ｗ＝１，２）である行集合を構成する行の中で最も行番号が小さい行の第ｊ列に位置するシストリックアレイセル２１の入力スイッチ２２の入力端子２２ａへ、ｘｎ−ｊ−ｗ＋２，３×（ｗ−１）＋ｊ−１が入力されるように制御する。ｘｎ−ｊ−ｗ＋２，３×（ｗ−１）＋ｊ−１は、２次元行列で表される畳込演算結果データであり、（ｎ−ｊ−ｗ＋２）が０未満のときには値が０となる。これにより、シストリックアレイ１１は、上式（１１）に示すデータ（Ｒ０＋Ｒ２）と、上式（１２）に示すデータ（Ｒ１＋Ｒ３）を、全結合演算結果データとして算出することができる。
【０１１７】
（第３実施形態）
以下に本発明の第３実施形態を図面とともに説明する。なお第３実施形態では、第１実施形態と異なる部分を説明する。
【０１１８】
第３実施形態の運転支援装置１は、シストリックアレイ１１の構成が第１実施形態と異なる。
第３実施形態のシストリックアレイ１１は、図１２に示すように、２つのアレイセル群６１，６２を備える。アレイセル群６１は、３行×３列で二次元行列状に配列された９個のシストリックアレイセル２１（シストリックアレイセルａ０，０，ａ０，１，ａ０，２，・・・，ａ２，２を参照）を備える。アレイセル群６２は、３行×３列で二次元行列状に配列された９個のシストリックアレイセル２１（シストリックアレイセルｂ０，０，ｂ０，１，ｂ０，２を参照）を備える。なお、図１２では、アレイセル群６２が備える９個のシストリックアレイセル２１のうち、シストリックアレイセルｂ０，０，ｂ０，１，ｂ０，２を示している。
【０１１９】
アレイセル群６１のシストリックアレイセル２１に対応する入力スイッチ２２の入力端子２２ａは、全結合演算制御部１６に接続される。また、アレイセル群６２の第１行に位置するシストリックアレイセル２１に対応する入力スイッチ２２の入力端子２２ａは、全結合演算制御部１６に接続される。そして、全結合演算制御部１６から畳込演算結果データが入力される。
【０１２０】
アレイセル群６１，６２の第ｉ行（ｉ＝１，２，３）の第１列に位置するシストリックアレイセル２１に対応する入力スイッチ２２の入力端子２２ｂは、畳込演算制御部１５に接続される。そして、畳込演算制御部１５から画像データと畳込演算結果データが入力される。
【０１２１】
またシストリックアレイ１１は、スイッチ１１１，１１２と、加算器１２１，１２２と、フリップフロップ回路１３１，１３２と、加算器１４１，１４２と、フリップフロップ回路１５１，１５２とを備える。
【０１２２】
スイッチ１１１，１１２はそれぞれ、入力端子１１１ａ，１１２ａおよび入力端子１１１ｂ，１１２ｂと、出力端子１１１ｃ，１１２ｃとを備える。
スイッチ１１１の２つの入力端子１１１ａ，１１１ｂには、予め設定された初期値を示すデータが入力される。加算器１２１は、スイッチ１１１の出力端子１１１ｃからのデータと、アレイセル群６１の第１行の第３列に位置するシストリックアレイセル２１（図１２のシストリックアレイセルａ０，２を参照）からのデータとを加算し、この加算結果を示すデータを出力する。フリップフロップ回路１３１は、加算器１２１からの加算結果を示すデータを出力するタイミングを調整する。加算器１４１は、フリップフロップ回路１３１を介して加算器１２１から入力される加算結果を示すデータと、アレイセル群６１の第２行の第３列に位置するシストリックアレイセル２１（図１２のシストリックアレイセルａ１，２を参照）からのデータとを加算し、この加算結果を示すデータを出力する。フリップフロップ回路１５１は、加算器１４１からの加算結果を示すデータを出力するタイミングを調整する。
【０１２３】
スイッチ１１２の入力端子１１２ａには、加算器１４１からの加算結果を示すデータがフリップフロップ回路１５１を介して入力される。スイッチ１１２の入力端子１１２ｂには、予め設定された初期値を示すデータが入力される。加算器１２２は、スイッチ１１２の出力端子１１２ｃからのデータと、アレイセル群６１の第３行の第３列に位置するシストリックアレイセル２１（図１２のシストリックアレイセルａ２，２を参照）からのデータとを加算し、この加算結果を示すデータを出力する。フリップフロップ回路１３２は、加算器１２２からの加算結果を示すデータを出力するタイミングを調整する。加算器１４２は、フリップフロップ回路１３２を介して加算器１２２から入力される加算結果を示すデータと、アレイセル群６２の第１行の第３列に位置するシストリックアレイセル２１（図１２のシストリックアレイセルｂ０，２を参照）からのデータとを加算し、この加算結果を示すデータを出力する。フリップフロップ回路１５２は、加算器１４２からの加算結果を示すデータを出力するタイミングを調整する。
【０１２４】
畳込演算制御部１５は、畳み込み演算を実行する場合に、スイッチ１１１，１１２に対して切り替えを行う。具体的には、畳込演算制御部１５は、スイッチ１１１に対して、２つの入力端子１１１ａ，１１１ｂのうち入力端子１１１ａを選択し、入力端子１１１ａから入力されたデータを出力端子１１１ｃから出力するようにデータ入出力経路を切り替える。また畳込演算制御部１５は、スイッチ１１２に対して、２つの入力端子１１２ａ，１１２ｂのうち入力端子１１２ａを選択し、入力端子１１２ａから入力されたデータを出力端子１１２ｃから出力するようにデータ入出力経路を切り替える。
【０１２５】
この場合に、第ｉ行（ｉ＝１，２，３，４）の第３列に位置するシストリックアレイセル２１の演算部４０から出力されるデータをＲｉ−１と表記すると、フリップフロップ回路１５２から（Ｒ０＋Ｒ１＋Ｒ２＋Ｒ３）が出力される。
【０１２６】
全結合演算制御部１６は、全結合演算を実行する場合に、スイッチ１１１，１１２に対して切り替えを行う。具体的には、全結合演算制御部１６は、スイッチ１１１に対して、２つの入力端子１１１ａ，１１１ｂのうち入力端子１１１ｂを選択し、入力端子１１１ｂから入力されたデータを出力端子１１１ｃから出力するようにデータ入出力経路を切り替える。また全結合演算制御部１６は、スイッチ１１２に対して、２つの入力端子１１２ａ，１１２ｂのうち入力端子１１２ｂを選択し、入力端子１１２ｂから入力されたデータを出力端子１１２ｃから出力するようにデータ入出力経路を切り替える。
【０１２７】
この場合に、第ｉ行（ｉ＝１，２，３，４）の第３列に位置するシストリックアレイセル２１の演算部４０から出力されるデータをＲｉ−１と表記すると、フリップフロップ回路１５１から（Ｒ０＋Ｒ１）が出力され、フリップフロップ回路１５２から（Ｒ２＋Ｒ３）が出力される。
【０１２８】
また全結合演算制御部１６は、シストリックアレイセル２１のレジスタ４１に、上式（９）に示す重み係数ｗｉ，ｊを設定する。具体的には、重み係数ｗ０，０，ｗ０，１，ｗ０，２をそれぞれ、アレイセル群６１の第１行の第１列、第２列、第３列に位置するシストリックアレイセル２１（図１２のシストリックアレイセルａ０，０，ａ０，１，ａ０，２）のレジスタ４１に設定する。また、重み係数ｗ０，３，ｗ０，４，ｗ０，５をそれぞれ、アレイセル群６１の第２行の第１列、第２列、第３列に位置するシストリックアレイセル２１（図１２のシストリックアレイセルａ１，０，ａ１，１，ａ１，２）のレジスタ４１に設定する。また、重み係数ｗ１，０，ｗ１，１，ｗ１，２をそれぞれ、アレイセル群６１の第３行の第１列、第２列、第３列に位置するシストリックアレイセル２１（図１２のシストリックアレイセルａ２，０，ａ２，１，ａ２，２）のレジスタ４１に設定する。また、重み係数ｗ１，３，ｗ１，４，ｗ１，５をそれぞれ、アレイセル群６２の第１行の第１列、第２列、第３列に位置するシストリックアレイセル２１（図１２のシストリックアレイセルｂ０，０，ｂ０，１，ｂ０，２）のレジスタ４１に設定する。
【０１２９】
そして全結合演算制御部１６は、中間層群Ｇ１から全結合層群Ｇ２へ出力された畳込演算結果データを、アレイセル群６１の第１，２，３行およびアレイセル群６２の第１行の第ｊ列（ｉ＝１，２，３）に位置するシストリックアレイセル２１に対応するスイッチ２２の入力端子２２ａへ出力する。
【０１３０】
例えば図１３に示すように、全結合演算制御部１６は、予め設定された出力周期Δｔが経過する毎に、畳込演算結果データをシストリックアレイ１１へ出力する。
畳込演算結果データの出力を開始した時点からの経過時間ｔがｎ×Δｔ（ｎは０以上の整数）であるときに、アレイセル群６１の第１，３行の第ｊ列（ｊ＝１，２，３）に位置するシストリックアレイセル２１へ出力される畳込演算結果データは、ｘｎ＋１−ｊ，ｊ−１である。但し、（ｎ＋１−ｊ）＜０である場合には、ｘｎ＋１−ｊ，ｊ−１＝０である。
【０１３１】
また、アレイセル群６１の第２行およびアレイセル群６２の第１行の第ｊ列（ｊ＝１，２，３）に位置するシストリックアレイセル２１へ出力される畳込演算結果データは、ｘｎ−ｊ，ｊ＋２である。但し、（ｎ−ｊ）＜０である場合には、ｘｎ−ｊ，ｊ＋２＝０である。
【０１３２】
この場合には、フリップフロップ回路１５１から、下式（１３）に示すデータ（Ｒ０＋Ｒ１）が出力される。また、フリップフロップ回路１５２から、下式（１４）に示すデータ（Ｒ２＋Ｒ３）が出力される。
【０１３３】
【数１１】
0006387913.tif 000012
このように構成された演算処理装置４では、複数のシストリックアレイセル２１が、行数が６で列数が３となるようにして二次元行列状に配列されている。また全結合演算は、行数が６で列数が２となる行列である全結合演算行列を用いた演算を行う。
【０１３４】
全結合演算行列の行数である６を、複数のシストリックアレイセル２１の列数である３で除算することにより得られる除算値について小数点以下を切り上げた値は２である。そして、全結合演算制御部１６は、全結合演算のための６個の畳込演算結果データに対して、それぞれ２個のシストリックアレイセル２１を割り当て、割り当てられた２個のシストリックアレイセル２１に対して、対応する１個の畳込演算結果データが入力されるように制御する。
【０１３５】
これにより、演算処理装置４は、シストリックアレイ１１を構成する複数のシストリックアレイセル２１が畳み込み演算用に配列されている場合であっても、シストリックアレイ１１を用いて全結合演算を実行することができる。
【０１３６】
また、複数のシストリックアレイセル２１のレジスタ４１に、行列Ｗ１，Ｗ２，・・・・，Ｗｖの行列積により算出された値が重み係数ｗｉ，ｊとして設定される。これにより、演算処理装置４は、全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖの全結合演算を実行するために必要な計算量を低減することができる。
【０１３７】
全結合演算行列の行数である６を、複数のシストリックアレイセル２１の列数である３で除算することにより得られる除算値について小数点以下を切り上げた値は２である。二次元行列状に配列された複数のシストリックアレイセル２１の６個の行のうち、２行分の行を１個の行集合として、２個の行集合に分割される。２個の行集合に対して、分割番号１，２を付すと、分割番号１の行集合は、アレイセル群６１の第１，３行に位置するシストリックアレイセル２１である。また、分割番号２の行集合は、アレイセル群６１の第２行とアレイセル群６２の第１行に位置するシストリックアレイセル２１である。
【０１３８】
そして全結合演算制御部１６は、経過時間ｔがｎ×Δｔ（ｎは０以上の整数）であるときに、分割番号がｗ（ｗ＝１，２）である行集合を構成する行の第ｊ列に位置するシストリックアレイセル２１の入力スイッチ２２の入力端子２２ａへ、ｘｎ−ｊ−ｗ＋２，ｑ×（ｗ−１）＋ｊ−１が入力されるように制御する。ｘｎ−ｊ−ｗ＋２，ｑ×（ｗ−１）＋ｊ−１は、２次元行列で表される畳込演算結果データであり、（ｎ−ｊ−ｗ＋２）が０未満のときには値が０となる。これにより、シストリックアレイ１１は、上式（１３）に示すデータ（Ｒ０＋Ｒ１）と、上式（１４）に示すデータ（Ｒ２＋Ｒ３）を、全結合演算結果データとして算出することができる。
【０１３９】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
（変形例１）
例えば上記実施形態では、行列Ｗ１，Ｗ２，・・・・，Ｗｖの行列積により算出された値を重み係数ｗｉ，ｊとしてシストリックアレイセル２１のレジスタ４１に設定するものを示した。しかし、行列Ｗ１，Ｗ２，・・・・，Ｗｖの重み係数を順次、シストリックアレイセル２１のレジスタ４１に設定することにより、全結合層Ｌｊ１，Ｌｊ２，・・・・，Ｌｊｖの全結合演算を順次、シストリックアレイ１１に実行させるようにしてもよい。
【０１４０】
また、上記実施形態における１つの構成要素が有する機能を複数の構成要素として分散させたり、複数の構成要素が有する機能を１つの構成要素に統合させたりしてもよい。また、上記実施形態の構成の少なくとも一部を、同様の機能を有する公知の構成に置き換えてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本発明の実施形態である。
【符号の説明】
【０１４１】
４…演算処理装置、１５…畳込演算制御部、１６…全結合演算制御部、２１…シストリックアレイセル、２２…入力スイッチ、２２ａ…入力端子、２２ｂ…入力端子、２２ｃ…出力端子、２３…出力スイッチ、２３ａ…入力端子、２３ｂ…出力端子、２３ｃ…出力端子、３０…タイミング調整部、４０…演算部
【図１】
0006387913.tif 000014
【図２】
0006387913.tif 000015
【図３】
0006387913.tif 000016
【図４】
0006387913.tif 000017
【図５】
0006387913.tif 000018
【図６】
0006387913.tif 000019
【図７】
0006387913.tif 000020
【図８】
0006387913.tif 000021
【図９】
0006387913.tif 000022
【図１０】
0006387913.tif 000023
【図１１】
0006387913.tif 000024
【図１２】
0006387913.tif 000025
【図１３】
0006387913.tif 000026