IP Library Granted Patent US 8,850,154
Granted Patent B2
US 8,850,154 · App. 12/207,189 · Granted Sep 30, 2014

Processing system having memory partitioning

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 8,850,154
App. No.
12/207,189
Granted
Sep 30, 2014
Kind
B2
Abstract

Memory resource partitioning code allocates a memory partition in response to a process requesting access to memory storage. Memory partition rules may define attributes of the memory partition. The attributes may include a minimum memory allocation and a maximum memory allocation for the memory partition.

Claims (28)

1. A processing system comprising:

memory storage;

memory resource partitioning code that is executable to allocate a memory partition when a process creates a memory object at runtime, wherein the memory partition is created for a single class of memory and the memory partition is associated with the memory storage, the memory partition having associated memory partition rules based on attributes established on a per memory class basis, that govern allocation of the memory storage associated with the memory partition, where the memory partition rules include a minimum size attribute and a maximum size attribute that indicate an amount of memory reserved for the memory partition and an amount of discretionary memory which is not guaranteed to be available for the memory partition, wherein a non-zero minimum size specifies an amount of memory reserved for use by the memory object created at runtime which is associated with the memory partition and the maximum size specifies an amount of memory that cannot be exceeded for use by the memory object created at runtime which is associated with the memory partition; and

the process that is operable to create the memory object at run time and generate a request for use of an amount of memory storage;

where the memory resource partitioning code responds to the process requesting use of the amount of memory storage by generating the memory partition for allocating memory in accordance with the memory partition rules.

2. The processing system of claim 1 , where the memory resource partitioning code is adapted to generate a plurality of memory resource partitions.

3. The processing system of claim 2 , where at least two of the plurality of memory resource partitions are arranged in a hierarchy comprising a parent memory partition and a child memory partition.

4. The processing system of claim 3 , where the child memory partition has memory partition attributes corresponding to memory partition attributes of the parent memory partition.

5. The processing system of claim 1 , where the memory resource partitioning code is adapted to generate a plurality of memory partition types.

6. The processing system of claim 5 , where the plurality of memory partition types comprises an open memory partition type having a minimum size memory allocation equal to zero and a maximum size memory allocation that is not constrained by the open memory partition type.

7. The processing system of claim 5 , where the plurality of memory partition types comprises a guaranteed memory partition type having a minimum size memory allocation equal to a predetermined value that is greater than zero and a maximum size memory allocation that is not constrained by the guaranteed memory partition type.

8. The processing system of claim 5 , where the plurality of memory partition types comprises a restricted memory partition type having a minimum size memory allocation equal to zero and a maximum size memory allocation having a predetermined value corresponding to a maximum amount of memory storage that may be allocated.

9. The processing system of claim 5 , where the plurality of memory partition types comprises a sandbox memory partition type having equal minimum size and maximum size memory allocation values.

10. The processing system of claim 1 , where the process requesting use of the amount of the memory storage generates a memory object corresponding to a memory class, where the memory class is associated with a memory partition type having predetermined minimum size and maximum size attributes, and where the memory resource partitioning code generates a memory partition of the memory resource partition type when the process attempts to generate the memory object.

11. The processing system of claim 2 , where at least two of the plurality of memory partitions are organized as a pseudo partition.

12. The processing system of claim 11 , where the pseudo partition is collectively referenced by a group name.

13. The processing system of claim 1 , wherein discretionary memory includes an amount of memory defined by the difference between the maximum memory allocation and the minimum memory allocation.

14. The processing system of claim 1 , wherein different memory resource classes are partitioned separately and the process is allowed to be associated with more than one memory partition.

15. The processing system of claim 1 , wherein the memory resource partitioning code arbitrates communications between a memory allocator and a physical memory allocator and intercepts the request for use of the amount of memory and processes the request before it is transferred to the physical memory.

16. A method for managing memory storage in a processing system comprising:

creating a memory object at run time by a process and requesting use of an amount of the memory storage;

generating a memory partition that represents a single class of memory in response to the request in accordance with memory partition rules based on attributes established on a per memory class basis corresponding to the memory partition, where the memory partition rules include a minimum size attribute and a maximum size attribute that indicate an amount of memory reserved for the memory partition and an amount of discretionary memory which is not guaranteed to be available for the memory partition, and a non-zero minimum size specifies an amount of memory reserved for use by the memory object created at run time which is associated with the partition and the maximum size specifies an amount of memory that cannot be exceeded for use by the memory object created at runtime which is associated with the memory partition; and

managing further memory requests from the process using the memory partition.

17. The method of claim 16 , where the memory partition is generated in accordance with on one or more memory partition types.

18. The method of claim 17 , where the one or more memory partition types comprises an open memory partition type having a minimum memory allocation equal to zero and a maximum memory allocation that is not constrained by the open memory partition type.

19. The method of claim 17 , where the one or more memory partition types comprises a guaranteed memory partition type having a minimum memory allocation equal to a predetermined value that is greater than zero and a maximum memory allocation that is not constrained by the guaranteed memory partition type.

20. The method of claim 17 , where the one or more memory partition types comprises a restricted memory partition type having a minimum memory allocation equal to zero and a maximum memory allocation having a predetermined value corresponding to a maximum amount of memory storage that may be allocated.

21. The method of claim 17 , where the one or more memory partition types comprises a sandbox memory partition type having equal minimum and maximum memory allocation values.

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 Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0398 →
CHANGE OF SEAT Recorded Feb 28, 2011
From: QNX SOFTWARE SYSTEMS GMBH & CO. KG
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 025863/0434 →
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 Jan 26, 2009
From: KISEL, MICHAEL
To: QNX SOFTWARE SYSTEMS GMBH & CO. KG
Reel/Frame 022153/0434 →