Patent GB-1475785-A (GB)
Title: Electronic data storage devices
IPC: G06F17/30
Filed: 1974-04-08
Abstract: 1475785 Associative store SIEMENS AG 8 April 1974 [17 April 1973] 15436/74 Heading G4C A contents addressed storage system includes a plurality of storage banks B0-B7 each containing a plurality of storage locations P0-P7 and is arranged such that a part VS of a tag word and the contents of an extension counter EZ are used to address a location in each bank, different arrangements being used for address selection in different storage banks. To load the store a free one of the addressed locations is used and to search the store the contents of the addressed locations are compared with at least the remainder of the tag word. Two addressing arrangements are described. In the first different groups of bits from a tag word are used for address selection in different storage banks. In the second a group of bits larger than that required to distinguish between the storage locations in a bank are subjected to a different transformation in each bank to select the locations. Initially the extension counter is set to 0. The advantage of the arrangement is that although two different tag words may select the same location in a given bank two words which although different have an identical group of higher (or lower) ordered bits will in general select different locations in a given storage bank. This contrasts with the prior art in which, e.g. the first three bits of a six-bit word are used to select among eight locations in each of say four storage banks. In this case only four, one per bank, of the possible eight six-bit tag words beginning with the bit group 000 can be stored whereas in the present arrangement the use of lower ordered bits in address selection allows more than four of the words to be stored. The arrangement is therefore suited to storing groups of similar words, e.g. a count sequence. A penalty is paid however in that words not beginning with say 000, "stray words", may select storage locations available to words beginning with 000. It may thus happen that a word beginning with 000 can not be stored as all its available locations are full. In such a case an additional bit associated with each of the full locations is set and the extension counter is incremented to modify the addresses selected and to provide further storage locations. The extension counter bit or bits may be concatenated with the address selecting part of the word and the result transformed to select an address (as above) or the address selecting part may be transformed and the extension counter contents added modulo m, where m is the number of locations in a bank, to the result, or the nature of the transformation may be varied in accordance with the extension counter contents. To locate a word in the store the extension counter is set to zero and a search performed. If the search is negative, the additional bits of the words are examined. If they are all set the count is incremented and the search repeated. Where a word is located and read out from the store the freed location is filled with a word taken from the store using the highest possible extension counter contents in order to keep as many words as possible stored at locations associated with lower counter contents and to keep each set of locations located with each lower counter setting full. As an alternative the store contents may be examined to see if the blockage is because any "stray words" are occupying locations available to words beginning with, say, 000. If this is found to be the case one or more of these "stray words" are removed from store, buffered, replaced by the word beginning 000, and are relocated in the store in a different storage bank where the address selection is such that they do not conflict with a word beginning 000. It may be necessary in order to effect the relocation to relocate further stored words. In general however only one relocation is attempted since it is easier to increment the extension counter to free new storage locations. Each storage location includes storage for additional data not involved in the associative search but associated with the word which is, the additional data being read out when a successful search is performed. A further additional bit indicates whether the location is occupied. When data is being stored, the bank into which a word is stored may be determined at random from those having available locations determined by the additional "occupied" bits. Preferred arrangements however include a cycling distributer or a priority network tending to favour certain ones of the banks.