IP Library Granted Patent US 8,046,544
Granted Patent B2
US 8,046,544 · App. 12/592,579 · Granted Oct 25, 2011

Garbage collection barrier with direct user mode traps

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 8,046,544
App. No.
12/592,579
Granted
Oct 25, 2011
Kind
B2
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 set of garbage collection instructions configured to perform one or more garbage collection barrier operations and a subsequent instruction that immediately follows the garbage collection instruction; wherein the processor is configured to execute the set of garbage collection instructions, including by: evaluating a memory reference to determine a condition associated with the set of garbage collection instructions; 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 plurality of garbage collection barrier instructions and a subsequent instruction that immediately follows the plurality of garbage collection barrier instructions; wherein

the processor is configured to execute the plurality of garbage collection barrier instructions, including:

evaluating a memory reference to determine a condition associated with the plurality of garbage collection barrier instructions; 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 a current value of a program counter, and setting the program counter to correspond to a target location that is other than 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 plurality of garbage collection barrier instructions 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 plurality of garbage collection barrier instructions.

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 one or more handler instructions.

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 plurality of garbage collection barrier instructions includes a barrier for a store operation.

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

9. The computer system of claim 1 , wherein the plurality of garbage collection barrier instructions includes a barrier for a load operation.

10. The computer system of claim 1 , wherein executing the plurality of garbage collection barrier instructions 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 plurality of garbage collection barrier instructions and a subsequent instruction that immediately follows the plurality of garbage collection barrier instructions; and

executing the garbage collection instruction, including by:

evaluating a memory reference to determine a condition associated with the plurality of garbage collection barrier instructions; 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 executing one or more sets of instructions of a target location that is other than 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 plurality of garbage collection barrier instructions and a subsequent instruction that immediately follows the plurality of garbage collection barrier instructions for execution by a processor, wherein the processor is configured to execute the plurality of garbage collection barrier instructions, including by:

evaluating a memory reference to determine a condition associated with the plurality of garbage collection barrier instructions; 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 executing one or more sets of instructions of a target location that is other than the subsequent instruction.

Assignments (7)
SECURITY INTEREST Recorded Dec 3, 2025
From: AZUL SYSTEMS, INC.
To: ARES CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 073828/0083 →
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 →
RELEASE OF SECURITY INTEREST Recorded Apr 2, 2020
From: SILICON VALLEY BANK
To: AZUL SYSTEMS, INC.
Reel/Frame 052293/0869 →
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 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 →
Continuity (4)
Continuation 12082239 · Apr 8, 2008
Continuation In Part 11321694 · Dec 28, 2005
Provisional Application 60640383 · Dec 30, 2004
Related Publication 20100180090A1 · Jul 15, 2010