US5887167A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Synchronization mechanism for providing multiple readers and writers access to performance information of an extensible computer system
Assignee: Apple Inc
•
Filing: 1995-11-03
•
Granted: 1999-03-23
•
Expires: 2015-11-03
Abstract
Abstract A synchronization arrangement provides writer and reader entities access to an information resource, such as a trace buffer, located in a registry of a computer. The arrangement comprises a counter upon which atomic increments are performed to allocate entries of the trace buffer for temporarily storing trace message fragments provided by the writer entities. The arrangement also comprises reassembly queues for temporarily storing the message fragments sequentially retrieved from the trace buffer by the reader entities.
Inventors
- 👤 Carl D. Sutton
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-06 00:32
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F11/00; G06F11/30; G06F11/34; G06F11/3442; G06F11/3466; G06F11/348; G06F2201/00; G06F2201/88
Claims Analysis
Total Claims: 19
Claim 1
Independent Claim
162 words
A synchronization arrangement for use by reader and writer entities executing on a computer having a memory, the synchronization arrangement comprising: an information resource located in the memory of the computer, the information resource having a plurality of entries and being accessible by the reader and writer entities; a first counter operatively coupled to the writer entities for having atomic increments performed thereon, the first counter configured to allocate a specific entry of the information resource to a given writer entity in response to the performance of an atomic increment by the given writer entity, the resource entries temporarily storing messages sequentially posted by the writer entities; means for limiting allocation of the entries of the information resource to the writer entities except through the first counter; and a reassembly queue for temporarily storing messages sequentially retrieved from the resource by the reader entities, wherein only one writer entity, at any given time, is allocated a specific entry of the information resource.
Claim 2
Dependent Claim
162 words
A synchronization arrangement for use by reader and writer entities executing on a computer having a memory, the synchronization arrangement comprising: an information resource located in the memory of the computer, the information resource having a plurality of entries and being accessible by the reader and writer entities; a first counter operatively coupled to the writer entities for having atomic increments performed thereon, the first counter configured to allocate a specific entry of the information resource to a given writer entity in response to the performance of an atomic increment by the given writer entity, the resource entries temporarily storing messages sequentially posted by the writer entities; means for limiting allocation of the entries of the information resource to the writer entities except through the first counter; and a reassembly queue for temporarily storing messages sequentially retrieved from the resource by the reader entities, wherein only one writer entity, at any given time, is allocated a specific entry of the information resource.
Claim 3
Dependent Claim
59 words
The synchronization arrangement of claim 1 further comprising a time-out mechanism for detecting incomplete messages retrieved from the resource, the time-out mechanism comprising a predetermined threshold established by contents of the first counter, wherein a message is incomplete if it is not completely retrieved by a reader entity before the contents of the first counter exceed the predetermined threshold.
Claim 4
Dependent Claim
51 words
The synchronization arrangement of claim 2 wherein the message is a trace message apportioned into a plurality of fragments prior to storage in the resource and wherein the resource is a trace buffer comprising a fixed number of equally-sized entries, each having a capacity sufficient to store one of the fragments.
Claim 5
Dependent Claim
36 words
The synchronization arrangement of claim 3 wherein each fragment contains a fragment number and a sequence number, the sequence number being sequentially assigned to each message prior to being apportioned into fragments by a second counter.
Claim 6
Dependent Claim
47 words
The synchronization arrangement of claim 4 wherein the first counter is a fragment allocation counter and the second counter is a sequence allocation counter, and wherein a sequence number of zero is an invalid sequence number that signifies copying of a fragment into a trace buffer entry.
Claim 7
Dependent Claim
52 words
The synchronization arrangement of claim 1 further comprising a barrier synchronizer for limiting the number of reader entities accessing the resource to retrieve messages posted by the writer entities, wherein the number of reader entities with access to the resource is two or more but less than all of the reader entities.
Claim 8
Dependent Claim
29 words
The synchronization arrangement of claim 6 wherein the barrier synchronizer comprises a lock mechanism that periodically notifies the reader entities as to when access to the resource is available.
Claim 9
Dependent Claim
20 words
The synchronization arrangement of claim 3 wherein the predetermined threshold is half the number of entries of the trace buffer.
Claim 10
Independent Claim
133 words
A method for providing reader and writer entities access to a trace buffer located in a memory of a computer to reliably exchange complete trace messages, the method comprising the steps of: allocating entries of the trace buffer to the writer entities using a counter responsive to atomic increments thereon, the trace buffer entries temporarily storing trace messages sequentially provided by the writer entities; temporarily storing the trace messages sequentially retrieved from the trace buffer by the reader entities using a reassembly queue; and detecting incomplete trace messages retrieved from the trace buffer using a time-out mechanism comprising a predetermined threshold established by contents of the counter, wherein a trace message is incomplete if it is not completely retrieved by a reader entity before the contents of the counter exceed the predetermined threshold.
Claim 11
Independent Claim
133 words
A method for providing reader and writer entities access to a trace buffer located in a memory of a computer to reliably exchange complete trace messages, the method comprising the steps of: allocating entries of the trace buffer to the writer entities using a counter responsive to atomic increments thereon, the trace buffer entries temporarily storing trace messages sequentially provided by the writer entities; temporarily storing the trace messages sequentially retrieved from the trace buffer by the reader entities using a reassembly queue; and detecting incomplete trace messages retrieved from the trace buffer using a time-out mechanism comprising a predetermined threshold established by contents of the counter, wherein a trace message is incomplete if it is not completely retrieved by a reader entity before the contents of the counter exceed the predetermined threshold.
Claim 12
Dependent Claim
26 words
The method of claim 9 further comprising the step of apportioning the trace message into a plurality of fragments prior to storage in the trace buffer.
Claim 13
Dependent Claim
57 words
The method of claim 10 further comprising the step of limiting the number of reader entities accessing the trace buffer to retrieve trace message fragments posted by the writer entities using a barrier synchronizer, wherein the number of reader entities with access to the resource is two or more but less than all of the reader entities.
Claim 14
Dependent Claim
43 words
The method of claim 10 further comprising the steps of: synchronizing access by the reader entities to the trace messsage fragments contained in the trace buffer entries; and synchronizing copying of the trace message fragments by the writer entities into the trace buffer.
Claim 15
Dependent Claim
64 words
The method of claim 12 wherein the step of synchronizing access further comprises the steps of: examining the value of a sequence number of a fragment in a trace buffer entry; if the sequence number value is zero, determining that the entry is currently being accessed; and if the sequence number changes while the fragment is being read, determining that the fragment is overwritten.
Claim 16
Dependent Claim
94 words
The method of claim 12 wherein the step of synchronizing copying further comprises the steps of: signaling a busy status of a fragment in a trace buffer entry using a sequence number of the fragment; writing a value of zero to a sequence number field of the fragment prior to copying the fragment to the trace buffer entry; and writing a non-zero value to the sequence number field in response to completing copying of the fragment to the trace buffer entry, the non-zero sequence value being allocated to a trace message of the fragment.
Claim 17
Dependent Claim
48 words
The synchronization arrangement of claim 1 wherein the first counter defines corresponding contents and a writer entity, having control of the first counter, either increments or decrements its corresponding contents and performs an operation on the resulting contents to identify the entry of the information resource being allocated.
Claim 18
Dependent Claim
13 words
The synchronization arrangement of claim 15 wherein the operation is a modulo operation.
Claim 19
Dependent Claim
17 words
The synchronization arrangement of claim 1 further wherein multiple writer entities can access the information resource simultaneously.
References Cited (Backward Citations)
US3818458A
Cited
US3906454A
Cited
US4849879A
Cited
US5379406A
Cited
US5220562A
Cited
US5347649A
Cited
US5301290A
Cited
US5305448A
Cited
US5440545A
Cited
US5485574A
Cited
US5581482A
Cited
US5555396A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-03-22 | 2002-09-21 | 2003-03-23 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-03-22 | 2006-09-21 | 2007-03-23 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-03-22 | 2010-09-21 | 2011-03-23 | $7700.00 | Window Closed / Lapsed |