<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ep-patent-document PUBLIC "-//EPO//EP PATENT DOCUMENT 1.1//EN" "ep-patent-document-v1-1.dtd">
<ep-patent-document id="EP98962562B9W1" file="EP98962562W1B9.xml" lang="en" country="EP" doc-number="1038215" kind="B9" correction-code="W1" date-publ="20031203" status="c" dtd-version="ep-patent-document-v1-1">
<SDOBI lang="en"><B000><eptags><B001EP>ATBECHDEDKESFRGBGRITLILUNLSEMCPTIE......FI....CY................................</B001EP><B003EP>*</B003EP><B005EP>J</B005EP><B007EP>DIM350 (Ver 2.1 Jan 2001)
 2999001/0</B007EP></eptags></B000><B100><B110>1038215</B110><B120><B121>CORRECTED EUROPEAN PATENT SPECIFICATION</B121></B120><B130>B9</B130><B132EP>B1</B132EP><B140><date>20031203</date></B140><B150><B151>W1</B151><B155><B1551>DE</B1551><B1552>Beschreibung</B1552><B1551>EN</B1551><B1552>Description</B1552><B1551>FR</B1551><B1552>Description</B1552></B155></B150><B190>EP</B190></B100><B200><B210>98962562.9</B210><B220><date>19981218</date></B220><B240><B241><date>20000613</date></B241><B242><date>20010724</date></B242></B240><B250>en</B250><B251EP>en</B251EP><B260>en</B260></B200><B300><B310>9726752</B310><B320><date>19971219</date></B320><B330><ctry>GB</ctry></B330><B310>9823398</B310><B320><date>19981027</date></B320><B330><ctry>GB</ctry></B330></B300><B400><B405><date>20031203</date><bnum>200349</bnum></B405><B430><date>20000927</date><bnum>200039</bnum></B430><B450><date>20030604</date><bnum>200323</bnum></B450><B451EP><date>20020614</date></B451EP><B480><date>20031203</date><bnum>200349</bnum></B480></B400><B500><B510><B516>7</B516><B511> 7G 06F   7/02   A</B511><B512> 7G 06F  15/80   B</B512></B510><B540><B541>de</B541><B542>HAMMINGWERTVERGLEICHUNG FÜR UNGEWOGENE BITFELDER</B542><B541>en</B541><B542>HAMMING VALUE COMPARISON FOR UNWEIGHTED BIT ARRAYS</B542><B541>fr</B541><B542>COMPARAISON DE VALEUR HAMMING POUR RESEAUX BINAIRES NON PONDERES</B542></B540><B560><B561><text>EP-A- 0 319 421</text></B561><B561><text>EP-A- 0 591 846</text></B561><B562><text>VAN DE PANNE M ET AL: "MACHAM: A BEST MATCH CONTENT ADDRESSABLE MEMORY" PROCEEDINGS OF THE PACIFIC RIM CONFERENCE ON COMMUNICATIONS, COMPUTERS AND SIGNAL PROCESSING, VICTORIA, JUNE 1 - 2, 1989, 1 June 1989, pages 612-615, XP000077554 INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS</text></B562></B560></B500><B700><B720><B721><snm>KING, Douglas, Beverley, Stevenson</snm><adr><str>Electronic Engineering W354B, Warton Aerodrome</str><city>Warton, Nr. Preston,
Lancashire PR4 1AX</city><ctry>GB</ctry></adr></B721></B720><B730><B731><snm>BAE SYSTEMS plc</snm><iid>00427897</iid><irf>WN/NV/XA 1154</irf><adr><str>Warwick House,
P.O. Box 87,
Farnborough Aerospace Centre</str><city>Farnborough,
Hampshire GU14 6YU</city><ctry>GB</ctry></adr></B731></B730><B740><B741><snm>Newell, William Joseph</snm><iid>00053194</iid><adr><str>Wynne-Jones, Lainé &amp; James
22 Rodney Road</str><city>Cheltenham
Gloucestershire GL50 1JJ</city><ctry>GB</ctry></adr></B741></B740></B700><B800><B840><ctry>DE</ctry><ctry>ES</ctry><ctry>FR</ctry><ctry>GB</ctry><ctry>IT</ctry><ctry>NL</ctry><ctry>SE</ctry></B840><B860><B861><dnum><anum>GB9803835</anum></dnum><date>19981218</date></B861><B862>en</B862></B860><B870><B871><dnum><pnum>WO99032961</pnum></dnum><date>19990701</date><bnum>199926</bnum></B871></B870></B800></SDOBI><!-- EPO <DP n="1"> -->
<description id="desc" lang="en">
<p id="p0001" num="0001">This invention relates to methods and apparatus for determining the Hamming values of binary vectors or arrays in general and in particular, but not exclusively, to methods and apparatus for use in determining the Hamming value relationship of a set of weightless bits otherwise referred. to herein as a weightless tuple or weightless vector. The invention also relates to apparatus and methods for determining the Hamming value relationship of two thermometer codes or weightless vectors. The invention further extends to a Hamming value comparator for comparing the Hamming value relationship of two 2-dimensional arrays of data. The invention still further extends to sum and threshold devices using Hamming value comparators of this invention.</p>
<p id="p0002" num="0002">The apparatus and methods described herein may usefully incorporate, utilise, be used with or be incorporated into any of the apparatus or methods described in our co-pending WO99/33184, WO99/33019, WO99/33175, WO99/32962, the entire contents of which are incorporated herein by reference.</p>
<heading id="h0001"><u>Terminology</u></heading>
<p id="p0003" num="0003">The term "Hamming value" is used to define the number of logic 1's set in 1-dimensional arrays such as a binary<!-- EPO <DP n="2"> --> number, tuple, vector, or 2 or higher dimensional arrays. The Hamming value relationship of two binary numbers or arrays indicates which has the greater Hamming value or whether the Hamming values are the same.</p>
<p id="p0004" num="0004">The term "weighted binary" is used in the conventional sense to indicate that successive bit positions are weighted, particularly .... 16, 8, 4, 2, 1, although other weighted representations are possible. "Weightless binary" is a set of binary digits 1 and 0, each representing just "1" and "0" respectively. There is no least significant bit (LSB) or most significant bit (MSB). The set of bits may be ordered or without order. If all the 1's are grouped together e.g. [111000] then the code is referred to as a thermometer code, thermocode or bar graph code, all collectively referred to herein as "thermometer codes".</p>
<p id="p0005" num="0005">The term thermometer code is also used herein to describe arrays where the set bits are aggregated around a preset bit within the tuple, rather than aggregating towards one of the ends of the tuple. Likewise the term is also used to describe 2, 3 or higher dimensional arrays in which the set bits are clustered or aggregated around a preset focal bit position which may be anywhere within the array, e.g. at one corner or in the centre in a 2 or 3 dimensional array.</p>
<p id="p0006" num="0006">A set of weightless bits is referred to herein as a "weightless tuple" or "weightless vector" and these terms are not intended to be restricted to ordered sets.</p>
<p id="p0007" num="0007">In traditional neural networks, a real-valued synaptic<!-- EPO <DP n="3"> --> value is multiplied by a synaptic connection strength or weight value, and summed with other similarly treated synapses before they are all summed and thresholded to form a neural output. The weight value is a real-valued synaptic connection strength and hence the common usage of the term "weighted neural network". However, it is also possible to have binary RAM-based neural networks that do not employ real-valued connection weights but instead rely on the values of the binary bits being either 0 or 1. Accordingly, there are two contexts of weightlessness: without synaptic connection strength, and without binary code weighting. The arrangements described herein employ weightless binary manipulation mechanisms and may be used to engineer weightless artificial neural networks, otherwise referred to as weightless-weightless artificial neural networks.</p>
<p id="p0008" num="0008">In one context, this invention is concerned with the comparison of two weightless vectors in terms of their Hamming values. This process is broadly equivalent to the function of a binary neuron. If the neuron receives a vector, A, of weightless synaptic values (e.g. [10110010]), and a vector, T, of weightless neural threshold values (e.g. [00101000]), the neuron may be required to fire, when the Hamming value of A is greater than the Hamming value of T. In this example, the threshold, T, can be thought of as a set of inhibitory synaptic values which must be exceeded if the neuron is to be fired. This is one particular example of an instance where it is required to determine the Hamming value relationship between two binary vectors, but there are<!-- EPO <DP n="4"> --> very many other types of systems requiring this or similar processing. For example, this comparison and the other techniques disclosed herein may be used in flight control systems, voting systems with redundancy, safety critical systems, telecommunications systems, decision making systems, and artificial intelligence systems, such as neural networks.</p>
<p id="p0009" num="0009">In a prior art arrangement, a state machine based system is used to count the number of 1's set and digital arithmetic units are used for the binary comparison. For each weightless vector, each bit is scanned sequentially and a counter or arithmetic register incremented accordingly to evaluate the Hamming value. Thereafter, the contents of the respective counters or arithmetic registers are compared to determine the Hamming value relationship. This prior art technique is suited to implementation in software, using a microprocessor or similar state machine.</p>
<p id="p0010" num="0010">However, this technique is slow and prone to both conductive and emissive radio frequency interference (RFI) as it relies principally on clocks, counters and microprocessors. Both the speed of operation and susceptibility to disruption or corruption by other noise makes such a system ill-suited for safety critical systems such as flight control systems. By way of illustration, a flight control system may need to make rapid decisions based on the instantaneous "HIGH" or "LOW" state of several transducers reporting various aspects of the aircraft operation; corruption of one of the inputs to the decision<!-- EPO <DP n="5"> --> making process (caused e.g. by noise or RFI disruption) could result in misinterpretation of one of the inputs with the result that the decision making processor or neural network make the wrong decision with potentially catastrophic consequences.</p>
<p id="p0011" num="0011">British Patent No. GB-A-1,588,535 discloses an arrangement in which file words are searched one at a time and the Hamming distance between a file word and a search word measured. It is noted that the Hamming distance (i.e. the number of bits in which the two words differ), is quite different from the Hamming value comparison, which typically determines which of two binary vectors or tuples has the greatest number of logic 1's set.</p>
<p id="p0012" num="0012">Accordingly, disclosed herein are various mechanisms for determining the Hamming value relationships of two binary vectors which use asynchronous Boolean logical bit cell manipulation schemes which are very fast for small weightless systems. In addition these tend to be more RFI resilient and more fault-tolerant than the weighted binary alternatives.</p>
<p id="p0013" num="0013">In the first described arrangement, two weightless binary vectors are first converted separately into thermometer code and thereafter the thermometer codes are compared by a thermocode comparator to determine the Hamming value relationship.</p>
<p id="p0014" num="0014">In the two subsequent related schemes, two weightless vectors are compared in parallel, without requiring separate conversion into thermometer code and subsequent comparison.<!-- EPO <DP n="6"> --> However, the thermometer code converter and the thermocode comparator may each be used in different applications and the invention extends to these <u>per</u> <u>se</u>.<!-- EPO <DP n="7"> --></p>
<p id="p0015" num="0015">According to one aspect of this invention there is provided a Hamming value comparator for providing an output indicative of the Hamming value relationship of a first one- or more-dimensional weightless array of weightless bits and a second one- or more-dimensional weightless array of weightless bits,<br/>
   wherein the Hamming value of a given weightless array is the number of logic 1's therein, and the Hamming value relationship of two weightless arrays indicates which has the greater Hamming value or whether the Hamming values thereof are the same,<br/>
   said Hamming value comparator comprising:-
<ul id="ul0001" list-style="none" compact="compact">
<li>means for applying the bits from said arrays to processing means comprising a plurality of layers of (n+n)-bit manipulation cells, each manipulation cell having a first n-inputs for receiving respective bits corresponding to respective bits in said first array, and a second n-inputs for receiving bits corresponding to respective bits in said second array, a first n-outputs and a second n-outputs corresponding to said first and second n-inputs respectively,</li>
</ul>    wherein each manipulation cell comprises logic means for performing at least one of a bit shift operation and a bit elimination operation,<br/>
<!-- EPO <DP n="8"> -->   the (n+n)-bit manipulation cells being interconnected by passing the outputs of each layer apart from the final layer to respective inputs of the next or the next-but-one layer,<br/>
   wherein in successive layers, the bits set at the output of said bit manipulation cells migrate in successive layers towards a common bit position relative to said layers, with the final layer providing an output indicative of said Hamming relationship.</p>
<p id="p0016" num="0016">The Hamming value comparator preferably includes processing means comprising a plurality of layers of bit manipulation cells each having a plurality of inputs and a plurality of outputs, input means for passing corresponding bits from each of the two binary arrays to respective inputs of bit manipulation cells in the first layer of said processing means, the bit manipulation cells being interconnected by passing the outputs of each layer apart from the last to respective inputs of the next or next-but-one layer, thereby to provide an output indicative of said Hamming value relationship.</p>
<p id="p0017" num="0017">The comparator is particularly intended for use with weightless arrays or words, but its use for weighted arrays or words is not excluded.</p>
<p id="p0018" num="0018">Each bit manipulation cell may include four inputs and<!-- EPO <DP n="9"> --> four outputs, the bit manipulation cells in said first layer being arranged such that, for each bit manipulation cell, two inputs each receive a respective bit from one of said binary arrays, and the other two inputs each receive a respective bit from the other binary array.</p>
<p id="p0019" num="0019">Each of said two inputs in the bit manipulation cells in said first layer preferably receives adjacent bits of the corresponding binary array, taken on an even boundary. Each manipulation cell preferably performs an operation on the bits from said first and second binary arrays received at the respective inputs, whereby a set bit is shifted in a common direction and correspondingly positioned set bits are fully or partially eliminated. Thus, each of said bit manipulation cells may effect a shift and full elimination process, as set out in the truth table below (or the inverse thereof):-<!-- EPO <DP n="10"> --> 
<tables id="tabl0001" num="0001">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">A in L</entry>
<entry namest="col2" nameend="col2" align="center">A in R</entry>
<entry namest="col3" nameend="col3" align="center">B in L</entry>
<entry namest="col4" nameend="col4" align="center">B in R</entry>
<entry namest="col5" nameend="col5" align="center">A out L</entry>
<entry namest="col6" nameend="col6" align="center">A out R</entry>
<entry namest="col7" nameend="col7" align="center">B out L</entry>
<entry namest="col8" nameend="col8" align="center">B out R</entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>1</b></entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">1</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>1</b></entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row></tbody></tgroup>
</table>
</tables>    wherein AinL, AinR, BinL, BinR, are the four inputs to the cell and AoutL, AoutR, BoutL, BoutR are the four outputs.</p>
<p id="p0020" num="0020">Alternatively, each of said bit manipulation cells may effect a shift and partial elimination process as set out in<!-- EPO <DP n="11"> --> the truth table below or the inverse thereof:- 
<tables id="tabl0002" num="0002">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center"><b>A in L</b></entry>
<entry namest="col2" nameend="col2" align="center"><b>A in R</b></entry>
<entry namest="col3" nameend="col3" align="center"><b>B in L</b></entry>
<entry namest="col4" nameend="col4" align="center"><b>B in R</b></entry>
<entry namest="col5" nameend="col5" align="center"><b>A out L</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>A out R</b></entry>
<entry namest="col7" nameend="col7" align="center"><b>B out L</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>B out R</b></entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>1</b></entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center"><b>1</b></entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>1</b></entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">1</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row></tbody></tgroup>
</table>
</tables></p>
<p id="p0021" num="0021">Preferably, each bit manipulation cell has a first plurality of inputs for receiving respective bits from one of said binary words, a second plurality of inputs for receiving respective bits from the other of said binary<!-- EPO <DP n="12"> --> words, a corresponding plurality of outputs, and logic means for outputting on a respective pre-selected one of said outputs a set bit if the Hamming value of the bits on said first plurality of inputs is greater than the Hamming value of the bits set on said second plurality of inputs.</p>
<p id="p0022" num="0022">Preferably the bit manipulation cell has a first plurality of inputs for receiving respective bits from one of said binary arrays and a second plurality of inputs for receiving respective bits from the other of said binary arrays, said bit transformation means having a corresponding plurality of outputs, and logic means for outputting on a pre-selected one of said outputs a set bit if the Hamming value of the bits set on said first plurality of inputs is greater than the Hamming value of the bits set on said second plurality of inputs.</p>
<p id="p0023" num="0023">In a preferred embodiment said bit transformation means has a first plurality of inputs (AINL AINR) for receiving respective bits from one of said binary arrays and a second plurality of inputs (BINL BINR) for receiving respective bits from the other of said binary arrays, said bit transformation means having a corresponding plurality of outputs (AOUTL AOUTR BOUTL BOUTR), and logic means applying a Boolean logic operation for outputting on a pre-selected one of said outputs a set bit if the number of the logic 1's set on said first plurality of inputs is greater than the Hamming value of the bits set on said second plurality of inputs.<!-- EPO <DP n="13"> --></p>
<p id="p0024" num="0024">In a preferred embodiment, this invention provides a Hamming value comparator, for comparing the Hamming values of two 2-dimensional arrays of binary data, said comparator comprising a plurality of layers of bit manipulation cells, each cell including at least two inputs and two outputs and being adapted to shift set bits towards a preset bit position, and being interconnected between layers to effect at least one of hit shifting and bit elimination, thereby to obtain an output indicative of the Hamming value relationship of said arrays.</p>
<p id="p0025" num="0025">The invention also provides a method of determining which, if either, of a first one- or more-dimensional weightless array of weightless bits and a second one- or more-dimensional weightless array of weightless bits, has the greater number of logic 1's therein, said method comprising:-
<ul id="ul0002" list-style="none" compact="compact">
<li>(i) applying the bits from said arrays to processing means comprising a plurality of layers of (n+n)-bit manipulation cells, each manipulation cell having a first n-inputs for receiving respective bits corresponding to respective bits in said first array, and a second n-inputs for receiving bits corresponding to respective bits in said second array, a first n-outputs and a second n-outputs corresponding to said first and second n-inputs respectively,</li>
</ul><!-- EPO <DP n="14"> -->    wherein each manipulation cell comprises logic means for performing at least one of a bit shift operation and a bit elimination operation,<br/>
   the (n+n)-bit manipulation cells, being interconnected by passing the outputs of each layer apart from the final layer to respective inputs of the next or the next-but-one layer,<br/>
   wherein in successive layers, the bits set at the output of said bit manipulation cells migrate in successive layers towards a common bit position relative to said layers, with the final layer providing an output indicative of said Hamming relationship.<!-- EPO <DP n="15"> --></p>
<p id="p0026" num="0026">Whilst the invention has been described above, it extends to any inventive combination of the features set out above or in the following description.</p>
<p id="p0027" num="0027">The invention may be performed in various ways, and, by way of example only, various embodiments thereof will now be described in detail, reference being made to the accompanying drawings which utilise the conventional symbols for logic gates and, in which: -
<ul id="ul0003" list-style="none" compact="compact">
<li>Figure 1 is a circuit diagram of a first embodiment of weightless binary comparator in accordance with this invention for determining the Hamming value relationship of two weightless binary vectors;</li>
<li>Figures 2 (a) and 2 (b) are circuit diagrams of two of the bit manipulation cells for use in the weightless binary comparator of Figure 1, one for performing full shift and full Hamming elimination and the other for performing partial shift and Hamming elimination respectively;</li>
<li>Figure 3 is a worked example of the weightless binary comparator of Figure 1 showing the bits set on the inputs and outputs of the bit manipulation cells in response to the input of two typical weightless binary vectors;</li>
<li>Figure 4 is a circuit diagram of a second embodiment of weightless binary comparator in accordance with this invention for determining the Hamming value relationship of<!-- EPO <DP n="16"> --> two binary vectors;</li>
<li>Figure 5 is a circuit diagram of one of the bit manipulation cells of the weightless binary comparator of Figure 4 for performing a full shift and a partial Hamming elimination;</li>
<li>Figure 6 is a worked example-of the weightless binary comparator of Figure 4, showing the bits set on the inputs and outputs of the bit manipulation cells in response to the input of two typical weightless binary vectors;</li>
<li>Figure 7 is a circuit diagram of a 2 x 2-bit manipulator cell for performing shift and Hamming elimination;</li>
<li>Figure 8 is a circuit diagram of a 2 x 4-bit manipulator cell performing shift and Hamming Elimination;</li>
<li>Figure 9 is a circuit diagram of an array of the manipulation cells of Figure 8 providing a Hamming value comparator for comparing two 12-bit weightless inputs;</li>
<li>Figure 10 is a worked example of the array of Figure 11;</li>
<li>Figure 11 is a further embodiment of a Hamming value comparator for comparing two 8-bit weightless inputs;</li>
<li>Figure 12 is an enlarged view of part of Figure 11 for explaining the structure thereof;</li>
<li>Figure 13 is an enlarged view of the back end decoder used in the embodiment of Figure 11;</li>
<li>Figure 14 is a diagrammatic representation of the odd and even layers, and the cell number identification used in an embodiment of a planar Hamming value comparator<!-- EPO <DP n="17"> --> structure;</li>
<li>Figure 15 is a diagram of the 2 x 2-bit manipulation cell used in the embodiment of the planar Hamming value comparator structure of Figure 14;</li>
<li>Figure 16 is a diagram of a 2 x 4-bit manipulation cell for use in the embodiment of Planar Hamming value comparator of Figure 14;</li>
<li>Figures 17 and 18 are worked examples of the planar Hamming value comparator of Figure 14, and</li>
<li>Figure 19 is a diagram of a sum and threshold (SAT)device which may be constructed by a Hamming value comparator as described herein.</li>
</ul></p>
<heading id="h0002"><u>DESCRIPTION OF PREFERRED EMBODIMENTS</u></heading>
<heading id="h0003"><u>Hamming Value Comparator for Thermometer Codes</u></heading><!-- EPO <DP n="18"> -->
<heading id="h0004"><u>Hamming Value comparator for Weightless Tuples</u></heading>
<p id="p0028" num="0028">Referring to the embodiments of Figures 1 to 6, here the Hamming value relationship of two N-tuple weightless vectors is determined using a single comparator. In both embodiments, a four input, four output modular bit manipulation cell is defined to operate on two elements of each of the N-tuples A and B, and the manipulation cells are built into an architecture that performs the required<!-- EPO <DP n="19"> --> comparison in parallel.</p>
<p id="p0029" num="0029">Referring firstly to the embodiment of Figures 1 and 2, each of the bit manipulation cells 22 has 4 inputs and 4 outputs. In the input layer, and throughout the network, two inputs of each cell 22 are associated with digits of the A vector and two inputs are associated with digits of the B vector. In Figure 1, as viewed, the lower two inputs of each cell 22 are associated with the A vector, and the upper two inputs are associated with the B vector.</p>
<p id="p0030" num="0030">As is apparent from Figure 1, the number of bit manipulation cells 22 in each layer alternates between even and odd, although the seventh and succeeding stages are truncated because the relevant outputs are taken from a single manipulation cell 22 in the final stage, and so the bit manipulation cells removed by truncation are redundant as these cells would not contribute to this single manipulation cell. The connections between bit manipulation cells 22 in adjacent layers are staggered such that, apart from in the input layer, each bit manipulation cell 20 receives respective inputs from two bit manipulation cells in either one or two previous layers depending on whether the bit manipulation cell is at either end of the layer and whether the layer has an odd or even number of cells 22.</p>
<p id="p0031" num="0031">Referring to Figures 2(a) and 2(b), these show two alternative logic circuits providing the required manipulation. For ease of comparison, it should be noted that the cell inputs labelled (a, b, c, d) in Figure 1 correspond to inputs labelled (AinL, AinR, BinL, BinR) in<!-- EPO <DP n="20"> --> Figures 2 (a) and 2 (b), and outputs labelled (Ya, Yb, Yc, Yd) in Figure 1 correspond to outputs labelled (AoutL, Aout R, BoutL, BoutR) in Figure 2 (a). In Figure 2(a) the arrangement comprises inverters 24, <b>AND</b> gates 26 and <b>OR</b> gates 28.</p>
<p id="p0032" num="0032">The reduced Boolean equations for AoutL, AoutR, BoutL, and BoutR are stated below, where q, r, s and t represent AinL, AinR, BinL and BinR respectively. The Boolean operators <b>"NOT"</b>, <b>"AND</b> or <b>"OR"</b> are represented by !, &amp; and #. respectively.<maths id="math0001" num="(Equation Set (1))"><math display="block"><mrow><mtext>A out L = q &amp; r &amp; !s</mtext><mspace linebreak="newline"/><mtext># r &amp; !s &amp; !t</mtext><mspace linebreak="newline"/><mtext># q &amp; !s &amp; !t</mtext><mspace linebreak="newline"/><mtext># q &amp; r &amp; !t</mtext><mspace linebreak="newline"/><mtext>A out R = q &amp; r &amp; !s &amp; !t</mtext><mspace linebreak="newline"/><mtext>B out L = !q &amp; !r &amp; s</mtext><mspace linebreak="newline"/><mtext># !r &amp; s &amp; t</mtext><mspace linebreak="newline"/><mtext># !q &amp; s &amp; t</mtext><mspace linebreak="newline"/><mtext># !q &amp; !r &amp; t</mtext><mspace linebreak="newline"/><mtext>B out R = !q &amp; !r &amp; s &amp; t</mtext></mrow></math><img id="ib0001" file="imgb0001.tif" wi="350" he="5" img-content="math" img-format="tif"/></maths></p>
<p id="p0033" num="0033">Each of the bit manipulation cells 22 performs a combinatorial full shift and full Hamming elimination operation, as shown in the following truth table in which the four inputs to the cell are designated AinL, AinR, BinL,<!-- EPO <DP n="21"> --> and BinR with the corresponding outputs being identified AoutL, AoutR, BoutL and BoutR reading both inputs and outputs in the same direction, left to right. 
<tables id="tabl0003" num="0003">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">A in L</entry>
<entry namest="col2" nameend="col2" align="center">A in R</entry>
<entry namest="col3" nameend="col3" align="center">B in L</entry>
<entry namest="col4" nameend="col4" align="center">B in R</entry>
<entry namest="col5" nameend="col5" align="center">A out L</entry>
<entry namest="col6" nameend="col6" align="center">A out R</entry>
<entry namest="col7" nameend="col7" align="center">B out L</entry>
<entry namest="col8" nameend="col8" align="center">B out R</entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>1</b></entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8"/></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>1</b></entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row></tbody></tgroup>
</table>
</tables> Inspection of the truth table will show that the bit manipulation cells shift a set bit from a right hand<!-- EPO <DP n="22"> --> position (AinR or BinR) to the left if the bit of that position has not already been set, but it does not transfer bits across the boundary between AinR and BinL; for example (0001) is mapped to (0010), whereas (0010) is unaltered. Likewise (0100) is mapped to (1000). In addition, a cancellation operation is carried out whereby a set bit on one side of the A:B boundary cancels a set bit (in either position) on the other side of the boundary, thus unsetting both bits. This is illustrated for example by the following mappings; (0101) to (0000); (0110) to (0000); (1101) to (1000), and (1111) to (0000). It will also be noted from the truth table that the 16 possible input states have been reduced to 5 possible output states.</p>
<p id="p0034" num="0034">An alternative form of bit manipulation cell which performs a generally similar operation, but with some differences, is shown in Figure 2(b). This is made up of AND gates 30, OR gates 32 and inverters 34 as shown and performs a combinatorial partial shift and full Hamming . elimination. Thus an input (1110) to the Figure 2(b) cell, which in the cell of Figure 2(a) would give an output of (1000), gives instead the output (0100). However the cell of Figure 2(b) may be built into an array and used to achieve Hamming value comparison.</p>
<p id="p0035" num="0035">The AoutL and BoutL bits of the final bit cell manipulator are used to determine the comparator outputs as defined by the truth table below. AoutL and BoutL cannot be high simultaneously.<!-- EPO <DP n="23"> --> 
<tables id="tabl0004" num="0004">
<table frame="all">
<tgroup cols="5" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="31.50mm"/>
<colspec colnum="2" colname="col2" colwidth="31.50mm"/>
<colspec colnum="3" colname="col3" colwidth="31.50mm"/>
<colspec colnum="4" colname="col4" colwidth="31.50mm"/>
<colspec colnum="5" colname="col5" colwidth="31.50mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">(Ya)<br/>
Final AoutL</entry>
<entry namest="col2" nameend="col2" align="center">(Yb)<br/>
Final BoutL</entry>
<entry namest="col3" nameend="col3" align="center">A&gt;B</entry>
<entry namest="col4" nameend="col4" align="center">B&gt;A</entry>
<entry namest="col5" nameend="col5" align="center">A-B</entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">FALSE</entry>
<entry namest="col4" nameend="col4" align="center">FALSE</entry>
<entry namest="col5" nameend="col5" align="center">TRUE</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">TRUE</entry>
<entry namest="col4" nameend="col4" align="center">FALSE</entry>
<entry namest="col5" nameend="col5" align="center">FALSE</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center"><b>1</b></entry>
<entry namest="col3" nameend="col3" align="center">FALSE</entry>
<entry namest="col4" nameend="col4" align="center">TRUE</entry>
<entry namest="col5" nameend="col5" align="center">FALSE</entry></row></tbody></tgroup>
</table>
</tables></p>
<p id="p0036" num="0036">Although the comparator is described by reference to use with weightless binary tuples, it will of course be appreciated that it will operate with thermometer code.</p>
<p id="p0037" num="0037">Figure 3 is a worked example showing comparison of the tuple A (10100110) with a Hamming value of 4, with B (00100000) having a Hamming value of 1. At the final output stage 45, which shows values (1100) it will be seen that AoutL is high and BoutL is low indicating that the Hamming value of A is greater than that of B, as defined in the truth table above.</p>
<p id="p0038" num="0038">Referring now to the embodiment of Figures 5 and 6, the array of bit manipulation cells 36 and their interconnections are the same as that of the embodiment of Figure 4, but the logic implemented in each cell is different and the logic operations carried out on the output of the bit manipulation cell and final layout are different. The logic circuit for the bit manipulation cell 36 is shown in Figure 5 and comprises six AND gates 38 and two OR gates 40 and four inverters 42 providing the simpler logic operations for AoutL, AoutR, BoutL, and BoutR as stated below, where q, r, s, t, represent AinL, AinR, BinL and BinR<!-- EPO <DP n="24"> --> respectively. The Boolean operators <b>"NOT"</b>, <b>"AND"</b> and <b>"OR"</b> are represented by !, &amp; and # respectively.<maths id="math0002" num="(Equation set (2))"><math display="block"><mrow><mtext>A out L = q &amp; !s</mtext><mspace linebreak="newline"/><mtext># r &amp; !t</mtext><mspace linebreak="newline"/><mtext>A our R = q &amp; r &amp; !s &amp; !t</mtext><mspace linebreak="newline"/><mtext>B out L = !q &amp; s</mtext><mspace linebreak="newline"/><mtext># !r &amp; t</mtext><mspace linebreak="newline"/><mtext>B out R = !q &amp; !r &amp; s &amp; t</mtext></mrow></math><img id="ib0002" file="imgb0002.tif" wi="207" he="5" img-content="math" img-format="tif"/></maths></p>
<p id="p0039" num="0039">The truth table is set out below in which it will be seen that, for two bits of tuples A and B, taken on an even boundary of two, the truth table performs a combinatorial full shift and partial Hamming elimination operation.<!-- EPO <DP n="25"> --> 
<tables id="tabl0005" num="0005">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center"><b>A in L</b></entry>
<entry namest="col2" nameend="col2" align="center"><b>A in R</b></entry>
<entry namest="col3" nameend="col3" align="center"><b>B in L</b></entry>
<entry namest="col4" nameend="col4" align="center"><b>B in R</b></entry>
<entry namest="col5" nameend="col5" align="center"><b>A out L</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>A out R</b></entry>
<entry namest="col7" nameend="col7" align="center"><b>B out L</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>B out R</b></entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>1</b></entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">1</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>1</b></entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row></tbody></tgroup>
</table>
</tables></p>
<p id="p0040" num="0040">The truth table is the same as that for the previous embodiment except for the mappings of (0110) to (1010) and the mapping of (1001) to (1010). Accordingly, we refer to this arrangement as a "partial" Hamming elimination operation, that is to say set bits to either side of the A:B<!-- EPO <DP n="26"> --> boundary are only cancelled if they are in the corresponding positions prior to the shift operation. Thus for example (0101) and (1010) each map to (0000), but (0110) and (1001) (which in the previous embodiment mapped to (0000)) in this embodiment each map to (1010). Figure 6 is a worked example for comparison of a weightless tuple A(11001011) having a Hamming value of 5 and a tuple B (00111100) having a Hamming value of 4. At the final stage 65 of the manipulation cells 57,, the bit set on AoutL indicates that the Hamming value of A is greater than that of B. The logic table for deriving the Hamming value relationships from AoutL and BoutL are shown in the following table:- 
<tables id="tabl0006" num="0006">
<table frame="all">
<tgroup cols="5" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="31.50mm"/>
<colspec colnum="2" colname="col2" colwidth="31.50mm"/>
<colspec colnum="3" colname="col3" colwidth="31.50mm"/>
<colspec colnum="4" colname="col4" colwidth="31.50mm"/>
<colspec colnum="5" colname="col5" colwidth="31.50mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">Final AoutL</entry>
<entry namest="col2" nameend="col2" align="center">Final BoutL</entry>
<entry namest="col3" nameend="col3" align="center">A&gt;B</entry>
<entry namest="col4" nameend="col4" align="center">B&gt;A</entry>
<entry namest="col5" nameend="col5" align="center">A=B</entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">FALSE</entry>
<entry namest="col4" nameend="col4" align="center">FALSE</entry>
<entry namest="col5" nameend="col5" align="center">TRUE</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">FALSE</entry>
<entry namest="col4" nameend="col4" align="center">TRUE</entry>
<entry namest="col5" nameend="col5" align="center">FALSE</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">TRUE</entry>
<entry namest="col4" nameend="col4" align="center">FALSE</entry>
<entry namest="col5" nameend="col5" align="center">FALSE</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">FALSE</entry>
<entry namest="col4" nameend="col4" align="center">FALSE</entry>
<entry namest="col5" nameend="col5" align="center">TRUE</entry></row></tbody></tgroup>
</table>
</tables></p>
<p id="p0041" num="0041">It should be noted that this comparison also works with thermometer codes.</p>
<p id="p0042" num="0042">The number of cells and number of layers required depends on the width of the words to be compared and can be determined empirically, to give a stable output for all input states.</p>
<p id="p0043" num="0043">It should be appreciated that, if required, the arrangement could be made larger or smaller to deal with tuples of different length, or if required, a tuple may be<!-- EPO <DP n="27"> --> padded out with 0's.</p>
<p id="p0044" num="0044">The invention also extends to arrays achieving the same function using different bit manipulation cells, or employing De Morgan equivalents of the items shown. It should also be appreciated that the arrangements may use inverse logic and De Morgan equivalents. Furthermore, the invention may be extended to allow comparison of more than two binary tuples by suitable comparison and combination stages. For example three tuples A, B, and C, may be compared by making the comparison A:B, A:C and B:C and then ordering the tuples A,B,C, knowing the results of the comparisons.</p>
<p id="p0045" num="0045">The Hamming value comparators of Figures 1 to 6 inclusive use an array of common 2 x 2-bit manipulation cells operating on two bits from each tuple to determine the Hamming value relationship of two binary tuples without requiring prior conversion to thermometer code. These principles may also be modified and applied to arrangements which use bit manipulation cells which operate on more than 2 bits, hereafter referred to as n-bit cells. The generic technique for systems using n-bit cells is described below and an example is given for a 2 x 4-bit cell.</p>
<p id="p0046" num="0046">The general principle is that the two weightless strings (A,B) for Hamming value comparison are segmented into n-tuples, where n=2,3,4 are suitable. Larger values of n are theoretically possible, but are cumbersome to implement. If the -length of the binary strings is indivisible by n, then the strings are padded with<!-- EPO <DP n="28"> --> additional 0's. In the input layer, and odd layers, the tuples are split on even boundaries, whereas in the even layers the tuples are split on odd boundaries. This staggered effect is to allow set bits progressively to migrate across even and odd boundaries in successive layers. The bit position within each tuple, indeed the order of the tuples within each binary string, is irrelevant because the bits are weightless. The n-tuples comprising A and B are fed into a cellular lattice structure having a first stage which effects thermometer code conversion followed by a second stage which effects Hamming elimination. Each tuple is converted into thermometer code using a Boolean mapping as described in WO99/33184.</p>
<p id="p0047" num="0047">Thus, for a two bit cell, the arrangements of Figures 1 to 3 employ a two bit cell in a lattice structure, but it is also possible to provide a similar structure which employs 3,4 etc bits. As noted above, for a 2 bit cell, the manipulator equations are:<maths id="math0003" num="(Equation Set (3))"><math display="block"><mrow><mtext>Ya = a # b</mtext><mspace linebreak="newline"/><mtext>Yb = a &amp; b,</mtext></mrow></math><img id="ib0003" file="imgb0003.tif" wi="46" he="5" img-content="math" img-format="tif"/></maths>    where # is the OR function and &amp; is the AND function, a and b are the inputs, and Ya and Yb are the corresponding outputs.</p>
<p id="p0048" num="0048">For a three bit cell; with inputs a, b, c, and outputs<!-- EPO <DP n="29"> --> Ya, Yb, Yc, the manipulator equations are:-<maths id="math0004" num="(Equation Set (4))"><math display="block"><mrow><mtext>Ya = a # b # c</mtext><mspace linebreak="newline"/><mtext>Yb = (b &amp; c) # (a &amp; c) # (a &amp; b)</mtext><mspace linebreak="newline"/><mtext>Yc = a &amp; b &amp; c</mtext></mrow></math><img id="ib0004" file="imgb0004.tif" wi="129" he="5" img-content="math" img-format="tif"/></maths></p>
<p id="p0049" num="0049">Similarly for a four bit cell, with inputs a, b, c, d, and outputs Ya, Yb, Yc, Yd, the manipulator equations are:-<maths id="math0005" num="(Equation Set (5))"><math display="block"><mrow><mtext>Ya = a # b # c # d</mtext><mspace linebreak="newline"/><mtext>Yb = (d &amp; c) # (d &amp; b) # (d &amp; a) # (c &amp; b) # (c &amp; a) # (b &amp; a)</mtext><mspace linebreak="newline"/><mtext>Yc = (d &amp; c &amp; b) # (d &amp; c &amp; a) # (d &amp; b &amp; a) # (c &amp; b &amp; a)</mtext><mspace linebreak="newline"/><mtext>Yd = a &amp; b &amp; c &amp; d</mtext></mrow></math><img id="ib0005" file="imgb0005.tif" wi="335" he="5" img-content="math" img-format="tif"/></maths></p>
<p id="p0050" num="0050">In the second stage, bits set in the respective bit positions of the tuples A and B are eliminated by a process referred to herein as Hamming elimination. Thus the thermometer coded tuples A and B (1100) (1000), become (0100) and (0000) respectively. The Boolean equation that performs this Hamming elimination at each bit position is ya= a &amp;!b for the A tuples, and yb = b &amp; !a for the B tuples. Examples of the complete cell, for n = 2 and n = 4 are given with Figure 7 showing a dual 2 input structure (identical to the structure of Figure 2 (b), and Figure 8 showing a dual 4 input structure.<!-- EPO <DP n="30"> --></p>
<p id="p0051" num="0051">Inspection of Figures 7 and 8 shows that each structure 44, 46 respectively includes a first stage 48, 50, of <b>AND</b> and <b>OR</b> gates which effects the conversion into thermometer code and a second stage 52, 54 which effects the Hamming Elimination. The second stages of each are similar. The similarity of the first stage of the two input structure and the four input structure to the thermometer code converter structure of WO99/33184 will be noted.</p>
<p id="p0052" num="0052">A lattice structure of bit cell manipulators is then formed to execute the Boolean processes in parallel. Figure 9 shows an example for a Hamming value comparator made up of an array of 2 x 4-bit manipulation cells 56 of the type illustrated in Figure 8, to compare the Hamming values of two 12-bit words A (comprising bits a<sub>0</sub>... a<sub>11</sub>) and B (comprising bits b<sub>0</sub>... b<sub>11</sub>) . In this array, the inputs and outputs are rearranged so that they are in line instead of at 90° as in Figure 8, but the logical operations are unchanged. As previously the structure has alternate odd and even layers of bit manipulation cells 56 and the cells in adjacent layers are staggered to provide an offset or overlap, to ensure that the set bits migrate through the array as required. The array is truncated as before, and respective two's of the outputs from the final cell are ORed together at a final stage decoder 58. If a bit is set on<!-- EPO <DP n="31"> --> the output marked "B" but not on that marked "A", then the Hamming value of B is greater than that for A. If a bit is set on the output marked "A" but not on that marked "B", then the Hamming value of B is less than that for A. If the bits on the outputs marked "A" and "B" are the same, then the Hamming values of A and B are the same.</p>
<p id="p0053" num="0053">Accordingly, at the decoder 58 the OR, EX-NOR, and AND gates 60, 62,.64 and the inverters 66 set the appropriate bit on one of the decoder outputs A less than B (A&lt;B), A greater than B (A&gt;B) or A equal to B (A=B) . Figure 10 is a worked example for the circuit of Figure 9, comparing two twelve bit binary tuples (111011000000) and (000000111111) respectively and determining the correct result.</p>
<p id="p0054" num="0054">It is also possible to design comparators which shift and compare towards the centre of the strings. This design is faster and uses less logic. Referring now to Figures 11 to 13, there is illustrated an embodiment of Hamming value comparator which uses an array of 2 x 2-bit manipulation cells taking two bits from each binary tuple - here each of eight bits - and performing shift and elimination operations. -In this arrangement the bits are shifted towards the middle of the tuple rather than to one end. The similarities with the original 2-bit manipulation cell will be apparent.</p>
<p id="p0055" num="0055">It will be noted from the representation in Figure 12 that the array is made up of a number of cells designated respectively as odd shift cells 68, even shift cells 70 and Hamming Elimination blocks 72. The odd and even shift cells<!-- EPO <DP n="32"> --> 68 are symmetrically placed about the mid-line of the array, with shift cells below the mid line shifting upwards and shift cells above the mid line shifting downwards. The Hamming Elimination blocks 72 are located on the array mid line and are special manipulation cells operating on four bits organised as a block of 2 x 2 bits and made up of a AND gates with selected inputs inverted as shown. The elimination comprises a vertical stage 74 and a cross stage 76 and the stages can be in either order. With reference to the schematic representation in Figures 11 or 13, the following operations apply, with the inputs and outputs of the array being designated (A1,B<sub>1</sub>,A<sub>2</sub>,B2) reading from the bottom to the top of the cell as viewed: -
<ul id="ul0004" list-style="none" compact="compact">
<li>If A1 and B1 are 1 they will both become 0 (vertical)</li>
<li>If A2 and B2 are 1 they will both become 0 (vertical)</li>
<li>If A1 and B2 are 1 they will both become 0 (cross)</li>
<li>If A2 and B1 are 1 they will both become 0 (cross)</li>
</ul>    with any other values passing straight through.</p>
<p id="p0056" num="0056">A backend decoder 78 is required to provide the A&gt;B, A&lt;B and A=B outputs from the values received from the final Hamming Elimination block and the logic circuits for this are shown in Figures 11 and 13.</p>
<heading id="h0005"><u>Planar Hamming Value Comparator</u></heading>
<p id="p0057" num="0057">Referring now to the embodiment of Figures 14 to 18, there is illustrated a Boolean lattice structure for planar Hamming value comparison. The arrangements described above with reference to Figures 1 to 13 effect the Hamming value comparison of 1-dimensional strings of weightless binary<!-- EPO <DP n="33"> --> bits of various word lengths using an array of manipulation cells which perform a full or partial shift and full or partial bit elimination operation on selected bits from the two 1-dimensional strings. This technique has been developed to provide an arrangement for comparing the Hamming value relationships of two equally sized square weightless arrays.</p>
<p id="p0058" num="0058">Referring to Figure 14, the planar Hamming value device is made up of alternate odd and even layers 80, 82. Each layer in this example processes a first array of 6 x 6 bits (identified by nine lots of capital letters (A, B, C, D) and coordinates R<sub>1</sub> to R<sub>6</sub> and C<sub>1</sub> to C<sub>6</sub>) and a second array of bits (identified by nine lots of lowercase letters (a, b, c, d) and coordinates r<sub>1</sub> to r<sub>6</sub>, c<sub>1</sub> to c<sub>6</sub>). Each layer effects a shift of set bits towards the upper top left corner as viewed. Each layer also effects a Hamming Elimination between, the arrays, similar to that performed in the 1-dimensional arrays, and as to be illustrated below, so that in successive layers the bits are shifted to the top left hand corner of the array and Hamming elimination is performed. Eventually, in the final layer a single bit at the output indicates the Hamming value relationship of the two arrays.</p>
<p id="p0059" num="0059">It should be noted that each layer is symmetrical about the diagonal running from top left to bottom right, with the cells on and above the diagonal running:-<maths id="math0006" num=""><img id="ib0006" file="imgb0006.tif" wi="16" he="16" img-content="math" img-format="tif"/></maths><!-- EPO <DP n="34"> --> and those below running:-<maths id="math0007" num=""><img id="ib0007" file="imgb0007.tif" wi="12" he="14" img-content="math" img-format="tif"/></maths></p>
<p id="p0060" num="0060">In the first layer 80, each 6 x 6 array of inputs is segregated into nine 2 x 2 tuples. For one input array there are nine tuples each identified {a, b, c, d} (though a, b, c, d will not usually be the same between tuples), and for the other array there are nine tuples {A,B,C,D).</p>
<p id="p0061" num="0061">In the first layer, two lots of 2x2 tuples from the same part of the input arrays are combined, as indicated by the concentric arrangement. Thus at each tuple position the tuples (a, b, c, d} in the centre and the tuples {A,B,C,D} around the centre are processed together so that, in effect, the first layer 80 is made up of an array of nine 8-bit manipulator cells 84. The 8-bit manipulation cell 84 is shown in Figure 16 and is the same as that shown in Figure 8 above except, for aiding understanding, the labelling has been changed to reflect the identification of the tuples by capital and lowercase letters. The 8-bit manipulation cell receives the two tuples {a,b,c,d} and {A,B,C,D}, performs a shift and elimination operation and outputs the result as tuples {Ya, Yb, Yc, Yd} and {YA, YB, YC, YD}. The same operations are performed in all of the other odd layers.</p>
<p id="p0062" num="0062">In the second and even layers 82, there is an offset and overlap, and feedthrough 86 at the four corners. To achieve the required offset and overlap, in this example the even layers are made. up of four 8-bit manipulator cells 84<!-- EPO <DP n="35"> --> of the type used in the odd layers, grouped centrally and symmetric about the usual top left to bottom right diagonal, and eight peripheral 4-bit manipulator cells 88 spaced about the periphery, and eight feedthroughs 86 at the corners. The 4-bit manipulation cells in the even layers operate on two tuples {A, B} and (a,b), performing a shift and Hamming elimination as described in Equation Set (1). Figure 15 shows the logic circuit of earlier Figures 2 and 7 labelled with {A,B} and {a,b} input tuples and {YA.YB} {Ya Yb} output tuples respectively.</p>
<p id="p0063" num="0063">Thus a bit with coordinates (C<sub>m</sub>, R<sub>n</sub>) in an odd layer will map to (C<sub>m</sub>, R<sub>n</sub>) in the even layer, and (C<sub>m</sub>, r<sub>n</sub>) in an odd layer will map to (cm, r<sub>n</sub>) in an even layer. So, for example, the outputs in the top right of the first layer with co-ordinates C<sub>6</sub>, R<sub>1</sub>) and (c<sub>6</sub>, r<sub>1</sub>) will be YC and Yc respectively as viewed in Figure 16. The elements at these co-ordinates in the second layer are feedthroughs 86, and so YC and Yc will pass unchanged through the second layer to form the "C" and "c" . inputs to the top right hand manipulation cell 84 in the third layer. The mapping of the other first layer outputs to the second or subsequent layer inputs can be readily determined in a similar manner.</p>
<p id="p0064" num="0064">Figures 17 and 18 show worked examples for the 6x6 planar Hamming value structure just described, for two sets of 6x6 inputs respectively. It should be noted that in Figure 17, the output is stable after five layers, whereas Figure 18 a stable output is achieved after six layers.</p>
<p id="p0065" num="0065">In Figure 17, the inner array of inputs (i.e. the lower<!-- EPO <DP n="36"> --> case array of Figure 14) has a Hamming value of 18, whereas the outer array of inputs (i.e. the Capital letter array of Figure 14) has a Hamming value of 14. The outputs of each of the layers are shown together with the respective Hamming values, resulting from elimination, for each array. The output of the array is read by monitoring the bits at positions (C<sub>1</sub>, R<sub>1</sub>) and (c<sub>1</sub>, r<sub>1</sub>) . If the Hamming value of the capital letter array is greater, then at the output of the final layer the bit at (C<sub>1</sub>, R<sub>1</sub>) will be set (as in Figure 18(b)). If the Hamming value of the lowercase array is greater, then the bit at position (c<sub>1</sub>, r<sub>1</sub>) will be set (as in Figure 17). If the bits at both positions are the same, this indicates that the Hamming values of both arrays are the same.</p>
<p id="p0066" num="0066">Figures 14 to 16 above show an example of a cell layering structure for operating on two 6 x 6 arrays of bits. It is however possible to provide structures for smaller or larger arrays using the same general principles. If desired, larger operating blocks may be used instead of the 8 bit blocks used in this example.</p>
<p id="p0067" num="0067">It should be noted that the techniques described above with respect to aggregate code formation and planar Hamming value structure can be extended beyond two dimensional arrays to provide three and higher dimensional arrays (cubic and hyperplane systems). The Hamming value comparators described above may be used to perform a sum-and-threshold (SAT) function in existing and novel weightless neural networks. As shown in Figure 19, a tuple of neural data,<!-- EPO <DP n="37"> --> and a tuple defining a neural threshold may be supplied to a Hamming value comparator 90 of one of the types discussed above, whether of one, two or of greater dimension. The relevant output of the comparator is then checked to see whether a bit is set on the output which indicates that the neural data has exceeded the neural threshold. The relevant output is then viewed as the single output of the neuron which is taken to have "fired" if the bit has set. Naturally one of the other outputs could be monitored if the neuron was intended to respond to another condition.</p>
</description><!-- EPO <DP n="38"> -->
<claims id="claims01" lang="en">
<claim id="c-en-01-0001" num="0001">
<claim-text>A Hamming value comparator for providing an output indicative of the Hamming value relationship of a first one- or more-dimensional weightless array of weightless bits (a<sub>1</sub>...a<sub>8</sub>) and a second one- or more-dimensional weightless array of weightless bits (b<sub>1</sub>...b<sub>8</sub>),<br/>
   wherein the Hamming value of a given weightless array is the number of logic 1's therein, and the Hamming value relationship of two weightless arrays indicates which has the greater Hamming value or whether the Hamming values thereof are the same,<br/>
   said Hamming value comparator comprising:-
<claim-text>means for applying the bits from said arrays to processing means comprising a plurality of layers of (n+n)-bit manipulation cells (22, 36, 46, 56 etc), each manipulation cell (22, 36, 46, 56 etc) having a first n-inputs for receiving respective bits corresponding to respective bits (a<sub>1</sub>, a<sub>2</sub> etc.) in said first array (a<sub>1</sub>...a<sub>8</sub>), and a second n-inputs for receiving bits corresponding to respective bits (b<sub>1</sub>, b<sub>2</sub> etc.) in said second array (b<sub>1</sub>...b<sub>8</sub>), a first n-outputs and a second n-outputs corresponding to said first and second n-inputs respectively,</claim-text>    wherein each manipulation cell (26, 36, 46, 56 etc), comprises logic means (24, 26, 28 etc), for performing at least one of a bit shift operation and a bit elimination operation,<br/>
<!-- EPO <DP n="39"> -->   the (n+n)-bit manipulation cells (22, 36, 46, 56 etc), being interconnected by passing the outputs of each layer apart from the final layer to respective inputs of the next or the next-but-one layer,<br/>
   wherein in successive layers, the bits set at the output of said bit manipulation cells migrate in successive layers towards a common bit position relative to said layers, with the final layer providing an output indicative of said Hamming relationship.</claim-text></claim>
<claim id="c-en-01-0002" num="0002">
<claim-text>A Hamming value comparator according to Claim 1, wherein said processing means comprises a plurality of substantially common (n+n)-bit manipulation cells (22, 36, 46, 56 etc), each manipulation cell comprising logic means for performing:
<claim-text>(i) a bit shift operation wherein set bits in each of said first and second n-inputs are shifted in a pre-set direction, where the presence of unset bits allows, to appear in a bit shifted position in the corresponding n-outputs, and</claim-text>
<claim-text>(ii) a Hamming elimination operation wherein in the event of there being a logic 1 at a given bit position in said first inputs which corresponds to a logic 1 at a related bit position in said second n-inputs, both of said set bits are set to logic 0.</claim-text></claim-text></claim>
<claim id="c-en-01-0003" num="0003">
<claim-text>A Hamming value comparator according to Claim 2, wherein said Hamming elimination operation is a full elimination operation whereby a logic 1 in one of said first n-inputs is capable<!-- EPO <DP n="40"> --> of eliminating a logic 1 at any bit position in said second n-inputs.</claim-text></claim>
<claim id="c-en-01-0004" num="0004">
<claim-text>A Hamming value comparator according to Claim 2, wherein said Hamming elimination operation is a partial elimination operation wherein a logic 1 at a given bit position in said first n-inputs may only eliminate a logic 1 at the same bit position in said second n-inputs.</claim-text></claim>
<claim id="c-en-01-0005" num="0005">
<claim-text>A Hamming value comparator according to any of the preceding claims wherein said bit manipulation cells perform a full bit shift wherein, for either of said first and second n-inputs, a logic 1 is always shifted in said preset direction if there is one or more logic 0's adjacent said logic 1 in the direction of said bit shift.</claim-text></claim>
<claim id="c-en-01-0006" num="0006">
<claim-text>A Hamming value comparator according to any of the preceding claims, wherein each bit manipulation cell (22, 36, 46, 56 etc.) includes four inputs (AINL, AINR, BINL, BINR) and four outputs (AOUTL, AOUTR, BOUTL, BOUTR), and the bit manipulation cells in said first layer are arranged such that, for each bit manipulation cell (22,36), two inputs (AINL, AINR) each receive a respective bit derived from one of said binary arrays (a<sub>1</sub>...a<sub>8</sub>) and the other two inputs (BINL, BINR) each receive a respective bit derived from the other binary array (b<sub>1</sub>...b<sub>8</sub>).</claim-text></claim>
<claim id="c-en-01-0007" num="0007">
<claim-text>A Hamming value comparator according to Claim 6, wherein each of said respective sets of two inputs (AINL, AINR; BINL, BINR) in the bit manipulation cells (22,36) in said first layer receive adjacent bits derived from the<!-- EPO <DP n="41"> --> corresponding binary array, (a<sub>1</sub>...a<sub>8</sub>;b<sub>1</sub>...b<sub>8</sub> etc), taken on an even boundary.</claim-text></claim>
<claim id="c-en-01-0008" num="0008">
<claim-text>A Hamming value comparator according to Claim 7, wherein each manipulation cell (32,36) performs an operation on the bits (AINL, AINR; BINL, BINR) derived from said first and second binary arrays ((a<sub>1</sub>.....a<sub>8</sub>;a<sub>1</sub>.....a<sub>8</sub>) received at the respective inputs, whereby a set bit is shifted towards a preset bit direction and correspondingly positioned set bits are fully or partially eliminated.</claim-text></claim>
<claim id="c-en-01-0009" num="0009">
<claim-text>A Hamming value comparator according to Claim 5 when dependent on Claim 3, wherein each of said bit manipulation cells has a truth table substantially as set out below, or the inverse thereof:-<!-- EPO <DP n="42"> --> 
<tables id="tabl0007" num="0007">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center"><b>A in L</b></entry>
<entry namest="col2" nameend="col2" align="center"><b>A in R</b></entry>
<entry namest="col3" nameend="col3" align="center"><b>B in L</b></entry>
<entry namest="col4" nameend="col4" align="center"><b>B in R</b></entry>
<entry namest="col5" nameend="col5" align="center"><b>A out L</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>A out R</b></entry>
<entry namest="col7" nameend="col7" align="center"><b>B out L</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>B out R</b></entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>1</b></entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center"><b>1</b></entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>1</b></entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row></tbody></tgroup>
</table>
</tables> wherein AINL, AINR, BINL, BINR, are the four inputs to the cell and AOUTL, AOUTR, BOUTL, BOUTR are the four outputs.</claim-text></claim>
<claim id="c-en-01-0010" num="0010">
<claim-text>A Hamming value comparator according to Claim 5 when dependent on Claim 4, wherein each of said bit manipulation cells has a truth table substantially as set out below, or the inverse thereof:-<!-- EPO <DP n="43"> --> 
<tables id="tabl0008" num="0008">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center"><b>A in L</b></entry>
<entry namest="col2" nameend="col2" align="center"><b>A in R</b></entry>
<entry namest="col3" nameend="col3" align="center"><b>B in L</b></entry>
<entry namest="col4" nameend="col4" align="center"><b>B in R</b></entry>
<entry namest="col5" nameend="col5" align="center"><b>A out L</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>A out R</b></entry>
<entry namest="col7" nameend="col7" align="center"><b>B out L</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>B out R</b></entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>1</b></entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center"><b>1</b></entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>1</b></entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row></tbody></tgroup>
</table>
</tables></claim-text></claim>
<claim id="c-en-01-0011" num="0011">
<claim-text>A Hamming value comparator according to any of the preceding Claims, wherein each bit manipulation cell (22,36) has a first plurality of inputs (AINL, AINR) for receiving respective bits (a<sub>1</sub>, a<sub>2</sub> etc) derived from one of said arrays (a<sub>1</sub>...a<sub>8</sub>) and a second plurality of inputs (BINL BINR) for receiving respective bits (b<sub>1</sub>...b<sub>2</sub>) derived from the other of said binary arrays (b<sub>1</sub>...b<sub>8</sub>), and said bit manipulation cell (22,36) has a corresponding plurality of outputs, and logic means for outputting on a pre-selected one of said outputs a set bit if the Hamming value of the bits (a<sub>1</sub>...a<sub>8</sub>) set on said first plurality of inputs is<!-- EPO <DP n="44"> --> greater than the Hamming value of the bits (b<sub>1</sub>...b<sub>8</sub>) set on said second plurality of inputs.</claim-text></claim>
<claim id="c-en-01-0012" num="0012">
<claim-text>A Hamming value comparator according to Claim 1 for comparing two one or more dimensional binary arrays (a<sub>1</sub>...a<sub>8</sub>;b<sub>1</sub>...b<sub>8</sub>) and comprising a plurality of alternate layers of bit manipulation cells (68, 70, 72), ones of said layers comprising a plurality of first bit manipulation cells (68) for shifting set bits in the input arrays towards a pre-set bit position, others of said layers comprising a plurality of said first bit manipulation cells (68), in combination with a Hamming Elimination cell (72) for eliminating corresponding set bits in each of said arrays.</claim-text></claim>
<claim id="c-en-01-0013" num="0013">
<claim-text>A Hamming value comparator according to Claim 1, for comparing two 2-dimensional arrays of binary data (ABCD; abcd) and determining which, if either, has the greater number of logic 1's set, said comparator comprising a plurality of layers (80, 82) of bit manipulation cells (84), each cell (84) including at least two inputs and two outputs and being adapted to shift set bits towards a preset bit position, and being interconnected between layers to effect at least one of bit shifting and bit elimination, thereby to obtain an output indicative of which, if either, array has the greater number of logic 1's set.</claim-text></claim>
<claim id="c-en-01-0014" num="0014">
<claim-text>A Hamming value comparator according to Claim 13, wherein said comparator comprises alternate layers (80,<!-- EPO <DP n="45"> --> 82), ones of said layers (80) comprising an array of 4+4 bit manipulation cells (84), and others (82) of said layers comprising an array of said 4+4 bit- manipulation cells (84), a plurality of 2+2 bit manipulation cells (88) disposed peripherally, and a plurality of passthroughs (I).</claim-text></claim>
<claim id="c-en-01-0015" num="0015">
<claim-text>A Hamming value comparator according to Claim 14, wherein the bit manipulation cells in each layer are configured to shift the bits towards a common axis or focal point relative to said layer.</claim-text></claim>
<claim id="c-en-01-0016" num="0016">
<claim-text>A Hamming value comparator according to Claim 14 or 15, wherein said 2+2 bit manipulation cells (88) perform the logic operations substantially as set out below, with inputs a,b,c,d, and outputs Ya, Yb, Yc, Yd:-<maths id="math0008" num="(Equation Set (4))"><math display="block"><mrow><mtext>Ya = a # b # c # d</mtext><mspace linebreak="newline"/><mtext>Yb = (d &amp; c) # (d &amp; b) # (d &amp; a) # (c &amp; b) # (c &amp; a) #</mtext><mspace linebreak="newline"/><mtext>(b &amp; a)</mtext><mspace linebreak="newline"/><mtext>Yc = (d &amp; c &amp; b)#(d &amp; c &amp; a)#(d &amp; b &amp; a)#(c &amp; b &amp; a)</mtext><mspace linebreak="newline"/><mtext>Yd = a &amp; b &amp; c &amp; d</mtext></mrow></math><img id="ib0008" file="imgb0008.tif" wi="320" he="5" img-content="math" img-format="tif"/></maths> wherein "&amp;" represents the AND operator and # represents the OR operator.</claim-text></claim>
<claim id="c-en-01-0017" num="0017">
<claim-text>A Hamming value comparator according to any of Claims 14 to 16, wherein said 4+4 bit manipulation cell (84) performs on the inputs ({ABCD} and {abcd}) to provide the<!-- EPO <DP n="46"> --> outputs YA, YB, YC, YD, and Ya, Yb, Yc, Yd in accordance with the logic operations set out in Figure 17.</claim-text></claim>
<claim id="c-en-01-0018" num="0018">
<claim-text>A binary sum and threshold device comprising a Hamming value comparator according to any of the preceding claims.</claim-text></claim>
<claim id="c-en-01-0019" num="0019">
<claim-text>A method of determining which, if either, of a first one- or more-dimensional weightless array of weightless bits (a<sub>1</sub>...a<sub>8</sub>) and a second one- or more-dimensional weightless array of weightless bits (b<sub>1</sub>...b<sub>8</sub>), has the greater number of logic 1's therein, said method comprising:-
<claim-text>(i) applying the bits from said arrays to processing means comprising a plurality of layers of (n+n)-bit manipulation cells (22, 36, 46, 56 etc), each manipulation cell (22, 36, 46, 56 etc) having a first n-inputs for receiving respective bits corresponding to respective bits (a<sub>1</sub>, a<sub>2</sub> etc.) in said first array (a<sub>1</sub>. . .a<sub>8</sub>), and a second n-inputs for receiving bits corresponding to respective bits (b<sub>1</sub>, b<sub>2</sub> etc.) in said second array (b<sub>1</sub>...b<sub>8</sub>), a first n-outputs and a second n-outputs corresponding to said first and second n-inputs respectively,</claim-text>    wherein each manipulation cell (26, 36, 46, 56 etc), comprises logic means (24, 26, 28 etc), for performing at least one of a bit shift operation and a bit elimination operation,<br/>
   the (n+n)-bit manipulation cells (22, 36, 46, 56 etc), being interconnected by passing the outputs of each layer<!-- EPO <DP n="47"> --> apart from the final layer to respective inputs of the next or the next-but-one layer,<br/>
   wherein in successive layers, the bits set at the output of said bit manipulation cells migrate in successive layers towards a common bit position relative to said layers, with the final layer providing an output indicative of said Hamming relationship.</claim-text></claim>
</claims><!-- EPO <DP n="48"> -->
<claims id="claims02" lang="de">
<claim id="c-de-01-0001" num="0001">
<claim-text>Hammingwert-Komparator zur Lieferung eines Ausgangs, der die Hammingwert-Beziehung eines ersten ein- oder mehrdimensionalen ungewogenen Feldes ungewogener Bits (a<sub>1</sub> ... a<sub>8</sub>) und eines zweiten ein- oder mehrdimensionalen ungewogenen Feldes ungewogener Bits (b<sub>1</sub> ... b<sub>8</sub>) anzeigt,<br/>
   wobei der Hammingwert eines gegebenen ungewogenen Feldes die Zahl der darin befindlichen logischen 1's ist und die Hammingwert-Beziehung von zwei ungewogenen Feldern anzeigt, welches den größeren Hammingwert hat oder ob die Hammingwerte hiervon die gleichen sind;<br/>
   wobei der Hammingwert-Komparator die folgenden Merkmale aufweist:
<claim-text>Mittel, um die Bits von den Feldern einem Prozessor zuzuführen, der mehrere Lagen von (n+n)-Bit-Manipulationszellen (22, 36, 46, 56 usw.) aufweist, wobei jede Manipulationszelle (22, 36, 46, 56 usw.) erste n-Eingänge zum Empfang der jeweiligen Bits aufweist, die den jeweiligen Bits (a<sub>1</sub> a<sub>2</sub> usw.) in dem ersten Feld (a<sub>1</sub> ... a<sub>8</sub>) entsprechen und zweite n-Eingänge vorgesehen sind, um Bits zu empfangen, die den jeweiligen Bits (b<sub>1</sub>, b<sub>2</sub> usw.) in dem zweiten Feld (b<sub>1</sub> ... b<sub>8</sub>) entsprechen und erste n-Ausgänge und zweite n-Ausgänge jeweils den ersten bzw. zweiten n-Eingängen entsprechen,</claim-text>    wobei jede Manipulationszelle (22, 36, 46, 56 usw.) Logikmittel (24, 26, 28 usw.) aufweist, um wenigstens eine Bit-Verschiebeoperation oder eine Bit-Eliminierungsoperation durchzuführen,<br/>
   wobei die (n+n)-Bit-Manipulationszellen (22, 36, 46, 56 usw.) miteinander verbunden sind, indem die Ausgänge jeder Schicht außer der letzten Schicht nach den jeweiligen Eingängen der nächsten oder übernächsten Lage verlaufen,<br/>
<!-- EPO <DP n="49"> -->   und wobei in aufeinanderfolgenden Lagen die Bit-Gruppen am Ausgang der Manipulationszellen in aufeinanderfolgende Lagen nach einer gemeinsamen Bit-Position relativ zu den Lagen wandern und die Endlage einen Ausgang liefert, der die Hamming-Beziehung anzeigt.</claim-text></claim>
<claim id="c-de-01-0002" num="0002">
<claim-text>Hammingwert-Komparator nach Anspruch .1, bei welchem der Prozessor mehrere im Wesentlichen gemeinsame (n+n)-Bit-Manipulationszellen (22, 36, 46, 56 usw.) aufweist und jede Manipulationszelle Logikmittel umfasst, um die folgenden Schritte durchzuführen:
<claim-text>(i) eine Bit-Verschiebeoperation, wobei Bit-Gruppen in jedem der ersten und zweiten n-Eingänge in einer vorbestimmten Richtung verschoben werden und das Vorhandensein genullter Bits ein Erscheinen in einer Bit-verschobenen Position in dem entsprechenden n-Ausgang ermöglicht, und</claim-text>
<claim-text>(ii) eine Hamming-Eliminierungsoperation, wobei dann, wenn eine logisch 1 an einer gegebenen Bit-Position in den ersten Eingängen steht, die einer logisch 1 an einer entsprechenden Bit-Position in den zweiten Eingängen entspricht, beide Bit-Gruppen auf logisch 0 gesetzt werden.</claim-text></claim-text></claim>
<claim id="c-de-01-0003" num="0003">
<claim-text>Hammingwert-Komparator nach Anspruch 2, bei welchem die Hamming-Eliminierungsoperation eine volle Eliminierungsoperation ist, wobei eine logisch 1 in einem der ersten Eingänge in der Lage ist, eine logisch 1 an irgendeiner Bit-Position in den zweiten n-Eingängen zu eliminieren.</claim-text></claim>
<claim id="c-de-01-0004" num="0004">
<claim-text>Hammingwert-Komparator nach Anspruch 2, bei welchem die Hamming-Eliminierungsoperation eine partielle Eliminierungsoperation ist, wobei eine logisch 1 an einer gegebenen Bit-Position in den ersten n-Eingängen nur eine logisch 1 an der gleichen Bit-Position in den zweiten n-Eingängen eliminieren kann.</claim-text></claim>
<claim id="c-de-01-0005" num="0005">
<claim-text>Hammingwert-Komparator nach einem der vorhergehenden Ansprüche, bei welchem die Bit-Manipulationszellen eine vollständige Bit-Verschiebung durchführen, wobei sowohl für die ersten als auch die zweiten n-Eingänge eine logisch 1 immer in der vorbestimmten Richtung verschoben wird, wenn eine oder mehrere logische 0 benachbart zur logisch 1 in Richtung der Bit-Verschiebung vorhanden sind.<!-- EPO <DP n="50"> --></claim-text></claim>
<claim id="c-de-01-0006" num="0006">
<claim-text>Hammingwert-Komparator nach einem der vorhergehenden Ansprüche, bei welchem jede Bit-Manipulationszelle (22, 36, 46, 56 usw.) vier Eingänge (AINL, AINR, BINL, BINR) und vier Ausgänge (AOUTL, AOUTR, BOUTL, BOUTR) aufweist und die Bit-Manipulationszellen in der ersten Lage so angeordnet sind, dass für jede Bit-Manipulationszelle (22, 36) zwei Eingänge (AINL, AINR) jeweils ein entsprechendes Bit empfangen, das von einer der Binärfelder (a<sub>1</sub> ... a<sub>8</sub>) abgeleitet wird und die anderen beiden Eingänge (BINL, BINR) jeweils ein entsprechendes Bit empfangen, das von dem anderen Binärfeld (b<sub>1</sub> ... b<sub>8</sub>) abgeleitet wurde.</claim-text></claim>
<claim id="c-de-01-0007" num="0007">
<claim-text>Hammingwert-Komparator nach Anspruch 6, bei welchem jede der entsprechenden Gruppen von zwei Eingängen (AINL, AINR; BINL, BINR) nach den Bit-Manipulationszellen (22, 36) in der ersten Lage benachbarte Bits empfangen, die von den entsprechenden Binärfeldern (a<sub>1</sub> ... a<sub>8</sub>; b<sub>1</sub> ... b<sub>8</sub> usw.) abgeleitet sind, abgenommen von einer geraden Begrenzung.</claim-text></claim>
<claim id="c-de-01-0008" num="0008">
<claim-text>Hammingwert-Komparator nach Anspruch 7, bei welchem jede Manipulationszelle (22, 36) eine Operation auf die Bits (AINL, AINR; BINL, BINR) durchführt, die von den ersten und zweiten Binärfeldern (a<sub>1</sub> ... a<sub>8</sub>; b<sub>1</sub> ... b<sub>8</sub>) abgeleitet wurden und an den entsprechenden Eingängen empfangen wurden, wodurch eine Bit-Gruppe nach einer vorbestimmten Bit-Richtung verschoben und entsprechende positionierte Bit-Gruppen vollständig oder teilweise eliminiert werden.</claim-text></claim>
<claim id="c-de-01-0009" num="0009">
<claim-text>Hammingwert-Komparator nach Anspruch 5 bei Abhängigkeit von Anspruch 3, bei welchem jede der Bit-Manipulationszellen eine Wahrheitstabelle aufweist, die im Wesentlichen wie folgt oder invers hierzu aufgebaut ist.<!-- EPO <DP n="51"> --> 
<tables id="tabl0009" num="0009">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center"><b>A in L</b></entry>
<entry namest="col2" nameend="col2" align="center"><b>A in R</b></entry>
<entry namest="col3" nameend="col3" align="center"><b>B in L</b></entry>
<entry namest="col4" nameend="col4" align="center"><b>B in R</b></entry>
<entry namest="col5" nameend="col5" align="center"><b>A out L</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>A out R</b></entry>
<entry namest="col7" nameend="col7" align="center"><b>B out L</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>B out R</b></entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>1</b></entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center"><b>1</b></entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>1</b></entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row></tbody></tgroup>
</table>
</tables> wobei AINL, AINR, BINL, BINR die vier Eingänge nach der Zelle sind und AOUTL, AOUTR, BOUTL, BOUTR die vier Ausgänge sind.</claim-text></claim>
<claim id="c-de-01-0010" num="0010">
<claim-text>Hammingwert-Komparator nach Anspruch 5 bei Abhängigkeit von Anspruch 4, bei welchem jede Bit-Manipulationszelle eine Wahrheitstabelle enthält, die im Wesentlichen wie im Folgenden beschrieben oder invers hierzu aufgebaut ist.<!-- EPO <DP n="52"> --> 
<tables id="tabl0010" num="0010">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="center"><b>A in L</b></entry>
<entry namest="col2" nameend="col2" align="center"><b>A in R</b></entry>
<entry namest="col3" nameend="col3" align="center"><b>B in L</b></entry>
<entry namest="col4" nameend="col4" align="center"><b>B in R</b></entry>
<entry namest="col5" nameend="col5" align="center"><b>A out L</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>A out R</b></entry>
<entry namest="col7" nameend="col7" align="center"><b>B out L</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>B out R</b></entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center"><b>1</b></entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center"><b>1</b></entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">0</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">0</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center"><b>1</b></entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center"><b>1</b></entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">0</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">0</entry>
<entry namest="col5" nameend="col5" align="center"><b>1</b></entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="center">1</entry>
<entry namest="col2" nameend="col2" align="center">1</entry>
<entry namest="col3" nameend="col3" align="center">1</entry>
<entry namest="col4" nameend="col4" align="center">1</entry>
<entry namest="col5" nameend="col5" align="center">0</entry>
<entry namest="col6" nameend="col6" align="center">0</entry>
<entry namest="col7" nameend="col7" align="center">0</entry>
<entry namest="col8" nameend="col8" align="center">0</entry></row></tbody></tgroup>
</table>
</tables></claim-text></claim>
<claim id="c-de-01-0011" num="0011">
<claim-text>Hammingwert-Komparator nach einem der vorhergehenden Ansprüche, bei welchem jede Bit-Manipulationszelle (22, 36) eine erste Mehrzahl von Eingängen (AINL, AINR) zum Empfang der jeweiligen Bits (a<sub>1</sub>, a<sub>2</sub> usw.) aufweist, die von einem der Felder (a<sub>1</sub> ... a<sub>8</sub>) abgeleitet wurden und eine zweite Mehrzahl von Eingängen (BINL, BINR) zum Empfang der jeweiligen Bits (b<sub>1</sub> b<sub>2</sub>), die von den anderen Binärfeldern (b<sub>1</sub> ... b<sub>8</sub>) abgeleitet wurden und die Bit-Manipulationszelle (22, 36) eine entsprechende Mehrzahl von Ausgängen aufweist und Logikmittel vorgesehen sind, um auf einem vorgewählten Ausgang eine Bit-Gruppe auszugeben, wenn der Hammingwert der Bits (a<sub>1</sub> ... a<sub>8</sub>) auf der ersten Mehrzahl von Eingängen größer ist als der Hammingwert der Bits (b<sub>1</sub> ... b<sub>8</sub>) auf der zweiten Mehrzahl von Eingängen.<!-- EPO <DP n="53"> --></claim-text></claim>
<claim id="c-de-01-0012" num="0012">
<claim-text>Hammingwert-Komparator nach Anspruch 1 zum Vergleich von zwei einoder mehrdimensionalen Binärfeldern (a<sub>1</sub> ... a<sub>8</sub>; b<sub>1</sub> ... b<sub>8</sub>), der mehrere abwechselnde Lagen von Bit-Manipulationszellen (68, 70, 72) aufweist und eine der Lagen eine Mehrzahl von ersten Bit-Manipulationszellen (68) zur Verschiebung der Bit-Gruppen in den Eingangsfeldem nach einer vorbestimmten Bit-Position aufweist und andere der Lagen mehrere Bit-Manipulationszellen (68) in Verbindung mit einer Hamming-Eliminierungszelle (72) aufweisen, um entsprechende Bit-Gruppen in jedem der Felder zu eliminieren.</claim-text></claim>
<claim id="c-de-01-0013" num="0013">
<claim-text>Hammingwert-Komparator nach Anspruch 1 zum Vergleich von zwei zweidimensionalen Feldern binärer Daten (ABCD; abcd) und zur Bestimmung, welche, wenn überhaupt, die größere Zahl von logischen 1's enthält, wobei der Komparator eine Mehrzahl von Lagen (80, 82) von Bit-Manlpulationszellen (84) aufweist und jede Zelle (84) wenigstens zwei Eingänge und zwei Ausgänge aufweist und so ausgebildet ist, dass die Bit-Gruppen nach einer vorgewählten Bit-Position verschoben werden und eine Verbindung zwischen den Lagen vorhanden ist, um wenigstens eine Bit-Verschiebung oder eine Bit-Eliminierung durchzuführen, wodurch ein Ausgang erhalten wird, der anzeigt, welches Feld die größere Zahl von logischen 1's enthält, wenn überhaupt welche vorhanden sind.</claim-text></claim>
<claim id="c-de-01-0014" num="0014">
<claim-text>Hammingwert-Komparator nach Anspruch 13, bei welchem der Komparator abwechselnde Lagen (80, 82) aufweist und eine der Lagen (80) ein Feld von 4+4-Bit-Manipulationszellen (84) umfasst und die andere Lage (82) ein Feld von 4+4-Bit-Manipulationszellen (84) aufweist und mehrere 2+2-Bit-Manipulationszellen (88) in Umfangsrichtung angeordnet sind und mehrere Durchgänge (I) vorgesehen sind.</claim-text></claim>
<claim id="c-de-01-0015" num="0015">
<claim-text>Hammingwert-Komparator nach Anspruch 14, bei welchem die Bit-Manipulationszellen in jeder Lage so ausgebildet sind, dass die Bits nach einer gemeinsamen Achse oder einem Brennpunkt relativ zu den Lagen verschoben werden.</claim-text></claim>
<claim id="c-de-01-0016" num="0016">
<claim-text>Hammingwert-Komparator nach einem der Ansprüche 14 oder 15, bei welchem die 2+2-Bit-Manipulationszellen (88) die Logikoperationen wie nachstehend beschrieben unter Benutzung der Eingänge a, b, c, d und der Ausgänge Ya, Yb, Yc, Yd durchführen:<!-- EPO <DP n="54"> --><maths id="math0009" num="(Gleichungsgruppe 4))"><math display="block"><mrow><mtext>Ya = a # b # c # d</mtext><mspace linebreak="newline"/><mtext>Yb = (d &amp; c) # (d &amp; b) # (d &amp; a) # (c &amp; b) # (c &amp; a) # (b &amp; a)</mtext><mspace linebreak="newline"/><mtext>Yc = (d &amp; c &amp; b) # (d &amp; c &amp; a) # (d &amp; b &amp; a) # (c &amp; b &amp; a)</mtext><mspace linebreak="newline"/><mtext>Yd = a &amp; b &amp; c &amp; d</mtext></mrow></math><img id="ib0009" file="imgb0009.tif" wi="335" he="5" img-content="math" img-format="tif"/></maths> wobei "&amp;" den UND-Operator und "#" den ODER-Operator repräsentiert.</claim-text></claim>
<claim id="c-de-01-0017" num="0017">
<claim-text>Hammingwert-Komparator nach einem der Ansprüche 14 bis 16, bei welchem die 4+4-Bit-Manipulationszelle (84) über die Eingänge ({ABCD} und {abcd}) Ausgänge YA, YB, YC, YD und Ya, Yb, Yc, Yd gemäß den Logikoperationen liefert, wie sie in Fig. 17 dargestellt sind.</claim-text></claim>
<claim id="c-de-01-0018" num="0018">
<claim-text>Binär-Summierungs- und Schwellwertvorrichtung mit einem Hammingwert-Komparator nach einem der vorhergehenden Ansprüche.</claim-text></claim>
<claim id="c-de-01-0019" num="0019">
<claim-text>Verfahren zur Bestimmung, ob, wenn überhaupt, ein erstes ein- oder mehrdimensioneles ungewogenes Feld ungewogener Bits (a<sub>1</sub>... a<sub>8</sub>) oder ein zweites ein- oder mehrdimensionales ungewogenes Feld ungewogener Bits (b<sub>1</sub>... b<sub>8</sub>) die größere Zahl logischer 1's aufweist, wobei das Verfahren die folgenden Schritte umfasst:
<claim-text>(i) es werden die Bits aus den Feldern einem Prozessor zugeführt, der eine Mehrzahl von Lagen von (n+n)-Bit-Manipulationszellen (22, 36, 46, 56 usw.) aufweist und jede Manipulationszelle (22, 36, 46, 56 usw.) erste n-Eingänge zum Empfang der jeweiligen Bits aufweist, die den Bits (a<sub>1</sub>, a<sub>2</sub> usw.) in dem ersten Feld (a<sub>1</sub>... a<sub>8</sub>) entsprechen und zweite n-Eingänge zum Empfang von Bits entsprechend den jeweiligen Bits (b<sub>1</sub>, b<sub>2</sub> usw.) in dem zweiten Feld (b<sub>1</sub>... b<sub>8</sub>) und erste n-Ausgänge und zweite n-Ausgänge entsprechend den ersten bzw. den zweiten Eingängen vorgesehen sind,</claim-text>    wobei jede Manipulationszelle (22, 36, 46, 56 usw.) Logikmittel (24, 26, 28 usw.) aufweist, um wenigstens eine Bit-Verschiebeoperation oder eine Bit-Eliminierungsoperation durchzuführen,<br/>
<!-- EPO <DP n="55"> -->   wobei die n+n-Bit-Manipulationszellen (22, 36, 46, 56 usw.) miteinander verbunden sind, indem die Ausgänge jeder Lage außer der Endlage nach den jeweiligen Eingängen der nächsten oder übernächsten Lage hindurchlaufen,<br/>
   wobei in aufeinanderfolgenden Lagen die Bit-Gruppen am Ausgang der Bit-Manipulationszellen in aufeinanderfolgende Lagen nach einer gemeinsamen Bit-Position relativ zu den Lagen wandern und die Endlage einen Ausgang liefert, der die Hamming-Beziehung anzeigt.</claim-text></claim>
</claims><!-- EPO <DP n="56"> -->
<claims id="claims03" lang="fr">
<claim id="c-fr-01-0001" num="0001">
<claim-text>Comparateur de valeur de Hamming pour fournir une sortie indiquant la relation de valeur de Hamming entre un premier tableau sans pondération uni- ou multidimensionnel de bits sans pondération (a<sub>1</sub>...a<sub>8</sub>) et un deuxième tableau sans pondération uni- ou multidimensionnel de bits sans pondération (b<sub>1</sub>...b<sub>8</sub>),<br/>
   dans lequel la valeur de Hamming d'un tableau sans pondération donné est le nombre de 1 logiques qui y sont contenus et la relation de Hamming entre deux tableaux sans pondération indique quelle valeur de Hamming est la plus grande ou bien l'égalité des valeurs de Hamming en question,<br/>
   ledit comparateur de valeur de Hamming comprenant :
<claim-text>des moyens pour appliquer les bits desdits tableaux au moyen de traitement comprenant une pluralité de couches de cellules de manipulation de (n+n) bits pratiquement communes (22, 36, 46, 56, etc.), chaque cellule de manipulation (22, 36, 46, 56, etc.) ayant un premier ensemble de n entrées pour recevoir les bits respectifs correspondant à ceux (a<sub>1</sub>, a<sub>2</sub>, etc.) dudit premier tableau (a<sub>1</sub>...a<sub>8</sub>), et un deuxième ensemble de n entrées pour recevoir les bits respectifs correspondant à ceux (b<sub>1</sub>, b<sub>2</sub>, etc.) dudit deuxième tableau (b<sub>1</sub>...b<sub>8</sub>) , un premier et un deuxième ensemble de n sorties correspondant respectivement aux dits premier et deuxième ensembles de n entrées,</claim-text>    dans lequel chaque cellule de manipulation (26, 36, 46, 56, etc.) comprend des moyens logiques (24, 26, 28, etc.) pour effectuer au moins une parmi une opération de décalage de bit et une opération d'élimination de bit,<br/>
<!-- EPO <DP n="57"> -->   les cellules de manipulation de (n+n) bits (22, 36, 46, 56, etc.) étant interconnectées en passant les sorties de chaque couche à l'exception de la couche finale vers les entrées respectives de la couche suivante ou de celle d'après,<br/>
   dans lequel, dans les couches successives, les bits positionnés à la sortie desdites cellules de manipulation de bits migrent en couches successives vers une position commune des bits par rapport aux dites couches, la couche finale fournissant une sortie qui indique ladite relation de Hamming.</claim-text></claim>
<claim id="c-fr-01-0002" num="0002">
<claim-text>Comparateur de valeur de Hamming selon la revendication 1, dans lequel lesdits moyens de traitement comprennent une pluralité de cellules de manipulation de (n+n) bits pratiquement communes (22, 36, 46, 56, etc.), chaque cellule de manipulation comprenant des moyens logiques pour effectuer :
<claim-text>(i) une opération de décalage de bit dans laquelle les bits positionnés dans chacun desdits premier et deuxième ensembles de n entrées sont décalés dans une direction prédéterminée, où la présence des bits non positionnés leur permet d'apparaître dans une position décalée des bits dans les ensembles de n sorties correspondants, et</claim-text>
<claim-text>(ii) une opération d'élimination de Hamming, dans laquelle, dans le cas où un 1 logique se trouverait à une position de bit donnée dans lesdites premières entrées correspondant à un 1 logique dans une position de bit équivalente dans ledit deuxième ensemble de n entrées, lesdits deux bits positionnés sont repositionnés à un 0 logique.</claim-text><!-- EPO <DP n="58"> --></claim-text></claim>
<claim id="c-fr-01-0003" num="0003">
<claim-text>Comparateur de valeur de Hamming selon la revendication 2, dans lequel ladite opération d'élimination de Hamming est une opération d'élimination complète moyennant quoi un 1 logique dans un dudit premier ensemble de n entrées est capable d'éliminer un 1 logique à n'importe quelle position de bit dans ledit deuxième ensemble de n entrées.</claim-text></claim>
<claim id="c-fr-01-0004" num="0004">
<claim-text>Comparateur de valeur de Hamming selon la revendication 2, dans lequel ladite opération d'élimination de Hamming est une opération d'élimination partielle dans laquelle un 1 logique à une position de bit donnée dans ledit premier ensemble de n entrées ne peut éliminer qu'un 1 logique à la même position de bit dans ledit deuxième ensemble de n entrées.</claim-text></claim>
<claim id="c-fr-01-0005" num="0005">
<claim-text>Comparateur de valeur de Hamming selon l'une quelconque des revendications précédentes, dans lequel lesdites cellules de manipulation de bits effectuent un décalage de bits complet dans lequel, pour chacun desdits premier et deuxième ensembles de n entrées, un 1 logique est toujours décalé dans ladite direction prédéterminée s'il existe un ou plusieurs 0 logiques adjacents au dit 1 logique dans la direction dudit décalage de bits.</claim-text></claim>
<claim id="c-fr-01-0006" num="0006">
<claim-text>Comparateur de valeur de Hamming selon l'une quelconque des revendications précédentes, dans lequel chaque cellule de manipulation de bits (22, 36, 46, 56, etc.) comprend quatre entrées (AINL, AINR, BINL, BINR) et quatre sorties (AOUTL, AOUTR, BOUTL, BOUTR) et les<!-- EPO <DP n="59"> --> cellules de manipulation de bits dans ladite première couche sont disposées afin que pour chaque cellule de manipulation de bits (22, 36) chacune des deux entrées (AINL, AINR) reçoive un bit respectif dérivé d'un desdits tableaux binaires (a<sub>1</sub>...a<sub>8</sub>) et que chacune des deux autres entrées (BINL, BINR) reçoive un bit respectif dérivé de l'autre tableau binaire (b<sub>1</sub>...b<sub>8</sub>).</claim-text></claim>
<claim id="c-fr-01-0007" num="0007">
<claim-text>Comparateur de valeur de Hamming selon la revendication 6, dans lequel chacun desdits ensembles respectifs de deux entrées (AINL, AINR ; BINL, BINR) dans les cellules de manipulation des bits (22, 36) de ladite première couche reçoit les bits adjacents dérivés du tableau binaire correspondant, (a<sub>1</sub>...a<sub>8</sub>; b<sub>1</sub>...b<sub>8</sub>, etc.), pris sur une frontière paire.</claim-text></claim>
<claim id="c-fr-01-0008" num="0008">
<claim-text>Comparateur de valeur de Hamming selon la revendication 7, dans lequel chaque cellule de manipulation (32, 36) effectue une opération sur les bits (AINL, AINR; BINL, BINR) dérivée desdits premier et deuxième tableaux binaires (a<sub>1</sub>...a<sub>8</sub> ; a<sub>1</sub>...a<sub>8</sub>) reçus lors des entrées respectives, moyennant quoi un bit positionné est décalé vers une direction de bit prédéfinie et les bits positionnés correspondants sont éliminés totalement ou partiellement.</claim-text></claim>
<claim id="c-fr-01-0009" num="0009">
<claim-text>Comparateur de valeur de Hamming selon la revendication 5 lorsqu'elle dépend de la revendication 3, dans lequel chacune desdites cellules de manipulation de bits a une table de vérité disposée pratiquement comme indiqué ci-dessous ou bien inversée :<!-- EPO <DP n="60"> --> 
<tables id="tabl0011" num="0011">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="left">AinL</entry>
<entry namest="col2" nameend="col2" align="left">AinR</entry>
<entry namest="col3" nameend="col3" align="left">BinL</entry>
<entry namest="col4" nameend="col4" align="left">BinR</entry>
<entry namest="col5" nameend="col5" align="left">AoutL</entry>
<entry namest="col6" nameend="col6" align="left">AoutR</entry>
<entry namest="col7" nameend="col7" align="left">BoutL</entry>
<entry namest="col8" nameend="col8" align="left">BoutR</entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">1</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">1</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row></tbody></tgroup>
</table>
</tables> où AINL, AINR, BINL, BINR, sont les quatre entrées vers la cellule et AOUTL, AOUTR, BOUTL, BOUTR sont les quatre sorties.</claim-text></claim>
<claim id="c-fr-01-0010" num="0010">
<claim-text>Comparateur de valeur de Hamming selon la revendication 5 lorsqu'elle dépend de la revendication 4, dans lequel chacune desdites cellules de manipulation de bits a une table de vérité disposée pratiquement comme indiqué ci-dessous ou bien inversée :<!-- EPO <DP n="61"> --> 
<tables id="tabl0012" num="0012">
<table frame="all">
<tgroup cols="8" colsep="1" rowsep="1">
<colspec colnum="1" colname="col1" colwidth="19.68mm"/>
<colspec colnum="2" colname="col2" colwidth="19.68mm"/>
<colspec colnum="3" colname="col3" colwidth="19.68mm"/>
<colspec colnum="4" colname="col4" colwidth="19.68mm"/>
<colspec colnum="5" colname="col5" colwidth="19.68mm"/>
<colspec colnum="6" colname="col6" colwidth="19.68mm"/>
<colspec colnum="7" colname="col7" colwidth="19.68mm"/>
<colspec colnum="8" colname="col8" colwidth="19.68mm"/>
<thead valign="top">
<row>
<entry namest="col1" nameend="col1" align="left">AinL</entry>
<entry namest="col2" nameend="col2" align="left">AinR</entry>
<entry namest="col3" nameend="col3" align="left">BinL</entry>
<entry namest="col4" nameend="col4" align="left">BinR</entry>
<entry namest="col5" nameend="col5" align="left">AoutL</entry>
<entry namest="col6" nameend="col6" align="left">AoutR</entry>
<entry namest="col7" nameend="col7" align="left">BoutL</entry>
<entry namest="col8" nameend="col8" align="left">BoutR</entry></row></thead>
<tbody valign="top">
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">1</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">0</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">0</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">1</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">1</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">0</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row>
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">0</entry>
<entry namest="col5" nameend="col5" align="left">1</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row>
<row rowsep="1">
<entry namest="col1" nameend="col1" align="left">1</entry>
<entry namest="col2" nameend="col2" align="left">1</entry>
<entry namest="col3" nameend="col3" align="left">1</entry>
<entry namest="col4" nameend="col4" align="left">1</entry>
<entry namest="col5" nameend="col5" align="left">0</entry>
<entry namest="col6" nameend="col6" align="left">0</entry>
<entry namest="col7" nameend="col7" align="left">0</entry>
<entry namest="col8" nameend="col8" align="left">0</entry></row></tbody></tgroup>
</table>
</tables></claim-text></claim>
<claim id="c-fr-01-0011" num="0011">
<claim-text>Comparateur de valeur de Hamming selon l'une quelconque des revendications précédentes, dans lequel chaque cellule de manipulation de bits (22, 36) a une première pluralité d'entrées (AINL, AINR) pour recevoir les bits respectifs (a<sub>1</sub>, a<sub>2</sub>, etc.) dérivés à partir d'un desdits tableaux (a<sub>1</sub>...a<sub>8</sub>) et une deuxième pluralité d'entrées (BINL, BINR) pour recevoir les bits respectifs (b<sub>1</sub>...b<sub>2</sub>) dérivés à partir de l'autre desdits tableaux binaires (b<sub>1</sub>...b<sub>8</sub>), et que ladite cellule de manipulation de bits (22, 36) a une pluralité correspondante de sorties, et des moyens logiques pour la sortie sur une desdites sorties ayant été présélectionnée d'un bit positionné si la valeur de Hamming des bits (a<sub>1</sub>...a<sub>8</sub>) positionnés sur ladite première pluralité d'entrées est<!-- EPO <DP n="62"> --> plus grande que la valeur de Hamming des bits (b<sub>1</sub>...b<sub>8</sub>) positionnés sur ladite deuxième pluralité d'entrées.</claim-text></claim>
<claim id="c-fr-01-0012" num="0012">
<claim-text>Comparateur de valeur de Hamming selon la revendication 1, pour comparer deux tableaux binaires uni- ou multidimensionnels (a<sub>1</sub>...a<sub>8</sub>; b<sub>1</sub>...b<sub>8</sub>) et comprenant une pluralité de couches alternées de cellules de manipulation de bits (68, 70, 72), les unes desdites couches comprenant une pluralité de cellules de manipulation du premier bit (68) pour décaler les bits positionnés dans les tableaux d'entrée vers une position de bits présélectionnée, les autres desdites couches comprenant une pluralité de cellules de manipulation du premier bit (68), combinée à une cellule d'élimination de Hamming (72), pour éliminer les bits positionnés correspondants dans chacun desdits tableaux.</claim-text></claim>
<claim id="c-fr-01-0013" num="0013">
<claim-text>Comparateur de valeur de Hamming selon la revendication 1, pour comparer deux tableaux bidimensionnels de données binaires (ABCD ; abcd) et déterminer lequel, si il y a, a le plus grand nombre de 1 logiques positionnés, ledit comparateur comprenant une pluralité de couches (80, 82) de cellules de manipulation de bits (84), chaque cellule (84) comprenant au moins deux entrées et deux sorties et étant adaptée pour décaler les bits positionnés vers une position de bits prédéterminée et étant interconnectée entre les couches pour effectuer au moins une des opérations de décalage de bit et d'élimination de bit, afin d'obtenir de la sorte une sortie qui indique lequel, si c'est le cas, des tableaux a le plus grand nombre de 1 logiques positionnés.<!-- EPO <DP n="63"> --></claim-text></claim>
<claim id="c-fr-01-0014" num="0014">
<claim-text>Comparateur de valeur de Hamming selon la revendication 13, dans lequel ledit comparateur comprend des couches alternées (80, 82), les unes desdites couches (80) comprenant un tableau de cellules de manipulation de 4+4 bits (84) et les autres (82) desdites couches comprenant un tableau desdites cellules de manipulation de 4+4 bits (84), une pluralité de cellules de manipulation de 2+2 bits (88) disposées à la périphérie et une pluralité de voies de traversée (I).</claim-text></claim>
<claim id="c-fr-01-0015" num="0015">
<claim-text>Comparateur de valeur de Hamming selon la revendication 14, dans lequel les cellules de manipulation des bits de chaque couche sont configurées pour décaler les bits vers un axe commun ou un point focal relatif à ladite couche.</claim-text></claim>
<claim id="c-fr-01-0016" num="0016">
<claim-text>Comparateur de valeur de Hamming selon la revendication 14 ou 15, dans lequel lesdites cellules de manipulation de bits 2+2 (88) effectuent les opérations logiques pratiquement comme présenté ci-dessous, les entrées étant a, b, c, d et les sorties Ya, Yb, Yc, Yd :<maths id="math0010" num="(ensemble d'équations (4))"><math display="block"><mrow><mtext>Ya=a # b # c # d</mtext><mspace linebreak="newline"/><mtext>Yb = (d &amp; c) # (d &amp; b) # (d &amp; a) # (c &amp; b) # (c &amp; a)</mtext><mspace linebreak="newline"/><mtext># (b &amp; a)</mtext><mspace linebreak="newline"/><mtext>Yc = (d &amp; c &amp; b) # (d &amp; c &amp; a) # (d &amp; b &amp; a) # (c &amp;</mtext><mspace linebreak="newline"/><mtext>b &amp; a)</mtext><mspace linebreak="newline"/><mtext>Yd = a &amp; b &amp; c &amp; d</mtext></mrow></math><img id="ib0010" file="imgb0010.tif" wi="326" he="5" img-content="math" img-format="tif"/></maths><!-- EPO <DP n="64"> -->    où &amp; représente l'opérateur AND et # représente l'opérateur OR.</claim-text></claim>
<claim id="c-fr-01-0017" num="0017">
<claim-text>Comparateur de valeur de Hamming selon l'une quelconque des revendications 14 à 16, dans lequel ladite cellule de manipulation de 4+4 bits (84) opère sur les entrées ({ABCD} et {abcd}) pour fournir les sorties YA, YB, YC, YD et Ya, Yb, Yc, Yd selon les opérations logiques présentées sur la figure 17.</claim-text></claim>
<claim id="c-fr-01-0018" num="0018">
<claim-text>Dispositif à somme binaire et seuil comprenant un comparateur de valeur de Hamming selon l'une quelconque des revendications précédentes.</claim-text></claim>
<claim id="c-fr-01-0019" num="0019">
<claim-text>Procédé de détermination lequel, si il y a, qui, d'un premier tableau sans pondération uni- ou multidimensionnel de bits sans pondération (a<sub>1</sub>...a<sub>8</sub>) et d'un deuxième tableau sans pondération uni- ou multidimensionnel de bits sans pondération (b<sub>1</sub>...b<sub>8</sub>), contient le plus grand nombre de 1 logiques, ledit procédé comprenant :
<claim-text>(i) l'application des bits desdits tableaux aux moyens de traitement comprenant une pluralité de cellules de manipulation de (n+n) bits (22, 36, 46, 56, etc.), chaque cellule de manipulation (22, 36, 46, 56, etc.) ayant un premier ensemble de n entrées pour recevoir les bits respectifs correspondant aux bits respectifs (a<sub>1</sub>, a<sub>2,</sub> etc.) dudit premier tableau (a<sub>1</sub>...a<sub>8</sub>), et un deuxième ensemble de n entrées pour recevoir les bits correspondant aux bits respectifs (b<sub>1</sub>, b<sub>2,</sub> etc.) dans ledit deuxième tableau (b<sub>1</sub>...b<sub>8)</sub>, un premier ensemble de n sorties et un deuxième ensemble de n sorties<!-- EPO <DP n="65"> --> correspondant respectivement au premier et au deuxième ensemble de n entrées,</claim-text>    dans lequel chaque cellule de manipulation (26, 36, 46, 56, etc.), comprend des moyens logiques (24, 26, 28, etc.) pour exécuter au moins une parmi une opération de décalage de bit et une opération d'élimination de bit,<br/>
   les cellules de manipulation de (n+n) bits (22, 36, 46, 56, etc.), étant interconnectées par le passage des sorties de chaque couche, à l'exception de la couche finale, aux entrées respectives de la couche suivante ou de celle d'après,<br/>
   dans lequel, à travers les couches successives, les bits positionnés à la sortie desdites cellules de manipulation de bits migrent en couches successives vers une position de bits commune relative aux dites couches, la couche finale fournissant une sortie indiquant ladite relation de Hamming.</claim-text></claim>
</claims><!-- EPO <DP n="66"> -->
<drawings id="draw" lang="en">
<figure id="f0001" num=""><img id="if0001" file="imgf0001.tif" wi="128" he="244" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="67"> -->
<figure id="f0002" num=""><img id="if0002" file="imgf0002.tif" wi="130" he="243" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="68"> -->
<figure id="f0003" num=""><img id="if0003" file="imgf0003.tif" wi="157" he="235" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="69"> -->
<figure id="f0004" num=""><img id="if0004" file="imgf0004.tif" wi="130" he="248" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="70"> -->
<figure id="f0005" num=""><img id="if0005" file="imgf0005.tif" wi="128" he="250" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="71"> -->
<figure id="f0006" num=""><img id="if0006" file="imgf0006.tif" wi="167" he="190" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="72"> -->
<figure id="f0007" num=""><img id="if0007" file="imgf0007.tif" wi="129" he="245" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="73"> -->
<figure id="f0008" num=""><img id="if0008" file="imgf0008.tif" wi="170" he="193" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="74"> -->
<figure id="f0009" num=""><img id="if0009" file="imgf0009.tif" wi="172" he="233" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="75"> -->
<figure id="f0010" num=""><img id="if0010" file="imgf0010.tif" wi="126" he="252" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="76"> -->
<figure id="f0011" num=""><img id="if0011" file="imgf0011.tif" wi="161" he="237" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="77"> -->
<figure id="f0012" num=""><img id="if0012" file="imgf0012.tif" wi="144" he="254" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="78"> -->
<figure id="f0013" num=""><img id="if0013" file="imgf0013.tif" wi="166" he="239" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="79"> -->
<figure id="f0014" num=""><img id="if0014" file="imgf0014.tif" wi="170" he="198" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="80"> -->
<figure id="f0015" num=""><img id="if0015" file="imgf0015.tif" wi="140" he="243" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="81"> -->
<figure id="f0016" num=""><img id="if0016" file="imgf0016.tif" wi="137" he="167" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="82"> -->
<figure id="f0017" num=""><img id="if0017" file="imgf0017.tif" wi="163" he="217" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="83"> -->
<figure id="f0018" num=""><img id="if0018" file="imgf0018.tif" wi="157" he="250" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="84"> -->
<figure id="f0019" num=""><img id="if0019" file="imgf0019.tif" wi="161" he="241" img-content="drawing" img-format="tif"/></figure><!-- EPO <DP n="85"> -->
<figure id="f0020" num=""><img id="if0020" file="imgf0020.tif" wi="156" he="235" img-content="drawing" img-format="tif"/></figure>
</drawings>
</ep-patent-document>
