Patent GB-1265015-A (GB)
IPC: G11C29/00
Filed: 1969-11-22
Abstract: 1,265,015. Associative store. INTERNATIONAL BUSINESS MACHINES CORP. 22 Nov., 1969, No. 57242/69. Heading G4C. An associative store comprising a pair of identical storage arrays storing the same data  and each having an input/output register 5, 6, a comparator 12 for comparing the contents of the registers, and a back-up register 13, is arranged to stop when the comparator detects a mismatch and to store the contents of one of the registers in the back-up register when a match is detected. If an error occurs during a read cycle (mismatch detected) the cycle is repeated a predetermined number of times (retry) or until a match is detected using the data in the back-up register as an input. If a match does not occur a write operation is performed using the existing settings of the selectors 9, 10 into the portion 15 of each store, the selectors are reset and a further word selection made using the contents of the back-up register. A further write operation is then performed to enter a binary " 1 " into the position 16 in each store of each word whose selector is set. The selectors are checked by setting the top selector of each array and performing a series of " Next " operation, that is transferring data in each register 7, 8, to the register below it, until the set state is detected at the bottom selector of each store. If the two stores do not emit the signal at the same time there is a malfunction in the selector chain. If the selector chains are functioning correctly the contents of the registers 7, 8 are examined by a succession of " Next " and " Read " operations. If any two corresponding registers differ, the contents being compared in registers 5, 6 by the comparator 12, a parity check is performed. If the parity of both words is incorrect a " hard stop " is signalled and the store taken out of commission. If one register only is found to hold incorrect information its contents are replaced by the contents of the " good " register (word refreshment) via gate 19. Parity may be assigned to each word by using the storage cells described in Specification 1,127,270, the content of column 15 and 16 being ignored. If word refreshment was necessary " retry " is again performed. If this is unsuccessful a succession of " Next," " Read " operations are performed, only the part of each word which was compared with the search argument in the cycle which gave rise to the error being read. If only one of each pair of words read contains marks in column 15 then a further investigation of those words is made. In a binary store a comparison with the search argument is sufficient, the store without the error marker in column 15 in a word which matches the search argument has failed. However for three state storage cells a comparison circuit is used which emits an error signal when one input of any order is binary " 1 " and the other input of the same order is not a binary " 0." A circuit for performing this function is described in Specification 1,265,013. The comparison of the search field of a given register 7, 8 in one of the arrays is made by reading the search field into the corresponding input/output register 5, 6, and reading the search argument in the back-up register 13, inverted, into the other input/output register. Following comparison of the contents of registers 5, 6 the search field is read into the other input register, and the search argument in the back-up register is read, uninverted, into the first register and a comparison made of the contents of the registers. If neither comparison produces an error signal the process is repeated for the other store. If an error signal is produced indicating that the search arguments and fields do not match the selected Trigger must have been erroneously set since the data contents of the stores have previously been checked. If an error signal is not produced the store without the mark in column 15 is the failed store since the selector Triggers 9, 10 should both have been set. A final test is made in the absence of any error so far by reading the registers of one store having marks in column 15 one by one into the corresponding register 5 or 6. The original " read " operation is then performed on the other store from the back-up register 13 and the contents of stores 5 and 6 are compared. If they match the selected store is at fault otherwise the store on which the read operation was performed is at fault.