JP2003216596A - Multiprocessor system and node device - Google Patents

Multiprocessor system and node device

Info

Publication number
JP2003216596A
JP2003216596A JP2002008917A JP2002008917A JP2003216596A JP 2003216596 A JP2003216596 A JP 2003216596A JP 2002008917 A JP2002008917 A JP 2002008917A JP 2002008917 A JP2002008917 A JP 2002008917A JP 2003216596 A JP2003216596 A JP 2003216596A
Authority
JP
Japan
Prior art keywords
node
registered
data
node device
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2002008917A
Other languages
Japanese (ja)
Inventor
Junko Kuge
純子 久下
Atsushi Nakajima
敦 中島
Yuji Tsushima
雄次 對馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2002008917A priority Critical patent/JP2003216596A/en
Publication of JP2003216596A publication Critical patent/JP2003216596A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a multiprocessor system capable of reducing unnecessary cache coincidence control and an inter-node access by the control. <P>SOLUTION: This system is constituted by connecting a plurality of nodes 100 and 200 having one or more processors each of which has a cache memory and memories. Each node has directories 150 and 250 for registering information on data in a memory within the present node registered in a cache memory of an other node and node controllers 140 and 240 for specifying a node requiring a cache coincidence control based on information registered in the directories 150 and 250. The information registered in the directories 150 and 250 is addresses of object data and registered states of object data in the other node. Each node has a means for deciding that data requested to be registered in the cache memory is an instruction code. When the data is the instruction code, the cache coincidence control is not performed. <P>COPYRIGHT: (C)2003,JPO

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、マルチプロセッサ
システム及びノード装置に係り、特に、マルチプロセッ
サシステムを構成するコンピュータである各ノード内の
キャッシュメモリの一致制御処理によるノード相互間の
アクセスを削減し、処理を高速化することができるマル
チプロセッサシステム及びノード装置に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a multiprocessor system and a node device, and more particularly, to reducing access between nodes by coincidence control processing of a cache memory in each node which is a computer constituting the multiprocessor system. The present invention relates to a multiprocessor system and a node device capable of speeding up processing.

【0002】[0002]

【従来の技術】一般に、キャッシュメモリを持つ複数の
プロセッサが、共通のメモリに対してアクセスするマル
チプロセッサシステムは、あるプロセッサがメモリに対
するアクセスを発行した際、他のプロセッサのキャッシ
ュに最新データが存在するか否かをチェックして、キャ
ッシュの一貫性を保証する必要がある。そして、複数ノ
ード(1または複数のコンピュータを有して構成され
る)により構成されるマルチプロセッサシステムは、キ
ャッシュ一致制御によるノード相互間アクセスが発生す
る。
2. Description of the Related Art Generally, in a multiprocessor system in which a plurality of processors having a cache memory access a common memory, when one processor issues an access to a memory, the latest data exists in the cache of another processor. It is necessary to check whether or not to guarantee cache coherency. Then, in a multiprocessor system configured by a plurality of nodes (having one or a plurality of computers), inter-node access by cache coincidence control occurs.

【0003】このため、計算機の大規模化、高速化に伴
い、キャッシュ一致制御によるノード相互間アクセスの
削減及びキャッシュ一致制御処理のレイテンシ削減が、
システムの高性能化への課題となっている。このような
課題を解決することのできる従来技術として、例えば、
特開平8−16474号公報等に記載された技術が知ら
れている。この従来技術は、各ノード毎にディレクトリ
を持ち、自ノードメモリのデータのうち、他ノードのキ
ャッシュメモリが所有しているデータの物理アドレスと
その状態を示す状態ビットとを登録している。状態ビッ
トは、Shared(共有)、Dirty(更新データである)、I
nvalid(無効)の3つの状態を示す。そして、この従来
技術は、あるプロセッサがメモリアクセス要求を発行す
ると、そのプロセッサが属するノード内でキャッシュ一
致制御が行われ、同時に、アクセスが要求されたメモリ
の属するノードのディレクトリが検索され、対象データ
がそのノード以外のキャッシュメモリに登録されている
か否かを検証する。その結果、対象データが他のノード
に登録されていなければ、そのノード内のキャッシュ一
致制御のみ実行し、対象データが他のノードに登録され
ており、その状態がキャッシュ一致制御を必要とする場
合、全てのノードにメモリアドレスをブロードキャスト
しキャッシュ一致制御処理を実行する。
For this reason, with the increase in the scale and speed of computers, the reduction of access between nodes by the cache coincidence control and the latency of the cache coincidence control processing are reduced.
It has become a challenge to improve the performance of the system. As a conventional technique capable of solving such a problem, for example,
The technique described in Japanese Patent Laid-Open No. 8-16474 is known. In this conventional technique, each node has a directory, and among the data of its own node memory, the physical address of the data owned by the cache memory of another node and the status bit indicating its status are registered. Status bits are Shared, Dirty (updated data), I
The three states of nvalid are shown. According to this conventional technique, when a processor issues a memory access request, cache matching control is performed in the node to which the processor belongs, and at the same time, the directory of the node to which the memory requested to access belongs is searched to obtain the target data. Is registered in the cache memory other than that node. As a result, if the target data is not registered in another node, only cache matching control in that node is executed, and if the target data is registered in another node and the status requires cache matching control. , Broadcasts the memory address to all nodes and executes cache match control processing.

【0004】[0004]

【発明が解決しようとする課題】前述した公報に記載の
従来技術は、メモリからの読み出しを要求されたデータ
が、対象データを持つメモリが属するノードとは異なる
ノードのキャッシュメモリに登録されていて、キャッシ
ュ一致制御が必要な状態である場合、全てのノードにメ
モリアドレスをブロードキャストしてキャッシュ一致制
御を実行するというものである。そのため、この従来技
術は、対象データを登録していないノードに対するノー
ド間アクセスや、対象データを登録していないノード内
でのキャッシュ一致制御が発生するという問題点を生じ
ていた。また、この従来技術は、他のノードに登録され
ていないデータの読み出しが要求されると、必ず自ノー
ド内でのキャッシュ一致制御が実行されるため、自ノー
ド内での不要なキャッシュ一致制御が発生するという問
題点を有している。
In the prior art described in the above publication, the data requested to be read from the memory is registered in the cache memory of a node different from the node to which the memory having the target data belongs. When the cache match control is required, the memory address is broadcast to all the nodes to execute the cache match control. Therefore, this conventional technique has a problem in that inter-node access to a node in which the target data is not registered and cache matching control occurs in the node in which the target data is not registered. Further, according to this conventional technique, when a request to read data that is not registered in another node is made, cache matching control is always performed in the own node, so unnecessary cache matching control in the own node is performed. It has a problem that it occurs.

【0005】本発明の目的は、前述した従来技術の問題
点を解決し、他のノードに登録されたデータの読み出し
が要求された際、対象データを登録していないノードで
のキャッシュ一致制御と、それによるノード間アクセス
を不要とし、また、他のノードに登録されていないデー
タの読み出しが要求された際、不要な自ノード内キャッ
シュ一致制御を不要とし、キャッシュメモリの一致制御
処理によるノード相互間のアクセスを削減し、処理を高
速化することができるマルチプロセッサシステム及びノ
ード装置を提供することにある。
An object of the present invention is to solve the above-mentioned problems of the prior art, and to perform cache matching control in a node that does not register the target data when reading the data registered in another node is requested. , It eliminates the need for inter-node access by that, and when the data that is not registered in another node is requested to be read, unnecessary cache matching control in its own node becomes unnecessary, and the node mutual control by the cache memory matching control process becomes unnecessary. An object of the present invention is to provide a multiprocessor system and a node device capable of reducing access between terminals and speeding up processing.

【0006】[0006]

【課題を解決するための手段】本発明によれば前記目的
は、それぞれがキャッシュメモリを有する1または複数
のプロセッサと該プロセッサにより共有される1または
複数のメモリとを有する複数のノード装置を備え、前記
複数のノード装置が接続手段により相互に接続されて構
成されたマルチプロセッサシステムにおいて、前記ノー
ド装置が、他のノード装置のキャッシュメモリに登録さ
れた自ノード装置内のメモリのデータに関する情報を登
録するディレクトリと、前記ディレクトリに登録された
情報に基づいてキャッシュ一致制御が必要なノード装置
を特定する手段とを備え、前記ディレクトリが、他のノ
ード装置のキャッシュメモリに登録されたデータのアド
レスと、前記他のノード装置のキャッシュメモリに登録
されたデータが登録されているキャッシュメモリを有す
るノード装置を特定する情報とを有する複数エントリか
らなることにより達成される。
According to the present invention, said object comprises a plurality of node devices each having one or more processors each having a cache memory and one or more memories shared by said processors. In a multiprocessor system in which the plurality of node devices are connected to each other by connection means, the node device displays information about data in a memory in its own node device registered in a cache memory of another node device. A directory to be registered, and means for specifying a node device that requires cache matching control based on the information registered in the directory, wherein the directory is an address of data registered in the cache memory of another node device. , The data registered in the cache memory of the other node device is registered. It is accomplished by comprising a plurality entries having information identifying a node apparatus having a cache memory being.

【0007】具体的には、対象データの登録状況は、各
ノードに1対1に対応したビットで構成され、対象デー
タを登録しているノードに対応したビットに“1”を立
てることにより、どのノードに対象データが登録されて
いるかを示す。データの登録状況のビットが全て“0”
の、対象データを登録しているキャッシュメモリが自ノ
ードにも他ノードにもないことを示す。
Specifically, the registration status of the target data is composed of bits corresponding to each node on a one-to-one basis. By setting "1" in the bit corresponding to the node registering the target data, Indicates which node the target data is registered. All data registration status bits are "0"
Indicates that there is neither the cache memory that registers the target data nor the other node.

【0008】本発明は、また、ディレクトリがオーバー
フローしてエントリの内容を上書きしたときや、ディレ
クトリに登録されたデータの無効化が要求されたとき、
そのデータの登録状況を参照して、対象データを登録し
ているノードに対し対象データの無効化処理を実行する
手段を有し、さらに、キャッシュメモリへの登録を要求
されたデータが、命令コードであることを判定する手段
を有する。
The present invention is also directed to when the directory overflows to overwrite the contents of the entry, or when invalidation of data registered in the directory is requested.
By referring to the registration status of the data, the node having the target data registered has means for executing the invalidation processing of the target data, and the data requested to be registered in the cache memory is the instruction code. It has a means to determine that.

【0009】[0009]

【発明の実施の形態】以下、本発明によるマルチプロセ
ッサシステム及びノード装置の実施形態を図面により詳
細に説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of a multiprocessor system and a node device according to the present invention will be described in detail with reference to the drawings.

【0010】図1は本発明の一実施形態によるマルチコ
ンピュータシステムの構成を示すブロック図、図2はデ
ィレクトリ内に登録されるデータに関する情報について
説明する図である。図1において、100、200はノ
ード装置(以下、単にノードという)、110、11
1、210、211はキャッシュメモリ、120、12
1、220、221はプロセッサ、130、230はメ
モリ、140、240はノードコントローラ、150、
250はディレクトリ(Dir)、160、260は命
令コード判定部、300はクロスバースイッチである。
FIG. 1 is a block diagram showing the configuration of a multi-computer system according to an embodiment of the present invention, and FIG. 2 is a diagram for explaining information regarding data registered in a directory. In FIG. 1, reference numerals 100 and 200 denote node devices (hereinafter simply referred to as nodes), 110 and 11
1, 210, 211 are cache memories, 120, 12
1, 220 and 221 are processors, 130 and 230 are memories, 140 and 240 are node controllers, 150,
Reference numeral 250 is a directory (Dir), 160 and 260 are instruction code determination units, and 300 is a crossbar switch.

【0011】本発明の実施形態によるマルチプロセッサ
システムは、図1に示すように、複数のノード100、
200をクロスバースイッチ300で接続して構成され
る。ノード100は、それぞれキャッシュメモリ11
0、111を有する複数のプロセッサ120、121
と、複数のプロセッサ120、121により共有される
1または複数のメモリ130と、ノードコントローラ1
40と、ディレクトリ150とから構成される。
A multiprocessor system according to an embodiment of the present invention includes a plurality of nodes 100, as shown in FIG.
200 are connected by a crossbar switch 300. Each node 100 has a cache memory 11
Multiple processors 120, 121 having 0, 111
And one or more memories 130 shared by the plurality of processors 120 and 121, and the node controller 1
40 and a directory 150.

【0012】なお、前述において、ノード相互間を接続
するためにクロスバースイッチ300を用いるとしてい
るが、本発明は、ノード相互間を接続することができれ
ば、クロスバースイッチに限らず、バス状のネットワー
ク、リング上のネットワークを使用してノード相互間を
接続するようにすることもできる。
Although the crossbar switch 300 is used to connect the nodes to each other in the above description, the present invention is not limited to the crossbar switch and may be a bus-like one as long as the nodes can be connected to each other. It is also possible to connect the nodes to each other using a network or a network on a ring.

【0013】ノードコントローラ140は、自ノード内
でのキャッシュ一致制御や、キャッシュメモリに登録さ
れたデータの無効化処理を実行し、他ノードに対するキ
ャッシュ一致制御要求やデータの無効化処理の要求を発
行する。ノードコントローラ140は、また、命令コー
ド判定部160を有する。命令コード判定部160は、
メモリからの読み出し要求に、対象データが命令コード
であることを示す情報が含まれる場合、そのデータが命
令コードであるか否かを判別する。
The node controller 140 executes cache matching control in its own node and invalidation processing of data registered in the cache memory, and issues a cache matching control request and a data invalidation processing request to another node. To do. The node controller 140 also has an instruction code determination unit 160. The instruction code determination unit 160
When the read request from the memory includes the information indicating that the target data is the instruction code, it is determined whether the data is the instruction code.

【0014】ディレクトリ150は、4−wayセットアソ
シアティブ方式のディレクトリであり(実際には任意のw
ay 数でよい)、他のノードからアクセスのあったメモリ
130のデータに関する情報を各エントリに登録してい
る。ディレクトリ150の各エントリに登録するデータ
に関する情報は、図2に示すように、メモリアドレス1
51と、データ登録状況152とから構成される。デー
タ登録状況152は、各ノードに対応するビットを有す
る。メモリアドレス151のデータをキャッシュメモリ
に登録しているノードが存在する場合、そのノードに対
応するビットに“1”を立てる。通常、自ノードのプロ
セッサ120、121がアクセスしたメモリ130のデ
ータに関する情報は、ディレクトリ150に登録されな
い。しかし、自ノードから自ノードのメモリ130に対
するアクセスがあった際、対象データのアドレスが既に
ディレクトリ150に登録されており、かつ、対象デー
タのデータ登録状況のビットが全て“0”であった場
合、ノードコントローラ140はデータ登録状況を更新
する。
The directory 150 is a 4-way set associative type directory (actually, an arbitrary w
information about the data of the memory 130 accessed by another node is registered in each entry. As shown in FIG. 2, the information regarding the data registered in each entry of the directory 150 is stored in the memory address 1
51 and a data registration status 152. The data registration status 152 has a bit corresponding to each node. When there is a node in which the data of the memory address 151 is registered in the cache memory, "1" is set in the bit corresponding to the node. Normally, information on the data in the memory 130 accessed by the processors 120 and 121 of the own node is not registered in the directory 150. However, when the own node accesses the memory 130 of the own node, the address of the target data is already registered in the directory 150, and all the bits of the data registration status of the target data are “0”. The node controller 140 updates the data registration status.

【0015】プロセッサが発行するメモリアクセスに
は、読み出し(Read)Tx、無効化(Invalidate)Tx、読み出
し&無効化 (Read and Invalidate)Tx、書き戻し(Write
Back)Txの4種類が存在する。次に、これらのTx(トラ
ンザクション)が発行された場合のシステムの動作につ
いて説明する。
For memory access issued by the processor, read (Read) Tx, invalidate (Invalidate) Tx, read and invalidate (Tx), and write back (Write)
Back) There are four types of Tx. Next, the operation of the system when these Tx (transactions) are issued will be described.

【0016】図3は他のノードからのRead Tx が入力さ
れたときのノードの処理動作を説明するフローチャート
であり、まず、これについて説明する。
FIG. 3 is a flow chart for explaining the processing operation of a node when Read Tx is input from another node. First, this will be explained.

【0017】(1)いま、ノード200内のプロセッサ
220または221から、ノード100のメモリ130
に対するRead Tx が入力されると、ノードコントローラ
140はディレクトリ150を参照する(ステップ30
0、301)。
(1) Now, from the processor 220 or 221 in the node 200 to the memory 130 of the node 100.
When the Read Tx is input to the node controller 140, the node controller 140 refers to the directory 150 (step 30).
0, 301).

【0018】(2)ステップ302でディレクトリ15
0を参照した結果、対象データのアドレスがディレクト
リ150に登録されているか否かを判定し、登録されて
いなかった場合、ノードコントローラ140は、自ノー
ド100のキャッシュメモリ110、111に対してキ
ャッシュ一致制御を実行する(ステップ302、30
3)。
(2) Directory 15 in step 302
As a result of referring to 0, it is determined whether or not the address of the target data is registered in the directory 150. If the address is not registered, the node controller 140 cache-matches the cache memories 110 and 111 of its own node 100. Execute control (steps 302, 30)
3).

【0019】(3)キャッシュ一致制御を実行した結
果、キャッシュメモリ110、111に対象データが登
録されてるか否かを判定し、登録されていなかった場
合、ノードコントローラ140は、対象データをメモリ
130からノード200に送り、また、ディレクトリ1
50に対象データのアドレスを登録し、ノード200に
対応したデータ登録状況のビットに“1”を立てる(ス
テップ304〜306)。
(3) As a result of executing the cache matching control, it is determined whether or not the target data is registered in the cache memories 110 and 111. If the target data is not registered, the node controller 140 stores the target data in the memory 130. Sent to node 200 from directory 1
The address of the target data is registered in 50, and the bit of the data registration status corresponding to the node 200 is set to "1" (steps 304 to 306).

【0020】(4)ステップ304の判定で、キャッシ
ュ一致制御を実行した結果、キャッシュメモリ110、
111の何れかに対象データが登録されていた場合、そ
のデータが変更されているか否かを判定し、変更されて
いなかった場合、ノードコントローラ140は、対象デ
ータをメモリ130からノード200に送り、対象デー
タのアドレスをディレクトリ150に登録し、ノード1
00に対応したデータ登録状況のビットとノード200
に対応したビットとに1を立てる(ステップ307〜3
09)。
(4) As a result of executing the cache matching control in the judgment of step 304, the cache memory 110,
If the target data is registered in any of 111, it is determined whether or not the data is changed. If not, the node controller 140 sends the target data from the memory 130 to the node 200, The address of the target data is registered in the directory 150, and the node 1
Data registration status bit corresponding to 00 and node 200
1 is set to the bit corresponding to (steps 307 to 3)
09).

【0021】(5)ステップ307の判定で、そのデー
タが変更されていた場合、ノードコントローラ140
は、キャッシュメモリからメモリ130とノード200
とに対し変更された最新の対象データを送り、対象デー
タのアドレスをディレクトリ150に登録し、ノード2
00に対応したデータ登録状況のビットに“1”を立
て、ノード100のキャッシュメモリに登録されていた
データを無効とする(ステップ310、311)。
(5) If it is determined in step 307 that the data has been changed, the node controller 140
From the cache memory to the memory 130 and the node 200
The latest changed target data is sent to and the address of the target data is registered in the directory 150.
The data registration status bit corresponding to 00 is set to "1" to invalidate the data registered in the cache memory of the node 100 (steps 310 and 311).

【0022】(6)ステップ302の判定で、ディレク
トリ150を参照した結果、対象データのアドレスがデ
ィレクトリ150に登録されていた場合、ノードコント
ローラ140は、ディレクトリに登録されている対象デ
ータの登録状況を参照し、対象データのデータ登録状況
のビットに“1”が立っているものがあるか否かを判定
する(ステップ312、313)。
(6) If it is determined in step 302 that the address of the target data is registered in the directory 150 as a result of referring to the directory 150, the node controller 140 displays the registration status of the target data registered in the directory. With reference to the data, it is determined whether or not the bit of the data registration status of the target data has "1" set (steps 312 and 313).

【0023】(7)ステップ313の判定で、対象デー
タのデータ登録状況のビットに“1”が立っているもの
がなかった場合、対象データを登録しているキャッシュ
メモリが存在しないことになるので、ノードコントロー
ラ140は、キャッシュ一致制御を実行することなく、
メモリ130から対象データを要求元のプロセッサに送
り、対象データに関する情報を登録しているエントリの
データの要求元ノードに対応するデータ登録状況のビッ
トに“1”を立てる(ステップ314、315)。
(7) If it is determined in step 313 that the bit of the data registration status of the target data is not set to "1", it means that the cache memory in which the target data is registered does not exist. , The node controller 140 does not execute cache matching control,
The target data is sent from the memory 130 to the request source processor, and "1" is set to the bit of the data registration status corresponding to the request source node of the data of the entry in which the information regarding the target data is registered (steps 314 and 315).

【0024】(8)ステップ313の判定で、対象デー
タのデータ登録状況のビットに“1”が立っているもの
があった場合、データ登録状況のビットに“1”が立っ
ているものが1つだけであるか否かを判定し、1つだけ
でなかった場合、すなわち、“1”が立っているビット
が複数あった場合、対象データが共有状態にあり、何れ
かのキャッシュメモリ内で変更されていることは有り得
ない(1つのキャッシュでデータが更新された場合、他
のキャッシュ内のデータは無効化されるから)。従っ
て、ノードコントローラ140は、メモリ130から対
象データをノード200に送り、ディレクトリ150の
対象データに関する情報が登録されているエントリのデ
ータ登録状況を更新する。更新した結果、それまで
“1”が立っていた複数のビットに加え、ノード200
に対応した登録状況のビットも“1”となる(ステップ
316、314、315)。
(8) If it is determined in step 313 that the data registration status bit of the target data is set to "1", the data registration status bit set to "1" is set to 1 If there is more than one bit, that is, if there are multiple bits for which "1" is set, the target data is in a shared state and It cannot be changed (since data in one cache is updated, data in the other cache is invalidated). Therefore, the node controller 140 sends the target data from the memory 130 to the node 200, and updates the data registration status of the entry in which information about the target data in the directory 150 is registered. As a result of the update, in addition to the plurality of bits for which “1” has been set until then, the node 200
The bit of the registration status corresponding to is also "1" (steps 316, 314, 315).

【0025】(9)ステップ316の判定で、データ登
録状況のビットに“1”が立っているビットが1つだけ
であった場合、すなわち、対象データを登録しているキ
ャッシュメモリを有するノードが1つのノードのみであ
った場合、ノードコントローラ140は、“1”が立っ
ているビットに対応するノードに対してキャッシュ一致
制御要求を発行する。これにより、対象ノードでキャッ
シュ一致説明が行われる(ステップ317)。
(9) If it is determined in step 316 that there is only one bit for which the data registration status is "1", that is, if the node having the cache memory in which the target data is registered is If there is only one node, the node controller 140 issues a cache matching control request to the node corresponding to the bit for which "1" is set. As a result, the cache coincidence description is performed at the target node (step 317).

【0026】(10)他のノードでキャッシュ一致制御が
実行された結果、キャッシュメモリに対象データがある
か否か、すなわち、他ノードに登録されている対象デー
タが有効であるか無効であるかを判定し、無効であった
場合、ノードコントローラ140は、メモリ130から
対象データをノード200に送り、ディレクトリ150
の対象データに関する情報が登録されているエントリの
データ登録状況を更新する。更新した結果、ノード20
0に対応したビットは“1”となり、キャッシュ一致制
御を実行したノードに対応したビットはクリアされる
(ステップ318〜320)。
(10) As a result of the cache matching control being executed by another node, whether or not there is target data in the cache memory, that is, whether the target data registered in the other node is valid or invalid. If it is invalid, the node controller 140 sends the target data from the memory 130 to the node 200, and the directory 150
Update the data registration status of the entry in which the information about the target data of is registered. As a result of updating, node 20
The bit corresponding to 0 becomes "1", and the bit corresponding to the node that has executed the cache matching control is cleared (steps 318 to 320).

【0027】(11)ステップ318の判定で、他ノード
に登録されている対象データが有効であった場合、その
他ノードに登録されている対象データが変更されている
か否かを判定し、変更されていなかった場合、ノードコ
ントローラ140は、メモリ130から対象データをノ
ード200に送り、ディレクトリ150の対象データに
関する情報が登録されているエントリのデータ登録状況
を更新する。更新した結果、ノード200に対応したビ
ットと、キャッシュ一致制御を実行したノードに対応し
たビットとが“1”となる(ステップ321、314、
315)。
(11) If the target data registered in the other node is valid in the judgment of step 318, it is judged whether or not the target data registered in the other node is changed, and the target data is changed. If not, the node controller 140 sends the target data from the memory 130 to the node 200, and updates the data registration status of the entry in which information regarding the target data in the directory 150 is registered. As a result of the update, the bit corresponding to the node 200 and the bit corresponding to the node that has executed the cache matching control become "1" (steps 321, 314,
315).

【0028】(12)ステップ321の判定で、他ノード
に登録されている対象データが変更されていた場合、変
更された対象データは、キャッシュ一致制御を実行した
ノードのキャッシュメモリからメモリ130とノード2
00とに送られる。ノードコントローラ140は、ディ
レクトリ150の対象データに関する情報が登録されて
いるエントリのデータ登録状況を更新する。更新した結
果、ノード200に対応したビットが“1”となり、キ
ャッシュ一致制御を実行したノードに対応したビットは
クリアされる(ステップ322、323)。
(12) If it is determined in step 321 that the target data registered in the other node has been changed, the changed target data is stored in the memory 130 and the node from the cache memory of the node that executed the cache matching control. Two
00 and sent. The node controller 140 updates the data registration status of the entry in which information about the target data in the directory 150 is registered. As a result of the update, the bit corresponding to the node 200 becomes "1", and the bit corresponding to the node that has executed the cache matching control is cleared (steps 322 and 323).

【0029】図4は他のノードからのInvalidate Tx が
入力されたときのシステムの動作を示す図、図5は他の
ノードからのInvalidate Tx が入力されたときのノード
の処理動作を説明するフローチャートであり、次に、図
4を参照しながら、図5に示すフローを説明する。
FIG. 4 is a diagram showing the operation of the system when Invalidate Tx is input from another node, and FIG. 5 is a flowchart explaining the processing operation of the node when Invalidate Tx is input from another node. Then, the flow shown in FIG. 5 will be described with reference to FIG.

【0030】(1)ノードコントローラ140は、ノー
ド100のメモリ130のデータに対するInvalidate T
x を他のノードから受け付けると、ディレクトリ150
を参照する(ステップ500、501)。
(1) The node controller 140 uses the Invalidate T for the data in the memory 130 of the node 100.
If x is accepted from another node, the directory 150
(Steps 500 and 501).

【0031】(2)ディレクトリ150を参照した結
果、対象データのアドレスがディレクトリ150に登録
されているか否かを判定し、登録されていなかった場
合、ノードコントローラ140は、自ノード100のキ
ャッシュメモリ110、111の内容を確認する(ステ
ップ502、503)。
(2) As a result of referring to the directory 150, it is determined whether or not the address of the target data is registered in the directory 150. If the address is not registered, the node controller 140 causes the cache memory 110 of its own node 100. , 111 are confirmed (steps 502 and 503).

【0032】(3)キャッシュメモリ110、111の
内容を確認した結果、キャッシュメモリに対象データが
登録されているか否かを判定し、登録されていなかった
場合、対象データを無効化するための処理は不要とする
(ステップ504、505)。
(3) As a result of checking the contents of the cache memories 110 and 111, it is determined whether or not the target data is registered in the cache memory. If not, the process for invalidating the target data Is unnecessary (steps 504 and 505).

【0033】(4)ステップ504の判定で、キャッシ
ュメモリ110、111の何れかに対象データが登録さ
れていた場合、そのデータが変更されているか否かを判
定し、変更されていなかった場合、ノードコントローラ
140は、キャッシュメモリ内の対象データを無効化す
る(ステップ506、508)。
(4) In step 504, if the target data is registered in any of the cache memories 110 and 111, it is determined whether the data has been changed, and if it has not been changed, The node controller 140 invalidates the target data in the cache memory (steps 506 and 508).

【0034】(5)ステップ506の判定で、キャッシ
ュメモリ110、111の何れかに対象データが登録さ
れていたデータが変更されていた場合、ノードコントロ
ーラ140は、キャッシュメモリ内の最新データをメモ
リ130に書き戻し、キャッシュメモリ内の対象データ
を無効化する(ステップ507、508)。
(5) If it is determined in step 506 that the data in which the target data is registered in either the cache memory 110 or 111 has been changed, the node controller 140 uses the latest data in the cache memory as the memory 130. And the target data in the cache memory is invalidated (steps 507 and 508).

【0035】(6)ステップ502の判定で、対象デー
タのアドレスがディレクトリ150に登録されていた場
合、ノードコントローラ140は、ディレクトリに登録
されている対象データの登録状況を参照し、対象データ
のデータ登録状況のビットに“1”が立っているものが
あった場合、データ登録状況のビットに“1”が立って
いるものが1つだけであるか否かを判定する(ステップ
509、510)。
(6) If it is determined in step 502 that the address of the target data is registered in the directory 150, the node controller 140 refers to the registration status of the target data registered in the directory and refers to the data of the target data. If there is a bit in which the registration status is set to "1", it is determined whether there is only one bit in which the data registration status is set to "1" (steps 509 and 510). .

【0036】(7)ステップ509の判定で、データ登
録状況のビットに“1”が立っているものが1つだけで
なかった場合、すなわち、“1”が立っているビットが
複数あった場合、システムは、図4に示すように動作す
る。すなわち、ノードコントローラ140は、対象デー
タを登録しているノード(ノード1・ノードn)に対し、
対象データを無効化するよう指示を出し、対象データに
関する情報が登録されているエントリのデータ登録状況
を更新する。更新した結果、対象データの登録状況は、
全てのビットが“0”となる(ステップ511、51
2)。
(7) When it is determined in step 509 that only one bit of the data registration status has "1" set, that is, when there are a plurality of bits having "1" set. , The system operates as shown in FIG. That is, the node controller 140, for the node (node 1 / node n) that has registered the target data,
An instruction is issued to invalidate the target data, and the data registration status of the entry in which the information regarding the target data is registered is updated. As a result of updating, the registration status of the target data is
All bits become "0" (steps 511, 51)
2).

【0037】(8)ステップ509の判定で、データ登
録状況のビットに“1”が立っているものが1つだけで
あった場合、すなわち、対象データを登録しているキャ
ッシュメモリを有するノードが1つのノードのみだった
場合、ノードコントローラ140は、“1”が立ってい
るビットに対応するノードに対し、対象データを無効化
するよう指示を出す。対象データの無効化指示を受けた
ノードのノードコントローラは、キャッシュメモリの内
容を確認する(ステップ513)。
(8) If it is determined in step 509 that only one bit of the data registration status has "1" set, that is, if the node having the cache memory in which the target data is registered is If there is only one node, the node controller 140 gives an instruction to invalidate the target data to the node corresponding to the bit for which "1" is set. The node controller of the node that has received the instruction to invalidate the target data confirms the contents of the cache memory (step 513).

【0038】(9)対象データの無効化指示を受けたノ
ードのノードコントローラは、キャッシュメモリの内容
を確認した結果、対象データが変更されているか否かを
判定し、変更されていなかった場合、自ノード内のキャ
ッシュメモリ内の対象データを無効化する。一方、ノー
ド100内のノードコントローラ140は、ディレクト
リ150の対象データに関する情報が登録されているエ
ントリのデータ登録状況を更新する。更新した結果、デ
ータ登録状況の全てのビットが“0”となる(ステップ
514、516、517)。
(9) As a result of checking the contents of the cache memory, the node controller of the node that has received the instruction to invalidate the target data determines whether the target data has been changed. If the target data has not been changed, Invalidates the target data in the cache memory in the local node. On the other hand, the node controller 140 in the node 100 updates the data registration status of the entry in which the information regarding the target data in the directory 150 is registered. As a result of updating, all bits of the data registration status become "0" (steps 514, 516, 517).

【0039】(10)ステップ514の判定で、キャッシ
ュメモリの内容を確認した結果、対象データが変更され
ていた場合、ノードコントローラ対象データの無効化指
示を受けたノードのノードコントローラは、キャッシュ
メモリ内の最新データをノード100のメモリ130に
書き戻し、自ノードのキャッシュメモリ内の対象データ
を無効化する。一方、ノード100内のノードコントロ
ーラ140は、ディレクトリ150の対象データに関す
る情報が登録されているエントリのデータ登録状況を更
新する。更新した結果、データ登録状況の全てのビット
が“0”となる(ステップ515〜517)。
(10) If the target data has been changed as a result of checking the contents of the cache memory in the determination of step 514, the node controller of the node that has received the instruction to invalidate the target data of the node controller stores in the cache memory. The latest data of is written back to the memory 130 of the node 100, and the target data in the cache memory of the own node is invalidated. On the other hand, the node controller 140 in the node 100 updates the data registration status of the entry in which the information regarding the target data in the directory 150 is registered. As a result of updating, all bits of the data registration status become "0" (steps 515 to 517).

【0040】次に、他のノードからRead and Invalidat
e Txが入力された場合の動作を、図1を参照して説明す
る。Read and Invalidate Txは、前述までに説明したRe
ad Tx と、Invalidate Tx との両方の動作を要求するTx
である。
Next, from another node, Read and Invalidat
The operation when e Tx is input will be described with reference to FIG. Read and Invalidate Tx is the Re
Tx that requires both ad Tx and Invalidate Tx behavior
Is.

【0041】いま、ノード200内のプロセッサからノ
ード100のメモリ130に対するRead and Invalidat
e Txがノード100に入力されると、このTxによる対象
データは、前述で説明したRead Tx が入力されたときの
動作と同様にして、ノード200へ送られる。その際、
ノードコントローラ140は、対象データを登録してい
たキャッシュメモリに対し無効化要求を発行し、ディレ
クトリ150の対象データに関する情報が登録されてい
るエントリのデータ登録状況を更新する。更新した結
果、ノード200に対応したビットのみが“1"とな
り、他のビットはクリアされる。
Now, the processor in the node 200 reads and invalidates the memory 130 of the node 100.
When e Tx is input to the node 100, the target data by this Tx is sent to the node 200 in the same manner as the operation when Read Tx described above is input. that time,
The node controller 140 issues an invalidation request to the cache memory in which the target data has been registered, and updates the data registration status of the entry in the directory 150 in which the information regarding the target data is registered. As a result of the update, only the bit corresponding to the node 200 becomes "1", and the other bits are cleared.

【0042】次に、他のノードからWrite Back Tx が入
力された場合の動作を、図1を参照して説明する。
Next, the operation when Write Back Tx is input from another node will be described with reference to FIG.

【0043】いま、ノード200内のプロセッサからノ
ード100のメモリ130に対するWrite Back Tx がノ
ード100に入力されると、このTxによる対象データが
ノード200のキャッシュメモリからノード100のメ
モリ130に書き戻される。そして、ノードコントロー
ラ140は、ディレクトリ150の対象データに関する
情報のデータ登録状況を更新する。更新した結果、ノー
ド200に対応するビットがクリアされる。Write Back
Tx によって書き戻されるデータは、他のノードのキャ
ッシュメモリに登録されていることはないため、そのデ
ータの登録状況は、全てのビットが“0”となる。
When a Write Back Tx for the memory 130 of the node 100 is input to the node 100 from the processor in the node 200, the target data by this Tx is written back from the cache memory of the node 200 to the memory 130 of the node 100. . Then, the node controller 140 updates the data registration status of the information regarding the target data in the directory 150. As a result of the update, the bit corresponding to the node 200 is cleared. Write Back
Since the data written back by Tx is not registered in the cache memory of another node, all bits are "0" in the registration status of the data.

【0044】図6は自ノードから自ノードのメモリに対
するRead Tx(あるいは、Read andInvalidate Tx)が入
力された場合のノードの処理動作を説明するフローチャ
ートであり、次に、図6に示すフローを説明する。
FIG. 6 is a flowchart for explaining the processing operation of the node when Read Tx (or Read and Invalidate Tx) is input from the own node to the memory of the own node. Next, the flow shown in FIG. 6 will be explained. To do.

【0045】通常、自ノード100内のプロセッサから
自ノードメモリ130に対してアクセスが行われた場
合、ノードコントローラ140は、ディレクトリ150
に対する対象データのアドレス登録や、データ登録状況
の更新を行わない。しかし、自ノード100内のプロセ
ッサから自ノードのメモリ130に対してRead Tx また
はRead and Invalidate Txが発行されたときに、対象デ
ータのアドレスがディレクトリ150に登録されてお
り、Invalidate Tx やWrite Back Tx によって対象デー
タのデータ登録状況のビットが全て“0”であった場
合、ノードコントローラ140は、メモリ130からデ
ータを読み出し、対象データのデータ登録状況を更新す
る。更新した結果、ノード100に対応したビットのみ
が“1”とされる。
Normally, when the processor in the own node 100 accesses the own node memory 130, the node controller 140 uses the directory 150.
Does not register the address of the target data or update the data registration status. However, when the processor in the own node 100 issues Read Tx or Read and Invalidate Tx to the memory 130 of the own node, the address of the target data is registered in the directory 150, and Invalidate Tx and Write Back Tx are registered. If all the bits of the data registration status of the target data are “0”, the node controller 140 reads the data from the memory 130 and updates the data registration status of the target data. As a result of the update, only the bit corresponding to the node 100 is set to "1".

【0046】前述したように、自ノードメモリ130に
対するRead Tx またはRead and Invalidate Txの入力時
に、ディレクトリ150に対象データが登録されていた
場合、ノードコントローラ140は、対象データのデー
タ登録状況を更新する。従って、他のノードからノード
100のメモリ130に対するRead Tx またはRead and
Invalidate Txが入力された際に、対象データがディレ
クトリ150に登録されており、対象データのデータ登
録状況が全て“0”であった場合、対象データは、他の
ノードのキャッシュメモリにも、自ノード100内のキ
ャッシュメモリ120、121にも登録されていないこ
とになる。そのため、ノードコントローラ140は、ノ
ード100内におけるキャッシュ一致制御を実行せず
に、対象データをメモリ130から送出する。
As described above, when the target data is registered in the directory 150 when the Read Tx or Read and Invalidate Tx is input to the own node memory 130, the node controller 140 updates the data registration status of the target data. . Therefore, Read Tx or Read and Read from the other node to the memory 130 of the node 100 is performed.
When the Invalidate Tx is input, if the target data is registered in the directory 150 and the data registration statuses of the target data are all “0”, the target data is also stored in the cache memory of other nodes. It is not registered in the cache memories 120 and 121 in the node 100. Therefore, the node controller 140 sends the target data from the memory 130 without executing the cache matching control in the node 100.

【0047】自ノードメモリに対するRead Tx 、あるい
は、Read and Invalidate Txが入力された場合のノード
の処理は、前述のように行われる。その処理フローは、
図6に示すように、図3により説明したものと基本的に
同一であり、図3のフローと異なるのは、図3における
ステップ305、306、309、311の処理が不要
である点、ステップ304の判定で、キャッシュ一致制
御を実行した結果、キャッシュメモリ110、111の
何れかに対象データが登録されていなかった場合に、ス
テップ305の処理ではなく、ステップ308の処理に
移行する点、及び、ステップ315、320、323で
の処理におけるデータ要求元ノードを自ノードと読み替
えたステップ601〜603の処理が行われる点であ
る。
The processing of the node when Read Tx or Read and Invalidate Tx for the own node memory is input is performed as described above. The processing flow is
As shown in FIG. 6, it is basically the same as that described with reference to FIG. 3, and is different from the flow of FIG. 3 in that the processing of steps 305, 306, 309, and 311 in FIG. 3 is unnecessary. As a result of executing the cache matching control in the determination of 304, if the target data is not registered in any of the cache memories 110 and 111, the process shifts to the process of step 308 instead of the process of step 305, and That is, the processing of steps 601 to 603 in which the data request source node in the processing of steps 315, 320, and 323 is replaced with its own node is performed.

【0048】次に、自ノードからWrite Back Tx が入力
された場合の動作を、図1を参照して説明する。
Next, the operation when Write Back Tx is input from the self node will be described with reference to FIG.

【0049】自ノードメモリ130に対するWrite Back
Txが入力されると、ノードコントローラ140は、デ
ィレクトリ150を参照する。ディレクトリ150を参
照した結果、対象データのアドレスがディレクトリに登
録されていなかった場合、ノードコントローラ140
は、対象データをメモリ130に書き戻す。また、ディ
レクトリ150を参照した結果、対象データのアドレス
がディレクトリに登録されていた場合、対象データのデ
ータ登録状況は、必ず自ノードに対応するビットのみが
“1”となっているので、ノードコントローラ140
は、対象データをメモリ130に書き戻し、ディレクト
リ150を更新する。更新した結果、対象データのデー
タ登録状況は、全てのビットが“0”となる。
Write Back for own node memory 130
When Tx is input, the node controller 140 refers to the directory 150. As a result of referring to the directory 150, if the address of the target data is not registered in the directory, the node controller 140
Writes the target data back to the memory 130. Also, as a result of referring to the directory 150, if the address of the target data is registered in the directory, the data registration status of the target data is that only the bit corresponding to the own node is always “1”. 140
Writes the target data back to the memory 130 and updates the directory 150. As a result of the update, all bits of the data registration status of the target data are “0”.

【0050】図7はディレクトリがオーバーフローする
場合の処理動作を説明する図であり、次に、これについ
て説明する。この処理は、ノード200からノード10
0のメモリに対して、Read Tx 、あるいは、Read and I
nvalidate Txが入力したとき、対象アドレスがディレク
トリ150に登録されておらず、ディレクトリ150の
対象アドレスと同じインデックスのエントリの全てが使
用されている場合二発制するエントリの上書きの処理で
ある。図示例は、アドレスAのデータに関する情報が登
録されているエントリを、アドレスBのデータに関する
情報により上書きする場合のれいである。
FIG. 7 is a diagram for explaining the processing operation when the directory overflows. Next, this will be described. This process is performed from node 200 to node 10.
Read Tx or Read and I for 0 memory
When nvalidate Tx is input, when the target address is not registered in the directory 150 and all the entries of the same index as the target address of the directory 150 are used, it is the process of overwriting the entry that is controlled twice. The illustrated example is a case where an entry in which information about data at address A is registered is overwritten by information about data at address B.

【0051】いま、他のノードからノード100のメモ
リ130のアドレスBに対するReadTx 、あるいは、Rea
d and Invalidate Txが入力されたとき、ディレクトリ
150にアドレスBが登録されておらず、アドレスBと
同じインデックスの空きエントリがなかったものとす
る。この場合、ノードコントローラ140は、そのイン
デックスが持つ4個のエントリの中から上書きされるエ
ントリ、例えば、アドレスAが登録されているエントリ
を選択する。そして、キャッシュの一貫性を保証するた
めに、選択されたエントリに登録されているアドレスA
のデータが無効化される。このため、ノードコントロー
ラ140は、アドレスAのデータ登録状況を参照し、ア
ドレスAのデータを登録しているノードに対し、アドレ
スAのデータの無効化要求を発行した後、アドレスBに
対するRead Tx 、あるいは、Read Invalidate Txを処理
し、アドレスAの登録されていたエントリにアドレスB
に関する情報を登録する。
Now, ReadTx or Rea for the address B of the memory 130 of the node 100 from another node
When d and Invalidate Tx is input, it is assumed that the address B is not registered in the directory 150 and there is no empty entry with the same index as the address B. In this case, the node controller 140 selects the entry to be overwritten, for example, the entry in which the address A is registered, from the four entries of the index. Then, in order to guarantee the coherency of the cache, the address A registered in the selected entry is
Data is invalidated. Therefore, the node controller 140 refers to the data registration status of the address A, issues a request for invalidating the data of the address A to the node that has registered the data of the address A, and then reads Read Tx for the address B, Alternatively, the Read Invalidate Tx is processed, and the entry registered at the address A is added to the address B.
Register information about.

【0052】次に、図1における命令コード判定部にお
ける命令コードの判定について説明する。
Next, the determination of the instruction code by the instruction code determination section in FIG. 1 will be described.

【0053】ノードコントローラ140内にある命令コ
ード判定部160は、メモリに対するRead Tx を受けた
際、対象データが命令コードであるかどうかを判定す
る。一般に、システムが命令コードを変更することのな
いアーキテクチャを採用している場合、対象データが命
令コードであれば、キャッシュメモリに登録されていて
も、変更されていることはあり得ない。従って、読み出
しを要求されたデータが命令コードであった場合、対象
データの登録状況がどうであれ、ノードコントローラ1
40は、キャッシュ一致制御を実行することなく、対象
データをメモリ130から送出する。
The instruction code determining section 160 in the node controller 140 determines whether the target data is an instruction code when receiving the Read Tx for the memory. In general, when the system adopts an architecture that does not change the instruction code, if the target data is the instruction code, it cannot be changed even if it is registered in the cache memory. Therefore, if the data requested to be read is an instruction code, no matter what the registration status of the target data is, the node controller 1
The reference numeral 40 sends the target data from the memory 130 without executing the cache matching control.

【0054】前述した本発明の実施形態によれば、各ノ
ードが、他ノードに登録されているデータのアドレス
と、対象データを登録しているノードの情報とを登録す
るためのディレクトリを有することにより、キャッシュ
一致のために発生する、対象データを登録していないノ
ードに対するノード間アクセスと、対象データを登録し
ていないノード内でのキャッシュ一致制御とを削減する
ことができる。
According to the above-described embodiment of the present invention, each node has a directory for registering the address of the data registered in the other node and the information of the node registering the target data. As a result, it is possible to reduce the inter-node access to the node in which the target data is not registered and the cache match control in the node in which the target data is not registered, which occurs due to the cache match.

【0055】また、読み出しを要求されたデータが命令
コードであるか否か判定する手段を有していることによ
り、変更されることのないデータに対するキャッシュ一
致制御を削減することができる。
Further, by providing the means for judging whether or not the data requested to be read is the instruction code, it is possible to reduce the cache matching control for the data which is not changed.

【0056】[0056]

【発明の効果】以上説明したように本発明によれば、複
数のノードにより構成されるマルチプロセッサシステム
において、他のノードに登録されたデータの読み出しが
要求された際、対象データを登録していないノードでの
キャッシュ一致制御と、それによるノード間アクセスを
不要とし、また、他のノードに登録されていないデータ
の読み出しが要求された際、不要な自ノード内キャッシ
ュ一致制御を不要とし、キャッシュメモリの一致制御処
理によるノード相互間のアクセスを削減し、処理を高速
化することができる。
As described above, according to the present invention, in a multiprocessor system composed of a plurality of nodes, when the reading of the data registered in another node is requested, the target data is registered. It eliminates the need for cache matching control in a node that does not exist and the access between nodes due to that, and when the data that is not registered in another node is requested to be read, unnecessary cache matching control in its own node is not needed It is possible to reduce the access between the nodes by the coincidence control processing of the memory and speed up the processing.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明の一実施形態によるマルチコンピュータ
システムの構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a multi-computer system according to an embodiment of the present invention.

【図2】ディレクトリ内に登録されるデータに関する情
報について説明する図である。
FIG. 2 is a diagram illustrating information about data registered in a directory.

【図3】他のノードからRead Tx が入力されたときのノ
ードの処理動作を説明するフローチャートである。
FIG. 3 is a flowchart illustrating a processing operation of a node when Read Tx is input from another node.

【図4】他のノードからのInvalidate Tx が入力された
ときのシステムの動作を示す図である。
FIG. 4 is a diagram showing an operation of the system when Invalidate Tx is input from another node.

【図5】他のノードからのInvalidate Tx が入力された
ときのノードの処理動作を説明するフローチャートであ
る。
FIG. 5 is a flowchart illustrating a processing operation of a node when Invalidate Tx is input from another node.

【図6】自ノードから自ノードのメモリに対するRead T
x またはRead and InvalidateTxが入力された場合のノ
ードの処理動作を説明するフローチャートである。
FIG. 6 Read T from the own node to the memory of the own node
9 is a flowchart illustrating a processing operation of a node when x or Read and Invalidate Tx is input.

【図7】ディレクトリがオーバーフローする場合の処理
動作を説明する図である。
FIG. 7 is a diagram illustrating a processing operation when a directory overflows.

【符号の説明】[Explanation of symbols]

100、200 ノード 110、111、210、211 キャッシュメモリ 120、121、220、221 プロセッサ 130、230 メモリ 140、240 ノードコントローラ 150、250 ディレクトリ(Dir) 160、260 命令コード判定部 300 クロスバースイッチ 100, 200 nodes 110, 111, 210, 211 cache memory 120, 121, 220, 221 processors 130, 230 memory 140, 240 node controller 150, 250 directory (Dir) 160, 260 instruction code determination unit 300 crossbar switch

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 15/16 645 G06F 15/16 645 (72)発明者 中島 敦 神奈川県海老名市下今泉810番地 株式会 社日立製作所インターネットプラットフォ ーム事業部内 (72)発明者 對馬 雄次 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B005 JJ01 KK03 KK13 LL01 MM01 PP11 PP21 5B045 BB16 DD12 ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 7 Identification code FI theme code (reference) G06F 15/16 645 G06F 15/16 645 (72) Inventor Atsushi Nakajima 810 Shimoimaizumi, Ebina, Kanagawa Prefecture Stock Association Company Hitachi Ltd. Internet Platform Division (72) Inventor Yuji Kuruma 1-280 Higashi Koikekubo, Kokubunji City, Tokyo F-Term (Central), Central Research Laboratory, Hitachi, Ltd. (reference) 5B005 JJ01 KK03 KK13 LL01 MM01 PP11 PP21 5B045 BB16 DD12

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 それぞれがキャッシュメモリを有する1
または複数のプロセッサと該プロセッサにより共有され
る1または複数のメモリとを有する複数のノード装置を
備え、前記複数のノード装置が接続手段により相互に接
続されて構成されたマルチプロセッサシステムにおい
て、 前記ノード装置は、他のノード装置のキャッシュメモリ
に登録された自ノード装置内のメモリのデータに関する
情報を登録するディレクトリと、前記ディレクトリに登
録された情報に基づいてキャッシュ一致制御が必要なノ
ード装置を特定する手段とを備え、 前記ディレクトリは、他のノード装置のキャッシュメモ
リに登録されたデータのアドレスと、前記他のノード装
置のキャッシュメモリに登録されたデータが登録されて
いるキャッシュメモリを有するノード装置を特定する情
報とを有する複数エントリからなることを特徴とするマ
ルチプロセッサシステム。
1. One each having a cache memory
Alternatively, in a multiprocessor system including a plurality of node devices having a plurality of processors and one or a plurality of memories shared by the processors, the plurality of node devices being mutually connected by a connecting means, the node The device identifies a directory for registering information about the data in the memory in its own node device registered in the cache memory of another node device, and a node device requiring cache matching control based on the information registered in the directory. A node device having a cache memory in which the address of the data registered in the cache memory of the other node device and the data registered in the cache memory of the other node device are registered. Information that identifies the Multiprocessor system, characterized in that.
【請求項2】 前記ノード装置は、前記ディレクトリの
前記エントリの内容を消去する手段と、前記エントリに
登録されていたデータを登録しているキャッシュメモリ
を有するノード装置に対し、前記キャッシュメモリに登
録している前記データを無効化する手段とを有すること
を特徴とする請求項1記載のマルチプロセッサシステ
ム。
2. The node device has means for erasing the contents of the entry of the directory, and a node device having a cache memory in which data registered in the entry is registered, registered in the cache memory. 2. The multiprocessor system according to claim 1, further comprising means for invalidating the data that is being processed.
【請求項3】 前記ノード装置は、前記ディレクトリに
登録されているデータに対する無効化要求に応じて、前
記データを登録しているキャッシュメモリを有するノー
ド装置に対して、前記キャッシュメモリに登録している
前記データを無効化する手段を有することを特徴とする
請求項1記載のマルチプロセッサシステム。
3. The node device, in response to an invalidation request for data registered in the directory, registers the data in the cache memory with respect to the node device having the cache memory. 2. The multiprocessor system according to claim 1, further comprising means for invalidating the existing data.
【請求項4】 前記ノード装置は、自ノード装置のプロ
セッサが自ノード装置のメモリのデータ読み出しを要求
した際、自ノード装置のディレクトリにそのデータのア
ドレスが登録されており、かつ、そのデータを登録して
いるキャッシュメモリを有するノード装置がない場合
に、自ノード装置のキャッシュメモリがそのデータを登
録していることを前記ディレクトリに登録することを特
徴とする請求項1記載のマルチプロセッサシステム。
4. The node device, when the processor of the own node device requests data read from the memory of the own node device, the address of the data is registered in the directory of the own node device, and the data is stored in the directory of the own node device. 2. The multiprocessor system according to claim 1, wherein when there is no node device having a registered cache memory, the fact that the cache memory of the own node device has registered the data is registered in the directory.
【請求項5】 前記ノード装置は、自ノードメモリのデ
ータ読み出しを要求されたとき、そのデータが命令コー
ドであるか否かを判定し、命令コードでない場合に、キ
ャッシュ一致制御を実行することを特徴とする請求項1
記載のマルチプロセッサシステム。
5. The node device, when requested to read data from its own node memory, determines whether or not the data is an instruction code, and if not, executes cache match control. Claim 1 characterized by
The described multiprocessor system.
【請求項6】 複数のノード装置が接続手段により相互
に接続されて構成されたマルチプロセッサシステムにお
けるノード装置において、 前記ノード装置は、キャッシュメモリを有する1または
複数のプロセッサと該プロセッサにより共有される1ま
たは複数のメモリと、他のノード装置のキャッシュメモ
リに登録された自ノード装置内のメモリのデータに関す
る情報を登録するディレクトリと、前記ディレクトリに
登録された情報に基づいてキャッシュ一致制御が必要な
ノード装置を特定する手段とを有し、 前記ディレクトリは、他のノード装置のキャッシュメモ
リに登録されたデータのアドレスと、前記他のノード装
置のキャッシュメモリに登録されたデータが登録されて
いるキャッシュメモリを有するノード装置を特定する情
報とを有する複数エントリからなることを特徴とするノ
ード装置。
6. A node device in a multiprocessor system configured by connecting a plurality of node devices to each other by connecting means, wherein the node device is shared by one or a plurality of processors having a cache memory and the processor. One or a plurality of memories, a directory for registering information about the data of the memory in the own node device registered in the cache memory of another node device, and cache matching control based on the information registered in the directory are required. Means for identifying a node device, wherein the directory is a cache in which the address of the data registered in the cache memory of the other node device and the data registered in the cache memory of the other node device are registered. Information that identifies the node device that has the memory Node device characterized by comprising a plurality entries that.
JP2002008917A 2002-01-17 2002-01-17 Multiprocessor system and node device Pending JP2003216596A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002008917A JP2003216596A (en) 2002-01-17 2002-01-17 Multiprocessor system and node device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002008917A JP2003216596A (en) 2002-01-17 2002-01-17 Multiprocessor system and node device

Publications (1)

Publication Number Publication Date
JP2003216596A true JP2003216596A (en) 2003-07-31

Family

ID=27647052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002008917A Pending JP2003216596A (en) 2002-01-17 2002-01-17 Multiprocessor system and node device

Country Status (1)

Country Link
JP (1) JP2003216596A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179528A (en) * 2005-12-28 2007-07-12 Internatl Business Mach Corp <Ibm> Method, computer program product, computer program, and information handling system (system and method for default data forwarding coherent caching agent)
JP2007207223A (en) * 2006-01-30 2007-08-16 Internatl Business Mach Corp <Ibm> Data processing system, method and memory controller for handling flush operation in data processing system having multiple coherency domains
JP2012508425A (en) * 2008-12-29 2012-04-05 インテル コーポレイション Poison bit error check code technique
JP5435132B2 (en) * 2010-07-12 2014-03-05 富士通株式会社 Information processing system

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007179528A (en) * 2005-12-28 2007-07-12 Internatl Business Mach Corp <Ibm> Method, computer program product, computer program, and information handling system (system and method for default data forwarding coherent caching agent)
JP2007207223A (en) * 2006-01-30 2007-08-16 Internatl Business Mach Corp <Ibm> Data processing system, method and memory controller for handling flush operation in data processing system having multiple coherency domains
JP2012508425A (en) * 2008-12-29 2012-04-05 インテル コーポレイション Poison bit error check code technique
JP5435132B2 (en) * 2010-07-12 2014-03-05 富士通株式会社 Information processing system

Similar Documents

Publication Publication Date Title
US7234029B2 (en) Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US5623632A (en) System and method for improving multilevel cache performance in a multiprocessing system
US6925537B2 (en) Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants
US6640287B2 (en) Scalable multiprocessor system and cache coherence method incorporating invalid-to-dirty requests
US5706463A (en) Cache coherent computer system that minimizes invalidation and copyback operations
US6640289B2 (en) Software controlled cache line ownership affinity enhancements in a multiprocessor environment
JP4594900B2 (en) Processor, data processing system, and method for initializing a memory block
US20050188159A1 (en) Computer system supporting both dirty-shared and non dirty-shared data processing entities
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US20060143406A1 (en) Predictive early write-back of owned cache blocks in a shared memory computer system
JPH0561770A (en) Coherent means of data processing system
JP2000250883A (en) Method and system for avoiding loss of data caused by cancel of transaction in unequal memory access system
US7051163B2 (en) Directory structure permitting efficient write-backs in a shared memory computer system
JPH11328026A (en) Cache coherency protocol having hovering(h) and recent(r) states
EP1298532A2 (en) Processor and method of arithmetic processing thereof
US20040215891A1 (en) Adaptive memory access speculation
US7000080B2 (en) Channel-based late race resolution mechanism for a computer system
JPH06318174A (en) Cache memory system and method for performing cache for subset of data stored in main memory
US7669013B2 (en) Directory for multi-node coherent bus
US7725660B2 (en) Directory for multi-node coherent bus
JP3732397B2 (en) Cash system
JPH11272558A (en) Cache coherency protocol containing hr state
JP2003216596A (en) Multiprocessor system and node device