Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS3618027 A
Publication typeGrant
Publication dateNov 2, 1971
Filing dateMar 27, 1970
Priority dateMar 27, 1970
Publication numberUS 3618027 A, US 3618027A, US-A-3618027, US3618027 A, US3618027A
InventorsTse-Yun Feng
Original AssigneeResearch Corp
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Associative memory system with reduced redundancy of stored information
US 3618027 A
Images(14)
Previous page
Next page
Description  (OCR text may contain errors)

United States Patent [72] Inventor Tse-yun Feng Dewitt, N.Y.

[2]] Appl. No. 23,306

{22] Filed Mar. 27,1970

[45] Patented Nov. 2, 1971 [7 3] Assignee Research Corporation New York N.Y.

[54] ASSOCIATIVE MEMORY SYSTEM WITH REDUCED REDUNDANCY 0F STORED INFORMATION 18 Claims, 19 Drawing Figs.

[51) InLCl G061 15/00 [50] Field oiSearch v 1 340/1725 [56] Relerences Cited UNITED STATES PATENTS 3,332,069 7/1967 Joseph eta]. 340/1725 3,354,436 11/1967 Winder... 340/1725 3,388,381 6/1968 Prywez et a1 1 1 340/1725 3,405,395 10/1968 Wallin 340/1725 3.475,?33 10/1969 Gaines et a1. 340/1725 Primary ExammerGareth D Shaw Assistant Examiner-Ronald F Chapuran Auomeys-Robert Si Dunham, P E. Henninger. Lester W Clark, Gerald W. Griffin. Thomas F. Moran R. Bradlee Boal, Christopher C. Dunham Robert Scobey and Thomas P. Dowd ABSTRACT: Disclosed IS an associative memory system or ganized in a novel manner to reduce substantially redundancy of the stored information The invented system operates on the descriptors (or tags) of information items which may also include other data stored in a secondary memory. Each of the descriptors is subdivided into a number of fields, each field storing a data element The data elements of each field from all descriptors are stored in a basic associative memory (8AM) such that each RAM stores only data elements which are distinct from each other Redundancy ofdata elements in a RAM is thus eliminated The relationships between the data elements of the several fields of a descriptor are stored in a relation cube which may be in the form of an associative processing unit storing. like a conventional associative memory words which correspond in number to the descrlp tors stored in the BAMs and consist of the same number of fields, but contain 111 the fields shorter codes representing the corresponding data elements. Alternatively. the function of the relation cube 15 carried out by a multidimension matrix 0! special storage elements |n order to afford further reduction of storage redundancy Each of the basic associative memories and, in some cases the matrix. may be decomposed into several distinct levels. The decomposition results in further elimination 01' redundancy The invented associative memory system allows a variety of point and line searches. and allows for resolution of multiple responses by different types of ordered retrievals Exemplary search storage and retrieval procedures are described in detailv ASSOClAllON L lNTERROGATlON REG15TER 52 SELECTOR PATENTEU SHEET ASSOCIA EGISTE MASK REGISTER Fig.1.

(PRIOR ART) M 1 SAM 2:.

I SAM 3 CLEAR INTERROGATE 1 wane IN TERROCJATE O wRsTE DRIVE READ DRIVE Tiq. E.

(PRIOR ART) BITS O THE WORD i u v READOU (NVIfN'If )R.

TSE-YUN F A 770 ENE) PATENTEDnuvz l9?! 3518,02?

saw 02 0F 14 BAM No.2

BAN No.1

H1 vz Tic 3.

[3O ASSOClATION REmsTER )NTERROGATlON SELECTOR a .4. B\C B: a BAM1 sEc- BAMF SEC- QN TION 1 F ASSOCIATIVE szocssswe UMT "m ff H CATOR FtLE /42 PATENTEU NUV2 IQYi SHEET 12 [1F SHEET 13 HF PATENIED m2 Ian ASSOCIATIVE MEMORY SYSTEM WITH REDUCED TABLE OF CONTENTS Continued REDUNDANCY OF STORED INFORMATION Ill Detailed Description B. Organization 32 i- Second-Level BAM's. 32 TABLE OF CONTENT ii. Secondlevel Relation Cuhe 33 C. Functional Operations 33 (tlllltnll Storing l 1 List of'lalhlcs 2 ii. Search Operations in RAM it List of Flow (hurts 2 m iii. Resolving Multiple Responses and (ll Glossary of symbols used in the specification and in 'deretl Retrievals in RAM \l the drawings 36 iv. Retrieval Operations in System 4 I INTRODUCTION 5 v. Deleting and Updating 34 ll AN ASSOCIATIVE MEMORY SYSTEM D. Logic Design 34 EMPLOYING AN ASSOCIATIVE PROC- i. 8AM 34 SSIN UNIT S A RELATION C BE-L... 7 ii. Interrogation and Ordered Retrieval A. Organization 7 Control Circuit in BAM 35 i. Association Register 7 iii. Match Detector and Encoder Sectiuns..,.. 3n ii. Interrogation Selector 7 iv. First-Level Relation Cube 30 iii. Basic Associative Memories (BAMs)..... 7 iv. Binary Indexing Code Sections 7 List of Tables v. Associative Processing Unit (APU) 7 Table vi. Match lndicator(Ml) 7 N vii. File 7 Dcsmplw" B. Functional Operations 8 i. Storing 8 1 lldemlficat'on onhe comems of [he 5 Opera ii. Search Operations in BAM 8 comm] code (OPCC) register I Resolving Multipk RewonseS and 2 Operation control codes for the various types Ordered Retrievals in BAM II I I H) of searches performed by the invented system... 16 N Retrieva' Operations in System III I u I I 3 Truth table forthe interrogation bit inputs l7 (a) Screening process l2 4 table r relanfmship between memory (b) Resolving multiple responses l3 1" 'mermgallon drlver all, bl! mifimalch Ordered retrievals and resolving Slgfliil Ill multiple msponses n 5 Truth table for the lock bit and match detector v Deleting and pd g I I D 4 bits I 9 C. Logic Design l5 6 Truth t'flble for Slams or malch deleclor and i. Match Indicator l5 b'lmwmplex Search l9 ii. BAM l5 (a) Association register and interrogaof Flow Charis tion selector 17 Flow (b) Bit structure [8 Cha t (c) Mark bit 18 No. Description (d) Match detector, lock bit and response resolvercircuit I8 I Procedure for Ordered trieval of data ele- (e) Ordered retrieval control circuit 20 from a BAM in ascending Order f m Binary Indexing Code Section U 2! magnitude iv. Associative Processing Unit 22 2 profledure for Search nd retrieval of infor- (a) interrogation and ordered remew matron items matching given search criterion control circuit 22 a multiple match 3 (b) Bit structure 22 3 Procedure for Search n retriev l with (c) Match detector section 22 screemng Proccss t} I" THE ASSOCIATIVE MEMORY SYSTEM 4 PIOCEdUt'E illustrating OI'dCI'CCl retrieval and WITH A RELATION CUBE 24 multiple match resolution in the sy tem I4 A. Organization 25 5 Procedure 10 resolving tip e responses and Interrogation and ORC Circuim BAM'S for ordered retrieval in BAM 26 Match Indicator and File 2s 6 Alternative Procedure f resolving multiple ii. Encoder 25 responses and for ordered retrieval i AM... 27 iii. Relation Cube 25 7 Pmccdure for resolving multiple p ns s B. Functional Operations 25 'l for ordcred relrlevfll 0f BAM i ted Storing u 25 V with relation cube 34 ii. Search Operations in BAM 2 5 iii. Resolving Multiple Responses and Ordered RetrievalsinBAM.................. 25 iv. Retrieval Operations in System 25 v. Deleting and Updating 23 C. Logic Design 29 BACKGROUND OF THE INVENTION i. Relation Cube and Relation Elements 29 ii. Response Resolving Control Circuit 30 iii. Response Resolving Control Circuit for The invention is in the field of associative or content-adthe Alternative Algorithm 3 dressed memory systems which retrieve information on the N THE ASSQCIATIVE M MOR SYSTEM basis of data content rather than actual location in memory. WITH MULTLLEVEL RELATION CUBES For example, ifan associative memory system contains a bank DFCUMPOSED CASE) 32 file made up of information items each consisting ofa persons A. Decomposition ofil HAM 32 name and a history of his bank transactions, a persons record may be accessed not by the location in memory at which it is stored, but by specifying the name. In this example, the name of an individual would be a descriptor or tag of the information item and would be stored in the associative memory proper while the history of his bank transactions would usually be stored in a secondary memory. In a conventional associative memory each name is stored in full in the associative memory and there is normally some redundancy in the stored information since many names in a large set of names may have identical parts.

Following the example of names, the invented associative memory saves storage space and provides for increased efficiency by storing in one separate associative memory only the first names which are distinct from each other, while storing in a second and a third basic associative memory respectively all middle names which are distinct from each other, and all last names distinct from each other. At the same time the relationships between the names stored in the three basic associative memories are stored in a relation cube in order to allow reconstructing a complete list of all stored names. Duplicates of names which have already been stored are eliminated. Searches, storage and retrieval operation take into account the particular structure of the invented system.

In the prior art, Prywes et al. U.S. Pat. No. 3,388,381 discloses a large-scale memory which behaves like an associative memory but which actually is a specially programmed random access memory. Redundancy of the stored information is reduced to a certain extent by means of special programming of the random access memory, with corresponding increase in access complexity and with corresponding increase in the complexity of searches. The Prywes et a]. system is not a true associative memory and may not be manipulated as such.

ln Wallin, U.S. Pat. No. 3,405,395, a conventionally organized single-plane associative memory is searched in a conventional bit-column by bit-column search but starting only at the first memory column which has both zero and 1 bits. Thus columns which have only identical information are not searched.

Searches similar in function to the variety of searches performed in the subject invention are disclosed in Joseph et al. US. Pat. No. 3,332,069. However, the searches of the Joseph et al. system are performed on a conventionally organized associative memory and the disclosed search procedures would not operate with the invented associative memory.

Winder, U.S. Pat. No. 3,354,436 discloses an associative memory having a special matrix for recording multiple responses to a search and for allowing retrieval of a plurality of responses in certain orders. Again, the multiple response result capability of the Winder system is directed to a conventionally organized associative memory and will not be applicable to the radically different organization of the invented associative memory system.

SUMMARY OF THE INVENTION The invented associative memory system is organized in a novel manner designed to reduce redundancy of the stored information and to allow flexibility and ease of storage, searches, and retrievals.

The invented system operates with descriptors of information items whose remaining portions are stored in secondary storage. Each descriptor is subdivided into a number of fields, each field storing a data element. The data elements of the same field ofall descriptors are stored in a single basic associative memory (BAM) such that the stored data elements are distinct from each other (duplicates of already stored data elements are eliminated). The original relationships between the several data elements of a descriptor are preserved in a relation cube such that the complete descriptor can be reconstructed when desired.

The relationships between the data elements of the several BAMs may be stored in an associative processing unit which behaves functionally like a conventional associative memory but stores shorter codes identifying the data elements of a descriptor instead of storing the complete set of data elements of the descriptor. When storing new information in the invented associative memory, only data elements which are different from those already in a corresponding BAM are stored, but all relationships between the data elements of a new descriptor are stored in the associative processing unit. When searching, a search is made first through the data elements stored in the BAMs. This search is generally more efficient than a corresponding search in a conventional associative memory, because of the lack of redundancy between the data elements of a BAM. ln retrieval, a descriptor stored in the BAMs is reconstructed with the help of the codes stored in the associative processing unit. A screening process is provided to allow even faster retrieval of stored descriptors by determining, on the basis of the codes stored in the associative processing unit, which of the matched data elements from the BAMs would not be included in matched descriptors. The invented system has provisions for resolving multiple responses and for ordered retrievals of multiple responses, as well as for suitable deleting and updating of the stored information.

In an alternative embodiment, the function of storing the relationships between the data elements of the descriptors is carried out by a relation cube which is a multidimensional matrix of relation elements and affords further elimination of redundancy of the total amount of stored information. Storage, search and retrieval operations, including ordered retrievals, are carried out with a greater degree of efficiency.

In order to further reduce redundancy in the basic associative memories, one or more of the basic associative memories may be decomposed into second, or third, or fourth, etc.) level basic associative memories. Each of said higher level basic associative memory stores a subfield of the data elements stored in the original first-level basic associative memory. For example, one basic associative memory may be subdivided into two second-level basic associative memories, the first second-level memory storing the first one-third of the data elements of the original basic associative memory, and the second-level basic associative memory storing the remaining two-thirds of the original data elements. The second-level basic associative memories are served by a second-level rela tion cube for the purpose of reconstructing, from the subfields stored in the second-level memories, the complete data ele ments originally stored in the first-level basic associative memory. Each of the second-level basic associative memories may be further subdivided into third-level basic associative memories, which in turn are served by a third-level relation cube, etc. Different first-level basic associative memories may be decomposed to different levels.

The principles of the invention may also be applied to an as sociative memory system using a single basic associative memory and a-F-dimensional relation cube, where F is the number of fields (or data elements] of the descriptors stored in the system. For example, in a dictionary-type use of the system, a single BAM stores the letters of the alphabet, and a F-dimensional relation cube, where F is the length, in letters. of the longest word stored in the system, is used to associate sets ofletters into particular words, and to point to other infor mation associated with a word.

BRlEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram of an illustrative prior art associative memory system.

FIG. 2 is a block diagram of an associative memory cell of the prior art which may be used for storing bits of information in the invented system.

FlG. 3 is a block diagram illustrating a two-dimensional ex ample of basic associative memories and a relation cube.

FIG. 4 is a block diagram ofan embodiment of the invented system including a plurality of basic associative memories, an association processing unit serving as a relation cube, and access means.

FIG. 5 is a diagram of a match indicator circuit which operates in the ternary mode to indicate if a search criterion has found no matches, one match, or more than one match.

FIG. 6 is a block diagram showing a two-level match indicator in which each match indicator circuit is the circuit shown in FIG. 5.

FIG. 7 is a block diagram of a match indicator register for storing the outputs of match indicator circuits.

FIG. Bis a block diagram of an ordered retrieval control circuit for the jth bit of a basic associative memory (the kth BAM FIG. 9 is a block diagram of a mark bit and memory bit storage device associated with the ithe bit of the kth BAM of the invented system.

FIG. 10 is a block diagram of a match detector, block bit, and response resolver circuit.

FIG. I] is a diagram of a binary indexing code section of an exemplary basic associative memory storing eight data elements distinct from each other.

FIG. 12 is a block diagram showing the interflow of signals associated with a section of the associative processing unit.

FIG. 13 is a block diagram of a memory bit and match detector section associated with a word from the associative processing unit.

FIG. 14 is a block diagram ofa modification of the associative memory system of FIG. 4.

FIG. 15 is a block diagram illustrative of the relation cube and its match detector section as used in the system of FIG. 14.

FIG. 16 is a block diagram illustrating a response-resolving control circuit of the system illustrated'in Fig. 14.

FIG. 17 is a block diagram of an alternative response-resolving control circuit for use with the system illustrated in FIG. 14.

FIG. 18 is a block diagram illustrating the structure of a second-level relation cube of a modified associative memory system involving decomposing basic associative memories and relation cubes.

FIG. 19 is a block diagram of an interrogation and ordered retrieval control circuit associated with the jth bit of the kth BAM of the modified associative memory system to which FIG. [8 relates.

I. INTRODUCTION A conventional associative memory system usually stores a key word of each information item or document stored in the system. The key word, called a descriptor or a tag, is the part of an information item used to identify the item during the search operation. Search operations are performed on the descriptors of information items to distinguish those items which satisfy the search criteria from those that do not.

A descriptor usually consists of several different types ofinformation. each of them called a data element. A data element is usually the smallest complete information unit which characterizes the information item stored in the system. For instance, in a library catalog file, a data element of a descriptor of an information item may be the name of the author, or the name of the publisher. or the year of publication, or the field of interest of the book. The partitioning of a descriptor into data elements is according to the different attributes which those data elements possess. It should be noted that only descriptors are stored in the associative memory, while the associated documents are all stored in some secondary storage units. Identification of an information item in the associative memory leads to the location of the document which should be retrieved. In the associative memory, the data elements of the same attribute form a "field" and they are stored in the same bit positions in the memory. We shall call these bit positions occupied by the data elements of the same attribute a subassociative memory (SAM). Thus, data elements of different attributes are stored in different SAMs. To form complete descriptors for all the information items, these different SAMs may be connected together as shown in FIG. 1. Each bit of a data element may be stored in a storage device of the type shown in FIG. 2. FIGS. 1 and 2 are illustrative of prior art associative memories.

To carry out a search operation in this system, the associa tion criterion and mask values are stored in the association re gister and mask register, respectively. Interrogation drives (not shown in FIG. I) compare the association criterion with the descriptors stored in the memory. Any descriptor with any of its data elements mismatching the association criterion disqualifies its associated document as a desired item. If more than one descriptor matches the association criterion, al gorithms for resolving of multiple responses or ordered retrieval are employed to retrieve desired information items one at a time in sequence (or in order).

Let us consider one particular SAM of the memory shown in FIG. I. The data elements stored in the SAM are often not distinct ones, i.e., exactly the same data element could be stored more than once in different descriptors. Consider, for example, an associative memory which stores the information of a book catalog and a SAM is used to store the years of publications. For I million books published since 1470, there are only 500 distinct data elements in the SAM. This is redundancy of 99.95 percent.

Since the descriptor of an information item may be com sidered to consist ofa number of data elements and their relations, it is conceivable that with appropriate relation arrangement the redundancy may be eliminated or at least decreased.

An associative memory may be constructed with a number of basic associative memories (BAMs) where only distinct data elements are stored, and the descriptor of a document is formed by connecting its data elements together according to their relations.

A new associative memory system of this type may be organized with F BAMs (basic associative memories) and an F- dimensional relation cube. The BAMs store the distinct data elements and the F-dimensional relation cube establishes the relationships among data elements of different fields. In retrieving an information item from the system, the search operations are primarily in the BAMs. When the data elements constituting the descriptor of an interrogation item are identified in every BAM, through the relation cube the desired information item is located and retrieved.

A two-dimensional relation cube showing the association of data elements oftwo different fields is shown in FIG. 3. Field 1 is stored in RAM No. l which contains data elements dl l. 4'12, dl3, M4 and (115, all distinct from each other and field 2 is stored in RAM No. 2 which contains data elements dZl, d22, c123, d24, dZS, all distinct from each other. The dots in FIG. 3 represent the existing relationships between two data elements. From this it is clear that descriptors dl ld2l, dl2d24,dl3,d22. (113L124, dl4d25, d15d22, and dl5d23 are stored in the system.

As noted, a data element stored in a BAM must be part of the descriptor of some information item. If a data element does not have any dot on its line, it should be deleted auto matically. This usually results from the deletion of some information item which used to contain this data element.

Each BAM in the system contains a dummy element, to identify any unspecified data element of an information item. This dummy data element makes every document have a completely specified descriptor. It should be noted that the use of this dummy data element is different from that of mask. When we search for some information items with one or more fields masked, we "dont care" what they have in the masked fields as long as the rest of the descriptor fulfills the associa tion criterion. But an information item with a dummy data element in some field is always a distinct item.

Within the relation cube, certain kinds of relation elements must be provided to associate two or more data elements to form a descriptor of an information item. The relation elements are also used to set the match condition of data elements during interrogation.

In general, each data element is not related to all data elements in other fields. Eventually, only a small portion of the data elements are related to one another, especially in large memories. A great deal of relation elements can be saved if relation elements are placed only in the spots where two lines (in a two-dimensional case as in FIG. 3) representing two data elements of two BAMs are connected. The total number of relation elements required would be equal to the maximum number of the stored descriptors. This number is usually much less than the number of total possible combinations of data elements from all fields.

As a result, it is desired that the relation element should be so built that it can be used by any information item. Naturally, when one relation element is occupied by an information item, it is fixed until the information item is deleted.

Il. AN ASSOCIATIVE MEMORY SYSTEM EMPLOYING AN ASSOCIATIVE PROCESSING UNIT AS A RELATION CUBE In this embodiment of the invented system, the relationships among the data elements of different fields are established by an associative processing unit (APU) which serves as the relation cube. It stores indexing codes of data elements, which indexing codes are used to represent distinct data elements within each field. A block diagram of this embodiment of the invented system is shown in FIG. 4.

A. Organization i. The association register 30 stores the interrogation word or the descriptor which is to be stored. The contents of this register are compared with data elements in the BAMs during interrogation. This register may also be used as the output buffer. When some data element is read out from a BAM, it is stored temporarily in this register 30.

ii. The interrogation selector 32 is used to control the sequence and the bit position of interrogations. Only the bit position with a value I in the corresponding bit of this selector 32 is to be interrogated.

iii. Basic Associative Memories (BAM) There are F (the number of different fields) basic associative memories 34 storing only distinct data elements. The individual BAMs 34 may be identical in every other respect, but may have different dimensions. The sequential order of these BAM's is not essential, but for convenience we label them as BAM l, BAM 2, BAM F as shown.

iv. Binary Indexing Code Sections For each BAM 34 there is a binary indexing code section 36 associated with it. A binary indexing code (BIC) is assigned to each data element as the medium of connecting F data elements of an information item. It is evident that for m words:

2' 2 m 2" where q is the number ofbits of the binary indexing code BIC.

v. Associative Processing Unit (APU) The associative processing unit 38 is itself an associative memory. It has F sections, each of which corresponds to a BAM 34. It stores the binary indexing codes of data elements in such a way that each word in the APU 38 represents a coded descriptor for an information item. Searched information items are identified in the APU 38 after the composing data elements are identified in the BAM s 34.

vi. Match Indicator (MI) The match indicator 40 is shared by all BAMs 34 and the APU 38. It is used to test if the number of responsed is zero, one, or more than one.

vii. File The file 42 stores the descriptive data of information items. Usually the file is in secondary storage using tapes. disks, microfilms, or the like.

In the configuration shown in FIG. 4, the redundancy of data element storage is not totally eliminated, because binary indexing codes BIC may still appear repeatedly in the APU 38. However, the system of FIG. 4 is still advantageous to reduce memory space requirements when the ratio of the length of data elements to that of the binary indexing codes BIC is large. Moreover, using an APU 38 which is itself an associative memory as the relation cube is more flexible for information storage and search processing.

From another point of view, the APU 38 may be seen as the large memory, and the BAMs 34 together with their binary indexing code sections 36 as index dictionaries. Every time new information is being stored in the memory, the data elements of its descriptor will first be looked up in the corresponding dictionaries (BAM's). If it is a new data element, it is stored in a particular BAM and a BIC number is assigned to it. After all data elements of an information item get their indices (BlC's), these combined indices are the identification number of an in formation item and will be stored in the APU. When certain information is being searched for, the indices of the elements must be found in the BAMs 34 first, followed by a search of these indices in the APU 38.

B. Functional Operations i. Storing The store operation always begins with the comparisons of the data elements of the new information item (or descriptor) with all the existing data elements stored in each BAM 34. If a data element is already stored in a BAM 34, its BIC numbers are stored in the corresponding section of the first available descriptor space in the APU 38. Otherwise, the new data element is stored in the first available space in the corresponding BAM 34 and then its BIC number is stored in the APU 38. After repeating the same procedure for all of the F BAMs 34, the descriptive data of the item is sent into the file as a permanent record until it is deleted or updated at a later time.

ii. Search Operations in RAM In the following description, a mnemonic is given to each search operation. The symbol (B) accompanying the mnemonic is the reference interrogation criterion. For Similar-To Search, the mask condition D is predetermined and the symbol (B,D) is used. For searches involving two reference words, the symbol (B1,B2) is used. The mask condition is expressed in a vector form: D=(dl,d2,...,dn) where n is the number of bits in the RAM and dj=0 means that the jth bit is masked during interrogation.

a. Equal-To Search EQU(B) Equal-To search locates the data element with exactly the same information as B. At most one data element responds. Mask: D=( l, l, l).

b. Not-Equal-To Search NEQ (B) Not-Equal-To search is always accomplished by complementing the result of EQU(B). Usually, more than one data element responds.

Mask: l I, l, l)

c. Similar-To Search SMT (B,D)

Any data element having exactly the same information as B in the unmasked bit positions (dj=l) will respond. More than one data element may respond.

Mask; D is as specified in the search instruction.

d. Proximate-To Search PXT (B) This search is not defined for this embodiment of the invention.

e. Greater'than Search GTH(B) Any data element with its numerical value greater than B will respond. More than one data element may respond.

Mask condition is varied at each cycle time. Only one bit is interrogated at a time. With the most significant bit at the leftmost bit position, the search is from left to right.

f. Greater-Than-Or-Equal-To GOE(B) Any data element with its numerical value greater than or equal to B will respond. More than one data element may respond.

Mask condition is the same as GTH.

g. Smaller-Than Search STH(B) Any data element with its numerical value smaller than B will respond. This search is accomplished by com plementing the result of GOE(B). More than one data element may respond.

h. Smaller-Than-Or-Equal-To Search SOEtBJ Any data element with its numerical value smaller than or equal to B will respond. This search is accomplished by complementing the result of GTH(B). More than one data element may respond.

i. Between-Limits Searches There are four types of between-limits searches.

Type A BLA(Bl,B2)

The data elements with numerical values between 81 and B2 inclusively are located. This search is achieved by performing on the entire memory SOE(Bl) which his essentially the complement of GTH(B1) and then GOE( B2) on those data elements which responded in SOE(hl). More than one data element may respond.

Type B BLB(B1,B2)

This search locates the data elements with numerical values between B] and B2 (exclusively) or equal to B]. As BLA, BLB requires two consecutive searches, the first search, SOE(B| is performed upon the entire memory and the second one, GTH(B2), is applied to those data elements responded in SOE(BI More than one data element may respond.

Type C BLC(BI,B2)

This search is similar to that of Type B. it locates the data elements with numerical values between B1 and B2 (exclusively) or equal to B2. The first search, STH(Bl), is performed upon the entire memory and then GOE(B2) is applied to the responded data elements. More than one data element may respond.

Type D BLD (BLBZ) This search locates the data elements with numerical values between B! and B2 exclusively. The first search STl-l(Bl) is performed on the entire memory and the second one, GTH(B2) is applied to the data elements which have responded. More than one data element may respond.

j. NobBetween-Limits Searches Type A NBA (81,82)

Any data element with its numerical value greater than B1 or smaller than B2 responds to this search. it is achieved by complementing the result of BLA (BLBZ). More than one data element may respond.

Any data element with its numerical value greater than Bl, smaller than B2, or equal to B2 responds to this search. it is achieved by complementing the result of BLB(B1,B2). More than one data element may respond.

Type C NBC (BLBZ) Similar to Type B, any data element with its numerical value greater than Bl, equal to B1, or smaller than B2 responds to this search. It is achieved by complementing the result of BLC (81,132). More than one data element may respond.

Type D NBD(B1,B2)

Any data element with its numerical value greater than Bl, equal to Bl, smaller than 82, or equal to B2 responds to this search. It is achieved by complementing the result of BLD (81,82). More than one data element may respond.

k. Greatest Search GST This search locates the data element having the greatest numerical value among the data elements being searched. It is achieved by the ordered retrieval in descending order which is discussed later in this specification. if the memory being searched is not empty, there is always one data element responding to this search.

1. Smallest Search SST Similar to GST search, this search is achieved by ordered retrieval in ascending order. There is always a data element responding to the search if the memory is not empty.

m. Nearest-Above Search NRA(b) This search is achieved by two consecutive searches. The first search is GTH(B) performed upon the entire memory and then SST is performed upon those responded to GTH(B). At most one data elements responds but there might be no response.

n. Nearest-Below Search NRB(B) This search is also achieved by two consecutive searches. The first search is STH(B) performed upon the entire memory and the second one GST is performed upon those responded to STH(B). There is either one or no response.

0. Greatest-in-A-Range Searches Type A GGA(B1,B2)

This search is used to locate the data element with its numerical value being the greatest among those of numerical values between B] and B2 inclusively. The first search performed on the entire memory is BLA(Bl,B2) which is essentially SOE(B1) and GOE(B2). Then the second operation GST is performed upon the responded data elements. At most one data element responds.

This search is similar to GGA except the range is different. it is achieved by first performing BLB(Bl,B2) and then GST. There is either one or no response.

Type C GGC(B1,B2)

This search locates the greatest data element in the range (81,82). It is achieved by first performing BLC(B1,B2) and then GST. At most one data element responds.

Type D GGD(Bl .82)

This type of Greatest-ln-A-Range search locates the data element with greatest numerical value in the range between B! and B2 exclusively. At most one response may occur.

p. Smallest-ln-A-Range Searches There are also four types of Smallest-ln-A-Range searches. They differ from Cireatest-ln-A-Range searches only in having the least data element retrieved instead of the greatest one.

Type A SGA(B1,B2)

Type C SGC(BI,B2)

Type D SGD(B1,B2)

iii. Resolving Multiple Responses and Ordered Retrievals in BAM Searches like NobEqual-To, Similar-To, Greater-Than, etc. usually give more than one response to a RAM 34. During such searches matched data elements from one BAM 34 are examined by comparing their binary indexing codes with the BlC's stored in the APU 38, one at a time. So, in order to sort the matched data elements from a BAM 34, a sequencing response resolver can be used to retrieve the uppermost unchosen matched data element and skip the mismatched or matched-but-chosen data element.

The invented system uses a particular technique to retrieve matched data elements in either ascending or descending order according to the numerical values of the stored data element. The invented technique involves left-to-right interrogation in a serial-by-bit mode and can be carried out by means of a column-pair sensing arrangement such as described in "Retrieval of Ordered List From A Content Addressed Memory by M. H. Lewin, RCA Review, June 1962, pages 2l5-229.

By using two column sense wires to test each bit position the following four states of contents of the matched data elements are possible:

a. State 0: all data elements have 0 in this bit position;

b. State I: all data elements have 1 in this bit position;

c. State X: some of the data elements have 0 and others have I in this bit position;

d. State Y: no data element is selected In the invented technique, there are two kinds of interrogations at each bit position, namely: column sense interrogation and select interrogation.

The column sense interrogation gives the column sense output which determines the position of the next bit interrogation. If the column sense output is either 0 or 1 the next bit interrogation is performed at the following bit position. Otherwise, if it is X, the select interrogation is performed at the same bit position. Following each retrieval the interrogation process starts one again from the leftmost bit.

Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US3332069 *Jul 9, 1964Jul 18, 1967Sperry Rand CorpSearch memory
US3354436 *Feb 8, 1963Nov 21, 1967Rca CorpAssociative memory with sequential multiple match resolution
US3388381 *Dec 31, 1962Jun 11, 1968Navy UsaData processing means
US3405395 *Apr 12, 1966Oct 8, 1968Ericsson Telefon Ab L MCircuit arrangement for activating an electric circuit by means of an instruction word
US3475733 *Jul 21, 1964Oct 28, 1969Bell Telephone Labor IncInformation storage system
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US3701111 *Feb 8, 1971Oct 24, 1972IbmMethod of and apparatus for decoding variable-length codes having length-indicating prefixes
US4068298 *Dec 3, 1975Jan 10, 1978Systems Development CorporationInformation storage and retrieval system
US4158235 *Apr 18, 1977Jun 12, 1979Burroughs CorporationMulti port time-shared associative buffer storage pool
US4267568 *Nov 1, 1977May 12, 1981System Development CorporationInformation storage and retrieval system
US4285049 *Oct 11, 1978Aug 18, 1981Operating Systems, Inc.Apparatus and method for selecting finite success states by indexing
US4420817 *May 23, 1980Dec 13, 1983Sharp Kabushiki KaishaWord endings inflection means for use with electronic translation device
US5491803 *May 1, 1995Feb 13, 1996Massachusetts Institute Of TechnologyResponse resolver for associative memories and parallel processors
US5566274 *Apr 24, 1990Oct 15, 1996Omron CorporationMethod and apparatus for setting membership functions, and method and apparatus for analyzing same
US5604899 *Jun 28, 1993Feb 18, 1997Financial Systems Technology Pty. Ltd.Data relationships processor with unlimited expansion capability
US5617567 *May 11, 1995Apr 1, 1997Financial System Technology Pty. Ltd.Data processing system and method for retrieving and entity specified in a search path record from a relational database
US5652882 *May 11, 1995Jul 29, 1997Financial Systems Technology Pty. Ltd.In a computer system
US5675779 *May 11, 1995Oct 7, 1997Financial Systems Technology Pty. Ltd.Data processing system and method for maintaining cardinality in a relational database
US5778364 *Jan 2, 1996Jul 7, 1998Verity, Inc.Evaluation of content of a data set using multiple and/or complex queries
US5826259 *May 22, 1997Oct 20, 1998Financial Systems Technology Pty. Ltd.Easily expandable data processing system and method
USRE40063Jun 14, 2005Feb 12, 2008Karol DoktorData processing and method for maintaining cardinality in a relational database
USRE40235Jun 14, 2005Apr 8, 2008Financial Systems Technology (Intellectual Property) Pty, Ltd.Data processing system and method for detecting mandatory relations violation in a relational database
USRE40520Jun 14, 2005Sep 23, 2008Financial Systems Technology (Intellectual Property) Pty LtdEasily expandable data processing system and method
USRE40526Jun 14, 2005Sep 30, 2008Financial Systems Technology (Intellectual Property) Pty LtdData processing system and method for retrieving and entity specified in a search path record from a relational database
WO1992015954A1 *Mar 6, 1992Sep 17, 1992Red Brick SystemCompaction of a querying in relational databases
WO1998006039A1 *Aug 7, 1996Feb 12, 1998Sun Microsystems IncDisambiguation memory circuit and operating method
Classifications
U.S. Classification707/741, 707/961, 707/752, 707/758, 707/812, 707/999.3, 707/999.2
International ClassificationG11C15/04
Cooperative ClassificationY10S707/961, G11C15/04, Y10S707/99933
European ClassificationG11C15/04