
D-4
PowerPC Microprocessor Family: The Bus Interface for 32-Bit Microprocessors
it is useful to have in the copy-back address registers a valid bit that is initialized to
invalid at power-up and loaded with the valid bit from the tag array when an address
is copied into one of these registers.
The copy-back address registers could strictly have their valid bit reset whenever a
write-with-kill operation matches (which indicates the castout operation is
occurring), but this is an optimization that is probably unnecessary. The copy-back
address register is more likely to be reloaded with another displaced tag from the L1
than it is to detect a match on the system bus side.
D.2.3 Forwarding System Bus Operations to the Processor
When a system bus operation (with SYS-GBL asserted) occurs on the system bus, it is
compared against both the copy of the L1 directory and the copy-back address registers. If
there is a match, the system bus operation must be forwarded onto the processor to
determine the final outcome. If no match occurs, the addressed data does not reside in the
processor and so can complete. Note that this does not address the match in L2 case, which
is a separate issue.
However, instead of simply loading the valid bit of the L1 directory shadow with a one
when an allocation is detected, it could be loaded with the value of the GBL signal.
Comparisons against system bus operations (which were marked as SYS-GBL) would still
compare the valid bit read from the tag arrays against one. This automatically maximizes
use of the information supplied on the GBL signal.
Note the following discussion of system bus operations is concerned with snoop filtering,
and hence memory-accessing operations. Clearly operations such as TLBIE and SYNC that
do not involve memory accesses are not filtered and are passed to the processor unchanged.
D.3 Maintaining L1 State and Tags
An alternative to simply keeping the tags of an L1 cache is to keep state information about
the L1 cache, namely whether the cache line is in the S or E state. Keeping this information
allows the L2 cache to filter even more snoop traffic from the processor.
Because some transitions, such as E to M, are invisible outside the processor, maintaining
an identical copy of the L1 cache block state is impossible. Thus, the L1 directory copy is
restricted to keeping the following range of states, I, S, and EX. The EX state describes both
cases of the processor having the data exclusively (M and E). EX implies simply valid but
not shared and does not distinguish whether the data has been modified with respect to main
memory or to the L2 cache.