JPH06243035A - コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶 - Google Patents
コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶Info
- Publication number
- JPH06243035A JPH06243035A JP5324668A JP32466893A JPH06243035A JP H06243035 A JPH06243035 A JP H06243035A JP 5324668 A JP5324668 A JP 5324668A JP 32466893 A JP32466893 A JP 32466893A JP H06243035 A JPH06243035 A JP H06243035A
- Authority
- JP
- Japan
- Prior art keywords
- node
- shared
- cache line
- communication means
- inter
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】
【目的】 コンピュータのクラスタ・アーキテクチャの
性能及び汎用性を向上させる。 【構成】 クラスタ・アーキテクチャに「一般化共用記
憶」を導入し、この一般化共用記憶は、共用オブジェク
トの位置付けや参照等が行なわれたときにその共用オブ
ジェクトに対して操作を加えるハードウェアで構成した
一貫性維持機構によって、一貫性を有する状態に維持さ
れる。複数のノードの各々が、プライマリ・キャッシュ
2を有する中央処理装置1と、ローカル主記憶3と、外
部一貫性維持装置(ECU)10と、それらを結合する
ノード・ローカル・バス4とを備えている。ノードどう
しはノード間ECUバス11によって接続される。EC
Uはバスを監視してキャッシュ・ライン要求を検出し、
要求されたキャッシュラインの状態に応じて一貫性維持
動作を実行する。私用記憶/共用記憶の割合をクラスタ
内の個別のノードにおいて任意に且つ動的に変化させる
ことができる。
性能及び汎用性を向上させる。 【構成】 クラスタ・アーキテクチャに「一般化共用記
憶」を導入し、この一般化共用記憶は、共用オブジェク
トの位置付けや参照等が行なわれたときにその共用オブ
ジェクトに対して操作を加えるハードウェアで構成した
一貫性維持機構によって、一貫性を有する状態に維持さ
れる。複数のノードの各々が、プライマリ・キャッシュ
2を有する中央処理装置1と、ローカル主記憶3と、外
部一貫性維持装置(ECU)10と、それらを結合する
ノード・ローカル・バス4とを備えている。ノードどう
しはノード間ECUバス11によって接続される。EC
Uはバスを監視してキャッシュ・ライン要求を検出し、
要求されたキャッシュラインの状態に応じて一貫性維持
動作を実行する。私用記憶/共用記憶の割合をクラスタ
内の個別のノードにおいて任意に且つ動的に変化させる
ことができる。
Description
【0001】
【産業上の利用分野】本発明はデータ処理技術に関し、
より詳しくは、クラスタ・アーキテクチャに用いる一般
化共用記憶に関する。
より詳しくは、クラスタ・アーキテクチャに用いる一般
化共用記憶に関する。
【0002】
【従来の技術】一般的に、クラスタ・アーキテクチャと
呼ばれているコンピュータ・アーキテクチャでは、複数
のノードの各々に、少なくとも1つの(そして通例は複
数の)中央処理装置(CPU)と、ローカル記憶と、入
出力装置(I/O)と、その他の要素とを装備してい
る。良好な評価を受けているクラスタ・アーキテクチャ
のうちの1つに、物理記憶アドレス空間を恒久的に2つ
の領域に分割しておくようにしたクラスタ・アーキテク
チャがあり、そこでは、分割した下半分の領域(最上位
ビット=「0」の領域)を、当該ノードに装備されてい
るプロセッサだけがアクセスすることのできるローカル
記憶とし、一方、分割した上半分の領域(最上位ビット
=「1」の領域)は共用記憶を画成するようにしてお
り、この共用記憶は物理的に集中化してあって、全ての
ノードがそれにアクセスすることができる。ある共用変
数の複数のコピーが別々のノードに保持されているとき
に、それら複数のコピーの間の一貫性を維持するための
ハードウェア機構は装備されていない。そのため一貫性
の維持は完全にソフトウェアに任されている。
呼ばれているコンピュータ・アーキテクチャでは、複数
のノードの各々に、少なくとも1つの(そして通例は複
数の)中央処理装置(CPU)と、ローカル記憶と、入
出力装置(I/O)と、その他の要素とを装備してい
る。良好な評価を受けているクラスタ・アーキテクチャ
のうちの1つに、物理記憶アドレス空間を恒久的に2つ
の領域に分割しておくようにしたクラスタ・アーキテク
チャがあり、そこでは、分割した下半分の領域(最上位
ビット=「0」の領域)を、当該ノードに装備されてい
るプロセッサだけがアクセスすることのできるローカル
記憶とし、一方、分割した上半分の領域(最上位ビット
=「1」の領域)は共用記憶を画成するようにしてお
り、この共用記憶は物理的に集中化してあって、全ての
ノードがそれにアクセスすることができる。ある共用変
数の複数のコピーが別々のノードに保持されているとき
に、それら複数のコピーの間の一貫性を維持するための
ハードウェア機構は装備されていない。そのため一貫性
の維持は完全にソフトウェアに任されている。
【0003】以上のアーキテクチャを拡張したものが、
「Bull NH 共用バッファ・アーキテクチャ」(以後、共
用バッファ・アーキテクチャを「SBA」と略称する)
であり、その拡張とは、物理的に集中化してある共用記
憶に本来所属するデータの、ただしクラスタ内の別々の
ノードのキャッシュ記憶の中に保持されている、複数の
コピーの間の一貫性(コヒーレンシー)を維持するため
のハードウェア機構を導入したことにある。これによっ
て、別々のノードが、共用データに対するある種の操作
を互いに並行的に、より短いアクセス時間で実行できる
ようになっており、それによってアーキテクチャの性能
が改善されている。
「Bull NH 共用バッファ・アーキテクチャ」(以後、共
用バッファ・アーキテクチャを「SBA」と略称する)
であり、その拡張とは、物理的に集中化してある共用記
憶に本来所属するデータの、ただしクラスタ内の別々の
ノードのキャッシュ記憶の中に保持されている、複数の
コピーの間の一貫性(コヒーレンシー)を維持するため
のハードウェア機構を導入したことにある。これによっ
て、別々のノードが、共用データに対するある種の操作
を互いに並行的に、より短いアクセス時間で実行できる
ようになっており、それによってアーキテクチャの性能
が改善されている。
【0004】SBAの変形構成の1つである「Bull NH
分散共用バッファ・アーキテクチャ」(以下、分散共用
バッファ・アーキテクチャを「DSBA」と略称する)
は、集中化した共用記憶に代えて分散した共用記憶を用
いており、この構成形態は、性能及び可用度、それに既
存のある種のコンピュータ製品との間の互換性という点
に関して、多くの利点を有している。私用記憶と共用記
憶との間のアドレス区分は固定されていて不変である
が、共用記憶を各コンピュータ・ノード内に複製してあ
るため、全てのノードが同時に読取りアクセスを行なう
ことができる。またハードウェアで構成した一貫性維持
機構によって、分散した夫々の記憶の中のデータどうし
の間の一貫性を維持するようにしている。
分散共用バッファ・アーキテクチャ」(以下、分散共用
バッファ・アーキテクチャを「DSBA」と略称する)
は、集中化した共用記憶に代えて分散した共用記憶を用
いており、この構成形態は、性能及び可用度、それに既
存のある種のコンピュータ製品との間の互換性という点
に関して、多くの利点を有している。私用記憶と共用記
憶との間のアドレス区分は固定されていて不変である
が、共用記憶を各コンピュータ・ノード内に複製してあ
るため、全てのノードが同時に読取りアクセスを行なう
ことができる。またハードウェアで構成した一貫性維持
機構によって、分散した夫々の記憶の中のデータどうし
の間の一貫性を維持するようにしている。
【0005】
【発明が解決しようとする課題】公知のアーキテクチャ
の変形構成である上述のアーキテクチャは、それらのい
ずれもが、私用記憶と共用記憶との間の区分を固定して
不変にしていた。この特性のために、クラスタの個々の
ノードの内部でも、また複数のノードの間でも、私用記
憶及び共用記憶を構成するに際して、そのときどきアプ
リケーション・ミックス(アプリケーションの組合せ)
の要求に適合するように、それら2通りの記憶を異なっ
た大きさに構成することが(たとえ全く不可能でないに
しても)困難であった。共用アプリケーションを実行す
るのに私用記憶を使用することはできず、一方、私用ア
プリケーションを実行するのに共用記憶を使用したなら
ば、その私用アプリケーションは不必要なコヒーレンシ
ー・トラフィックに煩わされる上に、完全性に関する問
題を生じるおそれもある。本発明はこれらの制約を克服
するものである。
の変形構成である上述のアーキテクチャは、それらのい
ずれもが、私用記憶と共用記憶との間の区分を固定して
不変にしていた。この特性のために、クラスタの個々の
ノードの内部でも、また複数のノードの間でも、私用記
憶及び共用記憶を構成するに際して、そのときどきアプ
リケーション・ミックス(アプリケーションの組合せ)
の要求に適合するように、それら2通りの記憶を異なっ
た大きさに構成することが(たとえ全く不可能でないに
しても)困難であった。共用アプリケーションを実行す
るのに私用記憶を使用することはできず、一方、私用ア
プリケーションを実行するのに共用記憶を使用したなら
ば、その私用アプリケーションは不必要なコヒーレンシ
ー・トラフィックに煩わされる上に、完全性に関する問
題を生じるおそれもある。本発明はこれらの制約を克服
するものである。
【0006】従って本発明の広い目的は、改良したクラ
スタ・アーキテクチャを提供することにある。
スタ・アーキテクチャを提供することにある。
【0007】本発明のより具体的な目的の1つは、任意
の大きさとすることができクラスタ内の任意の個数のノ
ードによって共用させることのできる不連続な共用オブ
ジェクトを保持する一般化共用記憶を用いるようにした
クラスタ・アーキテクチャを提供することにある。
の大きさとすることができクラスタ内の任意の個数のノ
ードによって共用させることのできる不連続な共用オブ
ジェクトを保持する一般化共用記憶を用いるようにした
クラスタ・アーキテクチャを提供することにある。
【0008】本発明の更に別の具体的な目的は、クラス
タ内の全ての要素が共用記憶を極めて迅速に入手できる
ようなクラスタ・アーキテクチャを提供することにあ
る。
タ内の全ての要素が共用記憶を極めて迅速に入手できる
ようなクラスタ・アーキテクチャを提供することにあ
る。
【0009】
【課題を解決するための手段】要約して述べるならば、
本発明の以上の目的並びにその他の目的は、クラスタ・
アーキテクチャに「一般化共用記憶」を導入することに
よって達成される。この一般化共用記憶は、共用オブジ
ェクトの位置付けや参照等が行なわれたときにその共用
オブジェクトに対して操作を加えるハードウェアで構成
した一貫性維持機構によって、一貫性を有する状態に維
持される。これによって、私用記憶/共用記憶の割合を
クラスタ内の個別のコンピュータ・ノードにおいて任意
に且つ動的に変化させることができることから、アーキ
テクチャの性能と汎用性との両方が向上する。
本発明の以上の目的並びにその他の目的は、クラスタ・
アーキテクチャに「一般化共用記憶」を導入することに
よって達成される。この一般化共用記憶は、共用オブジ
ェクトの位置付けや参照等が行なわれたときにその共用
オブジェクトに対して操作を加えるハードウェアで構成
した一貫性維持機構によって、一貫性を有する状態に維
持される。これによって、私用記憶/共用記憶の割合を
クラスタ内の個別のコンピュータ・ノードにおいて任意
に且つ動的に変化させることができることから、アーキ
テクチャの性能と汎用性との両方が向上する。
【0010】
【実施例】先ず最初に、従来例に係るクラスタ・アーキ
テクチャを示した、図1のハイレベルのブロック図につ
いて説明する。図1に例示したシステムは、16個の中
央処理装置(CPU)1を、各ノードが4個ずつのCP
Uを備えた4つのノードに編成した構成を有する。各C
PUは、その他のシステム構成要素との間の通信に関し
て一貫性を維持する特性を有しており、また通常そうで
あるように、プライマリ・キャッシュ2を装備してい
る。更に、各ノードはローカル共用記憶3を含んでお
り、ローカル共用記憶3は、そのノード内の夫々のCP
U1との間でプライマリ・キャッシュを介して通信を行
なう際に、ノード・ローカルな通信システムを介してそ
の通信を行ない、図示例におけるノード・ローカルな通
信システムは、ノード・ローカル・バス4である。加え
て、各々のノード・ローカル・バス4は、クラスタ共用
記憶5にも結合している。ローカル共用記憶3の各々と
クラスタ共用記憶5とは同一の大きさにしても良く、例
えばそれらを同じ「2ギガバイト」とすることができ
る。記憶をアドレスするためのアドレス構造は、次のよ
うなものであり、即ち、あるCPUが発した記憶アドレ
スの最上位ビット(MSB)が「0」であったならば、
その記憶アドレスは、そのCPUが所属しているノード
のローカル共用記憶の中に格納されている情報をアドレ
スするためのものであり、また、その記憶アドレスのM
SBが「1」であったならば、その記憶アドレスは、ク
ラスタ共用記憶の中に格納されている情報をアドレスす
るものであると定めてある。ノード間通信はI/O装置
12及びノード間バス17を介して行なわれ、通信をす
るノードどうしの間の距離がかなりのものであるなら
ば、通信パス20を用いれば良く、以上のことは全て、
当業界においては公知の事柄である。
テクチャを示した、図1のハイレベルのブロック図につ
いて説明する。図1に例示したシステムは、16個の中
央処理装置(CPU)1を、各ノードが4個ずつのCP
Uを備えた4つのノードに編成した構成を有する。各C
PUは、その他のシステム構成要素との間の通信に関し
て一貫性を維持する特性を有しており、また通常そうで
あるように、プライマリ・キャッシュ2を装備してい
る。更に、各ノードはローカル共用記憶3を含んでお
り、ローカル共用記憶3は、そのノード内の夫々のCP
U1との間でプライマリ・キャッシュを介して通信を行
なう際に、ノード・ローカルな通信システムを介してそ
の通信を行ない、図示例におけるノード・ローカルな通
信システムは、ノード・ローカル・バス4である。加え
て、各々のノード・ローカル・バス4は、クラスタ共用
記憶5にも結合している。ローカル共用記憶3の各々と
クラスタ共用記憶5とは同一の大きさにしても良く、例
えばそれらを同じ「2ギガバイト」とすることができ
る。記憶をアドレスするためのアドレス構造は、次のよ
うなものであり、即ち、あるCPUが発した記憶アドレ
スの最上位ビット(MSB)が「0」であったならば、
その記憶アドレスは、そのCPUが所属しているノード
のローカル共用記憶の中に格納されている情報をアドレ
スするためのものであり、また、その記憶アドレスのM
SBが「1」であったならば、その記憶アドレスは、ク
ラスタ共用記憶の中に格納されている情報をアドレスす
るものであると定めてある。ノード間通信はI/O装置
12及びノード間バス17を介して行なわれ、通信をす
るノードどうしの間の距離がかなりのものであるなら
ば、通信パス20を用いれば良く、以上のことは全て、
当業界においては公知の事柄である。
【0011】以上に説明したアーキテクチャは、適当な
操作を行なうことによって、クラスタ共用記憶5を介し
てクラスタ内の全域において情報交換を行なえるという
利点を有する。しかしながらこのアーキテクチャには、
その利点と同時に、幾つかの短所も付随している。それ
ら短所は例えば次のようなものである。 A)私用記憶と共用記憶との区分が恒久的に固定されて
おり、そのため、実行すべきアプリケーション・ミック
スが、私用記憶を用いた方が良好に機能するアプリケー
ションと、共用記憶を用いた方が良好に機能するアプリ
ケーションとの両方を含んでいる場合には、非常な非効
率を生じることがある。 B)クラスタ共用記憶には、シングル・ポイント・オブ
・フェイリャが存在している。 C)各々のノードごとに、そのノードのためのオペレー
ティング・システムを装備しておく必要がある。 D)クラスタ共用記憶への個々のアクセスの各々ごと
に、全てのノードの記憶管理機構の同意を得る必要があ
る。
操作を行なうことによって、クラスタ共用記憶5を介し
てクラスタ内の全域において情報交換を行なえるという
利点を有する。しかしながらこのアーキテクチャには、
その利点と同時に、幾つかの短所も付随している。それ
ら短所は例えば次のようなものである。 A)私用記憶と共用記憶との区分が恒久的に固定されて
おり、そのため、実行すべきアプリケーション・ミック
スが、私用記憶を用いた方が良好に機能するアプリケー
ションと、共用記憶を用いた方が良好に機能するアプリ
ケーションとの両方を含んでいる場合には、非常な非効
率を生じることがある。 B)クラスタ共用記憶には、シングル・ポイント・オブ
・フェイリャが存在している。 C)各々のノードごとに、そのノードのためのオペレー
ティング・システムを装備しておく必要がある。 D)クラスタ共用記憶への個々のアクセスの各々ごと
に、全てのノードの記憶管理機構の同意を得る必要があ
る。
【0012】既述の如く、図1に示したアーキテクチャ
に変更を加えてシステム性能の漸増的改善を達成した変
形構成態様が幾つか存在している。それらのうち、共用
バッファ・アーキテクチャ(SBA)に該当する構成態
様としては、集中化した共用記憶に本来所属するデータ
の、ただしクラスタ内の別々のノードの夫々のキャッシ
ュ記憶の中に保持されている、複数のコピーどうしの間
の一貫性を維持するハードウェア機構を装備したものが
ある。これによって、別々のノードが、共用データに対
する複数の操作を互いに並行的に、より短いアクセス時
間で実行できるようになっているため、アーキテクチャ
の性能が向上している。また、分散共用バッファ・アー
キテクチャ(DSBA)としては、集中化した共用記憶
に代えて分散共用記憶を用いたものがあり、この構成形
態は、性能及び可用度、それに既存のコンピュータ製品
との間の互換性という点に関して、多くの利点を有して
いる。私用記憶と共用記憶との間のアドレス区分は固定
されていて不変であるが、共用記憶を各コンピュータ・
ノード内に複製してあるため、全てのノードが同時に読
取りアクセスを行なうことができる。またハードウェア
で構成した一貫性維持機構によって、分散した夫々の記
憶の中のデータどうしの間の一貫性を維持するようにし
ている。
に変更を加えてシステム性能の漸増的改善を達成した変
形構成態様が幾つか存在している。それらのうち、共用
バッファ・アーキテクチャ(SBA)に該当する構成態
様としては、集中化した共用記憶に本来所属するデータ
の、ただしクラスタ内の別々のノードの夫々のキャッシ
ュ記憶の中に保持されている、複数のコピーどうしの間
の一貫性を維持するハードウェア機構を装備したものが
ある。これによって、別々のノードが、共用データに対
する複数の操作を互いに並行的に、より短いアクセス時
間で実行できるようになっているため、アーキテクチャ
の性能が向上している。また、分散共用バッファ・アー
キテクチャ(DSBA)としては、集中化した共用記憶
に代えて分散共用記憶を用いたものがあり、この構成形
態は、性能及び可用度、それに既存のコンピュータ製品
との間の互換性という点に関して、多くの利点を有して
いる。私用記憶と共用記憶との間のアドレス区分は固定
されていて不変であるが、共用記憶を各コンピュータ・
ノード内に複製してあるため、全てのノードが同時に読
取りアクセスを行なうことができる。またハードウェア
で構成した一貫性維持機構によって、分散した夫々の記
憶の中のデータどうしの間の一貫性を維持するようにし
ている。
【0013】これらに対して、本発明は、クラスタ・ア
ーキテクチャに、根本的な新機軸を提供するものであ
る。本発明を理解するには、その前に先ず、本発明の重
要な一局面である「共用オブジェクト」の概念を明確に
認識しておく必要がある。共用オブジェクトは、任意の
大きさとすることができ、また、クラスタ内の任意の個
数のノードの間で共用させることができる。複数の共用
オブジェクトの集合体によって「一般化共用記憶」が構
成され、この一般化共用記憶は、共用オブジェクトの位
置付けや参照等が行なわれたときにその共用オブジェク
トに対して操作を加えるハードウェアで構成した一貫性
維持機構によって、一貫性を有する状態に維持される。
ーキテクチャに、根本的な新機軸を提供するものであ
る。本発明を理解するには、その前に先ず、本発明の重
要な一局面である「共用オブジェクト」の概念を明確に
認識しておく必要がある。共用オブジェクトは、任意の
大きさとすることができ、また、クラスタ内の任意の個
数のノードの間で共用させることができる。複数の共用
オブジェクトの集合体によって「一般化共用記憶」が構
成され、この一般化共用記憶は、共用オブジェクトの位
置付けや参照等が行なわれたときにその共用オブジェク
トに対して操作を加えるハードウェアで構成した一貫性
維持機構によって、一貫性を有する状態に維持される。
【0014】共用オブジェクトは、共用し得るという性
質を備えたオブジェクトであると定義することができ
る。共用オブジェクトは、クラスタ内の全てのノードに
知られている。共用オブジェクトのエクステント(存続
範囲)と、アクセスを共用することを許可されているプ
ロセスとは、記述子によって明示される。共用オブジェ
クトの実現形態は、目的オペレーティング・システムの
種類によって様々に異なり、ファイルの形態とされるこ
ともあれば(例えば「Bull NH 社」の「GCOS 8」オペレ
ーティング・システム等の場合)、ストリームの形態と
されることもある(例えば「UNIX」オペレーティング・
システム等の場合)。共用オブジェクトは各ノードごと
に個別に、そのノードの仮想空間内でインスタンス化さ
れ、それによって、異なったノードの夫々のプロセスに
よって共用され得るようになる。仮想空間内でのインス
タンス化が行なわれたならば、共用オブジェクトは(例
えばコマンドによって)、分散共用記憶を用いたクラス
タの別々のノードの夫々の記憶の中で、各ノードごとに
個別に、物理的にインスタンス化することができるよう
になる。集中共用クラスタ記憶の中では、ある1つの共
用オブジェクトの幾つもの物理的なインスタンス化が行
なわれることもあり、例えば、複数の「UNIX」プロセス
の間で共用されるページをサポートする共用オブジェク
ト等がそうである。共用オブジェクトは以下のものを備
えている。 A)任意長表示の一義的名標 B)固定長表示の一義的識別子(UUID) C)アドレス可能な内部要素 D)参照許可
質を備えたオブジェクトであると定義することができ
る。共用オブジェクトは、クラスタ内の全てのノードに
知られている。共用オブジェクトのエクステント(存続
範囲)と、アクセスを共用することを許可されているプ
ロセスとは、記述子によって明示される。共用オブジェ
クトの実現形態は、目的オペレーティング・システムの
種類によって様々に異なり、ファイルの形態とされるこ
ともあれば(例えば「Bull NH 社」の「GCOS 8」オペレ
ーティング・システム等の場合)、ストリームの形態と
されることもある(例えば「UNIX」オペレーティング・
システム等の場合)。共用オブジェクトは各ノードごと
に個別に、そのノードの仮想空間内でインスタンス化さ
れ、それによって、異なったノードの夫々のプロセスに
よって共用され得るようになる。仮想空間内でのインス
タンス化が行なわれたならば、共用オブジェクトは(例
えばコマンドによって)、分散共用記憶を用いたクラス
タの別々のノードの夫々の記憶の中で、各ノードごとに
個別に、物理的にインスタンス化することができるよう
になる。集中共用クラスタ記憶の中では、ある1つの共
用オブジェクトの幾つもの物理的なインスタンス化が行
なわれることもあり、例えば、複数の「UNIX」プロセス
の間で共用されるページをサポートする共用オブジェク
ト等がそうである。共用オブジェクトは以下のものを備
えている。 A)任意長表示の一義的名標 B)固定長表示の一義的識別子(UUID) C)アドレス可能な内部要素 D)参照許可
【0015】DSBA環境に即して考察することが、共
用オブジェクトに対するリアルタイムの操作を理解する
ための最も容易な方法である。図2を参照して説明する
と、クラスタ内の各ノード(図を見易くするために、図
2にはノードのうちの2つだけ示してあり、また各ノー
ド内のCPU1のうちの2個だけを示してある)は、外
部一貫性維持装置(External Coherency Unit:ECU)
10を装備している。ECU10は(a)そのノードの
ノード・ローカル・バス4を監視しており、そのノード
・ローカル・バス4上にその他のノードの中にも存在し
ている「共用」キャッシュ・ラインに関するコマンドが
送出されたときにそれを検出し、そして(b)それに該
当するコマンドを検出したならば、条件に従ってそのコ
マンドを(そのキャッシュ・ラインを表わす一義的識別
子を使用して)その他のノードへ例えば独立したノード
間ECUバス11等を介して転送する。(更にはポイン
ト・ツウ・ポイント接続も可能であり、そのためには、
各々のECUの中のディレクトリを用いてどのノードが
コピーを保持しているかを追跡するようにする)。一
方、その他の全てのECUが(a)ノード間ECUバス
11を監視しており、そのノード間ECUバス11上
に、それら夫々のECUのノードのローカル記憶の中に
存在しているキャッシュ・ラインに影響を及ぼすコマン
ドが送出されたときにそれを検出し、また(b)それに
該当するコマンドを検出したならば、そのコマンドを、
そのノードにおける物理タグへ変換し、そして(c)変
換したコマンドを、そのノードにおけるノード・ローカ
ル・バス上へ送出する。概念説明のための図示の具体例
では、ECU10を一般的な一貫性維持装置を用いて構
成することも可能であり、その装置において、一義的識
別子を有するキャッシュ・タグ・ディレクトリと、その
ノードで現在インスタンス化されている各「共用」キャ
ッシュ・ラインの状態を表わす一貫性状態(例えば、変
更済、専有、共用、無効)とを用いるようにすれば良
い。
用オブジェクトに対するリアルタイムの操作を理解する
ための最も容易な方法である。図2を参照して説明する
と、クラスタ内の各ノード(図を見易くするために、図
2にはノードのうちの2つだけ示してあり、また各ノー
ド内のCPU1のうちの2個だけを示してある)は、外
部一貫性維持装置(External Coherency Unit:ECU)
10を装備している。ECU10は(a)そのノードの
ノード・ローカル・バス4を監視しており、そのノード
・ローカル・バス4上にその他のノードの中にも存在し
ている「共用」キャッシュ・ラインに関するコマンドが
送出されたときにそれを検出し、そして(b)それに該
当するコマンドを検出したならば、条件に従ってそのコ
マンドを(そのキャッシュ・ラインを表わす一義的識別
子を使用して)その他のノードへ例えば独立したノード
間ECUバス11等を介して転送する。(更にはポイン
ト・ツウ・ポイント接続も可能であり、そのためには、
各々のECUの中のディレクトリを用いてどのノードが
コピーを保持しているかを追跡するようにする)。一
方、その他の全てのECUが(a)ノード間ECUバス
11を監視しており、そのノード間ECUバス11上
に、それら夫々のECUのノードのローカル記憶の中に
存在しているキャッシュ・ラインに影響を及ぼすコマン
ドが送出されたときにそれを検出し、また(b)それに
該当するコマンドを検出したならば、そのコマンドを、
そのノードにおける物理タグへ変換し、そして(c)変
換したコマンドを、そのノードにおけるノード・ローカ
ル・バス上へ送出する。概念説明のための図示の具体例
では、ECU10を一般的な一貫性維持装置を用いて構
成することも可能であり、その装置において、一義的識
別子を有するキャッシュ・タグ・ディレクトリと、その
ノードで現在インスタンス化されている各「共用」キャ
ッシュ・ラインの状態を表わす一貫性状態(例えば、変
更済、専有、共用、無効)とを用いるようにすれば良
い。
【0016】具体的な動作例について説明すると、例え
ばクラスタ内の、ある1つのノードの中のある1つのC
PUが、ある1本の共用キャッシュ・ラインの内容を変
更しようとする場合、そのCPUは、何よりも先ず最初
に、専有所有権を獲得する必要がある。そのためのコマ
ンドがローカルECU10によって監視されており、も
し、そのノードが専有所有権を持っていなかったなら
ば、そのコマンドはその他の全てのノードのECUへ転
送される。すると、それらノードのうち、変更されてい
ない有効なコピーを保持していた各ノードは、(例えば
そのノードのプライマリ・キャッシュ2、及び/また
は、ローカル・メイン記憶3の中にそれまで保持してい
た)全てのローカル・コピーを無効化する。もし、ある
ノードがそのキャッシュ・ラインを「変更済」状態で保
持していたならば、そのノードは、その「変更済」状態
のキャッシュ・ラインを要求元ノードへ移転した上、そ
の移転元ノードの中でそのキャッシュ・ラインを無効化
する。これによって、その(移転された)キャッシュ・
ラインが専有的に所有されて、更新可能な状態になる。
以上の一連の一貫性維持作業により、共用オブジェクト
を参照しているプロセスは、それがどのノードにおいて
実行されているどのプロセスであっても、最新のデータ
を受け取ることができるように保証されている。
ばクラスタ内の、ある1つのノードの中のある1つのC
PUが、ある1本の共用キャッシュ・ラインの内容を変
更しようとする場合、そのCPUは、何よりも先ず最初
に、専有所有権を獲得する必要がある。そのためのコマ
ンドがローカルECU10によって監視されており、も
し、そのノードが専有所有権を持っていなかったなら
ば、そのコマンドはその他の全てのノードのECUへ転
送される。すると、それらノードのうち、変更されてい
ない有効なコピーを保持していた各ノードは、(例えば
そのノードのプライマリ・キャッシュ2、及び/また
は、ローカル・メイン記憶3の中にそれまで保持してい
た)全てのローカル・コピーを無効化する。もし、ある
ノードがそのキャッシュ・ラインを「変更済」状態で保
持していたならば、そのノードは、その「変更済」状態
のキャッシュ・ラインを要求元ノードへ移転した上、そ
の移転元ノードの中でそのキャッシュ・ラインを無効化
する。これによって、その(移転された)キャッシュ・
ラインが専有的に所有されて、更新可能な状態になる。
以上の一連の一貫性維持作業により、共用オブジェクト
を参照しているプロセスは、それがどのノードにおいて
実行されているどのプロセスであっても、最新のデータ
を受け取ることができるように保証されている。
【0017】以上のアーキテクチャによれば、I/O装
置12は、ある共用オブジェクトの全て或いは一部を保
持することを割当てられているローカル物理記憶との間
で適正に作業を行なうことができる。即ち、I/O装置
12が共用記憶からの読込みを行なうときには、(その
I/O装置12が装備されているノード以外の)その他
のノードの共用記憶の中にあった最新データが自動的に
移転される。また、I/O装置12が共用記憶への書込
みを行なうときには、そのI/O装置12が装備されて
いるノードにおける専有所有権が、データの到着と共
に、自動的に獲得され、そして、I/O装置12がその
作業を完了した後には、いずれかのノードのプロセッサ
がそのデータを参照したならば、そのデータが自動的に
そのノードの記憶へ移転される。この一般化共用記憶を
採用することによって得られる利点は次のとおりであ
る。・ノードの内部でもノードどうしの間でも物理記憶
をより効率的に使用し得ることに関する利点: (1)物理的インスタンス化した私用記憶領域及び共用
記憶領域が非連続領域であっても良く、それら領域の合
計が物理記憶の大きさを超えない限り、それら領域を任
意の大きさにすることができる。 (2)同一時刻における夫々のノードの私用/共用の割
合を互いに異ならせることができる。 (3)記憶の合計の大きさを、単一のオペレーティング
・システムないしプラットフォームの物理的アドレス能
力以上にすることができる。 ・クラスタのソフトウェアが簡明化されることに関する
利点: (1)共用記憶を各ノードごとに個別に管理するため、
大域的記憶管理機構が不要であり、また、共用領域を管
理するために複数のノードが互いに協働して作業する必
要もない。 ・可用度が向上することに関する利点: (1)SBAの集中共用記憶に存在しているシングル・
ポイント・オブ・フェイリャが、ここには存在していな
い。 (2)あるノードが故障した場合に、そのノードの私用
記憶を強制的に共用可能にすることにより、別のノード
がその私用記憶領域にアクセスして故障からの回復を図
ることができる。 ・コヒーレンシー・トラフィックが軽減されることに関
する利点: (1)ノード間コヒーレンシー・トラフィックが発生す
るのは、非専有的に所有されている共用オブジェクトへ
の書込みが行なわれるときと、存在していない共用オブ
ジェクトが参照されるときとの、いずれかの場合に限ら
れる。 (2)共用オブジェクトのコピーを保持していないノー
ドからは、コヒーレンシー・トラフィックが排除されて
いる。
置12は、ある共用オブジェクトの全て或いは一部を保
持することを割当てられているローカル物理記憶との間
で適正に作業を行なうことができる。即ち、I/O装置
12が共用記憶からの読込みを行なうときには、(その
I/O装置12が装備されているノード以外の)その他
のノードの共用記憶の中にあった最新データが自動的に
移転される。また、I/O装置12が共用記憶への書込
みを行なうときには、そのI/O装置12が装備されて
いるノードにおける専有所有権が、データの到着と共
に、自動的に獲得され、そして、I/O装置12がその
作業を完了した後には、いずれかのノードのプロセッサ
がそのデータを参照したならば、そのデータが自動的に
そのノードの記憶へ移転される。この一般化共用記憶を
採用することによって得られる利点は次のとおりであ
る。・ノードの内部でもノードどうしの間でも物理記憶
をより効率的に使用し得ることに関する利点: (1)物理的インスタンス化した私用記憶領域及び共用
記憶領域が非連続領域であっても良く、それら領域の合
計が物理記憶の大きさを超えない限り、それら領域を任
意の大きさにすることができる。 (2)同一時刻における夫々のノードの私用/共用の割
合を互いに異ならせることができる。 (3)記憶の合計の大きさを、単一のオペレーティング
・システムないしプラットフォームの物理的アドレス能
力以上にすることができる。 ・クラスタのソフトウェアが簡明化されることに関する
利点: (1)共用記憶を各ノードごとに個別に管理するため、
大域的記憶管理機構が不要であり、また、共用領域を管
理するために複数のノードが互いに協働して作業する必
要もない。 ・可用度が向上することに関する利点: (1)SBAの集中共用記憶に存在しているシングル・
ポイント・オブ・フェイリャが、ここには存在していな
い。 (2)あるノードが故障した場合に、そのノードの私用
記憶を強制的に共用可能にすることにより、別のノード
がその私用記憶領域にアクセスして故障からの回復を図
ることができる。 ・コヒーレンシー・トラフィックが軽減されることに関
する利点: (1)ノード間コヒーレンシー・トラフィックが発生す
るのは、非専有的に所有されている共用オブジェクトへ
の書込みが行なわれるときと、存在していない共用オブ
ジェクトが参照されるときとの、いずれかの場合に限ら
れる。 (2)共用オブジェクトのコピーを保持していないノー
ドからは、コヒーレンシー・トラフィックが排除されて
いる。
【0018】なお付言すると、この「分散した」一般化
共用記憶の性能は「集中化した」共用記憶の性能を凌駕
し得るものであり、なぜならここに提案した機構は、共
用データがキャッシュ方式の高速性という利点を享受し
得るようにすると同時に、伝統的なアドレス可能な記憶
をそのまま残しているからである。即ち、この機構によ
れば、個別の複数のノードが、同じ共用変数の、ただし
それら夫々のノードがみずからの中に保持しているとこ
ろの、複数のコピーを、各々のローカル・バスが発揮し
得る限りの高速でもって互いに同時に読み取ることがで
きるのである。これに対して、「Abrojo」やSB
Aに用いられている集中共用記憶は、同時に多数の読取
り要求が発せられた場合には、みずからがボトルネック
となってしまう。
共用記憶の性能は「集中化した」共用記憶の性能を凌駕
し得るものであり、なぜならここに提案した機構は、共
用データがキャッシュ方式の高速性という利点を享受し
得るようにすると同時に、伝統的なアドレス可能な記憶
をそのまま残しているからである。即ち、この機構によ
れば、個別の複数のノードが、同じ共用変数の、ただし
それら夫々のノードがみずからの中に保持しているとこ
ろの、複数のコピーを、各々のローカル・バスが発揮し
得る限りの高速でもって互いに同時に読み取ることがで
きるのである。これに対して、「Abrojo」やSB
Aに用いられている集中共用記憶は、同時に多数の読取
り要求が発せられた場合には、みずからがボトルネック
となってしまう。
【0019】「共用」し得るものか否かを検出するため
の基本的な方式として2通りの方式があり、その1つは
「ハードウェア方式」、もう1つは「ソフトウェア方
式」である。ハードウェア方式: ページ・テーブル記述語(Page Tab
le Descriptor Word:PTW)に、あるページが共用ペ
ージであるか否かを表示するための1つのビット(「共
用」ビット)を含ませておく。共用領域の参照が行なわ
れるときにはそのPTWがCPUの中に存在しており、
このCPUがノード・ローカル・バス上へ「共用」ビッ
トを送出することによって、そのノードに装備されてい
るECUに、共用領域の参照が行なわれることを通知す
る。こうすることによって、ECUを、共用ページの物
理タグに関するキャッシュとして動作させることがで
き、このECUキャッシュの中には、高頻度でアクセス
されるタグだけを実際に保持しておくようにする。参照
頻度の低いタグはECUが記憶から取り出すようにして
おく。 この方式の長所:簡明、高速、低コスト、そしてソフト
ウェア独立(即ち、ソフトウェアに左右されることがな
い)である。 この方式の短所:CPU及びバスのハードウェアに改造
を施す必要がある。
の基本的な方式として2通りの方式があり、その1つは
「ハードウェア方式」、もう1つは「ソフトウェア方
式」である。ハードウェア方式: ページ・テーブル記述語(Page Tab
le Descriptor Word:PTW)に、あるページが共用ペ
ージであるか否かを表示するための1つのビット(「共
用」ビット)を含ませておく。共用領域の参照が行なわ
れるときにはそのPTWがCPUの中に存在しており、
このCPUがノード・ローカル・バス上へ「共用」ビッ
トを送出することによって、そのノードに装備されてい
るECUに、共用領域の参照が行なわれることを通知す
る。こうすることによって、ECUを、共用ページの物
理タグに関するキャッシュとして動作させることがで
き、このECUキャッシュの中には、高頻度でアクセス
されるタグだけを実際に保持しておくようにする。参照
頻度の低いタグはECUが記憶から取り出すようにして
おく。 この方式の長所:簡明、高速、低コスト、そしてソフト
ウェア独立(即ち、ソフトウェアに左右されることがな
い)である。 この方式の短所:CPU及びバスのハードウェアに改造
を施す必要がある。
【0020】ソフトウェア方式:現在インスタンス化さ
れている共用ページのPTW(実際にはECUのエント
リ)の全てをECU内のバッファ記憶の中に保持してお
き、このECUが、監視を行なうことによって(或い
は、ECUどうしを直接接続してディレクトリを参照す
ることによって)共用キャッシュ・ラインを検出するよ
うにしておく。共用ページのインスタンス化または削除
が行なわれる度に、記憶管理ソフトウェアが、ECU内
のPTWを保持しているバッファに対して更新を施すよ
うにする。 この方式の長所:中心的なシステム・ハードウェアに改
造を施す必要がない。PTWに余分なビットを付加する
必要がない。そして「既存のハードウェアにも装備し得
る可能性を有する」。 この方式の短所:記憶管理ソフトウェアに改造を施す必
要があり、ハードウェアのコストが増大する。
れている共用ページのPTW(実際にはECUのエント
リ)の全てをECU内のバッファ記憶の中に保持してお
き、このECUが、監視を行なうことによって(或い
は、ECUどうしを直接接続してディレクトリを参照す
ることによって)共用キャッシュ・ラインを検出するよ
うにしておく。共用ページのインスタンス化または削除
が行なわれる度に、記憶管理ソフトウェアが、ECU内
のPTWを保持しているバッファに対して更新を施すよ
うにする。 この方式の長所:中心的なシステム・ハードウェアに改
造を施す必要がない。PTWに余分なビットを付加する
必要がない。そして「既存のハードウェアにも装備し得
る可能性を有する」。 この方式の短所:記憶管理ソフトウェアに改造を施す必
要があり、ハードウェアのコストが増大する。
【0021】これより、図3の、より詳細な具体例のブ
ロック図について説明して行く。ECU10は連想ディ
レクトリ13を含んでおり、この連想ディレクトリ13
の機能はノード・ローカル・バス4上のアドレス並びに
ノード間ECUバス11上のアドレスを常時監視するこ
とにある。ここでは、このディレクトリ13の中に、同
じECUの中のローカル記憶3内に現在物理的にインス
タンス化されている共用ページのの各々に1つずつが対
応した、ECUエントリが保持されているものとする。
ここで図6を参照して簡単に説明しておくと、ECUエ
ントリは、それが対応しているページのローカル物理ア
ドレスを包含していると共に、そのページの中に含まれ
ている複数本のキャッシュ・ライン(例えば、4096
バイトの大きさのページの中には連続した64バイトか
ら成るキャッシュ・ラインが64本存在している)の各
々に対応した一義的識別子及び一貫性状態ビット(2〜
3ビット)のビット集合を包含している。1つのECU
エントリの全体の大きさは24バイトから32バイトま
での間の大きさであり、これが1つの共用ページに対応
する。
ロック図について説明して行く。ECU10は連想ディ
レクトリ13を含んでおり、この連想ディレクトリ13
の機能はノード・ローカル・バス4上のアドレス並びに
ノード間ECUバス11上のアドレスを常時監視するこ
とにある。ここでは、このディレクトリ13の中に、同
じECUの中のローカル記憶3内に現在物理的にインス
タンス化されている共用ページのの各々に1つずつが対
応した、ECUエントリが保持されているものとする。
ここで図6を参照して簡単に説明しておくと、ECUエ
ントリは、それが対応しているページのローカル物理ア
ドレスを包含していると共に、そのページの中に含まれ
ている複数本のキャッシュ・ライン(例えば、4096
バイトの大きさのページの中には連続した64バイトか
ら成るキャッシュ・ラインが64本存在している)の各
々に対応した一義的識別子及び一貫性状態ビット(2〜
3ビット)のビット集合を包含している。1つのECU
エントリの全体の大きさは24バイトから32バイトま
での間の大きさであり、これが1つの共用ページに対応
する。
【0022】説明を再び図3に戻し、ECU10は、非
共用のキャッシュ・ラインに関する要求のコマンドは無
視する。そのためその種のコマンドは、そのまま、ロー
カル記憶3の非共用物理空間14の中の指定された記憶
をアドレスすることになる。一方、ECU10が識別し
たコマンドが、共用キャッシュ・ラインに関するコマン
ドであった場合には、ECU10は、ECUディレクト
リ16の中に格納されているその共用キャッシュ・ライ
ンの一貫性状態(「変更済」、「専有」、「共用」、ま
たは「無効」)を調べることによって、一貫性を維持す
るためには何らかのノード間動作を行なうことが必要か
否かを判定する。そして、ノード間動作が必要であると
判定されたならば、物理アドレスを然るべき一義的識別
子に変換した上で、その変換した識別子を、該当するコ
マンドと共に、ECUバスを介してクラスタ内の他のノ
ードへ転送する。
共用のキャッシュ・ラインに関する要求のコマンドは無
視する。そのためその種のコマンドは、そのまま、ロー
カル記憶3の非共用物理空間14の中の指定された記憶
をアドレスすることになる。一方、ECU10が識別し
たコマンドが、共用キャッシュ・ラインに関するコマン
ドであった場合には、ECU10は、ECUディレクト
リ16の中に格納されているその共用キャッシュ・ライ
ンの一貫性状態(「変更済」、「専有」、「共用」、ま
たは「無効」)を調べることによって、一貫性を維持す
るためには何らかのノード間動作を行なうことが必要か
否かを判定する。そして、ノード間動作が必要であると
判定されたならば、物理アドレスを然るべき一義的識別
子に変換した上で、その変換した識別子を、該当するコ
マンドと共に、ECUバスを介してクラスタ内の他のノ
ードへ転送する。
【0023】一例として、あるCPUが、ある共用キャ
ッシュ・ラインの専有コピーを獲得しようとする場合、
そのCPUは、然るべきコマンド(例えばRTWコマン
ド等である。RTWコマンドとは「書込みを前提とした
読取り」コマンドの意味であり、これについては具体例
のシステムに関連して後に更に詳細に説明する)を、そ
のCPUが所属しているノードのノード・ローカル・バ
ス上に送出する。すると、そのノードのECU10が以
下の動作のうちのいずれかを実行する。 (1)そのキャッシュ・ラインの状態が「専有」状態ま
たは「変更済」状態であったならば、そのキャッシュ・
ラインをローカル記憶3から直接読み出して、要求元プ
ロセッサへ転送する。この場合、そのキャッシュ・ライ
ンのコピーは他のどこにも存在していないため、遠隔動
作は何も実行しない。 (2)そのキャッシュ・ラインの状態が「無効」状態で
あったならば、ノード間ECUバス11を介して他のノ
ードへRTWコマンドを送出する。ある遠隔ノードが、
そのキャッシュ・ラインを「専有」状態または「変更
済」状態で保持していたならば、その遠隔ノードは、ノ
ード間ECUバスを介してそのキャッシュ・ラインを要
求元ノードへ転送してくる(即ち、移転が行なわれ
る)。また複数のノードが、そのキャッシュ・ラインを
「共用」状態で保持していたならば、それら複数のノー
ドの全てがそのキャッシュ・ラインを送出しようとす
る。しかしながら、ECUバスの標準的な優先権ロジッ
クが、それら送出のうちの1つを選択してその他をキャ
ンセルする。更に、全ての遠隔コピー(遠隔ノードに保
持されているコピー)が「無効」状態にセットされる。 (3)そのキャッシュ・ラインの状態が「共用」状態で
あったならば、INVコマンドを他のノードへ送出する
ことによって、他のノードが夫々みずからの中に保持し
ているそのキャッシュ・ラインのコピーを「無効」状態
にセットするようにする(この場合には、要求元ノード
の中に既に現在コピーが存在しているため、移転が行な
われる必要はない)。
ッシュ・ラインの専有コピーを獲得しようとする場合、
そのCPUは、然るべきコマンド(例えばRTWコマン
ド等である。RTWコマンドとは「書込みを前提とした
読取り」コマンドの意味であり、これについては具体例
のシステムに関連して後に更に詳細に説明する)を、そ
のCPUが所属しているノードのノード・ローカル・バ
ス上に送出する。すると、そのノードのECU10が以
下の動作のうちのいずれかを実行する。 (1)そのキャッシュ・ラインの状態が「専有」状態ま
たは「変更済」状態であったならば、そのキャッシュ・
ラインをローカル記憶3から直接読み出して、要求元プ
ロセッサへ転送する。この場合、そのキャッシュ・ライ
ンのコピーは他のどこにも存在していないため、遠隔動
作は何も実行しない。 (2)そのキャッシュ・ラインの状態が「無効」状態で
あったならば、ノード間ECUバス11を介して他のノ
ードへRTWコマンドを送出する。ある遠隔ノードが、
そのキャッシュ・ラインを「専有」状態または「変更
済」状態で保持していたならば、その遠隔ノードは、ノ
ード間ECUバスを介してそのキャッシュ・ラインを要
求元ノードへ転送してくる(即ち、移転が行なわれ
る)。また複数のノードが、そのキャッシュ・ラインを
「共用」状態で保持していたならば、それら複数のノー
ドの全てがそのキャッシュ・ラインを送出しようとす
る。しかしながら、ECUバスの標準的な優先権ロジッ
クが、それら送出のうちの1つを選択してその他をキャ
ンセルする。更に、全ての遠隔コピー(遠隔ノードに保
持されているコピー)が「無効」状態にセットされる。 (3)そのキャッシュ・ラインの状態が「共用」状態で
あったならば、INVコマンドを他のノードへ送出する
ことによって、他のノードが夫々みずからの中に保持し
ているそのキャッシュ・ラインのコピーを「無効」状態
にセットするようにする(この場合には、要求元ノード
の中に既に現在コピーが存在しているため、移転が行な
われる必要はない)。
【0024】バスからの入力とキャッシュ・ラインの状
態との組合せが以上のものとは異なる様々なものである
場合に、夫々に一貫性を維持するために必要となるその
他のノード間動作も存在しているが、それらについて
は、後に要約して述べることにする。一貫性維持のため
の以上の処理手順は、ハードウェア・レベルで動作する
ものであり、そして、共用ページを参照するプロセス
が、それがどのノードにおいて実行中のどのプロセスで
あっても、その共用ページの全体に亙って最新のデータ
を見られるようにすることを保証するものである。
態との組合せが以上のものとは異なる様々なものである
場合に、夫々に一貫性を維持するために必要となるその
他のノード間動作も存在しているが、それらについて
は、後に要約して述べることにする。一貫性維持のため
の以上の処理手順は、ハードウェア・レベルで動作する
ものであり、そして、共用ページを参照するプロセス
が、それがどのノードにおいて実行中のどのプロセスで
あっても、その共用ページの全体に亙って最新のデータ
を見られるようにすることを保証するものである。
【0025】ページ・イン方式:経済性という観点から
の要請に従うならば、例えばページ・フォールトを発生
させるような参照(即ち、無効PTW)がなされたとき
等に行なう、共用ページの物理的インスタンス化は、実
際にその共用ページを参照するノードの中だけで行なわ
れることが望ましい。これに関して従来のシステムで
は、記憶管理機構ないし記憶管理ソフトウェアが、物理
ページ及びPTWのインスタンス化を行なった後に、I
/O装置に、例えば従来のI/O通信チャネル17等を
介してそのページの内容をページ・インさせるようにし
ていた。ところが、分散記憶システムの場合には、その
ページの内容が既に他のノードの中に存在している可能
性もある。そこで、記憶管理機構ないし記憶管理ソフト
ウェアは、通常のページのインスタンス化の作業を行な
うことに加えて、そのページの内容がどこかに存在して
いないかを調べるサーチも行なわせることが必要とな
る。これらのことを行なうには、(1)ECUの中に、
全てのキャッシュ・ラインに「無効」のマーキングを施
したECUページ・エントリを格納した後に、(2)ペ
ージ・フォールトを発生させた記憶位置への再度の参照
を(今度は有効PTWによって)試みるようにする。こ
れを行なったならば、その結果は(1)要求されたキャ
ッシュ・ラインが別のノードからその記憶の中のページ
・フレームへ移転されるか、或いは、(2)そのページ
はどのノードの共用記憶の中にも存在していないと判定
されるかの、いずれかとなる。結果が(2)となった場
合には、記憶管理ソフトウェアは、そのページを保持し
ている記憶装置(例えばディスク装置)へのI/Oアク
セス権をどのノードが持っているのかを判定した上で、
そのノードがI/O動作を実行してそのディスク装置か
らそのノードみずからの記憶の中へそのページをページ
・インすることを(例えば特別の割込等によって)要求
する必要がある。そのI/O動作が完了したならば、本
来実行していたソフトウェアを、問題となっているその
参照が行なわれた点から再始動させることができるよう
になり、また夫々のノードのECUが、移転によってそ
の参照を完了させることができるようになる。
の要請に従うならば、例えばページ・フォールトを発生
させるような参照(即ち、無効PTW)がなされたとき
等に行なう、共用ページの物理的インスタンス化は、実
際にその共用ページを参照するノードの中だけで行なわ
れることが望ましい。これに関して従来のシステムで
は、記憶管理機構ないし記憶管理ソフトウェアが、物理
ページ及びPTWのインスタンス化を行なった後に、I
/O装置に、例えば従来のI/O通信チャネル17等を
介してそのページの内容をページ・インさせるようにし
ていた。ところが、分散記憶システムの場合には、その
ページの内容が既に他のノードの中に存在している可能
性もある。そこで、記憶管理機構ないし記憶管理ソフト
ウェアは、通常のページのインスタンス化の作業を行な
うことに加えて、そのページの内容がどこかに存在して
いないかを調べるサーチも行なわせることが必要とな
る。これらのことを行なうには、(1)ECUの中に、
全てのキャッシュ・ラインに「無効」のマーキングを施
したECUページ・エントリを格納した後に、(2)ペ
ージ・フォールトを発生させた記憶位置への再度の参照
を(今度は有効PTWによって)試みるようにする。こ
れを行なったならば、その結果は(1)要求されたキャ
ッシュ・ラインが別のノードからその記憶の中のページ
・フレームへ移転されるか、或いは、(2)そのページ
はどのノードの共用記憶の中にも存在していないと判定
されるかの、いずれかとなる。結果が(2)となった場
合には、記憶管理ソフトウェアは、そのページを保持し
ている記憶装置(例えばディスク装置)へのI/Oアク
セス権をどのノードが持っているのかを判定した上で、
そのノードがI/O動作を実行してそのディスク装置か
らそのノードみずからの記憶の中へそのページをページ
・インすることを(例えば特別の割込等によって)要求
する必要がある。そのI/O動作が完了したならば、本
来実行していたソフトウェアを、問題となっているその
参照が行なわれた点から再始動させることができるよう
になり、また夫々のノードのECUが、移転によってそ
の参照を完了させることができるようになる。
【0026】ページ・アウト方式:夫々のノードにおけ
るページ置換の判断は、個々のノードごとに、他のノー
ドからは独立して行なえるようにしておくことが望まし
い。複数のノードにおいてインスタンス化されている共
用ページの場合には、例えばそのページが極めて低頻度
でしか参照されないノードがあるなら、そのノードのロ
ーカル記憶からは、そのページを除去できるようにして
おくことが望まれる。そこで、ある長さの時間に亙って
一度も参照されていない共用ページがあって、その共用
ページが変更済のものであるならば、そのページのホー
ム・ノードへ(例えば特別の割込等によって)、そのペ
ージをディスク装置18(図3)へ書込むべきことを伝
えることによって、そのページを除去できるようにして
いる。このとき、そのホーム・ノードの記憶管理ソフト
ウェアは、もし、そのページを物理的にインスタンス化
したものがホーム・ノードの中に存在していなかったな
らば、先ずそのページの物理的インスタンス化を行な
い、その後にI/O動作を開始して、そのページの中の
各々のキャッシュ・ラインを参照して行きながらそのペ
ージの最新の完成コピーを他のノードから集めるように
する。遠隔ノードの中のキャッシュ・ラインの一貫性状
態は、以前のままに放置しておくようにしても良く、或
いは、夫々の遠隔ノード内で「無効」状態にセットする
ようにしておいても良い。後者の方式とすれば、そのペ
ージが低頻度でしか参照されないノードにおいて、その
ページを削除することが容易になる。(PTWが変更済
ページであることを示している場合であっても、ECU
に対して照会を発することによってそのページ内の全て
のキャッシュ・ラインが無効であることを判定できるよ
うにしてあれば、記憶管理ソフトウェアはそのページを
安全に廃棄することができる)。これ以後、そのページ
を参照しようとするノードが現われたならば、そのノー
ドは、ホーム・ノードの中に存在しているコピーの移転
によって、そのページのデータを受け取ることになる。
るページ置換の判断は、個々のノードごとに、他のノー
ドからは独立して行なえるようにしておくことが望まし
い。複数のノードにおいてインスタンス化されている共
用ページの場合には、例えばそのページが極めて低頻度
でしか参照されないノードがあるなら、そのノードのロ
ーカル記憶からは、そのページを除去できるようにして
おくことが望まれる。そこで、ある長さの時間に亙って
一度も参照されていない共用ページがあって、その共用
ページが変更済のものであるならば、そのページのホー
ム・ノードへ(例えば特別の割込等によって)、そのペ
ージをディスク装置18(図3)へ書込むべきことを伝
えることによって、そのページを除去できるようにして
いる。このとき、そのホーム・ノードの記憶管理ソフト
ウェアは、もし、そのページを物理的にインスタンス化
したものがホーム・ノードの中に存在していなかったな
らば、先ずそのページの物理的インスタンス化を行な
い、その後にI/O動作を開始して、そのページの中の
各々のキャッシュ・ラインを参照して行きながらそのペ
ージの最新の完成コピーを他のノードから集めるように
する。遠隔ノードの中のキャッシュ・ラインの一貫性状
態は、以前のままに放置しておくようにしても良く、或
いは、夫々の遠隔ノード内で「無効」状態にセットする
ようにしておいても良い。後者の方式とすれば、そのペ
ージが低頻度でしか参照されないノードにおいて、その
ページを削除することが容易になる。(PTWが変更済
ページであることを示している場合であっても、ECU
に対して照会を発することによってそのページ内の全て
のキャッシュ・ラインが無効であることを判定できるよ
うにしてあれば、記憶管理ソフトウェアはそのページを
安全に廃棄することができる)。これ以後、そのページ
を参照しようとするノードが現われたならば、そのノー
ドは、ホーム・ノードの中に存在しているコピーの移転
によって、そのページのデータを受け取ることになる。
【0027】これより、図4及び図5について説明す
る。これらの図は、CPU1と、そのCPU1のプライ
マリ・キャッシュ2と、ノード・ローカル・バス4と、
ECU10と、ノード間ECUバス11との間のインタ
ーフェースを示した状態図であり、従って、同機種から
成る「GCOS 8」環境に組み込めるようにしたECU10
を規定している状態図である。この「GCOS 8」環境で使
用される様々な用語の意味は次のとおりである: ・第1レベルのバスとは、CPU1と、そのCPU1の
プライマリ・キャッシュ2とを結合しているバスのこと
である。 ・第2レベルのバスとは、ノード・ローカル・バス4の
ことである。 ・第3レベルのバスとは、ノード間ECUバス11のこ
とである。 ・データ移動コマンドに関しては次のとおり: I1−第1レベルのバスから受取ったデータ。 O1−第1レベルのバスへ出力されたデータ。 I2−第2レベルのバスから受取ったデータ。 O2−第2レベルのバスへ出力されたデータ。 I3−第3レベルのバスから受取ったデータ。 O3−第3レベルのバスへ出力されたデータ。 ・インターフェース・コマンドに関しては次のとおり: <RD1>−プロセッサへ読込む。 <WR1>−プロセッサから書込む。 <RAR1>−再書込み後読取りの原子動作。 ・更に第1レベルのバス(図5)に関しては次のとお
り: <RD2>−第2レベルのバスからキャッシュ・ライン
を要求する。 <RTW2>−専有所有権を確保した上でキャッシュ・
ラインを読取る。 <INV2>−第1レベルの全てのプロセッサに対し、
キャッシュ・ラインの無効化を命じる。 <WR2>−第2レベルのバス上へキャッシュ・ライン
のデータを書出す。 ・更に第2レベルのバス(図6)に関しては次のとお
り: <RD2>−第2レベルのバスからキャッシュ・ライン
を要求する。 <RTW2>−専有所有権を確保した上で他のCPUか
らキャッシュ・ラインを読込む。 <INV2>−ローカル・バスである第2レベルのバス
上の全てのキャッシュの中のキャッシュ・ラインを無効
化する。 <WR2>−プライマリ・キャッシュからキャッシュ・
ラインを除去し、或いは、移転する。 <RD3>−第3レベルのバスからキャッシュ・ライン
を要求する。 <RTW3>−専有所有権を確保した上で他のノードか
らキャッシュ・ラインを読込む。 <INV3>−全てのECUにキャッシュ・ラインの無
効化を命じる。 <WR3>−第3レベルのバス上へキャッシュ・ライン
を書出す。
る。これらの図は、CPU1と、そのCPU1のプライ
マリ・キャッシュ2と、ノード・ローカル・バス4と、
ECU10と、ノード間ECUバス11との間のインタ
ーフェースを示した状態図であり、従って、同機種から
成る「GCOS 8」環境に組み込めるようにしたECU10
を規定している状態図である。この「GCOS 8」環境で使
用される様々な用語の意味は次のとおりである: ・第1レベルのバスとは、CPU1と、そのCPU1の
プライマリ・キャッシュ2とを結合しているバスのこと
である。 ・第2レベルのバスとは、ノード・ローカル・バス4の
ことである。 ・第3レベルのバスとは、ノード間ECUバス11のこ
とである。 ・データ移動コマンドに関しては次のとおり: I1−第1レベルのバスから受取ったデータ。 O1−第1レベルのバスへ出力されたデータ。 I2−第2レベルのバスから受取ったデータ。 O2−第2レベルのバスへ出力されたデータ。 I3−第3レベルのバスから受取ったデータ。 O3−第3レベルのバスへ出力されたデータ。 ・インターフェース・コマンドに関しては次のとおり: <RD1>−プロセッサへ読込む。 <WR1>−プロセッサから書込む。 <RAR1>−再書込み後読取りの原子動作。 ・更に第1レベルのバス(図5)に関しては次のとお
り: <RD2>−第2レベルのバスからキャッシュ・ライン
を要求する。 <RTW2>−専有所有権を確保した上でキャッシュ・
ラインを読取る。 <INV2>−第1レベルの全てのプロセッサに対し、
キャッシュ・ラインの無効化を命じる。 <WR2>−第2レベルのバス上へキャッシュ・ライン
のデータを書出す。 ・更に第2レベルのバス(図6)に関しては次のとお
り: <RD2>−第2レベルのバスからキャッシュ・ライン
を要求する。 <RTW2>−専有所有権を確保した上で他のCPUか
らキャッシュ・ラインを読込む。 <INV2>−ローカル・バスである第2レベルのバス
上の全てのキャッシュの中のキャッシュ・ラインを無効
化する。 <WR2>−プライマリ・キャッシュからキャッシュ・
ラインを除去し、或いは、移転する。 <RD3>−第3レベルのバスからキャッシュ・ライン
を要求する。 <RTW3>−専有所有権を確保した上で他のノードか
らキャッシュ・ラインを読込む。 <INV3>−全てのECUにキャッシュ・ラインの無
効化を命じる。 <WR3>−第3レベルのバス上へキャッシュ・ライン
を書出す。
【0028】当業者であれば容易に理解することである
が、本発明は階層化接続の階層数が何層であっても容易
に適用し得るものであり、即ち、第4レベル、第5レベ
ル、等々が存在している場合でも適用可能である。
が、本発明は階層化接続の階層数が何層であっても容易
に適用し得るものであり、即ち、第4レベル、第5レベ
ル、等々が存在している場合でも適用可能である。
【図1】従来例に係るクラスタ・アーキテクチャを示し
たハイレベルのブロック図である。
たハイレベルのブロック図である。
【図2】本発明に係るクラスタ・アーキテクチャを示し
たハイレベルのブロック図である。
たハイレベルのブロック図である。
【図3】本発明に係るクラスタ・アーキテクチャの外部
一貫性維持装置(ECU)の構成要素の中間レベルのブ
ロック図を特に示したより詳細なブロック図である。
一貫性維持装置(ECU)の構成要素の中間レベルのブ
ロック図を特に示したより詳細なブロック図である。
【図4】一例として取り上げた具体的なコンピュータ・
ファミリーにおけるプライマリ・キャッシュの状態遷移
図である。
ファミリーにおけるプライマリ・キャッシュの状態遷移
図である。
【図5】図4と同一の具体的なコンピュータ・ファミリ
ーに採用し得るようにした外部一貫性維持装置(EC
U)の状態遷移図である。
ーに採用し得るようにした外部一貫性維持装置(EC
U)の状態遷移図である。
【図6】外部一貫性維持装置の連想記憶のエントリの具
体例を示した図である。
体例を示した図である。
1 中央処理装置(CPU) 2 プライマリ・キャッシュ 3 ローカル共用記憶 4 ノード・ローカル・バス 10 外部一貫性維持装置(ECU) 11 ノード間ECUバス
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ジョン・エイ・ワーツ アメリカ合衆国アリゾナ州85023,フェニ ックス,ノース・トゥエンティース・ドラ イブ 17402
Claims (9)
- 【請求項1】 コンピュータのクラスタ・アーキテクチ
ャにおいて、 A)複数のノードと、 B)前記複数のノードの各々に少なくとも1個が装備さ
れ、その各々が一貫性維持特性を有している、中央処理
装置と、 C)前記複数のノードの各々に装備され、その各々が、
みずからが装備されているのと同じノードに装備されて
いる全てのプライマリ・キャッシュを結合している、ノ
ード・ローカル通信手段と、 D)前記複数のノードの各々に装備され、その各々が、
共用物理空間と非共用物理空間とに割当て可能な物理空
間を有している、ローカル主記憶と、 E)前記複数のノードの各々に装備され、その各々が、
みずからが装備されているのと同じノードに装備されて
いる前記ノード・ローカル通信手段及び前記ローカル主
記憶と結合している、外部一貫性維持装置と、 F)全ての前記外部一貫性維持装置を結合しているノー
ド間通信手段と、を備えており、 G)前記外部一貫性維持装置の各々が、 1)当該外部一貫性維持装置が装備されているのと同じ
ノードに装備されている前記ノード間通信手段と前記ノ
ード・ローカル通信手段との両方を監視するための、監
視手段と、 2)一貫性維持手段であって、 a)前記監視手段が、当該外部一貫性維持装置が装備さ
れているのと同じノードに装備されている前記ノード・
ローカル通信手段上に送出されたキャッシュ・ライン要
求を検出し、且つ、検出したそのキャッシュ・ライン要
求が非共用キャッシュ・ライン要求であると判定したと
きに、前記監視手段がそのように判定したことに応答し
て、その非共用キャッシュ・ライン要求を、前記ローカ
ル主記憶の前記非共用物理空間へ導き、一方、 b)前記監視手段が、当該外部一貫性維持装置が装備さ
れているのと同じノードに装備されている前記ノード・
ローカル通信手段上に送出されたキャッシュ・ライン要
求を検出し、且つ、検出したそのキャッシュ・ライン要
求が共用キャッシュ・ライン要求であると判定したとき
に、前記監視手段がそのように判定したことに応答し
て、その共用キャッシュ・ライン要求に関するキャッシ
ュ・ラインの一貫性状態を調べることにより、その共用
キャッシュ・ライン要求に応えるためにはノード間動作
が必要か否かを判定し、そして、そのノード間動作が必
要であると判定されたならば、前記ノード間通信手段を
介して、一義的識別子と一貫性維持コマンドとを、その
他全ての前記外部一貫性維持装置へ送出するようにし
た、 前記一貫性維持手段と、 を備えており、 以上によって、クラスタ内の全ての前記ローカル主記憶
の前記共用物理空間内で得られる最新にインスタンス化
された要求データが、前記外部一貫性維持装置のうちの
そのデータを要求した外部一貫性維持装置へ提供される
ようにした、ことを特徴とするコンピュータのクラスタ
・アーキテクチャ。 - 【請求項2】 前記外部一貫性維持装置の各々が、前記
クラスタの共用記憶空間内に格納されている情報の各単
位ごとに一貫性状態を付与するようにしてあり、付与す
る一貫性状態が、 A)当該外部一貫性維持装置が装備されているのと同じ
ノードに装備されている前記ローカル主記憶の前記共用
記憶空間内に存在している要求された情報のコピーが、
前記クラスタ内に存在している唯一のコピーであること
を示す「専有」状態と、 B)当該外部一貫性維持装置が装備されているのと同じ
ノードに装備されている前記ローカル主記憶の中に存在
している要求された情報のコピーが、その同じノードに
装備されている中央処理装置によって変更されているこ
とを示す「変更済」状態と、 C)当該外部一貫性維持装置が装備されているのと同じ
ノードに装備されている前記ローカル主記憶の中に存在
している要求された情報のコピーが、不在であるか、ま
たは、最新のものとは異なっていることが知られている
ことを示す「無効」状態と、 D)当該外部一貫性維持装置が装備されているのと同じ
ノードに装備されている前記ローカル主記憶の中に存在
している要求された情報のコピーが、複数のノードの中
に存在している要求された情報の複数の現在コピーのう
ちの1つであることを示す「共用」状態と、を含んでい
ることを特徴とする請求項1記載のコンピュータのクラ
スタ・アーキテクチャ。 - 【請求項3】 前記外部一貫性維持装置の各々に備えら
れている前記一貫性維持手段の各々が、共用情報の1つ
のブロックに関連したローカル・キャッシュ・ライン要
求に応答して、 A)要求されたキャッシュ・ラインの状態が「専有」状
態または「変更済」状態であったならば、要求されたブ
ロックを要求元ノードに装備されている前記ローカル主
記憶から直接取り出すようにし、この場合、要求元ノー
ドに装備されている前記ローカル主記憶の中以外には、
前記クラスタ内のどこにも現在コピーは存在していない
ため、いかなる遠隔動作も行なわず、 B)要求されたキャッシュ・ラインの状態が「無効」状
態であったならば「書込みを前提とした読取り」コマン
ドを前記通信手段を介してその他の全てのノードへ送出
するようにし、この場合、要求されたキャッシュ・ライ
ンの情報を「専有」状態または「変更済」状態で保持し
ている遠隔ノードがそれに応答して、要求されたキャッ
シュ・ラインの情報を前記通信手段を介して要求元ノー
ドへ移転し、 C)要求されたキャッシュ・ラインの状態が「共用」状
態であったならば「無効化」コマンドをその他の全ての
ノードへ送出することによって、その他の全てのノード
内において、要求されたキャッシュ・ラインの状態を
「無効」状態にセットさせる、ようにしてあることを特
徴とする請求項2記載のコンピュータのクラスタ・アー
キテクチャ。 - 【請求項4】 前記ノード間通信手段が、ノード間外部
一貫性維持装置バスを含んでいることを特徴とする請求
項1記載のコンピュータのクラスタ・アーキテクチャ。 - 【請求項5】 前記ノード間通信手段が、ノード間外部
一貫性維持装置バスを含んでいることを特徴とする請求
項2記載のコンピュータのクラスタ・アーキテクチャ。 - 【請求項6】 前記ノード間通信手段が、ノード間外部
一貫性維持装置バスを含んでいることを特徴とする請求
項3記載のコンピュータのクラスタ・アーキテクチャ。 - 【請求項7】 前記ノード間通信手段が、直接結合手段
を含んでいることを特徴とする請求項1記載のコンピュ
ータのクラスタ・アーキテクチャ。 - 【請求項8】 前記ノード間通信手段が、直接結合手段
を含んでいることを特徴とする請求項2記載のコンピュ
ータのクラスタ・アーキテクチャ。 - 【請求項9】 前記ノード間通信手段が、直接結合手段
を含んでいることを特徴とする請求項3記載のコンピュ
ータのクラスタ・アーキテクチャ。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US993884 | 1992-12-23 | ||
| US07/993,884 US5394555A (en) | 1992-12-23 | 1992-12-23 | Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06243035A true JPH06243035A (ja) | 1994-09-02 |
Family
ID=25540038
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5324668A Pending JPH06243035A (ja) | 1992-12-23 | 1993-12-22 | コンピュータ・システムのためのクラスタ・アーキテクチャにおける一般化共用記憶 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US5394555A (ja) |
| EP (1) | EP0603801A3 (ja) |
| JP (1) | JPH06243035A (ja) |
| AU (1) | AU675982B2 (ja) |
| CA (1) | CA2109642A1 (ja) |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07210526A (ja) * | 1994-01-20 | 1995-08-11 | Hitachi Ltd | 並列計算機 |
| JPH0950423A (ja) * | 1995-07-21 | 1997-02-18 | Bull Sa | 遠隔情報処理システム間のデータ伝送方法 |
| US7093078B2 (en) | 1999-12-09 | 2006-08-15 | Nec Corporation | Data access method in the network system and the network system |
Families Citing this family (218)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5535116A (en) * | 1993-05-18 | 1996-07-09 | Stanford University | Flat cache-only multi-processor architectures |
| US5761739A (en) * | 1993-06-08 | 1998-06-02 | International Business Machines Corporation | Methods and systems for creating a storage dump within a coupling facility of a multisystem enviroment |
| FR2707778B1 (fr) * | 1993-07-15 | 1995-08-18 | Bull Sa | NÓoeud de processeurs. |
| FR2707776B1 (fr) | 1993-07-15 | 1995-08-18 | Bull Sa | Procédé de gestion de mémoires d'un système informatique, système informatique mémoire et support d'enregistrement mettant en Óoeuvre le procédé. |
| US5604882A (en) * | 1993-08-27 | 1997-02-18 | International Business Machines Corporation | System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system |
| US5636365A (en) * | 1993-10-05 | 1997-06-03 | Nec Corporation | Hierarchical buffer memories for selectively controlling data coherence including coherence control request means |
| US5522057A (en) * | 1993-10-25 | 1996-05-28 | Intel Corporation | Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems |
| JPH07129468A (ja) * | 1993-11-04 | 1995-05-19 | Matsushita Electric Ind Co Ltd | 主記憶制御装置 |
| US5577204A (en) * | 1993-12-15 | 1996-11-19 | Convex Computer Corporation | Parallel processing computer system interconnections utilizing unidirectional communication links with separate request and response lines for direct communication or using a crossbar switching device |
| US5751995A (en) * | 1994-01-04 | 1998-05-12 | Intel Corporation | Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively |
| JP3604176B2 (ja) * | 1994-09-14 | 2004-12-22 | 株式会社東芝 | 仮想空間管理方法及び分散処理システム |
| JP3132749B2 (ja) * | 1994-12-05 | 2001-02-05 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | マルチプロセッサ・データ処理システム |
| US5893147A (en) * | 1994-12-22 | 1999-04-06 | Intel Corporation | Method and apparatus for distinguishing system memory data from alternative memory data in a shared cache memory |
| DE69621263T2 (de) * | 1995-01-23 | 2002-12-19 | Compaq Computer Corp., Houston | Verteilter Datencachespeicher für Multiprozessorsystem mit Cachespeicher |
| US5893921A (en) * | 1995-02-10 | 1999-04-13 | International Business Machines Corporation | Method for maintaining memory coherency in a computer system having a cache utilizing snoop address injection during a read transaction by a dual memory bus controller |
| US5692149A (en) * | 1995-03-16 | 1997-11-25 | Samsung Electronics Co., Ltd. | Block replacement method in cache only memory architecture multiprocessor |
| WO1996032685A1 (en) * | 1995-04-11 | 1996-10-17 | Kinetech, Inc. | Identifying data in a data processing system |
| US5860108A (en) * | 1995-04-26 | 1999-01-12 | Nec Corporation | Method and clustered multi-processor system for controlling a clock phase for clusters |
| JP2786124B2 (ja) * | 1995-04-26 | 1998-08-13 | 甲府日本電気株式会社 | 共有メモリ型マルチプロセッサシステム |
| US5634110A (en) * | 1995-05-05 | 1997-05-27 | Silicon Graphics, Inc. | Cache coherency using flexible directory bit vectors |
| US5623632A (en) * | 1995-05-17 | 1997-04-22 | International Business Machines Corporation | System and method for improving multilevel cache performance in a multiprocessing system |
| US6049889A (en) * | 1995-06-07 | 2000-04-11 | Digital Equipment Corporation | High performance recoverable communication method and apparatus for write-only networks |
| DE19524023B4 (de) * | 1995-06-30 | 2004-02-05 | Fujitsu Siemens Computers Gmbh | Multiprozessorsystem mit einer sehr großen Anzahl von Mikroprozessoren |
| US5740399A (en) * | 1995-08-23 | 1998-04-14 | International Business Machines Corporation | Modified L1/L2 cache inclusion for aggressive prefetch |
| US5758119A (en) * | 1995-08-23 | 1998-05-26 | International Business Machines Corp. | System and method for indicating that a processor has prefetched data into a primary cache and not into a secondary cache |
| US5765208A (en) * | 1995-09-29 | 1998-06-09 | Motorola, Inc. | Method of speculatively executing store instructions prior to performing snoop operations |
| US5590301A (en) * | 1995-10-06 | 1996-12-31 | Bull Hn Information Systems Inc. | Address transformation in a cluster computer system |
| US6728258B1 (en) * | 1995-11-15 | 2004-04-27 | Hitachi, Ltd. | Multi-processor system and its network |
| US5835943A (en) * | 1995-11-30 | 1998-11-10 | Stampede Technologies, Inc. | Apparatus and method for increased data access in a network file oriented caching system |
| US6122637A (en) * | 1995-11-30 | 2000-09-19 | Yohe; Thomas Patrick | Apparatus and method for increased data access in an object oriented caching system |
| US6012085A (en) * | 1995-11-30 | 2000-01-04 | Stampede Technolgies, Inc. | Apparatus and method for increased data access in a network file object oriented caching system |
| US5682514A (en) * | 1995-11-30 | 1997-10-28 | Stampede Technologies, Inc. | Apparatus and method for increased data access in a network file oriented caching system |
| US5813034A (en) * | 1996-01-25 | 1998-09-22 | Unisys Corporation | Method and circuitry for modifying data words in a multi-level distributed data processing system |
| US6223260B1 (en) * | 1996-01-25 | 2001-04-24 | Unisys Corporation | Multi-bus data processing system in which all data words in high level cache memories have any one of four states and all data words in low level cache memories have any one of three states |
| EP0882266A1 (en) | 1996-02-20 | 1998-12-09 | Intergraph Corporation | High-availability super server |
| US5838631A (en) | 1996-04-19 | 1998-11-17 | Integrated Device Technology, Inc. | Fully synchronous pipelined ram |
| US5920891A (en) * | 1996-05-20 | 1999-07-06 | Advanced Micro Devices, Inc. | Architecture and method for controlling a cache memory |
| US5940870A (en) * | 1996-05-21 | 1999-08-17 | Industrial Technology Research Institute | Address translation for shared-memory multiprocessor clustering |
| 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 |
| US6141692A (en) * | 1996-07-01 | 2000-10-31 | Sun Microsystems, Inc. | Directory-based, shared-memory, scaleable multiprocessor computer system having deadlock-free transaction flow sans flow control protocol |
| US5937431A (en) * | 1996-07-12 | 1999-08-10 | Samsung Electronics Co., Ltd. | Multi- node, multi-level cache- only memory architecture with relaxed inclusion |
| US7136903B1 (en) | 1996-11-22 | 2006-11-14 | Mangosoft Intellectual Property, Inc. | Internet-based shared file service with native PC client access and semantics and distributed access control |
| US6026474A (en) * | 1996-11-22 | 2000-02-15 | Mangosoft Corporation | Shared client-side web caching using globally addressable memory |
| US6148377A (en) * | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
| US5987506A (en) * | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
| US20060129627A1 (en) * | 1996-11-22 | 2006-06-15 | Mangosoft Corp. | Internet-based shared file service with native PC client access and semantics and distributed version control |
| US6647393B1 (en) | 1996-11-22 | 2003-11-11 | Mangosoft Corporation | Dynamic directory service |
| US5909540A (en) * | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
| US6021261A (en) * | 1996-12-05 | 2000-02-01 | International Business Machines Corporation | Method and system for testing a multiprocessor data processing system utilizing a plurality of event tracers |
| US5848434A (en) * | 1996-12-09 | 1998-12-08 | Intel Corporation | Method and apparatus for caching state information within a directory-based coherency memory system |
| US6078997A (en) * | 1996-12-09 | 2000-06-20 | Intel Corporation | Directory-based coherency system for maintaining coherency in a dual-ported memory system |
| US6078994A (en) * | 1997-05-30 | 2000-06-20 | Oracle Corporation | System for maintaining a shared cache in a multi-threaded computer environment |
| US5946711A (en) * | 1997-05-30 | 1999-08-31 | Oracle Corporation | System for locking data in a shared cache |
| US6574720B1 (en) | 1997-05-30 | 2003-06-03 | Oracle International Corporation | System for maintaining a buffer pool |
| US6324623B1 (en) | 1997-05-30 | 2001-11-27 | Oracle Corporation | Computing system for implementing a shared cache |
| US6092155A (en) | 1997-07-10 | 2000-07-18 | International Business Machines Corporation | Cache coherent network adapter for scalable shared memory processing systems |
| US6044438A (en) * | 1997-07-10 | 2000-03-28 | International Business Machiness Corporation | Memory controller for controlling memory accesses across networks in distributed shared memory processing systems |
| JPH1185659A (ja) * | 1997-09-03 | 1999-03-30 | Hitachi Ltd | ディスク制御装置及びこれを用いた記憶装置 |
| DE69715203T2 (de) * | 1997-10-10 | 2003-07-31 | Bull S.A., Louveciennes | Ein Datenverarbeitungssystem mit cc-NUMA (cache coherent, non-uniform memory access) Architektur und im lokalen Speicher enthaltenem Cache-Speicher für Fernzugriff |
| US6148375A (en) * | 1998-02-13 | 2000-11-14 | International Business Machines Corporation | Hierarchical bus simple COMA architecture for shared memory multiprocessors having a bus directly interconnecting caches between nodes |
| US6115320A (en) | 1998-02-23 | 2000-09-05 | Integrated Device Technology, Inc. | Separate byte control on fully synchronous pipelined SRAM |
| GB9806184D0 (en) * | 1998-03-23 | 1998-05-20 | Sgs Thomson Microelectronics | A cache coherency mechanism |
| US6128690A (en) * | 1998-03-24 | 2000-10-03 | Compaq Computer Corporation | System for remote memory allocation in a computer having a verification table contains information identifying remote computers which are authorized to allocate memory in said computer |
| US6341339B1 (en) * | 1998-03-26 | 2002-01-22 | Compaq Computer Corporation | Apparatus and method for maintaining data coherence within a cluster of symmetric multiprocessors |
| JP3866426B2 (ja) * | 1998-11-05 | 2007-01-10 | 日本電気株式会社 | クラスタ計算機におけるメモリ障害処理方法及びクラスタ計算機 |
| US6931430B1 (en) * | 1998-05-13 | 2005-08-16 | Thomas W. Lynch | Maintaining coherency in a symbiotic computing system and method of operation thereof |
| US6338117B1 (en) * | 1998-08-28 | 2002-01-08 | International Business Machines Corporation | System and method for coordinated hierarchical caching and cache replacement |
| JP2000076205A (ja) * | 1998-08-28 | 2000-03-14 | Hitachi Ltd | マルチプロセッサ |
| US7013305B2 (en) | 2001-10-01 | 2006-03-14 | International Business Machines Corporation | Managing the state of coupling facility structures, detecting by one or more systems coupled to the coupling facility, the suspended state of the duplexed command, detecting being independent of message exchange |
| US6163801A (en) * | 1998-10-30 | 2000-12-19 | Advanced Micro Devices, Inc. | Dynamic communication between computer processes |
| US6314491B1 (en) | 1999-03-01 | 2001-11-06 | International Business Machines Corporation | Peer-to-peer cache moves in a multiprocessor data processing system |
| FR2792745B1 (fr) | 1999-04-26 | 2001-06-15 | Bull Sa | Architecture d'interconnexion modulaire pour machine multiprocesseur extensible, mettant en oeuvre une hierarchie de bus virtuelle a plusieurs niveaux et la meme brique de base pour tous les niveaux |
| US6952741B1 (en) | 1999-06-30 | 2005-10-04 | Computer Sciences Corporation | System and method for synchronizing copies of data in a computer system |
| US6446086B1 (en) | 1999-06-30 | 2002-09-03 | Computer Sciences Corporation | System and method for logging transaction records in a computer system |
| US7069406B2 (en) * | 1999-07-02 | 2006-06-27 | Integrated Device Technology, Inc. | Double data rate synchronous SRAM with 100% bus utilization |
| US7340426B1 (en) | 1999-07-30 | 2008-03-04 | Computer Sciences Corporation | Event-triggered transaction processing for electronic data interchange |
| US6961708B1 (en) | 1999-08-27 | 2005-11-01 | Computer Sciences Corporation | External interface for requesting data from remote systems in a generic fashion |
| US6970844B1 (en) | 1999-08-27 | 2005-11-29 | Computer Sciences Corporation | Flow designer for establishing and maintaining assignment and strategy process maps |
| US6381681B1 (en) * | 1999-09-30 | 2002-04-30 | Silicon Graphics, Inc. | System and method for shared memory protection in a multiprocessor computer |
| US7359863B1 (en) | 1999-09-30 | 2008-04-15 | Computer Sciences Corporation | Condition component framework for reinsurance |
| US7693731B1 (en) | 1999-09-30 | 2010-04-06 | Computer Sciences Corporation | Business process framework for reinsurance |
| US6339812B1 (en) | 1999-09-30 | 2002-01-15 | Silicon Graphics, Inc. | Method and apparatus for handling invalidation requests to processors not present in a computer system |
| US6651157B1 (en) * | 1999-10-15 | 2003-11-18 | Silicon Graphics, Inc. | Multi-processor system and method of accessing data therein |
| US7356541B1 (en) | 1999-10-29 | 2008-04-08 | Computer Sciences Corporation | Processing business data using user-configured keys |
| US6925468B1 (en) | 1999-10-29 | 2005-08-02 | Computer Sciences Corporation | Configuring systems for generating business transaction reports using processing relationships among entities of an organization |
| US7571171B1 (en) | 1999-10-29 | 2009-08-04 | Computer Sciences Corporation | Smart trigger for use in processing business transactions |
| US7526487B1 (en) | 1999-10-29 | 2009-04-28 | Computer Sciences Corporation | Business transaction processing systems and methods |
| US7353196B1 (en) | 1999-10-29 | 2008-04-01 | Computer Sciences Corporation | Configuring dynamic database packageset switching for use in processing business transactions |
| US7546304B1 (en) | 1999-10-29 | 2009-06-09 | Computer Sciences Corporation | Configuring keys for use in processing business data |
| US7363264B1 (en) | 1999-10-29 | 2008-04-22 | Computer Sciences Corporation | Processing business transactions using dynamic database packageset switching |
| US7693844B1 (en) | 1999-10-29 | 2010-04-06 | Computer Sciences Corporation | Configuring processing relationships among entities of an organization |
| US7050453B1 (en) * | 2000-02-17 | 2006-05-23 | Apple Computer, Inc. | Method and apparatus for ensuring compatibility on a high performance serial bus |
| US7509420B2 (en) * | 2000-02-18 | 2009-03-24 | Emc Corporation | System and method for intelligent, globally distributed network storage |
| US7398219B1 (en) | 2000-06-23 | 2008-07-08 | Computer Sciences Corporation | System and method for displaying messages using a messages table |
| US7343307B1 (en) | 2000-06-23 | 2008-03-11 | Computer Sciences Corporation | Dynamic help method and system for an insurance claims processing system |
| US7430514B1 (en) | 2000-06-23 | 2008-09-30 | Computer Sciences Corporation | System and method for processing insurance claims using a table of contents |
| US7571107B1 (en) | 2000-06-23 | 2009-08-04 | Computer Sciences Corporation | System and method for externalization of rules for assessing damages |
| US7430515B1 (en) | 2000-06-23 | 2008-09-30 | Computer Sciences Corporation | System and method for externalization of formulas for assessing damages |
| US7095426B1 (en) | 2000-06-23 | 2006-08-22 | Computer Sciences Corporation | Graphical user interface with a hide/show feature for a reference system in an insurance claims processing system |
| US7418400B1 (en) | 2000-06-23 | 2008-08-26 | Computer Sciences Corporation | Internet-enabled system and method for assessing damages |
| US8635410B1 (en) | 2000-07-20 | 2014-01-21 | Silicon Graphics International, Corp. | System and method for removing data from processor caches in a distributed multi-processor computer system |
| US6799248B2 (en) | 2000-09-11 | 2004-09-28 | Emc Corporation | Cache management system for a network data node having a cache memory manager for selectively using different cache management methods |
| US7630909B2 (en) * | 2000-10-02 | 2009-12-08 | Computer Sciences Corporation | Computerized method and system for adjusting liability estimates in an accident liability assessment program |
| DE10049498A1 (de) * | 2000-10-06 | 2002-04-11 | Philips Corp Intellectual Pty | Virtuelles Speichergerät für ein digitales Hausnetz |
| US7398302B2 (en) * | 2001-03-30 | 2008-07-08 | Hitachi, Ltd. | Remote copy with path selection and prioritization |
| US7096269B2 (en) * | 2001-03-30 | 2006-08-22 | Hitachi, Ltd. | Path selection methods for storage based remote copy |
| US7963899B2 (en) * | 2001-07-13 | 2011-06-21 | The Proctor & Gamble Company | Continuous in-line pleating apparatus and process |
| US20030023803A1 (en) * | 2001-07-24 | 2003-01-30 | Zatorski Richard A. | Bus bridge circuit including audio logic and an addressable register for storing an address bit used when the audio logic accesses digital data, and method for initializing a chip set including the bus bridge circuit |
| JP4043225B2 (ja) * | 2001-12-10 | 2008-02-06 | 株式会社ルネサステクノロジ | キャッシュ装置および方法 |
| AU2002364255A1 (en) * | 2001-12-24 | 2003-07-15 | Digimarc Id Systems, Llc | Covert variable information on id documents and methods of making same |
| US7694887B2 (en) * | 2001-12-24 | 2010-04-13 | L-1 Secure Credentialing, Inc. | Optically variable personalized indicia for identification documents |
| US7207494B2 (en) | 2001-12-24 | 2007-04-24 | Digimarc Corporation | Laser etched security features for identification documents and methods of making same |
| KR100441712B1 (ko) * | 2001-12-29 | 2004-07-27 | 엘지전자 주식회사 | 확장 가능형 다중 처리 시스템 및 그의 메모리 복제 방법 |
| WO2003088144A2 (en) * | 2002-04-09 | 2003-10-23 | Digimarc Id Systems, Llc | Image processing techniques for printing identification cards and documents |
| US7824029B2 (en) * | 2002-05-10 | 2010-11-02 | L-1 Secure Credentialing, Inc. | Identification card printer-assembler for over the counter card issuing |
| US7103636B2 (en) * | 2002-05-28 | 2006-09-05 | Newisys, Inc. | Methods and apparatus for speculative probing of a remote cluster |
| US7281055B2 (en) * | 2002-05-28 | 2007-10-09 | Newisys, Inc. | Routing mechanisms in systems having multiple multi-processor clusters |
| US7702528B2 (en) * | 2002-09-09 | 2010-04-20 | Computer Sciences Corporation | Computerized method and system for determining breach of duty in premises liability for an accident |
| US7672860B2 (en) * | 2002-09-09 | 2010-03-02 | Computer Sciences Corporation | Computerized method and system for determining the contribution of defenses to premises liability for an accident |
| US20040054556A1 (en) * | 2002-09-09 | 2004-03-18 | Stephan Wahlbin | Computerized method and system for determining causation in premises liability for an accident |
| US20040054558A1 (en) * | 2002-09-09 | 2004-03-18 | Stefan Wahlbin | Computerized method and system for determining claimant status in premises liability for an accident |
| US20040054557A1 (en) * | 2002-09-09 | 2004-03-18 | Stefan Wahlbin | Computerized method and system for estimating premises liability for an accident |
| US7676387B2 (en) * | 2002-10-31 | 2010-03-09 | Computer Sciences Corporation | Graphical display of business rules |
| US20040088195A1 (en) * | 2002-10-31 | 2004-05-06 | Childress Allen B. | Method of modifying a business rule |
| US20040085357A1 (en) * | 2002-10-31 | 2004-05-06 | Childress Allen B. | Method of generating a graphical display of a business rule and associated business rule elements |
| US7451148B2 (en) * | 2002-10-31 | 2008-11-11 | Computer Sciences Corporation | Method of modifying a business rule while tracking the modifications |
| US20040088199A1 (en) * | 2002-10-31 | 2004-05-06 | Childress Allen B. | Method of forming a business rule |
| US7689442B2 (en) * | 2002-10-31 | 2010-03-30 | Computer Science Corporation | Method of generating a graphical display of a business rule with a translation |
| US7296121B2 (en) * | 2002-11-04 | 2007-11-13 | Newisys, Inc. | Reducing probe traffic in multiprocessor systems |
| US7346744B1 (en) | 2002-11-04 | 2008-03-18 | Newisys, Inc. | Methods and apparatus for maintaining remote cluster state information |
| US7003633B2 (en) * | 2002-11-04 | 2006-02-21 | Newisys, Inc. | Methods and apparatus for managing probe requests |
| US6920532B2 (en) * | 2002-11-05 | 2005-07-19 | Newisys, Inc. | Cache coherence directory eviction mechanisms for modified copies of memory lines in multiprocessor systems |
| US6934814B2 (en) * | 2002-11-05 | 2005-08-23 | Newisys, Inc. | Cache coherence directory eviction mechanisms in multiprocessor systems which maintain transaction ordering |
| US6925536B2 (en) * | 2002-11-05 | 2005-08-02 | Newisys, Inc. | Cache coherence directory eviction mechanisms for unmodified copies of memory lines in multiprocessor systems |
| US8185602B2 (en) * | 2002-11-05 | 2012-05-22 | Newisys, Inc. | Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters |
| US7577755B2 (en) * | 2002-11-19 | 2009-08-18 | Newisys, Inc. | Methods and apparatus for distributing system management signals |
| US7804982B2 (en) | 2002-11-26 | 2010-09-28 | L-1 Secure Credentialing, Inc. | Systems and methods for managing and detecting fraud in image databases used with identification documents |
| US7725334B2 (en) * | 2002-11-27 | 2010-05-25 | Computer Sciences Corporation | Computerized method and system for estimating liability for an accident using dynamic generation of questions |
| US7792690B2 (en) * | 2002-11-27 | 2010-09-07 | Computer Sciences Corporation | Computerized method and system for estimating an effect on liability of the speed of vehicles in an accident and time and distance traveled by the vehicles |
| US7805321B2 (en) * | 2002-11-27 | 2010-09-28 | Computer Sciences Corporation | Computerized method and system for estimating liability for an accident from an investigation of the accident |
| US7818187B2 (en) * | 2002-11-27 | 2010-10-19 | Computer Sciences Corporation | Computerized method and system for estimating liability |
| US7895063B2 (en) * | 2002-11-27 | 2011-02-22 | Computer Sciences Corporation | Computerized method and system for creating pre-configured claim reports including liability in an accident estimated using a computer system |
| US20040103005A1 (en) * | 2002-11-27 | 2004-05-27 | Stefan Wahlbin | Computerized method and system for estimating monetary damages due to injuries in an accident from liability estimated using a computer system |
| US7660725B2 (en) * | 2002-11-27 | 2010-02-09 | Computer Sciences Corporation | Computerized method and system for estimating an effect on liability based on the stopping distance of vehicles |
| US20040102984A1 (en) * | 2002-11-27 | 2004-05-27 | Stefan Wahlbin | Computerized method and system for estimating liability using recorded vehicle data |
| US7809586B2 (en) * | 2002-11-27 | 2010-10-05 | Computer Sciences Corporation | Computerized method and system for estimating an effect on liability using a comparison of the actual speed of a vehicle in an accident and time and distance traveled by the vehicles in a merging vehicle accident |
| US7702529B2 (en) * | 2002-11-27 | 2010-04-20 | Computer Sciences Corporation | Computerized method and system for estimating an effect on liability using claim data accessed from claim reporting software |
| US8751753B1 (en) | 2003-04-09 | 2014-06-10 | Guillermo J. Rozas | Coherence de-coupling buffer |
| US20050044174A1 (en) * | 2003-04-11 | 2005-02-24 | Sun Microsystems, Inc. | Multi-node computer system where active devices selectively initiate certain transactions using remote-type address packets |
| US7606978B2 (en) * | 2003-04-11 | 2009-10-20 | Sun Microsystems, Inc. | Multi-node computer system implementing global access state dependent transactions |
| US20050005075A1 (en) * | 2003-04-11 | 2005-01-06 | Sun Microsystems, Inc. | Multi-node computer system employing multiple memory response states |
| ATE491190T1 (de) | 2003-04-16 | 2010-12-15 | L 1 Secure Credentialing Inc | Dreidimensionale datenspeicherung |
| US20040215494A1 (en) * | 2003-04-24 | 2004-10-28 | Wahlbin Stefan L. | Method and system for determining monetary amounts in an insurance processing system |
| US7334089B2 (en) * | 2003-05-20 | 2008-02-19 | Newisys, Inc. | Methods and apparatus for providing cache state information |
| US7386626B2 (en) * | 2003-06-23 | 2008-06-10 | Newisys, Inc. | Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems |
| US7337279B2 (en) * | 2003-06-27 | 2008-02-26 | Newisys, Inc. | Methods and apparatus for sending targeted probes |
| US7395347B2 (en) * | 2003-08-05 | 2008-07-01 | Newisys, Inc, | Communication between and within multi-processor clusters of multi-cluster computer systems |
| US7895064B2 (en) * | 2003-09-02 | 2011-02-22 | Computer Sciences Corporation | Graphical input display in an insurance processing system |
| US20050060205A1 (en) * | 2003-09-02 | 2005-03-17 | Woods Randall K. | Systems and methods for a graphical input display in an insurance processing system |
| US20050108063A1 (en) * | 2003-11-05 | 2005-05-19 | Madill Robert P.Jr. | Systems and methods for assessing the potential for fraud in business transactions |
| US20050192850A1 (en) * | 2004-03-01 | 2005-09-01 | Lorenz Scott K. | Systems and methods for using data structure language in web services |
| US8898246B2 (en) * | 2004-07-29 | 2014-11-25 | Hewlett-Packard Development Company, L.P. | Communication among partitioned devices |
| US7046560B2 (en) * | 2004-09-02 | 2006-05-16 | Micron Technology, Inc. | Reduction of fusible links and associated circuitry on memory dies |
| US20060059021A1 (en) * | 2004-09-15 | 2006-03-16 | Jim Yulman | Independent adjuster advisor |
| US20070168639A1 (en) * | 2006-01-17 | 2007-07-19 | Mccalpin John D | Data processing system and method for selecting a scope of broadcast of an operation by reference to a translation table |
| US20060200469A1 (en) * | 2005-03-02 | 2006-09-07 | Lakshminarayanan Chidambaran | Global session identifiers in a multi-node system |
| US8392668B2 (en) * | 2005-04-04 | 2013-03-05 | Hewlett-Packard Development Company, L.P. | Distributed-state-information-based distributed computing systems and methods and protocols for managing distributed state information |
| US7478201B2 (en) * | 2005-05-24 | 2009-01-13 | International Business Machines Corporation | Data processing system, cache system and method for passively scrubbing a domain indication |
| 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 |
| US7398360B2 (en) * | 2005-08-17 | 2008-07-08 | Sun Microsystems, Inc. | Multi-socket symmetric multiprocessing (SMP) system for chip multi-threaded (CMT) processors |
| US8185576B2 (en) * | 2006-03-14 | 2012-05-22 | Altnet, Inc. | Filter for a distributed network |
| US8856782B2 (en) | 2007-03-01 | 2014-10-07 | George Mason Research Foundation, Inc. | On-demand disposable virtual work system |
| US7975109B2 (en) | 2007-05-30 | 2011-07-05 | Schooner Information Technology, Inc. | System including a fine-grained memory and a less-fine-grained memory |
| US8000986B2 (en) | 2007-06-04 | 2011-08-16 | Computer Sciences Corporation | Claims processing hierarchy for designee |
| US8010389B2 (en) * | 2007-06-04 | 2011-08-30 | Computer Sciences Corporation | Multiple policy claims processing |
| US8010391B2 (en) | 2007-06-29 | 2011-08-30 | Computer Sciences Corporation | Claims processing hierarchy for insured |
| US8010390B2 (en) * | 2007-06-04 | 2011-08-30 | Computer Sciences Corporation | Claims processing of information requirements |
| CN100489814C (zh) * | 2007-08-01 | 2009-05-20 | 杭州华三通信技术有限公司 | 一种共享缓存系统及实现方法 |
| US7991630B2 (en) * | 2008-01-18 | 2011-08-02 | Computer Sciences Corporation | Displaying likelihood values for use in settlement |
| US8732386B2 (en) * | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
| US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
| US9098698B2 (en) | 2008-09-12 | 2015-08-04 | George Mason Research Foundation, Inc. | Methods and apparatus for application isolation |
| US8250331B2 (en) | 2009-06-26 | 2012-08-21 | Microsoft Corporation | Operating system virtual memory management for hardware transactional memory |
| US8812796B2 (en) | 2009-06-26 | 2014-08-19 | Microsoft Corporation | Private memory regions and coherence optimizations |
| US8370577B2 (en) | 2009-06-26 | 2013-02-05 | Microsoft Corporation | Metaphysically addressed cache metadata |
| US8161247B2 (en) * | 2009-06-26 | 2012-04-17 | Microsoft Corporation | Wait loss synchronization |
| US8489864B2 (en) * | 2009-06-26 | 2013-07-16 | Microsoft Corporation | Performing escape actions in transactions |
| US8356166B2 (en) * | 2009-06-26 | 2013-01-15 | Microsoft Corporation | Minimizing code duplication in an unbounded transactional memory system by using mode agnostic transactional read and write barriers |
| US8839422B2 (en) | 2009-06-30 | 2014-09-16 | George Mason Research Foundation, Inc. | Virtual browsing environment |
| US8229907B2 (en) * | 2009-06-30 | 2012-07-24 | Microsoft Corporation | Hardware accelerated transactional memory system with open nested transactions |
| US8402218B2 (en) * | 2009-12-15 | 2013-03-19 | Microsoft Corporation | Efficient garbage collection and exception handling in a hardware accelerated transactional memory system |
| US9092253B2 (en) * | 2009-12-15 | 2015-07-28 | Microsoft Technology Licensing, Llc | Instrumentation of hardware assisted transactional memory system |
| US8539465B2 (en) | 2009-12-15 | 2013-09-17 | Microsoft Corporation | Accelerating unbounded memory transactions using nested cache resident transactions |
| US8533440B2 (en) * | 2009-12-15 | 2013-09-10 | Microsoft Corporation | Accelerating parallel transactions using cache resident transactions |
| US9164554B2 (en) | 2010-04-12 | 2015-10-20 | Sandisk Enterprise Ip Llc | Non-volatile solid-state storage system supporting high bandwidth and random access |
| US9047351B2 (en) | 2010-04-12 | 2015-06-02 | Sandisk Enterprise Ip Llc | Cluster of processing nodes with distributed global flash memory using commodity server technology |
| US8700842B2 (en) | 2010-04-12 | 2014-04-15 | Sandisk Enterprise Ip Llc | Minimizing write operations to a flash memory-based object store |
| US8868487B2 (en) | 2010-04-12 | 2014-10-21 | Sandisk Enterprise Ip Llc | Event processing in a flash memory-based object store |
| US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
| US8402106B2 (en) * | 2010-04-14 | 2013-03-19 | Red Hat, Inc. | Asynchronous future based API |
| US8666939B2 (en) | 2010-06-28 | 2014-03-04 | Sandisk Enterprise Ip Llc | Approaches for the replication of write sets |
| WO2012052567A1 (en) * | 2010-10-22 | 2012-04-26 | St-Ericsson Sa | Improving storage lifetime using data swapping |
| US8463762B2 (en) | 2010-12-17 | 2013-06-11 | Microsoft Corporation | Volumes and file system in cluster shared volumes |
| US8732346B2 (en) | 2010-12-17 | 2014-05-20 | Microsoft Corporation | Coordination of direct I/O with a filter |
| US8694733B2 (en) | 2011-01-03 | 2014-04-08 | Sandisk Enterprise Ip Llc | Slave consistency in a synchronous replication environment |
| US8874515B2 (en) | 2011-04-11 | 2014-10-28 | Sandisk Enterprise Ip Llc | Low level object version tracking using non-volatile memory write generations |
| US9652469B2 (en) | 2011-06-04 | 2017-05-16 | Microsoft Technology Licensing, Llc | Clustered file service |
| US8627431B2 (en) | 2011-06-04 | 2014-01-07 | Microsoft Corporation | Distributed network name |
| WO2013082437A1 (en) | 2011-12-02 | 2013-06-06 | Invincia, Inc. | Methods and apparatus for control and detection of malicious content using a sandbox environment |
| US9135064B2 (en) | 2012-03-07 | 2015-09-15 | Sandisk Enterprise Ip Llc | Fine grained adaptive throttling of background processes |
| US8918587B2 (en) * | 2012-06-13 | 2014-12-23 | International Business Machines Corporation | Multilevel cache hierarchy for finding a cache line on a remote node |
| CN104769570B (zh) * | 2012-10-22 | 2018-05-15 | 英特尔公司 | 控制多时隙链路层微片中的消息收发 |
| US10949200B2 (en) | 2013-06-16 | 2021-03-16 | President And Fellows Of Harvard College | Methods and apparatus for executing data-dependent threads in parallel |
| US9454485B2 (en) | 2013-08-01 | 2016-09-27 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Sharing local cache from a failover node |
| US20180095906A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Hardware-based shared data coherency |
| CN120317318B (zh) * | 2025-06-19 | 2025-08-29 | 同济大学 | 一种基于动态检查点策略的大模型分布式训练故障处理方法 |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5297269A (en) * | 1990-04-26 | 1994-03-22 | Digital Equipment Company | Cache coherency protocol for multi processor computer system |
-
1992
- 1992-12-23 US US07/993,884 patent/US5394555A/en not_active Expired - Lifetime
-
1993
- 1993-11-22 CA CA002109642A patent/CA2109642A1/en not_active Abandoned
- 1993-12-15 AU AU52443/93A patent/AU675982B2/en not_active Expired - Fee Related
- 1993-12-20 EP EP9393120544A patent/EP0603801A3/en not_active Withdrawn
- 1993-12-22 JP JP5324668A patent/JPH06243035A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH07210526A (ja) * | 1994-01-20 | 1995-08-11 | Hitachi Ltd | 並列計算機 |
| JPH0950423A (ja) * | 1995-07-21 | 1997-02-18 | Bull Sa | 遠隔情報処理システム間のデータ伝送方法 |
| US7093078B2 (en) | 1999-12-09 | 2006-08-15 | Nec Corporation | Data access method in the network system and the network system |
Also Published As
| Publication number | Publication date |
|---|---|
| AU5244393A (en) | 1994-07-07 |
| CA2109642A1 (en) | 1994-06-24 |
| US5394555A (en) | 1995-02-28 |
| EP0603801A3 (en) | 1994-10-05 |
| EP0603801A2 (en) | 1994-06-29 |
| AU675982B2 (en) | 1997-02-27 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5394555A (en) | Multi-node cluster computer system incorporating an external coherency unit at each node to insure integrity of information stored in a shared, distributed memory | |
| KR100970229B1 (ko) | 원격 캐시 존재 정보를 저장하는 프로세서 캐시를 구비한 컴퓨터 시스템 | |
| KR101014394B1 (ko) | 통합 디렉토리 및 프로세서 캐시를 구비한 컴퓨터 시스템 | |
| JP5431525B2 (ja) | アクセラレータ用低コストのキャッシュ一貫性を維持するシステム | |
| KR100491435B1 (ko) | 다수의 시스템 버스를 가지는 컴퓨터 시스템 내의 메모리 일관성을 유지하기 위한 시스템 및 방법 | |
| US5274787A (en) | Method of copy-back cache coherence control and tightly coupled multi-processor system with split transfer system bus | |
| EP1255201B1 (en) | Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols | |
| US6289420B1 (en) | System and method for increasing the snoop bandwidth to cache tags in a multiport cache memory subsystem | |
| CN101088076B (zh) | 共享存储器计算机系统中自有高速缓存块的预测早写回的方法、装置和多处理器系统 | |
| US5829052A (en) | Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system | |
| US6272602B1 (en) | Multiprocessing system employing pending tags to maintain cache coherence | |
| CN1114865C (zh) | 用于避免冲突回写造成的活锁的方法和系统 | |
| JPH11506852A (ja) | 多数のバスマスタと共用レベル2キャッシュとを備える多レベルキャッシュシステムでのキャッシュスヌーピングオーバーヘッドの低減 | |
| JPH11232173A (ja) | ローカルメモリに組み込んでいるリモートキャッシュとcc−NUMA(キャッシュ整合型の不均一メモリアクセス)アーキテクチュアを有するデータ処理システム | |
| JP4447580B2 (ja) | 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ | |
| JP2746530B2 (ja) | 共有メモリマルチプロセッサ | |
| JPS63253448A (ja) | マルチ計算機装置 | |
| JPH03230238A (ja) | キャッシュメモリ制御方式 | |
| JPH0744459A (ja) | キャッシュ制御方法およびキャッシュ制御装置 | |
| JPH11102321A (ja) | 分散共有メモリ型並列計算機のキャッシュコヒーレンシ制御方式 | |
| KR100344065B1 (ko) | 다단계 캐시 구조의 공유 메모리 다중 프로세서 장치 | |
| JPH0822418A (ja) | 仮想アドレス空間管理装置 | |
| KR0138585B1 (ko) | 분리형 트랜잭션 버스를 이용한 공유 메모리 다중 프로세서 | |
| JP2000090008A (ja) | メモリ共有型マルチプロセッサシステム | |
| JPH04340636A (ja) | ローカルキャッシュ一貫性維持装置 |