Translation Look-Aside Buffer Low Register - 2024.2 English

MicroBlaze Processor Reference Guide (UG984)

Document ID
UG984
Release Date
2024-11-27
Version
2024.2 English

The Translation Look-Aside Buffer Low (TLBLO) Register is used to access MMU Unified Translation Look-Aside Buffer (UTLB) entries. It is controlled by the C_USE_MMU configuration option on MicroBlaze. The register is only implemented if C_USE_MMU is greater than 1 (User Mode), and C_AREA_OPTIMIZED is set to 0 (Performance) or 2 (Frequency). When accessed with the MFS and MTS instructions, the TLBLO is specified by setting Sa = 0x1003.

When reading or writing TLBLO, the UTLB entry indexed by the TLBX register is accessed. The register is readable according to the memory management special registers parameter C_MMU_TLB_ACCESS.

When the MMU Physical Address Extension (PAE) is enabled (parameters C_DATA_SIZE = 32, C_USE_MMU = 3 and C_ADDR_SIZE > 32), the 32 least significant bits of TLBLO are accessed with the MFS and MTS instructions, and the most significant bits with the MFSE and MTSE instruction. When writing the register with PAE enabled, the most significant bits must be written first.

With 64-bit MicroBlaze (parameter C_DATA_SIZE = 64) the entire register can be read with the MFS instruction.

The UTLB is reset on bit stream download (reset value is 0x00000000 for all TLBLO entries).

Note: The UTLB is not reset by the external reset inputs: Reset and Debug_Rst. This means that the entire UTLB must be initialized after reset, to avoid any stale data.

The following figure illustrates the TLBLO register and the following table provides bit descriptions and reset values. When PAE is enabled the RPN field of the register is extended according to the C_ADDR_SIZE parameter up to 54 bits to be able to hold up to a 64-bit physical address.

Figure 1. TLBLO X19751-UG984-TLBLO Sheet.1 Sheet.2 Sheet.3 Sheet.4 Sheet.5 Sheet.6 Sheet.16 Sheet.17 Sheet.18 Sheet.19 Sheet.20 Sheet.21 Sheet.22 Sheet.23 Sheet.24 Sheet.25 Sheet.1000 0 0 Sheet.1001 0 0 Sheet.1002 22 22 Sheet.1003 n-10 n-10 Sheet.1005 n-9 n-9 Sheet.1007 n-8 n-8 Sheet.1008 28 28 Sheet.1009 29 29 Sheet.1010 30 30 Sheet.1011 31 31 Sheet.1012 n-4 n-4 Sheet.1013 n-3 n-3 Sheet.1014 n-2 n-2 Sheet.1016 n-1 n-1 Sheet.1017 32-bit MicroBlaze: (C_ADDR_SIZE = 32 or C_USE_MMU ≠ 3) and (C... 32-bit MicroBlaze: (C_ADDR_SIZE = 32 or C_USE_MMU ≠ 3) and (C_DATA_SIZE = 32): Sheet.1018 PAE or 64-bit MicroBlaze: (C_ADDR_SIZE > 32 and C_USE_MMU = 3... PAE or 64-bit MicroBlaze: (C_ADDR_SIZE > 32 and C_USE_MMU = 3) or (C_DATA_SIZE = 64) (n = C_ADDR_SIZE): Sheet.1019 RPN RPN Sheet.1020 Sheet.1021 EX EX Sheet.1022 Sheet.1023 W W Sheet.1024 Sheet.1028 WR WR Sheet.1029 Sheet.1031 ZSEL ZSEL Sheet.1032 Sheet.1034 I I Sheet.1035 Sheet.1036 M M Sheet.1037 Sheet.1038 G G Sheet.1039 Sheet.1041 23 23 Sheet.1042 24 24 Sheet.26 X19751-111517 X19751-111517
Table 1. Translation Look-Aside Buffer Low Register (TLBLO)
Bits 1 Name Description Reset Value

0:21

0:n-11

RPN

Real Page Number or Physical Page Number

When a TLB hit occurs, this field is read from the TLB entry and is used to form the physical address. Depending on the value of the SIZE field, some of the RPN bits are not used in the physical address. Software must clear unused bits in this field to zero.

Only defined when C_USE_MMU=3 (Virtual).

Read/Write

0x000000

22

n-10

EX

Executable

When bit is set to 1, the page contains executable code, and instructions can be fetched from the page. When bit is cleared to 0, instructions cannot be fetched from the page. Attempts to fetch instructions from a page with a clear EX bit cause an instruction-storage exception.

Read/Write

0

23

n-9

WR

Writable

When bit is set to 1, the page is writable and store instructions can be used to store data at addresses within the page.

When bit is cleared to 0, the page is read-only (not writable). Attempts to store data into a page with a clear WR bit cause a data storage exception.

Read/Write

0

24:27

n-8:n-5

ZSEL

Zone Select

This field selects one of 16 zone fields (Z0-Z15) from the zone-protection register (ZPR).

For example, if ZSEL 0x5, zone field Z5 is selected. The selected ZPR field is used to modify the access protection specified by the TLB entry EX and WR fields. It is also used to prevent access to a page by overriding the TLB V (valid) field.

Read/Write

0x0

28

n-4

W

Write Through

When the parameter C_DCACHE_USE_WRITEBACK is set to 1, this bit controls caching policy. A write-through policy is selected when set to 1, and a write-back policy is selected otherwise.

This bit is fixed to 1, and write-through is always used, when C_DCACHE_USE_WRITEBACK is cleared to 0.

Read/Write

0/1

29

n-3

I

Inhibit Caching

When bit is set to 1, accesses to the page are not cached (caching is inhibited).

When cleared to 0, accesses to the page are cacheable.

Read/Write

0

30

n-2

M

Memory Coherent

This bit is fixed to 0, because memory coherence is not implemented on MicroBlaze.

Read Only

0

31

n-1

G

Guarded

When bit is set to 1, speculative page accesses are not allowed (memory is guarded).

When cleared to 0, speculative page accesses are allowed.

The G attribute can be used to protect memory-mapped I/O devices from inappropriate instruction accesses.

Read/Write

0
  1. The bit index n = C_ADDR_SIZE applies when PAE or 64-bit MicroBlaze is enabled.