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

3.9.12 EDC Error Correction Copyright © 1993 Digital Equipment Corporation. When in EDC mode the 21064 generates longword EDC on writes, and checks EDC on reads. When an EDC error is recognized during a D-Cache fill, the BIU places the affected fill block into the D-Cache unchanged, validates the block, and posts a machine check. The load instruction which triggered the D-Cache fill is completed by writing the requested longword(s) into the register file. The longword(s) read by the load instruction may or not have been the cause of the error, but a machine check is posted either way. The Ibox will react to the machine check by aborting instruction execution before any instruction issued subsequent to the load could overwrite the register containing the load data, and vectoring to the PAL code machine check handler. Sufficient state is retained in various status registers (see Section C.8) for PAL code to determine whether the error affects the longword(s) read by the load instruction, and whether the error is correctable. In any event, PAL code must explicitly flush the D-Cache. If the longword containing the error was written into the register file, report an uncorrectable hardware error to the operating system. Independent of whether the failing longword was read by the load instruction, PAL may scrub memory by explicitly reading the longword with the physical/lock variant of the HW_LD instruction, flipping the necessary bit, and writing the longword with the physical/conditional variant of the HW_ST instruction. Note that when PAL rereads the affected longword the hardware may report no errors, indicating that the longword has been overwritten. When an EDC error occurs during an I-Cache fill the BIU places the affected fill block into the I-Cache unchanged, validates the block and posts a machine check. The Ibox will vector to the PAL code machine check handler before it executes any of the instructions in the bad block. PAL code may then flush the I-Cache and scrub memory as described above. Functions Located on the DECchip 21064 81

CHAPTER 4 FUNCTIONS LOCATED ELSEWHERE ON THE CPU MODULE 4.1 Back-up Cache (B-Cache) The B-Cache is a 1 Mbyte direct mapped physical write back cache. A 4 Mbyte cache may be used in future Sable systems. It has a fixed 32-byte block size and supports the System-bus snooping protocol to allow for a multi-processor implementation. Each cache block entry is made up of three functionally identifiable storage element arrays. The control store, which is parity protected, contains the binary flags which indicate whether a particular cache block entry valid, dirty, and/or shared. The tag store, which is also parity protected, contains the high order address bits of the data currently stored in that particular cache block entry. The data store, which is EDC protected, contains the actual 32 bytes of ‘‘cached’’ data. Figure 40: Back-up Cache Entry Control Tag Data Store Store Store P V S D P TAG EDC7 LW7 EDC6 LW6 EDC5 LW5 EDC4 LW4 EDC3 LW3 EDC2 LW2 EDC1 LW1 EDC0 LW0 For a complete description of the B-Cache allocation policy refer to CPU Module Transactions Chapter 5. 4.1.1 Control Store The Control Store of the B-Cache is where the binary flags indicating the status of the cache block are found. These flags are defined in Table 26. To learn how to initialize any of these bit flags onpower-up refer to Section 9.2. Functions located elsewhere on the CPU module 83

CHAPTER 4<br />

FUNCTIONS LOCATED ELSEWHERE ON THE <strong>CPU</strong> MODULE<br />

4.1 Back-up Cache (B-Cache)<br />

The B-Cache is a 1 Mbyte direct mapped physical write back cache. A 4 Mbyte cache<br />

may be used in future <strong>Sable</strong> systems. It has a fixed 32-byte block size and supports<br />

the System-bus snooping protocol to allow for a multi-processor implementation.<br />

Each cache block entry is made up of three functionally identifiable storage element<br />

arrays. The control store, which is parity protected, contains the binary flags which<br />

indicate whether a particular cache block entry valid, dirty, and/or shared. The tag<br />

store, which is also parity protected, contains the high order address bits of the data<br />

currently stored in that particular cache block entry. The data store, which is EDC<br />

protected, contains the actual 32 bytes of ‘‘cached’’ data.<br />

Figure 40: Back-up Cache Entry<br />

Control Tag Data<br />

Store Store<br />

Store<br />

P V S D P TAG EDC7 LW7 EDC6 LW6 EDC5 LW5 EDC4 LW4<br />

EDC3 LW3 EDC2 LW2 EDC1 LW1 EDC0 LW0<br />

For a complete description of the B-Cache allocation policy refer to <strong>CPU</strong> <strong>Module</strong><br />

Transactions Chapter 5.<br />

4.1.1 Control Store<br />

The Control Store of the B-Cache is where the binary flags indicating the status of<br />

the cache block are found. These flags are defined in Table 26. To learn how to<br />

initialize any of these bit flags onpower-up refer to Section 9.2.<br />

Functions located elsewhere on the <strong>CPU</strong> module 83

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

Saved successfully!

Ooh no, something went wrong!