text: the present invention is directed toward a content addressable memory employing a plurality of dynamic circular memories which are concurrently accessed for comparison with the comparand so as to quicken the comparison and retrieval process . an embodiment of the present invention adapted for this purpose is shown in fig1 which illustrates a memory having n shift register loops each capable of holding n bits . each of the shift register loops is formed of opposing data bit paths , for example 20a , 20b ; 21a , 21b ; . . . ; 2na , 2nb where the data paths in each pair transfer data in opposite directions . at one end of the data path pairs , data is transferred from one path to the other by regeneration amplifiers 52a , . . . , 52n . the other end of each data path pair is closed by another set of regeneration amplifiers 51a , . . . , 52n . the input / output decoder 53 serves to select the input / output operation on the loop corresponding to the input address on address lines 53e . data is written into the memory of fig1 and read out therefrom by way of input / output unit 53 . in turn , the data is received by input / output unit 53 from an external source by way of serial date - in line 53c and supplied to the external source by way of serial data - out line 53d . the particular word loop to be accessed for storage and retrieval is selected by address lines 53e which comprise that number of lines required to address n number of words , i . e . log 2 n lines . whether the memory access is to be a read operation or a write operation is determined by a signal on r / w line 53b . when the memory system of the present invention is in the content addressing mode , the comparand or argument to be searched in the memory is supplied to comparand register 56 which is a serial shift register of n bits , the same number of bits that were stored in each of the word locations of the memory . when the search argument is less than n bits , a mask for the comparand is supplied to mask register 57 which is also a serial shift register of n bits . the comparison between the masked comparand and the respective data bits in each of the word loops of the memory is provided by the content addressing ( cam ) logic 54 which includes a plurality of flip - flops , one for each word loop , that are to be set each time a bit comparison occurs . cam logic 54 also includes a shift register , having one bit position for each flip - flop , to receive signals therefrom as each flip - flop is set . as has been indicated above , a feature of the present invention is the concurrent comparison of the comparand with each of the word loops even though the complete comparison with any one word is in a serial fashion . this concurrent operation will now be described . as indicated in fig1 data is stored in the memory such that the bits in successively addressed shift registers or word loops are offset from its neighboring word loop by one bit . for example , at the beginning of the associative cycle , bit number 1 of word number 1 is presented out by the output of regeneration amplifier 52a , bit number 2 of word number 2 is at the output of word loop number 2 , . . . and bit number n of word number n is presented out by the output of word loop n . also , at the beginning of the associative cycle , comparand register 56 and mask register 57 have been loaded such that bit number 1 of the respective comparand and mask is at the top of the respective shift registers and bit number n is at the bottom of the respective shift registers . during the associative cycle operation , the data in the memory loops as well as the comparand and the mask data in the shift registers move synchronously at the same frequency . as the data is moved each bit position , the comparative operation is performed . as the respective data in all of the shift registers and loops is moved each bit position , the comparative operation is performed and then the data is shifted by another bit and so on . the comparison operation is described by the expression where a = associativity , d = data , c = comparand , and m = mask . at the beginning of the associative cycle , the respective match flip - flops are set to one ( 1 ). if a → 0 , the respective match flip - flop is reset and corresponds to a mismatch of data , if a → 1 , the corresponding match flip - flop is set and corresponds to a match of data . when at least a single word match has occurred , match collection flip - flop 55 is set . at the end of the associative cycle when the memory loops and the comparand and mask registers have moved n bit positions , the results of any associative comparison has been stored in one of a series of shift registers associated with the respective flip - flops . the contents of these shift registers can be shifted out at the end of the associative operation upon command . at the end of the associative cycle , the respective match bits have any information regarding the result of the associative comparison as well as the spatial information regarding where the match occurred . if the output of the address counter ( to be described below ) is started at the beginning of the match collection , its contents can be gated with the match bits such that the address of the word loop where the match occurred will be obtained . this address is then sent to input / output unit 53 of fig1 to cause the readout of the word loop where the match occurred . more flexibility in the usage of individual memory devices ( the individual ccd &# 39 ; s ) is obtained if the match collection logic and circuitry and address generation counters are external to those devices . another consideration is that if the memory addresses are generated on the devices , there will result an unnecessary increase in the number of lead pins required for each device . an overall memory system employing the devices of the present invention is illustrated in fig2 . the system includes an array of memory devices of the type illustrated in fig1 each of the devices being coupled to data and control bus 11 and from there to memory control unit 10 . during the loading cycle , the comparand and mask data is supplied from the memory control unit to all of the devices in serial fashion . at the end of the associative operation , the match information which results from that operation is collected and the control unit queries each device to find out if there was a match . if there was a match , the match data is gated out and the match address is derived and stored in match address store 13 of fig2 . in order to reduce match collection time , the match collection output is collected at the device level . since a number of devices can be grouped into a hierarchy of modules , interrogation logic 15 queries each module at a time and , if there was a match in a module , then individual devices in the module are queried one by one . match address store 13 retains all of the match addresses . the match address will consist of the device address obtained from the interrogation logic 15 and the word address derived from the match data of that particular device . to this end address counter 14 is started at the beginning of match collection cycle . at the end of the match collection cycle , the match address store has the address of all matches . when desired , the words which produced the matches can be obtained by accessing the memory with the address already stored in the match address store . as was indicated in fig1 the respective word loops and shift registers are driven by clock signals of two phases , φ1 and φ2 . the signals are supplied to the devices by refresh and clock logic 16 . refresh and clock logic 16 keeps a count of the status of the data from cycle to cycle by applying the shifting clock frequency to a refresh counter . it is not necessary that the associative operation be started in any device when the first data bit of the first word loop is presented out by its corresponding regeneration amplifier with the remaining word loops presenting out their corresponding data bits as was described above . for example , the comparand and mask data can be sent to the device in a manner such that , when the loading operation is completed , the bits in the comparand register and the mask register are aligned with all corresponding bits in the respective word loops . this is achieved by inputing the comparand and mask data and then moving them until they align against bits in the word loops whose positions correspond to the order of the comparand and mask bits . an alignment cycle is presented for this purpose . alternatively , the comparison operation of the associative cycle can be delayed until the data in the word loops come around and align with the comparand and mask bits . in either case , the number of cycles required for data alignment is given by the output of the refresh counter . in the embodiment of fig1 there are n word loops of n bits each with the comparand and mask data also including n bits each . however , it is not necessary that the number of word locations and the number of bits in each word be equal . in fig3 there is an illustrated embodiment of the present invention which has 2n word loops each having n bits per word . each of the word loops is made up of a pair of shift registers 30a , 30b ; . . . ; 3m , 3mb . as in the case of the embodiment of fig1 each pair of shift registers in fig3 is coupled at one end by regeneration amplifiers 72a , . . . , 72m . also similar to the embodiment of fig1 the respective word loops are completed at their other end by the input / output circuits 71a , . . . , 71m . in the embodiment of fig3 each word loop contains n bits although there are 2n word loops . input / output unit 73 of fig3 is similar to input / output unit 53 of fig1 except that the number of address lines to the address decoder has one more line than as illustrated in fig1 . content addressing ( cam ) logic 74 of fig3 differs from the corresponding logic 54 of fig1 in that it will have twice as many comparators and shift register bits for the collection of match bits . similarly , the comparand and mask data are duplicated in comparand shift register 76 and mask shift register 77 . another embodiment of the present invention is illustrated in fig4 which is also designed to hold 2n words of n bits ; however , this embodiment only requires n comparators in the cam logic . in fig4 the respective word loops formed of shift registers 40a , 40b ; 41a , 41b ; . . . ; 4na , 4nb are each adapted to hold 2n bits per loop or two words per loop . otherwise , input / output unit 63 is the same as input / output unit 53 of fig1 including the number of address lines thereto . the input / output circuits 61a , . . . , 61n ; the regeneration amplifiers 62a , . . . , 62n ; comparand shift register 66 ; and mask register 67 are the same as the corresponding elements in the embodiment of fig1 . it will be understood that in the embodiment of fig4 the data in each of the word loops will have to be circulated twice in their corresponding word loops in order to complete the associative operation and , therefore , cam logic 64 will include 2n sets of flip - flops and shift register bits corresponding to the 2n words stored in the device to give the results of the comparison for all the 2n words . in a variation thereof , the associative operation can be performed in two associative cycles with only n sets of flip - flops and corresponding shift registers . from the embodiment shown , it will be understood that one could organize a memory device employing the present invention which device contains words of any length and size suiting the application . such devices could be used in a memory system of a type illustrated in fig2 with only minor modifications required . a content addressable memory organization has been disclosed which allows all the words in memory to be compared with a given comparand or search argument in a concurrent manner as distinct from the prior art technique of processing each word in the memory , a word at a time in sequence . since data is stored in ccd &# 39 ; s in a sequential manner , such comparisons cannot be made in truly parallel fashion . it will be appreciated that the present invention can be implemented with any sequential circular memory including magnetic bubble ( magnetic domain walls ) devices , disks , delay lines , or shift registers of various sorts . however , the present invention is particularly adapted to ccd memories because of their high storage density and the ease with which logic circuitry can be designed into the memory device . while but a few embodiments of the present invention have been described , it will be apparent to those skilled in the art , that variations and modifications can be made therein without departing from the spirit and scope of the invention as claimed .