Dynamic Address Translation, or DAT, is the process of translating a virtual address during a storage reference into the corresponding real address.
If, while executing an instruction, a CPU fetches an instruction located at a particular virtual address, or fetches data from a specific virtual address or stores data to a particular virtual address, then the virtual address must first be translated to the corresponding physical address in real memory.
This is done by a hardware component, sometimes called a memory management unit, which looks up the real address (from the page and segment tables) corresponding to a virtual address and passes the real address to the CPU component that execute instructions.
If the page tables indicate that the virtual memory page is not currently in real memory, then the hardware raises a page fault exception. This is a special interrupt signal which causes the paging subsystem component of the operating system to bring that page from auxiliary storage (usually cache or disk) into real memory.
The mapping of the virtual address that the page frame logically occupies to the real address where the actual page frame resides is address translated for the CPU to execute.
Looking at this process more closely reveals that the machine can present any one of a number of different types of faults. A type, region, segment, or page fault will be presented depending on at which point in the DAT structure invalid entries are found. The faults repeat down the DAT structure until ultimately a page fault is presented and the virtual page is brought into central storage either for the first time (there is no copy on auxiliary storage) or by bringing the page in from auxiliary storage.
DAT is implemented by both hardware and software through the use of page tables, segment tables, region tables and translation lookaside buffers. DAT allows different address spaces to share the same program or other data that is for read only. This is because virtual addresses in different address spaces can be made to translate to the same frame of central storage. Otherwise, there would have to be many copies of the program or data, one for each address space.