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

Lock-up free data sharing

Assignee: Hewlett Packard Enterprise Development LP
•
Filing: 1996-07-17
•
Granted: 1998-07-28
•
Expires: 2016-07-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A software implemented method for lock-up free data sharing operates in a networked computer system including a plurality of workstations. Each workstation including a processor, a memory having addresses, and an input/output interface connected to each other by a bus. A set of addresses of the memories are designated as virtual shared addresses to store shared data. A portion of the virtual shared addresses is allocated to store the shared data as a plurality of blocks accessible by programs executing in any of the processors, each block including an integer number of lines. A program is instrumented to request an exclusive copy of the block if the program includes a store instruction which attempts to access data stored in a non-exclusive copy of the block. Additional instructions of the program are executed while the request for the exclusive copy of the block is pending. Addresses of data of the block modified by the additional instructions are recorded. In response to receiving the exclusive copy of the block, the modified data stored at the recorded addresses are merged with the data of the exclusive copy of the block.

Inventors

  • 👤 Daniel J. Scales
  • 👤 Kourosh Gharachorloo

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 01:47
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52

Claims Analysis

Total Claims: 20
Claim 1
Independent Claim 198 words
A software implemented method for accessing shared data of a computer system including a plurality of workstations, each workstation including a processor, a memory having addresses, and an input/output interface connected to each other by a bus, the input/output interfaces connecting the workstations to each other by a network, comprising the steps of: designating addresses of the memories as virtual shared addresses to store the shared data; allocating a portion of the virtual shared addresses to store the shared data as a plurality of blocks accessible by any of the processors, each block including an integer number of lines; instrumenting a particular program to request an exclusive copy of the block if the particular program includes a store instruction which is to store shared data in the block; executing additional store instructions of the particular program while the request for the exclusive copy of the block is pending, and noting addresses of data of the requested block modified by the additional instructions; in response to receiving the exclusive copy of the block, merging the modified data stored at the noted addresses with the shared data of the exclusive copy of the block to enable lock-up free data sharing.
Claim 2
Dependent Claim 198 words
A software implemented method for accessing shared data of a computer system including a plurality of workstations, each workstation including a processor, a memory having addresses, and an input/output interface connected to each other by a bus, the input/output interfaces connecting the workstations to each other by a network, comprising the steps of: designating addresses of the memories as virtual shared addresses to store the shared data; allocating a portion of the virtual shared addresses to store the shared data as a plurality of blocks accessible by any of the processors, each block including an integer number of lines; instrumenting a particular program to request an exclusive copy of the block if the particular program includes a store instruction which is to store shared data in the block; executing additional store instructions of the particular program while the request for the exclusive copy of the block is pending, and noting addresses of data of the requested block modified by the additional instructions; in response to receiving the exclusive copy of the block, merging the modified data stored at the noted addresses with the shared data of the exclusive copy of the block to enable lock-up free data sharing.
Claim 3
Dependent Claim 47 words
The method of claim 1 further comprising: executing additional load instructions of the particular program while the request for the exclusive copy of the block is pending, as long as the data being loaded is from a valid line or a valid part of a pending line.
Claim 4
Independent Claim 114 words
A system for accessing shared data, the system comprising: a first memory, including a first block of data having a first plurality of entries, each entry having a corresponding address; a second memory, including a second block of data having a second plurality of entries, each entry having a corresponding address; and a processor configured to: request a copy of the first block of data, modify a particular one of the second plurality of entries in the second block which corresponds to a particular one of the first plurality of entries in the first block; and merge the particular one of the second entries with the requested copy of the first block of data.
Claim 5
Independent Claim 114 words
A system for accessing shared data, the system comprising: a first memory, including a first block of data having a first plurality of entries, each entry having a corresponding address; a second memory, including a second block of data having a second plurality of entries, each entry having a corresponding address; and a processor configured to: request a copy of the first block of data, modify a particular one of the second plurality of entries in the second block which corresponds to a particular one of the first plurality of entries in the first block; and merge the particular one of the second entries with the requested copy of the first block of data.
Claim 6
Dependent Claim 25 words
The system of claim 3, wherein the processor records the address of the modified particular one of the second plurality of entries prior to merging.
Claim 7
Dependent Claim 38 words
The system of claim 3, further comprising: a third memory; and a set of instructions stored on the third memory, the set of instructions having a particular instruction that directs data to be stored in the first block.
Claim 8
Dependent Claim 33 words
The system of claim 3, wherein the processor is configured to modify the particular one of the second plurality of entries while the request for the copy of the first block is pending.
Claim 9
Dependent Claim 28 words
The system of claim 3, wherein merging results in the particular one of the second entries merging with the corresponding particular one of the first plurality of entries.
Claim 10
Dependent Claim 23 words
The system of claim 3, further comprising: a virtual memory formed of at least portions of the first memory and the second memory.
Claim 11
Dependent Claim 45 words
The system of claim 3, wherein the processor is a first processor and the first processor is connected to the second memory, the system further comprising: a second processor connected to the first memory; and a network connecting the first processor and the second processor.
Claim 12
Dependent Claim 21 words
The system of claim 3, wherein the processor is configured to request an exclusive copy of the first block of data.
Claim 13
Dependent Claim 25 words
The system of claim 3, wherein the second block in the second memory is a local copy of the first block in the first memory.
Claim 14
Dependent Claim 55 words
The system of claim 3, further comprising: a third memory; and a set of instructions stored on the third memory, the set of instructions having a particular instruction that directs data to be loaded from one of the first block and the second block; wherein the data to be loaded has a valid current status.
Claim 15
Independent Claim 112 words
A method for accessing shared data stored on a plurality of computers, including a first computer having a first memory for storing a first block of data having a plurality of entries including a first entry and a second computer having a second memory for storing a second block of data having a second entry, the method comprising the steps of: requesting a copy of the first block of data; modifying the second entry in the second block of data; recording the address of the second entry substantially simultaneous with the step of modifying; and merging the first block of data with at least a portion of the second block of data.
Claim 16
Independent Claim 112 words
A method for accessing shared data stored on a plurality of computers, including a first computer having a first memory for storing a first block of data having a plurality of entries including a first entry and a second computer having a second memory for storing a second block of data having a second entry, the method comprising the steps of: requesting a copy of the first block of data; modifying the second entry in the second block of data; recording the address of the second entry substantially simultaneous with the step of modifying; and merging the first block of data with at least a portion of the second block of data.
Claim 17
Dependent Claim 30 words
The method of claim 13, wherein the step of modifying is responsive to an instruction executed while the request for the copy of the first block of data is pending.
Claim 18
Dependent Claim 19 words
The method of claim 13, wherein the second plurality of entries initially corresponds with the first plurality of entries.
Claim 19
Dependent Claim 26 words
The method of claim 13, wherein the second entry located in the second block data merges with a corresponding one of the first plurality of entries.
Claim 20
Dependent Claim 28 words
The method of claim 13, wherein the step of requesting a copy of the first block of data requests an exclusive copy of the first block of data.

References Cited (Backward Citations)

US5117350A Cited
US5528761A Cited
US5193180A Cited
US5335344A Cited
US5566321A Cited
US5590329A Cited
US5613063A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-07-27 2002-01-26 2002-07-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-07-27 2006-01-26 2006-07-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-07-27 2010-01-26 2010-07-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag