Memory Management Units
PowerPC e500 Core Family Reference Manual, Rev. 1
Freescale Semiconductor
12-15
On execution of a tlbwe instruction, MAS0[ESEL] selects the way of TLB0 to be loaded (way 0,
1, 2, or 3). Also, when MAS0[TLBSEL] = 00 (selecting TLB0), the two-bit TLB0[NV] field is
loaded with the MAS0[NV] value on execution of a tlbwe instruction. When a TLB miss
exception occurs (causing a TLB error interrupt), if MAS4[TLBSELD] = 00, the hardware
automatically loads the current value of TLB0[NV] into MAS0[ESEL] and the incremented value
of TLB0[NV] into MAS0[NV]. This sets up MAS0 such that if those values are not overwritten,
the next way will be selected on the next execution of a tlbwe instruction.
12.3.3 Consistency Between L1 and L2 TLBs
The contents of the L1 TLBs are always a proper subset of the TLB entries currently resident in
the L2 MMU. They serve to improve performance because they have a faster access time than the
larger L2 TLBs. The relationships between the six TLBs are shown in
Figure 12-10
.
Figure 12-10. L1 MMU TLB Relationships with L2 TLBs
On an L1 MMU miss, L1 MMU array entries are automatically reloaded using entries from their
level 2 array equivalent. For example, if the L1 data MMU misses but there is a hit for one of the
three virtual addresses in TLB1, the matching entry is automatically loaded into the data L1VSP
array. Likewise, if the L1 data MMU misses, but there is a hit for the access in TLB0, the matching
entry is automatically loaded into the data L1TLB4K array.
A hit for a single access to multiple TLB entries in the L2 MMU (even if they are in separate
arrays) is considered to be a programming error. If this occurs, the TLB generates an invalid
address and TLB entries may be corrupted (an exception is not reported).
A write to any field of a valid L2 TLB entry causes any corresponding L1 TLB entry to be
invalidated. Also, changing the value of any PID register causes all L1 TLB entries to be
invalidated, except for L1 TLB entries created for TID = 0. Therefore, it is recommended that
TID = 0 be used as much as possible to maximize L1 TLB hit rates.
Real Page Number
Byte Address
Three 41-bit virtual addresses (VAs)
L1 MMUs
I-L1VSP
I-L1TLB4K
D-L1VSP
D-L1TLB4K
L2 MMUs (unified)
MAS Registers
‘invisible’
L1 TLBs
16-Entry Fully-Assoc. VSP Array (TLB1)
256-Entry 2-Way Set Assoc. Array (TLB0)—e500v1
512-Entry 4-Way Set Assoc. Array (TLB0)—e500v2
4–20 (or 24) bits
12–28 (or 32) bits
32 (or 36)-bit Real Address’
Содержание PowerPC e500 Core
Страница 1: ...PowerPC e500 Core Family Reference Manual Supports e500v1 e500v2 E500CORERM Rev 1 4 2005...
Страница 36: ...PowerPC e500 Core Family Reference Manual Rev 1 xxxvi Freescale Semiconductor...
Страница 38: ...PowerPC e500 Core Family Reference Manual Rev 1 Part I 2 Freescale Semiconductor...
Страница 316: ...PowerPC e500 Core Family Reference Manual Rev 1 7 18 Freescale Semiconductor Performance Monitor...
Страница 332: ...PowerPC e500 Core Family Reference Manual Rev 1 Part II 2 Freescale Semiconductor...
Страница 362: ...PowerPC e500 Core Family Reference Manual Rev 1 10 26 Freescale Semiconductor Auxiliary Processing Units APUs...
Страница 440: ...PowerPC e500 Core Family Reference Manual Rev 1 A 8 Freescale Semiconductor Programming Examples...
Страница 444: ...PowerPC e500 Core Family Reference Manual Rev 1 B 4 Freescale Semiconductor Guidelines for 32 Bit Book E...
Страница 530: ...Opcode Listings PowerPC e500 Core Family Reference Manual Rev 1 D 50 Freescale Semiconductor...
Страница 534: ...PowerPC e500 Core Family Reference Manual Rev 1 E 4 Freescale Semiconductor Revision History...