JPH10198603A - 情報処理システム及びその制御方法、情報処理装置 - Google Patents

情報処理システム及びその制御方法、情報処理装置

Info

Publication number
JPH10198603A
JPH10198603A JP9001442A JP144297A JPH10198603A JP H10198603 A JPH10198603 A JP H10198603A JP 9001442 A JP9001442 A JP 9001442A JP 144297 A JP144297 A JP 144297A JP H10198603 A JPH10198603 A JP H10198603A
Authority
JP
Japan
Prior art keywords
cache
storage device
information processing
priority
cache blocks
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.)
Withdrawn
Application number
JP9001442A
Other languages
English (en)
Inventor
Toshiyuki Fukui
俊之 福井
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP9001442A priority Critical patent/JPH10198603A/ja
Publication of JPH10198603A publication Critical patent/JPH10198603A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 処理能力を向上させることができる情報処理
システム及びその制御方法、情報処理装置を提供する。 【解決手段】 クラスタ方式のようなメモリアクセス遅
延に大きな差異を生じるような複数のメモリをもつシス
テムにおいて、キャッシュ・ブロックの置換対象を決定
する際に、従来用いられているLRU法等の方法に加え
て、そのキャッシュ・ブロックを再びキャッシュ・メモ
リに読み込むために必要となるアクセス遅延の大小を考
慮して、アクセス遅延の大きな記憶装置に由来するデー
タブロックのキャッシュ・メモリ内部に引き続き存続す
る優先度を上昇させることによって、アクセス遅延の大
きなメモリに由来するキャッシュ・ブロックが置換対象
として選択されにくくする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はアクセス遅延の異な
る複数の記憶装置を有するシステムにおけるキャッシュ
・メモリのデータブロックの置換制御を実行する情報処
理システム及びその制御方法、情報処理装置に関するも
のである。
【0002】
【従来の技術】近年の計算機システムにおいては、記憶
装置(以下メモリに代表させる)に対し発せられるプロ
セッサからのアクセス要求に高速に応答するため、各プ
ロセッサにはキャッシュ・メモリが付随されることが多
い。プロセッサから発行されるメモリへのアクセス要求
はキャッシュ・メモリを介して行われ、キャッシュ・メ
モリ中にはそれらメモリへのアクセス要求対象のデータ
ブロックのコピーが置かれることとなる。
【0003】キャッシュ・メモリの構成法としてはダイ
レクトマップ方式、フルアソシアティブ方式、セット・
アソシアティブ方式等が代表的なものとして挙げられ
る。これらは、既に公知の構成法であり、例えば”Co
mputer Architecture a Qua
ntitative Approach” Secon
d Edition(David A. Patter
son, John L.Hennessy 著、以
下、参考文献1と呼ぶ)の376、377ページにこれ
らに関する記載がある。
【0004】キャッシュ・メモリにおいて、キャッシュ
・ミスした場合にはキャッシュ・ブロックを置き換える
必要が生じる。その場合、上記の3方式の中でも、比較
的今日良く用いられるセット・アソシアティブ方式で
は、置き換えの候補となるキャッシュ・ブロックが複数
あり、その中からどのキャッシュ・ブロックを置き換え
るかを選択しなければならない。選択方法としては、主
としてランダム法とLRU(Least‐Recent
ly Used)法のうちのいずれか、もしくはそれに
似せた方法が取られていることが多い。尚、各手法に関
しては参考文献1の378ページ等に記載がある。
【0005】一方、近年の計算機の処理能力の向上の要
求に応えて分散共有メモリ型のクラスタ型計算機及びそ
れらを複数構成した計算機システムが見られるようにな
ってきた。図1にその概略を示す。これは複数の単体の
計算機をノードとし、高速のネットワークで接続し、一
つの大きな計算機システムとして稼働させることによ
り、処理能力を向上させることをねらったものである。
これらのシステムの場合、あるノード1に存在するプロ
セッサ10からは自ノード1内部のメモリ12とノード
2上に存在するメモリ22とにアクセスすることが可能
である。メモリ12とメモリ22とのプロセッサ10か
ら見た差異は、メモリ22の方がネットワークを介して
アクセスするためアクセス遅延が大きいことである。し
かし、キャッシュ・メモリ11の存在により、一旦キャ
ッシュ・メモリ11にデータブロックが格納されてしま
えば、それ以降のプロセッサ10からのアクセスに関し
てはアクセス遅延は隠蔽され、処理能力の向上が期待で
きる。
【0006】
【発明が解決しようとする課題】しかしながら、上記従
来のセットアソシアティブ方式をとったキャッシュ・メ
モリにおいて、一旦、キャッシュ・ミスが発生すると、
LRU法等のメモリアクセス遅延を考慮しない方法でキ
ャッシュ・ブロックの置換対象の選択を行っていた。そ
のため、クラスタ方式のようなメモリアクセス遅延に大
きな差異を生じるようなシステムにおいては、そのキャ
ッシュ・ブロックがノード内、ノード外のいずれにある
かに関わらず置換対象として選択されてしまう。その結
果、特に、ノード外のアドレスに対応するデータのキャ
ッシュ・ブロックが置換対象として選択され、再び、そ
のノード外のメモリにアクセスした場合には、大きなメ
モリアクセス遅延が必要となり、システム全体の性能の
著しい低下を招く一因となっていた。
【0007】本発明は上記の問題点を鑑みてなされたも
のであり、処理能力を向上させることができる情報処理
システム及びその制御方法、情報処理装置を提供するこ
とを目的とする。
【0008】
【課題を解決するための手段】上記の目的を解決するた
めの本発明による情報処理装置は以下の構成を備える。
即ち、第1の記憶装置と、該第1の記憶装置よりもアク
セス遅延が大きい第2の記憶装置と、複数のキャッシュ
・ブロックを有するキャッシュ・メモリとを備える情報
処理システムであって、前記複数のキャッシュ・ブロッ
クのいずれかを置換する場合、該複数のキャッシュ・ブ
ロックそれぞれが前記第1の記憶装置及び前記第2の記
憶装置のどちらに属しているかを判定する判定手段と、
前記判定手段の判定結果に基づいて、前記複数のキャッ
シュ・ブロックのいずれかを置換する置換手段とを備え
る。
【0009】また、好ましくは、前記置換手段による置
換対象としない優先度を前記複数のキャッシュ・ブロッ
ク毎に保持する保持手段を更に備え、前記判定手段の判
定結果及び前記保持手段が保持する優先度に基づいて、
前記置換手段は前記複数のキャッシュ・ブロックのいず
れかを置換する。また、好ましくは、前記置換手段によ
る置換されるキャッシュ・ブロックの優先度に基づい
て、該キャッシュ・ブロックを含む前記複数のキャッシ
ュ・ブロックの優先度を変更する変更手段を更に備え
る。
【0010】また、好ましくは、前記変更手段は、前記
置換手段によって置換されるキャッシュ・ブロックの優
先度を最上位に変更し、該優先度と同じあるいはそれ以
下の優先度を持つキャッシュ・ブロックの優先度を上昇
させる。また、好ましくは、前記複数のキャッシュ・ブ
ロックそれぞれ保持するデータが有効であるか否かを示
す情報を管理する管理手段を更に備え、前記判定手段の
判定結果及び前記保持手段が保持する優先度及び前記管
理手段が管理する情報に基づいて、前記置換手段は前記
複数のキャッシュ・ブロックのいずれかを置換する。
【0011】また、好ましくは、有効なデータを保持し
ていないキャッシュ・ブロックを示す情報を前記管理手
段が管理し、かつ前記複数のキャッシュ・ブロックのい
ずれかを置換する場合は、前記置換手段は該有効なデー
タを保持していないキャッシュ・ブロックを置換する。
また、好ましくは、前記判定手段は、前記第1の記憶装
置と前記第2の記憶装置それぞれに割り当てられたアド
レス空間に基づいて、前記複数のキャッシュ・ブロック
それぞれが前記第1の記憶装置及び前記第2の記憶装置
のどちらに属しているかを判定する。
【0012】上記の目的を達成するための本発明による
情報処理システムの制御方法は以下の構成を備える。即
ち、第1の記憶装置と、該第1の記憶装置よりもアクセ
ス遅延が大きい第2の記憶装置と、複数のキャッシュ・
ブロックを有するキャッシュ・メモリとを備える情報処
理システムの制御方法であって、前記複数のキャッシュ
・ブロックのいずれかを置換する場合、該複数のキャッ
シュ・ブロックそれぞれが前記第1の記憶装置及び前記
第2の記憶装置のどちらに属しているかを判定する判定
工程と、前記判定工程の判定結果に基づいて、前記複数
のキャッシュ・ブロックのいずれかを置換する置換工程
とを備える。
【0013】上記の目的を達成するための本発明による
情報処理装置は以下の構成を備える。即ち、第1の記憶
装置と、該第1の記憶装置よりもアクセス遅延が大きい
第2の記憶装置と、複数のキャッシュ・ブロックを有す
るキャッシュ・メモリとを備える情報処理装置であっ
て、前記複数のキャッシュ・ブロックのいずれかを置換
する場合、該複数のキャッシュ・ブロックそれぞれが前
記第1の記憶装置及び前記第2の記憶装置のどちらに属
しているかを判定する判定手段と、前記判定手段の判定
結果に基づいて、前記複数のキャッシュ・ブロックのい
ずれかを置換する置換手段と、を備える。
【0014】上記の目的を達成するための本発明による
コンピュータ可読メモリは以下の構成を備える。即ち、
第1の記憶装置と、該第1の記憶装置よりもアクセス遅
延が大きい第2の記憶装置と、複数のキャッシュ・ブロ
ックを有するキャッシュ・メモリとを備える情報処理シ
ステムの制御のプログラムコードが格納されたコンピュ
ータ可読メモリであって、前記複数のキャッシュ・ブロ
ックのいずれかを置換する場合、該複数のキャッシュ・
ブロックそれぞれが前記第1の記憶装置及び前記第2の
記憶装置のどちらに属しているかを判定する判定工程の
プログラムコードと、前記判定手段の判定結果に基づい
て、前記複数のキャッシュ・ブロックのいずれかを置換
する置換工程のプログラムコードとを備える。
【0015】
【発明の実施の形態】以下、図面を参照して本発明の好
適な実施形態を詳細に説明する。 <実施形態1>図1は本発明を実現する実施形態1の計
算機システムの構成を示すブロック図である。
【0016】尚、図1では、単体で動作し得る計算機を
それぞれノード1、ノード2とし、2つのノードが外部
バス5によって相互に接続されることにより分散共有メ
モリ型のクラスタ型計算機システムを構成する。図1に
おいて、10、20は各ノード1、2のプロセッサであ
り、各プロセッサ10、20は、プロセッサバス14、
24を介してそれぞれキャッシュ・メモリ11、21に
接続される。プロセッサバス14は、プロセッサアドレ
スバス141、プロセッサデータバス142、プロセッ
サコントロールバス143から構成されている。同様
に、プロセッサバス24は、プロセッサアドレスバス2
41、プロセッサデータバス242、プロセッサコント
ロールバス243から構成されている。
【0017】また、各キャッシュ・メモリ11、21は
共有バス15、25を介してメモリ12、22、及びノ
ード間の接続を司る外部バスインタフェース13、23
と接続される。共有バス15は、共有アドレスバス15
1、共有データバス152、共有コントロールバス15
3から構成されている。同様に、共有バス25は、共有
アドレスバス251、共有データバス252、共有コン
トロールバス253から構成されている。
【0018】16、26は各ノード1、2のバスアービ
タであり、それぞれノード1、2の内部におけるキャッ
シュ・メモリ11、21と外部バスインタフェース1
3、23との間での共有バス15、25の利用権を調停
するためのものである。外部バスインタフェース(外部
バスI/F)13、14には、ノードIDレジスタ(N
odeIDREG.)131、231が存在する。実施
形態1では、ノードIDレジスタ131にはノード1を
示す”0”が、ノードIDレジスタ231にはノード2
を示す”1”がそれぞれ格納されている。
【0019】次に実施形態1の図1のクラスタ型計算機
システム全体のアドレス空間の割り当てについて、図2
を用いて説明する。図2は実施形態1のクラスタ型計算
機システム全体のアドレス空間の割り当てを示す図であ
る。図2に示すように、ノード1にはアドレス空間とし
て”0x00000000”〜”0x7ffffff
f”(0xは16進数を表わす)の領域が、ノード2に
はアドレス空間として”0x80000000”〜”0
xffffffff”の領域が割り当てられている。
【0020】以上の構成において、図1に示すノード1
上のプロセッサ10は、キャッシュ・メモリ11及び外
部バス5等を介してノード2上のメモリ22に対してア
クセスすることができる。また、このノード2上のメモ
リ22に対するアクセスは、ノード1上のメモリ12と
同様にアクセスすることができる。そして、ノード1の
プロセッサ10がノード2上のメモリ22に実際にアク
セスする場合には、図2に示されるノード2内のアドレ
ス空間を示すメモリアクセスを発行すればよい。しか
し、このキャッシュ・メモリ11を介してプロセッサ1
0が行うノード2上のメモリ22へのアクセスは、ノー
ド1、2間の通信等に要するオーバヘッドがかかるた
め、ノード1上のメモリ12へのアクセスに比べてアク
セス遅延が大きいものとなる。
【0021】次に実施形態1のキャッシュ・メモリ1
1、21の詳細な構成について、図3を用いて説明す
る。図3は実施形態1のキャッシュ・メモリの詳細な構
成を示すブロック図である。尚、キャッシュ・メモリ1
1、21の構成は同様のものであり、ここでは、キャッ
シュ・メモリ11の詳細な構成として説明する。
【0022】図3において、キャッシュ・メモリ11の
本体は、キャッシュ・メモリ制御シーケンサ111、ア
ドレスタグ112、状態フラグ113、SRAM11
4、比較器115、選択器116からなる。ここで、S
RAM114は、データを保持するためのデータ・ブロ
ックを構成する。アドレスタグ112は、データ・ブロ
ックであるSRAM114のアドレスを保持する。状態
フラグ113は、SRAM114上のデータの状態を保
持する役割りを果たす。比較器115は、アドレスタグ
112の内容とプロセッサバス14、共有バス15から
もたらされるアドレス及びノードIDとを比較する。選
択器116は、比較器115の比較結果からSRAM1
14内のデータを選択する。キャッシュ・メモリ制御シ
ーケンサ111は、これらキャッシュ・メモリ11内の
各モジュールを制御する。
【0023】尚、実施形態1のキャッシュ・メモリ11
は、4ウェイ・セット・アソシアティブの構成をとる
が、これらのキャッシュ・メモリを有する計算機システ
ムの構成は本発明により制限されるものではない。キャ
ッシュ・メモリ11内の各モジュールは、プロセッサバ
ス14を介してプロセッサ10と、プロセッサバスアド
レスインタフェース(プロセッサバスアドレスI/F)
144、プロセッサバスデータインタフェース(プロセ
ッサバスデータI/F)145、プロセッサバスコント
ロールインタフェース(プロセッサバスコントロールI
/F)アドレス146によって接続される。そして、プ
ロセッサ10からもたらされるアクセス要求に従って、
データの供給等を実行する。
【0024】また、キャッシュ・メモリ11内の各モジ
ュールは、共有バス15に、共有バスアドレスインタフ
ェース(共有バスアドレスI/F)154、共有バスデ
ータインタフェース(共有バスデータI/F)155、
共有バスコントロールインタフェース(共有バスコント
ロールI/F)156によって接続され、プロセッサか
らもたらされるアクセス要求に従ってデータの供給等を
実行する。例えば、キャッシュ・ミスした場合には、デ
ータをメインメモリ12からキャッシュ・メモリ11内
にロードしたり、キャッシュ・メモリ11に蓄えられた
データをプロセッサ10に供給したり、他のキャッシュ
・メモリからもたらされる情報をもとに、キャッシュ・
メモリ11内部の状態フラグ113を変更したりする。
【0025】次に実施形態1のアドレスタグ112、状
態フラグ113、SRAM114の詳細な構成につい
て、図4を用いて説明する。図4は実施形態1のアドレ
スタグ、状態フラグ、SRAMの詳細な構成を示す図で
ある。図4において、上述したようにキャッシュ・メモ
リ11は、4ウェイ・セット・アソシアティブの構成を
とっているため、同一のラインアドレス(アドレスーm
171)で指し示される領域が4つ存在する。そして、
1ラインあたりに含まれるSRAM114上のデータ
(D0〜D3)は、4つの4バイトワード(32ビッ
ト)となっている。
【0026】状態フラグ113内の「V」で示される領
域は、それぞれそのアドレスに対応するキャッシングデ
ータが有効(”1”)であるか無効(”0”)であるか
を示している。また、「LRU」で示される領域は、L
RU管理ビットである。これは、この同一のラインアド
レスに対応する4つのセットのうちで最も最近にアクセ
スされたセットはどれかを指し示すものである。
【0027】アドレスタグ112には、アドレスの上位
22ビット(addrーh’173)が格納される。こ
れらの値は、アクセスが発生する度にキャッシュ・メモ
リ制御シーケンサ111によって最新の状態を示すよう
に書き換えられる。以上説明した上記の図1〜図4で示
される実施形態1の計算機システムで用いるプロトコル
は、ライトスルー型キャッシュ・メモリの無効化型プロ
トコルを用いるとする。そして、その条件の下で、キャ
ッシュ・ミスが発生した場合のキャッシュ・ブロックの
置換対象の選択を、その原データが保存されるべき記憶
装置へのアクセス遅延の大小を考慮にいれて決定するこ
とができる実施形態1の具体例について説明する。
【0028】この具体例の概要を説明すると、キャッシ
ュ・ミスが発生し且つキャッシュ・ブロックの置換が必
要となった場合に、その置換対象を決定する際、従来の
LRU法の方法に加えて、そのキャッシュ・ブロックを
再びキャッシュ・メモリに読み込むために必要となるア
クセス遅延の大小を考慮して決定する。この決定の実現
は、アクセス遅延の大きな記憶装置に由来するデータブ
ロックのキャッシュ・メモリ内部に存続する優先度を上
昇させ、アクセス遅延の大きなメモリに由来するキャッ
シュ・ブロックが置換対象として選択されにくくするこ
とで実現する。以下、これを実現するキャッシュ・メモ
リを備える計算機システムの動作手順と詳細な構成につ
いて、図1〜図4及び図5〜図7のフローチャートを用
いて説明する。
【0029】まず、メモリ12からプロセッサ10にデ
ータブロックを読み込むLOAD命令を実行するの際の
実施形態1のキャッシュ・メモリ11における制御手順
について、図5を用いて説明する。図5は実施形態1で
実行されるLOAD命令が発行された際のキャッシュ・
メモリにおける制御手順を示すフローチャートである。
(以下、LOAD命令がプロセッサ10から発行された
ものとして説明する。) 図5において、プロセッサ10から発行されるLOAD
命令に対して、プロセッサアドレスバス141に出力さ
れているアドレスと、アドレスタグ112に格納された
アドレスとを比較器115により比較する(ステップS
501)。そして、キャッシュ・リードヒットした場合
(ステップS501でYES)、キャッシュ・メモリ1
1は、プロセッサ10に対してSRAM114よりデー
タを供給する(ステップS503)。次いで、状態フラ
グ113内部のLRU管理ビットを更新する(ステップ
S504)。
【0030】一方、プロセッサ10から発行されるLO
AD命令に対して、キャッシュ・リードミスした場合
(ステップS501でNO)、キャッシュ・メモリ11
は、キャッシュ・ミス処理を行い、メモリ12からデー
タを読み込む(ステップS502)。尚、キャッシュ・
ミス処理の詳細については、図6のフローチャートを用
いて説明する。そして、プロセッサ10に対してSRA
M114よりデータを供給する(ステップS503)。
この場合、キャッシュ・リードミスしたデータがキャッ
シュ・メモリ11に供給されるまで、キャッシュ・メモ
リ11はプロセッサ10に対して当該データの供給を行
わない。
【0031】次に、実施形態1のキャッシュ・ミス処理
の制御手順について、図6を用いて説明する。図6は実
施形態1のキャッシュ・ミス処理の制御手順を示すフロ
ーチャートである。図6において、まず、キャッシュ・
ブロックの置換を行う必要があるか否かを判定する(ス
テップS601)。キャッシュ・ブロックの置換を行う
必要がある場合(ステップS601でYES)、即ち、
選択されたラインに対応する全てのセットが使用中であ
る場合、使用中であるキャッシュ・ブロックの中の一つ
を選択し、新しく読み込んだデータを置換する対象とす
る(ステップS602)。尚、どのキャッシュ・ブロッ
クを選択するかの置換アルゴリズムの詳細に関しては後
述する。一方、キャッシュ・ブロックの置換を行う必要
がない場合(ステップS601でNO)、ステップS6
03に進む。
【0032】続いて、その状態で、バスアービタ16に
対して共有バス15の利用許可要求を発行する(ステッ
プS603)。キャッシュ・メモリ11は、共有バス1
5の利用許可を得るまで待機する(ステップS60
4)。共有バス15の利用許可を得られたら、共有アド
レスバス151に対して当該アドレスのアドレスを転送
する。そして、共有コントロールバス153に対してリ
ード要求を示す信号等をドライブし、共有データバス1
52にデータが供給されるのを待つ(ステップS60
5)。
【0033】メモリ12により、リード要求及び当該リ
ードアクセスのアドレスが受けつけられて、共有データ
バス152にデータが転送される(ステップS60
6)。キャッシュ・メモリ11は、共有データバス15
2に転送されたデータをキャッシュ・メモリ11内のS
RAM114の置換対象として選択された当該データブ
ロックのエントリに登録する(ステップS607)。
【0034】次にプロセッサ10がデータをメモリ12
上のアドレスで示される領域に書き込むSTORE命令
を実行する際の実施形態1のキャッシュ・メモリ11に
おける制御手順について、図7を用いて説明する。図7
は実施形態1で実行されるSTORE命令が発行された
際のキャッシュ・メモリにおける制御手順を示すフロー
チャートである。(以下、STORE命令がプロセッサ
10から発行されたものとして説明する。) 尚、実施形態1においては、STORE時のミスにおけ
る処理方式として、ノー・ライト・アロケート方式を採
用している場合を例に挙げて説明する。
【0035】図7において、プロセッサ10から発行さ
れるSTORE命令に対して、プロセッサアドレスバス
141に出力されているアドレスとアドレスタグ112
に格納されたアドレスとを比較器115により比較し、
一致したアドレスがあるか、即ち、キャッシュライトヒ
ットしたか否かを調べる(ステップS701)。キャッ
シュ・ライトヒットした場合(ステップS701でYE
S)、プロセッサ10が供給するデータを、キャッシュ
・メモリ11中のSRAM114は対応するデータブロ
ックに登録する(ステップS702)。次いで、状態フ
ラグ113を所定の値に更新する(ステップS70
3)。
【0036】同時に、キャッシュ・メモリ11は、その
ままライトされるデータをメモリ12に書き込むため、
共有バス15の利用許可要求を発行する(ステップS7
04)。そして、キャッシュ・メモリ11は、利用許可
を得るまで待機する(ステップS705)。共有バス1
5の利用許可を得られたら、共有アドレスバス151に
対して当該アドレスのアドレスを転送する。そして、共
有コントロールバス153に対してライト要求を示す信
号等をドライブし、共有データバス152にデータが供
給されるのを待つ(ステップS706)。メモリ12に
より、ライト要求及び当該ライトアクセスのアドレスが
受け付けられて、共有データバス152にデータが転送
される(ステップS707)。そして、メモリ12は、
共有データバス152に転送されたデータを取り込む
(ステップS708)。
【0037】一方、キャッシュライトミスした場合(ス
テップS701でNO)、そのライトされるデータはメ
モリに書き込まれるだけで、メモリ12の対応ラインが
それによってキャッシュ・メモリ11にロードされるこ
とはない。その場合、ステップS704〜ステップS7
08の動作のみが実施される。更に、この際、キャッシ
ュの一貫性保持動作が同時に行われる。
【0038】即ち、STORE命令が発行されると、キ
ャッシュ・メモリ11以外のキャッシュ・メモリ、ここ
では、1つのクラスタ型計算機システムを共有メモリ型
システムとして構成しているノード2内部のキャッシュ
・メモリ21が保持しているデータとの一貫性を取るた
めに、キャッシュ・メモリ21側においてキャッシュ・
メモリの一貫性保持動作が行われる。
【0039】この場合、ノード1内部の共有バス15上
にSTORE命令に伴うメモリ12へのライト動作が行
われていることを、ノード1内部の外部バスインタフェ
ース13が検出する。そして、アドレス情報等を含むそ
の検出に関する情報を外部バス5を通じて、ノード2の
外部バスインタフェース23に通知する。ノード2の外
部バスインタフェース23は、通知されたアドレス情報
を元にノード2内部の共有バス25上にダミーのライト
要求を発行する。
【0040】これにより、キャッシュ・メモリ21は共
有バス25上に行われているライト要求をスヌープする
(ステップS711)。そして、キャッシュ・メモリ2
1内のアドレスタグ(不図示)を検索する(ステップS
712)。検索の結果、一致するアドレスタグが存在す
るか否かを判定する。アドレスタグ上に一致するアドレ
スが発見され、それの状態フラグが有効(”1”)を示
していた場合(ステップS713でYES)、その状態
フラグ無効化(”0”に)し、動作を終了する(ステッ
プS714)。一方、一致するアドレスタグがない場合
(ステップS713でNO)、そのまま処理を終了す
る。
【0041】以上の動作が、実施形態1におけるキャッ
シュ・メモリの一貫性保持動作である。次に実施形態1
の各メモリ12、22のメモリトランザクション実行時
の状態フラグの状態遷移について、図8を用いて説明す
る。図8は実施形態1の各メモリトランザクション実行
時の状態フラグの状態遷移を示す図である。(以下、キ
ャッシュ・メモリ11の状態フラグ113の状態遷移と
して説明する。) 図8において、状態INVALIDは、当該状態フラグ
113が管理するデータエントリが無効(”0”)であ
ることを示す。状態VALIDは、当該状態フラグ11
3が管理するデータエントリが有効(”1”)であるこ
とを示す。
【0042】INVALID状態のデータに対して、プ
ロセッサ10からLOAD命令が発行された場合、キャ
ッシュ・リード・ミス処理が行なわれ、状態フラグ11
3はVALIDに遷移する。INVALID状態のデー
タに対して、プロセッサ10からSTORE命令が発行
された場合、実施形態1の計算機システムではノー・ラ
イト・アロケート方式を採用しているため、メモリ12
の対応ラインのキャッシュ・メモリ11へのロードは行
われず、状態フラグ113はINVALIDのままであ
る。
【0043】INVALID状態のデータに対して、外
部のバスマスタのライト処理に対応してスヌープミスし
た場合は、状態フラグ113はINVALIDのままで
ある。VALID状態のデータに対して、プロセッサ1
0からLOAD命令が発行された場合及びSTORE命
令が発行された場合は、キャッシュ・メモリ11へのヒ
ット/ミスにかかわらず、状態フラグ113はVALI
Dのままとなる。
【0044】VALID状態のデータに対して、外部の
バスマスタのライト処理に対応してスヌープヒットした
場合は、一貫性保持動作が実行され、状態フラグ113
はINVALIDに遷移する。VALID状態のデータ
に対して、外部のバスマスタのライト処理に対応してス
ヌープミスした場合は、一貫性保持動作が実行されず、
状態フラグ113はVALIDのままである。
【0045】次に、実施形態1の計算機システムの特長
であるキャッシュ・ミス時における置換対象ブロックを
選択する置換アルゴリズムについて、図9、図10を用
いて詳細に説明する。ここで、状態フラグ113の中の
LRUビットは、図4で説明したように同一のラインア
ドレスに対応する4つのセットのうちで最も最近にアク
セスされたセットはどれかを指し示すためのものであ
る。そこで、アドレスタグ112とLRUビットの値の
変化の様子について、図9を用いて説明する。尚、説明
の簡単化のため、ここで行われるアクセスは、全てプロ
セッサ10のLOAD命令発行に伴うリード動作である
ものとする。
【0046】図9は実施形態1のアドレスタグとLRU
ビットの遷移の一例を示す部である。図9において、ま
ず、時刻0において、アドレス0x00000000へ
のアクセスがプロセッサ10から発行され、その処理の
結果のキャッシュライン0における各セットのアドレス
タグ112及びLRUビットの状態が1行目に示されて
いる。この場合は、セット0のアドレスタグ112には
アドレス0x00000000を指し示すための情報
が、セット1のアドレスタグ112にはアドレス0x1
0000000を指し示すための情報が、セット2のア
ドレスタグ112にはアドレス0x20000000を
指し示すための情報が、セット3のアドレスタグ112
にはアドレス0x30000000を指し示すための情
報が、それぞれ入っている。そして、過去のアクセスの
履歴により、そのLRUビットは、それぞれセット0が
0、セット1が1、セット2が2、セット3が3を示し
ているものとする。なお、ここで、LRUビットは数が
小さい程、最近アクセスされていることを示しているも
のとする。この場合、セット3のLRUビットが3であ
るので、LRUビットとしてはセット3が示されてい
る。
【0047】尚、ここで、全てのラインは有効(VAL
ID)状態にあるものとする。次に、時刻1において、
キャッシュライン0に関連するアドレス0x30000
000へのアクセスが行われる。この場合、キャッシュ
・ヒットして各キャッシュタグは変更されず、LRUビ
ットがそれぞれ更新される。続いて、時刻2において、
キャッシュライン0に関連するアドレス0x30000
000へのアクセスが行われる。この場合、キャッシュ
・ヒットして各キャッシュタグは変更されない。また、
LRUビットの値もLRU=0を値として持つセットが
アクセスされたため、そのまま保たれる。
【0048】時刻3において、キャッシュライン0に関
連するアドレス0x10000000へのアクセスが行
われる。この場合、キャッシュ・ヒットして各キャッシ
ュタグは変更されず、LRUビットがそれぞれ更新され
る。但し、LRU=2を値として持つセットがアクセス
されたため、LRUの値が2以下のセットに関してのみ
LRUビットが更新される。
【0049】時刻4において、キャッシュライン0に関
連するアドレス0x20000000へのアクセスが行
われる。この場合、キャッシュ・ヒットして各キャッシ
ュタグは変更されず、LRUビットがそれぞれ更新され
る。時刻5において、キャッシュライン0に関連するア
ドレス0x40000000へのアクセスが行われる。
この場合、キャッシュ・リードミスするため、キャッシ
ュ・ブロックの置換が実施される。ここでは、時刻4の
処理終了時点においてLRUセットとして示されていた
セット0が置換対象となり、そこのキャッシュタグには
アドレス0x40000000を示すための情報が格納
される。同時にLRUビットがそれぞれ更新される。
【0050】時刻6において、キャッシュライン0に関
連するアドレス0x20000000へのアクセスが行
われる。この場合、キャッシュ・ヒットして各キャッシ
ュタグは変更されず、LRUビットがそれぞれ更新され
る。但し、LRU=1を値として持つセットがアクセス
されたため、LRUの値が1以下のセットに関しての
み、LRUビットが更新される。
【0051】以上説明した図9に示した遷移例では、時
刻5において、キャッシュ・ブロックの置換が行われて
いる。そして、このキャッシュ・ブロックの置換対象を
決定するために実行される実施形態1の計算機システム
の置換アルゴリズムは、上述したLRU法に加えて、そ
のキャッシュ・ブロックを再びキャッシュ・メモリに読
み込むために必要となるアクセス遅延の大小を考慮する
ために、アクセス遅延の大きな記憶装置に由来するデー
タブロックのキャッシュ内部に存続する優先度を上昇さ
せることによって、アクセス遅延の大きなメモリに由来
するキャッシュ・ブロックが置換対象として選択されに
くくするものである。
【0052】以下、実施形態1のキャッシュ・ブロック
の置換対象を決定する置換アルゴリズムの制御手順につ
いて、図10を用いて説明する。図10は実施形態1の
キャッシュ・ブロックの置換対象を決定する置換アルゴ
リズムの制御手順を示すフローチャートである。図10
において、まず、キャッシュ・ブロックの置換対象とし
て、再優先されるのは無効フラグ(V=”0”)の立っ
ているセットである。そこで、無効フラグ(V=”
0”)が存在するか否かを判定する(ステップS100
1)。複数のセットにおいて無効フラグがたっている場
合(ステップS1001でYES)、実施形態1では該
当セットの内、セットNo.が最小のものを選択する
(ステップS1002)。
【0053】一方、無効フラグが立っているセットが存
在しない(全てのセットにおいてV=”1”)場合(ス
テップS1001でNO)、現在有効にキャッシングさ
れているセットの内、どれか一つを置き換えなければな
らない。そこで、実施形態1では、その置き換えを実行
するための基準として2つの基準を用いている。その第
1の基準としてLRU(Least‐Recently
Used)法を用いる。これは、すぐに必要となる情
報を捨ててしまわないように、各セットへのアクセスを
記録し最も長時間使用されなかったセットを置換対象と
して選択するものである。また、図9に示した遷移例の
ように、LRUビットをそのアクセスの度に更新するこ
とによって最も最近にアクセスされたものから順にLR
Uビットを0、1、2、3とそのセットの状態フラグ1
13に記録している。この場合、最も長時間使用されて
いないものはLRUビット=3、その次に長期間使用さ
れていないものはLRUビット=2となる。
【0054】また、更に置換対象となるセットを選択す
る第2の基準として、その置換対象となったセットのア
ドレスタグ112に入っているアドレスがノード内アド
レスを指しているのか、ノード外アドレスを指している
のかを用いている。このノード内アドレスかどうかを判
断するための情報自体は、外部バスインタフェース13
内のノードIDレジスタ131に示されている値(ノー
ドID:”0”又は”1”)を、共有コントロールバス
153及び共有バスコントロールインタフェース156
を通してNodeID信号181として比較器115に
与えられる。
【0055】ここでNodeID信号181に示される
ノードIDは、図2に示されるアドレス空間の最上位ビ
ットと同一のものである。即ち、ノードID=0はノー
ド1を、ノードID=1はノード2をそれぞれ示してい
る。このNodeID信号181を各アドレスタグ11
2に入っているアドレスの最上位ビットと比較すること
によって、一致すればノード内部のアドレス、一致しな
ければノード外部のアドレスを示していることが判明す
る。
【0056】この第1の基準と第2の基準とを組みあわ
せた置換対象のセットを選択する置換アルゴリズムは以
下の通りである。 1. LRU=3を示すセットに蓄えられているアドレ
スタグ112が示すアドレスがノード内アドレスである
か否かを検査する(ステップS1003)。ノード内ア
ドレスである場合(ステップS1003でYES)、そ
のままLRU=3のセットを置換対象として選択する
(ステップS1004)。
【0057】2. 1においてLRU=3のセットに蓄
えられているアドレスタグ112が示すアドレスがノー
ド外アドレスである場合(ステップS1003でN
O)、第2の置換候補としてLRU=2の示すセットの
アドレスタグ112が示すアドレスがノード内アドレス
であるか否かを検査する(ステップS1005)。 3. LRU=2のセットの持つアドレスがノード内ア
ドレスである場合(ステップS1005でYES)、そ
のLRU=2のセットを置換対象として選択する(ステ
ップS1006)。
【0058】4. LRU=2のセットの持つアドレス
がノード外アドレスである場合(ステップS1005で
NO)、第1の置換候補であったLRU=3のセットを
置換対象として選択する(ステップS1007)。この
ように、ノード外アドレスをキャッシングしていた場合
は、置換対象として選択されずにキャッシュ・メモリ1
2内部に残る可能性がLRU法のみを用いて判断してい
た時に比べて1レベル高くなる。
【0059】以上のような置換アルゴリズムを実行する
ことによって、ノード外のメモリからデータを読み込む
ようなアクセス遅延の大きな記憶装置に由来するデータ
ブロックのキャッシュ・メモリ11内部に存続する優先
度を上昇させることが可能になる。この結果、計算機シ
ステム全体としての動作速度を向上させ、システム性能
の向上を図ることができる。
【0060】<実施形態2>実施形態2では、単体で動
作し得る計算機システムに拡張用インタフェースを介し
てアクセス遅延の大きい拡張メモリを増設した計算機シ
ステムに対し本発明を適用する。尚、以下に示す実施形
態2の計算機システムは、基本的に実施形態1と重複す
る部分が多いので、以下、図の説明等では実施形態2に
おいて特徴的なところを重点的に述べる。
【0061】図11は本発明を実現する実施形態2の計
算機システムの構成を示すブロック図である。図11に
おいて、10はプロセッサであり、プロセッサバス14
を介してキャッシュ・メモリ11に接続される。また、
キャッシュ・メモリ11は共有バス15を介してメモリ
12及び拡張用インタフェース33と接続される。拡張
用インタフェース33の先には拡張バス35が存在し、
拡張バス35を介して拡張メモリ32が配置されてい
る。
【0062】次に実施形態2の図11の計算機システム
全体のアドレス空間の割り当てについて、図12を用い
て説明する。図12は実施形態2の計算機システム全体
のアドレス空間の割り当てを示す図である。図12に示
すように、もともとのシステム領域(拡張用ではない領
域)にはアドレス空間として”0x00000000”
〜”0x7fffffff”(0xは16進数を表わ
す)の領域が、拡張用の領域にはアドレス空間として”
0x80000000”〜”0xffffffff”の
領域が割り当てられている。
【0063】以上の構成において、図11に示すプロセ
ッサ10は、キャッシュ・メモリ11を介してメモリ1
2及び拡張メモリ32にアクセスすることができる。こ
の際、拡張メモリ32は拡張用インタフェース33等を
介してアクセスするため、メモリ12に比べてアクセス
遅延が大きいものとなる。次に実施形態2のキャッシュ
・メモリ11の詳細な構成について、図13を用いて説
明する。
【0064】図13は実施形態2のキャッシュ・メモリ
の詳細な構成を示すブロック図である。図13におい
て、キャッシュ・メモリ11の本体は、キャッシュ・メ
モリ制御シーケンサ111、アドレスタグ112、状態
フラグ113、SRAM114、比較器115、選択器
116からなる。ここで、構成自体は実施形態1とほと
んど同一であるので詳細な説明は省略する。実施形態2
と実施形態1との主な違いは、キャッシュ・メモリ制御
シーケンサ111の内部にキャッシュ・メモリ11にア
クセスが発生する度にインクリメントを繰り返す2ビッ
トのカウンタが存在していることである。
【0065】次に実施形態2のアドレスタグ112、状
態フラグ113、SRAM114の詳細な構成につい
て、図14を用いて説明する。図14は実施形態2のア
ドレスタグ、状態フラグ、SRAMの詳細な構成を示す
図である。図14において、実施形態2のキャッシュ・
メモリ11も実施形態と同様、4ウェイ・セット・アソ
シアティブの構成をとっているため、同一のラインアド
レス(アドレス‐m171)で指し示される領域が4つ
存在する。そして、1ラインあたりに含まれるSRAM
114上のデータ(D0〜D3)は、4つの4バイトワ
ード(32ビット)となっている。
【0066】状態フラグ113内のVで示される領域
は、それぞれそのアドレスに対応するキヤッシングデー
タが有効(”1”)であるか無効(”0”)であるかを
示している。アドレスタグ112には、アドレスの上位
22ビット(addrーh’173)が格納される。こ
れらの値は、アクセスが発生する度にキャッシュ・メモ
リ制御シーケンサ111によって最新の状態を示すよう
に書き換えられる。
【0067】以上説明した上記の図11〜図14で示さ
れる実施形態2の計算機システム用いるプロトコルは、
ライトスルー型キャッシュ・メモリの無効化型プロトコ
ルを用いるとする。そして、その条件の下で、キャッシ
ュ・ミスが発生した場合のキャッシュ・ブロックの置換
対象の選択を、その原データが保存されるべき記憶装置
へのアクセス遅延の大小を考慮にいれて決定することが
できる実施形態2の具体例について説明する。
【0068】この具体例の概要を説明すると、キャッシ
ュ・ミスが発生し且つキャッシュ・ブロックの置換が必
要となった場合に、その置換対象を決定する際、従来の
ランダム法の方法に加えて、そのキャッシュ・ブロック
を再びキャッシュ・メモリに読み込むために必要となる
アクセス遅延の大小を考慮して決定する。この決定の実
現は、アクセス遅延の大きな記憶装置に由来するデータ
ブロックのキャッシュ・メモリ内部に存続する優先度を
上昇させ、アクセス遅延の大きなメモリに由来するキャ
ッシュ・ブロックが置換対象として選択されにくくする
ことで実現する。以下、これを実現するキャッシュ・メ
モリを備える計算機システムの動作手順と詳細な構成に
ついて、図11〜図14及び図15のフローチャートを
用いて説明する。
【0069】尚、実施形態2におけるキャッシュ・メモ
リ11の基本動作及び状態遷移は、実施形態1の図5〜
図8で説明したものと同一であるので割愛する。但し、
実施形態2の計算機システムは実施形態1のような複数
のプロセッサを有するマルチプロセッサの構成をとって
いないので、実施形態1の図7及び図8におけるバスス
ヌープ側の動作は、ここでは発生しない。
【0070】次に、実施形態2のシステムのキャッシュ
・ブロックの置換対象を決定する置換アルゴリズムの制
御手順について、図15を用いて説明する。図15は実
施形態2のキャッシュ・ブロックの置換対象を決定する
置換アルゴリズムの制御手順を示すフローチャートであ
る。図15において、まず、キャッシュ・ブロックの置
換対象として、再優先されるのは、無効フラグ(V=”
0”)の立っているセットである。そこで、無効フラグ
(V=”0”)が存在するか否かを判定する(ステップ
S1501)。複数のセットにおいて無効フラグがたっ
ている場合(ステップS1501でYES)、実施形態
2では該当セットの内、セットNo.が最小のものを選
択する(ステップS1502)。
【0071】一方、無効フラグが立っているセットが存
在しない(全てのセットにおいてV=”1”)場合(ス
テップS1501でNO)、現在有効にキャッシングさ
れているセットの内、どれか一つを置き換えなければな
らない。そこで、実施形態2では、その置き換えを実行
するための基準として2つの基準を用いている。その第
1の基準としてランダム法を用いる。これは、置換対象
にどのセットを選ぶかをランダムに選択するものであ
る。それを実現するために、キャッシュ・メモリ制御シ
ーケンサ111の中に2ビットのカウンタ182を設け
ている。カウンタ182は、上述したように、キャッシ
ュ・メモリ11がアクセスされる度にインクリメントさ
れるようになっている。そして、キャッシュ・ミスが発
生し、選択されたラインに対応する4セット全てが有効
である場合、このカウンタの示す番号のセットが置換の
第1候補として選択される。
【0072】また、更に置換対象となるセットを選択す
る第2の基準として、その置換対象となったセットのア
ドレスタグ112に入っているアドレスがシステム内ア
ドレスを指しているのか、拡張用領域アドレスを指して
いるのかを用いている。この拡張用領域アドレスかどう
かを判断するための情報自体は、比較器115内部に保
持されている。即ち、図12に示されるアドレス空間の
最上位ビットを判断に用いている。つまり、各アドレス
タグ112に入っているアドレスの最上位ビットが0で
あればシステム領域、1であれば拡張用領域のアドレス
を示していることが判明する。
【0073】この第1の基準と第2の基準とを組みあわ
せた置換対象のセットを選択する置換アルゴリズムは以
下の通りである。尚、参考までにカウンタの指し示す番
号として2が与えられている場合にどのセットが選択さ
れるのかを例示する。 1. カウンタ182の指し示す番号のセット(ここで
はセット2)に蓄えられているアドレスタグ112が示
すアドレスがシステム領域アドレスであるか否かを検査
する(ステップS1503)。システム領域アドレスで
ある場合(ステップS1503でYES)、そのままカ
ウンタの番号の指し示すセット(ここではセット2)を
置換対象に選択する(ステップS1504)。
【0074】2. 1においてカウンタ182の指し示
す番号のセット(ここではセット2)に蓄えられている
アドレスタグ112が示すアドレスが拡張用領域アドレ
スである場合(ステップS1503でNO)、第2の置
換候補として”カウンタ−1”の指し示すセット(ここ
ではセット1)のアドレスタグ112がシステム領域ア
ドレスである否かを検査する(ステップS1505)。
尚、カウンタ値が0であった場合にはセット3のアドレ
スタグ112が検査の対象となる。
【0075】3. ”カウンタ値−1”の指し示すセッ
ト(ここではセット1)の持つアドレスがシステム領域
アドレスである場合(ステップS1505でYES)、
そのセット(ここではセット1)を置換対象として選択
する(ステップS1506)。 4. ”カウンタ値−1”の指し示すセット(ここでは
セット1)の持つアドレスが拡張用領域アドレスである
場合(ステップS1505でNO)、第1の置換候補で
あったカウンタの指し示す番号のセット(ここではセッ
ト2)を置換対象として選択する(ステップS150
7)。このように、拡張用領域アドレスをキャッシング
していた場合、置換対象として選ばれずにキャッシュ内
部に残る可能性がランダム法のみを用いて判断していた
時に比べて1レベル高くなることになる。
【0076】以上のような置換アルゴリズムを実行する
ことによって、システム領域外のメモリからデータを読
み込むようなアクセス遅延の大きな記憶装置に由来する
データブロックのキャッシュ・メモリ11内部に存続す
る優先度を上昇させることが可能になる。この結果、計
算機システム全体としての動作速度を向上させ、システ
ム性能の向上を図ることができる。
【0077】以上説明したように、実施形態1、2によ
れば、アクセス遅延の異なる複数の記憶装置を有する計
算機システムにおいて、キャッシュ・メモリのデータブ
ロックの置換を行う際に、よりキャッシング効果が得ら
れるような置換対象となるデータブロックの決定方法を
提供でき、計算機システム全体の処理能力を向上させる
ことができる効果がある。
【0078】尚、本発明は、複数の機器(例えば、ホス
トコンピュータ、インタフェース機器、リーダ、プリン
タ等)から構成されるシステムに適用しても、一つの機
器からなる装置(例えば、複写機、ファクシミリ装置
等)に適用してもよい。また、本発明の目的は、前述し
た実施形態の機能を実現するソフトウェアのプログラム
コードを記録した記憶媒体を、システムあるいは装置に
供給し、そのシステムあるいは装置のコンピュータ(ま
たはCPUやMPU)が記憶媒体に格納されたプログラ
ムコードを読出し実行することによっても、達成される
ことは言うまでもない。
【0079】この場合、記憶媒体から読出されたプログ
ラムコード自体が上述した実施の形態の機能を実現する
ことになり、そのプログラムコードを記憶した記憶媒体
は本発明を構成することになる。プログラムコードを供
給するための記憶媒体としては、例えば、フロッピディ
スク、ハードディスク、光ディスク、光磁気ディスク、
CD−ROM、CD−R、磁気テープ、不揮発性のメモ
リカード、ROMなどを用いることができる。
【0080】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施の形態の機能
が実現される場合も含まれることは言うまでもない。
【0081】更に、記憶媒体から読出されたプログラム
コードが、コンピュータに挿入された機能拡張ボードや
コンピュータに接続された機能拡張ユニットに備わるメ
モリに書き込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0082】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図16のメモリマップ例に示す各モジュール
を記憶媒体に格納することになる。すなわち、少なくと
も「判定モジュール」および「置換モジュール」の各モ
ジュールのプログラムコードを記憶媒体に格納すればよ
い。
【0083】尚、「判定モジュール」は、複数のキャッ
シュ・ブロックのいずれかを置換する場合、該複数のキ
ャッシュ・ブロックそれぞれが第1の記憶装置及び第2
の記憶装置のどちらに属しているかを判定する。「置換
モジュール」は、判定結果に基づいて、複数のキャッシ
ュ・ブロックのいずれかを置換する。
【0084】
【発明の効果】以上説明したように、本発明によれば、
処理能力を向上させることができる情報処理システム及
びその制御方法、情報処理装置を提供できる。
【図面の簡単な説明】
【図1】本発明を実現する実施形態1の計算機システム
の構成を示すブロック図である。
【図2】実施形態1のクラスタ型計算機システム全体の
アドレス空間の割り当てを示す図である。
【図3】実施形態1のキャッシュ・メモリの詳細な構成
を示すブロック図である。
【図4】実施形態1のアドレスタグ、状態フラグ、SR
AMの詳細な構成を示す図である。
【図5】実施形態1で実行されるLOAD命令が発行さ
れた際のキャッシュ・メモリにおける制御手順を示すフ
ローチャートである。
【図6】実施形態1のキャッシュ・ミス処理の制御手順
を示すフローチャートである。
【図7】実施形態1で実行されるSTORE命令が発行
された際のキャッシュ・メモリにおける制御手順を示す
フローチャートである。
【図8】実施形態1の各メモリトランザクション実行時
の状態フラグの状態遷移を示す図である。
【図9】実施形態1のアドレスタグとLRUビットの遷
移の一例を示す部である。
【図10】実施形態1のキャッシュ・ブロックの置換対
象を決定する置換アルゴリズムの制御手順を示すフロー
チャートである。
【図11】本発明を実現する実施形態2の計算機システ
ムの構成を示すブロック図である。
【図12】実施形態2の計算機システム全体のアドレス
空間の割り当てを示す図である。
【図13】実施形態2のキャッシュ・メモリの詳細な構
成を示すブロック図である。
【図14】実施形態2のアドレスタグ、状態フラグ、S
RAMの詳細な構成を示す図である。
【図15】実施形態2のキャッシュ・ブロックの置換対
象を決定する置換アルゴリズムの制御手順を示すフロー
チャートである。
【図16】本発明の実施形態を実現するプログラムコー
ドを格納した記憶媒体のメモリマップの構造を示す図で
ある。
【符号の説明】
1、2 ノード 5 外部バス 10、20 プロセッサ 11、21 キャッシュ・メモリ 12、22 メモリ 13、23 外部バスインタフェース 14、24 プロセッサバス 15、25 共有バス 16、26 バスアービタ 32 拡張メモリ 33 拡張用インタフェース 35:拡張バス 111 キャシュ・メモリ制御シーケンサ 112 アドレスタグ 113 状態フラグ 114 SRAM 115 比較器 116 選択器 117 キャッシュ・ブロックコントロール 118 比較器コントロール信号 119 Select信号 131、231 NodeIDレジスタ 141 プロセッサアドレスバス 142 プロセッサデータバス 143 プロセッサコントロールバス 144 プロセッサバスアドレスインタフェース 145 プロセッサバスデータインタフェース 146 プロセッサバスコントロールインタフェース 151 共有アドレスバス 152 共有データバス 153 共有コントロールバス 154 共有バスアドレスインタフェース 155 共有バスデータインタフェース 156 共有バスコントロールインタフェース 170 アドレスーh 171 アドレスーm 172 アドレスーl 173 アドレスーh’ 174 データ 175 データ’ 176 ステータス信号 177 共有バスインタフェースコントロール信号 178 プロセッサバスインタフェースコントロール信
号 179 L‐Cont信号 180 S‐Cont信号 181 NodeID信号 182 カウンタ 351 拡張アドレスバス 352 拡張データバス 353 拡張コントロールバス

Claims (17)

    【特許請求の範囲】
  1. 【請求項1】 第1の記憶装置と、該第1の記憶装置よ
    りもアクセス遅延が大きい第2の記憶装置と、複数のキ
    ャッシュ・ブロックを有するキャッシュ・メモリとを備
    える情報処理システムであって、 前記複数のキャッシュ・ブロックのいずれかを置換する
    場合、該複数のキャッシュ・ブロックそれぞれが前記第
    1の記憶装置及び前記第2の記憶装置のどちらに属して
    いるかを判定する判定手段と、 前記判定手段の判定結果に基づいて、前記複数のキャッ
    シュ・ブロックのいずれかを置換する置換手段とを備え
    ることを特徴とする情報処理システム。
  2. 【請求項2】 前記置換手段による置換対象としない優
    先度を前記複数のキャッシュ・ブロック毎に保持する保
    持手段を更に備え、 前記判定手段の判定結果及び前記保持手段が保持する優
    先度に基づいて、前記置換手段は前記複数のキャッシュ
    ・ブロックのいずれかを置換することを特徴とする請求
    項1に記載の情報処理システム。
  3. 【請求項3】 前記置換手段による置換されるキャッシ
    ュ・ブロックの優先度に基づいて、該キャッシュ・ブロ
    ックを含む前記複数のキャッシュ・ブロックの優先度を
    変更する変更手段を更に備えることを特徴とする請求項
    2に記載の情報処理システム。
  4. 【請求項4】 前記変更手段は、前記置換手段によって
    置換されるキャッシュ・ブロックの優先度を最上位に変
    更し、該優先度と同じあるいはそれ以下の優先度を持つ
    キャッシュ・ブロックの優先度を上昇させることを特徴
    する請求項3に記載の情報処理システム。
  5. 【請求項5】 前記複数のキャッシュ・ブロックそれぞ
    れ保持するデータが有効であるか否かを示す情報を管理
    する管理手段を更に備え、 前記判定手段の判定結果及び前記保持手段が保持する優
    先度及び前記管理手段が管理する情報に基づいて、前記
    置換手段は前記複数のキャッシュ・ブロックのいずれか
    を置換することを特徴とする請求項2に記載の情報処理
    システム。
  6. 【請求項6】 有効なデータを保持していないキャッシ
    ュ・ブロックを示す情報を前記管理手段が管理し、かつ
    前記複数のキャッシュ・ブロックのいずれかを置換する
    場合は、前記置換手段は該有効なデータを保持していな
    いキャッシュ・ブロックを置換することを特徴とする請
    求項5に記載の情報処理システム。
  7. 【請求項7】 前記判定手段は、前記第1の記憶装置と
    前記第2の記憶装置それぞれに割り当てられたアドレス
    空間に基づいて、前記複数のキャッシュ・ブロックそれ
    ぞれが前記第1の記憶装置及び前記第2の記憶装置のど
    ちらに属しているかを判定することを特徴とする請求項
    1に記載の情報処理システム。
  8. 【請求項8】 第1の記憶装置と、該第1の記憶装置よ
    りもアクセス遅延が大きい第2の記憶装置と、複数のキ
    ャッシュ・ブロックを有するキャッシュ・メモリとを備
    える情報処理システムの制御方法であって、 前記複数のキャッシュ・ブロックのいずれかを置換する
    場合、該複数のキャッシュ・ブロックそれぞれが前記第
    1の記憶装置及び前記第2の記憶装置のどちらに属して
    いるかを判定する判定工程と、 前記判定工程の判定結果に基づいて、前記複数のキャッ
    シュ・ブロックのいずれかを置換する置換工程とを備え
    ることを特徴とする情報処理システムの制御方法。
  9. 【請求項9】 前記置換工程による置換対象としない優
    先度を前記複数のキャッシュ・ブロック毎に保持する保
    持工程を更に備え、 前記判定工程の判定結果及び前記保持工程で保持される
    優先度に基づいて、前記置換工程は前記複数のキャッシ
    ュ・ブロックのいずれかを置換することを特徴とする請
    求項8に記載の情報処理システムの制御方法。
  10. 【請求項10】 前記置換工程による置換されるキャッ
    シュ・ブロックの優先度に基づいて、該キャッシュ・ブ
    ロックを含む前記複数のキャッシュ・ブロックの優先度
    を変更する変更工程を更に備えることを特徴とする請求
    項9に記載の情報処理システムの制御方法。
  11. 【請求項11】 前記変更工程は、前記置換工程によっ
    て置換されるキャッシュ・ブロックの優先度を最上位に
    変更し、該優先度と同じあるいはそれ以下の優先度を持
    つキャッシュ・ブロックの優先度を上昇させることを特
    徴する請求項10に記載の情報処理システムの制御方
    法。
  12. 【請求項12】 前記複数のキャッシュ・ブロックそれ
    ぞれ保持するデータが有効であるか否かを示す情報を管
    理する管理工程を更に備え、 前記判定工程の判定結果及び前記保持工程で保持される
    優先度及び前記管理工程で管理される情報に基づいて、
    前記置換工程は前記複数のキャッシュ・ブロックのいず
    れかを置換することを特徴とする請求項9に記載の情報
    処理システムの制御方法。
  13. 【請求項13】 有効なデータを保持していないキャッ
    シュ・ブロックを示す情報が前記管理工程で管理され、
    かつ前記複数のキャッシュ・ブロックのいずれかを置換
    する場合は、前記置換工程は該有効なデータを保持して
    いないキャッシュ・ブロックを置換することを特徴とす
    る請求項12に記載の情報処理システムの制御方法。
  14. 【請求項14】 前記判定工程は、前記第1の記憶装置
    と前記第2の記憶装置それぞれに割り当てられたアドレ
    ス空間に基づいて、前記複数のキャッシュ・ブロックそ
    れぞれが前記第1の記憶装置及び前記第2の記憶装置の
    どちらに属しているかを判定することを特徴とする請求
    項8に記載の情報処理システムの制御方法。
  15. 【請求項15】 第1の記憶装置と、該第1の記憶装置
    よりもアクセス遅延が大きい第2の記憶装置と、複数の
    キャッシュ・ブロックを有するキャッシュ・メモリとを
    備える情報処理装置であって、 前記複数のキャッシュ・ブロックのいずれかを置換する
    場合、該複数のキャッシュ・ブロックそれぞれが前記第
    1の記憶装置及び前記第2の記憶装置のどちらに属して
    いるかを判定する判定手段と、 前記判定手段の判定結果に基づいて、前記複数のキャッ
    シュ・ブロックのいずれかを置換する置換手段と、 を備えることを特徴とする情報処理装置。
  16. 【請求項16】 前記置換手段による置換対象としない
    優先度を前記複数のキャッシュ・ブロック毎に保持する
    保持手段を更に備え、 前記判定手段の判定結果及び前記保持手段が保持する優
    先度に基づいて、前記置換手段は前記複数のキャッシュ
    ・ブロックのいずれかを置換することを特徴とする請求
    項15に記載の情報処理装置。
  17. 【請求項17】 第1の記憶装置と、該第1の記憶装置
    よりもアクセス遅延が大きい第2の記憶装置と、複数の
    キャッシュ・ブロックを有するキャッシュ・メモリとを
    備える情報処理システムの制御のプログラムコードが格
    納されたコンピュータ可読メモリであって、 前記複数のキャッシュ・ブロックのいずれかを置換する
    場合、該複数のキャッシュ・ブロックそれぞれが前記第
    1の記憶装置及び前記第2の記憶装置のどちらに属して
    いるかを判定する判定工程のプログラムコードと、 前記判定手段の判定結果に基づいて、前記複数のキャッ
    シュ・ブロックのいずれかを置換する置換工程のプログ
    ラムコードとを備えることを特徴とするコンピュータ可
    読メモリ。
JP9001442A 1997-01-08 1997-01-08 情報処理システム及びその制御方法、情報処理装置 Withdrawn JPH10198603A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9001442A JPH10198603A (ja) 1997-01-08 1997-01-08 情報処理システム及びその制御方法、情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9001442A JPH10198603A (ja) 1997-01-08 1997-01-08 情報処理システム及びその制御方法、情報処理装置

Publications (1)

Publication Number Publication Date
JPH10198603A true JPH10198603A (ja) 1998-07-31

Family

ID=11501565

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9001442A Withdrawn JPH10198603A (ja) 1997-01-08 1997-01-08 情報処理システム及びその制御方法、情報処理装置

Country Status (1)

Country Link
JP (1) JPH10198603A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100395758B1 (ko) * 2001-06-21 2003-08-21 삼성전자주식회사 새로운 블럭 교체 스킴을 채용한 캐쉬 메모리
JP2010538390A (ja) * 2007-09-04 2010-12-09 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの非常にアソシエティビティの高いキャッシュメモリ用のセカンドチャンス置換機構

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100395758B1 (ko) * 2001-06-21 2003-08-21 삼성전자주식회사 새로운 블럭 교체 스킴을 채용한 캐쉬 메모리
JP2010538390A (ja) * 2007-09-04 2010-12-09 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド プロセッサの非常にアソシエティビティの高いキャッシュメモリ用のセカンドチャンス置換機構

Similar Documents

Publication Publication Date Title
US7698508B2 (en) System and method for reducing unnecessary cache operations
KR100318789B1 (ko) 멀티프로세서 데이타 처리 시스템에서의 캐쉬를 관리하는시스템과 방법
US5325504A (en) Method and apparatus for incorporating cache line replacement and cache write policy information into tag directories in a cache system
US6571322B2 (en) Multiprocessor computer system with sectored cache line mechanism for cache intervention
US6631447B1 (en) Multiprocessor system having controller for controlling the number of processors for which cache coherency must be guaranteed
US6446185B2 (en) Selective address translation in coherent memory replication
US6138217A (en) Method and apparatus for cache coherency in an interconnecting network
US5787478A (en) Method and system for implementing a cache coherency mechanism for utilization within a non-inclusive cache memory hierarchy
US6438653B1 (en) Cache memory control circuit including summarized cache tag memory summarizing cache tag information in parallel processor system
US5692149A (en) Block replacement method in cache only memory architecture multiprocessor
JP3264319B2 (ja) バスブリッジ
US6343344B1 (en) System bus directory snooping mechanism for read/castout (RCO) address transaction
US20110173393A1 (en) Cache memory, memory system, and control method therefor
US6502171B1 (en) Multiprocessor system bus with combined snoop responses explicitly informing snoopers to scarf data
US6560681B1 (en) Split sparse directory for a distributed shared memory multiprocessor system
CN101593161A (zh) 确保微处理器的快取存储器层级数据一致性的装置与方法
US20080301371A1 (en) Memory Cache Control Arrangement and a Method of Performing a Coherency Operation Therefor
CN119848058A (zh) 一致性目录的访问方法、目录控制器及计算机设备
US6950906B2 (en) System for and method of operating a cache
US5361342A (en) Tag control system in a hierarchical memory control system
US6901450B1 (en) Multiprocessor machine and cache control method for providing higher priority to shared cache that is accessed by multiprocessors
US6484241B2 (en) Multiprocessor computer system with sectored cache line system bus protocol mechanism
JP2007156821A (ja) キャッシュシステム及び共用2次キャッシュ
US6553462B2 (en) Multiprocessor computer system with sectored cache line mechanism for load and store operations
JPH10198603A (ja) 情報処理システム及びその制御方法、情報処理装置

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040406