Method, system, and apparatus for page sizing extension
A method, system, and apparatus may initialize a fixed plurality of page table entries for a fixed plurality of pages in memory, each page having a first size, wherein a linear address for each page table entry corresponds to a physical address and the fixed plurality of pages are aligned. A bit in each of the page table entries for the aligned pages may be set to indicate whether or not the fixed plurality of pages is to be treated as one combined page having a second page size larger than the first page size. Other embodiments are described and claimed.
1 . A processor comprising:
a register to store a base address of a first translation table of a plurality of translation tables, the plurality of translation tables to map virtual memory to physical memory;
a translation table walker to look up a first entry in the first translation table, a second entry in a second translation table, a third entry in a third translation table, and a fourth entry in a fourth translation table, wherein
the first entry is to include a first physical address of the second translation table, the second entry is to include a second physical address of the third translation table, the third entry is to include a third physical address of the fourth translation table, and the fourth entry is to include a fourth physical address of a page, and
the fourth entry is also to include controls, the controls including a bit being set to indicate that the page is a pre-selected size and may be built from pages that are of a size different from the pre-selected size, the bit indicating the presence of the page of the pre-selected size in memory beginning at a page base address indicated by an address field, the bit indicating that a page table entry should be cached using a translation lookaside buffer (TLB) associated with the pre-selected size, the bit being reset indicating the page table entry may be cached using a TLB associated with a different size,
wherein performing a page table walk includes determining a page size of the page table entry based on the bit.
2 . The processor of claim 1 , wherein the first entry in the first translation table is to be selected using bits 47 : 39 ; of an input address.
3 . The processor of claim 1 , wherein the second entry in the second translation table is to be selected using bits 38 : 30 of an input address.
4 . The processor of claim 1 , wherein the third entry in the third translation table is to be selected using bits 29 : 21 of an input address.
5 . The processor of claim 1 , wherein the fourth entry in the fourth translation table is to be selected using bits 20 : 12 of an input address.
6 . The processor of claim 1 , wherein a fifth physical address in the page is to be selected using bits 11 : 0 of an input address.
7 . The processor of claim 1 , wherein the first entry, the second entry, the third entry, and the fourth entry each have a length of 64 bits.
8 . The processor of claim 1 , wherein the controls are also to include information about whether the page is dirty.
9 . The processor of claim 1 , wherein the controls are also to include information about whether the page has been accessed.
10 . The processor of claim 1 , wherein the controls are also to include information about access permissions.
11 . The processor of claim 1 , wherein the controls are also to include information about cacheability.
12 . A method comprising:
looking up, by a translation table walker, a first entry in a first translation table of a plurality of translation tables, the plurality of translation tables to map virtual memory to physical memory, wherein a base address of the first translation table is stored in a register and the first entry includes a first physical address of a second translation table;
looking up, by the translation table walker, a second entry in the second translation table of the plurality of translation tables, wherein the second entry includes a second physical address of a third translation table;
looking up, by the translation table walker, a third entry in the third translation table of the plurality of translation tables, wherein the third entry includes a third physical address of a fourth translation table;
looking up, by the translation table walker, a fourth entry in the fourth translation table of the plurality of translation tables, wherein the fourth entry includes a fourth physical address of a page and the fourth entry also includes controls including a bit to be set to indicate that the is a pre-selected size and may be built from pages that are of a size different from the pre-selected size, the bit indicating the presence of the page of the pre-selected size in memory beginning at a page base address indicated by an address field, the bit indicating that a page table entry should be cached using a translation lookaside buffer (TLB) associated with the pre-selected size, the bit being reset indicating the page table entry may be using a TLB associated with a different size,
wherein performing a page table walk includes determining a page size of the page table entry based on the bit.
13 . The processor of claim 12 , wherein looking up the first entry in the first translation table includes using bits 47 : 39 of an input address.
14 . The processor of claim 13 , wherein looking up the second entry in the second translation table includes using bits 38 : 30 of the input address.
15 . The processor of claim 14 , wherein looking up the third entry in the third translation table includes using bits 29 : 21 of the input address.
16 . The processor of claim 15 , wherein looking up the fourth entry in the fourth translation table includes using bits 20 : 12 of the input address.
17 . The processor of claim 16 , further including looking up a fifth physical address in the page using bits 11 : 0 of the input address.
18 . A system comprising:
a physical memory; and
a processor comprising:
a register to store a base address of a first translation table of a plurality of translation tables, the plurality of translation tables to map virtual memory to the physical memory;
a translation table walker to look up a first entry in the first translation table, a second entry in a second translation table, a third entry in a third translation table, and a fourth entry in a fourth translation table, wherein
the first entry is to include a first physical address of the second translation table, the second entry is to include a second physical address of the third translation table, the third entry is to include a third physical address of the fourth translation table, and the fourth entry is to include a fourth physical address of a page, and
the fourth entry is also to include controls, the controls to include a bit to be set to indicate that the page is a pre-selected size and may be built from pages that are of a size different from the pre-selected size, the bit indicating the presence of the page of the pre-selected size in memory beginning at a page base address indicated by an address field, the bit indicating that a page table entry should be using a translation lookaside buffer (TLB) associated with the pre-selected size, the bit being reset indicating the page table entry may be using a TLB associated with a different size,
wherein performing a page table walk includes determining a page size of the page table entry based on the bit.
19 . The system of claim 18 , wherein the processor is a multicore processor.
20 . The system of claim 18 , further comprising a Universal Serial Bus flash memory.