← Back to Patent Explorer
US6049810A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for implementing a write barrier of a garbage collected heap

Assignee: Oracle America Inc
•
Filing: 1997-04-23
•
Granted: 2000-04-11
•
Expires: 2017-04-23
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Apparatus, methods, systems and computer program products are disclosed describing a data structure and associated processes that optimize garbage collection. The invention sections a card vector associated with a card marked heap into portions. Each portion can be individually write protected. A section vector contains section data structures that are used to control their respective portions. When a write-barrier executes and attempts to mark a card marker in a read-only portion of the card vector, the invention traps the mark operation, sets the portion to read-write, changes the status of the section data structure and completes the mark operation. When a garbage collection phase scans the heap during the garbage collection process, it skips over portions of the card vector associated with sections having a read-only status--thus, improving the garbage collection process.

Inventors

  • 👤 David C. Schwartz
  • 👤 Ross C. Knippel

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 13:21
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/0223; G06F12/023; G06F12/0253; G06F12/0269; G06F12/0276; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99956; Y10S707/99957

Claims Analysis

Total Claims: 24
Claim 1
Independent Claim 195 words
A computer controlled method for using a card vector containing card markers, said card vector being divided into a plurality of sections, each of said plurality of sections containing a plurality of card markers, each of said plurality of card markers indicating whether a corresponding card in a heap has been modified, whereby said method comprises steps of: (a) associating section information with each of said plurality of sections, said section information including information specifying whether the corresponding section of the card vector has been modified, thereby allowing a garbage collection process to look at the section information to determine whether any of the card markers in the corresponding section has been modified without scanning through all card markers in the corresponding section; (b) write-protecting a first section of said card vector by modifying section information associated with said first section to indicate that said first section is read only; (c) detecting an attempted write-operation to said first section of said card vector; (d) completing said attempted write-operation to said first section of said card vector; and (e) marking said section information associated with said first section to indicate that said first section is read-write.
Claim 2
Dependent Claim 195 words
A computer controlled method for using a card vector containing card markers, said card vector being divided into a plurality of sections, each of said plurality of sections containing a plurality of card markers, each of said plurality of card markers indicating whether a corresponding card in a heap has been modified, whereby said method comprises steps of: (a) associating section information with each of said plurality of sections, said section information including information specifying whether the corresponding section of the card vector has been modified, thereby allowing a garbage collection process to look at the section information to determine whether any of the card markers in the corresponding section has been modified without scanning through all card markers in the corresponding section; (b) write-protecting a first section of said card vector by modifying section information associated with said first section to indicate that said first section is read only; (c) detecting an attempted write-operation to said first section of said card vector; (d) completing said attempted write-operation to said first section of said card vector; and (e) marking said section information associated with said first section to indicate that said first section is read-write.
Claim 3
Dependent Claim 37 words
The computer controlled method of claim 1 wherein said method further comprises steps of: detecting that said section information associated with said first section is marked as read-write; and scanning said first section of said card vector.
Claim 4
Dependent Claim 57 words
The computer controlled method of claim 2 wherein said method further comprises steps of: (h) detecting that none of said plurality of card markers in said first section of said card vector are marked; and (i) write-protecting said first section of said card vector by marking said section information associated with said first section as read only.
Claim 5
Dependent Claim 20 words
The computer controlled method of claim 3 wherein step (h) further comprises detecting that a count down timer has completed.
Claim 6
Dependent Claim 34 words
The computer controlled method of claim 1 wherein said method further comprises steps of: (f) detecting that said first section is marked as read-only; and (g) ignoring said first section of said card vector.
Claim 7
Dependent Claim 225 words
A computer controlled system having a central processing unit (CPU) and a memory coupled to said CPU, for using a card vector in said memory, said card vector being divided into a plurality of sections, each of said plurality of sections containing a plurality of card markers, each of said plurality of card markers indicating whether a corresponding card in a heap has been modified, said system comprising: an association mechanism configured to associate section information with each of said plurality of sections, said section information including information specifying whether the corresponding section of the card vector has been modified, thereby allowing a garbage collection process to look at the section information to determine whether any of the card markers in the corresponding section has been modified without scanning through all card markers in the corresponding section; a write protection mechanism configured to write-protect a first section of said card vector by modifying section information associated with said first section to indicate that said first section is read only; a write attempt detection mechanism configured to detect an attempted write-operation to said first section of said card vector; a write completion mechanism configured to complete said attempted memory write-operation to said first section of said card vector; and a mark section mechanism configured to mark said first information associated with said first section as read-write.
Claim 8
Dependent Claim 225 words
A computer controlled system having a central processing unit (CPU) and a memory coupled to said CPU, for using a card vector in said memory, said card vector being divided into a plurality of sections, each of said plurality of sections containing a plurality of card markers, each of said plurality of card markers indicating whether a corresponding card in a heap has been modified, said system comprising: an association mechanism configured to associate section information with each of said plurality of sections, said section information including information specifying whether the corresponding section of the card vector has been modified, thereby allowing a garbage collection process to look at the section information to determine whether any of the card markers in the corresponding section has been modified without scanning through all card markers in the corresponding section; a write protection mechanism configured to write-protect a first section of said card vector by modifying section information associated with said first section to indicate that said first section is read only; a write attempt detection mechanism configured to detect an attempted write-operation to said first section of said card vector; a write completion mechanism configured to complete said attempted memory write-operation to said first section of said card vector; and a mark section mechanism configured to mark said first information associated with said first section as read-write.
Claim 9
Dependent Claim 47 words
The computer controlled system of claim 6 further comprising: a first detection mechanism configured to detect that said first section is marked as read-write; and a scan mechanism configured to scan said first section of said card vector in said memory dependent on the first detection mechanism.
Claim 10
Dependent Claim 54 words
The computer controlled system of claim 7 further comprising: a second detection mechanism configured to detect that none of said plurality of card markers in said first section of said card vector are marked; and a write-protection mechanism configured to write-protect said first section of said card vector dependent on the second detection mechanism.
Claim 11
Dependent Claim 29 words
The computer controlled system of claim 8 wherein said second detection mechanism further comprises a timer expiration detection mechanism configured to detect that a count down timer has completed.
Claim 12
Dependent Claim 45 words
The computer controlled system of claim 6 further comprising: a first detection mechanism configured to detect that said first section is marked as read-only; and an ignore section mechanism configured to ignore said first section of said card vector dependent on said first detection mechanism.
Claim 13
Independent Claim 223 words
An apparatus having a central processing unit (CPU) and a memory coupled to said CPU for using a card vector containing card markers, said card vector being divided into a plurality of sections, each of said plurality of sections containing a plurality of card markers, each of said plurality of card markers indicating whether a corresponding card in a heap has been modified, said apparatus comprising: an association mechanism configured to associate section information with each of said plurality of sections, said section information including information specifying whether the corresponding section of the card vector has been modified, thereby allowing a garbage collection process to look at the section information to determine whether any of the card markers in the corresponding section has been modified without scanning through all card markers in the corresponding section; a write protection mechanism configured to write-protect a first section of said card vector by modifying section information associated with said first section to indicate that said first section is read only; a write attempt detection mechanism configured to detect an attempted write-operation to said first section of said card vector; a write completion mechanism configured to complete said attempted memory write-operation to said first section of said card vector; and a mark section mechanism configured to mark said first information associated with said first section as read-write.
Claim 14
Independent Claim 223 words
An apparatus having a central processing unit (CPU) and a memory coupled to said CPU for using a card vector containing card markers, said card vector being divided into a plurality of sections, each of said plurality of sections containing a plurality of card markers, each of said plurality of card markers indicating whether a corresponding card in a heap has been modified, said apparatus comprising: an association mechanism configured to associate section information with each of said plurality of sections, said section information including information specifying whether the corresponding section of the card vector has been modified, thereby allowing a garbage collection process to look at the section information to determine whether any of the card markers in the corresponding section has been modified without scanning through all card markers in the corresponding section; a write protection mechanism configured to write-protect a first section of said card vector by modifying section information associated with said first section to indicate that said first section is read only; a write attempt detection mechanism configured to detect an attempted write-operation to said first section of said card vector; a write completion mechanism configured to complete said attempted memory write-operation to said first section of said card vector; and a mark section mechanism configured to mark said first information associated with said first section as read-write.
Claim 15
Dependent Claim 45 words
The apparatus of claim 11 further comprising: a first detection mechanism configured to detect that said first section is marked as read-write; and a scan mechanism configured to scan said first section of said card vector in said memory dependent on the first detection mechanism.
Claim 16
Dependent Claim 52 words
The apparatus of claim 12 further comprising: a second detection mechanism configured to detect that none of said plurality of card markers in said first section of said card vector are marked; and a write-protection mechanism configured to write-protect said first section of said card vector dependent on the second detection mechanism.
Claim 17
Dependent Claim 27 words
The apparatus of claim 13 wherein said second detection mechanism further comprises a timer expiration detection mechanism configured to detect that a count down timer has completed.
Claim 18
Dependent Claim 43 words
The apparatus of claim 11 further comprising: a first detection mechanism configured to detect that said first section is marked as read-only; and an ignore section mechanism configured to ignore said first section of said card vector dependent on said first detection mechanism.
Claim 19
Dependent Claim 293 words
A computer program product comprising: a computer usable storage medium having computer readable code embodied therein for causing a computer to use a card vector, said card vector containing card markers, said card vector being divided into a plurality of sections, each of said plurality of sections containing a plurality of card markers, each of said plurality of card markers indicating whether a corresponding card in a heap has been modified, said computer readable code comprising: computer readable program code devices configured to cause said computer to effect an association mechanism configured to associate section information with each of said plurality of sections, said section information including information specifying whether the corresponding section of the card vector has been modified, thereby allowing a garbage collection process to look at the section information to determine whether any of the card markers in the corresponding section has been modified without scanning through all card markers in the corresponding section; computer readable program code devices configured to cause said computer to effect a write protection mechanism configured to write-protect a first section of said card vector by modifying section information associated with said first section to indicate that said first section is read only; computer readable program code devices configured to cause said computer to effect a write attempt detection mechanism configured to detect an attempted write-operation to said first section of said card vector; computer readable program code devices configured to cause said computer to effect a write completion mechanism configured to complete said attempted memory write-operation to said first section of said card vector; and computer readable program code devices configured to cause said computer to effect a mark section mechanism configured to mark said first information associated with said first section as read-write.
Claim 20
Dependent Claim 293 words
A computer program product comprising: a computer usable storage medium having computer readable code embodied therein for causing a computer to use a card vector, said card vector containing card markers, said card vector being divided into a plurality of sections, each of said plurality of sections containing a plurality of card markers, each of said plurality of card markers indicating whether a corresponding card in a heap has been modified, said computer readable code comprising: computer readable program code devices configured to cause said computer to effect an association mechanism configured to associate section information with each of said plurality of sections, said section information including information specifying whether the corresponding section of the card vector has been modified, thereby allowing a garbage collection process to look at the section information to determine whether any of the card markers in the corresponding section has been modified without scanning through all card markers in the corresponding section; computer readable program code devices configured to cause said computer to effect a write protection mechanism configured to write-protect a first section of said card vector by modifying section information associated with said first section to indicate that said first section is read only; computer readable program code devices configured to cause said computer to effect a write attempt detection mechanism configured to detect an attempted write-operation to said first section of said card vector; computer readable program code devices configured to cause said computer to effect a write completion mechanism configured to complete said attempted memory write-operation to said first section of said card vector; and computer readable program code devices configured to cause said computer to effect a mark section mechanism configured to mark said first information associated with said first section as read-write.
Claim 21
Dependent Claim 71 words
The computer program product of claim 16 further comprising: computer readable program code devices configured to cause said computer to effect a first detection mechanism configured to detect that said first section is marked as read-write; and computer readable program code devices configured to cause said computer to effect a scan mechanism configured to scan said first section of said card vector in said memory dependent on the first detection mechanism.
Claim 22
Dependent Claim 78 words
The computer program product of claim 17 further comprising: computer readable program code devices configured to cause said computer to effect a second detection mechanism configured to detect that none of said plurality of card markers in said first section of said card vector are marked; and computer readable program code devices configured to cause said computer to effect a write-protection mechanism configured to write-protect said first section of said card vector dependent on the second detection mechanism.
Claim 23
Dependent Claim 41 words
The computer program product of claim 18 wherein said second detection mechanism further comprises computer readable program code devices configured to cause said computer to effect a timer expiration detection mechanism configured to detect that a count down timer has completed.
Claim 24
Dependent Claim 69 words
The computer program product of claim 16 further comprising: computer readable program code devices configured to cause said computer to effect a first detection mechanism configured to detect that said first section is marked as read-only; and computer readable program code devices configured to cause said computer to effect an ignore section mechanism configured to ignore said first section of said card vector dependent on said first detection mechanism.

References Cited (Backward Citations)

US4775932A Cited
US4989134A Cited
US5088036A Cited
US5355483A Cited
US5485613A Cited
US5566321A Cited
US5845298A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-04-11 2003-10-11 2004-04-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-04-11 2007-10-11 2008-04-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-04-11 2011-10-11 2012-04-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag