This guide introduces memory translation in Armv8-A, which is key to memory management. It explains how virtual addresses are translated to physical addresses, the translation table format, and how software manages the Translation Lookaside Buffers (TLBs).

This information is useful for anyone who is developing low-level code, such as boot code or drivers. It is particularly relevant to anyone who is writing code to set up or manage the Memory Management Unit (MMU).

At the end of this guide, you can check your knowledge. You will have learned how a virtual address is translated to a physical address. You will be able to name the different address spaces, and describe how the address spaces map onto the stages of translation. You will also have learned when software must perform TLB maintenance, and the syntax of TLB maintenance commands.