×

Virtual address to physical address translation cache that supports multiple page sizes

  • US 5,479,627 A
  • Filed: 09/08/1993
  • Issued: 12/26/1995
  • Est. Priority Date: 09/08/1993
  • Status: Expired due to Term
First Claim
Patent Images

1. A method for translating a first virtual address to a physical address, the method comprising the steps of:

  • receiving the first virtual address, the first virtual address comprising a virtual page offset and a virtual page number, the first virtual address being mapped by an unknown page size, the unknown page size being one of L different page sizes where L is a positive integer greater than one;

    then, for each of the L page sizes, selecting a different one of the L page sizes to be a test page size,(i) calculating a pointer into a translation storage buffer, the pointer being calculated from the first virtual address by assuming that the first virtual address corresponds to a mapping of the test page size, the pointer pointing to a candidate translation table entry of the translation storage buffer, the candidate translation table entry comprising a candidate tag and candidate data, the candidate tag identifying a particular virtual address and the candidate data identifying a particular physical address corresponding to the particular virtual address,(ii) extracting a virtual address target tag from the first virtual address, the virtual address target tag being calculated by assuming that the first virtual address corresponds to a mapping of the test page size,(iii) comparing target tag to the candidate tag, and(iv) if the target tag matches the candidate tag, providing the candidate data as the physical address translation corresponding to the first virtual address,wherein the translation storage buffer is comprised of an Nth power of two translation table entries and each translation table entry is M words in size where N and M are positive integers, and the step of calculating the pointer includes the steps of;

    forming a translation storage buffer index by extracting N least significant bits of the virtual page number of the first virtual address assuming the first virtual address is mapped using the test page size;

    adding the product of the translation storage buffer index and M to a base address to form the pointer.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×