The purpose of address translation is to change the logical address generated by the processor into the physical address for the system memory. The iAPX386 can access 4Gbytes of logical memory. Using address translation techniques, a program could think it was executing within the top 64k block of this address space, but in reality be executing within the lowest 64k block. The principle of address translation is important for multi-user systems, which need to relocate the user tasks anywhere in available memory. It isolates users from depending upon certain memory addresses and requirements.
Address translation is done via a lookup table.
The address coming in from the processor serves as an entry into the table, the contents of the table entry then specifies the physical address. The table entry value is then combined with the rest of the address bus and presented to physical memory. The high order bits are chosen as a table entry value because they change less often whilst a program is running, thus are a good candidate for caching. Note how the table entry specifies a base address, whilst the low order bits of the virtual address specify an offset value from that base address. In the majority of systems, the logical and physical addresses are different.