JP3587533B2 - ハミング値の決定及び比較 - Google Patents
ハミング値の決定及び比較 Download PDFInfo
- Publication number
- JP3587533B2 JP3587533B2 JP53347899A JP53347899A JP3587533B2 JP 3587533 B2 JP3587533 B2 JP 3587533B2 JP 53347899 A JP53347899 A JP 53347899A JP 53347899 A JP53347899 A JP 53347899A JP 3587533 B2 JP3587533 B2 JP 3587533B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- hamming
- bits
- array
- cells
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000003491 array Methods 0.000 claims description 37
- 230000008030 elimination Effects 0.000 claims description 20
- 238000003379 elimination reaction Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 19
- 230000036961 partial effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 6
- 230000037430 deletion Effects 0.000 claims description 6
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 claims 2
- 239000011324 bead Substances 0.000 claims 1
- 238000005219 brazing Methods 0.000 claims 1
- 238000011156 evaluation Methods 0.000 claims 1
- 230000007704 transition Effects 0.000 claims 1
- 210000004027 cell Anatomy 0.000 description 101
- 239000013598 vector Substances 0.000 description 27
- 238000010586 diagram Methods 0.000 description 17
- 238000013528 artificial neural network Methods 0.000 description 9
- 230000001537 neural effect Effects 0.000 description 6
- 210000002569 neuron Anatomy 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 210000000225 synapse Anatomy 0.000 description 4
- RZVHIXYEVGDQDX-UHFFFAOYSA-N 9,10-anthraquinone Chemical compound C1=CC=C2C(=O)C3=CC=CC=C3C(=O)C2=C1 RZVHIXYEVGDQDX-UHFFFAOYSA-N 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000000946 synaptic effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000010420 art technique Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/20—Image enhancement or restoration using local operators
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/751—Comparing pixel values or logical combinations thereof, or feature values having positional relevance, e.g. template matching
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/16—Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/14—Conversion to or from non-weighted codes
- H03M7/16—Conversion to or from unit-distance codes, e.g. Gray code, reflected binary code
- H03M7/165—Conversion to or from thermometric code
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- Pure & Applied Mathematics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Neurology (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Error Detection And Correction (AREA)
Description
本発明は一般的にはバイナリーベクトル又はアレイのハミング値を決定する方法及び装置に関するものであり、一層特に排他的意味ではないが、一組の重みなしビット(以下重みなしタプル又は重みなしベクトルと記載する)のハミング値関係を決定するのに使用する方法及び装置に関する。本発明はまた、二つのサーモメータコード又は重みなしベクトルのハミング値関係を決定する方法及び装置に関するものである。さらに本発明はデータの二つの二次元アレイのハミング値関係を比較するハミング値コンパレーターも包含する。さらにまた、本発明は、本発明のハミング値コンパレーターを使用した和及び閾値装置も包含する。
背景技術
ここで述べる装置及び方法は、出願中の英国特許出願第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)に開示された装置又は方法のいずれかと有利に結合され、又はそれに利用され得、これらの内容は本明細書に参照として結合される。
用語
用語“ハミング値”は、2進数、タプル、ベクトルのような一次元アレイ又は二次元以上のアレイにおける論理1のセットの数を画定するのに用いられる。二つの2進数又はアレイのハミング値関係はどちらが大きいハミング値をもつか又はハミング値が同じであるかどうかを表す。
用語“重み付けバイナリー”は、他の重み付け表示が可能であるが、連続したビットポジションが重み付けされること、特に16、8、4、2、1を表するために普通の意味で使用する。“重み付けなしバイナリー”は二進ディジット1、0の集合であり、各々それぞれ“1"及び“0"を表している。最小桁のビット(LSB)又は最大桁のビット(MSB)はない。ビットの集合は順序が定められているか又は定められてなくてもよい。全ての1が互いに群にされる場合、例えば[111000]、コードはサーモメータコード、サーモコード又はバーグラフコードと呼ばれ、本明細書ではこれらをまとめて“サーモメータコード”と記載する。
用語サーモメータコードは、またタプルの両端の一方に向う集約というよりはむしろ集合ビットがタプル内に存在するビットを囲んで集約されるアレイを説明するのにも用いられる。同様にこの用語は、アレイ内の任意の場所であり得る存在するフォーカルビットポジションを囲んで、例えば二次元又は三次元アレイの場合一つの角部又は中心部に集合ビットがクラスタ又は集約される二次元、三次元又はより高次元のアレイを説明するのにも用いられる。
重み付けなしビットの集合は、“重み付けなしタプル”又は“重み付けなしベクトル”と記載し、これらの用語は順序の定められた集合に限定されるものではない。
典型的なニューラルネットワークにおいては、実数値シナプス値はシナプス接続長さ又は重み値で掛け算され、そして他の同様に処理したシナプスと加算してから、全て加算され、閾値が定められてニューラル出力を形成する。重み値は実数値シナプス接続長さであり、用語“重み付けされたニューラルネットワーク”を使用する。しかしながら、実数値接続重み付けを用いずに0か1であるバイナリービットの値に依存するバイナリーRAMに基くニューラルネットワークを設けることもできる。従って、重み付けなしには、シナプス接続長さなしとバイナリーコード重み付けなしとの二つの脈絡が存在する。上記の構成は重み付けなしバイナリー操作機構を使用し、そして重み付けなし−重み付けなし人工ニューラルネットワークとして記載する重み付けなし人工ニューラルネットワークを設計するのに用いられ得る。
一つの脈絡において、本発明は二つの重み付けなしのベクトルをそれらのハミング値に関して比較することに関係する。このプロセスは広義にはバイナリーニューロンの機能と等価である。ニューロンが重み付けなしのシナプス値(例えば[10110010])のベクトルA及び重み付けなしのニューラル閾値(例えば[00101000])のベクトルTを受ける場合、ニューロンは、Aのハミング値がTのハミング値より大きい時に発火するように要求される。この例で、閾値Tは、ニューロンの発火(fire)されることになる場合に越えられなければならない抑止シナプス値の集合として考えられ得る。これは、二つのバイナリーベクトル間のハミング値関係を決めるのに必要である場合の一つの特殊な例であるがねこの処理又は同様な処理を必要とする非常に多くの他の形式のシステムが存在する。例えば、ここで説明するこの比較及びその他の技術は、飛行制御システム、冗長度をもつ投票システム、安全臨界システム、通信システム、意思決定システム及びニューラルネットワークのような人工知能システムに使用され得る。
先行技術の構成においては、1の集合の数を計数するのに状態マシンに基くシステムが使用され、またバイナリー比較にはデジタル演算ユニットが使用される。各重み付けなしのベクトルについて、各ビットは順次走査され、従ってカウンター又は演算レジスターはハミング値を評価するように増加される。その後、それぞれのカウンターは演算レジスターの内容は比較され、ハミング値関係を決定する。この先行技術による技法はマイクロプロセッサや同様な状態マシンを用いてソフトウエアを実行するのに適している。
しかしながら、この技法は、主としてクロック、カウンター及びマイクロプロセッサに関連しているので、遅くしかもコンダクティブ及びエミッシブ高周波干渉(RFI)を受け易い。動作速度及び他のノイズによる崩壊又は誠実さの低下に対する鋭敏さの両方により、そのようなシステムは飛行制御システムのような安全臨界システムには不適当である。例として、飛行制御システムでは、幾つかの変換器の瞬時的な“ハイ”又は“ロー”状態に基いて迅速に決定して航空機動作の種々の特徴を報告する必要があり得る。決定を行うプロセスに対する入力の一つの崩壊(ノイズやRFI崩壊によって生じる)によって入力の一つの誤解釈が生じ、その結果、決定を行うプロセッサ又はニューラルネットワークは潜在的に不幸な結果をもたらす間違った決定を行うことになる。
英国特許第1,588,535号には、ファイル語を一度に一回検索し、ファイル語と検索語との間のハミング距離を測定する装置が開示されている。ハミング距離(すなわち二つの語の異なるビットの数)は、典型的には二つのバイナリーベクトル又はタペルのどちらかが最大数の論理1の集合をもっているかを決めるハミング値比較と全く異なることが認められる。
従って、ここに開示されているものは、小さな重み付けなしシステムに対しては非常に速い非同期ブール論理ビットセル操作体系を用いる二つのバイナリーベクトルのハミング値関係を決める種々の機構である。さらに、これらは重み付けしたバイナリーオルターネイティブよりRFIに対して弾力性がありしかも故障許容が大きい傾向がある。
最初に述べた構成では、二つの重み付けなしのバイナリーベクトルはまず別個にサーモメータコードに変換され、その後、サーモメータコードは、サーモコードコンパレーターで比較され、ハミング値関係を決める。
二つの後に続く関連した体系において、二つの重み付けなしベクトルは、サーモメータコードへの別個の変換及びその後の比較を必要とせずに並列に比較される。しかしながら、サーモメータコード変換器及びサーモコードコンパレーターは各々種々の応用に使用でき、本発明はこれら白体に及ぶ。
本発明の一つの特徴によれば、二つの一次元以上のビットアレイのハミング値関係を決めるためにシフト操作及びビット削除操作の少なくとも一方を実行する一つ以上のビット操作セル又は論理素子に上記アレイを加える手段を有する、二つの一次元以上のビットアレイのハミング値関係を決めるハミング値コンパレーターが提供される。
本発明はまた、各々多数の入力と多数の出力をもつ多数のビット操作セル層を備えたプロセッシング手段と、相応したビットを二つのバイナリーアレイの各々から上記プロセッシング手段の第1の層のビット操作セルのそれぞれの入力に送る入力手段とを有し、ビット操作セルが最後の層から離れた各層の出力を次の層又は次の一つの層のそれぞれの入力に送ることによって相互接続され、それによりハミング値関係を表す出力を発生するように構成した二つのバイナリーアレイのハミング値関係を決定するハミング値コンパレーターを提供する。
コンパレーターは特に、重み付けなしのアレイ又は語に対して使用するようにされるが、重み付けしたアレイ又は語に対しての使用も除外するものではない。
各ビット操作セルは、四つの入力と四つの出力とを含むことができ、第1の層におけるビット操作セルは、各ビット操作セルについて二つの入力が各々バイナリーアレイの一方からそれぞれのビットを受け、他の二つの入力が各々他方のバイナリーアレイからそれぞれのビットを受けるように構成される。
第1の層におけるビット操作セルの上記二つの入力の各々は、好ましくは、イーブン境界上の相応したバイナリーアレイの隣接したビットを受ける。各ビット操作セルは好ましくは、それぞれの入力で受けた上記第1及び第2のバイナリーアレイからのビットにおける操作を実行し、それにより集合ビットは共通の方向にシフトされ、そして相応して位置決めされた集合ビットは全部又は一部削除される。従って、上記ビット操作セルの各々は以下の真理値表に示したようにシフト及び全削除(又はそれの逆)を行い得る。
ここでAinL、AinR、BinL、BinRはセルへの四つの入力であり、AoutL、AoutR、BoutL、BoutRは四つの出力である。
代りに、上記ビット操作セルの各々は、以下の真理値表に示したようにシフト及び部分削除又はそれの逆を行い得る。
好ましくは、各ビット操作セルは上記バイナリー語の一方からそれぞれのビットを受ける第1の多数の入力と、上記バイナリー語の他方からそれぞれのビットを受ける第2の多数の入力と、相応した多数の出力と、上記第1の多数の入力におけるビットのハミング値が上記第2の多数の入力におけるビットのハミング値より大きい場合に上記出力のそれぞれ予め選択した出力に集合ビットを出力する論理手段とを有する。
別の特徴によれば、本発明は、上記バイナリーアレイの一方からそれぞれのビットを受ける第1の多数の入力と、上記バイナリーアレイの他方からそれぞれのビットを受ける第2の多数の入力とを備えたビット操作セルを有し、上記ビット操作セルが相応した多数の出力を備え、また上記第1の多数の入力に集合したビットのハミング値が上記第2の多数の入力に集合したビットのハミング値より大きい場合に上記出力のそれぞれ予め選択した出力に集合ビットを出力する論理手段を有する、二つの一次元以上のバイナリーアレイのハミング値関係を決めるハミング値コンパレーターを提供する。
別の特徴によれば、本発明は、操作セルの多数の交互の層を有し、上記層の一つが予め設定した位置に向って入力アレイにおける集合ビットをシフトする多数の第1のビット操作セルを備え、上記層のその他の層が上記各アレイにおける相応した集合ビットを削除するハミング削除セルと共に、上記多数の第1のビット操作セルを備えている、二つの一次元以上のバイナリーアレイを比較するハミング値コンパレーターを提供する。
本発明のさらに別の特徴によれば、本発明は、多数のビット操作セルの層を有し、各セルが少なくとも二つの入力と二つの出力を備え、そして予め設定したビット位置に向って集合ビットをシフトするようにされかつ層間に相互に接続され、それにより上記アレイのハミング値関係を表す出力を得るように構成した、バイナリーデータの二つの二次元アレイのハミング値を比較するプレーナーハミング値コンパレーターを提供する。
別の特徴によれば、本発明は、二つのサーモメータコードのビット位置に相応した論理素子のアレイを有し、各論理素子がそれぞれのビット位置における二つのサーモメータコードからビットを受け、そしてサーモメータコードのビットを比較し、アレイが上記サーモメータコードのハミング値関係を表す出力を供給するように構成した二つのサーモメータコードのハミング値関係を決めるハミング値コンパレーターを提供する。
従って、上記論理素子のアレイは、サーモメータコードのどちらか一方が他方のサーモメータコードの相応したビット集合されない位置にビットの集合を備えているかどうかを表す出力を供給し得る。この場合に、コンパレーターは、好ましくは、他方のサーモメータコードが一方のサーモメータコードの相応したビット集合されない位置にビットの集合を備えているかどうかを表す出力を供給する論理素子の別のアレイを備えている。
論理素子の各アレイは、サーモメータコードのそれぞれの位置における相応したビットが供給される二つの入力を各々備えたゲートのアレイから成り得る。上記ゲートの各々は、一方の入力が反転された即ちド・モルガン等価であるANDゲートから成り得る。
本発明はまた、二つのサーモメータコードを論理素子のアレイに供給して各ビット位置において上記サーモメータコードのそれぞれのビットを比較しそれによりハミング値関係を決めることから成る、二つのサーモメータコードのハミング値関係を決る方法を提供する。
本発明はまた、各ビット位置において削除機能を実行し、各ビット位置においてサーモメータコードの相応したビットを比較して両ビットが集合される場合には分散し、そしていずれのコードが上記削除機能の実行後にビットの集合をもつかに基いてハミング値関係を決める、二つのサーモメータコードのハミング値関係を決める方法を提供する。
この動作の逆も達成され得ることが認められる。
本発明について説明してきたが、本発明は上記の説明又は以下の説明においてなされる特徴の全ての進歩的組合せに及ぶものである。
本発明は種々の仕方で実施され得、単に例として以下論理ゲートの普通の符号を用いている添付図面を参照して本発明の種々の実施の形態について詳細に説明する。
【図面の簡単な説明】
図1は、二つのサーモメータコードのハミング値関係を決める本発明のハミング値コンパレーターの一つの実施の形態を示す回路線図である。
図2は、二つの重み付けなしバイナリーベクトルのハミング値関係を決める本発明による重み付けなしバイナリーコンパレーターの一つの実施の形態を示す回路線図である。
図3(a)及び図3(b)は図2の重み付けなしバイナリーコンパレーターに用いられるビット操作セルの二つの回路線図であり、一方のビット操作セルは全体シフト及び全体ハミング削除を実行するためのものであり、他方のビット操作セルは部分シフト及び部分ハミング削除を実行するためのものである。
図4は二つの典型的な重み付けなしバイナリーベクトルの入力に応答してビット操作セルの入力及び出力に集合したビットを示している図2の重み付けなしバイナリーコンパレーターの動作例を示す図である。
図5は二つのバイナリーベクトルのハミング値関係を決める本発明による重み付けなしバイナリーコンパレーターの第2の実施の形態を示す回路線図である。
図6は全体シフト及び部分的ハミング削除を行う図5の重み付けなしバイナリーコンパレーターのビット操作セルの一つの回路線図である。
図7は二つの典型的な重み付けなしバイナリーベクトルの入力に応答してビット操作セルの入力及び出力に集合したビットを示している図5の重み付けなしバイナリーコンパレーターの動作例を示す図である。
図8はシフト及びハミング削除を行う2×2ビット操作セルの回路線図である。
図9はシフト及びハミング削除を行う2×4ビット操作セルの回路線図である。
図10は二つの12ビットの重み付けなし入力を比較するハミング値コンパレーターを構成する図9のビット操作セルのアレイを示す回路線図である。
図11は図10のアレイの動作例を示す図である。
図12は二つの8ビットの重み付けなし入力を比較するハミング値コンパレーターの別の実施の形態を示す図である。
図13は図12の一部分の構造を説明する拡大図である。
図14は図12の実施の形態で使用したバックエンドデコーダーの拡大図である。
図15は奇偶層及び平面ハミング値コンパレーター構造の一実施の形態に使用したセル番号識別を表す線図である。
図16は図15の平面ハミング値コンパレーター構造の実施の形態に使用した2×2ビット操作セルを示す線図である。
図17は図15の平面ハミング値コンパレーターの実施の形態に使用した2×4ビット操作セルを示す線図である。
図18及び図19は図15の平面ハミング値コンパレーターの動作例を示す図である。
図20はハミング値コンパレーターで構成され得る和及び閾値(SAT)を示す線図である。
発明を実施するための最良の形態
サーモメータモードのハミング値コンパレーターさて図1を参照すると、図示したハミング値コンパレーターは、第1のサーモメータコードA(A1、A2、・・・・・・・・・・・・・・・A8)のハミング値(すなわち論理1の集合の数)が第2のサーモメータコードB(B1、B2、・・・・・・・・・・・・・・・B8)のハミング値により大きい時に、A>B出力が高く集合される特性をもつように要求される。同様に、第1のサーモメータコードAが第2のサーモメータコードBのハミング値により小さい時には、A<B出力は高く集合され、また第1、第2のサーモメータコードのハミング値が同じである時にはA=B出力が高く集合される。
コンパレーター10はANDゲート16の第1、第2の同様なアレイ12、14を有している。第1のアレイ12において、各サーモメータコード(A1、A2、A3、A4、A5、A6、A7、A8)及び(B1、B2、B3、B4、B5、B6、B7、B8)からの相応したビットは相応した数のANDゲート16に供給され、AビットはANDゲート16の反転端子に供給され、BはANDゲート16の非反転端子に供給される。ANDゲート16の出力は三つのORゲート18によって論理和される。第1のアレイ12の検査により、ベクトルの任意の特定のビット位置においてAビットが0で、Bビットが1である場合にORゲート18からの出力は高いことが示される。図示例ではこれは当てはまらない。バイナリー入力ベクトルB、Aが両方ともサーモメータコードであると、第1のアレイ12の最終ORゲート18からの“高い”出力は、Bのハミング値がAのハミング値より大きいことを表している。
第2のアレイ14は、B、A入力が逆である点を除いて第1のアレイ12の場合と同様である。ANDゲート16の出力は前述のように三つのORゲート18によって論理和される。最終ORゲート18からの“高い”出力は、サーモメータコードAのハミング値がサーモメータコードBのハミング値より大きい場合に高い。第1、第2の両アレイ12、14からのそれぞれの出力ORゲート18の出力は反転されそしてANDゲート20に供給される。従って、出力A>Bは、Aのハミング値がBのハミング値より大きい場合に高くなり、出力A=Bは、両ハミング値が等しい場合に高くなり、また出力A<Bは、Aのハミング値がBのハミング値より小さい場合に高くなる。
この構成は超高速並列装置を提供する。この例は8ビットの語長を示しているが、アーキテクチャーは必要により他の語長を処理するように拡張できる。アーキテクチャーはまた状態マシン内に一体化され得又はビットスライスコンピュータ又はマイクロプロセッサ内の動作として一体化され得る。コンパレーターは、人工重み付けニューラルネットワークにおける閾値関数として使用され得、またボーティング/大多数論理システムに適合され、そしてデジタル通信システム内に多くの応用が可能である。コンパレーターは図示したように状態マシン、従来のマイクロプロセッサ又は重み付けしたバイナリーカウンタに基づく代わりのものより相当速い。
重み付けなしタペル用のハミング値コンパレーター図1の実施の形態では、入力A、Bはサーモメータコードである必要がある。
しばしばそうでない場合があり、一般にはこの実施例は、二つのNタペル重み付けなしベクトルのハミング値関係を決めるのに2ステージプロセスを必要とし、これらのベクトルは(例えば、出願中の英国特許出願第9726752.0号又はPCT/GB98/03834(WO99/33184)に記載されたサーモメータコードコンパレーターを用いて)まずサーモメータコードに変換する必要がある。その後、サーモメータコードのハミング値は比較されて必要な出力を形成する。
次に、図2〜図7の実施の形態を参照すると、二つのNタペル重み付けなしベクトルのハミング値関係は単一コンパレーターを用いて決められる。両実施の形態において、4入力、4出力モジュラービット操作セルは、NタペルA、Bの各々の二つの素子を動作させるように画定され、また操作セルは、必要な比較を並列に実行するアーキテクチャーに構成される。まず最初に図2及び図3の実施の形態を参照すると、ビット操作セル22の各々は4入力、4出力を備えている。入力層において、ネットワークを通して、各セル22の二つの入力はAベクトルのディジットと組合され、二つの入力はBベクトルのディジットと組合される。図2に示すように、各セル22の下側の二つの入力はAベクトルと組合され、上側の二つの入力はBベクトルと組合される。
図2から明らかのように、各層におけるビット操作セル22の数は、最終ステージの単一操作セル22から関連した出力が得られるので7番目及びそれに続くステージは切り詰められるが、偶数と奇数との間で交互に変動し、それで切り詰めによって除かれたビット操作セルは、単一の操作セルに寄与しないので、冗長である。隣接した層におけるビット操作セル22の間の接続は、入力層は別として、各ビット操作セル22は、ビット操作セルが層のいずれの端部にあるかどうか及び層が奇数の又は偶数のセル52を備えているかどうかに関連して一つか又は二つ前の層における二つのビット操作セルからそれぞれの入力を受けるようにジグザグに配列される。
図3(a)及び図3(b)を参照すると、これらの図面は必要な操作を行う二つの代わりの論理回路を示している。比較を容易にするため、図2におけるセル入力(a、b、c、d)は図3(a)及び図3(b)における入力(AinL、AinR、BinL、BinR)に対応し、図2における出力(Ya、Yb、Yc、Yd)は図3(a)における出力(AoutL、AoutR、BoutL、BoutR)に対応している。図3(a)において、装置はインバーター24、ANDゲート26及びORゲート28から成っている。
AoutL、AoutR、BoutL、BoutRに対する換算ブール等式は以下に記載され、q、r、s、tはAinL、AinR、BinL、BinRをそれぞれ表している。ブール作用素“NOT"、“AND"、又は“OR"は!、&、#によってそれぞれ表される。
ビット操作セル22の各々は、以下の真理値表に示すように、全シフト及び全ハミング削除を組合わせて実行し、セルへの4入力はAinL、AinR、BinL、BinRで表され、対応した出力はAoutL、AoutR、BoutL、BoutRで表され、入力及び出力の両方は同じ方向すなわち左から右へ読まれる。
真理値表を考察すると、ビットセル操作は集合ビットを右方位置(AinR又はBinR)から左方位置へ、その位置のビットがすでに集合されてない場合にシフトするが、AinR、BinL間の境界を横切ってビットを移送せず、例えば(0001)は(0010)にマップされ、(0010)は変化されない。同様に、(0100)は(1000)にマップされる。さらに、削除操作が実行され、それによりA:B境界の一側における集合ビットは境界の他側における集合ビット(いずれかの位置における)を削除して、両ビットを集合させない。これは例えば次のマッピング;(0101)対(0000);(0110)対(0000);(1101)対(1000);(1111)対(0000)によって例示される。また、真理値表から認められるように、16個の可能な入力状態は5個の可能な出力状態に低減される。
図3(b)には、通常同じ操作を実行するが幾つかの点で異なるビット操作セルの代りの形態を示す。この装置は図示したようにANDゲート30と、ORゲート32と、インバーター34とから構成され、部分シフト及び全ハミング削除を組合わせて実行する。図3(a)のセルにおいては(1000)の出力を形成する図3(b)のセルへの入力(1110)は代わりに出力(0100)を形成する。しかしながら、図3(b)のセルはアレイに組み込まれそしてハミング値比較を達成するために使用され得る。
最絡ビット操作セルのAoutL及びBoutLビットは下記の真理値表で定義されたようにコンパレーター出力を決めるのに用いられる。AoutL及びBoutLは同時に高くはならない。
コンパレーターは重み付けなしバイナリータペルを用いて説明してきたが、当然、コンパレーターはサーモメータコードで動作することが認められる。
図4は、4のハミング値をもつタペルA(10100110)と1のハミング値をもつB(00100000)との比較を示す動作例を示す。値(1100)を示す最終出力段45においてAoutLは高く、BoutLは低く、上記の真理値表で定義したようにAのハミング値がBのハミング値より大きいことを示している。
次に図5〜図7の実施の形態を参照すると、ビット操作セル36のアレイ及びそれらの相互接続は図2k実施例の場合と同じであるが、各セルに構成された論理は異なり、またビット操作セルの出力において実施される論理操作は異なる。ビット操作セル36の論理回路は図6に示され、六つのANDゲート38と、二つのORゲート40と、四つのインバーター42とから成り、以下に記載するように、AoutL、AoutR、BoutL、BoutRに対する比較的簡単な論理操作を行い、q、r、s、tはAinL、AinR、BinL、BinRをそれぞれ表わす。ブール作用素“NOT"、“AND"及び“OR"は!、&、#によってそれぞれ表される。
AoutL=q&!s#r&!t
AoutR=q&r&!s&!ts
BoutL=!q&s#!r&t
BoutR=!q&!r&s&t (等式組(2))
真理値表は下記に示され、2の偶境界にとられたタペルA、Bの二つのビットに対して真理値表は全シフトと部分ハミング削除操作とを組合わせて実行する。
真理値表は、(0110)の(1010)へのマッピング及び(1001)の(1010)へのマッピングを除いて上記の実施例の場合と同じである。従って、この構成を“部分”ハミング削除操作として記載し、すなわちA:B境界のいずれかの側に対する集合ビットは、それらがシフト操作前に対応した位置にある場合に削除されるだけである。従って、例えば、(0101)及び(1010)は各々(0000)にマップするが、この実施の形態において(0110)及び(1001)は(上記の実施の形態では(0000)にマップされたが)各々(1010)にマップする。図7には、5のハミング値をもつ重み付けなしタペルA(11001011)と4のハミング値をもつタペルB(00111100)とを比較する動作例を示す。操作セル57の最終段65において、AoutLにおけるビットの集合は、Aのハミング値がBのハミング値より大きいことを表している。AoutL及びBoutLからハミング値関係を導出する論理表は下記の表に示される。
この比較はサーモメータコードでも行えることが認められるべきである。
必要なセルの数及び層の数は比較すべき語の幅に依存し、そして全ての入力状態に大して安定した出力をもたらすように経験的に決められ得る。
必要ならば、装置は異なる長さのタペルを処理するために大きくされたり又は小さくされ得、或いは必要ならば0でパッドされ得る。
本発明は、また、異なったビット操作セルを用いて又は図示した項目のド・モルガン等価を使用して同じ機能を達成するアレイにも及ぶ。また、装置は反転論理及びド・モルガン等価を使用し得ることが認められるべきである。さらに、本発明は適当な比較及び結合段によって二つ以上のバイナリータペルを比較できるように拡張され得る。例えば三つのタペルA、B、Cは比較A:B、A:C及びB:Cを行い、そしてタペルA、B、Cを順序付けすることによって比較され得、比較の結果を得るようにする。
図2〜図7のハミング値コンパレーターは、サーモメータに前もって変換する必要なしに、二つのバイナリータペルのハミング値関係を決めるのに各タペルからの二つのビットに作用する2×2ビット操作セルのアレイの使用を包含している。これらの原理はまた、変更され、そして2以上のビットで動作するビット操作セル(以下nビットセルと記載する)を使用する装置に応用され得る。nビットセルを使用するシステムの包括的な技法については以下に説明し、一例は2×4ビットセルに対して与えられる。
一般的な原理は、ハミング値比較用の二つの重み付けなしストリング(A、B)がnタペル(n=2、3、4が適当である)に分けられる。nの大きな値は理論的には可能であるが、構成するのが繁雑となる。バイナリーストリングの長さがnで割れない場合には、ストリングは付加的な0でパッドされる。入力層及び奇数層において、タペルは偶数境界に分割され、一方偶数層においてはタペルは奇数境界に分割される。このジグザグ配列した効果は、連続した層おいて偶数及び奇数境界を横切って集合ビットを漸進的に移動できることにある。各タペル内のビット位置、実際に各バイナリーストリング内のタペルの順序は、ビットが重み付きなしであるので、関係ない。A及びBから成るnタペルはサーモメータコード変換を行う第1の段階をもつ細胞格子構造に供給され、第1の段階の後にはハミング削除を行う第2の段階が続く。各タペルは出願中の英国特許出願第9726752.0号又はPCT/GB98/03834(WO99/33184)に記載されたようなブールマッピングを用いてサーモメータコードに変換される。
従って、2ビットセルの場合、図1〜図3の装置は格子構造において2ビットセルを使用しているが、3、4などのビットを使用する同様な構造を設けることもできる。
上記で述べたように、2ビットセルの場合、操作等式は
Ya=a#b
Yb=a&b (等式組(3))
であり、ここで#はOR関数であり、&はAND関数であり、a、bは入力であり、Ya、Ybは対応した出力である。
入力a、b、c及び出力Ya、Yb、Ycをもつ3ビットセルの場合、操作等式は
Ya=a#b#c
Yb=(b&c)#(a&c)#(a&b)
Yc=a&b&c (等式組(4))
同様に、入力a、b、c、c及び出力Ya、Yb、Yc、Ydをもつ4ビットセルの場合、操作等式は
Ya=a#b#c#d
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=a&b&c&d (等式組(5))
第2の段階において、タペルA、Bのそれぞれのビット位置に集合したビットはハミング削除と記載したプロセスによって削除される。従って、サーモメータコードタペルA、B(1100)(1000)はそれぞれ(0100)、(0000)となる。各ビット位置においてハミング削除を行うブール等式はAタペルについてはYa=a&!b、BタペルについてはYb=b&!aである。n=2、n=4の場合について完全なセルの例が与えられ、図8にはデュアル2入力構造(図3(b)の構造と同じ)を示し、また図9にはデュアル4入力構造を示す。
図8及び図9を考察することにより、各構造44、46はそれぞれAND及びORゲートの第1の段48、50を備えている。構造44、46は、またサーモメータコードへの変換を行うインバーター及びハミング削除を行う第2の段52、45を備えている。第2の段52、54の各々は類似しており、この点に関して図1のアレイ12、14の類似性は明らかである。同様に、英国特許出願第9726752.0号又はPCT/GB98/03834(WO99/33184)のサーモメータコード変換構造に対する2入力構造及び4入力構造の第1の段の類似性も認められる。ビットセル操作装置の格子構造はブールプロセスを並列に行うように形成される。図10には、二つの12ビット語A(ビットa0・・・・・・・・・・・・a11から成っている)、B(ビットb0・・・・・・・・・・・・b11から成っている)のハミング値を比較するため、図9に示された形式の2×4ビット操作セル56のアレイから成るハミング値コンパレーターの一例を示す。このアレイにおいて、入力及び出力は図9の場合のように90゜ではなく一線状になるように配列し直されるが、論理操作は変わらない。前に述べたように、構造はビット操作セル56の奇数層と偶数層とを交互に備えており、隣接した層におけるセルはずれたり重なったりするようにジグザグに配列され、集合ビットが必要に応じてアレイを通って移動するのを保証している。アレイは上記のように切り詰められ、最終セルからの出力のそれぞれ二つは最終段デコーダー58で互いに論理和処理される。“A"で記された出力ではなく“B"で記された出力にビットが集合されると、Bのハミング値はAのハミング値より大きい。“B"で記された出力にではなく“A"で記された出力にビットが集合されると、Bのハミング値はAのハミング値より小さい。“A"、“B"で記された出力におけるビットが同じである場合にはA、Bのハミング値は同じである。従って、デコーダー58において、OR、EX−NOR及びANDゲート60、62、64及びインバーター66は、デコーダー58の出力A<B、A>B又はA=Bの一つに適当なビットを集合する。図11は図10の回路の動作例であり、二つの12ビットバイナリータペル(111011000000)及び(000000111111)がそれぞれ比較され、正しい結果が決められる。
また、コンパレーターを、ストリングの中心に向かってシフトし比較するように設計することも可能である。この設計では、より高速となり、また使用する論理手段も少なくなる。次に、図12〜図14を参照すると、各バイナリータペル(この場合各々8ビット)から2ビットを取り、そしてシフト及び削除操作を行う2×2ビット操作セルのアレイを用いるハミング値コンパレーターの実施の形態が例示されている。この装置において、ビットはタペルの一端よりむしろ中央に向かってシフトされる。最初の2ビット操作セルとの類似性は明らかである。図13に示されるものから認められるように、アレイは、奇数シフトセル68、偶数シフトセル70としてそれぞれ表された多数のセル及びハミング削除ブロック72から成っている。奇数シフトセル68及び偶数シフトセル70はアレイの中央線に対して対称的に配置され、まアレイの中央線の下方のシフトセルは上向きにシフトし、アレイの中央線の上方のシフトセルは下向きにシフトする。ハミング削除ブロック72はアレイの中央線上に配置され、2×2ビットのブロックとして4ビットで動作するつ特殊な操作セルであり、そして図示したように反転した選択入力をもつANDゲートで構成されている。ハミング削除ブロック72は垂直段74及び交叉段76を有し、これらの段はいずれの順序でもよい。図12又は図14の概略表示を参照すると、下記の操作が行われ、アレイの入力及び出力はセルの下から上へ(A1、A2、B1、B2)で表され、A1及びB1が1である場合、それらは両方とも0となる(垂直)。
A2及びB2が1である場合、それらは両方とも0となる(垂直)。
A1及びB2が1である場合、それらは両方とも0となる(交叉)。
A2及びB1が1である場合、それらは両方とも0となる(交叉)。
他の全ての値は真っ直ぐに進む。
最終ハミング削除ブロックから受けた値からA>B、A<B及びA=Bを得るためにバックエンドデコーダー78が必要とされ、これの論理回路は図12及び図14に示されている平面ハミング値コンパレーター。
次に図15〜図19を参照すると、平面ハミング値比較用のブール格子構造が示されている。図1〜図14を参照して上記で説明してきた装置は、二つの一次元ストリングから選択したビットで全体シフト又は部分シフト及び全体又は部分ビット削除操作を行う操作セルのアレイを用いて種々の語長の重み付けなしバイナリービットの一次元ストリングのハミング値比較を行っている。この技法は二つの等しい寸法の方形重み付けなしアレイのハミング値関係を比較する装置を提供するために開発された。
図15を参照すると、平面ハミング値装置は奇数層80と偶数層82とを交互に配置して構成される。この例における各層は6×6ビットの第1のビットアレイ(9組の文字(A、B、C、D)及び座標R1〜R6及びC1〜C6で特定される)及び第2のビットアレイ(9組の文字(a、b、c、d)及び座標r1〜rR6及びc1〜c6で特定される)を処理する。各層は図示したように集合ゼットを上瑞左側角へ向かってシフトする。また各層は一次元アレイの場合に行ったものと類似した、アレイ間のハミング削除を行い、以下に例示されるように、連続した層において、ビットはアレイの上端左側角へシフトされ、ハミング削除が行われる。こうして結局、最終層において、出力の単一ビットは二つのアレイのハミング値関係を表している。
各層は、頂部左側から底部右側へのびる対角線に対して対称であり、この対角線上及び対角線より上方のセルは、
であり、また対角線より下方のセルは
であることが認識されるべきである。
最初の層80において、入力の各6×6アレイは9個の2×2タペルに分けられる。一方の入力アレイに対して、9個のタペルが設けられ、各タペルは{a、b、c、d}(a、b、c、dは通常タペル間で同じでないが)で特定され、また他方のアレイに対しては9個のタペル{A、B、C、D}が設けられる。
最初の層において、入力アレイの同じ部分からの二組の2×2タペルは同心配列で示されるように結合される。従って、各タペル位置において中心のタペル{a、b、c、d}及びそのまわりのタペル{A、B、C、D}は一緒に処理され、事実上、最初の層80は9個の8ビット操作セル84のアレイで構成される。8ビット操作セル84は図17に示され、容易に理解できるようにするため大文字小文字でタペルを特定するように符号を変えている点を除いて図9に示すものと同じである。8ビット操作セルは、二つのタペル{a、b、c、d}及び{A、B、C、D}を受け、シフト及び削除操作を実行し、そして結果をタペル{Ya、Yb、Yc、Yd}及び{YA、YB、YC、YD}として出力する。他の全ての奇数層について同じ操作が実行される。
第2の偶数層82においては、四角に、オフセット、オーバーラップ及びフィードスルー86が存在する。必要なオフセット及びオーバーラップを達成するために、この例では、偶数層は、頂部左側から底部右側への対角線に対して対称にかつ中心に集められた奇数層で使用した形式の四つの8ビット操作セル84と、周囲に離間して配列した8個の周囲4ビット操作セル88と、角部の8個のフィールドスルー86とで構成されいる。偶数層における4ビット操作セルは二つのタペル{A、B}及び{a、b}において動作し、等式組(1)で説明したようなシフト及びハミング削除を行う。図に16には、{A、B}及び{a、b}入力タペル及び{YA、YB}及び{Ya、Yb}出力タペルをそれぞれ示した図3及び図8の論理回路を示している。
従って、奇数層における座標(Cm、Rn)をもつビットは偶数層における座標(Cm、Rn)にマップされ、また奇数層における座標(cm、rn)をもつビットは偶数層における座標(cm、rn)にマップされる。こうして例えば、座標(C6、R1)、(c6、r1)をもつ第1の層の頂部右側の出力は図17に示すようにそれぞれYC、Ycである。第2の層におけるこれらの座標の素子はフィードスルー86であり、YC、Ycは第2の層を変化せずに通過し、第3の層における頂部右側の操作セル84に対する“C"、“c"入力を形成する。他の第1の層出力の第2の後続の層入力へのマッピングは同様にして容易に決められ得る。
図18及び図19は、それぞれ二組の6×6入力に対しで上記した6×6平面ハミング値構造の動作例を示す。図18においては出力は五つの層の後に安定し、一方図19においては六つの層の後に安定した出力が達成される。
図18において、入力のマイナーアレイ(すなわち図15の小文字アレイ)は18のハミング値をもち、一方、入力の外方アレイ(すなわち図15の大文字アレイ)は14のハミング値をもつ。各層の出力は、各アレイについて削除から得られるそれぞれのハミング値と共に示されている。アレイの出力は、位置(C1、R1)及び(c1、1)におけるビットをモニターすることにより読み取られる。大文字アレイのハミング値が大きい場合には、最終層の出力において位置(C1、R1)におけるビットは集合される(図19(b)の場合のように)。小文字アレイのハミング値が大きい場合には、位置(c1、r1)におけるビットは集合される(図18の場合のように)。両方の位置におけるビットが同じである場合には、両方のアレイのハミング値は同じであることを表している。
図15〜図17には、ビットの二つの6×6アレイで動作するセル層構造の一例を示している。しかしながら、同じ包括的な原理を用いてより少数の又は多数のアレイに対する構造構築することができる。必要ならば、この例で使用した8ビットブロックの代わりに、より大きな動作ブロックが用いられ得る。
統合したコード形成及び平面ハミング値構造に関して上記した技法は三次元以上のアレイ(立体及び超平面系)を構成するために二次元アレイを越えて拡張され得ることが認識されるべきである。上記のハミング値コンパレーターは、既存の及び新規の重み付けなしニューラルネットワークにおいて和及び閾値(SAT)機能を実行するのに用いられ得る。図20に示すように、ニューラルデータのタペル及びニューラル閾値を画定するタペルは、一次元、二次元又はそれ以上の次元であるかどうかに応じて、上記した形式の一つのハミング値コンパレーター90に供給され得る。そしてコンパレーターの関連した出力は、ニューラルデータがニューラル閾値を越えたことを表す出力にビットが集合されるかどうかをみるためチェックされる。そして関連した出力は、ビットが集合された時に“発火”されることになるニューロンの単一出力として見做される。当然、他の出力の一つは、ニューロンが別の条件に応答するようにされた場合にモニターされ得る。
Claims (19)
- 複数の重み付けビット(a 1 ...a 8 )による 第1の位置次元以上の重み付けアレイと、複数の重み付 けなしビット(b 1 ...b 8 )による第2の二次元以上の重 み付けアレイのハミング値関係の表す出力を発生させる ハミング値コンパレータ−において、
任意のバイナリ重み付けなしアレイのハミング値が、そ こで論理1′sの数であり、二つの重み付けなしアレイ のハミング値関係が、大きなハミング値を有するか、そ の複数のハミング値が同じかどうかを示し、
前記ハミング値コンパレータ−が:
複数のビットを前記複数のアレイから、多数の層の(n +n)−ビット操作セル(22,36,46,56など)の複数の 層から成るプロセッシング手段へ供給する手段を備え、 各ビット操作セル(22,36,46,56など)が、前記第1ア レイ(a1...a2)において複数の個別ビット(a1,a2な ど)に対応した複数の個別のビットを受ける第1n−入力 と、前記第2アレイ(b1...b2)において複数の個別ビ ット(b1,b2など)に対応した複数の個別ビットを受け 取る第2n−入力と、前記第1n−入力と第2n−入力個々に 対応した第1n−出力と第2n−出力とを有すること、
各操作セル(26,36,46,56など)が、論理手段(24,26,2 8など)をビットシフト操作とビット削除操作の少なく とも一つを実行するため備えること、
複数の(n+n)−ビット操作セル(22,36,46,56な ど)が、最後の層から出た各層の出力を、次の層または 二番目の層の個別入力に送ることによって、相互接続さ れること、
前記複数のビット操作セルの出力にセットされた複数の ビットが、前記プロセッシング手段を通って共通のビッ ト位置へ向かって移行し、プロセッシング手段の最後の 層が前記ハミング関係を表わす出力を発生させること、
を特徴とするハミング値コンパレーター。 - 前記プロセッシング手段が、多数の実質的 に共通な(n+n)−ビット操作セル(22,36,45,56な ど)を備え、各操作セルが論理手段を備え、倫理手段 が:
(i)ビットシフト操作を実行させ、前記第1及び第2n −入力の各々における集合ビットを、予定の集合方向に シフトさせ、非集合ビットが、n−出力に対応したシフ ト位置に生じさせ、
(ii)ハミング評価操作を実行させ、論理1が前記第1 入力における任意のビット位置にある場合、前記第1入 力が前記第2n−入力に関連するビット位置にある論理1 に対応し、前記集合ビットが両方とも論理0に集合され ること、
を特徴とする請求の範囲1に記載のハミング値コンパレ ーター。 - 前記ハミング削除操作が、完全な削除操作 であり、前記第1n−入力の一つにある理論値1が、前記 第2n−入力におけるいかなるビット位置においても、理 論値1を削除できることを特徴とする請求の範囲2に記 載のハミング値コンパレーター。
- 前記ハミング削除操作が、部分的な削除操 作であり、前記第1n−入力において任意のビット位置に ある論理1が単に、前記第2n−入力において同じビット 位置にある論理1を削除すること、を特徴とする請求の 範囲2に記載のハミング値コンパレーター。
- 複数の前記ビット操作セルが、完全なビッ トシフトを行い、前記第1n−入力と第2n−入力のいずれ かに関して、もしビットシフトの方向に前記論理1に隣 接した一つ以上の論理0′sがあると、論理1が常に前 記予定の集合方向にシフトされることを特徴とする請求 の範囲1〜4のいずれか一項に記載のハミング値コンパ レーター。
- 各ビット操作セル(22,36,46,56など)が、四つの入力(AINL,AINR,BINL,BINR)と四つの出力(AOUTL,AOUTR,BOUTL,BOUTR)とを含み、第1の層におけるビット操作セルは、各ビット操作セル(22,36)について二つの入力(AINL,AINR)が各々バイナリーアレイ(a1...a8)の一方からそれぞれのビットを受け、他の二つの入力(BINL,BINR)が各々他方のバイナリーアレイ(b1...b8)からそれぞれのビットを受けるように構成されることを特徴とする請求の範囲1〜5のいずれか一項に記載のハミング値コンパレーター。
- 第1の層におけるビット操作セル(22,36)の上記二つの入力(AINL,AINR;BINL,BINR)の各々が、偶数境界上の相応したバイナリーアレイ(a1...a8;b1...b8など)の隣接したビットを受けるように構成されることを特徴とする請求の範囲6に記載のハミング値コンパレーター。
- 各ビット操作セル(32,36)が、それぞれの入力で受けた上記第1及び第2のバイナリーアレイ(a1...a8;a1...a8)からのビットでの操作を実行し、それにより集合ビットが予定のビット方向にシフトされ、そして相応して位置決めされた集合ビットが全部又は一部削除されるように構成されることを特徴とする請求の範囲7に記載のハミング値コンパレーター。
- 各ビット操作セル(22,36)が、上記バイナリーアレイの一方からそれぞれのビットを受ける第1の多数の入力(AINL,AINR)と、上記バイナリーアレイ(a1...a8)の他方からそれぞれのビット(b1...b2)を受ける第2の多数の入力(BINL,BINR)を有し、上記ビット操作セル(22,36)が相応した多数の出力と、上記第1の多数の入力におけるビット(a1...a8)のハミング値が上記第2の多数の入力におけるビット(b1...b8)のハミング値よりも大きい場合に上記出力のそれぞれ予め選択した出力に集合ビットを出力する論理手段とを有することを特徴とする請求の範囲1〜10のいずれか一項に記載のハミング値コンパレーター。
- ビット操作セル(68,70,72)の多数の交互の層を有し、上記層の一つが予め設定した位置に向って入力アレイにおける集合ビットをシフトする多数の第1のビット操作セル(68)を備え、上記層のその他の層が上記各アレイにおける相応した集合ビットを削除するハミング削除セル(72)と共に、上記多数の第1のビット操作セル(68)を備えて、二つの一次元以上のバイナリーアレイ(a1...a8;b1...b8)を比較することを特徴とする請求の範囲1に記載のハミング値コンパレーター。
- ビット操作セル(84)の多数の層(80,82)を有し、各セル(84)が少なくとも二つの入力と二つの出力とを備え、そして予め設定したビット位置に向って集合ビットをシフトするようにされ、しかもビットシフト及びビット削除の少なくとも一方を行うように層間に接続され、それにより、上記アレイのハミング値関係を表す出力を得るようにした、バイナリーデータ(ABCD;abcd)の二つの二次元アレイのハミング値を比較して、論理1′s集合のよりも数が多いか決定することを特徴とする請求の範囲1に記載のハミング値コンパレーター。
- 交互の層(80,82)を有し、上記層の一方の層(80)が4+4ビット操作セル(84)のアレイを備え、上記層の他方の層(82)が、上記4+4ビット操作セル(88)のアレイと、周囲に配列した多数の2+2ビット操作セル(88)と、多数のパススルー(I)とを備えている請求の範囲13に記載のハミング値コンパレーター。
- 各層におけるビット操作セルが、上記層に対しで共通軸線又は焦点に向ってビットをシフトするように構成されることを特徴とする請求の範囲14に記載のハミング値コンパレーター。
- 上記2+2ビット操作セル(88)が、入力a、b、c、d及び出力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=a&b&c&d (等式組(4))
であり、ここで“&”はAND演算子を表わし、“#”はOR演算子を示すことを特徴とする請求の範囲14又は15に記載のハミング値コンパレーター。 - 上記4+4ビット操作セル(84)が入力({ABCD}及び{abcd})に、図17に示す論理操作に関連して出力YA,TB,YC,YD及びYa,Yb,Yc,Ydを提供することを特徴とする請求の範囲14〜16のいずれか一項に記載のハミング値コンパレーター。
- 請求の範囲1〜17のいずれか一項に記載のハミング値コンパレーターを有することを特徴とするバイナリー和及び閾値装置。
- 複数の重み付けビット(a 1 ...a 8 )によ る第1の位置次元以上の重み付けアレイまたは、複数の 重み付けなしビット(b 1 ...b 8 )による第2の二次元以 上の重み付けアレイのいずれかが、そこで倫理値1′s よりも数が大きいか決定する方法において、前記方法 が:
(i)複数のビットを前記複数のアレイから、多数の層 の(n+n)−ビット操作セル(22,36,46,56など)の 複数の層から成るプロセッシング手段へ供給することを 含み、各ビット操作セル(22,36,46,56など)が、前記 第1アレイ(a 1 ...a 2 )において複数の個別ビット(a 1 , a 2 など)に対応した複数の個別のビットを受ける第1n− 入力と、前記第2アレイ(b 1 ...b 2 )において複数の個 別ビット(b 1 ,b 2 など)に対応した複数の個別ビットを 受け取る第2n−入力と、前記第1n−入力と第2n−入力個 々に対応した第1n−出力と第2n−出力とを有すること、
各操作セル(26,36,46,56など)が、論理手段(24,26,2 8など)をビットシフト操作とビット削除操作の少なく とも一つを実行するため備えること、
複数の(n+n)−ビット操作セル(22,36,46,56な ど)が、最後の層から出た各層の出力を、次の層または 二番目の層の個別入力に送ることによって、相互接続さ れること、
連続層において、前記複数のビット操作セルの出力にセ ットされた複数のビットが、前記プロセッシング手段を 通って共通のビット位置へ向かって移行し、プロセッシ ング手段の最後の層が前記ハミング関係を表わす出力を 発生させること、
を特徴とする決定方法。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB9726752.0A GB9726752D0 (en) | 1997-12-19 | 1997-12-19 | Binary code converters and comparators |
GB9726752.0 | 1998-10-27 | ||
GBGB9823398.4A GB9823398D0 (en) | 1998-10-27 | 1998-10-27 | Binary code converters and hamming value comparators |
GB9823398.4 | 1998-10-27 | ||
PCT/GB1998/003835 WO1999032961A1 (en) | 1997-12-19 | 1998-12-18 | Hamming value comparison for unweighted bit arrays |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000517089A JP2000517089A (ja) | 2000-12-19 |
JP3587533B2 true JP3587533B2 (ja) | 2004-11-10 |
Family
ID=26312799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP53347899A Expired - Fee Related JP3587533B2 (ja) | 1997-12-19 | 1998-12-18 | ハミング値の決定及び比較 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6330702B1 (ja) |
EP (1) | EP1038215B9 (ja) |
JP (1) | JP3587533B2 (ja) |
AU (1) | AU1769799A (ja) |
DE (1) | DE69815389T2 (ja) |
ES (1) | ES2195432T3 (ja) |
WO (1) | WO1999032961A1 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6760880B1 (en) * | 1998-09-10 | 2004-07-06 | Ceva D.S.P. Ltd. | Scalar product and parity check |
AU3229001A (en) * | 2000-02-16 | 2001-08-27 | Logic Research Co., Ltd. | State machine, semiconductor device using state machine, and method of design thereof |
DE10200503A1 (de) * | 2002-01-09 | 2003-07-24 | Infineon Technologies Ag | Vorrichtung und Verfahren zum Umwandeln von Thermometer-Code in Binär-Code und Analog-/Digital-Wandler |
GB0204412D0 (en) * | 2002-02-25 | 2002-04-10 | Bae Systems Plc | Ordering by hamming value |
GB0204410D0 (en) * | 2002-02-25 | 2002-04-10 | Bae Systems Plc | Weighgtless thermocoder |
GB0204409D0 (en) * | 2002-02-25 | 2002-04-10 | Bae Systems Plc | Ordering weightless binary tuples according to hamming value |
US7120210B1 (en) | 2002-05-24 | 2006-10-10 | Lucent Technologies Inc. | Method and system for processing a signal |
US8818980B2 (en) * | 2010-01-12 | 2014-08-26 | Intouchlevel Corporation | Connection engine |
US11113800B2 (en) * | 2017-01-18 | 2021-09-07 | Nvidia Corporation | Filtering image data using a neural network |
US9992318B1 (en) * | 2017-03-31 | 2018-06-05 | Sorenson Ip Holdings, Llc | Storing messages |
CN109814938A (zh) * | 2017-11-20 | 2019-05-28 | 广东欧珀移动通信有限公司 | 应用程序预测模型建立、预加载方法、装置、介质及终端 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3350685A (en) * | 1965-08-13 | 1967-10-31 | Sperry Rand Corp | Hamming magnitude comparator using multi-input binary threshold logic elements |
US3656109A (en) * | 1970-03-13 | 1972-04-11 | Sperry Rand Corp | Hamming distance and magnitude detector and comparator |
GB1545117A (en) * | 1976-05-25 | 1979-05-02 | Nat Res Dev | Comparison apparatus eg for use in character recognition |
US4084260A (en) | 1976-07-12 | 1978-04-11 | Sperry Rand Corporation | Best match content addressable memory |
US4586025A (en) | 1985-10-04 | 1986-04-29 | Tektronix, Inc. | Error tolerant thermometer-to-binary encoder |
EP0217009A3 (en) | 1985-10-04 | 1989-05-03 | Tektronix, Inc. | Thermometer-to-adjacent binary encoder |
FR2624282B1 (fr) * | 1987-12-02 | 1990-03-30 | France Etat | Comparateur binaire et operateur de tri de nombres binaires |
GB2223369B (en) | 1988-08-18 | 1992-11-18 | Plessey Co Plc | Analogue-to-digital converters |
US5029305A (en) | 1988-12-21 | 1991-07-02 | Texas Instruments Incorporated | Method and apparatus for error correction in thermometer code arrays |
US5218562A (en) * | 1991-09-30 | 1993-06-08 | American Neuralogix, Inc. | Hamming data correlator having selectable word-length |
US5699287A (en) * | 1992-09-30 | 1997-12-16 | Texas Instruments Incorporated | Method and device for adding and subtracting thermometer coded data |
JP2917095B2 (ja) | 1993-07-08 | 1999-07-12 | テクトロニクス・インコーポレイテッド | サーモメータ・コード処理方法及び装置 |
US5382955A (en) | 1993-11-04 | 1995-01-17 | Tektronix, Inc. | Error tolerant thermometer-to-binary encoder |
US5459466A (en) | 1995-02-23 | 1995-10-17 | Tektronix, Inc. | Method and apparatus for converting a thermometer code to a gray code |
-
1998
- 1998-12-18 EP EP98962562A patent/EP1038215B9/en not_active Expired - Fee Related
- 1998-12-18 AU AU17697/99A patent/AU1769799A/en not_active Abandoned
- 1998-12-18 ES ES98962562T patent/ES2195432T3/es not_active Expired - Lifetime
- 1998-12-18 WO PCT/GB1998/003835 patent/WO1999032961A1/en active IP Right Grant
- 1998-12-18 JP JP53347899A patent/JP3587533B2/ja not_active Expired - Fee Related
- 1998-12-18 DE DE69815389T patent/DE69815389T2/de not_active Expired - Fee Related
-
1999
- 1999-08-10 US US09/370,892 patent/US6330702B1/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000517089A (ja) | 2000-12-19 |
WO1999032961A1 (en) | 1999-07-01 |
EP1038215A1 (en) | 2000-09-27 |
AU1769799A (en) | 1999-07-12 |
EP1038215B1 (en) | 2003-06-04 |
DE69815389D1 (de) | 2003-07-10 |
DE69815389T2 (de) | 2003-12-11 |
EP1038215B9 (en) | 2003-12-03 |
US6330702B1 (en) | 2001-12-11 |
ES2195432T3 (es) | 2003-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3413213B2 (ja) | バイナリーコードコンバーター及びコンパレーター | |
JP3587533B2 (ja) | ハミング値の決定及び比較 | |
CN111417966B (zh) | 量子误差校正 | |
Lin | Systematic unidirectional error-detecting codes | |
US5621908A (en) | Parallel sorting system to reduce the amount of communication between processing devices | |
Das | Lattice of octagonal distances in digital geometry | |
Barth et al. | Two edge-disjoint Hamiltonian cycles in the butterfly graph | |
Fleisher et al. | A computer algorithm for minimizing Reed-Muller canonical forms | |
Whitley et al. | Modeling simple genetic algorithms for permutation problems | |
Jamison et al. | Multithreshold graphs | |
US6618804B1 (en) | System and method for rearranging bits of a data word in accordance with a mask using sorting | |
Calderbank et al. | Double circulant codes over and even unimodular lattices | |
Wojciechowski | A new lower bound for snake-in-the-box codes | |
Amir et al. | Optimal two-dimensional compressed matching | |
Cicalese et al. | Group testing | |
Yaakobi et al. | In-memory computing of Akers logic array | |
Piestrak | The minimal test set for multioutput threshold circuits implemented as sorting networks | |
Wang et al. | Embedding complete binary trees in faulty hypercubes | |
Alnuweiri | Parallel constant-time connectivity algorithms on a reconfigurable network of processors | |
Anantha et al. | Mixed-radix Gray codes in Lee metric | |
Owens et al. | Parallel sorting with serial memories | |
US5319788A (en) | Modified batcher network for sorting N unsorted input signals in log2 N sequential passes | |
US20050017878A1 (en) | Serial weightless data to thermometer coded data converter | |
Latifi et al. | Optimal simulation of linear array and ring architectures on multiply-twisted hypercube | |
Flahive et al. | Balancing Cyclic $ R $-ary Gray Codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20040225 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20040412 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040525 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040713 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040810 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |