Patent US5655101A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5655101A Expired / Lapsed US ⏱️ 0.0 years remaining

Accessing remote data objects in a distributed memory environment using parallel address locations at each local memory to reference a same data object

Assignee: International Business Machines Corp
•
Filing: 1994-05-27
•
Granted: 1997-08-05
•
Expires: 2014-05-27
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A mechanism and method for accessing remote data objects in a distributed memory environment is disclosed. In the distributed memory environment, a number of parallel processors are remote from each other and each has memory storage capacity with parallel address locations. For each data object stored in the local memory of a processor, that processor stores a variable at a specific location pointing to the address of the data object in its local memory. At the same (parallel) location in the local memories of all remote parallel processors, a variable pointing to the home processor for the data object is stored. In order to access the data object, it is only necessary to locate the identifier variable in the processor processing a program pointing to the processor having the data object in storage. Because of the parallel address space, the location will automatically point directly to the same address location in the home storage processor, and this address location contains the address pointing to the actual location of the data object in the local storage of that processor. Alternate means for updating the variable information on data object storage is also provided. In one system, changes are broadcast throughout the parallel processor environment while in the other system, changes are merely retained on the home processor or the home processor and one remote parallel processor responsible for recording changes in that region of the distributed memory environment. When accessed by another remote parallel processor, the change information will be transmitted.

Inventors

  • 👤 William G. O'Farrell
  • 👤 Eshrat Arjomandi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-05 16:14
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/465; G06F12/00; G06F12/02; G06F12/0223; G06F12/0284

Claims Analysis

Total Claims: 22
Claim 1
Independent Claim 147 words
A composite mechanism for accessing remote data objects in a distributed memory environment having a plurality of parallel processors remote from each other, each processor having a local memory with parallel address locations, wherein for each data object having a storage location in the local memory of a first processor, the mechanism comprises: a first variable storage repository at a first address location in the local memory of the first processor pointing to said object's storage location in the memory of the first processor; and a second variable storage repository at the first address location in the local memory of at least one remote parallel processor pointing to the first processor, whereby the first address location in the local memory of the first processor and the first address location in the local memory of the at least one remote parallel processor have a same corresponding address location.
Claim 2
Dependent Claim 147 words
A composite mechanism for accessing remote data objects in a distributed memory environment having a plurality of parallel processors remote from each other, each processor having a local memory with parallel address locations, wherein for each data object having a storage location in the local memory of a first processor, the mechanism comprises: a first variable storage repository at a first address location in the local memory of the first processor pointing to said object's storage location in the memory of the first processor; and a second variable storage repository at the first address location in the local memory of at least one remote parallel processor pointing to the first processor, whereby the first address location in the local memory of the first processor and the first address location in the local memory of the at least one remote parallel processor have a same corresponding address location.
Claim 3
Dependent Claim 27 words
A composite mechanism, according to claim 1, wherein the second variable storage repository is located in the local memory of every remote parallel processor in said environment.
Claim 4
Dependent Claim 49 words
A composite mechanism, according to claim 1, wherein the second variable storage repository is located in one remote parallel processor, and further comprising a third variable storage repository at the first address location in the local memory of remaining remote parallel processors pointing to said one remote parallel processor.
Claim 5
Dependent Claim 45 words
A composite mechanism, according to claim 1, further comprising relay means for changing variable storage repositories in response to data object migration, said relay means comprising: means for creating and destroying first and second variable repositories; and means for replacing first and second variable repositories.
Claim 6
Dependent Claim 29 words
A composite mechanism, according to claim 4, wherein the relay means further comprise means for broadcasting changes in variable storage repositories to all remote parallel processors in the environment.
Claim 7
Dependent Claim 27 words
A composite mechanism, according to claim 4, further comprising means for transmitting changes in variable storage repositories to at least one remote parallel processor in the environment.
Claim 8
Dependent Claim 33 words
A composite mechanism, according to claim 1, further comprising an interface mechanism for redirecting local calls from a calling data object in the local memory of the first processor to a remote processor.
Claim 9
Dependent Claim 78 words
A composite mechanism, according to claim 7, wherein the interface comprises a protocol function table indexed to execution data for redirecting local calls to remote processors, and further comprising: a virtual function table indexed to execution data for virtual functions; means for constructing the calling data object as an object with virtual functions; means for indexing the calling data object to the protocol function table; and means for indexing the protocol function table to the virtual function table.
Claim 10
Dependent Claim 195 words
A mechanism for accessing remote data objects in a distributed memory environment having a plurality of parallel processors remote from each other, each processor having a local memory with parallel address locations and each processor adapted to be a home processor storing data objects in said local memory, comprising: for each home processor: a first repository storage segment in the local memory of the home processor at an address location, said first repository storage segment being adapted to contain variables pointing to the data objects concurrently stored in the local memory of said home processor; a second repository storage segment in the local memory of all remote parallel processors at the address location, said second repository storage segment being adapted to contain identifiers for the data objects concurrently stored in the local memory of said home processor, whereby the address location in the local memory of the home processor and the address location in the local memory of the remote parallel processors have a same corresponding location; and relay means for changing said first and second repository segments in response to a change in data object storage in said local memory of the home processor.
Claim 11
Dependent Claim 195 words
A mechanism for accessing remote data objects in a distributed memory environment having a plurality of parallel processors remote from each other, each processor having a local memory with parallel address locations and each processor adapted to be a home processor storing data objects in said local memory, comprising: for each home processor: a first repository storage segment in the local memory of the home processor at an address location, said first repository storage segment being adapted to contain variables pointing to the data objects concurrently stored in the local memory of said home processor; a second repository storage segment in the local memory of all remote parallel processors at the address location, said second repository storage segment being adapted to contain identifiers for the data objects concurrently stored in the local memory of said home processor, whereby the address location in the local memory of the home processor and the address location in the local memory of the remote parallel processors have a same corresponding location; and relay means for changing said first and second repository segments in response to a change in data object storage in said local memory of the home processor.
Claim 12
Dependent Claim 22 words
A mechanism, according to claim 9, wherein said second repository storage segments are adapted to contain variables pointing to the home processor.
Claim 13
Dependent Claim 22 words
A mechanism, according to claim 9, wherein said second repository storage segments are adapted to contain a value indicating the home processor.
Claim 14
Dependent Claim 19 words
The mechanism of claim 9 wherein the address location of the second repository storage segment indicates the home processor.
Claim 15
Independent Claim 146 words
A method of accessing remote data objects in a distributed memory environment between remote parallel processors, each parallel processor having a local memory and being adapted to be a home processor storing at least one data object in said local memory, comprising the computer implemented steps of: storing an address variable for a data object at a location in the local memory of the home processor; storing an identifier variable for the data object at the location in the local memory of at least one remote parallel processor, whereby the location in the local memory of the home processor and the location in the local memory of the at least one remote parallel processor have a same corresponding location; locating said identifier variable for accessing said address variable; and locating said address variable for accessing said data object in the local memory of the home processor.
Claim 16
Independent Claim 146 words
A method of accessing remote data objects in a distributed memory environment between remote parallel processors, each parallel processor having a local memory and being adapted to be a home processor storing at least one data object in said local memory, comprising the computer implemented steps of: storing an address variable for a data object at a location in the local memory of the home processor; storing an identifier variable for the data object at the location in the local memory of at least one remote parallel processor, whereby the location in the local memory of the home processor and the location in the local memory of the at least one remote parallel processor have a same corresponding location; locating said identifier variable for accessing said address variable; and locating said address variable for accessing said data object in the local memory of the home processor.
Claim 17
Dependent Claim 31 words
A method, according to claim 13, further comprising the step of: changing said address variable in response to migration of the data object in the local memory of the home processor.
Claim 18
Dependent Claim 87 words
A method, according to claim 13, further comprising the step of: converting said address variable to an identifier variable at a location in local memory pointing to a remote parallel processor; and creating an address variable at the same location in the local memory of the remote parallel processor for an address in the local memory of said remote parallel processor, in response to migration of the data object outside the memory of the home processor to the address in the local memory of said remote processor.
Claim 19
Dependent Claim 33 words
A method, according to claim 15, further comprising the step of: transmitting said identifier variable pointing to a remote parallel processor from the home processor to all remote parallel processors in the environment.
Claim 20
Dependent Claim 32 words
A method, according to claim 15, wherein the step of locating said identifier variable further comprises the step of transmitting said identifier variable to a remote parallel processor from the home processor.
Claim 21
Dependent Claim 54 words
A method, according to claim 13, further comprising the steps of: constructing a calling data object in dynamic memory storage in the local memory of a remote processor; creating a generic operation for redirecting a call from a data object to a remote processor; and linking the calling data object with the generic operation.
Claim 22
Dependent Claim 109 words
A method, according to claim 18, wherein the step of constructing the calling data object comprises the steps of: declaring the calling data object as having virtual functions, and creating a first pointer in the calling data object indexing virtual functions in the calling data object to a virtual function table; and wherein the step of linking the calling data object with the generic operation comprises the steps of: storing the first pointer in the calling data object as a variable, and replacing the first pointer with a second pointer indexing the virtual functions in the calling data object to a protocol function table indexed to the generic operation.

References Cited (Backward Citations)

US4635189A Cited
US5117350A Cited
US5410688A Cited
US5075845A Cited
US5075848A Cited
US5075842A Cited
WO1993000633A1 Cited
US5327562A Cited
US5307490A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-08-04 2001-02-03 2001-08-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-08-04 2005-02-03 2005-08-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-08-04 2009-02-03 2009-08-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag