IP Library Granted Patent US 7,917,725
Granted Patent B2
US 7,917,725 · App. 11/853,451 · Granted Mar 29, 2011

Processing system implementing variable page size memory organization using a multiple page per entry translation lookaside buffer

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 7,917,725
App. No.
11/853,451
Granted
Mar 29, 2011
Kind
B2
Abstract

A processing system includes memory management software responsive to changes in a page table to consolidate a run of contiguous page table entries into a page table entry having a larger memory page size. The memory management software determines whether the run of contiguous page table entries may be cached using the larger memory page size in an entry of a translation lookaside buffer. The translation lookaside buffer may be a MIPS-like TLB in which multiple page table entries are cached in each TLB entry.

Claims (35)

1. A method for managing memory of a processing system comprising:

detecting a change in a page table including a plurality of page table entries, where each of the plurality of page table entries includes information for translating a virtual address to a corresponding physical address;

responding to the detection by identifying a run of contiguous page table entries having substantially the same access permission information;

analyzing the run of contiguous page table entries to determine whether those run may be consolidated using a larger memory page size, Y, and whether the run of contiguous page table entries may be consolidated for caching in an entry of a TLB that caches multiple page table entries, X, in a single TLB entry; and

updating an entry of the TLB with information corresponding to the run of contiguous page table entries when the analysis determines that the run of contiguous page table entries may be consolidated for caching in the entry of the TLB, where the updating uses the larger memory page size, Y.

2. The method of claim 1 , where the analysis comprises determining whether the run of contiguous page table entries can support a larger page size of X*Y.

3. The method of claim 1 , where the analysis comprises determining whether the virtual address corresponding to the run of contiguous page table entries is a multiple of Z pursuant to determining whether the run may be cached in an entry of the translation lookaside buffer, where Z=X*Y.

4. The method of claim 1 , where the memory page size management software consolidates the run of contiguous page table entries based on memory boundary conditions for the run of contiguous page table entries.

5. The method of claim 1 , where the memory page size management software consolidates the run of contiguous page table entries based on memory boundary conditions for the run of contiguous page table entries.

6. A processing system comprising:

a page table including a plurality of page table entries, where each of the plurality of page table entries includes information for a translating a virtual address page to a corresponding physical address page;

a translation lookaside buffer adapted to cache page table information, where each entry of the translation lookaside buffer caches information for multiple page table entries, X; and

memory management software responsive to changes in the page table to consolidate a run of contiguous page table entries into one or more page table entries having a larger memory page size, Y, and where the memory management software further determines whether the run of contiguous page table entries may be cached in an entry of the translation lookaside buffer; and

where the memory management software limits checking for contiguous page table entries to page table entries that are locally proximate page table entries that have been changed in the page table, deleted from the page table, and/or added to the page table, where the change, deletion, and/or addition corresponds to the change in the page table to which the memory management software has responded to make the check.

7. The processing system of claim 6 , where the memory management software updates an entry of the translation lookaside buffer using the larger memory page size, Y, if the memory management software determines that the run of contiguous page table entries may be cached in the entry of the translation lookaside buffer.

8. The processing system of claim 6 , where the memory management software consolidates the run of contiguous page table entries based on access permissions for the run of contiguous page table entries.

9. The processing system of claim 6 , where the memory management software determines whether the run of contiguous page table entries can support a memory page size of X*Y pursuant to determining whether the run may be cached in an entry of the translation lookaside buffer.

10. The processing system of claim 6 , where the memory management software determines whether the virtual address corresponding to the run of contiguous page table entries is a multiple of Z pursuant to determining whether the run may be cached in an entry of the translation lookaside buffer, where Z=X*Y.

11. The processing system of claim 6 , where the memory management software consolidates the run of contiguous page table entries based on memory boundary conditions for the run of contiguous page table entries.

12. The processing system of claim 6 , where the memory management software organizes the page table entries of the page table so that consecutive page table entries may be accessed to fill a single TLB entry.

13. The processing system of claim 6 , where the memory management software comprises translation lookaside miss software, where the translation lookaside miss software accesses consecutive page table entries to fill a single TLB entry, and where the number of consecutive page table entries is equal to X.

14. The processing system of claim 6 , where X=2.

15. A memory management system comprising:

a physical memory comprising memory management software, where the memory management software comprises:

page table management software adapted to manage a page table including a plurality of page table entries, where each of the plurality of page table entries includes information for translating a virtual address page to a corresponding physical address page;

translation lookaside buffer management software adapted to manage a translation lookaside buffer, where each entry of the translation lookaside buffer caches information for multiple page entries, X;

memory page size management software responsive to changes in the page table to consolidate a run of contiguous page table entries into one or more page table entries having a larger memory page size, Y, and where the memory page size management software further determines whether the run of contiguous page table entries may be cached in an entry of the translation lookaside buffer; and

where the memory page size management software limits checking for contiguous page table entries to page table entries that are locally proximate page table entries that have been changed in the page table, deleted from the page table, and/or added to the page table, where the change, deletion, and/or addition corresponds to the change in the page table to which the memory management software has responded to make the check.

16. The memory management system of claim 15 , where the translation lookaside buffer management software updates an entry of the translation lookaside buffer using the larger memory page size, Y, if the memory page size management software determines that the run of contiguous page table entries may be cached in the entry of the translation lookaside buffer.

17. The memory management system of claim 15 , where the memory page size management software consolidates the run of contiguous page table entries based on access permissions for the run of contiguous page table entries.

18. The memory management system of claim 15 , where the memory page size management software determines whether the run of contiguous page table entries can support a memory page size of X*Y pursuant to determining whether the run may be cached in an entry of the translation lookaside buffer.

19. The memory management system of claim 15 , where the memory page size management software determines whether the virtual address corresponding to the run of contiguous page table entries is a multiple of Z pursuant to determining whether the run may be cached in an entry of the translation lookaside buffer, where Z=X*Y.

20. The memory management system of claim 15 , where the memory page size management software consolidates the run of contiguous page table entries based on memory boundary conditions for the run of contiguous page table entries.

21. The memory management system of claim 15 , where the memory page size management software organizes the page table entries of the page table so that consecutive page table entries may be accessed to fill a single TLB entry.

22. The memory management system of claim 15 , further comprising translation lookaside miss software, where the translation lookaside miss software accesses consecutive page table entries to fill a single TLB entry, and where the number of consecutive page table entries is equal to X.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2020
From: 2236008 ONTARIO INC.
To: BLACKBERRY LIMITED
Reel/Frame 053313/0315 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
CHANGE OF ADDRESS Recorded Feb 27, 2012
From: QNX SOFTWARE SYSTEMS LIMITED
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 027768/0961 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: 7801769 CANADA INC.
To: QNX SOFTWARE SYSTEMS LIMITED
Reel/Frame 026883/0553 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: 7801769 CANADA INC.
Reel/Frame 026883/0544 →
CHANGE OF SEAT Recorded Feb 18, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025826/0070 →
REGISTRATION Recorded Feb 18, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025848/0656 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Jun 3, 2010
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024483/0045 →
SECURITY AGREEMENT Recorded May 8, 2009
From: HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED; BECKER SERVICE-UND VERWALTUNG GMBH; CROWN AUDIO, INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS (MICHIGAN), INC.; HARMAN BECKER AUTOMOTIVE SYSTEMS HOLDING GMBH; HARMAN BECKER AUTOMOTIVE SYSTEMS, INC.; HARMAN CONSUMER GROUP, INC.; HARMAN DEUTSCHLAND GMBH; HARMAN FINANCIAL GROUP LLC; HARMAN HOLDING GMBH & CO. KG; HARMAN MUSIC GROUP, INCORPORATED; HARMAN SOFTWARE TECHNOLOGY INTERNATIONAL BETEILIGUNGS GMBH; HARMAN SOFTWARE TECHNOLOGY MANAGEMENT GMBH; HBAS INTERNATIONAL GMBH; HBAS MANUFACTURING, INC.; INNOVATIVE SYSTEMS GMBH NAVIGATION-MULTIMEDIA; JBL INCORPORATED; LEXICON, INCORPORATED; MARGI SYSTEMS, INC.; QNX SOFTWARE SYSTEMS (WAVEMAKERS), INC.; QNX SOFTWARE SYSTEMS CANADA CORPORATION; QNX SOFTWARE SYSTEMS CO.; QNX SOFTWARE SYSTEMS GMBH; QNX SOFTWARE SYSTEMS GMBH & CO. KG; QNX SOFTWARE SYSTEMS INTERNATIONAL CORPORATION; QNX SOFTWARE SYSTEMS, INC.; XS EMBEDDED GMBH (F/K/A HARMAN BECKER MEDIA DRIVE TECHNOLOGY GMBH)
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 022659/0743 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 26, 2007
From: STECHER, BRIAN
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 020154/0672 →