User’s Manual
Preliminary
PPC440x5 CPU Core
cache.fm.
September 12, 2002
Page 127 of 589
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.
Operation of the
dcbt instruction is affected by the CCR1[FCOM] bit, which forces the dcbt to appear to miss
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
30:31
must be 0); otherwise, it is
a programming error and the result is undefined.
If the CCR0[CRPE] bit is set, execution of the
dcread instruction also loads parity information into 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
# ensure that all previous cache operations have completed
dcread
regT,regA,regB # read cache information; the contents of GPR A and GPR B are
# 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
isync
# ensure dcread completes before attempting to read results
mfdcdbtrh regD
# move high portion of tag into GPR D
mfdcdbtrl regE
# move low portion of tag into GPR E
Summary of Contents for PPC440X5 CPU Core
Page 1: ...PPC440x5 CPU Core User s Manual Preliminary SA14 2613 02 September 12 2002 Title Page...
Page 22: ...User s Manual PPC440x5 CPU Core Preliminary Page 22 of 583 ppc440x5LOT fm September 12 2002...
Page 26: ...User s Manual PPC440x5 CPU Core Preliminary Page 26 of 589 preface fm September 12 2002...
Page 38: ...User s Manual PPC440x5 CPU Core Preliminary Page 38 of 589 overview fm September 12 2002...
Page 94: ...User s Manual PPC440x5 CPU Core Preliminary Page 94 of 589 init fm September 12 2002...
Page 132: ...User s Manual PPC440x5 CPU Core Preliminary Page 132 of 589 cache fm September 12 2002...
Page 158: ...User s Manual PPC440x5 CPU Core Preliminary Page 158 of 589 mmu fm September 12 2002...
Page 218: ...User s Manual PPC440x5 CPU Core Preliminary Page 218 of 589 timers fm September 12 2002...
Page 248: ...User s Manual PPC440x5 CPU Core Preliminary Page 248 of 589 debug fm September 12 2002...
Page 458: ...User s Manual PPC440x5 CPU Core Preliminary Page 458 of 589 regsummIntro fm September 12 2002...
Page 568: ...User s Manual PPC440x5 CPU Core Preliminary Page 568 of 589 instalfa fm September 12 2002...
Page 588: ...User s Manual PPC440x5 CPU Core Preliminary Page 588 of 583 ppc440x5IX fm September 12 2002...
Page 590: ......