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

Shared memory multiprocessor performing cache coherency

Assignee: Hitachi Ltd
•
Filing: 1998-02-26
•
Granted: 2000-07-11
•
Expires: 2018-02-26
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A shared memory multiprocessor (SMP) has efficient access to a main memory included in a particular node and a management of partitions that include the nodes. In correspondence with each page of main memory included in a node, a bit stored in a register indicates if the page has been accessed from any other node. In a case where the bit is "0", a cache coherent command to be sent to the other nodes is not transmitted. The bit is reset by software at the time of initialization and memory allocation, and it is set by hardware when the page of the main memory is accessed from any other node. In a case where the interior of an SMP is divided into partitions, the main memory of each node is divided into local and shared areas, for which respectively separate addresses can be designated. In each node, the configuration information items of the shared area and the local area are stored in registers. The command of access to the shared area is multicast to all of the nodes, whereas the command is multicast only to the nodes within the corresponding partition when the local area is accessed.

Inventors

  • 👤 Toshiaki Tarui
  • 👤 Koichi Okazawa
  • 👤 Yasuyuki Okada
  • 👤 Toru Shonai
  • 👤 Toshio Okochi
  • 👤 Hideya Akashi

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 06:21
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0817; G06F12/0826; G06F12/0223; G06F12/0284; G06F2212/00; G06F2212/25; G06F2212/254; G06F2212/2542

Claims Analysis

Total Claims: 16
Claim 1
Independent Claim 185 words
A multiprocessor having a plurality of nodes and a network for connecting the nodes, each of the nodes including at least one CPU, at least a cache and a memory, each of the nodes accessing the memories of all the nodes, at least one of the nodes comprising: a first register, in correspondence with each page of the memory of one of the nodes, for storing a first bit showing if the corresponding page has been accessed from any other node, the first bit is set when the corresponding page of the memory has been accessed from the other of the nodes; and a circuit for, when the CPU of the one node accesses the memory of the particular node, checking the first bit of the first register that corresponds to the page to be accessed by the CPU of the one node, for sending a message managing the caches to the other nodes from the one node in a case where said first bit is set, and for inhibiting the sending of the message in a case where said first bit is not set.
Claim 2
Dependent Claim 185 words
A multiprocessor having a plurality of nodes and a network for connecting the nodes, each of the nodes including at least one CPU, at least a cache and a memory, each of the nodes accessing the memories of all the nodes, at least one of the nodes comprising: a first register, in correspondence with each page of the memory of one of the nodes, for storing a first bit showing if the corresponding page has been accessed from any other node, the first bit is set when the corresponding page of the memory has been accessed from the other of the nodes; and a circuit for, when the CPU of the one node accesses the memory of the particular node, checking the first bit of the first register that corresponds to the page to be accessed by the CPU of the one node, for sending a message managing the caches to the other nodes from the one node in a case where said first bit is set, and for inhibiting the sending of the message in a case where said first bit is not set.
Claim 3
Dependent Claim 17 words
A multiprocessor according to claim 1, wherein the first register is reset at initialization of the multiprocessor.
Claim 4
Dependent Claim 36 words
A multiprocessor according to claim 2, wherein, when software of the multiprocessor allocates a page of the memory, the bit of the first register corresponding to the page to be allocated is reset by the software.
Claim 5
Dependent Claim 14 words
A multiprocessor according to claim 1, wherein the first register differs from the memory.
Claim 6
Dependent Claim 149 words
A multiprocessor according to claim 1, the at least one node further comprising: a second register, in correspondence with each page of the memory of the one node, for storing a second bit, in correspondence with each page of the memory, showing whether the sending of the message for the corresponding page to the other nodes is unnecessary, wherein when the CPU of the particular node accesses the memory of the particular node, the circuit checks the second bit for the page accessed from the CPU, sends the messages in accordance with a value of the first bit for the page accessed by the CPU in a case where the second bit for the page accessed from the CPU is not set, and inhibits the sending of the message to the other nodes in a case where said second bit for the page accessed from the CPU is set.
Claim 7
Dependent Claim 18 words
A multiprocessor according to claim 5, wherein the first register and the second register differ from the memory.
Claim 8
Dependent Claim 114 words
A multiprocessor comprising: a plurality of nodes which can be divided into a plurality of partitions each including at least one node; and a network for connecting the nodes, each of the plurality of nodes comprising: at least one processing element; a memory which is divided into a first area which is accessible from all of the nodes and a second area which is accessible from the nodes within the corresponding partition; a second circuit for storing a start address of the second area; and each of the plurality of nodes further comprising: a circuit for storing distribution of the nodes within the partition to which each node belongs, in terms of a bitmap.
Claim 9
Dependent Claim 114 words
A multiprocessor comprising: a plurality of nodes which can be divided into a plurality of partitions each including at least one node; and a network for connecting the nodes, each of the plurality of nodes comprising: at least one processing element; a memory which is divided into a first area which is accessible from all of the nodes and a second area which is accessible from the nodes within the corresponding partition; a second circuit for storing a start address of the second area; and each of the plurality of nodes further comprising: a circuit for storing distribution of the nodes within the partition to which each node belongs, in terms of a bitmap.
Claim 10
Dependent Claim 162 words
A multiprocessor comprising: a plurality of nodes which can be divided into a plurality of partitions each including at least one node; and a network for connecting the nodes, at least one of the plurality of nodes comprising: at least one processing element; a cache; a memory which is divided into a first area which is accessible from all of the nodes and a second area which is accessible from each of the nodes within the corresponding partition; a circuit for deciding whether a processing element access is for the first area or for the second area; and a circuit for, when a first message controlling the caches is sent to other nodes, broadcasting the first message to all of the nodes within the multiprocessor in case of the access toward the first area and multicasting the first message to the nodes within the partition to which the one node belongs to in case of the access is to the second area.
Claim 11
Dependent Claim 162 words
A multiprocessor comprising: a plurality of nodes which can be divided into a plurality of partitions each including at least one node; and a network for connecting the nodes, at least one of the plurality of nodes comprising: at least one processing element; a cache; a memory which is divided into a first area which is accessible from all of the nodes and a second area which is accessible from each of the nodes within the corresponding partition; a circuit for deciding whether a processing element access is for the first area or for the second area; and a circuit for, when a first message controlling the caches is sent to other nodes, broadcasting the first message to all of the nodes within the multiprocessor in case of the access toward the first area and multicasting the first message to the nodes within the partition to which the one node belongs to in case of the access is to the second area.
Claim 12
Dependent Claim 113 words
A multiprocessor according to claim 8, the at least one node further comprising: a circuit for deciding whether the access of a second message, which controls the caches and which is sent from a source node, is for the first area or for the second area; a circuit for deciding whether the source node of the second message is within the partition to which the node that receives the second message belongs; and a circuit for inhibiting the access of the second message and for reporting an error when the access of the second message is for the second area and the source node of the second message is not within the partition.
Claim 13
Dependent Claim 202 words
A processor system having a plurality of processing units and a communication device for connecting the processing units, each of the processing units including at least one processor, a buffer memory and a main memory, each of the processing units accessing the main memories of all the processing units, at least one of the processing units comprising: a table, in correspondence with each page of the main memory of one of the processing units, for storing a first bit showing if the corresponding page has been accessed from any other processing unit, the first bit being set by hardware when the corresponding page of the main memory has been accessed from the other processing unit; and a circuit for, when the processor of the one processing unit accesses the main memory of the one processing unit, checking the first bit of the table that corresponds to the page to be accessed from the processor of the one processing unit, for sending a command managing the caches to other processing units from the one processing unit in a case where said first bit is set, and for inhibiting the sending of the command in a case where said first bit is not set.
Claim 14
Dependent Claim 202 words
A processor system having a plurality of processing units and a communication device for connecting the processing units, each of the processing units including at least one processor, a buffer memory and a main memory, each of the processing units accessing the main memories of all the processing units, at least one of the processing units comprising: a table, in correspondence with each page of the main memory of one of the processing units, for storing a first bit showing if the corresponding page has been accessed from any other processing unit, the first bit being set by hardware when the corresponding page of the main memory has been accessed from the other processing unit; and a circuit for, when the processor of the one processing unit accesses the main memory of the one processing unit, checking the first bit of the table that corresponds to the page to be accessed from the processor of the one processing unit, for sending a command managing the caches to other processing units from the one processing unit in a case where said first bit is set, and for inhibiting the sending of the command in a case where said first bit is not set.
Claim 15
Dependent Claim 288 words
A multiprocessor comprising: a plurality of nodes which can be divided into a plurality of partitions each including at least one node; and a network for connecting the nodes, at least one of the plurality of nodes comprising: at least one processing element; a cache; a memory which is divided into a first area which is accessible from all of the nodes and a second area which is accessible from each of the nodes within the corresponding partition; a first register, in correspondence with each page of the memory of the one node, for storing a first bit showing if the corresponding page has been accessed from any other node, the first bit being set when the corresponding page of the memory has been accessed from the other node; a circuit for, when an access of the processing element of the one node is for the memory of the one node, checking the first bit of the first register that corresponds to the page to be accessed from the processing element of the one node, for sending a message controlling the caches to other nodes from the one node in a case where said first bit is set, and for inhibiting the sending of the message in a case where said first bit is not set; and a circuit for deciding whether the access to the memory is for the first area or of the second area, wherein the circuit for sending the message broadcasts the message to all of the nodes within the multiprocessor in case of the access of the first area and multicasts the message to the nodes within the partition to which the node belongs in case of the access of the second area.
Claim 16
Dependent Claim 288 words
A multiprocessor comprising: a plurality of nodes which can be divided into a plurality of partitions each including at least one node; and a network for connecting the nodes, at least one of the plurality of nodes comprising: at least one processing element; a cache; a memory which is divided into a first area which is accessible from all of the nodes and a second area which is accessible from each of the nodes within the corresponding partition; a first register, in correspondence with each page of the memory of the one node, for storing a first bit showing if the corresponding page has been accessed from any other node, the first bit being set when the corresponding page of the memory has been accessed from the other node; a circuit for, when an access of the processing element of the one node is for the memory of the one node, checking the first bit of the first register that corresponds to the page to be accessed from the processing element of the one node, for sending a message controlling the caches to other nodes from the one node in a case where said first bit is set, and for inhibiting the sending of the message in a case where said first bit is not set; and a circuit for deciding whether the access to the memory is for the first area or of the second area, wherein the circuit for sending the message broadcasts the message to all of the nodes within the multiprocessor in case of the access of the first area and multicasts the message to the nodes within the partition to which the node belongs in case of the access of the second area.

References Cited (Backward Citations)

US4985825A Cited
US5890189A Cited
JPH08320828A Cited
JPH0922381A Cited
US5710907A Cited
US5956754A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-07-11 2004-01-10 2004-07-11 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-07-11 2008-01-10 2008-07-11 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-07-11 2012-01-10 2012-07-11 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag