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

Shared memory control algorithm for mutual exclusion and rollback

Assignee: RPX Clearinghouse LLC
•
Filing: 1996-12-30
•
Granted: 1999-06-29
•
Expires: 2016-12-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The invention provides a mechanism for allowing a share memory/parallel processing architecture to be used in place of a conventional uni-processing architecture without requiring code originally written for the conventional system to be rewritten. Exclusive Access and Shared Read Access implementations are provided. A rollback mechanism is provided which allows all the effects of a task to be undone.

Inventors

  • 👤 Terry Edwin Newell
  • 👤 Brian Baker

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 00:03
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F9/526; G06F9/50; G06F9/5005; G06F9/5011; G06F9/5016; G06F2209/00; G06F2209/52; G06F2209/523

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 139 words
A parallel processing/shared memory system comprising: a plurality of processors for running a plurality of tasks each identifiable by a task identifier; one or more memory modules each having a plurality of memory locations, each memory location associatable with one of the task identifiers; means for allowing or denying a particular task to access a particular memory location on the basis of the task identifier associated with that location and the task identifier of the particular task, and for associating the task identifier of the particular task with the particular memory location when the particular task is allowed access to that location, and for de-associating the task identifier of the particular task with the particular memory location after the particular task is completed or otherwise terminated thereby making the particular memory location and its contents accessible by another task.
Claim 2
Dependent Claim 139 words
A parallel processing/shared memory system comprising: a plurality of processors for running a plurality of tasks each identifiable by a task identifier; one or more memory modules each having a plurality of memory locations, each memory location associatable with one of the task identifiers; means for allowing or denying a particular task to access a particular memory location on the basis of the task identifier associated with that location and the task identifier of the particular task, and for associating the task identifier of the particular task with the particular memory location when the particular task is allowed access to that location, and for de-associating the task identifier of the particular task with the particular memory location after the particular task is completed or otherwise terminated thereby making the particular memory location and its contents accessible by another task.
Claim 3
Dependent Claim 52 words
A system according to claim 1 wherein the memory module has a tag field for each memory location and a data field for each memory location, the tag field including an ownership field for storing ownership information identifying the associated task, the associated task being the owner task for that memory location.
Claim 4
Dependent Claim 16 words
A system according to claim 2 wherein the task identifier is unique at a system level.
Claim 5
Dependent Claim 17 words
A system according to claim 2 wherein the task identifier is unique at a memory module level.
Claim 6
Dependent Claim 56 words
A system according to claim 2 wherein a system task identifier is assigned to each task which is unique at a system level, and wherein a module task identifier is assigned by each memory module for each task which is unique at a memory module level, the module task identifier being stored in the ownership field.
Claim 7
Dependent Claim 196 words
A parallel processing/shared memory system comprising: a plurality of processors for running a plurality of tasks each identifiable by a task identifier; one or more memory modules each having a plurality of memory locations, each memory location associatable with one of the task identifiers; means for allowing or denying a particular task to access a particular memory location on the basis of the task identifier associated with that location and the task identifier of the particular task, and for associating the task identifier of the particular task with the particular memory location when the particular task is allowed access to that location; wherein the memory module has a tag field for each memory location and a data field for each memory location, the tag field including an ownership field for storing ownership information identifying the associated task, the associated task being the owner task for that memory location; wherein the data field comprises a first copy field and a second copy field, and the tag field further comprises an active copy field identifying one of the copy fields as containing an active copy and identifying the other of the copy fields as containing a rollback copy.
Claim 8
Dependent Claim 196 words
A parallel processing/shared memory system comprising: a plurality of processors for running a plurality of tasks each identifiable by a task identifier; one or more memory modules each having a plurality of memory locations, each memory location associatable with one of the task identifiers; means for allowing or denying a particular task to access a particular memory location on the basis of the task identifier associated with that location and the task identifier of the particular task, and for associating the task identifier of the particular task with the particular memory location when the particular task is allowed access to that location; wherein the memory module has a tag field for each memory location and a data field for each memory location, the tag field including an ownership field for storing ownership information identifying the associated task, the associated task being the owner task for that memory location; wherein the data field comprises a first copy field and a second copy field, and the tag field further comprises an active copy field identifying one of the copy fields as containing an active copy and identifying the other of the copy fields as containing a rollback copy.
Claim 9
Dependent Claim 36 words
A system according to claim 6 wherein a task which is denied access to a particular location may be rolled back by toggling the active copy field of all data locations written to by that task.
Claim 10
Dependent Claim 94 words
A system according to claim 7 wherein: upon a first read or write by a given task of a given unowned location, ownership information identifying that task is written into the ownership field of the location; a first write by a given task to a given location is achieved by changing the active copy field to point to what formerly was the rollback copy, and writing the new data to the newly defined active copy; and subsequent writes by the given task to the given location are achieved by writing to the active copy.
Claim 11
Dependent Claim 24 words
A system according to claim 7 wherein the tag field further comprises an owned field identifying the respective location as either owned or unowned.
Claim 12
Dependent Claim 51 words
A system according to claim 5 wherein: each task is identified by a SID (slot identification number) which is unique at the system level; each task is assigned a TIN (task identification number) which is unique at the memory module level; the ownership information comprises the TIN of the accessing task.
Claim 13
Dependent Claim 214 words
A system according to claim 9 wherein the tag field further comprises a dirty field, the system further comprising: a state table for identifying the state for each TIN as either ACTIVE or COMMIT or ROLLBACK, the ACTIVE state defining a task which is currently running, the COMMIT state defining a task which has finished, and the ROLLBACK state defining a task which is to be rolled back; wherein: 1) when a new TIN is started, the state in the state table is updated to be ACTIVE; 2) when a TIN is finished, the state in the state table is updated to be COMMIT; 3) when a TIN is to be rolled back, the state in the state table is updated to be ROLLBACK; 4) any task is allowed access to a location which is unowned; 5) when a task having a first TIN attempts to access a location having a second TIN, the state table is consulted for the state of the second TIN; the task is allowed access if the state of the second TIN is COMMIT or ROLLBACK; 6) when a task is first allowed read or write access, its TIN is written into the tag field; 7) when a task is first allowed write access, the dirty field is set.
Claim 14
Dependent Claim 21 words
A system according to claim 11 wherein a task is denied access if the state of the second TIN is ACTIVE.
Claim 15
Dependent Claim 51 words
A system according to claim 11 wherein a task is permitted access if the state of the second TIN is ACTIVE, and wherein subsequently a priority resolution mechanism selects which one of either that task or the task having the second TIN is to continue, the other task being rolled back.
Claim 16
Dependent Claim 28 words
A system according to claim 11 wherein the dirty field, the active copy field and the owned field are corrected if the first TIN is COMMIT or ROLLBACK.
Claim 17
Dependent Claim 37 words
A system according to claim 11 wherein the active copy field and the owned field are corrected when accessed by the second task or by a background scrub task if the first TIN is COMMIT or ROLLBACK.
Claim 18
Dependent Claim 68 words
A system according to claim 9 wherein: correcting a location with a COMMIT TIN involves changing the owned field to reflect unowned, and clearing the dirty field if set; correcting a location with a ROLLBACK TIN involves changing the owned field to reflect unowned, and in the case the dirty field is set, changing the active copy field point to the rollback copy and clearing the dirty field.
Claim 19
Dependent Claim 113 words
A parallel processing/shared memory system comprising: a plurality of processors for running a plurality of tasks each identifiable by a task identifier: one or more memory modules each having a plurality of memory locations, each memory location associatable with one of the task identifiers; means for allowing or denying a particular task to access a particular memory location on the basis of the task identifier associated with that location and the task identifier of the particular task, and for associating the task identifier of the particular task with the particular memory location when the particular task is allowed access to that location; wherein the memory locations include standard locations and shared read locations.
Claim 20
Dependent Claim 113 words
A parallel processing/shared memory system comprising: a plurality of processors for running a plurality of tasks each identifiable by a task identifier: one or more memory modules each having a plurality of memory locations, each memory location associatable with one of the task identifiers; means for allowing or denying a particular task to access a particular memory location on the basis of the task identifier associated with that location and the task identifier of the particular task, and for associating the task identifier of the particular task with the particular memory location when the particular task is allowed access to that location; wherein the memory locations include standard locations and shared read locations.
Claim 21
Dependent Claim 32 words
A system according to claim 17 wherein any task is allowed read access to a shared read location, but only a single task is allowed write access to a shared read location.
Claim 22
Dependent Claim 77 words
A system according to claim 18 wherein a task which is allowed write access to a shared read location owns that location and becomes an update task; tasks which do not access the shared read locations are allowed to continue normally; tasks which access the shared read locations before the update task completes must commit before the update task; tasks which access the shared read locations after the update task completes must commit after the update task.
Claim 23
Dependent Claim 49 words
A system according to claim 19 wherein a global variable tracks a generation number, and each task is assigned the generation number, and the generation number is incremented each time an update task starts, and thereby allowing only a single update task of a given generation task to exist.
Claim 24
Dependent Claim 54 words
A system according to claim 1 wherein the data field comprises a first copy field and a second copy field and the tag field further comprises an active copy field identifying one of the copy fields as containing an active copy and identifying the other of the copy fields as containing a rollback copy.
Claim 25
Dependent Claim 94 words
A system according to claim 6 wherein: upon a first read or write by a given task of a given unowned location, ownership information identifying that task is written into the ownership field of the location; a first write by a given task to a given location is achieved by changing the active copy field to point to what formerly was the rollback copy, and writing the new data to the newly defined active copy; and subsequent writes by the given task to the given location are achieved by writing to the active copy.
Claim 26
Dependent Claim 24 words
A system according to claim 6 wherein the tag field further comprises an owned field identifying the respective location as either owned or unowned.

References Cited (Backward Citations)

US4459661A Cited
EP0282213A2 Cited
US4949251A Cited
US4965718A Cited
US5210844A Cited
US5761724A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-06-28 2002-12-28 2003-06-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-06-28 2006-12-28 2007-06-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-06-28 2010-12-28 2011-06-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag