(57)【特許請求の範囲】
【請求項１】
使用中または空き状態のいずれかになっている複数のニューロン回路で構成されたニューラル・ネットワークにおいて、各ニューロン回路内に配置され、入力データ・バス（ＤＡＴＡ−ＢＵＳ）上で伝送されるｎ個の成分で構成される入力ベクトル（Ａ）の各種成分を所定の空き状態ニューロン回路に読み込ませる事前装填回路であって、前記事前装填回路が、
前記入力データ・バスに接続された各ニューロン回路内に位置し、メモリ制御信号（ＲＳ）の制御下でこのニューロン回路に付属するプロトタイプ・ベクトル（Ｂ）として使用される各種成分として入力ベクトル成分を格納する重みメモリ手段（２５１）と、
前記重みメモリ手段に記憶されたプロトタイプ・ベクトル成分を伝送し、かつ前記重みメモリ手段に接続された出力バス（ＲＡＭ−ＢＵＳ）と、
前記複数のニューロン回路の各々に含まれ、互いが直列に接続されて該複数のニューロン回路の連鎖状構造を形成し、ニューラル・ネットワーク内の連鎖する直前のニューロン回路から学習可能な空き状態ニューロン回路であることを識別するための信号（ＤＣＯ：ディージーチェーン出力信号）が与えられた場合、与えられた前記信号（ＤＣＯ）を次段に接続される前記ニューロン回路へと出力し、前段からの前記信号（ＤＣＯ）を受け取り、前記信号（ＤＣＯ）をディジーチェーン入力信号（ＤＣＩ）として使用し、後段のニューロン回路で前記信号（ＤＣＯ）と前記ディージーチェーン入力信号（ＤＣＩ）とが互いに補数関係にある場合に前記メモリ制御信号（ＲＳ）を生成し、前記メモリ制御信号（ＲＳ）の出力に応答して、認識フェーズ中に空き状態ニューロン回路の重みメモリ手段にのみ前記入力ベクトル成分の書き込みを行わせると共に、連鎖する次のニューロン回路が次に学習可能な空き状態ニューロン回路であることを識別するための信号（ＤＣＯ）を前記次のニューロン回路に与える回路手段（６００）と
を含む、事前装填回路。
【請求項２】
前記成分のそれぞれがｍビットで符合化されることを特徴とする、請求項１に記載の事前装填回路。
【請求項３】
前記ニューラル・ネットワークが半導体チップに集積化され、前記重みメモリ手段がそこに形成されたｎ×ｍビットのＲＡＭメモリであることを特徴とする、請求項１または２に記載の事前装填回路。
【請求項４】
前記ＲＡＭメモリのアドレス指定が、各ニューロン回路内に位置するかまたは前記複数のニューロン回路に共通するカウンタ制御信号（ＮＥＸＴＣ、ＦＣＯＭＰ）の制御下でアドレス・カウンタ（２５２）によって行われることを特徴とする、請求項３に記載の事前装填回路。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、ニューラル・ネットワーク・システムに関し、より具体的には、ニューラル・ネットワークの各ニューロン回路内に配置され、認識フェーズ中に所定の空き状態ニューロン回路の重みメモリに入力ベクトルの各種成分をロードできるようにする事前装填（pre-charge）回路に関する。初期設定時には、いずれのニューロン回路もまだ学習していないので、すべて「空き状態」になっている。ニューロン回路が入力ベクトルを学習する（すなわち、入力ベクトル成分がこのニューロン回路に付属するプロトタイプ・ベクトルの成分としてその重みメモリに格納される）と、そのニューロン回路はもはや空き状態ではなくなり、「使用中」であると言われる。ニューラル・ネットワークが１つの連鎖として構成された複数のニューロン回路で構成されている場合、事前装填回路は、その連鎖の第１の空き状態ニューロン回路に前記入力ベクトル成分をロードできるようになっている。
【０００２】
【従来の技術】
光学式文字認識の分野の最新式認識技法は、本質的に感光素子のマトリックスから構成された光ヘッドを使用するものである。ＲＥＡＤモードでは、前記素子が次々に走査され、走査された文字のあるパラメータを示す信号を生成する。その後、走査するごとに得られた信号がサンプリングされ、処理装置で処理されて走査対象の文字を識別する。一般に、この識別処理は、走査対象の文字とメモリに格納されているプロトタイプ・モデルとの比較に基づいて行われる。
【０００３】
ここで、９×８ピクセルのマトリックスに埋め込まれた大文字"Ｅ"を示す図１を参照して説明すると、文字Ｅを表す第１のパラメータは、垂直方向と水平方向の黒いピクセルの数のカウントで構成されると思われる。ここで、Ｆ'１、Ｆ'２、・・・、Ｆ'１６、Ｆ'１７という１７個の成分（または項目）で構成された文字"Ｅ"を表す特徴ベクトルＦ'を定義することができる。ただし、Ｆ'１＝６、Ｆ'２＝１、・・・、Ｆ'１６＝２、Ｆ'１７＝０である。文字"Ｅ"、たとえばアルファベットによる順番を表すために、ユーザによって定義されたカテゴリ（またはクラス）Ｃを、この特徴ベクトルＦに関連付けることができる。すなわち、この場合、カテゴリＣは５になる。同様に使用可能な第２のパラメータは、図１に示す線ａａの上下にある黒いピクセルの数になる。この非常に単純な例では、新しい特徴ベクトルＦは、１７個ではなく、Ｆ１＝１３およびＦ２＝９という２つの成分だけで構成されているが、同じカテゴリＣ＝５を有する。ただし、大文字"Ｅ"と小文字"ｅ"は２つの異なる特徴ベクトル（様々な活字フォントに応じて印刷する場合は、さらに多くなる）で表されるが、同一カテゴリＣに属すものと考えられることにも留意されたい。したがって、特徴ベクトルＦと所定のカテゴリＣとの間にある関係またはリンクを設定することができる。
【０００４】
図１に示す大文字"Ｅ"の表現をこの文字の理想的なモデルと見なすことにする。すると、学習の予備フェーズ中に、図１に示す２成分の特徴ベクトルＦがユーザによって従来の文字認識システムへの入力ベクトルとして提示され、そのシステム内のメモリにその２つの成分が格納されると考えられる。入力ベクトルＦの成分が格納され、カテゴリＣ（この例ではＣ＝５）がそれに関連付けられると、入力ベクトルＦはただちにプロトタイプ・ベクトルＰと呼ばれる。
【０００５】
次に図２について説明すると、格納済みプロトタイプ・ベクトルＰは、その２つの成分Ｐ１とＰ２が２次元空間に存在する点Ｐによって表される。この空間は、通常、特徴（または特性）空間と呼ばれる。プロトタイプ・ベクトルＰを示す点Ｐを取り囲むと、プロトタイプ・ベクトルと認識フェーズ中にシステムに提示される走査対象の文字を表す入力（または着信）ベクトル（またはパターン）との類似性の程度を認識するためにシステムが判別基準として使用する、ゾーンＺ（または定義域）を定義することができる。次にシステムは、入力ベクトルＡと格納済みプロトタイプ・ベクトルＰとの類似性の程度を認識するために両者の比較を実行する。この類似性の程度は様々な方法で求めることができるが、従来の方法の１つは本質的に距離の概念に基づくものである。さらに図２を参照し、前述のプロトタイプ・ベクトルＰとの一貫性を保つために入力ベクトルＡがＡ１およびＡ２という２つの成分から構成されていると想定すると、この比較は、たとえば、ユークリッド距離ＡＰの絶対基準、すなわち、ＡＰ2＝（Ｐ１−Ａ１）2＋（Ｐ２−Ａ２）2を使用して行うことができる。この場合、前記ゾーンＺは、中心がＰで半径がｒの円によって簡単に表される。通常、半径ｒは、プロトタイプ・ベクトルＰの影響フィールド（またはしきい）値と呼ばれる。一般に、この半径ｒの値は、初期設定時すなわち前記学習の予備フェーズ中に、図２に示す最大影響フィールドＭａｘＩＦと呼ばれるデフォルト値ｒ０によって示されるが、この最大影響フィールドＭａｘＩＦは、通常は任意に経験に基づいて定義される。しかし、たとえば、いわゆるマンハッタンまたはシティ・ブロック距離（Ｌ１ノルム）および平方距離（Ｌｓｕｐノルム）などの他の距離計算方法も使用可能で、これらは異なる形状のゾーンを生成する。Ｌ１ノルムを使用すると菱形ができ、Ｌｓｕｐノルムを使用すると、図２の２次元の特徴空間内に円ではなく正方形ができることになる。
【０００６】
図２に示すプロトタイプ・ベクトルＰについてさらに考察するならば、同一の大文字"Ｅ"を表すが異なる活字フォントで印刷された入力ベクトルＡが、認識のためにシステム・ユーザに提示されると想定する。入力ベクトルＡが円Ｚ内に入る場合、これはプロトタイプ・ベクトルＰと「類似」していると見なされ、同一カテゴリＣに分類される。ただし、システムによる入力ベクトルへのカテゴリ割当てが認識フェーズ中に行われることに留意されたい。ここで、入力ベクトルＡが円Ｚの外側にある場合は、これはプロトタイプ・ベクトルＰに対して「非類似」と見なされる。この場合、システムはこのベクトルに対してカテゴリＣを割り当てる（または関連付ける）ことができない。したがって、入力ベクトルＡを、同じカテゴリＣの新しいプロトタイプ・ベクトルとしてユーザが格納することを推奨する。そのために、システムの後続学習フェーズにおいて、ユーザがそのカテゴリＣを有する入力ベクトルＡをもう一度システムに提示する。システムは、同じカテゴリＣがそれに割り当てられている新しいプロトタイプ・ベクトルＰ'として入力ベクトルＡを格納し、カテゴリＣを表す円ＺおよびＺ'から構成された図３の拡張ゾーンを提供する。
【０００７】
次に、大文字"Ｆ"を表す入力ベクトルＡがシステムに提示され、プロトタイプ・ベクトルＰの円Ｚ内に入ると想定する。前記のその定義により、文字"Ｆ"は明らかに別のカテゴリに属すので、システムはそれにプロトタイプ・ベクトルＰのカテゴリＣを割り当てることができない。そのため、最初に描かれた円Ｚをこの点Ａを含まないように収縮させなければならない。すなわち、ユーザがこの入力ベクトルＡを新しいプロトタイプ・ベクトルＰ"として格納すると決めた場合は、プロトタイプ・ベクトルＰを取り囲む円の半径ｒ０を縮小する必要がある。この収縮ステップは、このような従来の文字認識システムの重要態様である、いわゆる「縮小プロセス」の一部である。入力ベクトルＡがプロトタイプ・ベクトルＰ"として格納された場合は、初期半径ｒ０＝ＭａｘＩＦをＰＰ"以下の値ｒに縮小することにより、円Ｚの新しい半径が得られる。この値ｒは、円Ｚ"の半径をも構成する（ｒ"＝ｒ）。プロトタイプ・ベクトルＰのこの新しい半径値または現行半径値ｒは、通常、実際の影響フィールドＡＩＦと呼ばれる。それぞれ関連カテゴリＣおよびＣ"と影響フィールドｒおよびｒ"とを有する２つのプロトタイプ・ベクトルＰおよびＰ"を図４に示す。この場合、最小影響フィールドＭｉｎＩＦと呼ばれる影響フィールドの最小値も定義されることに留意されたい。プロトタイプ・ベクトルの実際の影響フィールド（ＡＩＦ）は、いかなる状況でもＭｉｎＩＦ未満の値を有することはできない。
【０００８】
図５は、それぞれ影響フィールドｒ、ｒ'、ｒ"と関連カテゴリＣ、Ｃ'、Ｃ"とを有する３つのプロトタイプ・ベクトルＰ、Ｐ'、Ｐ"を含む２次元特徴空間を示している。ここで、入力ベクトルＡが認識のためにシステムに提示されると見なすと、システムは、距離ＡＰ＝Ｄ、ＡＰ'＝Ｄ'、ＡＰ"＝Ｄ"を計算し、次にそれらのうちの最小距離Ｄｍｉｎを決定することができる。入力ベクトルＡが１つの円、たとえば、円Ｚ内に入る場合（Ｄｍｉｎ＜ｒ）、その入力ベクトルはシステムによって認識され、カテゴリＣがそれに関連付けられる。ここで、入力ベクトルＡが図５に示す円Ｚ、Ｚ'、Ｚ"のいずれにも入らないと想定すると、この入力ベクトルは認識されず、カテゴリが割り当てられない。入力ベクトルＡを新しいプロトタイプ・ベクトルとして格納するとユーザが決定した場合、ユーザは、後続の学習フェーズ中に適切なカテゴリを付けてシステムにもう一度それを提示する。実際には、新しいプロトタイプ・ベクトルにどのカテゴリが割り当てられるか、たとえば、カテゴリＣ、Ｃ'、またはＣ"のいずれか、あるいは新しいカテゴリが割り当てられるかについては、ユーザが決定する。（最小距離Ｄｍｉｎの計算に基づいて）最も近いプロトタイプ・ベクトルのカテゴリを割り当てるとユーザが決定した場合、新たに格納されたプロトタイプ・ベクトルの影響フィールドは、Ｄｍｉｎ＜ＭａｘＩＦであればＤｍｉｎ以下の値になり、Ｄｍｉｎ＞＝ＭａｘＩＦであればＭａｘＩＦ以下の値になる。図５に示す場合では、この最小距離Ｄｍｉｎが距離Ｄ＝ＡＰに対応している。最後に、入力ベクトルＡがオーバラップ・ゾーン、すなわち、２つの円に共通のゾーン（図示せず）内に入る場合、ユーザは、新しいプロトタイプ・ベクトルに割り当てる正しいカテゴリを決定しないだけでなく、１つのプロトタイプ・ベクトル（または２つのプロトタイプ・ベクトルＰ'およびＰ"）が認識から除外されるように、それぞれの影響フィールドについて妥当な縮小を実行しなければならない可能性がある。
【０００９】
図２〜図５は２つの成分Ａ１およびＡ２から構成された入力ベクトルＡを示しているが、一般化のため、入力（またはプロトタイプ）ベクトルはｎ個の成分から構成されると見なされることを理解する必要があることに留意されたい。実際には、成分Ａ１、Ａ２、・・・、Ａｎは入力ベクトルＡの最も一般的な定義を表している。この想定では、図２に示す円Ｚはｎ次元の特徴空間内の超球によって表すことができる。計算された距離は、格納済みプロトタイプ・ベクトルを表す超球の中心と入力ベクトルを表す点とを隔てる距離になる。ＭａｘＩＦ値は、初期設定時に超球の最大半径に対応する。同様に、ＭｉｎＩＦ値は、縮小プロセス中に許される超球の最小半径に対応する。前述のユークリッド法とは異なる距離計算方法では、等距離点は超球上に置かれず、多面体上に置かれる。ただし、簡略化のため、前記多面体を超球と呼ぶことにする。
【００１０】
これに対して、あるアナログ値を表す入力ベクトルの成分はｍビットで符号化される。すなわち、タイプａ０・・・ａｍ−１の２進ワードによって示すことができる。たとえば、第１の成分Ａ１が１３になっている図１の大文字"Ｅ"を表す２成分入力ベクトルＡをもう一度参照し、ｍ＝４と想定すると、Ａ１は、ａ０＝１、ａ１＝１、ａ２＝０、ａ３＝１で構成される２進ワードによって表され、すなわち、Ａ１＝１１０１になる。
【００１１】
最終結果として、入力ベクトルに割り当てなければならない適切なカテゴリまたはクラス（ある場合）を決定するために、特徴空間のプロトタイプ・ベクトルと入力ベクトルとの比較に自動的に移行するよう設計されている、コンピュータ・ベースの文字認識システムを考えることができる。これまで、前述の分類方法をハードウェアで実施するための一般的な方法では、フォン・ノイマン型プロセッサ・ベースのコンピュータを使用してきたが、現在ではこのようなプロセッサ上でニューラル・アルゴリズムを実行すること（ソフトウェア・エミュレーション）が当技術の最新動向になっている。
【００１２】
ニューラル・コンピュータでは、生体の神経系を模倣するために限られた数の電子ニューロン回路を組み立てることによって構築したニューラル・ネットワークを使用する。生物学的ニューラル・ネットワークは、そのユニットとして神経細胞またはシナプスを使用し、きわめて多数のシナプスを相互接続することによって構築されている。生物学的ニューラル・ネットワークのシナプスは、全体的な処理時間が非常に短くなるように並列方式で計算を実行する。しかも、生物学的ニューラル・ネットワークの諸機能は、学習中のシナプスの挙動とシナプス間の接続状態を変更することによって実現される。ニューラル・コンピュータは、文字または音声認識のようなパターン処理、プロセスの最適化、ロボット制御などを実行することができる。しかし、計算プロセスはソフトウェア・プログラムの命令に従って順次実行されるので、処理時間が長くなる。ニューラル・コンピュータは、正式な規則に入れにくい処理手順を有する問題の場合に諸機能を実現できるという特別な特性を有する。通常の学習を実行中にこのようなニューラル・コンピュータを動作させると、好ましい諸機能が経時変化しても、このような変化に追随することができる。さらに、このようなニューラル・コンピュータで実現されるニューラル・ネットワークは、同一の基本ニューロン回路を相互接続することによって構築され、基本ニューロン回路のいずれかで障害が発生した場合、障害が発生したニューロン回路を正常に機能している別のニューロン回路に置き換えるだけでニューラル・ネットワークを容易に修理することができる。その結果、ＶＬＳＩ半導体チップを使用する場合に重要な態様である、欠陥に強いニューラル・ネットワークの実現が可能になる。
【００１３】
各種のニューラル・ネットワーク・アーキテクチャが考えられる。M. ホラー（Holler）他の論文"A high performance adaptive classifier using radial basis functions"（Microcircuit Applications Conference、１９９２年１１月９〜１２日、Las Vegas, USA (Ref. D1)）に記載されているような標準的な放射基本機能（ＲＢＦ）技法によれば、ＲＢＦタイプの好ましいニューラル・ネットワークは、３層構造で構成される。入力端子を含む第１の層は入力層または入力ニューロン層と呼ばれている。第２層または隠蔽層はニューロン回路自体で形成される。第３の層またはニューロン出力層は、第２の層のニューロン回路の出力を入力として使用する。各ニューロン回路は、格納済みプロトタイプ・ベクトルの成分に関連する重み係数（現在、上記の論文では接合重みと呼ばれている）を有する。第１の層の入力端子上で得られる入力信号は、処理のために第２の層のすべてのニューロン回路に並列に印加される。したがって、処理は、入力ベクトルとニューラル・ネットワークのすべてのプロトタイプ・ベクトルとの距離を決定し、所与のニューロン回路を反応させたりさせなかったりするための前述の比較で構成される。第２の層の各ニューロン回路によって生成される信号は、所定のカテゴリの１つの出力ニューロンだけに入力される。
【００１４】
図６は、ＲＢＦタイプの１０個のニューロン回路Ｎ１〜Ｎ１０で構成されたこのような従来の３層ニューラル・ネットワーク２を示している。第１の層は、２つの成分Ａ１およびＡ２で構成された入力ベクトルＡを受け取るようになっている２つの入力ニューロンＩ１およびＩ２で構成されている。この第１の層は、第２の層の各ニューロン回路Ｎ１〜Ｎ１０と完全に相互接続している。第２の層の各ニューロン回路は、第３の層の１つの出力ニューロンだけに関係する可能性がある。学習フェーズ中は、第２の層のニューロン回路を使用して、通常、重みメモリと呼ばれるＲ／Ｗメモリにプロトタイプ・ベクトルを格納する（ニューロン回路当たりプロタイプ・ベクトルを１つずつ格納する）。ニューラル・ネットワーク２を初めて使用する場合、すべての重みメモリは任意の内容を有する。ニューロン回路は「空き」状態であると言われる。プロトタイプ・ベクトルがニューロン回路に格納され、第２の層のこのようなニューロン回路と第３の層の出力ニューロンとの接続が確立する、すなわち、所定のカテゴリがそれに割り当てられると、このように「学習」したこのニューロン回路は空き状態とは見なされなくなり、「使用中」であると言われる。たとえば、ニューロン回路Ｎ２、Ｎ５、およびＮ８（単一出力ニューロンＯ２を介して同一カテゴリＣ２に関連付けられている）は使用中である。カテゴリＣ１およびＣ３に関連する他のニューロン回路にも同様の理論が適用される。一方、所定のニューロン回路の影響フィールドの値が学習フェーズ中の縮小プロセスの過程で縮小可能であることは前述した。しかし、いかなる状況においてもＭｉｎＩＦ値以下の値に達することは許されないので、縮小プロセス中にこのような事態が発生すると、このニューロン回路は「縮退」したと言われる。ニューロン回路Ｎ１０はまだ空き状態になっており、しかも、この回路はそれまでに学習していないので、それにはどのカテゴリも割り当てられていない。結論として、ニューラル・ネットワークでは、所定のニューロン回路の状態は空き状態か使用中のいずれかになる。
【００１５】
図７に示す特徴空間は、例示のための図６のニューラル・ネットワーク２（ニューロン回路Ｎ１０だけは例示されていない）とほぼ一致するように設計されている。図７は、ニューロン回路Ｎ１〜Ｎ９に格納されている９個のプロトタイプ・ベクトルの影響フィールドを示す２次元特徴空間の例を示している。これらのニューロン回路は、２個、３個、４個のニューロン回路からなる３つのグループで構成され、それぞれがカテゴリＣ１、Ｃ２、およびＣ３に関連する。さらに、図７から明らかなように、同一カテゴリのプロトタイプ・ベクトルに関連する実際の影響フィールドは様々である可能性がある。所定のカテゴリは、隣接するかしないか、またオーバラップするかしないかにかかわらず、１つまたは複数のプロトタイプ・ベクトルによって表すことができる。認識フェーズ中に図７の２次元特徴空間に入力ベクトルをマッピングする方法に応じて、すべての格納済みプロトタイプ・ベクトルとの比較の結果、以下に記載する様々な場合が発生するのは明らかである。
【００１６】
特徴空間のすべてのプロトタイプ・ベクトルとの比較のために入力ベクトルがニューラル・ネットワーク２に提示される認識フェーズでは、図５を参照して論じたように、各ニューロン回路が前記入力ベクトルとその格納済みプロトタイプ・ベクトルとの距離を計算する。入力ベクトルが所定のプロトタイプ・ベクトルの影響フィールド内に入る場合、この所定のプロトタイプ・ベクトルに付属するカテゴリが入力ベクトルに割り当てられる。入力ベクトルが同一カテゴリに関連する複数のプロトタイプ・ベクトルの影響フィールド内に入る場合も同じ理論が適用される。いずれの場合も、単一カテゴリでニューラル・ネットワークが認識した入力ベクトルは「識別済み」であると言われる。入力ベクトルが、オーバラップする各種カテゴリに属す少なくとも２つのプロトタイプ・ベクトルの影響フィールド内に入る場合、入力ベクトルは少なくとも２回認識されるが、識別されないので、この入力ベクトルは「未定義」または「不定」であると言われる。というのは、それに割り当てられる（または関連付けられる）カテゴリが決定できないからである。上記のいずれの場合でも、入力ベクトルを認識した対応するニューロン回路は「発動」または「起動」したと言われ、発動信号Ｆがアクティブ（Ｆ＝１）に設定される。入力ベクトルがいずれのプロトタイプ・ベクトルの影響フィールドにも入らない場合は、ニューラル・ネットワークのどのニューロン回路も発動しない（各発動信号Ｆが非活動状態（Ｆ＝０）になる）。ニューロン回路レベルで生成され「ローカル」または「ニューロン」データと呼ばれるデータと、ニューラル・ネットワーク・レベルで生成され「グローバル」または「ニューラル」データと呼ばれるデータとを区別することは有益である。ローカル・データは、まず、結果データ（たとえば、発動するニューロン回路がローカル結果発動信号を生成する）と、状況データ（たとえば、縮退したニューロン回路が縮退状況を保持する）とを含み、これらを以下では結果データと呼ぶ。ローカル・データはさらに出力データ（たとえば、距離またはカテゴリ・データ）を含む。同様に、グローバル・データは、グローバル結果データ（たとえば、入力ベクトルを識別するニューラル・ネットワークがグローバル結果識別済み信号を生成する）と、グローバル出力データ（たとえば、最小距離Ｄｍｉｎ）とを含む。したがって、入力ベクトルの提示に対する個々のニューロン回路のローカル反応を表すローカル・データが、出力ニューロン・レベルで「統合」されて前記グローバル・データを生成する。
【００１７】
図６に示すタイプのニューラル・ネットワークは、これまでに当業界で広く使用されてきた。しかし、現在既知のニューロン回路アーキテクチャは、いずれも本当に満足できるものとは思われず、一般に数多くの制限や不便さを露呈している。
【００１８】
まず第一に、従来のニューラル・ネットワークは、カスケード性をまったく備えていないか、限定されたカスケード性を備えている。カスケード性とは、アプリケーションが必要とする数のニューロン回路を取り入れた複合ニューラル・ネットワークを形成するために、無制限の数のニューロン回路を接続できる能力を意味する。ニューラル・ネットワークは通常、ＶＬＳＩ半導体チップで実現されるので、そのため、このような複合ニューラル・ネットワークを最終的に形成するために、最小数の追加回路を使用して、必要なだけのニューラル・チップをカスケード接続することが強く望まれるはずである。残念ながら、このようなフレキシビリティはこれまで可能になっていない。その結果、標準的なニューラル・チップ／モジュールのカスケード性は非常に限定されたものになっている。というのは、大量の同一チップを組み立てることは容易な作業ではなく、一般に多数の外部構成要素を必要とするからである。しかも、このような外部構成要素が必要な場合は、複合ニューラル・ネットワーク内のニューロン回路の数がユーザにとって透過ではなくなる恐れがある。この透過性は、特に学習フェーズでは最も重要な要素である。
【００１９】
次に、これまでに設計された従来のニューラル・ネットワークは自律性ではない。すなわち、ニューラル・ネットワーク・レベルでグローバル結果を得るには、必ずディジタル・コンピュータ、通常はマイクロコントローラまたは専用マイクロプロセッサによるデータ管理全体に関する監視が必要になる。たとえば、米国特許第５１６５０１０号（Ref. D2）、より具体的には、全体でまとまってニューラル・ネットワークを形成する複数のニューロン回路に対する監視を行うマイクロコントローラが示されている図２３を参照することができる。上記の特許に記載されたニューラル・システムは、従来のマイクロコントローラと同じ並列アーキテクチャで構成されている。ニューロン回路とマイクロコントローラとの間でデータ・バスを介してデータがやりとりされるのに対し、アドレスは標準通りアドレス・バス上を循環する。従来のニューラル・ネットワークのニューロン回路は、このように完全に受動的で、マイクロコントローラとだけやりとりする。すなわち、ニューラル・ネットワークを形成する各種のニューロン回路間ではデータ通信または交換が一切行われない。しかも、前記のコンピュータはソフトウェアによって動作するものなので、認識フェーズまたは学習フェーズは結果的に長く複雑な操作になる。もう１つの結果は、従来のニューラル・チップを使用すると、アドレス指定の要件のために、入出力パッドの数がそこに統合されたニューロン回路の数によって決まる点である。このようなニューラル・チップを取り入れた電子ニューラル・モジュールの入出力ピンについても、同じ理論が適用される。
【００２０】
これに対して、このような従来のニューラル・ネットワークで使用できるカテゴリの数は限られている。たとえば、米国特許第４３２６２５９号（Ref. D3）に記載されたニューラル・ネットワークを参照すると、そのニューロン回路はＰＬＡの水平線に信号供給するために１列に配置され、ＰＬＡの垂直線がカテゴリを供給する。上記特許の図８から明らかなように、多くの理由により、特にユーザがその結果を解釈しなければならないので、カテゴリの数を大幅に増加することができないことは明白である。ニューラル・ネットワークによる入力ベクトルの形式識別に関するグローバル情報は直接生成されない。複数のニューロン回路が発動した場合、ユーザはその結果を解釈しなければならない。
【００２１】
同様に、カテゴリを、図６のニューラル・ネットワーク２の各出力ニューロンに付けられたラベルと見なすと、ニューロン回路レベルでは類似ラベルが存在しないことに留意されたい。これは、所与のニューロン回路が所定のファミリーの入力ベクトルの認識フェーズに関与できないようにする必要がある場合に、従来のニューロン回路アーキテクチャに課せられるもう１つの制限となる。この手法を使用すると、ユーザによってプログラム可能と思われる単一ネットワークまたはそのサブセットとしてニューラル・ネットワークの構成も可能になるはずである。
【００２２】
最後に、学習は自力で行われるわけではないが、一般にその重みはマイクロコントローラによって別々に決定され、その後、マイクロコントローラが学習フェーズが完了したと推定したときにニューロン回路にロードされる。その結果、認識フェーズと学習フェーズは明らかに別個の期間になる。従来のニューラル・ネットワークにおけるトレーニングは、通常は初期設定時に任意に設定される重みを調整することによって達成される。信号はニューラル・ネットワークを介して入力され、出力信号が観察される。出力信号が間違っている場合は、数学的計算によって、重みをどのように調整するかが決定される。次に、入力信号が再印加され、出力信号が正しくなるまで出力信号がもう一度再評価される。米国特許第５２２２１９３号（Ref. D4）に教示されるような先行技術のシステムでは、ニューラル・ネットワークをトレーニングするには、総称汎用プログラマ・インタフェース（ＧＵＰＩ）を介してホスト・コンピュータに接続されたパーソナル・コンピュータ・パーソナル・プログラマ（ＰＣＰＰ）が必要になる。
【００２３】
図６のニューラル・ネットワーク２を参照することにより、上記の欠点のすべてについて簡単に例示する。まず、入力ベクトルと、ニューロン回路Ｎ１〜Ｎ９に格納されたプロトタイプ・ベクトルとの最小距離Ｄｍｉｎの決定に関する例について考察する。一般に、マイクロコントローラは、それが計算した距離を得るために第１のニューロン回路に問い合わせ、次に第２のニューロン回路に問い合わせ、２つの距離を比較して最低値を保持する。このポーリング・プロセスは、最後のニューロン回路への問合せが完了するまで連続反復によって順次続行される。したがって、入力ベクトルとすべてのプロトタイプ・ベクトルとの最小距離値は、プロセスの終了時にのみ決定され、それにより、前述の縮小プロセスが大幅に遅延する。この縮小プロセス中も類似の技法が適用される。適切なカテゴリを有する正しいニューロン回路だけが残るまで間違って発動したニューロン回路を除外するために、連続反復が実行される。いずれの場合も、一連の問合せと比較ステップをすべて実行するには、複雑な分類アルゴリズムに基づき、そのため、複数行の命令を含む、専用ソフトウェア・プログラムが必要である。このため、分類プロセスは本当に時間がかかる。図６のニューラル・ネットワーク２のすべてのニューロン回路間の通信が欠如しているため、ニューロン回路レベルのすべてのローカル結果信号とニューラル・ネットワーク・レベルのグローバル結果信号との間に存在する潜在的な相関関係は、これまで完全に引き出されてはいなかった。その結果、図６の従来のニューラル・ネットワークはユーザに対してグローバル・データに関する限定情報のみ提供する。しかも、出力ニューロン・レベルで得られるカテゴリの数は、明らかに出力ニューロン・ハードウェア構成によって制限される。前述の制限または不便さのすべてではないとしても、その多くは、本発明による改良されたニューラル半導体チップ・アーキテクチャとそれに組み込まれたニューラル・ネットワークを使用することによって、回避することができる。
【００２４】
【発明が解決しようとする課題】
したがって、本発明の主な目的は、認識フェーズ中にニューラル・ネットワークの所定の空き状態ニューロン回路に入力ベクトル成分を自動的に事前装填できるようにするためのニューラル・ネットワークの各ニューロン回路内の事前装填回路を提供することにある。
【００２５】
本発明の他の目的は、ニューラル・ネットワークが１つの連鎖として構成されている場合に、前記所定の空き状態ニューロン回路が連鎖内の第１の空き状態ニューロン回路になる、ニューラル・ネットワークの各ニューロン回路内の事前装填回路を提供することにある。
【００２６】
本発明の他の目的は、後続の学習用としてそれを事前拘束するために、入力ベクトル成分が前記第１の空き状態ニューロン回路の重みメモリに格納される、ニューラル・ネットワークの各ニューロン回路内の事前装填回路を提供することにある。
【００２７】
本発明の他の目的は、後続の学習フェーズ中はニューラル・ネットワーク内の事前拘束ニューロン回路の重みメモリの内容を上書きすることができない、ニューラル・ネットワークの各ニューロン回路内の事前装填回路を提供することにある。
【００２８】
【課題を解決するための手段】
本発明により、まず、ニューラル半導体チップのアーキテクチャの２通りの変形態様を開示する。
【００２９】
第１のニューラル・チップ・アーキテクチャの変形態様は、より具体的には、スタンドアロン動作に対応でき、
―好ましくは直列に接続され、適切なデータ・バスおよび制御バスによって並列に信号供給される複数のニューロン回路で構成されたニューロン・ユニットであって、各ニューロン回路が、
―発火タイプのローカル結果信号を第１の専用バス上に生成する手段と、
―本質的に距離またはカテゴリ・タイプのローカル出力信号を第２の専用バス上に生成する手段とを含む、ニューロン・ユニットと、
―対応するローカル結果信号とローカル出力信号の各ビット間で所定の論理機能（たとえば、ＯＲ機能）を実行して、オンチップ共通通信バスのそれぞれのワイヤで得られるそれぞれのグローバル結果信号とグローバル出力信号とを生成する手段と、
―前記グローバル結果信号またはグローバル出力信号あるいはその両方の全部または一部をフィードバック・バスを介して前記ニューロン回路のそれぞれに再注入して、そこで対応するローカル信号とグローバル信号との比較を可能にする手段とを含んでいる。
【００３０】
第２のニューラル・チップ・アーキテクチャの変形態様は、より具体的には、マルチチップ環境、すなわち、少なくとも２つのチップがオフチップ共通通信バス上に並列に接続される場合に動作できるようになっており、
―好ましくは直列に接続され、適切なデータ・バスおよび制御バスによって並列に信号供給される複数のニューロン回路で構成されたニューロン・ユニットであって、各ニューロン回路が、
―発火タイプのローカル結果信号を第１の専用バス上に生成する手段と、
―本質的に距離またはカテゴリ・タイプのローカル出力信号を第２の専用バス上に生成する手段とを含む、ニューロン・ユニットと、
―対応するローカル結果信号とローカル出力信号の各ビット間で第１の所定の論理機能（たとえば、ＯＲ機能）を実行して、オンチップ共通通信バスのそれぞれのワイヤで得られるそれぞれの第１のグローバル結果信号とグローバル出力信号とを生成する第１の手段と、
―（前記第２のオフチップ共通通信バス上で残りのニューラル・チップによって送出される対応するグローバル結果信号とグローバル出力信号とともに）前記第１のグローバル結果信号とグローバル出力信号のそれぞれのビット間で第２の所定の論理機能（たとえば、ＯＲ機能）を実行して、対応する第２のグローバル結果信号とグローバル出力信号とをそこに生成する第２の手段と、
―前記第２のグローバル結果信号またはグローバル出力信号あるいはその両方の全部または一部をフィードバック・バスを介して前記ニューロン回路のそれぞれに再注入して、そこで対応するローカル信号と第２のグローバル信号との比較を可能にする手段とを含んでいる。
【００３１】
ただし、オフチップ共通通信バス上でグローバル信号を直接生成するために、第２のアーキテクチャの変形態様では、２つではなく、１つの所定の論理機能しか実行できないことに留意されたい。
【００３２】
上記の２通りのアーキテクチャの変形態様は、いずれかの共通通信バスを選択してフィードバック・バスに信号供給するためにマルチプレクサを使用するだけで、以下にベース・ニューラル・チップと呼ばれる単一ニューラル・チップに結合することができる。このようなベース・ニューラル・チップに組み込まれたニューラル・ネットワークについては、以下、ベース・ニューラル・ネットワークと呼ぶ。
【００３３】
さらに本発明は、前記オフチップ共通通信バス上で複数のベース・ニューラル・チップを並列に接続することによって形成されたモジュールに関連する。このようなモジュールについては、以下、基本モジュールと呼ぶ。それに組み込まれたニューラル・ネットワークは、前記基本モジュールを形成する個々のベース・ニューラル・チップのベース・ニューラル・ネットワークの合計に相当するニューラル容量を有する。このニューラル・ネットワークについては、以下、基本ニューラル・ネットワークと呼ぶ。
【００３４】
最後に、本発明はさらに、複数のこのような基本モジュールを組み立てることによって形成されたモジュールに関連する（基本モジュールに組み立てることができるチップの数は当技術によって制限される可能性がある）。このようなモジュールについては、以下、複合モジュールと呼ぶ。それに組み込まれたニューラル・ネットワークは、前記複合モジュールを形成する個々のモジュールの基本ニューラル・ネットワークの合計に相当するニューラル容量を有する。このニューラル・ネットワークについては、以下、複合ニューラル・ネットワークと呼ぶ。前記各種のニューラル・ネットワークの区別が不適切な場合は、以下の説明においてニューラル・ネットワークという総称を使用する。
【００３５】
通常の動作条件では、ニューラル・ネットワークのニューロン回路は、使用中または空き状態のいずれかになっている。本発明により、各ニューロン回路内に配置され、認識フェーズ中にニューラル・ネットワークの所定の空き状態ニューロン回路の重みメモリにのみ入力ベクトル成分をロードできるようにする事前装填回路を開示する。この事前装填回路は、本質的には、メモリ制御信号によって制御される重みメモリ回路と、どのニューロン回路が前記所定の空き状態ニューロン回路であるかを認識し、認識フェーズ中に前記所定の空き状態ニューロン回路についてのみ前記メモリ制御信号をアクティブに設定することができる回路とで構成されている。このニューロン回路が使用中になる、すなわち、入力ベクトルがそれに付属するプロトタイプ・ベクトルとして格納されると、その重みメモリの内容は修正できなくなる。ニューラル・ネットワークが１つの連鎖として構成された複数のニューロン回路で構成される場合、事前装填回路は、連鎖の第１の空き状態ニューロン回路に前記入力ベクトル成分をロードできるようになっている。認識フェーズ中に入力ベクトルの事前装填を実行すると、拘束プロセスの効率が向上し、入力ベクトルの学習時間が大幅に削減される。
【００３６】
本発明の特性を示していると思われる新規の特徴は、特許請求の範囲に記載されている。しかし、本発明そのもの、ならびに本発明の他の目的および利点については、添付図面に関連して読まれる好ましい実施例に関する以下の詳細な説明を参照すれば十分理解することができる。
【００３７】
【実施例】
本実施例の記載は以下のように構成されている。
ＺＩＳＣチップ・アーキテクチャの簡単な説明
はじめに
基本ＺＩＳＣチップ・アーキテクチャ
基本ＺＩＳＣチップ・アーキテクチャの変形態様
ＺＩＳＣモジュール・アーキテクチャ
基本ＺＩＳＣチップの動作の簡単な説明
初期設定モード
認識モードと事前装填モード
学習モード
保管モードと復元モード
基本ＺＩＳＣチップの詳細な説明
コンテキスト・レジスタと突合せ回路（１００／１５０）
Ｒ／Ｗメモリ回路（２５０）
距離評価回路（２００）
比較回路とＩＦ回路（３００／３５０）
識別回路（４００）
Ｄｍｉｎ決定回路（５００）
デイジー・チェーン回路（６００）
ニューロン間通信システム（ＣＯＭ―ＢＵＳ）
補助回路
基本ＺＩＳＣチップの主な特徴
基本ＺＩＳＣチップの主な応用例
【００３８】
また、本明細書および図面で使用される記号の定義は以下の通りである。
Ａ                      入力ベクトル
ＡＩＦ                  実際の影響フィールド値
Ａ１                    入力ベクトルの第１の成分（重み）
ａ１                    入力ベクトル成分の第１のビット
Ｂ                      プロトタイプ・ベクトル
Ｂ１                    プロトタイプ・ベクトルの第１の成分
ｂ１                    プロトタイプ・ベクトル成分の第１のビット
ＣＡＴ                  入力カテゴリ
ＣＡＴ−ＢＵＳ          入力カテゴリを伝送するバス
Ｃ                      ニューロン回路１１のローカル・カテゴリ
Ｃａｔ−ＢＵＳ          ローカル・カテゴリを伝送するバス
ＣｉまたはＣ−ｉ        ニューロン回路１１−ｉのローカル・カテゴリ
Ｃ*またはＣ**           グローバル・カテゴリ
ｃ                      繰上りビット信号
Ｃｉｎ                  加算器の繰上り入力信号
Ｃｇｅｎ、Ｃｏｕｔ      加算器の繰上り出力信号
Ｃｍｉｎ                最小カテゴリ
ＣＯ                    コミット済みニューロン回路用の制御信号
ＣＯＭ*―ＢＵＳ         Ｒ*信号とＯＵＴ*信号を伝送するバス
ＣＯＭ**―ＢＵＳ        Ｒ**信号とＯＵＴ**信号を伝送するバス
ＣＯＭ−ＢＵＳ          ＣＯＭ*―ＢＵＳとＣＯＭ**―ＢＵＳの総称名
ＣＸＴ                  入力コンテキスト・データ
ＣＸＴ−ＢＵＳ          ＣＸＴデータを伝送するバス
Ｃｘｔ                  ローカル・コンテキスト・データ
Ｃｘｔ−ＢＵＳ          Ｃｘｔデータを伝送するバス
Ｄ、Ｄｉ、またはＤ−ｉ  ニューロン回路によって計算された距離
ＤＡＴＡ−ＢＵＳ        データを伝送するバス
ＤＣＩ                  デイジー・チェーン入力端子／信号
ＤＣＯ                  デイジー・チェーン出力端子／信号
ＤＩＳＴ―ＢＵＳ        距離Ｄ信号を伝送するバス
ＤＥＧ                  縮退状況信号
ＤＥＧＯＵＴ            ローカル結果縮退信号
Ｄｍｉｎ                最小距離
ＥＸＣＬＩＮ            探索／分類回路の入力除外信号
ＥＸＣＬＯＵＴ          探索／分類回路の出力除外信号
Ｆ                      ローカル結果発動信号
Ｆ*またはＦ**           グローバル結果発動信号
ｆ                      強制ビット信号
ｇ                      反転強制ビット信号
ＧＤＡＴＡ−ＢＵＳ      グローバル出力バス
ＩＮＤＡＴＡ−ＢＵＳ    入力データ・バス
ｉ                      作業変数
ｉまたは−ｉ            ニューロン回路１１−ｉに関連する
Ｊ                      比較回路によって生成された信号
Ｊ−ＢＵＳ              Ｊ信号を伝送するバス
ｊｋ                    Ｊ信号のｋ番目のビット
Ｋ                      ブロック４００の中間信号
ｋ                      作業変数
Ｌ                      学習中にアクティブの制御信号
ＬＴ                    中間信号（未満）
ＬＴＥ                  中間信号（以下）
Ｌｋ                    ｋ番目の行Ｌｋによって形成された２進ワード
Ｌ１  ｎｏｒｍ          マンハッタン距離計算法
Ｌｓｕｐ                平方距離計算法
ｌ                      作業変数
Ｍ−ＢＵＳ              ＺＩＳＣチップのバス
ｍ                      ベクトル成分の符号化用のビットの数
ＭａｘＩＦ              ＡＩＦの最大値
ＭｉｎＩＦ              ＡＩＦの最小値
ｎ                      ベクトル成分の数
Ｎ                      ＺＩＳＣチップ内のニューロン回路の数
ＮＭ                    通常サブモード（認識フェーズ中）
ＮＮＭ                  最も近い隣接サブモード（同上）
ＮＯ                    入力ノルム信号
ＮＯ−ＢＵＳ            ＮＯ信号を伝送するバス
Ｎｏ                    ローカル・ノルム信号
Ｎｏ−ＢＵＳ            Ｎｏ信号を伝送するバス
ＮＯＵＴ                ローカル（またはニューロン）出力信号
ＮＯＵＴ―ＢＵＳ        ＮＯＵＴ信号を伝送するバス
ＮＲ                    複合ローカル結果信号
ＮＲ−ＢＵＳ            ＮＲ信号を伝送するバス
ＯＲ                    フィードバック信号（ＯＵＴ*またはＯＵＴ**と等しい）
ＯＲ−ＢＵＳ            ＯＲ信号を伝送するバス
ＯＵＴ*                 グローバル出力信号（ＯＲ演算１回）
ＯＵＴ**                グローバル出力信号（ＯＲ演算２回）
ｐ                      ＺＩＳＣチップの各種バスの幅
ｐ                      伝播ビット（ｐ＝
【数１】
＿
ｆ
以降、ｆバーと記載する。
）
ＰＵ                    処理ユニット
ｑ                      作業変数
Ｑ                      基本モジュール内のチップの最大数
Ｒ                      複合モジュール内の基本モジュールの最大数
Ｒ*                     複合グローバル結果信号
Ｒ*−ＢＵＳ             Ｒ*信号を伝送するバス
ＲＡＭ−ＢＵＳ          ニューロン回路のバス
ＲＥＳＥＴ              一般リセット制御信号
ＲＳ                    格納可能用の制御信号
ｓ                      部分合計の１つのビット
Ｓ                      加算器によって出力される合計信号
ＳＥＬＥＣＴ            ゲート信号
ＳＬ                    状況線
ＳＴ                    格納制御信号
ＵＮＣ／ＦＩＲＥ．ＯＫ  ローカル結果あいまい信号
ＵＮＣ／ＦＩＲＥ．ＯＫ* グローバル結果あいまい信号
Ｘ                      加算器内の中間信号
（  ）                  チップ関連参照を示す。
［  ］                  基本モジュール関連参照を示す。
｛  ｝                  複合モジュール関連参照を示す。
【００３９】
ＺＩＳＣチップ・アーキテクチャの簡単な説明
はじめに
本発明により、ニューラル・チップのプロトタイプが従来の１μｍＣＭＯＳ技術で製造されている。ベクトル成分の数ｎは１（最小数）から６４（最大数）に及ぶ。各成分を符号化するためのビットの数ｍは８である。入力データ・インタフェースは、１６ビットの双方向バスによって行われる。１４ビットの精度で距離を計算するために、前述のＬ１およびＬｓｕｐノルムが用意されている。コンテキストとカテゴリはそれぞれ７ビットおよび１４ビットで符号化されるので、その最大数は１２７と１６３８４になっている。最大影響フィールドと最小影響フィールドの半径値に対応するＭａｘＩＦとＭｉｎＩＦも１４ビットで符号化される。ＺＩＳＣチップ１０の初期設定時には、これらの値はそれぞれ０１０・・・００（すなわち、２**１３＝８１９２）および００・・・１０（すなわち、２**１＝２）になっている。これは経験に基づいて任意に決定されたデフォルト値である。チップ内のトランジスタが合計で約４０００００個になるように、シリコン基板に３６個のニューロン回路が集積されている。革新的なアーキテクチャを有するこのニューロン回路は、結果信号と出力信号を生成する。このニューラル半導体チップの完全ハードワイヤード自律態様を強調するため、以下、ＺＩＳＣチップと呼ぶことにする。ＺＩＳＣ（ＩＢＭの登録商標）とは、Zero Instruction Set Computer（またはClassifier）（ゼロ命令セット・コンピュータ（または分類器））の頭辞語である。このため、ＺＩＳＣチップはその動作のためにいかなる命令セットも必要としないので、基本的に標準的なＣＩＳＣまたはＲＩＳＣコンピュータ・チップとは区別される。このＺＩＳＣという名称は、前記の革新的なニューロン回路、前記ニューラル・チップを組み立てることにより構築されたモジュール、および最後に前記ニューラル・チップまたはモジュールに組み込まれたニューラル・ネットワークにも適用可能である。
【００４０】
基本ＺＩＳＣチップ・アーキテクチャ
ここで図８を参照すると、同図には、本発明の基本ＺＩＳＣチップ（参照番号１０）の第１の変形態様のアーキテクチャの概略ブロック図が示されている。このチップ・アーキテクチャは、ローカル（またはニューロン）結果データとローカル（またはニューロン）出力データとを生成するタイプの複数の革新的なニューロン回路を含み、本発明によるニューラル・ネットワークを取り入れたものである。図８に示す単一チップ・アーキテクチャはスタンドアロン用として作られている。革新的なニューロン回路は、すべてが合わさってニューラル・ユニット１１（＃）を形成するブロック１１−１〜１１−Ｎに含まれている。図８から明らかなように、ニューロン回路１１−１〜１１−Ｎはいずれも、１つの連鎖として構成されるように直列接続を有する。この好ましい実施例では、すべてのニューロン回路が同一であると想定し、ニューロン回路の一例を参照番号１１（場合によっては１１−ｉ）で示すことにする。ニューロン回路１１の好ましいアーキテクチャについては、図１０を参照して以下に詳細に説明する。以下の説明では、参照番号１１はニューロン回路のアーキテクチャならびにニューロン回路そのものも示す。ＺＩＳＣチップ１０のアーキテクチャとＺＩＳＣチップ１０そのものについても、同様の表記法を適用する。図８では、ニューラル・ネットワークが参照番号１１（Ａ）で示されている。このニューラル・ネットワークは、基本的には単一のＺＩＳＣチップ１０に形成されたニューラル・ユニット１１（＃）とニューロン間通信システムとで構成される。図８に示す変形態様のこの実施態様によれば、ニューロン間通信システムは、ブロック１２と、ＣＯＭ*−ＢＵＳというオンチップ共通通信バスとで構成される。これらについては以下に詳述する。図８のすべてのブロックは、ＶＬＳＩ  ＩＣチップを形成するためにシリコン基板に容易に集積可能な回路で構成されている。ＺＩＳＣチップ１０は、現在、ニューラル・ネットワーク１１（Ａ）の動作の監視が標準のニューラル・チップで実施されているので、このような監視を実行するためのマイクロコントローラを特に必要とするわけではない。このため、命令セットは一切不要である。マイクロコントローラ（またはマイクロプロセッサ）をＺＩＳＣチップ１０と併用することは可能であるが、その役割は、ニューラル・ネットワーク１１（Ａ）に入力ベクトル（およびカテゴリ）を提示することと、それからグローバル応答を得ることに限られるものと思われる。便宜上、このような動作は、以下、ＷＲＩＴＥ動作およびＲＥＡＤ動作と呼ぶ。ただし、図８のＺＩＳＣチップ１０のアーキテクチャは改善されているので、手動操作のスイッチを介してユーザがこれらの動作を実行することもできることに留意されたい。ＺＩＳＣチップ１０の所与のブロックとマイクロコントローラまたはユーザ（図示せず）との接続は、ＩＮＤＡＴＡ  ＢＵＳという１６ビットの双方向入力データ・バス（マイクロコントローラがある場合はその入出力バスに接続される）と、選択および制御信号を伝送するＳＥＬ／ＣＴＬ―ＢＵＳとによって示される。各サイクルでＩＮＤＡＴＡ―ＢＵＳ上に現れるデータをラッチする従来の入力１６ビット・レジスタ（Ｄ���ＴＡレジスタ）は図示されていない。ＺＩＳＣチップ１０と外界とのインタフェースを取るレシーバ、ドライバ、およびレシーバ／ドライバ回路は、場合に応じてそれぞれＲＲ、ＤＲ、またはＲＲ／ＤＲというブラック・ボックスによって概略が示されている。これらはいずれも回路設計者にとっては従来の回路である。
【００４１】
ブロック１３は、入力ベクトルの各主成分を表すデータがＤＡＴＡ−ＢＵＳからロードされる８ビットのレジスタである。このレジスタは、非同期モードでは任意であり、ＺＩＳＣチップ１０の同期動作モード（バースト・モード）の場合のみ必須である。
【００４２】
入力ベクトル・データに加え、各種のセットアップ・パラメータ（ＭａｘＩＦ値およびＭｉｎＩＦ値など）と入力データ（入力カテゴリ、入力コンテキスト、およびノルムなど）もＺＩＳＣチップ１０の専用レジスタでラッチされる。
【００４３】
ブロック１４および１５は、初期設定時に最大影響フィールド（ＭａｘＩＦ）値と最小影響フィールド（ＭｉｎＩＦ）値がロードされる１４ビットのレジスタである。ＭａｘＩＦ値は、所定のプロトタイプ・ベクトルの影響フィールドが学習時に取りうる最大値である。ＭｉｎＩＦは、前記影響フィールドが学習プロセス中に取りうる最小値である。ＺＩＳＣチップ１０の図示の実施例では、ＭａｘＩＦ値とＭｉｎＩＦ値が同時に使用されることはないので、レジスタ１４および１５のそれぞれの出力は、その出力バスが１４ビットのＭａｘＩＦ／ＭｉｎＩＦ−ＢＵＳを形成する２ウェイ・マルチプレクサ１６の入力に任意で接続することができる。
【００４４】
ＮＯ／ＣＸＴメイン・レジスタ１７と呼ばれる第４のブロックは、入力ノルムとコンテキスト・データを格納するために使用される８ビットのレジスタで構成される。ＮＯ／ＣＸＴメイン・レジスタ１７から出力されるバスは、ＮＯ／ＣＸＴ−ＢＵＳと呼ばれ、８ビットの幅を有する。このような入力ノルムとコンテキスト・データの役割については、図１０に関連して以下に詳述する。
【００４５】
ＩＮＤＡＴＡ−ＢＵＳ上で得られる入力カテゴリ・データＣＡＴは、１４ビットの幅を有し、ＣＡＴ−ＢＵＳと呼ばれる専用バス上で伝達される。
【００４６】
図面を明瞭にするため、図８のすべてのブロックに関する制御信号を伝送する線は図示されていない。これらの信号の多くは特定のブロック（参照番号１８）で生成される。本質的に、ブロック１８は、ＺＩＳＣチップ１０の各種ブロックの適切な動作のために必要なほぼすべての制御論理回路を含む状況／制御論理回路で構成される。ブロック１８のブロック図構成については、図１１を参照して以下に詳述する。
【００４７】
したがって、図８から明らかなように、ニューロン回路１１−１〜１１−Ｎのそれぞれには４本のバスＤＡＴＡ、ＣＡＴ、ＭａｘＩＦ／ＭｉｎＩＦ、およびＮＯ／ＣＸＴが並列に印加される。上記のバスのそれぞれのビット容量は、前述のＺＩＳＣチップ１０の特定の実施態様に関して例示のために示されているものなので、制限的に解釈してはならない。
【００４８】
次に、本発明による個々のニューロン回路（参照番号１１）のアーキテクチャの概略ブロック図を示す図１０について考察する。図１０から明らかなように、ＮＯ／ＣＸＴ−ＢＵＳは、ローカル・ノルム／コンテキスト・レジスタと呼ばれるブロック１００と、基本的に標準通りＸＯＲゲートとＯＲゲートからなる従来の突合せまたは比較回路であるブロック１５０の第１の入力とに同時に印加される。ＮＯ／ＣＸＴ−ＢＵＳは、１ビットの入力ノルム信号と７ビットの入力コンテキスト・データを伝送する。マイクロコントローラまたはユーザによって送り出された入力ノルムとコンテキスト・データがローカル・ノルム／コンテキスト・レジスタ１００に格納されると、格納されたそのデータはローカル・ノルム／コンテキスト・データと呼ばれる。ノルム／コンテキスト・レジスタ１００から出力されるデータは、ローカル・ノルムの場合はＮｏ、ローカル・コンテキストの場合はＣｘｔと呼ばれる。これらのデータは、突合せ回路１５０の第２の入力に印加される７ビットのＣｘｔ−ＢＵＳと、ブロック２００に接続された１ビットのＮｏ−ＢＵＳとの２つの部分で構成されるＮｏ／Ｃｘｔ−ＢＵＳ上で得られる。ブロック２００については、以下、マルチノルム距離評価回路と呼ぶ。
【００４９】
本発明によれば、ニューラル・ネットワーク１１（Ａ）が入力ベクトルを学習する必要があるとマイクロコントローラまたはユーザが判断すると、その後ただちに、空き状態のニューロン回路１１を拘束するか、または間違って発動した使用中ニューロン回路のＡＩＦ値の縮小に進むかの判断が、ニューラル・ネットワーク１１（Ａ）そのものに属すようになる。拘束プロセスが終了すると、ノルム／コンテキスト・レジスタ１００の内容が、ＮＯ／ＣＸＴ−ＢＵＳを介して図８のＮＯ／ＣＸＴメイン・レジスタ１７から自動的にロードされる。その後、ＮＯ／ＣＸＴメイン・レジスタ１７とノルム／コンテキスト・レジスタ１００の内容が異なる場合もある。ローカル・ノルム／コンテキスト・レジスタ１００に格納されているローカル・ノルム（Ｎｏ）およびコンテキスト（Ｃｘｔ）データと、ＮＯ／ＣＸＴメイン・レジスタ１７に保持されている入力ノルム（ＮＯ）およびコンテキスト（ＣＸＴ）データとの間にこのような差があるために、相当な恩恵が得られる可能性がある。
【００５０】
コンテキストに関する限り、この差を使用して各種の入力タイプを区別できることは有利である。たとえば、コンテキスト・データの手法を使用して、一方が大文字を表し、もう一方が小文字を表すという２通りの入力ベクトル・ファミリーを区別する（または、より一般的には、異なる活字フォント同士を区別する）ことができる。この場合、大文字の認識を担当するニューラル・ネットワーク１１（Ａ）のすべてのニューロン回路には第１の２進値と等しいローカル・コンテキストがロードされ、小文字の認識を担当する残りのすべてのニューロン回路には第２の２進値と等しいローカル・コンテキスト・データがロードされるはずである。このため、ローカル／入力コンテキストの手法では、所定の入力コンテキストで学習したニューロン回路の選択と、それ以外のすべてのニューロン回路の抑止が可能になる。入力ベクトルを認識するたびに、ニューロン回路１１のローカル・ノルム／コンテキスト・レジスタ１００に格納されているコンテキスト値がＮＯ／ＣＸＴメイン・レジスタ１７に格納されているコンテキスト値と比較される。同一であると判明した場合は、そのニューロン回路が選択され、同一であると判明しなかった場合は、そのニューロン回路が抑止される。この比較は、ＮＳ（ＮＳとはNeuron Selection（ニューロン選択）を意味する）という信号を生成して所定のニューロン回路を選択または抑止するという役割を有する突合せ回路１５０で行われる。そのため、前述の通り、突合せ回路１５０は、ＮＯ／ＣＸＴ−ＢＵＳのコンテキスト部分（ＣＸＴ−ＢＵＳ）を介してＣＸＴ信号を受け取り、Ｎｏ／Ｃｘｔ−ＢＵＳのコンテキスト部分（Ｃｘｔ−ＢＵＳ）を介してノルム／コンテキスト・レジスタ１００から出力されたＣｘｔ信号を受け取る。前記の信号同士が一致していると、ＮＳ信号がアクティブに設定され、後述するように前記ニューロン回路がＺＩＳＣチップ１０の残りのニューロン回路と通信できるようになる。場合に応じて使用可能または使用不能にするために、図１０のニューロン回路アーキテクチャの所与のブロックに信号ＮＳが印加される。認識フェーズ中は、もはや空き状態ではなくなり（すなわち、すでに使用中になっている）、ＮＳ信号によって選択されたニューロン回路が「コミット済み」であると言われる。このため、本発明のコンテキスト手法により、ニューラル・ネットワーク１１（Ａ）を単一ニューラル・ネットワークとしてまたはその個別サブセットを配置したものとして構成することが可能になる。後者の場合、ニューラル・ユニット１１＃内の各種グループのニューロン回路がこのように定義される。
【００５１】
これに対して、ローカル・ノルム信号Ｎｏは、後述するように、入力ベクトルＡとニューロン回路１１の重みメモリに格納されたプロトタイプ・ベクトルＢとの距離を計算する方法を決定する。本発明によれば、ローカル・ノルム信号Ｎｏは、評価回路２００内部の妥当な回路実施態様により必要な計算アルゴリズムを選択する（ＺＩＳＣチップ１０は完全にハードウェアによる解決策に基づくものである）。この例のＺＩＳＣチップ１０の各ニューロン回路１１は、ＭＡＮＨＡＴＴＡＮ距離（Ｌ１ノルム）すなわちＤ＝ｓｕｍ（ａｂｓ（Ａｋ−Ｂｋ））またはＳＱＵＡＲＥ距離（Ｌｓｕｐノルム）すなわちＤ＝ｍａｘ（ａｂｓ（Ａｋ−Ｂｋ））のいずれかを計算することができる。この場合、変数ｋは１からｎまでのあらゆる値を取る。ただし、"ａｂｓ"は「絶対値」を表す一般的な省略形であることに留意されたい。開示されたＺＩＳＣチップ１０の実施態様によれば、ローカル・ノルムおよびコンテキスト・データはそれぞれ１ビットおよび７ビットで符号化される。たとえば、Ｎｏ／Ｃｘｔ−ＢＵＳの最上位のビット（ＭＳＢ）はローカル・ノルムを表し、残りのビットはローカル・コンテキストを表す。初期設定時には、デフォルトによりＭＡＮＨＡＴＴＡＮ距離を計算するために、このローカル・ノルム・ビットＮｏがゼロになる。これに対して、ローカル・コンテキスト・データを保持するために７ビットが使用されるが、ゼロ値は予約されているので、最高１２７通りのコンテキスト値のみ可能になる。後者の場合、ＺＩＳＣチップ１０のすべてのニューロン回路が無条件に選択される。すなわち、ローカル・データと入力コンテキスト・データとの前述の比較は行われない。
【００５２】
ＤＡＴＡ−ＢＵＳは、マルチノルム距離評価回路２００の一方の入力と、一般に読取り書込みメモリ回路であるブロック２５０とに印加される。図８のＺＩＳＣチップ１０の本発明の実施態様によれば、本質的に読取り書込みメモリ２５０は、通常は重みメモリと呼ばれる６４ワード×８ビットのＲＡＭマクロで構成される。Ｒ／Ｗメモリ回路が、ニューラル・ネットワークのすべてのニューロン回路に共通の単一Ｒ／Ｗメモリ回路ではなく、各ニューロン回路１１にそれに関連するプロトタイプ・ベクトルの各主成分を格納できるようになっていることは、本発明の重要な特徴である。Ｒ／Ｗメモリ回路２５０を評価回路２００のもう一方の入力に接続するバスには、ＲＡＭ−ＢＵＳと呼ばれる。認識フェーズ中に、すべてのニューロン回路１１−１〜１１−ＮのＲ／Ｗメモリ回路２５０は、ＩＡＤＤ／ＣＴＬ−ＢＵＳを介してブロック１８によって同一成分アドレスを使用して同時かつ並列にアドレス指定される。また、ＲＳという制御信号がＲ／Ｗメモリ回路２５０に印加される。このＲＳ信号は、所定の空き状態ニューロン回路、たとえば、連鎖内の最初の回路のみのＲ／Ｗメモリ回路２５０に入力ベクトルの成分を格納できるようにするためのイネーブル信号である。この最初の空き状態ニューロン回路は、以下、「学習可能」ニューロン回路と呼ぶ。すでに使用中になっているニューロン回路、すなわち、そのＲ／Ｗメモリ回路２５０にすでにプロトタイプ・ベクトルの成分が入っているニューロン回路の場合、このようなニューロン回路によって生成されるＲＳ信号は、それに対する書込みが許可されなくなるような信号である。認識フェーズ中に学習可能ニューロン回路のＲ／Ｗメモリ回路２５０に入力ベクトル成分をロードすることは、本発明による革新的なニューロン回路アーキテクチャのもう１つの重要な特徴である。消費電力を節約するため、すべての空き状態ニューロン回路のＲＡＭメモリ回路に入力ベクトル成分がロードされるわけではない。使用中ニューロン回路の評価回路２００だけが、ＤＡＴＡ−ＢＵＳ上に提示される入力ベクトルＡと前記Ｒ／Ｗメモリ回路２５０に格納されたプロトタイプ・ベクトルＢとの距離を計算することが好ましい。計算される距離Ｄは、評価回路２００に印加されるローカル・ノルム信号Ｎｏの値に応じて、前述のように、Ｌ１ノルムの場合はＭＡＮＨＡＴＴＡＮ距離、またはＬｓｕｐノルムの場合はＳＱＵＡＲＥ距離のいずれかになる。しかし、他の計算方法も考えられるはずである。処理速度を上げるため、第１の入力ベクトル成分が評価回路２００に提示されると、ただちに距離計算が開始される。前記の成分がすべて処理されると、評価回路２００は１４ビットのＤＩＳＴ−ＢＵＳ上に最終距離Ｄ信号を生成する。入力ベクトルの最後の成分の後には制御信号ＬＣＯＭＰ（Last COMPonent（最後の成分））が続く。
【００５３】
距離Ｄ信号は、ＤＩＳＴ−ＢＵＳを介してブロック３００の第１の入力と、ＤＩＳＴ−ＢＵＳを介してブロック３５０の第１の入力に印加される。ブロック３５０の構造については、図１２に概略を示す。ブロック３５０から出力される信号Ｊは、ブロック３００の第２の入力に印加される。
【００５４】
図１２から明らかなように、基本的にブロック３５０は、４ウェイ・マルチプレクサ３５１と１４ビットのＡＩＦレジスタ３５２とで構成されるＩＦ回路で構成されている。このマルチプレクサ３５１は、前記ＡＩＦレジスタ３５２を介してＯＲ−ＢＵＳ、ＤＩＳＴ−ＢＵＳ、ＭａｘＩＦ／ＭｉｎＩＦ−ＢＵＳ、およびそれ自体の出力を受け取って、それらから出力されるデータをラッチする。この段階の説明では、ＯＲ−ＢＵＳは本質的に距離（および特に最小距離Ｄｍｉｎ）あるいはデータまたは信号のカテゴリ・タイプを伝送する１４ビット幅のバスであると説明するだけで十分である。学習フェーズ中にニューロン回路１１のＡＩＦレジスタ３５２には、その最大値がＭａｘＩＦ／ＭｉｎＩＦ−ＢＵＳを介してＭａｘＩＦによって示される値がロードされる。その後、その内容は、必要であれば後続の学習フェーズ中に変更される場合もある。コミット済みニューロン回路のＡＩＦ値は、縮小プロセスの終わりに、ニューロン回路１１によって計算された距離Ｄ、ＭｉｎＩＦ（Ｄ＜ＭｉｎＩＦの場合）、またはＭａｘＩＦ（Ｄ＞ＭａｘＩＦの場合）のいずれかになる可能性がある。使用中になったばかりの第１のニューロン回路にロードされたＡＩＦ値は、Ｄｍｉｎ（入力ベクトルと最も近い隣接ニューロン回路との距離）、ＭｉｎＩＦ、またはＭａｘＩＦのいずれかになる。実際には、ＡＩＦレジスタ３５２は、ＡＩＦ、すなわち、ＭａｘＩＦとＭｉｎＩＦ（それぞれ上限値と下限値）によって定義される範囲に含まれる値を保持する。ＡＩＦ値は、認識フェーズ中は変更不能であるが、学習フェーズ中のみ変更可能である。この下限値に達する（ＡＩＦ＝ＭｉｎＩＦ）と、ただちに対応するニューロン回路１１が縮退したと言われる。信号Ｊは１４ビットのＪ−ＢＵＳ上でＩＦ回路３５０から出力される。Ｊ信号の特徴は、適切な制御信号がマルチプレクサ３５１に印加されることによって決まる。
【００５５】
もう一度図１０を参照して説明すると、基本的にブロック３００は、信号ＤとＪとの比較を行い、その論理値が比較の結果によって決まる２つの信号ＬＴ（未満）およびＬＴＥ（以下）を生成する革新的な比較回路で構成される。動作モードに応じて、様々な場合が考えられる。以下の説明は、認識モードの標準サブモード（ＮＭ）に関するものである。比較回路３００の役割は、距離ＤとＡＩＦレジスタ３５２の内容（Ｊ＝ＡＩＦ）との比較を行うことである。所定の入力ベクトルについて計算された距離Ｄがそのニューロン回路の実際の影響フィールドＡＩＦ内に入る場合、すなわち、Ｄ＜ＡＩＦの場合、入力ベクトルが認識され、ニューロン回路が発動し、最後に比較回路３００によって生成されたＬＴ信号がアクティブに設定される（ＬＴ＝１）。これに対して、入力ベクトルが厳密にはＡＩＦ内に入らない場合、すなわち、Ｄ＞＝ＡＩＦの場合、入力ベクトルは認識されず、ニューロン回路は発動せず、信号ＬＴは非活動状態に設定される（ＬＴ＝０）。認識モードではＬＴＥ信号は使用されない。一方、学習フェーズでは、縮小プロセス中に比較回路３００が計算した距離ＤとＭｉｎＩＦ値（Ｊ＝ＭｉｎＩＦ）との比較を行う。距離ＤがＭｉｎＩＦ値以下の場合、すなわち、Ｄ＜＝ＭｉｎＩＦの場合、比較回路３００から出力されるＬＴＥ信号はアクティブに設定される（ＬＴＥ＝１）。この場合、信号ＬＴＥの役割は、後述するようにブロック４００の専用レジスタ（ＤＥＧレジスタ）を設定する際に縮退状況のフラグを立てることである。これに対して、Ｄ＞ＭｉｎＩＦの場合は、信号ＬＴＥが非活動状態に設定される（ＬＴＥ＝０）。学習モードではＬＴ信号は使用されない。このため、コミット済みニューロン回路１１の場合、信号ＬＴは認識フェーズの発動ローカル結果信号Ｆに関連し、信号ＬＴＥは学習フェーズのニューロン回路の縮退状況に関連する。
【００５６】
比較回路３００によって生成されるＬＴ信号とＬＴＥ信号はブロック４００に印加される。しかも、ブロック４００は、ＯＲ−ＢＵＳ、ＣＡＴ−ＢＵＳ、およびブロック４５０の出力にも接続されている。ブロック４５０は本質的には、後続処理のためにローカル・カテゴリ・データとしてＣＡＴ−ＢＵＳ上に現れる入力カテゴリ・データＣＡＴをラッチするための従来の１４ビット・レジスタで構成されている。初期設定時にローカル・カテゴリ・レジスタ４５０の内容はゼロになる。カテゴリ・レジスタ４５０の出力に接続されているバスは、Ｃａｔ−ＢＵＳと呼ばれる。このバスはローカル・カテゴリ・データまたは信号Ｃを伝送するものである。その結果、ＣＡＴ−ＢＵＳ上に現れる入力カテゴリ・データは、カテゴリ・レジスタ４５０に保持されたローカル・カテゴリ・データＣとは異なる可能性がある。区別しても意味がない場合は、どちらのデータも以下、カテゴリ・データという単一用語で呼ぶことにする。学習フェーズでは、ニューラル・ネットワークの他のどのニューロン回路も入力ベクトルを認識していないという理由でニューラル・ネットワーク１１（Ａ）がニューロン回路１１の拘束を決定すると、ただちにカテゴリ・レジスタ４５０に所定の入力カテゴリ値がロードされる。ブロック４００は、認識フェーズ中に入力ベクトルがニューロン回路１１によって認識されたかどうかを明らかにするという主要機能を有する革新的な識別回路で構成されている。識別回路４００は、３つのローカル結果信号Ｆ、ＤＥＧＯＵＴ、およびＵＮＣ／ＦＩＲＥ．ＯＫと、１つのローカル状況信号ＤＥＧとをニューロン回路１１レベルでローカルに生成する。このようなローカル結果信号は、全体として入力ベクトルの提示に対するニューラル・ネットワーク１１（Ａ）の応答を表すグローバル結果信号の生成にとって重要なものである。
【００５７】
ニューロン回路１１が発動する、すなわち、入力ベクトルを認識すると、発動ローカル結果Ｆ信号がアクティブに設定される（Ｆ＝１）。Ｆ信号は、ＤＥＧ状況信号（以前のＬＴＥ信号の処理の結果として識別回路４００の前記専用ＤＥＧレジスタ内部で得られるもの）と結合され、ＤＥＧＯＵＴ信号を生成する（ＤＥＧＯＵＴ＝ＤＥＧ  ＡＮＤ  Ｆ）。その結果、縮退したニューロン回路が発動すると、縮退結果ＤＥＧＯＵＴ信号がアクティブに設定される（ＤＥＧＯＵＴ＝１）。信号ＦとＤＥＧＯＵＴは、実際には、ニューラル・ネットワーク１１（Ａ）への入力ベクトルの提示に対する個々のニューロン回路１１のローカル応答である。さらに、信号Ｆは、後で詳述するようにゲート信号の役割も果たす。特に、この信号は、発動していないコミット済みニューロン回路がＯＲ回路１２と前述のオンチップ共通通信バスＣＯＭ*−ＢＵＳとを介して発動した他のニューロン回路と通信できないようにするものである。最後に、識別回路４００はＵＮＣ／ＦＩＲＥ．ＯＫ信号を生成するが、その重要性については後述する。ＵＮＣ／ＦＩＲＥ．ＯＫ信号の値は、対象となるニューロン回路１１を含む、発動したすべてのコミット済みニューロン回路の（ＯＲ−ＢＵＳによる）応答を考慮に入れているので、この信号は異なる性質のものになる。ローカル（またはニューロン）結果信号Ｆ、ＤＥＧＯＵＴ、およびＵＮＣ／ＦＩＲＥ．ＯＫがまとまって、３ビットのＮＲ−ＢＵＳ上で得られる複合ＮＲ信号（ＮＲとはNeuron Result（ニューロン結果）を意味する）を形成する。
【００５８】
図１０のニューロン回路アーキテクチャのもう１つの重要な特徴は、各ニューロン回路１１に設けられ、図１３に概略が示されているブロック５００の革新的な設計にある。
【００５９】
図１３から明らかなように、ブロック５００は概略的には、３ウェイ・マルチプレクサ５０１と、革新的な探索／分類回路５０２と、論理回路５０３とで構成されたＤｍｉｎ決定回路で構成されている。マルチプレクサ５０１には、入力バスとしてＪ−ＢＵＳ、Ｎｏ／Ｃｘｔ−ＢＵＳ、およびＣａｔ−ＢＵＳが印加される。マルチプレクサ５０１の出力は探索／分類回路５０２の第１の入力に接続され、他の入力はＯＲ−ＢＵＳを受け入れる。回路５００は１４ビットのＮＯＵＴ−ＢＵＳ上にＮＯＵＴ（ＮＯＵＴとはNeuron OUTput（ニューロン出力）を意味する）というローカル出力信号を生成する。論理回路５０３は、３つの入力信号Ｆ、ＲＳ、およびＣＯを受け取り、探索／分類回路５０２の動作に有用な選択信号
【数２】
＿＿＿＿＿＿
ＳＥＬＥＣＴ
以降、ＳＥＬＥＣＴバーと記載する。
を生成する。制御信号ＲＳおよびＣＯの特徴と役割については後述する。ローカル距離Ｄ信号（Ｊ−ＢＵＳによる）とローカル・カテゴリＣ信号（Ｃａｔ−ＢＵＳによる）は、標準通りマルチプレクサ５０１に印加される制御信号に応じて、探索／分類回路５０２の入力に直接印加することができる。探索／分類回路５０２は、特に上記の信号がＮＯＵＴ−ＢＵＳ上で得られるように、バイパスするか、またはパススルーすることができる。ＺＩＳＣチップ１０の本発明の実施態様では、ＯＲ−ＢＵＳの１４ビットがゼロになるときに探索／分類回路５０２がバイパスされる。ニューロン回路１１の探索／分類回路５０２は、前記ニューロン間通信システムを介してＺＩＳＣチップ１０に組み込まれている他のニューロン回路の対応する探索／分類回路と密接に協力して仮想集合回路（後で詳述する）を形成するように設計されている。前記集合回路の重要な役割は、ニューロン回路１１−１〜１１−Ｎのうち、コミットされ発動したものについて、計算した距離のうちの最小距離Ｄｍｉｎを決定し、残りの距離を増加順に分類することである。
【００６０】
ブロック６００は、本発明のニューロン回路１１のもう１つの革新的な特徴である。本質的にブロック６００は、前述の通り、図８のＺＩＳＣチップ１０のすべてのニューロン回路が連鎖状構造を形成するように、２つの隣接ニューロン回路の同様のデイジー・チェーン回路との直列接続を可能にするデイジー・チェーン回路で構成されている。そのため、専用入力端子ＤＣＩおよび専用出力端子ＤＣＯが設けられている。デイジー・チェーン回路６００は、ニューロン回路１１が空き状態のときに第１の２進値（たとえば、０）を格納し、ニューロン回路１１が使用中のときに第２の２進値（たとえば、１）を格納する１ビットのレジスタ（ＤＡＩＳＹ  ＲＥＧ）周辺に構成されている。前記１ビット・レジスタの内容は初期設定時はゼロである。デイジー・チェーン回路６００の特定の構造の結果、学習可能になっている空き状態ニューロン回路が容易に識別される。というのは、その空き状態ニューロン回路は、ＤＣＩ端子とＤＣＯ端子にそれぞれ印加されるＤＣＩ信号とＤＣＯ信号が互いに補数関係になっている（たとえば、信号ＤＣＩ＝１で信号ＤＣＯ＝０）ニューロン回路１１−１〜１１−Ｎの連鎖において最初のニューロン回路になるからである。前記学習可能ニューロン回路の学習フェーズでは、ＳＴ（ＳＴとはSTorage enable（格納可能）を意味する）という信号が活動化され、拘束プロセスの終わりにデイジー・チェーン回路６００の前記１ビット・レジスタに「１」をロードする。次に、デイジー・チェーン回路６００はそのＤＣＯ端子に１ビットの信号ＤＣＯ＝１を生成し、次にこの信号は次のニューロン回路のデイジー・チェーン回路の入力端子ＤＣＩに入力信号として印加される。したがって、後者は、新たな学習可能ニューロン回路になる。
【００６１】
信号ＳＴが活動化されると、ただちにニューロン回路１１の拘束プロセスが開始される。ニューラル・ネットワーク１１（Ａ）のすべてのニューロン回路１１−１〜１１−Ｎが明確に使用中になると、それぞれの１ビットＤＡＩＳＹレジスタに１が充填され、その結果、ＤＣＯ−Ｎ信号が１になる。したがって、このＤＣＯ−Ｎ信号はＦＵＬＬ信号として使用することができる。これがアクティブに設定された場合は、ＺＩＳＣチップ１０に空き状態ニューロン回路１１がなくなったことを意味する。最後に、デイジー・チェーン回路６００は、ニューロン回路１１の動作にとって重要な制御信号ＣＯとＲＳも生成する。
【００６２】
実際には、図１０の残りのブロックの大部分と同様、識別回路４００とＤｍｉｎ決定回路５００は各種の制御信号によって制御される。制御信号の中には、場合に応じてＮＲ−ＢＵＳまたはＮＯＵＴ−ＢＵＳ上に信号が出されるのを妨げるものがある。その目的は、コミット済みですでに発動したニューロン回路についてのみＮＲ信号とＮＯＵＴ信号が出力されるようにすることである。そのため、ＣＯという制御信号は、ＤＣＯ信号とＮＳ信号とのＡＮＤを取ることによって生成される。したがって、信号ＣＯの役割は、その論理値に応じてニューロン回路をコミットするかどうかを指定することである。このＣＯ信号は、識別回路４００とＤｍｉｎ決定回路５００に印加され、コミット済みニューロン回路についてのみアクティブに設定される（ＣＯ＝１）。デイジー・チェーン回路６００によって生成された信号ＣＯと、識別回路４００によって生成された信号Ｆは、制御信号としてＤｍｉｎ決定回路５００に印加される。その結果、このようにＦ信号とＣＯ信号とを結合することによって、すでに発動したコミット済みニューロン回路だけが、ローカル複合結果信号ＮＲおよびローカル出力信号ＮＯＵＴをそれぞれのＮＲ−ＢＵＳおよびＮＯＵＴ−ＢＵＳ上に生成できるようになる。排他ＯＲ機能によりＤＣＩ信号およびＤＣＯ信号から得られたＲＳ（ＲＳとはReady to Store（格納可能）を意味する）というもう１つの制御信号もデイジー・チェーン回路６００で構築される。実際には、ニューロン・ネットワーク１１（Ａ）では、学習可能になっている第１の空き状態ニューロン回路が信号ＤＣＩ＝
【数３】
＿＿＿
ＤＣＯ
以降、ＤＣＯバーと記載する。
という論理関係を満たす唯一の回路になる。したがって、ＲＳ信号の役割は、Ｒ／Ｗメモリ回路２５０でのＷＲＩＴＥ動作を許可または禁止することである。各認識フェーズ中に入力ベクトルの各種成分は、学習可能ニューロン回路のＲ／Ｗメモリ回路２５０に格納されるだけである。ニューラル・ネットワーク１１（Ａ）が学習可能ニューロン回路に新しいプロトタイプ・ベクトルとしてその入力ベクトルを格納することを決めた場合、使用中のニューロン回路のＲＳ信号が適切な論理レベルに切り替わり、それに対する以降の書込みを防止する。このＲＳ信号は、後述するようにＺＩＳＣチップ１０の特定の動作モード（保管モード）中にＤｍｉｎ決定回路５００にも印加される。
【００６３】
要約すると、図１０に記載したアーキテクチャの結果、認識フェーズ中にすでに発動したコミット済みニューロン回路１１は、入力ベクトルの提示に対するローカル応答をローカルに生成する。このローカル（またはニューロン）応答は本質的には２種類のデータまたは信号で構成される。１つは、識別回路４００によって生成され、３ビットのＮＲ−ＢＵＳ上に出力されるローカル結果信号Ｆ、ＤＥＧＯＵＴ、およびＵＮＣ／ＦＩＲＥ．ＯＫであり、もう１つは、Ｄｍｉｎ決定回路５００によって１４ビットのＮＯＵＴ−ＢＵＳ上に生成されるローカル出力信号（ＮＯＵＴ）である。Ｄｍｉｎ決定回路５００の探索／分類回路５０２がパススルーされる場合は、ＮＯＵＴ信号は、距離評価回路２００によって計算されたローカル距離Ｄまたはレジスタ４５０に保持されているローカル・カテゴリＣのいずれかになる。これに対して、探索／分類回路５０２がパススルーされない場合は、最小距離決定プロセスの終わりに、これを保持するニューロン回路のＮＯＵＴ−ＢＵＳ上に最小距離Ｄｍｉｎが現れ、他のすべてのニューロン回路が除外される。すなわち、これらのニューロン回路のＮＯＵＴ信号は中立値を有することになる。図８のＺＩＳＣチップ１０の本発明の実施態様ではＯＲ回路１２が使用されているので、すべてのビットがゼロになるＮＯＵＴ信号によって中立値が示される。ただし、複数のニューロン回路が同一の最小距離Ｄｍｉｎ値を保持する可能性があることに留意されたい。
【００６４】
ここで図８に戻って説明すると、ニューラル・ネットワーク１１（Ａ）のすべてのニューロン回路１１−１〜１１−Ｎによって出力される複合ローカル結果信号ＮＲおよびローカル出力信号ＮＯＵＴは、それぞれのＮＲ−１−ＢＵＳ〜ＮＲ−Ｎ−ＢＵＳおよびＮＯＵＴ−１−ＢＵＳ〜ＮＯＵＴ−Ｎ―ＢＵＳを介してＯＲ回路１２に印加される。事実、ＯＲ回路１２で行われる後続処理にとっては、コミット済みですでに発動したニューロン回路のローカル結果信号とローカル出力信号だけが重要になる（他の信号は前述のように中立になる）。
【００６５】
基本的にＯＲ回路１２は、開示されたＺＩＳＣチップ１０の実施態様の４つの専用ＯＲ補助回路で構成される。まず第一に、３つの専用ＯＲ補助回路がそれぞれのニューロン結果信号同士のＯＲ機能を実行して、Ｒ*−ＢＵＳという３ビットのバス上に３つの対応するグローバル結果信号、すなわち、Ｆ*、ＤＥＧＯＵＴ*、およびＵＮＣ／ＦＩＲＥ．ＯＫ*を生成する。ニューロン・ネットワーク１１（Ａ）のニューロン回路１１−ｉ（ｉ＝１〜Ｎ）のローカル結果「発動」信号をＦｉと命名し、すべてのＦｉ信号のＯＲを取ると、Ｆ*＝Ｆ１  ＯＲ・・・ＯＲ  ＦＮのようなグローバル結果「発動」信号Ｆ*が生成される。ローカル結果「発動」信号Ｆｉは、ニューロン回路１１−ｉが発動したときに１になり、反対の場合は０になる。ＮＩＤ*というもう１つの関連グローバル結果信号は、前記Ｆ*信号から直接得られる。これは、ＮＩＤ*＝
【数４】
＿＿
Ｆ*
以降、Ｆ*バーと記載する。
という論理関係に応じて定義される。信号Ｆ*は、入力ベクトルＡの提示に対するニューラル・ネットワーク１１（Ａ）の第１のグローバル応答である。したがって、ニューラル・ネットワーク１１（Ａ）が入力ベクトルを認識したとき、すなわち、少なくとも１つのニューロン回路１１が発動したときに、信号Ｆ*がアクティブに設定される（Ｆ*＝１）。残りのグローバル信号ＤＥＧＯＵＴ*（ＤＥＧＯＵＴ*＝ＤＥＧＯＵＴ１  ＯＲ・・・ＯＲ  ＤＥＧＯＵＴＮ）およびＵＮＣ／ＦＩＲＥ．ＯＫ*（ＵＮＣ／ＦＩＲＥ．ＯＫ*＝ＵＮＣ／ＦＩＲＥ．ＯＫ１  ＯＲ・・・ＯＲ  ＵＮＣ／ＦＩＲＥ．ＯＫＮ）の構築についても、同じ理論が適用される。したがって、ニューラル・ネットワーク１１（Ａ）の少なくとも１つの縮退コミット済みニューロン回路が発動したときに、信号ＤＥＧＯＵＴ*がアクティブに設定される（ＤＥＧＯＵＴ*＝１）。縮退していないか、または発動していないニューロン回路の場合、その信号ＤＥＧＯＵＴは非活動状態に設定される（ＤＥＧＯＵＴ＝０）ので、対応するグローバル結果「縮退」信号ＤＥＧＯＵＴ*に一切影響しない。グローバル信号ＵＮＣ／ＦＩＲＥ．ＯＫ*の性質については後述する。
【００６６】
同様に、第４の専用ＯＲ補助回路は、ニューロン回路１１−１〜１１−Ｎによって各ビットｊ（ｊ＝１〜ｐ＝１４）ごとに生成されるすべてのローカル出力ＮＯＵＴ信号同士のＯＲ機能を実行する。ニューロン回路１１−ｉのＮＯＵＴデータは、ＮＯＵＴ−ｉ＝ＮＯＵＴ１−ｉ・・・ＮＯＵＴｊ−ｉ・・・ＮＯＵＴｐ−ｉと書くことができる２進ワードＮＯＵＴ−ｉになる。前記第４のＯＲ補助回路によって出力される信号は、ｐ＝１４ビットで構成され、ＯＵＴ*−ＢＵＳ上で得られるＯＵＴ*信号と呼ぶ。したがって、信号ＯＵＴ*ｊのｊ番目のビットは、ＯＵＴ*ｊ＝ＮＯＵＴｊ−１  ＯＲ・・・ＯＲ  ＮＯＵＴｊ−Ｎのようになる。３ビットのＲ*−ＢＵＳと１４ビットのＯＵＴ*−ＢＵＳとを統合して、１７ビットのＣＯＭ*−ＢＵＳと呼ばれるオンチップ共通通信バスを形成する。ＯＵＴ*信号は、フィードバック信号としてＯＲ−ＢＵＳというフィードバック・バスを介して図８のすべてのニューロン回路１１−１〜１１−Ｎに直接印加される。したがって、ＯＲ−ＢＵＳは、ＯＵＴ*信号を伝送するＣＯＭ*−ＢＵＳの一部から直接得られる。このＯＵＴ*信号は、マイクロコントローラまたはユーザが処理する必要はない。ただし、ここに開示されている図８のＺＩＳＣチップ１０の実施態様では、ＯＲ信号がＯＵＴ*信号にそのまま対応することに留意することが重要である。したがって、その構造がニューラル・チップの技術分野では新規であると思われるＯＲ−ＢＵＳは、図８のＺＩＳＣチップ１０の革新的なニューロン間通信システムの重要要素である。前記ニューロン間通信システムは、ＺＩＳＣチップ１０のすべてのニューロン回路１１−１〜１１−Ｎに対して非常に効率の良い相互接続方式を提供し、それにより、ニューロン回路同士の間でマイクロコントローラまたはユーザから完全に独立した完全なデータ交換が可能になる。
【００６７】
前記第４のＯＲ補助回路の主な役割は、認識フェーズ中に発動した各コミット済みニューロン回路のカテゴリ・レジスタ４５０に保持されているすべてのローカル・カテゴリ間でＯＲ機能を実行することである。前述のように、カテゴリと距離データは探索／分類回路５０２をパススルーすることが可能なので、これらのデータはローカル出力信号としてそれぞれのニューロン回路のＮＯＵＴ−ＢＵＳ上に直接印加される。ＯＲ回路１２内のこれらのニューロン回路の各カテゴリ・レジスタ４５０に格納されているすべてのローカル・カテゴリ値のＯＲを取ると、Ｃ*＝Ｃ１  ＯＲ・・・ＯＲ  ＣＮのようなグローバル・カテゴリ信号Ｃ*が得られる。このグローバル・カテゴリ信号Ｃ*は、特に、ＯＲ−ＢＵＳを介して前記ニューロン回路のそれぞれの識別回路４００に印加される。コミットされていないニューロン回路の場合は、ＯＲ回路１２の前記第４のＯＲ補助回路によって実行されるＯＲ機能に介入しないように、そのローカル・カテゴリ信号Ｃが非活動状態、たとえば、ゼロになる。識別回路４００では、グローバル・カテゴリＣ*とニューロン回路１１のカテゴリ・レジスタ４５０に格納されているローカル・カテゴリＣとのＸＯＲ機能が実行される。両方の値に不一致がある場合は、ニューラル・ネットワーク１１（Ａ）のうち、異なるカテゴリを有する少なくとも２つのコミット済みニューロン回路が発動したことを意味する。この場合、少なくとも１つの所定のニューロン回路のローカル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫが識別回路４００でアクティブに設定される（ＵＮＣ／ＦＩＲＥ．ＯＫ＝１）。これに対して、両方の値に一致がある場合は、１つのカテゴリだけが関連することを意味する。この場合は、発動したかどうかにかかわらず、すべてのコミット済みニューロン回路のローカル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫが非活動状態に設定される（ＵＮＣ／ＦＩＲＥ．ＯＫ＝０）。前記第４の専用ＯＲ補助回路ですべてのローカル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ信号のＯＲが取られ、グローバル結果ＵＮＣ／ＦＩＲＥ．ＯＫ*信号が生成される。少なくとも１つのＵＮＣ／ＦＩＲＥ．ＯＫ信号が「１」に設定されると、これにより、グローバル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ*が強制的に「１」に設定される。したがって、ＺＩＳＣチップ１０のニューロン回路のうち、それに関連する異なるカテゴリを有する少なくとも２つのニューロン回路によって入力ベクトルが認識されたときに、信号ＵＮＣ／ＦＩＲＥ．ＯＫ*がアクティブに設定される（ＵＮＣ／ＦＩＲＥ．ＯＫ*＝１）。すなわち、入力ベクトルはニューラル・ネットワーク１１（Ａ）によって認識されているが、そのカテゴリを確実に決定することはできない。
【００６８】
ニューラル・ネットワーク１１（Ａ）によって入力ベクトルが識別されるかどうかに関する重要な情報は、ＩＤ*＝Ｆ*  ＡＮＤ
【数５】
＿＿＿＿＿＿＿＿＿＿＿＿
ＵＮＣ／ＦＩＲＥ．ＯＫ*
以降、ＵＮＣ／ＦＩＲＥ．ＯＫ*バーと記載する。
という論理関係に応じて信号Ｆ*とＵＮＣ／ＦＩＲＥ．ＯＫ*から再構築されるグローバル結果信号ＩＤ*によって示される。したがって、入力ベクトルが少なくとも１つのニューロン回路によって認識され（Ｆ*＝１）、ニューラル・ネットワーク１１（Ａ）によってあいまいさを伴わずに認識された（ＵＮＣ／ＦＩＲＥ．ＯＫ*＝０）ときに、ＩＤ*信号がアクティブに設定される。このため、ＵＮＣ／ＦＩＲＥ．ＯＫ信号については、以下、ローカル結果あいまい信号と呼ぶ。
【００６９】
さらに、この第４の専用ＯＲ補助回路は、計算されたすべての距離Ｄ１〜ＤＮのうちの最小距離Ｄｍｉｎ（または、場合に応じて最小カテゴリＣｍｉｎ）の探索時に重要な役割を果たす。実際には、ニューロン回路１１の探索／分類回路５０２（図１３を参照）は、前記第４の専用ＯＲ補助回路、ＯＵＴ*−ＢＵＳ、およびＯＲ−ＢＵＳを介して他の対応する探索／分類回路と密接に協力して最小距離Ｄｍｉｎを決定できるように設計されている。最小距離の値は、いわゆるＤｍｉｎ決定プロセスの終わりにＯＵＴ*信号としてＯＵＴ*−ＢＵＳ上に現れる。事実、前述の仮想集合回路は、最小距離Ｄｍｉｎを保持するニューロン回路の探索／分類回路だけがアクティブ状態を維持するまで、Ｄｍｉｎ決定プロセス中は探索／分類回路が自己除外されるように構築される。最終的には、最小距離Ｄｍｉｎを保持するニューロン回路だけがそのＮＯＵＴ−ＢＵＳを介してＯＲ回路１２にその信号を出力できるようになる。この最小距離Ｄｍｉｎの値（ＯＲ回路１２で修正されない）は、最終的にＣＯＭ*−ＢＵＳのＯＵＴ*−ＢＵＳ部分を介してＯＲ−ＢＵＳ上で得られる。前記Ｄｍｉｎ決定プロセスの間、それぞれのＮＯＵＴ−ＢＵＳ上にニューロン回路によって出力されるローカル出力信号ＮＯＵＴは重要ではない。前記ニューロン回路１１−１〜１１−Ｎのそれぞれのローカル・カテゴリ・レジスタ４５０に格納されているすべてのローカル・カテゴリＣ１〜ＣＮのうちの最小カテゴリＣｍｉｎを決定する場合にも、同様の理論が適用される。最小距離Ｄｍｉｎは、学習フェーズの拘束プロセス中にこのニューロン回路のＡＩＦ値として、ＯＲ−ＢＵＳを介して学習可能ニューロン回路のＡＩＦレジスタ３５２にロードすることができる。
【００７０】
前述のグローバル結果信号とグローバル出力信号は、そこに格納するためにブロック１８に印加されることが好ましい。そこで図１１を参照してブロック１８の役割について詳述する。図１１を参照して説明すると、ブロック１８はＳＥＬ／ＣＴＬ−ＢＵＳおよびＩＮＤＡＴＡ−ＢＵＳを介してブロック２２に接続され、ブロック２２はマイクロコントローラまたはユーザを表すためのものである（以下、マイクロコントローラ／ユーザ２２という）。ＳＥＬ／ＣＴＬ−ＢＵＳは、選択バスＳＥＬ−ＢＵＳと制御バスＣＴＬ−ＢＵＳとで構成されている。特に、ＳＥＬ−ＢＵＳは、ＺＩＳＣチップ１０の各種レジスタを適切に選択するための信号を伝送する。また、ＣＴＬ−ＢＵＳは、マイクロコントローラ／ユーザ２２からのＳＴＲＯＢＥ、ＣＨＩＰ  ＳＥＬＥＣＴ、ＣＬＯＣＫなどの標準的な制御信号およびクロック信号を伝達する。復号論理回路１８１の機能は、前記選択信号を生成して適切なレジスタ内の特定のデータへのアクセスを可能にすることである。ＳＥＬ／ＣＴＬ−ＢＵＳ上に現れるこのような選択信号および制御信号の値に応じて、制御論理回路１８２は、プロトタイプ・ベクトル成分を格納するＲ／Ｗメモリ回路２５０にアクセスするために必要なアドレス信号など、ＺＩＳＣチップ１０の適切な動作のために内部で必要とするすべての信号を生成する。アドレス信号と制御信号は、ＩＡＤＤ／ＣＴＬ−ＢＵＳというバスを介して制御論理回路１８２から出力される。状態計算機回路１８３は、ＺＩＳＣチップ１０の動作の順序付け、特に、重要な学習フェーズと認識フェーズ中の順序付けを制御する。状況／制御回路１８４はマイクロコントローラ／ユーザ２２とのデータ交換に関連があることが明らかになる可能性があるので、この回路を実現することが好ましい。状況／制御回路は、本質的には、レジスタ１８４．１と２ウェイＡＮＤゲート１８４．２とで構成されるが、これらの構成要素の役割については後で詳述する。実際には、レジスタ１８４．１は、ニューラル・ネットワーク１１（Ａ）が全体として生成したグローバル結果信号とグローバル出力信号を格納し、さらに制御論理回路１８２で処理される制御信号も格納することができる。グローバル結果信号Ｆ*（またはＮＩＤ*）、ＤＥＧＯＵＴ*、ＵＮＣ／ＦＩＲＥ．ＯＫ*、およびＩＤ*は、ＺＩＳＣチップ１０のブロック１８のレジスタ１８４．１にロードすることもできる。特に、信号ＩＤ＊は、レジスタ１８４．１の特定の位置に格納される前にＡＮＤゲート１８４．２のＦ*信号およびＵＮＣ／ＦＩＲＥ．ＯＫ＊信号から再構築される。この位置は、マイクロコントローラ／ユーザ２２が容易にアクセスできるものでなければならない。というのは、ＺＩＳＣチップ１０に組み込まれたニューラル・ネットワーク１１（Ａ）によって入力ベクトルが最終的に正しく識別されたかどうかに関する重要な情報が入っているからである。特に、前記特定の位置は、ユーザに関する即時視覚情報用の接続ワイヤを介してＺＩＳＣチップ１０外部のＬＥＤに接続できるという利点がある。このようなグローバル結果信号およびグローバル出力信号はＭ−ＢＵＳ上で伝送される。さらに、レジスタ１８４．１は、ＩＮＤＡＴＡ−ＢＵＳを介してマイク���コントローラ／ユーザ２２と双方向通信するためのニューラル・ネットワーク１１（Ａ）の動作モードに関するデータである、セットアップ・パラメータも格納することができる。特にその内容は、ＷＲＩＴＥ動作またはＲＥＡＤ動作時にマイクロコントローラ／ユーザ２２がアクセスすることができる。ブロック１８のすべての回路は、当業者には従来のものと思われる。しかし、図８のＺＩＳＣチップ１０には、レジスタを含むＺＩＳＣチップ１０の各種資源と、ＰＣＩやＩＳＡのような最も一般的に使用されている標準バスおよびそれぞれのプロトコルとのインタフェースを取れるようになっている論理回路１８２内のインタフェース回路が設けられていることが好ましい。
【００７１】
前述のように、図８を参照すると、Ｒ*−ＢＵＳとＯＵＴ*−ＢＵＳとを統合することによってオンチップ共通通信バスＣＯＭ*−ＢＵＳが形成される。したがって、ＣＯＭ*−ＢＵＳは、入力ベクトルの提示に対するＺＩＳＣチップ１０の応答全体を伝送する。ＯＲ信号はＯＵＴ*信号と同一である。このため、図８のＺＩＳＣチップ１０には、ニューラル・ユニット１１（＃）と、ＯＲ回路１２と、ＣＯＭ*−ＢＵＳと、ＯＲ−ＢＵＳ（ＯＲ−ＢＵＳはＣＯＭ*−ＢＵＳから得られる一部と見なしてもよい）とで構成されるニューラル・ネットワーク１１（Ａ）が組み込まれている。前述のアーキテクチャを使用すると、図８の単一ＺＩＳＣチップ１０は外部出力バスを必要としないアプリケーションの場合にスタンドアロン式に動作することができる。しかし、本発明によれば、このようなアーキテクチャは、図９のアーキテクチャの変形態様（これも参照番号１０で示す）を参照して後述するように、マルチチップ環境で動作するように図８のＺＩＳＣチップ１０にこのような外部バスを設けるために容易に変更することができる。同様に、図９のＺＩＳＣチップ１０に組み込まれているニューラル・ネットワークも参照番号１１（Ａ）で示す。その目的は、アプリケーションが必要とする数のニューラル・ネットワーク１１（Ａ）を結合することにより、所望のニューラル容量のニューラル・ネットワークを形成することである。これは、マルチチップ環境で動作できるようになっている適切な数のＺＩＳＣチップ１０を組み立てることによって達成される。
【００７２】
そのため、複数のＺＩＳＣチップ１０を組み立てる場合は、ニューロン間通信システムに含まれるもう１つの共通通信バス上で、前記複数のＺＩＳＣチップ１０によって生成されるグローバル複合結果信号Ｒ*とグローバル出力信号ＯＵＴ*とのＯＲが取られる。この共通通信バスは必ずＺＩＳＣチップ１０外部に置かれるので、以下、オフチップ共通通信バスと呼ぶ。この追加のＯＲ機能は、前記オフチップ共通通信バス上にある適切なドライバ回路によって実行されることが好ましい。
【００７３】
次に図９を参照して説明すると、Ｒ*−ＢＵＳとＯＵＴ*−ＢＵＳは、標準的なドライバ、レシーバ、およびドライバ／レシーバ回路と、ＤＲ*というドライバ回路とで構成されるブロック１９に印加される。このドライバ回路ＤＲ*は、具体的には、Ｒ*信号とＯＵＴ*信号を再生するだけでなく、図９のＣＯＭ**−ＢＵＳという前記オフチップ共通通信バス上でこのようなＯＲドット機能も提供するように設計されている。ブロック１９の前記ドライバ回路ＤＲ*から出力される対応するグローバル信号は、前記ＣＯＭ**−ＢＵＳを形成するために統合されるそれぞれのＲ**−ＢＵＳおよびＯＵＴ**−ＢＵＳ上のＲ**およびＯＵＴ**になる。２つ目のアステリスクは、このようなドライバ回路ＤＲ*の出力にあるＲ*信号とＯＵＴ*信号について追加のＯＲ機能が実行されたことを明らかに示すものである。
【００７４】
しかし、その対応するドライバ回路ＤＲ*に直接接続する代わりに、任意でＯＵＴ*−ＢＵＳをブロック２０の入力に接続することができる。基本的にブロック２０は、各ニューロン回路１１に配置された探索／分類回路５０２と同じ構造を有するので、以下、ＺＩＳＣチップ１０の主Ｄｍｉｎ決定回路と呼ぶ。同様に、主Ｄｍｉｎ決定回路２０には、ＯＲ*−ＢＵＳというフィードバック・バスへの接続部が設けられている。主Ｄｍｉｎ決定回路２０を使用する場合、この回路には、ＯＲ*−ＢＵＳ上のフィードバック信号としてＯＵＴ**信号によるフィードバックが行われる。ＺＩＳＣチップ１０が１つだけまたはそのごくわずかな部分が使用される場合は、明らかにＤｍｉｎ主決定回路２０は無関係であるが、数多くのＺＩＳＣチップ１０を結合する必要がある場合は、この回路が有用であることが明らかになるはずである。実際には、この回路により、このような結合によるニューラル・ネットワークの全体的な処理速度が向上する。ＣＯＭ**−ＢＵＳは、以下ＧＤＡＴＡ−ＢＵＳと呼ばれる汎用出力データ・バスの重要な構成要素である。図９に示す実施態様では、ＧＤＡＴＡ−ＢＵＳは、Ｒ**信号およびＯＵＴ**信号以外の信号を含む場合もある。また、ＣＯＭ**−ＢＵＳは、マイクロコントローラ／ユーザ２２に直接接続するか、またはデータをラッチするためにレジスタ１８４．１を介して接続することもできる。ＣＯＭ**−ＢＵＳについてブロック１９のドライバ回路ＤＲ*で実行されるＯＲ機能により、複数のＺＩＳＣチップ１０をそこに接続することができる。その結果、そのすべてに共通するこのＣＯＭ**−ＢＵＳを介して対応する複数のニューラル・ネットワーク１１（Ａ）を結合することにより、より大きいサイズのニューラル・ネットワークを形成することができる。したがって、ＯＲドットによりＣＯＭ**−ＢＵＳ上で行われる追加のＯＲ機能は、図９に示すＺＩＳＣチップ１０の実施態様の重要要素になる。すなわち、ただちにマルチチップ環境で動作する。スタンドアロンとマルチチップ環境の両方のオプションを提供するため、ＺＩＳＣチップ１０には、マイクロコントローラ／ユーザ２２がＣＯＭ*−ＢＵＳ（単一ＺＩＳＣを使用する場合）またはＣＯＭ**−ＢＵＳ（マルチチップ環境の場合）のいずれかを選択して各ニューロン回路１１に接続されたＯＲ−ＢＵＳに信号供給できるようにするためのマルチプレクサ回路２１が設けられていることが好ましい。図９は、ＧＤＡＴＡ−ＢＵＳ（または少なくともそのＣＯＭ**−ＢＵＳ部分）がブロック１９のドライバ／レシーバ回路ＤＲ／ＲＲおよびＰ−ＢＵＳを介してＺＩＳＣチップ１０内に再注入される様子を示している。マルチプレクサ２１の反対側では、Ｑ−ＢＵＳがＯＲ−ＢＵＳとＭ−ＢＵＳの両方に信号供給し、このＭ−ＢＵＳは前述の状況／制御論理回路１８（図１１を参照）に印加される。マルチプレクサ２１をバイパスする図９に示すループは、一部の信号は多重化する必要がなく、そのため、状況／制御論理回路１８とＧＤＡＴＡ−ＢＵＳとの間で直接連絡が行われることを示している。図９に示す実施態様は、いかなるタイプのアプリケーションにも対応できるようになっているので、本発明のＺＩＳＣチップの好ましいアーキテク���ャを表すものである。マルチプレクサ２１（この場合、正式にはＣＯＭ*−ＢＵＳは不要である）の有無にかかわらず、ＺＩＳＣチップ１０と、図９に示すようにそれに組み込まれたニューラル・ネットワーク１１（Ａ）については、以下、それぞれ、基本ＺＩＳＣチップおよびベース・ニューラル・ネットワークと呼ぶ。ニューラル容量はニューロン・ユニット１１（＃）に組み込まれたニューロン回路の数によるので、いずれの実施態様でも同じであるが、ニューロン間通信システムの構成だけが異なっている。これは、図８の実施態様では１つのＯＲステージ（ＯＲ回路１２）、ＣＯＭ*−ＢＵＳ、およびＯＲ−ＢＵＳに基づき、図９の実施態様では２つのＯＲステージ（ＯＲ回路１２、ブロック１９で行われるＯＲドット）、ＣＯＭ**−ＢＵＳ、およびＯＲ−ＢＵＳ（および任意でＯＲ*−ＢＵＳ）に基づくものである。後者の場合、ＯＲ−ＢＵＳによって伝送される信号はＯＵＴ**信号である。
【００７５】
以下の説明では、上記の表記方法をそのまま使用する。ハイフンは所定のニューロン回路（たとえば、１１−ｉ）を示す。一貫性を保つため、このようなニューロン回路に関連する回路（たとえば、探索／分類回路５０２−ｉ）および信号（たとえば、ＮＯＵＴ−ｉ）には、同じ表記方法を使用する。ＯＲ回路１２における第１のＯＲ演算から得られるグローバル信号と関連バスには、１つのアステリスクを付けて示す（たとえば、図８のＯＵＴ*およびＯＵＴ*−ＢＵＳ）。これらの信号がブロック１９のドライバ回路ＤＲ*の出力側で行われる追加のＯＲ演算に供される場合は、そこから出力されるグローバル結果信号とグローバル・バスには、２つのアステリスクを付けて示す（たとえば、図９のＯＵＴ**およびＯＵＴ**−ＢＵＳ）。すべてのチップ関連回路にはかっこを使用する。たとえば、図９のＺＩＳＣチップ１０に組み込まれているベース・ニューラル・ネットワークは、参照番号１１（Ａ）で示す。
【００７６】
要約すると、ニューロン回路１１のレベルでは、以下の６つの入力バスがある。
・入力ベクトル成分データを伝送する８ビットのＤＡＴＡ−ＢＵＳ
・影響フィールドの最大値（ＭａｘＩＦ）と最小値（ＭｉｎＩＦ）を伝送する１４ビットのＭａｘＩＦ／ＭｉｎＩＦ−ＢＵＳ
・１ビットの入力ノルムと７ビットの入力コンテキスト・データとを伝達する８ビットのＮＯ／ＣＸＴ−ＢＵＳ
・入力カテゴリＣＡＴデータを伝送する１４ビットのＣＡＴ−ＢＵＳ
・図１０のニューロン回路１１のすべてのブロックの適切な動作のために必要なアドレス信号と制御信号を伝送するＩＡＤＤ／ＣＴＬ−ＢＵＳ
・距離またはカテゴリ・タイプのＯＵＴ*信号またはＯＵＴ**信号のいずれかを伝送する１４ビットのＯＲ−ＢＵＳ
【００７７】
同じくニューロン回路レベルでは、以下の２つの出力バスがある。
・信号Ｆ、ＤＥＧＯＵＴ、およびＵＮＣ／ＦＩＲＥ．ＯＫで構成される複合ローカル（またはニューロン）結果信号を伝送するＮＲ−ＢＵＳ。信号Ｆは、入力ベクトルの提示に対するコミット済みニューロン回路の「発動」応答、すなわち、入力ベクトルが認識されたかどうかを表す。信号ＤＥＧＯＵＴは、「縮退」状況、すなわち、発動したニューロン回路が縮退したかどうかを表す。信号ＵＮＣ／ＦＩＲＥ．ＯＫは、ニューロン回路１１のローカル・カテゴリＣとグローバル・カテゴリＣ*との比較により得られる。この信号は、認識された入力ベクトルのカテゴリに関するあいまいさを除去するためのものである。
・ローカル（またはニューロン）出力信号ＮＯＵＴを伝送するＮＯＵＴ−ＢＵＳ。いずれのモードでも、Ｄｍｉｎ決定プロセスが終了すると、最小距離Ｄｍｉｎを保持するニューロン回路についてはＮＯＵＴ＝Ｄｍｉｎになる。残りのニューロン回路のＮＯＵＴ信号は重要ではないが、ＯＲ回路１２のレベルでは一切影響がない。Ｄｍｉｎ決定回路５００がパススルーされる（より正確には、その入力に印加される信号を処理しない）場合、ＮＯＵＴ信号は、ニューロン回路１１のレジスタまたはメモリに保持される値を表す場合がある。通常、ＮＯＵＴ−ＢＵＳは、ニューロン回路が計算した距離またはそのカテゴリ・レジスタ４５０に保持されているローカル・カテゴリを伝送する。しかし、保管モードと復元モードでは、他のデータ（セットアップ・パラメータ、プロトタイプ・ベクトル成分など）を伝送する。
【００７８】
ＺＩＳＣチップ１０のレベルでは、チップとマイクロコントローラ／ユーザ２２とのインタフェースを取る入力バスに関する限り、いずれの実施態様でも違いは一切見られない。このような入力バスとしては以下のものがある。
・入力ベクトル・データ、セットアップ・パラメータ、入力ノルム／コンテキストおよびカテゴリ・データを伝送し、マイクロコントローラ／ユーザ２２とＺＩＳＣチップ１０との完全なデータ交換を可能にする、１６ビットの双方向ＩＮＤＡＴＡ−ＢＵＳ
・同様に、ＺＩＳＣチップ１０に選択信号と制御信号を伝送するＳＥＬ／ＣＴＬ−ＢＵＳ
【００７９】
ＺＩＳＣチップ１０のレベルでは、出力バスに関する違いが見られる。図８の実施態様では、ＯＲ回路１２でそれぞれの信号を生成した後のＲ*−ＢＵＳとＯＵＴ*−ＢＵＳとの結合によるオンチップ共通通信バスＣＯＭ*−ＢＵＳが出力バスになる。Ｒ*−ＢＵＳは、入力ベクトルＡの提示に対するニューラル・ネットワーク１１（Ａ）のグローバル応答を表すグローバル結果信号Ｆ*、ＤＥＧＯＵＴ*、およびＵＮＣ／ＦＩＲＥ．ＯＫ*を伝送する。ＯＵＴ*−ＢＵＳは、Ｄｍｉｎ（Ｃｍｉｎ）決定プロセスの終わりにニューラル・ネットワーク１１（Ａ）のニューロン回路が計算した（保持している）すべての距離（カテゴリ）のうちの最小距離Ｄｍｉｎ（またはＣｍｉｎ）またはグローバル・カテゴリＣ*のいずれかを本質的に表すグローバル出力信号ＯＵＴ*を伝送する。
【００８０】
図９の実施態様は、マルチチップ環境に対応するものである。その結果、ブロック１９のドライバ、レシーバ、およびドライバ／レシーバ回路を超えて、ＺＩＳＣチップ１０とそれに接続される他の基本ＺＩＳＣチップ１０を含む外界とのインタフェースを取るために、オフチップ共通通信バスＣＯＭ**−ＢＵＳが必要になる。このＣＯＭ**−ＢＵＳはＲ**−ＢＵＳとＯＵＴ**−ＢＵＳとの結合によって得られる。Ｒ**−ＢＵＳは、グローバル結果信号Ｆ**、ＤＥＧＯＵＴ**、およびＵＮＣ／ＦＩＲＥ．ＯＫ**を伝送する。ＯＵＴ**−ＢＵＳは、グローバル出力信号ＯＵＴ**を伝送する。また、ＯＵＴ**−ＢＵＳは、各ニューロン回路１１のＯＲ−ＢＵＳに信号供給する（基本ＺＩＳＣチップ１０に主Ｄｍｉｎ決定回路２０が設けられていないと想定した場合）。他のワイヤが必要な場合は、１７ビットのＣＯＭ**−ＢＵＳを含むＧＤＡＴＡ−ＢＵＳを実現することができるが、他のワイヤが不要な場合は、基本ＺＩＳＣチップ１０の相互接続のためにはＣＯＭ**−ＢＵＳで十分である。
【００８１】
さらに、いずれのレベルでも、いずれかの実施態様のすべてのニューロン回路間の接続には、直列デイジー・チェーン接続、すなわち、デイジー・チェーンの入力信号と出力信号（ＤＣＩ、ＤＣＯ）を伝送する２本のワイヤが必要である。
【００８２】
基本ＺＩＳＣチップ・アーキテクチャの変形態様
図９に示す基本ＺＩＳＣチップ１０のアーキテクチャについては、アーキテクチャの変形態様がいくつか考えられる。まず第一に、ＯＲ回路１２で実行される各種ＯＲ機能は、基本ＺＩＳＣチップ１０の各ニューロン回路１１内に容易に分散し、組み込むことができる。この場合、図１４のＺＩＳＣチップ１０'を参照して示すように、共通通信バスは、バス要素ＣＯＭ**−１−ＢＵＳ〜ＣＯＭ**−Ｎ−ＢＵＳで構成される直列構造を有する。ＧＤＡＴＡ−ＢＵＳはこの場合も任意のままである。この解決策は比較的単純であるが、図９の基本ＺＩＳＣチップ１０の完全並列構造はもはや該当せず、この解決策を使用した結果、学習フェーズおよび認識フェーズ中に全体的な処理時間が大幅に減少する。複数のチップが連鎖にカスケード化されている場合の第１のＺＩＳＣチップ１０'のＣＯＭ**−１−ＢＵＳは、ＯＲ機能の場合に中立になる論理レベルに接続される（前述のようにゼロになる）。
【００８３】
代替態様として、図９の実施態様からもう１つの貴重な変形態様を設計することができる。ＯＲ回路１２は物理的に抑制してもよい。基本ＺＩＳＣチップ１０の動作に必要なＯＲ回路１２で行われるＯＲ機能は、各ニューロン回路ごとにＤＲ*タイプのドライバ回路を介してＮＲ信号とＮＯＵＴ信号をＣＯＭ**−ＢＵＳ上に直接ＯＲドットすることにより、直接達成することも可能である。しかも、各ニューロン回路１１にブロック１３〜１８によって行われるすべての機能をさらに分散し、組み込むことが望ましい場合もある。この場合、図１５に示すＺＩＳＣチップ１０"は、ニューラル回路１１"（＃）を形成する複数のニューロン回路１１"−１〜１１"−Ｎのみに限定されるはずである。このようなニューロン回路１１"は、細分性１（前述の図９のＺＩＳＣチップ１０および図１４のＺＩＳＣチップ１０'の特定の実施態様では３６）を有すると思われるので、ＡＳＩＣライブラリに組み込まれ、成長可能なニューラル・ネットワーク・マクロに至る場合もある。図１５の実施態様では、ドライバ／レシーバ回路ＤＲ*／ＲＲを介して所定のニューロン回路１１"とＣＯＭ**−ＢＵＳを相互接続するそれぞれのバスにＯＲ−ＢＵＳが組み込まれている。また、図１５の解決策では、ＺＩＳＣチップ１０"の構造が完全に並列であるが、ＺＩＳＣチップ１０"のニューロン回路と同数の３１（３＋１４＋１４）本のワイヤがＣＯＭ**−ＢＵＳ上に必要になる。ＺＩＳＣチップ１０"の反対側では、ＺＩＳＣチップ１０"の小型性と細分性をさらに示すために、２本の入力バスＳＥＬ／ＣＴＬ−ＢＵＳおよびＩＮＤＡＴＡ−ＢＵＳがＧ−ＢＵＳという１本の共通入力バスに統合されている。中間アーキテクチャを含む他の変形態様も設計可能である。ただし、その融通性のためには図９に示すアーキテクチャが好ましい。
【００８４】
ＺＩＳＣモジュール・アーキテクチャ
ニューラル容量を拡張するため、ＩＮＤＡＴＡ−ＢＵＳおよびＳＥＬ／ＣＴＬ−ＢＵＳを介してマイクロコントローラ／ユーザ２２に接続されている図９の基本ＺＩＳＣチップ１０を複数個カスケード化することにより、基本ＺＩＳＣモジュールを構築することができる。次に図１６を参照して説明すると、同図には、対応する基本ニューラル・ネットワーク１１［Ａ］を組み込んだ基本ＺＩＳＣモジュール１０［Ａ］を形成するために「カスケード化」された複数のカスケード式基本ＺＩＳＣチップ１０（１）〜１０（Ｑ）が示されている。図１６は、ＺＩＳＣチップ１０がＩＮＤＡＴＡ−ＢＵＳ、ＳＥＬ／ＣＴＬ−ＢＵＳ、およびＣＯＭ**−ＢＵＳに完全に並列接続されていることを明確に示している。さらに、同図は、前記ＺＩＳＣチップ１０間でデイジー・チェーン信号が直列接続されていることも示している。第１のＺＩＳＣチップ１０（１）のＤＣＩ入力端子は、それに論理１が印加されるように第１の電位ＶＨに接続されている。チップ１０（１）のＤＣＯ出力端子は次のチップ１０（２）の入力端子ＤＣＩに接続され、順次、チップ１０（Ｑ）まで接続されている。所定のＺＩＳＣチップ１０（ｑ）のニューロン回路のＤＡＩＳＹレジスタに１が充填されるたびに、そこから出力される最終信号ＤＣＯ（ｑ）はこのチップのＦＵＬＬ信号と解釈することができる。信号ＤＣＯ（Ｑ）＝１の場合は、基本ニューラル・ネットワーク１１［Ａ］に空き状態ニューロン回路がないことを意味する。文字Ｑは、当技術によりカスケード化可能な基本ＺＩＳＣチップ１０の最大数を表す。したがって、基本ニューラル・ネットワーク１１［Ａ］は、それぞれのＺＩＳＣチップ１０（１）〜１０（Ｑ）に組み込まれたベース・ニューラル・ネットワーク１１（１）〜１１（Ｑ）の合計によって形成される。図１６から明らかなように、どのチップにも、ＩＮＤＡＴＡ−ＢＵＳおよびＳＥＬ／ＣＴＬ−ＢＵＳとの双方向バス接続部が用意されている。マイクロコントローラ／ユーザ２２は、双方向ＩＮＤＡＴＡ−ＢＵＳを介してすべての基本ＺＩＳＣチップ１０（１）〜１０（Ｑ）のレジスタ１８４．１に書き込むことができるが、マイクロコントローラ／ユーザ２２が読み取ることができるのは１つのＺＩＳＣチップ、たとえば、１０（１）の内容だけである（ただし、各ＺＩＳＣチップ１０（１）〜１０（Ｑ）のレジスタ１８４．１にはグローバル応答が用意されている）。そのため、１つ、たとえば、１０（１）を除くすべてのＺＩＳＣチップ１０のＩＮＨという特定の端子は、前記第１の電源電圧ＶＨへの接続によって「１」に設定される。図１６から明らかなように、ＺＩＳＣチップ１０（１）のＩＮＨ端子は第２の電位、この例では地電位ＧＮＤに接続されている。実際には、このＩＮＨ端子は、ＺＩＳＣチップ１０と双方向ＩＮＤＡＴＡ−ＢＵＳとのインタフェースを取るＤＲ／ＲＲ回路の制御端子に接続されている。ＶＨ電圧が前記ＤＲ／ＲＲ回路に供給されると、後者が励起されて高インピーダンス状態になり、その結果、ＩＮＤＡＴＡ−ＢＵＳを励起することができなくなる。基本ニューラル・ネットワーク１１［Ａ］の反対側には、すべてのＺＩＳＣチップ１０（１）〜１０（Ｑ）に共通のＧＤＡＴＡ−ＢＵ���が示されている。これは、それぞれのＲ**−ＢＵＳおよびＯＵＴ**−ＢＵＳがそこでのＯＲドットのためにそのＣＯＭ**−ＢＵＳ部分に並列に接続されているからである。
【００８５】
ＩＮＤＡＴＡ−ＢＵＳ、ＳＥＬ／ＣＴＬ−ＢＵＳ、およびＧＤＡＴＡ−ＢＵＳがすべてのチップを相互接続するので、複数のＺＩＳＣチップ１０を組み立てることによって基本ＺＩＳＣモジュール１０［Ａ］を構築することができる。基本モジュール１０［Ａ］内に形成されたベース・ニューラル・ネットワーク１１［Ａ］は、チップ１０（１）〜１０（Ｑ）のニューラル容量の合計に等しいニューラル容量を有し、単一ＺＩＳＣチップ１０に集積化された場合とほぼ同様に機能する。このようなカスケード可能構造により、ＺＩＳＣチップ１０で構築した基本ニューラル・ネットワーク１１［Ａ］は、少なくとも理論的には、追加回路を使用せずにアプリケーションが必要とする大きさまで拡張することができる。一方、各ニューロン回路１１内のＮＯ／ＣＸＴメイン・レジスタ１７およびローカルＮｏ／Ｃｘｔレジスタ１００のそれぞれのコンテキスト部分を比較することにより、マイクロコントロール／ユーザ２２はどのような基本ニューラル・ネットワーク１１［Ａ］でも単一ネットワークまたはその個別サブセットのいずれかとして構成することができる。
【００８６】
残念ながら、基本ＺＩＳＣチップ１０の本発明の実施態様の場合、ＣＯＭ**−ＢＵＳ上でこのようにＯＲドットを行うことによる実用上の技術的制限のために、実際には、前述の技術では最大Ｑ＝８など、限られた数のチップしか直接カスケード化することができない。所定のアプリケーションに必要なチップの数がこの数を超えている場合は、前述のグローバルＯＲ機能の第３の追加ステージを実現するために、たとえば、カード・レベルなどで、外部回路が必要になる場合もある。次に図１７を参照して説明すると、同図には、参照番号１０［Ａ］によって図１６に概略が示されているような２つの基本モジュール１０［１］および１０［２］を組み立てることによって複合モジュール１０｛Ａ｝を構築する方法が示されている。基本モジュール１０［Ａ］の第１のチップ１０（１）のＤＣＩ端子とＩＮＨ端子を適切な電位に接続することに関する前述の規則は、基本モジュールの連鎖の第１のＺＩＳＣチップ１０にも適用される。基本ＺＩＳＣチップ１０の固有の特性により、前記基本モジュール１０［１］および１０［２］のそれぞれのＣＯＭ**［１］−ＢＵＳおよびＣＯＭ**［２］−ＢＵＳをＯＲ回路２３（１７個の２ウェイＯＲゲートで構成される）に接続して、従来のドライバＤＲにより、そこに含まれるすべてのニューロン回路に信号供給するＣＯＭ***−ＢＵＳ上の前記複合モジュールに供給される信号を生成するだけで十分である。この理論は、任意の数の１０［Ａ］タイプの基本モジュールの結合体に容易に拡張することができる。これは、基本ＺＩＳＣチップ１０の完全カスケード性と並列性の結果である。また、たとえば、数十万個の個別ニューロン回路を含む複合ニューラル・ネットワークを得るためには、（当技術の能力に応じて）所望の数の入力を有するＯＲ回路２３を設計するか、または所定の数のこのようなＯＲ回路を樹枝状構造に結合するだけで十分である。このようなニューロン回路はいずれも、単一基本ＺＩＳＣチップ１０に集積化されている場合と同様に機能し、その数はユーザには透過なものになる。
【００８７】
以下の説明では、同一基準により上記の表記方法を引き続き使用する。前述の通り、基本ＺＩＳＣモジュール１０［Ａ］を形成するアセンブリ内の各種ＺＩＳＣチップを区別するため、チップに関連する言及にはかっこを使用している（たとえば、チップ（ｑ）は連鎖内のｑ番目のチップを示す）。角かっこは基本モジュールに関連する言及を示す。同様に、この基本モジュール１０［Ａ］に関連するバスおよび回路には同じ名称を使用する。たとえば、複合モジュール１０｛Ａ｝を形成するために組み立てられた各種ＺＩＳＣ基本モジュールを区別するため、参照番号１０［ｒ］はアセンブリ内のｒ番目の基本モジュールを示す。最後に、この複合モジュールに関連するバスおよび回路には同じ名称を使用する。したがって、複合モジュール１０｛Ａ｝に組み込まれた複合ニューラル・ネットワークは、参照番号１１｛Ａ｝で示される。
【００８８】
上記の説明では、連続ＯＲ機能について言及してきた。このようなＯＲ機能は、ハードウェア（たとえば、ＯＲ回路１２）またはドット方式（たとえば、ＣＯＭ**−ＢＵＳ上のハードワイヤードＯＲ機能）のいずれかで実行することができる。
【００８９】
これに対して、このようなＯＲ機能は、当技術が必要とする場合は、ド・モルガンの法則によるＡＮＤ機能によって達成することもできる。たとえば、グローバル結果発動信号Ｆ*は、ニューロン回路１１−１〜１１−Ｎのすべてのローカル結果発動信号の（専用ＯＲ補助回路での）ＯＲ演算の結果、すなわち、Ｆ*＝Ｆ１  ＯＲ・・・ＯＲ  ＦＮとして定義されている。しかし、ＯＲドットを実施するには低速デバイスであることが分かっているＰＦＥＴが必要になるので、使用する技術によっては、ＯＲドットの実施によって何らかの不便が生じることが明らかになる場合もある。その目的は、ニューラル・ネットワークの少なくとも１つのニューロン回路が発動したかどうか、すなわち、少なくとも１つの信号Ｆｉが１になっているかどうかを判定することなので、少なくとも１つの
【数６】
＿＿
Ｆｉ
以降、Ｆｉバーと記載する。
＝０であれば同じ結果が得られることは明白である。この場合、上記の関係はＦ*バー＝
【数７】
＿＿
Ｆ１
以降、Ｆ１バーと記載する。
ＡＮＤ・・・ＡＮＤ
【数８】
＿＿
ＦＮ
以降、ＦＮバーと記載する。
と等価である。このため、高速スイッチング・デバイスであると認められているＮＦＥＴのみを必要とするＡＮＤドットの方がかなり普及している。
【００９０】
基本ＺＩＳＣチップの動作の簡単な説明
次に、図８の基本ＺＩＳＣチップ１０に形成されたニューラル・ネットワーク１１（Ａ）の重要な動作モードについて、図１８〜図２１に関連して簡単に説明する。これらの図は、それぞれ、初期設定モード、認識モードと事前装填モード、および学習モードの流れ図の概略を示すものである。分かりやすくするため、図８〜図１７の機能ブロックに言及する場合もある。
【００９１】
初期設定モード
図１８の流れ図２４から明らかなように、初期設定モードは本質的にはクリア・ステップと呼ばれる１つのステップ（ボックス２５）で構成されている。このクリア・ステップ中に、（それに組み込まれたニューロン回路のレジスタを含む）基本ＺＩＳＣチップ１０の所与のレジスタの内容には適当なデフォルト値がロードされる。ＭａｘＩＦレジスタ１４とＭｉｎＩＦレジスタ１５にはそれぞれのＭａｘＩＦ値とＭｉｎＩＦ値がロードされる。ＮＯ／ＣＸＴメイン・レジスタ１７には、事前定義値（たとえば、ゼロ）がロードされる。デイジー・チェーン回路６００のＤＡＩＳＹレジスターと各ニューロン回路１１のカテゴリ・レジスタ４５０には、ゼロ値がロードされる。
【００９２】
その他のレジスタおよびＲ／Ｗメモリ回路２５０には所定の値をロードする必要がないので、それぞれの内容は電源投入時には未定義になっている。しかし、もう１つの更新ステップ（ボックス２６）も考えられる。この任意選択ステップでは、マイクロコントローラ／ユーザ２２が任意で何らかの値、たとえば、セットアップ・パラメータ（ＭａｘＩＦ、ＭｉｎＩＦ）、ＮＯ／ＣＸＴメイン・レジスタ１７にロードされた入力コンテキストとノルム・データ、およびグローバル応答関連データに加え、特に動作モード関連データを保持しているレジスタ１８４．１の内容を変更することができる。これらのステップは、ＳＥＬ／ＣＴＬ−ＢＵＳ上で伝送される制御信号の監視下でＩＮＤＡＴＡ−ＢＵＳを介して達成される。
【００９３】
認識モードと事前装填モード
次に、前述の通り初期設定フェーズが完了した後の通常の動作条件にあるニューラル・ネットワーク１１（Ａ）について考察する。この場合、所与のニューロン回路はすでに使用中（すなわち、学習済み）になっており、他のニューロン回路がまだ空き状態になっていると想定する。マイクロコントローラ／ユーザ２２は、ＩＮＤＡＴＡ−ＢＵＳを介してＺＩＳＣチップ１０のＡレジスタ１３に入力ベクトルＡの各種成分を連続ロードする。そのために、Ａレジスタ１３はＩＡＤＤ／ＣＴＬ−ＢＵＳを介して選択される。次に、Ａレジスタ１３にロードされたデータがニューラル・ユニット１１（＃）の全ニューロン回路（すなわち、すでに使用中のものならびにまだ空き状態のもの）のそれぞれに伝送される。空き状態ニューロン回路と使用中のニューロン回路との区別は、各ニューロン回路１１ごとのデイジー・チェーン回路６００のそれぞれのＤＣＩ端子とＤＣＯ端子にある信号の論理レベルの検討により行われる。図１９および図２０は、認識フェーズ中にＺＩＳＣチップ１０で実行される重要ステップを示す流れ図２７を表している。ここで図１９を参照すると、使用中になっており（ボックス２８）、しかもＮＳ信号によって選択された（ボックス２９）ニューロン回路１１だけ、すなわち、コミット済みニューロン回路だけが認識フェーズに有意義に関与することは明らかである。ニューロン回路は、学習するとただちに使用中になる。すなわち、もはや空き状態ではなくなる。そのノルム／コンテキスト・レジスタ１００のローカル・コンテキスト部分（Ｃｘｔ）がＮＯ／ＣＸＴメイン・レジスタ１７に保持されている入力コンテキスト部分（ＣＸＴ）と一致すると、ニューロン回路が選択される。しかし、前記入力コンテキスト部分がゼロの場合は、ＺＩＳＣチップ１０のすべての使用中のニューロン回路が認識フェーズに関与することになる。この場合、「コミット済み」とは「使用中」と等価である。使用中のニューロン回路の場合、プロトタイプ・ベクトルの各種成分はすでにそのＲ／Ｗメモリ回路２５０に格納され、制御信号ＲＳによってそこで「凍結」されている。すなわち、ＷＲＩＴＥ動作は不可能になる。空き状態のニューロン回路１１の場合は、ボックス２８で実行されたテストに対するＮＯ応答によって決まるように、このニューロン回路が第１の空き状態ニューロン回路かどうか、すなわち、学習可能ニューロン回路かどうかを判定するテストがボックス３０で実行される。ＹＥＳの場合は、入力ベクトルの提示中に、入力ベクトルの各種成分がその学習可能ニューロン回路のＲ／Ｗメモリ回路２５０に格納される。その結果、前記学習可能ニューロン回路は、ボックス３１が示すように「事前装填済み」と見なされる。以下の説明では、コミット済みニューロン回路１１、すなわち、ボックス２８および２９のテストの結果がＹＥＳの場合のみ扱うことにする。ただし、ニューロン回路１１がボックス２９により選択されていない場合は、消費電力が増加するが同様に機能する可能性があることに留意されたい。しかし、そのローカル応答は、グローバル結果データおよびグローバル出力データの生成に一切影響しない。
【００９４】
マイクロコントローラ／ユーザ２２によって最後の入力ベクトル成分が印加されると、距離評価回路２００によって計算された入力ベクトルＡとプロトタイプ・ベクトルＢとの距離Ｄがボックス３２で使用可能になる。この距離Ｄは、使用するローカル・ノルムＮｏに応じて様々な値になる可能性がある。この段階の説明では、ボックス３３に示すようにマイクロコントローラ／ユーザ２２が選択したサブモードに応じて、２通りの場合を考察しなければならない。
【００９５】
ＲＢＦ状または通常のサブモード（ＮＭ）では、ＬＴ信号を生成するための上記の規則により、距離比較回路３００が、距離ＤとＡＩＦレジスタ３５２に格納されたＡＩＦ値とを比較する。ボックス３４で実行されるテストの目的は、Ｄが厳密にＡＩＦ未満であるかどうかを判定することである。これに該当しない（すなわち、Ｄ＞＝ＡＩＦ）場合には、ニューロン回路１１は発動せず、信号Ｆはボックス３５で非活動状態、すなわち、Ｆ＝０に設定される。この特定のニューロン回路については、これで認識プロセスが終了する。ＹＥＳ、すなわち、Ｄ＜ＡＩＦの場合は、信号ＬＴがアクティブ（ＬＴ＝１）に設定されるが、これは、入力ベクトルＡがニューロン回路１１に格納されているプロトタイプ・ベクトルのＡＩＦ値の範囲に入ることを意味する。識別回路４００に印加される信号ＬＴは、ボックス３６で信号Ｆをアクティブ（Ｆ＝１）に設定する。ニューロン回路１１はすでに発動しており、その結果、入力ベクトルＡを認識している。次に、ボックス３７で識別回路４００のＤＥＧレジスタの内容がテストされる。（識別回路４００のＤＥＧレジスタに「１」が格納されているので）ニューロン回路１１が縮退したと判定された場合は、ＤＥＧ信号がアクティブに設定され、次にボックス３８でＤＥＧＯＵＴ信号がアクティブに設定される（ＤＥＧＯＵＴ＝Ｆ  ＡＮＤ  ＤＥＧ＝１）。共通ノード３９でボックス３８の出力とテスト・ボックス３７のＮＯ出力が統合される。図１９はニューロン回路（ＮＣ）レベルの流れ図を示している。次に、ニューラル・ネットワーク１１（Ａ）レベルで生成されるグローバル結果データおよびグローバル出力データについて考察するため、ＺＩＳＣチップ１０のニューロン回路のうち、コミットされ発動した、すなわち、ノード３９で定義されたステージにあるニューロン回路すべてについて考察しなければならない。ニューロン回路レベルからニューラル・ネットワーク・レベルへの移動は、ＮＣ／ＮＮと呼ばれ、図１９では点線で示されている。
【００９６】
ニューロン回路１１が縮退したかどうかにかかわらず、発動したベース・ニューラル・ネットワーク１１（Ａ）のコミット済みニューロン回路が同一カテゴリまたは少なくとも２つの異なるカテゴリに属すかどうかを判定する必要がある。そのため、前述のように、ＯＲ回路１２の専用補助回路でこれらのニューロン回路のすべてのローカル・カテゴリのＯＲが取られる。次に図２０を参照すると、このステップは、ＯＵＴ*−ＢＵＳ上とさらにＯＲ−ＢＵＳ上でグローバル・カテゴリＣ*を生成するためにボックス４０で実行される。グローバル結果信号Ｆ*およびＤＥＧＯＵＴ*も、それぞれの専用ＯＲ補助回路で処理された後にＲ*−ＢＵＳ上で直接得られるようになる。ボックス３６で少なくとも１つのニューロン回路が発動している場合は、グローバル結果信号Ｆ*がアクティブに設定される（Ｆ*＝１）。信号ＵＮＣ／ＦＩＲＥ．ＯＫ*を決定するためには、さらに操作が必要である。各ニューロン回路１１のグローバル・カテゴリＣ*が識別回路４００のローカル・カテゴリＣと比較される（ただし、この比較はニューロン回路レベルで行われることに留意されたい）。この比較結果はボックス４１によって示される。ローカル・カテゴリＣがグローバル・カテゴリＣ*と等しい場合は、入力ベクトルがニューラル・ネットワーク１１（Ａ）によって識別されていることを意味する。実際には、各ニューロン回路によって生成されたニューロン回路信号ＵＮＣ／ＦＩＲＥ．ＯＫがアクティブに設定され（ＵＮＣ／ＦＩＲＥ．ＯＫ＝０）、その結果、グローバル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ*がゼロになる。したがって、信号ＩＤ*＝Ｆ*  ＡＮＤ  ＵＮＣ／ＦＩＲＥ．ＯＫ*バーはアクティブに設定される。すなわち、ＩＤ*＝１になる（ボックス４２）。入力ベクトルはＣ*と等しいカテゴリで識別されている。そこで、カテゴリＣ*は、ＣＯＭ*−ＢＵＳ上で得られるようになり、レジスタ１８４．１に格納することができる。このカテゴリは、必要であればマイクロコントローラ／ユーザ２２によって読み取ることができる（ボックス４３）。これに対して、Ｃ*が少なくとも１つのニューロン回路のＣと異なる場合は、その所定のニューロン回路の信号ＵＮＣ／ＦＩＲＥ．ＯＫが「１」に設定され、そのため、グローバル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ*＝１になる。その結果、信号ＩＤ*＝１（ボックス４４）になり、入力ベクトルが識別されていないことを意味する。ボックス４３および４４の出力は、共通ノード４５で統合される。しかし、このＮＭサブモードでは、マイクロコントローラ／ユーザ２２が要求する場合は、距離またはカテゴリのいずれかがＣＯＭ*−ＢＵＳ上で、好ましくは増加順に、得られるようになる可能性がある。この場合、ＤｍｉｎまたはＣｍｉｎの決定が必要になる。そのために、ニューロン回路の探索／分類回路が最小距離Ｄｍｉｎ、すなわち、発動したコミット済みニューロン回路によって計算された距離のうちの最小距離を生成するよう、すべて同時に機能する（ボックス４６）。しかも、マイクロコントローラ／ユーザ２２は、最小距離Ｄｍｉｎを決定するだけでなく、残りの距離を増加順にＯＵＴ*−ＢＵＳ上に出力するためにも、発動したコミット済みニューロン回路を必要とする場合がある。これらのステップはボックス４６によって示される。必要であれば、データのカテゴリ・タイプについても、同一理論が適用される。ただし、状態計算機１８３の要求があり、その監視下において、複数のニューロン回路が発動している場合は、距離およびカテゴリを連続方式またはインタリーブ方式のいずれかで出力することができる。１つのニューロン回路のみ発動している場合は、その距離またはカテゴリ・データだけがＯＵＴ*−ＢＵＳ上に出力される。この距離またはカテゴリ・データは、マイクロコントローラ／ユーザ２２に直接送られるか、またはその後のマイクロコントローラ／ユーザ２２によるＲＥＡＤ動作のためにＣＯＭ*−ＢＵＳを介してレジスタ１８４．１でラッチされる。
【００９７】
最も近い隣接サブモード（ＮＮＭ）では、計算された距離ＤとＡＩＦ値との比較が一切行われない。この場合、マイクロコントローラ／ユーザ２２は、前述のように最小距離Ｄｍｉｎ（またはＣｍｉｎ）を決定し、さらに残りの距離（またはカテゴリ）を出力するために、いかなる制限（発動したかどうか）も設けずにすべてのニューロン回路のすべての探索／分類回路を必要とするだけである。図１９および図２０から明らかなように、ＮＮＭサブモードはボックス４６で実行されるステップのみを含んでいる。
【００９８】
最後に、選択されたサブモードにかかわらず、認識モードは図２０の終了というボックスで終了する。ただし、図１９および図２０を参照して示した認識フェーズが終了すると、ニューロン回路１１は学習フェーズに移行できるので、代替ステップとして前述の終了ボックスにボックス４７が追加されている。
【００９９】
学習モード
認識フェーズが終了すると、ユーザは学習モードを実行することができる。学習は各種の場合に行われる。たとえば、ユーザがグローバル応答に満足できない場合であり、たとえば、ニューラル・ネットワーク１１（Ａ）によって出力されたカテゴリが正しいと思われないか、または「ブランク」あるいは「未使用」のニューラル・ネットワーク１１（Ａ）が初めて使用された場合などである。後者の場合には、いずれのニューロン回路もまだ学習していないので、図１９のボックス３５により明らかになっているように、各ニューロン回路ごとに信号Ｆが０になるようにニューロン回路を発動することができない。その結果、信号Ｆ*＝０になり、信号ＵＮＣ／ＦＩＲＥ／ＯＫ*＝０になるので、ＩＤ*＝０になる。これは、ニューラル・ネットワーク１１（Ａ）レベルで入力ベクトルＡが識別されていないことを意味する。本発明の重要な特徴によれば、前回の認識フェーズ中に入力ベクトルＡの各種成分が第１の空き状態学習可能ニューロン回路に格納されており、したがって、図１９のボックス３１を参照して前述したように、そのニューロン回路は事前装填されている。
【０１００】
この場合も、所与のニューロン回路はすでに使用中（すなわち、学習済み）であるが、他のニューロン回路はまだ空き状態であると想定する。基本的に学習モードは縮小プロセスまたは拘束プロセスあるいはその両方で構成され、これらのプロセスは異なる状況を有するニューロン回路を対象とする。縮小プロセスはすべてのコミット済みニューロン回路に関連するのに対し、拘束プロセスは学習可能ニューロン回路にのみ関連する。簡略化のため、図１９および図２０を参照して説明したように、学習フェーズは認識フェーズ後に行われるものと想定する。図１９および図２０のボックス４７と一貫性を保つための図２１の流れ図４７は、これらの縮小プロセスと拘束プロセスの重要ステップを示すためのものである。学習フェーズは、状況／制御論理回路１８の状態計算機１８３の監視下で行われる。状態計算機１８３は、ニューラル・ネットワーク１１（Ａ）のすべてのニューロン回路を並列に制御するために状態を順次出力する。認識フェーズ中に発動し（図１９および図２０の流れ図２７を参照）、入力カテゴリＣＡＴとは異なるローカル・カテゴリＣを有するコミット済みニューロン回路の場合、その影響フィールド値の自動縮小に移行する。そのために、ＺＩＳＣチップ１０には、その発動範囲から入力ベクトルを除去するために間違って発動したその所定のニューロン回路のＡＩＦレジスタ３５２の内容を自動的かつ同期的に縮小する自動機構が設けられている。これに対して、ニューラル・ネットワーク１１（Ａ）レベルで入力ベクトルが正しく認識されていない場合に、空き状態ニューロン回路の中から選択される新しいニューロン回路を使用中にすることは価値のある可能性がある。これら２つの場合については、図２１を参照して個別に詳述する。
【０１０１】
ここで、すでに発動したコミット済みニューロン回路の場合を示す図２１の左側部分を参照して説明すると、学習プロセスは開始というボックスで開始される。このようなニューロン回路１１は、まず、ニューロン回路１１の入力カテゴリＣＡＴとローカル・カテゴリＣが等しいかどうかを判定するためにボックス４８でテストされる。ＣＡＴとＣが異なる場合は、ニューロン回路１１が間違って発動したことを意味する。コミット済みニューロン回路のローカル・カテゴリはゼロにならないよう強制されるので、これはＣＡＴ＝０の場合も含んでいる。この場合、その所定のニューロン回路の識別回路４００によって出力されたＵＮＣ／ＦＩＲＥ．ＯＫ信号はゼロになる。学習モードでのＵＮＣ／ＦＩＲＥ．ＯＫ信号の意味は、縮小プロセスが必要であることを示すことである。そのＡＩＦ値を減少させるために前記ニューロン回路１１の縮小プロセスが必要になる。さらに、評価回路２００の専用レジスタに格納された計算済み距離ＤはＡＩＦレジスタ３５２にロードされる（ボックス４９）。次に、ＬＴＥ信号を生成するために、この距離Ｄが比較回路３００でＭｉｎＩＦと比較される。ボックス５０によると、ＤがＭｉｎＩＦ以下であれば、ニューロン回路１１は縮退していると宣言される。すなわち、識別回路４００で生成された信号ＤＥＧがアクティブに設定される（ＤＥＧ＝１）。実際には、ボックス５１が示すようにＤＥＧレジスタ（ＤＥＧＲＥＧ）に「１」がロードされる。このＤＥＧ信号は、ボックス５２によりＭｉｎＩＦ値が前記ＡＩＦレジスタ３５２にロードされるようにするための制御信号として機能し、それにより、前のＤ値が上書きされる。ボックス５０のＮＯ出力とボックス５２の出力は共通ノード５３で統合される。ここでもう一度ボックス４８に戻って説明すると、ＣＡＴ＝Ｃの場合は、該当のニューロン回路が正しく発動し、そのため、そのＡＩＦが縮小を必要としないことを意味する。その所定のニューロン回路１１のＵＮＣ／ＦＩＲＥ．ＯＫ信号は、ボックス５４に示すようにアクティブに設定される（ＵＮＣ／ＦＩＲＥ．ＯＫ＝１）。ボックス５４の出力は前記共通ノード５３に接続される。最後に、ボックス５５で最小距離Ｄｍｉｎとグローバル結果の値ＵＮＣ／ＦＩＲＥ．ＯＫ*が決定される。どちらの値も、学習可能ニューロン回路がある場合にはその拘束プロセスで必要になるものである。これらの値は、レジスタ１８４．１でラッチするなどのために、図１９および図２０を参照して前述したようにそれぞれのバス上で得られるようになる。
【０１０２】
次に、学習可能ニューロン回路１１の拘束プロセスを示す図２１の右側部分について考察する。この場合、開始というボックスで開始されたプロセスは、図１９の終了というボックスにそのまま対応する。すなわち、この段階ではまだニューロン回路レベルにある。まず、入力カテゴリＣＡＴの値について、ＣＡＴがゼロかどうかがボックス５６でテストされる。ＣＡＴ＝０であれば、拘束プロセスは停止する（前述のように、コミット済みニューロン回路の縮小プロセスへの移行のみ必要になる）。一方、ＣＡＴがゼロ以外の場合は、ボックス５７によりこの学習可能ニューロン回路のＡＩＦレジスタ３５２に最小距離Ｄｍｉｎ（その値はすでにボックス５５で確立している）がロードされる。ただし、ＤｍｉｎがＭａｘＩＦより大きい場合は、代わりにＭａｘＩＦがロードされることに留意されたい。次に、ＤｍｉｎがＭｉｎＩＦ以下であるかどうかを判定するためにボックス５８で比較が行われる。ＹＥＳの場合は、識別回路４００のＤＥＧレジスタに「１」がロードされ、ＡＩＦレジスタ３５２にＭｉｎＩＦ値がロードされる（ボックス５９）。ボックス５９の出力とボックス５８のＮＯ出力は共通ノード６０で統合される。次に、ニューラル・ネットワーク・レベルでボックス５５で判定されたグローバル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ*の値もテストされる。このテストにより、入力ベクトルが正しいカテゴリを有する少なくとも１つのニューロン回路によって認識されたかどうかが検査される（ボックス６１）。信号ＵＮＣ／ＦＩＲＥ．ＯＫ*＝１の場合は、入力ベクトルが正しいカテゴリを有する少なくとも１つのニューロン回路によって正しく認識されたことを意味する。この場合、新しいニューロン回路を拘束する必要がない可能性があるので、通常、拘束プロセスのこの段階で学習フェーズが停止する。これに対して、信号ＵＮＣ／ＦＩＲＥ．ＯＫ*が１ではない（ＵＮＣ／ＦＩＲＥ．ＯＫ*＝０）場合は、拘束プロセスが続行される。入力カテゴリ・データＣＡＴはＣＡＴ−ＢＵＳを介してカテゴリ・レジスタ４５０にロードされ、入力ノルム／コンテキスト・データは前記学習可能ニューロン回路のＮＯ／ＣＸＴ−ＢＵＳを介してＮＯ／ＣＸＴメイン・レジスタ１７にロードされる（ボックス６２）。最後に、信号ＳＴは、ボックス６３に示すように、学習可能ニューロン回路のデイジー・チェーン回路６００のＤＣＩ入力端子に存在する「１」という値をそのＤＡＩＳＹレジスタにシフトするように活動化される。これで拘束プロセスは終了し、学習可能ニューロン回路は学習済みの状態になる。新たに使用中になったこのニューロン回路のデイジー・チェーン入力信号と出力信号は１になる。間違って発動したすべてのコミット済みニューロン回路のＡＩＦ値が再調整されるか、または新たに使用中になったニューロン回路のＡＩＦ値が確立され、そのローカル・カテゴリ・レジスタおよびノルム／コンテキスト・レジスタに正しい値がロードされるか、あるいはその両方が完了すると、学習フェーズが終了する。代替態様として、ボックス６１で完了したテストをボックス５６および５７の間で実行することもできる。
【０１０３】
初期設定直後で、ニューラル・ネットワーク１１（Ａ）のいずれのニューロン回路も学習していないときは、すべてのニューロン回路が空き状態になっている。ニューラル・ネットワーク１１（Ａ）に印加された第１の入力ベクトルの認識中に、その各種成分がＩＮＤＡＴＡ−ＢＵＳを介してＺＩＳＣチップ１０の各ニューロン回路のＲ／Ｗメモリ回路２５０に連続印加される。当然のことながら、距離評価回路２００で行われる計算と、いずれかのニューロン回路の距離比較回路３００で行われる比較は、重要ではない。ニューラル・ネットワーク１１（Ａ）のニューロン回路のいずれも第１の入力ベクトルを認識していないので、各識別回路４００はローカル結果発動信号Ｆを生成し、ＯＲ回路１２でこの信号Ｆと他のＦ信号とのＯＲが取られ、ゼロになるグローバル結果発動信号が生成される（Ｆ*＝０）。このため、学習可能ニューロン回路１１−１は、前述の通り、この入力ベクトルを学習する必要がある。しかし、認識フェーズの結果、この第１の入力ベクトルの各種成分はすでにそこに格納されており、この第１の（空き状態）ニューロン回路はすでに事前装填されている。第１の入力ベクトルを第１のプロトタイプ・ベクトルとして格納するには、図２１を参照して前述したようにこの第１のニューロン回路を拘束するだけで十分である。ただし、この場合、ＡＩＦレジスタ３５２にＭａｘＩＦ値がロードされることに留意されたい。
【０１０４】
したがって、認識フェーズ中に入力ベクトルＡの各種成分をＲ／Ｗメモリ回路２５０に事前装填するための効率の良い方法はＺＩＳＣチップ１０で実現されている。しかも、学習可能ニューロン回路は、ニューラル・ネットワーク１１（Ａ）のニューロン回路の中でそのＤＣＩ信号とＤＣＯ信号が互いに相補関係にある唯一のニューロン回路なので、容易に認識される。学習フェーズの予備ステップ（その間に入力ベクトルがもう一度ニューラル・ネットワークに提示される）で入力ベクトル成分の格納動作を実行する必要がある先行技術のニューラル・ネットワークとは異なり、ＺＩＳＣチップ１０では、入力ベクトルの認識フェーズ中に前記成分がすでにＲ／Ｗメモリ回路２５０にロードされている。その結果、ニューラル・ネットワーク自体がそのように要求するのであれば、学習可能ニューロン回路は自動的かつただちに事前装填される。すなわち、その後の拘束に備えて準備される。しかし、入力カテゴリＣＡＴがニューロン回路１１のカテゴリ・レジスタ４５０にロードされ、デイジー・チェーン回路６００のＤＡＩＳＹレジスタに「１」をロードするために信号ＳＴがアクティブに設定されるまで、事前装填されたニューロン回路は使用中とは見なされない。学習が不要ないかなる場合でも、後続の認識フェーズで次の入力ベクトルの各種成分がＩＮＤＡＴＡ−ＢＵＳ上で提示されると、格納済み成分が上書きされる。このニューロン回路が使用中になると同時に、制御信号ＲＳは、そのＲ／Ｗメモリ回路２５０での後続のＷＲＩＴＥ動作を防止する。
【０１０５】
要約すると、基本ＺＩＳＣチップ１０では、（認識フェーズ中に達成される事前装填モードに関して前述したように）学習対象の入力ベクトルが学習可能ニューロン回路のＲ／Ｗメモリ回路２５０に格納されると、学習モードに前記学習可能ニューロン回路の拘束が含まれる。この拘束プロセスは、所望の入力カテゴリがカテゴリ・レジスタ４５０にロードされ、デイジー・チェーン６００のＤＡＩＳＹレジスタに「１」がロードされると終了する。また、間違って発動したコミット済みニューロン回路のＡＩＦレジスタ３５２にロードしなければならない新しい値を決定するのに必要であれば、学習フェーズには必ず縮小プロセスが含まれる。学習フェーズの関連ステップはすべてベース・ニューラル・ネットワーク１１（Ａ）によって行われる。調整は、ニューラル・ネットワークのすべてのニューロン回路で同期的かつ自動的に行われるので、マイクロコントローラ／ユーザ２２などの外部の監視を必要としない。したがって、学習プロセスは完全に内的かつ自動的なものになる。状態計算機１８３は、並列に関連するすべてのニューロン回路の縮小プロセスと拘束プロセスの順序付けを行う。さらに、従来のニューラル・ネットワークとは対照的に、本発明の重要な特徴によれば、事前装填機能があるために認識フェーズと学習フェーズは完全に別個のものになっていない。
【０１０６】
保管モードと復元モード
最後に、基本ＺＩＳＣチップ１０は、上記以外に保管モードと復元モードという２つの有意義な動作モードを提供する。ＺＩＳＣチップ１０の本発明の実施態様はＥＰＲＯＭを含んでいないので、電源が遮断されると、ＺＩＳＣチップ１０の各種レジスタに保持されているすべての情報が失われる。そのため、保管モードと復元モードが強く望まれている。保管フェーズ中にマイクロコントローラ／ユーザ２２は、（ニューロン回路を含む）基本ＺＩＳＣチップ１０の各種レジスタに格納されているすべての貴重なデータにアクセスして（ＲＥＡＤ動作）、それを保管することができる。たとえば、これは、Ｒ／Ｗメモリ回路２５０に格納されたプロトタイプ・ベクトルＢの各種成分（重み）、ＡＩＦレジスタ３５２に格納されたＡＩＦ値、カテゴリ・レジスタ４５０に格納されたローカル・レジスタ、レジスタ１００に格納されたローカル・ノルム／コンテキスト・データ、セットアップ・パラメータなどに関連する。ハードディスクは、このようなデータを適切に格納するためにその点で便利な記憶手段である。基本的に復元モードは、上記と反対のステップで構成される。様々な理由により、マイクロコントローラ／ユーザ２２は、その復元のためにそれぞれのレジスタに前記データのいずれかをロードする（ＷＲＩＴＥ動作）必要が生じる場合がある。復元フェーズ中は、いずれかのニューロン回路に場合に応じてそれ自体のデータまたは何らかの所望のデータのいずれかをロードすることが重要である。データとニューロン回路レジスタとの間に完全な対応が存在しなければならないことは明らかである。ＺＩＳＣチップ１０の本発明の実施態様では、保管モードと復元モードは、Ｄｍｉｎ決定回路５００にマルチプレクサ５０１が存在すること（図１３）と、デイジー・チェーン回路６００の固有の特性とを有利に利用する。
【０１０７】
まず、保管モードについて考察する。もう一度図１３に戻って説明すると、マルチプレクサ５０１は、その３つの入力バスから所望の入力バス（およびそのデータ）を選択するために保管フェーズ中に適切に活動化される。ＩＡＤＤ／ＣＴＬ−ＢＵＳを介してマルチプレクサ５０１に印加される選択信号に応じて、ローカル・カテゴリ・データＣ、ローカル・ノルム／コンテキストＮｏ／Ｃｘｔデータ、またはＪ−ＢＵＳ上に現れるデータのいずれかが第１の入力信号として探索／分類回路５０２に印加される。次に、ＩＡＤＤ／ＣＴＬ−ＢＵＳを介してマルチプレクサ３５１に印加される選択信号に応じて（図１２参照）、Ｊ信号は、ＡＩＦレジスタ３５２の内容または該当のニューロン回路１１のＤＩＳＴ−ＢＵＳ上に現れるデータまたはＭａｘＩＦ／ＭｉｎＩＦ−ＢＵＳ上で伝送されるＭａｘＩＦ／ＭｉｎＩＦ値を表すことができる。デイジー・チェーン回路６００は、適切なニューロン回路を選択するために使用される。第１の空き状態ニューロン回路による前述の同一原理がこの場合も適用可能である。プロトタイプ・ベクトルＢ成分が連続してＤＩＳＴ−ＢＵＳ上に現れるようにするには、そのすべての成分がゼロになる入力ベクトルＡを提示するだけで十分である（図１０）。最後に、所定のニューロン回路に関連するこれらのすべてのデータは、そのＮＯＵＴ−ＢＵＳおよびＯＲ回路１２を介してＯＵＴ*−ＢＵＳ上にその所定のニューロン回路のＤｍｉｎ決定回路５００から順次出力される（残りのＮＯＵＴ信号はすべて中立論理レベルに設定される）。
【０１０８】
要約すると、保管モード、すなわち、最終的にＣＯＭ*−ＢＵＳ上に出力される制御信号を介して適切なデータを順次選択することによって保管対象のデータをマイクロコントローラ／ユーザ２２が読み取る場合、これらのデータは、場合に応じて、Ｍ−ＢＵＳを介してレジスタ１８４−１（図１１を参照）に格納するか、またはマルチプレクサ（図示せず）を介してＩＮＤＡＴＡ−ＢＵＳ上で直接得られるようにすることができる。このデータは、状態計算機１８３の監視下で論理回路１８２内に位置するインタフェース回路に応じて、マイクロコントローラ／ユーザ２２の要求によりＩＮＤＡＴＡ−ＢＵＳ上に出力される。デイジー・チェーン回路６００により、一度に１つのニューロン回路のみ確実に選択されるようになる。
【０１０９】
復元モードでは、データはＩＮＤＡＴＡ−ＢＵＳを介してマイクロコントローラ／ユーザ２２によってロードされる。各レジスタは、それにデータを正しく格納するためにＩＡＤＤ／ＣＴＬ−ＢＵＳを介して連続的に選択される。各ニューロン回路のＲ／Ｗメモリ回路２５０にも同一理論が適用される。
【０１１０】
保管モードまたは復元モードはいくつかのステップを必要とする。まず、マイクロコントローラ／ユーザ２２は適切な（保管または復元）モードを設定する。どちらのモードにも、ＺＩＳＣチップ１０のすべてのＤＡＩＳＹレジスタがリセットされる予備ステップがある。マイクロコントローラ／ユーザ２２は、ＳＥＬ／ＣＴＬ−ＢＵＳ上で適切なアドレスを送ることにより、正しいレジスタまたはＲ／Ｗメモリ回路２５０に対応する正しいデータを選択する。ニューロン回路は、図２１に関連する拘束プロセスにおいて前述したのと同じ機構により、デイジー・チェーン回路６００の監視下で順次処理される。このステップは、必要な回数だけ各レジスタごとに繰り返される。そのローカル・カテゴリ値がゼロになる第１のニューロン回路に達するまで、ニューロン回路の読取りまたは書込みが順次行われる。したがって、ローカル・カテゴリ・レジスタ４５０の内容は、いずれかのモードの終了を検出するための便利な手段である。保管または復元フェーズが終了すると、デイジー・チェーン回路６００のＤＡＩＳＹレジスタを含む、ニューロン回路のすべてのレジスタが初期状態、すなわち、保管または復元フェーズが開始される前の状態になる。すべての関連レジスタの読取りまたは書込みが完了すると、最後のステップは、認識モードまたは学習モードのいずれかでの復帰になる。どちらのモードでもニューロン回路の特定のレジスタにアクセスするために同一処理ステップを使用するので、この手法で必要とする回路数は非常に少なくなる。また、保管モードまたは復元モードに供されるニューロン回路の数に制限はない。
【０１１１】
図９のベース・ニューラル・ネットワーク１１（Ａ）にも同様の理論が適用されるが、この理論は図１６の基本モジュールまたは図１７の複合モジュールのいずれかに組み込まれたニューラル・ネットワークにさらに拡張することができる。これは、基本ＺＩＳＣチップ１０の完全並列アーキテクチャの直接的な成果である。第１のグローバルＯＲ機能は、ＺＩＳＣチップ１０（１）〜１０（Ｑ）のそれぞれについてグローバル結果信号Ｒ*およびグローバル出力信号ＯＵＴ*を生成するためにＯＲ回路１２のそれぞれの専用補助回路でローカル結果信号とローカル出力信号のＯＲを取ることによって行われる。次に、それぞれのグローバル信号Ｒ**およびＯＵＴ**を生成するために、もう一度ＣＯＭ**−ＢＵＳで、図１６にそれぞれＲ*（１）〜Ｒ*（Ｑ）およびＯＵＴ*（１）〜ＯＵＴ*（Ｑ）と示されているグローバル信号のＯＲが取られる。ＣＯＭ**−ＢＵＳは、図１６から明らかなように複合ニューラル・ネットワーク１１［Ａ］を組み込んだ基本モジュール１０［Ａ］を形成する前記チップ全体に共通である。複数の基本ＺＩＳＣチップ１０をまとめて組み立てる場合には、図９の実施態様により各ＺＩＳＣチップ１０に任意で設けられた主Ｄｍｉｎ決定回路２０を有利に使用して、基本モジュール１０［Ａ］または複合モジュール｛Ａ｝を形成するすべてのチップに属すコミット済みニューロン回路間の最小距離Ｄｍｉｎを決定することができる。ニューロン回路とそれから得られるチップのカスケード性により、図１６に示すタイプ１１［Ａ］または図１７に示すタイプ１１｛Ａ｝のいずれかのニューラル・ネットワークの動作は、あらゆる点で図１８〜図２１に関して前述した図８のニューラル・ネットワーク１１（Ａ）と同一になる。ベース・ニューラル・ネットワークと基本ニューラル・ネットワークと複合ニューラル・ネットワークとの区別はマイクロコントローラ／ユーザ２２には無関係である。すなわち、複合モジュールを形成するために組み立てられる基本モジュールを形成するために組み立てられるＺＩＳＣチップ１０（それぞれにベース・ニューラル・ネットワークが組み込まれている）の数により、最終的にはニューロン回路の総数がマイクロコントローラ／ユーザ２２に完全に透過なものになる所望のサイズの複合ニューラル・ネットワークが得られる。しかも、このようなニューラル・ネットワークの動作はそのサイズとは無関係である。このため、前述の各種タイプのニューラル・ネットワークは、それらの区別が不要であれば、以下、ニューラル・ネットワークという総称で示すことにする。
【０１１２】
基本ＺＩＳＣチップの詳細な説明
コンテキスト・レジスタと突合せ回路（１００／１５０）
図２２は、その役割がニューロン回路１１を選択するかどうかである突合せ回路１５０の詳細構造を示している。突合せ回路１５０はまず、入力コンテキストＣＸＴ値がヌルかどうかを検査するＮＯＲ回路１５１を含む。ＮＯ／ＣＸＴメイン・レジスタ１７に格納されている入力コンテキストＣＸＴ値がゼロの場合は、論理１が生成され、それが２ウェイＯＲゲート１５２の第１の入力に印加される。図２２によれば、各ニューロン回路にはＮＯＲ回路１５１が１つずつあるが、（ＺＩＳＣチップ１０のすべてのニューロン回路に共通する単一ＮＯ／ＣＸＴメイン・レジスタ１７のように）基本ＺＩＳＣチップ１０に共通の単一ＮＯＲ回路も考えられる。ＮＯＲ回路１５１は１つの７ウェイＮＯＲゲートで構成されている。さらに突合せ回路１５０は、入力コンテキストＣＸＴデータとローカル・コンテキストＣｘｔデータとを比較するＸＯＲ回路１５３を含んでいる。基本的にＸＯＲ回路１５３は７つの２ウェイＸＯＲゲートで構成されている。ＸＯＲ回路１５３から出力される信号はＮＯＲ回路１５４に印加される。基本的に後者は１つの７ウェイＮＯＲゲートで構成されている。ＮＯＲ回路１５４によって生成される信号はＯＲゲート１５２の第２の入力に印加される。また、ＯＲゲート１５２の出力側で生成される信号は前述のＮＳ（ニューロン選択）信号である。信号ＮＳがアクティブになる（ＮＳ＝１）と、ニューロン回路１１が選択される。要約すると、ニューロン回路１１は、入力コンテキストがゼロの場合または入力コンテキストがローカル・コンテキストと一致しない場合のみ選択される。
【０１１３】
図２３は、開示されたＺＩＳＣチップ１０の実施態様に採用されているコンテキスト手法の基礎にある概念を示している。すべてのニューロン回路１１−１〜１１−Ｎは、ＮＯ／ＣＸＴメイン・レジスタ１７のコンテキスト部分に格納されている同一入力コンテキスト・データＣＸＴについて並列に動作する。Ｎｏ／Ｃｘｔレジスタ１００のローカル・コンテキスト部分は、所定のニューロン回路、たとえば、ニューロン回路１１の拘束プロセス中にＣＸＴ−ＢＵＳを介してＮＯ／ＣＸＴメイン・レジスタ１７からロードされる。このコンテキスト機構により、特定のタスク用のベース・ニューラル・ネットワーク１１（Ａ）を形成する所定の数のニューロン回路を動的に選択することができる。たとえば、典型的なコンテキストの応用例としては、２つのニューロン回路グループによるニューラル・ネットワークが一連の入力ベクトルを選択的に認識する場合がある。Ｌ１ノルムによって使用中になっている第１のグループは第１のコンテキスト（コンテキスト１）を受け取り、Ｌｓｕｐノルムによって使用中になっている第２のグループは第２のコンテキスト（コンテキスト２）を受け取る。Ｌ１ノルムによって使用中になっているニューロン回路のみによって入力ベクトルの認識を続行する必要がある場合に、コンテキストの区別により、第１のグループのニューロン回路を選択し、第２のグループのニューロン回路を除外することは容易である。もう１つの典型的な例としては、一部のニューロン回路が第１の長さ（たとえば、ｎ＝６４）の入力ベクトルについて学習し、他のニューロン回路が第２の長さ（たとえば、ｎ＝３２）の入力ベクトルについて学習した場合が考えられる。第２のグループの入力ベクトルがベース・ニューラル・ネットワーク１１（Ａ）に提示されると、第１のグループのニューロン回路の応答は重要ではないはずなので、そのニューロン回路を禁止しなければならない。
【０１１４】
しかし、上記の概念は一般化することができる。各ニューロン回路１１がベース処理ユニットに１つずつ対応すると想定する。次に、複数のこのようなベース処理ユニットで構築したマルチプロセッサ・ユニットが、ベース・ニューラル・ネットワーク１１（Ａ）と同様に入力データ・パターンを並列に処理する場合について考察する。場合によっては、１つまたは複数のベース処理ユニットだけに入力データ・パターンをディスパッチしなければならない場合もある。このコンテキスト手法を使用すると、マルチプロセッサ・ユニットの前に通常必要になると思われるパターン・ディスパッチャを設計する必要性が回避される。このような従来のディスパッチャは、非常に回路が複雑であることが知られている。本発明のコンテキスト手法によれば、このディスパッチャは単一のメイン・コンテキスト・レジスタ（図２３のＮＯ／ＣＸＴメイン・レジスタ１７に対応するはずである）に縮小されるはずである。次に、各ベース処理ユニットには、専用ローカル・コンテキスト・レジスタ（ローカルＮｏ／Ｃｘｔレジスタ１００に対応するはずである）と、マルチプロセッサ・ユニットを形成するすべてのベース処理ユニットのローカル・コンテキスト・レジスタにメイン・コンテキスト・レジスタを相互接続するはずのバスとがローカルに設けられるはずである。その結果、このような実施態様では、１つ（または複数）の所定のベース処理ユニットで処理される入力データ・パターンがマルチプロセッサ・ユニットに提示される前に、その入力データ・パターンの前にメイン・コンテキスト・レジスタに直接ロードされる入力コンテキスト・データが付く。ローカル・コンテキスト・レジスタの内容がメイン・コンテキスト・レジスタに格納されている入力コンテキスト値と一致する場合は、前記入力データ・パターン（およびそれ以降のもの、ただし、コンテキスト値に変化がない場合に限る）が前記所定の処理ユニットによって処理される。入力コンテキストがゼロになると、ただちに追加の特定の回路がすべてのベース処理ユニットを選択することができる。データ処理の遅延という点で上記のコンテキスト機能によって持ち込まれるペナルティは、厳密な最小値に低減される。コンテキスト機能を使用しない場合（この場合、メイン・コンテキスト・レジスタの内容はゼロでなければならない）は、ペナルティは一切発生しない。入力コンテキストの更新が必要になると、ただちに入力データ・パターンにコンテキスト値を挿入するというペナルティが発生する。最大のペナルティは、各入力データ・パターンの後に新しいコンテキスト値を挿入する場合である。要約すると、マルチプロセッサ・ユニットにコンテキスト機能を導入すると、それを単一ユニットとしてまたは他のサブユニットの動作に影響せずに独立して動作可能な個別のサブユニットとして動的に構成できるというフレキシビリティが得られる。したがって、前述の、すなわち、完全にハードウェアによる解決策に基づくコンテキスト手法は、本発明の重要な特徴である。
【０１１５】
Ｒ／Ｗメモリ回路（２５０）
次に、図２４〜図２６について説明すると、図２４は、６４×８ビットのＲＡＭメモリ２５１（通常は重みメモリと呼ぶ）と、アドレス・カウンタ２５２と、任意でレジスタ２５３とを含むＲ／Ｗメモリ回路２５０の詳細構造を示している。信号Ａは、ＤＡＴＡ−ＢＵＳ上でＡレジスタ１３から出力される入力ベクトル成分を表している。信号Ｂは、ＲＡＭ−ＢＵＳ上でレジスタ２５３（ある場合）から出力されるプロトタイプ・ベクトル成分を表している。Ｒ／Ｗメモリ回路２５０は、ＲＡＭメモリ２５１から出力されるデータをラッチするためにレジスタ２５３を含むことができる。その結果、ＺＩＳＣチップ１０の製造時に実行される自動テストの過程でＲＡＭメモリ２５１が分離される。この場合、レジスタ２５３を使用する場合は、同期（バースト）モードでのパイプライン動作のために評価回路２００の２本の経路のバランスを取るために入力ベクトル・データ経路内に追加のレジスタ（図示せず）を配置することを推奨する。レジスタ２５３は空き状態の実行レジスタである。すなわち、そのロードが制御信号によってゲートされるＡレジスタ１３とは異なり、各サイクルごとにデータがそこにロードされる。アドレス・カウンタの役割は、入力ベクトルの成分をカウントすることと、ＲＡＭメモリ２５１を正しくアドレス指定することである。カウンタ２５２は、各種成分を順次ロードするためのＮＥＸＴＣ（ＮＥＸＴＣとはNEXT Component（次の成分）を意味する）と、第１の成分をロードする前にカウンタをリセットするためのＦＣＯＭＰ（ＦＣＯＭＰとはFirst COMPonent（第１の成分）を意味する）という２つの制御信号によって制御される。したがって、カウンタ２５２は、新しい認識フェーズの開始時にＦＣＯＭＰ信号によってリセットされ、各成分が提示されるごとに信号ＮＥＸＴＣによって増加される。アドレス・カウンタ２５２はＲ／Ｗメモリ回路２５０内部に示されているが、図１０のニューロン回路アーキテクチャ内のどこにでも配置することができる。実際には、ＺＩＳＣチップ１０の本発明の実施態様によれば、このカウンタは状況／制御論理回路１８内に置かれている。この場合、カウンタ２５２は、ＺＩＳＣチップ１０のすべてのニューロン回路に共通のＲＡＭアドレス信号を生成する。ＲＡＭメモリ２５１は１ポートＲＡＭである。レジスタ２５３には、距離評価回路２００内でのＢ信号の処理に必要であれば、相補形出力を設けることも可能である。ＲＳ信号を生成する回路については、デイジー・チェーン回路６００を参照して後述する。この段階の説明では、ＲＡＭメモリ２５１での入力ベクトル成分の事前装填を可能にするために、ニューロン回路１１のＲＡＭメモリ２５１に印加されるＲＳ信号は、すべての使用中のニューロン回路について非活動状態になり、第１の空き状態ニューロン、すなわち、学習可能ニューロン回路についてのみアクティブになると説明するだけで十分である。ＲＳ信号は、いずれかの標準的なＲＡＭメモリで現在使用されている従来のＲ／Ｗ信号と広く対応する。信号ＲＳがアクティブ（ＲＳ＝１）になると、ＲＡＭメモリ２５１への書込みが行われる。すなわち、アドレス・カウンタの制御下で各種成分が順次ロードされる。これに対して、信号ＲＳ��非活動状態（ＲＳ＝０）になると、ＲＡＭメモリ２５１の内容の読取りしか行えなくなる。次に図２５を参照して説明すると、同図には、認識フェーズ中の使用中のニューロン回路のデータの流れが示されている。信号ＲＳが非活動状態なので、入力ベクトルＡの成分はレジスタ１３のみにロードされ、ＲＡＭメモリ２５１にはロードされない。このため、使用中のニューロン回路のＲＡＭメモリ２５１には入力ベクトルのどの成分も書き込まれない（ＲＡＭメモリ２５１への経路は「空白」として示されている）。というのは、このような書込みは、そこに格納されているプロトタイプ・ベクトル成分の保全性にとって有害になる恐れがあるからである。比較評価回路２００での比較のために、信号ＡおよびＢが得られる。図２６は、認識フェーズ中の第１の空き状態の学習可能ニューロン回路のデータの流れを示している。この場合、入力ベクトルの各種成分は、新しいプロトタイプ・ベクトルの重みと同様、制御信号ＲＳがアクティブに設定されたときにＲＡＭメモリ２５１に格納される。図２６に空白経路で示されているように、学習可能ニューロン回路の場合、距離評価回路２００は信号ＡおよびＢを利用しない。したがって、事前装填ステップを実施するには、Ｒ／Ｗメモリ回路２５０と、ＲＳ信号を生成してその重みメモリに入力ベクトル成分をロードしなければならない所定の空き状態ニューロン回路を指定することができる回路とが必要になる。基本ＺＩＳＣチップ１０の本発明の実施態様では、この回路の役割がデイジー・チェーン回路６００によって達成される。したがって、この点についてはＲ／Ｗメモリ回路２５０とデイジー・チェーン回路６００とが「事前装填回路」を形成する。入力フェーズ中に学習可能ニューロン回路のＲＡＭメモリ２５１に入力ベクトル成分を事前装填するこのステップは、本発明の重要な特徴である。先行技術の既知の解決策と比較すると、この事前装填ステップには重大な利点がある。というのは、学習可能ニューロン回路が使用中であると確認されれば、学習フェーズ中の入力ベクトルの再提示が回避され、多くの時間が節約されるからである。
【０１１６】
距離評価回路（２００）
次に図２７を参照して説明すると、同図には、基本的に２つの補助回路２０１および２０２と、任意でレジスタ２０３とで構成される、マルチノルム距離評価ブロック２００の内部構造が示されている。８ビットのＤＡＴＡ−ＢＵＳ（入力ベクトルＡの各種成分を伝送する）と８ビットのＲＡＭ−ＢＵＳ（プロトタイプ・ベクトルＢの各種成分を伝送する）はサブブロック２０１に印加され、ローカル・ノルム信号Ｎｏは両方のサブブロック２０１および２０２に印加される。ブロック２００は、１４ビットのＤＩＳＴ−ＢＵＳ上に距離信号Ｄを生成する。ただし、マイクロコントローラ／ユーザ２２がそのすべての成分がゼロになる入力ベクトルＡを提示する場合は、距離評価回路２００がＤＩＳＴ−ＢＵＳ上にプロトタイプ・ベクトルＢのすべての成分を（ノルムＬ１によって）出力できることに留意されたい。この特性は、いわゆる保管モードで使用される。ＲＡＭメモリ２５１と距離評価回路２００のサブブロック２０１および２０２がすべてまとまって３ステージのパイプライン構造を形成する。
【０１１７】
前述の通り、本発明の重要な特徴によれば、ブロック２００は処理ユニットとして動作し、最小数のデバイスのみを使用するために最適化された回路でＬ１（ＭＡＮＨＡＴＴＡＮ）またはＬｓｕｐ（ＳＱＵＡＲＥ）ノルムによって距離を計算できるようになっている。１ビットのＮｏ−ＢＵＳ上で伝送されるローカル・ノルム信号Ｎｏは、距離計算に使用される所望のノルムを選択するために使用される。ノルム信号Ｎｏが１である場合は、入力ベクトルＡとプロトタイプ・ベクトルＢとの距離はＬ１ノルムに応じて計算され、これとは反対に、ノルム信号Ｎｏが０である場合は、前記距離がＬｓｕｐノルムによって計算される。したがって、前に使用した表記法、すなわち、Ａ＝Ａ１、・・・、Ａｉ、・・・、ＡｎおよびＢ＝Ｂ１、・・・、Ｂｉ、・・・、Ｂｎ（それぞれのＡｉまたはＢｉ成分はｍビットで符号化される）を使用すると、計算された距離Ｄは、Ｌ１ノルムの場合のｓｕｍ（ａｂｓ（Ａｉ−Ｂｉ））またはＬｓｕｐノルムの場合のｍａｘ（ａｂｓ（Ａｉ−Ｂｉ））のいずれかになる（ただし、ｉ＝１、・・・、ｎ）。この場合、省略形ａｂｓは「絶対値」を意味することに留意されたい。以下の例はこのステートメントを示している。ここで、Ａ＝７  １  ８  ２およびＢ＝６  ３４  ５によって表される４つの成分ベクトルＡおよびＢを想定する。この場合、距離は、Ｌ１ノルムでは１０になり、Ｌｓｕｐノルムでは４になる。
【０１１８】
一般化するため、ＤＩＳＴ−ＢＵＳ上にブロック２００によって生成される距離信号Ｄがビットｄ０、・・・、ｄｐ−１で構成されていると想定する。距離信号Ｄのビット数ｐは選択したノルムによって決まる。つまり、Ｌｓｕｐノルムの場合はｐ＝ｍ（同数のビット数）になるのに対し、Ｌ１ノルムの場合はビット数が成分の数ｎによって決まる。たとえば、ｎ＝４の場合、Ｌ１ノルムによって与えられる最大数は（２**８）*４＝１０２４になり、２**１０＝１０２４なので結果は１０ビットで符号化する必要がある。ＺＩＳＣチップ１０の本発明の実施態様では、ｎ＝６４成分はｍ＝８ビットで符号化され、実数は（２**８）*６４＝２**１４になる。これは、図２７でＤＩＳＴ−ＢＵＳが１４ビット幅を有する理由を示している。
【０１１９】
サブブロック２０１は、入力ベクトルとプロトタイプ・ベクトルそれぞれの２つの対応する成分ＡｉとＢｉとの差の絶対値、すなわち、（ａｂｓ（Ａｉ−Ｂｉ））を計算する。差（Ａｉ−Ｂｉ）を計算するということは加算器で合計（Ａｉ＋（
【数９】
＿＿
Ｂｉ
以降、Ｂｉバーと記載する。
））を計算することになり、したがって、Ｂｉの補数、すなわち、Ｂｉバーが必要になる。Ｒ／Ｗメモリ回路２５０によって出力される信号Ｂの極性に応じて、加算器２０５の１つの入力回路にｍ＝８個のインバータ群２０４が必要になる場合もある。加算器２０５は具体的には、密度および速度の点で本発明の要求を満足するように設計されている。加算器２０５は、ビット０〜ｍ−１によって生成される内部繰上りを計算する。
【０１２０】
加算器２０５によって出力される信号は、２ウェイ排他ＯＲ（すなわちＸＯＲ）回路２０６の入力に印加される。加算器２０５によって生成される繰上り信号はＣｇｅｎと呼ばれる。この信号は、入力繰上り信号Ｃｉｎとして加算器２０５に印加され、さらに、もう一方の入力がローカル・ノルム信号Ｎｏであるもう１つの２ウェイＸＯＲ回路２０７に印加される。ローカル・ノルム信号Ｎｏの値に応じて、回路２０７はＸＯＲ回路２０６によって生成された出力信号Ｘの極性を制御する。したがって、この特定の加算器２０５の革新的な設計により、入力繰上り端子でＣｉｎ信号として「繰上り生成」信号の再注入が可能になる。加算器２０５の基本機能については、以下の一般的な説明によってさらに十分理解されるはずである。
【０１２１】
Ａｉ＞Ｂｉの場合、加算器２０５は内部繰上り信号を生成し、すなわち、Ｃｇｅｎｉ＝１になる。この信号は、（ａｂｓ（Ａｉ−Ｂｉ））の正しい値を生成するためにその結果に加算される。この場合、Ｎｏ＝１であれば、結果Ｘｉはａｂｓ（Ａｉ−Ｂｉ）になり、Ｎｏ＝０であれば、結果Ｘｉはこの値の補数、すなわち、
【数１０】
＿＿＿＿＿＿＿＿＿
ａｂｓ（Ａｉ−Ｂｉ）
以降、ａｂｓ（Ａｉ−Ｂｉ）バーと記載する。
になる。この値Ｘｉはレジスタ２０３にラッチすることができる。
【０１２２】
Ａｉ＜ＢｉまたはＡｉ＝Ｂｉの場合、加算器２０５は内部繰上り信号を生成せず、すなわち、Ｃｇｅｎｉ＝０になる。Ｎｏ＝１であれば、ＸＯＲ回路２０６は、正しい値を生成するためにその結果の補数を取る。Ｎｏ＝０であれば、この補数処理は行われない。
【０１２３】
以下に示す数値例は、Ａｉ＜ＢｉおよびＡｉ＞Ｂｉという２通りの場合（Ａｉ＝Ｂｉという場合はＡｉ＜Ｂｉの場合と同様に処理される）の４ビット成分に基づくもので、この点を示している。
【０１２４】
0003798451.tif 000002
【０１２５】
上記の計算から明らかなように、加算器２０５は項（Ａｉ−Ｂｉ）＝００００と繰上り信号Ｃｇｅｎｉ＝１を生成し、その結果、Ｃｉｎｉ＝１になる。次に、この値Ｃｉｎｉが入力繰上りとして加算器２０５に印加され、さらにその結果にも印加され、００００＋１＝０００１になる。これに対して、Ｃｇｅｎ繰上り信号はＸＯＲ回路２０７に印加され、この回路がローカル・ノルム信号ＮｏとＣｇｅｎｉとの排他ＯＲ機能を実行する。次に、その結果が、加算器２０５によって生成された部分合計とともにＸＯＲ回路２０６に印加される。最後に、ＸＯＲ回路２０６の出力で得られる信号ＸｉはＸｉ＝（（Ｎｏ  ＸＯＲ  Ｃｇｅｎｉ）ＸＯＲ  Ｓｉ）のようになる。したがって、Ｘｉは最終的にａｂｓ（Ａｉ−Ｂｉ）またはａｂｓ（Ａｉ−Ｂｉ）バーに対応する。
【０１２６】
0003798451.tif 000003
【０１２７】
サブブロック２０１の機能を要約すると、そこから出力される信号Ｘｉは、入力ベクトルおよびプロトタイプ・ベクトルの各成分ｉについて、Ｎｏ＝１（すなわち、ノルムＬ１）の場合のａｂｓ（Ａｉ−Ｂｉ）またはＮｏ＝０（すなわち、ノルムＬｓｕｐ）の場合のａｂｓ（Ａｉ−Ｂｉ）バーのいずれかに対応する。
【０１２８】
第２のサブブロック２０２の役割は、サブブロック２０１から生成された信号Ｘｉを使用して距離Ｄを計算することである。パイプライン処理を使用する場合は、補助回路２０１と２０２との間に自由実行レジスタ２０３を追加することが好ましい。
【０１２９】
Ｘ信号は、もう一方の入力がＤ信号を受け取る加算器２０８の一方の入力に印加される。加算器２０８は、加算器２０５と同じ構造であるか、または従来のいずれかのタイプであってもよい。その役割には２面性がある。すなわち、Ｎｏ＝１（Ｌ１ノルム）の場合は、Ｘの現行値と距離Ｄを合計し、Ｎｏ＝０（Ｌｓｕｐノルム）の場合は、Ｘの現行値と前記距離を比較する。加算器２０８によって生成される繰上り出力信号Ｃｏｕｔは、ローカル・ノルム信号Ｎｏによって励起される増分回路２０９に印加される。この増分回路２０９は、Ｎｏ＝１（ノルムＬ１）の場合は通常通り動作し、Ｎｏ＝０（ノルムＬｓｕｐ）の場合は完全に禁止される（ゼロを生成する）。ただし、この増分回路２０９はＬ１ノルムの場合のみ使用されることに留意されたい。この回路により、使用するノルムにかかわらず、加算器２０８のビット範囲をｐビットからｍビットに縮小することができる。それぞれの合計ごとにａｂｓ（Ａｉ−Ｂｉ）値がｍビットで符号化されるので、加算器２０８に必要な容量はｍビットのみになる。
【０１３０】
また、Ｘ信号は、８個のインバータ２１１（１ビットごとに１つのインバータ）群を介してセレクタ回路２１０の第１の入力端子（１）にも印加される。加算器２０８の出力はセレクタ２１０の第２の入力端子（２）に接続され、最終的に信号Ｄはその第３の入力端子（３）に印加される。ノルム信号ＮとＣｏｕｔ信号はそれぞれコマンド（Ｃｍｄ）端子（１）および（２）に印加される。Ｌ１ノルムを使用する場合、Ｃｏｕｔ信号は入力端子（２）を選択する。Ｌｓｕｐノルムを使用する場合は、信号Ｃｏｕｔによって、入力端子（１）と（３）との選択が行われる。すなわち、Ｘ＞Ｄの場合は入力端子（１）が使用され、Ｘ＜＝Ｄの場合は入力端子（３）が使用される。その結果、ノルム信号Ｎの値とＣｏｕｔ信号に応じて、適切な結果を選択するためにセレクタ２１０が使用される。Ａレジスタ２１２は、計算時に現行距離を格納するので、累算器として機能する。距離計算の結果であるＤ信号は、１４ビットのＤＩＳＴ−ＢＵＳ上のレジスタ２１２の出力側で得られる。
【０１３１】
距離計算プロセスの開始時にレジスタ２１２はゼロに設定される。
【０１３２】
Ｌ１ノルムを使用する場合（Ｎｏ＝１）、加算器２０８は、Ｘｉ＝（ａｂｓ（Ａｉ−Ｂｉ））と、距離レジスタに格納されているプロセスのこの段階での距離Ｄすなわち現行距離との合計を計算する。セレクタ２１０は、入力（２）で得られる合計（Ｘｉ＋Ｄ）をレジスタ２１２に転送し、そこでその合計が次のサイクルの間、ラッチされる。合計すなわち距離Ｄが必要とするビット数がｍビットを超える場合は、加算器２０８によって生成される繰上り出力信号が増分回路２０９によって処理される。各サイクルごとに、（ｐ−ｍ）個の最上位のビットが増分回路２０９によって更新される。前記（ｐ−ｍ）個のビットと残りのｍ個はレジスタ２１２の第１および第２の入力端子に入力される。すべての成分対が入力されると、レジスタ２１２には、Ｌ１ノルムにより計算された入力ベクトルＡとプロトタイプ・ベクトルＢとの距離Ｄが収容される。
【０１３３】
Ｌｓｕｐノルムを使用する場合（Ｎｏ＝０）、加算器２０８は、ａｂｓ（Ａｉ−Ｂｉ）と現行距離Ｄとの差を計算する。この差の演算によって繰上りが示された場合、すなわち、Ｃｏｕｔｉ＝１の場合は、Ｄ＞ａｂｓ（Ａｉ−Ｂｉ）になる。この場合、現行距離と（Ａｉ−Ｂｉ）との最大値を実現するために入力端子（３）が選択される。Ｃｏｕｔｉ＝０の場合は、ａｂｓ（Ａｉ−Ｂｉ）＞Ｄになり、入力端子（１）が選択されて、この差がレジスタ２１２に格納される。ａｂｓ（Ａｉ−Ｂｉ）とＤとを比較するために、値Ｘｉ＝ａｂｓ（Ａｉ−Ｂｉ）バーが加算器２０８に印加されるので、レジスタ２１２にａｂｓ（Ａｉ−Ｂｉ）をロードする必要がある場合は、この値が適切な極性を持っていなければならず、これがインバータ２１１の役割になる。以下の２通りの例を参照すると、このケースがより容易に理解されるはずである。
【０１３４】
0003798451.tif 000004
【０１３５】
0003798451.tif 000005
【０１３６】
例１では、セレクタ２１０が入力端子（１）を選択し、値Ｘｉ＝ａｂｓ（Ａｉ−Ｂｉ）バーがレジスタ２１２にロードされる。例２では、何のアクションも行われない。したがって、信号Ｃｏｕｔは、Ｘｉが厳密にＤ未満であるかどうかを識別するのに使用される基準になる。ただし、インバータ２１１の抑止が可能であることに留意されたい。この場合、距離レジスタ２１２には、
【数１１】
＿＿＿＿＿＿＿＿＿＿＿＿＿＿
ｍａｘ（ａｂｓ（Ａｉ−Ｂｉ））
以降、ｍａｘ（ａｂｓ（Ａｉ−Ｂｉ））バーと記載する。
が収容される。このため、次の比較ステップでは、加算器の出力との比較を可能にするために加算器の入力側でのＸ信号の極性を修正しなければならない。この場合、繰上りの意味は反対になる。インバータを抑止すると、そのプロセスが多少複雑になるが、ｍが大きい数値であれば、この抑止によって数個のインバータを節約できる。
【０１３７】
次に、ＺＩＳＣチップ１０に実現されているような、図２７の加算器２０５の要求を完全に満たすようになっている、繰上り生成機能付きの革新的な高速かつ稠密加算器について説明する。この新規の実施態様によれば、加算器２０５は、内部繰上り（繰上り生成）を計算するためにセレクタ回路を使用している。図２８〜図３４を参照して以下に記載するアーキテクチャは、回路密度と速度（遅延）の点で非常に効率の良いものである。
【０１３８】
図２８に示すように、加算器２０５は、２つの補助回路２１３および２１４に分割することができる。補助回路２１３は、便宜的に文字ｃ（繰上り）、ｆ（力）、ｐ（伝播）によって総称的に示されている中間信号と、内部繰上りＣｇｅｎとを計算するために、入力ベクトルとプロトタイプ・ベクトルのそれぞれの各成分ごとに１次入力ビットａ０〜ａ７およびｂ０〜ｂ７を使用してそれらを処理する。この信号Ｃｇｅｎは実際は、入力繰上りを行わない加算による繰上りである。補助回路２１４は、補助回路２１３から出力される前記中間信号と、入力繰上り信号Ｃｉｎとを使用して、最終合計信号Ｓを計算する。補助回路２１３の革新的なアーキテクチャにより、有害なループの影響を及ぼさずに、出力端子Ｃｇｅｎを補助回路２１４の入力端子Ｃｉｎに直接接続することが可能である。
【０１３９】
図２９は、補助回路２１３の詳細構造を示している。スライスを形成する各ビット対（たとえば、ａ０とｂ０）ごとに、特定の回路（たとえば、２１５．１）がこのビット対の「状態」を計算する。すなわち、繰上り修正があるかどうかを判定し、繰上り修正がある場合は、このビット・スライスによって生成された繰上りｃが１または０のいずれに設定されているかを判定する。図３０は、本質的に２ウェイＸＯＲ２１６で構成されている回路２１５．１の内部構造を示している。この回路２１５．１は、ｐ０およびｃ０という２つのビットを生成し、その値は以下の規則によって決まる。ｐ０＝１の場合は繰上り修正がないことを意味し、ｐ０＝０の場合は繰上り修正があることを意味する。ｃ０ビットは繰上り修正がある場合のものなので、ｃ０は繰上りと等しい。設計上の制約に応じて、回路２１５．１は様々な配線が可能であるので、各種のオプションが可能である。より一般的には、ｃｉは、図３０に概略が示されている適切なストラップ接続によりａｉまたはｂｉと等しくするか、電気的な制約が正当な理由を示していれば、適切な論理ドット機能により（ａｉ  ＡＮＤ  ｂｉ）または（ａｉ  ＯＲ  ｂｉ）と同等にすることができる。
【０１４０】
もう一度図２９を参照して説明すると、回路２１５．１は、ビットａ０とｂ０を処理してｐ０＝（ａ０  ＸＯＲ  ｂ０）およびｃ０＝ａ０を生成する。これらの信号は補助回路２１５．１から出力されるが、さらに処理するために内部でも使用される。補助回路２１３の第２のレベルでは、もう１つの特定の回路が第１のレベルのそれぞれの回路によって生成された２対の信号を処理し、２ビット・スライスの結果「状態」を計算する。たとえば、回路２１７．１は、回路２１５．１によって生成されたビットｐ０およびｃ０と、回路２１５．２によって生成されたビットｐ１およびｃ１とを処理する。図３１は、図示の通り適切に相互接続されたセレクタ２１８と２ウェイＡＮＤゲート２１９とで基本的に構成される回路２１７．１の内部構造を示している。回路２１７．１は、補助回路２１３および補助回路２１４の両方の内部で使用されるビットｃ１−０およびｆ１−０を生成する。文字ｐおよびｆは、前述の通り、ｐ＝ｆバーを念頭に置いて繰上り修正信号の極性を示すために使用されている。このため、回路２１７．１はビットｐまたはｆによって定義される入力信号の極性に左右されるので、最適化を高める（反転ゲートを節約する）ために、ｆタイプではなくｐタイプの入力ビットによって励起される場合は、図３１の回路の代わりに図３２に示す回路構造を使用することが好ましい。たとえば、図３２の回路２２０．１を図２９の補助回路２１３の第３のレベルに使用して、ビットｃ３−０およびｐ３−０を生成する。この回路は、図３２に示すような相互接続を有するセレクタ２２１と２ウェイＮＯＲゲート２２２とで構成されている。２つのタイプのセレクタの動作は、基本的には図３３によって理解することができる。残りの４つのビット対を処理する回路２１３の残り半分にも同様の理論が適用されるので、回路２２０．２（回路２２０．１と同じタイプ）はビットｃ７−４およびｐ７−４を生成する。最終的に、ビットｆ７−０およびｃ７−０を生成する回路２２３によって示される最後の第４のレベルまでビット処理が続行される。この２つのビットは２ウェイＡＮＤゲート２２４に印加され、その出力ビットはＣｇｅｎ信号を表す。したがって、Ｃｇｅｎは、１次入力ビットのビット０〜７の内部繰上りになる。この繰上り信号Ｃｇｅｎは、Ｃｉｎ＝０と想定した場合の１次ビットの内部繰上りを表す。前記１次ビットの処理は並列に行われるので、遅延は非常に小さい。回路２１７．１と比較すると、回路２２３は同一構造を有する。図２９から明らかなように、補助回路２１３は、ビットＣｇｅｎに加え、補助回路２１４で後続処理するために前述のすべての中間ビットも供給する。
【０１４１】
以下の表は、回路２１７．１および２２０．１の論理テーブルを要約したものである。
【０１４２】
回路２１７．１
ｐ１＝１  ＝＝＝＞    ｃ１−０＝ｃ０
すなわち、これが生成された場合は、ビット０から繰上りが発生する。
ｐ１＝０  ＝＝＝＞    ｃ１−０＝ｃ１    ビット１からの繰上り
ｐ１＝１かつｐ０＝１の場合  ＝＝＝＞    ｆ１−０＝０（ビット１および０による伝播繰上り）
上記以外の場合              ＝＝＝＞    ｆ１−０＝１（ビット１または０による繰上り）
【０１４３】
回路２２０．１
ｆ３−２＝０  ＝＝＝＞    ｃ３−０＝ｃ１−０
これが生成された場合は、ビット１−０から繰上りが発生する。
ｆ３−２＝１  ＝＝＝＞    ｃ３−０＝ｃ３−２    ビット３−２からの繰上りｆ３−２＝１またはｆ１−０＝１の場合  ＝＝＝＞    ｐ３−０＝０（ビット１または０による繰上り）
上記以外の場合                        ＝＝＝＞    ｐ３−０＝１（ビット１および０による伝播繰上り）
【０１４４】
次に、前記中間ビットおよび入力繰上りビットＣｉｎによる合計信号Ｓのすべての合計ビットｓ０〜ｓ７の計算について、図３４に関連して説明する。
【０１４５】
ここで図３４を参照して説明すると、まず、補助回路２１４は、４つの同一の特定の回路２２５．１〜２２５．４を含んでいる。それぞれの回路（たとえば、２２５．１）は、２つの２ウェイＸＯＲ回路２２６および２２７と、１つのセレクタ２２８とで構成されている。たとえば、回路２２５．１に関して説明すると、Ｃｉｎビットはセレクタ２２８の第１の入力端子に印加され、そのセレクタの残りの入力はｃ０ビットを受け取る。コマンド入力（Ｃｍｄ）側でセレクタ２２８を制御するビットはビットｐ０である。セレクタ２２８によって生成されるビットとｐ１ビットはＸＯＲ２２６に印加され、ビットｃ０とＣｉｎはＸＯＲ２２７に印加される。ＸＯＲ回路２２６および２２７によって出力されるビットは、それぞれ合計ビットｓ１およびｓ０である。ビットｃ２〜ｃ６およびビットｐ２〜ｐ７に関する限り、回路２２５．２〜２２５．４にも同じ理論が適用されるが、回路２２５．２〜２２５．４では、ＣｉｎがＸＯＲ２２７の前記第１の入力端子に直接印加されるわけではない。回路２２５．２のＸＯＲ２２７に印加されるビットは、セレクタ２２９．１に印加される制御ビットｆ１−０の値に応じて、ビットｃ１−０またはビットＣｉｎのいずれかになる。同様の構造がセレクタ２２９．２にも適用され、このセレクタではビットｐ３−０がビットｃ３−０またはビットＣｉｎのいずれかを選択する。回路２２９．３では、状況がさらに多少複雑になる。セレクタ２２９．３に印加される制御ビットは、２ウェイＮＡＮＤゲート２３０で完成する（ｐ５−４  ＮＡＮＤ  ｐ３−０）に対応するｆ５−０になる。この制御ビットｆ５−０は、ビットＣｉｎあるいはビットｆ５−４の制御下でセレクタ２３１で行われるビットｃ５−４またはｃ３−０の選択によって得られるビットｃ５−０のいずれかを選択する。最終的に、独立セレクタ２３２が繰上り出力ビットＣｏｕｔを生成するが、これはビットｐ７−０の制御下でのビットＣｉｎまたはビットｃ７−０のいずれかになる。図３４に示す構造から明らかなように、回路２２５．１〜２２５．３は、前述のように回路２２５．１によって生成される合計ビット対ｓ０  ｓ１に加え、合計ビット対ｓ２  ｓ３、ｓ４  ｓ５、ｓ６  ｓ７をそれぞれ出力する。
【０１４６】
それぞれ図２９および図３４に示す補助回路２１３および２１４の実施態様では、重大な遅延を２つの部分に分割することができる。補助回路２１３は前記中間信号を生成するために４つのステージを必要とするが、信号Ｃｇｅｎを生成するには５つのステージが必要である。また、補助回路２１４は４つのステージを必要とする。しかし、応用例に応じて、補助回路２１３および２１４の基本回路の数の削減が可能であるが、それにはステージ数と全体的な遅延の増加が必要になる。
【０１４７】
比較回路とＩＦ回路（３００／３５０）
比較回路３００は、計算された距離信号ＤとＪ信号との比較を実行するために各ニューロン回路１１に実現されている。Ｊ信号は図１２に示すＩＦ回路３５０によって供給される。図１２から明らかなように、Ｊ信号は、ＤＩＳＴ−ＢＵＳ、ＯＲ−ＢＵＳ、またはＭｉｎＩＦ／ＭａｘＩＦ−ＢＵＳのいずれかに現れる信号またはＡＩＦ値を保持しているＡＩＦレジスタ３５２の内容である。図３５は、ＺＩＳＣチップ１０の好ましい実施態様による完全並列比較回路３００の詳細構造を示している。ここで図３５を参照して説明すると、比較回路３００は、第１の組の入力端子上で距離評価回路２００によって生成された距離Ｄ信号の１４個の１次ビットｄ０〜ｄ１３を受け取る。比較回路は、もう１組の入力端子上に印加されるＩＦ回路３５０からのＪ信号の１４個の１次ビットｊ０〜ｊ１３をさらに受け取る。本質的に比較回路３００は、２つの信号ＬＴ（未満）およびＬＴＥ（以下）を生成し、次にこれらの信号が識別回路４００に印加される。比較回路３００で行われるＤ信号とＪ信号との比較の一般原理は、（１）Ｄが厳密にＪ未満である（これはＬＴ信号の役割である）かどうかと、（２）ＤがＪ以下である（これはＬＴＥ信号の役割である）かどうかを判定することである。
【０１４８】
認識フェーズ中、信号ＪはＡＩＦレジスタ３５２に格納されている値を表す。計算された距離ＤがこのＡＩＦ値と比較され、Ｄ＜ＡＩＦかどうかを判定する。これに対して、学習フェーズでは信号ＪはＭｉｎＩＦになる。この場合、計算された距離ＤがＭｉｎＩＦと比較され、Ｄ＜＝ＭｉｎＩＦかどうかを判定する。以下の表Ｉは、それぞれのモードでのＬＴ信号およびＬＴＥ信号の値に応じて到達しうる、所定のニューロン回路１１に関する結論を示している。
【０１４９】
表Ｉ
認識モードの場合：
ＬＴ            結論
０              発動なし（Ｄ＞＝ＡＩＦ）
１              発動    （Ｄ＜ＡＩＦ）
学習モードの場合：
ＬＴＥ          結論
０              縮退なし        （Ｄ＞ＭｉｎＩＦ）
１              縮退の可能性あり（Ｄ＜＝ＭｉｎＩＦ）
【０１５０】
そのために信号Ｊと信号Ｄのそれぞれの対応するビット同士の比較が行われる。信号の並列処理を可能にする図３５に示す樹枝状アーキテクチャにより、比較が非常に高速で実行される。スライスを形成する１次ビットの各対（たとえば、ｄ０とｊ０）ごとに、特定の回路（たとえば、３０１．１）がこのビット対の「状態」を計算する。すなわち、２つのビットが等しいかどうかを判定する。構造上、回路３０１．１は、本質的に２ウェイＸＯＲ２１６で構成される図３０の回路２１５．１と同様であるが、所望のＸＯＲＮＯＴ（ＸＯＲＮ）機能を実行するためにその出力側にさらに反転ゲートを必要とする。この回路３０１．１は、ｐ０およびｃ０という２つのビットを生成し、そのビットの値は以下の規則によって決まる。すなわち、ｐ０＝１の場合はビットｄ０とｊ０とが等しいことを意味し、ｐ０＝０の場合は前記の２つのビットが異なることを意味する。図３５から明らかなように、ｃ０ビットはｄ０と等しくなる。設計上の制約に応じて、回路３０１．１は様々な配線が可能である。回路３０１．１はビットｄ０とｊ０からなる第１のビット対を処理してビットｐ０とｃ０を生成する。同様の回路３０１．２〜３０１．１４は、それぞれのビット対ｐ１とｃ１〜ｐ１３とｃ１３を生成するために残りのビット対、すなわち、ｄ１とｊ１〜ｄ１３とｊ１３を処理する。
【０１５１】
回路３００の第２のレベルでは、もう１つの特定の回路が第１のレベルの回路のそれぞれのスライスによって生成された２つのビット対を処理し、２ビット・スライスの結果を計算する。たとえば、回路３０２．１は回路３０１．１によって生成されたビットｐ０、ｃ０と、回路３０１．２によって生成されたビットｐ１、ｃ１とを処理する。次に、回路３０２．１はｃ１−０とｆ１−０とのビット対を生成する。回路３０２．１は、図示の通り適切に相互接続されたセレクタ２１８と２ウェイＡＮＤゲート２１９とで基本的に構成される、図３１に示す回路２１７．１と同一の構造を有する。回路３０２．２〜３０２．７にも同じ構造が適用される。回路３０３．１は、文字ｐではなく文字ｆによって定義される入力ビットの極性に左右されるので、最適化を高めるため、すなわち、反転ゲートを節約するために、図３１に示す回路の代わりに図３２に示す回路構造を使用することが好ましい。このため、回路３０３．１は、ビットｃ３−０およびｐ３−０を生成するために図３２の回路２２０．１と同一であることが好ましい。この回路は、図３２に示すような相互接続を有するセレクタ２２１と２ウェイＮＯＲゲート２２２とで構成されている。同様の回路３０３．２および３０３．３は、それぞれのビット対ｐ７−４、ｃ７−４およびｐ１１−８、ｃ１１−８を生成する。回路３０３．４だけは異なる構造を有し、ビットｐ１３−１２を生成するためにインバータのみで構成されている。
【０１５２】
それぞれビット対ｆ７−０、ｃ７−０およびｆ１３−８、ｃ１３−８を生成する回路３０４．１および３０４．２によって示される第４のレベルでビット信号処理が続行される。これらの２つの回路は、図３１の回路２１７．１と同じ構造を有する。最終的にこれらのビット対は、ビットｐ１３−０およびｃ１３−０を生成する回路３０５に印加される。回路３０５は、図３２の回路２２０．１と比較すると同一構造を有する。これらの２つのビットは、その出力ビットがＬＴ信号を表す２ウェイＮＯＲゲート３０７で構成される回路３０６に印加される。ビットｐ１３−０とＬＴは、信号ＬＴＥを生成するために２ウェイＯＲゲート３０８に印加される。前記１次ビットの処理は比較回路３００で並列に行われるので、全体的な遅延は非常に小さい。その結果、ビット数の点で容易に拡張可能（遅延の増加は最小）で、使用するデバイス数が少ない、高速かつ稠密の完全並列比較回路が説明される。
【０１５３】
識別回路（４００）
次に図３６を参照すると、同図には、ニューロン回路１１の識別回路４００の詳細構造が示されている。１４ビットのＣＡＴ−ＢＵＳ（マイクロコントローラ／ユーザ２２によって供給される入力カテゴリＣＡＴ信号を伝送する）およびＯＲ−ＢＵＳ（グローバル・カテゴリＣ*信号を伝送する）は、その出力が比較器４０２の第１の入力に接続されている２ウェイ・マルチプレクサ４０１に印加される。したがって、マルチプレクサ４０１は、動作モードに応じて、入力カテゴリ信号ＣＡＴまたはグローバル・カテゴリ信号Ｃ*のいずれかを比較器４０２の前記第１の入力に転送する。ただし、マルチプレクサ４０１は、ベース・ニューラル・ネットワーク１１（Ａ）のすべてのニューロン回路用のメイン・マルチプレクサ回路で置き換えることができることに留意されたい。この場合、ＯＲ−ＢＵＳは不要になり、ＣＡＴ−ＢＵＳがＣＡＴまたはＣ*データのいずれかを伝送することになるはずである。Ｃａｔ−ＢＵＳは、比較器４０２の第２の入力に印加される。比較器４０２は、単一の１４ウェイＯＲゲートを励起する１４個の２ウェイＸＯＲゲートで従来通り構成されている。次に、比較器４０２の出力は、そのもう一方の入力が学習信号Ｌを受け取る２ウェイＸＯＲゲート４０３の第１の入力に印加される。信号ＬはＩＡＤＤ／ＣＴＬ−ＢＵＳを介して伝送されるが、実際はマイクロコントローラ／ユーザ２２の制御下で状況／制御論理回路で生成される信号から直接得られる。Ｌ信号は、学習フェーズ中にアクティブに設定され（Ｌ＝１）、認識フェーズ中に非活動状態に設定される（Ｌ＝０）。しかし、ニューロン回路が学習フェーズ中に入力ベクトルを格納しなければならないという最終決定は、識別回路４００に関連し、その点に関するデイジー・チェーン回路６００の役割は、以下に詳述するように学習可能ニューロン回路の選択に限定される。ＸＯＲゲート４０３によって生成される１ビット信号はＫ信号と呼ばれる。ＬＴ信号とＣＯ信号は２ウェイＡＮＤゲート４０４に印加される。デイジー・チェーン回路６００で生成されるＣＯ信号は、そのニューロン回路がコミットされるとただちにアクティブに設定される（ＣＯ＝１）。ＡＮＤゲート４０４から生成される信号は、
【数１２】
＿
Ｌ
以降、Ｌバーと記載する。
によって制御される任意選択の１ビットのＦレジスタ４０５に格納されることが好ましい。レジスタ４０５によって生成される信号はローカル発動結果信号Ｆである。信号Ｆは、ニューロン回路１１が認識モードで発動したときにアクティブに設定される（Ｆ＝１）。ＬＴＥ信号およびＣＯ信号と、比較器４０２によって出力される信号は、３ウェイＡＮＤゲート４０６に印加される。ＡＮＤゲート４０６によって生成される信号は、信号Ｌの制御下で１ビットのＤＥＧレジスタ４０７に格納され、ＤＥＧ信号として識別回路４００から出力される。信号ＤＥＧはニューロン回路１１の状況信号である。ニューロン回路１１が縮退する（この場合は、ＡＩＦレジスタ３５２にＭｉｎＩＦがロードされる）と、レジスタ４０７は「１」を保持する。レジスタ４０７から出力される信号と、ローカル結果発動信号Ｆは、ＤＥＧＯＵＴローカル結果信号を生成するために２ウェイＡＮＤゲート４０８に印加される。したがって、ＤＥＧＯＵＴ信号は、縮退したニューロン回路が認識フェーズ中に発動するとアクティブに設定される。最後に、信号ＦおよびＫは、ローカル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ信号を生成するために２ウェイＡＮＤゲート４０９に印加される。この信号は、動作モードに応じて２通りの意味を持つ。学習モードでは、学習可能ニューロン回路の拘束プロセス中に、ＵＮＣ／ＦＩＲＥ．ＯＫ信号がアクティブに設定される（ＵＮＣ／ＦＩＲＥ．ＯＫ＝１）と、格納済み入力ベクトルはプロトタイプ・ベクトルとして「凍結」されない。入力ベクトルはニューラル・ネットワークの少なくとも１つのニューロン回路によって認識されているので、学習可能ニューロン回路は拘束されない。認識モードでは、異なるカテゴリを有する２つのニューロン回路が発動した場合、すなわち、入力ベクトルが識別されていない場合に、ＵＮＣ／ＦＩＲＥ．ＯＫ信号がアクティブに設定される。要約すると、識別回路４００は、３つのローカル結果信号Ｆ、ＤＥＧＯＵＴ、およびＵＮＣ／ＦＩＲＥ．ＯＫ（これらは入力ベクトルの提示に対する所定のニューロン回路のローカル応答を表す）と、１つの状況信号ＤＥＧを生成する。さらに、これらの信号の一部は制御信号として使用される。
【０１５４】
実際には、認識モードでの比較器４０２の機能は、所定のニューロン回路１１のカテゴリ・レジスタ４５０に格納されているローカル・カテゴリ信号Ｃを、ＯＲ−ＢＵＳ上で提示されるグローバル・カテゴリ信号Ｃ*と比較することである。Ｃ信号とＣ*信号との間に違いがあれば、比較器４０２では一致が発生しない。一貫性を保つため、この場合、論理１が生成されると想定する。このモードでは信号Ｌが非活動状態（Ｌ＝０）であるので、したがって、ＸＯＲゲート４０３から出力される信号Ｋは１に設定され、信号Ｆがアクティブ（Ｆ＝１）であれば、信号ＵＮＣ／ＦＩＲＥ．ＯＫは１になる。これは、異なるカテゴリを有する少なくとも２つのニューロン回路が発動したことを意味する。少なくとも１つのＵＮＣ／ＦＩＲＥ．ＯＫ信号が１に設定されると、その結果、すべてのローカル結果信号のＯＲ演算の結果であるグローバル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ*が１に設定される。ベース・ニューラル・ネットワーク１１（Ａ）レベルでは、これは、異なるカテゴリで発動した少なくとも２つのコミット済みニューロン回路によって入力ベクトルが認識されたために、入力ベクトルが識別されていないことを意味する。これに対して、発動したすべてのコミット済みニューロン回路がそれぞれグローバル・カテゴリＣ*と同一のローカル・カテゴリＣを有する場合、それから生成されるすべてのローカル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫは０に設定されるので、グローバル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ*は０になる。後者の場合、入力ベクトルは識別され、そのカテゴリはＣ*になる。
【０１５５】
学習フェーズでは、ニューロン回路が縮退状態になるかどうかを判定することが重要である。使用中のニューロン回路の場合、ＣＡＴ−ＢＵＳ上でマイクロコントローラ／ユーザ２２によって供給される入力カテゴリＣＡＴが比較器４０２でローカル・カテゴリＣと比較される。ＣがＣＡＴと等しい場合は、ＵＮＣ／ＦＩＲＥ．ＯＫ＝１になり、信号ＬＴＥは使用されず、このニューロン回路が正しいカテゴリで入力ベクトルを認識しているので縮小プロセスは行われない。ＣとＣＡＴが異なる場合は、距離ＤとＭｉｎＩＦ値との比較の結果、すなわち、信号ＬＴＥ値に応じて、２つの場合が考えられる。信号ＬＴＥ＝１（すなわち、Ｄ＜＝ＭｉｎＩＦ）の場合は、ニューロン回路１１は縮退状態であると宣言され、ＡＮＤゲート４０６によって生成される論理１がＤＥＧレジスタ４０７に格納され、ＭｉｎＩＦ値がＡＩＦレジスタ３５２に格納される。信号ＬＴＥ＝０（すなわち、Ｄ＞ＭｉｎＩＦ）の場合は、ＤＥＧレジスタ４０７の内容は修正されず、ＡＮＤゲート４０６によって出力される信号がゼロになる。さらに、ニューラル・ネットワーク・レベルでは、比較器４０２は、入力カテゴリＣＡＴが少なくとも１つのニューロン回路によって認識されているかどうかを判定する役割を持つ。ニューロン回路１１が縮退したかどうかを判定することは、縮小プロセスの重要なステップである。学習フェーズ（信号Ｌ＝１）では、ＸＯＲゲート４０３から出力されるＫ信号が１に設定され（入力カテゴリＣＡＴがローカル・カテゴリＣと同じなので、比較器４０２で一致が発生するため）、しかも信号Ｆ＝１であれば、信号ＵＮＣ／ＦＩＲＥ．ＯＫが１に設定される。ＡＮＤゲート４０９によって生成されるＵＮＣ／ＦＩＲＥ．ＯＫ信号は、対象となるニューロン回路が入力ベクトルを正しく認識したので、入力ベクトルがベース・ニューラル・ネットワーク１１（Ａ）レベルで正しく認識されたことを示すという意味を持つ。この場合、学習可能ニューロン回路は空き状態のままになり、格納済み入力ベクトルはＲＡＭメモリ２５１で新しいプロトタイプ・ベクトルとして「凍結」されない。ニューラル・ネットワークが新たな学習可能ニューロン回路を拘束する必要はない。
【０１５６】
識別回路４００におけるグローバル信号Ｃ*とローカル信号Ｃとの比較の結果であるＵＮＣ／ＦＩＲＥ．ＯＫ信号は、グローバル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ*とは異なり、認識フェーズと学習フェーズのいずれでも、ローカルで使用されないことに留意されたい。要約すると、認識モードでの信号ＵＮＣ／ＦＩＲＥ．ＯＫ*＝１は、２通りのカテゴリを有する少なくとも２つのニューロン回路が入力ベクトルを認識したことを意味する。信号ＵＮＣ／ＦＩＲＥ．ＯＫ＊＝０は、単一カテゴリを有する少なくとも１つのニューロン回路によって入力ベクトルが認識されたか、または入力ベクトルがまったく認識されていないことを意味する。学習フェーズでは、グローバル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫ*（それから得られるＳＴ信号を介する）は、前の認識フェーズ中に完了した事前装填ステップ中にＲＡＭメモリ２５１に格納されている入力ベクトルを、学習可能ニューロン回路に強制的に凍結させるかどうかを判定する役割を持つ。
【０１５７】
Ｄｍｉｎ決定回路（５００）
図１３を参照して前述したように、Ｄｍｉｎ決定回路５００は、マルチプレクサ５０１と、探索／分類回路５０２と、論理回路５０３とで構成されている。図３７は、探索／分類回路５０２に印加されるＳＥＬＥＣＴバー信号を生成する論理回路５０３の内部構造の概略を示している。実際には論理回路５０３は、図１３から明らかなように、Ｆ信号、ＣＯ信号、およびＲＳ信号を受け取るだけでなく、ＮＯＲＭＡＬ（ＮＭ）信号、ＮＥＡＲＥＳＴ  ＮＥＩＧＨＢＯＲ（ＮＮＭ）信号、およびＳＡＶＥ（ＳＭ）信号という基本ＺＩＳＣチップ１０の各種動作モード／サブモードに関連する３つの制御信号も受け取る。この３つの制御信号は、状況／制御論理回路１８によって生成され、ＩＡＤＤ／ＣＴＬ−ＢＵＳを介して論理回路５０３に伝送される。論理回路５０３は、１つの３ウェイＡＮＤゲート５０３．１と、２つの２ウェイＡＮＤゲート５０３．２および５０３．３と、１つの３ウェイＮＯＲゲート５０３．４とを含んでいる。ＡＮＤゲート５０３．１にはＣＯ、Ｆ、およびＮＭの各信号が印加される。ＡＮＤゲート５０３．２にはＣＯおよびＮＮＭの各信号が印加される。また、ＡＮＤゲート５０３．３にはＲＳおよびＳＭの各信号が印加される。前記３つのＡＮＤゲートの出力は、ＳＥＬＥＣＴバー信号を生成するＮＯＲゲート５０３．４のそれぞれの入力に印加される。次に、このＳＥＬＥＣＴバー信号は、図４２を参照して後述するように禁止信号として探索／分類回路５０２に印加される。
【０１５８】
本質的に、探索／分類回路５０２の主な役割は、ニューラル・ネットワークのニューロン回路によって計算されたすべての距離のうちの最小距離Ｄｍｉｎを求める探索に関与し、さらに残りの距離の分類に関与することである（また、データのカテゴリ・タイプを処理できるようにもなっている）。このため、探索と分類のプロセスをニューラル・ネットワークのすべてのニューロン回路がまとめて実行することに留意することが重要である。より一般的には、探索／分類回路５０２の役割は、まず、複数のパラメータからなるグループから最小値を検出し、次に、残りの値を増加順に分類することである。しかし、それが最大値を検出し、残りの値を減少順に分類できるようになっていることは、当業者にとっては当然のことと思われる。したがって、探索および分類プロセスは、最短時間でしかもできる限り単純な回路で実行しなければならない。このような基準は本発明の探索／分類回路５０２によって満足される。最小距離Ｄｍｉｎを決定するための探索プロセスと関連回路についてのみ、以下に説明する。ただし、最大距離を決定するための探索プロセスの場合も、基本的には同じ規則に従い、よく似た回路を使用するはずである。
【０１５９】
本発明の探索プロセスの基礎にあるアルゴリズムについて、図３８の流れ図５０４を参照して簡単に説明する。４つのニューロン回路１１−１〜１１−４があり、それぞれが入力ベクトルとその格納済みプロトタイプ・ベクトルとのそれぞれの距離Ｄ１、Ｄ２、Ｄ３、およびＤ４を計算したと想定する。提起される問題は、この４つの距離のうちの最小値Ｄｍｉｎを決定することである。まず第一に、距離を列に配置し、対応するビットを行に配置したマトリックスを構築する。ここで単純な例を示すことにする。Ｄ１＝０１１０、Ｄ２＝１００１、Ｄ３＝１１０１、およびＤ４＝０１０１のようにそれぞれが４ビットで符号化された２進ワードで構成されている距離Ｄ１、Ｄ２、Ｄ３、およびＤ４のうちの最小値を検出しなければならないと想定する。以下の表IIは構築されたマトリックスを示すもので、１行目Ｌ１は重い重みを持つビットすなわちＭＳＢを表し、ＬＳＢを表すＬ４まで以下同様になっている。より一般的には、ｄｋｉという表記は、ｋ行目かつｉ列目のビットの値を表す。したがって、この例では、変数ｋ（ｋ＝１〜４）は距離を表す２進ワード内でのそのビットのランクであり、変数ｉ（ｉ＝１〜４）は対象となるニューロン回路のランクである。表IIから明らかなように、各行には２進ワードが１つずつ対応している（たとえば、それぞれの距離ワードのＭＳＢによって形成されるＬ１は、Ｌ１＝０１１０のようになる）。
【０１６０】
0003798451.tif 000006
【０１６１】
次に図３８について説明すると、同図はアルゴリズム５０４の流れ図を示すものである。「開始」というボックスで探索プロセスが開始された後、ボックス５０５で１行目Ｌ１のビットの分析に移行し、ボックス５０６で行われるテスト中にそこに少なくとも１つの「０」があるかどうかが判定される。１行目Ｌ１は２つの０を含んでいるので、ボックス５０７により、「１」を含む距離、すなわち、Ｄ２とＤ３が除外され、これらは後続の処理ステップに関与しなくなる。距離が除外されることを示すため、以下の２行に概略を示すように、対応する列に「×」が表示される。
0003798451.tif 000007
【０１６２】
上記の状況行（ＳＬ）から明らかなように、距離Ｄ２およびＤ３に対応する列が除外される。次に、ボックス５０８で現在行（Ｌ１）が検査され、それが最後の行かどうかが判定される。この例では、行Ｌ１は最後の行ではないので処理が続行される。ステップ２として、ボックス５０９により、次の行Ｌ２が検査される。距離Ｄ２およびＤ３は除外されているので、ボックス５０６で行われるテスト中に列Ｄ１およびＤ４についてのみ、そこに「０」があるかどうかもう一度探索が行われる。０が検出されないので、このステップではそれ以上列の除外が行われず、ボックス５０７が迂回される。行Ｌ２は０を含まないので、以下に示すようにステップ２では前回の状況行ＳＬの変更を行わない。
0003798451.tif 000008
【０１６３】
行Ｌ３について処理が続行される。このステップ３では、ビットｄ３４の距離Ｄ４に新たな０の存在が検出されるので、以下に示すように距離Ｄ１が除外される。
0003798451.tif 000009
【０１６４】
最後に、ステップ４ではボックス５０６で行Ｌ４が検査され、０が検出されないので、ボックス５０７が迂回され、ステップ３で検出した状況が確認される。距離Ｄ１、Ｄ２、Ｄ３は除外されているので、ニューロン回路１１−４によって検出された距離Ｄ４で最小値が表される。
0003798451.tif 000010
【０１６５】
行Ｌ４は最後の行なので、ボックス５０８で行われるテスト後に探索プロセスは「終了」というボックスで終了する。最後に、最小距離がＤｍｉｎ＝Ｄ４＝０１０１と示される。
【０１６６】
図３９は、本発明による探索／分類回路５０２の基礎である基本ベース・ユニット（全体を参照番号５１０で示す）の概略構造を示している。図３９から明らかなように、参照番号５１０−ｋｉは、ニューロン回路１１−ｉの評価回路２００によって事前に計算された距離信号Ｄｉのビットｄｋｉ（行ｋ、列ｉ）を処理する基本ベース・ユニットを示している（ただし、ｋ＝１〜ｐ、ｉ＝１〜Ｎ）。基本的にユニット５１０−ｋｉは、２つのサブユニット５１１−ｋｉと５１２−ｋｉとで構成されている。ユニット５１０−ｋｉには、入力ビット信号ｄｋｉ、除外入力信号ＥＸＣＬＩＮｋｉ、およびフィードバック信号ＯＲｋという３つの入力信号が印加され、ローカル出力信号ＮＯＵＴｋ−ｉおよび除外出力信号ＥＸＣＬＯＵＴｋｉという２つの出力信号がそこから出力される。ＥＸＣＬＩＮｋｉ信号は、その値に応じて、探索プロセス、すなわち、Ｄｍｉｎの決定用としてユニット５１０−ｋｉを選択するかまたは禁止するために使用される。たとえば、ＥＸＣＬＩＮｋｉが非活動状態（ＥＸＣＬＩＮｋｉ＝０）に設定されると、ユニット５１０−ｋｉは除外されず、一方、ＥＸＣＬＩＮｋｉがアクティブ（ＥＸＣＬＩＮｋｉ＝１）に設定されると、ユニット５１１−ｋｉは動作不能になり、ＮＯＵＴｋ−ｉが非活動状態（ＯＲ回路１２に基づくＺＩＳＣチップ１０の本発明の実施態様では、ＮＯＵＴｋ−ｉ＝０）に設定される。基本的にサブユニット５１１−ｋｉの機能は、そのサブユニットが禁止されていないときにビットｄｋｉが「０」になっているかどうかを探索することである。そのために、ビット信号ｄｋｉとＥＸＣＬＩＮｋｉ信号との間で特定の論理機能が実行され、出力信号ＮＯＵＴｋ−ｉを生成する。これに対して、信号ＥＸＣＬＯＵＴｋｉは、信号ＥＸＣＬＩＮｋｉ、ｄｋｉ、およびＯＲｋに対する所定の論理機能である。したがって、ユニット５１２−ｋｉの役割は、その値に応じて前記ユニットを禁止または許可するために、ビットｄ（ｋ＋１）ｉを処理する次の行に関する後続ユニット５１０−（ｋ＋１）ｉ用の適切な入力信号を生成することである。すなわち、サブユニット５１２−ｋｉは、次の行が処理されるときに距離Ｄｉが除外されるかどうかを判定する。ゲート信号としてここで介入する信号ＯＲｋは、行ｋによって生成されたすべてのＮＯＵＴｋ−ｉ信号のＯＲ演算の結果である（ＯＲｋ＝ＮＯＵＴｋ−１  ＯＲ・・・ＯＲ  ＮＯＵＴｋ−Ｎ）。
【０１６７】
図４０に示す好ましい実施例では、サブユニット５１１−ｋｉは、ＮＯＵＴｋ−ｉ＝ｄｋｉ  ＮＯＲ  ＥＸＣＬＩＮｋｉを実行するＮＯＲゲート５１３で構成されている。除外機能に関する重要な役割を果たすサブユニット５１２−ｋｉは、ＡＮＤゲート５１４とＯＲゲート５１５とで構成され、これらはＡＮＤ−ＯＲ機能を実行するために相互接続されているので、ＥＸＣＬＯＵＴｋｉ＝ＥＸＣＬＩＮｋｉ  ＯＲ  （ｄｋｉ  ＡＮＤ  ＯＲｋ）になる。たとえば、信号ＥＸＣＬＩＮｋｉ＝１の場合は、ｄｋｉの値がＯＲ回路１２に対して中立かどうかにかかわらず、信号ＮＯＵＴｋ−ｉが強制的にゼロになる。ここで、信号ＥＸＣＬＩＮｋｉ＝０（除外なし）の場合は、信号ＮＯＵＴｋ−ｉが
【数１３】
＿＿＿
ｄｋｉ
以降、ｄｋｉバーと記載する。
になる。ｄｋｉ＝０の場合は、信号ＮＯＵＴｋ−ｉ＝１になるので、後者の値は、この位置でゼロが検出されたことを表す。その結果、信号ＯＲｋは１になり、ｄｋｉ＝０かつ信号ＥＸＣＬＩＮｋｉ＝０なので、信号ＥＸＣＬＯＵＴｋｉ＝０が得られる。これは、次のユニットが禁止されないことを意味する。これに対して、ｄｋｉ＝１の場合は、依然として信号ＥＸＣＬＩＮｋｉが０になるので、信号ＮＯＵＴｋ−ｉは０に設定される。ここで、この行ｋに関して除外されない残りの列から得られる結果に応じて、２通りの場合を考察しなければならない。すべての入力ビット信号が１になる場合、この行ｋのローカル結果信号（すべてのｉという値の場合）はいずれもゼロになり、信号ＯＲｋ＝０になり、最終的に信号ＥＸＣＬＯＵＴｋｉ＝０（除外なし）になる。同じく行ｋの場合に少なくとも１つの入力ビットが０になると、対応するローカル結果信号ＮＯＵＴｋ−ｉが１になるので、信号ＯＲｋ＝１になり、最終的にＥＸＣＬＯＵＴｋｉ＝１になり、それにより列１が除外される。
【０１６８】
次に、グローバル出力信号ＯＵＴ*のビットＯＵＴ*１〜ＯＵＴ*４を生成するためにＯＲ回路１２の適切な専用ＯＲ補助回路を介して４つの探索／分類回路５０２−１〜５０２−４（４通りのニューロン回路１１−１〜１１−４に属す）がどのように結合されているかを示す図４１について考察する。以下の説明は、図８のＺＩＳＣチップ１０の実施態様とともに表IIの例を参照して行う。ＯＲ回路１２のこのＯＲ補助回路は、ローカル出力ＮＯＵＴ信号を処理するもので、探索／分類回路５０２の動作を理解しやすくするために図４１では参照番号１２．１が付けられている。簡略化のため、図４１に示す探索／分類回路５０２は、探索機能を実行するのに必要な回路に任意に制限されている。図４１に示され、参照番号５１６が付けられている回路は、集合回路５１７および専用ＯＲ補助回路１２．１を形成するために図４１に隣接して示されている４つの探索／分類回路５０２−１〜５０２−４を含んでいる。したがって、集合回路５１７は、マトリックスを形成するために配置されている１６個の基本ベース・ユニット５１０−１１〜５１０−４４で構成されている。これら４つの探索／分類回路のそれぞれは別々のニューロン回路内に配置され、例示のために仮に組み立てられたにすぎないことに留意されたい。同じく図４１から明らかなように、ニューロン回路１１の探索／分類回路５０２は、１列（この例では４列）に配置された適切な数のユニット５１０を積み重ねるかまたはカスケード化することによって構築される。ただし、回路５１６の各ノードの論理レベルは、Ｄｍｉｎ決定（探索）プロセスの終了時に表IIに示す例と一致するように図４１に示されていることに留意されたい。探索／分類回路はすべて同一であり、同じ構造を有する。次に、集合回路５１７について詳述する。１行目のユニット５１０−１１〜５１０−１４には、それぞれのＭＳＢビットｄ１１〜ｄ１４が関係する。以下の説明では、信号ＥＸＣＬＩＮ１ｉおよびＥＸＣＬＯＵＴ４ｉをそれぞれＥＸＣＬＩＮ−ｉおよびＥＸＣＬＯＵＴ−ｉと呼ぶ。他の列についても、同様の理論が適用される。ユニット５１０−１１〜５１０−１４にはそれぞれ除外信号ＥＸＣＬＩＮ−１〜ＥＸＣＬＩＮ−４が印加される。次に、前記ユニットは、ＯＲゲート１２．１．１に印加されるＮＯＵＴ１−１〜ＮＯＵＴ１−４信号を生成し、ＯＲゲート１２．１．１は出力信号ＯＵＴ*１を供給する。信号ＯＵＴ*１は、ＯＲ１信号として１行目のユニット５１０−１１〜５１０−１４のそれぞれに再注入される。それぞれのＯＲゲート１２．１．２〜１２．１．４によるＯＵＴ*２〜ＯＵＴ*４信号の生成についても、同じ理論が適用されるが、これらのＯＲゲートも専用ＯＲ補助回路１２．１の一部である。ＺＩＳＣチップ１０の本発明の実施態様の専用ＯＲ補助回路１２．１は、実際には、ＯＲゲート１２．１．１〜１２．１．Ｎを含んでいる。ユニット５１０−１１〜５１０−１４は、２行目のユニット５１０−２１〜５１０−２４のそれぞれのＥＸＣＬＩＮ入力端子に印加される中間信号ＥＸＣＬＯＵＴ１１〜ＥＸＣＬＯＵＴ１４も生成する。４行目までの他の行の集合回路５１７の構造についても、同じ理論が適用される。４行目のユニット５１０−４１〜���１０−４４は、後で使用される最終信号ＥＸＣＬＯＵＴ４１（またはＥＸＣＬＯＵＴ−１）〜ＥＸＣＬＯＵＴ４４（またはＥＸＣＬＯＵＴ−４）を生成する。ただし、技術的な制約のため、図４１に示すＯＲゲートの代わりにＮＯＲ論理ゲートも選択可能であることに留意されたい。この場合、ＯＲｋビット信号の正しい極性を取り出すために各ＮＯＵＴｋ−ｉ信号ごとにインバータが１つずつ必要になるはずである。いずれにしても、ＯＲｋ＝ＯＵＴ*ｋ＝ＮＯＵＴｋ−１  ＯＲ・・・ＯＲ  ＮＯＵＴｋ−Ｎという論理関係を満たす必要がある。
【０１６９】
次に、図４１の回路の動作について説明する。ＥＸＣＬＩＮ―１〜ＥＸＣＬＩＮ−４信号は、すべて非禁止または選択論理レベルになっている。たとえば、前述の例と一致するようにすべてゼロに設定され、すなわち、ＥＸＣＬＩＮ−１＝・・・＝ＥＸＣＬＩＮ−４＝０になる。その後、探索プロセスが開始されると、表IIに示すそれぞれの値に従って、ただちにビットｄ１１〜ｄ４４がユニット５１０−１１〜５１０−４４のそれぞれの入力に印加される。図４１から明らかなように、２進ワードＬ１（Ｌ１＝０１１０）を形成するすべてのＭＳＢ、すなわち、ｄ１１、ｄ１２、ｄ１３、およびｄ１４が１行目のそれぞれのユニット５１０−１１〜５１０−１４に印加される。前述のユニット５１０の内部構造によれば、それから出力される２進ワードはＮＯＵＴ１−１  ＮＯＵＴ１−２  ＮＯＵＴ１−３  ＮＯＵＴ１−４＝１００１、すなわち、
【数１４】
＿＿
Ｌ１
以降、Ｌ１バーと記載する。
になる。信号ＯＵＴ*のＯＵＴ*１という１ビット目を生成するためにＯＲゲート１２．１．１でこれらのＮＯＵＴ信号のＯＲが取られる。１行目で少なくとも１つのゼロが識別されているので、信号ＯＵＴ*１＝１になる。次に、ＯＵＴ*１信号はフィードバック・ループを介してユニット５１０−１１〜５１０−１４のそれぞれにフィードバック信号として供給される。上記の説明との一貫性を保つため、このフィードバック信号はＯＲ１と呼ばれる。次に、１行目の各ユニットのサブユニット５１２が対応するＥＸＣＬＯＵＴ信号の値を決定する。この例では、ＥＸＣＬＯＵＴ１１＝０、ＥＸＣＬＯＵＴ１２＝１、ＥＸＣＬＯＵＴ１３＝１、およびＥＸＣＬＯＵＴ１４＝０によって結果が得られる。これらの信号は２行目のそれぞれのユニット、すなわち、５１０−２１〜５１０―２４に印加されるが、ユニット５１０−２２と５１０−２３のそれぞれの列が除外されているので、この２つのユニットのみ禁止される。ＥＸＣＬＩＮ信号が１になると、ただちに対応するユニット５１０が禁止され、次にこのユニット５１０が１と等しいＥＸＣＬＯＵＴ信号を生成することによって同じ列に関連する次行の対応するユニット５１０を禁止する。他の行についても同様の理論が適用される。４行目である最後の行に達するまで、１行ずつ上記の動作が続行される。信号ＯＵＴ*３およびｄ３１の値のためにこの列が禁止されていることを示すために、ユニット５１０−４１に印加されるＥＸＣＬＩＮ４１信号が１になる。４行目のＬＳＢを処理しても、現行状況の修正は一切行われない。探索プロセスの最終結果は、ＯＲゲート１２．１．１〜１２．１．４によって出力されるが、信号ＯＵＴ*＝ＯＵＴ*１  ＯＵＴ*２  ＯＵＴ*３  ＯＵＴ*４＝１０１０によって示される。信号ＯＵＴ*はニューロン回路１１−４によって計算された距離Ｄ４の補数になる。ＥＸＣＬＯＵＴ−１〜ＥＸＣＬＯＵＴ−３信号はいずれも「１」になり、ＥＸＣＬＯＵＴ−４のみ「０」になることにも留意されたい。要約すると、最小距離Ｄｍｉｎ＝Ｄ４が決定された（実際は、図４１に示す実施態様によってその補数値
【数１５】
＿＿＿＿
Ｄｍｉｎ
以降、Ｄｍｉｎバーと記載する。
が生成されている）だけでなく、そのニューロン回路がその値を保持することになる（この場合、ニューロン回路１１−４はそのＥＸＣＬＯＵＴ信号がゼロになる唯一のニューロン回路である）。ＯＵＴ*信号の全体は回路５１６の出力側で得られる（これは、４つのニューロン回路１１−１〜１１−４の探索／分類回路によって形成された集合回路５１７とＯＲ補助回路１２．１とが直列に接続されていることによる）。この理論をそれぞれがｐビットを処理するＮ個の探索／分類回路５０２−１〜５０２−Ｎのアセンブリまで一般化し、Ｎ通りの距離Ｄ１、・・・、ＤＮのうちの最小距離Ｄｍｉｎを決定することができる集合回路５１７を実現してもよい。ＺＩＳＣチップ１０の本発明の実施態様では、それぞれの距離がｐ＝１４ビットで符号化されている。この場合、ＯＲ補助回路１２．１は、信号ＯＵＴ*（ビット信号ＯＵＴ*１〜ＯＵＴ*ｐで構成される）を生成するためにｐ個のＮ入力ＯＲゲート１２．１．１〜１２．１．ｐで構成されている。ＯＲ信号は、ｐ個のビット信号ＯＲ１〜ＯＲｐで構成されるが、これらのビット信号はＯＵＴ*１〜ＯＵＴ*ｐビット信号から直接得られる。例示のため、最小距離Ｄｍｉｎを求める探索プロセスのみについて上記の説明を示してきたが、本発明の革新的な探索／分類回路５０２は実際は探索機能と分類機能の両方を有するものとして通常は設計されていることに留意されたい。
【０１７０】
実際、図４１の回路は、必要であれば残りの距離を増加順に格納するように分類機能を追加するための小さい回路を追加するだけで大幅に改善することができる。両方の機能を有する探索／分類回路５０２については、図４２に参照番号５１８で示す。図４２から明らかなように、集合回路５１７およびＯＲ補助回路１２．１（図４１を参照して前述したもの）に関するものとして、この追加回路は５１９および５２０という２つの回路を含んでいる。たとえば、距離Ｄ１および探索／分類回路５０２−１に関する限り、専用回路５１９は、２ウェイＯＲゲート５２１−１と、２ウェイＯＲゲート５２２−１と、ラッチ５２３−１などの記憶素子とを含んでいる。ＯＲゲート５２２−１とラッチ５２３−１は直列に接続され、ＯＲゲートの出力がラッチの入力を励起する。ラッチ５２３−１の出力は、フィードバック・ループ内でＯＲゲート５２２−１の一方の入力に接続されている。ＯＲゲート５２２−１のもう一方の入力はＸＯＲ−１信号を受け取る。この信号の特徴については後述する。ラッチ５２３−１は、標準通り適切なＣＬＯＣＫ信号とＲＥＳＥＴ信号を受け取る。ラッチ５２３−１の出力は、ＥＸＣＬＩＮ'−１信号を印加するためにＯＲゲート５２１−１の第１の入力にも接続されている。ＯＲゲート５２１−１のもう一方の入力は
【数１６】
＿＿＿＿＿＿＿＿
ＳＥＬＥＣＴ−１
以降、ＳＥＬＥＣＴ−１バーと記載する。
信号を受け取る。ＯＲゲート５２１−１から出力される信号はＥＸＣＬＩＮ−１信号として探索／分類回路５０２−１のユニット５１０−１１に印加される。同じく距離Ｄ１列について説明すると、回路５２０は、ＥＸＣＬＯＵＴ−１信号を生成する探索／分類回路５０２−１の出力に接続されるインバータ５２４−１を含んでいる。このインバータ５２４−１の役割は、ＸＯＲ−１という信号を生成するためにＥＸＣＬＯＵＴ−１信号の補数を取ることである。ＸＯＲ−１信号は、ＯＲゲート５２２−１のもう一方の入力に印加される。図４２から明らかなように、回路５１９および５２０は、これ以外にも列Ｄ２〜Ｄ４用の２つの同一回路を含んでいる。実際には、回路５１９および５２０は、距離Ｄ１〜ＤＮに対応するＮ列分のＮ個のこのような同一回路で構成されている。
【０１７１】
図４２の回路の動作は、同じく表IIの例に対応して次のように理解することができる。初期設定時にＥＸＣＬＩＮ'−１〜ＥＸＣＬＩＮ'−４信号が００００にリセットされる。これは、ラッチ５２３−１〜５２３−４のそれぞれに印加される特定のＲＥＳＥＴ制御信号によって行われるので、４つの分類回路５０２−１〜５０２−４のすべてが論理回路５０３（図３７）によって生成されるＳＥＬＥＣＴ信号（ＳＥＬＥＣＴバー＝０）によって禁止されていないと想定する。その結果、信号ＥＸＣＬＩＮ−１〜ＥＸＣＬＩＮ−４はゼロ（除外なし）になる。ニューロン回路１１−４の分類回路５０２−４によって決定された距離Ｄ４に対応する最小距離が図４１に示すネット値で検出されるまで、探索プロセスが前述のように行われる。図４１から明らかなように、ＥＸＣＬＯＵＴ−１〜ＥＸＣＬＯＵＴ−４信号は２進ワード１１１０で表される。回路５２０のインバータ５２３−１〜５２３−４での反転後、対応するＸＯＲ−１〜ＸＯＲ−４信号が図４２に示すように２進ワード０００１で示される。この「１」の位置は、最小距離がニューロン回路１１−４によって保持されていることを示す。ここで、分類プロセスを詳細に考察する。ＸＯＲ−１〜ＸＯＲ−４信号は、ＥＸＣＬＩＮ'−１〜ＥＸＣＬＩＮ'−４信号（２進ワード００００に相当する）によってＯＲゲート５２２−１〜５２２−４でＯＲが取られ、ラッチ５２３−１〜５２３−４にそれぞれラッチされる。最後に、ＥＸＣＬＩＮ−１〜ＥＸＣＬＩＮ−４の新しい値が、集合回路５１７に印加される２進ワード０００１によって示される。ここでＥＸＣＬＩＮ−１〜ＥＸＣＬＩＮ−３信号は０になるので、対応する探索／分類回路５０２−１〜５０２−３は分類プロセスの次のステップに関与できるようになる。距離Ｄ４が除外されているので、探索／分類回路５０２−４だけは次の探索ステップに関与しない。回路５１８は、残りの３つの距離Ｄ１、Ｄ２、またはＤ３のいずれが最小距離であるかを判定するために探索プロセスを再開する。前述と同じプロセスが行われる。これで、距離Ｄ１が探索済みの最小距離であることが分かる。次に、回路５１８は探索プロセスを続行し、距離Ｄ１の列を除外する。探索プロセスと分類プロセスは、距離Ｄ１を参照して前述のように行われる。距離は、増加順、すなわち、この例ではＤ４、Ｄ１、Ｄ２、Ｄ３の順に順次、ＯＵＴ*−ＢＵＳ上で得られるようになる。最大距離を探索し、次に残りの距離を減少順に分類できるようになっている回路にも、同じ理論が適用されるはずである。基本的に、図４２の回路５１８でこの処理を行うには、当業者の技量の範囲内でユニット５１０の構造にわずかな変更を加えるだけでよいはずである。要約すると、これまで、図４１および図４２の回路を参照して、探索／分類回路５０２（基本ＺＩＳＣチップ１０の各ニューロン回路１１に探索／分類回路が１つずつ配置されている）の探索機能と分類機能について説明してきた。探索／分類回路５０２−１〜５０２−Ｎを組み立てることによって形成される集合回路５１７は非常に高速な回路である。というのは、すべての距離信号Ｄ１〜ＤＮのｐ＝１４ビットがすべて並列処理されるので、シーケンサが不要であるからである。ニュ��ロン回路の数は回路５１８の全体的な遅延に影響せず、専用ＯＲ補助回路１２．１内の論理ゲートの入力の数を変更するだけである。最後に、集合回路５１７は完全にモジュール方式であるので、最小数のデバイスのみを必要とする。
【０１７２】
デイジー・チェーン回路（６００）
図４３は、信号ＳＴによって制御される１ビットのＤＡＩＳＹレジスタ６０１周辺に構築されたニューロン回路１１のデイジー・チェーン回路６００の詳細構造を示している。ＳＴ信号は、ニューロン回路が使用中であるはずであると識別回路４００によって確認されたときまたは初期設定時の２通りの場合の学習フェーズ中にアクティブに設定される。したがって、ＳＴ信号は、ＵＮＣ／ＦＩＲＥ．ＯＫ*信号とＬ信号から直接得られる。ＤＣＩ信号は２ウェイＡＮＤゲート６０２の第１の入力に印加され、そのゲートのもう一方の入力は
【数１７】
＿＿＿＿＿
ＲＥＳＥＴ
以降、ＲＥＳＥＴバーと記載する。
信号を受け取る。ＡＮＤゲート６０２の出力はレジスタ６０１の入力に接続されている。レジスタ６０１の出力は２ウェイＯＲゲート６０３の第１の入力に接続され、そのゲートのもう一方の入力はＡＬＬ信号を受け取る。ＤＣＯ出力端子側でＯＲゲート６０３から出力される信号はＤＣＯ信号である。初期設定時にＲＥＳＥＴ信号はアクティブに設定され、すなわち、ＲＥＳＥＴバー＝０になり、信号ＳＴがアクティブに設定されるとただちにＡＮＤゲート６０２によって出力されるこの「０」値がＤＡＩＳＹレジスタ６０１にロードされ、その結果、ＯＲゲート６０３（信号ＡＬＬ＝０）を介してＤＣＯ信号がゼロに設定される。より一般的には、ＡＮＤゲート６０２の出力側のデータをレジスタ６０１にロードする必要があるときに、ＳＴ信号が活動化される。ＡＬＬ信号が活動化される（ＡＬＬ＝１）と、レジスタ６０１に格納されている２進値にかかわらず、ＤＣＯ信号がアクティブ（ＤＣＯ＝１）に設定される。このＡＬＬ信号は、ニューラル・ネットワーク１１（Ａ）のテスト時に有益であることが分かる。実際にテスト時には、ニューラル・ネットワーク１１（Ａ）のすべてのニューロン回路が、例外なく、使用中の場合と同様の挙動をする。通常の動作条件では、ＡＬＬ信号は「０」に設定され、ＲＥＳＥＴバー信号は「１」に維持される。第１のニューロン回路１１−１のＤＣＩ入力端子は外部ワイヤを介してＶＨに接続されている。ＳＴ信号、ＲＥＳＥＴバー信号、およびＡＬＬ信号は、ＺＩＳＣチップ１０のニューロン回路１１−１〜１１−Ｎのすべてのデイジー・チェーン回路６００に並列に印加される。
【０１７３】
次に、ＺＩＳＣチップ１０の第１のニューロン回路について考察する。初期設定時、ＺＩＳＣチップ１０のすべてのレジスタ６０１は、前述の通り初期設定時に行われた一般リセット（ＲＥＳＥＴバー＝０かつＳＴ＝１）の結果としてゼロを保持している。この初期設定ステップ後、第１のニューロン回路１１−１の入力端子ＤＣＩはＶＨに結合されているので、信号ＤＣＩ−１はＡＮＤゲート６０２の第１の入力に１（ＤＣＩ−１＝１）を印加し、信号ＲＥＳＥＴバーもそのゲートのもう一方の入力に１を印加し、その結果、レジスタ６０１の入力側に１が印加される。これに対して、レジスタ６０１にはゼロがロードされているので、最終的にＯＲゲート６０３（ＡＬＬ＝０）から出力されるＤＣＯ−１信号は０になる。したがって、ニューラル・ネットワーク１１（Ａ）の第１のニューロン回路１１−１のＤＣＩ信号とＤＣＯ信号だけが相補値を有する。すなわち、論理関係ＤＣＩ＝ＤＣＯバーに従っている。というのは、残りのデイジー・チェーン回路、すなわち、ニューロン回路１１−２〜１１−Ｎのいずれについても、信号ＤＣＩ＝信号ＤＣＯ＝０になるからである。したがって、構造上、初期設定ステップが完了すると、ただちにニューロン回路１１−１が学習可能ニューロン回路になる。学習モードで信号ＳＴがアクティブに設定されると、レジスタ６０１の入力に印加された論理１がそこにロードされる。その結果、信号ＤＣＩ−１およびＤＣＯ−１は１になり、第１のニューロン回路１１−１は学習が完了し、使用中になる。これに対して、前述と同じ理由で、ＤＣＩ−２＝１かつＤＣＯ−２＝０になる。これは、この時点では連鎖内の次のニューロン回路、すなわち、ニューロン回路１１−２が学習可能ニューロン回路になっていることを意味する。この理論は、ニューロン回路１１−Ｎが使用中になるまで拡張することができる。各ニューロン回路ごとにＤＣＯ信号を生成するには多くても１つのレジスタと２つの基本論理ゲートだけが必要なので、全体的な遅延は非常に小さく、しかも、ニューラル・ネットワーク１１（Ａ）を形成するニューロン回路の数とは無関係である。
【０１７４】
デイジー・チェーン回路６００は制御論理回路６０４をさらに含み、この制御論理回路は、２ウェイＸＯＲゲート６０５と２ウェイＡＮＤゲート６０６という２つの論理ゲートで構成されている。ＸＯＲゲート６０５は、ニューロン回路１１のＤＣＩ信号およびＤＣＯ信号によって励起され、ＲＡＭメモリ２５１用のＲＳ（格納可能）信号を生成する。基本的にＲＳ信号は、そこでのＷＲＩＴＥ動作を許可または禁止するための書込みイネーブル信号として機能する。認識フェーズでは、入力ベクトルがすべてのコミット済みニューロン回路（選択され拘束されているもの）に提示されるが、入力ベクトル成分は、後続の学習フェーズ中に拘束される可能性を予測して学習可能ニューロン回路のＲＡＭメモリ２５１のみに事前装填される。その６４個の成分の格納は本当に時間がかかるプロセスなので、ＲＡＭメモリ２５１に事前装填すると、認識フェーズでは非常に有利である。本発明のＺＩＳＣチップ１０の実施態様では、実際には入力ベクトルを格納することと、信号ＳＴを活動化して、学習フェーズを終了するよう学習可能ニューロン回路のレジスタ６０１を設定することだけが残っている。その場合、ＲＡＭメモリ２５１にさらに書き込まないようにするために、ＲＳ信号が非活動状態に設定される。これに対して、ＡＮＤゲート６０６はＤＣＯ信号とＮＳ信号からＣＯ信号を生成する。このＮＳ信号は、前述の通り、各ニューロン回路の突合せ回路１５０によって内部で生成される（図１０を参照）。したがって、ＣＯ信号は、選択され拘束されている（すなわち、コミット済み）ニューロン回路の場合にアクティブに設定される。このような信号の組合せにより、ＣＯ信号は図８に示すＺＩＳＣチップ１０の所与のブロックに正しく印加され、その結果、コミット済みニューロン回路だけが認識フェーズと学習フェーズの縮小プロセスに関与できるようになる。
【０１７５】
以下の表IIIは、ニューロン回路の状態と、ＤＣＩ信号およびＤＣＯ信号の論理値との関係をまとめたものである。
【０１７６】
0003798451.tif 000011
【０１７７】
表IIIは、ニューロン回路の２つの基本状態、すなわち、空き状態（学習可能の場合を含む）と使用中を明白に示している。
【０１７８】
単一ＺＩＳＣチップ１０の最後のニューロン回路のＤＣＯ信号、すなわち、ＤＣＯ−Ｎは、ニューラル・ネットワーク１１（Ａ）の最後のニューロン回路が使用中かどうかを示すために使用することができる。すなわち、これはＦＵＬＬ信号の役割を果たすことができる。ニューロン回路１１−Ｎが使用中の場合、これは、ニューラル・ネットワーク１１（Ａ）が一杯であることを意味する。また、ニューラル・ネットワークの重要な遅延経路が実質的には学習可能ニューロン回路のデイジー・チェーン回路の遅延経路であることにも留意されたい。ニューラル・ネットワークの他のデイジー・チェーン回路は影響を受けないので、そのＤＣＩ信号とＤＣＯ信号の変化は一切発生しない。
【０１７９】
図８の単一ＺＩＳＣチップ１０について記載したデイジー・チェーン回路は、図１６および図１７に示すように複数のチップが直列に接続されている場合に完全にマルチチップ環境で動作できるようになっている。図１６からさらに明らかなように、第１のＺＩＳＣチップ１０（１）の第１のニューロン回路のＤＣＩ入力端子だけがＶＨに接続されるので、構造上、初期設定後にこれが学習可能ニューロン回路になる。これに対して、基本モジュール１０（Ａ）を形成する最後のＺＩＳＣチップ１０（Ｑ）のＤＣＯ信号は、最後のチップの最後のニューロン回路のＤＡＩＳＹレジスタに１がロードされているかどうかを示すために使用することができる。このレジスタに１がロードされている場合は、基本モジュール１０［Ａ］に組み込まれた基本ニューラル・ネットワーク１１［Ａ］を形成するすべてのニューロン回路が使用中であることを意味する。
【０１８０】
前述の米国特許第４９７４１６９号に記載されているアーキテクチャとは異なり、ＺＩＳＣチップ１０（１）〜１０（Ｑ）のアドレス指定は不要なので、デイジー・チェーン回路６００はＺＩＳＣチップ１０のカスケード性にとって不可欠な機構である。これは、各チップで従来のデコーダ回路とポインタ回路を省略でき、その結果、回路密度が大幅に向上することを意味する。もう１つの成果として、アドレス指定可能なニューロン回路の数に関する固有の制限を持つアドレス・バスも不要になる。図８および図９から明らかなように、基本ＺＩＳＣチップ１０のニューロン回路とマイクロコントローラ／ユーザ２２とを相互接続するためのＡＤＤＲＥＳＳというバスが存在しない。このため、少なくとも理論的には、ＩＮＤＡＴＡ−ＢＵＳ、ＳＥＬ／ＣＴＬ−ＢＵＳ、およびＧＤＡＴＡ−ＢＵＳ上で無制限の数の基本ＺＩＳＣチップ１０を並列に接続することができ、デイジー・チェーン接続だけが直列タイプになる。どのニューロン回路が学習すべきかをアドレス・バスを介して示すために学習フェーズ時のデータ管理に監視プログラムは不要である。本発明によれば、学習フェーズでのマイクロコントローラ／ユーザ２２の役割は、ＺＩＳＣチップ１０のニューロン回路の動作を監視することではなく、例と関連カテゴリをニューロン回路に提供することだけである。ＺＩＳＣチップ１０のニューロン回路は一種の自習を行う。これは真実なので、まとめて学習するかどうかの決定はすべてのニューロン回路に属し、監視プログラムには属さない。
【０１８１】
ニューラル・ネットワークに応用する場合の前述のデイジー・チェーン回路の手法は、単一のベース処理ユニット６５によって図４４に示されているような複数のベース処理ユニットで構成されたマルチプロセッサ・ユニット６４まで容易に一般化することができる。それぞれの処理ユニットは、双方向データ・バスを介してＤＡＴＡＩＮ−ＢＵＳという共通入力データ・バスに接続されている。また、それぞれの処理ユニットは、Ｒ／Ｗメモリ回路６６を含んでいる。データはＤＡＴＡＩＮ−ＢＵＳ上ですべての処理ユニットに並列に提示される。図４３のデイジー・チェーン回路６００と同じ構造を有する。すなわち、基本的にＤＡＩＳＹレジスタ周辺に構成されたデイジー・チェーン回路６７がそれぞれの処理ユニットに関連付けられ、処理ユニットの適切なブロックに印加されるＲＵＮ信号（ＣＯ信号と同等）およびＬＯＡＤ信号（ＲＳ信号と同等）を生成する。マルチプロセッサ・ユニット６４のデイジー・チェーン回路同士の間には、直列接続ＤＣＩ／ＤＣＯが確立している。各デイジー・チェーン回路６７は、状態計算機（図示せず）によって生成されたＮＥＸＴ信号（ＳＴ信号と同等）を受け取り、１つの所定の処理ユニットのみのＤＡＩＳＹレジスタに格納するＤＣＩ信号によってデイジー・チェーン回路６７の入力に印加される論理値をシフトする。したがって、ＤＡＴＡＩＮ−ＢＵＳ上で提示された特定の入力データをこのような所定の処理ユニット６５（実際はロード可能処理ユニット）のＲ／Ｗメモリ回路６６にロードする処理は、その論理入力信号ＤＣＩと論理出力信号ＤＣＯが相補値を有するデイジー・チェーン回路によって自動的に行われる。
【０１８２】
ニューロン間通信システム（ＣＯＭ―ＢＵＳ）
図４５は、図８のＺＩＳＣチップ１０のアーキテクチャを使用する際のニューロン間通信システムの構造の概略を示している。このニューロン間通信システムは、Ｒ*−ＢＵＳ上にグローバル結果信号Ｆ*、ＤＥＧＯＵＴ*、ＵＮＣ／ＦＩＲＥ．ＯＫ*を生成し、ＯＵＴ*−ＢＵＳ上にグローバル出力信号ＯＵＴ*を生成するＯＲ回路１２を含んでいる。これら２本のバスは、電気接続によってオンチップ共通通信バスＣＯＭ*−ＢＵＳに統合される。この共通通信バスは、ＯＵＴ*−ＢＵＳから直接得られるＯＲ−ＢＵＳをさらに含み、本質的には距離またはデータのカテゴリ・タイプを伝送する。
【０１８３】
次に図４５について説明すると、ニューロン回路１１については、その識別回路４００とＤｍｉｎ決定回路５００だけが大まかに表されている。図４５から明らかなように、ニューロン回路１１−１〜１１−Ｎのそれぞれによってローカルで生成されるすべてのローカル結果信号とローカル出力信号は、それぞれの専用ＯＲ補助回路に印加され、その補助回路が１つにまとまってＯＲ経路１２を形成している。各ニューロン回路によって生成されるＮＯＵＴローカル信号は、距離／カテゴリ・データを伝送するもので、専用ＯＲ補助回路１２−１に印加される。ＯＲ補助回路１２−１によって生成されるＯＵＴ*グローバル出力信号は、ＯＵＴ*−ＢＵＳを形成する１４本の接続ワイヤの束によって伝送される。ＯＵＴ*信号は、ＯＲ−ＢＵＳを介してＺＩＳＣチップ１０の各ニューロン回路にフィードバック信号として再注入される。各ニューロン回路のＦ、ＤＥＧＯＵＴ、およびＵＮＣ／ＦＩＲＥ．ＯＫローカル結果信号は、ＯＲ専用補助回路１２−２、１２−３、および１２−４にそれぞれ印加される。前記ＯＲ専用補助回路１２−２〜１２−４によって生成されるグローバル結果信号Ｆ*、ＤＥＧＯＵＴ*、およびＵＮＣ／ＦＩＲＥ．ＯＫ*は、まとまってＲ*−ＢＵＳを形成するそれぞれのグローバル・結果ワイヤ上で得られる。ＯＲ補助回路１２−１は１４個のＮウェイＯＲゲート群によって構築されている。各ＯＲ補助回路１２−２〜１２−４は、ＮウェイＯＲゲートによって構築されている。代替態様として、標準通り同等の樹枝状構造でＯＲ補助回路１２−１〜１２−４を構築することもできる。ただし、設計システムおよび当技術により可能であれば、ＯＲ回路１２によってハードウェアで実行されるＯＲ機能の代わりに、ＯＲドットの使用も可能であることに留意されたい。グローバル結果データとグローバル出力データは、さらに処理するためにレジスタ１８４．１に格納することが好ましい。ＩＤ*信号は、Ｆ*信号およびＵＮＣ／ＦＩＲＥ．ＯＫ*バー信号からＡＮＤゲート１８４．２で再構築される。レジスタ１８４．１にはＩＤ*信号も格納されるが、この信号は、ニューラル・ネットワーク１１（Ａ）のグローバル応答に関する即時視覚情報をユーザに提供するためのＬＥＤに接続するために、図４５に示すようにＺＩＳＣチップ１０外に出力することもできる。図４５は、スタンドアロン動作用のニューラル・ネットワーク１１（Ａ）を組み込んだ図８のＺＩＳＣチップ１０のＣＯＭ*−ＢＵＳ周辺に構成された本発明のニューロン間通信システムの実施態様を示している。ただし、このアーキテクチャは、より大きいサイズのニューラル・ネットワークを形成するために複数のＺＩＳＣチップ１０の組立てを可能にするよう改良することができる。
【０１８４】
次に、図９を参照して前述したマルチチップ環境で動作できるようになっているアーキテクチャを有する基本ＺＩＳＣチップ１０の場合について考察する。ここで図４６について説明すると、各基本ＺＩＳＣチップ１０ごとにＲ*−ＢＵＳおよびＯＵＴ*−ＢＵＳを形成する前記接続ワイヤが、前記ＯＲ補助回路１２−１〜１２−４の出力をそれぞれのドライバ回路（たとえば、サブブロック１９．１はＯＵＴ*−ＢＵＳの各ワイヤに接続されているＤＲ*タイプのドライバ回路を含んでいる）に接続している。これらのドライバ回路は、それに接続されているすべてのＺＩＳＣチップ１０によって共用されるＣＯＭ**−ＢＵＳというオフチップ共通通信バス上で追加のＯＲドット機能を提供できるようになっている。グローバル結果信号Ｆ**、ＤＥＧＯＵＴ**、およびＵＮＣ／ＦＩＲＥ．ＯＫ**と、グローバル出力信号ＯＵＴ**は、ＣＯＭ**−ＢＵＳのそれぞれのグローバル・ワイヤ上で得られる。このようなグローバル結果信号およびグローバル出力信号の全部または一部は、図４６から明らかなように各ＺＩＳＣチップ１０に配置されたブロック１９内の適切なレシーバ回路（ＲＲ）を介してニューラル・ネットワークの各ＺＩＳＣチップ１０に再注入される。ただし、前述のＯＲドット機能の代わりに、たとえば１２などのＯＲ回路を使用する非ドット式のＯＲ機能の使用が可能であることに留意されたい。１つのＯＲステージのみを含む図４５のアーキテクチャとは異なり、図４６のアーキテクチャは２つのＯＲステージを含んでいる。しかし、図１５のＺＩＳＣチップ１０"のアーキテクチャを参照して前述したように、１つのＯＲステージのみの場合も考えられる。ＣＯＭ*−ＢＵＳとＣＯＭ**−ＢＵＳとの区別が不適切な場合は、どの共通通信バスについてもＣＯＭ−ＢＵＳと呼ぶ。図９に示すマルチプレクサ２１は、ＯＲ信号として各ニューロン回路１１に再注入されるＯＵＴ*信号またはＯＵＴ**の選択を可能にするものなので、基本ＺＩＳＣチップ１０を単一チップ環境またはマルチチップ環境のいずれかで動作させるために便利な手段である。
【０１８５】
図４７は、図１６の基本モジュール１０［Ａ］の構造における図４６のドライバ・サブブロック１９．１の典型的な実施態様の詳細を示している。ここで図４７について説明すると、同図には、まとまって基本モジュール１０［Ａ］を形成する８個の基本ＺＩＳＣチップ１０（それぞれ参照番号１０（１）〜１０（８）で示す）の１ビット目の実施態様が示されている。後者には、基本ニューラル・ネットワーク１１［Ａ］が組み込まれている。図４７から明らかなように、以下に示す実用上の理由から、実際には、ＯＲドット機能ではなく、ハードワイヤードＡＮＤ機能がＧＤＡＴＡ−ＢＵＳ上に実現されている。ＯＲドット機能の場合は、低速デバイスであるＰＦＥＴが必要になったはずである。したがって、高速スイッチング・デバイスであることが分かっているＮＦＥＴが代わりに使用される。したがって、この場合の各ドライバ回路ＤＲ*は、標準通りオープン・ドレイン方式で接続されたＮＦＥＴデバイスで構成されているだけである。バイポーラ技術によれば、複数のＮＰＮトランジスタをオープン・コレクタ方式で接続すると、代替解決策が構成されるはずである。８個のチップのすべての第１のビット信号、すなわち、ビット信号ＯＵＴ*１（１）〜ＯＵＴ*１（８）は、それぞれのＮＦＥＴデバイスのゲートに印加されるが、そのデバイスのドレインは第１の電位ＶＨに接続されているプルアップ抵抗ＲＬ１によってロードされる共通ワイヤＷ１上でドットされる。各ＮＦＥＴデバイスのソースは第２の電位ＧＮＤに接続されている。最終結果として、ビット信号ＯＵＴ**１を生成するために、ＧＤＡＴＡ−ＢＵＳの対応するワイヤ上で前記ビット信号間の所望のＡＮＤ機能が実行されてる。ＡＮＤ機能によって得られるＯＵＴ**信号は、（たとえば、図４６のドット実施態様による）ＯＲ機能によって得られる前述のＯＵＴ**信号とは反対の極性を有する。物理的には各ＮＦＥＴデバイスのドレインがチップ内部のレシーバ回路ＲＲの入力に直接接続されていないことに留意すると興味深い。各ＺＩＳＣチップ１０ごとにドレイン接続がチップから出てワイヤＷ１に接続される。すべてのＮＦＥＴデバイスによって共用されるこの共通ワイヤＷ１は、ＧＤＡＴＡ−ＢＵＳにＯＵＴ**１ビット信号を伝送する。ＯＵＴ**１ビット信号は、ワイヤＺ１とレシーバ回路ＲＲとを介して各ＺＩＳＣチップ１０に戻される。ワイヤＷ１とＺ１はストラップＳＴＲ１によって相互接続されている。図４７に示す構造は、１４ビットのＯＵＴ**信号が完全にＧＤＡＴＡ−ＢＵＳ上で得られるように残りのビットまで容易に一般化することができる。図４７に示すように、レシーバ回路ＲＲは反転バッファである。これは、従来のどのタイプであってもよい。ドライバ回路ＤＲ＊（ＮＦＥＴデバイスで構成される）がインバータとして動作するので、レシーバ回路ＲＲは適切な極性を持つ各ＺＩＳＣチップ１０用のＯＲ１ビット信号を再生成するために必要になる。ＰＴ（ＰＴとはPass-Through（パススルー）を意味する）という制御信号がアクティブに設定されたときにＯＲ１信号が強制的に「０」になるように、信号ＰＴをレシーバ回路ＲＲに印加することは価値がある場合もある。図４１および図４２を参照して前述したように、ＯＲ信号がゼロに設定されると、探索／分類回路５０２がパススルーされる（すなわち、前述の除外機能が禁止される）。したがって、その結果得られる基本ＺＩＳＣモジュール１０［Ａ］はＱ個（この場合はＱ＝８）の基本ＺＩＳＣチップ１０で構成され、外部構成要素を必要としない。これは、前述のストラップ技法を含む特定のドット技法によるものである。ドライバ回路ＤＲ*の出力とレシーバ回路ＲＲの入力とを直接接続する場合は、このようなフレキシビリティが制限されたはずである。上記の構造は、グローバル結果信号Ｆ**、ＤＥＧＯＵＴ**、およびＵＮＣ／ＦＩＲＥ．ＯＫ**のそれぞれにさらに拡張することができる。
【０１８６】
図４８は、（Ａ）、（Ｂ）、および（Ｃ）の各部で構成されている。（Ａ）および（Ｂ）は、図４５の実施態様による（Ａ）ＯＵＴ*信号対ＮＯＵＴ信号と（Ｂ）ＯＲ信号対ＯＵＴ*信号との対応関係を示している。（Ｃ）は、図４７の実施態様によるＯＲ／ＯＵＴ**信号対ＯＵＴ*信号を示している。
【０１８７】
Ｄｍｉｎを決定する際の探索時間と、残りの距離を分類するのに必要な分類時間は、ＯＲ補助回路１２．１〜１２．４（図４６）およびドライバ回路（およびロード抵抗）の遅延に大きく依存する。これらの遅延を最小限にするためには、図４９に記載する解決策が推奨される。この解決策は、図４７に示す構造から直接得られるが、各基本ＺＩＳＣチップ１０に主Ｄｍｉｎ決定回路を任意で実現できるという利点がある。
【０１８８】
ここで図４９について説明すると、同図には、８個の基本ＺＩＳＣチップ１０（１）〜１０（８）からなるアセンブリによって形成された基本モジュール１０［Ａ］の変形態様の論理実施態様が示されているが、それぞれの基本ＺＩＳＣチップにはそれぞれの主Ｄｍｉｎ決定回路２０が設けられている。ＺＩＳＣチップ１０（１）の集合回路５１７（図４２を参照）は、専用ＯＲ補助回路１２．１に印加されるＮＯＵＴ１−１〜ＮＯＵＴｐ−Ｎ信号を生成する。ＯＲ補助回路１２．１によって供給される信号は、ＯＵＴ*１〜ＯＵＴ*ｐと呼ばれ、主Ｄｍｉｎ決定回路２０に印加される。基本ＺＩＳＣチップ１０の本発明の実施例では、Ｎ＝３６であり、ｐ＝１４である。次に、ＯＲ補助回路１２．１によって出力されるビット信号ＯＵＴ*１〜ＯＵＴ*ｐで構成されるＯＵＴ*信号は、入力信号として主Ｄｍｉｎ決定回路２０に印加される。ＯＵＴ*１〜ＯＵＴ*ｐビット信号を伝送するワイヤの束もＯＲ−ＢＵＳとして集合回路５１７に印加される（回路５１７の場合、ＯＲ信号はＯＵＴ*信号と同じである）。次に、主Ｄｍｉｎ決定回路２０から出力される信号は、サブブロック１９．１のドライバ回路ＤＲ*を形成するそれぞれのＮＦＥＴデバイスに印加される。ＮＦＥＴデバイスのドレイン上でＺＩＳＣチップ１０（１）から出力されるビット信号ＯＵＴ**１〜ＯＵＴ**ｐは、それぞれのロード抵抗ＲＬ１〜ＲＬｐを介してＶＨに接続されたそれぞれのワイヤＷ１〜Ｗｐ上で得られる。８個のチップについてしかもｐビットの各ビットごとにＯＵＴ**ビット信号のＡＮＤが取られると、これに対応する信号ＯＵＴ**のビット信号ＯＵＴ**１〜ＯＵＴ**ｐがＧＤＡＴＡ−ＢＵＳで得られる。ＯＵＴ**信号は、ＯＲ*−ＢＵＳとして主Ｄｍｉｎ決定回路２０に印加される（回路２０の場合、ＯＲ*信号は補数処理後のＯＵＴ**信号と同じである）。ＯＵＴ**１〜ＯＵＴ**ｐビット信号を主Ｄｍｉｎ決定回路２０に伝達する経路は、ストラップＳＴＲ１〜ＳＴＲｐと、ワイヤＺ１〜Ｚｐと、それぞれのレシーバ回路ＲＲとを含んでいる。いずれの主Ｄｍｉｎ決定回路２０も探索／分類回路５０２と同じ構造を有する。したがって、図４９の基本モジュール１０［Ａ］を形成する８個のＺＩＳＣチップは、まず各ＺＩＳＣチップ１０のニューロン回路によって計算された距離のうちの最小距離を決定し、次に基本モジュール・レベルで計算された前記最小距離のうちの最小距離を決定するように並列に動作する。図４９に示す実施態様では、探索プロセスと分類プロセスが非常に効率よく高速で実行される。図示の例でチップのカスケード性が８個に限定されているのは、当技術によって受け入れられるＡＮＤドット機能の最大数のためである。図４７の教示から得られる図４９の回路は、８個の基本ＺＩＳＣチップ１０をカスケードする実際的な方法を示すもので、それぞれのチップには図１６の基本モジュール１０［Ａ］の改良変形態様を形成するために主Ｄｍｉｎ決定回路２０が設けられている。このような基本モジュールを複数個組み立てて、対応する複合ニューラル・ネットワークを組み込んだ複合モジュールを構築してもよい。
【０１８９】
このような非常に望ましい結果は、図５０の論理アーキテクチャによって得られる。この場合、基本モジュールのカスケード性に対する実際上の制限はない。ここで図５０について説明すると、同図には、Ｒ個のこのような基本モジュール１０［Ａ］をどのように組み立てることができるかを示すために、複合モジュール１０｛Ａ｝の構造が示されている。各基本モジュール１０［Ａ］は、８個のＺＩＳＣチップ１０（１）〜１０（８）で構成されている。簡略化のため、各基本モジュールによって生成される第１のビット信号ＯＵＴ**１についてのみ考察する。Ｒ個の基本モジュールによって生成されるＯＵＴ**１ビット信号は、ＲウェイのＡＮＤゲート６８．１に入力され、ＯＵＴ***１ビット信号を生成する。３つ目のアステリスクは、第３の論理機能（この場合はＡＮＤ）が実行されたことを意味する。次に、ＯＵＴ***１ビット信号は、反転レシーバ回路ＲＲ（図示せず）を介して各基本モジュールの８個のＺＩＳＣチップのそれぞれに印加され、前述の通りＯＲ１ビット信号を生成する。ＡＮＤゲート６８．１により、図４７を参照して示された実施態様との一貫性が確保される。この理論は、ＯＲ２〜ＯＲｐビット信号をそれぞれ供給するＯＵＴ***２〜ＯＵＴ***ｐを生成するためにそれぞれのＡＮＤゲート６８．２〜６８．ｐで処理される他のビット信号にも適用することができる。必要なＡＮＤ論理機能が実行される限り、ＡＮＤ回路６８．１〜６８．ｐは機能的にはＯＲゲート、ＮＯＲゲート、またはＮＡＮＤゲートなどで構築してもよい。
【０１９０】
図５０に関連する記述によれば、最高３つの論理機能を含むニューロン間通信システムを実現するには数個のデバイスだけが必要であることは明白である。ＧＤＡＴＡ−ＢＵＳの重要構成要素であるＣＯＭ***−ＢＵＳは、理論的には無限数の基本ＺＩＳＣチップ１０およびニューロン回路をまとめて接続することができる。それぞれのニューロン回路は、ＯＲ回路１２での同期処理のためにそのローカル結果信号とローカル出力信号をそれぞれＮＲ−ＢＵＳおよびＮＯＵＴ−ＢＵＳ上で同時に送出する。次に、ＯＲ回路１２によって出力されるＮＲ*およびＯＵＴ*はＣＯＭ**−ＢＵＳ上でＡＮＤドットが行われ、これによりこれらの信号の高速並列処理がもう一度可能になる。最後に、これら２つの連続するＯＲステージとＡＮＤステージを行うと、基本ＺＩＳＣチップ１０の完全並列アーキテクチャのために全体的な処理遅延が低下する。ＣＯＭ**−ＢＵＳも、デイジー・チェーン回路６００を参照して前述した完全チップカスケード性にとって不可欠な要素である。前述の通り、ＯＲ−ＢＵＳは、図８の単一ＺＩＳＣチップ１０か、あるいは基本モジュールまたは複合モジュールを形成するために組み立てられた図９の基本ＺＩＳＣチップ１０のそれぞれのいずれかの各ニューロン回路に印加される。さらに、ＯＲドット機能またはＡＮＤドット機能あるいはその両方を含みかつこれらに限定されないようなグローバル論理機能をＣＯＭ**−ＢＵＳ上で実現するために、ユーザが利用できるハードウェアによる解決策がいくつかある。ただし、図１５のＺＩＳＣチップ１０"のアーキテクチャでは、１つのＯＲステージのみ必要であることにも留意されたい。このＯＲステージは、ドライバ回路ＤＲ*によるＯＲドットによって実行されることが好ましい。この場合、ニューロン間通信システムは、ブロック１９（前述の実用上の理由からＯＲドットの代わりにＡＮＤドットが物理的に実行される）と、ＣＯＭ**−ＢＵＳと、それから直接得られるＯＲ−ＢＵＳのみを含んでいる。
【０１９１】
上記の説明は、ニューロン間通信システムに関するものなので、１つの基本ＺＩＳＣチップ１０によってまたは所望の数の基本ＺＩＳＣチップ１０を結合することによって構築されたニューラル・ネットワークへの特定の応用例に限定されているように思われる。しかし、この手法は、特に複数のベース処理ユニットで構成されたマルチプロセッサ・ユニットまで一般化することができる。実際に、この手法は、すべてのまたは少なくとも所定の数の処理ユニットによって生成されたローカル結果データを共通通信バス上で同時に送出し、前記処理ユニットをグローバル結果の決定に関与させることが可能であれば、どのような場合にも有効である。このような決定は、通常、ローカル結果データについて所望の論理機能を実行し、前記共通通信バス上で得られるグローバル結果データを生成することで構成される。このグローバル結果データは、このバス上で直接アクセスするか、またはレジスタに格納することができる。最後に、各処理ユニット内に配置された比較回路は、ローカル・データと、フィードバック・バスを介してそこに伝送される前記グローバル・データとを比較する。次に、新しいローカル結果データである比較の結果は、処理ユニット・グループからの所定の処理ユニットの所与の資源またはブロックを非活動化することまたはもう１つのグローバル結果データも比較することなどの様々なアクションを開始するために後で使用することができる。したがって、ローカル線またはローカル・バス上で伝送される各ローカル結果信号は、その状況が対象となる処理ユニットに左右されるローカル評価の結果である。これに対して、グローバル線またはグローバル・バス上で伝送されるグローバル結果信号は、すべてのベース処理ユニットのレベルで実行されたグローバル評価の結果である。
【０１９２】
図８のニューラル・ネットワーク１１（Ａ）の場合、ニューロン回路１１−１〜１１−Ｎは、ＯＲ回路１２と、オンチップ共通通信バスであるＣＯＭ*−ＢＵＳと、フィードバック・バスとしてのＯＲ−ＢＵＳとを介して相互接続されている。前述の重要な問題は、発動したすべてのコミット済みニューロン回路が同一カテゴリを有するかどうかまたはそのニューロン回路が少なくとも２通りのカテゴリに属すかどうかを判断することである。そのために、ローカル・カテゴリＣ（カテゴリ・レジスタ４５０に保持されている）とグローバル・カテゴリＣ*（ＯＲ−ＢＵＳによる）が識別回路４００で比較される。この例のニューロン回路１１は、前述のベース処理ユニットと同じ役割を果たす。カテゴリ・レジスタ４５０に保持されているローカル・カテゴリＣはローカル・データであり、グローバル・カテゴリＣ*は、ＯＲ補助回路１２．１ですべてのローカル・カテゴリのＯＲを取ることによって得られるグローバル・データである。グローバル・カテゴリＣ*は、フィードバック・バスの役割を果たすＯＲ−ＢＵＳを介して各ニューロン回路に伝送され、そこに保持されているローカル・カテゴリＣと比較される。この比較の結果は、ローカル結果である信号ＵＮＣ／ＦＩＲＥ．ＯＫになる。次に、回路１２ですべてのローカル結果信号ＵＮＣ／ＦＩＲＥ．ＯＫのＯＲが取られ、グローバル結果であるＵＮＣ／ＦＩＲＥ．ＯＫ*信号が生成される。この比較は、たとえば、図２０のボックス４１により認識フェーズ中に行われる。最後に、ＣＯＭ**−ＢＵＳは、グローバル結果信号（Ｆ*、ＤＥＧＯＵＴ*、およびＵＮＣ／ＦＩＲＥ．ＯＫ*）を伝送する複数のグローバル結果線と、グローバル出力信号（ＯＵＴ**）を伝送する複数のグローバル出力線のみで構成される。
【０１９３】
次に、それぞれのベース処理ユニットがローカル結果信号を伝送するための１本の出力バスと、グローバル結果を伝送する１本の入力またはフィードバック・バスとを有すると想定する。周知の接続規則を使用することにより、複数のベース処理ユニットをこのように接続することができる。図５１は、実施態様が非常に単純になるようにドットＡＮＤ機能を使用する場合のこの構造の例を示している。ここで図５１について説明すると、同図には、Ｎ個のベース処理ユニット７０−１〜７０−Ｎで構成された基本処理ユニット６９が示されている。グローバル結果バスＷとフィードバック・バスＺとの間で必要な前述のストラップ機能は、ストラップ・バスＳＴＲによって行われる。ロード抵抗ＲＬは、図５１に概略が示されているようにグローバル結果バスＷのそれぞれの線に適切に接続されている。ただし、ストラップ機能はドライバ回路で置換え可能であることに留意されたい。
【０１９４】
図５１を参照して示す上記の手法は、最大限に一般化するためにさらに複雑になる場合もある。多数のベース処理ユニットを相互接続しなければならない場合、当技術によってこの数に制限が加えられる可能性がある。この制限を越える場合は、グローバル結果バス上に新しいグローバル結果信号を生成するためにここで中間結果信号と見なされる前記グローバル結果信号を２つまたはそれ以上結合するには、中間統合ブロックが必要になるはずである。最後に、このグローバル結果バスは、ストラップ・バスを介して前記ベース処理ユニットのそれぞれにフィードバック・バスとして接続される。この構造により、データ管理のための監視プログラムは不要になり、実際にはグローバル結果線とフィードバック線との間のストラップ接続だけが必要になる。この理論はさらに一般化することが可能で、その場合、新しいグローバル結果信号は、最終グローバル結果バス上で最終グローバル結果信号を生成するために別の中間回路に結合可能な中間結果信号になる。
【０１９５】
図５２は、この一般化をある程度の範囲で示したものである。複合処理ユニット７１を形成するために、図５１に関連して記述したような２つの基本処理ユニット６９［１］および６９［２］が組み立てられている。それぞれのグローバル・バスＷ１およびＷ２は、その出力がストラップ・バスＳＴＲを介してフィードバック・バスＺを形成するＡＮＤゲート７２に印加され、そのフィードバック・バスＺは、それぞれの基本処理ユニット６９［１］および６９［２］の各ベース処理ユニット７０−１〜７０−Ｎに信号を供給する。
【０１９６】
補助回路
必ずＭａｘＩＦ未満になる影響フィールド値をＡＩＦレジスタ３５２にロードする便利な方法は、図４１を参照して説明した探索／分類回路５０２の簡略バージョンを使用することである。ここで図５３について説明すると、同図には、基本ＺＩＳＣチップ１０内のこの追加回路５０２'の詳細構造を示す回路７３が記載されている。回路５０２'の役割は、影響フィールドをＭａｘＩＦ値にクランプすることである。このクランプ回路は、同じように直列にカスケード化された図３９および図４０の同一基本ベース・ユニット５１０で構築されている。
【０１９７】
図４１の探索／分類回路５０２との主な違いは、構造ではなく、むしろ接続部にある。クランプ回路５０２'に印加される入力信号は、計算された距離ＤではなくＭａｘＩＦである。クランプ回路５０２'を選択する（禁止しない）必要がある場合は、そのＥＸＣＬＩＮ入力が地電位ＧＮＤに接続される。これに対して、そのＥＸＣＬＯＵＴ信号は出力されない。図５３に示されている実施態様では、図４１の専用ＯＲ補助回路１２．１のＯＲゲートに追加入力を設けなければならない。ここではこのＯＲゲートを１２'．１〜１２'．４と呼ぶ（Ｎ個の入力ではなく、Ｎ＋１個の入力を有する）。基本ＺＩＳＣチップ１０には１つのクランプ回路５０２'のみ実現されているが、このクランプ回路は同じように最小距離Ｄｍｉｎの決定に関与する。したがって、このクランプ回路５０２'の役割は、学習フェーズ中に新たに使用中になったニューロン回路のＡＩＦレジスタ３５２をＭａｘＩＦ値に設定することである。たとえば、この機能は、ベース・ニューラル・ネットワーク１１（Ａ）のいずれのニューロン回路も学習していないときに行うことができ、ＭａｘＩＦ値は学習可能ニューロン回路にロードされる。
【０１９８】
基本ＺＩＳＣチップの主な特徴
図９の基本ＺＩＳＣチップ１０は、最高６４個の成分（項目）まで入力ベクトルを学習し認識できるようになっている。その並列アーキテクチャにより、ＺＩＳＣチップ１０は、入力ベクトルとそこに事前に格納されているすべてのプロトタイプ・ベクトルとの距離を同時に計算する（ニューロン回路は「学習済み」）。この距離計算方法は、ユーザが選択可能なノルムに基づくものである。ただし、このノルムはニューロン回路ごとに異なる可能性があることに留意されたい。上記の説明では、２通りの距離計算方法がＬ１ノルムとＬｓｕｐノルムに基づいているが、他の計算方法も考えられる。チップの完全カスケード性のため、基本ＺＩＳＣチップ１０内のニューロン回路の数がＮ個（Ｎ＝３６）という制限は問題にならない。このため、ニューラル・ネットワークには無限数のプロトタイプ・ベクトルを格納することができる。学習フェーズ中に各ニューロン回路は、特徴空間の最適マッピングを行うために、自動的にその影響フィールドを調整する。この調整はすべてのニューロン回路で同時に行われ、マイクロコントローラによる監視などの外部アクションを必要としない。その結果、学習プロセスは内部で行われ、完全に自動化される。一方、学習時間は、ニューラル・ネットワークを形成するニューロン回路の数とは無関係である。しかも、さらに時間を節約するため、事前装填ステップにより、認識フェーズ中に入力ベクトル成分を格納しておくことが可能になり、その結果、学習のために新たに入力ベクトルを提示する必要はなくなる。ＺＩＳＣチップ１０には多数のカテゴリ（１６３８４）が設けられ、さらに、特にニューラル・ネットワークを複数のサブセットに分割できるようにするためのコンテキスト機能を含んでいる。また、高速で最小距離を決定し、効率よく残りの距離を分類するために効率の良い探索分類構造も設けられている。基本ＺＩＳＣチップ１０は、効率を高めるために保管モードと復元モードのどちらでも動作可能である。最後に、ニューラル・ネットワークを形成するニューロン回路の数は、無制限であり、ユーザにとっては透過なものである。
【０１９９】
基本ＺＩＳＣチップの主な応用例
本発明の基本ＺＩＳＣチップ１０は、非常に革新的なニューロン回路アーキテクチャに基づくものである。その結果、所望のサイズのニューラル・ネットワークを組み込んだ基本モジュールおよび複合モジュールの構築が可能になる。本発明により開示された革新的なニューロン回路構造は、当技術の様々な分野のいくつかの応用例に対応できるようになっている。ＺＩＳＣチップは、以下のような数多くの領域において革新的で低コストの解決策を提供するものである。
画像認識（工場自動化）
画像圧縮（データ格納）
ビデオ圧縮（ビデオ格納、ビデオ会議）
文字認識
音声処理および音声認識
信号認識（レーダー、ソナーなど）
データ分析
ロボット工学
機器監視
信号処理
他
【０２００】
まとめとして、本発明の構成に関して以下の事項を開示する。
【０２０１】
（１）使用中または空き状態のいずれかになっている複数のニューロン回路で構成されたニューラル・ネットワークにおいて、各ニューロン回路内に配置され、入力データ・バス（ＤＡＴＡ−ＢＵＳ）上で伝送されるｎ個の成分で構成される入力ベクトル（Ａ）の各種成分を所定の空き状態ニューロン回路にロードする事前装填回路であって、前記事前装填回路が、
それから得られるバスを介して前記入力データ・バスに接続された各ニューロン回路内に位置し、メモリ制御信号（ＲＳ）の制御下でこのニューロン回路に付属するプロトタイプ・ベクトル（Ｂ）の潜在的な各種成分として入力ベクトル成分を格納できるようになっている重みメモリ手段（２５１）であって、そこに格納されるプロトタイプ・ベクトル成分を伝送するためにその出力に接続されている出力バス（ＲＡＭ−ＢＵＳ）が設けられている重みメモリ手段（２５１）と、前記メモリ制御信号（ＲＳ）を生成し、前記メモリ制御信号（ＲＳ）が認識フェーズ中に前記所定の空き状態ニューロン回路の重みメモリ手段にのみ前記入力ベクトル成分を書き込むように、ニューラル・ネットワーク内のどのニューロン回路が所定の空き状態ニューロン回路であるかを識別できるようになっている回路手段（６００）とを含む、事前装填回路。
（２）前記成分のそれぞれがｍビットで符号化されることを特徴とする、上記（１）に記載の事前装填回路。
（３）前記ニューラル・ネットワークが半導体チップに集積化され、前記重みメモリ手段がそこに形成されたｎ×ｍビットのＲＡＭマクロで構成されることを特徴とする、上記（１）または（２）に記載の事前装填回路。
（４）前記ＲＡＭメモリのアドレス指定が、各ニューロン回路内に位置するかまたは前記複数のニューロン回路に共通するカウンタ制御信号（ＮＥＸＴＣ、ＦＣＯＭＰ）の制御下でアドレス・カウンタ（２５２）によって行われることを特徴とする、上記（３）に記載の事前装填回路。
（５）それから出力されるデータをラッチするためにＲＡＭメモリの出力に接続されたレジスタ（２５３）をさらに含むことを特徴とする、上記（４）に記載の事前装填回路。
（６）前記ニューラル・ネットワークが直列に接続された複数のニューロン回路からなる１つの連鎖として構成され、前記所定の空き状態ニューロン回路が前記連鎖内の第１の空き状態ニューロン回路であることを特徴とする、上記（１）ないし（５）のいずれかに記載の事前装填回路。
（７）その後の学習用にそれを事前装填するために、認識フェーズ中に複数のニューロン回路の連鎖内の学習可能ニューロン回路と呼ばれる所定の空き状態ニューロン回路に入力ベクトル（Ａ）のｎ個の成分を事前装填する方法において、前記方法が、
１）ニューラル・ネットワークのすべてのニューロン回路に入力ベクトルを提示するステップと、
２）ニューラル・ネットワーク内の第１の空き状態ニューロン回路を決定するステップと、
３）前記第１の空き状態ニューロン回路の重みメモリにのみ入力ベクトル成分をロードするステップとを含む方法。
【図面の簡単な説明】
【図１】９×８ピクセルのマトリックスに埋め込まれた大文字"Ｅ"を示す図である。
【図２】２次元特徴空間内のプロトタイプ・ベクトルの実施例であり、単一プロトタイプ・ベクトルと、円によって示されたその影響フィールドとを示す図である。
【図３】２次元特徴空間内のプロトタイプ・ベクトルの実施例であり、同一カテゴリＣを有する２つのプロトタイプ・ベクトルを示す図である。
【図４】２次元特徴空間内のプロトタイプ・ベクトルの実施例であり、縮小技法の基礎にある原理を例示するために異なるカテゴリに関連する２つのプロトタイプ・ベクトルを示す図である。
【図５】２次元特徴空間内のプロトタイプ・ベクトルの実施例であり、距離の表記を例示するために異なるカテゴリに関連する３通りのプロトタイプ・ベクトルを示す図である。
【図６】３つのカテゴリに分類するために２成分入力ベクトルを処理できるようになっている１０個のニューロン回路を含む、従来のＲＢＦ３層ニューラル・ネットワーク・アーキテクチャを示す図である。
【図７】図６のニューラル・ネットワークに対応する特徴空間になる可能性がある例を示す図である。
【図８】スタンドアロン用途用としてのみ設計されたニューラル半導体チップの第１のアーキテクチャの変形態様と、本発明によりそれに組み込まれたニューラル・ネットワークとの概略ブロック図である。
【図９】スタンドアロン用途用として動作するかまたはマルチチップ環境において他の類似ニューラル・チップとともに動作するように設計された基本ニューラル半導体チップの好ましいアーキテクチャと、本発明の好ましい実施例によりそれに組み込まれたベース・ニューラル・ネットワークとの概略ブロック図である。
【図１０】その本質的な構成機能ブロックとその間の主な相互接続部を示すための本発明による図８および図９の革新的なニューロン回路の好ましいアーキテクチャの概略ブロック図である。
【図１１】図１０のすべてのブロックの動作に必要な内部制御信号、選択信号、およびアドレス信号を生成する図８および図９の状況／制御論理回路１８の概略ブロック図である。
【図１２】レジスタとマルチプレクサとで構成される図１０のＩＦ回路３５０の概略ブロック図である。
【図１３】マルチプレクサと、論理回路と、革新的な探索／分類回路とで構成される図１０のＤｍｉｎ決定回路５００の概略ブロック図である。
【図１４】図９の基本ニューラル・チップのアーキテクチャの変形態様を示す図である。
【図１５】図９の基本ニューラル・チップのアーキテクチャの変形態様を示す図である。
【図１６】半導体技術によって許される制限数内で本発明の前記ニューラル・チップの完全カスケード性を示すために直列に接続された複数の図９の基本ニューラル半導体チップを組み立てることにより形成される基本モジュールを示す図である。
【図１７】非常に小さい追加回路を設けるだけで図１６の２つの基本モジュールを組み立てることにより形成される複合モジュールを示す図である。
【図１８】ベース・ニューラル・ネットワークの初期設定フェーズの重要ステップの流れ図である。
【図１９】ベース・ニューラル・ネットワークの認識フェーズの重要ステップの流れ図である。
【図２０】ベース・ニューラル・ネットワークの認識フェーズの重要ステップの流れ図である。
【図２１】縮小プロセスと拘束プロセスとを含むベース・ニューラル・ネットワークの学習フェーズの重要ステップの流れ図である。
【図２２】図１０の突合せ回路の概略回路構成を示す図である。
【図２３】コンテキスト手法の使用により、図９のベース・ニューラル・ネットワーク内の各種サブセットを定義できるようにする方法を示す図である。
【図２４】基本的にＲＡＭメモリ周囲に構成される図１０のＲ／Ｗメモリ回路２５０の詳細図である。
【図２５】使用中ニューロン回路の認識フェーズ中の前記回路２５０内部のデータの流れを示す図である。
【図２６】ＲＡＭメモリに入力ベクトル成分を事前装填するステップを含む、第１の空き状態ニューロン回路の認識フェーズ中のデータの流れを示す図である。
【図２７】それぞれが加算器を１つずつ含む２つのサブブロックで基本的に構成され、ユーザが選択したノルムに応じて入力ベクトルとニューロン回路に格納されたプロトタイプ・ベクトルとの距離を計算するという役割を有する、図１０の距離評価回路２００の概略回路図である。
【図２８】距離評価回路２００の第１のサブブロックに実現された加算器の簡略化した２部構造を示す図である。図２８の加算器の前記第１の部分では、図２４〜図２６に示されているすべての回路が広く使用されている。
【図２９】その第２の部分で使用する中間ビット信号を生成する、図２８の加算器の第１の部分の詳細構造を示す図である。
【図３０】各種の接続部を有するＸＯＲ回路の詳細回路構造を示す図である。
【図３１】セレクタ／ＮＡＮＤ結合回路の詳細回路構造を示す図である。
【図３２】セレクタ／ＮＯＲ結合回路の詳細回路構造を示す図である。
【図３３】図３１および図３２の回路で使用する２つのタイプのセレクタ（ＳＥＬ）の詳細回路構造を示す図である。
【図３４】合計ビット信号を生成する図２８の加算器の第２の部分の詳細構造を示す図である。
【図３５】識別回路４００で後続処理するためにＬＴ信号およびＬＴＥ信号を生成する図１０の比較回路３００の詳細図である。
【図３６】ニューロン回路レベルでローカル結果信号および状況信号を生成する図１０の革新的な識別回路４００の概略回路図である。
【図３７】図１３のＤｍｉｎ決定回路５００内の論理回路５０３の詳細構造を示す図である。
【図３８】図１３の探索／分類回路５０２の動作の基礎にあるアルゴリズムを示す流れ図である。
【図３９】ニューロン回路によって計算された距離信号の１つのビットを処理するために図１３の探索／分類回路５０２で使用される好ましいベース・ユニットの構造を示す概略図である。
【図４０】標準的な論理ゲートを有する前記ベース・ユニットの典型的な実施態様を示す図である。
【図４１】それぞれが必要な数の図３９のベース・ユニットを組み立てることにより構築された４つの探索／分類回路５０２の組合せによって形成され、図８のニューラル・ネットワーク内の４つの４ビット符号化距離のうちの最小距離を決定できるようになっている仮想集合回路の第１の変形態様を示す概略図である（例示のため、図８のニューラル・ネットワークは４つのニューロン回路のみで構成されているものと想定する）。
【図４２】残りの距離を増加順に分類できるようにするための記憶素子をさらに含む、図４１の仮想集合回路のもう１つの変形態様を示す概略図である。
【図４３】図１０のデイジー・チェーン回路６００の詳細構造を示す図である。
【図４４】本発明のデイジー・チェーン回路６００の手法をマルチプロセッサ環境に応用する場合を示す概略図である。
【図４５】ＯＲ機能がＯＲ回路によって実行され、スタンドアロン動作に対応できるようになっている、図８のニューラル・チップ用のニューロン間通信システムの構造を示す概略図である。
【図４６】オフチップ共通通信バス上でのドット処理によりＯＲ機能が実行されるマルチチップ環境での動作のための、図９の基本ニューラル・チップのニューロン間通信システムの構造を示す概略図である。
【図４７】基本モジュールを形成するために８個の図４６の基本ニューラル・チップを組み立てる場合のグローバル出力信号の第１のビット用のドライバ回路の詳細実施態様を示す図である。
【図４８】（Ａ）、（Ｂ）、および（Ｃ）の各部で構成され、（Ａ）はＯＵＴ*信号とＮＯＵＴ信号との論理関係を示し、（Ｂ）はＯＲ信号とＯＵＴ*信号との論理関係を示し、（Ｃ）は
【数１８】
＿＿
ＯＲ
以降、ＯＲバーと記載する。
／ＯＵＴ**信号とその各ビットごとの
【数１９】
＿＿＿＿＿
ＯＵＴ****
以降、ＯＵＴ****バーと記載する。
信号との論理関係を示す図である。
【図４９】各チップに図９の任意選択の主Ｄｍｉｎ決定回路２０が設けられている、図４７の基本モジュールの変形態様を形成するために８個の基本ニューラル・チップを組み立てる場合のグローバル出力信号の第１のビット用のドライバ回路の詳細実施態様を示す図である。
【図５０】複合モジュールを形成するために複数の図４７の基本モジュールを組み立てる場合を示す図である。
【図５１】複数のベース処理ユニットで構成される基本マルチプロセッサ・ユニットの構築に本発明のニューロン間通信システムの手法を応用する場合を示す図である。
【図５２】複合マルチプロセッサ・ユニットを形成するために２つの図５１の基本マルチプロセッサ・ユニットを組み立てる場合を示す図である。
【図５３】ローカル出力信号としてＭａｘＩＦ信号を生成するための図９の各基本ニューラル・チップ内のダミー探索／分類回路の実施態様を示す図である。
【符号の説明】
１３  Ａレジスタ
２５０  Ｒ／Ｗメモリ回路
２５１  ＲＡＭ
２５２  カウンタ
２５３  Ｗレジスタ
【図１】
0003798451.tif 000012
【図２】
0003798451.tif 000013
【図３】
0003798451.tif 000014
【図４】
0003798451.tif 000015
【図５】
0003798451.tif 000016
【図６】
0003798451.tif 000017
【図７】
0003798451.tif 000018
【図８】
0003798451.tif 000019
【図９】
0003798451.tif 000020
【図１０】
0003798451.tif 000021
【図１１】
0003798451.tif 000022
【図１２】
0003798451.tif 000023
【図１３】
0003798451.tif 000024
【図１４】
0003798451.tif 000025
【図１５】
0003798451.tif 000026
【図１６】
0003798451.tif 000027
【図１７】
0003798451.tif 000028
【図１８】
0003798451.tif 000029
【図１９】
0003798451.tif 000030
【図２０】
0003798451.tif 000031
【図２１】
0003798451.tif 000032
【図２２】
0003798451.tif 000033
【図２３】
0003798451.tif 000034
【図２４】
0003798451.tif 000035
【図２５】
0003798451.tif 000036
【図２６】
0003798451.tif 000037
【図２７】
0003798451.tif 000038
【図２８】
0003798451.tif 000039
【図２９】
0003798451.tif 000040
【図３０】
0003798451.tif 000041
【図３１】
0003798451.tif 000042
【図３２】
0003798451.tif 000043
【図３３】
0003798451.tif 000044
【図３４】
0003798451.tif 000045
【図３５】
0003798451.tif 000046
【図３６】
0003798451.tif 000047
【図３７】
0003798451.tif 000048
【図３８】
0003798451.tif 000049
【図３９】
0003798451.tif 000050
【図４０】
0003798451.tif 000051
【図４１】
0003798451.tif 000052
【図４２】
0003798451.tif 000053
【図４３】
0003798451.tif 000054
【図４４】
0003798451.tif 000055
【図４５】
0003798451.tif 000056
【図４６】
0003798451.tif 000057
【図４７】
0003798451.tif 000058
【図４８】
0003798451.tif 000059
【図４９】
0003798451.tif 000060
【図５０】
0003798451.tif 000061
【図５１】
0003798451.tif 000062
【図５２】
0003798451.tif 000063
【図５３】
0003798451.tif 000064