IP Library Granted Patent US 7,647,458
Granted Patent B1
US 7,647,458 · App. 12/082,239 · Granted Jan 12, 2010

Garbage collection

Assignee: Azul Systems, Inc.
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,647,458
App. No.
12/082,239
Granted
Jan 12, 2010
Kind
B1
Abstract

A computer system includes a processor; and a memory coupled to the processor, configured to provide the processor with a plurality of instructions including a garbage collection barrier instruction and a subsequent instruction that immediately follows the garbage collection barrier instruction; wherein the processor is configured to execute the garbage collection barrier instruction, including by: evaluating a memory reference to determine a condition associated with the garbage collection barrier instruction; and in the event that the condition is met, while maintaining the same privilege level, saving information that is based at least in part on the current value of a program counter, and setting the program counter to correspond to a target location that is other than the location of the subsequent instruction.

Claims (37)

1. A computer system comprising:

a processor; and

a memory coupled to the processor, configured to provide the processor with a plurality of instructions including a garbage collection barrier instruction and a subsequent instruction that immediately follows the garbage collection barrier instruction; wherein

the processor is configured to execute the garbage collection barrier instruction, including by:

evaluating a memory reference to determine a condition associated with the garbage collection barrier instruction; and

in the event that the condition is met, while maintaining the same privilege level, saving information that is based at least in part on the current value of a program counter, and setting the program counter to correspond to a target location that is other than the location of the subsequent instruction.

2. The computer system of claim 1 , wherein the processor is further configured to execute one or more handler instructions starting at the target location.

3. The computer system of claim 2 , wherein the processor maintains the same privilege level while executing the garbage collection barrier instruction and the handler.

4. The computer system of claim 2 , wherein the target location is derived from the evaluation of the memory reference and processor state information, and is otherwise independent of argument to the garbage collection barrier instruction.

5. The computer system of claim 2 , wherein the information saved is used by the processor to return to the subsequent instruction after the processor executes the handler instruction.

6. The computer system of claim 2 , wherein the processor is further configured to execute the subsequent instruction after executing the one or more handler instructions.

7. The computer system of claim 1 , wherein the garbage collection barrier instruction is a barrier for a store operation.

8. The computer system of claim 1 , wherein the processor is configured to execute the garbage collection barrier instruction, further including by storing a value to a memory location.

9. The computer system of claim 1 , wherein the garbage collection barrier instruction is a barrier for a load operation.

10. The computer system of claim 1 , wherein executing the garbage collection barrier instruction further includes loading a value from a memory location.

11. The computer system of claim 1 , wherein evaluating the memory reference to determine the condition includes performing one or more tests.

12. The computer system of claim 11 , wherein at least some of the tests have a corresponding priority.

13. The computer system of claim 12 , wherein the target location depends on the priority of the at least some of the tests.

14. The computer system of claim 1 , wherein evaluating the memory reference to determine the condition includes performing a plurality of tests, and the target location depends on a combination of the plurality of tests that triggered.

15. The computer system of claim 1 , wherein the target location corresponds to a location in a handler array.

16. The computer system of claim 15 , wherein a base address of the handler array is stored in a register.

17. The computer system of claim 1 , wherein in the event that the condition is met, the processor is further configured to repair a cause for the condition.

18. The computer system of claim 1 , wherein evaluating the condition includes determining whether a field in a garbage collection barrier instruction input matches an expected value.

19. The computer system of claim 18 , wherein in the event that the field does not match the expected value, the processor is further configured to set the field to the expected value.

20. The computer system of claim 18 , wherein the processor is further configured to place the memory reference garbage collection barrier instruction on a garbage collector work list.

21. The computer system of claim 1 , wherein evaluating the condition includes determining whether the memory reference is associated with an object that has been relocated or should be relocated to a different memory region.

22. The computer system of claim 21 , wherein evaluating the condition includes looking up a value in a Translation Lookaside Buffer (TLB).

23. The computer system of claim 21 , wherein evaluating the condition includes looking up a value in memory.

24. The computer system of claim 1 , wherein evaluating the condition includes performing a matrix test.

25. A method for executing a program in a garbage collected environment, comprising:

providing a plurality of program instructions including a garbage collection barrier instruction and a subsequent instruction that immediately follows the garbage collection barrier instruction; and

executing the garbage collection instruction, including by:

evaluating a memory reference to determine a condition associated with the garbage collection barrier instruction; and

in the event that the condition is met, saving information that is based at least in part on the current value of a program counter, and setting the program counter to correspond to a target location that is other than the location of the subsequent instruction.

26. A computer program product for memory management, the computer program product being embodied in a computer readable medium and comprising computer instructions including a garbage collection barrier instruction and a subsequent instruction that immediately follows the garbage collection barrier instruction for execution by a processor, wherein the processor is configured to execute the garbage collection barrier instruction, including by:

evaluating a memory reference to determine a condition associated with the garbage collection barrier instruction; and

in the event that the condition is met, while maintaining the same privilege level, saving information that is based at least in part on the current value of a program counter, and setting the program counter to correspond to a target location that is other than the location of the subsequent instruction.

Assignments (9)
RELEASE OF SECURITY INTERESTS IN PATENTS RECORDED AT REEL/FRAME 052293/0121 Recorded Dec 3, 2025
From: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
To: AZUL SYSTEMS, INC.
Reel/Frame 073466/0064 →
SECURITY INTEREST Recorded Dec 3, 2025
From: AZUL SYSTEMS, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073828/0083 →
SECURITY INTEREST Recorded Apr 2, 2020
From: AZUL SYSTEMS, INC.
To: GOLUB CAPITAL LLC, AS COLLATERAL AGENT
Reel/Frame 052293/0121 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2020
From: SILICON VALLEY BANK
To: AZUL SYSTEMS, INC.
Reel/Frame 052293/0869 →
RELEASE OF SECURITY INTEREST Recorded Feb 21, 2019
From: PARTNERS FOR GROWTH IV, L.P.
To: AZUL SYSTEMS, INC.
Reel/Frame 048411/0138 →
SECURITY INTEREST Recorded Mar 1, 2016
From: AZUL SYSTEMS, INC.
To: PARTNERS FOR GROWTH IV, L.P.
Reel/Frame 037959/0694 →
SECURITY INTEREST Recorded Feb 2, 2016
From: AZUL SYSTEMS, INC.
To: SILICON VALLEY BANK
Reel/Frame 037641/0665 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE ADDRESS, PREVIOUSLY RECORDED AT REEL 021145 FRAME 0757. Recorded Aug 4, 2008
From: CLICK, JR., CLIFF N.; TENE, GIL; WOLF, MICHAEL A.
To: AZUL SYSTEMS, INC.
Reel/Frame 021355/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2008
From: CLICK, JR., CLIFF N.; TENE, GIL; WOLF, MICHAEL A.
To: AZUL SYSTEMS, INC.
Reel/Frame 021145/0757 →
Continuity (2)
Continuation In Part 1132169400 · Dec 28, 2005
Provisional Application 6064038300 · Dec 30, 2004