IP Library Granted Patent US 8,073,883
Granted Patent B2
US 8,073,883 · App. 12/910,134 · Granted Dec 6, 2011

Methods and apparatus for concurrently executing a garbage collection process during execution of a primary application program

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,073,883
App. No.
12/910,134
Granted
Dec 6, 2011
Kind
B2
Abstract

A wireless mobile communication device has an application program and a garbage collection program stored in memory. The garbage collection program is configured to identify a root set of referenced objects of the application program with use of a reference indicator array and to perform a mark and sweep process based on the root set of referenced objects. The reference indicator array has a plurality of reference indicators where each referenced indicator corresponding to a referenced object is set as referenced. The application program is configured to be executed during execution of a mark and sweep process of the garbage collection program, such that information received or provided via the user interface during the execution of the mark and sweep process is received or provided without suspension or delay. The application program has computer instructions which are based on an instruction set defined by a plurality of opcodes or native codes, including a single predefined opcode or a single predefined native code which is a “get object reference” instruction. Each “get object reference” instruction is associated with a target object and is defined to retrieve a reference from the target object and also set one of the reference indicators corresponding to the target object as referenced in the reference indicator array.

Claims (37)

1. A wireless mobile communication device, comprising:

one or more processors;

a user interface, coupled to the one or more processors, and comprising at least one of a keyboard or a display;

memory coupled to the one or more processors;

an application program, stored in the memory, and configured to receive or provide information via the user interface;

a garbage collection program, stored in the memory, and configured to identify a root set of referenced objects of the application program with use of a reference indicator array and to perform a mark and sweep process based on the root set of referenced objects, the reference indicator array having a plurality of reference indicators where each referenced indicator corresponding to a referenced object is set as referenced; and

the application program being configured to be executed during execution of the mark and sweep process of the garbage collection program, such that information received or provided via the user interface during the execution of the mark and sweep process is received or provided without suspension or delay, the application program being based on an instruction set comprising a predefined opcode or native code which is defined to: (1) retrieve a reference from a target object, and (2) set one of the reference indicators corresponding to the target object as referenced in the reference indicator array.

2. The wireless mobile communication device of claim 1 , wherein the application program is derived from a JAVA application program.

3. The wireless mobile communication device of claim 1 , comprising a handheld telephony device operative in a wireless communication network.

4. The wireless mobile communication device of claim 1 , wherein the predefined opcode or native code is a single predefined opcode of the one or more processors.

5. The wireless mobile communication device of claim 1 , wherein the predefined opcode or native code is a single predefined native code.

6. The wireless mobile communication device of claim 1 , wherein the predefined opcode or native code comprises a GETREF instruction.

7. The wireless mobile communication device of claim 1 , wherein the predefined opcode or native code comprises an AALOAD instruction.

8. The wireless mobile communication device of claim 1 , wherein the predefined opcode or native code is further defined to set the reference indicator in the reference indicator array as referenced for the target object if the mark and sweep process is currently being executed, and to refrain from setting the reference indicator in the reference indicator array as referenced for the target object if the mark and sweep process is not currently being executed.

9. The wireless mobile communication device of claim 1 , wherein the mark and sweep process is further configured to, for each referenced object having one of the reference indicators set as referenced in the reference indicator array: (1) set a marked indicator in a marked indicator array as marked for the referenced object, (2) examine a content of the referenced object for a further referenced object, and (3) set one of the reference indicators corresponding to said further referenced object as referenced in the reference indicator array.

10. The wireless mobile communication device of claim 1 , wherein the mark and sweep process is further configured to, for each referenced object having one of the reference indicators set as referenced in the reference indicator array, (1) set a marked indicator in a marked indicator array as marked for the referenced object, (2) examine a content of the referenced object for a further referenced object, and (3) set one of the reference indicators corresponding to said further referenced object as referenced in the reference indicator array, the garbage collection program being further configured to:

free objects identified as garbage in order to reclaim memory space in memory, the objects identified as garbage being those that fail to have a corresponding one of the marked indicators set as marked in the marked indicator array; and

consolidate referenced objects such that available contiguous memory space in the memory is increased.

11. A wireless mobile communication device, comprising:

one or more processors;

a user interface, coupled to the one or more processors, and comprising at least one of a keyboard or a display;

memory coupled to the one or more processors;

an application program, stored in the memory, and configured to receive or provide information via the user interface;

a garbage collection program stored in the memory;

the garbage collection program being configured to identify a root set of referenced objects of the application program with use of a reference indicator array and to perform a mark and sweep process based on the root set of referenced objects, the reference indicator array having a plurality of reference indicators where each referenced indicator corresponding to a referenced object is set as referenced; and

the application program being configured to be executed during execution of the mark and sweep process of the garbage collection program, such that information received or provided via the user interface during the execution of the mark and sweep process is received or provided without suspension or delay, the application program being based on an instruction set comprising a predefined opcode or native code which is defined to: (1) create a new object for the application program, (2) set one of the reference indicators corresponding to the new object as referenced in the reference indicator array, and (3) set one of the marked indicator corresponding to the new object as marked in the marked indicator array.

12. The wireless mobile communication device of claim 11 , wherein the application program is derived from a JAVA application program.

13. The wireless mobile communication device of claim 11 , comprising a handheld telephony device operative in a wireless communication network.

14. The wireless mobile communication device of claim 11 , wherein the predefined opcode or native code is a single predefined opcode of the one or more processors.

15. The wireless mobile communication device of claim 11 , wherein the predefined opcode or native code is a single predefined native code.

16. The wireless mobile communication device of claim 11 , wherein the predefined opcode or native code is a CREATE instruction.

17. The wireless mobile communication device of claim 11 , wherein the predefined opcode or native code is a NEW instruction.

18. The wireless mobile communication device of claim 11 , wherein the predefined opcode or native code is further defined to set the reference indicator in the reference indicator array as referenced for the target object if the mark and sweep process is currently being executed, and to refrain from setting the reference indicator in the reference indicator array as referenced for the target object if the mark and sweep process is not currently being executed.

19. The wireless mobile communication device of claim 11 , wherein the mark and sweep process is further configured to, for each referenced object having one of the reference indicators set as referenced in the reference indicator array: (1) set a marked indicator in a marked indicator array as marked for the referenced object, (2) examine a content of the referenced object for a further referenced object, and (3) set one of the reference indicators corresponding to said further referenced object as referenced in the reference indicator array.

20. The wireless mobile communication device of claim 11 , wherein the mark and sweep process is configured to, for each referenced object having one of the reference indicators set as referenced in the reference indicator array, (1) set a marked indicator in a marked indicator array as marked for the referenced object, (2) examine a content of the referenced object for a further referenced object, and (3) set one of the reference indicators corresponding to said further referenced object as referenced in the reference indicator array, the garbage collection program being further configured to:

free objects identified as garbage in order to reclaim memory space in memory, the objects identified as garbage being those that fail to have a corresponding one of the marked indicators set as marked in the marked indicator array; and

consolidate referenced objects such that available ontiguous memory space in the memory is increased.

Assignments (4)
NUNC PRO TUNC ASSIGNMENT Recorded Jun 19, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064269/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2023
From: BLACKBERRY LIMITED
To: MALIKIE INNOVATIONS LIMITED
Reel/Frame 064104/0103 →
CHANGE OF NAME Recorded Oct 17, 2013
From: RESEARCH IN MOTION LIMITED
To: BLACKBERRY LIMITED
Reel/Frame 031435/0538 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 23, 2011
From: CARMODY, MICHAEL JAMES, MR.; SCIAN, ANTHONY FABIAN, MR.; DAHMS, JOHN FREDRIC ARTHUR, MR.
To: RESEARCH IN MOTION LIMITED
Reel/Frame 026007/0150 →