Method and apparatus for a memory management unit supporting multiple page sizes
First Claim
1. A memory management unit for a virtual address system comprising:
- a translation lookaside buffer including a plurality of positions for storing translation entries,each of the translation entries includinga first number of bit positions to store a first virtual page number,a second number of bit positions to store an offset into a page,a third number of bit positions to store additional bits each of which additional bits may be either a part of a virtual page number or part of an offset into a page,a fourth number of bit positions to indicate a size, anda fifth number of bit positions for storing a physical page number;
means for comparing a virtual page number of a virtual address for information with a virtual page number stored in the translation lookaside buffer;
means responsive to a value stored in the fourth number of bit positions for fixing a length of virtual page numbers to be compared by the means for comparing;
means for concatenating the bits of the fifth number of bits, the bits of the third number of bits which are not compared in the comparator, and the bits of the second number of bits to provide a physical address when a virtual address to be translated matches a virtual address stored in an entry of the translation lookaside buffer; and
a second translation lookaside buffer in memory for providing additional translation entries when a virtual address to be translated does not match a virtual address stored in the translation buffer,the second translation lookaside buffer being capable of storing together entries of different sizes,the entries of different sizes in which a virtual page number is not greater than an assumed length including a virtual page number, a virtual page number length, and a physical page number, andthe entries of different sizes in which a virtual page number is greater than an assumed length including an assumed virtual page number, a virtual page number length, and a pointer to a number of entries having the same assumed virtual page number.
0 Assignments
0 Petitions
Accused Products
Abstract
A memory management unit for translating a virtual address into a corresponding physical address including a translation lookaside buffer and a comparator. The translation lookaside buffer includes a plurality of entries, each of the entries having a first number of bits to indicate a virtual page number, a second number of bits to indicate an offset into the page, a third number of bits to indicate either a portion of a page number or a portion of an offset value, a fourth number of bits to indicate a page size, and a fifth number of bits for storing a physical address of a page of memory. The comparator compares a number of bits equal to the virtual page size of a virtual address presented to the translation lookaside buffer with the virtual addresses stored in entries of the translation lookaside buffer. If the result of the comparison produces a match/hit, the physical address is concatenated with the bits of the second and third number of bits using the stored page size to provide a physical address. When the comparison produces a miss, an assumed page size is used to access a table in memory from which the physical addresses may be derived.
-
Citations
12 Claims
-
1. A memory management unit for a virtual address system comprising:
-
a translation lookaside buffer including a plurality of positions for storing translation entries, each of the translation entries including a first number of bit positions to store a first virtual page number, a second number of bit positions to store an offset into a page, a third number of bit positions to store additional bits each of which additional bits may be either a part of a virtual page number or part of an offset into a page, a fourth number of bit positions to indicate a size, and a fifth number of bit positions for storing a physical page number; means for comparing a virtual page number of a virtual address for information with a virtual page number stored in the translation lookaside buffer; means responsive to a value stored in the fourth number of bit positions for fixing a length of virtual page numbers to be compared by the means for comparing; means for concatenating the bits of the fifth number of bits, the bits of the third number of bits which are not compared in the comparator, and the bits of the second number of bits to provide a physical address when a virtual address to be translated matches a virtual address stored in an entry of the translation lookaside buffer; and a second translation lookaside buffer in memory for providing additional translation entries when a virtual address to be translated does not match a virtual address stored in the translation buffer, the second translation lookaside buffer being capable of storing together entries of different sizes, the entries of different sizes in which a virtual page number is not greater than an assumed length including a virtual page number, a virtual page number length, and a physical page number, and the entries of different sizes in which a virtual page number is greater than an assumed length including an assumed virtual page number, a virtual page number length, and a pointer to a number of entries having the same assumed virtual page number. - View Dependent Claims (2, 3)
-
-
4. A method for translating virtual addresses having variable virtual page sizes and variable offset sizes stored together to physical addresses in a memory management unit for a virtual address system comprising the steps of:
-
(a) comparing a number of bits of a virtual address to be translated with entries stored in a first translation lookaside buffer, the number of bits of the virtual address and each entry being compared being controlled by a value stored in each of the entries; (b) providing a physical page number when the compared bits of a virtual address and an entry are the same; and (c) obtaining a physical page number from a second translation lookaside buffer in memory when the compared bits of a virtual address and an entry are not the same; wherein step (c) includes the steps of comparing entries in the second translation lookaside buffer with a virtual page address, wherein a portion of a virtual address having an assumed length is compared with a portion of an entry in the second translation lookaside buffer of the same length, deriving a length value when a comparison occurs, generating a physical address if the length value is not greater than the assumed length, and generating a pointer to one of a series of physical addresses if the length value is greater than the assumed length. - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12)
-
Specification