(57)【特許請求の範囲】
【請求項１】
制御信号を受けて動作状態を制御し、ニューラルネットワークの処理状態を通知、管理する状態遷移管理部と、前記状態遷移管理部による処理状態の通知を受けて入力ノードデータのパスを切換えて通知された処理状態に対応した処理を行い、ノードデータを出力するデータパス制御部と、前記データパス制御部により出力されたノードデータに積和演算処理を実施して前記データパス制御部に出力するニューラルネットワーク処理コア部とを備え、前記ニューラルネットワーク処理コア部は、ニューラルネットワークのノードデータおよびメモリアドレスをそれぞれ格納する全結合層用ＦＩＦＯ部およびメモリアドレス用ＦＩＦＯ部、重み係数が格納されたメモリ、各ノード値と対応する前記重み係数を乗算して逐次加算する積和演算回路を有し、ノードデータを前記全結合層用ＦＩＦＯ部に格納する前段階においてノード値がゼロの場合、前記積和演算回路の処理を省略するとともに、前記データパス制御部において動作状態に対応したデータパスを切換え、前記ニューラルネットワーク処理コア部を共通に用いるニューラルネットワーク処理装置において、
ノードデータを格納する前記全結合層用ＦＩＦＯ部を複数の分割ＦＩＦＯ部にて構成し、ゼロでないノードデータの格納を並列処理した上で、ＦＩＦＯから積和演算回路への読出し処理においては読み出す分割ＦＩＦＯ部を順次選択し、選択された分割ＦＩＦＯ部からの読出し完了を検知すれば、次の分割ＦＩＦＯ部を選択して読み出す制御を行う前記データパス制御部を備え、前記データパス制御部により、前記分割ＦＩＦＯ部のデータを繋いで１個のＦＩＦＯに見立てるようにしたことを特徴とするニューラルネットワーク処理装置。
【請求項２】
前記全結合層用ＦＩＦＯ部に書込まれた非ゼロのノードデータに合わせて、重み係数が格納されたメモリの対応するアドレス値を書き込むメモリアドレス用ＦＩＦＯ部を備え、前記アドレス値を相対アドレス値で書き込むようにしたことを特徴とする請求項１に記載のニューラルネットワーク処理装置。
【請求項３】
ノードデータのノード値が予め設定された閾値以下の場合にノード値をゼロとして前記積和演算回路の処理を省略するようにしたことを特徴とする請求項１または請求項２に記載のニューラルネットワーク処理装置。
【請求項４】
特定のノードと対応する重み係数が全てゼロであることを事前に検出し、全てゼロと判定した場合に、ゼロ値のノードデータを排除する非ゼロ判定制御部を備え、前記非ゼロ判定制御部により特定のノードの積和演算処理を省略することを特徴とする請求項１から請求項３のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項５】
前記重み係数の値を２のｎ乗値（ｎは整数）に量子化し、前記積和演算回路の乗算演算をビットシフト処理にて実行するようにしたことを特徴とする請求項１から請求項４のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項６】
ノードデータおよびアドレスをそれぞれ格納する前記全結合層用ＦＩＦＯ部および前記メモリアドレス用ＦＩＦＯ部を全結合層用ＬＩＦＯ部およびメモリアドレス用ＬＩＦＯ部に置き換えたことを特徴とする請求項１から請求項５のいずれか１項に記載のニューラルネットワーク処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、ニューラルネットワーク処理装置に関する。
【背景技術】
【０００２】
近年、ディープニューラルネットワークは、高い識別性能により広く利用されるようになっている。一方で、ネットワーク係数（重み係数、バイアスなど）の個数が非常に膨大であり、使用メモリ量と計算コストは高く、リアルタイムな処理に於いては、高価で消費電力の大きなＧＰＵ（Graphics Processing Unit：画像処理装置)デバイスを必要とし、組込みマイクロコンピュータでは処理仕切れない状況にある。特に、画像系の情報量の多いＣＮＮ（Convolutional Neural Networks:畳込みニューラルネットワーク）処理は、この傾向が強い(特許文献１参照)。
【０００３】
この対策として、ニューラルネットワーク処理を、ＧＰＵデバイスを用いて並列処理性を高め、あるいは回路化により並列動作させて高速化を図る取組みがＦＰＧＡ(field-programmable gate array)にて行われている。その際、重み係数の量子化またはネットワーク計算の処理を間引く枝刈り等の軽量化により演算量および回路規模の削減を行うが、これらをリアルタイムで実現可能とする回路は、その回路規模のために、１個あたり数１０万円を超える高価なＧＰＵあるいはＦＰＧＡを搭載することが必要となっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１９−２８７４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の技術では、ニューラルネットワーク処理を３０fps（フレーム毎秒）以上で高速に処理するため必要となるＧＰＵあるいはＦＰＧＡの価格が高価なため、機器価格が数万円程度の機器に組み込む場合、実用的価格でこれらの機能を実現することが困難となっていた。
【０００６】
これらの課題に対して、処理の並列度を高め、処理の高速化を図ることが考えられるが、並列度を高める程、回路規模が増大するという問題が大きくなり、ＧＰＵあるいはＦＰＧＡの規模が大きくなり、デバイスの価格が増加することになる。
また、逆に、並列度を下げて回路規模を小さくすることは、処理速度の低下に繋がることになる。つまり、並列度と処理速度は、一般的に反比例の関係にある。
このため、本願におけるニューラルネットワーク処理装置は、回路規模を抑えながら、高速処理を行うという課題を同時に克服することを目的としている。
【課題を解決するための手段】
【０００７】
本願に開示されるニューラルネットワーク処理装置は、制御信号を受けて動作状態を制御し、ニューラルネットワークの処理状態を通知、管理する状態遷移管理部と、前記状態遷移管理部による処理状態の通知を受けて入力ノードデータのパスを切換えて通知された処理状態に対応した処理を行い、ノードデータを出力するデータパス制御部と、前記データパス制御部により出力されたノードデータに積和演算処理を実施して前記データパス制御部に出力するニューラルネットワーク処理コア部とを備え、前記ニューラルネットワーク処理コア部は、ニューラルネットワークのノードデータおよびメモリアドレスをそれぞれ格納する全結合層用ＦＩＦＯ部およびメモリアドレス用ＦＩＦＯ部、重み係数が格納されたメモリ、各ノード値と対応する前記重み係数を乗算して逐次加算する積和演算回路を有し、ノードデータを前記全結合層用ＦＩＦＯ部に格納する前段階においてノード値がゼロの場合、前記積和演算回路の処理を省略するとともに、前記データパス制御部において動作状態に対応したデータパスを切換え、前記ニューラルネットワーク処理コア部を共通に用いるものにおいて、ノードデータを格納する前記全結合層用ＦＩＦＯ部を複数の分割ＦＩＦＯ部にて構成し、ゼロでないノードデータの格納を並列処理した上で、ＦＩＦＯから積和演算回路への読出し処理においては読み出す分割ＦＩＦＯ部を順次選択し、選択された分割ＦＩＦＯ部からの読出し完了を検知すれば、次の分割ＦＩＦＯ部を選択して読み出す制御を行う前記データパス制御部を備え、前記データパス制御部により、前記分割ＦＩＦＯ部のデータを繋いで１個のＦＩＦＯに見立てるようにしたことを特徴とするものである。
【発明の効果】
【０００８】
本願に係るニューラルネットワーク処理装置によれば、回路規模を抑えながら、高速処理を行うことが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係るニューラルネットワーク処理装置の全体構成を示すブロック図である。
【図２】実施の形態１に係る動作状態の状態遷移を説明するための概念図である。
【図３】ニューラルネットワークの基本的な動作を説明するための概念図である。
【図４】実施の形態１における処理の概要を示す概念図である。
【図５】実施の形態１に係る回路の共用化を説明するための概念図である。
【図６】実施の形態１におけるニューラルネットワーク処理装置の要部構成を示すブロック図である。
【図７】実施の形態１に係る重み係数メモリの処理動作を説明するための概念図である。
【図８】実施の形態１に係る複数ＦＩＦＯ部の一本化動作を説明するための概念図である。
【図９】実施の形態１に係るニューラルネットワーク処理装置の動作を説明するためのフローチャートである。
【図１０】実施の形態２に係る重み係数メモリのデータ構成を説明するための概念図である。
【図１１】実施の形態２に係るニューラルネットワーク処理装置の要部構成を示す概念図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
以下、本願における実施の形態について図面を用いて説明する。なお、各図において、同一または相当する部分については、同一符号を付して説明する。
図１は、実施の形態１に係るニューラルネットワーク処理装置を示すブロック図で、図において、ニューラルネットワーク処理装置１は、状態遷移管理部１０と、データパス制御部２０と、ニューラルネットワーク処理コア部３０とを備えている。
【００１１】
状態遷移管理部１０は、制御信号を受けて動作状態を制御し、現在、ニューラルネットワークのどの層の処理を行っているかの状態を管理しており、その情報をデータパス制御部２０に通知する。
データパス制御部２０は、状態遷移管理部１０の通知を受けて入力ノードデータのパスを切換えるデータパス切換え部２０１および通知された処理状態に対応して例えば、ノードデータのＲｅＬＵ（Rectified Linear Unit：正規化線形ユニット）活性化関数処理を行う活性化関数処理部２０２とマックスプーリング（Maxpooling）処理を行うマックスプーリング処理部２０３を備え、ノードデータをニューラルネットワーク処理コア部３０に出力する。
【００１２】
ニューラルネットワーク処理コア部３０は、データパス制御部２０の出力を受けて、ノードデータが非ゼロであるか否かを判定する非ゼロ判定制御部３０１と、累積積和演算を実現する上での全結合層用ＦＩＦＯ部（First In First Out：先入れ先出し）３０２と、メモリアドレス用ＦＩＦＯ部３０３と、重み係数メモリ３０４と、積和演算回路３０５とから構成されており、全結合層用ＦＩＦＯ部３０２と、メモリアドレス用ＦＩＦＯ部３０３と、重み係数メモリ３０４と、積和演算回路３０５とにより次層ノード生成演算部３１０を構成している。
【００１３】
これら各部の動作状態の遷移イメージを図２に示している。
すなわち、第１回目の畳込み処理の完了を開始として＃１動作状態に遷移し、第１回目の畳込み処理で得られた特徴画像に対して、第２回目の畳込み処理を行うが、全ての畳込み処理の完了を待つのではなく、畳込み処理が完了した画素単位で、逐次、ＲｅＬＵ活性化関数処理、マックスプーリング処理および全結合層用ＦＩＦＯ部３０２内の分割ＦＩＦＯ部への書込みを行う。
【００１４】
次に、＃１動作状態の完了報告を受けると、状態遷移管理部１０は、＃２動作状態に遷移し、この動作状態での処理対象ノードは、＃１動作状態の処理の結果であるため、これに対応してデータパス制御部２０は、パスを切換え、ノードデータをニューラルネットワーク処理コア部３０に入力する。その際、重み係数メモリ３０４もノードに対応したものに切替わるため、非ゼロ判定制御部３０１は、ゼロ値のノードデータの排除とそれに合わせてメモリアドレス値を選別し、それぞれ、全結合層用ＦＩＦＯ部３０２とメモリアドレス用ＦＩＦＯ部３０３に書き込む。
【００１５】
次に、状態遷移管理部１０は、＃２動作状態の完了報告を受けると、＃３動作状態に遷移し、第２全結合層に対する積和演算を行う。このときの処理は、第１全結合層に対する積和演算のみであるため、処理結果を入力に戻す必要はない。＃３動作状態での処理が全て完了すると、ニューラルネットワーク処理は完了となり、状態遷移管理部１０は、待ち状態に遷移する。
【００１６】
ところで、通常のニューラルネットワーク処理は、図３に示すように、前段層のノード計算を全て終えてから、次段層の演算を行う関係にある。つまり、現層のノード値が確定していない状態で、次層のノード値を求めることはできない。また、推論結果は、最終段の層のノード値が確からしさとして意味を持つのみで、途中の全結合層のノード値を最後まで記憶しておく必要はない。これらのニューラルネットワーク処理の特徴より、各全結合層の処理回路をそれぞれに設けるのではなく、１つの処理回路を共通して使い回すことによって回路規模の低減化を図ることができる。この概念を図４に示している。
なお、最終的に出力される値は、推定の確からしさを示すもので、推論対象ごとに存在する。また、推論結果は、最終段の層のノード値が確からしさとして意味を持ちソフトマックス（Softmax）演算により強調される。その値以外の途中の全結合層のノード値を最後まで記憶しておく必要はない。
【００１７】
すなわち、図４に示すように第１畳込み層―ＲｅＬＵ活性化関数―第２畳込み層―ＲｅＬＵ活性化関数による畳込み処理を行った後、マックスプーリング処理を行い、さらに、全結合層数が2個の場合、第１全結合層―ＲｅＬＵ活性化関数―第２全結合層によるニューラルネットワーク処理を行うことになるが、ここで、第１全結合層および第２全結合層は、図５に示すように同じ回路（非ゼロ判定制御部３０１、全結合層用FIFO部３０２、メモリアドレス用ＦＩＦＯ部３０３および積和演算回路３０５）を用いて実行している。
なお、ここで、非ゼロ判定制御部３０１、全結合層用FIFO部３０２、メモリアドレス用ＦＩＦＯ部３０３をまとめて非ゼロＦＩＦＯ部と表示している
【００１８】
図６は、このようなニューラルネットワーク処理装置１におけるニューラルネットワーク処理コア部３０の要部構成を示すブロック図である。
このニューラルネットワーク処理コア部３０には、乗算器が用いられており、通常、乗算器は、多数の加算器回路より構成されているため、回路規模が大きく処理遅延時間も長くなる。また、ＦＰＧＡにおいては、ライブラリとして使用可能な乗算器の数がデバイスファミリ毎に決まっており有限個である。したがって、ニューラルネットワーク処理コア部３０においては、乗算演算毎に乗算器を設けるのではなく、１個の乗算器を使い回すことによって回路規模の増大を抑制している。
【００１９】
一方、１個の乗算器を使い回すと、乗算演算中は他の乗算処理を行うことができず、一つずつ処理する逐次処理型となるため、トータルの処理時間が長くなる問題が生じる。この対策として幹刈りを行い、乗算演算の回数自体を減らすように構成している。
一般的にノードから出ているニューラルネットに対応する重み係数がゼロの場合に、積和演算を省略することを「枝刈り」と称しているが、本願における「幹刈り」とは、ノード値がゼロの場合に、そのノード（幹）から出ている全てのニューラルネット（枝）の積和演算を省略することを称している。この幹刈りは、ノード値がゼロの場合にＦＩＦＯ部にデータを書き込まないことで実現するが、この場合、廃棄ノードに繋がるニューラルネットワークの被乗算の重み係数も読み飛ばさなければ、乗算と被乗算の対応が崩れることになる。
【００２０】
このため、図７（Ｂ）（Ｃ）に示すようにノード値が「０」以外すなわち非ゼロのノードデータを全結合層用ＦＩＦＯ部３０２に選択して書込み、これに合わせて、重み係数が格納されたメモリの対応するアドレスを同様にメモリアドレス用ＦＩＦＯ部３０３に書き込む。その後、積和演算時にＦＩＦＯ部からノード値を読み出する際に、ノード値に対応した重み係数のアドレス値を読み出し、重み係数メモリ３０４に供給することによりペアのズレをなくすことができる。
【００２１】
また、上述ではノード値がゼロの場合に、それに繋がる全てのニューラルネットの積和演算をキャンセルするものであるが、逆に、全てのニューラルネットの重み係数値がゼロの場合、同様に積和演算をキャンセルすることが可能である。ノード値は入力データにより変化するが、重み係数は固定であるため、事前に全てのニューラルネットの重み係数値がゼロであるノードを特定することは可能であり、その特定されたノードの積和演算をキャンセルする。また、ノード処理の単位を分割並列化させた場合に於いては、その単位範囲内で接続されるニューラルネットの重み係数がゼロであれば、そのノード演算の前にキャンセル指定することが可能となる。
【００２２】
このようにして全結合層用ＦＩＦＯ部３０２から読み出されたノードデータと、メモリアドレス用ＦＩＦＯ部３０３から読み出されたアドレスが示す重み係数メモリ３０４の出力、すなわち、重み係数とが乗算され、積和演算回路３０５のレジスタに記憶される。全結合層用ＦＩＦＯ部３０２のデータが空になるまで乗算結果の加算が繰り替えされ、最終的にその値が次層ノード値として確定することになる。
【００２３】
次に、積和演算回路３０５の小型化について説明する。
２進数の演算において２のｎ乗の乗算は、通常の乗算器を使用しなくてもシフト演算によって可能である。例えば、１０に０．５（２−１）を乗ずると５になるが、これをシフト演算で行う場合、１０は２進数で「1010」であり１ビット右シフト、即ち、０．５乗算相当とすると、「0101」となり、これは１０進数の５である。この理論を活かし、学習段階にて重み係数の取る範囲を２のｎ乗に指定し、またはそれに近似化することによって量子化し、乗算器をなくすことが可能となる。乗算器に比べシフト演算は、配線の切り替えだけの回路になるため、回路規模を著しく小さいものとすることができる。
【００２４】
また、全結合層の前段処理に於いては、一般的に複数種類の特徴画像データが抽出され、メモリまたはレジスタに記憶される。ここで、特徴画像の記憶回路と全結合層用ＦＩＦＯ部３０２は、基本的に同一容量である。このため、図５、図６に示すように、これらニューラルネットワーク処理コア部３０を２重に持たずに共通化する。また、図８に示すように、非ゼロ判定および非ゼロデータの複数の分割ＦＩＦＯ部への書き込みを同時並列（例えば６４個）で行った後、それを繋いで一個のＦＩＦＯに見立てるもので、モードに応じた制御切換えにより実現している。なお、複数の分割ＦＩＦＯ部を一本化した全結合層用ＦＩＦＯ部３０２の出力は、一つの次層ノード生成演算部３１０にて処理される。
【００２５】
次に、図９に示すフローチャートを用いてニューラルネットワーク処理装置１の動作を説明する。
まず、ステップＳ１０１においてニューラルネットワーク処理の前の畳込み処理により生成された特徴画像に対し、例えば、マックスプーリング処理を行い、その情報量を１／４に削減した特徴画像データ（ノード値）を生成する。次に、ステップＳ１０２において、特徴画像毎に非ゼロデータであるか否かの判定を非ゼロ判定制御部３０１により行う。  ステップＳ１０２において非ゼロデータであると判定すると、ステップＳ１０３に移行し、全結合層用ＦＩＦＯ部３０２における分割ＦＩＦＯ部にノードデータを書き込み、並行してステップＳ１０４において非ゼロノードに対応したメモリアドレスを書き込む。これらの全データの書き込みが完了したか判定し（ステップＳ１０５）、書き込みが完了していないと判定した場合、ステップＳ１０２に戻り、次のデータを判定し、書き込みを行う。なお、ステップＳ１０２において、ゼロデータであると判定した場合、書き込み処理を行わず、ステップＳ１０５に移行する。
【００２６】
一方、ステップＳ１０５において書き込みが完了していると判定した場合（ステップＳ１０６）、状態遷移管理部１０によりニューラルネットワーク処理モードに移行し、全結合層用ＦＩＦＯ部３０２内の分割ＦＩＦＯ部の制御を変えて一本のＦＩＦＯ部相当の出力を生成する。また、同様に、メモリアドレス用ＦＩＦＯ部３０３も一本のＦＩＦＯ部相当の出力を生成する（ステップＳ１０７）。
【００２７】
次に、ステップＳ１０８において、積和演算回路３０５により全結合層用ＦＩＦＯ部３０２およびメモリアドレス用ＦＩＦＯ部３０３内のデータが空になるまで累積積和演算を行い、ステップＳ１０９においてデータが最終であると判定すると、ステップＳ１１０に移行して次段への全結合層のノード値が確定することになる。
【００２８】
なお、次層ノード生成演算部３１０は、次層のノード数分あり、次層ノードは、一斉に生成されるが、回路規模を低減する目的のため、次層ノード生成演算部３１０をノード分割させて減らすことは可能である。但し、この場合、全結合層用ＦＩＦＯ部３０２は、分割の数分だけ読み返す必要がある。
【００２９】
すなわち、前段のノード数をｍ個（ｍは整数）とし、次段のノード数をｎ個（ｎは整数）とした場合、ＦＩＦＯの読出し段数ｍｓは、ｍからゼロ値のノード数ｍｚを引いた値となる（ｍｓ＝ｍ−ｍｚ）。また、処理時間の削減率は、ｍｓ／ｍにより求められる。使用される機会の多い活性化関数ＲｅＬＵにより、ノード値のうちゼロよりも小さな値は、一律ゼロにされるため、実際のノード値は、ゼロの比率が高く、その分、処理の高速化へと繋がり易い。なお、前段と後段に接続されるニューラルネット数はｍ×ｎ本となり、その数分の重み係数データが存在することになる。
【００３０】
ところで、ニューラルネットワークの個数は、一般的には１００万を超える個数であり、当然、重み係数のメモリアドレスも同数のデータを有しているため、多ビットにより構成することが必要となる。このメモリアドレス値は２進数で表現されるが、仮に１４ビット幅で表現すると、図１０に示すように全アドレスのうちのゼロ固定(無効データ)となる領域が半分を占めることになり、データの記憶効率が悪いものとなる。
【００３１】
実施の形態２．
図１１は、このようなメモリアドレス用ＦＩＦＯ部３０３におけるアドレスの記憶容量を減らすことを目的として増分値(相対アドレス化)を記憶させた例を示している。
すなわち、重み係数メモリ３０４のアドレス入力の前段に、アドレスカウンタ３０６を設け、アドレスの増分値を現在値に対してインクリメントするものである。このようにアドレスの増分値のみを記憶させることにより、メモリアドレス用ＦＩＦＯ部３０３の記憶容量を減らすことが可能となる。
【００３２】
ノード値は、直前の活性化関数処理、例えば、ＲｅＬＵ処理によりマイナス値の場合は強制的にゼロになる。このため、ゼロである確率は高くなり、その分、高速化に直結するものであるが、人工知能推論の判定に影響度の低いゼロに近い値の場合に、これをゼロと看做してより高速性を高める。どの範囲をゼロとして丸めるか(閾値の設定)については、汎用のプログラミング言語であるパイソン（PYTHON）言語等で記述したソフトウエアシミュレータにて容易に設定することができる。
【００３３】
なお、上述の実施形態においては、非ゼロノードデータおよび対応する重み係数メモリのアドレス情報の格納にＦＩＦＯを使用したものについて説明したが、ニューラルネットワーク処理の前段には、一般的に、畳込み処理、プーリング処理および活性化関数処理があり、データの処理の都合に合わせてデータを読み出す順番を逆にした、いわゆるＬＩＦＯ(Last In First Out：後入れ先出し)法を使用してもよい。
【００３４】
本開示は、例示的な実施の形態が記載されているが、実施の形態に記載された様々な特徴、態様、および機能は、特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも１つの構成要素を変形する場合、追加する場合または省略する場合が含まれるものとする。
【符号の説明】
【００３５】
１：ニューラルネットワーク処理装置、  １０：状態遷移管理部、
２０：データパス制御部、  ３０：ニューラルネットワーク処理コア部、
２０１：データパス切換え部、  ２０２：活性化関数処理部、
２０３：マックスプーリング処理部、  ３０１：非ゼロ判定制御部、
３０２：全結合層用ＦＩＦＯ部、  ３０３：メモリアドレス用ＦＩＦＯ部、
３０４：重み係数メモリ、  ３０５：積和演算回路、  ３０６：アドレスカウンタ、
３１０：次層ノード生成演算部
【要約】
【課題】ニューラルネットワーク処理の回路化に於いて、回路規模の小規模化を図りながら、ニューラルネットワーク処理速度の高速化を目的とする。
【解決手段】ニューラルネットワークの処理状態を通知、管理する状態遷移管理部と、状態遷移管理部による処理状態の通知を受けて入力ノードデータのパスを切換えて通知された処理状態に対応した処理を行い、ノードデータを出力するデータパス制御部と、データパス制御部による出力されたノードデータに積和演算処理を実施してデータパス制御部に出力するニューラルネットワーク処理コア部とを備え、前記ニューラルネットワーク処理コア部は、ノードデータを全結合層用ＦＩＦＯ部に格納する前段階においてノード値がゼロの場合、積和演算回路の処理を省略するとともに、データパス制御部において動作状態に対応したデータパスを切換え、ニューラルネットワーク処理コア部を共通に用いるようにした。
【選択図】図１【図１】
0006872599.tif 000002
【図２】
0006872599.tif 000003
【図３】
0006872599.tif 000004
【図４】
0006872599.tif 000005
【図５】
0006872599.tif 000006
【図６】
0006872599.tif 000007
【図７】
0006872599.tif 000008
【図８】
0006872599.tif 000009
【図９】
0006872599.tif 000010
【図１０】
0006872599.tif 000011
【図１１】
0006872599.tif 000012