Memory map, caching, reads, writes and translation
43
Programming the MIPS32® 74K™ Core Family, Revision 02.14
Figure 3.7 Fields in the ErrCtl Register
Two fields are ‘overflow’ from the CacheErr register and relate to the error state:
FE/SE
: Used to detect nested errors. FE (FirstError) is set on any cache error. SE (Second Error) is set when an error is
seen and FE is set. Software should clear FE once it has logged enough error information that taking a second error
will not be fatal.
The rest of the fields can be summarized as such: running software should set just the parity enable (
PE
) bit to enable
cache parity checking as required, and leave it zero otherwise. The fields are as follows:
PE
: 1 to enable cache parity checking. Hard-wired to zero if parity isn’t implemented.
PO
: (parity overwrite) - set 1 to set the parity bit regardless of parity computation, which is only for diagnostic/test pur-
poses.
After setting this bit you can use
cache IndexStoreTag
to set the cache data parity to the value currently in
ErrCtl[PI]
(for I-cache) or
ErrCtl[PD]
(for D-cache), while the tag parity is forcefully set from
TagLo[P]
.
WST
: test mode for
cache IndexLoadTag
/
cache IndexStoreTag
instructions, which then read/write the
cache’s internal "way-selection RAM" instead of the cache tags.
SPR
: when set, index-type
cache
instructions work on the scratchpad/SPRAM, if fitted - see
.
PI/PD
: parity bits being read/written to caches (I- and D-cache respectively).
LBE, WABE
: field indicating whether a bus error (the last one, if there’s been more than one) was triggered by a load or
a write-allocate respectively: see below. Where both a load and write-allocate are waiting on the same cache-line
refill, both could be set. These bits are “sticky”, remaining set until explicitly written zero.
L2P
: Controls ECC checking of an L2 cache, if it's fitted and has that capability.
For backward-compatibility, you only set
L2P
when you want to make a different error-checking choice at the L1 and
L2 levels. So L2 error checking is enabled if
ErrCtl[PE,L2P]
== 01 or
ErrCtl[PE,L2P]
== 10.
PCD
: when set 1,
cache StoreData
does not update I-cache precode bits, nor their parity. This is for deep diagnostic
only.
DYT
: set 1 to arrange that
cache
load/store data operations work on the “dirty array” — the slice of cache memory
which holds the “dirty” bits.
3.5 Bus error exception
The CPU’s “OCP” hardware interface rules permit a slave device attached to the system interface to signal back when
something has gone wrong with a read. This should not be used to report a read parity error; if parity is checked exter-
nally, it would have to be reported through an interrupt. Typically a bus error means that some subsystem has failed to
respond. Bus errors are not signalled on an OCP write cycle, and (if they were) the 74K core ignores them.
31
30
29
28
27
26
25
24
23
22
21
20
19
18
12 11
4 3
0
PE PO WST SPR PCO ITC LBE WABE L2P PCD DYT SE
FE
0
PI
PD
0
0
0
0
0
0
0
0
0
0
Содержание MIPS32 74K Series
Страница 1: ...Document Number MD00541 Revision 02 14 March 30 2011 Programming the MIPS32 74K Core Family...
Страница 10: ...Programming the MIPS32 74K Core Family Revision 02 14 10...
Страница 20: ...1 4 A brief guide to the 74K core implementation Programming the MIPS32 74K Core Family Revision 02 14 20...
Страница 28: ...2 2 PRId register identifying your CPU type Programming the MIPS32 74K Core Family Revision 02 14 28...
Страница 54: ...3 8 The TLB and translation Programming the MIPS32 74K Core Family Revision 02 14 54...
Страница 83: ......
Страница 86: ...6 5 FPU pipeline and instruction timing Programming the MIPS32 74K Core Family Revision 02 14 86...
Страница 101: ...The MIPS32 DSP ASE 101 Programming the MIPS32 74K Core Family Revision 02 14...
Страница 134: ...8 4 Performance counters Programming the MIPS32 74K Core Family Revision 02 14 134...
Страница 154: ...C 3 FPU changes in Release 2 of the MIPS32 Architecture Programming the MIPS32 74K Core Family Revision 02 14 154...