Dcread Operation - IBM PPC440X5 CPU Core User Manual

Cpu core
Table of Contents

Advertisement

Preliminary
the specified cache line in the data cache (assuming that a TLB entry for the referenced memory page exists
and has read permission, and that the caching inhibited storage attribute is not set). The cache line fill associ-
ated with such a guaranteed dcbt will occur regardless of any potential instruction execution-stalling circum-
stances within the DCC.
dcbt instruction is affected by the CCR1[FCOM] bit, which forces the dcbt to appear to miss
Operation of the
the cache, even if it should really be a hit. This causes two copies of the line to be established in the cache,
simulating a multi-hit parity error. See section 4.3.3.7, "Simulating Data Cache Parity Errors for Software
Testing."

4.3.3.5 dcread Operation

The dcread instruction can be used to directly read both the tag information and a specified data word in a
specified entry of the data cache. The data word is read into the target GPR specified in the instruction
encoding, while the tag information is read into a pair of SPRs, Data Cache Debug Tag Register High
(DCDBTRH) and Data Cache Debug Tag Register Low (DCDBTRL). The tag information can subsequently
be moved into GPRs using mfspr instructions.
The execution of the dcread instruction generates the equivalent of an EA, which is then broken down
according to the size of the cache and used to select a specific data word from a specific cache line, as
shown in Table 4-4 on page -112.
The EA generated by the dcread instruction must be word-aligned (that is, EA
a programming error and the result is undefined.
If the CCR0[CRPE] bit is set, execution of the
DCDBTRL. Note that the DCDBTRL[DPAR] field, unlike all the other parity fields, loads the check values of
the parity, instead of the raw parity values. That is, the DPAR field will always load with zeros unless a parity
error has occurred, or been inserted intentionally using the appropriate bits in the CCR1. This behavior is an
artifact of the hardware design of the parity checking logic.
Execution of the dcread instruction is privileged, and is intended for use for debugging purposes only.
Programming Note:
The PPC440x5 core does not support the use of the dcread instruction when the DCC is still in
the process of performing cache operations associated with previously executed instructions
(such as line fills and line flushes). Also, the PPC440x5 core does not automatically synchronize
context between a dcread instruction and the subsequent mfspr instructions that read the
results of the dcread instruction into GPRs. In order to guarantee that the dcread instruction
operates correctly, and that the mfspr instructions obtain the results of the dcread instruction, a
sequence such as the following must be used:
msync
dcread
regT,regA,regB # read cache information; the contents of GPR A and GPR B are
isync
mfdcdbtrh regD
mfdcdbtrl regE
cache.fm.
September 12, 2002
dcread instruction also loads parity information into the
# ensure that all previous cache operations have completed
# added and the result used to specify a cache line index to be read;
# the data word is moved into GPR T and the tag information is read
# into DCDBTRH and DCDBTRL
# ensure dcread completes before attempting to read results
# move high portion of tag into GPR D
# move low portion of tag into GPR E
User's Manual
PPC440x5 CPU Core
must be 0); otherwise, it is
30:31
Page 127 of 589

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents