JP2000330965A - マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法 - Google Patents
マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法Info
- Publication number
- JP2000330965A JP2000330965A JP2000060374A JP2000060374A JP2000330965A JP 2000330965 A JP2000330965 A JP 2000330965A JP 2000060374 A JP2000060374 A JP 2000060374A JP 2000060374 A JP2000060374 A JP 2000060374A JP 2000330965 A JP2000330965 A JP 2000330965A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- node
- processor
- access
- command
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/25—Using a specific main memory architecture
- G06F2212/254—Distributed memory
- G06F2212/2542—Non-uniform memory access [NUMA] architecture
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
Abstract
(57)【要約】
【課題】メモリアクセスに関して、レイテンシを低減す
る。 【解決手段】ノードコントローラ100において、システ
ムバス107からのメモリアクセスリクエストが出、アク
セス対象のアドレスが判明すれば、ローカルスヌープ、
およびグローバルスヌープの結果の如何に拘らず、ACTV
コマンドをターゲットノードに送付し、ターゲットノー
ドにおいて、当該アドレスに対してRASアドレスのみの
入力を行う。ローカルスヌープおよびグローバルスヌー
プの結果対象アドレスへのアクセスが決定すれば、CAS
入力を行いデータアクセスを行う。
る。 【解決手段】ノードコントローラ100において、システ
ムバス107からのメモリアクセスリクエストが出、アク
セス対象のアドレスが判明すれば、ローカルスヌープ、
およびグローバルスヌープの結果の如何に拘らず、ACTV
コマンドをターゲットノードに送付し、ターゲットノー
ドにおいて、当該アドレスに対してRASアドレスのみの
入力を行う。ローカルスヌープおよびグローバルスヌー
プの結果対象アドレスへのアクセスが決定すれば、CAS
入力を行いデータアクセスを行う。
Description
【0001】
【発明の属する技術分野】本発明は、主記憶やキャッシ
ュにDRAMを用いた記憶素子を用いる構成のマルチプロセ
ッサシステムに係わり、特に記憶素子とのアクセス要求
からデータ到着までの時間(以下、メモリアクセスレイ
テンシと呼ぶ)を短縮する機構、およびそのためのメモ
リアクセストランザクションの転送方法に関する。
ュにDRAMを用いた記憶素子を用いる構成のマルチプロセ
ッサシステムに係わり、特に記憶素子とのアクセス要求
からデータ到着までの時間(以下、メモリアクセスレイ
テンシと呼ぶ)を短縮する機構、およびそのためのメモ
リアクセストランザクションの転送方法に関する。
【0002】
【従来の技術】近年のプロセッサの動作速度は非常に高
く、外部のメモリとの速度差を埋め合わせるために、通
常内蔵のキャッシュメモリを備えている。内蔵キャッシ
ュにヒットしているとプロセッサは効率良く命令実行を
行い高い性能を維持できる。この内蔵キャッシュに命令
実行に必要な命令あるいはデータが存在せずキャッシュ
ミスを起こす場合、プロセッサ外部のメモリをアクセス
するための時間(以下、メモリアクセスレイテンシと呼
ぶ)が長く、この時間はプロセッサでは有効に命令実行
を行えないため性能低下を引き起こす。
く、外部のメモリとの速度差を埋め合わせるために、通
常内蔵のキャッシュメモリを備えている。内蔵キャッシ
ュにヒットしているとプロセッサは効率良く命令実行を
行い高い性能を維持できる。この内蔵キャッシュに命令
実行に必要な命令あるいはデータが存在せずキャッシュ
ミスを起こす場合、プロセッサ外部のメモリをアクセス
するための時間(以下、メモリアクセスレイテンシと呼
ぶ)が長く、この時間はプロセッサでは有効に命令実行
を行えないため性能低下を引き起こす。
【0003】さらに、このメモリアクセスレイテンシ
は、マルチプロセッサ構成時には、メモリアクセスを行
う前にキャッシュミスの対象ラインが他プロセッサにキ
ャッシュされているかを調べる必要もあるため、一般に
シングルプロセッサ構成時よりもメモリレイテンシが増
大する傾向にあり、性能に対する影響も大きくなる。
は、マルチプロセッサ構成時には、メモリアクセスを行
う前にキャッシュミスの対象ラインが他プロセッサにキ
ャッシュされているかを調べる必要もあるため、一般に
シングルプロセッサ構成時よりもメモリレイテンシが増
大する傾向にあり、性能に対する影響も大きくなる。
【0004】プロセッサのシステムバスに複数のキャッ
シュを内蔵するプロセッサが結合されてプロセッサノー
ドを構成しており、ネットワークを介して複数のプロセ
ッサノードとメモリが結合されているようなマルチプロ
セッサシステムにおけるメモリアクセスの手順について
以下で説明する。
シュを内蔵するプロセッサが結合されてプロセッサノー
ドを構成しており、ネットワークを介して複数のプロセ
ッサノードとメモリが結合されているようなマルチプロ
セッサシステムにおけるメモリアクセスの手順について
以下で説明する。
【0005】(1)プロセッサで内蔵キャッシュミスを起
こし、当該アドレスをアクセスするためのメモリアクセ
スリクエストを生成する。
こし、当該アドレスをアクセスするためのメモリアクセ
スリクエストを生成する。
【0006】(2)メモリアクセスリクエストをメモリに
送るために、システムバスの使用権を得るためにバスの
調停に参加する。
送るために、システムバスの使用権を得るためにバスの
調停に参加する。
【0007】(3)システムバス使用権が得られれば、(1)
で生成したメモリアクセスリクエストをシステムバスに
送出する。この際、システムバスに結合されている他プ
ロセッサでは、メモリアクセスリクエストに含まれるア
ドレスのデータをキャッシングしていないかを調べ、メ
モリアクセスリクエストを出したプロセッサに結果を返
す。
で生成したメモリアクセスリクエストをシステムバスに
送出する。この際、システムバスに結合されている他プ
ロセッサでは、メモリアクセスリクエストに含まれるア
ドレスのデータをキャッシングしていないかを調べ、メ
モリアクセスリクエストを出したプロセッサに結果を返
す。
【0008】(4) (3)の結果、メモリアクセスを行う必
要があるならば、ネットワークにメモリアクセスリクエ
ストを送出する。ネットワークへの送出については、構
成によっては(2)と同様に使用権を得るための調停が必
要な場合がある。
要があるならば、ネットワークにメモリアクセスリクエ
ストを送出する。ネットワークへの送出については、構
成によっては(2)と同様に使用権を得るための調停が必
要な場合がある。
【0009】(5)メモリアクセスリクエストを送出した
プロセッサノード以外のノードでは、ネットワークから
当該リクエストを受け取り、当該ノード内のプロセッサ
が当該リクエストの対象アドレスのデータをキャッシュ
していないかを調べ、その結果をメモリアクセスリクエ
ストを送出したノードに通知する。
プロセッサノード以外のノードでは、ネットワークから
当該リクエストを受け取り、当該ノード内のプロセッサ
が当該リクエストの対象アドレスのデータをキャッシュ
していないかを調べ、その結果をメモリアクセスリクエ
ストを送出したノードに通知する。
【0010】(6)(5)の結果、メモリアクセスが可能であ
れば、メモリに対してメモリアクセスを行うために、RA
SアドレスとCASアドレスを順次入力し、データアクセス
を行う。
れば、メモリに対してメモリアクセスを行うために、RA
SアドレスとCASアドレスを順次入力し、データアクセス
を行う。
【0011】(7)(6)のデータアクセスの結果(リード系
リクエストであればデータ)をメモリアクセスリクエス
トを出したノードに通知し、当該ノード内ではプロセッ
サにも通知する。
リクエストであればデータ)をメモリアクセスリクエス
トを出したノードに通知し、当該ノード内ではプロセッ
サにも通知する。
【0012】メモリ先読み方式の説明 上記手順で行われるメモリアクセスにおいて、メモリア
クセスレイテンシによる性能低下をさけるために、従来
は(3)(5)で行われる他プロセッサでのキャッシュ状態の
検査よりも前から、(6)に含まれるデータ読み出しを行
ってデータ読み出しにかかる時間を隠蔽するメモリ先行
読み出し方式が取られてきた。このメモリ先読み方式に
は、データ読み出しを開始するタイミングによって以下
の方法が提案されている。
クセスレイテンシによる性能低下をさけるために、従来
は(3)(5)で行われる他プロセッサでのキャッシュ状態の
検査よりも前から、(6)に含まれるデータ読み出しを行
ってデータ読み出しにかかる時間を隠蔽するメモリ先行
読み出し方式が取られてきた。このメモリ先読み方式に
は、データ読み出しを開始するタイミングによって以下
の方法が提案されている。
【0013】米国特許第5778435号に示されている方法
(以下、第1の従来技術と呼ぶ)では、プロセッサ内蔵
のキャッシュにキャッシュミスが起きる前に、メモリア
クセスを開始する方法である。この方法では、内蔵キャ
ッシュミスのアドレス系列により、次に内蔵キャッシュ
ミスのアドレスを予測して使用する。
(以下、第1の従来技術と呼ぶ)では、プロセッサ内蔵
のキャッシュにキャッシュミスが起きる前に、メモリア
クセスを開始する方法である。この方法では、内蔵キャ
ッシュミスのアドレス系列により、次に内蔵キャッシュ
ミスのアドレスを予測して使用する。
【0014】米国特許第5987579号に示されている方法
(以下、第2の従来技術と呼ぶ)では、プロセッサ内蔵
のキャッシュにキャッシュアクセスミスが生じて、プロ
セッサバスにメモリアクセスのためのアドレスが送出さ
れると、当該アドレスをRASアドレスとCASアドレ
スに分割し、RASアドレスを受けるとキャッシュ状態
の検査結果を受ける前にメモリに出力する。CASアド
レスの出力をキャッシュ状態検査結果に応じて、出力す
る/しないの制御を行い、メモリへのデータアクセスの
制御を行う。
(以下、第2の従来技術と呼ぶ)では、プロセッサ内蔵
のキャッシュにキャッシュアクセスミスが生じて、プロ
セッサバスにメモリアクセスのためのアドレスが送出さ
れると、当該アドレスをRASアドレスとCASアドレ
スに分割し、RASアドレスを受けるとキャッシュ状態
の検査結果を受ける前にメモリに出力する。CASアド
レスの出力をキャッシュ状態検査結果に応じて、出力す
る/しないの制御を行い、メモリへのデータアクセスの
制御を行う。
【0015】
【発明が解決しようとする課題】上記の第1の従来技術
では、アドレス予測に基づいてデータの先読みを行うた
め、実際のキャッシュミス時のアドレスが予測したアド
レスが異なる場合には、予測に基づくデータのキャンセ
ルおよび実際のキャッシュミスに基づくアドレスによる
再読み出しが必要になるため、メモリのスループットを
浪費すると言う問題と、アドレス予測を行うため過去の
キャッシュミスのアドレス系列を記憶しておく必要と、
その系列から次のキャッシュミスアドレスを予測する機
構が必要であり複雑化を招くという問題がある。
では、アドレス予測に基づいてデータの先読みを行うた
め、実際のキャッシュミス時のアドレスが予測したアド
レスが異なる場合には、予測に基づくデータのキャンセ
ルおよび実際のキャッシュミスに基づくアドレスによる
再読み出しが必要になるため、メモリのスループットを
浪費すると言う問題と、アドレス予測を行うため過去の
キャッシュミスのアドレス系列を記憶しておく必要と、
その系列から次のキャッシュミスアドレスを予測する機
構が必要であり複雑化を招くという問題がある。
【0016】また、上記の第1の従来技術の問題とし
て、双方ともにメモリに対するアクセスが許可される前
にデータ読み出しを行うことがあげられる。同一のアド
レスに対する複数のメモリアクセスリクエストを処理す
る場合、リクエストの順序付けと、先読みしたデータの
順序付けの対応が複雑化し制御が困難になるという問題
もある。
て、双方ともにメモリに対するアクセスが許可される前
にデータ読み出しを行うことがあげられる。同一のアド
レスに対する複数のメモリアクセスリクエストを処理す
る場合、リクエストの順序付けと、先読みしたデータの
順序付けの対応が複雑化し制御が困難になるという問題
もある。
【0017】上記第2の従来技術では、キャッシュ状態
検査には全アドレスを必要とするため、RASアドレス
とCASアドレスに分割されたアドレスは全プロセッサ
に配信される必要があり、アドレスバスのビジー率が高
くなるという問題がある。
検査には全アドレスを必要とするため、RASアドレス
とCASアドレスに分割されたアドレスは全プロセッサ
に配信される必要があり、アドレスバスのビジー率が高
くなるという問題がある。
【0018】以上の問題点を踏まえて本発明の目的は、
メモリアクセスに関して、(1)メモリスループットを浪
費することなく、(2)リクエストの順序付けとデータの
順序付けの制御が単純であり、(3)アドレスパスのビジ
ー率を上げることなく、(4)メモリアクセスレイテンシ
を低減することにある。
メモリアクセスに関して、(1)メモリスループットを浪
費することなく、(2)リクエストの順序付けとデータの
順序付けの制御が単純であり、(3)アドレスパスのビジ
ー率を上げることなく、(4)メモリアクセスレイテンシ
を低減することにある。
【0019】
【課題を解決するための手段】上記の目標を達成するた
めに、本発明では、プロセッサの内蔵キャッシュミスに
伴うメモリアクセスリクエストを、データアクセスを伴
わずに先行的にメモリを活性化させるためのACTVコマン
ドと、実際にメモリからデータを読み出し/書き込みを
行うためのメモリアクセスコマンドに分離して扱う。
めに、本発明では、プロセッサの内蔵キャッシュミスに
伴うメモリアクセスリクエストを、データアクセスを伴
わずに先行的にメモリを活性化させるためのACTVコマン
ドと、実際にメモリからデータを読み出し/書き込みを
行うためのメモリアクセスコマンドに分離して扱う。
【0020】それぞれのコマンドが発行されるタイミン
グについて述べると、上記ACTVコマンドは、プロセッサ
からアクセス対象アドレスが出力された時、より詳細に
はインタリーブ情報を基にアクセス対象アドレスをデコ
ードし、当該アドレスのデータを有するメモリが接続さ
れるノードの判定された時である。ACTVコマンドは、判
定されたターゲットノードに1対1転送により送付され
る。このACTVコマンドは、メモリに対してRASアドレス
のみを入力するものであって、メモリとの間でデータ授
受は起こさない。またACTVコマンドは、先行するメモリ
アクセスコマンドとのアドレス一致チェックや、キャッ
シュ一貫性制御に影響されることなくメモリに対して発
行されるコマンドである。
グについて述べると、上記ACTVコマンドは、プロセッサ
からアクセス対象アドレスが出力された時、より詳細に
はインタリーブ情報を基にアクセス対象アドレスをデコ
ードし、当該アドレスのデータを有するメモリが接続さ
れるノードの判定された時である。ACTVコマンドは、判
定されたターゲットノードに1対1転送により送付され
る。このACTVコマンドは、メモリに対してRASアドレス
のみを入力するものであって、メモリとの間でデータ授
受は起こさない。またACTVコマンドは、先行するメモリ
アクセスコマンドとのアドレス一致チェックや、キャッ
シュ一貫性制御に影響されることなくメモリに対して発
行されるコマンドである。
【0021】またメモリアクセスコマンドは、プロセッ
サからのアクセス対象のアドレスが出力され、他プロセ
ッサおよびノードでのキャッシュ状態を調べ、他ノード
でのキャッシングの可能性がない場合にはターゲットノ
ードに1対1で送付され、他ノードでのキャッシングの
可能性がある場合には、全ノードに配信される。当該メ
モリアクセスを受けたノードでは、キャッシュ一貫性に
必要な処理を行って結果を返却する。このキャッシュ一
貫性制御の結果の集計により、全ノードでのキャッシュ
状態が判明し、前記ACTVコマンドとメモリアクセスコマ
ンドを受けているメモリノードにおいて、全ノードのキ
ャッシュ状態で、メモリからのデータ転送の要、不要を
判定し、必要な場合にメモリからのデータ読み出しを行
う。
サからのアクセス対象のアドレスが出力され、他プロセ
ッサおよびノードでのキャッシュ状態を調べ、他ノード
でのキャッシングの可能性がない場合にはターゲットノ
ードに1対1で送付され、他ノードでのキャッシングの
可能性がある場合には、全ノードに配信される。当該メ
モリアクセスを受けたノードでは、キャッシュ一貫性に
必要な処理を行って結果を返却する。このキャッシュ一
貫性制御の結果の集計により、全ノードでのキャッシュ
状態が判明し、前記ACTVコマンドとメモリアクセスコマ
ンドを受けているメモリノードにおいて、全ノードのキ
ャッシュ状態で、メモリからのデータ転送の要、不要を
判定し、必要な場合にメモリからのデータ読み出しを行
う。
【0022】これにより、メモリに対するRASアドレス
入力が1対1転送によりキャッシュ一貫性制御の結果を
待たずに行われるため、アドレスパスのビジー率の上昇
を抑えつつ、プロセッサのメモリリクエスト発行からデ
ータアクセスまでの時間が短縮される
入力が1対1転送によりキャッシュ一貫性制御の結果を
待たずに行われるため、アドレスパスのビジー率の上昇
を抑えつつ、プロセッサのメモリリクエスト発行からデ
ータアクセスまでの時間が短縮される
【0023】
【発明の実施の形態】以下、本発明に係わる情報処理装
置のメモリアクセスの処理機構を図面に示した実施例を
参照して詳細に説明する。
置のメモリアクセスの処理機構を図面に示した実施例を
参照して詳細に説明する。
【0024】図1に示すシステムは、ネットワーク102
で結合されたプロセッサノード108,109,110からなるマ
ルチプロセッサシステムである。プロセッサノード108
は、キャッシュを含むプロセッサ103,104,105,106とノ
ードコントローラ100とローカルメモリ101とアクセス権
メモリ99を含む。他のプロセッサノードもプロセッサノ
ード108と同じ構成を有する。各プロセッサノードに含
まれるローカルメモリによってマルチプロセッサシステ
ムの主記憶が構成される。
で結合されたプロセッサノード108,109,110からなるマ
ルチプロセッサシステムである。プロセッサノード108
は、キャッシュを含むプロセッサ103,104,105,106とノ
ードコントローラ100とローカルメモリ101とアクセス権
メモリ99を含む。他のプロセッサノードもプロセッサノ
ード108と同じ構成を有する。各プロセッサノードに含
まれるローカルメモリによってマルチプロセッサシステ
ムの主記憶が構成される。
【0025】なお本実施例では、プロセッサノードの
数、およびプロセッサノードあたりのプロセッサの数に
ついては、それぞれ3ノード、4プロセッサでの例を示し
ているが、ノード数およびプロセッサ数についての制限
はない。また主記憶の構成について、本実施例では各プ
ロセッサノードに分散して配置するNUMA(Non Uniform M
emory Architecture)の構成例を示しているが、プロセ
ッサノードにはメモリが配置されておらずネットワーク
上にメモリが配置されるUMA(Uniform Memory Architect
ure)の構成でも良い。
数、およびプロセッサノードあたりのプロセッサの数に
ついては、それぞれ3ノード、4プロセッサでの例を示し
ているが、ノード数およびプロセッサ数についての制限
はない。また主記憶の構成について、本実施例では各プ
ロセッサノードに分散して配置するNUMA(Non Uniform M
emory Architecture)の構成例を示しているが、プロセ
ッサノードにはメモリが配置されておらずネットワーク
上にメモリが配置されるUMA(Uniform Memory Architect
ure)の構成でも良い。
【0026】図5に、本実施例のシステムにおけるメモ
リアクセスの処理手順を示す。ここでは、プロセッサノ
ード108に含まれるプロセッサ104がプロセッサノード11
0のメモリにアクセスする例を示している。つまり、プ
ロセッサノード108がソースノードであり、メモリアク
セスコマンドがアクセスする対象のメモリを有するプロ
セッサノード110がターゲットノードである。これら以
外のノード、図の例ではプロセッサノード109をスヌー
プノードと呼ぶ。
リアクセスの処理手順を示す。ここでは、プロセッサノ
ード108に含まれるプロセッサ104がプロセッサノード11
0のメモリにアクセスする例を示している。つまり、プ
ロセッサノード108がソースノードであり、メモリアク
セスコマンドがアクセスする対象のメモリを有するプロ
セッサノード110がターゲットノードである。これら以
外のノード、図の例ではプロセッサノード109をスヌー
プノードと呼ぶ。
【0027】また、本実施例ではキャッシュの動作は図
6に示すMESIプロトコルに従う。複数のプロセッサが同
一ラインをキャッシング可能であり、そのキャッシング
状態を「Shared」と呼ぶ。単一のプロセッサにのみ読み
出されてキャッシュされた状態を「Exclusive」と呼
び、最新データに書き換えられたラインを「Modified」
と呼ぶ。「Modified」の場合も、「Exclusive」の場合
も、対象ラインは他のプロセッサはキャッシングされて
いてはならない。キャッシングされていない状態を「In
valid」と呼ぶ。、以上の4つの状態は、図6の通りに
自プロセッサ、もしくは他プロセッサからのメモリアク
セスにより遷移させる。さらに、個々のキャッシュでの
図6のとおりの遷移を実現するために必要なアクセスを
含めて、キャッシュ一貫制御が成される。例えば、メモ
リ書き込みコマンドの場合、「Exclusive」のキャッシ
ュ状態のプロセッサは当該キャッシュラインを書き戻し
てそのキャッシュを無効化する。
6に示すMESIプロトコルに従う。複数のプロセッサが同
一ラインをキャッシング可能であり、そのキャッシング
状態を「Shared」と呼ぶ。単一のプロセッサにのみ読み
出されてキャッシュされた状態を「Exclusive」と呼
び、最新データに書き換えられたラインを「Modified」
と呼ぶ。「Modified」の場合も、「Exclusive」の場合
も、対象ラインは他のプロセッサはキャッシングされて
いてはならない。キャッシングされていない状態を「In
valid」と呼ぶ。、以上の4つの状態は、図6の通りに
自プロセッサ、もしくは他プロセッサからのメモリアク
セスにより遷移させる。さらに、個々のキャッシュでの
図6のとおりの遷移を実現するために必要なアクセスを
含めて、キャッシュ一貫制御が成される。例えば、メモ
リ書き込みコマンドの場合、「Exclusive」のキャッシ
ュ状態のプロセッサは当該キャッシュラインを書き戻し
てそのキャッシュを無効化する。
【0028】ソースノード108内のプロセッサ104からシ
ステムバス107にメモリアクセスコマンドが出される
と、同じシステムバスに結合されている他のプロセッサ
103、105、106は対象アドレスのキャッシング状態を調
べる。メモリアクセスが読み出しアクセスであり、かつ
読み出し対象がプロセッサ103,105,106のいずれかにキ
ャッシングされている場合は、そのキャッシュからの読
み出し処理でメモリアクセスを完了する。但し、そのラ
インのキャシング状態がShared以外であればSharedに代
えるキャシュ一貫制御が必要である。上記以外の時は、
図6に従うソースノード内のキャッシュ一貫制御に加え
て、他のプロセッサノードへのメモリアクセスコマンド
の転送が必要と判断される。以上の処理が図5に破線で
示すローカルスヌープ501である。
ステムバス107にメモリアクセスコマンドが出される
と、同じシステムバスに結合されている他のプロセッサ
103、105、106は対象アドレスのキャッシング状態を調
べる。メモリアクセスが読み出しアクセスであり、かつ
読み出し対象がプロセッサ103,105,106のいずれかにキ
ャッシングされている場合は、そのキャッシュからの読
み出し処理でメモリアクセスを完了する。但し、そのラ
インのキャシング状態がShared以外であればSharedに代
えるキャシュ一貫制御が必要である。上記以外の時は、
図6に従うソースノード内のキャッシュ一貫制御に加え
て、他のプロセッサノードへのメモリアクセスコマンド
の転送が必要と判断される。以上の処理が図5に破線で
示すローカルスヌープ501である。
【0029】一方、システムバス107に送出されたメモ
リアクセスコマンドは当該ノードのノードコントローラ
100が受け取る。するとノードコントローラ107は、上記
ローカルスヌープの結果を待つことなく、そのメモリア
クセスの対象アドレスからターゲットノードを特定し、
ターゲットノード(ここでは108)に対してACTVコマン
ド503を1対1で送信する。ACTVコマンドにはアクセス
対象のメモリアドレスの内のRASのみ含む。あるいはRAS
とCASの双方を含むがCASは無効である。
リアクセスコマンドは当該ノードのノードコントローラ
100が受け取る。するとノードコントローラ107は、上記
ローカルスヌープの結果を待つことなく、そのメモリア
クセスの対象アドレスからターゲットノードを特定し、
ターゲットノード(ここでは108)に対してACTVコマン
ド503を1対1で送信する。ACTVコマンドにはアクセス
対象のメモリアドレスの内のRASのみ含む。あるいはRAS
とCASの双方を含むがCASは無効である。
【0030】ターゲットノードはACTVコマンドを受け取
り、RASアドレスをメモリに発行する。
り、RASアドレスをメモリに発行する。
【0031】一方、上記ソースノード108のノードコン
トローラ107は、アクセス対象アドレスを用いてアクセ
ス権メモリ99を検索する。この検索も、ローカルスヌー
プの結果が得られる前に、即ちローカルスヌープと並行
して行われる。アクセス権メモリ99の内容は、後に詳述
するが、自ノードにアクセス権があるか否かの情報が主
記憶の複数ラインについてそれぞれ登録されている。こ
の検索の結果、アクセス対象アドレスを含むラインにつ
いて自ノードにアクセス権がないか、もしくはアクセス
権メモリに登録がない場合は、他のノードにキャッシン
グされている可能性があるため、自ノード以外の全ノー
ドに対してメモリアクセスコマンドを配布する。自ノー
ドにアクセス権がある場合は、他ノードでのキャッシン
グの可能性がないため、ターゲットノード、ここではプ
ロセッサノード110に対して1対1でメモリアクセスコ
マンドを送信する。
トローラ107は、アクセス対象アドレスを用いてアクセ
ス権メモリ99を検索する。この検索も、ローカルスヌー
プの結果が得られる前に、即ちローカルスヌープと並行
して行われる。アクセス権メモリ99の内容は、後に詳述
するが、自ノードにアクセス権があるか否かの情報が主
記憶の複数ラインについてそれぞれ登録されている。こ
の検索の結果、アクセス対象アドレスを含むラインにつ
いて自ノードにアクセス権がないか、もしくはアクセス
権メモリに登録がない場合は、他のノードにキャッシン
グされている可能性があるため、自ノード以外の全ノー
ドに対してメモリアクセスコマンドを配布する。自ノー
ドにアクセス権がある場合は、他ノードでのキャッシン
グの可能性がないため、ターゲットノード、ここではプ
ロセッサノード110に対して1対1でメモリアクセスコ
マンドを送信する。
【0032】メモリアクセスコマンドが配布された場
合、これを受けたスヌープノード109とターゲットノー
ド110では、それぞれ自ノード内のシステムバスに結合
されているプロセッサの当該アドレスのデータのキャッ
シング状態をチェックし、図6に基づいて、必要なキャ
ッシュ一貫制御を行う。この処理がグローバルスヌープ
502である。つまり、複数ノードに配布されるメモリア
クセスコマンドはグローバルスヌープ要求となる。
合、これを受けたスヌープノード109とターゲットノー
ド110では、それぞれ自ノード内のシステムバスに結合
されているプロセッサの当該アドレスのデータのキャッ
シング状態をチェックし、図6に基づいて、必要なキャ
ッシュ一貫制御を行う。この処理がグローバルスヌープ
502である。つまり、複数ノードに配布されるメモリア
クセスコマンドはグローバルスヌープ要求となる。
【0033】先にソースノード108で行われたローカル
スヌープの結果はターゲットノードに通知される。ま
た、グローバルスヌープの結果はソースノードに返送さ
れると共に、ターゲットノードにも通知される。ターゲ
ットノードにのみメモリアクセスコマンドが1対1で送
付された場合には、ターゲットノード110はローカルス
ヌープの結果の通知のみを待ち、その結果がメモリアク
セス必要を示す場合にメモリアクセスの実行を行う。一
方、メモリアクセスコマンドが複数ノードに配布された
場合には、ターゲットノード110では,ソースノード108
のローカルスヌープの結果と、自ノードでのグローバル
スヌープの結果と、スヌープノード109でのグローバル
スヌープの結果とが揃った時点で、必要であればメモリ
アクセスの実行を行う。いずれの場合も、既にACTVコマ
ンドを受信した時点でローカルメモリにRASアドレスを
発行済みであるので、ここでのメモリアクセスの実行は
ノードコントローラからメモリに対してCASアドレスを
発行することにより行う。ローカルメモリにてデータの
読み出し、または書き込みをが終了すると、ターゲット
ノードは完了通知504(読み出しの場合はデータを含む)
をソースノードのプロセッサ104に返却し、メモリアク
セスを完了させる。
スヌープの結果はターゲットノードに通知される。ま
た、グローバルスヌープの結果はソースノードに返送さ
れると共に、ターゲットノードにも通知される。ターゲ
ットノードにのみメモリアクセスコマンドが1対1で送
付された場合には、ターゲットノード110はローカルス
ヌープの結果の通知のみを待ち、その結果がメモリアク
セス必要を示す場合にメモリアクセスの実行を行う。一
方、メモリアクセスコマンドが複数ノードに配布された
場合には、ターゲットノード110では,ソースノード108
のローカルスヌープの結果と、自ノードでのグローバル
スヌープの結果と、スヌープノード109でのグローバル
スヌープの結果とが揃った時点で、必要であればメモリ
アクセスの実行を行う。いずれの場合も、既にACTVコマ
ンドを受信した時点でローカルメモリにRASアドレスを
発行済みであるので、ここでのメモリアクセスの実行は
ノードコントローラからメモリに対してCASアドレスを
発行することにより行う。ローカルメモリにてデータの
読み出し、または書き込みをが終了すると、ターゲット
ノードは完了通知504(読み出しの場合はデータを含む)
をソースノードのプロセッサ104に返却し、メモリアク
セスを完了させる。
【0034】なお、上記のメモリアクセス手順の説明で
は、本発明はメモリアクセスに関する発明であるため、
ローカルスヌープとグローバルスヌープの結果、キャッ
シュ間転送が起きる場合のようにメモリアクセスが必要
ない場合を省略している。
は、本発明はメモリアクセスに関する発明であるため、
ローカルスヌープとグローバルスヌープの結果、キャッ
シュ間転送が起きる場合のようにメモリアクセスが必要
ない場合を省略している。
【0035】図2は図1中のノードコントローラの構成を
示す。ノードコントローラはプロセッサインターフェー
スユニット201とメモリインターフェースユニット202と
ネットワークインターフェースユニット203とアクセス
権制御回路204を有している。これらの各ユニットは信
号線210を介して結合されており、メモリアクセスコマ
ンドおよびデータが、信号線210を介してユニット間で
授受される。
示す。ノードコントローラはプロセッサインターフェー
スユニット201とメモリインターフェースユニット202と
ネットワークインターフェースユニット203とアクセス
権制御回路204を有している。これらの各ユニットは信
号線210を介して結合されており、メモリアクセスコマ
ンドおよびデータが、信号線210を介してユニット間で
授受される。
【0036】アクセス権制御回路204はアクセス権メモ
リ99を検索してその結果に応じた制御を行うとともに、
アクセス権メモリ99の内容を管理する。ここでアクセス
権メモリ99は、主記憶上のキャッシュラインに対応つけ
られるタグと、自ノードがそのキャッシュラインのアク
セス権を有するか否かの情報とを登録するエントリを持
ち、自ノードのプロセッサがキャシュ可能なライン数の
合計の数倍(例えば4倍)のキャッシュラインについて
登録できる容量を有する。したがって、自ノード内のキ
ャッシュに実際には存在しなくなったラインについても
自ノードのアクセス権を保持することができる。
リ99を検索してその結果に応じた制御を行うとともに、
アクセス権メモリ99の内容を管理する。ここでアクセス
権メモリ99は、主記憶上のキャッシュラインに対応つけ
られるタグと、自ノードがそのキャッシュラインのアク
セス権を有するか否かの情報とを登録するエントリを持
ち、自ノードのプロセッサがキャシュ可能なライン数の
合計の数倍(例えば4倍)のキャッシュラインについて
登録できる容量を有する。したがって、自ノード内のキ
ャッシュに実際には存在しなくなったラインについても
自ノードのアクセス権を保持することができる。
【0037】本実施例におけるアクセス権制御回路204
のアクセス権管理のアルゴリズムは次の通りである。
のアクセス権管理のアルゴリズムは次の通りである。
【0038】(1) 自ノードのプロセッサがキャッシュ
一貫制御を必要とするメモリアクセスコマンドを発行
し、他ノードへグローバルスヌープ要求を発行した結
果、他の全てのノードが当該メモリブロックのアクセス
権を持たない場合、自ノードの状態をアクセス権有りと
してこれを登録する。
一貫制御を必要とするメモリアクセスコマンドを発行
し、他ノードへグローバルスヌープ要求を発行した結
果、他の全てのノードが当該メモリブロックのアクセス
権を持たない場合、自ノードの状態をアクセス権有りと
してこれを登録する。
【0039】(2) 他ノードからメモリアクセスコマン
ドに伴うグローバルスヌープ要求を受けた時に、自ノー
ドのアクセス権メモリを検索し、スヌープの対象ブロッ
クに対するエントリが存在し、アクセス権有りの場合に
は当該アクセス権の状態をアクセス権無しに変更する。
ドに伴うグローバルスヌープ要求を受けた時に、自ノー
ドのアクセス権メモリを検索し、スヌープの対象ブロッ
クに対するエントリが存在し、アクセス権有りの場合に
は当該アクセス権の状態をアクセス権無しに変更する。
【0040】したがってアクセス権制御回路204は、他
ノードからのグローバルスヌープ要求をネットワープイ
ンターフェースユニットから受け取ると、信号線214を
介してアクセス権メモリ99を検索し、必要ならアクセス
権の有無のデータを変更し、その結果をネットワークイ
ンターフェースユニットを介して他ノードに通知する。
また、プロセッサインターフェースユニットから自ノー
ドのメモリアクセスコマンドを受け取ると、アクセス権
メモリを検索し、その結果をプロセッサインターフェイ
スユニットに返送する。プロセッサインターフェースユ
ニット201では、プロセッサからのメモリアクセスコマ
ンドをシステムバス107から受け取り、メモリアクセス
コマンドの内容がローカルメモリアクセスの場合にはメ
モリインターフェース202へ転送する。メモリアクセス
が他ノードのメモリに対するアクセスの場合にはACTVコ
マンドを生成してネットワークインターフェース203へ
発行するとともに、アクセス権の有無の判定のためにメ
モリアクセスコマンドに含まれるアドレスをアクセス権
制御回路204に転送する機能をもつ。さらに、アクセス
権制御回路204から返送される検索結果が「アクセス権
あり」であればターゲットノードに対し、「アクセス権
なし」であれば自ノード以外の全てのノードに対しメモ
リアクセスコマンドを信号線210を介して発行する機能
を持つ。また、プロセッサインターフェースユニットは
発行されたメモリアクセスコマンドに対応する完了通知
504をネットワークインターフェースユニット203から受
け取り、必要であればシステムバスを介してメモリアク
セスリクエストを発行したプロセッサにデータなどを返
却する機能を持つ。
ノードからのグローバルスヌープ要求をネットワープイ
ンターフェースユニットから受け取ると、信号線214を
介してアクセス権メモリ99を検索し、必要ならアクセス
権の有無のデータを変更し、その結果をネットワークイ
ンターフェースユニットを介して他ノードに通知する。
また、プロセッサインターフェースユニットから自ノー
ドのメモリアクセスコマンドを受け取ると、アクセス権
メモリを検索し、その結果をプロセッサインターフェイ
スユニットに返送する。プロセッサインターフェースユ
ニット201では、プロセッサからのメモリアクセスコマ
ンドをシステムバス107から受け取り、メモリアクセス
コマンドの内容がローカルメモリアクセスの場合にはメ
モリインターフェース202へ転送する。メモリアクセス
が他ノードのメモリに対するアクセスの場合にはACTVコ
マンドを生成してネットワークインターフェース203へ
発行するとともに、アクセス権の有無の判定のためにメ
モリアクセスコマンドに含まれるアドレスをアクセス権
制御回路204に転送する機能をもつ。さらに、アクセス
権制御回路204から返送される検索結果が「アクセス権
あり」であればターゲットノードに対し、「アクセス権
なし」であれば自ノード以外の全てのノードに対しメモ
リアクセスコマンドを信号線210を介して発行する機能
を持つ。また、プロセッサインターフェースユニットは
発行されたメモリアクセスコマンドに対応する完了通知
504をネットワークインターフェースユニット203から受
け取り、必要であればシステムバスを介してメモリアク
セスリクエストを発行したプロセッサにデータなどを返
却する機能を持つ。
【0041】さらに、プロセッサインターフェースユニ
ット201は、他ノードからのグローバルスヌープ要求を
ネットワークインターフェースユニットから受け取る
と、システムバスに結合されているプロセッサのキャッ
シュ状態を調べ、その結果をメモリインターフェースユ
ニット202に通知し、かつネットワークインターフェー
スを介して他ノードに通知する機能を持つ。
ット201は、他ノードからのグローバルスヌープ要求を
ネットワークインターフェースユニットから受け取る
と、システムバスに結合されているプロセッサのキャッ
シュ状態を調べ、その結果をメモリインターフェースユ
ニット202に通知し、かつネットワークインターフェー
スを介して他ノードに通知する機能を持つ。
【0042】メモリインターフェースユニット202は信
号線210を介して、プロセッサインターフェースユニッ
ト201またはネットワークインターフェースユニット203
から、ACTVコマンドとメモリアクセスコマンドを受け取
る。ACTVコマンドを受け取とると、当該コマンドに含ま
れるアドレスのデコードを行い適切なメモリバンクに対
してRASアドレスを信号線211を介して送出する。メモリ
アクセスコマンドについても、含まれるアドレスのデコ
ード結果に基づいて対象のメモリバンクにCASアドレス
を発行し、データの授受を信号線211を介して行う機能
を持っている。
号線210を介して、プロセッサインターフェースユニッ
ト201またはネットワークインターフェースユニット203
から、ACTVコマンドとメモリアクセスコマンドを受け取
る。ACTVコマンドを受け取とると、当該コマンドに含ま
れるアドレスのデコードを行い適切なメモリバンクに対
してRASアドレスを信号線211を介して送出する。メモリ
アクセスコマンドについても、含まれるアドレスのデコ
ード結果に基づいて対象のメモリバンクにCASアドレス
を発行し、データの授受を信号線211を介して行う機能
を持っている。
【0043】ネットワークインターフェースユニット20
3は信号線210を介して、プロセッサインターフェースユ
ニット201、メモリインターフェースユニット202、およ
びアクセス権制御回路204とネットワーク102の間を仲介
する機能を持つ。他ノードからのACTVコマンドはメモリ
インターフェースユニット202に転送する。また、1対
1転送で受信したメモリアクセスコマンドについても同
様である。複数ノード向けに配信されたメモリアクセス
コマンドを受信したときには、それがグローバルスヌー
プ要求であることを示す情報を付加してプロセッサイン
ターフェースユニット201に送出し、さらにアクセス対
象アドレスが自ノードのローカルメモリ内ならばメモリ
インターフェースユニット202にも送出する。また、当
該ノードから他ノードに対するACTVコマンドとメモリア
クセスコマンドをネットワークに転送する機能と、他ノ
ードからのメモリアクセスコマンドに対するメモリイン
ターフェースからのメモリアクセス完了通知(データを
含むこともある)をネットワークに転送する機能を備え
ている。
3は信号線210を介して、プロセッサインターフェースユ
ニット201、メモリインターフェースユニット202、およ
びアクセス権制御回路204とネットワーク102の間を仲介
する機能を持つ。他ノードからのACTVコマンドはメモリ
インターフェースユニット202に転送する。また、1対
1転送で受信したメモリアクセスコマンドについても同
様である。複数ノード向けに配信されたメモリアクセス
コマンドを受信したときには、それがグローバルスヌー
プ要求であることを示す情報を付加してプロセッサイン
ターフェースユニット201に送出し、さらにアクセス対
象アドレスが自ノードのローカルメモリ内ならばメモリ
インターフェースユニット202にも送出する。また、当
該ノードから他ノードに対するACTVコマンドとメモリア
クセスコマンドをネットワークに転送する機能と、他ノ
ードからのメモリアクセスコマンドに対するメモリイン
ターフェースからのメモリアクセス完了通知(データを
含むこともある)をネットワークに転送する機能を備え
ている。
【0044】プロセッサインターフェースユニットは図
3に示す通り、アドレスデコードユニット301、コマン
ド管理部302、データ管理ユニット303を有している。
3に示す通り、アドレスデコードユニット301、コマン
ド管理部302、データ管理ユニット303を有している。
【0045】アドレスデコードユニット301は、システ
ムバス107からのメモリアクセスコマンドのみを入力と
しており、当該メモリアクセスコマンドに含まれるアド
レスのデコードを行い、当該アドレスをローカルメモリ
として保有するターゲットノード(ローカルの場合も含
む)に対して、ACTVコマンドを発行する機能を持つ。タ
ーゲットノードがローカルノードの場合、ACTVコマンド
は信号線210-2を介してメモりコントローラに出力され
る。ターゲットノードがローカルノード以外の場合、AC
TVコマンドは信号線210-2を介してネットワークインタ
ーフェースユニット203に出力される。また、デコード
結果は信号線310を介して、コマンド管理ユニットに通
知される。さらに、ターゲットノードがローカルノード
以外の場合、アクセス権の有無の判定のためにアクセス
権制御回路204にメモリアクセスコマンドに含まれるア
ドレスを転送する。なおシステムバス107にメモリアク
セスコマンド中のアドレスが出力された時点でデコード
が開始され、デコード結果が出ると直ちにターゲットユ
ニットに対するACTVコマンドの発行が行われる。
ムバス107からのメモリアクセスコマンドのみを入力と
しており、当該メモリアクセスコマンドに含まれるアド
レスのデコードを行い、当該アドレスをローカルメモリ
として保有するターゲットノード(ローカルの場合も含
む)に対して、ACTVコマンドを発行する機能を持つ。タ
ーゲットノードがローカルノードの場合、ACTVコマンド
は信号線210-2を介してメモりコントローラに出力され
る。ターゲットノードがローカルノード以外の場合、AC
TVコマンドは信号線210-2を介してネットワークインタ
ーフェースユニット203に出力される。また、デコード
結果は信号線310を介して、コマンド管理ユニットに通
知される。さらに、ターゲットノードがローカルノード
以外の場合、アクセス権の有無の判定のためにアクセス
権制御回路204にメモリアクセスコマンドに含まれるア
ドレスを転送する。なおシステムバス107にメモリアク
セスコマンド中のアドレスが出力された時点でデコード
が開始され、デコード結果が出ると直ちにターゲットユ
ニットに対するACTVコマンドの発行が行われる。
【0046】コマンド管理ユニット302は、システムバ
ス107からのメモリアクセスコマンドと、上記のアドレ
スデコードの結果と、信号線210-3からのアクセス権メ
モリの検索結果とを入力とする。入力されたメモリアク
セスコマンドに対するローカルスヌープの結果、メモリ
アクセスが必要な場合に、そのメモリアクセスコマンド
を正式に発行する。アドレスデコードの結果がローカル
を示すとき、メモリアクセスコマンドはメモリインター
フェースユニットに出力され、アドレスデコードの結果
がローカルでないことを示せばメモリアクセスコマンド
はネットワークインターフェースユニットに出力され
る。後者の場合、アクセス権メモリの検索結果に応じて
発行するメモリアクセスコマンドの転送先が変化する。
自ノードにアクセス権有りの場合は転送先はターゲット
ノードのみであり、自ノードにアクセス権なし、もしく
はアクセス権メモリ99に登録されていないときは転送先
は自ノード以外の全ノードである。
ス107からのメモリアクセスコマンドと、上記のアドレ
スデコードの結果と、信号線210-3からのアクセス権メ
モリの検索結果とを入力とする。入力されたメモリアク
セスコマンドに対するローカルスヌープの結果、メモリ
アクセスが必要な場合に、そのメモリアクセスコマンド
を正式に発行する。アドレスデコードの結果がローカル
を示すとき、メモリアクセスコマンドはメモリインター
フェースユニットに出力され、アドレスデコードの結果
がローカルでないことを示せばメモリアクセスコマンド
はネットワークインターフェースユニットに出力され
る。後者の場合、アクセス権メモリの検索結果に応じて
発行するメモリアクセスコマンドの転送先が変化する。
自ノードにアクセス権有りの場合は転送先はターゲット
ノードのみであり、自ノードにアクセス権なし、もしく
はアクセス権メモリ99に登録されていないときは転送先
は自ノード以外の全ノードである。
【0047】また、コマンド管理ユニット302では、当
該ノードから発行されたメモリアクセスコマンドを当該
コマンドの完了通知を受け取るまで保有し、メモリアク
セスコマンド完了時にシステムバス107を介してプロセ
ッサにも完了通知の転送を行う。
該ノードから発行されたメモリアクセスコマンドを当該
コマンドの完了通知を受け取るまで保有し、メモリアク
セスコマンド完了時にシステムバス107を介してプロセ
ッサにも完了通知の転送を行う。
【0048】更に、コマンド管理ユニット302は、ネッ
トワークインターフェースユニットからグローバルスヌ
ープ要求を受けると、に自ノード内のプロセッサのキャ
ッシュ状態をチェックし、その結果をネットワークイン
ターフェイスユニット及びメモりインターフェイスユニ
ットに通知する機能を有する。
トワークインターフェースユニットからグローバルスヌ
ープ要求を受けると、に自ノード内のプロセッサのキャ
ッシュ状態をチェックし、その結果をネットワークイン
ターフェイスユニット及びメモりインターフェイスユニ
ットに通知する機能を有する。
【0049】データ管理ユニット303は、システムバス1
07と信号線210を入力および出力として使用する。シス
テムバス107からの入力は、メモリアクセスコマンドの
うちメモリライトに関するプロセッサからのライトデー
タであり、信号線210を出力とする。信号線210からの入
力は、メモリアクセスコマンドのうちメモリリードに関
するメモリからのリターンデータであり、システムバス
107を出力とする。なお、上記のライトデータの信号線2
10への送出と、当該データに対応するライトコマンドの
送出は同期して行わなければならない。このため、デー
タ管理ユニットにはコマンド管理ユニットへ、信号線31
1を介して送出のタイミングを受け渡す機能を有してい
るまた、信号線210によるデータの送付先には、当該デ
ータに対応するライトコマンドと同様の方法により、ロ
ーカルメモリアクセスの場合にはメモリインターフェー
スユニットに、リモートメモリアクセスの場合には、ネ
ットワークインターフェースユニットに送付される。
07と信号線210を入力および出力として使用する。シス
テムバス107からの入力は、メモリアクセスコマンドの
うちメモリライトに関するプロセッサからのライトデー
タであり、信号線210を出力とする。信号線210からの入
力は、メモリアクセスコマンドのうちメモリリードに関
するメモリからのリターンデータであり、システムバス
107を出力とする。なお、上記のライトデータの信号線2
10への送出と、当該データに対応するライトコマンドの
送出は同期して行わなければならない。このため、デー
タ管理ユニットにはコマンド管理ユニットへ、信号線31
1を介して送出のタイミングを受け渡す機能を有してい
るまた、信号線210によるデータの送付先には、当該デ
ータに対応するライトコマンドと同様の方法により、ロ
ーカルメモリアクセスの場合にはメモリインターフェー
スユニットに、リモートメモリアクセスの場合には、ネ
ットワークインターフェースユニットに送付される。
【0050】図4はメモリインターフェースユニット202
の構成を示す。メモリインターフェースユニット202に
は、当該メモリインターフェースユニットに接続されて
いるメモリに対するコマンドおよびアクセス対象のアド
レスを保持するためのアドレス管理ユニット401と、当
該メモリに対するライトデータおよび当該メモリから読
み出したリードデータを保持するためのデータ管理ユニ
ット402を含む。
の構成を示す。メモリインターフェースユニット202に
は、当該メモリインターフェースユニットに接続されて
いるメモリに対するコマンドおよびアクセス対象のアド
レスを保持するためのアドレス管理ユニット401と、当
該メモリに対するライトデータおよび当該メモリから読
み出したリードデータを保持するためのデータ管理ユニ
ット402を含む。
【0051】アドレス管理ユニット401は、信号線210を
介して、プロセッサインターフェースユニットあるいは
ネットワークインターフェースユニットから当該メモリ
に対するアドレスを含むコマンドを受け取り、信号線21
1-1に対して当該コマンドとそのアドレスをメモリに送
出する機能を有している。ただし、ACTVコマンドについ
ては、RASアドレスのみをメモリに送出する。また、グ
ローバルスヌープ要求であることを示す情報とともにメ
モリアクセスコマンドを受信した場合は、まず各ノード
のスヌープ結果の集計を行い、その結果がメモりアクセ
ス許可であるときメモリアクセスの対象アドレスをメモ
リに送出する。
介して、プロセッサインターフェースユニットあるいは
ネットワークインターフェースユニットから当該メモリ
に対するアドレスを含むコマンドを受け取り、信号線21
1-1に対して当該コマンドとそのアドレスをメモリに送
出する機能を有している。ただし、ACTVコマンドについ
ては、RASアドレスのみをメモリに送出する。また、グ
ローバルスヌープ要求であることを示す情報とともにメ
モリアクセスコマンドを受信した場合は、まず各ノード
のスヌープ結果の集計を行い、その結果がメモりアクセ
ス許可であるときメモリアクセスの対象アドレスをメモ
リに送出する。
【0052】データ管理ユニット402は、信号線210を介
して、プロセッサインターフェースユニットあるいはネ
ットワークインターフェースユニットから当該メモリに
対するライトデータを受け取り、信号線211-2に送出す
る機能を有している。ただし、ライトデータ送出に関し
ては、上記のアドレス管理ユニットがライトコマンドを
メモリに入力するタイミングに合わせるため、信号線41
0を介して、当該ライトコマンドの送出の通知を受ける
必要がある。
して、プロセッサインターフェースユニットあるいはネ
ットワークインターフェースユニットから当該メモリに
対するライトデータを受け取り、信号線211-2に送出す
る機能を有している。ただし、ライトデータ送出に関し
ては、上記のアドレス管理ユニットがライトコマンドを
メモリに入力するタイミングに合わせるため、信号線41
0を介して、当該ライトコマンドの送出の通知を受ける
必要がある。
【0053】また、上記のアドレス管理ユニットからメ
モリに対してリードコマンドが送出される場合は、メモ
リからのリターンデータを一旦保持し、信号線210を介
して、当該リードコマンドの送り元である、プロセッサ
インターフェースユニットあるいはネットワークインタ
ーフェースユニットにデータを返却する機能を持つ。
モリに対してリードコマンドが送出される場合は、メモ
リからのリターンデータを一旦保持し、信号線210を介
して、当該リードコマンドの送り元である、プロセッサ
インターフェースユニットあるいはネットワークインタ
ーフェースユニットにデータを返却する機能を持つ。
【0054】以上に図2から図4を参照して説明したノ
ードコントローラは複数の集積回路のセットで構成でき
る。当然ながら、個々の集積回路の範囲は図示したブロ
ックに対応させる必要はない。
ードコントローラは複数の集積回路のセットで構成でき
る。当然ながら、個々の集積回路の範囲は図示したブロ
ックに対応させる必要はない。
【0055】ここで、従来のACTVコマンドを用いない通
常のメモリアクセスの処理手順と、本発明に基づくメモ
リアクセスの処理手順の比較を行う。
常のメモリアクセスの処理手順と、本発明に基づくメモ
リアクセスの処理手順の比較を行う。
【0056】図7は、ACTVコマンドを用いない通常のメ
モリアクセス処理の手順を示している。横軸は時間であ
り、縦方向はソースノード、スヌープノード、ターゲッ
トノードを示している。また、本比較例として扱うメモ
リアクセスコマンドは、他ノードのメモリからのリター
ンデータを伴うメモリリードコマンドであるが、メモリ
ライトコマンド、および自ノードへのアクセスについて
も同様である。
モリアクセス処理の手順を示している。横軸は時間であ
り、縦方向はソースノード、スヌープノード、ターゲッ
トノードを示している。また、本比較例として扱うメモ
リアクセスコマンドは、他ノードのメモリからのリター
ンデータを伴うメモリリードコマンドであるが、メモリ
ライトコマンド、および自ノードへのアクセスについて
も同様である。
【0057】ソースノードにおいてメモリリードコマン
ドが発行されると、ソースノード内においてローカルス
ヌープが行われメモリアクセスが必要なことが判明した
後に、スヌープノードとターゲットノードにメモリアク
セスコマンドを転送する。スヌープノード、ターゲット
ノードでは、このメモリアクセスコマンドを受けてグロ
ーバルスヌープが行われる。全ノードのスヌープの結果
が集計され、メモリアクセスの許可・不許可を決定され
る。
ドが発行されると、ソースノード内においてローカルス
ヌープが行われメモリアクセスが必要なことが判明した
後に、スヌープノードとターゲットノードにメモリアク
セスコマンドを転送する。スヌープノード、ターゲット
ノードでは、このメモリアクセスコマンドを受けてグロ
ーバルスヌープが行われる。全ノードのスヌープの結果
が集計され、メモリアクセスの許可・不許可を決定され
る。
【0058】ローカルスヌープおよびグローバルスヌー
プの結果、メモリアクセスが許可されれば、ターゲット
ノードにて、メモリアクセスが開始される。ターゲット
ノードメモリはDRAMセルを用いた素子により構成されて
いるため、ターゲットノードでは対象アドレスをRASア
ドレスとCASアドレスに分けて順にローカルメモリに入
力してメモリアクセスを実行する。ターゲットノードは
メモリからのリードデータをソースノードに返送する。
プの結果、メモリアクセスが許可されれば、ターゲット
ノードにて、メモリアクセスが開始される。ターゲット
ノードメモリはDRAMセルを用いた素子により構成されて
いるため、ターゲットノードでは対象アドレスをRASア
ドレスとCASアドレスに分けて順にローカルメモリに入
力してメモリアクセスを実行する。ターゲットノードは
メモリからのリードデータをソースノードに返送する。
【0059】図8は、本実施例によるACTVコマンドを用
いる場合のメモリアクセス処理の手順を示している。図
8の縦軸と横軸、および扱うコマンドについては図7で述
べたものと同様である。
いる場合のメモリアクセス処理の手順を示している。図
8の縦軸と横軸、および扱うコマンドについては図7で述
べたものと同様である。
【0060】本実施例では、ソースノードのプロセッサ
バスにプロセッサからメモリアクセスコマンドが送出さ
れた直後で、ローカルスヌープが行われる前に、ACTVコ
マンドをターゲットノードに送る。ターゲットノードで
はACTVコマンドを受けることにより、メモリインターフ
ェースユニットからメモリに対しRASアドレスが出力さ
れる。ソースノードでのローカルスヌープは図7と同様
に行われるが、その結果が得られる以前にアクセス権メ
モリの検索によるアクセス権有無のチェックが行われ
る。アクセス権が無いか、もしくはアクセス権メモリに
対象アドレスを含むラインが登録されていない場合は、
グローバルスヌープが図7で示した方法と同様に行われ
る。その結果、許可されればターゲットノードでメモリ
アクセスが実行される。ターゲットノードのメモリに
は、先にACTVコマンドによりRASアドレスが入力されて
いるため、この時にはCASアドレスが追加的に指定さ
れ、データ読み出しが行われる。
バスにプロセッサからメモリアクセスコマンドが送出さ
れた直後で、ローカルスヌープが行われる前に、ACTVコ
マンドをターゲットノードに送る。ターゲットノードで
はACTVコマンドを受けることにより、メモリインターフ
ェースユニットからメモリに対しRASアドレスが出力さ
れる。ソースノードでのローカルスヌープは図7と同様
に行われるが、その結果が得られる以前にアクセス権メ
モリの検索によるアクセス権有無のチェックが行われ
る。アクセス権が無いか、もしくはアクセス権メモリに
対象アドレスを含むラインが登録されていない場合は、
グローバルスヌープが図7で示した方法と同様に行われ
る。その結果、許可されればターゲットノードでメモリ
アクセスが実行される。ターゲットノードのメモリに
は、先にACTVコマンドによりRASアドレスが入力されて
いるため、この時にはCASアドレスが追加的に指定さ
れ、データ読み出しが行われる。
【0061】図7のメモリアクセス手順と比較すると、
図8の本実施例によるメモリアクセス手順ではメモリに
対するRASアドレスがスヌープ結果より前に入力されて
おり、スヌープ後に行う手順で省略できるため、結果と
してソースノードにとっては、メモリアクセスコマンド
送出からデータリターンまでの時間であるメモリアクセ
スレイテンシが短縮されることになる。通常、RASアド
レスとCASアドレスの間には2〜4サイクルの間隔が必要
であり、サイクルを10nsで計算すると、本発明によりメ
モリアクセスレイテンシを20〜40ns短縮可能となる。ま
たアクセス権チェックによりソースノードにアクセス権
有りと判明した場合には、図8に破線で示したように、
メモリアクセスコマンドのノード間転送はターゲットノ
ードに対してのみ行われ、これを受信したターゲットノ
ードでは直ちにCASをメモリに発行する。つまりグロー
バルスヌープは省略される。したがってアドレスパスの
ビジー率を逓減できる。また、メモリアクセスレイテン
シはグローバルスヌープを行う場合よりさらに短縮され
る。
図8の本実施例によるメモリアクセス手順ではメモリに
対するRASアドレスがスヌープ結果より前に入力されて
おり、スヌープ後に行う手順で省略できるため、結果と
してソースノードにとっては、メモリアクセスコマンド
送出からデータリターンまでの時間であるメモリアクセ
スレイテンシが短縮されることになる。通常、RASアド
レスとCASアドレスの間には2〜4サイクルの間隔が必要
であり、サイクルを10nsで計算すると、本発明によりメ
モリアクセスレイテンシを20〜40ns短縮可能となる。ま
たアクセス権チェックによりソースノードにアクセス権
有りと判明した場合には、図8に破線で示したように、
メモリアクセスコマンドのノード間転送はターゲットノ
ードに対してのみ行われ、これを受信したターゲットノ
ードでは直ちにCASをメモリに発行する。つまりグロー
バルスヌープは省略される。したがってアドレスパスの
ビジー率を逓減できる。また、メモリアクセスレイテン
シはグローバルスヌープを行う場合よりさらに短縮され
る。
【0062】また本発明では、メモリに対してスヌープ
結果を待たずに入力しているのはRASアドレスのみであ
るため、実際のデータ読み出しは行われない。このた
め、スヌープ結果によりメモリアクセスが許可されない
場合などでは、無駄なメモリアクセスを生じることがな
く、メモリのスループットの浪費を防ぐ効果もある。
結果を待たずに入力しているのはRASアドレスのみであ
るため、実際のデータ読み出しは行われない。このた
め、スヌープ結果によりメモリアクセスが許可されない
場合などでは、無駄なメモリアクセスを生じることがな
く、メモリのスループットの浪費を防ぐ効果もある。
【0063】さらに、データ読み出しを伴わないことに
より、同一アドレスに対する複数のメモリアクセスコマ
ンドが同時にシステム内に存在する場合、先読み方式と
異なり読み出したデータを無効化する必要もなく、制御
が容易になるという特徴を持つことになる。
より、同一アドレスに対する複数のメモリアクセスコマ
ンドが同時にシステム内に存在する場合、先読み方式と
異なり読み出したデータを無効化する必要もなく、制御
が容易になるという特徴を持つことになる。
【0064】以上では、主記憶を構成するメモリが各プ
ロセッサノードに分散配置されたNUMAについて説明した
が、メモリを独立のメモリノードとしたUMAであっても
全く同様なトランザクションの転送が可能で、同様な効
果が得られる。図8に記載したように、ターゲットノー
ドの動作のグローバルスヌープ以外の部分を、そのメモ
リノードと置き換えることにより、このことが容易に理
解できる。
ロセッサノードに分散配置されたNUMAについて説明した
が、メモリを独立のメモリノードとしたUMAであっても
全く同様なトランザクションの転送が可能で、同様な効
果が得られる。図8に記載したように、ターゲットノー
ドの動作のグローバルスヌープ以外の部分を、そのメモ
リノードと置き換えることにより、このことが容易に理
解できる。
【0065】本実施例では、1つのキャッシュラインに
ついてアクセス権が登録されるのシステム全体の複数の
ノードのうちのただ1つだけである。つまりそのアクセ
ス権は排他的アクセス権である。この場合、アクセスト
ランザックションの転送先をターゲットノードのみにす
るか自ノード以外の全ノードにするかの判定のアルゴリ
ズムは、メモリアクセスが読み出であっても書込みであ
っても変わりがない。
ついてアクセス権が登録されるのシステム全体の複数の
ノードのうちのただ1つだけである。つまりそのアクセ
ス権は排他的アクセス権である。この場合、アクセスト
ランザックションの転送先をターゲットノードのみにす
るか自ノード以外の全ノードにするかの判定のアルゴリ
ズムは、メモリアクセスが読み出であっても書込みであ
っても変わりがない。
【0066】これに代える第1の変形例では、各ノード
のアクセス権メモリに複数のノードで同時に共有できる
アクセス権(共有アクセス権)を登録する。共有アクセ
ス権の登録のアルゴリズムは次の通りである。
のアクセス権メモリに複数のノードで同時に共有できる
アクセス権(共有アクセス権)を登録する。共有アクセ
ス権の登録のアルゴリズムは次の通りである。
【0067】自ノードのプロセッサがキャッシュ一貫制
御を必要とするメモリアクセスコマンドを発行し、他ノ
ードへグローバルスヌープ要求を発行したとき、他のノ
ードが当該メモリブロックの共有アクセス権を持つ、持
たないに関わらず、自ノードの状態を共有アクセス権有
りとしてこれを登録する。
御を必要とするメモリアクセスコマンドを発行し、他ノ
ードへグローバルスヌープ要求を発行したとき、他のノ
ードが当該メモリブロックの共有アクセス権を持つ、持
たないに関わらず、自ノードの状態を共有アクセス権有
りとしてこれを登録する。
【0068】自ノードに、この共有アクセス権があると
いうことは、対象メモリフロックについて他ノードでも
Sharedの状態でキャッシングしている可能性があること
を示す。したがって、メモリアクセスが読み出しアクセ
スの場合に限り、ソースノードに共有アクセス権がある
ことをチェックして、メモリアクセスコマンドの転送先
をターゲットノードのみに限定することができる。
いうことは、対象メモリフロックについて他ノードでも
Sharedの状態でキャッシングしている可能性があること
を示す。したがって、メモリアクセスが読み出しアクセ
スの場合に限り、ソースノードに共有アクセス権がある
ことをチェックして、メモリアクセスコマンドの転送先
をターゲットノードのみに限定することができる。
【0069】さらに第2の変形例として、排他アクセス
権か、共有アクセス権かを区別してアクセス権メモリに
登録する構成も可能である。上記実施例及び第1の変形
例ではいずれもアクセス権の状態は1ビットで登録でき
たが、第2の変形例では、アクセス権無し、共有アクセ
ス権、排他アクセス権の3状態を登録するために2ビッ
トが必要である。その代わり、第2の変形例では、メモ
リアクセスが読み出しアクセスの場合は、ソースノード
に共有アクセス権が有ることをチェックしてメモリアク
セスコマンドの転送先をターゲットノードに限定でき、
メモリアクセスが書込みアクセスの場合はソースノード
に排他アクセス権があることをチェックしてメモリアク
セスコマンドの転送先をターゲットノードに限定でき
る。つまり、無駄なメモリアクセストランザクションを
省いてネットワークのビジー率を逓減する効果がより大
きい。
権か、共有アクセス権かを区別してアクセス権メモリに
登録する構成も可能である。上記実施例及び第1の変形
例ではいずれもアクセス権の状態は1ビットで登録でき
たが、第2の変形例では、アクセス権無し、共有アクセ
ス権、排他アクセス権の3状態を登録するために2ビッ
トが必要である。その代わり、第2の変形例では、メモ
リアクセスが読み出しアクセスの場合は、ソースノード
に共有アクセス権が有ることをチェックしてメモリアク
セスコマンドの転送先をターゲットノードに限定でき、
メモリアクセスが書込みアクセスの場合はソースノード
に排他アクセス権があることをチェックしてメモリアク
セスコマンドの転送先をターゲットノードに限定でき
る。つまり、無駄なメモリアクセストランザクションを
省いてネットワークのビジー率を逓減する効果がより大
きい。
【0070】次に、図9、図10および図11を参照
し、第3の変形例に相当する別の実施例を説明する。図
9のマルチプロセッサシステムは、プロセッサノード10
8にローカルキャッシュ111を有している。他のプロセッ
サノード109、110も同様にそれぞれローカルキャッシュ
を有する。このように、各ノードにローカルキャッシュ
付加した点が図1のマルチプロセッサシステムと異な
る。本実施例では、図1でメモリに対して適用していた
ACTVコマンドをローカルキャッシュに対して発行する。
図1の実施例で説明したメモリに対するACTVコマンドの
発行を併用することも可能である。
し、第3の変形例に相当する別の実施例を説明する。図
9のマルチプロセッサシステムは、プロセッサノード10
8にローカルキャッシュ111を有している。他のプロセッ
サノード109、110も同様にそれぞれローカルキャッシュ
を有する。このように、各ノードにローカルキャッシュ
付加した点が図1のマルチプロセッサシステムと異な
る。本実施例では、図1でメモリに対して適用していた
ACTVコマンドをローカルキャッシュに対して発行する。
図1の実施例で説明したメモリに対するACTVコマンドの
発行を併用することも可能である。
【0071】なお、図9のローカルキャッシュ111は、ノ
ードコントローラ100と同一のLSIに集積されている構成
であってもよい。また、図9に示す様にローカルメモリ
とは別に設けられたメモリを使用しても、ローカルメモ
リの一部を使用しても構わない。
ードコントローラ100と同一のLSIに集積されている構成
であってもよい。また、図9に示す様にローカルメモリ
とは別に設けられたメモリを使用しても、ローカルメモ
リの一部を使用しても構わない。
【0072】図10にローカルキャッシュの構成例を示
す。ローカルキャッシュはタグユニット601と、データ
アレイ602から成り、信号線112-1を介してメモリアクセ
スコマンドを入力として受け取り、信号線112-2を介し
てデータの授受を行う。
す。ローカルキャッシュはタグユニット601と、データ
アレイ602から成り、信号線112-1を介してメモリアクセ
スコマンドを入力として受け取り、信号線112-2を介し
てデータの授受を行う。
【0073】本ローカルキャッシュはプロセッサからの
メモリアクセス要求に対応するアドレスおよびデータを
入力とし、当該キャッシュに対するアクセスでヒットす
る場合は、キャッシュデータのリターンまたはアクセス
の完了を通知する機能と、当該キャッシュに対するアク
セスがミスする場合は、当該アドレスのメモリを有する
ターゲットノードに対してメモリアクセスを行い、必要
に応じて当該ローカルキャッシュへの登録を行う機能を
持っている。なお、本ローカルキャッシュに関しても、
図6で示した状態遷移図に基づいて制御される。なお、
ローカルキャッシュを構成する構成要素についても、DR
AMであってもSRAMであっても本発明は適用可能である。
メモリアクセス要求に対応するアドレスおよびデータを
入力とし、当該キャッシュに対するアクセスでヒットす
る場合は、キャッシュデータのリターンまたはアクセス
の完了を通知する機能と、当該キャッシュに対するアク
セスがミスする場合は、当該アドレスのメモリを有する
ターゲットノードに対してメモリアクセスを行い、必要
に応じて当該ローカルキャッシュへの登録を行う機能を
持っている。なお、本ローカルキャッシュに関しても、
図6で示した状態遷移図に基づいて制御される。なお、
ローカルキャッシュを構成する構成要素についても、DR
AMであってもSRAMであっても本発明は適用可能である。
【0074】本実施例におけるACTVコマンドをキャッシ
ュに適用する目的は2つあり、第一の目的はデータアレ
イに対する先行的なRASアドレスの入力によるデータ読
み出し時間の短縮、第二の目的は多ウェイ構成時におけ
るウェイ選択の前倒しによるアクセス時間の短縮にあ
る。
ュに適用する目的は2つあり、第一の目的はデータアレ
イに対する先行的なRASアドレスの入力によるデータ読
み出し時間の短縮、第二の目的は多ウェイ構成時におけ
るウェイ選択の前倒しによるアクセス時間の短縮にあ
る。
【0075】したがって、プロセッサの内蔵キャッシュ
のミスによりシステムバスに送出されたメモリアクセス
コマンドはシステムバスを介して、ノードコントローラ
100に渡される。システムバスに送出されたメモリアク
セスコマンドを用いて、当該システムバスに結合されて
いる他プロセッサではローカルスヌープを行う。ローカ
ルスヌープ以前、またはこれと並行して、ACTVコマンド
をローカルキャッシュに送る。、ローカルキャッシュで
は当該ACTVコマンドに含まれるアドレスを用いて、ウェ
イ選択およびタグの読み出しを行い、データアレイへの
RASアドレス入力をこれらと並行して行う。
のミスによりシステムバスに送出されたメモリアクセス
コマンドはシステムバスを介して、ノードコントローラ
100に渡される。システムバスに送出されたメモリアク
セスコマンドを用いて、当該システムバスに結合されて
いる他プロセッサではローカルスヌープを行う。ローカ
ルスヌープ以前、またはこれと並行して、ACTVコマンド
をローカルキャッシュに送る。、ローカルキャッシュで
は当該ACTVコマンドに含まれるアドレスを用いて、ウェ
イ選択およびタグの読み出しを行い、データアレイへの
RASアドレス入力をこれらと並行して行う。
【0076】図11にACTVコマンドを用いる場合のローカ
ルキャッシュアクセスのタイミング図を示す。プロセッ
サからシステムバスに対してメモリアクセスコマンドが
送出されると、ノードコントローラにより当該メモリア
クセスコマンドが受理され、ローカルキャッシュに対し
てACTVコマンドの発行を1対1転送で行う。この間、シ
ステムバスでは、当該メモリアクセスコマンドに対応す
るアドレスが他プロセッサにキャッシュされていないこ
との確認を行う(ローカルスヌープ)。ローカルキャッシ
ュでは、当該ACTVコマンドに対応するアドレスに基づい
てWay選択を行うと共に、データアレイに対してRASアド
レスのみを入力する。その後、ローカルスヌープ結果
と、way選択(ヒットミス判断を含む)の結果、ローカ
ルキャッシュのデータをアクセスする必要があるなら
ば、CASアドレスを入力し、当該アドレスに対応するキ
ャッシュデータの読み出しを行って、ノードコントロー
ラを仲介してシステムバスにデータを渡すという動作を
行う。
ルキャッシュアクセスのタイミング図を示す。プロセッ
サからシステムバスに対してメモリアクセスコマンドが
送出されると、ノードコントローラにより当該メモリア
クセスコマンドが受理され、ローカルキャッシュに対し
てACTVコマンドの発行を1対1転送で行う。この間、シ
ステムバスでは、当該メモリアクセスコマンドに対応す
るアドレスが他プロセッサにキャッシュされていないこ
との確認を行う(ローカルスヌープ)。ローカルキャッシ
ュでは、当該ACTVコマンドに対応するアドレスに基づい
てWay選択を行うと共に、データアレイに対してRASアド
レスのみを入力する。その後、ローカルスヌープ結果
と、way選択(ヒットミス判断を含む)の結果、ローカ
ルキャッシュのデータをアクセスする必要があるなら
ば、CASアドレスを入力し、当該アドレスに対応するキ
ャッシュデータの読み出しを行って、ノードコントロー
ラを仲介してシステムバスにデータを渡すという動作を
行う。
【0077】これに対して、ACTVを用いない方法では、
ローカルスヌープの結果を待ってから、Way選択を開始
し、データアレイに対してはWay選択後にRASアドレス、
CASアドレスを順次入力する必要があるため、非常にデ
ータが得られるまでの時間がかかることになる。
ローカルスヌープの結果を待ってから、Way選択を開始
し、データアレイに対してはWay選択後にRASアドレス、
CASアドレスを順次入力する必要があるため、非常にデ
ータが得られるまでの時間がかかることになる。
【0078】なお、ローカルキャッシュではなくローカ
ルメモリに対するアクセスである場合には、アクセス権
メモリの検索により他ノードでのキャッシング可能性を
調べて、他ノードでのキャッシング可能性がない場合に
はターゲットノードに1対1転送でメモリアクセスコマ
ンドを転送し、ターゲットノードでCASアドレスの追加
的指定を行ってメモリアクセスを行う点は図1の実施例
と同様である。
ルメモリに対するアクセスである場合には、アクセス権
メモリの検索により他ノードでのキャッシング可能性を
調べて、他ノードでのキャッシング可能性がない場合に
はターゲットノードに1対1転送でメモリアクセスコマ
ンドを転送し、ターゲットノードでCASアドレスの追加
的指定を行ってメモリアクセスを行う点は図1の実施例
と同様である。
【0079】
【発明の効果】本発明では、プロセッサからのメモリア
クセスリクエストを複数のコマンドに分割し、アドレス
コードに基づいて先行するコマンドをアクセス対象に1
対1で転送し、キャッシュ一致制御などの処理前にメモ
リ中のアクセス対象を特定しておき、キャッシュ一致制
御後に実際のメモリアクセスを行うことが判明すれば後
続のコマンドにより実際のメモリアクセスを行うことに
より、メモリアクセスレイテンシを低減する効果があ
る。
クセスリクエストを複数のコマンドに分割し、アドレス
コードに基づいて先行するコマンドをアクセス対象に1
対1で転送し、キャッシュ一致制御などの処理前にメモ
リ中のアクセス対象を特定しておき、キャッシュ一致制
御後に実際のメモリアクセスを行うことが判明すれば後
続のコマンドにより実際のメモリアクセスを行うことに
より、メモリアクセスレイテンシを低減する効果があ
る。
【0080】また、本発明の方法では、先行するコマン
ドでは実際のデータ読み出しを伴わないため、従来の先
読み方式と異なりキャッシュ一致制御の結果、メモリア
クセスを必要としない場合には、無駄なメモリアクセス
を行わないのと、1対1転送に基づくことから、スルー
プットの浪費を防ぐ効果と、アドレスのスループットを
浪費しない効果がある。
ドでは実際のデータ読み出しを伴わないため、従来の先
読み方式と異なりキャッシュ一致制御の結果、メモリア
クセスを必要としない場合には、無駄なメモリアクセス
を行わないのと、1対1転送に基づくことから、スルー
プットの浪費を防ぐ効果と、アドレスのスループットを
浪費しない効果がある。
【0081】さらに、先行コマンドによりデータ読み出
しを伴わないため、マルチプロセッサ構成時における複
数のメモリアクセスリクエストに対する順序付けの制御
も容易である。
しを伴わないため、マルチプロセッサ構成時における複
数のメモリアクセスリクエストに対する順序付けの制御
も容易である。
【図1】本発明の一実施例のシステム全体構成を示すブ
ロック図である。
ロック図である。
【図2】上記実施例のノードコントローラの構成を示す
ブロック図である。
ブロック図である。
【図3】上記実施例のプロセッサインターフェースユニ
ットの構成すブロック図である。
ットの構成すブロック図である。
【図4】上記嫉視例のメモリインターフェースユニット
の構成を示すブロック図である。
の構成を示すブロック図である。
【図5】上記実施例におけるメモリアクセス処理手順を
示す概念図である。
示す概念図である。
【図6】上記実施例のキャッシュ状態を示す状態遷移図
である。
である。
【図7】従来のメモリアクセスの処理手順を示すタイム
チャートである。
チャートである。
【図8】上記実施例のメモリアクセスの処理手順を示す
タイムチャートである。
タイムチャートである。
【図9】別の実施例のシステム全体構成を示すブロック
図である。
図である。
【図10】上記別の実施例のローカルキャッシュの構成
をしめすブロック図である。
をしめすブロック図である。
【図11】上記別の実施例のACTVコマンドを用いたロー
カルキャッシュアクセス手順を示すタイムチャートであ
る。
カルキャッシュアクセス手順を示すタイムチャートであ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 上原 敬太郎 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 濱中 直樹 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 庄内 亨 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 岡田 哲彦 神奈川県海老名市下今泉810番地 株式会 社日立製作所サーバ開発本部内 (72)発明者 柏山 正守 神奈川県海老名市下今泉810番地 株式会 社日立製作所サーバ開発本部内
Claims (9)
- 【請求項1】主記憶を構成するメモリと、該主記憶のメ
モリブロックの一部を一時的に格納するキャッシュを内
蔵する少なくとも1つのプロセッサユニットを各々有す
る複数のプロセッサノードと、該複数のプロセッサノー
ド及び前記メモりを相互に結合するネットワークを有す
るプロセッサシステムにおいて、 各プロセッサノードは、 自プロセッサノードに含まれるプロセッサユニットに主
記憶アクセスリクエストが発生したことに応動して、ア
クセス対象アドレスを含むメモリをターゲットノードと
して特定し、第1のコマンドを該ターゲットノードに向
けて発行する第1手段と、 前記主記憶アクセスリクエストに応動してアクセス対象
アドレスを含むメモリブロックが他のプロセッサノード
のキャッシュに格納されている可能性の有無を判定し、
前記判定の結果が可能性無しの時は前記ターゲットノー
ドに向けて第2種のコマンドを発行し、前記判定の結果
が可能性有りのときはキャッシュ一貫制御のために自プ
ロセッサノード以外の全プロセッサノードに向けて前記
第2種のコマンドを配信する第2手段とを有し、 前記メモリは、前記第1種のコマンドを受信し、その後
に第2のコマンドを受信したときにアクセスされること
特徴とするプロセッサシステム。 - 【請求項2】前記第1のコマンドは前記メモリのアクセ
ス対象アドレスのうちの行アドレスを特定させるコマン
ドであり、前記第2のコマンドは前記メモリの列アドレ
スを追加的に特定させメモリアクセスを実行させるコマ
ンドであることを特徴とする請求項1記載のプロセッサ
システム。 - 【請求項3】前記メモリは、受信した前記第1種のコマ
ンドにより行アドレスが指定され、プロセッサノードに
配信された前記第2種のコマンドにより各プロセッサ間
でキャッシュ一貫制御が行われた後で、受信した前記第
2種のコマンドにより列アドレスが指定されてアクセス
されることを特徴とする請求項1記載のプロセッサシス
テム。 - 【請求項4】各ノードはプロセッサユニットを複数有
し、前記第2の手段は自プロセッサ、ノード内でのキャ
ッシュ一貫制御を行った後で前記第2のコマンドを発行
することを特徴とする請求項1記載のプロセッサシステ
ム。 - 【請求項5】主記憶を構成するメモリと、該主記憶のメ
モリブロックの一部を一時的に格納するキャッシュを含
む少なくとも1つのプロセッサユニットとの双方を各々
有する複数のプロセッサノードと、該複数のプロセッサ
ノードの間を結合するネットワークを有するプロセッサ
システムにおいて、 各プロセッサノードは、 自プロッセッサノードに含まれるプロセッサユニットに
主記憶アクセスリクエストが発生したことに応動して、
アクセス対象アドレスが割り当てられたメモリを有する
プロセッサノードをターゲットノードとして特定し、第
1種のコマンドを該ターゲットノードに向けて発行する
第1手段と、 前記主記憶アクセスリクエストに応動してアクセス対象
アドレスを含むメモリブロックが他ノードのキャッシュ
に格納されている可能性の有無を判定し、前記判定の結
果が可能性無しの時は前記ターゲットノードに向けて第
2種のコマンドを発行し、前記判定の結果が可能性有り
のときはキャッシュ一貫制御のために自プロセッサノー
ド以外の全プロセッサノードに向けて前記第2種のコマ
ンドを配信する第2手段と、 他プロセッサノードから受信した前記第1種のコマンド
に基づき前記メモリにアクセスアドレスの一部を入力
し、他プロセッサノードから受信した前記第2種のコマ
ンドの示すアクセス対象アドレスが自プロセッサノード
のメモリのとき、前記アクセスアドレスの少なくとも残
りの部分を前記メモリに入力してメモリアクセスを実行
させる第3手段とを有するプロセッサシステム。 【請求項5】前記第3の手段は、他プロセッサノードか
ら受信した前記第2種のコマンドが複数のプロセッサノ
ードに配信されたものである場合に、各プロセッサユニ
ットのキャッシュ状態のスヌープの結果メモリアクセス
が許可されたときに前記アクセスアドレスの残りの部分
を前記メモリに入力することを特徴とする請求項4のプ
ロセッサシステム。 - 【請求項6】主記憶を構成するメモリと、該主記憶のメ
モリブロックの一部を一時的に格納するキャッシュを含
む少なくとも1つのプロセッサユニットとの双方を各々
有する複数のプロセッサノードと、該複数のプロセッサ
ノードの間を結合するネットワークを有するプロセッサ
システムにおいて、 各プロセッサノードは、 自ノードに含まれるプロセッサユニットに主記憶アクセ
スリクエストが発生したことに応動して、アクセス対象
アドレスが割り当てられたメモリを有するプロセッサノ
ードをターゲットノードとして特定し、第1のコマンド
を該ターゲットノードに向けて発行する第1手段と、 前記主記憶の複数のメモリブロックについて、それぞれ
自プロセッサノードにアクセス権が有るか否かを記録す
るアクセス権メモリと、 前記主記憶アクセスリクエストにアクセス対象アドレス
により前記アクセス権メモリを検索し、検索の結果が自
プロセッサノードにアクセス権有りの時は前記ターゲッ
トノードに向けて第2種のコマンドを発行し、検索の結
果が自プロセッサノードにアクセス権無しもしくは登録
無しのときはキャッシュ一貫制御のために自プロセッサ
ノード以外の全プロセッサノードに向けて前記第2種の
コマンドを配信する第2手段とを有し、 前記各プロセッサノードのメモリは、自プロセッサノー
ドが前記第1種のコマンドを受信し、その後に第2のコ
マンドを受信した後でアクセスされること特徴とするプ
ロセッサシステム。 - 【請求項7】主記憶を構成するメモリと、該主記憶のメ
モリブロックの一部を一時的に格納するキャッシュを含
む少なくとも1つのプロセッサユニットとの双方を各々
有する複数のプロセッサノードと、該複数のプロセッサ
ノードの間を結合するネットワークを有するプロセッサ
システムのノードコントローラを構成するための集積回
路セットであり、 自プロセッサノードに含まれるプロセッサユニットに主
記憶アクセスリクエストが発生したことに応動して、ア
クセス対象アドレスが割り当てられたメモリを有するプ
ロセッサノードをターゲットノードとして特定し、第1
種のコマンドを該ターゲットノードに向けて発行する第
1手段と、 前記主記憶アクセスリクエストに応動してアクセス対象
アドレスを含むメモリブロックが他ノードのキャッシュ
に格納されている可能性の有無を判定し、前記判定の結
果が可能性無しの時は前記ターゲットノードに向けて第
2種のコマンドを発行し、前記判定の結果が可能性有り
のときはキャッシュ一貫制御のために自プロセッサノー
ド以外の全プロセッサノードに向けて前記第2種のコマ
ンドを配信する第2手段と、 他プロセッサノードから受信した前記第1種のコマンド
に基づき前記メモリにアクセスアドレスの一部を入力
し、他プロセッサノードから受信した前記第2種のコマ
ンドの示すアクセス対象アドレスが自プロセッサノード
のメモリのとき、前記アクセスアドレスの少なくとも残
りの部分を前記メモリに入力してメモリアクセスを実行
させる第3手段を含むことを特徴とする集積回路セッ
ト。 - 【請求項8】主記憶を構成するメモリと、該主記憶のメ
モリブロックの一部を一時的に格納するキャッシュを含
む少なくとも1つのプロセッサユニットを各々有する複
数のプロセッサノードの間で、前記プロセッサユニット
の1つで発生するメモリアクセスリクエストに起因する
トランザクションを転送する方法において、 前記メモリアクセスリクエストが発生したソースノード
から該メモリアクセスリクエストのアクセス対象アドレ
スが割り当てられたメモリをもつターゲットノードに前
記アクセス対象アドレスの一部を指定するための第1の
トランザクションを1対1で転送すること、 前記ソースノード内のローカルなキャシュ一貫制御の
後、前記アクセス対象アドレスを含むメモリブロックが
前記ソースノード以外のプロセッサノードのキャッシュ
に格納されている可能性が有る場合はグローバルなキャ
ッシュ一貫制御のために前記ソースノード以外の全ての
プロセッサノードに第2のトランザクションを転送し、
前記アクセス対象アドレスを含むメモリブロックが前記
ソースノード以外のプロセッサノードのキャッシュに格
納されている可能性が無い場合は前記ターゲットノード
に前記第2のトランザクションを転送すること、を含
み、 前記ターゲットノードでは前記第2のトランザクション
によりアクセス対象アドレスの残りの部分を指定して前
記メモリのアクセスを実行することを特徴とするトラン
ザクションの転送方法。 - 【請求項9】主記憶を構成するメモリと、該主記憶のメ
モリブロックの一部を一時的に格納するキャッシュを含
む少なくとも1つのプロセッサユニットとの双方を各々
有する複数のプロセッサノードの間で、前記プロセッサ
ユニットの1つで発生するメモリアクセスリクエストに
起因するトランザクションを転送する方法において、 前記メモリアクセスリクエストが発生したソースノード
から該メモリアクセスリクエストのアクセス対象アドレ
スが割り当てられたメモリをもつターゲットノードに前
記アクセス対象アドレスの一部を指定するための第1の
トランザクションを1対1で転送すること、 前記ソースノード内のローカルなキャシュ一貫制御の
後、前記アクセス対象アドレスを含むメモリブロックが
前記ソースノード以外のプロセッサノードのキャッシュ
に格納されている可能性が有る場合はグローバルなキャ
ッシュ一貫制御のために前記ソースノード以外の全ての
プロセッサノードに第2のトランザクションを転送し、
前記アクセス対象アドレスを含むメモリブロックが前記
ソースノード以外のプロセッサノードのキャッシュに格
納されている可能性が無い場合は前記ターゲットノード
に前記第2のトランザクションを転送すること、を含
み、 前記ターゲットノードでは前記第2のトランザクション
によりアクセス対象アドレスの残りの部分を指定して前
記メモリのアクセスを実行することを特徴とするトラン
ザクションの転送方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000060374A JP2000330965A (ja) | 1999-03-17 | 2000-03-01 | マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法 |
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP7140399 | 1999-03-17 | ||
| JP11-71403 | 1999-03-17 | ||
| JP2000060374A JP2000330965A (ja) | 1999-03-17 | 2000-03-01 | マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2000330965A true JP2000330965A (ja) | 2000-11-30 |
Family
ID=13459526
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000060374A Pending JP2000330965A (ja) | 1999-03-17 | 2000-03-01 | マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法 |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US6516391B1 (ja) |
| JP (1) | JP2000330965A (ja) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007272922A (ja) * | 2001-06-04 | 2007-10-18 | Fujitsu Ltd | 複数ノード間での通信方法、相互接続ポートおよび相互接続システム |
| JP2012181860A (ja) * | 2006-03-23 | 2012-09-20 | Internatl Business Mach Corp <Ibm> | アクセラレータ用低コストのキャッシュ一貫性を維持するシステム |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6668308B2 (en) * | 2000-06-10 | 2003-12-23 | Hewlett-Packard Development Company, L.P. | Scalable architecture based on single-chip multiprocessing |
| JP2002197073A (ja) * | 2000-12-25 | 2002-07-12 | Hitachi Ltd | キャッシュ一致制御装置 |
| US8185602B2 (en) | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
| US7676637B2 (en) * | 2004-04-27 | 2010-03-09 | International Business Machines Corporation | Location-aware cache-to-cache transfers |
| JP4695367B2 (ja) * | 2004-08-31 | 2011-06-08 | 富士通株式会社 | 情報処理装置,制御装置及び情報処理装置の制御方法 |
| US7395376B2 (en) * | 2005-07-19 | 2008-07-01 | International Business Machines Corporation | Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of shared memory blocks |
| US7360032B2 (en) * | 2005-07-19 | 2008-04-15 | International Business Machines Corporation | Method, apparatus, and computer program product for a cache coherency protocol state that predicts locations of modified memory blocks |
| JP4572169B2 (ja) * | 2006-01-26 | 2010-10-27 | エヌイーシーコンピュータテクノ株式会社 | マルチプロセッサシステム及びその動作方法 |
| US7568073B2 (en) * | 2006-11-06 | 2009-07-28 | International Business Machines Corporation | Mechanisms and methods of cache coherence in network-based multiprocessor systems with ring-based snoop response collection |
| JP2009223759A (ja) * | 2008-03-18 | 2009-10-01 | Fujitsu Ltd | 情報処理装置,メモリ制御方法およびメモリ制御装置 |
| US8108620B2 (en) * | 2009-03-10 | 2012-01-31 | Hewlett-Packard Development Company, L.P. | Cooperative caching technique |
| JP5321203B2 (ja) * | 2009-03-31 | 2013-10-23 | 富士通株式会社 | システム制御装置、情報処理システムおよびアクセス処理方法 |
| WO2011148483A1 (ja) * | 2010-05-27 | 2011-12-01 | 富士通株式会社 | メモリシステム及びメモリインターフェース装置 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE69622079T2 (de) * | 1995-03-31 | 2002-10-31 | Sun Microsystems, Inc. | Verfahren und Vorrichtung zur schnellen Einleitung von Speicherzugriffen in einem cachekohärenten Multiprozessorsystem |
| US5923859A (en) * | 1995-04-13 | 1999-07-13 | Compaq Computer Corporation | Dual arbiters for arbitrating access to a first and second bus in a computer system having bus masters on each bus |
| JPH0963264A (ja) * | 1995-08-18 | 1997-03-07 | Fujitsu Ltd | 同期型dram |
| US5778435A (en) * | 1996-05-30 | 1998-07-07 | Lucent Technologies, Inc. | History-based prefetch cache including a time queue |
| US5893917A (en) * | 1996-09-30 | 1999-04-13 | Intel Corporation | Memory controller and method of closing a page of system memory |
| TW379298B (en) * | 1996-09-30 | 2000-01-11 | Toshiba Corp | Memory updating history saving device and memory updating history saving method |
| US5895487A (en) * | 1996-11-13 | 1999-04-20 | International Business Machines Corporation | Integrated processing and L2 DRAM cache |
| US6098156A (en) * | 1997-07-22 | 2000-08-01 | International Business Machines Corporation | Method and system for rapid line ownership transfer for multiprocessor updates |
| FR2778258A1 (fr) * | 1998-04-29 | 1999-11-05 | Texas Instruments France | Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces |
| US6263407B1 (en) * | 1998-02-17 | 2001-07-17 | International Business Machines Corporation | Cache coherency protocol including a hovering (H) state having a precise mode and an imprecise mode |
-
2000
- 2000-03-01 JP JP2000060374A patent/JP2000330965A/ja active Pending
- 2000-03-13 US US09/523,737 patent/US6516391B1/en not_active Expired - Fee Related
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2007272922A (ja) * | 2001-06-04 | 2007-10-18 | Fujitsu Ltd | 複数ノード間での通信方法、相互接続ポートおよび相互接続システム |
| JP2013012235A (ja) * | 2001-06-04 | 2013-01-17 | Fujitsu Ltd | 複数ノード間での通信方法、相互接続ポートおよび相互接続システム |
| JP2012181860A (ja) * | 2006-03-23 | 2012-09-20 | Internatl Business Mach Corp <Ibm> | アクセラレータ用低コストのキャッシュ一貫性を維持するシステム |
Also Published As
| Publication number | Publication date |
|---|---|
| US6516391B1 (en) | 2003-02-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7234029B2 (en) | Method and apparatus for reducing memory latency in a cache coherent multi-node architecture | |
| JP3722415B2 (ja) | 効率的なバス機構及びコヒーレンス制御を有する繰り返しチップ構造を有するスケーラブル共用メモリ・マルチプロセッサ・コンピュータ・システム | |
| US7814279B2 (en) | Low-cost cache coherency for accelerators | |
| KR100318104B1 (ko) | 공유 인터벤션을 지원하는 비균등 메모리접근 데이터처리시스템 | |
| US9129071B2 (en) | Coherence controller slot architecture allowing zero latency write commit | |
| US7032074B2 (en) | Method and mechanism to use a cache to translate from a virtual bus to a physical bus | |
| US9298643B2 (en) | Performance and power improvement on DMA writes to level two combined cache/SRAM that is cached in level one data cache and line is valid and dirty | |
| US5659710A (en) | Cache coherency method and system employing serially encoded snoop responses | |
| US5623632A (en) | System and method for improving multilevel cache performance in a multiprocessing system | |
| US6636949B2 (en) | System for handling coherence protocol races in a scalable shared memory system based on chip multiprocessing | |
| US4394731A (en) | Cache storage line shareability control for a multiprocessor system | |
| US8131935B2 (en) | Virtual barrier synchronization cache | |
| US8095733B2 (en) | Virtual barrier synchronization cache castout election | |
| US7409504B2 (en) | Chained cache coherency states for sequential non-homogeneous access to a cache line with outstanding data response | |
| EP1311956B1 (en) | Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system | |
| JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
| US6535958B1 (en) | Multilevel cache system coherence with memory selectively configured as cache or direct access memory and direct memory access | |
| JP2000330965A (ja) | マルチプロセッサシステム及びそのメモリアクセストランザクションの転送方法 | |
| JP2000250884A (ja) | 不均等メモリ・アクセス・コンピュータ・システムにおいてエヴィクション・プロトコルを提供するための方法およびシステム | |
| US5987544A (en) | System interface protocol with optional module cache | |
| US8332592B2 (en) | Graphics processor with snoop filter | |
| US20050216672A1 (en) | Method and apparatus for directory-based coherence with distributed directory management utilizing prefetch caches | |
| US11899607B2 (en) | Sending a request to agents coupled to an interconnect | |
| US6226718B1 (en) | Method and system for avoiding livelocks due to stale exclusive/modified directory entries within a non-uniform access system | |
| JPH06318174A (ja) | キャッシュ・メモリ・システム及び主メモリに記憶されているデータのサブセットをキャッシュする方法 |