Patent GB-1522518-A (GB)
Title: Data comparison system
IPC: G06F11/14
Filed: 1975-11-27
Abstract: 1522518 Data comparison systems; data storage systems AGENCE NATIONALE DE VALORISATION DE LA RECHERCHE 27 Nov 1975 [4 Dec 1974] 48840/75 Heading G4A In a data comparison system, a succession of logical entities (e.g. alphanumeric characters) from a source 7 is compared with reference logical entities held in a store 1, the reference logical entities being recorded in store 1 in the form of a two-dimensional table with one entity per column, each row containing data elements of the same order for each reference logical entity, the first data element of a logical entity from source 7 being compared simultaneously and in parallel, according to a first selected function, which first selected function may be the Boolean identity function or the EXCLUSIVE-OR function and by means of an operator unit 2, with all the data elements of the first row of the table, the results of these comparisons being stored in a working register 4, the second data element of the logical entity from source 7 being similarly compared with all the data elements of the second row of the table, the results of these second comparisons being combined in parallel, according to a second selected function and by means of an operator unit 3, which second selected function may be the Boolean AND function or a counting function, with those earlier stored from the first comparisons, the results of this combination being stored in the working register 4. These steps are repeated in an iterative manner for the successive data elements of the logical entity, the results of the final combination held in working register 4 constituting the results of the comparison for the logical entity considered. Various combinations of the operator units 2, 3 and the working register 4 may be combined into a single operator unit, Figs. 7-11 (not shown). The results of successive comparisons effected on logical entities of a sequence of logical entities may be combined, according to a third selected function, which may be the Boolean OR function, to obtain a final comparison result. The logical entities may be of fixed or variable lengths; in the latter case the start and finish of a logical entity are delimited by either special characters (one data element in length) or special logical entities (a number of data elements in length). Those reference logical entites recorded in store 1 which have lengths less than the number of rows of the store may be terminated by special (in this case blank) characters. Comparisons of different logical entities of a sequence may use different tables and/or different first and selected functions, according to the order of a logical entity in the sequence, and the application of a comparison to a particular sequence may be defined and conditioned by the results of comparisons already effected. The results of the comparisons of a sequence may be successively compared with a group of types of such results by a further application of the above method of comparison. The special characters control (1) initialization of the system, e.g. loading of the reference logical entities into the table, (2) start or finish of a comparison, (3) choice of table and/or function, (4) definition of data to be transferred to another part of the system in the course of, or at the end of, a comparison, and (5) temporary stopping of a comparison if a desired special character is recognized. The special logical entities control (1) a comparison for the logical entities of a sequence defined by the recognized special logical entity, and (2) a storage operation for the logical entities of such a sequence. If the first function is selected to be EXCLUSIVE-OR and the second function to be a counting function, the system may be employed for the determination of Hamming distance codes. In a modification, Fig. 12 (not shown) the store 1 comprises a number of store modules (1a-1n), selection of a store module being achieved via address signals from a control unit 19. In Fig. 13 (not shown) a single store 1 is divided into a number of zones, zone selection also being achieved by address signals from control unit 19. In Fig. 15 (not shown), the store 1 is replaced by a store (50), each row of the store (50) containing, apart from data elements of the reference logical entities, the results of comparisons, according to the first function, of these data elements with the received data elements from source 7, the operator unit 2 then being omitted. In Fig. 14 (not shown), the operator unit 2 is constituted by a number of modules (2a-2n) each embodying a different first function. Data stores.-Figure 18 (not shown) shows a modular arrangement of a store suitable for use as the store 1 for character-by-character or bit-by-bit comparisons of reference logical entities stored therein with a logical entity from source 7. The store comprises h identical, preferably integrated circuit, modules (200.1- 200.h) each comprising n locations each of p bits, data and addresses being supplied in parallel to the modules on respective bases (202, 201) and selection of a module for writing being controlled by separate connections (206.1-206.h). The modules are read in parallel via respective buses (203.1-203.h), their outputs being fed to respective multiplexers (204.1-204.h) controlling character-bycharacter or bit-by-bit output selection. Fig. 19 (not shown) shows an embodiment of a data comparison system wherein tables for the special characters, special logical entities, reference logical entities and types of results are held in respective stores (300-303), each such store being preferably of the form shown in Fig. 18 (not shown) except that store (303) may be replaced by a number of recirculating shift registers. Sequences of data which have been compared by the system and the types of results may be held in respective buffer stores (340, 336) which are random access stores having duplicated address registers so that restarts may be made in the event of error by the storage of index pointers in the duplicate address registers. Such duplication of the address registers also permits the suspension of a comparison if an overflow off one of the buffer stores occurs, the contents of that buffer store then being transferred to a utilization device 13, and the modification of the contents of the buffer stores as desired, the location of the data to be modified being determined by the detection of special characters or special logical entities. A number of index pointers may be stored by replacing a duplicate address register with a FIFO or a LIFO register. A number of simultaneous restarts may similarly be made by replacing the single duplicate address register by a number of registers.