IP Library Granted Patent US 12,613,807
Granted Patent B2
US 12,613,807 · App. 17/404,770 · Granted Apr 28, 2026

Method, system, and apparatus for page sizing extension

Inventors: Edward Grochowski (San Jose, CA); Julio Gago (Barcelona, ES); Roger Gramunt (Portland, OR); Roger Espasa (Barcelona, ES); Rolf Kassa (Braunschweig, DE)
Assignee: UNM RAINFOREST INNOVATIONS
G06F12/1009G06F12/0864G06F12/1027G06F12/145G06F2212/152G06F2212/6032G06F2212/652G06F2212/657G06F2212/68
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,613,807
App. No.
17/404,770
Granted
Apr 28, 2026
Kind
B2
Abstract

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.

Claims (37)

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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 17, 2022
From: INTEL CORPORATION
To: UNM RAINFOREST INNOVATIONS
Reel/Frame 060234/0794 →
Continuity (5)
Continuation 16560213 · Sep 4, 2019
Continuation 15384067 · Dec 19, 2016
Continuation 13722485 · Dec 20, 2012
Continuation 11967868 · Dec 31, 2007
Related Publication 20210374069A1 · Dec 2, 2021
References Cited (61)
US 5524212A · Somani et al. · 1996 [cited by applicant]
US 5630087A · Talluri et al. · 1997 [cited by applicant]
US 5918251A · Yamada et al. · 1999 [cited by applicant]
US 6012132A · Yamada et al. · 2000 [cited by applicant]
US 6092172A · Nishimoto et al. · 2000 [cited by applicant]
US 6112285A · Ganapathy et al. · 2000 [cited by applicant]
US 6289431B1 · Bigbee et al. · 2001 [cited by applicant]
US 6349380B1 · Shahidzadeh et al. · 2002 [cited by applicant]
US 7107431B2 · Chiang et al. · 2006 [cited by applicant]
US 7117337B2 · Chiang et al. · 2006 [cited by applicant]
US 7793070B2 · Stecher · 2010 [cited by examiner]
US 20050108496A1 · Elnozahy et al. · 2005 [cited by applicant]
US 20050188175A1 · Chiang et al. · 2005 [cited by applicant]
US 20090013149A1 · Uhlig et al. · 2009 [cited by applicant]
Sattler, A, Intel's IA-64 and 64-Bit Extensions Technology, 2004, In Contemporary Challenges in Information Technology-Results of the MSc-Seminars in SS2004 and WS 2004/05, 11pages (Year: 2004). [cited by examiner]
“Digital Semiconductor 21172 Core Logic Chipset”—Technical Reference Manual, Chapter 6, Preliminary Edition—Subject to Change—May 23, 1996. [cited by applicant]
“Software Optimization Guide for AMD Family 10h Processors,” Advanced Micro Devices, Chapter 12, Sep. 2007. [cited by applicant]
Advisory Action from U.S. Appl. No. 11/967,868, May 14, 2012, 3 pages. [cited by applicant]
Advisory Action from U.S. Appl. No. 11/967,868, Sep. 8, 2011, 3 pages. [cited by applicant]
Advisory Action from U.S. Appl. No. 13/722,485, Apr. 8, 2014, 3 pages. [cited by applicant]
Brunner R. A., “AMD Presentation for Linux Kernel Summit”, AMD Fellow, Jul. 2005, 30 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 11/967,868, Jun. 22, 2011, 13 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 11/967,868, Mar. 6, 2012, 14 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 13/722,485, Dec. 9, 2015, 20 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 13/722,485, Jan. 16, 2015, 18 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 13/722,485, Jan. 30, 2014, 15 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 13/722,485, Sep. 16, 2016, 21 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 15/384,054, Feb. 9, 2018, 27 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 15/384,054, Mar. 15, 2019, 9 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 15/384,067, Feb. 9, 2018, 25 pages. [cited by applicant]
Final Office Action from U.S. Appl. No. 15/384,067, Mar. 15, 2019, 9 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 16/560,213, May 24, 2021, 9 pages. [cited by applicant]
Heinrich, Joe, “MIPS R4000 Microprocessor User's Manual,” Second Edition, MIPS Technologies, Inc., 2011 North Shoreline, Mountain View, California 94039-7311, 1994, 754 pages. [cited by applicant]
Juan E. Navarro et al., Practical, Transparent Operating System Support for Superpages, Proc. 5th Symp. on OS Design and Implementation, Boston, MA, Dec. 9-11, 2002, 17 pages. [cited by applicant]
Juan E. Navarro, Transparent Operating System Support for Superpages, Ph.D. Thesis, Rice University, Houston, TX, Mar. 2004, 114 pages. [cited by applicant]
Lee et al., A Banked-Promotion TLB for High Performance and Low Power, 2001, Samsung, 6 pages. [cited by applicant]
Navarro, Juan E., Transparent operating system support for superpages, 2004, Rice University, 8 pages. [cited by applicant]
Non-final Office Action from U.S. Appl. No. 11/967,868, Nov. 3, 2010, 13 pages. [cited by applicant]
Non-final Office Action from U.S. Appl. No. 11/967,868, Oct. 5, 2011, 15pages. [cited by applicant]
Non-final Office Action from U.S. Appl. No. 13/722,485, Apr. 6, 2016, 18 pages. [cited by applicant]
Non-final Office Action from U.S. Appl. No. 13/722,485, Aug. 16, 2013, 11 pages. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 13/722,485, Jul. 7, 2015, 19 pages. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 13/722,485, Jun. 23, 2014, 13 pages. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 13/722,485, Mar. 23, 2017, 8 pages. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 15/384,054, Sep. 21, 2018, 21 pages. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 15/384,067, Jun. 16, 2017, 17 pages. [cited by applicant]
Non-Final Office Action from U.S. Appl. No. 15/384,067, Sep. 21, 2018, 18 pages. [cited by applicant]
Non-Final Office Action in co-pending related U.S. Appl. No. 15/384,054, Jun. 16, 2017, 19 pages. [cited by applicant]
Non-Final Office Action, U.S. Appl. No. 16/560,213, Oct. 5, 2020, 7 pages. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 11/967,868, Sep. 25, 2015, 5 pages. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 13/722,485, Dec. 6, 2017, 12 pages. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 13/722,485, Dec. 28, 2017, 9 pages. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 15/384,054, Jun. 12, 2019, 10 pages. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 15/384,067, Aug. 7, 2019, 4 pages. [cited by applicant]
Notice of Allowance from U.S. Appl. No. 15/384,067, Jun. 12, 2019, 9 pages. [cited by applicant]
Patterson et al., Computer Organization and Design, 2005, 3rd ed., 4 pages. [cited by applicant]
Patterson et al., Computer Organization and Design, 2009, Elsevier, 4 pages. [cited by applicant]
Talluri et al., A New Page Table for 64-bit Address Spaces, 1995, ACM, 17 pages. [cited by applicant]
Talluri et al., Tradeoffs in Supporting Two Page Sizes, 1992, ACM, 10 pages. [cited by applicant]
Talluri, Madhusudhan, “Use of Superpages and Subblocking in the Address Translation Hierarchy,” Dissertation at the University of Wisconsin-Madison, 1995, 193 pages. [cited by applicant]
Uhlig et al., Performance of Address-Space Multiplexing on the Pentium, 2002, CiteSeer, 15 pages (Year: 2002). [cited by applicant]