A method of maintaining coherency in a cache hierarchy of a processing unit
of a computer system, wherein the upper level (L1) cache includes a split
instruction/data cache. In one implementation, the L1 data cache is
store-through, and each processing unit has a lower level (L2) cache. When
the lower level cache receives a cache operation requiring invalidation of
a program instruction in the L1 instruction cache (i.e., a store operation
or a snooped kill), the L2 cache sends an invalidation transaction (e.g.,
icbi) to the instruction cache. The L2 cache is fully inclusive of both
instructions and data. In another implementation, the L1 data cache is
write-back, and a store address queue in the processor core is used to
continually propagate pipelined address sequences to the lower levels of
the memory hierarchy, i.e., to an L2 cache or, if there is no L2 cache,
then to the system bus. If there is no L2 cache, then the cache operations
may be snooped directly against the L1 instruction cache.
Eine Methode des Beibehaltens von von Kohärenz in einer Pufferspeicherhierarchie einer Verarbeitung Maßeinheit eines Computersystems, worin der obere waagerecht ausgerichtete Pufferspeicher (L1) einen aufgeteilten instruction/data Pufferspeicher einschließt. In einer Implementierung ist der Pufferspeicher der Daten L1 speichern-durch, und jede Verarbeitung Maßeinheit hat einen Pufferspeicher des untereren Niveaus (L2). Wenn, des untereren Niveaus der Pufferspeicher einen Pufferspeicherbetrieb empfängt, der Annullierung einer Programmanweisung im Anweisung L1 Pufferspeicher erfordert (d.h., snooped ein Speicherbetrieb oder ein a Tötung), schickt der Pufferspeicher L2 eine Annullierung Verhandlung (z.B., icbi) zum Anweisung Pufferspeicher. Der Pufferspeicher L2 ist von den Anweisungen und von den Daten völlig einschließlich. In einer anderen Implementierung ist der Pufferspeicher der Daten L1 Write-back, und eine Speicheradresse Warteschlange im Prozessorkern wird zu fortwährend Propagate durch Rohre geleiteten Adresse Reihenfolgen zu den untereren Niveaus der Gedächtnishierarchie d.h. zu einem Pufferspeicher L2 oder, wenn es keinen Pufferspeicher L2 gibt, dann zum System Bus benutzt. Wenn es keinen Pufferspeicher L2 gibt, dann können die Pufferspeicherbetriebe sein snooped direkt gegen den Anweisung L1 Pufferspeicher.