A method and apparatus for virtual address translation include processing that
begins by receiving a memory access request that includes a virtual address. The
processing continues by determining whether a physical address translation has
been performed for the virtual address. Note that a physical address translation
translates the virtual address into an address. The address either corresponds
to physical address of memory or is further translated into another physical address
of memory. The processing continues when the address, which resulted from the physical
address translation or the another physical address translation, is stored in a
translation look aside table (TLB). When the physical address translation or the
another physical address translation has not been performed, the processing retrieves
a physical page address based on a portion of the virtual address. The processing
continues by determining whether the physical page address corresponds to a physical
address requiring further translation (e.g., is within the AGP window). If not,
the physical page address and a portion of the virtual address are used to produce
the physical address. If the address is within the physical address requiring further
translation, a second physical page address is retrieved. Utilizing the second
physical page address and a portion of the virtual address, another physical address
is produced. Both the translations (i.e., the physical address and the another
physical address) are stored within the same TLB of the central processing unit.