(57)【特許請求の範囲】
【請求項１】
電圧値で表された被演算値の乗算と累算を含む積和演算処理を実行する複数の積和演算手段と、
それぞれ所定の電圧値を設定する複数の電圧設定手段と、
前記複数の積和演算手段に電圧値の組み合わせを切り替え入力する複数の入力手段と、
前記複数の電圧設定手段が設定する電圧値を、前記複数の入力手段に入力するための配線の接続を切り替える複数のスイッチ手段と、
被演算値の値を降順または昇順にソートするソーティング手段と、
前記積和演算手段による演算結果をディジタル出力する出力手段と、
を有する演算装置。
【請求項２】
前記ソーティング手段は、前記被演算値を保持する保持手段と、当該被演算値の降順または昇順に当該被演算値が保持されたアドレスを出力するアドレス出力手段と、当該アドレスをデコードして前記複数のスイッチ手段に入力するデコード手段とを有することを特徴とする請求項１に記載の演算装置。
【請求項３】
前記ソーティング手段は、連想メモリを有することを特徴とする請求項１または２に記載の演算装置。
【請求項４】
前記複数の電圧設定手段の一部は、時間的に変化する電圧値を設定することを特徴とする請求項１乃至３に記載の演算装置。
【請求項５】
前記複数の電圧設定手段の一部は、積和演算処理における被演算値を重み付けする機能を有することを特徴とする請求項１乃至４に記載の演算装置。
【請求項６】
前記複数の積和演算手段は、アレイ状に配列されることを特徴とする請求項１乃至５に記載の演算装置。
【請求項７】
前記積和演算手段は、アナログ乗算器とキャパシタとを有することを特徴とする請求項１乃至６に記載の演算装置。
【請求項８】
前記アナログ乗算器は、差動乗算器であることを特徴とする請求項７に記載の演算装置。
【請求項９】
前記出力手段は、Ａ／Ｄ変換回路を有することを特徴とする請求項１乃至８に記載の演算装置。
【請求項１０】
前記出力回路は、コンパレータとパルス幅／デジタル変換回路を有することを特徴とする請求項１乃至８に記載の演算装置。
【請求項１１】
前記電圧設定手段は、電流源とキャパシタとを有することを特徴とする請求項１乃至１０に記載の演算装置。
【請求項１２】
更に、被演算値のデータを保持するメモリ回路を有することを特徴とする請求項１乃至１１に記載の演算装置。
【請求項１３】
更に、パルス幅／デジタル変換回路を有することを特徴とする、請求項１乃至１２に記載の演算装置。
【請求項１４】
更に、デジタル／パルス幅変調回路を有することを特徴とする、請求項１乃至１３に記載の演算装置。
【請求項１５】
更に、前記出力手段から出力されたデジタルデータに対して所定の変換処理を実行するルックアップテーブルを有することを特徴とする、請求項１乃至１４に記載の演算装置。
【請求項１６】
積和演算処理における被演算値の一方または両方が２次元状もしくはアレイ状に分布する値であることを特徴とする請求項１乃至１５に記載の演算装置。
【請求項１７】
前記被演算値の一方または両方を基底ベクトルに分解して積和演算処理を行なう事を特徴とする請求項１６に記載の演算装置。
【請求項１８】
前記複数の積和演算手段は、アレイ状に配列された積和回路アレイを有し、前記基底ベクトルに分解した被演算値、及び前記基底ベクトルに分解してさらに重み付けした被演算値を、当該積和回路アレイの行および列ごとに配置した信号線を通じて、行方向ごとおよび列方向ごとに共通の信号として入力することを特徴とする請求項１７に記載の演算装置。
【請求項１９】
複数の層がシナプスにより階層接続された構成を有し、各層が外部または前層からの入力信号とシナプス荷重値の乗算と累算を含む積和演算処理を行ない非線形変換または線形変換して出力するニューロンを含むニューラル・ネットワークの演算処理を実行することを特徴とする、請求項１乃至１８に記載の演算装置。
【請求項２０】
前記シナプス荷重値を、基底ベクトルに分解する被演算値とすることを特徴とする請求項１９に記載の演算装置。
【請求項２１】
被演算値の一部が画像信号であることを特徴とする請求項１乃至２０に記載の演算装置。
【請求項２２】
前記画像信号を出力する撮像素子アレイを有することを特徴とする請求項２１に記載の演算装置。
【請求項２３】
前記複数の積和演算手段が、前記画像信号に対して所定の画像処理を行なうことを特徴とする請求項２１または２２に記載の演算装置。
【請求項２４】
前記複数の積和演算手段において、所定値以上の値を有する被演算値のみを対象として演算を実行することを特徴とする請求項１乃至２３に記載の演算装置。
【請求項２５】
前記複数の積和演算手段において、被演算値の値の降順で所定の割合に含まれる被演算値のみを対象として演算を実行することを特徴とする請求項１乃至２３に記載の演算装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、積和演算処理を実行する演算装置に関する。
【背景技術】
【０００２】
現在、コンピュータは大きな進展を見せ、世の中の様々な場面で使用されている。しかしながら、いわゆるノイマン型と呼ばれるコンピュータは、その処理方式自体の特性により、ヒトが容易に行うことができる処理（リアルタイムでのヒトの顔の認識等）を非常に不得意としている。
【０００３】
これに対して、脳の情報処理様式を真似た演算処理モデルである、ニューラルネットワークの研究が行われている。
【０００４】
ニューラルネットワークを構成するニューロンのモデルとしては、次のものが一般的である。まず、ニューロンに相当するユニットに対して、他の複数のユニット（ニューロン）の出力値をシナプス荷重値で重み付けした乗算値が入力され、その入力値の総和値をさらに非線形変換した値を出力値とする。
【０００５】
すなわち、一般的なニューラルネットワークにおいては、各ユニット、及びユニット間における積和演算と非線形変換により、所望の処理が実現される。
【０００６】
このニューロンモデルを用いたニューラルネットワークアーキテクチャとしては、これまでに、積和演算を実行するユニットを相互に結合した連想記憶ネットワークが提案されている。同じく積和演算を実行するユニットを階層的に結合したパターン認識モデル等が提案されている。
【０００７】
ここでニューラルネットワークの実用化を狙い、集積回路化を図る際には、前記の積和演算をより効率的に実行することが必要となり、特に演算の実行速度の面でその必要性が顕著となる。
【０００８】
そこで、以下に示すように、積和演算を実行するニューロンモデル、ニューラルネットワークアーキテクチャ、及び積和演算処理回路に関する発明が、各種提案されている。
【０００９】
その１つとして、２次元データを用いた演算処理を高い並列度で高速に行なう事ができるＬＳＩを構成する方法が提案されている（例えば特許文献１参照）。
【００１０】
また、積和演算を行う階層的なニューロコンピュータを構成する方法が提案されている（例えば特許文献２参照）。
【特許文献１】特開平７−２８２２３７号公報
【特許文献２】特開平５−２１０６５１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１の方法においては、演算回路が１列に配置されるため演算回路のレイアウトが制限され、演算の並列性に限界があった。
【００１２】
また特許文献２の方法においては、積和演算回路において全ての被演算値に関する演算が実行され、かつ積和演算回路に入力される被演算値の入力の順番が任意であることから、さらなる演算速度の向上が困難であった。
【００１３】
そこで、本発明は、アレイ状に配置された積和回路を用いて、アレイ状に分布する被演算値の積和演算を並列に実行することを目的とするものである。
【００１４】
また、積和演算を被演算値の値の降順もしくは昇順に実行することを可能とする。更に所定の値以上の被演算値のみ演算を実行する、あるいは被演算値の値の降順もしくは昇順で所定の割合の値についてのみ演算を実行することで、演算速度を向上することを目的とするものである。
【課題を解決するための手段】
【００１５】
上記課題を解決するために、本発明によれば、演算装置に、電圧値で表された被演算値の乗算と累算を含む積和演算処理を実行する複数の積和演算手段と、それぞれ所定の電圧値を設定する複数の電圧設定手段と、前記複数の積和演算手段に電圧値の組み合わせを切り替え入力する複数の入力手段と、前記複数の電圧設定手段が設定する電圧値を、前記複数の入力手段に入力するための配線の接続を切り替える複数のスイッチ手段と、被演算値の値を降順または昇順にソートするソーティング手段と、前記積和演算手段による演算結果をディジタル出力する出力手段とを備える。
【発明の効果】
【００１６】
本発明によれば、積和演算を被演算値の値の降順もしくは昇順に実行することを可能となる。これにより、被演算値の変動を少なくすることができる。また、アレイ状に配置された積和回路を用いてアレイ状に分布する被演算値の積和演算を並列に実行することが可能となる。更に所定の値以上の被演算値のみ演算を実行する、あるいは被演算値の値の降順もしくは昇順で所定の割合の値についてのみ演算を実行することで、演算速度を向上することができる。
【発明を実施するための最良の形態】
【００１７】
以下、添付図面を参照しながら、本発明の実施形態を説明する。
【００１８】
（第１の実施形態）
図１は、本実施形態における演算回路の構成を示す図である。
【００１９】
図１において、積和回路アレイ１は、乗算と累算を実行する積和回路をアレイ状（本実施形態では１０×１０）に配列したものである。荷重電圧設定回路ブロック２は、所定の電圧値を設定する複数（本実施形態では３個）の荷重電圧設定回路から構成される。ステップ電圧設定回路ブロック３は、時間的に変化する電圧値を設定する複数（本実施形態では３個）のステップ電圧設定回路から構成される。スイッチ回路ブロック４は、前記所定の積和回路に入力する配線の接続を切り替える複数（本実施形態では２８個）のスイッチ回路から構成される。入力回路ブロック５は、積和回路に入力するアナログ電圧値の組み合わせを切り替える複数（本実施形態では１０個）の入力回路から構成される。出力回路ブロック６は、積和回路に保持された演算結果を読み出す複数（本実施形態では１０個）の出力回路から構成される。ソーティング回路７は、出力回路ブロック６から出力される演算結果の値を大きいもの順にソートする。デコーダ８は、ソーティング回路７から出力されるアドレスをデコードするものであり、本実施形態では２個設けられている。
【００２０】
なお図１においては、配線、入力線及び出力線は、主要なもののみを記載している。詳細な配線、入力線及び出力線は、各回路ごとの図中に記載している。
【００２１】
次に図２は、連想メモリで構成したソーティング回路７を示す。図３は、デコーダ８を示す。図４は、主に電流源とキャパシタで構成した前記ステップ電圧設定回路９を示す。図５は、主に電流源とキャパシタで構成した前記荷重電圧設定回路１０を示す。
【００２２】
また図６は、主に論理回路で構成したスイッチ回路１１を示す。図７は、主に論理回路で構成した入力回路１２を示す。図８は、アナログ乗算器とキャパシタで構成した前記積和回路１３を示す。図９は、Ａ／Ｄ変換回路で構成した出力回路１４を示す。図１０は、荷重電圧設定回路１０と、スイッチ回路１１と、デコーダ８との詳細な配線構造の一部を示す。
【００２３】
更に図１１は、ステップ電圧設定回路９と、スイッチ回路１１と、デコーダ８との詳細な配線構造の一部を示す。図１２は、積和回路１３と、出力回路１４と、ソーティング回路７との詳細な配線構造の一部を示す。図１３は、本実施形態における演算回路１００において、積和演算を実行する積和回路領域の選択方法について示す。
【００２４】
以上示した図を用いて、本実施形態における積和演算方法による演算処理工程に関して、演算回路全体としてどのように演算を行なうかについてを最初に説明し、続いて各個別回路の動作について説明を行なう。
【００２５】
なお、以降の実施形態において電源電圧は３．３Ｖと仮定する。
【００２６】
また、本明細書で使用する信号の定義を以下の通りとする。
【００２７】
・デジタル信号：Ｈｉｇｈ及びＬｏｗの２種類の電圧値で情報を表現する信号
・アナログ信号：電圧値で情報を表現する信号
・パルス幅変調信号：パルスの時間幅で情報を表現する信号
まず、演算回路全体としてどのように処理を行なうかについて図１、図８及び図１３を用いて説明を行なう。
【００２８】
図１及び図１３において、積和回路アレイ１は図８に示す積和回路１３を１０×１０のアレイ状に配列したものである。
【００２９】
ここで各積和回路は、入力された信号を元にして以下の式で表される演算を実行するものである。
【００３０】
【数１】
0004579798.tif 000002
【００３１】
ここで、ｕＭＮは積和回路アレイで算出される演算結果を表し、添え字ＭＮは積和回路のアレイ内での位置を示している（本実施形態の場合１から１０の値をとる）。また、ｗｘｍは後述する荷重電圧設定回路から入力される被演算値を表し、添え字ｍは最大で荷重電圧設定回路の個数に一致した値をとるため、本実施形態の場合１から３までの値をとる。また、（ｏｊ・ｗｙｎ）は後述するステップ電圧設定回路から入力される被演算値を示し、ｏｊとｗｙｎの積で表される。ここでｏｊの添え字ｊは、ソーティング回路から出力される順番を示しており、本実施形態の場合１〜１００までの値をとる。また添え字ｍは最大でステップ電圧設定回路の個数に一致した値をとるため、本実施形態の場合１から３までの値をとる。
【００３２】
続いて荷重電圧設定回路ブロック２は、荷重電圧設定回路１０が３個並んだものである。またステップ電圧設定回路ブロック３は、ステップ電圧設定回路９が３個並んだものである。またスイッチ回路ブロック４は、スイッチ回路１１が図１の様に配列されたものである。また入力回路ブロック５は、入力回路１２が１０個並んだものである。また出力回路ブロック６は、出力回路１４が１０個並んだものである。
【００３３】
まず、荷重電圧設定回路ブロック２に対して、被演算値ｗｘｍの値に対応するパルス幅を有するパルス幅変調信号をそれぞれの荷重電圧設定回路１０ごとに入力する。荷重電圧設定回路１０においては、後述する様に被演算値ｗｘｍに相当する電圧値が設定される。
【００３４】
また、ステップ電圧設定回路ブロック３に対して、被演算値ｗｙｎの値に対応するパルス幅を有するパルス幅変調信号をそれぞれのステップ電圧設定回路９ごとに入力する。ステップ電圧設定回路９においては、後述する様に被演算値ｗｙｎに相当する電圧値がキャパシタ１７に設定される。さらに前記キャパシタ１７に設定された電圧値と、ソーティング回路７における検索値に対応して入力される制御パルスによってキャパシタ２０に（被演算値ｏｊ）×（被演算値ｗｙｎ）の演算結果（ｏｊ・ｗｙｎ）に相当する電圧値が設定される。
【００３５】
続いて、ソーティング回路７に対し、所定の値を検索値として入力する。ソーティング回路７は、保持されたデータの中で検索値に一致するデータを保持するメモリセルのＸ方向・Ｙ方向のそれぞれ４ビットのアドレス信号を出力し、各アドレス信号は対応するデコーダ８にそれぞれ入力される。デコーダ８は４ビットのアドレス信号をデコードし、１０本の出力線のうちデコードした値に対応する１本の出力線をＨｉｇｈにする。
【００３６】
デコーダ８の出力線は、荷重電圧設定回路１０に繋がるスイッチ回路ブロック４、及びステップ電圧設定回路９に繋がるスイッチ回路ブロック４のアドレス信号線に接続している。スイッチ回路１１の説明で後述する様に、Ｈｉｇｈになった前記アドレス信号線に接続するスイッチ回路１１は、荷重電圧設定回路１０及びステップ電圧設定回路９から入力されるアナログ電圧と、積和回路１３における演算を制御する制御信号と、被演算値ｗｘｍ及び被演算値（ｏｊ・ｗｙｎ）の正負符号に相当する符号信号を入力回路１２に繋がる信号線に出力する。
【００３７】
なお、前記アドレス信号線は、スイッチ回路ブロック４に対して、図１に示すように斜めに配線されており、アドレスに対応する積和回路アレイ１の適切な行・列に信号を入力することが可能となる。
【００３８】
入力回路１２は、スイッチ回路１１から入力された符号信号に応じて、同じくスイッチ回路１１から入力されたアナログ電圧と基準電圧の差動電圧ペアを積和回路アレイ１が接続する信号線に出力する。
【００３９】
積和回路アレイ１においては、図１に示したようにそれぞれ左側・下側に位置した入力回路ブロック５から行毎・列毎それぞれに以下の３種類の信号が入力される。
【００４０】
行方向：Ｍ＿ＳＴＯＰ＿Ｙ，  Ｗ＿Ｐ，  Ｗ＿Ｎ
列方向：Ｍ＿ＳＴＯＰ＿Ｘ，  Ｒ＿Ｐ，  Ｒ＿Ｎ
なお図１においては、３種類の信号線を記載してあるが、紙面の都合上から各信号線の区別は記載していない。詳細は、個別回路の説明で述べる。
【００４１】
これらの、積和回路アレイ１に対して行方向・列方向に入力される信号は、図２３に示すように、それぞれ３種類の信号が積和回路アレイ１の一行ごとまたは一列ごとの積和回路に対して、積和回路アレイ１を行方向または縦方向に貫く信号線を通じて共通の信号として入力される。すなわち、行方向に隣接する積和回路には共通の信号（Ｍ＿ＳＴＯＰ＿Ｙ、Ｗ＿Ｐ、Ｗ＿Ｎ）が入力され、列方向に隣接する積和回路には共通の信号（Ｍ＿ＳＴＯＰ＿Ｘ、Ｒ＿Ｐ、Ｒ＿Ｎ）が入力される。
【００４２】
積和回路１３は、後述するように、入力された差動電圧ペアに対して乗算を実行し、キャパシタ４７によって乗算結果を累算する。
【００４３】
ここで図１３に示すように、積和回路アレイ１において積和演算が実行される積和回路１３は、入力信号Ｍ＿ＳＴＯＰ＿ＸとＭ＿ＳＴＯＰ＿Ｙの両方がＨｉｇｈになるものに限られる（図中、点線で囲まれた３×３の積和回路）。
【００４４】
すなわちこれは、外部から入力するＭ＿ＳＴＯＰ信号と、ソーティング回路７からのアドレス信号によって、積和回路アレイ１において積和演算を実行する積和回路１３の領域が制御されることを意味する。
【００４５】
なお、Ｍ＿ＳＴＯＰ＿Ｙ及びＭ＿ＳＴＯＰ＿Ｘ信号は荷重電圧設定回路及びステップ電圧設定回路から直接積和回路アレイに入力されるのではなく、個別回路の説明で述べるように、実際にはスイッチ回路・入力回路において所定のロジック演算を施された後に積和回路アレイに入力されるのであるが、図１３においてはそれらの演算処理を省略して積和回路の演算領域の制御方法を模式的に示している。
【００４６】
以上の演算フローを繰り返して、所望の積和演算を実行する。
【００４７】
累算結果を出力回路１４によって読み出す際には、出力回路１４に対して積和回路アレイ１の列ごとに電圧出力信号ＣＡＰ＿ＯＵＴ＿ＳＷを入力して結果を読み出す。読み出された演算結果は、積和回路アレイ１の配列と対応して、ソーティング回路７の配列に入力される。この時、積和回路アレイ１の配列とソーティング回路７の配列は１対１に対応させる。
【００４８】
積和回路アレイ１の演算結果を出力回路１４によって全て読み出し、ソーティング回路７に保持した後、以上説明した演算処理を繰り返すことも可能である。
【００４９】
続いて、各個別回路の動作について説明を行なう。
【００５０】
まず図２に示すように、ソーティング回路７は、積和回路アレイ１と同様に、アレイ状に配列された連想メモリ１５によって構成される。
【００５１】
本実施形態においては、アレイ配列を１０×１０としているが、必要に応じて異なるアレイ配列としても良い。連想メモリ１５における各メモリセル（ｍ、ｎ）は、被演算値ｏｊの値をデジタル値として保持している。ここで（ｍ、ｎ）は、各メモリセルのアレイ内での位置を示しており、本実施形態の場合、ｍ、ｎはいずれも１〜１０の値をとる。
【００５２】
図１、２においては、後述する検索処理等を実行する制御部は省略している。図２中に示した５ビットの被演算値ｏｊの値は、出力回路１４もしくは外部回路から入力された値である。ここで図２中に示した被演算値ｏｊの値は、本実施形態を説明するための一例である。
【００５３】
なお、ここでは連想メモリの各メモリセルのビット長を５ビットとしているが、被演算値ｏｊの値のビット長に応じて、それ以外のビット長を有するものであっても構わない。
【００５４】
連想メモリ１５は、入力された検索値に対して、それと一致する被演算値ｏｊを保持するメモリセルのＸ方向・Ｙ方向それぞれのアドレス値を出力する機能を有する。なお本実施形態におけるアドレス値は、Ｘ方向・Ｙ方向それぞれが４ビットの値を持つ。
【００５５】
従って、検索値を所望の初期値から単調に増加または減少させていくことにより、連想メモリに保持されている被演算値ｏｊのアドレスを値の昇順または降順に読み出すことが可能となる。なお、本実施形態においては、値の昇順に読み出すこととする。
【００５６】
またここで、検索値を単調に増加させていく場合は、検索値の初期値未満の値に関するアドレスは読み出されず、また検索値を単調に減少させていく場合は、所定の検索値より小さい値に関するアドレスは読み出されない。
【００５７】
ここで検索値及びその初期値は、所望の演算処理に応じて任意に設定することができる。本実施形態では、被演算値ｏｊの値が大きいものから数えて約３０％のみを演算処理に用いるために、最小の検索値を（１０００１）とし、この検索値未満の値を持つ被演算値ｏｊに関するアドレスは読み出さない（演算対象としない）ように設定している。
【００５８】
なお、検索値に対して値が一致する被演算値ｏｊが複数存在する場合は、その複数の被演算値ｏｊのアドレスを適当な順に出力する。
【００５９】
また本実施形態では、検索値は外部から入力することとしているが、カウンタ回路等を用意して内部で生成しても良い。同様の処理を行なう事ができるものであれば、その他の手法を用いても構わない。
【００６０】
また本実施形態においては、ソーティング回路７を連想メモリ１５によって構成したが、前述した機能を実現できるものであれば、その他の回路によって構成しても構わない。
【００６１】
続いて、２つのデコーダ８について説明する。図１及び図３に示すように、それぞれのデコーダ８には、ソーティング回路７から出力された、Ｘ方向・Ｙ方向のそれぞれ４ビットのアドレス値の対応する一方が入力される。
【００６２】
デコーダ８は４ビットのアドレス値をデコードし、１０本の出力線のうち、デコードした値に対応する１本の出力線をＨｉｇｈにする。ここで、４ビットのデータと１０本の出力線のうちＨｉｇｈになる出力線は以下の様に対応している。
【００６３】
アドレス値      出力線
００００      １０００００００００
０００１      ０１００００００００
００１０      ００１０００００００
００１１      ０００１００００００
０１００      ００００１０００００
０１０１      ０００００１００００
０１１０      ００００００１０００
０１１１      ０００００００１００
１０００      ００００００００１０
１００１      ０００００００００１
デコーダ８の１０本の出力線は、図１０、１１に示すようにスイッチ回路１１に接続しており、前述したように、アドレス値に対応して、１本の信号線をＨｉｇｈにする。
【００６４】
続いて、図４を参照してステップ電圧設定回路９について説明する。ステップ電圧設定回路９は、同図（Ａ）に示すように、電流源、キャパシタ、ソースフォロワ及びリセット用のスイッチから構成される回路群が２段に構成される。
【００６５】
ここでまず、被演算値ｗｙｎの値に対応するパルス幅を有するパルス幅変調信号ＰＷＭ＿ＩＮ＿Ｒを電流源１６の動作のオン・オフを制御する制御信号として入力する。
【００６６】
この際、被演算値ｗｙｎの値に対応するパルス幅を有するパルス幅変調信号ＰＷＭ＿ＩＮ＿Ｒは、外部から入力しても良いし、別途メモリ回路とデジタル／パルス幅変調回路を用意して生成しても構わない。本実施形態においては、外部から入力するものとする。また、電流値を決定するバイアス信号ＢＩＡＳ＿ＣＳを電流源１６のゲートに入力する。
【００６７】
ここで電流源１６付近の詳細を図４の（Ｂ）に示す。電流源１６は、例えば同図に示すようにＣＭＯＳ回路によって構成される。ＭＯＳ素子１６は、パルス幅変調信号ＰＷＭ＿ＩＮ＿ＲがＨｉｇｈの間だけ電流を流し、キャパシタ１７に電荷が蓄積される。このため、Ｎｏｄｅ０の電圧は、パルス幅変調信号ＰＷＭ＿ＩＮ＿Ｒのパルス幅に比例する電圧値を示し、これは前述したように被演算値ｗｙｎの値に対応する。
【００６８】
続いて、Ｎｏｄｅ０の電圧はソースフォロワ１８によって、電流源１９に印加される。ここで電流源１６付近の詳細を図４の（Ｃ）に示す。同図に示すようにＭＯＳ素子を電流源１９として用いる場合、電流値はゲート電圧によってコントロールされるため、電流源１９を流れる電流値はＮｏｄｅ０の電圧値によってコントロールされることとなる。前述したように、Ｎｏｄｅ０の電圧値は被演算値ｗｙｎの値に対応していることから、結果として電流源１９を流れる電流値は、被演算値ｗｙｎの値に対応することとなる。
【００６９】
続いて電流源１９には、ソーティング回路７から、動作のオン・オフを制御する制御パルスＦＬＡＧ＿ＩＮが入力される。制御パルスＦＬＡＧ＿ＩＮは、前述したソーティング回路７において、検索値が１単位変更（増加）された場合に入力される。
【００７０】
電流源１９として機能するＭＯＳ素子は、制御パルスＦＬＡＧ＿ＩＮがＨｉｇｈの間だけ電流を流し、キャパシタ２０に電荷が蓄積される。このため、Ｎｏｄｅ１の電圧は、ソーティング回路７において検索値が１単位変更（増加）されるごとに、被演算値ｗｙｎの値に対応して増加していく。なおＮｏｄｅ１の初期値は、ソーティング回路７における検索値の初期値に対応付けて設定されている。
【００７１】
この時、ソーティング回路７に保存された値は被演算値ｏｊであることから、結果としてＮｏｄｅ１の電圧値は以下の演算式の演算結果に対応付けることが可能となる。
（被演算値ｗｙｎ）×（被演算値ｏｊ）          ・・・（数式２）
続いて、Ｎｏｄｅ１の電圧値はソースフォロワ２１によって読み出され、図１及び図１１に示すように、スイッチ回路ブロック４に入力される。
【００７２】
なお図４において、リセット用の２つのスイッチ２２、２３は、キャパシタ１７、２０に蓄積された電荷を初期化するために使用される。また、キャパシタ２０の初期電圧値（Ｎｏｄｅ１の電圧値）は、前述したようにソーティング回路７における最小の検索値に対応させる。
【００７３】
なお本実施形態においては、パルス幅変調信号によって動作制御を行なう電流源を用いているが、電流源の動作を制御することができるものであればその他制御信号を使用しても構わない。また、前述した（被演算値ｗｙｎ）×（被演算値ｏｊ）に相当する値を設定することができるものであれば、どのような回路構成を用いても構わない。
【００７４】
次に、図５を参照して荷重電圧設定回路１０について説明する。
【００７５】
荷重電圧設定回路１０は、同図（Ａ）に示すように、電流源２４、キャパシタ２５、ソースフォロワ２６及びリセット用のスイッチ２７から構成される。
【００７６】
ここでまず、被演算値ｗｘｍの値に対応するパルス幅を有するパルス幅変調信号ＰＷＭ＿ＩＮ＿Ｗを電流源２４の動作のオン・オフを制御する制御信号として入力する。
【００７７】
また、電流値を決定するバイアス信号ＢＩＡＳ＿ＣＳ＿Ｗを電流源２４のゲートに入力する。ここで電流源２４は、例えば図５の（Ｂ）に示すようにＣＭＯＳ回路によって構成される。
【００７８】
電流源２４として機能するＭＯＳ素子は、パルス幅変調信号ＰＷＭ＿ＩＮ＿ＷがＨｉｇｈの間だけ電流を流し、キャパシタ２５に電荷が蓄積されるため、Ｎｏｄｅ３の電圧は、パルス幅変調信号ＰＷＭ＿ＩＮ＿Ｗのパルス幅に比例する電圧値を示し、これは前述したように被演算値ｗｘｍの値に対応する。
【００７９】
続いて、Ｎｏｄｅ３の電圧値はソースフォロワ２６によって読み出され、図１及び図１０に示すように、スイッチ回路ブロック４に入力される。
【００８０】
なお図５において、リセット用のスイッチ２７は、キャパシタ２５に蓄積された電荷を初期化するために使用される。
【００８１】
なお本実施形態においては、パルス幅変調信号によって動作制御を行なう電流源を用いているが、電流源の動作を制御することができるものであればその他制御信号を使用しても構わない。また、前述した被演算値ｗｘｍに相当する値を設定することができるものであれば、どのような回路構成を用いても構わない。
【００８２】
次に図１、図６、図１０及び図１１を参照してスイッチ回路１１について説明する。スイッチ回路１１は、図６に示すようにＮＡＮＤゲート２８、インバータ２９及びスイッチ３０、３１、３２から構成される。
【００８３】
入力信号は、アナログ電圧ＩＮＰＵＴ＿Ｖと、積和回路１３における演算を制御する制御信号Ｍ＿ＳＴＯＰ、符号信号ＳＩＧＮと、デコーダ８からの出力信号ＤＥＣ＿ＯＵＴの計４本である。ここでアナログ電圧ＩＮＰＵＴ＿Ｖは、前述した荷重電圧設定回路１０またはステップ電圧設定回路９の出力信号であり、符号信号ＳＩＧＮは、被演算値ｗｘｍおよび（被演算値ｗｙｎ×被演算値ｏｊ）の正負符号に相当する。
【００８４】
また、制御信号Ｍ＿ＳＴＯＰと符号信号ＳＩＧＮは、外部回路から入力するものであっても、もしくは別途用意したメモリ回路から入力するものであっても良い。本実施形態においては、外部回路から入力するとしている。
【００８５】
ここでデコーダ８からの出力信号ＤＥＣ＿ＯＵＴがＨｉｇｈになると、荷重電圧設定回路１０またはステップ電圧設定回路９の出力信号であるアナログ電圧ＩＮＰＵＴ＿Ｖが、スイッチ３０を介して出力線に出力される。それとともに、被演算値ｗｘｍおよび（被演算値ｗｙｎ×被演算値ｏｊ）の正負符号を示す符号信号ＳＩＧＮが、スイッチ３２を介して出力線に出力される。またこのとき、積和回路１３における演算を制御する制御信号Ｍ＿ＳＴＯＰがＨｉｇｈであると、出力線Ｍ＿ＳＴＯＰがＨｉｇｈとなる。
【００８６】
前述したスイッチ回路１１の計３本の出力線は、図１０及び図１１に示すように、それぞれが後段の入力回路１２への入力線となる出力信号線に接続している。
【００８７】
なお図１０及び図１１において、荷重電圧設定回路１０及びステップ電圧設定回路９の入力信号は省略している。また、スイッチ回路１１は説明に必要な分のみを描写しており、一部のスイッチ回路を省略している。
【００８８】
次に図７を参照して入力回路１２について説明する。入力回路１２は、ＮＡＮＤゲート３３、３４、ＮＯＲゲート３５、３６、２−１セレクタ３７、３８、インバータ３９、４０、４１、４２、４３及びスイッチ４４、４５から構成される。なお、インバータ３９、４０は、Ｍ＿ＳＴＯＰ＿ＲＥＳＥＴ信号がＨｉｇｈの時のＭ＿ＳＴＯＰ信号をラッチする機能を持つ。
【００８９】
入力回路１２の入力信号は、アナログ電圧ＩＮＰＵＴ＿Ｖ、符号信号ＳＩＧＮ、制御信号Ｍ＿ＳＴＯＰ、制御信号Ｍ＿ＳＴＯＰ＿ＲＥＳＥＴ、基準電圧入力ＢＡＳＥ＿ＢＩＡＳ、制御信号Ｍ＿ＳＴＯＰ＿ＯＮ、リセット信号ＲＥＳＥＴの７本である。
【００９０】
このうち、アナログ電圧ＩＮＰＵＴ＿Ｖ、符号信号ＳＩＧＮ、制御信号Ｍ＿ＳＴＯＰは、スイッチ回路１１につき上述した通りであり、スイッチ回路ブロック４から入力される。
【００９１】
また制御信号Ｍ＿ＳＴＯＰ＿ＲＥＳＥＴは、積和回路１３における演算を制御する制御信号Ｍ＿ＳＴＯＰの入力線をリセットする。基準電圧入力ＢＡＳＥ＿ＢＩＡＳは、本実施形態では１．６５Ｖとする。制御信号Ｍ＿ＳＴＯＰ＿ＯＮは演算動作を制御する。リセット信号ＲＥＳＥＴは、アナログ電圧の出力ペアをリセットする。
【００９２】
以上の入力信号のうち、制御信号Ｍ＿ＳＴＯＰ＿ＲＥＳＥＴと、基準電圧入力ＢＡＳＥ＿ＢＩＡＳと、演算動作を制御する制御信号Ｍ＿ＳＴＯＰ＿ＯＮと、アナログ電圧の出力ペアをリセットするリセット信号ＲＥＳＥＴの４本は、全ての入力回路１２に対して共通に入力する。
【００９３】
また出力信号は、積和回路１３に対する差動ペア入力となる出力電圧２本と、積和回路１３の演算動作をオン・オフする制御信号１本（Ｍ＿ＳＴＯＰ＿ＸまたはＭ＿ＳＴＯＰ＿Ｙ）の計３本である。
【００９４】
ここで、被演算値ｗｙｎおよび（被演算値ｗｙｎ×被演算値ｏｊ）の正負符号を示す符号信号ＳＩＧＮのＨｉｇｈ・Ｌｏｗによって差動ペアの出力電圧対が反転する。例えば、符号信号ＳＩＧＮがＨｉｇｈの時に出力Ａ：２．０Ｖ、出力Ｂ：１．６５Ｖとすると、符号信号ＳＩＧＮがＬｏｗになると、出力Ａ：１．６５Ｖ、出力Ｂ：２．０Ｖとなり、電圧値自体は変化せずに出力線のペアが反転する。
【００９５】
また、リセット信号ＲＥＳＥＴがＬｏｗになると、もしくは制御信号Ｍ＿ＳＴＯＰのラッチされた信号がＬｏｗの時（Ｎｏｄｅ５の電位がＬｏｗの時）は、出力Ａ・Ｂの両方から基準電圧ＢＡＳＥ＿ＢＩＡＳが出力される。
【００９６】
なお、リセット信号ＲＥＳＥＴがＨｉｇｈで、かつＭ＿ＳＴＯＰのラッチされた信号がＨｉｇｈの時（Ｎｏｄｅ５の電位がＨｉｇｈの時）に出力Ａ・Ｂの一方が基準電圧ＢＡＳＥ＿ＢＩＡＳとなり、もう一方がアナログ電圧ＩＮＰＵＴ＿Ｖとなる。
【００９７】
また、入力制御信号Ｍ＿ＳＴＯＰ＿ＯＮがＨｉｇｈで、かつ入力制御信号Ｍ＿ＳＴＯＰがＨｉｇｈの時のみ、積和回路１３の演算動作をオン・オフする制御信号出力（Ｍ＿ＳＴＯＰ＿ＸまたはＭ＿ＳＴＯＰ＿Ｙ）はＨｉｇｈとなる。
【００９８】
次に、図８を参照して積和回路１３について説明する。積和回路１３は、乗算器４６と、キャパシタ４７と、ＮＡＮＤゲート４８と、スイッチ４９、５０、５１と、ソースフォロワ５２から構成される。なお、本実施形態においては、乗算器として四象限乗算器を用いているが、同様の機能を実現できるものであればその他の乗算器を使用しても構わない。
【００９９】
積和回路１３の入力信号は、２組の差動電圧ペア入力（Ｗ＿ＰとＷ＿Ｎ、ＲＡＭＰ＿ＰとＲＡＭＰ＿Ｎ）と、バイアス電圧入力ＶＩと、キャパシタ４７のリセット信号ＣＡＰ＿ＲＥＳＥＴ＿ＳＷと、キャパシタ４７のリセット電圧ＣＡＰ＿ＲＥＳＥＴ＿Ｖとを含む。更に、出力制御信号ＣＡＰ＿ＯＵＴ＿ＳＷと、乗算器４６とキャパシタ４７の間に接続されるスイッチ４９の制御信号Ｍ＿ＳＴＯＰ＿Ｘ及びＭ＿ＳＴＯＰ＿Ｙとを含む。
【０１００】
積和回路１３の出力信号は、積和演算結果に相当する電圧値出力である。
【０１０１】
乗算器４６は、入力された差動電圧ペア（Ｗ＿ＰとＷ＿Ｎ、ＲＡＭＰ＿ＰとＲＡＭＰ＿Ｎ）に関して乗算を行い、結果を電流値Ｉ１としてキャパシタ４７に出力する。
【０１０２】
ここで２組の差動電圧ペア（Ｗ＿ＰとＷ＿Ｎ、ＲＡＭＰ＿ＰとＲＡＭＰ＿Ｎ）は、図１に示すように、一方の組が荷重電圧設定回路１０からの入力電圧を含み、もう一方の組がステップ電圧設定回路９からの入力電圧を含むものである。
【０１０３】
前述したように、荷重電圧設定回路１０の電圧値は（被演算値ｗｘｍ）に相当しており、ステップ電圧設定回路９の電圧値は（被演算値ｗｙｎ×被演算値ｏｊ）に相当している。従って乗算器４６においては、以下に示す数式３の演算が実行されることとなる。
【０１０４】
（被演算値ｗｘｍ）×（被演算値ｗｙｎ×被演算値ｏｊ）    ・・・（数式３）
演算結果に相当する電流は、スイッチ４９を介して接続するキャパシタ４７に流入（またはキャパシタ４７から流出）し、電荷として蓄積される。ここで、乗算器４６で行なわれる演算時間ｔ１を一定にすることで、キャパシタ４７にはＩ×ｔ１の電荷が蓄積されることになる。
【０１０５】
キャパシタ４７の前段にはスイッチ４９が配置され、そのオン・オフの動作は、Ｍ＿ＳＴＯＰ＿ＸとＭ＿ＳＴＯＰ＿Ｙの信号の論理積によって制御されている。
【０１０６】
すなわち積和回路アレイ１においては、Ｍ＿ＳＴＯＰ＿ＸとＭ＿ＳＴＯＰ＿Ｙが両方ともＨｉｇｈとなる積和回路１３においてのみ、演算結果の電流がキャパシタ４７に流入（流出）し、乗算結果が累算される。なお本実施形態においては、電流の流入は正の累算に対応し、電流の流出は負の累算に対応している。
【０１０７】
以上の乗算を繰り返し、各乗算ごとに出力される電流を電荷としてキャパシタ４７に蓄積することで、乗算結果を累算することが可能となる。
【０１０８】
なお本実施形態の場合、乗算器４６として差動乗算器を用いているため、差動ペアの少なくとも一方が同電圧の場合、乗算結果の電流値Ｉ１は０となる。
【０１０９】
蓄積された電荷量（すなわち累算結果）は、最終的にソースフォロワ５２とスイッチ５１を介してＮｏｄｅ４の電圧値として出力される。Ｎｏｄｅ４は、図１及び図１２に示すように積和回路アレイ１の出力信号線に繋がっている。
【０１１０】
積和回路アレイの１列ごとに電圧出力信号ＣＡＰ＿ＯＵＴ＿ＳＷが入力されることにより、キャパシタ４７の電圧値がソースフォロワ５２を介してＮｏｄｅ４に出力される。
【０１１１】
なお、キャパシタ４７の電圧は累算の開始前に、リセット信号によりスイッチ５０をオンしてリセット電圧に設定される。累算を実行し出力が完了するまで、前記スイッチ５０はオフされる。
【０１１２】
本実施形態では、前記リセット電圧を１．６５Ｖに設定したが、必要に応じてその他の電圧値に設定することも可能である。
【０１１３】
次に図９及び図１２を参照して出力回路１４について説明する。図１２においては、積和回路１３のキャパシタ４７の電圧値を読み出す際に関係する信号線のみを記載し、その他の入出力に関わる信号線は省略している。また、本実施形態においては、出力回路１４をＡ／Ｄ変換回路５３によって構成している。
【０１１４】
ここで、Ａ／Ｄ変換回路５３の入力端子は、積和回路アレイ１の出力信号線に接続されている。また、出力はソーティング回路７の入力に接続されている。
【０１１５】
すなわち出力回路１４は、積和回路１３のキャパシタ４７に電荷として蓄積された積和演算結果を電圧値として読み込み、デジタル値に変換して出力する。
【０１１６】
以上説明した中で、主要な入力信号のタイミングチャート例を図１４に示す。なお、図１４のタイミングチャートは、本実施形態における一例であり、同様の処理を行なうことができるものであれば、これ以外の入力信号タイミングであっても構わない。
【０１１７】
（第２の実施形態）
本発明の第２の実施形態を具体的な処理構成図を参照して説明する。
【０１１８】
本実施形態は、第１の実施形態で説明した演算回路を用いて、次の式で表される演算処理を実行するものである。
【０１１９】
【数２】
0004579798.tif 000003
【０１２０】
ここで、ｕＭＮの添え字ＭＮは演算値ｕをアレイ状に構成した場合の行・列番号を表している。また、被演算値ｗｍｎｊの添え字ｍｎは、図に示すようにアレイ状に分布したｗの行・列番号を表しており、添え字ｊは被演算値ｏ  のラベルを表している。
【０１２１】
この時、被演算値ｗｍｎｊは以下の式に示すように基底ベクトル対の積和で近似することが可能である。これを明細書では、荷重基底ベクトル分解と呼ぶ。
【０１２２】
【数３】
0004579798.tif 000004
【０１２３】
数式５で示される荷重基底ベクトル分解において、ｗが３×３のアレイ状に分布している場合を図２４に示す。
【０１２４】
なお、数式５においてＮｗが無限大の時に等号が成り立つ。実際の使用においては、荷重アレイの分布に応じて適当な基底ベクトル分解数Ｎｗが決定され、ｗｍｎｊが適当な基底ベクトル対の組の積和値で近似される。
【０１２５】
続いて、数式５を数式４に代入すると以下の式が導出される。
【０１２６】
【数４】
0004579798.tif 000005
【０１２７】
ここで、基底ベクトルｗｋｘｊの要素を第１の実施形態で説明した被演算値ｗｘｍとみなし、もう一方の基底ベクトルｗｋｙｊとｏｊの積（ｏｊ・ｗｋｙｊ）の要素を第１の実施形態で説明した被演算値ｗｙｎと被演算値ｏｊの積（ｏｊ・ｗｋｙｊ）とみなした場合、数式６中の中括弧｛｝で括られた演算式は、第１の実施形態で説明した積和回路によって演算可能であることが分かる。
【０１２８】
従って、被演算値ｗｘｍと被演算値ｗｙｎを所望のｗｍｎｊに対する基底ベクトル対の組の要素として適当に設定して第１の実施形態で説明した積和回路によって前記中括弧で括られた演算式の演算を行ない、それをＮｗ回繰り返すことにより、数式４の演算を近似的に実行することが可能となる。
【０１２９】
以上示したように、アレイ状に分布する荷重値を基底ベクトル対の積和で近似することにより、第１の実施形態で説明した演算回路によってアレイ状に分布する荷重値の演算を並列に実行することが可能となる。
【０１３０】
（第３の実施形態）
本発明の第３の実施形態を具体的な処理構成図を参照して説明する。図１５は、本実施形態における演算回路２００の構成図を示す。
【０１３１】
図１５を見ると分かる通り、本実施形態における演算回路２００は、図１に示す第１及び第２の実施形態の演算回路１００に対して、以下の点で異なっている。まず、ソーティング回路７の後段にメモリ５４が接続されている。更に、荷重電圧設定回路１０及びステップ電圧設定回路９にメモリ５５とデジタル／パルス変調回路５６が接続されている。また、出力回路ブロック６がコンパレータ５７とパルス／デジタル変換回路５８によって構成されている。
【０１３２】
従って本実施形態においては、前記相違点についてのみ説明を行ない、その他の部分に関しては第１及び第２の実施形態と同様として説明を省略する。
【０１３３】
まず、ソーティング回路７の後段にメモリ５４が接続されている点について説明を行なう。
【０１３４】
メモリ５４には、ソーティング回路７から出力されるＸ方向・Ｙ方向のアドレス値と、そのアドレスが出力された際の検索値と、前回の検索値から１単位変更されているかどうかを示すフラグとが出力順に保持されている。本実施形態において、Ｘ方向・Ｙ方向のアドレス値はそれぞれ４ビットの値を持つ。また、前回の検索値から１単位変更されているかどうかを示すフラグは、本実施形態では１単位増加されているかどうかを１ビットで示す。
【０１３５】
保持されたアドレス値とフラグとは、メモリ５４に入力された順番に出力される。なお出力の順番は、本実施形態とは異なりメモリ５４に入力された順番と逆順で出力されるものであっても良い。
【０１３６】
ここで、出力されたアドレス値は、第１の実施形態と同様にＸ方向・Ｙ方向それぞれがデコーダ８に入力される。また同時に、フラグがステップ電圧設定回路９に入力される。この時、入力されるフラグは、第１の実施形態における制御パルスＦＬＡＧ＿ＩＮに相当する。
【０１３７】
以上の様に、メモリ５４は、ソーティング回路７から出力されるアドレス及びステップ電圧設定回路９の制御信号を一時保存する機能を有している。
【０１３８】
従って、第１の実施形態で説明した演算において、ソーティング回路７に保持されている被演算値ｏｊのデータ（アドレス値、フラグ）が、メモリ５４に一時保存される。これにより、ソーティング回路７のメモリセルを解放して、次の演算結果の保持・ソーティング用にソーティング回路７を使用することを可能とする。また、算出された演算結果を次回の演算における被演算値ｏｊとして使用することも可能となる。
【０１３９】
なお本実施形態においては、前回の演算結果を保持するためのメモリ５４を２セットと、この演算結果を被演算値ｏｊとして演算する際の演算結果を保持するためのメモリ５４を２セット用意している。すなわち、図１５に示すように、メモリ５４は計４セット用意されている。なお、メモリ５４のセット数は、演算処理に応じてその他のセット数であっても構わない。
【０１４０】
続いて、荷重電圧設定回路１０及びステップ電圧設定回路９にメモリ５５とデジタル／パルス変調回路５６が接続されている点について説明を行なう。
【０１４１】
図１５に示すように、メモリ５５に保持された被演算値ｗｙｎ及び被演算値ｗｘｍのデジタル値（本実施形態では５ビット）をデジタル／パルス変調回路５６によってパルス幅変調信号に変換する。これにより、第１の実施形態において荷重電圧設定回路１０及びステップ電圧設定回路９に対して入力されたパルス幅変調信号ＰＷＭ＿ＩＮ＿Ｗ及びＰＷＭ＿ＩＮ＿Ｒが生成される。
【０１４２】
また、メモリ５５は前記デジタル値とともに正負の符号（１ビット）も保持しており、これは第１の実施形態における符号信号ＳＩＧＮとしてスイッチ回路１１に入力される。
【０１４３】
なお、前述したデジタル／パルス変調回路５６は、入力されたデジタル値をパルス幅変調信号に変換して出力する機能を有するものであれば、どのような構造を有するものであっても構わない。
【０１４４】
続いて、出力回路ブロック６がコンパレータ５７とパルス／デジタル変換回路５８によって構成されている点について説明を行なう。
【０１４５】
図１６に、コンパレータ５７とパルス／デジタル変換回路５８によって構成される出力回路ブロック６を示す。
【０１４６】
コンパレータ５７は、入力された電圧値（すなわち積和回路アレイ１から出力される演算結果に相当する）を参照電圧Ｖｒｅｆと比較してパルス幅変調信号に変換して出力する機能を有する。
【０１４７】
なお、図１６はオペアンプを用いたコンパレータ５７を使用しているが、その他の回路構成を有するコンパレータを使用しても構わない。
【０１４８】
また、参照電圧Ｖｒｅｆを時間に対して非線形に変化する電圧値とした場合には、入力される電圧値を、参照電圧Ｖｒｅｆの時間変化で決定される非線形な変換を施したパルス幅を有するパルス幅変調信号に変換することが可能となる。
【０１４９】
コンパレータ５７から出力されたパルス幅変調信号は、パルス／デジタル変換回路５８に入力され、デジタル値に変換される。変換されたデジタル値は、第１の実施形態と同様にソーティング回路７に入力され保持される。
【０１５０】
なお、前述したパルス／デジタル変換回路５８は、入力されたパルス幅変調信号をデジタル値に変換して出力する機能を有するものであれば、どのような構造を有するものであっても構わない。
【０１５１】
また本実施形態においては、メモリ５４、５５をＳＲＡＭで構成するものとするが、同様の機能を有するものであれば、その他の回路を使用しても構わない。
【０１５２】
（第４の実施形態）
本発明の第４の実施形態を具体的な処理構成図を参照して説明する。
【０１５３】
図１７は、本実施形態における演算回路の構成図を示す。図１７を見ると分かる通り、本実施形態における演算回路は、図１５に示す第３の実施形態の演算回路と同様、出力回路ブロック６がコンパレータ５７とパルス／デジタル変換回路５８によって構成されている。そして、図１５とは、出力回路ブロック６の後段にルックアップテーブル（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ：ＬＵＴ）５９が接続されていることのみが異なっている。
【０１５４】
従って本実施形態においては、前記相違点についてのみ説明を行ない、その他の部分に関しては第３の実施形態と同様であるので説明を省略する。
【０１５５】
図１７に示すように、ＬＵＴ５９にはパルス／デジタル変換回路５８から出力されたデジタル値が列並列に入力される。
【０１５６】
ＬＵＴ５９は、入力されたデジタル値を一旦内蔵されたレジスタに保持した後、保持データに対してシリアルに所定の変換を施して変換値をソーティング回路７に対して出力する。すなわち、ＬＵＴ５９は積和回路１３において算出された演算結果に対して所定の変換を実行する機能を有する。
【０１５７】
なお、一般的にＬＵＴ５９はデジタルメモリ（例えばＳＲＡＭ）と同様の構成を有するが、前述した機能を有するものであれば、どのような構造を有するものであっても構わない。
【０１５８】
（第５の実施形態）
本発明の第５の実施形態を具体的な処理構成図を参照して説明する。
【０１５９】
一般的なニューラルネットワークにおけるニューロン素子のモデルを図１８に示す。同図に示すように、一般的なニューロン素子６０は、前段の複数のニューロン素子の出力値をシナプス荷重で重み付けした値の総和を取り、ニューロン素子６０の内部状態値を決定する。すなわちニューロン素子６０の内部状態値は、積和演算によって算出される。
【０１６０】
各ニューロン素子における内部状態値の算出式を以下に示す。
【０１６１】
【数５】
0004579798.tif 000006
【０１６２】
ここで、ＵＭＮの添え字ＭＮは内部状態値Ｕをアレイ状に構成した場合の行・列番号を表している。また、シナプス荷重値Ｗｍｎｊの添え字ｍｎは、図に示すようにアレイ状に分布したＷの行・列番号を表しており、添え字ｊは前段ニューロン出力値Ｏのラベルを表している。
【０１６３】
これは第２の実施形態で説明した数式４と同様の演算式であることが分かる。
【０１６４】
なおそれぞれのニューロン素子は、内部状態値に非線形変換（もしくは線形変換）を施した後、変換値を後段に接続するニューロン素子に対して出力する。
【０１６５】
ここで、後段層ニューロン素子に接続するニューロン群領域を一般的に受容野と呼ぶ。
【０１６６】
これに対して、全く等しい結合を有するニューラルネットワークにおいて、図１９に示すように前段層ニューロンに接続するニューロン群領域を定義したものを投射野と呼ぶ。
【０１６７】
図１８と図１９の相違は、結合領域を１つの後段層ニューロンに対して定義するか、もしくは１つの前段層ニューロンに対して定義するかの違いだけである。
【０１６８】
従って、どちらの定義に従ってもニューラルネットワークとして実行される演算処理は全く同一である。
【０１６９】
またニューロン間の結合を投射野を用いて定義し、かつ前記投射野に属する後段層ニューロンの配列が図２０に示すようにアレイ構造（１つのニューロン素子を１つのセルで表現している）を有するとする。この場合、１つの前段層ニューロンの出力値Ｏｊに対して定義される後段層ニューロンとの結合におけるシナプス荷重分布をＷｍｎｊとすると、Ｗｍｎｊは以下の式で近似することができる。図２０において、Ｗｍｎｊを対応する後段層ニューロン素子のセル内に示している。
【０１７０】
【数６】
0004579798.tif 000007
【０１７１】
本実施形態においてはＮｗ＝５としているが、その他の値としても良い。また、添え字ｉは１〜３の値（整数）をとり、投射野のサイズに一致している。
【０１７２】
これを図２０に対比して示すと図２１のようになる。図２１において、
【０１７３】
【数７】
0004579798.tif 000008
を対応する後段層ニューロン素子のセル内に示している。
【０１７４】
すなわち、シナプス荷重値の分布は適当な基底ベクトル対の組の積和で近似することができる。これは、第２の実施形態で説明した基底ベクトル分解と全く同じ原理である。
【０１７５】
従って、第２の実施形態と同様に、シナプス荷重値を適当な基底ベクトル対の組に分解し、第１の実施形態で説明した演算回路で繰り返し演算を実行することにより、数式５で示されるニューラルネットワークの処理を実行することが可能となる。
【０１７６】
以上の前提をもとに、本実施形態においては、ニューラルネットワークを回路として実装する際に、第１〜４の実施形態で説明した回路構成を適用する。
【０１７７】
すなわち、第１、第３、第４の実施形態における被演算値ｏｊは前段ニューロンの出力値Ｏｊに相当し、被演算値ｗｘｎは一方の基底ベクトルＷｋｘｊの要素に相当し、被演算値ｗｙｎはもう一方の１次元基底ベクトルＷｋｙｊの要素に相当する。
【０１７８】
また、１つの被演算値ｏｊに関して積和演算を並列に実行する積和回路１３の領域が、投射野に相当する。
【０１７９】
積和回路アレイにおいては、前述したように数式１に示される演算が実行され、これを数式６に従いＮｗ回繰り返すことにより、前段ニューロン出力値とシナプス荷重値の乗算が実現される。
【０１８０】
以上の積和演算を演算対象となる全ての前段層ニューロン出力値（すなわち被演算値ｏｊ）に対して完了した後、演算結果（電圧値）を出力回路１４に出力する。
【０１８１】
ニューロン素子における非線形変換（もしくは線形変換）は、Ａ／Ｄ変換回路５３、コンパレータ５７もしくはＬＵＴ５９によって実行され、ニューロン出力値が算出される。
【０１８２】
ニューロン出力値はソーティング回路７によってソートされた後、アドレス値とフラグが後段に接続するメモリ５４に保持され、後段層ニューロンに関する演算時に使用される。
【０１８３】
以上説明したように、第１〜４の実施形態で説明した演算回路を用いることにより、ニューラルネットワークの実装化が可能となる。
【０１８４】
（第６の実施形態）
本発明の第６の実施形態を具体的な処理構成図を参照して説明する。
【０１８５】
本実施形態における演算回路を図２２に示す。同図の演算回路は画像処理を実行する。
【０１８６】
図２２を見ると分かるように、本実施形態における演算回路は、第１〜５の実施形態における演算回路に対して、撮像素子アレイ６１（例えばＣＣＤまたはＣＭＯＳイメージセンサ）がソーティング回路７に接続していることのみが異なっている。図２２は、第４〜５の実施形態の場合を示している。）
すなわち本実施形態においては、前記撮像素子アレイ６１によって取り込まれた画像信号に対して、第１〜５の実施形態で説明した演算回路により演算処理を行なう。これにより、所望の画像処理（例えばパターン検出およびパターン認識）を行なうことを目的としている。
【０１８７】
なお、実際に実現される画像処理の内容は、演算回路で実現されるニューラルネットワークにおけるシナプス荷重値及び投射野等の設定により決定される。その詳細な設定方法は、本発明の主眼とするところではないので、説明を省略する。
【０１８８】
ここで、本実施形態においては、撮像素子アレイ６１から出力される画像信号は、まずソーティング回路７に入力される。なお、画像信号はデジタル信号に変換された後にソーティング回路７に入力されるが、図２２ではデジタル信号への変換に関しては詳細を省略している。
【０１８９】
すなわち画像信号は第１〜５の実施形態で説明した被演算値ｏｊとして演算に使用される。ソーティング回路以降の演算処理は第１〜５の実施形態と同様であるので、説明を省略する。
【図面の簡単な説明】
【０１９０】
【図１】第１の実施形態における演算回路の全体構成を示す図である。
【図２】第１の実施形態におけるソーティング回路を示す図である。
【図３】第１の実施形態におけるデコーダを示す図である。
【図４】第１の実施形態におけるステップ電圧設定回路を示す図である。
【図５】第１の実施形態における荷重電圧設定回路を示す図である。
【図６】第１の実施形態におけるスイッチ回路を示す図である。
【図７】第１の実施形態における入力回路を示す図である。
【図８】第１の実施形態における積和回路を示す図である。
【図９】第１の実施形態における出力回路を示す図である。
【図１０】第１の実施形態における荷重電圧設定回路からスイッチ回路までの接続を示す図である。
【図１１】第１の実施形態におけるステップ電圧設定回路からスイッチ回路までの接続を示す図である。
【図１２】第１の実施形態における積和回路からソーティング回路までの接続を示す図である。
【図１３】第１の実施形態における積和回路の制御を示す図である。
【図１４】第１の実施形態における主要信号のタイミングチャートを示す図である。
【図１５】第２の実施形態における演算回路の全体構成を示す図である。
【図１６】第２の実施形態における出力回路を示す図である。
【図１７】第３の実施形態における演算回路の全体構成を示す図である。
【図１８】第４の実施形態における受容野を説明する図である。
【図１９】第４の実施形態における投射野を説明する図である。
【図２０】第４の実施形態における投射野のシナプス荷重分布を示す図である。
【図２１】第４の実施形態における投射野に対するシナプス荷重の基底ベクトル分解を示す図である。
【図２２】第５の実施形態における演算回路の全体構成を示す図である。
【図２３】第１の実施形態における入力回路ブロックから積和回路アレイに対する信号の入力を示す図である。
【図２４】第２の実施形態における荷重基底ベクトル分解を示す図である。
【図１】
0004579798.tif 000009
【図２】
0004579798.tif 000010
【図３】
0004579798.tif 000011
【図４】
0004579798.tif 000012
【図５】
0004579798.tif 000013
【図６】
0004579798.tif 000014
【図７】
0004579798.tif 000015
【図８】
0004579798.tif 000016
【図９】
0004579798.tif 000017
【図１０】
0004579798.tif 000018
【図１１】
0004579798.tif 000019
【図１２】
0004579798.tif 000020
【図１３】
0004579798.tif 000021
【図１４】
0004579798.tif 000022
【図１５】
0004579798.tif 000023
【図１６】
0004579798.tif 000024
【図１７】
0004579798.tif 000025
【図１８】
0004579798.tif 000026
【図１９】
0004579798.tif 000027
【図２０】
0004579798.tif 000028
【図２１】
0004579798.tif 000029
【図２２】
0004579798.tif 000030
【図２３】
0004579798.tif 000031
【図２４】
0004579798.tif 000032