(57)【特許請求の範囲】
【請求項１】
複数の重み付けビット（a1...a8）による第１の位置次元以上の重み付けアレイと、複数の重み付けなしビット（b1...b8）による第２の二次元以上の重み付けアレイのハミング値関係の表す出力を発生させるハミング値コンパレータ−において、
任意のバイナリ重み付けなしアレイのハミング値が、そこで論理１′ｓの数であり、二つの重み付けなしアレイのハミング値関係が、大きなハミング値を有するか、その複数のハミング値が同じかどうかを示し、
前記ハミング値コンパレータ−が：
複数のビットを前記複数のアレイから、多数の層の（ｎ＋ｎ）−ビット操作セル（22,36,46,56など）の複数の層から成るプロセッシング手段へ供給する手段を備え、各ビット操作セル（22,36,46,56など）が、前記第１アレイ（a1...a2）において複数の個別ビット（a1,a2など）に対応した複数の個別のビットを受ける第1n−入力と、前記第２アレイ（b1...b2）において複数の個別ビット（b1,b2など）に対応した複数の個別ビットを受け取る第2n−入力と、前記第1n−入力と第2n−入力個々に対応した第1n−出力と第2n−出力とを有すること、
各操作セル（26,36,46,56など）が、論理手段（24,26,28など）をビットシフト操作とビット削除操作の少なくとも一つを実行するため備えること、
複数の（ｎ＋ｎ）−ビット操作セル（22,36,46,56など）が、最後の層から出た各層の出力を、次の層または二番目の層の個別入力に送ることによって、相互接続されること、
前記複数のビット操作セルの出力にセットされた複数のビットが、前記プロセッシング手段を通って共通のビット位置へ向かって移行し、プロセッシング手段の最後の層が前記ハミング関係を表わす出力を発生させること、
を特徴とするハミング値コンパレーター。
【請求項２】
前記プロセッシング手段が、多数の実質的に共通な（ｎ＋ｎ）−ビット操作セル（22,36,45,56など）を備え、各操作セルが論理手段を備え、倫理手段が：
（ｉ）ビットシフト操作を実行させ、前記第１及び第2n−入力の各々における集合ビットを、予定の集合方向にシフトさせ、非集合ビットが、ｎ−出力に対応したシフト位置に生じさせ、
（ii）ハミング評価操作を実行させ、論理１が前記第１入力における任意のビット位置にある場合、前記第１入力が前記第2n−入力に関連するビット位置にある論理１に対応し、前記集合ビットが両方とも論理０に集合されること、
を特徴とする請求の範囲１に記載のハミング値コンパレーター。
【請求項３】
前記ハミング削除操作が、完全な削除操作であり、前記第1n−入力の一つにある理論値１が、前記第2n−入力におけるいかなるビット位置においても、理論値１を削除できることを特徴とする請求の範囲２に記載のハミング値コンパレーター。
【請求項４】
前記ハミング削除操作が、部分的な削除操作であり、前記第1n−入力において任意のビット位置にある論理１が単に、前記第2n−入力において同じビット位置にある論理１を削除すること、を特徴とする請求の範囲２に記載のハミング値コンパレーター。
【請求項５】
複数の前記ビット操作セルが、完全なビットシフトを行い、前記第1n−入力と第2n−入力のいずれかに関して、もしビットシフトの方向に前記論理１に隣接した一つ以上の論理０′ｓがあると、論理１が常に前記予定の集合方向にシフトされることを特徴とする請求の範囲１〜４のいずれか一項に記載のハミング値コンパレーター。
【請求項６】
各ビット操作セル（22,36,46,56など）が、四つの入力（AINL,AINR,BINL,BINR）と四つの出力（AOUTL,AOUTR,BOUTL,BOUTR）とを含み、第１の層におけるビット操作セルは、各ビット操作セル（22,36）について二つの入力（AINL,AINR）が各々バイナリーアレイ（a1...a8）の一方からそれぞれのビットを受け、他の二つの入力（BINL,BINR）が各々他方のバイナリーアレイ（b1...b8）からそれぞれのビットを受けるように構成されることを特徴とする請求の範囲１〜５のいずれか一項に記載のハミング値コンパレーター。
【請求項７】
第１の層におけるビット操作セル（22,36）の上記二つの入力（AINL,AINR;BINL,BINR）の各々が、偶数境界上の相応したバイナリーアレイ（a1...a8;b1...b8など）の隣接したビットを受けるように構成されることを特徴とする請求の範囲６に記載のハミング値コンパレーター。
【請求項８】
各ビット操作セル（32,36）が、それぞれの入力で受けた上記第１及び第２のバイナリーアレイ（a1...a8;a1...a8）からのビットでの操作を実行し、それにより集合ビットが予定のビット方向にシフトされ、そして相応して位置決めされた集合ビットが全部又は一部削除されるように構成されることを特徴とする請求の範囲７に記載のハミング値コンパレーター。
【請求項９】
上記ビット操作セルの各々が下記に表される、又はそれの逆の真理値表
0003587533.tif 000011
を備えており、
ここでAinL、AinR,BinL、BinRがセルへの四つの入力であり、AoutL、AoutR、BoutL、BoutRが四つの出力であることを特徴とする請求の範囲３に依存する場合に請求の範囲５に記載のハミング値コンパレーター。
【請求項１０】
上記ビット操作セルの各々が、下記に表される（又はそれの逆の）真理値表を備えていること、
0003587533.tif 000012
を特徴とする請求の範囲４に依存する場合に請求の範囲５に記載のハミング値コンパレーター。
【請求項１１】
各ビット操作セル（22,36）が、上記バイナリーアレイの一方からそれぞれのビットを受ける第１の多数の入力（AINL,AINR）と、上記バイナリーアレイ（a1...a8）の他方からそれぞれのビット（b1...b2）を受ける第２の多数の入力（BINL,BINR）を有し、上記ビット操作セル（22,36）が相応した多数の出力と、上記第１の多数の入力におけるビット（a1...a8）のハミング値が上記第２の多数の入力におけるビット（b1...b8）のハミング値よりも大きい場合に上記出力のそれぞれ予め選択した出力に集合ビットを出力する論理手段とを有することを特徴とする請求の範囲１〜10のいずれか一項に記載のハミング値コンパレーター。
【請求項１２】
ビット操作セル（68,70,72）の多数の交互の層を有し、上記層の一つが予め設定した位置に向って入力アレイにおける集合ビットをシフトする多数の第１のビット操作セル（68）を備え、上記層のその他の層が上記各アレイにおける相応した集合ビットを削除するハミング削除セル（72）と共に、上記多数の第１のビット操作セル（68）を備えて、二つの一次元以上のバイナリーアレイ（a1...a8;b1...b8）を比較することを特徴とする請求の範囲１に記載のハミング値コンパレーター。
【請求項１３】
ビット操作セル（84）の多数の層（80,82）を有し、各セル（84）が少なくとも二つの入力と二つの出力とを備え、そして予め設定したビット位置に向って集合ビットをシフトするようにされ、しかもビットシフト及びビット削除の少なくとも一方を行うように層間に接続され、それにより、上記アレイのハミング値関係を表す出力を得るようにした、バイナリーデータ（ABCD;abcd）の二つの二次元アレイのハミング値を比較して、論理１′ｓ集合のよりも数が多いか決定することを特徴とする請求の範囲１に記載のハミング値コンパレーター。
【請求項１４】
交互の層（80,82）を有し、上記層の一方の層（80）が４＋４ビット操作セル（84）のアレイを備え、上記層の他方の層（82）が、上記４＋４ビット操作セル（88）のアレイと、周囲に配列した多数の２＋２ビット操作セル（88）と、多数のパススルー（Ｉ）とを備えている請求の範囲13に記載のハミング値コンパレーター。
【請求項１５】
各層におけるビット操作セルが、上記層に対しで共通軸線又は焦点に向ってビットをシフトするように構成されることを特徴とする請求の範囲14に記載のハミング値コンパレーター。
【請求項１６】
上記２＋２ビット操作セル（88）が、入力ａ、ｂ、ｃ、ｄ及び出力Ya、Yb、Yc、Ydで以下の論理操作を行う
Ya=a#b#c#d  Yb=(d&c)#(d&b)#(d&a)#(c&b)#(c&a)#(b&a)
Yc=(&c&b)#(d&c&a)#(d&b&a)#(c&b&a)
Yd＝ａ＆ｂ＆ｃ＆ｄ                （等式組（４））
であり、ここで“＆”はAND演算子を表わし、“＃”はOR演算子を示すことを特徴とする請求の範囲14又は15に記載のハミング値コンパレーター。
【請求項１７】
上記４＋４ビット操作セル（84）が入力（｛ABCD｝及び｛abcd｝）に、図17に示す論理操作に関連して出力YA,TB,YC,YD及びYa,Yb,Yc,Ydを提供することを特徴とする請求の範囲14〜16のいずれか一項に記載のハミング値コンパレーター。
【請求項１８】
請求の範囲１〜17のいずれか一項に記載のハミング値コンパレーターを有することを特徴とするバイナリー和及び閾値装置。
【請求項１９】
複数の重み付けビット（a1...a8）による第１の位置次元以上の重み付けアレイまたは、複数の重み付けなしビット（b1...b8）による第２の二次元以上の重み付けアレイのいずれかが、そこで倫理値１′ｓよりも数が大きいか決定する方法において、前記方法が：
（ｉ）複数のビットを前記複数のアレイから、多数の層の（ｎ＋ｎ）−ビット操作セル（22,36,46,56など）の複数の層から成るプロセッシング手段へ供給することを含み、各ビット操作セル（22,36,46,56など）が、前記第１アレイ（a1...a2）において複数の個別ビット（a1,a2など）に対応した複数の個別のビットを受ける第1n−入力と、前記第２アレイ（b1...b2）において複数の個別ビット（b1,b2など）に対応した複数の個別ビットを受け取る第2n−入力と、前記第1n−入力と第2n−入力個々に対応した第1n−出力と第2n−出力とを有すること、
各操作セル（26,36,46,56など）が、論理手段（24,26,28など）をビットシフト操作とビット削除操作の少なくとも一つを実行するため備えること、
複数の（ｎ＋ｎ）−ビット操作セル（22,36,46,56など）が、最後の層から出た各層の出力を、次の層または二番目の層の個別入力に送ることによって、相互接続されること、
連続層において、前記複数のビット操作セルの出力にセットされた複数のビットが、前記プロセッシング手段を通って共通のビット位置へ向かって移行し、プロセッシング手段の最後の層が前記ハミング関係を表わす出力を発生させること、
を特徴とする決定方法。
【発明の詳細な説明】
技術分野
本発明は一般的にはバイナリーベクトル又はアレイのハミング値を決定する方法及び装置に関するものであり、一層特に排他的意味ではないが、一組の重みなしビット（以下重みなしタプル又は重みなしベクトルと記載する）のハミング値関係を決定するのに使用する方法及び装置に関する。本発明はまた、二つのサーモメータコード又は重みなしベクトルのハミング値関係を決定する方法及び装置に関するものである。さらに本発明はデータの二つの二次元アレイのハミング値関係を比較するハミング値コンパレーターも包含する。さらにまた、本発明は、本発明のハミング値コンパレーターを使用した和及び閾値装置も包含する。
背景技術
ここで述べる装置及び方法は、出願中の英国特許出願第9726752.0号、同9823361.2号、同9823385.1号、同9823322.8号、出願中の国際特許出願PCT/GB98/03834（WO99/33184）、PCT/GB98/03832（WO99/33019）、PCT/GB98/03833（WO99/33175）、及びPCT/GB98/3837（WO99/32962）に開示された装置又は方法のいずれかと有利に結合され、又はそれに利用され得、これらの内容は本明細書に参照として結合される。
用語
用語“ハミング値”は、２進数、タプル、ベクトルのような一次元アレイ又は二次元以上のアレイにおける論理１のセットの数を画定するのに用いられる。二つの２進数又はアレイのハミング値関係はどちらが大きいハミング値をもつか又はハミング値が同じであるかどうかを表す。
用語“重み付けバイナリー”は、他の重み付け表示が可能であるが、連続したビットポジションが重み付けされること、特に16、８、４、２、１を表するために普通の意味で使用する。“重み付けなしバイナリー”は二進ディジット１、０の集合であり、各々それぞれ“1"及び“0"を表している。最小桁のビット（LSB）又は最大桁のビット（MSB）はない。ビットの集合は順序が定められているか又は定められてなくてもよい。全ての１が互いに群にされる場合、例えば［111000］、コードはサーモメータコード、サーモコード又はバーグラフコードと呼ばれ、本明細書ではこれらをまとめて“サーモメータコード”と記載する。
用語サーモメータコードは、またタプルの両端の一方に向う集約というよりはむしろ集合ビットがタプル内に存在するビットを囲んで集約されるアレイを説明するのにも用いられる。同様にこの用語は、アレイ内の任意の場所であり得る存在するフォーカルビットポジションを囲んで、例えば二次元又は三次元アレイの場合一つの角部又は中心部に集合ビットがクラスタ又は集約される二次元、三次元又はより高次元のアレイを説明するのにも用いられる。
重み付けなしビットの集合は、“重み付けなしタプル”又は“重み付けなしベクトル”と記載し、これらの用語は順序の定められた集合に限定されるものではない。
典型的なニューラルネットワークにおいては、実数値シナプス値はシナプス接続長さ又は重み値で掛け算され、そして他の同様に処理したシナプスと加算してから、全て加算され、閾値が定められてニューラル出力を形成する。重み値は実数値シナプス接続長さであり、用語“重み付けされたニューラルネットワーク”を使用する。しかしながら、実数値接続重み付けを用いずに０か１であるバイナリービットの値に依存するバイナリーRAMに基くニューラルネットワークを設けることもできる。従って、重み付けなしには、シナプス接続長さなしとバイナリーコード重み付けなしとの二つの脈絡が存在する。上記の構成は重み付けなしバイナリー操作機構を使用し、そして重み付けなし−重み付けなし人工ニューラルネットワークとして記載する重み付けなし人工ニューラルネットワークを設計するのに用いられ得る。
一つの脈絡において、本発明は二つの重み付けなしのベクトルをそれらのハミング値に関して比較することに関係する。このプロセスは広義にはバイナリーニューロンの機能と等価である。ニューロンが重み付けなしのシナプス値（例えば［10110010］）のベクトルＡ及び重み付けなしのニューラル閾値（例えば［00101000］）のベクトルＴを受ける場合、ニューロンは、Ａのハミング値がＴのハミング値より大きい時に発火するように要求される。この例で、閾値Ｔは、ニューロンの発火（fire）されることになる場合に越えられなければならない抑止シナプス値の集合として考えられ得る。これは、二つのバイナリーベクトル間のハミング値関係を決めるのに必要である場合の一つの特殊な例であるがねこの処理又は同様な処理を必要とする非常に多くの他の形式のシステムが存在する。例えば、ここで説明するこの比較及びその他の技術は、飛行制御システム、冗長度をもつ投票システム、安全臨界システム、通信システム、意思決定システム及びニューラルネットワークのような人工知能システムに使用され得る。
先行技術の構成においては、１の集合の数を計数するのに状態マシンに基くシステムが使用され、またバイナリー比較にはデジタル演算ユニットが使用される。各重み付けなしのベクトルについて、各ビットは順次走査され、従ってカウンター又は演算レジスターはハミング値を評価するように増加される。その後、それぞれのカウンターは演算レジスターの内容は比較され、ハミング値関係を決定する。この先行技術による技法はマイクロプロセッサや同様な状態マシンを用いてソフトウエアを実行するのに適している。
しかしながら、この技法は、主としてクロック、カウンター及びマイクロプロセッサに関連しているので、遅くしかもコンダクティブ及びエミッシブ高周波干渉（RFI）を受け易い。動作速度及び他のノイズによる崩壊又は誠実さの低下に対する鋭敏さの両方により、そのようなシステムは飛行制御システムのような安全臨界システムには不適当である。例として、飛行制御システムでは、幾つかの変換器の瞬時的な“ハイ”又は“ロー”状態に基いて迅速に決定して航空機動作の種々の特徴を報告する必要があり得る。決定を行うプロセスに対する入力の一つの崩壊（ノイズやRFI崩壊によって生じる）によって入力の一つの誤解釈が生じ、その結果、決定を行うプロセッサ又はニューラルネットワークは潜在的に不幸な結果をもたらす間違った決定を行うことになる。
英国特許第1,588,535号には、ファイル語を一度に一回検索し、ファイル語と検索語との間のハミング距離を測定する装置が開示されている。ハミング距離（すなわち二つの語の異なるビットの数）は、典型的には二つのバイナリーベクトル又はタペルのどちらかが最大数の論理１の集合をもっているかを決めるハミング値比較と全く異なることが認められる。
従って、ここに開示されているものは、小さな重み付けなしシステムに対しては非常に速い非同期ブール論理ビットセル操作体系を用いる二つのバイナリーベクトルのハミング値関係を決める種々の機構である。さらに、これらは重み付けしたバイナリーオルターネイティブよりRFIに対して弾力性がありしかも故障許容が大きい傾向がある。
最初に述べた構成では、二つの重み付けなしのバイナリーベクトルはまず別個にサーモメータコードに変換され、その後、サーモメータコードは、サーモコードコンパレーターで比較され、ハミング値関係を決める。
二つの後に続く関連した体系において、二つの重み付けなしベクトルは、サーモメータコードへの別個の変換及びその後の比較を必要とせずに並列に比較される。しかしながら、サーモメータコード変換器及びサーモコードコンパレーターは各々種々の応用に使用でき、本発明はこれら白体に及ぶ。
本発明の一つの特徴によれば、二つの一次元以上のビットアレイのハミング値関係を決めるためにシフト操作及びビット削除操作の少なくとも一方を実行する一つ以上のビット操作セル又は論理素子に上記アレイを加える手段を有する、二つの一次元以上のビットアレイのハミング値関係を決めるハミング値コンパレーターが提供される。
本発明はまた、各々多数の入力と多数の出力をもつ多数のビット操作セル層を備えたプロセッシング手段と、相応したビットを二つのバイナリーアレイの各々から上記プロセッシング手段の第１の層のビット操作セルのそれぞれの入力に送る入力手段とを有し、ビット操作セルが最後の層から離れた各層の出力を次の層又は次の一つの層のそれぞれの入力に送ることによって相互接続され、それによりハミング値関係を表す出力を発生するように構成した二つのバイナリーアレイのハミング値関係を決定するハミング値コンパレーターを提供する。
コンパレーターは特に、重み付けなしのアレイ又は語に対して使用するようにされるが、重み付けしたアレイ又は語に対しての使用も除外するものではない。
各ビット操作セルは、四つの入力と四つの出力とを含むことができ、第１の層におけるビット操作セルは、各ビット操作セルについて二つの入力が各々バイナリーアレイの一方からそれぞれのビットを受け、他の二つの入力が各々他方のバイナリーアレイからそれぞれのビットを受けるように構成される。
第１の層におけるビット操作セルの上記二つの入力の各々は、好ましくは、イーブン境界上の相応したバイナリーアレイの隣接したビットを受ける。各ビット操作セルは好ましくは、それぞれの入力で受けた上記第１及び第２のバイナリーアレイからのビットにおける操作を実行し、それにより集合ビットは共通の方向にシフトされ、そして相応して位置決めされた集合ビットは全部又は一部削除される。従って、上記ビット操作セルの各々は以下の真理値表に示したようにシフト及び全削除（又はそれの逆）を行い得る。
0003587533.tif 000002
ここでAinL、AinR、BinL、BinRはセルへの四つの入力であり、AoutL、AoutR、BoutL、BoutRは四つの出力である。
代りに、上記ビット操作セルの各々は、以下の真理値表に示したようにシフト及び部分削除又はそれの逆を行い得る。
0003587533.tif 000003
好ましくは、各ビット操作セルは上記バイナリー語の一方からそれぞれのビットを受ける第１の多数の入力と、上記バイナリー語の他方からそれぞれのビットを受ける第２の多数の入力と、相応した多数の出力と、上記第１の多数の入力におけるビットのハミング値が上記第２の多数の入力におけるビットのハミング値より大きい場合に上記出力のそれぞれ予め選択した出力に集合ビットを出力する論理手段とを有する。
別の特徴によれば、本発明は、上記バイナリーアレイの一方からそれぞれのビットを受ける第１の多数の入力と、上記バイナリーアレイの他方からそれぞれのビットを受ける第２の多数の入力とを備えたビット操作セルを有し、上記ビット操作セルが相応した多数の出力を備え、また上記第１の多数の入力に集合したビットのハミング値が上記第２の多数の入力に集合したビットのハミング値より大きい場合に上記出力のそれぞれ予め選択した出力に集合ビットを出力する論理手段を有する、二つの一次元以上のバイナリーアレイのハミング値関係を決めるハミング値コンパレーターを提供する。
別の特徴によれば、本発明は、操作セルの多数の交互の層を有し、上記層の一つが予め設定した位置に向って入力アレイにおける集合ビットをシフトする多数の第１のビット操作セルを備え、上記層のその他の層が上記各アレイにおける相応した集合ビットを削除するハミング削除セルと共に、上記多数の第１のビット操作セルを備えている、二つの一次元以上のバイナリーアレイを比較するハミング値コンパレーターを提供する。
本発明のさらに別の特徴によれば、本発明は、多数のビット操作セルの層を有し、各セルが少なくとも二つの入力と二つの出力を備え、そして予め設定したビット位置に向って集合ビットをシフトするようにされかつ層間に相互に接続され、それにより上記アレイのハミング値関係を表す出力を得るように構成した、バイナリーデータの二つの二次元アレイのハミング値を比較するプレーナーハミング値コンパレーターを提供する。
別の特徴によれば、本発明は、二つのサーモメータコードのビット位置に相応した論理素子のアレイを有し、各論理素子がそれぞれのビット位置における二つのサーモメータコードからビットを受け、そしてサーモメータコードのビットを比較し、アレイが上記サーモメータコードのハミング値関係を表す出力を供給するように構成した二つのサーモメータコードのハミング値関係を決めるハミング値コンパレーターを提供する。
従って、上記論理素子のアレイは、サーモメータコードのどちらか一方が他方のサーモメータコードの相応したビット集合されない位置にビットの集合を備えているかどうかを表す出力を供給し得る。この場合に、コンパレーターは、好ましくは、他方のサーモメータコードが一方のサーモメータコードの相応したビット集合されない位置にビットの集合を備えているかどうかを表す出力を供給する論理素子の別のアレイを備えている。
論理素子の各アレイは、サーモメータコードのそれぞれの位置における相応したビットが供給される二つの入力を各々備えたゲートのアレイから成り得る。上記ゲートの各々は、一方の入力が反転された即ちド・モルガン等価であるANDゲートから成り得る。
本発明はまた、二つのサーモメータコードを論理素子のアレイに供給して各ビット位置において上記サーモメータコードのそれぞれのビットを比較しそれによりハミング値関係を決めることから成る、二つのサーモメータコードのハミング値関係を決る方法を提供する。
本発明はまた、各ビット位置において削除機能を実行し、各ビット位置においてサーモメータコードの相応したビットを比較して両ビットが集合される場合には分散し、そしていずれのコードが上記削除機能の実行後にビットの集合をもつかに基いてハミング値関係を決める、二つのサーモメータコードのハミング値関係を決める方法を提供する。
この動作の逆も達成され得ることが認められる。
本発明について説明してきたが、本発明は上記の説明又は以下の説明においてなされる特徴の全ての進歩的組合せに及ぶものである。
本発明は種々の仕方で実施され得、単に例として以下論理ゲートの普通の符号を用いている添付図面を参照して本発明の種々の実施の形態について詳細に説明する。
【図面の簡単な説明】
図１は、二つのサーモメータコードのハミング値関係を決める本発明のハミング値コンパレーターの一つの実施の形態を示す回路線図である。
図２は、二つの重み付けなしバイナリーベクトルのハミング値関係を決める本発明による重み付けなしバイナリーコンパレーターの一つの実施の形態を示す回路線図である。
図３（ａ）及び図３（ｂ）は図２の重み付けなしバイナリーコンパレーターに用いられるビット操作セルの二つの回路線図であり、一方のビット操作セルは全体シフト及び全体ハミング削除を実行するためのものであり、他方のビット操作セルは部分シフト及び部分ハミング削除を実行するためのものである。
図４は二つの典型的な重み付けなしバイナリーベクトルの入力に応答してビット操作セルの入力及び出力に集合したビットを示している図２の重み付けなしバイナリーコンパレーターの動作例を示す図である。
図５は二つのバイナリーベクトルのハミング値関係を決める本発明による重み付けなしバイナリーコンパレーターの第２の実施の形態を示す回路線図である。
図６は全体シフト及び部分的ハミング削除を行う図５の重み付けなしバイナリーコンパレーターのビット操作セルの一つの回路線図である。
図７は二つの典型的な重み付けなしバイナリーベクトルの入力に応答してビット操作セルの入力及び出力に集合したビットを示している図５の重み付けなしバイナリーコンパレーターの動作例を示す図である。
図８はシフト及びハミング削除を行う２×２ビット操作セルの回路線図である。
図９はシフト及びハミング削除を行う２×４ビット操作セルの回路線図である。
図10は二つの12ビットの重み付けなし入力を比較するハミング値コンパレーターを構成する図９のビット操作セルのアレイを示す回路線図である。
図11は図10のアレイの動作例を示す図である。
図12は二つの８ビットの重み付けなし入力を比較するハミング値コンパレーターの別の実施の形態を示す図である。
図13は図12の一部分の構造を説明する拡大図である。
図14は図12の実施の形態で使用したバックエンドデコーダーの拡大図である。
図15は奇偶層及び平面ハミング値コンパレーター構造の一実施の形態に使用したセル番号識別を表す線図である。
図16は図15の平面ハミング値コンパレーター構造の実施の形態に使用した２×２ビット操作セルを示す線図である。
図17は図15の平面ハミング値コンパレーターの実施の形態に使用した２×４ビット操作セルを示す線図である。
図18及び図19は図15の平面ハミング値コンパレーターの動作例を示す図である。
図20はハミング値コンパレーターで構成され得る和及び閾値（SAT）を示す線図である。
発明を実施するための最良の形態
サーモメータモードのハミング値コンパレーターさて図１を参照すると、図示したハミング値コンパレーターは、第１のサーモメータコードＡ（A1、A2、・・・・・・・・・・・・・・・A8）のハミング値（すなわち論理１の集合の数）が第２のサーモメータコードＢ（B1、B2、・・・・・・・・・・・・・・・B8）のハミング値により大きい時に、Ａ＞Ｂ出力が高く集合される特性をもつように要求される。同様に、第１のサーモメータコードＡが第２のサーモメータコードＢのハミング値により小さい時には、Ａ＜Ｂ出力は高く集合され、また第１、第２のサーモメータコードのハミング値が同じである時にはＡ＝Ｂ出力が高く集合される。
コンパレーター10はANDゲート16の第１、第２の同様なアレイ12、14を有している。第１のアレイ12において、各サーモメータコード（A1、A2、A3、A4、A5、A6、A7、A8）及び（B1、B2、B3、B4、B5、B6、B7、B8）からの相応したビットは相応した数のANDゲート16に供給され、ＡビットはANDゲート16の反転端子に供給され、ＢはANDゲート16の非反転端子に供給される。ANDゲート16の出力は三つのORゲート18によって論理和される。第１のアレイ12の検査により、ベクトルの任意の特定のビット位置においてＡビットが０で、Ｂビットが１である場合にORゲート18からの出力は高いことが示される。図示例ではこれは当てはまらない。バイナリー入力ベクトルＢ、Ａが両方ともサーモメータコードであると、第１のアレイ12の最終ORゲート18からの“高い”出力は、Ｂのハミング値がＡのハミング値より大きいことを表している。
第２のアレイ14は、Ｂ、Ａ入力が逆である点を除いて第１のアレイ12の場合と同様である。ANDゲート16の出力は前述のように三つのORゲート18によって論理和される。最終ORゲート18からの“高い”出力は、サーモメータコードＡのハミング値がサーモメータコードＢのハミング値より大きい場合に高い。第１、第２の両アレイ12、14からのそれぞれの出力ORゲート18の出力は反転されそしてANDゲート20に供給される。従って、出力Ａ＞Ｂは、Ａのハミング値がＢのハミング値より大きい場合に高くなり、出力Ａ＝Ｂは、両ハミング値が等しい場合に高くなり、また出力Ａ＜Ｂは、Ａのハミング値がＢのハミング値より小さい場合に高くなる。
この構成は超高速並列装置を提供する。この例は８ビットの語長を示しているが、アーキテクチャーは必要により他の語長を処理するように拡張できる。アーキテクチャーはまた状態マシン内に一体化され得又はビットスライスコンピュータ又はマイクロプロセッサ内の動作として一体化され得る。コンパレーターは、人工重み付けニューラルネットワークにおける閾値関数として使用され得、またボーティング／大多数論理システムに適合され、そしてデジタル通信システム内に多くの応用が可能である。コンパレーターは図示したように状態マシン、従来のマイクロプロセッサ又は重み付けしたバイナリーカウンタに基づく代わりのものより相当速い。
重み付けなしタペル用のハミング値コンパレーター図１の実施の形態では、入力Ａ、Ｂはサーモメータコードである必要がある。
しばしばそうでない場合があり、一般にはこの実施例は、二つのＮタペル重み付けなしベクトルのハミング値関係を決めるのに２ステージプロセスを必要とし、これらのベクトルは（例えば、出願中の英国特許出願第9726752.0号又はPCT/GB98/03834（WO99/33184）に記載されたサーモメータコードコンパレーターを用いて）まずサーモメータコードに変換する必要がある。その後、サーモメータコードのハミング値は比較されて必要な出力を形成する。
次に、図２〜図７の実施の形態を参照すると、二つのＮタペル重み付けなしベクトルのハミング値関係は単一コンパレーターを用いて決められる。両実施の形態において、４入力、４出力モジュラービット操作セルは、ＮタペルＡ、Ｂの各々の二つの素子を動作させるように画定され、また操作セルは、必要な比較を並列に実行するアーキテクチャーに構成される。まず最初に図２及び図３の実施の形態を参照すると、ビット操作セル22の各々は４入力、４出力を備えている。入力層において、ネットワークを通して、各セル22の二つの入力はＡベクトルのディジットと組合され、二つの入力はＢベクトルのディジットと組合される。図２に示すように、各セル22の下側の二つの入力はＡベクトルと組合され、上側の二つの入力はＢベクトルと組合される。
図２から明らかのように、各層におけるビット操作セル22の数は、最終ステージの単一操作セル22から関連した出力が得られるので７番目及びそれに続くステージは切り詰められるが、偶数と奇数との間で交互に変動し、それで切り詰めによって除かれたビット操作セルは、単一の操作セルに寄与しないので、冗長である。隣接した層におけるビット操作セル22の間の接続は、入力層は別として、各ビット操作セル22は、ビット操作セルが層のいずれの端部にあるかどうか及び層が奇数の又は偶数のセル52を備えているかどうかに関連して一つか又は二つ前の層における二つのビット操作セルからそれぞれの入力を受けるようにジグザグに配列される。
図３（ａ）及び図３（ｂ）を参照すると、これらの図面は必要な操作を行う二つの代わりの論理回路を示している。比較を容易にするため、図２におけるセル入力（ａ、ｂ、ｃ、ｄ）は図３（ａ）及び図３（ｂ）における入力（AinL、AinR、BinL、BinR）に対応し、図２における出力（Ya、Yb、Yc、Yd）は図３（ａ）における出力（AoutL、AoutR、BoutL、BoutR）に対応している。図３（ａ）において、装置はインバーター24、ANDゲート26及びORゲート28から成っている。
AoutL、AoutR、BoutL、BoutRに対する換算ブール等式は以下に記載され、ｑ、ｒ、ｓ、ｔはAinL、AinR、BinL、BinRをそれぞれ表している。ブール作用素“NOT"、“AND"、又は“OR"は！、＆、＃によってそれぞれ表される。
0003587533.tif 000004
ビット操作セル22の各々は、以下の真理値表に示すように、全シフト及び全ハミング削除を組合わせて実行し、セルへの４入力はAinL、AinR、BinL、BinRで表され、対応した出力はAoutL、AoutR、BoutL、BoutRで表され、入力及び出力の両方は同じ方向すなわち左から右へ読まれる。
0003587533.tif 000005
真理値表を考察すると、ビットセル操作は集合ビットを右方位置（AinR又はBinR）から左方位置へ、その位置のビットがすでに集合されてない場合にシフトするが、AinR、BinL間の境界を横切ってビットを移送せず、例えば（0001）は（0010）にマップされ、（0010）は変化されない。同様に、（0100）は（1000）にマップされる。さらに、削除操作が実行され、それによりA:B境界の一側における集合ビットは境界の他側における集合ビット（いずれかの位置における）を削除して、両ビットを集合させない。これは例えば次のマッピング；（0101）対（0000）；（0110）対（0000）；（1101）対（1000）；（1111）対（0000）によって例示される。また、真理値表から認められるように、16個の可能な入力状態は５個の可能な出力状態に低減される。
図３（ｂ）には、通常同じ操作を実行するが幾つかの点で異なるビット操作セルの代りの形態を示す。この装置は図示したようにANDゲート30と、ORゲート32と、インバーター34とから構成され、部分シフト及び全ハミング削除を組合わせて実行する。図３（ａ）のセルにおいては（1000）の出力を形成する図３（ｂ）のセルへの入力（1110）は代わりに出力（0100）を形成する。しかしながら、図３（ｂ）のセルはアレイに組み込まれそしてハミング値比較を達成するために使用され得る。
最絡ビット操作セルのAoutL及びBoutLビットは下記の真理値表で定義されたようにコンパレーター出力を決めるのに用いられる。AoutL及びBoutLは同時に高くはならない。
0003587533.tif 000006
コンパレーターは重み付けなしバイナリータペルを用いて説明してきたが、当然、コンパレーターはサーモメータコードで動作することが認められる。
図４は、４のハミング値をもつタペルＡ（10100110）と１のハミング値をもつＢ（00100000）との比較を示す動作例を示す。値（1100）を示す最終出力段45においてAoutLは高く、BoutLは低く、上記の真理値表で定義したようにＡのハミング値がＢのハミング値より大きいことを示している。
次に図５〜図７の実施の形態を参照すると、ビット操作セル36のアレイ及びそれらの相互接続は図2k実施例の場合と同じであるが、各セルに構成された論理は異なり、またビット操作セルの出力において実施される論理操作は異なる。ビット操作セル36の論理回路は図６に示され、六つのANDゲート38と、二つのORゲート40と、四つのインバーター42とから成り、以下に記載するように、AoutL、AoutR、BoutL、BoutRに対する比較的簡単な論理操作を行い、ｑ、ｒ、ｓ、ｔはAinL、AinR、BinL、BinRをそれぞれ表わす。ブール作用素“NOT"、“AND"及び“OR"は！、＆、＃によってそれぞれ表される。
AoutL＝ｑ＆!s＃ｒ＆!t
AoutR＝ｑ＆ｒ＆!s＆!ts
BoutL＝!q＆ｓ＃!r＆ｔ
BoutR＝!q＆!r＆ｓ＆ｔ           （等式組（２））
真理値表は下記に示され、２の偶境界にとられたタペルＡ、Ｂの二つのビットに対して真理値表は全シフトと部分ハミング削除操作とを組合わせて実行する。
0003587533.tif 000007
真理値表は、（0110）の（1010）へのマッピング及び（1001）の（1010）へのマッピングを除いて上記の実施例の場合と同じである。従って、この構成を“部分”ハミング削除操作として記載し、すなわちA:B境界のいずれかの側に対する集合ビットは、それらがシフト操作前に対応した位置にある場合に削除されるだけである。従って、例えば、（0101）及び（1010）は各々（0000）にマップするが、この実施の形態において（0110）及び（1001）は（上記の実施の形態では（0000）にマップされたが）各々（1010）にマップする。図７には、５のハミング値をもつ重み付けなしタペルＡ（11001011）と４のハミング値をもつタペルＢ（00111100）とを比較する動作例を示す。操作セル57の最終段65において、AoutLにおけるビットの集合は、Ａのハミング値がＢのハミング値より大きいことを表している。AoutL及びBoutLからハミング値関係を導出する論理表は下記の表に示される。
0003587533.tif 000008
この比較はサーモメータコードでも行えることが認められるべきである。
必要なセルの数及び層の数は比較すべき語の幅に依存し、そして全ての入力状態に大して安定した出力をもたらすように経験的に決められ得る。
必要ならば、装置は異なる長さのタペルを処理するために大きくされたり又は小さくされ得、或いは必要ならば０でパッドされ得る。
本発明は、また、異なったビット操作セルを用いて又は図示した項目のド・モルガン等価を使用して同じ機能を達成するアレイにも及ぶ。また、装置は反転論理及びド・モルガン等価を使用し得ることが認められるべきである。さらに、本発明は適当な比較及び結合段によって二つ以上のバイナリータペルを比較できるように拡張され得る。例えば三つのタペルＡ、Ｂ、Ｃは比較A:B、A:C及びB:Cを行い、そしてタペルＡ、Ｂ、Ｃを順序付けすることによって比較され得、比較の結果を得るようにする。
図２〜図７のハミング値コンパレーターは、サーモメータに前もって変換する必要なしに、二つのバイナリータペルのハミング値関係を決めるのに各タペルからの二つのビットに作用する２×２ビット操作セルのアレイの使用を包含している。これらの原理はまた、変更され、そして２以上のビットで動作するビット操作セル（以下ｎビットセルと記載する）を使用する装置に応用され得る。ｎビットセルを使用するシステムの包括的な技法については以下に説明し、一例は２×４ビットセルに対して与えられる。
一般的な原理は、ハミング値比較用の二つの重み付けなしストリング（Ａ、Ｂ）がｎタペル（ｎ＝２、３、４が適当である）に分けられる。ｎの大きな値は理論的には可能であるが、構成するのが繁雑となる。バイナリーストリングの長さがｎで割れない場合には、ストリングは付加的な０でパッドされる。入力層及び奇数層において、タペルは偶数境界に分割され、一方偶数層においてはタペルは奇数境界に分割される。このジグザグ配列した効果は、連続した層おいて偶数及び奇数境界を横切って集合ビットを漸進的に移動できることにある。各タペル内のビット位置、実際に各バイナリーストリング内のタペルの順序は、ビットが重み付きなしであるので、関係ない。Ａ及びＢから成るｎタペルはサーモメータコード変換を行う第１の段階をもつ細胞格子構造に供給され、第１の段階の後にはハミング削除を行う第２の段階が続く。各タペルは出願中の英国特許出願第9726752.0号又はPCT/GB98/03834（WO99/33184）に記載されたようなブールマッピングを用いてサーモメータコードに変換される。
従って、２ビットセルの場合、図１〜図３の装置は格子構造において２ビットセルを使用しているが、３、４などのビットを使用する同様な構造を設けることもできる。
上記で述べたように、２ビットセルの場合、操作等式は
Ya＝ａ＃ｂ
Yb＝ａ＆ｂ                      （等式組（３））
であり、ここで＃はOR関数であり、＆はAND関数であり、ａ、ｂは入力であり、Ya、Ybは対応した出力である。
入力ａ、ｂ、ｃ及び出力Ya、Yb、Ycをもつ３ビットセルの場合、操作等式は
Ya＝ａ＃ｂ＃ｃ
Yb＝（ｂ＆ｃ）＃（ａ＆ｃ）＃（ａ＆ｂ）
Yc＝ａ＆ｂ＆ｃ                    （等式組（４））
同様に、入力ａ、ｂ、ｃ、ｃ及び出力Ya、Yb、Yc、Ydをもつ４ビットセルの場合、操作等式は
Ya＝ａ＃ｂ＃ｃ＃ｄ
Yb＝(b&c)#(d&b)#(d&a)#(c&b)#(c&a)#(b&a)
Yc＝(d&c&b)#(d&c&a)#(d&b&a)#(c&b&a)
Yd＝ａ＆ｂ＆ｃ＆ｄ              （等式組（５））
第２の段階において、タペルＡ、Ｂのそれぞれのビット位置に集合したビットはハミング削除と記載したプロセスによって削除される。従って、サーモメータコードタペルＡ、Ｂ（1100）（1000）はそれぞれ（0100）、（0000）となる。各ビット位置においてハミング削除を行うブール等式はＡタペルについてはYa＝ａ＆!b、ＢタペルについてはYb＝ｂ＆!aである。ｎ＝２、ｎ＝４の場合について完全なセルの例が与えられ、図８にはデュアル２入力構造（図３（ｂ）の構造と同じ）を示し、また図９にはデュアル４入力構造を示す。
図８及び図９を考察することにより、各構造44、46はそれぞれAND及びORゲートの第１の段48、50を備えている。構造44、46は、またサーモメータコードへの変換を行うインバーター及びハミング削除を行う第２の段52、45を備えている。第２の段52、54の各々は類似しており、この点に関して図１のアレイ12、14の類似性は明らかである。同様に、英国特許出願第9726752.0号又はPCT/GB98/03834（WO99/33184）のサーモメータコード変換構造に対する２入力構造及び４入力構造の第１の段の類似性も認められる。ビットセル操作装置の格子構造はブールプロセスを並列に行うように形成される。図10には、二つの12ビット語Ａ（ビットa0・・・・・・・・・・・・a11から成っている）、Ｂ（ビットb0・・・・・・・・・・・・b11から成っている）のハミング値を比較するため、図９に示された形式の２×４ビット操作セル56のアレイから成るハミング値コンパレーターの一例を示す。このアレイにおいて、入力及び出力は図９の場合のように90゜ではなく一線状になるように配列し直されるが、論理操作は変わらない。前に述べたように、構造はビット操作セル56の奇数層と偶数層とを交互に備えており、隣接した層におけるセルはずれたり重なったりするようにジグザグに配列され、集合ビットが必要に応じてアレイを通って移動するのを保証している。アレイは上記のように切り詰められ、最終セルからの出力のそれぞれ二つは最終段デコーダー58で互いに論理和処理される。“A"で記された出力ではなく“B"で記された出力にビットが集合されると、Ｂのハミング値はＡのハミング値より大きい。“B"で記された出力にではなく“A"で記された出力にビットが集合されると、Ｂのハミング値はＡのハミング値より小さい。“A"、“B"で記された出力におけるビットが同じである場合にはＡ、Ｂのハミング値は同じである。従って、デコーダー58において、OR、EX−NOR及びANDゲート60、62、64及びインバーター66は、デコーダー58の出力Ａ＜Ｂ、Ａ＞Ｂ又はＡ＝Ｂの一つに適当なビットを集合する。図11は図10の回路の動作例であり、二つの12ビットバイナリータペル（111011000000）及び（000000111111）がそれぞれ比較され、正しい結果が決められる。
また、コンパレーターを、ストリングの中心に向かってシフトし比較するように設計することも可能である。この設計では、より高速となり、また使用する論理手段も少なくなる。次に、図12〜図14を参照すると、各バイナリータペル（この場合各々８ビット）から２ビットを取り、そしてシフト及び削除操作を行う２×２ビット操作セルのアレイを用いるハミング値コンパレーターの実施の形態が例示されている。この装置において、ビットはタペルの一端よりむしろ中央に向かってシフトされる。最初の２ビット操作セルとの類似性は明らかである。図13に示されるものから認められるように、アレイは、奇数シフトセル68、偶数シフトセル70としてそれぞれ表された多数のセル及びハミング削除ブロック72から成っている。奇数シフトセル68及び偶数シフトセル70はアレイの中央線に対して対称的に配置され、まアレイの中央線の下方のシフトセルは上向きにシフトし、アレイの中央線の上方のシフトセルは下向きにシフトする。ハミング削除ブロック72はアレイの中央線上に配置され、２×２ビットのブロックとして４ビットで動作するつ特殊な操作セルであり、そして図示したように反転した選択入力をもつANDゲートで構成されている。ハミング削除ブロック72は垂直段74及び交叉段76を有し、これらの段はいずれの順序でもよい。図12又は図14の概略表示を参照すると、下記の操作が行われ、アレイの入力及び出力はセルの下から上へ（A1、A2、B1、B2）で表され、A1及びB1が１である場合、それらは両方とも０となる（垂直）。
A2及びB2が１である場合、それらは両方とも０となる（垂直）。
A1及びB2が１である場合、それらは両方とも０となる（交叉）。
A2及びB1が１である場合、それらは両方とも０となる（交叉）。
他の全ての値は真っ直ぐに進む。
最終ハミング削除ブロックから受けた値からＡ＞Ｂ、Ａ＜Ｂ及びＡ＝Ｂを得るためにバックエンドデコーダー78が必要とされ、これの論理回路は図12及び図14に示されている平面ハミング値コンパレーター。
次に図15〜図19を参照すると、平面ハミング値比較用のブール格子構造が示されている。図１〜図14を参照して上記で説明してきた装置は、二つの一次元ストリングから選択したビットで全体シフト又は部分シフト及び全体又は部分ビット削除操作を行う操作セルのアレイを用いて種々の語長の重み付けなしバイナリービットの一次元ストリングのハミング値比較を行っている。この技法は二つの等しい寸法の方形重み付けなしアレイのハミング値関係を比較する装置を提供するために開発された。
図15を参照すると、平面ハミング値装置は奇数層80と偶数層82とを交互に配置して構成される。この例における各層は６×６ビットの第１のビットアレイ（９組の文字（Ａ、Ｂ、Ｃ、Ｄ）及び座標R1〜R6及びC1〜C6で特定される）及び第２のビットアレイ（９組の文字（ａ、ｂ、ｃ、ｄ）及び座標r1〜rR6及びc1〜c6で特定される）を処理する。各層は図示したように集合ゼットを上瑞左側角へ向かってシフトする。また各層は一次元アレイの場合に行ったものと類似した、アレイ間のハミング削除を行い、以下に例示されるように、連続した層において、ビットはアレイの上端左側角へシフトされ、ハミング削除が行われる。こうして結局、最終層において、出力の単一ビットは二つのアレイのハミング値関係を表している。
各層は、頂部左側から底部右側へのびる対角線に対して対称であり、この対角線上及び対角線より上方のセルは、
0003587533.tif 000009
であり、また対角線より下方のセルは
0003587533.tif 000010
であることが認識されるべきである。
最初の層80において、入力の各６×６アレイは９個の２×２タペルに分けられる。一方の入力アレイに対して、９個のタペルが設けられ、各タペルは｛ａ、ｂ、ｃ、ｄ｝（ａ、ｂ、ｃ、ｄは通常タペル間で同じでないが）で特定され、また他方のアレイに対しては９個のタペル｛Ａ、Ｂ、Ｃ、Ｄ｝が設けられる。
最初の層において、入力アレイの同じ部分からの二組の２×２タペルは同心配列で示されるように結合される。従って、各タペル位置において中心のタペル｛ａ、ｂ、ｃ、ｄ｝及びそのまわりのタペル｛Ａ、Ｂ、Ｃ、Ｄ｝は一緒に処理され、事実上、最初の層80は９個の８ビット操作セル84のアレイで構成される。８ビット操作セル84は図17に示され、容易に理解できるようにするため大文字小文字でタペルを特定するように符号を変えている点を除いて図９に示すものと同じである。８ビット操作セルは、二つのタペル｛ａ、ｂ、ｃ、ｄ｝及び｛Ａ、Ｂ、Ｃ、Ｄ｝を受け、シフト及び削除操作を実行し、そして結果をタペル｛Ya、Yb、Yc、Yd｝及び｛YA、YB、YC、YD｝として出力する。他の全ての奇数層について同じ操作が実行される。
第２の偶数層82においては、四角に、オフセット、オーバーラップ及びフィードスルー86が存在する。必要なオフセット及びオーバーラップを達成するために、この例では、偶数層は、頂部左側から底部右側への対角線に対して対称にかつ中心に集められた奇数層で使用した形式の四つの８ビット操作セル84と、周囲に離間して配列した８個の周囲４ビット操作セル88と、角部の８個のフィールドスルー86とで構成されいる。偶数層における４ビット操作セルは二つのタペル｛Ａ、Ｂ｝及び｛ａ、ｂ｝において動作し、等式組（１）で説明したようなシフト及びハミング削除を行う。図に16には、｛Ａ、Ｂ｝及び｛ａ、ｂ｝入力タペル及び｛YA、YB｝及び｛Ya、Yb｝出力タペルをそれぞれ示した図３及び図８の論理回路を示している。
従って、奇数層における座標（Cm、Rn）をもつビットは偶数層における座標（Cm、Rn）にマップされ、また奇数層における座標（cm、rn）をもつビットは偶数層における座標（cm、rn）にマップされる。こうして例えば、座標（C6、R1）、（c6、r1）をもつ第１の層の頂部右側の出力は図17に示すようにそれぞれYC、Ycである。第２の層におけるこれらの座標の素子はフィードスルー86であり、YC、Ycは第２の層を変化せずに通過し、第３の層における頂部右側の操作セル84に対する“C"、“c"入力を形成する。他の第１の層出力の第２の後続の層入力へのマッピングは同様にして容易に決められ得る。
図18及び図19は、それぞれ二組の６×６入力に対しで上記した６×６平面ハミング値構造の動作例を示す。図18においては出力は五つの層の後に安定し、一方図19においては六つの層の後に安定した出力が達成される。
図18において、入力のマイナーアレイ（すなわち図15の小文字アレイ）は18のハミング値をもち、一方、入力の外方アレイ（すなわち図15の大文字アレイ）は14のハミング値をもつ。各層の出力は、各アレイについて削除から得られるそれぞれのハミング値と共に示されている。アレイの出力は、位置（C1、R1）及び（c1、１）におけるビットをモニターすることにより読み取られる。大文字アレイのハミング値が大きい場合には、最終層の出力において位置（C1、R1）におけるビットは集合される（図19（ｂ）の場合のように）。小文字アレイのハミング値が大きい場合には、位置（c1、r1）におけるビットは集合される（図18の場合のように）。両方の位置におけるビットが同じである場合には、両方のアレイのハミング値は同じであることを表している。
図15〜図17には、ビットの二つの６×６アレイで動作するセル層構造の一例を示している。しかしながら、同じ包括的な原理を用いてより少数の又は多数のアレイに対する構造構築することができる。必要ならば、この例で使用した８ビットブロックの代わりに、より大きな動作ブロックが用いられ得る。
統合したコード形成及び平面ハミング値構造に関して上記した技法は三次元以上のアレイ（立体及び超平面系）を構成するために二次元アレイを越えて拡張され得ることが認識されるべきである。上記のハミング値コンパレーターは、既存の及び新規の重み付けなしニューラルネットワークにおいて和及び閾値（SAT）機能を実行するのに用いられ得る。図20に示すように、ニューラルデータのタペル及びニューラル閾値を画定するタペルは、一次元、二次元又はそれ以上の次元であるかどうかに応じて、上記した形式の一つのハミング値コンパレーター90に供給され得る。そしてコンパレーターの関連した出力は、ニューラルデータがニューラル閾値を越えたことを表す出力にビットが集合されるかどうかをみるためチェックされる。そして関連した出力は、ビットが集合された時に“発火”されることになるニューロンの単一出力として見做される。当然、他の出力の一つは、ニューロンが別の条件に応答するようにされた場合にモニターされ得る。
【図１】
0003587533.tif 000013
【図２】
0003587533.tif 000014
【図３（ａ）】
0003587533.tif 000015
【図３（ｂ）】
0003587533.tif 000016
【図４】
0003587533.tif 000017
【図５】
0003587533.tif 000018
【図６】
0003587533.tif 000019
【図７】
0003587533.tif 000020
【図８】
0003587533.tif 000021
【図９】
0003587533.tif 000022
【図１０】
0003587533.tif 000023
【図１１】
0003587533.tif 000024
【図１２】
0003587533.tif 000025
【図１３】
0003587533.tif 000026
【図１４】
0003587533.tif 000027
【図１５】
0003587533.tif 000028
【図１６】
0003587533.tif 000029
【図１７】
0003587533.tif 000030
【図１８】
0003587533.tif 000031
【図１９（ａ）】
0003587533.tif 000032
【図１９（ｂ）】
0003587533.tif 000033
【図２０】
0003587533.tif 000034