Sable CPU Module Specification

Sable CPU Module Specification Sable CPU Module Specification

people.freebsd.org
from people.freebsd.org More from this publisher
20.02.2013 Views

CHAPTER 6 CACHE INVALIDATE MANAGEMENT As memory locations in the system are updated, it may become necessary to invalidate cached copies of these locations to maintain cache coherence. The reasons for invalidation can be divided into two major categories. Those due to processor, and those due to C-bus activity. The Primary I-Stream Cache is a virtual cache and as such all invalidate activity will be completely under software control. Refer to the EV4 Chip Specification for further details. 6.1 Processor Caused Invalidates The Primary I-stream cache is a virtual cache and its coherence is managed by the system software. The Primary D-stream cache is a physical cache and is managed to be a subset of the B-Cache. The B-Cache controller may victimize a location in the B-Cache as a result of an I-stream read miss, or a masked write read-merge operation. Thus to maintain the subset rule, the primary D-Cache is invalidated whenever an I-Stream (read allocate) or read-merge victim address hits the duplicate tag store. System software should disable the Primary D-stream cache while flushing the B- Cache and when flushing is complete, the Primary I-stream cache should also be flushed. This is done to guarantee that the Primary caches remain a strict subset of the B-Cache. 6.2 C-bus Caused Invalidates Table 66 indicates the cache invalidate policies for C-bus generated cycles. Table 66: Invalidate Management - C-bus Caused Cycle B-Cache P-Cache Read NOP NOP Cache Invalidate Management 165

Copyright © 1993 Digital Equipment Corporation. Table 66 (Cont.): Invalidate Management - C-bus Caused Cycle B-Cache P-Cache Write If (found in B-Cache and (location NOT found in P-Cache and Commander ID is not I/O subsystem )) THEN Invalidate B-Cache location. † IF (conditional invalidates for I/O enabled) THEN IF (found in B-Cache and location NOT found in P-Cache) THEN Invalidate B- Cache location.† IF (ENB COND INVALIDATE cleared) THEN Invalidate B-Cache location.† Exchange NOP NOP †Refer to Section 4.3 which discusses the P-Cache duplicate tag store. 166 Cache Invalidate Management IF (found in Primary D-cache) THEN invalidate D-cache. IF (found in Primary D-cache) THEN invalidate D-cache. IF (found in Primary D-cache) THEN invalidate D-cache.

Copyright © 1993 Digital Equipment Corporation.<br />

Table 66 (Cont.): Invalidate Management - C-bus Caused<br />

Cycle B-Cache P-Cache<br />

Write If (found in B-Cache and (location NOT found<br />

in P-Cache and Commander ID is not I/O<br />

subsystem )) THEN Invalidate B-Cache location.<br />

†<br />

IF (conditional invalidates for I/O enabled)<br />

THEN IF (found in B-Cache and location<br />

NOT found in P-Cache) THEN Invalidate B-<br />

Cache location.†<br />

IF (ENB COND INVALIDATE cleared) THEN<br />

Invalidate B-Cache location.†<br />

Exchange NOP NOP<br />

†Refer to Section 4.3 which discusses the P-Cache duplicate tag store.<br />

166 Cache Invalidate Management<br />

IF (found in Primary D-cache) THEN invalidate<br />

D-cache.<br />

IF (found in Primary D-cache) THEN invalidate<br />

D-cache.<br />

IF (found in Primary D-cache) THEN invalidate<br />

D-cache.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!