A method of checking for errors in a set associative cache array, by
comparing a requested value to values loaded in the cache blocks and
determining, concurrently with this comparison, whether the cache blocks
collectively contain at least one error (such as a soft error caused by
stray radiation). Separate parity checks are performed on each cache block
and if a parity error occurs, an error correction code (ECC) is executed
for the entire congruence class, i.e., only one set of ECC bits are used
for the combined cache blocks forming the congruence class. The cache
operation is retried after ECC execution. The present invention can be
applied to a cache directory containing address tags, or to a cache entry
array containing the actual instruction and data values. This novel method
allows the ECC to perform double-bit error as well, but a smaller number
of error checking bits is required as compared with the prior art, due to
the provision of a single ECC field for the entire congruence class. This
construction not only leads to smaller cache array sizes, but also to
faster overall operation by avoiding unnecessary ECC circuit operations.
Een methode om fouten in een serie van het reeks associatieve geheime voorgeheugen te controleren, door een gevraagde waarde te vergelijken bij waarden die in de geheim voorgeheugenblokken worden geladen en te bepalen, terzelfdertijd als deze vergelijking, of de geheim voorgeheugenblokken minstens één fout collectief bevatten (zoals een zachte fout die door verdwaalde straling wordt veroorzaakt). De afzonderlijke pariteitscontroles worden uitgevoerd van elk geheim voorgeheugenblok en als een pariteitsfout voorkomt, wordt een code van de foutencorrectie (ECC) uitgevoerd voor de volledige overeenstemmingsklasse, d.w.z., slechts één reeks ECC beetjes wordt gebruikt voor de gecombineerde geheim voorgeheugenblokken die de overeenstemmingsklasse vormen. De geheim voorgeheugenverrichting wordt opnieuw geprobeerd na ECC uitvoering. De onderhavige uitvinding kan op een geheim voorgeheugenfolder die adresmarkeringen bevat, of op een serie worden toegepast die van de geheim voorgeheugeningang de daadwerkelijke instructie en gegevenswaarden bevat. Deze nieuwe methode staat ECC toe om dubbel-beetjefout uit te voeren eveneens, maar een kleiner aantal fout het controleren beetjes wordt vereist vergeleken met de vroegere kunst, wegens de voorziening van één enkel ECC gebied voor de volledige overeenstemmingsklasse. Deze bouw niet alleen leidt tot de kleinere grootte van de geheim voorgeheugenserie, maar ook tot snellere algemene verrichting door onnodige ECC kringsverrichtingen te vermijden.