(57)【要約】【課題】多数項の演算を行う際に回路の占有面積の増大を招くことなく、かつ演算結果の保持精度が短時間で低下することの無い演算回路を得ることを目的とする。【解決手段】並列演算処理された演算結果の累積値を算出する演算回路であって、入力されるアナログ信号に基づいて演算処理する複数のアナログ演算回路（１）と、複数のアナログ演算回路（１）による演算結果の総和値に比例する電荷量を蓄えるキャパシタ（２）と、キャパシタ（２）に蓄えられた電荷量をデジタルデータに変換するＡＤ変換回路（３）と、前記変換されたデジタルデータに基づいて累積値を算出するデジタル演算回路（４）とを備える。【選択図】　図１
2004110420.tif 000002
【特許請求の範囲】
【請求項１】
並列演算処理された演算結果の累積値を算出する演算回路であって、
入力されるアナログ信号に基づいて演算処理する複数のアナログ演算回路と、
前記複数のアナログ演算回路による演算結果の総和値に比例する電荷量を蓄えるキャパシタと、
前記キャパシタに蓄えられた電荷量をデジタルデータに変換するＡＤ変換回路と、
前記変換されたデジタルデータに基づいて累積値を算出するデジタル演算回路と
を備えることを特徴とする演算回路。
【請求項２】
並列演算処理された演算結果の累積値を算出する演算回路であって、
入力されるアナログ信号に基づいて演算処理し、演算結果の絶対値を出力する複数のアナログ演算回路と、
前記複数のアナログ演算回路による演算結果の絶対値の総和値に比例する電荷量を蓄えるキャパシタと、
前記キャパシタに蓄えられた電荷量をデジタルデータに変換するＡＤ変換回路と、
前記アナログ演算回路による演算結果の正負に関する情報に基づいて、前記変換されたデジタルデータの加算処理と減算処理とを切り替えて実行し、該デジタルデータの累積値を算出するデジタル演算回路と
を備えることを特徴とする演算回路。
【請求項３】
前記キャパシタには、並列に接続された前記複数のアナログ演算回路が直列に接続されていることを特徴とする請求項１または２に記載の演算回路。
【請求項４】
前記キャパシタには、
入力されるアナログ信号に基づいて、前記算出される累積値の部分和に相当する電荷量が蓄えられることを特徴とする請求項１または２に記載の演算回路。
【請求項５】
前記デジタル演算回路は、
前記複数のアナログ演算回路における演算処理が完了するごとに、処理を実行することを特徴とする請求項１または２に記載の演算回路。
【請求項６】
前記アナログ演算回路は、
前記入力されるアナログ信号に対して、所定の荷重値を乗算することを特徴とする請求項１または２に記載の演算回路。
【請求項７】
前記アナログ演算回路は、
前記入力されるアナログ信号に対して、所定の非線形変換を行うことを特徴とする請求項１または２に記載の演算回路。
【請求項８】
前記アナログ演算回路は、
前記非線形変換の出力値に対して、所定の荷重値を乗算することを特徴とする請求項７に記載の演算回路。
【請求項９】
前記入力されるアナログ信号に基づいて算出される累積値は、該入力されるアナログ信号を入力値とするニューラルネットワークを構成するニューロンの内部状態値と等価であることを特徴とする請求項１または２に記載の演算回路。
【請求項１０】
前記キャパシタに蓄えられる電荷量は、前記入力されるアナログ信号を入力値とするニューラルネットワークを構成するニューロンの内部状態値に対する部分和と等価であることを特徴とする請求項１または２に記載の演算回路。
【請求項１１】
前記入力されるアナログ信号は、画像信号であり、
前記アナログ演算回路は、該画像信号について１行ごとに演算処理することを特徴とする請求項１または２に記載の演算回路。
【請求項１２】
デジタルデータを保持するメモリを更に備え、
前記デジタル演算回路は、前記メモリに保持されたデジタルデータと、前記変換されたデジタルデータとを加算し、前記メモリは該加算結果を保持することで、前記累積値を算出することを特徴とする請求項１に記載の演算回路。
【請求項１３】
デジタルデータを保持するメモリを更に備え、
前記アナログ演算回路による演算結果が正の場合、前記デジタル演算回路は、前記メモリに保持されたデジタルデータと、前記変換されたデジタルデータとを加算し、前記メモリは該加算結果を保持し、
前記アナログ演算回路による演算結果が負の場合、前記デジタル演算回路は、前記メモリに保持されたデジタルデータから、前記変換されたデジタルデータを減算し、前記メモリは該減算結果を保持することで、前記累積値を算出することを特徴とする請求項２に記載の演算回路。
【請求項１４】
前記デジタル演算回路では、加算処理と減算処理とが交互に実行されることを特徴とする請求項２に記載の演算回路。
【請求項１５】
前記アナログ演算回路は、前記入力されるアナログ信号をソース端子に入力し、ゲート端子に所定の電圧を印加するトランジスタを備えることを特徴とする請求項１または２に記載の演算回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はアナログ回路によりアナログ値として算出した部分和をデジタル回路により随時デジタル値に変換し、デジタル値として加減算することにより、累算値を算出するアナログ・デジタル混載型の演算回路に関する。
【０００２】
【従来の技術】
現在、コンピュータは大きな進展を見せ、世の中の様々な場面で使用されている。しかしながら、これらノイマン型と呼ばれるコンピュータは、その処理方式自体の特性により、人が容易に行うことができる処理（リアルタイムでの人の顔の認識等）を非常に不得意としている。
【０００３】
これに対して、脳の情報処理様式を真似た演算処理モデルである、ニューラルネットワークの研究が行われている。
【０００４】
ニューラルネットワークを構成するニューロンのモデルとしては、ニューロンに相当するユニットに対して、他の複数のユニット（ニューロン）の出力値をシナプス荷重値で重み付けした乗算値が入力され、その入力値の総和値をさらに非線形変換した値を出力値とするものが一般的である。
【０００５】
すなわち、一般的なニューラルネットワークにおいては、各ユニット、及びユニット間における積和演算と非線形変換により、所望の処理が実現される。
【０００６】
このニューロンモデルを用いたニューラルネットワークアーキテクチャとしては、これまでに、非線形な入出力特性を有するユニットを相互に結合した連想メモリや、同じく非線型な入出力特性を有するユニットを階層的に結合したパターン認識モデル等が提案されている。
【０００７】
ここでニューラルネットワークは、超並列・分散型の情報処理モデルであるため、逐次処理方式であるノイマン型コンピュータでの実行は極めて効率が悪い。従って、ニューラルネットワークの実用化に際しては、専用のハードウェアとしての集積回路化が必須である。
【０００８】
また集積回路化に際しては、前記の積和演算や非線形変換を実現する演算回路としてアナログ演算回路を使用することで、デジタル演算回路に比較して、素子数の大幅な削減が可能である。
【０００９】
すなわちアナログ演算回路で前記の積和演算や非線形変換を実現する場合は、デバイスや材料の物理的性質を機能的に利用することにより、デジタル演算回路よりも桁違いに少ない素子で所望の機能を実現することが可能となる。そこで、上記のようなニューロンモデル、及びニューラルネットワークアーキテクチャに適する回路が、各種提案されている。
【００１０】
例えば、Ｔ．Ｍｏｒｉｅ，　Ｊ．Ｆｕｎａｋｏｓｈｉ，　Ｍ．Ｎａｇａｔａ　ａｎｄＡ．Ｉｗａｔａ，　「Ａｎ　Ａｎａｌｏｇ−Ｄｉｇｉｔａｌ　Ｍｅｒｇｅｄ　Ｎｅｕｒａｌ　Ｃｉｒｃｕｉｔ　Ｕｓｉｎｇ　Ｐｕｌｓｅ　Ｗｉｄｔｈ　Ｍｏｄｕｌａｔｉｏｎ　Ｔｅｃｈｎｉｑｕｅ」，　ＩＥＩＣＥ　Ｔｒａｎｓ．　Ｆｕｎｄａｍｅｎｔａｌｓ，
Ｖｏｌ．　Ｅ８２−Ａ，　Ｎｏ．２，　ｐｐ．３５６−３６３，　１９９９，
ｈｔｔｐ；／／ｓｅａｒｃｈ．ｉｅｉｃｅ．ｏｒｇ／１９９９／ｆｉｌｅｓ／ｅ０００ａ０２．ｈｔｍ／ｅ８２−ａ，２，３５６では、正負のシナプス荷重に対して、それぞれ符号に対応するキャパシタを用意し、各符号毎に積和演算結果を電荷として蓄え、その後キャパシタの結合で正負の加算結果を得る方式を提案している。
【００１１】
【非特許文献１】
Ｔ．Ｍｏｒｉｅ，　Ｊ．Ｆｕｎａｋｏｓｈｉ，　Ｍ．Ｎａｇａｔａ　ａｎｄ　Ａ．Ｉｗａｔａ，　「Ａｎ　Ａｎａｌｏｇ−Ｄｉｇｉｔａｌ　Ｍｅｒｇｅｄ　Ｎｅｕｒａｌ　Ｃｉｒｃｕｉｔ　Ｕｓｉｎｇ　Ｐｕｌｓｅ　Ｗｉｄｔｈ　Ｍｏｄｕｌａｔｉｏｎ　Ｔｅｃｈｎｉｑｕｅ」，　ＩＥＩＣＥ　Ｔｒａｎｓ．　Ｆｕｎｄａｍｅｎｔａｌｓ，
Ｖｏｌ．　Ｅ８２−Ａ，　Ｎｏ．２，　ｐｐ．３５６−３６３，　１９９９，
＜ＵＲＬ：ｈｔｔｐ；／／ｓｅａｒｃｈ．ｉｅｉｃｅ．ｏｒｇ／１９９９／ｆｉｌｅｓ／ｅ０００ａ０２．ｈｔｍ／ｅ８２−ａ，２，３５６＞
【発明が解決しようとする課題】
前記従来技術においては、多数のアナログ演算回路による並列演算処理された演算結果を精度良く保持する場合に、キャパシタ容量を大きくする必要があった。このため、チップ上の占有面積の視点から、キャパシタ容量の低減のためのより一層の性能向上が望まれていた。
【００１２】
また、正負のシナプス荷重に対して、それぞれ符号に対応する二つのキャパシタを用意するため、チップ上の占有面積の視点から、総キャパシタ容量の低減のためのより一層の性能向上が望まれていた。
【００１３】
また、演算結果を用いて、さらに累積値を算出したい場合などには、演算結果を高精度に長時間保持する必要があるが、キャパシタに蓄積した電荷は、ｐｎ接合部分の漏れのために短時間で消失してしまうという問題があった。このため、さらなる性能向上が望まれていた。
【００１４】
本発明は、上記課題を鑑みてなされたものであり、多数項の演算を行う際に回路の占有面積の増大を招くことなく、かつ演算結果の保持精度が短時間で低下することの無い演算回路を得ることを目的とするものである。
【００１５】
【課題を解決するための手段】
上記の目的を達成するために本発明に係る演算回路は以下のような構成を備える。即ち、
並列演算処理された演算結果の累積値を算出する演算回路であって、
入力されるアナログ信号に基づいて演算処理する複数のアナログ演算回路と、
前記複数のアナログ演算回路による演算結果の総和値に比例する電荷量を蓄えるキャパシタと、
前記キャパシタに蓄えられた電荷量をデジタルデータに変換するＡＤ変換回路と、
前記変換されたデジタルデータに基づいて累積値を算出するデジタル演算回路とを備える。
【００１６】
【発明の実施の形態】
【第一の実施形態】
以下、図面を参照して本発明の第一の実施形態を詳細に説明する。
【００１７】
図１は、本実施形態でのアナログ・デジタル混載演算回路１００の全体構成図を示す。
【００１８】
図１に示すように、アナログ・デジタル混載演算回路は、複数のアナログ演算回路１、前記複数のアナログ演算回路１に接続するキャパシタ２と、キャパシタ２に接続するＡ／Ｄ変換回路３と、Ａ／Ｄ変換回路３に接続するデジタル加算回路４と、デジタル加算回路４に接続するデジタルメモリ５とから構成される。
【００１９】
このアナログ・デジタル混載演算回路１００は、複数の乗算結果の累積値を算出する機能を実現するものである。
【００２０】
また図２は、図１に示されたアナログ演算回路１とキャパシタ２の構成を詳細に説明したものである。図２に示すように、本実施形態でのアナログ演算回路１とキャパシタ２は、キャパシタ２に接続するバスに、複数のアナログ演算回路１が並列に接続する構成となっている。
【００２１】
また図３は、本実施形態でのアナログ演算回路１の詳細な回路構成を示す。図３に示すように、本実施形態でのアナログ演算回路１は、定電流源として機能する１つのＰＭＯＳトランジスタＭ１を有する。
【００２２】
ここでは、まず図３を用いてアナログ演算回路１の演算処理過程について説明し、続いて図２を用いてアナログ演算回路１による演算結果が、どのように部分和としてキャパシタ２に保持されるかについて説明し、さらに図１を用いて、どのように部分和から所望の累算値を算出するかについて説明していく。
【００２３】
図３に示すアナログ演算回路１は、本実施形態においては被乗算値Ａと乗算値Ｂの乗算：（Ａ×Ｂ）を実現する。なおＡ、Ｂは、以下の条件式を満たすものとする。
【００２４】
Ａ≧０、Ｂ≧０
ここで、被乗算値Ａと乗算値Ｂは、前記乗算をアナログ演算回路１で実現するために、後述するように所定の換算を施したＰＷＭ信号Ｖｉｎ７と、アナログ電圧Ｖｗ８としてそれぞれ入力される。
【００２５】
なおアナログ演算回路１は、前記乗算を実現するもの以外でも、何らかの演算（たとえば非線形変換等）を行うものであれば別のアナログ演算回路でも構わない。
【００２６】
まず図３において、被乗算値Ａに所定の換算を施したＰＷＭ信号Ｖｉｎ７が入力端子９に入力され、また乗算値Ｂに所定の換算を施したアナログ電圧Ｖｗ８が入力端子１０に入力される。
【００２７】
ここで、ＰＷＭ信号の特性について簡単に説明しておく。ＰＷＭ（ＰｕｌｓｅＷｉｄｔｈ　Ｍｏｄｕｌａｔｉｏｎ）は、情報をパルス波形の幅に持たせた変調方式であり、ノイズに強いデジタル的な特性（電圧方向にＨｉｇｈレベルとＬｏｗレベルの２値の情報を有するという特性）と、連続情報を１パルスで表現することができるアナログ的な特性（時間方向に連続情報を有するという特性）の両者を併せ持つものである。
【００２８】
Ｍ１のゲート端子には、入力端子１０に入力された乗算値Ｂに相当するＶｗ８の電圧がかかる。また、Ｍ１のソース端子には、入力端子９よりＰＷＭ信号Ｖｉｎ７が入力される。なおＰＷＭ信号は、Ｌｏｗレベルを０Ｖ、Ｈｉｇｈレベルを電源電圧Ｖｄｄ（本実施形態では３．３Ｖ）と設定している。
【００２９】
ここで、ＰＷＭ信号がＨｉｇｈレベルの時、すなわちＭ１のソース端子にＶｄｄが加えられた時に、Ｍ１が飽和領域で動作するようにアナログ電圧Ｖｗ８を適切な電圧範囲に設定することにより、ＰＷＭ信号がＨｉｇｈレベルの間、Ｍ１を定電流源として動作させることができる。
【００３０】
またこの時、Ｍ１を流れる電流量は、ゲート−ソース間電圧、すなわち（Ｖｄｄ−Ｖｗ）で決定される。この時、ＰＷＭ信号Ｖｉｎ７のパルス幅は、被乗算値Ａに比例するように換算されている。またアナログ電圧Ｖｗ８は、（Ｖｄｄ−Ｖｗ）によって決定される電流量が乗算値Ｂに比例するように換算されている。
【００３１】
従ってＭ１は、ＰＷＭ信号がＨｉｇｈレベルの間だけ前記（Ｖｄｄ−Ｖｗ）により決定される電流を流すため、Ｍ１が流す電荷量は、Ａ×Ｂに比例したものとなる。
【００３２】
続いて図２を用いて、アナログ演算回路１による演算結果が、どのように部分和としてキャパシタに保持されるかについて説明する。図２において、前記のようにＭ１が流す電荷量は、バスによってアナログ演算回路１に接続されたキャパシタ２に蓄積される。
【００３３】
ここで、バスにはそれぞれ独立に演算を行う複数のアナログ演算回路１が接続されているため、それぞれのアナログ演算回路により並列に実行された演算結果、すなわち、上で説明した電荷量は、バスを通してキャパシタ２に蓄積され、加算される。
【００３４】
従って、一回の並列な演算処理が完了するごとにキャパシタ２に蓄積される総電荷量は、共通のバスでキャパシタ２に接続された複数のアナログ演算回路１の演算結果の総和値を示している。なお後述するように、この総和値は、最終的に算出しようとする累算値の部分和に相当している。
【００３５】
続いて、図１を用いて前記部分和から所望の累算値を算出する過程について説明していく。
【００３６】
本実施形態において、所望の累算値は以下の演算式（１）で表されるとする。
【００３７】
【数１】
2004110420.tif 000003
【００３８】
これに対して、最終的な累算値を求めるために、図２に示す４つのアナログ演算回路１がバスを介してキャパシタ２に接続した構成を用いる。なお、この際トータルの演算個数（本実施形態では１２）が、アナログ演算回路数（４個）の倍数となっていなくても、乗算値Ｂ＝０に相当するアナログ電圧Ｖｗ８を入力することで、演算個数を調整することができる。
【００３９】
ここでは、まず図２を用いて説明したように、４つのアナログ演算回路１によって、以下の演算式（２）で表される演算を並列に行い、演算結果を電荷量、または電圧値としてキャパシタ２に保持する。
【００４０】
【数２】
2004110420.tif 000004
【００４１】
ここでの演算結果は、所望の演算（演算式（１））に対する部分和とみなすことができる。
【００４２】
続いて、キャパシタ２に電荷量、または電圧値としてアナログ的に保持した演算結果をＡ／Ｄ変換回路３によってデジタル値に変換する。そしてさらに、デジタル加算回路４によって、前記デジタル値をデジタルメモリ５に保存されているデジタル値に加算し、その演算結果をデジタルメモリ５に保持する。
【００４３】
なお前記演算は、所望の演算（演算式（１））に対する一つ目の部分和の演算であるため、デジタルメモリ５に事前に保持された部分和は存在せず、全て０が保持されている。従って、ここでデジタルメモリ５に保持されたデジタル値は、演算式（２）の演算結果と等しい。
【００４４】
続いて、二つ目の部分和の演算を前記と同様にアナログ演算回路１によって行う。すなわち、図２を用いて説明したように、４つのアナログ演算回路１によって、以下の演算式（３）で表される演算を並列に行い、演算結果を電荷量、または電圧値としてキャパシタ２に保持する。
【００４５】
【数３】
2004110420.tif 000005
【００４６】
ここでの演算結果は、所望の演算（演算式（１））に対する部分和とみなすことができる。
【００４７】
続いて、キャパシタ２に電荷量、または電圧値としてアナログ的に保持した演算結果をＡ／Ｄ変換回路３によってデジタル値に変換する。
【００４８】
そしてさらに、デジタル加算回路４によって、前記デジタル値をデジタルメモリに保存されているデジタル値に加算し、その演算結果をデジタルメモリ５に保持する。
【００４９】
ここで、デジタルメモリ５に事前に保持されていたデジタル値は、演算式（２）の演算結果に相当するため、演算式（３）の演算結果を加算してデジタルメモリ５に保存した結果は、以下の演算式（４）で表される。
【００５０】
【数４】
2004110420.tif 000006
【００５１】
続いて、三つ目の部分和の演算を前記と同様にアナログ演算回路１によって行う。すなわち、図２を用いて説明したように、４つのアナログ演算回路１によって、以下の演算式（５）で表される演算を並列に行い、演算結果を電荷量、または電圧値としてキャパシタ２に保持する。
【００５２】
【数５】
2004110420.tif 000007
【００５３】
ここでの演算結果は、所望の演算（演算式（１））に対する部分和とみなすことができる。
【００５４】
続いて、キャパシタ２に電荷量、または電圧値としてアナログ的に保持した演算結果をＡ／Ｄ変換器３によってデジタル値に変換する。
【００５５】
そしてさらに、デジタル加算回路４によって、前記デジタル値をデジタルメモリ５に保存されているデジタル値に加算し、その演算結果をデジタルメモリ５に保持する。
【００５６】
ここで、デジタルメモリ５に事前に保持されていたデジタル値は、演算式（４）の演算結果に相当するため、演算式（５）の演算結果を加算してデジタルメモリに保存した結果は、以下の演算式（６）で表されるように、所望の累算値となる。
【００５７】
【数６】
2004110420.tif 000008
【００５８】
以上説明したように、複数の乗算をアナログ演算回路１によりアナログ的に行い、それぞれの結果をキャパシタ２でアナログ的に加算して所望の累算値に対する部分和を算出する。
【００５９】
さらに前記のように算出された部分和をＡ／Ｄ変換器３によりデジタルデータに変換した後、デジタル加算回路４により、デジタルメモリ５が保持する値にデジタル的に加算することにより所望の演算を実現する。
【００６０】
このように、超並列・分散型の情報処理モデルの実用化にあたり、積和演算や非線形変換等の演算をアナログ演算回路を用いて実現することで、デジタル演算回路を用いて実現した場合と比較して、素子数の大幅な削減（回路の専有面積の削減）を達成する一方、キャパシタに蓄積した電荷量（または電圧値）をデジタルデータに変換したうえで加算処理し、加算結果を随時デジタルメモリに保持することで、所望の累積値を得るような構成とした結果、キャパシタに蓄積した電荷が短時間で消失する問題を解決し、演算結果である累積値を長時間保持することが可能となった。
【００６１】
【第二の実施形態】
本発明の第二の実施形態におけるアナログ・デジタル混載演算回路２００の構成例を図４に示す。
【００６２】
図４から分かるように、本実施形態は、第一の実施形態で説明したアナログ・デジタル混載回路１００を複数配置して構成されていることが第一の実施形態と異なっている。
【００６３】
なお図４においては、それぞれのアナログ・デジタル混載演算回路中のデジタルメモリを共通の構造を有する１つのデジタルメモリとしてまとめて描写している。ここで、デジタルメモリの総ビット数は、同一である。
【００６４】
また図４では、第一の実施形態で説明したアナログ・デジタル混載演算回路４個を縦列配置しているが、アナログ・デジタル混載演算回路の個数は２個以上であればいくつ配置しても構わない。またその配置も、縦列配置以外の適当な配置構造で構わない。
【００６５】
このようにすることにより、第一の実施形態で説明した演算を並列に行うことが可能となり、複数の累算値を算出する場合に、前記演算をシリアルに繰り返すよりも演算時間の削減が可能となる。
【００６６】
すなわち、図４に示す４個のアナログ・デジタル混載演算回路は、それぞれが第一の実施形態で説明した演算を行い、最終的な累算値をデジタルメモリに保存する。
【００６７】
例えば、第一の実施形態で４種類の累算値の算出を行う場合には、第一の実施形態で説明した演算を４回行う必要があるが（さらにこの場合、一回の演算が完了するごとに、累積値をデジタルメモリから読み出す機構が必要となるが）、本実施形態のようにアナログ・デジタル混載演算回路を構成した場合、４種類の累積値を４個のアナログ・デジタル混載演算回路による１回の並列演算で算出することが可能となる。つまり、上記第一の実施形態と同様の効果を奏しつつ、第一の実施形態にかかる演算回路よりも、高速処理が可能となる。
【００６８】
【第三の実施形態】
本発明の第三の実施形態にかかるアナログ・デジタル混載演算回路の構成例３００を図５に示す。
【００６９】
本実施形態は、第一および第二の実施形態で説明したアナログ・デジタル混載回路において、デジタル加算回路をデジタル加減算回路１１で置き換え、さらにアナログ演算回路１において、正負の符号を有する乗算値Ｂに対して、それぞれの符号ごとに別個に乗算を行い、また乗算値Ｂの符号を表す符合ビット１２をデジタル加減算回路１１に入力し、また負の乗算値Ｂに対する演算結果の部分和は、デジタルメモリに保存されたデジタルデータとの演算において、前記デジタル加減算回路によって、デジタルメモリのデジタルデータから減算を行うことが第一および第二の実施形態と異なっている。
【００７０】
すなわち本実施形態におけるアナログ演算回路１における乗算は、乗算値Ｂの正負の符号に関して、正の符号の乗算と、負の符号の乗算をそれぞれ別個に行う。
【００７１】
以下で、前記の演算手順について詳しく説明する。以下の演算式（７）で表される演算を図５のアナログ・デジタル混載回路３００で行う場合、４つのアナログ演算回路１では、演算式（８）（９）（１０）（１１）で表されるように、乗算値Ｂの符号に関して正負別々の演算を行う。
【００７２】
【数７】
2004110420.tif 000009
【００７３】
なおこの際、第一の実施形態と同様に、トータルの演算個数（前記ケースでは１６）が、アナログ演算回路数（４個）の倍数となっていなくても、乗算値Ｂ＝０に相当するアナログ電圧Ｖｗ８を入力することで、演算個数を調整することができる。
【００７４】
続いて、第一、第二の実施形態と同様に演算式（８）〜（１１）で表される部分和をアナログ演算回路１によって算出する。なおこの際には、それぞれの部分和は、乗算値Ｂの正負の符号を考慮しない絶対値として算出される。
【００７５】
次に、算出された演算式（８）〜（１１）で表される部分和をＡ／Ｄ変換器３によりデジタルデータに変換し、変換されたデジタルデータは、デジタル加減算回路１１に入力される。またこの際、乗算値Ｂの符号を表す符合ビット１２もデジタル加減算回路１１に入力される。
【００７６】
続いて、デジタル加減算回路１１では、入力された部分和のデジタルデータの符号ビットが１（乗算値Ｂが正）の時には、第一および第二の実施形態の場合と同様に、デジタルメモリに保持されたデジタルデータに対して、入力された部分和のデジタルデータを加算する。
【００７７】
一方、入力された部分和のデジタルデータの符号ビットが０（乗算値Ｂが負）の時には、デジタルメモリに保持されたデジタルデータから、入力された部分和のデジタルデータを減算する。
【００７８】
以上の様に、乗算値Ｂの正負の符号に対応して、それぞれ別個にアナログ演算回路１によって部分和を算出し、さらに正負の符号に対応して、デジタルメモリ５に保持されているデジタルデータとの加減算を行うことにより、以下の演算式（１２）で示される通り、正負別々のキャパシタを用意することなく、正負の符号を含む乗算結果の累算値を算出することが可能となる。
【００７９】
【数８】
2004110420.tif 000010
【００８０】
またさらに上記演算において、以下の演算式（１３）で示されるように、乗算値Ｂの正負の符号に対応する演算処理工程を正負交互に行う場合、正負の部分和が互いに相殺し合う為、デジタルメモリ５における線形加算精度の範囲（累算値のレンジ）が狭まり、デジタルメモリ５のビット長を少なくすることが可能となる。
【００８１】
【数９】
2004110420.tif 000011
【００８２】
例えば、（８）（９）（１０）（１１）の演算式で表される部分和がそれぞれ順に、（８５、５３、６０、７１）である場合に、同一の符号を連続して加減算したとすると、演算の途中経過でデジタルメモリ５に保存される値は、次の（１４）（１５）（１６）（１７）の式で表される。
【００８３】
【数１０】
2004110420.tif 000012
【００８４】
従って、この場合の部分和を加減算していく途中経過での最大値は、１３８となるため、デジタルメモリ５のビット長は、８ビット必要となる。
【００８５】
これに対して、正負の符号に対応する演算を正負交互に行う場合に、演算の途中経過でデジタルメモリ５に保存される値は、次の（１８）（１９）（２０）（２１）の式で表される。
【００８６】
【数１１】
2004110420.tif 000013
【００８７】
従って、この場合の部分和を加減算していく途中経過での最大値は、８５となるため、デジタルメモリ５のビット長は、７ビットとなり、前記例よりも少ないビット長で済むことが分かる。
【００８８】
【第四の実施形態】
本発明の第四の実施形態におけるニューラルネットワーク回路の構成例４００を図６に示す。図６に示すように、本実施形態におけるニューラルネットワーク回路４００は、第一、第二、および第三の実施形態で説明したアナログ・デジタル混載演算回路と、デジタル−ＰＷＭ変換回路１３を含むことを特徴としている。
【００８９】
ただし、本実施形態で説明するアナログ・デジタル混載演算回路におけるアナログ演算回路は、第一、第二および第三の実施形態とは異なり、後述するように重み付け演算と非線形変換を同時に演算可能なアナログ演算回路１４を用いている。
【００９０】
また、本実施形態で実現するニューラルネットワークモデルの構成図５００を図７に示し、各ニューロンの特性を図８に示す。
【００９１】
以下では、まず図７と図８を用いて本実施形態におけるニューラルネットワークのモデルについて説明した後、図６を用いて本実施形態におけるニューラルネットワーク回路４００について説明する。
【００９２】
図７に示すように、本実施形態におけるニューラルネットワークは、複数のニューロン１５が階層構造を成し、かつ異なる階層間のニューロン１５が互いにシナプス１６を介して結合している。
【００９３】
なお、ニューラルネットワークの構成には、本実施形態の他にニューロンがアレイ状に配置されたものなどがあり、またニューロン間の結合にも、２つのニューロン間で相互に結合を有するものなどがある。
【００９４】
本発明におけるニューラルネットワークは、その構成や結合手法によって限定されるものではなく、本実施形態で示す階層構造以外の構造および結合手法を有するものであっても構わない。
【００９５】
続いて、各ニューロン１５における演算処理を図８を用いて説明する。各ニューロン１５は、前段に接続する複数のニューロン１５の出力値をシナプス荷重で重み付けした後、入力として受け取る。ニューロン内部では、入力された値の総和値を算出し、これに所定の変換を施して出力値とする。ここで各ニューロンにおける演算処理は、次式（２２）で表される。
【００９６】
【数１２】
2004110420.tif 000014
【００９７】
なお変換関数としては、様々なモデルが提案されているが、本実施形態では、次式（２３）で表される一般的なシグモイド関数を適用している。シグモイド関数の特性を図８にグラフで示す。
【００９８】
【数１３】
2004110420.tif 000015
【００９９】
なお、本発明におけるニューラルネットワークは、ニューロンにおける変換手法によって限定されるものではなく、本実施形態で示すシグモイド関数以外の変換関数を適用したものであっても構わない。
【０１００】
続いて、図６を用いて本実施形態におけるニューラルネットワーク回路を説明する。図６を見ると分かるように、本実施形態におけるニューラルネットワーク回路は、第二および第三の実施形態で説明したアナログ・デジタル混載演算回路を階層的に構成したものを含んでいる。
【０１０１】
ただし、本実施形態で説明するアナログ・デジタル混載演算回路におけるアナログ演算回路１４は、第二および第三の実施形態とは異なり、重み付け演算と非線形変換を同時に演算可能なアナログ演算回路を用いている。
【０１０２】
ここで、重み付け演算と非線形変換を同時に演算可能なアナログ演算回路１４は、図７に示したニューロンモデルにおける、非線形変換を施された前段ニューロンの出力値とシナプス荷重による重み付け演算を実現している。
【０１０３】
なお、重み付け演算と非線形変換を同時に演算可能なアナログ演算回路１４の動作メカニズムに関しては、本発明の主眼とは異なるので説明を省略する（詳細については、本出願人が本願と同時に出願する整理番号４７４６００２の出願を参照されたい。）。
【０１０４】
またさらに、本実施形態で説明するアナログ・デジタル混載演算回路では、階層的な演算処理を行うために、ある階層のアナログ・デジタル混載演算回路により算出された演算結果を次の階層のアナログ・デジタル混載演算回路の入力としている。
【０１０５】
この際には、デジタル−ＰＷＭ変換回路１３により、デジタルメモリに保持された演算結果をＰＷＭ信号として読み出している。ここでデジタル−ＰＷＭ変換回路１３は、デジタルメモリに保持された離散値をカウンタでカウントし、カウントに要する時間と等しい時間幅を有するＰＷＭ信号を生成する機能を有する。
【０１０６】
本実施形態においては、前記機能を有するデジタル−ＰＷＭ変換回路１３を論理合成により設計したが、デジタルデータを読み出してＰＷＭ信号を生成する機能を有する回路であれば、他のものでも構わない。またデジタル−ＰＷＭ変換回路は、本発明において主眼とするところではないため、詳しい説明は省略する。
【０１０７】
本実施形態のアナログ・デジタル混載演算回路における演算処理過程は、前記アナログ演算回路１４による演算工程と、前記のデジタル−ＰＷＭ変換回路１３による演算結果の読み出し以外は、第二および第三の実施形態と全く同様である。
【０１０８】
なお、本実施形態のアナログ・デジタル混載演算回路の演算処理過程において、キャパシタに保持される部分和は、各ニューロンにおける、前段ニューロンとの結合の一部に関する入力値の総和値を実現しており、また最終的にデジタルメモリに保持される累算値が、各ニューロンにおける、結合する前段ニューロン全ての入力値の累算値を実現している。なお、図８に示す非線形変換は、前述したようにアナログ演算回路１４において実現されている。
【０１０９】
以上の様にデジタルメモリに保持された、各ニューロンにおける累算値をデジタル−ＰＷＭ変換回路によってアナログ値として読み出し、次の階層のニューロンに対する出力とすることで、図７に示したニューラルネットワークのモデルを実現することができる。
【０１１０】
【第五の実施形態】
本発明の第五の実施形態における画像信号処理回路の構成例を図９に示す。図９に示すように、本実施形態における画像信号処理回路は、第四の実施形態で説明したニューラルネットワーク回路を含むことを特徴としている。なお図９では、第四の実施形態で説明した階層構造の初段のみを示しており、それ以降の階層の記述を省略している。
【０１１１】
また、ニューラルネットワーク回路中のアナログ・デジタル混載演算回路数が、第四の実施形態で説明した図６のニューラルネットワーク回路とは異なっているが、それぞれのアナログ・デジタル混載演算回路における演算動作自体は、第四の実施形態と同様である。
【０１１２】
ここで、ニューラルネットワーク回路中のアナログ演算回路に対して、ＰＷＭ信号として入力される信号は、二次元信号である画像信号である。すなわち、本実施形態における画像信号処理回路は、入力された画像信号に対して、ニューラルネットワーク回路により所定の演算を行うことにより、所望の画像処理（例えばパターン検出およびパターン認識）を行うことを目的とするものである。
【０１１３】
なお、実際に実現される画像処理の内容は、ニューラルネットワーク回路の回路パラメータ等を適当に調整することで、所望の処理内容（例えばパターン検出およびパターン認識）が実現されるよう設定することが可能であるが、その詳しい調整方法は、本発明の主眼とするところではないので、説明を省略する。
【０１１４】
ここで本実施形態においては、前記画像信号は、撮像素子（例えばＣＣＤまたはＣＭＯＳイメージセンサなど）から出力される、各画素に対応する信号強度をパルスの時間幅に変換したＰＷＭ信号として入力している。
【０１１５】
なお、撮像素子からの出力信号をＰＷＭ信号に変換する際には、図９に示すように、コンパレータ１７に入力したランプ電圧波形と、撮像素子から読み出された電圧値とをコンパレータ１７により比較し、ランプ電圧波形のスタート時にＨｉｇｈレベルに立ち上がった出力が、ランプ電圧値とキャパシタの電圧値が等しくなった時点でＬｏｗレベルに立ち下がることでＰＷＭ信号に変換される。
【０１１６】
なお、ＰＷＭ信号の生成過程に関しては、本発明の主眼とするところではないため、これ以上の詳しい説明は省略する。
【０１１７】
また本実施形態においては、撮像素子として、ＣＣＤまたはＣＭＯＳイメージセンサを想定しているが、画像を二次元信号として取り込むものであれば、その他の撮像素子を用いても問題は無い。
【０１１８】
続いて、ニューラルネットワーク回路に対する画像信号の入力方法について説明する。
【０１１９】
ニューラルネットワーク回路においては、第四の実施形態で説明したように、各アナログ・デジタル混載演算回路ａ、ｂにおいて、所定の複数の入力信号に対して非線形変換と重み付け演算を行い、その累算値を算出して対応するニューロンの内部状態値とする。
【０１２０】
この時、本実施形態における画像処理回路では、一点鎖線で囲んだ各アナログ・デジタル混載演算回路ａ、ｂが処理対象とする複数の入力信号は、二次元的にアレイされた撮像素子１８の一部の領域に対応させている。
【０１２１】
すなわち、図９に示すように、各アナログ・デジタル混載演算回路ａ、ｂにおいて、非線形変換と重み付け演算を行い、さらにその累算値を算出する対象となる画像信号を出力する領域は、破線で囲まれた領域Ａ、Ｂで示される。ここで、撮像素子からの画像信号出力は、１列ごとに出力される。
【０１２２】
それに対して、ニューラルネットワーク回路におけるアナログ演算回路による演算は、第一、第二、第三および第四の実施形態で説明したように、前記１列分の画像信号出力に対する演算を並列に行うことが可能である。
【０１２３】
従って、前記の撮像素子からの１列分の出力信号に対する、ニューラルネットワーク回路による演算結果は、第一、第二、第三および第四の実施形態で説明したように、各ニューロンの内部状態値に対する部分和に相当する。
【０１２４】
そして、前記の演算処理を領域Ａ、Ｂの列数回（本実施形態では４回）繰り返すことにより、最終的に各ニューロンの内部状態値に相当する累算値を算出することができる。
【０１２５】
以上説明したように、ニューラルネットワーク回路による演算処理を演算対象領域の列数回だけ繰り返すことにより、所望の演算処理（例えばパターン検出およびパターン認識など）を達成することができる。
【０１２６】
また、上記説明では、撮像素子からの画像信号出力が１列ごとに行われるとしたが、撮像素子からの信号出力が１行ごとに行われる場合も、ニューラルネットワーク回路における演算を出力信号１行ごとに並列に行うことで、上記説明と同様な処理を行うことが可能である。
【０１２７】
以上説明したように、１列毎または１行毎に出力される画像信号に対して、本実施形態におけるニューラルネットワーク回路による演算を適用し、ニューロンの内部状態値を１列毎または１行毎に部分和として演算していき、そしてその部分和の累算値として最終的な内部状態値を算出することで、所望の演算処理を実現することが可能となる。
【０１２８】
【発明の効果】
以上説明したように本発明によれば、多数項の累算演算を行う際に、回路の占有面積の増大を招くことなく、かつ演算結果の保持精度が短時間で低下することの無い演算回路を得ることができる。
【図面の簡単な説明】
【図１】本発明の第一の実施形態にかかるアナログ・デジタル混載演算回路の全体構成を示す図である。
【図２】本発明の第一の実施形態にかかるアナログ・デジタル混載演算回路を構成するアナログ演算回路とキャパシタとを示す図である。
【図３】本発明の第一の実施形態にかかるアナログ・デジタル混載演算回路を構成するアナログ演算回路を示す図である。
【図４】本発明の第二の実施形態にかかるアナログ・デジタル混載演算回路の全体構成を示す図である。
【図５】本発明の第三の実施形態にかかるアナログ・デジタル混載演算回路の全体構成を示す図である。
【図６】ニューラルネットワーク回路の構成を示す図である。
【図７】ニューラルネットワークモデルの構成を示す図である。
【図８】ニューロンの特性を示す図である。
【図９】ニューラルネットワーク回路を備える画像信号処理回路の構成を示す図である。
【符号の説明】
１　　　アナログ演算回路
２　　　キャパシタ
３　　　Ａ／Ｄ変換回路
４　　　デジタル加算回路
５　　　デジタルメモリ
７　　　ＰＷＭ信号Ｖｉｎ
８　　　アナログ電圧Ｖｗ
９　　　入力端子
１０　　入力端子
１１　　デジタル加減算回路
１２　　符号ビット
１３　　デジタル−ＰＷＭ変換回路
１４　　アナログ演算回路
１５　　ニューロン
１６　　シナプス
Ｍ１　　　ＰＭＯＳトランジスタ
１００　アナログ・デジタル混載演算回路
２００　アナログ・デジタル混載演算回路
３００　アナログ・デジタル混載演算回路
４００　ニューラルネットワーク回路
５００　ニューラルネットワークモデル
【図１】
2004110420.tif 000016
【図２】
2004110420.tif 000017
【図３】
2004110420.tif 000018
【図４】
2004110420.tif 000019
【図５】
2004110420.tif 000020
【図６】
2004110420.tif 000021
【図７】
2004110420.tif 000022
【図８】
2004110420.tif 000023
【図９】
2004110420.tif 000024