(57)【要約】【課題】回路規模及びコストを大幅に縮小しつつ、効率的且つ多様性を有するニューラルネットワーク回路を提供する。【解決手段】脳機能に対応した乗算機能及び加算／適用機能を実現するニューラルネットワーク回路Ｃ１’において、重み付け係数Ｗとして「１」又は「０」を記憶するメモリセル１０と、脳機能に対応した既定の所定値を記憶するメモリセル１１と、入力データＩと重み付け係数Ｗとの排他的論理和を生成する多数判定入力回路１２と、排他的論理和と上記所定値とに基づき、当該所定値が脳機能に対応した既定値である場合に、（「１」である乗算結果の総数−「０」である乗算結果の総数≧既定の閾値）のとき「１」を出力し、（「１」である乗算結果の総数−「０」である乗算結果の総数＜既定の閾値）のとき「０」を出力する直列多数判定回路１３と、を備える。【選択図】図９
2017211972.tif 000002
【特許請求の範囲】
【請求項１】
人の脳機能に対応した重み付け係数と１ビットの入力データとを乗算する乗算機能と、当該乗算機能による複数の乗算結果を加算すると共に当該加算結果に活性化関数を適用して１ビットの出力データを出力し且つ前記脳機能に対応した加算／適用機能と、を実現するニューラルネットワーク回路において、
前記重み付け係数として「１」又は「０」を記憶して第１演算部に出力する第１記憶部と、
前記脳機能に対応して予め設定された所定値を記憶して前記第１演算部に出力する第２記憶部と、
前記入力データと前記記憶されている重み付け係数との排他的論理和を前記乗算結果として生成する前記第１演算部と、
前記生成された乗算結果と、前記記憶されている所定値と、に基づいて前記加算／適用機能を実現する第２演算部であって、当該所定値が前記脳機能に対応して予め設定された値である場合において、「１」である前記乗算結果の総数から「０」である前記乗算結果の総数を減じた値が予め定められた閾値以上であるとき、「１」を前記出力データとして出力し、前記所定値が前記予め設定された値である場合において、前記減じた値が前記閾値未満であるとき、「０」を前記出力データとして出力する第２演算部と、
を備えることを特徴とするニューラルネットワーク回路。
【請求項２】
請求項１に記載のニューラルネットワーク回路において、
前記加算／適用機能における加算機能として、前記脳機能に基づいて予め設定され且つ当該脳機能としての傾向をニューロンごとに示す整数である傾向係数であって、絶対値が０以上且つ前記入力データの数以下である傾向係数が、各前記乗算結果の加算結果に対して更に加算されるべき場合、当該傾向係数の絶対値に等しい数のいずれかの前記第１演算部に当該傾向係数が分けて入力されており、
当該傾向係数が分けて入力されている前記第１演算部は、前記所定値に応じて、各前記乗算結果の加算結果に対する当該傾向係数の更なる加算結果を前記第２演算部に出力し、
前記第２演算部は、前記傾向係数の更なる加算結果を各前記第１演算部について加算した合計値が正又は０であるとき「１」を前記出力データとして出力し、前記合計値が負であるとき「０」を前記出力データとして出力することを特徴とするニューラルネットワーク回路。
【請求項３】
請求項１に記載のニューラルネットワーク回路において、
前記入力データの数が一であり、
前記出力データ、前記第１記憶部、前記第２記憶部、前記第１演算部及び前記第２演算部それぞれの数が、前記ニューラルネットワーク回路が対応すべき前記脳機能に基づいて予め設定された二以上の数であり、
前記重み付け係数及び前記所定値のそれぞれが前記脳機能に対応した値であり、
各前記第１演算部は、各前記出力データにそれぞれ対応する前記重み付け係数と前記入力データとの前記排他的論理和を前記乗算結果として前記出力データごとにそれぞれ生成し、
各前記第２演算部は、
前記所定値が前記予め設定された値である場合において、「１」である前記乗算結果の総数から「０」である前記乗算結果の総数を減じた値が前記閾値以上であるとき、「１」を前記出力データとして出力し、前記所定値が前記予め設定された値である場合において、前記減じた値が前記閾値未満であるとき、「０」を前記出力データとして出力することを特徴とするニューラルネットワーク回路。
【請求項４】
請求項１に記載のニューラルネットワーク回路において、
前記出力データ及び前記第２演算部の数がそれぞれ一であり、
前記入力データ、前記第１記憶部、前記第２記憶部及び前記第１演算部それぞれの数が、前記ニューラルネットワーク回路が対応すべき前記脳機能に基づいて予め設定された二以上の数であり、
前記重み付け係数及び前記所定値のそれぞれが前記脳機能に対応した値であり、
各前記第１演算部は、各前記入力データにそれぞれ対応する前記重み付け係数と当該各入力データとの前記排他的論理和を前記乗算結果として前記入力データごとにそれぞれ生成し、
前記第２演算部は、
前記所定値が前記予め設定された値である場合において、「１」である前記乗算結果の総数から「０」である前記乗算結果の総数を減じた値が前記閾値以上であるとき、「１」を前記出力データとして出力し、前記所定値が前記予め設定された値である場合において、前記減じた値が前記閾値未満であるとき、「０」を前記出力データとして出力することを特徴とするニューラルネットワーク回路。
【請求項５】
請求項３に記載のニューラルネットワーク回路と、
請求項４に記載のニューラルネットワーク回路と、
を備え、
一の入力データが入力される請求項３に記載の前記ニューラルネットワーク回路から出力される各出力データがそれぞれ、請求項４に記載の前記ニューラルネットワーク回路における各入力データとされており、
請求項４に記載の前記ニューラルネットワーク回路から一の出力データを出力することを特徴とするニューラルネットワーク集積回路。
【請求項６】
請求項５に記載のニューラルネットワーク集積回路において、
請求項３に記載のニューラルネットワーク回路と請求項４に記載の前記ニューラルネットワーク回路との間にレジスタ部を更に備え、
当該レジスタ部は、請求項３に記載のニューラルネットワーク回路から出力される各出力データを一基準クロック分だけバッファリングし、請求項４に記載の前記ニューラルネットワーク回路における各入力データとして請求項４に記載の当該ニューラルネットワーク回路に出力することを特徴とするニューラルネットワーク集積回路。
【請求項７】
複数の請求項５に記載のニューラルネットワーク集積回路が直列に接続されており、
一の当該ニューラルネットワーク集積回路のからの一の前記出力データが、直後段の当該ニューラルネットワーク集積回路への一の前記入力データとされていることを特徴とするニューラルネットワーク集積回路。
【請求項８】
複数の請求項５に記載のニューラルネットワーク集積回路を備え、
当該複数の請求項５に記載のニューラルネットワーク集積回路のそれぞれに対して一の前記入力データが共通に入力されており、
当該複数の請求項５に記載のニューラルネットワーク集積回路からそれぞれ別個に前記出力データが一ずつ出力されることを特徴とするニューラルネットワーク集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワーク回路及びニューラルネットワーク集積回路の技術分野に属する。より詳細には、複数の入力データと重み付け係数とをそれぞれ乗算する乗算機能と、各乗算結果を加算しその加算結果に活性化関数を適用して出力する加算／適用機能と、を有するニューラルネットワーク回路、及び当該ニューラルネットワーク回路を複数備えるニューラルネットワーク集積回路の技術分野に属する。
【背景技術】
【０００２】
近年、人の脳機能をモデル化した、いわゆるニューラルネットワーク回路についての研究開発が行われている。このとき、従来のニューラルネットワーク回路としては、例えば浮動小数点又は固定小数点を使った積和演算を用いて実現される場合が多く、この場合には、例えば演算コストが大きく、処理負荷が高いという問題点があった。
【０００３】
そこで近年、上記入力データ及び上記重み付け係数をそれぞれ１ビットとする、いわゆる「バイナリニューラルネットワーク回路」のアルゴリズムが提案されている。ここで、上記バイナリニューラルネットワーク回路のアルゴリズムを示す先行技術文献としては、例えば下記非特許文献１及び非特許文献２が挙げられる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】「XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks」論文、Mohammad Rastegari他、arXiv:1603.05279v2 [cs.CV、2016年４月19日（ＵＲＬ：http://arxiv.org/abs/1603.05279）
【非特許文献２】「Binarized Neural Networks: Training Neural Networks with Weights and Activations Constrained to +1 or -1」論文、Matthieu Courbariaux他、arXiv:1602.02830v3 [cs.LG]、2016年3月17日（ＵＲＬ：http://arxiv.org/abs/1602.02830）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したいずれの非特許文献においても、当該論文記載の理論を具体的にどのように実現するかについては、全く記載されていない。また、各論文記載の理論により単位演算コストが大幅に下がることを利用して並列演算を可能にしたいが、そのためのハードウエア構成も未知である。更に、各論文記載の理論を用いた多様な構造を持つニューラルネット回路をどのように実現するかについても検討する余地がある。
【０００６】
そこで本発明は、上記の各問題点及び要請等に鑑みて為されたもので、その課題の一例は、上記バイナリニューラルネットワーク回路のアルゴリズムを用いて、回路規模及びそれに対応するコストを大幅に縮小しつつ、効率的且つ多様性を有するニューラルネットワーク回路、及び当該ニューラルネットワーク回路を備えるニューラルネットワーク集積回路を提供することにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、請求項１に記載の発明は、人の脳機能に対応した重み付け係数と１ビットの入力データとを乗算する乗算機能と、当該乗算機能による複数の乗算結果を加算すると共に当該加算結果に活性化関数を適用して１ビットの出力データを出力し且つ前記脳機能に対応した加算／適用機能と、を実現するニューラルネットワーク回路において、前記重み付け係数として「１」又は「０」を記憶して第１演算部に出力するメモリセル等の第１記憶部と、前記脳機能に対応して予め設定された所定値を記憶して前記第１演算部に出力するメモリセル等の第２記憶部と、前記入力データと前記記憶されている重み付け係数との排他的論理和を前記乗算結果として生成する多数判定入力回路等の前記第１演算部と、前記生成された乗算結果と、前記記憶されている所定値と、に基づいて前記加算／適用機能を実現する第２演算部であって、当該所定値が前記脳機能に対応して予め設定された値である場合において、「１」である前記乗算結果の総数から「０」である前記乗算結果の総数を減じた値が予め定められた閾値以上であるとき、「１」を前記出力データとして出力し、前記所定値が前記予め設定された値である場合において、前記減じた値が前記閾値未満であるとき、「０」を前記出力データとして出力する直列多数判定回路等の第２演算部と、を備える。
【０００８】
請求項１に記載の発明によれば、人の脳機能に対応し且つ各１ビットの入力データ及び出力データがそれぞれ入出力されるニューラルネットワーク回路における乗算機能を第１記憶部、第２記憶部及び第１演算部により実現し、更に当該ニューラルネットワーク回路における加算／適用機能を第２演算部により実現するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、人の脳機能に対応したニューラルネットワーク回路を効率的に実現することができる。
【０００９】
上記の課題を解決するために、請求項２に記載の発明は、請求項１に記載のニューラルネットワーク回路において、前記加算／適用機能における加算機能として、前記脳機能に基づいて予め設定され且つ当該脳機能としての傾向をニューロンごとに示す整数である傾向係数であって、絶対値が０以上且つ前記入力データの数以下である傾向係数が、各前記乗算結果の加算結果に対して更に加算されるべき場合、当該傾向係数の絶対値に等しい数のいずれかの前記第１演算部に当該傾向係数が分けて入力されており、当該傾向係数が分けて入力されている前記第１演算部は、前記所定値に応じて、各前記乗算結果の加算結果に対する当該傾向係数の更なる加算結果を前記第２演算部に出力し、前記第２演算部は、前記傾向係数の更なる加算結果を各前記第１演算部について加算した合計値が正又は０であるとき「１」を前記出力データとして出力し、前記合計値が負であるとき「０」を前記出力データとして出力するように構成される。
【００１０】
請求項２に記載の発明によれば、請求項１に記載の発明の作用に加えて、脳機能に基づく既定の傾向係数が各乗算結果の加算結果に対して更に加算されるべき場合、当該傾向係数の絶対値に等しい数のいずれかの第１演算部に当該傾向係数が分けて入力される。そして上記所定値に応じて、各乗算結果の加算結果に対する当該傾向係数の更なる加算結果が第１演算部から第２演算部に出力される。これらにより、傾向係数の更なる加算結果を各第１演算部について加算した合計値が正又は０であるとき「１」が出力データとして第２演算部から出力され、当該合計値が負であるとき「０」が出力データとして第２演算部から出力される。よって、脳機能に基づく既定の傾向係数が導入されるべき場合であっても、回路規模及びそれに対応するコストを大幅に縮小しつつ、人の脳機能に対応したニューラルネットワーク回路を効率的に実現することができる。
【００１１】
上記の課題を解決するために、請求項３に記載の発明は、請求項１に記載のニューラルネットワーク回路において、前記入力データの数が一であり、前記出力データ、前記第１記憶部、前記第２記憶部、前記第１演算部及び前記第２演算部それぞれの数が、前記ニューラルネットワーク回路が対応すべき前記脳機能に基づいて予め設定された二以上の数であり、前記重み付け係数及び前記所定値のそれぞれが前記脳機能に対応した値であり、各前記第１演算部は、各前記出力データにそれぞれ対応する前記重み付け係数と前記入力データとの前記排他的論理和を前記乗算結果として前記出力データごとにそれぞれ生成し、各前記第２演算部は、前記所定値が前記予め設定された値である場合において、「１」である前記乗算結果の総数から「０」である前記乗算結果の総数を減じた値が前記閾値以上であるとき、「１」を前記出力データとして出力し、前記所定値が前記予め設定された値である場合において、前記減じた値が前記閾値未満であるとき、「０」を前記出力データとして出力するように構成される。
【００１２】
請求項３に記載の発明によれば、請求項１に記載の発明の作用に加えて、入力データの数が一であり、出力データ、第１記憶部、第２記憶部、第１演算部及び第２演算部それぞれの数が、対応すべき脳機能に基づいた既定の二以上の数とされており、重み付け係数及び所定値のそれぞれが脳機能に対応した値とされている。そして各第１演算部が、各出力データにそれぞれ対応する重み付け係数と入力データとの排他的論理和を乗算結果として出力データごとにそれぞれ生成し、各第２演算部が、（「１」である乗算結果の総数−「０」である乗算結果の総数≧閾値）であるとき「１」を出力データとして出力し、（「１」である乗算結果の総数−「０」である乗算結果の総数＜閾値）であるとき「０」を出力データとして出力する。よって、各第１記憶部、各第２記憶部及び各第１演算部により出力データごとに乗算機能を実現し、更に各第２演算部により出力データごとに加算／適用機能を実現するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、いわゆる直列入力−並列出力型のニューラルネットワーク回路を効率的に実現することができる。
【００１３】
上記の課題を解決するために、請求項４に記載の発明は、請求項１に記載のニューラルネットワーク回路において、前記出力データ及び前記第２演算部の数がそれぞれ一であり、前記入力データ、前記第１記憶部、前記第２記憶部及び前記第１演算部それぞれの数が、前記ニューラルネットワーク回路が対応すべき前記脳機能に基づいて予め設定された二以上の数であり、前記重み付け係数及び前記所定値のそれぞれが前記脳機能に対応した値であり、各前記第１演算部は、各前記入力データにそれぞれ対応する前記重み付け係数と当該各入力データとの前記排他的論理和を前記乗算結果として前記入力データごとにそれぞれ生成し、前記第２演算部は、前記所定値が前記予め設定された値である場合において、「１」である前記乗算結果の総数から「０」である前記乗算結果の総数を減じた値が前記閾値以上であるとき、「１」を前記出力データとして出力し、前記所定値が前記予め設定された値である場合において、前記減じた値が前記閾値未満であるとき、「０」を前記出力データとして出力するように構成される。
【００１４】
請求項４に記載の発明によれば、請求項１に記載の発明の作用に加えて、出力データ及び第２演算部の数がそれぞれ一であり、入力データ、第１記憶部、第２記憶部及び第１演算部それぞれの数が、対応すべき脳機能に基づいた既定の二以上の数とされており、重み付け係数及び所定値のそれぞれが脳機能に対応した値とされている。そして各第１演算部が、各入力データにそれぞれ対応する重み付け係数と当該各入力データとの排他的論理和を乗算結果として入力データごとにそれぞれ生成し、第２演算部が、（「１」である乗算結果の総数−「０」である乗算結果の総数≧閾値）であるとき「１」を出力データとして出力し、（「１」である乗算結果の総数−「０」である乗算結果の総数＜閾値）であるとき「０」を出力データとして出力する。よって、各第１記憶部、各第２記憶部及び各第１演算部により入力データごとに乗算機能を実現し、更に一の第２演算部により入力データごとに加算／適用機能を実現するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、いわゆる並列入力−直列出力型のニューラルネットワーク回路を効率的に実現することができる。
【００１５】
上記の課題を解決するために、請求項５に記載の発明は、請求項３に記載のニューラルネットワーク回路と、請求項４に記載のニューラルネットワーク回路と、を備え、一の入力データが入力される請求項３に記載の前記ニューラルネットワーク回路から出力される各出力データがそれぞれ、請求項４に記載の前記ニューラルネットワーク回路における各入力データとされており、請求項４に記載の前記ニューラルネットワーク回路から一の出力データを出力するように構成される。
【００１６】
請求項５に記載の発明によれば、請求項３に記載のニューラルネットワーク回路と、請求項４に記載のニューラルネットワーク回路と、を備え、一の入力データが入力される請求項３に記載のニューラルネットワーク回路から出力される各出力データがそれぞれ、請求項４に記載のニューラルネットワーク回路における各入力データとされており、請求項４に記載のニューラルネットワーク回路から一の出力データが出力される。よって、本発明に係る直列入力−並列出力型のニューラルネットワーク回路と本発明に係る並列入力−直列出力型のニューラルネットワーク回路とを接続することで、回路規模及びそれに対応するコストを大幅に縮小しつつ、多様な脳機能に対応可能なニューラルネットワーク回路を効率的に実現することができる。
【００１７】
上記の課題を解決するために、請求項６に記載の発明は、請求項５に記載のニューラルネットワーク集積回路において、請求項３に記載のニューラルネットワーク回路と請求項４に記載の前記ニューラルネットワーク回路との間にパイプラインレジスタ等のレジスタ部を更に備え、当該レジスタ部は、請求項３に記載のニューラルネットワーク回路から出力される各出力データを一基準クロック分だけバッファリングし、請求項４に記載の前記ニューラルネットワーク回路における各入力データとして請求項４に記載の当該ニューラルネットワーク回路に出力するように構成される。
【００１８】
請求項６に記載の発明によれば、請求項５に記載の発明の作用に加えて、請求項３に記載のニューラルネットワーク回路と請求項４に記載の前記ニューラルネットワーク回路との間に備えられたレジスタ部により、請求項３に記載のニューラルネットワーク回路から出力される各出力データを一基準クロック分だけバッファリングして、請求項４に記載のニューラルネットワーク回路における各入力データとして請求項４に記載の当該ニューラルネットワーク回路に出力する。よって、請求項４に記載のニューラルネットワーク回路における第２演算部における見かけ上の並列処理が可能となり、多様な脳機能に対応可能なニューラルネットワーク回路を効率的且つ高速化して実現することができる。
【００１９】
上記の課題を解決するために、請求項７に記載の発明は、複数の請求項５に記載のニューラルネットワーク集積回路が直列に接続されており、一の当該ニューラルネットワーク集積回路のからの一の前記出力データが、直後段の当該ニューラルネットワーク集積回路への一の前記入力データとされているように構成される。
【００２０】
請求項７に記載の発明によれば、請求項５に記載の発明の作用に加えて、複数の請求項５に記載のニューラルネットワーク集積回路が直列に接続されており、一の当該ニューラルネットワーク集積回路のからの一の出力データが、直後段の当該ニューラルネットワーク集積回路への一の入力データとされているので、より多様な脳機能に対応可能なニューラルネットワーク回路を効率的に実現することができる。
【００２１】
上記の課題を解決するために、請求項８に記載の発明は、複数の請求項５に記載のニューラルネットワーク集積回路を備え、当該複数の請求項５に記載のニューラルネットワーク集積回路のそれぞれに対して一の前記入力データが共通に入力されており、当該複数の請求項５に記載のニューラルネットワーク集積回路からそれぞれ別個に前記出力データが一ずつ出力されるように構成される。
【００２２】
請求項８に記載の発明によれば、請求項５に記載の発明の作用に加えて、複数の請求項５に記載のニューラルネットワーク集積回路のそれぞれに対して一の入力データが共通に入力されており、当該複数の請求項５に記載のニューラルネットワーク集積回路からそれぞれ別個に出力データが一ずつ出力されるので、より多様な脳機能に対応可能なニューラルネットワーク回路を効率的に実現することができる。
【発明の効果】
【００２３】
本発明によれば、人の脳機能に対応し且つ各１ビットの入力データ及び出力データがそれぞれ入出力されるニューラルネットワーク回路における乗算機能を第１記憶部、第２記憶部及び第１演算部により実現し、更に当該ニューラルネットワーク回路における加算／適用機能を第２演算部により実現する。
【００２４】
従って、回路規模及びそれに対応するコストを大幅に縮小しつつ、人の脳機能に対応したニューラルネットワーク回路及びその集積回路を効率的に実現することができる。
【図面の簡単な説明】
【００２５】
【図１】関連形態に係るニューラルネットワークを説明する図であり、（ａ）は一つのニューロンをモデル化したユニットを示す図であり、（ｂ）は複数のユニットの結合からなるニューラルネットワークの状態を示す図である。
【図２】関連形態に係るニューラルネットワーク回路を示す図であり、（ａ）は当該ニューラルネットワーク回路に相当するニューラルネットワークを示す図であり、（ｂ）は当該ニューラルネットワーク回路の構成を示すブロック図であり、（ｃ）は当該ニューラルネットワーク回路に対応する真理値表である。
【図３】関連形態に係るニューラルネットワーク回路の細部構成を示す図であり、（ａ）は当該細部構成に係るメモリセルの回路の一例を示す図であり、（ｂ）は当該細部構成の回路の一例を示す図である。
【図４】関連形態に係るニューラルネットワーク集積回路の第１例を示す図であり、（ａ）は当該第１例に相当するニューラルネットワークを示す図であり、（ｂ）は当該第１例の構成を示すブロック図である。
【図５】関連形態に係るニューラルネットワーク集積回路の第２例を示す図であり、（ａ）は当該第２例に相当するニューラルネットワークを示す図であり、（ｂ）は当該第２例の構成を示すブロック図である。
【図６】関連形態に係るニューラルネットワーク集積回路の第３例を示す図であり、（ａ）は当該第３例に相当するニューラルネットワークを示す図であり、（ｂ）は当該第３例の構成を示すブロック図である。
【図７】関連形態に係るニューラルネットワーク集積回路の第４例を示す図であり、（ａ）は当該第４例に相当するニューラルネットワークを示す図であり、（ｂ）は当該第４例の構成を示すブロック図であり、（ｃ）は当該第４例に係るスイッチボックスの構成の一例を示すブロック図である。
【図８】実施形態に係るニューラルネットワーク集積回路の第１例の一部を示す図であり、（ａ）は当該一部に相当するニューラルネットワークを示す図であり、（ｂ）は当該一部の構成を示すブロック図であり、（ｃ）の当該一部に対応する真理値表である。
【図９】実施形態に係るニューラルネットワーク集積回路の第１例を示す図であり、（ａ）は当該第１例に相当するニューラルネットワークを示す図であり、（ｂ）は当該第１例の構成を示すブロック図である。
【図１０】実施形態に係るニューラルネットワーク回路の第１例を示す図であり、（ａ）は当該第１例に相当するニューラルネットワークを示す図であり、（ｂ）は当該第１例の構成を示すブロック図である。
【図１１】実施形態に係るニューラルネットワーク集積回路の第２例を示す図であり、（ａ）は当該第２例に相当するニューラルネットワークを示す図であり、（ｂ）は当該第２例の構成を示すブロック図である。
【図１２】実施形態に係るニューラルネットワーク集積回路の第３例を示す図であり、（ａ）は当該第３例に相当するニューラルネットワークを示す図であり、（ｂ）は当該第３例の構成を示すブロック図である。
【図１３】実施形態に係るニューラルネットワーク集積回路の第４例を示す図であり、（ａ）は当該第４例の構成を示すブロック図であり、（ｂ）は当該第４例に相当する回路例を示す図である。
【図１４】実施形態に係るニューラルネットワーク集積回路の第４例の細部構成を示す図であり、（ａ）は当該第４例に係るパイプラインレジスタ等の回路の一例を示す図であり、（ｂ）は当該第４例に係る多数判定入力回路及び直列多数判定回路それぞれの一例を示す図であり、（ｃ）は当該第４例に係る並列多数判定回路の一例を示す図であり、（ｄ）は当該第４例における動作を示すタイミングチャートである。
【図１５】実施形態に係るニューラルネットワーク集積回路の第５例を示す図であり、（ａ）は当該第５例の構成を示すブロック図であり、（ｂ）は当該第５例に係る制御部の細部構成を示すブロック図である。
【図１６】実施形態に係るニューラルネットワーク集積回路の第６例等の構成を示すブロック図であり、（ａ）は当該第６例の構成を示すブロック図であり、（ｂ）は実施形態に係るニューラルネットワーク集積回路の第７例の構成を示すブロック図である。
【図１７】変形形態に係るニューラルネットワークを説明する図であり、（ａ）は変形形態に係る一つのニューロンをモデル化したユニットを示す図であり、（ｂ）は変形形態に係る傾向変数と出力データとの関係等を示す図である。
【図１８】変形形態に係るニューラルネットワーク集積回路の細部構成を示す図であり、（ａ）は当該細部構成に相当する回路の一例を示す図であり、（ｂ）は当該細部構成としての多数判定入力回路及び直列多数判定回路それぞれの一例を示す図であり、（ｃ）は当該細部構成としての並列多数判定回路の一例を示す図である。
【発明を実施するための形態】
【００２６】
次に、本発明に係る関連形態及び実施形態について、図面に基づいてそれぞれ説明する。なお以下に説明する関連形態等は、人の脳機能をモデル化したニューラルネットワークを電子的な回路で実現したニューラルネットワーク回路について本発明を適用した場合の関連形態等である。
（Ｉ）関連形態
初めに、本発明に関連する関連形態について、図１乃至図７を用いて説明する。なお、図１は関連形態に係るニューラルネットワークを説明する図であり、図２は関連形態に係るニューラルネットワーク回路を示す図であり、図３は当該ニューラルネットワーク回路の細部構成を示す図である。また、図４は関連形態に係るニューラルネットワーク集積回路の第１例を示す図であり、図５は当該ニューラルネットワーク集積回路の第２例を示す図であり、図６は当該ニューラルネットワーク集積回路の第３例を示す図であり、図７は当該ニューラルネットワーク集積回路の第４例を示す図である。
【００２７】
（Ａ）ニューラルネットワークについて
先ず、上記脳機能をモデル化したニューラルネットワークについて、一般的に図１を用いて説明する。
【００２８】
一般に人の脳の中には、多数のニューロン（神経細胞）が存在しているとされている。脳の中で各ニューロンは、多数の他のニューロンからの電気信号を受信し、また更に他の多数のニューロンへ電気信号を送信している。そして脳は、各ニューロン間のこれら電気信号の流れによって、様々な情報処理を行っているとされている。このとき、各ニューロン間における電気信号の送受信は、シナプスと呼ばれる細胞を介して行われる。そして、脳における上記ニューロン間の電気信号の送受信をモデル化してコンピュータ内に脳機能を実現しようとしたものが、ニューラルネットワークである。
【００２９】
より具体的にニューラルネットワークでは図１（ａ）に例示するように、外部から入力される複数の入力データＩ１、入力データＩ２、…、入力データＩｎ（ｎは自然数。以下同様。）のそれぞれに対する乗算処理、加算処理及び活性化関数の適用処理を一つのニューロンＮＲで実行し、その結果を出力データＯとすることで、脳機能における一つのニューロンに対する上記電気信号の送受信をモデル化する。なお以下の説明において、上記活性化関数の適用処理を、単に「活性化処理」と称する。このとき一つのニューロンＮＲでは、複数の入力データＩ１、入力データＩ２、…、入力データＩｎそれぞれに対応して予め設定された（つまり既定の）重み付け係数Ｗ１、重み付け係数Ｗ２、…、重み付け係数Ｗｎを当該入力データＩ１、入力データＩ２、…、入力データＩｎに対してそれぞれ乗算することで上記乗算処理が実行される。その後当該ニューロンＮＲは、各入力データＩ１、入力データＩ２、…、入力データＩｎに対する上記乗算処理の結果のそれぞれを加算する上記加算処理を実行する。そして当該ニューロンＮＲは次に、上記加算処理の結果に既定の活性化関数Ｆを適用する上記活性化処理を実行し、その結果を上記出力データＯとして他の一又は複数のニューロンにＮＲに出力する。上述した一連の乗算処理、加算処理及び活性化処理を数式で表すと、図１（ａ）に示す式（１）となる。このとき、重み付け係数Ｗ１、重み付け係数Ｗ２、…、重み付け係数Ｗｎを入力データＩ１、入力データＩ２、…、入力データＩｎにそれぞれ乗算する乗算処理が、ニューロンＮＲ間の上記電気信号のやり取りにおける上記シナプスの作用に相当する。そして図１（ｂ）に例示されるように、図１（ａ）に例示する一つのニューロンＮＲが多数集まってシナプスにより互いに接続されることにより、脳全体がニューラルネットワークＳＳとしてモデル化される。なお以下の説明において、入力データＩ１乃至入力データＩｎ又は入力データＩｍ（ｍは自然数。以下同様。）に共通の事項を説明する場合、単に「入力データＩ」と称する。また同様に、出力データＯ１乃至出力データＯｎ又は出力データＯｍに共通の事項を説明する場合、単に「出力データＯ」と称する。更に同様に、重み付け係数Ｗ１乃至重み付け係数Ｗｎ又は重み付け係数Ｗｍに共通の事項を説明する場合、単に「重み付け係数Ｗ」と称する。
【００３０】
そして、以下に説明する関連形態等に係るニューラルネットワーク回路又はニューラルネットワーク集積回路は、図１を用いて説明した一般的なニューラルネットワークを、上記非特許文献１又は非特許文献２に記載されている手法によりバイナリ化したニューラルネットワーク回路又はニューラルネットワーク集積回路によりモデル化するものである。
【００３１】
（Ｂ）関連形態に係るニューラルネットワーク回路について
次に、関連形態に係るニューラルネットワーク回路について、図２及び図３を用いて例示しつつ説明する。
【００３２】
図２（ａ）に示すように、当該ニューラルネットワーク回路に相当するニューラルネットワークＳでは、一つのニューロンＮＲに対して例えば四つの他のニューロンＮＲから１ビットの入力データＩがそれぞれ入力され、それに対応する出力データＯが当該ニューロンＮＲから出力される。このとき入力データＩは、その出力元のニューロンＮＲから見れば１ビットの出力データＯとなる。また１ビットの出力データＯは、その出力先のニューロンＮＲから見ると１ビットの入力データＩとなる。上記の通り入力データＩ及び出力データＯはそれぞれ１ビットであるため、入力データＩの値及び出力データＯの値は、いずれも「０」又は「１」のいずれかである。そして、図２（ａ）において四つの入力データＩが入力されているニューロンＮＲ（図２（ａ）においてハッチングで示される）において実行される上記乗算処理等に相当する上記式（１）は、上記式（１）においてｎ＝４とした場合の式である。即ち上記ニューラルネットワークＳは、並列多入力−一出力型の一段ニューラルネットワークである。
【００３３】
次に、図２（ａ）に示すニューラルネットワークＳにおいてハッチングで示されるニューロンＮＲに相当する関連形態に係るニューラルネットワーク回路の構成を、図２（ｂ）にニューラルネットワーク回路ＣＳとして示す。当該ニューラルネットワーク回路ＣＳは、各々が１ビットの入力データＩ１乃至入力データＩ４にそれぞれ対応する四つのメモリセル１と、多数判定回路２と、により構成される。この構成において各メモリセル１は、「１」、又は「０」、或いは「ＮＣ（Not Connected（接続なし））」を意味する所定値の三つのいずれか一つを記憶値として記憶すると共に、比較機能を有する三値のメモリセルである。そして各メモリセル１は、それぞれへの入力データＩの値と、それぞれの記憶値と、に応じた値を有する出力データＥ１乃至出力データＥ４を、多数判定回路２にそれぞれ出力する。
【００３４】
ここで、メモリセル１の記憶値の一つである上記所定値が意味する上記「ＮＣ」は、関連形態に係るニューラルネットワークＳにおける二つのニューロンＮＲ間に接続がない状態である。即ち、そのメモリセル１が対応している二つのニューロンＮＲ（即ち入力ニューロンと出力ニューロン）が接続されていない場合、そのメモリセル１の記憶値は上記所定値に設定される。一方、メモリセル１の他の記憶値（「１」又は「０」）のいずれをそのメモリセル１に記憶させておくかは、そのメモリセル１が対応している接続により接続される二つのニューロンＮＲ間の当該接続における重み係数Ｗに基づいて設定される。ここで各メモリセル１にどのような記憶値を記憶させておくかは、ニューラルネットワークＳとしてどのような脳機能をモデル化するか（より具体的には、例えばニューラルネットワークＳを構成するニューロンＮＲ間の接続状態等）等に基づいて予め設定されている。なお以下の説明において、出力データＥ１乃至出力データＥｎに共通の事項を説明する場合、単に「出力データＥ」と称する。
【００３５】
そして、各メモリセル１における上記記憶値及びそれぞれに入力される入力データＩの値と、各メモリセル１から出力される出力データＥの値と、の間の関係は、図２（ｃ）に真理値表を示す関係とされる。即ち各メモリセル１は、当該各メモリセル１の記憶値と入力データＩの値との排他的否定論理和を当該各メモリセル１から出力データＥとして出力する。また各メモリセル１の記憶値が上記所定値である場合、そのメモリセル１からは、入力データＩがいずれの値であっても当該所定値が出力データＥとして多数判定回路２に出力される。なお、各メモリセル１の細部構成については、後ほど図３（ａ）を用いて説明する。
【００３６】
次に多数判定回路２は、各メモリセル１からの出力データＥの値に基づき、値「１」の出力データＥの数が値「０」の出力データＥの数より大きい場合にのみ値「１」の出力データＯを出力し、それ以外の場合に値「０」の出力データＯを出力する。このとき、値「１」の出力データＥの数が値「０」の出力データＥの数より大きい場合以外の場合とは、具体的には、いずれかのメモリセル１から値「ＮＣ」が出力されている場合、又は各メモリセル１からの値「１」の出力データＥの数が値「０」の出力データＥの数以下の場合、のいずれかである。なお多数判定回路２及び各メモリセル１を含むニューラルネットワーク回路ＣＳの細部構成については、後ほど図３（ｂ）を用いて説明する。
【００３７】
ここでニューラルネットワーク回路ＣＳは上述したように、図２（ａ）においてハッチングで示されるニューロンＮＲにおける上記乗算処理、加算処理及び活性化処理をモデル化した回路である。そして、各メモリセル１からの上記排他的否定論理和としての出力データＥの出力が上記重み付け係数Ｗを用いた上記乗算処理に相当する。また多数判定回路２は、値「１」の出力データＥの数と値「０」の出力データＥの数とを比較する比較処理の前提として、値「１」の出力データＥの数を加算してその合計値を算出すると共に、値「０」の出力データＥの数を加算してその合計値を算出する。これらの加算が上記加算処理に相当する。そして多数判定回路２において、値「１」の出力データＥ及び値「０」の出力データＥそれぞれの数の上記合計値を比較し、前者の数から後者の数を減じた値が予め設定された多数判定閾値以上の場合にのみ、値「１」の出力データＯを多数判定回路２から出力する。一方それ以外の場合、即ち値「１」の出力データＥの数の合計値から値「０」の出力データＥの数の合計値を減じた値が多数判定閾値未満の場合に値「０」の出力データＯを多数判定回路２から出力する。このとき、出力データＥが上記所定値の場合に多数判定回路２は、当該出力データＥを、値「１」の出力データＥの数及び値「０」の出力データＥの数のいずれにも加算しない。
【００３８】
ここで、多数判定回路２における上記多数判定閾値を用いた処理について、より具体的に説明する。なお図２に例示するニューラルネットワーク回路ＣＳでは、値「１」の出力データＥの数と値「０」の出力データＥの数との総数は「４」であるが、説明の明確化のため、当該総数が「１０」である場合の上記処理について説明する。
【００３９】
即ち、例えば多数判定閾値が「０」であり、値「１」の出力データＥの数と値「０」の出力データＥの数が共に「５」であるとすると、値「１」の出力データＥの数から値「０」の出力データＥの数を減じた値は「０」であり、これは当該多数判定閾値と等しい。よってこの場合に多数決判定回路２は、値「１」の出力データＯを出力する。これに対して、多数判定閾値が「０」であり、値「１」の出力データＥの数が「４」であり、値「０」の出力データＥの数が「６」であるとすると、値「１」の出力データＥの数から値「０」の出力データＥの数を減じた値は「−２」であり、これは当該多数判定閾値より小さい。よってこの場合に多数決判定回路２は、値「０」の出力データＯを出力する。
【００４０】
他方、例えば多数判定閾値が「−２」であり、値「１」の出力データＥの数と値「０」の出力データＥの数が共に「５」であるとすると、値「１」の出力データＥの数から値「０」の出力データＥの数を減じた値「０」は当該多数判定閾値より大きい。よってこの場合に多数決判定回路２は、値「１」の出力データＯを出力する。これに対して、多数判定閾値が「−２」であり、値「１」の出力データＥの数が「４」であり、値「０」の出力データＥの数が「６」であるとすると、値「１」の出力データＥの数から値「０」の出力データＥの数を減じた値「−２」は当該多数判定閾値と等しい。よってこの場合も多数決判定回路２は、値「１」の出力データＯを出力する。
【００４１】
以上具体的に説明した多数判定回路２における処理が上記活性化処理に相当する。以上の通り、図２（ｂ）に示すニューラルネットワーク回路ＣＳにより、図２（ａ）においてハッチングで示されるニューロンＮＲとしての各処理がモデル化される。
【００４２】
次に、各メモリセル１の細部構成について、図３（ａ）を用いて説明する。図３（ａ）に示すように、各メモリセル１のそれぞれは、トランジスタＴ１乃至トランジスタＴ１４と、インバータＩＶ１乃至インバータＩＶ４と、により構成されている。なお図３に示す各トランジスタＴ１等のそれぞれは、例えばＭＯＳＦＥＴ（Metal Oxide semiconductor Field Effected Transistor）等により構成されている。そしてこれらの素子が、入力データＩｎに相当する接続線ＬＩｎ及び接続線／ＬＩｎ、ワード（Word）信号に相当する接続線Ｗ１及び接続線Ｗ２、並びにマッチ（match）信号に相当するマッチ線Ｍ及び反転マッチ線／Ｍにより図３（ａ）に示す態様で接続されて、一つのメモリセル１が構成されている。このとき、トランジスタＴ１及びトランジスタＴ２、並びにインバータＩＶ１及びインバータＩＶ２により例えばＳＲＡＭ（static random access memory）としての一のメモリＣＬ１が構成され、トランジスタＴ３及びトランジスタＴ４、並びにインバータＩＶ３及びインバータＩＶ４により例えばＳＲＡＭとしての一のメモリＣＬ２が構成される。また、トランジスタＴ５乃至トランジスタＴ９によりＸＮＯＲゲートＧ１が構成され、トランジスタＴ１０乃至トランジスタＴ１４によりＸＯＲゲートＧ２が構成される。
【００４３】
次に、多数判定回路２及び各メモリセル１を含むニューラルネットワーク回路ＣＳの細部構成について、図３（ｂ）を用いて説明する。なお図３（ｂ）は、図２（ａ）に対応して入力データＩが四つである（即ち、メモリセル１を四つ備える）ニューラルネットワーク回路ＣＳの細部構成について示している。なお図３（ｂ）に例示するニューラルネットワーク回路ＣＳでは、上記多数判定閾値が「０」である場合について説明する。
【００４４】
図３（ｂ）に示すようにニューラルネットワーク回路ＣＳは、四つのメモリセル１と、多数判定回路２を構成するトランジスタＴ２０乃至トランジスタＴ３０（図３（ｂ）破線参照）と、により構成されている。このとき、図３（ｂ）において一点鎖線で示されるように、トランジスタＴ２５乃至トランジスタＴ２８により、フリップフロップ型のセンスアンプＳＡが構成されている。そしてこれらの素子が、四つのメモリセル１に共通の上記接続線Ｗ１及び接続線Ｗ２並びに上記接続線Ｍ及び接続線／Ｍ、及び出力データＯに相当する接続線ＬＯ及び接続線／ＬＯにより図３（ｂ）に示す態様で接続されて、一つのニューラルネットワーク回路ＣＳが構成されている。また図３（ｂ）に示すニューラルネットワーク回路ＣＳには、当該ニューラルネットワーク回路ＣＳとしての処理を規定するための予め設定されたタイミング信号φ１、タイミング信号φ２及びタイミング信号／φ２並びにタイミング信号φ３が外部から入力されている。このとき、タイミング信号φ１はトランジスタＴ２０乃至トランジスタＴ２２のゲート端子にそれぞれ入力され、タイミング信号φ２及びタイミング信号／φ２はトランジスタＴ２９及びトランジスタＴ３０のゲート端子にそれぞれ入力され、タイミング信号φ３はトランジスタＴ２３及びトランジスタＴ２４のゲート端子にそれぞれ入力されている。以上の構成において、タイミング信号φ１に基づいてそれぞれプリチャージされた各メモリセル１のマッチ線Ｍと反転マッチ線／Ｍとでは、入力データＩの値並びにメモリＣＬ１及びメモリＣＬ２の記憶値に応じて、当該プリチャージされた電荷が引き抜かれるタイミングが異なる。そしてセンスアンプＳＡは、これらマッチ線Ｍ又は反転マッチ線／Ｍのどちらがより早く当該プリチャージされた電荷を引き抜かれるかを検出し、更に当該マッチ線Ｍと反転マッチ線／Ｍとの間の電圧差を増幅することにより、当該検知結果を接続線ＬＯ及び接続線／ＬＯに出力する。ここで、接続線ＬＯにおける値が「１」であることが、ニューラルネットワーク回路ＣＳとしての出力データＯの値「１」であることを意味することになる。以上の構成及び動作によりニューラルネットワーク回路ＣＳは、上記タイミング信号φ１等に基づいて、図２（ａ）においてハッチングで示されるニューロンＮＲとしての各処理をモデル化した処理を実行し、上記出力データＯを出力する。
【００４５】
（Ｃ）関連形態に係るニューラルネットワーク集積回路の第１例について
次に、関連形態に係るニューラルネットワーク集積回路の第１例について、図４を用いて説明する。なお図４において、図２及び図３を用いて説明した関連形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【００４６】
以下の図４乃至図７を用いてそれぞれ説明する関連形態に係るニューラルネットワーク集積回路は、図２及び図３を用いて説明した関連形態に係るニューラルネットワーク回路を複数集積した集積回路である。そしてこれらのニューラルネットワーク集積回路は、より多くのニューロンＮＲからなる複雑なニューラルネットワークをモデル化するためのものである。
【００４７】
先ず、図４（ａ）に例示するニューラルネットワークＳ１をモデル化するための関連形態に係るニューラルネットワーク集積回路の第１例について説明する。当該ニューラルネットワークＳ１は、図４（ａ）においてハッチングで示されるｍ個のニューロンＮＲのそれぞれに対してｎ個のニューロンＮＲから１ビットの出力データＯがそれぞれ出力されることにより、当該ハッチングで示されるニューロンＮＲから１ビットの出力データＯがそれぞれ出力されるニューラルネットワークである。即ち上記ニューラルネットワークＳ１は、並列多入力−並列多出力型の一段ニューラルネットワークである。ここで図４（ａ）においては、各ニューロンＮＲの全てが入力信号Ｉ又は出力信号Ｏにより接続されている場合を示しているが、モデル化しようとする脳機能に応じて、各ニューロンＮＲのいずれかの間が接続されていなくてもよい。そしてこのことが、当該接続されていないニューロンＮＲ間の接続に対応するメモリセル１の記憶値として上記所定値が記憶されていることにより表現される。なおこの点は、以降に図５（ａ）、図６（ａ）又は図７（ａ）を用いてそれぞれ説明するニューラルネットワークの場合においても同様である。
【００４８】
上記ニューラルネットワークＳ１をモデル化する場合、図２及び図３を用いて説明した関連形態に係るニューラルネットワーク回路ＣＳにおいて、１ビットの入力データＩをｎ個とする。このとき、当該ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳのそれぞれが、図４（ａ）においてハッチングで示されるニューロンＮＲの機能をモデル化したものであり、上記乗算処理、加算処理及び活性化処理をそれぞれ実行する。なお以下の図４乃至図７を用いた説明においては、上記ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳを、「ニューラルネットワーク回路ＣＳ１」、「ニューラルネットワーク回路ＣＳ２」、…、と称する。そして関連形態に係るニューラルネットワーク集積回路の第１例としては、当該ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳ１等をｍ個集積する。
【００４９】
即ち図４（ｂ）に示すように、関連形態に係るニューラルネットワーク集積回路の第１例であるニューラルネットワーク集積回路Ｃ１は、各１ビットのｎ個の入力データＩ１乃至入力データＩｎがそれぞれ共通的に入力されるｍ個のニューラルネットワーク回路ＣＳ１乃至ニューラルネットワーク回路ＣＳｍが集積されて構成されている。そして、ニューラルネットワーク回路ＣＳ１乃至ニューラルネットワーク回路ＣＳｍのそれぞれには、上記タイミング信号φ１等がタイミング生成回路ＴＧから共通的に入力される。このときタイミング生成回路ＴＧは、予め設定された基準クロック信号ＣＬＫに基づいて上記タイミング信号φ１等を生成してニューラルネットワーク回路ＣＳ１乃至ニューラルネットワーク回路ＣＳｍに出力する。そしてニューラルネットワーク回路ＣＳ１乃至ニューラルネットワーク回路ＣＳｍの各々は、上記入力データＩ１乃至入力データＩｎと、タイミング信号φ１等と、に基づいて、各１ビットの出力データＯ１、出力データＯ２、…、出力データＯｍをそれぞれ出力する。
【００５０】
以上説明した構成を備えるニューラルネットワーク集積回路Ｃ１において、ｍ個のニューロンＮＲに対してｎ個のニューロンＮＲからそれぞれ出力データＯが出力されることにより、ｍ個のニューロンＮＲから出力データＯが合計ｍ個出力される図４（ａ）のニューラルネットワークＳ１がモデル化される。
【００５１】
（Ｄ）関連形態に係るニューラルネットワーク集積回路の第２例について
次に、関連形態に係るニューラルネットワーク集積回路の第２例について、図５を用いて説明する。なお図５において、図２及び図３を用いて説明した関連形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【００５２】
関連形態に係るニューラルネットワーク集積回路の第２例は、図５（ａ）に例示するニューラルネットワークＳＳ１をモデル化するためのニューラルネットワーク集積回路である。当該ニューラルネットワークＳＳ１は、図４（ａ）を用いて説明したニューラルネットワークＳ１においてｎ＝ｍとした場合に相当する。即ちニューラルネットワークＳＳ１は、図５（ａ）においてハッチングで示される３×ｎ個のニューロンＮＲのそれぞれに対して相隣接する列の（ｎ個の）ニューロンＮＲから出力データＯがそれぞれ出力されることにより、図５（ａ）右端列のｎ個のニューロンＮＲから出力データＯがそれぞれ出力されるニューラルネットワークである。上記ニューラルネットワークＳＳ１は、並列多入力−並列多出力型の多段ニューラルネットワークである。
【００５３】
上記ニューラルネットワークＳＳ１をモデル化する場合も、図４を用いて説明したニューラルネットワークＳ１と同様に、図２及び図３を用いて説明した関連形態に係るニューラルネットワーク回路ＣＳにおいて、１ビットの入力データＩをｎ個とする。このとき、当該ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳのそれぞれが、図５（ａ）においてハッチングで示されるニューロンＮＲの機能をモデル化したものであり、上記乗算処理、加算処理及び活性化処理をそれぞれ実行する。そして関連形態に係るニューラルネットワーク集積回路の第２例としては、当該ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳ１１等を直列に接続して計３×ｎ個集積する。
【００５４】
即ち図５（ｂ）に示すように、関連形態に係るニューラルネットワーク集積回路の第２例であるニューラルネットワーク集積回路ＣＣ１は、各１ビットのｎ個の入力データＩ１乃至入力データＩｎがそれぞれ共通的に入力されるｎ個のニューラルネットワーク回路ＣＳ１１乃至ニューラルネットワーク回路ＣＳ１ｎが集積されて一のニューラルネットワーク集積回路Ｃ１が構成される（図４（ｂ）参照）。そして、ニューラルネットワーク集積回路Ｃ１を構成するニューラルネットワーク回路ＣＳ１１乃至ニューラルネットワーク回路ＣＳ１ｎのそれぞれは、各１ビットの出力データＯ１１乃至出力データＯ１ｎを出力し、それらが次段のｎ個のニューラルネットワーク回路ＣＳ２１乃至ニューラルネットワーク回路ＣＳ２ｎに共通的に入力される。これらニューラルネットワーク回路ＣＳ２１乃至ニューラルネットワーク回路ＣＳ２ｎにより、他の一のニューラルネットワーク集積回路Ｃ２が構成される。そして、ニューラルネットワーク集積回路Ｃ２を構成するニューラルネットワーク回路ＣＳ２１乃至ニューラルネットワーク回路ＣＳ２ｎのそれぞれは、各１ビットの出力データＯ２１乃至出力データＯ２ｎを出力し、それらが次段のｎ個のニューラルネットワーク回路ＣＳ３１乃至ニューラルネットワーク回路ＣＳ３ｎに共通的に入力される。これらニューラルネットワーク回路ＣＳ３１乃至ニューラルネットワーク回路ＣＳ３ｎにより、更に一のニューラルネットワーク集積回路Ｃ３が構成される。ここで、各ニューラルネットワーク回路ＣＳ１１等に対しては、図４（ａ）に示す場合と同様に上記タイミング信号φ１等が共通的に入力されているが、説明の簡略化のために図５（ｂ）では図示を省略している。そしてニューラルネットワーク集積回路Ｃ１は上記入力データＩ１乃至入力データＩｎと、タイミング信号φ１等と、に基づいて、出力データＯ１１、出力データＯ１２、…、出力データＯ１ｎをそれぞれ生成し、これらを次段のニューラルネットワーク集積回路Ｃ２に共通的に出力する。次にニューラルネットワーク集積回路Ｃ２は上記出力データＯ１２乃至出力データＯ１ｎと、タイミング信号φ１等と、に基づいて、出力データＯ２１、出力データＯ２２、…、出力データＯ２ｎをそれぞれ生成し、これらを次段のニューラルネットワーク集積回路Ｃ３に共通的に出力する。最後にニューラルネットワーク集積回路Ｃ３は上記出力データＯ２１乃至出力データＯ２ｎと、タイミング信号φ１等と、に基づいて、最終的な出力データＯ３１、出力データＯ３２、…、出力データＯ３ｎをそれぞれ生成して出力する。
【００５５】
以上説明した構成を備えるニューラルネットワーク集積回路ＣＣ１において、ｎ個のニューロンＮＲから次段のｎ個のニューロンＮＲに対してそれぞれが１ビットの出力データＯがそれぞれ出力されることが段階的に繰り返されることにより、最終的に出力データＯが合計ｎ個出力される図５（ａ）のニューラルネットワークＳＳ１がモデル化される。
【００５６】
（Ｅ）関連形態に係るニューラルネットワーク集積回路の第３例について
次に、関連形態に係るニューラルネットワーク集積回路の第３例について、図６を用いて説明する。なお図６において、図２及び図３を用いて説明した関連形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【００５７】
関連形態に係るニューラルネットワーク集積回路の第３例は、図６（ａ）に例示するニューラルネットワークＳＳ２をモデル化するためのニューラルネットワーク集積回路の例である。当該ニューラルネットワークＳＳ２は、それぞれが図６（ａ）においてハッチングで示されるｍ個のニューロンＮＲからなる複数の組により構成され、これらのニューロンＮＲのそれぞれに対して共通のｎ個のニューロンＮＲ（図６（ａ）において破線で示される）から１ビットの出力データＯがそれぞれ出力されることにより、図６（ａ）においてハッチングで示される各ニューロンＮＲから各１ビットで合計ｍ×組数個の出力データＯが出力されるニューラルネットワークである。このニューラルネットワークＳＳ２の場合、図６（ａ）においてハッチングで示される各ニューロンＮＲは、各１ビットで同じ数（ｎ個）の出力データＯをそれぞれ受信することになる。即ち上記ニューラルネットワークＳＳ２は、並列多入力−並列多出力型の一段ニューラルネットワークである。
【００５８】
上記ニューラルネットワークＳＳ２をモデル化する場合も、図４を用いて説明したニューラルネットワークＳ１と同様に、図２及び図３を用いて説明した関連形態に係るニューラルネットワーク回路ＣＳにおいて、１ビットの入力データＩをｎ個とする。このとき、当該ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳのそれぞれが、図６（ａ）においてハッチングで示されるニューロンＮＲの機能をモデル化したものであり、上記乗算処理、加算処理及び活性化処理をそれぞれ実行する。そして関連形態に係るニューラルネットワーク集積回路の第３例としては、当該ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳ１１等を並列に接続して上記組数分集積する。
【００５９】
即ち図６（ｂ）に示すように、関連形態に係るニューラルネットワーク集積回路の第３例であるニューラルネットワーク集積回路ＣＣ２は、各１ビットのｎ個の入力データＩ１乃至入力データＩｎがそれぞれ共通的に入力されるｍ個のニューラルネットワーク回路ＣＳ１１乃至ニューラルネットワーク回路ＣＳ１ｍが集積されて、一のニューラルネットワーク集積回路Ｃ１が構成される（図４（ｂ）参照）。また同じｎ個の入力データＩ１乃至入力データＩｎがそれぞれ並列的且つ共通的に入力されるｍ個のニューラルネットワーク回路ＣＳ２１乃至ニューラルネットワーク回路ＣＳ２ｍが集積されて、他の一のニューラルネットワーク集積回路Ｃ２が構成される（図４（ｂ）参照）。これ以降、同様にｎ個の入力データＩ１乃至入力データＩｎがそれぞれ並列的且つ共通的に入力されるｍ個のニューラルネットワーク回路が集積されて、図６（ｂ）において図示を省略する他のニューラルネットワーク集積回路がそれぞれ構成される。ここで、各ニューラルネットワーク回路ＣＳ１１等に対しては、図５を用いて説明した場合と同様に、図４（ａ）に示す場合と同様の上記タイミング信号φ１等が共通的に入力されているが、説明の簡略化のために図６（ｂ）では図示を省略している。そしてニューラルネットワーク集積回路Ｃ１は上記入力データＩ１乃至入力データＩｎと、タイミング信号φ１等と、に基づいて、各１ビットの出力データＯ１１、出力データＯ１２、…、出力データＯ１ｍをそれぞれ生成して出力する。一方ニューラルネットワーク集積回路Ｃ２は、同じ入力データＩ１乃至入力データＩｎと、タイミング信号φ１等と、に基づいて、各１ビットの出力データＯ２１、出力データＯ２２、…、出力データＯ２ｍをそれぞれ生成して出力する。これ以降、図示を省略する他のニューラルネットワーク集積回路も、それぞれにｍ個の出力データを出力する。
【００６０】
以上説明した構成を備えるニューラルネットワーク集積回路ＣＣ２において、ｍ×組数分のニューロンＮＲから並行的にそれぞれ出力データＯが出力されることにより、最終的に出力データＯが合計ｍ×組数分出力される図６（ａ）のニューラルネットワークＳＳ２がモデル化される。
【００６１】
（Ｆ）関連形態に係るニューラルネットワーク集積回路の第４例について
最後に、関連形態に係るニューラルネットワーク集積回路の第４例について、図７を用いて説明する。なお図７において、図２及び図３を用いて説明した関連形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【００６２】
関連形態に係るニューラルネットワーク集積回路の第４例は、図７（ａ）に例示するニューラルネットワークＳＳ３をモデル化するためのニューラルネットワーク集積回路の例である。当該ニューラルネットワークＳＳ３は、これまで説明してきた関連形態に係るニューラルネットワークＳ１等に対して、ニューロンＮＲの数及びニューロンＮＲ間の接続の態様についての自由度を更に向上させたニューラルネットワークである。なお図７（ａ）には、段階的に各１ビットの出力データＯ（入力データＩ）が授受されるニューロン群（図７（ａ）破線参照）に属するニューロンＮＲの数が相互に異なるニューラルネットワークＳＳ３について例示している。
【００６３】
上記ニューラルネットワークＳＳ３をモデル化する場合、図２乃至図３を用いて説明した関連形態に係るニューラルネットワーク回路ＣＳにおいて、１ビットの入力データＩを例えばｎ個とする。このとき、当該ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳのそれぞれが、図７（ａ）に示す各ニューロンＮＲの機能をモデル化したものであり、上記乗算処理、加算処理及び活性化処理をそれぞれ実行する。そして関連形態に係るニューラルネットワーク集積回路の第４例としては、当該ｎ個の入力データＩが入力されるニューラルネットワーク回路ＣＳ１１等をそれぞれに複数備えたニューラルネットワーク集積回路を複数備え、当該各ニューラルネットワーク集積回路を、後述する複数のスイッチ及びそれらを切り換えるスイッチボックスにより接続して集積する。
【００６４】
即ち図７（ｂ）に示すように、関連形態に係るニューラルネットワーク集積回路の第４例であるニューラルネットワーク集積回路ＣＣ３は、各１ビットのｎ個の入力データＩ１乃至入力データＩｎがそれぞれ共通的に入力されるｎ個のニューラルネットワーク回路ＣＳ１１乃至ニューラルネットワーク回路ＣＳ１ｎが集積されて一のニューラルネットワーク集積回路Ｃ１が構成される（図４（ｂ）参照）。そして同様に、例えばｍ個のニューラルネットワーク回路ＣＳ２１乃至ニューラルネットワーク回路ＣＳ２ｍが集積されて一のニューラルネットワーク集積回路Ｃ２が、ニューラルネットワーク回路ＣＳ３１乃至ニューラルネットワーク回路ＣＳ３ｐ（ｐは２以上の自然数。以下、同様。）が集積されて一のニューラルネットワーク集積回路Ｃ３が、ニューラルネットワーク回路ＣＳ４１乃至ニューラルネットワーク回路ＣＳ４ｑ（ｑは２以上の自然数。以下、同様。）が集積されて一のニューラルネットワーク集積回路Ｃ４が、それぞれ構成される。また、ニューラルネットワーク集積回路Ｃ１乃至ニューラルネットワーク集積回路Ｃ４のそれぞれは、図７（ｂ）に例示するようにスイッチＳＷ１乃至スイッチＳＷ４を介して、相互に各１ビットの入力データＩ及び出力データＯの授受が可能とされている。そして、ニューラルネットワーク集積回路Ｃ１乃至ニューラルネットワーク集積回路Ｃ４間における入力データＩ及び出力データＯの授受の態様（即ちニューラルネットワーク集積回路Ｃ１乃至ニューラルネットワーク集積回路Ｃ４間の接続態様）が、スイッチＳＷ１乃至スイッチＳＷ４を介してスイッチボックスＳＢ１乃至スイッチボックスＳＢ４により切り換えられる。
【００６５】
次に、上記スイッチボックスＳＢ１乃至スイッチボックスＳＢ４の細部構成について、図７（ｃ）を用いて説明する。なお、スイッチボックスＳＢ１乃至スイッチボックスＳＢ４はいずれも同様の構成を備えるので、図７（ｃ）では、これらを纏めてスイッチボックスＳＢとして説明する。
【００６６】
図７（ｃ）に示すように、ニューラルネットワーク集積回路ＣＣ３における各１ビットの入力データＩ又は出力データＯの接続態様、及び結果的に有効なニューロンＮＲの数を制御するスイッチボックスＳＢは、セレクタＭ１乃至セレクタＭ５が図７（ｃ）に示す態様により接続されて構成されている。この図７（ｃ）に示すスイッチボックスＳＢの構成においては、上述してきた入力データＩに対応する信号は図７（ｃ）中左から入力される信号であり、上記出力データＯに対応する信号は図７（ｃ）中の上方及び下方からそれぞれ入力される信号である。そしてニューラルネットワーク集積回路Ｃ１乃至ニューラルネットワーク集積回路Ｃ４に対する入力データＩ等の切り換えは、当該切り換えを制御する切換制御信号Ｓｃ１乃至切換制御信号Ｓｃ５が外部からそれぞれ入力されるセレクタＭ１乃至セレクタＭ５により、実行される。
【００６７】
以上説明したように、入力データＩに対応する出力データＯを生成して出力する図７（ａ）のニューラルネットワークＳＳ３が、図７（ｃ）に示す構成を備えるスイッチボックスＳＢ１乃至スイッチボックスＳＢ４により各スイッチＳＷ１乃至スイッチＳＷ４が切り換えられる、図７（ｂ）に示す構成のニューラルネットワーク集積回路ＣＣ３によりモデル化される。
【００６８】
以上それぞれ説明したように、関連形態に係るニューラルネットワーク回路ＣＳ及びニューラルネットワーク集積回路Ｃ１等の構成及び動作によれば、図２及び図３に例示するように、対応すべき脳機能に基づいてその数が既定されているメモリセル１のそれぞれが、記憶値として「ＮＣ」を意味する所定値或いは「１」又は「０」のいずれかを記憶し、１ビットの入力データＩの値と記憶値とが等しい場合に入力データＩの入力に対応して「１」を出力し、入力データＩの値と記憶値とが等しくない場合に入力データＩの入力に対応して「０」を出力し、上記所定値が記憶されている場合にいずれの値の入力データＩが入力されても当該所定値を出力する。そして多数判定回路２が、値「１」を出力するメモリセル１の総数が値「０」を出力するメモリセル１の総数より大きい場合に値「１」を出力データＯとして出力し、値「１」を出力するメモリセル１の総数が値「０」を出力するメモリセル１の総数以下の場合に「０」を出力データＯとして出力する。よって、メモリセル１においてニューラルネットワーク回路としての乗算処理を行い、一の多数判定回路２によりニューラルネットワーク回路としての加算処理及び活性化処理を行うので、回路規模及びそれに対応するコストを大幅に縮小しつつ、ニューラルネットワーク回路を効率的に実現することができる。
【００６９】
また図４（ｂ）に例示するように、それぞれが１ビットのｎ個の入力データＩにそれぞれ対応してメモリセル１の数がｎであるニューラルネットワーク回路ＣＳをｍ個備え、各ニューラルネットワーク回路ＣＳに対してｎ個の入力データＩが並列且つ共通的に入力され、各ニューラルネットワーク回路ＣＳから出力データＯをそれぞれ出力させる場合は、図４（ａ）に例示するニューラルネットワークＳ１をモデル化し且つ入力がｎ個であり出力がｍ個であるｎ×ｍのニューラルネットワーク集積回路Ｃ１を、回路規模及びそれに対応するコストを大幅に縮小しつつ効率的に実現することができる。更にこの場合に、図４（ａ）においてハッチングで示されるｍ個のニューロンＮＲと、当該ｍ個に対して出力データＯをそれぞれ出力するｎ個のニューロンＮＲと、の間に多様な接続のパターンがあっても、ニューラルネットワーク集積回路Ｃ１においてニューロンＮＲ間に接続がない場合に対応するメモリセル１の記憶値として上記所定値を用いることで、ニューラルネットワーク集積回路Ｃ１をより効率的に実現することができる。更に図４に例示する場合には、ｎ個の入力データＩを各ニューラルネットワーク回路ＣＳに対して並列且つ共通的に入力し、それに基づくｍ個の出力データＯを並列に出力させることができるため、入力データＩ及び出力データＯを逐次的に入出力させなければならない場合と比べて処理の大幅な高速化が可能となる。
【００７０】
更にまた図５に例示するように、上記「ｎ」と上記「ｍ」とが等しいニューラルネットワーク集積回路Ｃ１等を直列に接続し、一のニューラルネットワーク集積回路Ｃ１（又はニューラルネットワーク集積回路Ｃ２）からの出力データＯを、当該ニューラルネットワーク集積回路Ｃ１（又はニューラルネットワーク集積回路Ｃ２）の直後に接続され他のニューラルネットワーク集積回路Ｃ２（又はニューラルネットワーク集積回路Ｃ３）における入力データＩとする場合は、入力及び出力が共に並列型であるニューラルネットワーク集積回路ＣＣ１を、回路規模及びそれに対応するコストを大幅に縮小しつつ効率的に実現することができる。
【００７１】
また図６に例示するように、各ニューラルネットワーク集積回路ＣＳに対してｎ個の入力データＩが並列且つ共通に入力され、各ニューラルネットワーク集積回路ＣＳからｍ個の出力データＯを並列にそれぞれ出力する場合は、入力及び出力が共に並列型であり且つ出力データＯの数が入力データＩの数より多いニューラルネットワーク集積回路ＣＣ２を、回路規模及びそれに対応するコストを大幅に縮小しつつ効率的に実現することができる。
【００７２】
また図７に例示するように、ニューラルネットワーク集積回路Ｃ１等を複数備え、各ニューラルネットワーク集積回路Ｃ１等をアレイ状に且つ相互に接続するスイッチＳＷ１等により、各ニューラルネットワーク集積回路Ｃ１等に対する入力データＩ及び出力データＯが切り換える場合には、スイッチＳＷ１等における切換動作が、対応すべき脳機能に基づいて既定されていれば、大規模なニューラルネットワーク集積回路ＣＣ３を、対応するコストを大幅に縮小しつつ効率的に実現することができる。
【００７３】
（II）実施形態
次に、本発明に係る実施形態について、図８乃至図１６を用いて説明する。なお、図８及び図９は実施形態に係るニューラルネットワーク集積回路の第１例をそれぞれ示す図であり、図１０は実施形態に係るニューラルネットワーク回路の第１例を示す図であり、図１１は実施形態に係るニューラルネットワーク集積回路の第２例を示す図である。また、図１２は当該ニューラルネットワーク集積回路の第３例を示す図であり、図１３は当該ニューラルネットワーク集積回路の第４例を示す図であり、図１４は当該第４例の細部構成を示す図であり、図１５は実施形態に係るニューラルネットワーク集積回路の第５例を示す図であり、図１６は当該ニューラルネットワーク集積回路の第６例等の構成を示すブロック図である。
【００７４】
以下に説明する実施形態は、図１乃至図７を用いて上述してきたニューラルネットワークＳ等のモデル化の構成又は手法とは異なる構成又は手法により、当該ニューラルネットワークＳ等をモデル化しようとするものである。
【００７５】
（Ａ）実施形態に係るニューラルネットワーク集積回路の第１例について
初めに、実施形態に係るニューラルネットワーク集積回路の第１例について、図８及び図９を用いて説明する。なお、図８は当該第１例としての上記乗算処理を行う当該第１例の一部を示す図であり、図９は当該第１例全体を示す図である。このとき、当該乗算処理が本発明に係る「乗算機能」の一例に相当する。
【００７６】
図８（ａ）に例示するように、当該第１例の一部によりモデル化されるネットワークＳ’では、一つのニューロンＮＲから１ビットの出力データＯ（換言すれば入力データＩ）が入力される。そして、入力データＩの出力先となる図示しない複数の他のニューロンにそれぞれ対応する異なった重み付け係数Ｗ１乃至重み付け係数Ｗ４のうちの一つが当該入力データＩに乗算され、上記図示しない他のニューロンに対して、出力データＥ１乃至出力データＥ４としてそれぞれ出力される。そしてこのときの出力データＥは、入力データＩと同様に１ビットの信号である。よって、図８に示す入力データＩの値、各重み付け係数Ｗの値及び出力データＥの値は、いずれも「０」又は「１」のいずれかである。
【００７７】
次に、実施形態に係るニューラルネットワーク集積回路の第１例における図８（ａ）に示すネットワークＳ’に相当する部分の構成を、図８（ｂ）にネットワーク回路ＣＳ’として示す。当該ネットワーク回路ＣＳ’は、各々が図８（ａ）に示す出力データＥ１乃至出力データＥ４にそれぞれ対応する四組のメモリセル１０及びメモリセル１１と、各々が出力データＥ（換言すれば、上記図示しない他のニューロンの入力データＩ）にそれぞれ対応する四つの多数判定入力回路１２と、により構成される。このとき、一つのメモリセル１０と一つのメモリセル１１からなるメモリセル対の数及びそれらに対応する多数判定入力回路１２の数（図８に例示する場合は共に四つ）は、実施形態に係るニューラルネットワーク集積回路の第１例として所望される出力データＯの数に等しい。なお以下の図８の説明において、出力データＯの数分の上記メモリセル対を、纏めて「メモリセルブロック１５」（図８（ｂ）破線参照）と称する。また、メモリセル１０が本発明に係る「第１記憶部」の一例に相当し、メモリセル１１が本発明に係る第２記憶部の一例に相当し、多数判定入力回路１２が本発明に係る「第１演算部」の一例に相当する。
【００７８】
以上の構成において各メモリセルブロック１５内のメモリセル１０は、ネットワーク回路ＣＳ’を含む実施形態に係るニューラルネットワーク集積回路の第１例が対応すべき脳機能に基づいて予め設定された１ビットの重み付け係数Ｗをそれぞれに記憶している。これに対して各メモリセルブロック１５内のメモリセル１１は、上記脳機能に基づいて予め設定された１ビットの接続有無情報をそれぞれに記憶している。ここで当該接続有無情報は、上記関連形態におけるメモリセル１の記憶値「ＮＣ」に相当するものであり、実施形態に係るニューラルネットワークにおける二つのニューロンＮＲ間に接続がある状態であるか、又は当該接続がない状態であるか、のいずれかを表すための記憶値である。なお、各メモリセル１０及びメモリセル１１にどのような記憶値を記憶させておくかは、例えば、ネットワークＳ’を含む実施形態に係るニューラルネットワーク集積回路の第１例としてどのような脳機能をモデル化するか等に基づいて予め設定されていればよい。
【００７９】
そして各メモリセル１０は、それぞれの記憶値を、重み付け係数Ｗ１、重み付け係数Ｗ２、重み付け係数Ｗ３及び重み付け係数Ｗ４として多数判定入力回路１２にそれぞれ出力する。このとき各メモリセル１０は、それぞれの記憶値を、重み付け係数Ｗ１乃至重み付け係数Ｗ４として同時に多数判定入力回路１２に出力する。なおこの同時出力の構成は、以下の図９乃至図１６を用いてそれぞれ説明するニューラルネットワーク回路及びニューラルネットワーク集積回路における各メモリセル１０においても同様である。一方各メモリセル１１も、それぞれの記憶値を、接続有無情報Ｃ１、接続有無情報Ｃ２、接続有無情報Ｃ３及び接続有無情報Ｃ４として多数判定入力回路１２にそれぞれ出力する。このとき各メモリセル１１は、それぞれの記憶値を、接続有無情報Ｃ１乃至接続有無情報Ｃ４として同時に多数判定入力回路１２に出力する。また各メモリセル１１は、上記各メモリセル１０からの記憶値の出力に対して例えば一サイクル前又は後にずらして、それぞれの記憶値を同時に多数判定入力回路１２に出力する。なおこの同時出力の構成及び各メモリセル１０からの記憶値の出力のタイミングとの関係は、以下の図９乃至図１４を用いてそれぞれ説明するニューラルネットワーク回路及びニューラルネットワーク集積回路における各メモリセル１１においても同様である。更に以下の説明において、接続有無情報Ｃ１、接続有無情報Ｃ２、接続有無情報Ｃ３、…、に共通の事項を説明する場合、単に「接続有無情報Ｃ」と称する。
【００８０】
他方各多数判定入力回路１２には、図８（ｂ）において図示しない他のノードＮＲ（図８（ａ）参照）からの１ビットの入力データＩが共通的に入力されている。そして各多数判定入力回路１２は、対応するメモリセル１１から出力される上記接続有無情報を、そのまま接続有無情報Ｃ１乃至接続有無情報Ｃ４としてそれぞれ出力する。
【００８１】
これらに加えて各多数判定入力回路１２は、対応するメモリセル１０から出力される重み付け係数Ｗ１、重み付け係数Ｗ２、重み付け係数Ｗ３及び重み付け係数Ｗ４と上記入力データＩとの排他的否定論理和（ＸＮＯＲ）を算出し、上記出力データＥ１、出力データＥ２、出力データＥ３及び出力データＥ４としてそれぞれ出力する。このとき、対応するメモリセル１１の記憶値（重み付け係数Ｗ）と、入力データＩの値と、多数判定入力回路１２から出力される出力データＥの値と、の間の関係は、図８（ｃ）に真理値表を示す関係となる。なお図８（ｃ）には、上記排他的否定論理和（ＸＮＯＲ）を算出する前提としての排他的論理和（ＸＯＲ）についても記載している。
【００８２】
ここで、図２を用いて説明した関連形態に係るニューラルネットワーク回路ＣＳに対応する真理値表（図２（ｃ）参照）と、上記図８（ｃ）に示す真理値表とを比較する。このとき、メモリセル１０における記憶値及び入力データＩの値をそれぞれ図２（ｃ）に示した真理値表のものと同じとした場合、図８（ｂ）に示す出力データＥの値は図２（ｂ）に示す出力データＥの値と同一となる。これらにより、図８（ｂ）に示すネットワーク回路ＣＳ’は、図２（ｂ）に示したニューラルネットワーク回路ＣＳにおける上記乗算処理と同様の論理により、図８（ａ）に示すネットワークＳ’における上記乗算処理をモデル化した回路となる。即ち、各メモリセル１０から出力されてくる各々の記憶値（重み付け係数Ｗ）と入力データＩの値との間の排他的論理和を多数判定入力回路１２において算出することが上記乗算処理に相当する。以上の通り、図８（ｂ）に示すネットワーク回路ＣＳ’により、図８（ａ）に示すネットワークＳ’における乗算処理がモデル化される。
【００８３】
次に、実施形態に係るニューラルネットワーク集積回路の第１例の全体について図９を用いて説明する。なお図９において、図８を用いて説明した実施形態に係るネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【００８４】
図９を用いてその全体を説明する実施形態に係るニューラルネットワーク集積回路の第１例は、図８を用いて説明した実施形態に係るネットワーク回路ＣＳ’を複数集積した集積回路である。実施形態に係るニューラルネットワーク集積回路の第１例では、当該ネットワーク回路ＣＳ’に相当する上記乗算処理に加えて、上記加算処理及び上記活性化処理が実行される。このとき、当該加算処理及び活性化処理が本発明に係る「加算／適用機能」の一例に相当する。
【００８５】
先ず、実施形態に係るニューラルネットワーク集積回路の第１例によりモデル化されるニューラルネットワークの全体について、図９（ａ）を用いて説明する。図９（ａ）に示す当該ニューラルネットワークＳ１’は、図８を用いて説明したネットワークＳ’をｍ個のニューロンＮＲ分含んでいる。当該ニューラルネットワークＳ１’では、図９（ａ）においてハッチングで示されるｎ個のニューロンＮＲのそれぞれに対して、それぞれが上記ネットワークＳ’を構成するｍ個のニューロンＮＲからそれぞれ１ビットの出力データＯ（換言すれば入力データＩ）が出力される。そしてこれにより、各出力データＯが出力データＥとなって上記ハッチングで示されるｎ個のニューロンＮＲのそれぞれに入力され、当該ハッチングで示されるニューロンＮＲから出力データＯが一つずつ合計ｎ個並列的に出力される。即ち上記ニューラルネットワークＳ１’は、直列（ｍ）入力−並列（ｎ）出力型の一段ニューラルネットワークである。
【００８６】
上記ニューラルネットワークＳ１’をモデル化した実施形態に係るニューラルネットワーク集積回路の第１例は、図９（ｂ）に示すニューラルネットワーク集積回路Ｃ１’となる。当該ニューラルネットワーク集積回路Ｃ１’は、上記メモリセル対及び多数判定入力回路１２をそれぞれにｎ個ずつ含む実施形態に係るニューラルネットワーク回路ＣＳ’（図８参照）をｍ個備えると共に、各多数判定入力回路１２及びメモリセル対に対応させてｎ個の直列多数判定回路１３を備えている。このとき、直列多数判定回路１３が本発明に係る「第２演算部」の一例に相当する。そして図９（ｂ）に示すように、ｎ×ｍ個の上記メモリセル対（換言すれば、ｍ個のメモリセルブロック１５）により、メモリセルアレイＭＣ１が構成されている。またニューラルネットワーク集積回路Ｃ１’では、図９（ｂ）に示すメモリセルアレイＭＣ１における横一行（ｍ個）のメモリセル対で一つの多数判定入力回路１２を共用する。なお、メモリセルアレイＭＣ１、各多数判定入力回路１２及び各直列多数判定回路１３には、それぞれ上記タイミング信号φ１等が共通的に入力されているが、説明の簡略化のために図９（ｂ）では図示を省略している。
【００８７】
以上の構成において、それぞれのニューラルネットワーク回路ＣＳ’を構成するメモリセルブロック１５のメモリセル１０からは、上記重み付け係数Ｗが、一のメモリセルブロック１５に含まれる各メモリセル１０について同時に、且つｍ個のメモリセルブロック１５について順次に（即ちシリアル形式で）、それぞれ出力される。そして、これらの重み付け係数Ｗと、対応するタイミングによりシリアル形式で入力されるｍ個の入力データＩ（各１ビットの入力データＩ）と、の上記排他的論理和を、上記共有する多数判定入力回路１２において時分割的に演算し、それを出力データＥとして、対応する直列多数判定回路１３にシリアル形式で出力する。一方、それぞれのニューラルネットワーク回路ＣＳ’を構成するメモリセルブロック１５のメモリセル１１からは、上記接続有無情報Ｃが、一のメモリセルブロック１５に含まれる各メモリセル１１について同時に、且つｍ個のメモリセルブロック１５について順次に（即ちシリアル形式で）、それぞれ出力される。そしてこれらの接続有無情報Ｃが、上記共有する多数判定入力回路１２を介し、各入力データＩの入力タイミングに対応したシリアル形式で、対応する直列多数判定回路１３に出力される。なお、各メモリセルブロック１５からの上記各重み付け係数Ｗの出力タイミングの態様、及び各メモリセルブロック１５からの上記各接続有無情報Ｃの出力タイミングの態様のそれぞれは、以下の図１０乃至図１４を用いてそれぞれ説明するニューラルネットワーク集積回路における各メモリセル１１においても同様である。また図９（ｂ）では、図面としての明確化及びその説明の簡略化のため、メモリセル１０から出力される上記重み付け係数Ｗｎと、それに対応するメモリセル１１から出力される上記接続有無情報Ｃｎと、を、合わせて一本の実線で示している。この点は、以下に説明する図１１乃至図１４において同様である。
【００８８】
次に、各多数判定入力回路１２から出力データＥ及び接続有無情報Ｃがそれぞれ入力されるｎ個の直列多数判定回路１３はそれぞれ、同じタイミングで入力された接続有無情報Ｃが「接続あり」を示している最大ｍ個の出力データＥについて、値「１」の当該出力データＥの数を加算してその合計値を算出すると共に、値「０」の出力データＥの数を加算してその合計値を算出する。これらの加算が上記加算処理に相当する。そして各直列多数判定回路１３はそれぞれ、値「１」の出力データＥ及び値「０」の出力データＥそれぞれの数の上記合計値を比較し、前者の数から後者の数を減じた値が、関連形態に係る上記多数判定閾値と同様にして予め設定された多数判定閾値以上の場合にのみ、値「１」の出力データＯを出力する。一方それ以外の場合、即ち値「１」の出力データＥの数の合計値から値「０」の出力データＥの数の合計値を減じた値が上記多数判定閾値未満の場合に各直列多数判定回路１３はそれぞれ、値「０」の出力データＯを出力する。これらの各直列多数判定回路１３における処理が上記活性化処理に相当すると共に、各出力データＯは１ビットとなる。ここで、同じタイミングで出力される上記接続有無情報Ｃが「接続なし」を示している場合、直列多数判定回路１３は、出力データＥを、値「１」の出力データＥの数及び値「０」の出力データＥの数のいずれにも加算しない。そして各直列多数決回路１３は、上述した各処理により１ビットの出力データＯを出力することを、入力データＩが入力されるタイミングに合わせて繰り返す。このときの出力データＯは、結果的に各直列多数決回路１３から並列的に出力される。この場合、出力データＯの総数はｎ個となる。以上の通り、図９（ａ）においてハッチングで示される一つのニューロンＮＲに対応する上記乗算処理、加算処理及び活性化処理のそれぞれは、図９（ｂ）に示すメモリセルアレイＭＣ１における横一行分のメモリセル対と、それらに対応する多数判定入力回路１２及び直列多数判定回路１３と、により実行されることになる。
【００８９】
以上説明したように、図９（ａ）においてハッチングで示されるｎ個のニューロンＮＲに対してｍ個のニューロンＮＲから１ビットの出力データＯがそれぞれ出力され、これらにより当該ｎ個のニューロンＮＲから出力データＯが合計ｎ個出力されるニューラルネットワークＳ１’が、図９（ｂ）に示す構成を備えるニューラルネットワーク集積回路Ｃ１’によりモデル化される。
【００９０】
より具体的に、人の脳機能に対応し且つ各１ビットの入力データＩ及び出力データＯがそれぞれ入出力されるニューラルネットワーク集積回路Ｃ１’の構成によれば、上記乗算処理をメモリセル１０、メモリセル１１及び多数判定入力回路１２により実行し、上記加算処理及び活性化処理を直列多数判定回路１３により実行するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、人の脳機能に対応したニューラルネットワークＳ１’を効率的に実現することができる。
【００９１】
また、上記ニューラルネットワーク集積回路Ｃ１’の構成によれば、入力データＩの数が一であり、出力データＯ、メモリセル１０、メモリセル１１、多数判定入力回路１２及び直列多数判定回路１３それぞれの数が、対応すべき脳機能に基づいた既定の二以上の数とされており、重み付け係数Ｗ及び接続有無情報Ｃのそれぞれが脳機能に対応した値とされている。そして各多数判定入力回路１２が、各出力データＯにそれぞれ対応する重み付け係数Ｗと入力データＩとの排他的論理和を出力データＯごとにそれぞれ生成し、各直列多数判定回路１３が、（値「１」である出力データＥの総数−値「０」である出力データＥの総数≧多数判定閾値）であるとき値「１」を出力データＯとして出力し、（値「１」である出力データＥの総数−値「０」である出力データＥの総数＜多数判定閾値）であるとき値「０」を出力データＯとして出力する。よって、各メモリセル１０、各メモリセル１１及び各多数判定入力回路１２により出力データＯごとに乗算処理を実行し、更に各直列多数判定回路１３により出力データＯごとに加算処理及び活性化処理を実行するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、いわゆる直列入力−並列出力型のニューラルネットワークＳ１’を効率的に実現することができる。
【００９２】
（Ｂ）実施形態に係るニューラルネットワーク回路の第１例について
次に、実施形態に係るニューラルネットワーク回路の第１例について、図１０を用いて説明する。
【００９３】
図１０（ａ）に例示するように、当該第１例に相当するニューラルネットワークＳは、基本的には図２（ａ）に例示した関連形態に係るニューラルネットワークＳと同一の構成である。但し図１０（ａ）に示す例では、図１０（ａ）においてハッチングで示される一つのニューロンＮＲに対して他の三つのニューロンＮＲから１ビットの入力データＩ（当該他のニューロンＮＲから見ると出力データＯ）が並列的に入力され、それに対応する出力データＯが当該ニューロンＮＲからシリアル形式で一つ出力される構成となっている。このときの出力データＯも、各入力データＩと同様に１ビットの信号である。よって、図１０に示す入力データＩの値及び出力データＯの値は、いずれも「０」又は「１」のいずれかである。そして、図１０（ａ）に示すニューロンＮＲにおいて実行される上記乗算処理等に相当する上記式（１）は、上記式（１）においてｎ＝３とした場合の式である。即ち上記ニューラルネットワークＳは、並列入力−直列出力型の一段ニューラルネットワークである。
【００９４】
次に、図１０（ａ）においてハッチングで示したニューロンＮＲに相当する実施形態に係るニューラルネットワーク回路の第１例の構成を、図１０（ｂ）にニューラルネットワーク回路ＣＣＳ’として示す。当該ニューロンＮＲに相当する実施形態に係るニューラルネットワーク回路ＣＣＳ’は、各々が図１０（ａ）に例示する入力データＩにそれぞれ対応する三組のメモリセル１０及びメモリセル１１と、各入力データＩが入力される並列多数判定回路２０と、により構成される。このとき、一つのメモリセル１０と一つのメモリセル１１からなるメモリセル対の数及びそれらに対応する多数判定入力回路１２の数（図１０に例示する場合は共に三つ）は、図１０（ａ）に示すニューラルネットワークＳとして所望される入力データＩの数に等しい。なお以下の図１０の説明において、入力データＩの数分の上記メモリセル対はそれぞれメモリセルブロック１５と示されている（図１０（ｂ）破線参照）。
【００９５】
以上の構成において各メモリセルブロック１５内のメモリセル１０は、ニューラルネットワーク回路ＣＣＳ’が対応すべき脳機能に基づいて予め設定された１ビットの重み付け係数Ｗをそれぞれに記憶している。これに対して各メモリセルブロック１５内のメモリセル１１は、上記脳機能に基づいて予め設定された１ビットの接続有無情報をそれぞれに記憶している。ここで当該接続有無情報は、図８及び図９を用いて説明した実施形態に係るニューラルネットワーク回路の第１例における接続有無情報Ｃｎと同一の情報であるので、細部の説明は省略する。また、各メモリセル１０及びメモリセル１１にどのような記憶値を記憶させておくかは、例えば、図１０（ａ）に示すニューラルネットワークＳとしてどのような脳機能をモデル化するか等に基づいて予め設定されていればよい。
【００９６】
そして各メモリセル１０は、それぞれの記憶値を、図８（ｂ）に示す各メモリセル１０と同様のタイミングで、重み付け係数Ｗ１、重み付け係数Ｗ２及び重み付け係数Ｗ３として並列多数判定回路２０にそれぞれ出力する。一方各メモリセル１１も、それぞれの記憶値である接続有無情報Ｃを、図８（ｂ）に示す各メモリセル１１と同様のタイミングで並列多数判定回路２０にそれぞれ出力する。
【００９７】
他方並列多数判定回路２０には、上述したように入力データＩ１、入力データＩ２及び入力データＩ３（各１ビット）が並列的に入力されている。そして並列多数判定回路２０は、図９を用いて説明した一組の多数判定入力回路１２及び直列多数判定回路１３と同様の動作を含む動作（即ち、上記乗算処理、上記加算処理及び上記活性化処理）を行う。具体的に並列多数判定回路２０は先ず、対応する接続有無情報Ｃが「接続あり」を示している場合に、それぞれが１ビットの各入力データＩと、それらに対応する重み付け係数Ｗと、の上記排他的論理和を当該各入力データＩについて演算する。次に並列多数判定回路２０は、各上記演算結果について、値「１」の当該演算結果の数を加算してその合計値を算出すると共に、値「０」の当該演算結果の数を加算してその合計値を算出する。そして並列多数判定回路２０は、値「１」の当該演算結果及び値「０」の当該演算結果それぞれの数の上記合計値を比較し、前者の数から後者の数を減じた値が、関連形態に係る上記多数判定閾値と同様にして予め設定された多数判定閾値以上の場合にのみ、値「１」の出力データＯをシリアル形式で出力する。一方それ以外の場合、即ち値「１」の出力データＥの数の合計値から値「０」の出力データＥの数の合計値を減じた値が上記多数判定閾値未満の場合に並列多数判定回路２０は値「０」の出力データＯをシリアル形式で出力する。この場合に出力データＯは１ビットとなる。ここで、対応する接続有無情報Ｃが「接続なし」を示している場合、並列多数判定回路２０は上記排他的論理和を演算しない。なお、各入力データＩと、対応する重み付け係数Ｗと、の上記排他的論理和を全ての入力データＩについて一旦演算し、対応する接続有無情報Ｃが「接続なし」を示している場合に、その演算結果を値「１」の演算結果の数及び値「０」の演算結果の数のいずれにも加算しないように構成してもよい。そして並列多数判定回路２０は、上述した各処理により１ビットの出力データＯをシリアル形式で出力することを、並列的に入力されている各入力データＩの数ごとに繰り返す。以上の各処理により、図１０（ｂ）に示すニューラルネットワーク回路ＣＣＳ’は、図１０（ａ）においてハッチングで示されるニューロンＮＲにおける上記乗算処理、加算処理及び活性化処理をモデル化した回路となる。
【００９８】
（Ｃ）実施形態に係るニューラルネットワーク集積回路の第２例について
次に、実施形態に係るニューラルネットワーク集積回路の第２例について、図１１を用いて説明する。なお図１１において、図１０を用いて説明した実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【００９９】
図１１を用いて説明する実施形態に係るニューラルネットワーク集積回路の第２例は、図１０を用いて説明した実施形態に係るニューラルネットワーク回路ＣＣＳ’を複数集積した集積回路であり、より多くのニューロンＮＲからなる複雑なニューラルネットワークをモデル化するためのものである。
【０１００】
先ず、実施形態に係るニューラルネットワーク集積回路の第２例によりモデル化されるニューラルネットワークについて、図１１（ａ）を用いて説明する。図１１（ａ）に示す当該ニューラルネットワークＳ２’は、図１１（ａ）においてハッチングで示されるｍ個のニューロンＮＲのそれぞれに対してｎ個のニューロンＮＲから１ビットの出力データＯ（ｍ個のニューロンＮＲから見た場合は入力データＩ）が並列的にそれぞれ入力され、それらに対応する出力データＯが当該ニューロンＮＲからシリアル形式で出力される構成となっている。このときの出力データＯも、各入力データＩと同様に１ビットの信号である。よって、図１１に示す入力データＩの値及び出力データＯの値は、いずれも「０」又は「１」のいずれかである。即ち上記ニューラルネットワークＳ２’は、並列入力−直列出力型の一段ニューラルネットワークである。
【０１０１】
上記ニューラルネットワークＳ２’をモデル化した実施形態に係るニューラルネットワーク集積回路の第２例は、図１１（ｂ）に示すニューラルネットワーク集積回路Ｃ２’となる。当該ニューラルネットワーク集積回路Ｃ２’は、上記メモリセル対をそれぞれにｎ個ずつ含む実施形態に係るニューラルネットワーク回路ＣＣＳ’（図１０参照）をｍ個備えると共に、上記並列多数判定回路２０を備えている。そして図１１（ｂ）に示すように、ｎ×ｍ個の上記メモリセル対（換言すれば、ｍ個のメモリセルブロック１５）により、メモリセルアレイＭＣ２が構成されている。またニューラルネットワーク集積回路Ｃ２’では、一つの並列多数判定回路２０を図１１（ｂ）に示すメモリセルアレイＭＣ２における横一行（ｍ個）のメモリセル対で共用する。なお、メモリセルアレイＭＣ２及び並列多数判定回路２０には、それぞれ上記タイミング信号φ１等が共通的に入力されているが、説明の簡略化のために図１１（ｂ）では図示を省略している。
【０１０２】
以上の構成において、それぞれのニューラルネットワーク回路ＣＣＳ’を構成するメモリセルブロック１５のメモリセル１０からは、上記重み付け係数Ｗが、図９（ｂ）に示す各メモリセル１０及び各メモリセルブロック１５と同様のタイミングで並列多数判定回路２０に出力される。一方、それぞれのニューラルネットワーク回路ＣＣＳ’を構成するメモリセルブロック１５のメモリセル１１からは、上記接続有無情報Ｃが、図９（ｂ）に示す各メモリセル１１及び各メモリセルブロック１５と同様のタイミングで並列多数判定回路２０に出力される。
【０１０３】
そして並列多数判定回路２０は、メモリセルアレイＭＣ２から出力されてくる重み付け係数Ｗ及び接続有無情報Ｃと、それらに対応する入力データＩと、に基づき、接続有無情報Ｃが「接続あり」を示している重み付け係数Ｗ及び入力データＩを用いた上記排他的論理和の演算処理、その演算結果に基づく値「１」の演算結果及び値「０」の演算結果それぞれの数の加算処理、その加算結果に基づく上記合計数の比較処理（図１０（ｂ）参照）、及びその比較結果に基づく出力データＯの生成処理を、メモリセルアレイＭＣ２における横一行（ｍ個）についてそれぞれ行う。また並列多数判定回路２０は、上記横一行についての演算処理、加算処理、比較処理及び生成処理を、各入力データＩについて、メモリブロック１５ごとにシリアル形式で実行し、それぞれの実行結果としての出力データＯをシリアル形式で出力する。ここで、対応する接続有無情報Ｃが「接続なし」を示している場合、並列多数判定回路２０は上記演算処理、加算処理、比較処理及び生成処理を行わない。
【０１０４】
以上説明したように、図１１（ａ）においてハッチングで示されるｍ個のニューロンＮＲに対してｎ個のニューロンＮＲからそれぞれ出力データＯが出力され、これらにより当該ｍ個のニューロンＮＲから１ビットの出力データＯがシリアル形式で出力されるニューラルネットワークＳ２’が、図１１（ｂ）に示す構成を備えるニューラルネットワーク集積回路Ｃ２’によりモデル化される。
【０１０５】
より具体的に、ニューラルネットワーク集積回路Ｃ２’の構成によれば、出力データＯ及び並列多数判定回路２０の数がそれぞれ一であり、入力データＩ、メモリセル１０及びメモリセル１１それぞれの数が、対応すべき脳機能に基づいた既定の二以上の数とされており、重み付け係数Ｗ及び接続有無情報Ｃのそれぞれが脳機能に対応した値とされている。そして並列多数判定回路２０が、各入力データＩにそれぞれ対応する重み付け係数Ｗと当該各入力データＩとの排他的論理和を入力データＩごとにそれぞれ生成し、更に、（値「１」である排他的論理和の総数−値「０」である排他的論理和の総数≧多数判定閾値）であるとき値「１」を出力データＯとして出力し、（値「１」である排他的論理和の総数−値「０」である排他的論理和の総数＜多数判定閾値）であるとき値「０」を出力データＯとして出力する。よって、各メモリセル１０、各メモリセル１１及び一の並列多数判定回路２０により入力データＩごとに乗算処理を実行し、更に並列多数判定回路２０により入力データＩごとに加算処理及び活性化処理を実行するので、回路規模及びそれに対応するコストを大幅に縮小しつつ、いわゆる並列入力−直列出力型のニューラルネットワークＳ２’を効率的に実現することができる。
【０１０６】
（Ｄ）実施形態に係るニューラルネットワーク集積回路の第３例について
次に、実施形態に係るニューラルネットワーク集積回路の第３例について、図１２を用いて説明する。なお図１２において、図８及び図１０を用いてそれぞれ説明した実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【０１０７】
図１２を用いて説明する実施形態に係るニューラルネットワーク集積回路の第３例は、図９を用いて説明した実施形態に係るニューラルネットワーク集積回路Ｃ１’と、図１１を用いて説明した実施形態に係るニューラルネットワーク集積回路Ｃ２’と、を組み合わせた集積回路である。ここで、上記ニューラルネットワーク集積回路Ｃ１’は上述した通り直列入力−並列出力型の一段ニューラルネットワークＳ１’をモデル化したニューラルネットワーク回路である。一方上記ニューラルネットワーク集積回路Ｃ２’は、上述した通り並列入力−直列出力型の一段ニューラルネットワークＳ２’をモデル化したニューラルネットワーク回路である。そしてこれらを組み合わせた実施形態に係るニューラルネットワーク集積回路の第３例は、全体として直列入力−並列処理−直列出力型の多段ニューラルネットワークをモデル化したニューラルネットワーク集積回路であり、更に多くのニューロンＮＲからなる複雑なニューラルネットワークをモデル化するためのものである。
【０１０８】
先ず、実施形態に係るニューラルネットワーク集積回路の第３例によりモデル化されるニューラルネットワークについて、図１２（ａ）を用いて説明する。図１２（ａ）に示す当該ニューラルネットワークＳ１−２は、図１２（ａ）において４５度のハッチングで示されるｎ個のニューロンＮＲのそれぞれに対してｍ個のニューロンＮＲからそれぞれ１ビットの出力データＯがシリアル形式で出力され、当該４５度のハッチングで示されるニューロンＮＲと図１１（ａ）において１３５度のハッチングで示されるｍ個のニューロンＮＲとの間で出力データＯ及び入力データＩの授受が行われ、結果的に１３５度のハッチングで示されるｍ個のニューロンＮＲからそれぞれ出力データＯがシリアル形式で出力されるニューラルネットワークである。なお上記ニューラルネットワークＳ１−２は、全体として、図４を用いて説明したニューラルネットワークＳ１を複数並べたニューラルネットワークに相当する。
【０１０９】
上記ニューラルネットワークＳ１−２をモデル化した実施形態に係るニューラルネットワーク集積回路の第３例は、図１２（ｂ）に示すニューラルネットワーク集積回路Ｃ１−２となる。当該ニューラルネットワーク集積回路Ｃ１−２は、図９を用いて説明したニューラルネットワーク集積回路Ｃ１’の各出力データＯ（並列的に出力される各出力データＯ）を、図１１を用いて説明したニューラルネットワーク集積回路Ｃ２’における並列多数判定回路２０への入力データ（即ち図１１（ｂ）に示す入力データＩ）とし、これにより、当該並列多数判定回路２０から上記出力データＯをシリアル形式で出力する構成を備える。このように、上記ニューラルネットワーク集積回路Ｃ１’とニューラルネットワーク集積回路Ｃ２’とを組み合わせることにより、結果的に、図９（ａ）に例示するニューラルネットワークＳ１’と、図１１（ａ）に例示するニューラルネットワークＳ２’と、が組み合わされた上記ニューラルネットワークＳ１−２がモデル化される。なお、ニューラルネットワークＳ１−２に含まれる上記ニューラルネットワーク集積回路Ｃ１’及びニューラルネットワーク集積回路Ｃ２’それぞれの動作は、図９及び図１１を用いてそれぞれ説明した動作と同様となる。なお図１２（ｂ）に示すニューラルネットワーク集積回路Ｃ１−２では、並列多数判定回路２０に対応する直列多数判定回路１６が、破線で示される一組の多数判定入力回路１２及び直列多数判定回路１３により、それぞれ構成されていることになる。
【０１１０】
以上説明したように、図１２（ａ）に示すニューラルネットワークＳ１−２が、図１２（ｂ）に示す直列入力−並列処理−直列出力型の構成を備えるニューラルネットワーク集積回路Ｃ１−２によりモデル化される。
【０１１１】
より具体的に、ニューラルネットワーク集積回路Ｃ１−２の構成によれば、ニューラルネットワーク集積回路Ｃ１’とニューラルネットワーク集積回路Ｃ２’とを備え、一の入力データＩが入力されるニューラルネットワーク集積回路Ｃ１’から出力される各出力データＯがそれぞれ、ニューラルネットワーク集積回路Ｃ２’における各入力データＩとされており、ニューラルネットワーク集積回路Ｃ２’から一の出力データＯが出力される。よって、ニューラルネットワーク集積回路Ｃ１’とニューラルネットワーク集積回路Ｃ２’とを接続することで、回路規模及びそれに対応するコストを大幅に縮小しつつ、多様な脳機能に対応可能なニューラルネットワークＳ１−２を効率的に実現することができる。
【０１１２】
（Ｅ）実施形態に係るニューラルネットワーク集積回路の第４例について
次に、実施形態に係るニューラルネットワーク集積回路の第４例について、図１３及び図１４を用いて説明する。なお図１３及び図１４において、図９及び図１１並びに図１２を用いてそれぞれ説明した実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【０１１３】
図１３を用いて説明する実施形態に係るニューラルネットワーク集積回路の第４例は、図１３（ａ）に示すように、図１２を用いて説明した実施形態に係るニューラルネットワーク集積回路Ｃ１−２において、それを構成する上記ニューラルネットワーク集積回路Ｃ１’と上記ニューラルネットワーク集積回路Ｃ２’との間にパイプラインレジスタ２１を介在させた構成を備えたニューラルネットワーク集積回路Ｃ１−３である。このパイプラインレジスタ２１が、本発明に係る「レジスタ部」の一例に相当する。そしてパイプラインレジスタ２１は、メモリセルアレイＭＣ１のビット幅に相当する数のデータを一時的に記憶すると共に、外部からのイネーブル信号ＥＮにより、その出力動作が制御される。このイネーブル信号ＥＮは、予め設定された基準クロック信号のうちの偶数基準クロックに相当するタイミング信号である。そしてニューラルネットワーク集積回路Ｃ１−３は、図１３（ｂ）に示すように全体として、ニューラルネットワーク集積回路Ｃ１’におけるメモリセルアレイＭＣ１と、ニューラルネットワーク集積回路Ｃ２’におけるメモリセルアレイＭＣ２と、の間に、１ビットの入力データＩが例えばｍ個シリアル形式で入力されると共に上記イネーブル信号ＥＮが入力され、これらに対応した１ビットの出力データＯが例えばｍ個シリアル形式で出力される並列演算器ＰＰを介在させた構成を備える。このとき、メモリセルアレイＭＣ１及びメモリセルアレイＭＣ２はそれぞれ、例えば２５６ビット幅で５１２ワード（Word）分の規模を備えており、アドレス指定用の例えば８ビットのアドレスデータＡＤがそれぞれに入力される。そしてこの場合の並列演算器ＰＰは、２５６ビット分の多数判定入力回路１２及び直列多数判定回路１３と、上記パイプラインレジスタ２１と、２５６ビットに対応する並列多数判定回路２０と、により構成される。
【０１１４】
以上の構成において、ニューラルネットワークＳ１−３に含まれる上記ニューラルネットワーク集積回路Ｃ１’及びニューラルネットワーク集積回路Ｃ２’それぞれの動作は、図９及び図１１を用いて説明した動作と同様となる。一方パイプラインレジスタ２１は、例えば、ニューラルネットワーク集積回路Ｃ２’のメモリセルアレイＭＣ２から読み出した重み付け係数Ｗ及び接続有無情報Ｃに基づいて並列多数判定回路２０において出力データＯの生成／出力処理を行っているタイミングでニューラルネットワーク集積回路Ｃ１’のメモリセルアレイＭＣ１から読み出した出力データＯを一時的に記憶する。そして、上記重み付け係数Ｗ及び接続有無情報Ｃに基づく並列多数判定回路２０の処理が完了したタイミングで、メモリセルアレイＭＣ１から読み出して記憶していた出力データＯを並列多数判定回路２０に出力してそれに基づいた出力データＯの生成／出力処理を行わせる。この処理により、見かけ上はメモリセルアレイＭＣ１からの出力データＯの読み出しと、メモリセルアレイＭＣ２からの重み付け係数Ｗ及び接続有無情報Ｃの読み出しと、を同時に行わせることができ、結果的に、図１２を用いて説明したニューラルネットワークＳ１−２に対して略二倍の処理速度を実現させることができる。
【０１１５】
次に、図１３に示すニューラルネットワーク集積回路Ｃ１−３における特に並列演算器ＰＰの細部構成について、図１４を用いて説明する。
【０１１６】
先ず図１４（ａ）に示すように並列演算器ＰＰは、メモリセルアレイＭＣ１のビット幅に相当する数の上記多数判定入力回路１２及び上記直列多数判定回路１３からなる直列多数判定回路１６と、メモリセルアレイＭＣ１のビット幅に相当する上記パイプラインレジスタ２１と、出力フリップフロップ回路２２を介して出力データＯを出力する上記並列多数判定回路２０と、により構成されている。この構成においてパイプラインレジスタ２１は図１４（ａ）に示すように、メモリセルアレイＭＣ１のビット幅に相当する出力レジスタ２１Ｕ及び入力レジスタ２１Ｌにより構成されており、上記イネーブル信号ＥＮが入力レジスタ２１Ｌに入力される。そして入力レジスタ２１Ｌは、イネーブル信号ＥＮが入力されるタイミングでそれに記憶（ラッチ）されているデータを並列多数判定回路２０に出力すると共に、当該タイミングで出力レジスタ２１Ｕに記憶されているデータを引き出して（即ちシフトさせて）記憶（ラッチ）する。またこれにより出力レジスタ２１Ｕは、入力レジスタ２１Ｌによりそのデータが引き出されたタイミングで、次の出力データＯを記憶（ラッチ）する。以上の入力レジスタ２１Ｌ及び出力レジスタ２１Ｕの動作が繰り返されることにより、上述したパイプラインレジスタ２１としての動作が実現される。
【０１１７】
次に、上記多数判定入力回路１２及び直列多数判定回路１３の細部構成について、図１４（ｂ）を用いて説明する。図１４（ｂ）に示すように一の直列多数判定回路１６内の多数判定入力回路１２は、排他的否定論理和回路１２Ａと、マスクフリップフロップ回路１２Ｂと、により構成されている。この構成において排他的否定論理和回路１２Ａには、メモリセルアレイＭＣ１からの重み付け係数Ｗと、１ビットの入力データＩと、が入力され、これらの排他的否定論理和の結果を上記出力データＥとして直列多数決回路１３に出力する。またマスクフリップフロップ回路１２Ｂは、メモリセルアレイＭＣ１からの接続有無情報Ｃと、上記イネーブル信号ＥＮと、が入力され、イネーブル信号ＥＮが入力されたタイミングで上記接続有無情報Ｃを直列多数決回路１３に出力する。そして直列多数決回路１３は、上記出力データＥ及び上記接続有無情報Ｃに基づいた上述した動作により出力データＯを生成して、パイプラインレジスタ２１の出力レジスタ２１Ｕに出力する。このとき、上記既定の多数判定閾値を直列多数決回路１３内の図示しないレジスタ内に保持してそれを参照することで、上述した直列多数決回路１３としての動作を実現できる。
【０１１８】
次に、上記並列多数判定回路２０の細部構成について、図１４（ｃ）を用いて説明する。図１４（ｃ）に示すように並列多数判定回路２０は、入力データＩの数と同数の排他的否定論理和回路２０Ａ及びマスクフリップフロップ回路２０Ｂと、並列多数決回路２０Ｃと、により構成されている。この構成において排他的否定論理和回路２０Ａには、メモリセルアレイＭＣ２からの１ビットの重み付け係数Ｗと、パイプラインレジスタ２１の入力レジスタ２１Ｌからの１ビットの出力データＯと、が入力され、これらの排他的論理和の結果を並列多数決回路２０Ｃに出力する。またマスクフリップフロップ回路２０Ｂは、メモリセルアレイＭＣ２からの接続有無情報Ｃと、上記イネーブル信号ＥＮと、が入力され、イネーブル信号ＥＮが入力されたタイミングで上記接続有無情報Ｃを並列多数決回路２０Ｃに出力する。そして並列多数決回路２０Ｃは、メモリセルアレイＭＣ２からの一組の重み付け係数Ｗ及び接続有無情報Ｃに対応する排他的否定論理和回路１２Ａ及びマスクフリップフロップ回路２０Ｂそれぞれからの出力に基づいた上述した動作をメモリセルアレイＭＣ１からの出力データＯの数（図１３及び図１４に例示する場合は２５６）だけ繰り返し、出力フリップフロップ回路２２を介してシリアル形式で出力データＯとして出力する。このとき、上記既定の多数判定閾値を並列多数決回路２０Ｃ内の図示しないレジスタ内に保持してそれを参照することで、上述した並列多数決回路２０としての動作を実現できる。
【０１１９】
このとき、上述したパイプラインレジスタ２１の動作により並列演算器ＰＰでは、例えば図１４（ｄ）に示すように、メモリセルアレイＭＣ１からの２５６ビット分の出力データＯに対する処理（図１４（ｄ）において「メモリセルブロック１５Ｕ１」と示す）が終了すると、次にメモリセルアレイＭＣ１からの次の２５６ビット分の出力データＯに対する処理（図１４（ｄ）において「メモリセルブロック１５Ｕ２」と示す）と、メモリセルアレイＭＣ２からの２５６ビット分の重み付け係数Ｗ及び接続有無情報Ｃに対する処理（図１４（ｄ）において「メモリセルブロック１５Ｌ１」と示す）と、が、見かけ上同時並列的に実行される。そして、メモリセルブロック１５Ｕ２に対応する出力データＯ並びにメモリセルブロック１５Ｌ１に対応する重み付け係数Ｗ及び接続有無情報Ｃに対する処理が終了すると、次にメモリセルアレイＭＣ１からの更に次の２５６ビット分の出力データＯに対する処理（図１４（ｄ）において「メモリセルブロック１５Ｕ３」と示す）と、メモリセルアレイＭＣ２からの次の２５６ビット分の重み付け係数Ｗ及び接続有無情報Ｃに対する処理（図１４（ｄ）において「メモリセルブロック１５Ｌ２」と示す）と、が、見かけ上同時並列的に実行される。以降は、メモリセルアレイＭＣ１及びメモリセルアレイＭＣ２それぞれからの２５６ビット分の出力データＯ並びに重み付け係数Ｗ及び接続有無情報Ｃに対して、逐次的且つ同時並列的な処理が実行される。
【０１２０】
なお、図１４（ｂ）に示す多数判定入力回路１２及び直列多数判定回路１３の細部構成、並びに図１４（ｃ）に示す並列多数判定回路２０の細部構成は、図８以降に示す各メモリセル１１からの上記接続有無情報Ｃの出力タイミングが、図８以降に示す各メモリセル１０からの上記重み付け係数Ｗの出力タイミングよりも例えば一サイクル早いことを前提とした構成である。この出力タイミングのずれを吸収するのが、図１４（ｂ）及び図１４（ｃ）にそれぞれ示すマスクフリップフロップ回路１２Ｂ及びマスクフリップフロップ回路２０Ｂの機能である。一方、上記重み付け係数Ｗの出力タイミングと上記接続有無情報Ｃの出力タイミングとを同時並行的とすることも可能である。そしてこの場合、図１４（ｂ）及び図１４（ｃ）にそれぞれ示すマスクフリップフロップ回路１２Ｂ及びマスクフリップフロップ回路２０Ｂは、多数判定入力回路１２及び並列多数判定回路２０としては不要となる。
【０１２１】
以上説明したように、図１３及び図１４に示すニューラルネットワーク集積回路Ｃ１−３によれば、図１２（ａ）に示すニューラルネットワークＳ１−２を、約二倍の処理速度をもってモデル化することができる。なお図１４を用いて説明した直列多数判定回路１６の細部構成は、図１２を用いて説明したニューラルネットワーク集積回路Ｃ１−２に含まれる直列多数判定回路１６の細部構成として適用することもできる。
【０１２２】
より具体的に、ニューラルネットワーク集積回路Ｃ１−３によれば、ニューラルネットワーク集積回路Ｃ１’とニューラルネットワーク集積回路Ｃ２’との間に備えられたパイプラインレジスタ２１により、ニューラルネットワーク集積回路Ｃ１’から出力される各出力データＯを一基準クロック分だけバッファリングして、ニューラルネットワーク集積回路Ｃ２’における各入力データＩとして当該ニューラルネットワーク集積回路Ｃ２’に出力する。よって、ニューラルネットワーク集積回路Ｃ２’における並列多数判定回路２０における見かけ上の並列処理が可能となり、多様な脳機能に対応可能なニューラルネットワークＳ１−２を効率的且つ高速化して実現することができる。
【０１２３】
（Ｆ）実施形態に係るニューラルネットワーク集積回路の第５例について
次に、実施形態に係るニューラルネットワーク集積回路の第５例について、図１５を用いて説明する。なお図１５において、図１３及び図１４を用いてそれぞれ説明した実施形態に係るニューラルネットワーク回路と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【０１２４】
図１５を用いて説明する実施形態に係るニューラルネットワーク集積回路の第５例は、図１５（ａ）に示すように、図１３及び図１４を用いて説明した実施形態に係るニューラルネットワーク集積回路Ｃ１−３を例えば四つ備え、これらの動作を制御部ＣＴにより制御する構成を備えたニューラルネットワーク集積回路ＣＰである。より具体的にニューラルネットワーク集積回路ＣＰは、図１５（ａ）に示すように、メモリブロックＭＡ上に集積された四つのニューラルネットワーク集積回路Ｃ１−３と、各ニューラルネットワーク集積回路Ｃ１−３に対応した四つの入力セレクタＩＳと、入力制御用でＦＩＦＯ（First In First Out）形式のメモリＭ１と、出力制御用でＦＩＦＯ形式のメモリＭ２と、制御部ＣＴと、バスＢと、により構成されている。
【０１２５】
この構成において１ビットの入力データＩは、書き込みストローブＷＳにより制御されるメモリＭ１を介してバスＢにシリアル形式で出力される。これにより各ニューラルネットワーク集積回路Ｃ１−３のそれぞれは、対応する入力セレクタＩＳを介して入力データＩをシリアル形式で読み込み、上述してきた処理を施し、１ビットの出力データＯを生成してシリアル形式でバスＢに出力する。そして、各ニューラルネットワーク集積回路Ｃ１−３からの出力データＯは、入力セレクタＩＳを介してメモリＭ２に読み込まれる。その後、当該読み込まれた出力データＯは、読み出しストローブＲＳにより制御されるメモリＭ２を介して外部に出力される。このとき制御部ＣＴは、外部からの実行信号ＲＮに基づいて、各ニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１及びメモリセルアレイＭＣ２にそれぞれ送信されるアドレスデータＡＤ及びイネーブル信号ＥＮ（図１３参照）と、スタート信号ＳＴと、を生成して各ニューラルネットワーク集積回路Ｃ１−３に出力する。
【０１２６】
次に、上記制御部ＣＴの細部構成について、図１５（ｂ）を用いて説明する。
【０１２７】
図１５（ｂ）に示すように制御部ＣＴは、アップカウンタ２５１乃至アップカウンタ２５５と、サイクリックカウンタ２６と、アップカウンタ２５１乃至アップカウンタ２５５にそれぞれ対応するレジスタ２７１乃至レジスタ２７５と、サイクリックカウンタ２６に対応するレジスタ２７ｍと、により構成されている。
【０１２８】
この構成においてサイクリックカウンタ２６は、上記実行信号ＲＮとレジスタ２７ｍに記憶されているカウント値に基づいて上記スタート信号ＳＴを生成し、各ニューラルネットワーク集積回路Ｃ１−３及びアップカウンタ２５１乃至アップカウンタ２５５にそれぞれ出力する。これによりアップカウンタ２５１は、図示しないＦＩＦＯ型の入力メモリと最初のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１宛のアドレスデータＡＤ及びイネーブル信号ＥＮを生成し、当該入力メモリと最初のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１に出力する。次にアップカウンタ２５２は、最初のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ２及び第２のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１宛のアドレスデータＡＤ及びイネーブル信号ＥＮを生成し、当該最初のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ２及び第２のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１に出力する。次にアップカウンタ２５３は、第２のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ２及び第３のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１宛のアドレスデータＡＤ及びイネーブル信号ＥＮを生成し、当該第２のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ２及び第３のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１に出力する。次にアップカウンタ２５４は、第３のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ２及び第４のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１宛のアドレスデータＡＤ及びイネーブル信号ＥＮを生成し、当該第３のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ２及び第４のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ１に出力する。最後にアップカウンタ２５５は、第４のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ２及び図示しないＦＩＦＯ型の出力メモリ宛のアドレスデータＡＤ及びイネーブル信号ＥＮを生成し、当該第４のニューラルネットワーク集積回路Ｃ１−３のメモリセルアレイＭＣ２及び出力メモリに出力する。これらにより各ニューラルネットワーク集積回路Ｃ１−３は、上記スタート信号ＳＴ、上記アドレスデータＡＤ及びイネーブル信号ＥＮに基づき、例えば図１４（ｄ）に例示する態様で上述した動作をシリアル形式で実行し、最終的に出力データＯがメモリＭ２を介して出力される。なお制御部ＣＴは、モデル化すべきニューラルネットワークの態様（例えば、ニューロンＮＲの数やそれらの間の接続態様等）を変更すべき場合、上記アドレスＡＤ及びイネーブル信号ＥＮの内容又は出力先を変更することで、当該態様の変更に対応させてニューラルネットワーク集積回路ＣＰの動作を変更する。
【０１２９】
以上説明したように、図１５に示すニューラルネットワーク集積回路ＣＰによれば、更に大規模なニューラルネットワークを、その構成の自由度を高めつつモデル化することができる。
【０１３０】
（Ｇ）実施形態に係るニューラルネットワーク集積回路の第６例等について
次に、実施形態に係るニューラルネットワーク集積回路の第６例及び第７例について、図１６を用いて説明する。なお図１６において、図１２を用いて説明した実施形態に係るニューラルネットワーク回路Ｃ１−２と同様の構成部材については、同様の部材番号を付して細部の説明を省略する。
【０１３１】
先ず、実施形態に係るニューラルネットワーク集積回路の第６例を、図１６（ａ）を用いて説明する。当該第６例は図１６（ａ）に示すように、図１２を用いて説明した実施形態に係るニューラルネットワーク集積回路Ｃ１−２を例えば三つ備え、これらが直列的に接続された構成を備えるニューラルネットワーク集積回路である。このときニューラルネットワーク集積回路Ｃ１−２は、上述した通り直列入力−並列処理−直列出力型の多段ニューラルネットワークをモデル化したニューラルネットワーク集積回路である。また図１６（ａ）に示す構成は、図５を用いて説明した関連形態に対応する態様で上記ニューラルネットワーク集積回路Ｃ１−２を直列的に接続したニューラルネットワーク集積回路である。よってこの場合、一つのニューラルネットワーク集積回路Ｃ１−２の出力データＯの数（シリアル形式で出力される出力データＯの数）は、次段に接続されるニューラルネットワーク集積回路Ｃ１−２の入力データＩの数（シリアル形式で出力される入力データＩの数）に相当している必要がある。
【０１３２】
次に、実施形態に係るニューラルネットワーク集積回路の第７例を、図１６（ｂ）を用いて説明する。当該第７例は図１６（ｂ）に示すように、図１２を用いて説明した実施形態に係るニューラルネットワーク集積回路Ｃ１−２を例えば三つ備え、共通の入力データＩによりこれらが並列的に接続された構成を備えるニューラルネットワーク集積回路である。この図１６（ｂ）に示す構成は、図６を用いて説明した関連形態に対応する態様で上記ニューラルネットワーク集積回路Ｃ１−２を並列的に接続したニューラルネットワーク集積回路である。よってこの場合、図１６（ａ）に示したニューラルネットワーク集積回路の場合のような出力データＯ及び入力データＩそれぞれにおけるビット数についての制限はない。
【０１３３】
以上説明したように、図１６に示す各ニューラルネットワーク集積回路によれば、更に大規模なニューラルネットワークをモデル化することができる。
【０１３４】
より具体的に、図１６（ａ）に示す各ニューラルネットワーク集積回路によれば、複数のニューラルネットワーク集積回路Ｃ１−２が直列に接続されており、一のニューラルネットワーク集積回路Ｃ１−２からの一の出力データＯが、直後段のニューラルネットワーク集積回路Ｃ１−２への一の入力データＩとされているので、より多様な脳機能に対応可能なニューラルネットワークを効率的に実現することができる。また図１６（ｂ）に示す各ニューラルネットワーク集積回路によれば、複数のニューラルネットワーク集積回路Ｃ１−２のそれぞれに対して一の入力データＩが共通に入力されており、当該複数のニューラルネットワーク集積回路Ｃ１−２からそれぞれ別個に出力データＯが一ずつ出力されるので、より多様な脳機能に対応可能なニューラルネットワークを効率的に実現することができる。
【０１３５】
以上それぞれ説明したように、実施形態に係るニューラルネットワーク回路ＣＣＳ’及びニューラルネットワーク集積回路Ｃ１−２等の構成及び動作によれば、関連形態に係るニューラルネットワーク回路ＣＳ及びニューラルネットワーク集積回路Ｃ１等の構成及び動作と同様に、回路規模及びそれに対応するコストを大幅に縮小しつつ、ニューラルネットワーク回路を効率的に実現することができる。
【０１３６】
（III）変形形態
次に、本発明に係る上述した関連形態及び実施形態を変形した変形形態について、図１７及び図１８を用いて説明する。なお、図１７は変形形態に係るニューラルネットワークを説明する図等であり、図１８は変形形態に係るニューラルネットワーク集積回路の細部構成を示す図である。
【０１３７】
以下に説明する変形形態は、上記関連形態及び上記実施形態としてそのモデル化を説明してきたニューラルネットワークに対して、脳機能をより一般的にモデル化する手法として、新たに「傾向係数」の概念を追加するものである。なお以下の説明において、特に図１及び図１４を用いて説明した構成に含まれる部材等と同じ部材等については、同様の部材等の番号を付して細部の説明は省略する。
【０１３８】
先ず、上記傾向係数の概念を追加してモデル化したニューラルネットワークについて図１７を用いて説明する。
【０１３９】
上述した関連形態及び実施形態において説明したニューラルネットワークのニューロンＮＲでは、外部から入力される複数の入力データＩのそれぞれに対する上記乗算処理、上記加算処理及び上記活性化処理を当該ニューロンＮＲで実行し、その結果を出力データＯとしていた。これに対し、変形形態に係るニューラルネットワークでは、各入力データＩに対する上記乗算処理及び上記加算処理の結果に対して、当該ニューラルネットワークによりモデル化される脳機能に基づいて予め設定された、当該脳機能としての傾向をニューロンごとに示す上記傾向係数を更に加算する。そして変形形態に係るニューラルネットワークでは、当該傾向係数の加算結果に対して上記活性化処理を適用し、その結果を、変形形態に係る出力データとして出力する。即ち変形形態に係るニューラルネットワークの場合、「加算処理」とは、上述した関連形態及び実施形態それぞれに係るニューラルネットワークにおける加算処理に対して上記傾向係数の加算処理を更に加えることをいう。この変形形態に係る傾向係数は、上述したように脳機能としての傾向をニューロンごとに示し且つ予め設定された係数であり、その絶対値は、当該ニューロンに入力される入力データの数ｎ以下の任意の整数である。ここで、上記「傾向」とは、例えば、モデル化の対象である脳機能においてニューロンごとの調整機能としてその存在が認められる、脳機能等の傾向をいう。更に上記傾向係数は、一般には「バイアス値（Bias value）」と称される場合もある。この傾向係数としての具体的な値は、そのニューロンについての上記傾向に対応して、上記入力データＩの数以下の整数として、ニューロンごとに予め設定されている。より具体的に例えば、一つのニューロンに対して三つの入力データＩが入力されるとすると、上記傾向係数として取り得る値は、「−３」乃至「３」の七つ（「０」を含む）である。ここで、傾向係数が「０」の場合が、上述してきた関連形態及び実施形態に係るニューラルネットワークであることになる（図１（ａ）参照）。
【０１４０】
そして、上述した変形形態に係るニューラルネットワークとしての一連の乗算処理、加算処理（傾向係数の加算処理を含む。以下、変形形態において同じ。）及び活性化処理を数式で表すと、図１７（ａ）に示す式（２）となる。このとき、関連形態及び実施形態の場合と同様に各重み付け係数Ｗを各入力データＩにそれぞれ乗算する乗算処理が、変形形態に係るニューロンＮＲＲ間の電気信号のやり取りにおけるシナプスの作用に相当する。そして図１７（ａ）に例示するように、変形形態に係る加算処理後の値全体に対して活性化関数Ｆを適用して出力データＯを出力することが、変形形態に係る活性化処理に相当する。
【０１４１】
なお、入力データＩと重み付け係数Ｗとの各乗算結果の加算結果に対する変形形態に係る傾向係数Ｂｎの更なる加算処理を回路的に実現する場合、以下に説明する変形形態では、「１」を分割単位として当該傾向係数Ｂｎを分割（分解）し、上記各乗算結果のそれぞれに対して「１」を加算又は減算する処理を、傾向係数Ｂｎの値に等しい数の乗算結果について行う。即ち、例えば傾向係数Ｂｎの値が「２」である場合、図１７（ａ）に示す例えば入力データＩ１と重み付け係数Ｗ１の乗算結果に「１」を加算すると共に、入力データＩ２と重み付け係数Ｗ２の乗算結果にも「１」を加算し、これらを含めて活性化関数Ｆを適用させる。また、例えば傾向係数Ｂｎの値が「−３」である場合、図１７（ａ）に示す例えば入力データＩ１と重み付け係数Ｗ１の乗算結果及び入力データＩ２と重み付け係数Ｗ２の乗算結果からそれぞれ「１」を減算し、更に入力データＩ３と重み付け係数Ｗ３の乗算結果からも「１」を減算し、これらを含めて活性化関数Ｆを適用させる。このとき、いずれの乗算結果に対して「１」の加算又は減算を行うかは、モデル化される脳機能に対応して予め設定されている。
【０１４２】
ここで変形形態に係る加算処理等を回路的に実現する場合、上記接続有無情報Ｃの意味（定義）が、上記関連形態及び上記実施形態とは異なってくる。即ち図１７（ｂ）に示すように、変形形態に係る傾向係数Ｂｎの値が「０」である場合は、上記関連形態及び上記実施形態の構成に相当する。そしてこの場合は、変形形態に係るニューロンＮＲＲ間であっても、当該ニューロンＮＲＲ間について接続有無情報Ｃが「接続あり」を示している（図１７（ｂ）において「１」とされている）場合のみ、対応する入力データＩと重み付け係数Ｗとの乗算結果が一方のニューロンＮＲＲに入力される（図１７（ｂ）最上段及び上から二段目参照）。このとき、上記活性化処理後の出力データの値は、「０」又は「１」となる。そしてその後、そのニューロンＮＲＲにおける関連形態及び実施形態と同様の加算処理及び活性化処理に供される。
【０１４３】
これに対し、変形形態に係る傾向係数Ｂｎが「０」でない場合、当該傾向係数Ｂｎを分割した結果を加算又は減算する対象の乗算結果（入力データＩと重み付け係数Ｗとの乗算結果）について、接続有無情報Ｃが「１」とされている（即ち「接続あり」を示している）場合には、正の値である傾向係数Ｂｎを分解した値としての「１」が当該乗算結果に「加算」されて、一方のニューロンＮＲＲに入力される（図１７（ｂ）最下段参照）。一方、接続有無情報Ｃが「０」とされている（即ち「接続なし」を示している）場合には、負の値である傾向係数Ｂｎを分解した値としての「−１」が上記乗算結果に加算（即ち「１」が減算）されて、一方のニューロンＮＲＲに入力される（図１７（ｂ）下から二段目参照）。この場合、上記活性化処理後の出力データの値は、「−２」又は「０」（傾向係数Ｂｎが負の値である場合。図１７（ｂ）下から二段目参照。）、或いは、「２」又は「０」（傾向係数Ｂｎが正の値である場合。図１７（ｂ）最下段参照。）となる。そしてその後、そのニューロンＮＲＲにおける変形形態としての加算処理及び活性化処理に供される。
【０１４４】
次に、図１３に示すニューラルネットワーク集積回路Ｃ１−３に対して変形形態を適用した場合の、特に並列演算器（図１３符号ＰＰ参照）の細部構成について、図１４を参照しつつ、図１８を用いて説明する。
【０１４５】
先ず図１８（ａ）に示すように変形形態に係る並列演算器ＰＰＰは、メモリセルアレイＭＣ１のビット幅に相当する数の変形形態に係る多数判定入力回路１２’及び上記直列多数判定回路１３からなる直列多数判定回路１６’と、ニューラルネットワーク集積回路Ｃ１−３と同様のパイプラインレジスタ２１と、ニューラルネットワーク集積回路Ｃ１−３と同様の出力フリップフロップ回路２２を介して出力データＯを出力する変形形態に係る並列多数判定回路２０’と、により構成されている。この構成においてパイプラインレジスタ２１は、図１４（ａ）を用いて説明した場合と同様の構成を備え、同様の動作を実現する。また変形形態に係る並列演算器ＰＰＰにおいては、重み付け係数Ｗと接続有無情報Ｃとが一サイクル異なったタイミングで入力される実施形態に係る並列演算器ＰＰの場合と異なり、重み付け係数Ｗ、接続有無情報Ｃ及び傾向係数Ｂｎは、メモリセルアレイＭＣ１又はメモリセルアレイＭＣ２から、それぞれ相互に同時並行的に並列演算器ＰＰＰに入力される。
【０１４６】
次に、変形形態に係る多数判定入力回路１２’の細部構成について、図１８（ｂ）を用いて説明する。図１８（ｂ）に示すように一の直列多数判定回路１６’内の多数判定入力回路１２’は、排他的論理和回路２５Ａと、セレクタ２５Ｂ及びセレクタ２５Ｆと、反転増幅回路２５Ｃ及び反転増幅回路２５Ｅと、論理積回路２５Ｄと、加算回路２５Ｇと、により構成されている。このとき、重み付け係数Ｗ、接続有無情報Ｃ及び傾向係数Ｂｎが同時並行的に並列演算器ＰＰＰに入力されるため、図１４（ｂ）に例示したマスクフリップフロップ回路１２Ｂは不要となる。以上の構成において排他的論理和回路２５Ａには、メモリセルアレイＭＣ１からの重み付け係数Ｗと、１ビットの入力データＩと、が入力され、これらの排他的論理和の結果をセレクタ２５Ｂの「０」端子に出力する。一方論理積回路２５Ｄには、メモリセルアレイＭＣ１からの接続有無情報Ｃと、傾向係数Ｂｎを分割した１ビットのデータを反転増幅回路２５Ｃにより反転したデータと、が入力され、それらの論理積の結果がセレクタ２５Ｂの制御端子に出力される。これによりセレクタ２５Ｂは、接続有無情報Ｃ及び傾向係数Ｂｎに基づき、上記排他的論理和の結果又は０データのいずれか一方を選択し、加算回路２５Ｇの一方の端子に出力する。次にセレクタ２５Ｆの制御端子には上記傾向係数Ｂｎを分割した１ビットのデータが入力され、更にセレクタ２５Ｆの「１」端子には、接続有無情報Ｃを反転増幅回路２５Ｅにより反転したデータが入力される。これによりセレクタ２５Ｆは、傾向係数Ｂｎに基づき、上記反転増幅回路２５Ｅからの出力データ又は０データのいずれか一方を選択し、加算回路２５Ｇの他方の端子に出力する。これらにより加算回路２５Ｇは、セレクタ２５Ｂ及びセレクタ２５Ｆからの出力データを加算し、出力データＯＰｎとして直列多数決回路１３に出力する。このとき当該出力データＯＰｎの取り得る値は、図１７（ｂ）に示すように「−２」、「−１」、「０」、「１」又は「２」の五種類となるため、出力データＯＰｎは３ビットのデータとなる。そして直列多数決回路１３は、出力データＯＰｎに対して図１４に例示した場合と同様の活性化処理に相当する処理を行い、その結果を出力データＯＯｎとして（図１７（ａ）参照）、パイプラインレジスタ２１の出力レジスタ２１Ｕに出力する。このとき、上記既定の多数判定閾値を直列多数決回路１３内の図示しないレジスタ内に保持してそれを参照することで、上述した直列多数決回路１３としての動作を実現できる点は、図１４に例示した直列多数決回路１３と同様である。
【０１４７】
次に、変形形態に係る並列多数判定回路２０’の細部構成について、図１８（ｃ）を用いて説明する。図１８（ｃ）に示すように並列多数判定回路２０’は、図１８（ｂ）を用いて構成等を説明した多数判定入力回路１２’と同様の構成等を備え且つメモリセルアレイＭＣ２のビット幅に相当する数の多数判定入力回路１２’と、並列多数決回路３０と、により構成されている。この構成において多数判定入力回路１２’には、メモリセルアレイＭＣ２からの１ビットの重み付け係数Ｗ及び接続有無情報Ｃ並びに傾向係数Ｂｎと、パイプラインレジスタ２１の入力レジスタ２１Ｌからの１ビットの出力データＯと、が入力される。そして各多数判定入力回路１２’は、重み付け係数Ｗ、接続有無情報Ｃ並びに傾向係数Ｂｎ及び入力レジスタ２１Ｌからの１ビットの出力データＯに対して図１８（ｂ）を用いて説明した動作と同様の動作を実行した結果を、並列多数決回路３０に出力する。そして並列多数決回路３０は、メモリセルアレイＭＣ２からの一組の重み付け係数Ｗ及び接続有無情報Ｃ並びに傾向係数Ｂｎに対応する各多数判定入力回路１２’それぞれからの出力データＯＰｎに基づいた上述した多数決動作を、メモリセルアレイＭＣ１からの出力データＯの数（例えば図１３及び図１４で例示した場合と同様の２５６）だけ繰り返し、出力フリップフロップ回路２２を介してシリアル形式で出力データＯとして出力する。このとき、変形形態に係る並列多数決回路３０の構成として具体的には、例えば、隣接するビットに対応する出力データＯＰｎ同士を加算するための加算回路を階層的に備え、その最終的な加算結果の符号ビットを上記出力フリップフロップ回路２２に出力する構成が考えられる。また、上記既定の多数判定閾値を並列多数決回路３０内の図示しないレジスタ内に保持してそれを参照することで、上述した並列多数決回路３０としての動作を実現できる点は、図１４に例示した並列多数決回路２０Ｃと同様である。
【０１４８】
また、パイプラインレジスタ２１の動作によりメモリセルアレイＭＣ１及びメモリセルアレイＭＣ２それぞれからの２５６ビット分の出力データＯ、重み付け係数Ｗ及び接続有無情報Ｃ並びに傾向係数Ｂｎに対して、逐次的且つ同時並列的な処理が実行されることは、図１４に示す並列演算器ＰＰと同様である。
【０１４９】
以上説明したように、図１７及び図１８に示す変形形態によれば、傾向係数Ｂｎを加味した例えば図１２（ａ）に示すニューラルネットワークＳ１−２を、約二倍の処理速度をもってモデル化することができる。
【０１５０】
更に、変形形態に係るニューラルネットワーク集積回路に含まれる並列演算器ＰＰＰの構成及び動作によれば、変形形態に係るニューラルネットワーク（図１７参照）をモデル化したニューラルネットワーク集積回路として、回路規模及びそれに対応するコストを大幅に縮小することができる。
【０１５１】
より具体的に、変形形態に係るニューラルネットワーク集積回路に含まれる並列演算器ＰＰＰの構成及び動作によれば、脳機能に基づく既定の傾向係数Ｂｎが各乗算処理の加算結果に対して更に加算されるべき場合、当該傾向係数Ｂｎの絶対値に等しい数のいずれかの多数判定入力回路１２’に当該傾向係数Ｂｎが分けて入力される。そして上記接続有無情報Ｃに応じて、各乗算処理の加算結果に対する当該傾向係数Ｂｎの更なる加算結果が多数判定入力回路１２’から並列多数決回路３０に出力される。これらにより並列多数決回路３０は、結果的に、傾向係数Ｂｎの更なる加算結果を各多数判定入力回路１２’について加算した合計値が正又は０であるとき値「１」を出力データＯとして出力し、当該合計値が負であるとき値「０」を出力データＯとして出力する。よって、脳機能に基づく既定の傾向係数Ｂｎが導入されるべき場合であっても、回路規模及びそれに対応するコストを大幅に縮小しつつ、人の脳機能に対応したニューラルネットワークを効率的に実現することができる。
【０１５２】
なお、上述してきた関連形態並びに実施形態及び変形形態においては、出力データＯ、入力データＩ、重み付け係数Ｗ等において、それらの値を「１」又は「０」等とする場合について説明したが、これ以外に、回路設計上の便宜等により、上記値「０」を値「−１」として各ニューラルネットワーク回路又はニューラルネットワーク集積回路を構成してもよい。
【産業上の利用可能性】
【０１５３】
以上それぞれ説明したように、本発明はニューラルネットワークをモデル化したニューラルネットワーク回路等の分野に利用することが可能であり、特に、製造コストの低減や効率的なニューラルネットワーク回路等を開発する場合に適用すれば、特に顕著な効果が得られる。
【符号の説明】
【０１５４】
１、１０、１１、    メモリセル
２    多数判定回路
１２、１２’    多数判定入力回路
１２Ａ、２０Ａ    排他的否定論理和回路
１２Ｂ、２０Ｂ    マスクフリップフロップ回路
１３、１６、１６’    直列多数判定回路
１５、１５Ｕ１、１５Ｕ２、１５Ｌ１、１５Ｕ３、１５Ｌ２    メモリセルブロック
２０、２０’    並列多数判定回路
２０Ｃ、３０    並列多数決回路
２１    パイプラインレジスタ
２１Ｕ    出力レジスタ
２１Ｌ    入力レジスタ
２２    出力フリップフロップ回路
２５１、２５１、２５１、２５１、２５５    アップカウンタ
２５Ａ    排他的論理和回路
２５Ｂ、２５Ｆ    セレクタ
２５Ｃ、２５Ｅ    反転増幅回路
２５Ｄ    論理積回路
２５Ｇ    加算回路
２６    サイクリックカウンタ
２７１、２７２、２７３、２７４、２７５、２７ｍ    レジスタ
Ｉ、Ｉ１、Ｉ２、Ｉ３、Ｉ４、Ｉ５、Ｉ６、Ｉ７、Ｉ８、Ｉｎ、Ｉｍ    入力データ
ＮＲ、ＮＲＲ    ニューロン
Ｇ１    ＸＮＯＲゲート
Ｇ２    ＸＯＲゲート
Ｂｎ    傾向係数
Ｏ、Ｏ１、Ｏ２、Ｏ３、Ｏ４、Ｏ５、Ｏｎ、Ｏｍ、Ｏ２ｍ、Ｏ１０、Ｏ２０、Ｏ３０、Ｏ４０、Ｏ１１、Ｏ２１、Ｏ３１、Ｏ４１、Ｏ１ｎ、Ｏ２ｎ、Ｏ３ｎ、Ｏｎ０、Ｏｎ１、ＯＯ、ＯＰｎ、Ｅ１、Ｅ２、Ｅ３、Ｅ４、Ｅ１０、Ｅ２０、Ｅ３０、Ｅ４０、Ｅ１１、Ｅ２１、Ｅ３１、Ｅ４１、Ｅｎ０、Ｅｎ１    出力データ
Ｗ１、Ｗ２、Ｗｎ    重み付け係数
Ｓ、Ｓ１、ＳＳ１、ＳＳ２、ＳＳ３、Ｓ１’、Ｓ２’、Ｓ１−２、Ｓ１−３    ニューラルネットワーク
Ｓ’    ネットワーク
Ｃ１、Ｃ２、Ｃ３、Ｃ４、ＣＣ１、ＣＣ２、ＣＣ３、Ｃ１’、Ｃ２’、ＣＰ、Ｃ１−２、Ｃ１−３    ニューラルネットワーク集積回路
ＣＳ、ＣＳ１、ＣＳ２、ＣＳ３、ＣＳ４、ＣＳ５、ＣＳ１１、ＣＳ１２、ＣＳ２１、Ｃ２２、ＣＳ３１、ＣＳ３２、ＣＳ１ｎ、ＣＳ１ｍ、ＣＳ２ｎ、ＣＳ２ｍ、ＣＳ３ｎ、ＣＳ３ｐ、ＣＳ４ｑ、ＣＳｍ、ＣＣＳ’    ニューラルネットワーク回路
ＣＳ’    ネットワーク回路
Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、Ｔ６、Ｔ７、Ｔ８、Ｔ９、Ｔ１０、Ｔ１１、Ｔ１２、Ｔ１３、Ｔ１４、Ｔ１５、Ｔ１６、Ｔ１７、Ｔ１８、Ｔ１９、Ｔ２０、Ｔ２１、Ｔ２２、Ｔ２３、Ｔ２４、Ｔ２５、Ｔ２６、Ｔ２７、Ｔ２８、Ｔ２９、Ｔ３０    トランジスタ
ＩＶ１、ＩＶ２、ＩＶ３、ＩＶ４    インバータ
ＬＩｎ、／ＬＩｎ、Ｗ１、Ｗ２、ＬＯ、／ＬＯ    接続線
Ｍ、／Ｍ    マッチ線
ＳＡ    センスアンプ
φ１、φ２、／φ２、φ３    タイミング信号
ＴＧ    タイミング生成回路
ＳＷ１、ＳＷ２、ＳＷ３、ＳＷ４    スイッチ
ＳＢ１、ＳＢ２、ＳＢ３、ＳＢ４    スイッチボックス
Ｍ１、Ｍ２、Ｍ３、Ｍ４、Ｍ５    セレクタ
ＭＣ１、ＭＣ２    メモリセルアレイ
ＥＮ    イネーブル信号
ＣＬＫ    基準クロック信号
ＥＣＫ    偶数基準クロック
ＰＰ、ＰＰＰ    並列演算器
ＣＴ    制御部
ＭＡ    メモリブロック
ＩＳ    入力セレクタ
ＣＬ１、ＣＬ２、Ｍ１、Ｍ２    メモリ
ＷＳ    書き込みストローブ
Ｂ    バス
ＲＳ    読み出しストローブ
ＲＮ    実行信号
ＡＤ    アドレスデータ
ＳＴ    スタート信号
Ｓｃ１、Ｓｃ２、Ｓｃ３、Ｓｃ４、Ｓｃ５    切換制御信号
【図１】
2017211972.tif 000003
【図２】
2017211972.tif 000004
【図３】
2017211972.tif 000005
【図４】
2017211972.tif 000006
【図５】
2017211972.tif 000007
【図６】
2017211972.tif 000008
【図７】
2017211972.tif 000009
【図８】
2017211972.tif 000010
【図９】
2017211972.tif 000011
【図１０】
2017211972.tif 000012
【図１１】
2017211972.tif 000013
【図１２】
2017211972.tif 000014
【図１３】
2017211972.tif 000015
【図１４】
2017211972.tif 000016
【図１５】
2017211972.tif 000017
【図１６】
2017211972.tif 000018
【図１７】
2017211972.tif 000019
【図１８】
2017211972.tif 000020