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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/31—Providing disk cache in a specific location of a storage system
- G06F2212/311—In 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
Description
ーレンス共用ディスクコンピュータシステムにおけるキャッシュコヒーレンス管
理に関する。
上の永続的ディスクが複数のノード間で共用され、各ノードがメモリとそのメモ
リを共用する1つ以上のプロセッサとを含む。各ノードのメモリの一部が、その
ノードのプロセッサがアクセスするディスクレジデントデータを一時的に記憶す
る「バッファキャッシュ」として用いられ得る。
に対して読出または書込を行う各プロセッサまたは装置がそのデータを矛盾のな
い状態に保つよう読出または書込を行うことを確実とするように、共用データを
管理する必要がある。2つのノードがあるデータ項目を共用する別個の処理を行
っており、そのデータ項目のコピーが現在各ノードにある状況を考える。第1の
ノードがデータ項目のそのコピーを変更し、第2のノードがその変更を通知され
なければ、第2のノードはデータ項目の古いものをその処理のために与え、エラ
ーを起こしてしまう。しかしながら、(たとえば、第1のノードにおける更新に
応答して第2のノードにおけるデータ項目を更新するか無効にすることによって
)データ項目の各コピーを単一の(整合した)データ項目であるように見せかけ
るようデータ項目を維持する資源管理システムが確立されれば、そのデータ項目
は「整合した」または「一貫した」状態にあると言える。
る。所与のバッファキャッシュのためのキャッシュコヒーレンスマネージャはそ
のバッファキャッシュに対するアクセスを制御し、1つ以上のバッファキャッシ
ュ内のデータを一貫したまたは整合した状態に保つ。加えて、各バッファキャッ
シュは以下により詳細に述べる「局所性」を確立することができる。
記憶される共通のデータベースへのアクセスを多数のユーザまたは処理が必要と
し得る、データベースシステムのような演算環境においてよく用いられる。
す。図1において、2つのデータブロック152および154を含むディスク1
50がローカルバス145によってディスクコントローラ140に接続される。
ディスクコントローラ140はI/Oネットワーク135によって第1のノード
190および第2のノード192に接続される。
ャッシュコヒーレンスマネージャ106を含む。バッファキャッシュ104は(
キャッシュ内データブロック154'と表される)データブロック154のコピ ーを内蔵する。プロセッサ102、バッファキャッシュ104およびキャッシコ
ヒーレントマネージャ106はローカルバス108によって相互接続される。
およびキャッシュコヒーレンスマネージャ116を含む。バッファキャッシュ1
14は(キャッシュ内データブロック154'と表わされる)データブロック1 54のコピーを内蔵する。プロセッサ112、バッファキャッシュ114および
キャッシュコヒーレンスマネージャ116はローカルバス118によって相互接
続される。
1のノード190および第2のノード192はシステムエリアネットワーク13
0によって相互接続される。たとえば、システムエリアネットワーク130はプ
ロセッサ102および112ならびにキャッシュコヒーレンズマネージャ106
および116を相互接続する。
マネージャ106に相互接続するためにさまざまな構成が用いられ得る(たとえ
ば、ローカルバス108)。同様に、第1のノードを第2のノードに相互接続す
るためにさまざまな構成が用いられ得る(たとえば、システムエリアネットワー
ク130)。同様に、第1のノード190、第2のノード192およびディスク
コントローラ140を接続するためにさまざまな構成が用いられ得る(たとえば
、I/Oネットワーク135)。図1に示す相互接続構成は例示的であり、共用
ディスクコンピュータシステムの説明を簡単にするためのものである。
ロセッサの局所性のような多数の異なる形態を取る。空間的局所性は、同時のメ
モリ参照が隣接するまたは近くのメモリアドレスにアクセスする可能性がある場
合に存在すると言われる。時間的局所性は、最近のメモリ参照が再びアクセスさ
れる可能性がある場合に存在すると言われる。さらに、並列演算はプロセッサの
局所性と呼ばれるもう1つの形態の局所性を生むことができる。プロセッサの局
所性は、同時のメモリ参照が(多くの異なるものの代わりに)単一のマルチプロ
セッサから行われる可能性がある場合に存在すると言われる。
てそのプロセッサの近くに置かれる可能性を高めることによって、ディスク15
0と、相互接続されたプロセッサにおいて開始される処理との間の局所性を作る
ことができる。キャッシュコヒーレンスマネージャ116を用いて、プロセッサ
102上で開始された局所処理は、ディスク150からデータブロック154を
連続的に再読出しすることから生じるであろう処理および通信のレイテンシによ
って遅延される代わりに、隣接するバッファキャッシュ104内にある間にキャ
ッシュ内データブロック154'へのアクセスの時間的局所性を利用することが できる。
スプロトコルを用いることによって、ディスク150からのデータブロックを整
合した状態に保つ。キャッシュコヒーレンスプロトコルは、キャッシュ内データ
ブロック154'が多数のバッファキャッシュに分散されても、各プロセッサ1 02および112がデータブロック154の類似したまたは整合したコピーにア
クセスすることを確実とする。たとえば、キャッシュコヒーレンスマネージャ1
06は、コピーがバッファキャッシュ104および114内にある間にデータブ
ロック152を整合した状態に保つ。同様に、キャッシュコヒーレンスマネージ
ャ116は、バッファキャッシュ104および114に分散されている間にデー
タブロック154を整合した状態に保つ。
スマネージャ106および116は、バッファキャッシュ104と114との間
、プロセッサ102と112との間、ディスク150内のデータブロック152
と154との間に局所性を作るのに役立つ。
2に示す。図2において、プロセッサ102が開始する処理がデータブロック1
54の読出を要求したと想定する。加えて、データブロック154のコピーが現
在はバッファキャッシュ104内にないと想定する。さらに、キャッシュコヒー
レンス管理システムがデータブロック154のためのキャッシュコヒーレンスマ
ネージャとしてノード192を選択したと想定する。
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内へと記憶する。
の処理(「要求処理」)が、データブロック154のコピーを待っている間に止
まってしまうことである。これらの条件下で要求処理が停止すると、アプリケー
ションプログラムに著しい性能問題が生じ得る。さらに、同期したコンテキスト
切換が経路2と経路3との間で第1のノード190によって必要とされる。上述
の問題は多量のノードが同じ共用ディスク上のデータにアクセスする場合にさら
に悪化する。たとえば、何千ものノードがディスク150を共用すると、ディス
ク150が何百万ものデータブロックを有し、各ノードが毎分1000個のデー
タブロックを要求することになるかもしれない。これらの条件下では、通信レイ
テンシ、プロセッサ機能停止およびコンテキスト切換が著しい量の処理時間を浪
費するであろう。
援用される、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つのメモリ
モデルが提案され、単一プロセッサおよびマルチプロセッサのプログラミングの
ための規則が示唆されている。
停止の頻度を低減できるが、それらは根底にある問題、すなわち機能停止の持続
に対処していない。
. 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他のアプローチは不十分である。なぜなら、十分な数
の要求が集まるまで読出要求を待ち行列に入れる結果として機能停止の持続期間
がより長くなるためである。
現するための改良された方法および装置が必要である。
送のための方法および装置が提供される。
ノードが要求ノードから読出要求を受取り、要求されたデータへのロックを許可
する。管理ノードは次に要求されたデータを識別するデータをディスクコントロ
ーラに転送する。ディスクコントローラは要求されたデータを識別するデータを
管理ノードから受取り、要求されたデータを識別するデータに基づいて共用ディ
スクからデータ項目を読出す。共用ディスクからデータ項目を読出した後、ディ
スクコントローラはデータ項目を要求ノードに送る。
アドレスとを識別するI/O宛先ハンドルが発生される。I/O宛先ハンドルは
、ディスクコントローラから要求ノードへのデータ項目の送信および処理を容易
にするためにディスクコントローラに送られる。
と直接的に転送する(「I/O転送」)結果として、機能停止の持続期間が低減
し、システムの資源に対するコンテンションが低減し、コンテキスト切換がなく
なる。
なく例示的に示す。
送のための方法および装置を説明する。以下の説明において、説明の目的のため
に数多くの具体的な細部が記載されてこの発明の完全な理解を与える。しかしな
がら、この発明がこれらの具体的な細部なしで実行され得ることは当業者には明
らかであろう。他の例では、この発明を不必要に不明瞭にすることを避けるため
に周知の構造および装置がブロック図に示される。
ータシステム300を示す。
308、I/Oコントローラ310ならびにバッファキャッシュ312を含む。
ローカルバス316がプロセッサ304および306、ネットワークドライバ3
08、I/Oコントローラ310ならびにバッファキャッシュ312を相互接続
する。
328、I/Oコントローラ330ならびにバッファキャッシュ332を含む。
ローカルバス336がプロセッサ324および326、ネットワークドライバ3
28、I/Oコントローラ330ならびにバッファキャッシュ332を相互接続
する。
328に相互接続するシステムエリアネットワーク350によって第2のノード
322に結合される。バッファキャッシュ312内のI/O宛先ハンドル314
はバッファキャッシュ312内の宛先メモリアドレスを識別するデータを含む。
同様に、バッファキャッシュ332内のI/O宛先ハンドル334はバッファキ
ャッシュ332内の宛先メモリアドレスを識別するデータを含む。
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を相互接続する。
るプロセッサが実行する1組の処理である。たとえば、第1のノード302内の
プロセッサ304および306が実行する処理はデータブロック368および3
69を管理する。同様に、第2のノード322内のプロセッサ324および32
6が実行する処理はデータブロック378および379を管理する。
めの代替的な実施例を示す。システム400において、2つのデータブロック1
52および154を含むディスク150がローカルバス145によってディスク
コントローラ140に相互接続される。ディスクコントローラ140はI/Oネ
ットワーク135によって第1のノード190および第2のノード192に相互
接続される。
ャッシュコヒーレンスマネージャ106を含む。バッファキャッシュ104はI
/O宛先ハンドル314を内蔵する。ローカルバス108がプロセッサ102、
バッファキャッシュ104およびキャッシュコヒーレンスマネージャ106を相
互接続する。
およびキャッシュコヒーレンスマネージャ116を含む。バッファキャッシュ1
14はI/O宛先ハンドル334を内蔵する。ローカルバス118がプロセッサ
112、バッファキャッシュ114およびキャッシュコヒーレンスマネージャ1
16を相互接続する。
接続される。たとえば、第1のノードおよび第2のノード192は、プロセッサ
102および112ならびにキャッシュコヒーレンスマネージャ106および1
16を相互接続するシステムエリアネットワーク130によって結合される。
る。すなわち、システム300はソフトウェアベースのキャッシュコヒーレンス
管理システムであり、キャッシュコヒーレンス管理が各ノードに関連したプロセ
ッサによって実行される一連の処理であることを意味するが、システム400は
特にキャッシュコヒーレンス管理のために用いられる専用ハードウェアを有する
。
用語が「第1のノード」および「第2のノード」という用語と互換的に用いられ
る。「要求ノード」は読出要求を開始したノードを機能上特定するが、「管理ノ
ード」は要求されたデータ項目のキャッシュコヒーレンス管理の責任を有するノ
ードを機能上特定する。しかしながら、ここに説明されるキャッシュコヒーレン
ス共用ディスクコンピュータシステムにおけるどのノードが要求ノードまたは送
りノードであってもよいことが当業者には明らかであろう。
求する前にデータ項目を受取るためのメモリを割当てる。次に、要求ノードはデ
ータ項目の要求により割当てられたメモリの場所を識別するデータ(「I/O宛
先ハンドル」)を要求されたデータ項目を管理するノードに送る。管理ノードは
次に、データ項目を含むディスクに、I/O宛先ハンドルが識別する場所へと直
接的にデータ項目を送らせる。
、資源名)を要求されたデータ項目の物理アドレスへと変換する。他の実施例で
は、管理ノードが要求されたデータ項目の論理アドレスを物理アドレスへと変換
する。さらに他の実施例では、要求ノードおよび管理ノードの両方が要求された
データ項目の論理アドレスを物理アドレスに変換する。さらに他の実施例では、
ディスクコントローラが論理アドレスを物理アドレスへと変換することができる
であろう。上の実施例のいずれにおいても、変換工程はオペレーティングシステ
ムの呼出、I/Oサブシステムの呼出または他のプロセスによって開始され得る
であろう。
ブロックがコピーされるべきバッファキャッシュ(たとえば、バッファキャッシ
ュ312、332、104または114)内の要求されたデータブロックのため
の宛先メモリアドレスを識別するデータを含む。たとえば、I/O宛先ハンドル
314はデータ「0001E200F000」によって要求ノード302とバッ
ファキャッシュ312内の宛先メモリアドレスE200F000を識別すること
ができるであろう。先行例では、初めの2バイトが要求ノードを識別し、次の4
バイトが特定のメモリアドレスを識別する。
レスおよび状態情報を含む。状態情報は特定のI/O要求を一意に識別するため
に用いられるタイムスタンプまたは他の情報を含み得るであろう。たとえば、先
行するI/O宛先ハンドル314「0001E200F000」は読出要求のた
めの時点またはシーケンス番号を表わすために3バイト「2A0234」をその
最後に添えていた可能性があるだろう。加えて、I/O宛先ハンドルはI/O宛
先ハンドルの認証または正確さを検証するためにチェックサムを含み得るであろ
う。
グシステムの呼出またはIOサブシステムの呼出によって発生される。一実施例
では、IO宛先ハンドルの発生は事象の発生時に暗黙のうちに行なわれる。他の
実施例では、I/O宛先ハンドルの発生は機能呼出によって明らかに行なわれる
。たとえば、処理がプロセッサ304上で開始され、処理がデータブロック37
9の読出を要求すれば、そのプロセスにおける読出要求が、バッファキャッシュ
312内の特定の宛先メモリアドレスのためにI/O宛先ハンドル314を発生
するオペレーティングシステムの呼出を引き起こす。
4)はキャッシュコヒーレンス管理に責任を有する局所装置(たとえば、キャッ
シュコヒーレンスマネージャ106またはプロセッサ304によって発生される
。局所装置は、読出要求において明白であるか暗黙であるオペレーティングシス
テムの呼出またはI/Oサブシステムの呼出を行なうであろう。I/O宛先ハン
ドルは、管理ノードおよびディスクコントローラを通るときにデータ(たとえば
、状態情報)を添付し、除去しているかもしれない。
)内のデータブロックのために予約されているメモリの量をデータブロック(た
とえば、データブロック379)の最大サイズで割算した結果がpである、p個
のメモリアドレスを含むバンクがI/O宛先ハンドルを発生するために用いられ
得るであろう。I/O宛先ハンドルは特定のサイズ(少なくともデータブロック
のサイズ)のバッファキャッシュ内のメモリブロックを指すであろう。I/O宛
先ハンドルが発生されると、それは未解決のI/O要求に対応しないp個のメモ
リアドレスのバンクから選択される。p個のメモリアドレスのバンクにおける未
解決または現在割当てられていないメモリアドレスを識別するために状態フラグ
が用いられ得るであろう。このように、特定のI/O宛先ハンドルでのデータブ
ロックが到着すると、データブロックはバッファキャッシュ内の適切な場所へと
コピーされ得る。読出要求を開始した処理が終了すると、メモリアドレスは有効
メモリアドレスのバンクに戻されるであろう。
ージが、要求処理を実行する要求ノードから要求されたデータを管理する責任を
有する管理ノードへと渡される。管理ノードは要求ノードから第1のメッセージ
を受取り、要求されたデータに対するロックを要求ノードに許可する。管理ノー
ドは第2のメッセージをディスクコントローラに転送する。ディスクコントロー
ラは第2のメッセージを受取り、要求されたデータを共有ディスクから、I/O
割当ハンドルが識別する要求ノード内の場所へとコピーする。
タとは別に送られてもよい。一実施例では、I/O宛先ハンドルは要求ノードか
ら管理ノードへのI/O要求に添えられ、I/O要求とは別に管理ノードからデ
ィスクコントローラへと送られる。
るので、要求されたデータがディスクコントローラから要求ノードに到着し、バ
ッファキャッシュ内の特定の記憶場所に与えられると、要求されたデータが到着
したという事実がロック要求の許可を示す。したがって、ロック許可をディスク
コントローラから要求ノードへの通信において送ることが必要ではない。代替的
実施例では、ロック許可が要求ノードによって必要とされれば、管理ノードがロ
ック許可を(I/O要求の転送とは別に)要求ノードに戻すことができるか、ま
たはディスクコントローラがロック許可を要求ノードに送ることができるであろ
う。
る処理がディスク376上にあるデータブロック379を要求する(ステップ6
05)状況を考える。上述のように、データブロック379は管理ノード322
内のプロセッサ324および326に対して実行する処理によって管理される。
のためにバッファキャッシュ312の一部を割当てる。ステップ615において
、I/O宛先ハンドル314が要求ノード302内においてオペレーティングシ
ステムの呼出によって発生される。I/O宛先ハンドルはステップ610におい
てデータブロック379のために割当てられたバッファキャッシュ312の部分
を識別する。次にステップ620において、ロック要求、読出要求およびI/O
宛先ハンドル314を含むIO要求が要求ノード302からネットワークドライ
バ308によって管理ノード322に送られる。
が要求ノード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が別個のメッセージで送られ得るものもある。
のI/Oコントローラ330からI/O要求(およびI/O宛先ハンドル314
)を受取る。次にステップ645において、ディスクコントローラ370はデー
タブロック379をフェッチすることによってI/O要求を処理する。ステップ
650において、ディスクコントローラ370は、要求ノード312内のバッフ
ァキャッシュ312にアドレス指定されたデータブロック379をI/O宛先ハ
ンドル314とともに送る。
ブロック379を受取る。データブロック379はI/Oコントローラ310に
よって処理され、ステップ660において、それは、データブロック379をバ
ッファキャッシュ312のI/O宛先ハンドル314によって識別されたアドレ
スへと移動する。I/O要求を開始したプロセッサ304はステップ665にお
いてI/Oコントローラ310によってデータブロック379の到着を通知され
、処理が完了する。
生したロック要求が許可されたことを意味することに注意されたい。しかしなが
ら、代替的実施例において、ロック許可はディスクコントローラ370または管
理ノード322によって明らかに要求ノード302に与えられ得るであろう。
がら、この発明のより広い趣旨および範囲から逸脱せずにさまざまな変更および
変化が行なわれ得ることが明らかである。たとえば、ここに説明されたI/O要
求は、実現される特定のキャッシュコヒーレンスプロトコルに特定的なネットワ
ークおよびプロトコルヘッダ、チェクサムならびに状態情報のような付加的情報
を含んでもよい。加えて、I/O宛先ハンドルはバッファキャッシュまたは可変
長タイムスタンプまたはシーケンス番号における可変量のノード、可変長のアド
レス空間(たとえば、16、48または64ビットのアドレス)を識別するため
に上に述べられたバイトの数よりも多くまたは少なく含んでもよい。さらに、特
定の構成を有する2つのキャッシュコヒーレンス共用ディスクコンピュータシス
テムが例示の目的のために説明された。他の構成のキャッシュコヒーレンス共用
ディスクコンピュータシステム(たとえば、共用メモリ並列プロセッサを用いる
システム)もまたI/O転送から利益を得ることが明らかであろう。したがって
、明細書および図面は限定的な意味合いではなく例示的なものとして見られるべ
きである。
ムのブロック図である。
すフロー図である。
ンピュータシステムのブロック図である。
スクコンピュータシステムのブロック図である。
めの通信経路を示すフロー図である。
ー図である。
停止の頻度を低減できるが、それらは根底にある問題、すなわち機能停止の持続
に対処していない。 Mohan C.による「マルチシステム共用ディスクトランザクション環境における
効率的ロッキングおよびキャッシュング("Efficient locking and caching of
data in the multisystem shared disks transaction environment")」、19 92年3月23日、第453−468頁、XP−002055779では、大域
的ロックマネージャおよび局所的ロックマネージャを用いるロッキング方法が開
示されている。
J. R. Larusによる「マルチプロセッサプログラマのためのキャッシュ研究(“C
ache Considerations for Multiprocessor Programmers”)」、ACM通信(“
Communications of The ACM”)、第33巻、第8号、1990年8月、第97 −102頁に取上げられている。この論文において、HillおよびLarusは、機能 停止の問題が共用ディスクの余分なアクセス(読出)を回避するようにバッファ
キャッシュに特別の注意を払うプログラミング技術によって少なくとも部分的に
緩和され得ることを示唆している。4つのメモリモデルが提案され、単一プロセ
ッサおよびマルチプロセッサのプログラミングのための規則が示唆されている。
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他の
アプローチは不十分である。なぜなら、十分な数の要求が集まるまで読出要求を
待ち行列に入れる結果として機能停止の持続期間がより長くなるためである。
、資源名)を要求されたデータ項目の物理アドレスへと変換する。他の実施例で
は、管理ノードが要求されたデータ項目の論理アドレスを物理アドレスへと変換
する。さらに他の実施例では、要求ノードおよび管理ノードの両方が要求された
データ項目の論理アドレスを物理アドレスに変換する。さらに他の実施例では、
ディスクコントローラが論理アドレスを物理アドレスへと変換する。上の実施例
のいずれにおいても、変換工程はオペレーティングシステムの呼出、I/Oサブ
システムの呼出または他のプロセスによって開始され得る。
レスおよび状態情報を含む。状態情報は特定のI/O要求を一意に識別するため
に用いられるタイムスタンプまたは他の情報を含み得る。たとえば、先行するI
/O宛先ハンドル314「0001E200F000」は読出要求のための時点
またはシーケンス番号を表わすために3バイト「2A0234」をその最後に添
えていた可能性がある。加えて、I/O宛先ハンドルはI/O宛先ハンドルの認
証または正確さを検証するためにチェックサムを含み得る。
)内のデータブロックのために予約されているメモリの量をデータブロック(た
とえば、データブロック379)の最大サイズで割算した結果がpである、p個
のメモリアドレスを含むバンクがI/O宛先ハンドルを発生するために用いられ
得る。I/O宛先ハンドルは特定のサイズ(少なくともデータブロックのサイズ
)のバッファキャッシュ内のメモリブロックを指すであろう。I/O宛先ハンド
ルが発生されると、それは未解決のI/O要求に対応しないp個のメモリアドレ
スのバンクから選択される。p個のメモリアドレスのバンクにおける未解決また
は現在割当てられていないメモリアドレスを識別するために状態フラグが用いら
れ得る。このように、特定のI/O宛先ハンドルでのデータブロックが到着する
と、データブロックはバッファキャッシュ内の適切な場所へとコピーされ得る。
読出要求を開始した処理が終了すると、メモリアドレスは有効メモリアドレスの
バンクに戻されるであろう。
るので、要求されたデータがディスクコントローラから要求ノードに到着し、バ
ッファキャッシュ内の特定の記憶場所に与えられると、要求されたデータが到着
したという事実がロック要求の許可を示す。したがって、ロック許可をディスク
コントローラから要求ノードへの通信において送ることが必要ではない。代替的
実施例では、ロック許可が要求ノードによって必要とされれば、管理ノードがロ
ック許可を(I/O要求の転送とは別に)要求ノードに戻すことができるか、ま
たはディスクコントローラがロック許可を要求ノードに送ることができる。
Claims (15)
- 【請求項1】 キャッシュコヒーレンス共用ディスクコンピュータシステム
におけるI/O転送のための方法であって、 管理ノードが要求されたデータのための読出要求を受取るステップを含み、前
記読出要求は要求ノードにおいて開始され、 前記管理ノードが、前記要求ノードが前記要求されたデータを読出すことを許
す、前記要求されたデータに対するロックの許可を行なうステップと、 前記管理ノードが前記要求されたデータを識別するデータをディスクコントロ
ーラに転送するステップと、 前記ディスクコントローラが前記要求されたデータを識別する前記データを前
記管理ノードから受取るステップと、 前記ディスクコントローラが前記要求されたデータを識別する前記データに基
づいて共用ディスクからデータ項目を読出すステップと、 前記ディスクコントローラが前記データ項目を前記要求ノードに送るステップ
とを含む、方法。 - 【請求項2】 前記要求されたデータが記憶されるべき場所を示す宛先デー
タを発生するステップをさらに含む、請求項1に記載の方法。 - 【請求項3】 前記管理ノードが前記宛先データを受取るステップをさらに
含む、請求項2に記載の方法。 - 【請求項4】 前記読出要求を一意に識別する宛先データを発生するステッ
プをさらに含む、請求項1に記載の方法。 - 【請求項5】 前記要求ノードが、前記読出要求を送る前に、前記要求され
たデータを受取るために第1のバッファキャッシュの一部を割当てるステップを
さらに含む、請求項1に記載の方法。 - 【請求項6】 データブロックを含む共用ディスクと、 前記共用ディスクに結合され、前記データブロックを要求ノードに送ることに
よって管理ノードからの第2のメッセージに応答するよう構成されるディスクコ
ントローラと、 前記ディスクコントローラに結合され、要求されたデータのための第1のメッ
セージを送るよう構成される前記要求ノードとを含み、前記要求ノードは、 第1のプロセッサと、 前記第1のプロセッサに結合される第1のバッファキャッシュとを含み、 前記ディスクコントローラおよび前記要求ノードに結合され、前記第1のメッ
セージを受取り、前記要求ノードからのロック要求を許可し、前記第1のメッセ
ージに基づいて前記第2のメッセージを前記ディスクコントローラに転送するよ
う構成される前記管理ノードを含み、前記管理ノードは第2のプロセッサを含む
、装置。 - 【請求項7】 前記要求ノードは、前記要求されたデータが記憶されるべき
場所を示す宛先データを発生するよう構成される、請求項6に記載の装置。 - 【請求項8】 前記管理ノードは前記宛先データを受取るよう構成される、
請求項7に記載の装置。 - 【請求項9】 前記要求ノードは前記要求されたデータを一意に識別する宛
先データを発生するよう構成される、請求項6に記載の装置。 - 【請求項10】 前記要求ノードは、前記第1のメッセージを送る前に、前
記要求されたデータを受取るために前記第1のバッファキャッシュの一部を割当
てるよう構成される、請求項6に記載の装置。 - 【請求項11】 I/O転送のステップを行なうための一連の命令が記憶さ
れているコンピュータ読出可能媒体であって、前記一連の命令は、 管理ノードが要求されたデータのための読出要求を受取るステップを含み、前
記読出要求は要求ノードにおいて開始され、 前記管理ノードが、前記要求ノードが前記要求されたデータを読出すことを許
す、前記要求されたデータに対するロックの許可を行なうステップと、 前記管理ノードが前記要求されたデータを識別するデータをディスクコントロ
ーラに転送するステップと、 前記ディスクコントローラが前記要求されたデータを識別する前記データを前
記管理ノードから受取るステップと、 前記ディスクコントローラが前記要求されたデータを識別する前記データに基
づいて共用ディスクからデータ項目を読出すステップと、 前記ディスクコントローラが前記データ項目を前記要求ノードに送るステップ
とを含む、コンピュータ読出可能媒体。 - 【請求項12】 前記要求されたデータが記憶されるべき場所を示す宛先デ
ータを発生するステップをさらに含む、請求項11に記載のコンピュータ読出可
能媒体。 - 【請求項13】 前記管理ノードが前記宛先データを受取るステップをさら
に含む、請求項12に記載のコンピュータ読出可能媒体。 - 【請求項14】 前記読出要求を一意に識別する宛先データを発生するステ
ップをさらに含む、請求項11に記載のコンピュータ読出可能媒体。 - 【請求項15】 前記要求ノードが、前記読出要求を送る前に、前記要求さ
れたデータを受取るために第1のバッファキャッシュの一部を割当てるステップ
をさらに含む、請求項11に記載のコンピュータ読出可能媒体。
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)
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)
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 |
-
1997
- 1997-10-07 US US08/946,084 patent/US6112281A/en not_active Expired - Lifetime
-
1998
- 1998-10-05 JP JP2000515231A patent/JP3748774B2/ja not_active Expired - Lifetime
- 1998-10-05 WO PCT/US1998/020947 patent/WO1999018510A1/en active IP Right Grant
- 1998-10-05 CA CA002305510A patent/CA2305510C/en not_active Expired - Lifetime
- 1998-10-05 EP EP98949766A patent/EP1021764B1/en not_active Expired - Lifetime
- 1998-10-05 DE DE69803478T patent/DE69803478T2/de not_active Expired - Lifetime
- 1998-10-05 AU AU96018/98A patent/AU749592B2/en not_active Expired
-
2000
- 2000-10-13 HK HK00106525A patent/HK1028825A1/xx not_active IP Right Cessation
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 |