IP Library Granted Patent US 7,783,859
Granted Patent B2
US 7,783,859 · App. 11/776,967 · Granted Aug 24, 2010

Processing system implementing variable page size memory organization

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,783,859
App. No.
11/776,967
Granted
Aug 24, 2010
Kind
B2
Abstract

A processing system includes memory management software responsive to changes in a page table. The memory management software consolidates contiguous page table entries into one or more page table entries that have larger memory page sizes. The memory management software updates the entries of a translation lookaside buffer that correspond to the consolidated contiguous page table entries.

Claims (64)

1. A method for managing memory of a processing system comprising at least one processor, the method comprising:

detecting, through the use of the at least one processor, 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, memory page size for a corresponding virtual address page, and access permission information for the corresponding virtual address page;

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

analyzing, through the use of the at least one processor, the identified contiguous page table entries to determine whether a change of the memory page size for any of the identified contiguous page table entries is warranted;

updating the memory page size information for at least one of the identified contiguous page table entries with new memory page size information if the analysis of the identified contiguous page table entries determines that a change of the memory page size of any of the identified contiguous page table entries is warranted, where the new memory page size information corresponds to a largest memory page size to which any of the identified contiguous page table entries may be mapped; and

updating, through the use of the at least one processor, one or more entries of the translation lookaside buffer corresponding to at least one of the identified contiguous page table entries, if any, with the new memory page size information.

2. A processing system comprising:

a physical memory comprising a page table and memory management software, where the page table includes a plurality of page table entries, where each of the plurality of page table entries includes memory page size information for a corresponding virtual address page; and

a hardware module comprising a translation lookaside buffer adapted to cache information about a plurality of the page table entries including corresponding memory page size information;

where the memory management software is responsive to changes in the page table to consolidate contiguous page table entries into one or more page table entries having a larger memory page size, where the memory management software further updates entries of the translation lookaside buffer corresponding to the consolidated contiguous page table entries.

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

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

5. The processing system of claim 2 , 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.

6. A processing system comprising:

a physical memory comprising a page table and memory management software, where the page table includes 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, memory page size for a corresponding virtual address page, and access permission information for the corresponding virtual address page; and

a hardware module comprising a translation lookaside buffer adapted to cache information corresponding to a plurality of the page table entries including corresponding memory page size information;

where the memory management software is responsive to changes in the page table to identify contiguous page table entries having substantially the same access permission information, where the memory management software updates the memory page size information for at least one of the identified contiguous page table entries with new memory page size information if an analysis of any of the identified contiguous page table entries warrants a change of the memory page size, where the new memory page size information corresponds to a largest memory page size to which any of the identified contiguous page table entries may be mapped, and where the memory management software facilitates updating of one or more corresponding entries, if any, of the translation lookaside buffer with the new memory page size information.

7. The processing system of claim 6 , where the memory management software directly updates the one or more corresponding entries of the translation lookaside buffer.

8. The processing system of claim 6 , where the memory management software indirectly updates the one or more corresponding entries of the translation lookaside buffer through one or more further software modules.

9. The processing system of claim 6 , 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.

10. The processing system of claim 6 , where the new memory page size information corresponds to a page size that is a multiple of 4 kilobytes.

11. The processing system of claim 6 , where the memory management software is responsive to changes in the page table to facilitate updating of the memory page size information for all of the contiguous page table entries with the new memory page size information.

12. The processing system of claim 6 , where the new memory page size information represents a memory page size that is larger than the memory page size represented by the memory page size information assigned to the contiguous page table entries prior to checking by the memory management software.

13. The processing system of claim 12 , where the new memory page size information represents a memory page size that is smaller than the memory page size represented by the memory page size information assigned to the contiguous page table entries prior to checking by the memory management software.

14. The processing system of claim 6 , where the new memory page size information represents a memory page size that is smaller than the memory page size represented by the memory page size information assigned to the contiguous page table entries prior to checking by the memory management software.

15. The processing system of claim 6 , where the processing system comprises a single page table.

16. The processing system of claim 6 , with a processing system comprises multiple page tables.

17. The processing system of claim 6 , where the processing system comprises a single translation lookaside buffer.

18. The processing system of claim 6 , where the processing system comprises multiple translation lookaside buffers.

19. The processing system of claim 18 , where the multiple translation lookaside buffers comprise:

a first translation lookaside buffer caching page table entries having a first memory page size; and

a second translation lookaside buffer caching page table entries having a second memory page size, where the second memory page size is different from the first memory page size.

20. 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 memory page size information for a corresponding virtual address page;

translation lookaside buffer management software adapted to manage a translation lookaside buffer, where the translation lookaside buffer is adapted to cache information corresponding to a plurality of the page table entries including corresponding memory page size information; and

memory page size management software responsive to changes in the page table to consolidate contiguous page table entries into one or more page table entries having a larger memory page size, where the memory page size management software further updates entries of the translation lookaside buffer corresponding to the consolidated contiguous page table entries.

21. The memory management system of claim 20 , where the memory management software consolidates contiguous page table entries based on access permissions for the contiguous page table entries.

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

23. The memory management system of claim 20 , 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.

24. 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 to a corresponding physical address, memory page size for a corresponding virtual address page, and access permission information for the corresponding virtual address page;

translation lookaside buffer management software adapted to manage a translation lookaside buffer, where the translation lookaside buffer is adapted to cache information corresponding to a plurality of the page table entries including corresponding memory page size information; and

memory page size management software responsive to changes in the page table made by the page table management software to identify contiguous page table entries having substantially the same access permission information, where the memory page size management software updates the memory page size information for at least one of the identified contiguous page table entries with new memory page size information if an analysis of any of the identified contiguous page table entries warrants a change of the memory page size, where the new memory page size information corresponds to a largest memory page size to which any of the identified contiguous page table entries may be mapped, and where the memory page size management software facilitates updating of one or more corresponding entries, if any, of the translation lookaside buffer with the new memory page size information.

25. The memory management system of claim 24 , where the new memory page size information corresponds to a page size that is a multiple of 4 kilobytes.

26. The memory management system of claim 24 , where the memory page size management software directly updates the one or more corresponding entries of the translation lookaside buffer.

27. The memory management system of claim 24 , where the memory page size management software indirectly updates the one or more corresponding entries of the translation lookaside buffer in cooperation with the translation lookaside buffer management software.

28. The memory management system of claim 24 , 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 page size management software has responded to make the check.

29. The memory management system of claim 24 , where the memory page size management software is responsive to changes in the page table to facilitate updating of the memory page size information for all of the contiguous page table entries with the new memory page size information.

30. The memory management system of claim 24 , where the new memory page size information represents a memory page size that is larger than the memory page size represented by the memory page size information assigned to the contiguous page table entries prior to checking by the memory page size management software.

31. The memory management system of claim 30 , where the new memory page size information represents a memory page size that is smaller than the memory page size represented by the memory page size information assigned to the contiguous page table entries prior to checking by the memory page size management software.

32. The memory management system of claim 24 , where the new memory page size information represents a memory page size that is smaller than the memory page size represented by the memory page size information assigned to the contiguous page table entries prior to checking by the memory page size management software.

33. The memory management system of claim 24 , where the page table management software is adapted to manage page table entries of a single page table.

34. The memory management system of claim 24 , where the page table management software is adapted to manage page table entries of multiple page tables.

35. The memory management system of claim 24 , where the translation lookaside buffer management software is adapted to manage a single translation lookaside buffer.

36. The memory management system of claim 24 , where the translation lookaside buffer management software is adapted to manage multiple translation lookaside buffers.

37. The memory management system of claim 36 , where the multiple translation lookaside buffers have different page sizes.

38. A processor comprising a physical memory having a software code embodied therein, the software code adapted to be executed to implement a method for managing memory of a processing system, the method 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, memory page size for a corresponding virtual address page, and access permission information for the corresponding virtual address page;

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

analyzing the identified contiguous page table entries to determine whether a change of the memory page size for any of the identified contiguous page table entries is warranted;

updating the memory page size information for at least one of the identified contiguous page table entries with new memory page size information if the analysis of the identified contiguous page table entries determines that a change of the memory page size of any of the identified contiguous page table entries is warranted, where the new memory page size information corresponds to a largest memory page size to which any of the identified contiguous page table entries may be mapped; and

updating one or more entries of the translation lookaside buffer corresponding to at least one of the identified contiguous page table entries, if any, with the new memory page size information.

Assignments (13)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064270/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
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: QNX SOFTWARE SYSTEMS LIMITED
To: 8758271 CANADA INC.
Reel/Frame 032607/0943 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2014
From: 8758271 CANADA INC.
To: 2236008 ONTARIO INC.
Reel/Frame 032607/0674 →
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 →
REGISTRATION Recorded Jul 7, 2010
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024647/0406 →
CHANGE OF SEAT Recorded Jul 7, 2010
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 024647/0413 →
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; KITTUR, SUNIL; ZHOU, HAO
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 020154/0852 →