JP2001034533A - キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法 - Google Patents

キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法

Info

Publication number
JP2001034533A
JP2001034533A JP11206036A JP20603699A JP2001034533A JP 2001034533 A JP2001034533 A JP 2001034533A JP 11206036 A JP11206036 A JP 11206036A JP 20603699 A JP20603699 A JP 20603699A JP 2001034533 A JP2001034533 A JP 2001034533A
Authority
JP
Japan
Prior art keywords
cache
state
address
processor
data
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
JP11206036A
Other languages
English (en)
Inventor
Takuya Shimura
卓也 志村
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno 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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP11206036A priority Critical patent/JP2001034533A/ja
Publication of JP2001034533A publication Critical patent/JP2001034533A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 自キャッシュラインを無効化したCPUが本
アドレスのデータを読み出す場合は、リード要求を出し
て他のCPUよりデータを転送する動作が必要となり、
CPU間のデータ転送時間により性能低下が生じる。 【解決手段】 キャッシュ制御部100は、キャッシ
ュ状態として、無効状態、排他状態、共有状態、変更状
態、仮無効状態の各状態を有する。排他制御命令時、該
当するキャッシュの状態が排他状態もしくは共有状態で
あった場合、該当キャッシュの状態を仮無効状態へ状態
遷移し、キャッシュデータを無効としない。システム内
の他のCPU400もしくはノード600から該当アド
レスに対して読み出し要求が発行され、かつシステム内
のキャッシュスヌープ結果が未変更の場合は仮無効状態
のキャッシュラインからデータを読み出す。これによ
り、データ転送時間を省き性能低下を軽減することが可
能となる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はマルチプロセッサシ
ステムのキャッシュコヒーレンシ制御に関し、特にME
SIプロトコルを用いたキャッシュコヒーレンシ制御方
式に関する。
【0002】
【従来の技術】従来、シングルプロセッサ時において
は、コヒーレンシ制御を必要としない。しかし、コンピ
ュータシステム処理能力向上の必要性から、コンピュー
タシステム上に複数個のプロセッサを搭載するマルチプ
ロセッサシステムが要求されている。マルチプロセッサ
システムキャッシュコヒーレンシ制御方式としてMES
Iプトトコルを用いるキャッシュコヒーレンシ制御方式
がある。
【0003】特開平10−320283号公報「マルチ
プロセッサ・データ処理システム内でキャッシュコヒー
レンシを維持するキャッシュ・コヒーレンシプロトコル
を提供する方法及び装置」では、キャッシュラインをそ
れぞれ、変更状態、排他状態、共用状態、無効状態、最
近読み取り状態、上流未定義状態を設けることにより、
マルチプロセッサシステムにおいてのそれぞれのCPU
配下のキャッシュコヒーレンシを維持することが開示さ
れている。図6は、従来のキャッシュコヒーレンシ制御
方式におけるキャッシュ状態の遷移を示す図である。こ
の手法は、6種類のキャッシュ状態間で状態遷移を行う
ことにより、キャッシュラインの整合性を保つ。
【0004】
【発明が解決しようとする課題】特開平10−3202
83号公報「マルチプロセッサ・データ処理システム内
でキャッシュコヒーレンシを維持するキャッシュ・コヒ
ーレンシプロトコルを提供する方法及び装置」では、マ
ルチプロセッサシステム内のあるCPUが排他制御命令
を発行し、該当アドレスのキャッシュデータが他のCP
Uのキャッシュに格納されていた場合、要求されたCP
Uは自キャッシュラインのデータを無効化する。自キャ
ッシュラインを無効化したCPUが本アドレスのデータ
を読み出す必要が生じた場合は、リード要求を出して他
のCPUもしくはノードよりデータを転送する動作が必
要となる。このため、CPUもしくはノード間のデータ
転送時間により性能低下が生じるという問題がある。
【0005】本発明の主な目的は、排他制御命令発行元
がデータを変更するとは限らないため、無効化すべきキ
ャッシュラインの状態に仮無効状態を設けることによ
り、上記排他制御時におけるキャッシュデータの転送時
間を軽減し、マルチプロセッサシステムの性能を向上を
図ったキャッシュコヒーレンシ制御方式を提供すること
にある。
【0006】
【課題を解決するための手段】本発明第一のキャッシュ
コヒーレンシ制御装置は、1次キャッシュを有する複数
のプロセッサから構成されるマルチプロセッサシステム
の2次キャッシュメモリのキャッシュコヒーレンシ制御
装置であって、前記2次キャッシュメモリの状態は無効
状態、排他状態、共有状態、変更状態、仮無効状態を備
え、前記プロセッサから排他制御命令が発行され、前記
排他制御命令のアドレスが前記2次キャッシュメモリに
ヒットした時に前記アドレスに対応するキャッシュライ
ンの状態を仮無効状態とする。
【0007】本発明第二のキャッシュコヒーレンシ制御
装置は、1次キャッシュを有する複数のプロセッサから
構成されるマルチプロセッサシステムの2次キャッシュ
メモリのキャッシュコヒーレンシ制御装置であって、前
記2次キャッシュメモリの状態は無効状態、排他状態、
共有状態、変更状態、仮無効状態を備え、前記プロセッ
サから排他制御命令が発行されたときに、前記排他制御
命令のアドレスが前記2次キャッシュメモリにヒットし
たかどうか判断するためのアドレスタグ制御回路を有
し、前記アドレスタグ制御回路はタグメモリとキャッシ
ュライン毎に前記2次キャッシュメモリの前記状態を示
すレジスタを備え、前記レジスタが前記仮無効状態を示
し、かつ前記アドレス制御回路が前記アドレスをヒット
と判定した時に前記アドレスに対応する前記キャッシュ
ラインの前記レジスタを前記仮無効状態とする。
【0008】本発明第三のキャッシュコヒーレンシ制御
装置は、1次キャッシュを有する複数のプロセッサから
構成されるマルチプロセッサシステムの2次キャッシュ
メモリのキャッシュコヒーレンシ制御装置であって、前
記2次キャッシュメモリの状態は無効状態、排他状態、
共有状態、変更状態、仮無効状態を備え、前記プロセッ
サから排他制御命令が発行された時に、前記排他制御命
令のアドレスが前記2次キャッシュメモリにヒットした
かどうか判断するためのアドレスタグ制御回路を有し、
前記アドレスタグ制御回路はタグメモリとキャッシュラ
イン毎に前記2次キャッシュメモリの前記状態を示すレ
ジスタを備え、前記レジスタが前記仮無効状態を示し、
かつ前記アドレス制御回路が前記アドレスをヒットと判
定した時に前記アドレスに対応する前記キャッシュライ
ンの前記レジスタを仮無効状態とし、さらに前記キャッ
シュラインに記憶されたデータを読み出す制御回路およ
び読み出しバッファを設け、前記バッファに仮無効状態
を示す第二のレジスタを備えた。
【0009】本発明第四のキャッシュコヒーレンシ制御
装置は、1次キャッシュを有する第一のプロセッサと1
次キャッシュを有する第二のプロセッサから構成される
マルチプロセッサシステムの2次キャッシュメモリのキ
ャッシュコヒーレンシ制御装置であって、前記2次キャ
ッシュメモリの状態は無効状態、排他状態、共有状態、
変更状態、仮無効状態を備え、前記第一のプロセッサか
ら排他制御命令が発行されたときに、前記排他制御命令
のアドレスが前記2次キャッシュメモリにヒットしたか
どうか判断するためのアドレスタグ制御回路を有し、前
記アドレスタグ制御回路はタグメモリとキャッシュライ
ン毎に前記2次キャッシュメモリの無効状態、排他状
態、共有状態、変更状態、仮無効状態を示すレジスタを
備え、前記レジスタが前記仮無効状態を示し、かつ前記
アドレス制御回路が前記アドレスをヒットと判定した時
に前記アドレスに対応する前記キャッシュラインの前記
レジスタを仮無効状態とし、さらに前記キャッシュライ
ンに記憶されたデータを読み出す制御回路および読み出
しバッファを設け、前記バッファに仮無効状態を示す第
二のレジスタを備え、 前記第二のプロセッサから、前
記キャッシュラインのリード命令が発行され、前記キャ
ッシュラインの状態を示す前記レジスタが仮無効状態で
あった場合、前記第一のプロセッサ内の前記1次キャッ
シュのスヌープ命令を発行し、前記キャッシュラインよ
りデータを読み出し、前記バッファに格納して前記第二
のレジスタを前記仮無効状態とし、前記スヌープ命令の
結果が前記リード命令アドレス内のデータが変更無しと
通知された場合、前記第二のプロセッサへ前記バッファ
からデータを転送する。
【0010】本発明の2次キャッシュメモリは、キャッ
シュデータメモリと、本発明第二、第三または第四のキ
ャッシュコヒーレンシ制御装置を有する。
【0011】本発明の中央処理装置は、1次キャッシュ
を有するプロセッサと本発明の2次キャッシュメモリを
接続した。
【0012】本発明のプロセッサノードは、1次キャッ
シュを有する複数のプロセッサと前記複数のプロセッサ
とシステムバスを接続するバスブリッジとキャッシュデ
ータメモリと本発明第二、第三または第四のキャッシュ
コヒーレンシ制御装置を有する。
【0013】本発明の第一のマルチプロセッサシステム
は、主記憶と入出力装置と複数の本発明の中央処理装置
のそれぞれをバスにより接続した。
【0014】本発明の第二のマルチプロセッサシステム
は、主記憶と入出力装置と複数の本発明のプロセッサノ
ードのそれぞれをバスにより接続した。
【0015】本発明のキャッシュコヒーレンシ制御方法
は、1次キャッシュを有する第一のプロセッサと1次キ
ャッシュを有する第二のプロセッサから構成されるマル
チプロセッサシステムの2次キャッシュメモリのキャッ
シュコヒーレンシ制御方法であって、前記2次キャッシ
ュメモリの状態は無効状態、排他状態、共有状態、変更
状態、仮無効状態を備え、前記2次キャッシュメモリは
キャッシュラインから構成され、前記第一のプロセッサ
が排他制御命令が発行する第一のステップと、前記排他
制御命令のアドレスが前記2次キャッシュメモリにヒッ
トしたかどうか判断する第二のステップと、前記アドレ
スにヒットと判定した時に前記アドレスに対応する前記
キャッシュラインを前記仮無効状態とする第三のステッ
プと、前記キャッシュラインに記憶されたデータを読み
出しバッファへ格納する第四のステップと、前記第二の
プロセッサが前記キャッシュラインのリード命令を発行
する第五のステップと、前記キャッシュラインの状態が
仮無効状態であった場合、前記第一のプロセッサ内の前
記1次キャッシュのスヌープ命令を発行する第六のステ
ップと、前記キャッシュラインよりデータを読み出し、
前記バッファに格納して仮無効状態とする第七のステッ
プと、前記スヌープ命令の結果が前記リード命令アドレ
ス内のデータが変更無しと通知された場合、前記第二の
プロセッサへ前記バッファからデータを転送する第八の
ステップを有する。
【0016】
【発明の実施の形態】次に本発明の実施の形態につき図
面を参照し詳細に説明する。
【0017】図1は、本発明実施の形態のキャッシュコ
ヒーレンシ制御方式におけるキャッシュ状態の遷移を示
す図である。キャッシュ状態として無効状態、排他状
態、共有状態、変更状態、仮無効状態がある。矢印が各
状態間の遷移を示している。仮無効状態は、排他状態も
しくは共有状態が排他制御命令により仮無効状態に遷移
することにより生じる。また、仮無効状態は、リード命
令により共有状態もしくは無効状態に遷移、排他制御命
令により仮無効状態を保持したままか、共有状態、無効
状態になる。各状態の遷移結果はシステム内のキャッシ
ュスヌープ結果によって決まる。キャッシュヒットとは
該当アドレスラインがキャッシュ内に格納されていた場
合。キャッシュミスとは該当アドレスラインがキャッシ
ュ内になかった場合。スヌープとはシステム内のキャッ
シュ状態を参照することを示す。
【0018】図2は、本発明実施の形態のキャッシュコ
ヒーレンシ制御方式を有するマルチプロセッサシステム
の構成を示すブロック図である。主記憶6、入出力装置
7、プロセッサノード5それぞれが、システムバス2を
介して接続されている。キャッシュ制御部100がキャ
ッシュアドレスタグ200とキャッシュ300に接続す
る。プロセッサノード5は、キャッシュ制御部100と
CPU400がそれぞれプロセッサバス51により接続
されている。CPU400は内部キャッシュ409を有
する。内部キャッシュ409は通常のMESIプロトコ
ルにより制御される。CPU400はプロセッサバス5
1からのスヌープ要求により、内部キャッシュ409内
の状態を検査し、必要ならば内部キャッシュ409に格
納されているデータを出力する。キャッシュ制御部10
0は、プロセッサバス51とシステムバス2に接続さ
れ、命令およびデータの橋渡しおよびキャッシュコヒー
レンシ制御を行う。CPU400にて送信された命令お
よびデータはプロセッサバス51を通してキャッシュ制
御部100で受信される。キャッシュ制御部100は命
令およびデータを受信後、アドレスタグ200を読み込
みキャッシュ状態の確認を行う。また、データをキャッ
シュ300へ読み書きする。アドレスタグ200および
キャッシュ300へのアクセス後、必要があればシステ
ムバス2へ命令およびデータを送信する。プロセッサノ
ード5が命令およびデータを発行した場合、同様の処理
を実行後、キャッシュ制御部100は命令およびデータ
をプロセッサバス51へ送信する。
【0019】図3は、本発明のキャッシュコヒーレンシ
制御方式を備えるキャッシュ制御部100の内部構成を
示すブロック図である。キャッシュ制御部100はアド
レスタグ200のリード、ライト、比較制御を行うタグ
リード・ライト・比較回路101、キャッシュタグの状
態を読み書きするためのタグステートレジスタ102、
バス上のアドレスを一時格納するためのアドレスバッフ
ァ103,アドレスバッファ104、バス上のデータを
一時格納するためのデータバッファ105,データバッ
ファ106、キャッシュデータを一時格納するキャッシ
ュデータバッファ109,キャッシュデータバッファ1
10、キャッシュデータバッファが仮無効状態であるこ
とを示す仮無効ビット107,仮無効ビット108を備
える。タグリード・ライト・比較回路101およびタグ
ステートレジスタ102はアドレスタグ200に接続さ
れる。タグリード・ライト・比較回路101については
さらにプロセッサバス51、データバッファ105,1
06,仮無効ビット107,108,キャッシュデータ
バッファ109,110、キャッシュ300に接続され
る。データバッファ105,106はキャッシュ300
もしくはプロセッサバス51に接続される。アドレスバ
ッファ103,104はプロセッサバス51もしくはタ
グリード・ライト・比較回路101に接続される。キャ
ッシュ状態はタグリード・ライト・比較回路101、タ
グステートレジスタ102にて判断され、仮無効状態に
遷移した場合に仮無効ビット107もしくは108に値
がセットされる。また、システム内のキャッシュ状態は
プロセッサバス51のスヌープ信号により送受信され
る。
【0020】以下、本実施の形態の動作につき図1乃至
3を用いて説明する。あるプロセッサノード5bが排他
制御命令を発行し、プロセッサノード5内のキャッシュ
制御部100がシステムバス2を通して排他制御命令を
受信、内部回路であるタグリード・ライト・比較回路1
01およびタグステータスレジスタ102のタグチェッ
ク動作により、アドレスタグ200から該当アドレスの
キャッシュ状態を読み込みチェックする(ステップA−
1)。タグステータスレジスタ102に読み込んだキャ
ッシュ状態が排他状態もしくは共有状態であった場合、
図1に示すようにキャッシュ状態は仮無効状態に遷移す
るため、アドレスタグ200の該当アドレスに仮無効状
態を書き込む。また、同時にキャッシュ300からキャ
ッシュデータをキャッシュデータバッファ110に読み
込み、仮無効ビット108をセットする(ステップA−
2)。キャッシュ制御部100はプロセッサバス51に
対して排他制御命令を発行し、プロセッサバス51に接
続されているCPU400内の内部キャッシュ409の
スヌープ結果が未変更であった場合は、キャッシュデー
タバッファ110のデータを直ちにシステムバス2に転
送する。CPU400内の内部キャッシュ409のスヌ
ープ結果が変更であった場合は、CPU400からのレ
スポンスデータの転送を待ち、システムバス2にデータ
を転送する(ステップA−3)。
【0021】CPU400が排他制御命令を発行し、キ
ャッシュ制御部100がプロセッサバス51を通して排
他制御命令を受信、内部回路であるタグリード・ライト
・比較回路101およびタグステータスレジスタ102
のタグチェック動作により、アドレスタグ200から該
当アドレスのキャッシュ状態を読み込みチェックする
(ステップA−4)。タグステータスレジスタ102に
読み込んだキャッシュ状態が上記ステップA−2で遷移
した仮無効状態であった場合、図1に示すようにキャッ
シュ状態は仮無効状態を保持する。このため、キャッシ
ュ300からキャッシュデータをキャッシュデータバッ
ファ109に読み込み、仮無効ビット107をセットす
る(ステップA−5)。キャッシュ制御部100はシス
テムバス2に対して排他制御命令を発行し、システムバ
ス2に接続されているプロセッサノード5のスヌープ結
果が未変更であった場合は、キャッシュデータバッファ
109のデータを直ちにプロセッサバス51に転送す
る。この動作により、プロセッサノード5からのデータ
転送時間を省くことが可能となる。スヌープ結果が変更
であった場合は、プロセッサノード5のレスポンスデー
タの転送を待ち、プロセッサバス51にデータを転送す
る(ステップA−6)。
【0022】CPU400がリード命令を発行し、キャ
ッシュ制御部100がプロセッサバス51を通してリー
ド命令を受信、内部回路であるタグリード・ライト・比
較回路101およびタグステータスレジスタ102のタ
グチェック動作により、アドレスタグ200から該当ア
ドレスのキャッシュ状態を読み込みチェックする(ステ
ップA−7)。タグステータスレジスタ102に読み込
んだキャッシュ状態が上記(ステップA−2)で遷移し
た仮無効状態であった場合、図1に示すようにキャッシ
ュ状態はシステム内のスヌープ結果が判別されるまでは
仮無効状態を保持する。このため、キャッシュ300か
らキャッシュデータをキャッシュデータバッファ109
に読み込み、仮無効ビット107をセットする(ステッ
プA−8)。キャッシュ制御部100はシステムバス2
に対してリード命令を発行し、システムバス2に接続さ
れているプロセッサノード5のスヌープ結果が未変更で
あった場合は、キャッシュデータバッファ109のデー
タを直ちにプロセッサバス51に転送し、同時にアドレ
スタグ200の該当アドレスに共有状態を書き込み、キ
ャッシュ状態遷移は図1に示すように共有状態へと遷移
する。この動作により、プロセッサノード5からのデー
タ転送時間を省くことが可能となる。スヌープ結果が変
更であった場合は、プロセッサノード5のレスポンスデ
ータの転送を待ち、プロセッサバス51にデータを転送
する(ステップA−9)。
【0023】本発明の効果は、(ステップA−6)およ
び(ステップA−9)の動作において、システムバス2
に接続されたプロセッサノード5からのデータ転送を待
つことなく、キャッシュ制御部100内のキャッシュデ
ータバッファ109から直ちにデータをプロセッサバス
51へ送信できるため、システムとしての処理性能を向
上することが可能となる。また、(ステップA−1)か
ら(ステップA−9)のキャッシュ状態遷移を行うこと
により、キャッシュコヒーレンシを維持することが可能
となる。
【0024】本発明の第二の構成のマルチプロセッサシ
ステムを図面を参照して説明する。図4は、本発明の実
施の形態のキャッシュコヒーレンシ制御方式を有するマ
ルチプロセッサシステムの第二の構成を示すブロック図
である。ノード500は、ひとつあるいは複数のCPU
400とから構成され、複数のCPU400はノードバ
ス509で接続され、で共有する内部キャッシュ409
を介してプロセッサバス51に接続される。CPU40
0はプロセッサバス51を介してキャッシュ制御部10
0と接続され、キャッシュ制御部100がキャッシュア
ドレスタグ200とキャッシュ300に接続しキャッシ
ュノード600を構成する。ノード600はシステムバ
ス2を介して他のノード600、主記憶6、入出力装置
7と接続されている。
【0025】キャッシュ制御部100は、プロセッサバ
ス51とシステムバス2に接続され、命令およびデータ
の橋渡しおよびキャッシュコヒーレンシ制御を行う。ノ
ード500から命令およびデータはプロセッサバス51
を通してキャッシュ制御部100で受信される。キャッ
シュ制御部100は命令およびデータを受信後、アドレ
スタグ200を読み込みキャッシュ状態の確認を行う。
また、データをキャッシュ300へ読み書きする。アド
レスタグ200およびキャッシュ300へのアクセス
後、必要があればシステムバス2へ命令およびデータを
送信する。ノード500が命令およびデータを発行した
場合、同様の処理を実行後、キャッシュ制御部100は
命令およびデータをプロセッサバス51へ送信する。
【0026】本実施の形態の動作につき図1、2、4を
用いて説明する。
【0027】まず、内部キャッシュ409がミスの時に
ついて説明する。キャッシュキャッシュノード601が
排他制御命令を発行し、キャッシュノード600内のキ
ャッシュ制御部100がシステムバス2を通して排他制
御命令を受信、内部回路であるタグリード・ライト・比
較回路101およびタグステータスレジスタ102のタ
グチェック動作により、アドレスタグ200から該当ア
ドレスのキャッシュ状態を読み込みチェックする(ステ
ップB−1)。タグステータスレジスタ102に読み込
んだキャッシュ状態が排他状態もしくは共有状態であっ
た場合、図1に示すようにキャッシュ状態は仮無効状態
に遷移するため、アドレスタグ200の該当アドレスに
仮無効状態を書き込む。また、同時にキャッシュ300
からキャッシュデータをキャッシュデータバッファ11
0に読み込み、仮無効ビット108をセットする(ステ
ップB−2)。キャッシュ制御部100はプロセッサバ
ス51に対して排他制御命令を発行し、プロセッサバス
51に接続されているCPU400内の内部キャッシュ
409のスヌープ結果が未変更であった場合は、キャッ
シュデータバッファ110のデータを直ちにシステムバ
ス2に転送する。CPU400内の内部キャッシュ40
9のスヌープ結果が変更であった場合は、CPU400
からのレスポンスデータの転送を待ち、システムバス2
にデータを転送する(ステップB−3)。
【0028】CPU400が排他制御命令を発行し、キ
ャッシュ制御部100がプロセッサバス51を通して排
他制御命令を受信、内部回路であるタグリード・ライト
・比較回路101およびタグステータスレジスタ102
のタグチェック動作により、アドレスタグ200から該
当アドレスのキャッシュ状態を読み込みチェックする
(ステップB−4)。タグステータスレジスタ102に
読み込んだキャッシュ状態が上記ステップB−2で遷移
した仮無効状態であった場合、図1に示すようにキャッ
シュ状態は仮無効状態を保持する。このため、キャッシ
ュ300からキャッシュデータをキャッシュデータバッ
ファ109に読み込み、仮無効ビット107をセットす
る(ステップB−5)。キャッシュ制御部100はシス
テムバス2に対して排他制御命令を発行し、システムバ
ス2に接続されているキャッシュノード600のスヌー
プ結果が未変更であった場合は、キャッシュデータバッ
ファ109のデータを直ちにプロセッサバス51に転送
する。この動作により、キャッシュノード600からの
データ転送時間を省くことが可能となる。スヌープ結果
が変更であった場合は、キャッシュノード600のレス
ポンスデータの転送を待ち、プロセッサバス51にデー
タを転送する(ステップB−6)。
【0029】CPU400がリード命令を発行し、キャ
ッシュ制御部100がプロセッサバス51を通してリー
ド命令を受信、内部回路であるタグリード・ライト・比
較回路101およびタグステータスレジスタ102のタ
グチェック動作により、アドレスタグ200から該当ア
ドレスのキャッシュ状態を読み込みチェックする(ステ
ップB−7)。タグステータスレジスタ102に読み込
んだキャッシュ状態が上記(ステップB−2)で遷移し
た仮無効状態であった場合、図1に示すようにキャッシ
ュ状態はシステム内のスヌープ結果が判別されるまでは
仮無効状態を保持する。このため、キャッシュ300か
らキャッシュデータをキャッシュデータバッファ109
に読み込み、仮無効ビット107をセットする(ステッ
プB−8)。キャッシュ制御部100はシステムバス2
に対してリード命令を発行し、システムバス2に接続さ
れているキャッシュノード600のスヌープ結果が未変
更であった場合は、キャッシュデータバッファ109の
データを直ちにプロセッサバス51に転送し、同時にア
ドレスタグ200の該当アドレスに共有状態を書き込
み、キャッシュ状態遷移は図1に示すように共有状態へ
と遷移する。この動作により、キャッシュノード600
からのデータ転送時間を省くことが可能となる。スヌー
プ結果が変更であった場合は、キャッシュノード600
のレスポンスデータの転送を待ち、プロセッサバス51
にデータを転送する(ステップB−9)。
【0030】本発明の効果は、(ステップB−6)およ
び(ステップB−9)の動作において、システムバス2
に接続されたキャッシュノード600からのデータ転送
を待つことなく、キャッシュ制御部100内のキャッシ
ュデータバッファ109から直ちにデータをプロセッサ
バス51へ送信できるため、システムとしての処理性能
を向上することが可能となる。また、(ステップB−
1)から(ステップB−9)のキャッシュ状態遷移を行
うことにより、キャッシュコヒーレンシを維持すること
が可能となる。
【0031】排他制御時内部キャッシュ409にヒット
したときは、内部キャッシュ409とノードバス509
間で処理が完結する。本構成では、同一ノード500内
での排他制御時には、システムバス2をアクセスしない
のでノード500間データ転送時間を軽減することで、
システムの性能向上図ることができる効果がある。
【0032】本発明の第三の構成のマルチプロセッサシ
ステムを図面を参照して説明する。図5は、本発明の実
施の形態のキャッシュコヒーレンシ制御方式を有するマ
ルチプロセッサシステムの第三の構成を示すブロック図
である。
【0033】中央処理装置1、入出力装置7、主記憶6
のそれぞれがシステムバス2を介して接続されている。
中央処理装置1は、プロセッサ401、キャッシュ制御
部100、アドレスタグ200、キャッシュ300から
構成される。プロセッサ401はCPU400とスヌー
プバッファ800から構成される。
【0034】動作は上記ステップAー1乃至A−9と同
様であるがステップA−5,ステップA−6,ステップ
A−9の動作において、キャッシュデータバッファ10
9、110へ読み込むと同時に、スヌープバッファ80
0へも読み込む点で異なる。以下、概要を説明する。C
PU400が排他制御命令を実行時、CPU400はキ
ャッシュ制御部100配下のアドレスタグ200のキャ
ッシュ状態をチェックし、排他状態もしくは共有状態で
あった場合、該当キャッシュラインの状態を仮無効状態
へ状態遷移、仮無効状態のキャッシュデータに仮無効ビ
ット107、108をセットしてキャッシュデータバッ
ファ109、110とスヌープバッファ800に読み込
み、同時にシステムバス2に対しては排他制御命令を発
行する。システム内の他の中央処理装置1内キャッシュ
300のスヌープ結果がキャッシュライン未変更であっ
た場合は、キャッシュデータバッファ109、110か
らではなく、既にスヌープバッファ800内にリード済
みのキャッシュデータをCPU400へ取り込む。
【0035】これにより、計算処理を進めることが可能
となる。また、プロセッサバス51からのデータ転送が
省かれるため、コンピュータシステムの処理性能の向上
を果たすことが可能となる、という効果がある。
【0036】
【発明の効果】以上説明したように、本願発明によれ
ば、無効状態、排他状態、共有状態、変更状態、仮無効
状態のキャッシュコヒーレンシ制御を設けるという基本
制御方式に基づき、排他制御時のキャッシュデータ転送
時間を軽減し、マルチプロセッサシステムの性能向上を
実現したキャッシュコヒーレンシ制御方式によるコンピ
ュータシステムが提供される。なお、本発明が上記各実
施例に限定されず、本発明の技術思想の範囲内におい
て、各実施例は適宜変更され得ることは明らかである。
【図面の簡単な説明】
【図1】本発明実施の形態のキャッシュコヒーレンシ制
御方式におけるキャッシュ状態の遷移を示す図である。
【図2】本発明実施の形態のキャッシュコヒーレンシ制
御方式を有するマルチプロセッサシステムの構成を示す
ブロック図である。
【図3】本発明のキャッシュコヒーレンシ制御方式を備
えるキャッシュ制御部の内部構成を示すブロック図であ
る。
【図4】本発明の実施の形態のキャッシュコヒーレンシ
制御方式を有するマルチプロセッサシステムの第二の構
成を示すブロック図である。
【図5】本発明の実施の形態のキャッシュコヒーレンシ
制御方式を有するマルチプロセッサシステムの第三の構
成を示すブロック図である。
【図6】従来のキャッシュコヒーレンシ制御方式におけ
るキャッシュ状態の遷移を示す図である。
【符号の説明】
1 中央処理装置 2 システムバス 5 プロセッサノード 5b プロセッサノード 6 主記憶 7 入出力装置 51 プロセッサバス 100 キャッシュ制御部 101 タグリード・ライト・比較回路 102 タグステータスレジスタ 103 アドレスバッファ 104 アドレスバッファ 105 データバッファ 106 データバッファ 107 仮無効ビット 108 仮無効ビット 109 キャッシュデータバッファ 110 キャッシュデータバッファ 200 アドレスタグ 300 キャッシュ 400 CPU 401 プロセッサ 409 内部キャッシュ 500 ノード 509 ノードバス 600 キャッシュノード 601 キャッシュノード 800 スヌープバッファ

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 1次キャッシュを有する複数のプロセッ
    サから構成されるマルチプロセッサシステムの2次キャ
    ッシュメモリのキャッシュコヒーレンシ制御装置であっ
    て、前記2次キャッシュメモリの状態は無効状態、排他
    状態、共有状態、変更状態、仮無効状態を備え、前記プ
    ロセッサから排他制御命令が発行され、前記排他制御命
    令のアドレスが前記2次キャッシュメモリにヒットした
    時に前記アドレスに対応するキャッシュラインの状態を
    仮無効状態とすることを特徴とするキャッシュコヒーレ
    ンシ制御装置。
  2. 【請求項2】 1次キャッシュを有する複数のプロセッ
    サから構成されるマルチプロセッサシステムの2次キャ
    ッシュメモリのキャッシュコヒーレンシ制御装置であっ
    て、前記2次キャッシュメモリの状態は無効状態、排他
    状態、共有状態、変更状態、仮無効状態を備え、前記プ
    ロセッサから排他制御命令が発行されたときに、前記排
    他制御命令のアドレスが前記2次キャッシュメモリにヒ
    ットしたかどうか判断するためのアドレスタグ制御回路
    を有し、前記アドレスタグ制御回路はタグメモリとキャ
    ッシュライン毎に前記2次キャッシュメモリの前記状態
    を示すレジスタを備え、前記レジスタが前記仮無効状態
    を示し、かつ前記アドレス制御回路が前記アドレスをヒ
    ットと判定した時に前記アドレスに対応する前記キャッ
    シュラインの前記レジスタを前記仮無効状態とすること
    を特徴とするキャッシュコヒーレンシ制御装置。
  3. 【請求項3】 1次キャッシュを有する複数のプロセッ
    サから構成されるマルチプロセッサシステムの2次キャ
    ッシュメモリのキャッシュコヒーレンシ制御装置であっ
    て、前記2次キャッシュメモリの状態は無効状態、排他
    状態、共有状態、変更状態、仮無効状態を備え、前記プ
    ロセッサから排他制御命令が発行された時に、前記排他
    制御命令のアドレスが前記2次キャッシュメモリにヒッ
    トしたかどうか判断するためのアドレスタグ制御回路を
    有し、前記アドレスタグ制御回路はタグメモリとキャッ
    シュライン毎に前記2次キャッシュメモリの前記状態を
    示すレジスタを備え、前記レジスタが前記仮無効状態を
    示し、かつ前記アドレス制御回路が前記アドレスをヒッ
    トと判定した時に前記アドレスに対応する前記キャッシ
    ュラインの前記レジスタを仮無効状態とし、さらに前記
    キャッシュラインに記憶されたデータを読み出す制御回
    路および読み出しバッファを設け、前記バッファに仮無
    効状態を示す第二のレジスタを備えたことを特徴とする
    キャッシュコヒーレンシ制御装置。
  4. 【請求項4】 1次キャッシュを有する第一のプロセッ
    サと1次キャッシュを有する第二のプロセッサから構成
    されるマルチプロセッサシステムの2次キャッシュメモ
    リのキャッシュコヒーレンシ制御装置であって、 前記2次キャッシュメモリの状態は無効状態、排他状
    態、共有状態、変更状態、仮無効状態を備え、 前記第一のプロセッサから排他制御命令が発行されたと
    きに、前記排他制御命令のアドレスが前記2次キャッシ
    ュメモリにヒットしたかどうか判断するためのアドレス
    タグ制御回路を有し、前記アドレスタグ制御回路はタグ
    メモリとキャッシュライン毎に前記2次キャッシュメモ
    リの無効状態、排他状態、共有状態、変更状態、仮無効
    状態を示すレジスタを備え、前記レジスタが前記仮無効
    状態を示し、かつ前記アドレス制御回路が前記アドレス
    をヒットと判定した時に前記アドレスに対応する前記キ
    ャッシュラインの前記レジスタを仮無効状態とし、さら
    に前記キャッシュラインに記憶されたデータを読み出す
    制御回路および読み出しバッファを設け、前記バッファ
    に仮無効状態を示す第二のレジスタを備え、 前記第二のプロセッサから、前記キャッシュラインのリ
    ード命令が発行され、前記キャッシュラインの状態を示
    す前記レジスタが仮無効状態であった場合、前記第一の
    プロセッサ内の前記1次キャッシュのスヌープ命令を発
    行し、前記キャッシュラインよりデータを読み出し、前
    記バッファに格納して前記第二のレジスタを前記仮無効
    状態とし、前記スヌープ命令の結果が前記リード命令ア
    ドレス内のデータが変更無しと通知された場合、前記第
    二のプロセッサへ前記バッファからデータを転送するこ
    とを特徴とするキャッシュコヒーレンシ制御装置。
  5. 【請求項5】 キャッシュデータメモリと、請求項2、
    3または4のキャッシュコヒーレンシ制御装置を有する
    ことを特徴とする2次キャッシュメモリ。
  6. 【請求項6】 1次キャッシュを有するプロセッサと請
    求項5記載の2次キャッシュメモリを接続したことを特
    徴とする中央処理装置。
  7. 【請求項7】 主記憶と入出力装置と複数の請求項6記
    載の中央処理装置のそれぞれをバスにより接続したこと
    を特徴とするマルチプロセッサシステム。
  8. 【請求項8】 1次キャッシュを有する複数のプロセッ
    サと前記複数のプロセッサとシステムバスを接続するバ
    スブリッジとキャッシュデータメモリと請求項2、3ま
    たは4のキャッシュコヒーレンシ制御装置を有すること
    を特徴とするプロセッサノード。
  9. 【請求項9】 主記憶と入出力装置と複数の請求項8記
    載のプロセッサノードのそれぞれをバスにより接続した
    ことを特徴とするマルチプロセッサシステム。
  10. 【請求項10】 1次キャッシュを有する第一のプロセ
    ッサと1次キャッシュを有する第二のプロセッサから構
    成されるマルチプロセッサシステムの2次キャッシュメ
    モリのキャッシュコヒーレンシ制御方法であって、 前記2次キャッシュメモリの状態は無効状態、排他状
    態、共有状態、変更状態、仮無効状態を備え、前記2次
    キャッシュメモリはキャッシュラインから構成され、 前記第一のプロセッサが排他制御命令が発行する第一の
    ステップと、前記排他制御命令のアドレスが前記2次キ
    ャッシュメモリにヒットしたかどうか判断する第二のス
    テップと、前記アドレスにヒットと判定した時に前記ア
    ドレスに対応する前記キャッシュラインを前記仮無効状
    態とする第三のステップと、前記キャッシュラインに記
    憶されたデータを読み出しバッファへ格納する第四のス
    テップと、前記第二のプロセッサが前記キャッシュライ
    ンのリード命令を発行する第五のステップと、前記キャ
    ッシュラインの状態が仮無効状態であった場合、前記第
    一のプロセッサ内の前記1次キャッシュのスヌープ命令
    を発行する第六のステップと、前記キャッシュラインよ
    りデータを読み出し、前記バッファに格納して仮無効状
    態とする第七のステップと、前記スヌープ命令の結果が
    前記リード命令アドレス内のデータが変更無しと通知さ
    れた場合、前記第二のプロセッサへ前記バッファからデ
    ータを転送する第八のステップを有することを特徴とす
    るキャッシュコヒーレンシ制御方法。
JP11206036A 1999-07-21 1999-07-21 キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法 Pending JP2001034533A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11206036A JP2001034533A (ja) 1999-07-21 1999-07-21 キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11206036A JP2001034533A (ja) 1999-07-21 1999-07-21 キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法

Publications (1)

Publication Number Publication Date
JP2001034533A true JP2001034533A (ja) 2001-02-09

Family

ID=16516846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11206036A Pending JP2001034533A (ja) 1999-07-21 1999-07-21 キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法

Country Status (1)

Country Link
JP (1) JP2001034533A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004529435A (ja) * 2001-05-16 2004-09-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ中のラインを投機的に無効にする方法とシステム
US7577795B2 (en) 2006-01-25 2009-08-18 International Business Machines Corporation Disowning cache entries on aging out of the entry
JP2011227921A (ja) * 2004-09-09 2011-11-10 Intel Corp キャッシュ競合の解決
US9983994B2 (en) 2015-08-12 2018-05-29 Fujitsu Limited Arithmetic processing device and method for controlling arithmetic processing device
US10047282B2 (en) 2014-03-18 2018-08-14 Apdn (B.V.I.) Inc. Encrypted optical markers for security applications
US10741034B2 (en) 2006-05-19 2020-08-11 Apdn (B.V.I.) Inc. Security system and method of marking an inventory item and/or person in the vicinity

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004529435A (ja) * 2001-05-16 2004-09-24 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド キャッシュ中のラインを投機的に無効にする方法とシステム
JP2011227921A (ja) * 2004-09-09 2011-11-10 Intel Corp キャッシュ競合の解決
JP2014089760A (ja) * 2004-09-09 2014-05-15 Intel Corp キャッシュ競合の解決
US9727468B2 (en) 2004-09-09 2017-08-08 Intel Corporation Resolving multi-core shared cache access conflicts
US10078592B2 (en) 2004-09-09 2018-09-18 Intel Corporation Resolving multi-core shared cache access conflicts
US7577795B2 (en) 2006-01-25 2009-08-18 International Business Machines Corporation Disowning cache entries on aging out of the entry
US8131945B2 (en) 2006-01-25 2012-03-06 International Business Machines Corporation Disowning cache entries on aging out of the entry
US10741034B2 (en) 2006-05-19 2020-08-11 Apdn (B.V.I.) Inc. Security system and method of marking an inventory item and/or person in the vicinity
US10047282B2 (en) 2014-03-18 2018-08-14 Apdn (B.V.I.) Inc. Encrypted optical markers for security applications
US9983994B2 (en) 2015-08-12 2018-05-29 Fujitsu Limited Arithmetic processing device and method for controlling arithmetic processing device

Similar Documents

Publication Publication Date Title
EP0748481B1 (en) Highly pipelined bus architecture
TW591384B (en) Method and system for speculatively invalidating lines in a cache
US5774700A (en) Method and apparatus for determining the timing of snoop windows in a pipelined bus
US5822767A (en) Method and apparartus for sharing a signal line between agents
US5353415A (en) Method and apparatus for concurrency of bus operations
US5561779A (en) Processor board having a second level writeback cache system and a third level writethrough cache system which stores exclusive state information for use in a multiprocessor computer system
US8037253B2 (en) Method and apparatus for global ordering to insure latency independent coherence
US5561783A (en) Dynamic cache coherency method and apparatus using both write-back and write-through operations
US6651115B2 (en) DMA controller and coherency-tracking unit for efficient data transfers between coherent and non-coherent memory spaces
US6272602B1 (en) Multiprocessing system employing pending tags to maintain cache coherence
US7228389B2 (en) System and method for maintaining cache coherency in a shared memory system
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
EP1311956B1 (en) Method and apparatus for pipelining ordered input/output transactions in a cache coherent, multi-processor system
US20090006668A1 (en) Performing direct data transactions with a cache memory
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
US5829027A (en) Removable processor board having first, second and third level cache system for use in a multiprocessor computer system
US20040111563A1 (en) Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
US6412047B2 (en) Coherency protocol
US20070073977A1 (en) Early global observation point for a uniprocessor system
US5717894A (en) Method and apparatus for reducing write cycle wait states in a non-zero wait state cache system
JPH0271344A (ja) マイクロコンピユータ・システム
JP3550092B2 (ja) キャッシュ装置及び制御方法
JP2001034533A (ja) キャッシュコヒーレンシ制御装置、2次キャッシュメモリ、中央処理装置、マルチプロセッサシステム、プロセッサノード、キャッシュコヒーレンシ制御方法
US6629213B1 (en) Apparatus and method using sub-cacheline transactions to improve system performance
JPH10105461A (ja) 処理装置及びルックアサイド・キャッシュをスヌープする改善された装置及び方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20030812