29 September 1997 – Subject To Change
Clocks, Cache, and External Interface
4–51
21164PC/System Race Conditions
For a WRITE BLOCK operation followed by a fill operation, the earliest point the
system can assert the fill_h signal is at the sysclk after the last assertion of dack_h.
Fill operations followed by fill operations are special cases. Fill operations can be
pipelined back-to-back so that 100% of the data bus bandwidth can be used.
4.10.2 Command Acknowledge for WRITE BLOCK Commands
When the 21164PC requests a WRITE BLOCK operation, the system can acknowl-
edge the data by asserting dack_h before asserting cack_h. The system must assert
cack_h no later than the last assertion of dack_h.
4.11 21164PC/System Race Conditions
When certain sequences of transactions occur on the interface between the 21164PC,
the Bcache, and the system, race conditions may occur. The rules for use of the inter-
face by the 21164PC and the system are listed in Section 4.11.1.
Examples of race conditions to be avoided are described and illustrated in
Section 4.11.2 through Section 4.11.6.
4.11.1 Rules for 21164PC and System Use of External Interface
This section lists the rules for determining the order in which 21164PC and system
requests are allowed by the CBU BIU. In general, the order allowed is determined by
use of cmd_h<3:0>, idle_bc_h, and fill_h.
1.
If idle_bc_h is not asserted and there are no valid requests in the BIU command
buffer, then the BIU is free to perform any 21164PC request.
2.
If a fill transaction is pending, the BIU only produces another READ MISS com-
mand, with a possible BCACHE VICTIM command. The BIU will not attempt
any other command.
3.
The assertion of idle_bc_h, or the sending of a system command other than NOP
to the 21164PC, causes the BIU to idle. If the BIU has a command loaded in the
pad ring, it removes the command and replaces it with a NOP command. The
state of cmd_h<3:0> is unpredictable until the idle condition ends.
4.
The idle condition ends when the 21164PC receives a deasserted idle_bc_h, and
the 21164PC has responded to all the system commands that were sent.
5.
The system must not assert cack_h during the idle condition.