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

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

Info

Publication number
JPH10154100A
JPH10154100A JP8313490A JP31349096A JPH10154100A JP H10154100 A JPH10154100 A JP H10154100A JP 8313490 A JP8313490 A JP 8313490A JP 31349096 A JP31349096 A JP 31349096A JP H10154100 A JPH10154100 A JP H10154100A
Authority
JP
Japan
Prior art keywords
data block
cache memory
information processing
state
information
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
JP8313490A
Other languages
English (en)
Inventor
Kazumasa Hamaguchi
一正 濱口
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 JP8313490A priority Critical patent/JPH10154100A/ja
Priority to US08/976,236 priority patent/US6138217A/en
Publication of JPH10154100A publication Critical patent/JPH10154100A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/25Using a specific main memory architecture
    • G06F2212/254Distributed memory
    • G06F2212/2542Non-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)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】キャッシュメモリが直接的に接続されないバス
によって複数のノードが接続されたシステムにおいて、
キャッシュメモリにキャッシングされたデータをメンテ
ナンスするための処理量を低減する。 【解決手段】複数のプロセッサとこれらの各々に付随す
るキャッシュメモリを含むノードを、バスを介して複数
個接続してなる情報処理システムにおいて、キャッシュ
メモリに格納された各データ・ブロックには、タグ情報
が付加される。タグ情報のbit3、4には、当該デー
タ・ブロックが他のノードでキャッシュされていること
を示す情報(INTERNODE-SHARED)を含むステート情報が
保持される。キャッシュメモリ中のデータ・ブロックに
対してライトアクセスが発生した場合、当該データ・ブ
ロックに付加されたステート情報がINTERNODE-SHAREDで
あった場合に他のノードに対して当該データ・ブロック
の無効化を要求する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、特にキャッシュ・
メモリ内に格納されるデータ・ブロックのコピーの状態
管理と一貫性保持に好適な情報処理システム及び装置及
びその制御方法に関するものである。
【0002】
【従来の技術】計算機システムにおいては、プロセッサ
から発行される記憶装置に対するアクセス要求に対して
高速に応じることができるように、また相互結合網上の
通信トラフィックを減じるために、プロセッサにキャッ
シュ・メモリを付随させることが多い。プロセッサは、
自身に付随するキャッシュ・メモリ中に、記憶装置から
一定サイズのコードやデータ(以下ではこれらを「デー
タ・ブロック」と総称する)のコピーを順次ロードし、
それらを用いて処理を進めて行く。
【0003】また、並列計算機システムで複数のキャッ
シュ・メモリがシステム中に存在する場合は、データ・
ブロックの一貫性の保持が必要となる。これに対して
は、キャッシュ・メモリ内に存在するデータ・ブロック
のコピー各々に関して、その状態を管理しておき、アク
セスが発生した時には、そのデータ・ブロックのコピー
状態に応じた動作/処置を行うことによって、一貫性の
保持を行う方法が一般的である。データ・ブロックの状
態管理プロトコルのひとつにMESIプロトコルがあ
る。
【0004】MESIプロトコルでは、データ・ブロッ
クのコピーが取り得る状態を、 ・M:MODIFIED(EXCLUSIVE_DIR
TY状態:即ち、当該データ・ブロックが他のキャッシ
ュメモリと共有されていない占有状態で、原本のデータ
・ブロックと内容が異なっている状態)、 ・E:EXCLUSIVE(EXCLUSIVE_CL
EAN状態:即ち、当該データ・ブロックが占有状態
で、原本のデータ・ブロックと内容が一致している状
態)、 ・S:SHARED(SHARED_CLEAN状態:
即ち、当該データ・ブロックが複数のキャッシュメモリ
によって共有された共有状態となっており、原本のデー
タ・ブロックと内容が一致している状態)、 ・I:INVALID(無効状態)の4つに分類する。
【0005】例えば、S状態のデータ・ブロックのコピ
ーに対してライト・ヒットした場合には、他のキャッシ
ュ・メモリ内に存在する当該データ・ブロックのコピー
の無効化を行ってからライトを行う。この結果、当該デ
ータ・ブロックはM状態へ移行することになる。また、
M状態のデータ・ブロックのコピーに対するリード・ア
クセスが相互結合網上に発行された場合には、当該デー
タ・ブロックのコピーによりアクセス・サービスを行う
等の動作を行うことにより、データ・ブロックの一貫性
を保持する。
【0006】一方、並列計算機システムの1つの構成方
式として、クラスタ型並列計算機システムがある。これ
は、1つ以上のプロセッサ、各々プロセッサに付随した
キャッシュ・メモリ、記憶装置等を第1の結合網によっ
て相互に接続したものをノードとし、複数のノードを第
2の結合網によって相互に接続した形態を採るものであ
る。クラスタ型並列計算機システムでは、分散共有メモ
リと呼ぶメモリ形態を採ることが多い。これは、各ノー
ドに存在する記憶装置の一部或いは全てがシステム全体
で論理的に1つの主記憶とみなされるものである。即
ち、任意のノードのプロセッサは任意のノードの記憶装
置内のデータ・ブロックをダイレクトにアクセスするこ
とが可能であり、任意のノードのプロセッサに付随する
各々のキャッシュ・メモリは任意のノードの記憶装置内
のデータ・ブロックのコピーを格納することができる。
【0007】また、クラスタ型並列計算機システムのよ
うに、キャッシュ・メモリが直接接続されない第2の結
合網のようなものを有するシステム、即ち任意のキャッ
シュ・メモリが相互結合網上に発行される全てのトラン
ザクションを監視することが不可能なシステムの場合、
キャッシュの一貫性保持はディレクトリ方式に基づいて
行われるのが一般的である。ディレクトリ方式は、ディ
レクトリと呼ばれる記憶媒体を設け、これに一定サイズ
のメモリ・ブロック毎のキャッシング情報を格納/管理
しておき、一貫性保持が必要となるようなトランザクシ
ョンが発行された場合に、当該メモリ・ブロックをキャ
ッシングしているキャッシュ・メモリにそれを通知する
ことで、キャッシュの一貫性保持を図る方式である。
【0008】
【発明が解決しようとする課題】クラスタ型並列計算機
システムのキャッシュ・メモリの場合も、格納されるデ
ータ・ブロックのコピーには、従来通り、専有状態にな
るものと共有状態にあるものとにまず分類できる。しか
しながら、クラスタ型並列計算機システムにおけるデー
タ・ブロックのコピー状態は従来のものとは異なり、S
HAREDの状態(共有状態)が更に、 ・自ノード中の他キャッシュ・メモリとの共有状態にあ
るもの、 ・他ノード中のキャッシュ・メモリとの共通状態にある
もの、 ・自ノード中の他キャッシュ・メモリ及び他ノード中の
キャッシュ・メモリと共有状態にあるものに分類可能で
ある。
【0009】このように、クラスタ型並列計算機システ
ムにおいては、共有状態が更に細かく分類され、夫々の
状態において一貫性保持時のコストも異なる。このた
め、従来の方式のキャッシュ・メモリ管理機構を適用し
た場合、システム性能の低下を招く可能性がある。
【0010】例えば、従来の方式のキャッシュ・メモリ
を使用した場合、共有状態は上記した3つの場合のいず
れにも係わらず、SHAREDという1つの状態で管理
されることになる。
【0011】ここで、従来のキャッシュ・メモリにおけ
る、SHARED状態のデータ・ブロックのコピーに対
するライト・ヒット時の動作は、(1)無効化トランザ
クションを第1の結合網上に発行する、(2)トランザ
クション対象データ・ブロックに対応するディレクトリ
・エントリの存在するノードへ、無効化トランザクショ
ンを転送する、(3)ディレクトリ・エントリをチェッ
クし、当該データ・ブロックのコピーをキャッシングし
ているノードへ、無効化トランザクションを転送する、
(4)各ノードにおいて、第1の結合網上へ無効化トラ
ンザクションを発行する、(5)当該ディレクトリ・エ
ントリの存在するノードへ、無効化トランザクションが
完了したことを示すアクノリッジを返送する、(6)全
てのアクノリッジが返送された後、無効化トランザクシ
ョンを発行したノードへ、無効化トランザクションが完
了したことを通知する、(7)無効化トランザクション
を発行したキャッシュ・メモリへ、無効化トランザクシ
ョンが完了したことを通知し、無効化トランザクション
がターミネートされる、となる。
【0012】これらは他ノード中のキャッシュ・メモリ
との間でデータ・ブロックが共有状態にある場合には全
て必要となる処理であるが、自ノード中の他キャッシュ
・メモリとの間でのみ共有状態にある場合には、(1)
無効化トランザクションを第1の結合網上に発行する、
(2)無効化トランザクションがターミネートされる、
の2ステップのみが必要な動作である。
【0013】このように、クラスタ型並列計算機システ
ムに従来のキャッシュ・メモリを用いた場合、不要な処
理が発生することになり、システム性能の不必要な低下
を招いている。
【0014】本発明は上記の問題に鑑みてなされたもの
であり、キャッシュメモリが直接的に接続されないバス
によって複数のノードが接続されたシステムにおいて、
キャッシュメモリにキャッシングされたデータをメンテ
ナンスするための処理量を低減する情報処理システム及
び装置及びその制御方法を提供することを目的とする。
【0015】
【発明が解決しようとする課題】上記の目的を達成する
ための本発明の情報処理システムは、複数のプロセッサ
と各プロセッサに付随するキャッシュメモリを含んで構
成されるノードを、結合網を介して複数個接続してなる
情報処理システムであって、キャッシュメモリに格納さ
れたデータ・ブロックの各々について、他のノードでキ
ャッシュされているか否かを示す情報を含むステート情
報を付加する付加手段と、前記キャッシュメモリにキャ
ッシュされているデータ・ブロックに対してアクセスが
発生した場合、当該アクセスの内容と当該データ・ブロ
ックに付加されたステート情報とに基づいて他のノード
への処理指示を行う指示手段と、前記指示手段によって
なされた処理指示に基づいて、前記データ・ブロックに
対する処理を実行する実行手段とを備える。
【0016】また、好ましくは、前記指示手段と前記実
行手段は、前記キャッシュメモリにキャッシングしてい
るデータ・ブロックの、複数のキャッシュメモリ間にお
ける一貫性保持を実現する。
【0017】また、好ましくは、前記指示手段は、前記
キャッシュメモリにキャッシングされているデータ・ブ
ロックに対して書き込みが発生した場合、該データ・ブ
ロックに付加されたステート情報が、当該データ・ブロ
ックが他ノードのキャッシュメモリにキャッシングされ
ていることを示す場合に、当該データ・ブロックに関し
て他ノードへ無効化を指示する。データ無効化の手続に
おいて、不要なアクセスを防止できる。
【0018】また、好ましくは、前記一貫性保持のため
の処理は、ノード内ではスヌープ方式を用いて、ノード
間ではディレクトリ方式を用いて実現される。
【0019】また、好ましくは、前記付加手段は、プロ
セッサからキャッシュメモリへのアクセスに対してキャ
ッシュミスが発生した場合、に対象となるデータ・ブロ
ックを獲得する獲得手段と、前記データ・ブロックのキ
ャッシング状況を検出する検出手段と、前記検出手段で
検出されたキャッシング状況より前記ステート情報を生
成する生成手段とを備える。
【0020】また、好ましくは、前記ステート情報は、
対応するデータ・ブロックが無効状態であるか、原本と
同じ内容で占有状態であるか、原本と異なる内容で占有
状態であるか、複数のノード間で共有したキャッシング
状態であるか、自ノード内のみで共有したキャッシング
状態であるかのいずれかを示す。
【0021】また、好ましくは、キャッシュメモリに格
納したデータ・ブロックについて、他のキャッシュメモ
リへのキャッシングが発生した場合に、当該キャッシン
グが他のノードで発生したか、自ノードで発生したかを
判定する判定手段と、前記判定手段による判定の結果に
基づいて、前記ステート情報を更新する更新手段とを更
に備える。
【0022】また、好ましくは、前記更新手段は、前記
ステート情報が原本と同じ内容で占有状態を示すとき
に、当該データブロックが自ノード内の他のキャッシュ
メモリにキャッシングされた場合に該ステート情報を自
ノード内のみで共有したキャッシング状態を示す情報に
更新し、当該データ・ブロックが他のノードにおいてキ
ャッシングされたことを検出すると該ステート情報を複
数のノード間で共有したキャッシング状態を示す情報に
更新する。
【0023】また、上記の目的を達成するための本発明
の情報処理装置は以下の構成を備える。即ち、複数のプ
ロセッサと各プロセッサに付随するキャッシュメモリを
含み、外部の情報処理装置とメモリ空間を共有する情報
処理装置であって、キャッシュメモリに格納されたデー
タ・ブロックの各々について、他のノードでキャッシュ
されているか否かを示す情報を含むステート情報を付加
する付加手段と、前記キャッシュメモリにキャッシュさ
れているデータ・ブロックに対してアクセスが発生した
場合、当該アクセスの内容と当該データ・ブロックに付
加されたステート情報とに基づいて他のノードへの処理
指示を行う指示手段とを備える。
【0024】また、上記の目的を達成する本発明の情報
処理システムの制御方法は、複数のプロセッサと各プロ
セッサに付随するキャッシュメモリを含んで構成される
ノードを、結合網を介して複数個接続してなる情報処理
システムの制御方法であって、キャッシュメモリに格納
されたデータ・ブロックの各々について、他のノードで
キャッシュされているか否かを示す情報を含むステート
情報を付加する付加工程と、前記キャッシュメモリにキ
ャッシュされているデータ・ブロックに対してアクセス
が発生した場合、当該アクセスの内容と当該データ・ブ
ロックに付加されたステート情報とに基づいて他のノー
ドへの処理指示を行う指示工程と、前記指示工程によっ
てなされた処理指示に基づいて、前記データ・ブロック
に対する処理を実行する実行工程とを備える。
【0025】また、上記の目的を達成するための本発明
の情報処理装置の制御方法は、複数のプロセッサと各プ
ロセッサに付随するキャッシュメモリを含み、外部の情
報処理装置とメモリ空間を共有する情報処理装置の制御
方法であって、キャッシュメモリに格納されたデータ・
ブロックの各々について、他のノードでキャッシュされ
ているか否かを示す情報を含むステート情報を付加する
付加工程と、前記キャッシュメモリにキャッシュされて
いるデータ・ブロックに対してアクセスが発生した場
合、当該アクセスの内容と当該データ・ブロックに付加
されたステート情報とに基づいて他のノードへの処理指
示を行う指示工程とを備える。
【0026】
【発明の実施の形態】以下、添付の図面を参照して本発
明の好適な実施形態を説明する。
【0027】図1は、本実施形態の情報処理システムの
構成を示すブロック図である。1はシステム・バス・ア
ービタであり、システム・バス2における各種信号のタ
イミングを調停制御する。2はシステムバスであり、ノ
ードp,ノードq,ノードr及びノードsは同一構成の
ノードである。本実施形態の情報処理システムは、ノー
ドp,ノードq,ノードr及びノードsの4つのノード
がシステム・バス2を介して相互に接続された構成を採
る、クラスタ型並列計算機システムである。但し、これ
ら本実施形態におけるシステムの構成は、本発明を限定
するものではない。
【0028】ノードpにおいて、10,11はプロセッ
サであり、各々12,13のキャッシュ・メモリと接続
される。キャッシュ・メモリ12,13とバス・ブリッ
ジ14は、ノード内バス15によって相互に接続され
る。バス・ブリッジ14は、上位のバスであるシステム
・バス2とノード内バス15との間のブリッジ機能を有
するものである。バス・ブリッジ14は、更に、ノード
内バス15の調停制御、記憶装置16の制御を行うとと
もに、ディレクトリ17を用いてキャッシング情報を保
持/管理し、キャッシュの一貫性保持動作を執り行う機
能を有するものである。同様にノードq,ノードr及び
ノードsにおいて、20,21,30,31,40,4
1はプロセッサ、22,23,32,33,42,43
はキャッシュ・メモリ、24,34,44はバス・ブリ
ッジ、25,35,45はノード内バス、26,36,
46は記憶装置、27,37,47はディレクトリであ
る。
【0029】図2は、本実施形態の情報処理システムの
アドレス・マップを示す図である。同図に示されるよう
に、0x00000000から0x07ffffffま
でがノードpの記憶装置16に、0x08000000
から0x0fffffffまでがノードqの記憶装置2
6に、0x10000000から0x17ffffff
までがノードrの記憶装置36に、0x1800000
0から0x1fffffffまでがノードsの記憶装置
46に、各々128MBずつマップされる。0x200
00000から0xffffffffまでは予約領域で
ある。尚、このアドレス・マップは、本発明を限定する
ものではない。
【0030】図3は、本実施形態のシステム中のキャッ
シュ・メモリ(12,13,22,32,33,42,
43)の構成を示すブロック図である。4ウェイ・セッ
ト・アソシアティブ方式、セット数4096、ブロック
・サイズ16B、容量256kBのキャッシュ・メモリ
である。尚、キャッシュの構成、サイズ等は、本発明を
限定するものではない。
【0031】100はキャッシュ・コントローラであ
り、付随しているプロセッサ(10,11,20,2
1,30,31,40,41)及びノード内バス(1
5,25,35,45)の制御信号線と接続する。10
1,108,115,122はタグ情報を格納するRA
Mであり、102,103,104,105,109,
110,111,112,116,117,118,1
19,123,124,125,126はデータを格納
するRAMである。106,113,120,127は
比較器、107,114,121,128,129,1
30,131,132,133,134,135は3ス
テート制御可能なバッファである。
【0032】図3に示すように、キャッシュ・メモリは
様々な信号線によって、キャッシュ・メモリの外部(プ
ロセッサ及びノード内バス)と接続されている。
【0033】プロセッサとの接続は、アクセスを開始し
たことを示すP_START*、リード、ライトの種別
やアクセスサイズ等のアクセス属性を示すP_TYPE
0−1、P_SIZ0−1、アクセスのターミネート信
号であるP_ACK*、P_NACK*、アドレス信号P
_A0−31、及びデータ信号P_D0−31によりな
される。
【0034】また、ノード内バスとの接続は、ノード内
バスの調整制御用の信号であるB_REQ*、B_GR
ANT*、バス・ブリッジ(14,24,34,44)
がノード内バス(15,25,35,45)にトランザ
クションを発行中にアサートされるBB_USE*、ア
クセスを開始したことを示すSTART*、アクセス属
性を示すTYPE0−1、SIZ0−1、アクセスのタ
ーミネート信号であるACK*、NACK*、アドレス信
号A0−31、データ信号D0−31でなされる。更
に、キャッシュ・コントローラ100とノード内バスと
の接続には、本実施形態に特有の信号線である、L_S
HD*、R_SHD*、CK_INHIBIT*が存在す
る。
【0035】また、キャッシュ・メモリ内部の信号線
は、タグRAMのchip select信号であるTCS*0−3
(番号はウェイ番号を示す)、タグRAMのwrite enab
le信号であるTWE*0−3(番号はウェイ番号を示
す)、タグRAMへの書込み時にバッファの3ステート
制御を行うTAGW*0−3(番号はウェイ番号を示
す)、プロセッサ側のアドレス信号のバッファの3ステ
ート制御を行うPAEN*、ノード内バス側のアドレス
信号のバッファの3ステート制御を行うBAINEN
*、BAOUTEN*、タグRAM内に格納される状態情
報であるSTATUS0−3、キャッシュ・アクセス時
のアドレス比較結果であるMATCH*0−3(番号は
ウェイ番号を示す)、データRAMのchip select信号
であるDCS*00−03/10−13/20−23/
30−33(番号ijは、iがウェイ番号を、jがP_
A28−29/A28−29の2ビットの値を10進化
したもの(例えば、28ビット、29ビットが10なら
ば「2」)を示す)、データRAMのwrite enable信号
であるDWE*00−03/10−13/20−23/
30−33(番号ijはiがウェイ番号を、jがP_A
28−29/A28−29の値を10進化したものを示
す)、プロセッサ側のデータ信号の3ステート制御を行
うPDINEN*、PDOUTEN*、ノード内バス側の
データ信号の3ステート制御を行うBDINEN*、B
DOUTEN*がある。
【0036】図4は、本システムにおけるバス・ブリッ
ジ(14,24,34,44)の構成を示すブロック図
である。200はノード内バス・インターフェース、2
01はシステム・バス・インターフェース、202は制
御論理、203,204,205,206,207,2
08,209,210,211,212,213,21
4,215,216,217,218は3ステート制御
可能なバッファである。以上のような構成を有するバス
・ブリッジの機能は、以下の動作説明において明らかと
なる。
【0037】以下、本実施形態の情報処理システムの動
作を述べ、特徴を示す。なお、動作の説明においては、
ノードpを主体として説明するが、他のノードにおいて
も同様の状況においては同一の動作が行われる。
【0038】図5は本実施形態におけるキャッシュ・メ
モリ内のデータ・ブロックの状態遷移を示す図である。
本システムにおいてキャッシュ・メモリ内に格納される
データ・ブロックのコピーの状態は、図5に示すように
遷移する。状態としては、 ・INVALID(無効な状態)、 ・EXCLUSIVE(専有状態で、記憶装置中のデー
タ・ブロック原本と内容の違いが無い状態)、 ・DIRTY(専有状態で、記憶装置中のデータ・ブロ
ック原本と内容の違っている状態)、 ・INTRANODE−SHARED(ノード内の他キ
ャッシュ・メモリとの共有状態で、記憶装置中のデータ
・ブロック原本と内容の違いが無い状態)、 ・INTERNODE−SHARED(ノード外のキャ
ッシュ・メモリとの共有状態、またはノード外のキャッ
シュ・メモリ及びノード内の他キャッシュ・メモリとの
共有状態で、記憶装置中のデータ・ブロック原本と内容
の違いが無い状態)の5状態をとる。
【0039】図6は、本実施形態におけるキャッシュ・
メモリへのアクセス手順を説明するフローチャートであ
る。
【0040】先ず、ステップS101において、キャッ
シュメモリヘのアクセスが行われる。例えば、プロセッ
サ10によるアクセスはキャッシュ・メモリ12に対し
て発行される。
【0041】ここで、キャッシュ・メモリ10内のキャ
ッシュ・コントローラ100は、P_START*がア
サートされていることでアクセスが発行されていること
を検知し、P_TYPE0−1により当該アクセスがリ
ードであるかライトであるかを、更にP_SIZ0−1
によりアクセス・サイズを知る。キャッシュ・コントロ
ーラ100はPAEN*をアサートすることでバッファ
129を開き、アクセス・アドレスをキャッシュ・メモ
リ12内部に出力させる。そして、TCS*0−3をア
サートし、各タグRAM(101,108,115,1
22)をリード・アクセスする。
【0042】タグRAM(101,108,115,1
22)には図7に示すような、格納しているデータ・ブ
ロックのコピーに関するタグ情報が格納されている。ア
クセス対象のタグ情報のタグ・アドレス部分(bit5
−20)は比較器(106,113,120,127)
に入力される。比較器(106,113,120,12
7)による比較結果はMATCH*0−3によってキャ
ッシュコントローラ100へ伝えられる。更に、タグR
AM(101,108,115,122)からの残りの
情報、即ちVビット(bit0)、LRU情報(bit
1−2)、及びステート情報(bit3−4)はSTA
TUS0−3によってキャッシュ・コントローラ100
へ伝えられる。
【0043】ここで、MATCH*0−3のいずれかが
アサートされ、かつ当該セットのSTATUS0−3の
Vビットが1であった場合はキャッシュ・ヒットであ
り、それ以外の場合はキャッシュ・ミスである。キャッ
シュ・ヒットの場合は、後述するように必要に応じた一
貫性保持動作を行った後に、プロセッサ(10)が発行
したアクセスに対するサービスを行う(ステップS10
2、S113、S114)。一方、キャッシュ・ミスの
場合は、キャッシュ・ミス処理動作に入るべく、ステッ
プS102からステップS103へ進む。
【0044】キャッシュ・ミス処理動作は以下のように
行う。先ず新たに格納するデータ・ブロックのコピーの
格納先の決定を行う(ステップS103)。ここで、V
ビットが0のセットがある場合、即ち空きセットがある
場合は、そのうちのいずれかを選択し、当該データ・ブ
ロックのキャッシュ先として決定する。また、空きセッ
トが無い場合は、LRU値が11のセットを選択する。
そして選択されたセットのステート情報が「DIRT
Y」であった場合は、記憶装置16、26、36、46
のいずれかに格納されているデータ・ブロック原本に対
する書き戻し動作を行い、当該セットをデータ・ブロッ
クのキャッシュ先として決定する。
【0045】キャッシュメモリ内のキャッシュ先が決定
されると、プロセッサ10がアクセスしようとしている
データを含むデータ・ブロックのコピーをキャッシュ・
メモリ12内に読み込むために、キャッシュ/ミスを起
こしたプロセッサからのアクセスがリードである場合は
リード・アクセスを、ライトである場合は無効化付きリ
ード・アクセスをノード内バス15に発行する(ステッ
プS104)。このトランザクションはバス・ブリッジ
14に受け付けられる。バス・ブリッジ14は、受け付
けたトランザクションのアクセスアドレスに基づいて、
当該アクセスが他ノードの記憶装置へのアクセスか、自
ノードの記憶装置へのアクセスかを判断する。バス・ブ
リッジ14の動作は、トランザクション対象のデータ・
ブロックが自ノード中の記憶装置内にあるか、他ノード
中の記憶装置内にあるかにより異なる(ステップS10
5)。
【0046】トランザクション対象のデータ・ブロック
が自ノード中の記憶装置16内にある場合、バス・ブリ
ッジ14ではまずディレクトリ17に対するアクセスが
行われる。ディレクトリ内には、同一ノード中の記憶装
置内のデータ・ブロック各々のキャッシング情報が格納
されている。従って、ディレクトリをアクセスすること
でトランザクション対象のデータ・ブロックのコピーが
いずれのノードにキャッシングされているかを知ること
ができる。
【0047】得られたキャッシング情報から、一貫性保
持動作が必要であると判断された場合、後述するように
必要に応じた一貫性保持動作を行い(ステップS10
6、S107)、ステップS108へ進む。また一貫性
保持動作が必要ないと判断された場合は、ステップS1
06からそのままステップS108へ進む。
【0048】ステップS108では記憶装置16に対す
るアクセスを行い、記憶装置16からトランザクション
対象のデータ・ブロックを読み出し、先のステップS1
03で決定したキャッシング先に格納する。更に、ステ
ップS109において、ディレクトリ内の当該エントリ
の更新を行う。
【0049】一方、トランザクション対象のデータ・ブ
ロックが他ノード中の記憶装置内にある場合はステップ
S105からステップS110へ進む。ステップS11
0において、バス・ブリッジ14は、アドレスA0−4
で指定されるノードのバス・ブリッジに対して、ステッ
プS104で発行されたリード・トランザクションをシ
ステム・バス2を介して転送する。
【0050】転送先のノードのバス・ブリッジでは、前
述したステップS106〜S109の動作と同様に、デ
ィレクトリに対するアクセスを行い、必要な一貫性保持
動作を行った後、トランザクション対象のデータ・ブロ
ックを記憶装置から読み出す。そして、ディレクトリ内
の当該エントリの更新を行う。また、記憶装置から読み
出した当該データ・ブロックはリード・トランザクショ
ンの発行元ノードのバス・ブリッジ14に返送される。
このとき、SHD*0−3を用いて、当該データ・ブロ
ックのコピーがいずれのノードにキャッシングされてい
るかという情報が示される。
【0051】ステップS111においてトランザクショ
ン対象のデータ・ブロックを受信すると、当該データ・
ブロックは、バス・プロトコルにしたがってノード内バ
ス15に出力される。この際、他方のキャッシュ・メモ
リ13からはL_SHD*信号を用いて、当該データ・
ブロックのコピーがキャッシュ・メモリ13内に格納さ
れているか否かが示される。またバス・ブリッジ14か
らはR_SHD*信号を用いて、当該データ・ブロック
のコピーが他ノード中のキャッシュ・メモリ内に格納さ
れているか否かが示される。
【0052】キャッシュ・メモリ12はトランザクショ
ン対象のデータ・ブロックを受取り、バス・プロトコル
にしたがってプロセッサ10にデータを渡すとともに、
先に決定した格納先にデータ・ブロックを格納する(ス
テップS112)。そして、ステップS113におい
て、タグRAMへのタグ情報の書込みを行う。
【0053】この時、キャッシュ・ミスがプロセッサ1
0からのライト・アクセスに起因したものであればステ
ータス情報(bit3−4)を01としてDIRTY状
態を示す。また、キャッシュ・ミスがリード・アクセス
に起因し、L_SHD*信号もR_SHD*信号もアサー
トされなかった場合、即ち自ノード、他ノードを問わ
ず、いずれの他キャッシュ・メモリ内にも当該データ・
ブロックのコピーが存在していない場合は、ステータス
情報を00としてEXCLUSIVE状態を示す。ま
た、リード・アクセスに起因し、L_SHD*信号のみ
アサートされた場合、即ち当該データ・ブロックのコピ
ーが自ノードの他キャッシュ・メモリ内には格納されて
いるが、他ノードのキャッシュ・メモリ内には格納され
ていない場合は、ステータス情報を10としてINTE
RNODE_SHARED状態を示す。また、R_SH
D*信号がアサートされた場合、即ち他ノードのキャッ
シュ・メモリ内にも当該データ・ブロックのコピーが格
納されている場合は、ステータス情報を11としてIN
TERNODE_SHARED状態を示す。ミス処理動
作は以上のようにして完了する。
【0054】その後、ステップS114において当該ア
クセスに対するサービスを行う。なお、キャッシュ・ミ
スを起こしたプロセッサからのアクセスがライトであっ
た場合には、ミス処理において発行される無効化付きリ
ード・アクセスを検知した、トランザクション対象のデ
ータ・ブロック原本の存在するノードのバス・ブリッジ
が、後述する動作と同様に当該データ・ブロックをキャ
ッシングしている全ノードに対して無効化トランザクシ
ョンを発行することによって排他性を保証する。
【0055】次に一貫性保持動作について述べる。本シ
ステムにおける一貫性保持は、ディレクトリ方式に基づ
いたノード間でのトランザクションの通知と、キャッシ
ュ・メモリによるノード内バス上のトランザクションの
監視(スヌープ)とそれに応じたデータ・ブロックのコ
ピーの状態遷移によって行われる。状態遷移については
図5に示す通りであり、例えばEXCLUSIVE状態
のデータ・ブロックのコピーに対して、自ノード中の他
キャッシュ・メモリが発行したリード・トランザクショ
ンがスヌープ・ヒットした場合は、INTRANODE
_SHARED状態に遷移し、バス・ブリッジが発行し
たリード・トランザクションがスヌープ・ヒットした場
合(他のノードにおいてリード・トランザクションが発
生したことを示す)は、INTERNODE_SHAR
ED状態に遷移する。
【0056】本システムの特徴の1つは、従来のSHA
RED状態をINTERNODE_SHARED状態と
INTRANODE_SHARED状態に分けて管理す
ることにある。これらの状態のデータ・ブロックのコピ
ーにライト・ヒットした場合の動作を以下に示す。図8
は、本実施形態におけるキャッシュデータへのライト・
ヒット時の動作を示すフローチャートである。
【0057】INTERNODE_SHARED状態の
データ・ブロックのコピーへのライト・ヒット時には、
キャッシュ・メモリ12からノード内バス15へ無効化
トランザクションが発行される(ステップS201、S
202)。その無効化トランザクションの発生は、バス
・ブリッジ14によって、システム・バス2を介して、
無効化対象の原本のデータ・ブロックの存在するノー
ド、即ち無効化対象のデータ・ブロックに対応するディ
レクトリ・エントリが存在するノードに通知される(ス
テップS203)。
【0058】ここで、無効化の通知を受けた、データ・
ブロックの原本が存在するノードの動作を説明する。図
9は外部より無効化の通知を受けた、原本が存在するノ
ードの動作手順を説明するフローチャートである。
【0059】通知を受けたノードのバス・ブリッジはデ
ィレクトリをアクセスし、当該データ・ブロックのコピ
ーがいずれのノードにキャッシングされているかを知る
(ステップS301)。そして、当該データ・ブロック
が他のノードにキャッシングされている場合は、当該デ
ータ・ブロックのコピーをキャッシングしているノード
に対して、各々システム・バス2を介して無効化トラン
ザクションを発行する(ステップS302、S30
3)。
【0060】無効化トランザクションの発行を受けたノ
ードのバス・ブリッジは、ノード内バスに同一の無効化
トランザクションを発行する。そのノード中のキャッシ
ュ・メモリは、発行された無効化トランザクションを検
出し、格納している当該データ・ブロックのコピーの状
態を「INVALID」とし、無効化する(ステップS
351)。こうして無効化トランザクションが完了する
と、そのノードのバス・ブリッジは、当該データ・ブロ
ックの原本が存在するノードに対して、無効化の完了を
通知する(ステップS352)。
【0061】さて、他ノードの無効化の完了を受信する
と(ステップS304)、自ノード内の当該データ・ブ
ロックのコピーを無効化する(ステップS305)。こ
のようにして、当該データ・ブロックの原本が存在する
ノードは、無効化トランザクションを発行した全てのノ
ードからの無効化完了通知を受け取り、更に自ノード内
のデータ・ブロックの無効化を行うと、無効化トランザ
クションの発生を通知してきたノードに対して、当該デ
ータ・ブロックのコピーの無効化が完了したことを通知
する(ステップS306)。
【0062】さて、図8に戻り、通知を受けたノードの
バス・ブリッジ14は、バス・プロトコルに従って、キ
ャッシュ・メモリ12に対して無効化トランザクション
のターミネートを行う(ステップS204、S20
5)。そして、キャッシュ・メモリ12は、当該データ
・ブロックのコピーの状態をDIRTYとし、処理を続
行する(ステップS206、S207)。
【0063】一方、INTRANODE_SHARED
状態のデータ・ブロックのコピーへのライト・ヒット時
はステップS201からステップS208へ進む。ここ
で、キャッシュ・メモリ12からノード内バス15へ無
効化トランザクションが発行されるのはINTERNO
DE_SHARED状態のデータ・ブロックのコピーへ
のライト・ビット時と同様である。しかし、INTRA
NODE_SHAREDの場合、キャッシュ・メモリ1
2はCK_INHIBIT*信号をアサートし、前述の
INTERNODE_SHARED状態のデータ・ブロ
ックのコピーへのライト・ヒット時のようなノード間に
跨る一貫性保持動作が必要ないことを、バス・ブリッジ
14に通知する。
【0064】キャッシュ・メモリ12からノード内バス
15へ発行された無効化トランザクションは、他方のキ
ャッシュ・メモリ13により検出され、キャッシュ・メ
モリ13は当該データ・ブロックのコピーを無効化す
る。バス・ブリッジ14はCK_INHIBIT*信号
がアサートされているため、一貫性保持動作は行わず、
発行された無効化トランザクションはバス・プロトコル
に従ってターミネートされる(ステップS205)。そ
して、キャッシュ・メモリ12は当該データ・ブロック
のコピーの状態をDIRTYとし、処理を続行する(ス
テップS206、S207)。
【0065】以上説明したように、上記実施形態によれ
ば、クラスタ型並列計算機システムにおいて、他のキャ
ッシュ・メモリ中にも格納され、共有状態にあるキャッ
シュ・メモリ中のデータ・ブロックについて、同一ノー
ド中の他キャッシュ・メモリとの間でのみの共有状態に
あるのか、他ノード中のキャッシュ・メモリとの間での
共有状態にあるのかを区別して管理することが可能とな
る。そして、そのようなデータ・ブロックのコピーに関
する一貫性保持動作が必要となった際に、ノード間を跨
った一貫性保持動作が必要であるか否かを、他ノードと
のインターフェースをとるバス・ブリッジ等に知らせ、
必要な場合にのみノード間を跨った一貫性保持動作が行
われるようにするので、一貫性保持動作に要するオーバ
ーヘッドの総計が減じられ、システム性能の向上を図る
ことができる。
【0066】なお、本発明は、複数の機器(例えばホス
トコンピュータ,インタフェイス機器,リーダ,プリン
タなど)から構成されるシステムに適用しても、一つの
機器からなる装置(例えば、複写機,ファクシミリ装置
など)に適用してもよい。
【0067】また、本発明の目的は、前述した実施形態
の機能を実現するソフトウェアのプログラムコードを記
録した記憶媒体を、システムあるいは装置に供給し、そ
のシステムあるいは装置のコンピュータ(またはCPU
やMPU)が記憶媒体に格納されたプログラムコードを
読出し実行することによっても、達成されることは言う
までもない。
【0068】この場合、記憶媒体から読出されたプログ
ラムコード自体が前述した実施形態の機能を実現するこ
とになり、そのプログラムコードを記憶した記憶媒体は
本発明を構成することになる。
【0069】プログラムコードを供給するための記憶媒
体としては、例えば、フロッピディスク,ハードディス
ク,光ディスク,光磁気ディスク,CD−ROM,CD
−R,磁気テープ,不揮発性のメモリカード,ROMな
どを用いることができる。
【0070】また、コンピュータが読出したプログラム
コードを実行することにより、前述した実施形態の機能
が実現されるだけでなく、そのプログラムコードの指示
に基づき、コンピュータ上で稼働しているOS(オペレ
ーティングシステム)などが実際の処理の一部または全
部を行い、その処理によって前述した実施形態の機能が
実現される場合も含まれることは言うまでもない。
【0071】さらに、記憶媒体から読出されたプログラ
ムコードが、コンピュータに挿入された機能拡張ボード
やコンピュータに接続された機能拡張ユニットに備わる
メモリに書込まれた後、そのプログラムコードの指示に
基づき、その機能拡張ボードや機能拡張ユニットに備わ
るCPUなどが実際の処理の一部または全部を行い、そ
の処理によって前述した実施形態の機能が実現される場
合も含まれることは言うまでもない。
【0072】本発明を上記記憶媒体に適用する場合、そ
の記憶媒体には、先に説明したフローチャートに対応す
るプログラムコードを格納することになるが、簡単に説
明すると、図10のメモリマップ例に示す各モジュール
を記憶媒体に格納することになる。すなわち、少なくと
も「付加処理モジュール」および「指示処理モジュー
ル」の各モジュールのプログラムコードを記憶媒体に格
納すればよい。
【0073】ここで、上記モジュールで構成される制御
プログラムは、複数のプロセッサと各プロセッサに付随
するキャッシュメモリを含み、外部の情報処理装置とメ
モリ空間を共有する情報処理装置において、キャッシン
グを管理するための制御プログラムである。そして、付
加処理モジュールは、キャッシュメモリに格納されたデ
ータ・ブロックの各々について、他のノードでキャッシ
ュされているか否かを示す情報を含むステート情報を付
加する付加処理を実現する。また、指示処理モジュール
は、前記キャッシュメモリにキャッシュされているデー
タ・ブロックに対してアクセスが発生した場合、当該ア
クセスの内容と当該データ・ブロックに付加されたステ
ート情報とに基づいて他のノードへの処理指示を行う指
示処理を実現する。
【0074】
【発明の効果】以上説明したように、本発明によれば、
キャッシュメモリが直接的に接続されないバスによって
複数のノードが接続されたシステムにおいて、キャッシ
ュメモリにキャッシングされたデータをメンテナンスす
るための処理量を低減することが可能となる。
【0075】
【図面の簡単な説明】
【図1】本実施形態の情報処理システムの構成を示すブ
ロック図である。
【図2】本実施形態の情報処理システムのアドレス・マ
ップを示す図である。
【図3】本実施形態の情報処理システム中のキャッシュ
・メモリの構成を示すブロック図である。
【図4】本システムにおけるバス・ブリッジの構成を示
すブロック図である。
【図5】本実施形態におけるキャッシュ・メモリ内のデ
ータ・ブロックの状態遷移を示す図である。
【図6】本実施形態におけるキャッシュ・メモリへのア
クセス手順を説明するフローチャートである。
【図7】タグ情報のデータ構成例を示す図である。
【図8】本実施形態におけるキャッシュデータへのライ
ト・ヒット時の動作を示すフローチャートである。
【図9】外部より無効化の通知を受けた、原本が存在す
るノードの動作手順を説明するフローチャートである。
【図10】本発明に係る制御プログラムを格納する記憶
媒体のメモリマップ例を示す図である。

Claims (19)

    【特許請求の範囲】
  1. 【請求項1】 複数のプロセッサと各プロセッサに付随
    するキャッシュメモリを含んで構成されるノードを、結
    合網を介して複数個接続してなる情報処理システムであ
    って、 キャッシュメモリに格納されたデータ・ブロックの各々
    について、他のノードでキャッシュされているか否かを
    示す情報を含むステート情報を付加する付加手段と、 前記キャッシュメモリにキャッシュされているデータ・
    ブロックに対してアクセスが発生した場合、当該アクセ
    スの内容と当該データ・ブロックに付加されたステート
    情報とに基づいて他のノードへの処理指示を行う指示手
    段と、 前記指示手段によってなされた処理指示に基づいて、前
    記データ・ブロックに対する処理を実行する実行手段と
    を備えることを特徴とする情報処理システム。
  2. 【請求項2】 前記指示手段と前記実行手段は、前記キ
    ャッシュメモリにキャッシングしているデータ・ブロッ
    クの、複数のキャッシュメモリ間における一貫性保持を
    実現することを特徴とする請求項1に記載の情報処理シ
    ステム。
  3. 【請求項3】 前記指示手段は、前記キャッシュメモリ
    にキャッシングされているデータ・ブロックに対して書
    き込みが発生した場合、該データ・ブロックに付加され
    たステート情報が、当該データ・ブロックが他ノードの
    キャッシュメモリにキャッシングされていることを示す
    場合に、当該データ・ブロックに関して他ノードへ無効
    化を指示することを特徴とする請求項1に記載の情報処
    理システム。
  4. 【請求項4】 前記一貫性保持のための処理は、ノード
    内ではスヌープ方式を用いて、ノード間ではディレクト
    リ方式を用いて実現されることを特徴とする請求項2に
    記載の情報処理システム。
  5. 【請求項5】 前記付加手段は、 プロセッサからキャッシュメモリへのアクセスに対して
    キャッシュミスが発生した場合、に対象となるデータ・
    ブロックを獲得する獲得手段と、 前記データ・ブロックのキャッシング状況を検出する検
    出手段と、 前記検出手段で検出されたキャッシング状況より前記ス
    テート情報を生成する生成手段とを備えることを特徴と
    する請求項1に記載の情報処理システム。
  6. 【請求項6】 前記ステート情報は、対応するデータ・
    ブロックが無効状態であるか、原本と同じ内容で占有状
    態であるか、原本と異なる内容で占有状態であるか、複
    数のノード間で共有したキャッシング状態であるか、自
    ノード内のみで共有したキャッシング状態であるかのい
    ずれかを示すことを特徴とする請求項5に記載の情報処
    理システム。
  7. 【請求項7】 キャッシュメモリに格納したデータ・ブ
    ロックについて、他のキャッシュメモリへのキャッシン
    グが発生した場合に、当該キャッシングが他のノードで
    発生したか、自ノードで発生したかを判定する判定手段
    と、 前記判定手段による判定の結果に基づいて、前記ステー
    ト情報を更新する更新手段とを更に備えることを特徴と
    する請求項6に記載の情報処理システム。
  8. 【請求項8】 前記更新手段は、前記ステート情報が原
    本と同じ内容で占有状態を示すときに、当該データブロ
    ックが自ノード内の他のキャッシュメモリにキャッシン
    グされた場合に該ステート情報を自ノード内のみで共有
    したキャッシング状態を示す情報に更新し、当該データ
    ・ブロックが他のノードにおいてキャッシングされたこ
    とを検出すると該ステート情報を複数のノード間で共有
    したキャッシング状態を示す情報に更新することを特徴
    とする請求項7に記載の情報処理システム。
  9. 【請求項9】 複数のプロセッサと各プロセッサに付随
    するキャッシュメモリを含み、外部の情報処理装置とメ
    モリ空間を共有する情報処理装置であって、 キャッシュメモリに格納されたデータ・ブロックの各々
    について、他のノードでキャッシュされているか否かを
    示す情報を含むステート情報を付加する付加手段と、 前記キャッシュメモリにキャッシュされているデータ・
    ブロックに対してアクセスが発生した場合、当該アクセ
    スの内容と当該データ・ブロックに付加されたステート
    情報とに基づいて他のノードへの処理指示を行う指示手
    段とを備えることを特徴とする情報処理装置。
  10. 【請求項10】 前記指示手段は、前記キャッシュメモ
    リにキャッシングしているデータ・ブロックの、複数の
    キャッシュメモリ間における一貫性保持を実現すること
    を特徴とする請求項9に記載の情報処理装置。
  11. 【請求項11】 前記指示手段は、前記キャッシュメモ
    リにキャッシングされているデータ・ブロックに対して
    書き込みが発生した場合、該データ・ブロックに付加さ
    れたステート情報が、当該データ・ブロックが他ノード
    のキャッシュメモリにキャッシングされていることを示
    す場合に、当該データ・ブロックに関して他ノードへ無
    効化を指示することを特徴とする請求項9に記載の情報
    処理装置。
  12. 【請求項12】 前記一貫性保持のための処理は、当該
    情報処理装置内のキャッシングに関してはスヌープ方式
    を用いて、外部装置ヘのキャッシングに関してはディレ
    クトリ方式を用いて実現されることを特徴とする請求項
    10に記載の情報処理装置。
  13. 【請求項13】 前記付加手段は、 プロセッサからキャッシュメモリへのアクセスに対して
    キャッシュミスが発生した場合、に対象となるデータ・
    ブロックを獲得する獲得手段と、 前記データ・ブロックのキャッシング状況を検出する検
    出手段と、 前記検出手段で検出されたキャッシング状況より前記ス
    テート情報を生成する生成手段とを備えることを特徴と
    する請求項9に記載の情報処理装置。
  14. 【請求項14】 前記ステート情報は、対応するデータ
    ・ブロックが無効状態であるか、原本と同じ内容で占有
    状態であるか、原本と異なる内容で占有状態であるか、
    外部装置との間で共有したキャッシング状態であるか、
    当該情報処理装置内の複数のキャッシュメモリで共有し
    たキャッシング状態であるかのいずれかを示すことを特
    徴とする請求項13に記載の情報処理装置。
  15. 【請求項15】 キャッシュメモリに格納したデータ・
    ブロックについて、他のキャッシュメモリへのキャッシ
    ングが発生した場合に、当該キャッシングが外部装置で
    発生したか、当該情報処理装置で発生したかを判定する
    判定手段と、 前記判定手段による判定の結果に基づいて、前記ステー
    ト情報を更新する更新手段とを更に備えることを特徴と
    する請求項14に記載の情報処理装置。
  16. 【請求項16】 前記更新手段は、前記ステート情報が
    原本と同じ内容で占有状態を示すときに、当該データブ
    ロックが当該情報処理装置内の他のキャッシュメモリに
    キャッシングされた場合に該ステート情報を当該情報処
    理装置内のみで共有したキャッシング状態を示す情報に
    更新し、当該データ・ブロックが外部装置においてキャ
    ッシングされたことを検出すると該ステート情報を外部
    装置との間で共有したキャッシング状態を示す情報に更
    新することを特徴とする請求項15に記載の情報処理装
    置。
  17. 【請求項17】 複数のプロセッサと各プロセッサに付
    随するキャッシュメモリを含んで構成されるノードを、
    結合網を介して複数個接続してなる情報処理システムの
    制御方法であって、 キャッシュメモリに格納されたデータ・ブロックの各々
    について、他のノードでキャッシュされているか否かを
    示す情報を含むステート情報を付加する付加工程と、 前記キャッシュメモリにキャッシュされているデータ・
    ブロックに対してアクセスが発生した場合、当該アクセ
    スの内容と当該データ・ブロックに付加されたステート
    情報とに基づいて他のノードへの処理指示を行う指示工
    程と、 前記指示工程によってなされた処理指示に基づいて、前
    記データ・ブロックに対する処理を実行する実行工程と
    を備えることを特徴とする情報処理システムの制御方
    法。
  18. 【請求項18】 複数のプロセッサと各プロセッサに付
    随するキャッシュメモリを含み、外部の情報処理装置と
    メモリ空間を共有する情報処理装置の制御方法であっ
    て、 キャッシュメモリに格納されたデータ・ブロックの各々
    について、他のノードでキャッシュされているか否かを
    示す情報を含むステート情報を付加する付加工程と、 前記キャッシュメモリにキャッシュされているデータ・
    ブロックに対してアクセスが発生した場合、当該アクセ
    スの内容と当該データ・ブロックに付加されたステート
    情報とに基づいて他のノードへの処理指示を行う指示工
    程とを備えることを特徴とする情報処理装置の制御方
    法。
  19. 【請求項19】 複数のプロセッサと各プロセッサに付
    随するキャッシュメモリを含み、外部の情報処理装置と
    メモリ空間を共有する情報処理装置において、キャッシ
    ングを管理するための制御プログラムを格納するコンピ
    ュータ可読メモリであって、 キャッシュメモリに格納されたデータ・ブロックの各々
    について、他のノードでキャッシュされているか否かを
    示す情報を含むステート情報を付加する付加工程のコー
    ドと、 前記キャッシュメモリにキャッシュされているデータ・
    ブロックに対してアクセスが発生した場合、当該アクセ
    スの内容と当該データ・ブロックに付加されたステート
    情報とに基づいて他のノードへの処理指示を行う指示工
    程のコードとを備えることを特徴とするコンピュータ可
    読メモリ。
JP8313490A 1996-11-25 1996-11-25 情報処理システム及び装置及びその制御方法 Withdrawn JPH10154100A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP8313490A JPH10154100A (ja) 1996-11-25 1996-11-25 情報処理システム及び装置及びその制御方法
US08/976,236 US6138217A (en) 1996-11-25 1997-11-21 Method and apparatus for cache coherency in an interconnecting network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8313490A JPH10154100A (ja) 1996-11-25 1996-11-25 情報処理システム及び装置及びその制御方法

Publications (1)

Publication Number Publication Date
JPH10154100A true JPH10154100A (ja) 1998-06-09

Family

ID=18041946

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8313490A Withdrawn JPH10154100A (ja) 1996-11-25 1996-11-25 情報処理システム及び装置及びその制御方法

Country Status (2)

Country Link
US (1) US6138217A (ja)
JP (1) JPH10154100A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7539823B2 (en) 2004-09-14 2009-05-26 Panasonic Corporation Multiprocessing apparatus having reduced cache miss occurrences
JP2013012235A (ja) * 2001-06-04 2013-01-17 Fujitsu Ltd 複数ノード間での通信方法、相互接続ポートおよび相互接続システム

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5864671A (en) * 1996-07-01 1999-01-26 Sun Microsystems, Inc. Hybrid memory access protocol for servicing memory access request by ascertaining whether the memory block is currently cached in determining which protocols to be used
US5873117A (en) * 1996-07-01 1999-02-16 Sun Microsystems, Inc. Method and apparatus for a directory-less memory access protocol in a distributed shared memory computer system
US6625694B2 (en) * 1998-05-08 2003-09-23 Fujitsu Ltd. System and method for allocating a directory entry for use in multiprocessor-node data processing systems
JP2000010860A (ja) * 1998-06-16 2000-01-14 Hitachi Ltd キャッシュメモリ制御回路及びプロセッサ及びプロセッサシステム及び並列プロセッサシステム
US6636947B1 (en) * 2000-08-24 2003-10-21 International Business Machines Corporation Coherency for DMA read cached data
US6704843B1 (en) 2000-10-26 2004-03-09 International Business Machines Corporation Enhanced multiprocessor response bus protocol enabling intra-cache line reference exchange
US6721856B1 (en) * 2000-10-26 2004-04-13 International Business Machines Corporation Enhanced cache management mechanism via an intelligent system bus monitor
US6631450B1 (en) * 2000-10-26 2003-10-07 International Business Machines Corporation Symmetric multiprocessor address bus protocol with intra-cache line access information
US6629210B1 (en) 2000-10-26 2003-09-30 International Business Machines Corporation Intelligent cache management mechanism via processor access sequence analysis
US6763433B1 (en) 2000-10-26 2004-07-13 International Business Machines Corporation High performance cache intervention mechanism for symmetric multiprocessor systems
US6601144B1 (en) 2000-10-26 2003-07-29 International Business Machines Corporation Dynamic cache management in a symmetric multiprocessor system via snoop operation sequence analysis
US6912602B2 (en) * 2001-11-20 2005-06-28 Broadcom Corporation System having two or more packet interfaces, a switch, and a shared packet DMA circuit
US6748479B2 (en) 2001-11-20 2004-06-08 Broadcom Corporation System having interfaces and switch that separates coherent and packet traffic
US7394823B2 (en) * 2001-11-20 2008-07-01 Broadcom Corporation System having configurable interfaces for flexible system configurations
US7206879B2 (en) * 2001-11-20 2007-04-17 Broadcom Corporation Systems using mix of packet, coherent, and noncoherent traffic to optimize transmission between systems
US7752281B2 (en) * 2001-11-20 2010-07-06 Broadcom Corporation Bridges performing remote reads and writes as uncacheable coherent operations
US7227870B2 (en) * 2001-11-20 2007-06-05 Broadcom Corporation Systems including packet interfaces, switches, and packet DMA circuits for splitting and merging packet streams
US6598120B1 (en) * 2002-03-08 2003-07-22 International Business Machines Corporation Assignment of building block collector agent to receive acknowledgments from other building block agents
US7266587B2 (en) * 2002-05-15 2007-09-04 Broadcom Corporation System having interfaces, switch, and memory bridge for CC-NUMA operation
US7003631B2 (en) * 2002-05-15 2006-02-21 Broadcom Corporation System having address-based intranode coherency and data-based internode coherency
US6993631B2 (en) * 2002-05-15 2006-01-31 Broadcom Corporation L2 cache maintaining local ownership of remote coherency blocks
US6965973B2 (en) * 2002-05-15 2005-11-15 Broadcom Corporation Remote line directory which covers subset of shareable CC-NUMA memory space
US20040143626A1 (en) * 2003-01-21 2004-07-22 Dell Products L.P. Method and system for operating a cache for multiple files
US8185695B2 (en) * 2008-06-30 2012-05-22 Advanced Micro Devices, Inc. Snoop filtering mechanism

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3009430B2 (ja) * 1990-07-09 2000-02-14 キヤノン株式会社 プロセッサおよびそのキャッシュメモリ制御方法
JP3236287B2 (ja) * 1990-11-29 2001-12-10 キヤノン株式会社 マルチプロセッサシステム
JP3105283B2 (ja) * 1991-03-20 2000-10-30 キヤノン株式会社 メモリ・アクセス制御装置
US5553310A (en) * 1992-10-02 1996-09-03 Compaq Computer Corporation Split transactions and pipelined arbitration of microprocessors in multiprocessing computer systems
JPH07152693A (ja) * 1993-11-29 1995-06-16 Canon Inc 情報処理装置
US5623628A (en) * 1994-03-02 1997-04-22 Intel Corporation Computer system and method for maintaining memory consistency in a pipelined, non-blocking caching bus request queue
JPH08185359A (ja) * 1994-10-31 1996-07-16 Toshiba Corp メモリサブシステム
US5696936A (en) * 1995-04-25 1997-12-09 Unisys Corporation Low latency message processor interface using memory mapped Read/Write Windows
US5680576A (en) * 1995-05-05 1997-10-21 Silicon Graphics, Inc. Directory-based coherence protocol allowing efficient dropping of clean-exclusive data
US5933261A (en) * 1995-06-26 1999-08-03 Canon Kabushiki Kaisha Information processing method and system
US5860110A (en) * 1995-08-22 1999-01-12 Canon Kabushiki Kaisha Conference maintenance method for cache memories in multi-processor system triggered by a predetermined synchronization point and a predetermined condition
US5802578A (en) * 1996-06-12 1998-09-01 Sequent Computer Systems, Inc. Multinode computer system with cache for combined tags
US5900020A (en) * 1996-06-27 1999-05-04 Sequent Computer Systems, Inc. Method and apparatus for maintaining an order of write operations by processors in a multiprocessor computer to maintain memory consistency
US5893149A (en) * 1996-07-01 1999-04-06 Sun Microsystems, Inc. Flushing of cache memory in a computer system
US5937431A (en) * 1996-07-12 1999-08-10 Samsung Electronics Co., Ltd. Multi- node, multi-level cache- only memory architecture with relaxed inclusion

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013012235A (ja) * 2001-06-04 2013-01-17 Fujitsu Ltd 複数ノード間での通信方法、相互接続ポートおよび相互接続システム
US7539823B2 (en) 2004-09-14 2009-05-26 Panasonic Corporation Multiprocessing apparatus having reduced cache miss occurrences

Also Published As

Publication number Publication date
US6138217A (en) 2000-10-24

Similar Documents

Publication Publication Date Title
JPH10154100A (ja) 情報処理システム及び装置及びその制御方法
US5822763A (en) Cache coherence protocol for reducing the effects of false sharing in non-bus-based shared-memory multiprocessors
US6366984B1 (en) Write combining buffer that supports snoop request
JP4316016B2 (ja) 複数のシステムバスを有するコンピュータシステムにおいてメモリコヒーレンスを維持するためのシステムおよび方法
EP0667578B1 (en) Apparatus and method for checking cache coherency with double snoop mechanism
JPH08185359A (ja) メモリサブシステム
US6772298B2 (en) Method and apparatus for invalidating a cache line without data return in a multi-node architecture
JP4119380B2 (ja) マルチプロセッサシステム
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
US6751705B1 (en) Cache line converter
US6266743B1 (en) Method and system for providing an eviction protocol within a non-uniform memory access system
KR19980079662A (ko) Smp 버스의 공유 상태에서의 캐시 라인들의 공유 개입 방법
JPH09223118A (ja) スヌープキャッシュメモリ制御システム
US6587922B2 (en) Multiprocessor system
GB2390710A (en) Data maintenance of a distributed shared memory system
JPH06110844A (ja) 分散共有メモリ型マルチプロセッサシステム
US20040111563A1 (en) Method and apparatus for cache coherency between heterogeneous agents and limiting data transfers among symmetric processors
US6615321B2 (en) Mechanism for collapsing store misses in an SMP computer system
JP3757117B2 (ja) キャッシュ装置及び制御方法
US20010029574A1 (en) Method and apparatus for developing multiprocessore cache control protocols using a memory management system generating an external acknowledgement signal to set a cache to a dirty coherence state
US6336169B1 (en) Background kill system bus transaction to optimize coherency transactions on a multiprocessor system bus
JP2746530B2 (ja) 共有メモリマルチプロセッサ
US7464227B2 (en) Method and apparatus for supporting opportunistic sharing in coherent multiprocessors
US7669013B2 (en) Directory for multi-node coherent bus
JPH09128346A (ja) 階層バスシステム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040203