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

Method for updating value in distributed shared virtual memory among interconnected computer nodes having page table with minimal processor involvement

Assignee: Panasonic Corp of North America
•
Filing: 1994-08-04
•
Granted: 1996-05-28
•
Expires: 2014-08-04
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The invention relates to general purpose interprocessor communication implemented through a distributed shared memory network connecting a plurality of processors, computers, multiprocessors, and electronic and optical devices. The invention teaches a method and means for shared memory based data transfer between a multiplicity of asynchronously operating devices (processors, computers, multiprocessors, etc.) each using possibly distinct memory address translation architectures. The invention further teaches shared virtual memory network communication and administration based on a unique network memory address translation architecture. This architecture is compatible with and augments the address translation and cache block replacement mechanisms of existing devices. More particularly, the invention teaches an adapter for insertion into an operating device, or node, whereby all address translation, memory mapping and packet generation can be implemented. The invention teaches that all network activities can be completed with only write and control operations. An interconnecting switch part and bus arrangement facilitates communication among the network adapters.

Inventors

  • 👤 Jonathan Sandberg

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-29 19:26
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1081; G06F12/1072; H; H04; H04L; H04L49/00; H04L49/10; H04L49/103; H04L49/90; H04L9/00; H04L9/40; H04L49/30; H04L49/3009; H04L49/3018; H04L49/3027

Claims Analysis

Total Claims: 15
Claim 1
Independent Claim 252 words
A method for a first node, said first node having at least one first processor, first user process, first operating system having a memory cycle, and first shared memory location at a first address, said first node being interconnected to a plurality of second nodes, each said second node having at least one second processor, second operating system, and second shared memory location at a virtual address and at least one page table, in response to said first user process assigning an update value to said at least one first shared memory location, to provide an update value to said at least one second shared memory location, comprising the steps of: (a) updating, with said update value, said first shared memory location;. (b) accessing said page table and, with said first address, obtaining said virtual address; (c) generating a write packet containing said virtual address and said update value; (d) atomically generating a command packet comprising at least one command based upon said update value; (e) sending said write packet to each of said second nodes; (f) sending said command packet to each of said second nodes; (g) receiving said command packet at each of said second nodes; and (h) executing said command at each of said second nodes; wherein steps (a) through (f) occur independent of operation of said first operating system and steps (a) through (d) occur atomically within said memory cycle; and whereby said receiving and said executing occur atomically independent of the operation of said second operating system.
Claim 2
Independent Claim 252 words
A method for a first node, said first node having at least one first processor, first user process, first operating system having a memory cycle, and first shared memory location at a first address, said first node being interconnected to a plurality of second nodes, each said second node having at least one second processor, second operating system, and second shared memory location at a virtual address and at least one page table, in response to said first user process assigning an update value to said at least one first shared memory location, to provide an update value to said at least one second shared memory location, comprising the steps of: (a) updating, with said update value, said first shared memory location;. (b) accessing said page table and, with said first address, obtaining said virtual address; (c) generating a write packet containing said virtual address and said update value; (d) atomically generating a command packet comprising at least one command based upon said update value; (e) sending said write packet to each of said second nodes; (f) sending said command packet to each of said second nodes; (g) receiving said command packet at each of said second nodes; and (h) executing said command at each of said second nodes; wherein steps (a) through (f) occur independent of operation of said first operating system and steps (a) through (d) occur atomically within said memory cycle; and whereby said receiving and said executing occur atomically independent of the operation of said second operating system.
Claim 3
Independent Claim 212 words
A method for a first node to update a first memory location, each said first node having at least one first processor, first operating system and said first memory location with first virtual memory location address, said first node connected in a network to a plurality of second nodes, each said second node having at least one second processor, second operating system and second memory location having a second virtual memory location address, wherein said first memory location and said plurality of second memory locations contain shared memory values, each said first node having at least one page table containing virtual addresses and physical addresses of said first memory locations at said first node and of said second memory locations at said plurality of second nodes, comprising the steps of: (a) receiving at said first node a packet from said network containing an update value and said first virtual memory location address; (b) accessing said at least one page table to translate said first virtual memory location address to a physical memory address corresponding to said first memory location; and (c) updating, with said physical memory address, said first memory location with said update value; whereby said receiving and said updating occur atomically independent of the operation of said first operating system.
Claim 4
Independent Claim 212 words
A method for a first node to update a first memory location, each said first node having at least one first processor, first operating system and said first memory location with first virtual memory location address, said first node connected in a network to a plurality of second nodes, each said second node having at least one second processor, second operating system and second memory location having a second virtual memory location address, wherein said first memory location and said plurality of second memory locations contain shared memory values, each said first node having at least one page table containing virtual addresses and physical addresses of said first memory locations at said first node and of said second memory locations at said plurality of second nodes, comprising the steps of: (a) receiving at said first node a packet from said network containing an update value and said first virtual memory location address; (b) accessing said at least one page table to translate said first virtual memory location address to a physical memory address corresponding to said first memory location; and (c) updating, with said physical memory address, said first memory location with said update value; whereby said receiving and said updating occur atomically independent of the operation of said first operating system.
Claim 5
Independent Claim 254 words
A method for a first node to provide an update value to a plurality of second nodes, each said first node having at least one first processor, first operating system, said first memory location having a first virtual memory location address, said first node being connected in a network to a plurality of second nodes, each said second node having at least one second processor, second operating system and second memory location having a second virtual memory location address, wherein said first memory location and said plurality of second memory locations contain shared memory values, each said first node having at least one first page table containing virtual addresses and physical addresses of said first memory locations locations at said first node and of said second memory locations at said plurality of second nodes, comprising the steps of: (a) receiving at said first node a first packet from said network containing an update value and said first virtual memory location address; and (b) updating, with said first virtual memory location address, said first memory location; (c) performing a look-up with said first page table by providing said first virtual memory location address to said first page table and obtaining at least one said second memory location address corresponding to said first virtual memory location address therefrom; and (d) generating a second packet containing said second memory location address and said update value; (e) sending said second packet to said plurality of second nodes; whereby said generating occurs atomically independent of said first operating system.
Claim 6
Independent Claim 254 words
A method for a first node to provide an update value to a plurality of second nodes, each said first node having at least one first processor, first operating system, said first memory location having a first virtual memory location address, said first node being connected in a network to a plurality of second nodes, each said second node having at least one second processor, second operating system and second memory location having a second virtual memory location address, wherein said first memory location and said plurality of second memory locations contain shared memory values, each said first node having at least one first page table containing virtual addresses and physical addresses of said first memory locations locations at said first node and of said second memory locations at said plurality of second nodes, comprising the steps of: (a) receiving at said first node a first packet from said network containing an update value and said first virtual memory location address; and (b) updating, with said first virtual memory location address, said first memory location; (c) performing a look-up with said first page table by providing said first virtual memory location address to said first page table and obtaining at least one said second memory location address corresponding to said first virtual memory location address therefrom; and (d) generating a second packet containing said second memory location address and said update value; (e) sending said second packet to said plurality of second nodes; whereby said generating occurs atomically independent of said first operating system.
Claim 7
Dependent Claim 25 words
The method of claim 3 wherein said second memory location address comprises a virtual address for said shared memory at said plurality of second nodes.
Claim 8
Dependent Claim 102 words
The method of claim 4 wherein each of said plurality of second nodes includes at least one second page table comprising virtual addresses and physical addresses for memory locations of said shared memory and further comprising at a second node the steps of: (a) receiving said second packet comprising said virtual memory location address and said update value; (b) obtaining a physical address corresponding to said virtual memory location address from said page table; and (c) updating at said physical address, said second memory location; whereby said steps (a) through (c) occur atomically independent of the operation of said second operating system.
Claim 9
Independent Claim 216 words
A method for a first node to update a first memory location and to propagate a command based thereon to a network of nodes, each said first node having at least one first processor, first operating system and said first memory location with first virtual memory location address, said first node connected in a network to a plurality of second nodes, each said second node having at least one second processor, second operating system and second memory location having a second virtual memory location address, wherein said first memory location and said plurality of second memory locations contain shared memory values, (a) receiving at said first node a first network packet containing said update value and a first virtual memory location address; (b) updating, with first virtual memory location address, said first memory location; (c) atomically generating a command packet comprising at least one command based upon said update value; (d) sending said command packet to each said second node; (e) receiving said command packet at each said second node; and (f) executing said command at each said second node; whereby said receiving, said updating, said generating and said sending occur atomically independent of operation of said first operating system and said receiving and executing occur atomically independent of the operation of said second operating system.
Claim 10
Independent Claim 216 words
A method for a first node to update a first memory location and to propagate a command based thereon to a network of nodes, each said first node having at least one first processor, first operating system and said first memory location with first virtual memory location address, said first node connected in a network to a plurality of second nodes, each said second node having at least one second processor, second operating system and second memory location having a second virtual memory location address, wherein said first memory location and said plurality of second memory locations contain shared memory values, (a) receiving at said first node a first network packet containing said update value and a first virtual memory location address; (b) updating, with first virtual memory location address, said first memory location; (c) atomically generating a command packet comprising at least one command based upon said update value; (d) sending said command packet to each said second node; (e) receiving said command packet at each said second node; and (f) executing said command at each said second node; whereby said receiving, said updating, said generating and said sending occur atomically independent of operation of said first operating system and said receiving and executing occur atomically independent of the operation of said second operating system.
Claim 11
Independent Claim 211 words
A method for updating shared virtual memory among shared memory locations having addresses, said shared memory locations being associated with a first node, said first node having a first operating system and at least one first page table, and said shared memory locations also being associated with at least one second node, said second node connected to said first node through a network, and said second node having at least one Second operating system and at least one second page table, comprising: (a) memory mapping said shared memory locations into said page tables; (b) multicasting a packet containing at least one shared memory update and a virtual address for at least one said shared memory location from said first node to said at least one second node; (c) receiving said packet at said at least one second node; (d) accessing said at least one second page table; (e) finding, with said second page table, said shared memory location corresponding to said virtual address at said at least one second node and (f) updating said shared memory location at said at least one second node with said shared memory update; whereby steps (a) through (f) occur atomically independent of the operation of said first and said at least one second operating systems.
Claim 12
Independent Claim 211 words
A method for updating shared virtual memory among shared memory locations having addresses, said shared memory locations being associated with a first node, said first node having a first operating system and at least one first page table, and said shared memory locations also being associated with at least one second node, said second node connected to said first node through a network, and said second node having at least one Second operating system and at least one second page table, comprising: (a) memory mapping said shared memory locations into said page tables; (b) multicasting a packet containing at least one shared memory update and a virtual address for at least one said shared memory location from said first node to said at least one second node; (c) receiving said packet at said at least one second node; (d) accessing said at least one second page table; (e) finding, with said second page table, said shared memory location corresponding to said virtual address at said at least one second node and (f) updating said shared memory location at said at least one second node with said shared memory update; whereby steps (a) through (f) occur atomically independent of the operation of said first and said at least one second operating systems.
Claim 13
Dependent Claim 106 words
The method of claim 7 wherein said network includes at least one third node having at least one third operating system, at least one third shared memory location having a third shared memory address and at least one third page table further comprising the steps, in said at least one second node, of: (a) assembling a second packet containing said update and said third shared memory address for transmission to said at least one third node; and (b) sending said second packet to said third node; whereby said assembling and said sending occur atomically independent of the operation of said at least one second operating system.
Claim 14
Dependent Claim 88 words
The method of claim 8 wherein said assembling comprises accessing said at least one second page table and obtaining a physical address corresponding to said third shared memory location at said at least one third node and further comprising the steps of: (a) receiving said second packet at said at least one third node; and (b) updating, with said physical address, said at least one third shared memory location; whereby said receiving and said updating occur atomically independent of operation of said at least one third operating system.
Claim 15
Dependent Claim 85 words
The method of claim 8 wherein said third shared memory address comprises a virtual address and further comprising the steps of: (a) receiving said second packet at said at least one third node; (b) obtaining, with said page table, a physical address corresponding to said third shared memory address; and (c) updating, with said physical address, said at least one third shared memory location; whereby said receiving, said obtaining and said updating occur atomically independent of operation of said at least one third operating system.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-05-28 1999-11-27 2000-05-28 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-05-28 2003-11-27 2004-05-28 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-05-28 2007-11-27 2008-05-28 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag