JP2001519565A - キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送 - Google Patents

キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送

Info

Publication number
JP2001519565A
JP2001519565A JP2000515231A JP2000515231A JP2001519565A JP 2001519565 A JP2001519565 A JP 2001519565A JP 2000515231 A JP2000515231 A JP 2000515231A JP 2000515231 A JP2000515231 A JP 2000515231A JP 2001519565 A JP2001519565 A JP 2001519565A
Authority
JP
Japan
Prior art keywords
data
node
requested data
disk controller
disk
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.)
Granted
Application number
JP2000515231A
Other languages
English (en)
Other versions
JP3748774B2 (ja
Inventor
バムフォード,ロジャー・ジェイ
クロッツ,ボリス
Original Assignee
オラクル・コーポレイション
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 オラクル・コーポレイション filed Critical オラクル・コーポレイション
Publication of JP2001519565A publication Critical patent/JP2001519565A/ja
Application granted granted Critical
Publication of JP3748774B2 publication Critical patent/JP3748774B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/311In host system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるI/O転送のための方法および装置が提供される。この方法に従うと、要求ノードが要求されたデータを求める要求を管理ノードに送る。管理ノードは要求ノードから読出要求を受取り、要求されたデータに対するロックを許可する。管理ノードは次に、要求されたデータを識別するデータをディスクコントローラに転送する。ディスクコントローラは要求されたデータを識別するデータを管理ノードから受取り、要求されたデータを識別するデータに基づいて共用ディスクからデータ項目を読出す。共用ディスクからデータ項目を読出した後、ディスクコントローラはデータ項目を要求ノードに送る。一実施例では、読出要求と、データ項目がコピーされるべきバッファキャッシュアドレスとを識別するI/O宛先ハンドルが発生される。I/O宛先ハンドルはディスクコントローラに送られて、ディスクコントローラから要求ノードへのデータ項目の送りおよび処理を容易にする。要求されたデータを識別するデータを管理ノードからディスクコントローラへと直接的に転送する(「I/O転送」)結果として、機能停止期間が低減し、システムの資源に対するコンテンションが低減し、コンテキスト切換がなくなる。

Description

【発明の詳細な説明】
【0001】
【発明の分野】
この発明は共用ディスクコンピュータシステムに関し、特に、キャッシュコヒ
ーレンス共用ディスクコンピュータシステムにおけるキャッシュコヒーレンス管
理に関する。
【0002】
【発明の背景】
キャッシュコヒーレンス共用ディスクコンピュータシステムにおいて、1つ以
上の永続的ディスクが複数のノード間で共用され、各ノードがメモリとそのメモ
リを共用する1つ以上のプロセッサとを含む。各ノードのメモリの一部が、その
ノードのプロセッサがアクセスするディスクレジデントデータを一時的に記憶す
る「バッファキャッシュ」として用いられ得る。
【0003】 ディスク上のデータがノード間で共用されるので、システムには、共用データ
に対して読出または書込を行う各プロセッサまたは装置がそのデータを矛盾のな
い状態に保つよう読出または書込を行うことを確実とするように、共用データを
管理する必要がある。2つのノードがあるデータ項目を共用する別個の処理を行
っており、そのデータ項目のコピーが現在各ノードにある状況を考える。第1の
ノードがデータ項目のそのコピーを変更し、第2のノードがその変更を通知され
なければ、第2のノードはデータ項目の古いものをその処理のために与え、エラ
ーを起こしてしまう。しかしながら、(たとえば、第1のノードにおける更新に
応答して第2のノードにおけるデータ項目を更新するか無効にすることによって
)データ項目の各コピーを単一の(整合した)データ項目であるように見せかけ
るようデータ項目を維持する資源管理システムが確立されれば、そのデータ項目
は「整合した」または「一貫した」状態にあると言える。
【0004】 各バッファキャッシュはキャッシュコヒーレンスマネージャによって管理され
る。所与のバッファキャッシュのためのキャッシュコヒーレンスマネージャはそ
のバッファキャッシュに対するアクセスを制御し、1つ以上のバッファキャッシ
ュ内のデータを一貫したまたは整合した状態に保つ。加えて、各バッファキャッ
シュは以下により詳細に述べる「局所性」を確立することができる。
【0005】 共用ディスクコンピュータシステムは、1つ以上の共用ディスク上に持続的に
記憶される共通のデータベースへのアクセスを多数のユーザまたは処理が必要と
し得る、データベースシステムのような演算環境においてよく用いられる。
【0006】 図1はキャッシュコヒーレンス共用ディスクコンピュータシステム100を示
す。図1において、2つのデータブロック152および154を含むディスク1
50がローカルバス145によってディスクコントローラ140に接続される。
ディスクコントローラ140はI/Oネットワーク135によって第1のノード
190および第2のノード192に接続される。
【0007】 第1のノード190はプロセッサ102、バッファキャッシュ104およびキ
ャッシュコヒーレンスマネージャ106を含む。バッファキャッシュ104は(
キャッシュ内データブロック154'と表される)データブロック154のコピ ーを内蔵する。プロセッサ102、バッファキャッシュ104およびキャッシコ
ヒーレントマネージャ106はローカルバス108によって相互接続される。
【0008】 同様に、第2のノード192はプロセッサ112、バッファキャッシュ114
およびキャッシュコヒーレンスマネージャ116を含む。バッファキャッシュ1
14は(キャッシュ内データブロック154'と表わされる)データブロック1 54のコピーを内蔵する。プロセッサ112、バッファキャッシュ114および
キャッシュコヒーレンスマネージャ116はローカルバス118によって相互接
続される。
【0009】 図1に示すキャッシュコヒーレンス共用ディスクコンピュータシステム内の第
1のノード190および第2のノード192はシステムエリアネットワーク13
0によって相互接続される。たとえば、システムエリアネットワーク130はプ
ロセッサ102および112ならびにキャッシュコヒーレンズマネージャ106
および116を相互接続する。
【0010】 プロセッサ102をバッファキャッシュ104およびキャッシュコヒーレンス
マネージャ106に相互接続するためにさまざまな構成が用いられ得る(たとえ
ば、ローカルバス108)。同様に、第1のノードを第2のノードに相互接続す
るためにさまざまな構成が用いられ得る(たとえば、システムエリアネットワー
ク130)。同様に、第1のノード190、第2のノード192およびディスク
コントローラ140を接続するためにさまざまな構成が用いられ得る(たとえば
、I/Oネットワーク135)。図1に示す相互接続構成は例示的であり、共用
ディスクコンピュータシステムの説明を簡単にするためのものである。
【0011】 コンピュータシステムにおける局所性は空間的局所性、時間的局所性およびプ
ロセッサの局所性のような多数の異なる形態を取る。空間的局所性は、同時のメ
モリ参照が隣接するまたは近くのメモリアドレスにアクセスする可能性がある場
合に存在すると言われる。時間的局所性は、最近のメモリ参照が再びアクセスさ
れる可能性がある場合に存在すると言われる。さらに、並列演算はプロセッサの
局所性と呼ばれるもう1つの形態の局所性を生むことができる。プロセッサの局
所性は、同時のメモリ参照が(多くの異なるものの代わりに)単一のマルチプロ
セッサから行われる可能性がある場合に存在すると言われる。
【0012】 バッファキャッシュを用いると、プロセッサが必要とするデータが将来におい
てそのプロセッサの近くに置かれる可能性を高めることによって、ディスク15
0と、相互接続されたプロセッサにおいて開始される処理との間の局所性を作る
ことができる。キャッシュコヒーレンスマネージャ116を用いて、プロセッサ
102上で開始された局所処理は、ディスク150からデータブロック154を
連続的に再読出しすることから生じるであろう処理および通信のレイテンシによ
って遅延される代わりに、隣接するバッファキャッシュ104内にある間にキャ
ッシュ内データブロック154'へのアクセスの時間的局所性を利用することが できる。
【0013】 図1において、各キャッシュコヒーレンスマネージャはキャッシュコヒーレン
スプロトコルを用いることによって、ディスク150からのデータブロックを整
合した状態に保つ。キャッシュコヒーレンスプロトコルは、キャッシュ内データ
ブロック154'が多数のバッファキャッシュに分散されても、各プロセッサ1 02および112がデータブロック154の類似したまたは整合したコピーにア
クセスすることを確実とする。たとえば、キャッシュコヒーレンスマネージャ1
06は、コピーがバッファキャッシュ104および114内にある間にデータブ
ロック152を整合した状態に保つ。同様に、キャッシュコヒーレンスマネージ
ャ116は、バッファキャッシュ104および114に分散されている間にデー
タブロック154を整合した状態に保つ。
【0014】 図1に示す共用ディスクコンピュータシステムのためのキャッシュコヒーレン
スマネージャ106および116は、バッファキャッシュ104と114との間
、プロセッサ102と112との間、ディスク150内のデータブロック152
と154との間に局所性を作るのに役立つ。
【0015】 キャッシュコヒーレンス管理 典型的なキャッシュコヒーレンス管理プロトコルのための通信シーケンスを図
2に示す。図2において、プロセッサ102が開始する処理がデータブロック1
54の読出を要求したと想定する。加えて、データブロック154のコピーが現
在はバッファキャッシュ104内にないと想定する。さらに、キャッシュコヒー
レンス管理システムがデータブロック154のためのキャッシュコヒーレンスマ
ネージャとしてノード192を選択したと想定する。
【0016】 データブロック154が処理によって読出されるために、データブロック15
4のコピーがバッファキャッシュ104内に配置されなければならない。まず、
第1のノード190がロック要求を第2のノード192に渡す。第2のノード1
92は第1のノード190からロック要求を受取り、ロック要求が有効であれば
、ロック許可を第1のノード190に戻す。第1のノード190はロック許可を
受取り、データブロック154のコピーのためにバッファキャッシュ104を準
備する処理を開始する。第1のノード190は次に読出要求をディスクコントロ
ーラ140に渡す。次に、ディスクコントローラ140はディスク150からデ
ータブロック154を読出し、データブロック154のコピーを第1のノード1
90に送る。第1のノード190はデータブロック154のコピーを受取り、デ
ータブロック154のコピーをキャッシュ内データブロック154'としてバッ ファキャッシュ104内へと記憶する。
【0017】 上述のプロトコルの問題は、データブロック154を要求するノード190上
の処理(「要求処理」)が、データブロック154のコピーを待っている間に止
まってしまうことである。これらの条件下で要求処理が停止すると、アプリケー
ションプログラムに著しい性能問題が生じ得る。さらに、同期したコンテキスト
切換が経路2と経路3との間で第1のノード190によって必要とされる。上述
の問題は多量のノードが同じ共用ディスク上のデータにアクセスする場合にさら
に悪化する。たとえば、何千ものノードがディスク150を共用すると、ディス
ク150が何百万ものデータブロックを有し、各ノードが毎分1000個のデー
タブロックを要求することになるかもしれない。これらの条件下では、通信レイ
テンシ、プロセッサ機能停止およびコンテキスト切換が著しい量の処理時間を浪
費するであろう。
【0018】 可能な解決法 要求処理の機能停止の問題を解決する1つのアプローチが、引用によりここに
援用される、M. D. HillおよびJ. R. Larusによる「マルチプロセッサプログラ マのためのキャッシュ研究(“Cache Considerations for Multiprocessor Prog
rammers”)」、ACM通信(“Communications of The ACM”)、第33巻、第
8号、1990年8月、第97−102頁に取上げられている。この論文におい
て、HillおよびLarusは、機能停止の問題が共用ディスクの余分なアクセス(読 出)を回避するようにバッファキャッシュに特別の注意を払うプログラミング技
術によって少なくとも部分的に緩和され得ることを示唆している。4つのメモリ
モデルが提案され、単一プロセッサおよびマルチプロセッサのプログラミングの
ための規則が示唆されている。
【0019】 Hill他のアプローチの問題は、情報を与えられたプログラミングモデルは機能
停止の頻度を低減できるが、それらは根底にある問題、すなわち機能停止の持続
に対処していない。
【0020】 もう1つのアプローチが、引用によりここに援用される、J. B. Carter、J. K
. Bennett、およびW. Zwaenepoelによる「分散型共用メモリシステムにおける整
合性に関連した通信を低減するための技術(“Techniques for Reducing Consis
tency-Related Communication in Distributed Shared-Memory Systems”)」、
ACMコンピュータシステム会報(“ACM Transactions on Computer Systems”
)、第13巻、第3号、1995年8月、第205−243頁において提案され
ている。この論文において、Carter他は、ある処理におけるバッファ処理および
マージ更新が共用データ(すなわち、ディスク150、またはバッファキャッシ
ュ104および114間に分散されるデータブロック154)への書込のレイテ
ンシをマスクし、更新作業のための全体のオーバーヘッドを効果的に低減すると
示唆している。Carter他のアプローチは通信の頻度、したがって機能停止の頻度
を低減することに向けられている。Carter他のアプローチは(機能停止が「一括
」更新の数にわたって分けられるならば)機能停止の有効コストを低減するが、
機能停止の個々のコストはより高くなる可能性がある。たとえば、読出要求が直
ちに必要であれば、Carter他のアプローチは不十分である。なぜなら、十分な数
の要求が集まるまで読出要求を待ち行列に入れる結果として機能停止の持続期間
がより長くなるためである。
【0021】 したがって、キャッシュコヒーレンス共用ディスクコンピュータシステムを実
現するための改良された方法および装置が必要である。
【0022】
【発明の概要】
キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるI/O転
送のための方法および装置が提供される。
【0023】 この方法に従うと、要求ノードが要求されたデータを求める要求を送る。管理
ノードが要求ノードから読出要求を受取り、要求されたデータへのロックを許可
する。管理ノードは次に要求されたデータを識別するデータをディスクコントロ
ーラに転送する。ディスクコントローラは要求されたデータを識別するデータを
管理ノードから受取り、要求されたデータを識別するデータに基づいて共用ディ
スクからデータ項目を読出す。共用ディスクからデータ項目を読出した後、ディ
スクコントローラはデータ項目を要求ノードに送る。
【0024】 一実施例では、読出要求とデータ項目がコピーされるべきバッファキャッシュ
アドレスとを識別するI/O宛先ハンドルが発生される。I/O宛先ハンドルは
、ディスクコントローラから要求ノードへのデータ項目の送信および処理を容易
にするためにディスクコントローラに送られる。
【0025】 要求されたデータを識別するデータを管理ノードからディスクコントローラへ
と直接的に転送する(「I/O転送」)結果として、機能停止の持続期間が低減
し、システムの資源に対するコンテンションが低減し、コンテキスト切換がなく
なる。
【0026】
【好ましい実施例の詳細な説明】
この発明を、同じ参照番号が同様の要素を指す添付の図面において限定的では
なく例示的に示す。
【0027】 キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるI/O転
送のための方法および装置を説明する。以下の説明において、説明の目的のため
に数多くの具体的な細部が記載されてこの発明の完全な理解を与える。しかしな
がら、この発明がこれらの具体的な細部なしで実行され得ることは当業者には明
らかであろう。他の例では、この発明を不必要に不明瞭にすることを避けるため
に周知の構造および装置がブロック図に示される。
【0028】 ハードウェア全体像 図3はこの発明の実施例に従うキャッシュコヒーレンス共用ディスクコンピュ
ータシステム300を示す。
【0029】 第1のノード302がプロセッサ304および306、ネットワークドライバ
308、I/Oコントローラ310ならびにバッファキャッシュ312を含む。
ローカルバス316がプロセッサ304および306、ネットワークドライバ3
08、I/Oコントローラ310ならびにバッファキャッシュ312を相互接続
する。
【0030】 第2のノード322がプロセッサ324および326、ネットワークドライバ
328、I/Oコントローラ330ならびにバッファキャッシュ332を含む。
ローカルバス336がプロセッサ324および326、ネットワークドライバ3
28、I/Oコントローラ330ならびにバッファキャッシュ332を相互接続
する。
【0031】 第1のノード302は、ネットワークドライバ308をネットワークドライバ
328に相互接続するシステムエリアネットワーク350によって第2のノード
322に結合される。バッファキャッシュ312内のI/O宛先ハンドル314
はバッファキャッシュ312内の宛先メモリアドレスを識別するデータを含む。
同様に、バッファキャッシュ332内のI/O宛先ハンドル334はバッファキ
ャッシュ332内の宛先メモリアドレスを識別するデータを含む。
【0032】 システム300はディスクコントローラ360を含む。ディスクコントローラ
360はローカルバス362によってディスク364およびディスク366に結
合される。同様に、ディスクコントローラ370はローカルバス372によって
ディスク374およびディスク376に結合される。ディスク364、366、
374および376は各々データブロック(それぞれ368、369、378お
よび379)を含む。ディスクコントローラ360および370はI/Oネット
ワーク355によって接続される。I/Oネットワーク355はまたそれぞれI
/Oコントローラ310および330によって第1のノード302および第2の
ノード322を相互接続する。
【0033】 システム300におけるキャッシュコヒーレンス管理の課題は各ノードにおけ
るプロセッサが実行する1組の処理である。たとえば、第1のノード302内の
プロセッサ304および306が実行する処理はデータブロック368および3
69を管理する。同様に、第2のノード322内のプロセッサ324および32
6が実行する処理はデータブロック378および379を管理する。
【0034】 図4はキャッシュコヒーレント共用ディスクコンピュータシステム400のた
めの代替的な実施例を示す。システム400において、2つのデータブロック1
52および154を含むディスク150がローカルバス145によってディスク
コントローラ140に相互接続される。ディスクコントローラ140はI/Oネ
ットワーク135によって第1のノード190および第2のノード192に相互
接続される。
【0035】 第1のノード190はプロセッサ102、バッファキャッシュ104およびキ
ャッシュコヒーレンスマネージャ106を含む。バッファキャッシュ104はI
/O宛先ハンドル314を内蔵する。ローカルバス108がプロセッサ102、
バッファキャッシュ104およびキャッシュコヒーレンスマネージャ106を相
互接続する。
【0036】 同様に、第2のノード192はプロセッサ112、バッファキャッシュ114
およびキャッシュコヒーレンスマネージャ116を含む。バッファキャッシュ1
14はI/O宛先ハンドル334を内蔵する。ローカルバス118がプロセッサ
112、バッファキャッシュ114およびキャッシュコヒーレンスマネージャ1
16を相互接続する。
【0037】 システム400内のノードはシステムエリアネットワーク130によって相互
接続される。たとえば、第1のノードおよび第2のノード192は、プロセッサ
102および112ならびにキャッシュコヒーレンスマネージャ106および1
16を相互接続するシステムエリアネットワーク130によって結合される。
【0038】 システム300に類似しているが、システム400はシステム300とは異な
る。すなわち、システム300はソフトウェアベースのキャッシュコヒーレンス
管理システムであり、キャッシュコヒーレンス管理が各ノードに関連したプロセ
ッサによって実行される一連の処理であることを意味するが、システム400は
特にキャッシュコヒーレンス管理のために用いられる専用ハードウェアを有する
【0039】 以下の説明を簡単にするために、「要求ノード」および「管理ノード」という
用語が「第1のノード」および「第2のノード」という用語と互換的に用いられ
る。「要求ノード」は読出要求を開始したノードを機能上特定するが、「管理ノ
ード」は要求されたデータ項目のキャッシュコヒーレンス管理の責任を有するノ
ードを機能上特定する。しかしながら、ここに説明されるキャッシュコヒーレン
ス共用ディスクコンピュータシステムにおけるどのノードが要求ノードまたは送
りノードであってもよいことが当業者には明らかであろう。
【0040】 動作全体像 この発明の一実施例に従うと、要求ノード内で実行する処理はデータ項目を要
求する前にデータ項目を受取るためのメモリを割当てる。次に、要求ノードはデ
ータ項目の要求により割当てられたメモリの場所を識別するデータ(「I/O宛
先ハンドル」)を要求されたデータ項目を管理するノードに送る。管理ノードは
次に、データ項目を含むディスクに、I/O宛先ハンドルが識別する場所へと直
接的にデータ項目を送らせる。
【0041】 一実施例では、要求ノードは要求されたデータ項目の論理アドレス(たとえば
、資源名)を要求されたデータ項目の物理アドレスへと変換する。他の実施例で
は、管理ノードが要求されたデータ項目の論理アドレスを物理アドレスへと変換
する。さらに他の実施例では、要求ノードおよび管理ノードの両方が要求された
データ項目の論理アドレスを物理アドレスに変換する。さらに他の実施例では、
ディスクコントローラが論理アドレスを物理アドレスへと変換することができる
であろう。上の実施例のいずれにおいても、変換工程はオペレーティングシステ
ムの呼出、I/Oサブシステムの呼出または他のプロセスによって開始され得る
であろう。
【0042】 I/O宛先ハンドルの発生 図3および図4に示すI/O宛先ハンドル314および334は各々、データ
ブロックがコピーされるべきバッファキャッシュ(たとえば、バッファキャッシ
ュ312、332、104または114)内の要求されたデータブロックのため
の宛先メモリアドレスを識別するデータを含む。たとえば、I/O宛先ハンドル
314はデータ「0001E200F000」によって要求ノード302とバッ
ファキャッシュ312内の宛先メモリアドレスE200F000を識別すること
ができるであろう。先行例では、初めの2バイトが要求ノードを識別し、次の4
バイトが特定のメモリアドレスを識別する。
【0043】 代替的実施例では、I/O宛先ハンドル314および334が宛先メモリアド
レスおよび状態情報を含む。状態情報は特定のI/O要求を一意に識別するため
に用いられるタイムスタンプまたは他の情報を含み得るであろう。たとえば、先
行するI/O宛先ハンドル314「0001E200F000」は読出要求のた
めの時点またはシーケンス番号を表わすために3バイト「2A0234」をその
最後に添えていた可能性があるだろう。加えて、I/O宛先ハンドルはI/O宛
先ハンドルの認証または正確さを検証するためにチェックサムを含み得るであろ
う。
【0044】 一実施例に従うと、I/O宛先ハンドル314および334はオペレーティン
グシステムの呼出またはIOサブシステムの呼出によって発生される。一実施例
では、IO宛先ハンドルの発生は事象の発生時に暗黙のうちに行なわれる。他の
実施例では、I/O宛先ハンドルの発生は機能呼出によって明らかに行なわれる
。たとえば、処理がプロセッサ304上で開始され、処理がデータブロック37
9の読出を要求すれば、そのプロセスにおける読出要求が、バッファキャッシュ
312内の特定の宛先メモリアドレスのためにI/O宛先ハンドル314を発生
するオペレーティングシステムの呼出を引き起こす。
【0045】 代替的実施例では、I/O宛先ハンドル(たとえば、I/O宛先ハンドル31
4)はキャッシュコヒーレンス管理に責任を有する局所装置(たとえば、キャッ
シュコヒーレンスマネージャ106またはプロセッサ304によって発生される
。局所装置は、読出要求において明白であるか暗黙であるオペレーティングシス
テムの呼出またはI/Oサブシステムの呼出を行なうであろう。I/O宛先ハン
ドルは、管理ノードおよびディスクコントローラを通るときにデータ(たとえば
、状態情報)を添付し、除去しているかもしれない。
【0046】 別の実施例では、バッファキャッシュ(たとえば、バッファキャッシュ312
)内のデータブロックのために予約されているメモリの量をデータブロック(た
とえば、データブロック379)の最大サイズで割算した結果がpである、p個
のメモリアドレスを含むバンクがI/O宛先ハンドルを発生するために用いられ
得るであろう。I/O宛先ハンドルは特定のサイズ(少なくともデータブロック
のサイズ)のバッファキャッシュ内のメモリブロックを指すであろう。I/O宛
先ハンドルが発生されると、それは未解決のI/O要求に対応しないp個のメモ
リアドレスのバンクから選択される。p個のメモリアドレスのバンクにおける未
解決または現在割当てられていないメモリアドレスを識別するために状態フラグ
が用いられ得るであろう。このように、特定のI/O宛先ハンドルでのデータブ
ロックが到着すると、データブロックはバッファキャッシュ内の適切な場所へと
コピーされ得る。読出要求を開始した処理が終了すると、メモリアドレスは有効
メモリアドレスのバンクに戻されるであろう。
【0047】 I/O転送 図5に示す通信流れ図を参照すると、データに対する要求を含む第1のメッセ
ージが、要求処理を実行する要求ノードから要求されたデータを管理する責任を
有する管理ノードへと渡される。管理ノードは要求ノードから第1のメッセージ
を受取り、要求されたデータに対するロックを要求ノードに許可する。管理ノー
ドは第2のメッセージをディスクコントローラに転送する。ディスクコントロー
ラは第2のメッセージを受取り、要求されたデータを共有ディスクから、I/O
割当ハンドルが識別する要求ノード内の場所へとコピーする。
【0048】 I/O宛先ハンドルは要求されたデータに添えられてもよく、要求されたデー
タとは別に送られてもよい。一実施例では、I/O宛先ハンドルは要求ノードか
ら管理ノードへのI/O要求に添えられ、I/O要求とは別に管理ノードからデ
ィスクコントローラへと送られる。
【0049】 他の実施例に従うと、I/O宛先ハンドルは未解決の読出要求を一意に識別す
るので、要求されたデータがディスクコントローラから要求ノードに到着し、バ
ッファキャッシュ内の特定の記憶場所に与えられると、要求されたデータが到着
したという事実がロック要求の許可を示す。したがって、ロック許可をディスク
コントローラから要求ノードへの通信において送ることが必要ではない。代替的
実施例では、ロック許可が要求ノードによって必要とされれば、管理ノードがロ
ック許可を(I/O要求の転送とは別に)要求ノードに戻すことができるか、ま
たはディスクコントローラがロック許可を要求ノードに送ることができるであろ
う。
【0050】 例 図3および図6を参照して、要求ノード302上でプロセッサ304が開始す
る処理がディスク376上にあるデータブロック379を要求する(ステップ6
05)状況を考える。上述のように、データブロック379は管理ノード322
内のプロセッサ324および326に対して実行する処理によって管理される。
【0051】 ステップ610において、プロセッサ304はデータブロック379の受取り
のためにバッファキャッシュ312の一部を割当てる。ステップ615において
、I/O宛先ハンドル314が要求ノード302内においてオペレーティングシ
ステムの呼出によって発生される。I/O宛先ハンドルはステップ610におい
てデータブロック379のために割当てられたバッファキャッシュ312の部分
を識別する。次にステップ620において、ロック要求、読出要求およびI/O
宛先ハンドル314を含むIO要求が要求ノード302からネットワークドライ
バ308によって管理ノード322に送られる。
【0052】 ステップ625において、管理ノード322内のネットワークドライバ328
が要求ノード302内のネットワークドライバ308からI/O要求を受取る。
管理ノード322内のプロセッサ324がビジーではなく、プロセッサ326が
ビジーであると想定する。(両方のプロセッサがビジーであれば、そのプロセッ
サの一方、通常は管理ノード322内のデフォルトのプロセッサがI/O要求を
処理するタスクを割当てられるであろう。)管理ノード322内のプロセッサ3
24はステップ630において要求ノード302にロック要求を許可し、ステッ
プ632において、管理ノード322が要求されたデータの論理アドレスを物理
アドレスに変換する。(物理アドレスは論理アドレスではなくI/O要求ととも
に送られる。)次にステップ635において、管理ノード322はI/Oコント
ローラ330を介してI/O要求をディスクコントローラ370に転送する。I
/Oネットワーク355の構成の中には、I/O要求が解体され、I/O宛先ハ
ンドル314が別個のメッセージで送られ得るものもある。
【0053】 ステップ640において、ディスクコントローラ370は管理ノード322内
のI/Oコントローラ330からI/O要求(およびI/O宛先ハンドル314
)を受取る。次にステップ645において、ディスクコントローラ370はデー
タブロック379をフェッチすることによってI/O要求を処理する。ステップ
650において、ディスクコントローラ370は、要求ノード312内のバッフ
ァキャッシュ312にアドレス指定されたデータブロック379をI/O宛先ハ
ンドル314とともに送る。
【0054】 ステップ655において、要求ノード302内のコントローラ310がデータ
ブロック379を受取る。データブロック379はI/Oコントローラ310に
よって処理され、ステップ660において、それは、データブロック379をバ
ッファキャッシュ312のI/O宛先ハンドル314によって識別されたアドレ
スへと移動する。I/O要求を開始したプロセッサ304はステップ665にお
いてI/Oコントローラ310によってデータブロック379の到着を通知され
、処理が完了する。
【0055】 上述の実施例において、データブロック379の到着は要求ノード302が発
生したロック要求が許可されたことを意味することに注意されたい。しかしなが
ら、代替的実施例において、ロック許可はディスクコントローラ370または管
理ノード322によって明らかに要求ノード302に与えられ得るであろう。
【0056】 以上において、この発明はその具体的実施例を参照して説明された。しかしな
がら、この発明のより広い趣旨および範囲から逸脱せずにさまざまな変更および
変化が行なわれ得ることが明らかである。たとえば、ここに説明されたI/O要
求は、実現される特定のキャッシュコヒーレンスプロトコルに特定的なネットワ
ークおよびプロトコルヘッダ、チェクサムならびに状態情報のような付加的情報
を含んでもよい。加えて、I/O宛先ハンドルはバッファキャッシュまたは可変
長タイムスタンプまたはシーケンス番号における可変量のノード、可変長のアド
レス空間(たとえば、16、48または64ビットのアドレス)を識別するため
に上に述べられたバイトの数よりも多くまたは少なく含んでもよい。さらに、特
定の構成を有する2つのキャッシュコヒーレンス共用ディスクコンピュータシス
テムが例示の目的のために説明された。他の構成のキャッシュコヒーレンス共用
ディスクコンピュータシステム(たとえば、共用メモリ並列プロセッサを用いる
システム)もまたI/O転送から利益を得ることが明らかであろう。したがって
、明細書および図面は限定的な意味合いではなく例示的なものとして見られるべ
きである。
【図面の簡単な説明】
【図1】 従来のキャッシュコヒーレンス共用ディスクコンピュータシステ
ムのブロック図である。
【図2】 従来のキャッシュコヒーレンスプロトコルのための通信経路を示
すフロー図である。
【図3】 この発明の実施例に従うキャッシュコヒーレンス共用ディスクコ
ンピュータシステムのブロック図である。
【図4】 この発明の代替的実施例に従うキャッシュコヒーレンス共用ディ
スクコンピュータシステムのブロック図である。
【図5】 この発明の実施例に従うキャッシュコヒーレンスプロトコルのた
めの通信経路を示すフロー図である。
【図6】 この発明の実施例に従うデータ要求を扱うための工程を示すフロ
ー図である。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年4月6日(2000.4.6)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0019
【補正方法】変更
【補正内容】
【0019】 Hill他のアプローチの問題は、情報を与えられたプログラミングモデルは機能
停止の頻度を低減できるが、それらは根底にある問題、すなわち機能停止の持続
に対処していない。 Mohan C.による「マルチシステム共用ディスクトランザクション環境における
効率的ロッキングおよびキャッシュング("Efficient locking and caching of
data in the multisystem shared disks transaction environment")」、19 92年3月23日、第453−468頁、XP−002055779では、大域
的ロックマネージャおよび局所的ロックマネージャを用いるロッキング方法が開
示されている。
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年4月6日(2000.4.6)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0018
【補正方法】変更
【補正内容】
【0018】 可能な解決法 要求処理の機能停止の問題を解決する1つのアプローチが、M. D. Hillおよび
J. R. Larusによる「マルチプロセッサプログラマのためのキャッシュ研究(“C
ache Considerations for Multiprocessor Programmers”)」、ACM通信(“
Communications of The ACM”)、第33巻、第8号、1990年8月、第97 −102頁に取上げられている。この論文において、HillおよびLarusは、機能 停止の問題が共用ディスクの余分なアクセス(読出)を回避するようにバッファ
キャッシュに特別の注意を払うプログラミング技術によって少なくとも部分的に
緩和され得ることを示唆している。4つのメモリモデルが提案され、単一プロセ
ッサおよびマルチプロセッサのプログラミングのための規則が示唆されている。
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正内容】
【0020】 もう1つのアプローチが、J. B. Carter、J. K. Bennett、およびW. Zwaenepo
elによる「分散型共用メモリシステムにおける整合性に関連した通信を低減する
ための技術(“Techniques for Reducing Consistency-Related Communication
in Distributed Shared-Memory Systems”)」、ACMコンピュータシステム会
報(“ACM Transactions on Computer Systems”)、第13巻、第3号、199
5年8月、第205−243頁において提案されている。この論文において、Ca
rter他は、ある処理におけるバッファ処理およびマージ更新が共用データ(すな
わち、ディスク150、またはバッファキャッシュ104および114間に分散
されるデータブロック154)への書込のレイテンシをマスクし、更新作業のた
めの全体のオーバーヘッドを効果的に低減すると示唆している。Carter他のアプ
ローチは通信の頻度、したがって機能停止の頻度を低減することに向けられてい
る。Carter他のアプローチは(機能停止が「一括」更新の数にわたって分けられ
るならば)機能停止の有効コストを低減するが、機能停止の個々のコストはより
高くなる可能性がある。たとえば、読出要求が直ちに必要であれば、Carter他の
アプローチは不十分である。なぜなら、十分な数の要求が集まるまで読出要求を
待ち行列に入れる結果として機能停止の持続期間がより長くなるためである。
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】0041
【補正方法】変更
【補正内容】
【0041】 一実施例では、要求ノードは要求されたデータ項目の論理アドレス(たとえば
、資源名)を要求されたデータ項目の物理アドレスへと変換する。他の実施例で
は、管理ノードが要求されたデータ項目の論理アドレスを物理アドレスへと変換
する。さらに他の実施例では、要求ノードおよび管理ノードの両方が要求された
データ項目の論理アドレスを物理アドレスに変換する。さらに他の実施例では、
ディスクコントローラが論理アドレスを物理アドレスへと変換する。上の実施例
のいずれにおいても、変換工程はオペレーティングシステムの呼出、I/Oサブ
システムの呼出または他のプロセスによって開始され得る。
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】0043
【補正方法】変更
【補正内容】
【0043】 代替的実施例では、I/O宛先ハンドル314および334が宛先メモリアド
レスおよび状態情報を含む。状態情報は特定のI/O要求を一意に識別するため
に用いられるタイムスタンプまたは他の情報を含み得る。たとえば、先行するI
/O宛先ハンドル314「0001E200F000」は読出要求のための時点
またはシーケンス番号を表わすために3バイト「2A0234」をその最後に添
えていた可能性がある。加えて、I/O宛先ハンドルはI/O宛先ハンドルの認
証または正確さを検証するためにチェックサムを含み得る。
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0046
【補正方法】変更
【補正内容】
【0046】 別の実施例では、バッファキャッシュ(たとえば、バッファキャッシュ312
)内のデータブロックのために予約されているメモリの量をデータブロック(た
とえば、データブロック379)の最大サイズで割算した結果がpである、p個
のメモリアドレスを含むバンクがI/O宛先ハンドルを発生するために用いられ
得る。I/O宛先ハンドルは特定のサイズ(少なくともデータブロックのサイズ
)のバッファキャッシュ内のメモリブロックを指すであろう。I/O宛先ハンド
ルが発生されると、それは未解決のI/O要求に対応しないp個のメモリアドレ
スのバンクから選択される。p個のメモリアドレスのバンクにおける未解決また
は現在割当てられていないメモリアドレスを識別するために状態フラグが用いら
れ得る。このように、特定のI/O宛先ハンドルでのデータブロックが到着する
と、データブロックはバッファキャッシュ内の適切な場所へとコピーされ得る。
読出要求を開始した処理が終了すると、メモリアドレスは有効メモリアドレスの
バンクに戻されるであろう。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0049
【補正方法】変更
【補正内容】
【0049】 他の実施例に従うと、I/O宛先ハンドルは未解決の読出要求を一意に識別す
るので、要求されたデータがディスクコントローラから要求ノードに到着し、バ
ッファキャッシュ内の特定の記憶場所に与えられると、要求されたデータが到着
したという事実がロック要求の許可を示す。したがって、ロック許可をディスク
コントローラから要求ノードへの通信において送ることが必要ではない。代替的
実施例では、ロック許可が要求ノードによって必要とされれば、管理ノードがロ
ック許可を(I/O要求の転送とは別に)要求ノードに戻すことができるか、ま
たはディスクコントローラがロック許可を要求ノードに送ることができる。
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0056
【補正方法】削除
【手続補正書】
【提出日】平成13年1月19日(2001.1.19)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SZ,UG,ZW),EA(AM ,AZ,BY,KG,KZ,MD,RU,TJ,TM) ,AL,AM,AT,AU,AZ,BA,BB,BG, BR,BY,CA,CH,CN,CU,CZ,DE,D K,EE,ES,FI,GB,GD,GE,GH,GM ,HR,HU,ID,IL,IS,JP,KE,KG, KP,KR,KZ,LC,LK,LR,LS,LT,L U,LV,MD,MG,MK,MN,MW,MX,NO ,NZ,PL,PT,RO,RU,SD,SE,SG, SI,SK,SL,TJ,TM,TR,TT,UA,U G,UZ,VN,YU,ZW (72)発明者 クロッツ,ボリス アメリカ合衆国、94002 カリフォルニア 州、ベルモント、ワインディング・ウェ イ、1566 Fターム(参考) 5B005 KK13 MM11 5B045 BB34 DD13 【要約の続き】 (「I/O転送」)結果として、機能停止期間が低減 し、システムの資源に対するコンテンションが低減し、 コンテキスト切換がなくなる。

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 キャッシュコヒーレンス共用ディスクコンピュータシステム
    におけるI/O転送のための方法であって、 管理ノードが要求されたデータのための読出要求を受取るステップを含み、前
    記読出要求は要求ノードにおいて開始され、 前記管理ノードが、前記要求ノードが前記要求されたデータを読出すことを許
    す、前記要求されたデータに対するロックの許可を行なうステップと、 前記管理ノードが前記要求されたデータを識別するデータをディスクコントロ
    ーラに転送するステップと、 前記ディスクコントローラが前記要求されたデータを識別する前記データを前
    記管理ノードから受取るステップと、 前記ディスクコントローラが前記要求されたデータを識別する前記データに基
    づいて共用ディスクからデータ項目を読出すステップと、 前記ディスクコントローラが前記データ項目を前記要求ノードに送るステップ
    とを含む、方法。
  2. 【請求項2】 前記要求されたデータが記憶されるべき場所を示す宛先デー
    タを発生するステップをさらに含む、請求項1に記載の方法。
  3. 【請求項3】 前記管理ノードが前記宛先データを受取るステップをさらに
    含む、請求項2に記載の方法。
  4. 【請求項4】 前記読出要求を一意に識別する宛先データを発生するステッ
    プをさらに含む、請求項1に記載の方法。
  5. 【請求項5】 前記要求ノードが、前記読出要求を送る前に、前記要求され
    たデータを受取るために第1のバッファキャッシュの一部を割当てるステップを
    さらに含む、請求項1に記載の方法。
  6. 【請求項6】 データブロックを含む共用ディスクと、 前記共用ディスクに結合され、前記データブロックを要求ノードに送ることに
    よって管理ノードからの第2のメッセージに応答するよう構成されるディスクコ
    ントローラと、 前記ディスクコントローラに結合され、要求されたデータのための第1のメッ
    セージを送るよう構成される前記要求ノードとを含み、前記要求ノードは、 第1のプロセッサと、 前記第1のプロセッサに結合される第1のバッファキャッシュとを含み、 前記ディスクコントローラおよび前記要求ノードに結合され、前記第1のメッ
    セージを受取り、前記要求ノードからのロック要求を許可し、前記第1のメッセ
    ージに基づいて前記第2のメッセージを前記ディスクコントローラに転送するよ
    う構成される前記管理ノードを含み、前記管理ノードは第2のプロセッサを含む
    、装置。
  7. 【請求項7】 前記要求ノードは、前記要求されたデータが記憶されるべき
    場所を示す宛先データを発生するよう構成される、請求項6に記載の装置。
  8. 【請求項8】 前記管理ノードは前記宛先データを受取るよう構成される、
    請求項7に記載の装置。
  9. 【請求項9】 前記要求ノードは前記要求されたデータを一意に識別する宛
    先データを発生するよう構成される、請求項6に記載の装置。
  10. 【請求項10】 前記要求ノードは、前記第1のメッセージを送る前に、前
    記要求されたデータを受取るために前記第1のバッファキャッシュの一部を割当
    てるよう構成される、請求項6に記載の装置。
  11. 【請求項11】 I/O転送のステップを行なうための一連の命令が記憶さ
    れているコンピュータ読出可能媒体であって、前記一連の命令は、 管理ノードが要求されたデータのための読出要求を受取るステップを含み、前
    記読出要求は要求ノードにおいて開始され、 前記管理ノードが、前記要求ノードが前記要求されたデータを読出すことを許
    す、前記要求されたデータに対するロックの許可を行なうステップと、 前記管理ノードが前記要求されたデータを識別するデータをディスクコントロ
    ーラに転送するステップと、 前記ディスクコントローラが前記要求されたデータを識別する前記データを前
    記管理ノードから受取るステップと、 前記ディスクコントローラが前記要求されたデータを識別する前記データに基
    づいて共用ディスクからデータ項目を読出すステップと、 前記ディスクコントローラが前記データ項目を前記要求ノードに送るステップ
    とを含む、コンピュータ読出可能媒体。
  12. 【請求項12】 前記要求されたデータが記憶されるべき場所を示す宛先デ
    ータを発生するステップをさらに含む、請求項11に記載のコンピュータ読出可
    能媒体。
  13. 【請求項13】 前記管理ノードが前記宛先データを受取るステップをさら
    に含む、請求項12に記載のコンピュータ読出可能媒体。
  14. 【請求項14】 前記読出要求を一意に識別する宛先データを発生するステ
    ップをさらに含む、請求項11に記載のコンピュータ読出可能媒体。
  15. 【請求項15】 前記要求ノードが、前記読出要求を送る前に、前記要求さ
    れたデータを受取るために第1のバッファキャッシュの一部を割当てるステップ
    をさらに含む、請求項11に記載のコンピュータ読出可能媒体。
JP2000515231A 1997-10-07 1998-10-05 キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送 Expired - Lifetime JP3748774B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/946,084 US6112281A (en) 1997-10-07 1997-10-07 I/O forwarding in a cache coherent shared disk computer system
US08/946,084 1997-10-07
PCT/US1998/020947 WO1999018510A1 (en) 1997-10-07 1998-10-05 I/o forwarding in a cache coherent shared disk computer system

Publications (2)

Publication Number Publication Date
JP2001519565A true JP2001519565A (ja) 2001-10-23
JP3748774B2 JP3748774B2 (ja) 2006-02-22

Family

ID=25483935

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000515231A Expired - Lifetime JP3748774B2 (ja) 1997-10-07 1998-10-05 キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送

Country Status (8)

Country Link
US (1) US6112281A (ja)
EP (1) EP1021764B1 (ja)
JP (1) JP3748774B2 (ja)
AU (1) AU749592B2 (ja)
CA (1) CA2305510C (ja)
DE (1) DE69803478T2 (ja)
HK (1) HK1028825A1 (ja)
WO (1) WO1999018510A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200623B2 (en) 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US7930278B2 (en) * 1998-02-13 2011-04-19 Oracle International Corporation Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US6058417A (en) 1998-10-23 2000-05-02 Ebay Inc. Information presentation and management in an online trading environment
US6631401B1 (en) * 1998-12-21 2003-10-07 Advanced Micro Devices, Inc. Flexible probe/probe response routing for maintaining coherency
US6490661B1 (en) 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US6370621B1 (en) 1998-12-21 2002-04-09 Advanced Micro Devices, Inc. Memory cancel response optionally cancelling memory controller's providing of data in response to a read operation
US6920475B1 (en) * 1999-04-23 2005-07-19 Oracle International Corporation Communication architecture for distributed computing environment
US6526459B1 (en) * 1999-11-10 2003-02-25 Ati International Srl Allocation of input/output bus address space to native input/output devices
US6389510B1 (en) * 2000-04-25 2002-05-14 Lucent Technologies Inc. Method and apparatus for caching web-based information
US7673229B1 (en) 2000-06-07 2010-03-02 Ebay Inc. Apparatus and method for generating sub-codes to a turbo-encoder
US6785714B1 (en) * 2000-09-28 2004-08-31 Microsoft Corporation System and method for employing slot level locking of a cache
US8458214B1 (en) 2000-11-14 2013-06-04 Ebay Inc. Taxonomy-based database partitioning
US6609126B1 (en) 2000-11-15 2003-08-19 Appfluent Technology, Inc. System and method for routing database requests to a database and a cache
EP1346289A1 (en) * 2000-11-30 2003-09-24 Appfluent Technology, Inc. System and method for delivering dynamic content
US20020107835A1 (en) * 2001-02-08 2002-08-08 Coram Michael T. System and method for adaptive result set caching
US6587921B2 (en) * 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
WO2003027853A1 (en) * 2001-09-21 2003-04-03 Polyserve, Inc. A system and method for synchronisation for enforcing mutual exclusion among multiple negotiators
US7010521B2 (en) * 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
MXPA05002225A (es) * 2002-08-28 2005-09-12 Grass Valley Inc Red de almacenamiento de video con un desempeno mejorado.
EP1546928A4 (en) * 2002-09-18 2008-07-09 Netezza Corp Field-Oriented Pipeline Architecture for a Programmable Data Streaming Processor
JP4100256B2 (ja) * 2003-05-29 2008-06-11 株式会社日立製作所 通信方法および情報処理装置
JP5103823B2 (ja) * 2006-08-18 2012-12-19 富士通株式会社 情報処理装置および入出力要求制御方法
US8510334B2 (en) 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk
US10747298B2 (en) 2017-11-29 2020-08-18 Advanced Micro Devices, Inc. Dynamic interrupt rate control in computing system
US10503648B2 (en) 2017-12-12 2019-12-10 Advanced Micro Devices, Inc. Cache to cache data transfer acceleration techniques
US11210246B2 (en) 2018-08-24 2021-12-28 Advanced Micro Devices, Inc. Probe interrupt delivery

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2533266B2 (ja) * 1991-06-14 1996-09-11 インターナショナル・ビジネス・マシーンズ・コーポレイション 共用デ―タシステムにおけるデ―タ資源のロッキング方法及びシステム間のデ―タロック管理方法
US5535116A (en) * 1993-05-18 1996-07-09 Stanford University Flat cache-only multi-processor architectures

Also Published As

Publication number Publication date
DE69803478T2 (de) 2002-09-26
AU9601898A (en) 1999-04-27
AU749592B2 (en) 2002-06-27
JP3748774B2 (ja) 2006-02-22
DE69803478D1 (de) 2002-02-28
EP1021764B1 (en) 2002-01-09
CA2305510A1 (en) 1999-04-15
US6112281A (en) 2000-08-29
CA2305510C (en) 2005-08-09
HK1028825A1 (en) 2001-03-02
WO1999018510A1 (en) 1999-04-15
EP1021764A1 (en) 2000-07-26

Similar Documents

Publication Publication Date Title
JP3748774B2 (ja) キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送
JP3987162B2 (ja) 読取り−共有トランザクションのための強化ブロッキング・メカニズムを含むマルチプロセス・システム
EP0818732B1 (en) Hybrid memory access protocol in a distributed shared memory computer system
US5749095A (en) Multiprocessing system configured to perform efficient write operations
US5860159A (en) Multiprocessing system including an apparatus for optimizing spin--lock operations
JP3199718B2 (ja) キャッシュ整合性維持方法
JP2819982B2 (ja) 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
JP2780032B2 (ja) マルチプロセッサディジタルデータ処理システム
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
EP0817071B9 (en) A multiprocessing system configured to detect and efficiently provide for migratory data access patterns
US5958019A (en) Multiprocessing system configured to perform synchronization operations
JP4065586B2 (ja) リンクリスト形成方法
KR100335863B1 (ko) 복합 numa/s-coma 시스템과 그 구현 방법
EP0640923A1 (en) System and method to notify an empty status from peer cache units to global storage control unit in a multiprocessor data processing system
JPH1185710A (ja) サーバ装置およびファイル管理方法
EP1906313A1 (en) Memory management in a shared memory system
JP2004213435A (ja) 記憶装置システム
JP2003186742A (ja) ディレクトリ・キャッシュの更新
US6651157B1 (en) Multi-processor system and method of accessing data therein
JPH10214222A (ja) コンピュータシステムをコヒーレントドメインと接続するためのコヒーレンス方法、及びその装置
JP2746530B2 (ja) 共有メモリマルチプロセッサ
EP0489583A2 (en) Multiple processor cache control system
CN108990422A (zh) 一种锁分配的方法、装置和计算设备
JP2006164218A (ja) ストレージシステム及びそのキャッシュ制御方法
US6321304B1 (en) System and method for deleting read-only head entries in multi-processor computer systems supporting cache coherence with mixed protocols

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041202

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050308

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050412

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050701

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050831

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20051108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051129

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091209

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101209

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111209

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111209

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121209

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121209

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131209

Year of fee payment: 8

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term