CP0 register summary and reference
149
Programming the MIPS32® 74K™ Core Family, Revision 02.14
TagLo-WST[L,LP]
: cache-line locking control bits, held in the way select RAM, and parity over them.
TagLo-WST[LRU]
: When you read or write the tag in way select test mode (that is, with
ErrCtl[WST]
set) this field
reads or writes the LRU ("least recently used") state bits, held in the way select RAM.
The dirty RAM is another slice of the cache memory (distinct from the tag and data arrays). Test software can access
either by
cache
load-tag/store-tag operations when
ErrCtl[DYT]
is set: then you get the data in these fields. For
experts only.
Figure B.4 Fields in the TagLo-DAT Register
TagLo-DAT[D,DP]
: cache line "dirty" bits (and parity across them).
TagLo-DAT[A]
: cache line "alias" bits.
B.3.2 Dual (virtual and physical) tags in the 74K core D-cache — DTagHi register
In the 74K core the D-cache tags contain more information which is held in the
DTagHi
register. Regular software
probably need never touch it, and it’s mostly for diagnostic and test use.
Figure B.5 Fields in the DTagHi Register
DTagHi[ASID,G,VTAG]
: 74K family cores have a dual-tagged D-cache, combining a virtual tag for fast lookup with a
physical tag for correctness. The virtual tag provides a very fast way of predicting whether there’s a cache hit, and if
so which "way" of the cache will contain the right data. But the virtual tag check is heuristic: in some cases it will
turn out, once the physical address is available and can be checked against the physical tag, that we got it wrong.
From a software viewpoint the D-cache looks just like the “standard” MIPS virtually-indexed physically-tagged
cache, though there is occasionally an unexpected delay when the virtual tag “prediction” is wrong — the CPU pipe-
line treats this like a cache miss, and as a side-effect the virtual tag is adjusted so it will work correctly next time.
So these fields store the information required to match a virtual address: the virtual address itself, the ASID (tracking
the “address space identifier” maintained in
EntryHi[ASID]
) and a global (“G”) bit which can be set to make it not
necessary to match the ASID.
B.3.3 Pre-decode information in the I-cache - the ITagHi Register
For diagnostics only:
Figure B.6 Fields in the ITagHi Register
ITagHi[PREC,P]
: 74K family cores do some decoding of instructions when they’re loaded into the I-cache, which
helps speed instruction dispatch. When you use
cache
tag load/store instructions, you see that information here.
31
24
23
20
19
16
15
12
11
10
9
8
7
6
1
0
U
DP
D
U
A
0
U
0
U
31
12
11
9
8
7
0
VTAG
0
G
ASID
31
25
24
18
17
11
10
4
3
2
1
0
PREC_67
PREC_45
PREC_23
PREC_01
P_67
P_45
P_23
P_01
Содержание 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...