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

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

Info

Publication number
JP3748774B2
JP3748774B2 JP2000515231A JP2000515231A JP3748774B2 JP 3748774 B2 JP3748774 B2 JP 3748774B2 JP 2000515231 A JP2000515231 A JP 2000515231A JP 2000515231 A JP2000515231 A JP 2000515231A JP 3748774 B2 JP3748774 B2 JP 3748774B2
Authority
JP
Japan
Prior art keywords
node
data item
disk controller
data
request
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.)
Expired - Lifetime
Application number
JP2000515231A
Other languages
English (en)
Other versions
JP2001519565A (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

Images

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)

Description

【0001】
【発明の分野】
この発明は共用ディスクコンピュータシステムに関し、特に、キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるキャッシュコヒーレンス管理に関する。
【0002】
【発明の背景】
キャッシュコヒーレンス共用ディスクコンピュータシステムにおいて、1つ以上の永続的ディスクが複数のノード間で共用され、各ノードがメモリとそのメモリを共用する1つ以上のプロセッサとを含む。各ノードのメモリの一部が、そのノードのプロセッサがアクセスするディスクレジデントデータを一時的に記憶する「バッファキャッシュ」として用いられ得る。
【0003】
ディスク上のデータがノード間で共用されるので、システムには、共用データに対して読出または書込を行う各プロセッサまたは装置がそのデータを矛盾のない状態に保つよう読出または書込を行うことを確実とするように、共用データを管理する必要がある。2つのノードがあるデータ項目を共用する別個の処理を行っており、そのデータ項目のコピーが現在各ノードにある状況を考える。第1のノードがデータ項目のそのコピーを変更し、第2のノードがその変更を通知されなければ、第2のノードはデータ項目の古いものをその処理のために与え、エラーを起こしてしまう。しかしながら、(たとえば、第1のノードにおける更新に応答して第2のノードにおけるデータ項目を更新するか無効にすることによって)データ項目の各コピーを単一の(整合した)データ項目であるように見せかけるようデータ項目を維持する資源管理システムが確立されれば、そのデータ項目は「整合した」または「一貫した」状態にあると言える。
【0004】
各バッファキャッシュはキャッシュコヒーレンスマネージャによって管理される。所与のバッファキャッシュのためのキャッシュコヒーレンスマネージャはそのバッファキャッシュに対するアクセスを制御し、1つ以上のバッファキャッシュ内のデータを一貫したまたは整合した状態に保つ。加えて、各バッファキャッシュは以下により詳細に述べる「局所性」を確立することができる。
【0005】
共用ディスクコンピュータシステムは、1つ以上の共用ディスク上に持続的に記憶される共通のデータベースへのアクセスを多数のユーザまたは処理が必要とし得る、データベースシステムのような演算環境においてよく用いられる。
【0006】
図1はキャッシュコヒーレンス共用ディスクコンピュータシステム100を示す。図1において、2つのデータブロック152および154を含むディスク150がローカルバス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を含む。バッファキャッシュ114は(キャッシュ内データブロック154'と表わされる)データブロック154のコピーを内蔵する。プロセッサ112、バッファキャッシュ114およびキャッシュコヒーレンスマネージャ116はローカルバス118によって相互接続される。
【0009】
図1に示すキャッシュコヒーレンス共用ディスクコンピュータシステム内の第1のノード190および第2のノード192はシステムエリアネットワーク130によって相互接続される。たとえば、システムエリアネットワーク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】
バッファキャッシュを用いると、プロセッサが必要とするデータが将来においてそのプロセッサの近くに置かれる可能性を高めることによって、ディスク150と、相互接続されたプロセッサにおいて開始される処理との間の局所性を作ることができる。キャッシュコヒーレンスマネージャ116を用いて、プロセッサ102上で開始された局所処理は、ディスク150からデータブロック154を連続的に再読出しすることから生じるであろう処理および通信のレイテンシによって遅延される代わりに、隣接するバッファキャッシュ104内にある間にキャッシュ内データブロック154'へのアクセスの時間的局所性を利用することができる。
【0013】
図1において、各キャッシュコヒーレンスマネージャはキャッシュコヒーレンスプロトコルを用いることによって、ディスク150からのデータブロックを整合した状態に保つ。キャッシュコヒーレンスプロトコルは、キャッシュ内データブロック154'が多数のバッファキャッシュに分散されても、各プロセッサ102および112がデータブロック154の類似したまたは整合したコピーにアクセスすることを確実とする。たとえば、キャッシュコヒーレンスマネージャ106は、コピーがバッファキャッシュ104および114内にある間にデータブロック152を整合した状態に保つ。同様に、キャッシュコヒーレンスマネージャ116は、バッファキャッシュ104および114に分散されている間にデータブロック154を整合した状態に保つ。
【0014】
図1に示す共用ディスクコンピュータシステムのためのキャッシュコヒーレンスマネージャ106および116は、バッファキャッシュ104と114との間、プロセッサ102と112との間、ディスク150内のデータブロック152と154との間に局所性を作るのに役立つ。
【0015】
キャッシュコヒーレンス管理
典型的なキャッシュコヒーレンス管理プロトコルのための通信シーケンスを図2に示す。図2において、プロセッサ102が開始する処理がデータブロック154の読出を要求したと想定する。加えて、データブロック154のコピーが現在はバッファキャッシュ104内にないと想定する。さらに、キャッシュコヒーレンス管理システムがデータブロック154のためのキャッシュコヒーレンスマネージャとしてノード192を選択したと想定する。
【0016】
データブロック154が処理によって読出されるために、データブロック154のコピーがバッファキャッシュ104内に配置されなければならない。まず、第1のノード190がロック要求を第2のノード192に渡す。第2のノード192は第1のノード190からロック要求を受取り、ロック要求が有効であれば、ロック許可を第1のノード190に戻す。第1のノード190はロック許可を受取り、データブロック154のコピーのためにバッファキャッシュ104を準備する処理を開始する。第1のノード190は次に読出要求をディスクコントローラ140に渡す。次に、ディスクコントローラ140はディスク150からデータブロック154を読出し、データブロック154のコピーを第1のノード190に送る。第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 Programmers”)」、ACM通信(“Communications of The ACM”)、第33巻、第8号、1990年8月、第97−102頁に取上げられている。この論文において、HillおよびLarusは、機能停止の問題が共用ディスクの余分なアクセス(読出)を回避するようにバッファキャッシュに特別の注意を払うプログラミング技術によって少なくとも部分的に緩和され得ることを示唆している。4つのメモリモデルが提案され、単一プロセッサおよびマルチプロセッサのプログラミングのための規則が示唆されている。
【0019】
Hill他のアプローチの問題は、情報を与えられたプログラミングモデルは機能停止の頻度を低減できるが、それらは根底にある問題、すなわち機能停止の持続に対処していない。
Mohan C.による「マルチシステム共用ディスクトランザクション環境における効率的ロッキングおよびキャッシュング("Efficient locking and caching of data in the multisystem shared disks transaction environment")」、1992年3月23日、第453−468頁、XP−002055779では、大域的ロックマネージャおよび局所的ロックマネージャを用いるロッキング方法が開示されている。
【0020】
もう1つのアプローチが、J. B. Carter、J. K. Bennett、およびW. Zwaenepoelによる「分散型共用メモリシステムにおける整合性に関連した通信を低減するための技術(“Techniques for Reducing Consistency-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、ネットワークドライバ308、I/Oコントローラ310ならびにバッファキャッシュ312を相互接続する。
【0030】
第2のノード322がプロセッサ324および326、ネットワークドライバ328、I/Oコントローラ330ならびにバッファキャッシュ332を含む。ローカルバス336がプロセッサ324および326、ネットワークドライバ328、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および369を管理する。同様に、第2のノード322内のプロセッサ324および326が実行する処理はデータブロック378および379を管理する。
【0034】
図4はキャッシュコヒーレント共用ディスクコンピュータシステム400のための代替的な実施例を示す。システム400において、2つのデータブロック152および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を含む。バッファキャッシュ114はI/O宛先ハンドル334を内蔵する。ローカルバス118がプロセッサ112、バッファキャッシュ114およびキャッシュコヒーレンスマネージャ116を相互接続する。
【0037】
システム400内のノードはシステムエリアネットワーク130によって相互接続される。たとえば、第1のノードおよび第2のノード192は、プロセッサ102および112ならびにキャッシュコヒーレンスマネージャ106および116を相互接続するシステムエリアネットワーク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上で開始され、処理がデータブロック379の読出を要求すれば、そのプロセスにおける読出要求が、バッファキャッシュ312内の特定の宛先メモリアドレスのためにI/O宛先ハンドル314を発生するオペレーティングシステムの呼出を引き起こす。
【0045】
代替的実施例では、I/O宛先ハンドル(たとえば、I/O宛先ハンドル314)はキャッシュコヒーレンス管理に責任を有する局所装置(たとえば、キャッシュコヒーレンスマネージャ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を要求する(ステップ605)状況を考える。上述のように、データブロック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内のプロセッサ324はステップ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に与えられ得るであろう。
【図面の簡単な説明】
【図1】 従来のキャッシュコヒーレンス共用ディスクコンピュータシステムのブロック図である。
【図2】 従来のキャッシュコヒーレンスプロトコルのための通信経路を示すフロー図である。
【図3】 この発明の実施例に従うキャッシュコヒーレンス共用ディスクコンピュータシステムのブロック図である。
【図4】 この発明の代替的実施例に従うキャッシュコヒーレンス共用ディスクコンピュータシステムのブロック図である。
【図5】 この発明の実施例に従うキャッシュコヒーレンスプロトコルのための通信経路を示すフロー図である。
【図6】 この発明の実施例に従うデータ要求を扱うための工程を示すフロー図である。

Claims (27)

  1. 多重ノードコンピュータシステムのデータへのアクセスを管理するための方法であって、
    特定のデータ項目を記憶する不揮発性メモリへのアクセスを有する複数のノードから選択される第1のノードに、前記特定のデータ項目にアクセスする各エンティティが前記特定のデータ項目を整合した状態で保つようアクセスすることを確実にするための責務を割当てるステップを含み、
    前記複数のノードの各ノードは揮発性メモリと、前記揮発性メモリへのアクセスを有する1つまたはそれ以上のプロセッサとを含み、さらに
    前記第1のノードが前記特定のデータ項目に対する読出要求を受取るステップを含み、前記読出要求は前記複数のノードの第2のノードにおいて開始され、さらに
    前記第 1 のノードが、前記第2のノードが前記特定のデータ項目を読み出すことを許可するロックを前記特定のデータ項目に付与するステップと、
    前記第1のノードが、前記特定のデータ項目を記憶する不揮発性メモリを制御するディスクコントローラに、前記特定のデータ項目を識別する送信メッセージを転送するステップと、
    前記ディスクコントローラが、前記第1のノードから前記特定のデータ項目を識別する前記第2のメッセージを受取るステップ
    前記第2のメッセージに応答して、前記ディスクコントローラ
    前記不揮発性メモリから前記特定のデータ項目を読出すステップと、
    前記特定のデータ項目が前記第1のノードによって処理されることなく、前記特定のデータ項目を前記第2のノードに届けるデータ項目返送経路に前記特定のデータ項目を伝達するステップとを行なうステップとを含む、方法。
  2. 前記第2のノードが、前記第2のノードに属する揮発性メモリ中の、前記特定のデータ項目が記憶される場所を示す宛先データを発生するステップをさらに含む、請求項1に記載の方法。
  3. 前記第1のノードが前記第2のノードから前記宛先データを受取るステップと、
    前記第1のノードが前記ディスクコントローラに前記宛先データを転送するステップと、
    前記ディスクコントローラが前記第2のノードの揮発性メモリ中の前記場所に前記特定のデータ項目を届けるステップとをさらに含む、請求項2に記載の方法。
  4. 前記読出要求を一意に識別する宛先データを発生するステップと、
    前記特定のデータ項目が前記ディスクコントローラから前記第2のノードに到着するときに、前記第2のノードが前記宛先データを調べることによって前記特定のデータ項目の読出を許可する前記ロックが付与されていることを判断するステップとをさらに含む、請求項1に記載の方法。
  5. 前記第2のノードが、前記読出要求を伝達する前に、前記特定のデータ項目に対する読出を許可するロックを付与されることなく前記特定のデータ項目を受取るためにバッファキャッシュの一部を割当てるステップをさらに含み、前記バッファキャッシュは前記第2のノードに属する揮発性メモリ中に存在する、請求項1に記載の方法。
  6. 前記データ項目返送経路は前記第1のノードを完全にバイパスする、請求項1に記載の方法。
  7. 前記読出要求は第1の通信ネットワークを通して送られ、前記ディスクコントローラは前記特定のデータ項目を第2の通信ネットワークを通して伝達する、請求項1に記載の方法。
  8. データブロックを含む不揮発性メモリと、
    前記不揮発性メモリに結合されるディスクコントローラとを含み、前記ディスクコントローラは、第1のノードからの送りメッセージに応答して前記第1のノードによってデータブロックが処理されることなく、第2のノードにデータブロックを届けるデータ項目 経路に前記データブロックを送るよう構成され
    前記第2のノードは、第1のプロセッサを含み、かつ前記ディスクコントローラに結合され、前記第1のノードに前記データブロックに対する要求メッセージを送るよう構成され
    前記第1のノードは、前記ディスクコントローラおよび前記第2のノードに結合され、前記第1のノードは前記第2のノードから前記要求メッセージを受取り、前記要求メッセージに応答して、前記ディスクコントローラに前記要求メッセージに基づく前記送りメッセージを転送するよう構成され、前記第1のノードは第2のプロセッサを含み、
    前記要求メッセージは、前記データブロックに対するアクセスの許可を要求し、
    前記第1のノードは、前記第2のノードからの前記要求メッセージに応答して前記データブロックに対するアクセスの許可を付与する、装置。
  9. 前記第2のノードは、前記データブロックが前記第2のノード内記憶される場所を示す宛先データを発生するよう構成される、請求項8に記載の装置。
  10. 前記第1のノードは、前記宛先データを受取って宛先データを前記ディスクコントローラに転送するよう構成される、請求項9に記載の装置。
  11. 前記第2のノードは前記要求メッセージを一意に識別する宛先データを発生するよう構成され、前記宛先データは前記第1のノードに送られ、前記第1のノードは前記宛先データを前記ディスクコントローラに転送し、前記ディスクコントローラは前記宛先データを前記第2のノードに送り返す、請求項8に記載の装置。
  12. 前記第2のノードは、前記第1のプロセッサに結合されるバッファキャッシュをさらに備え、前記第2のノードは、前記要求メッセージを伝達する前に前記データブロックを受取るために前記第1のバッファキャッシュの一部を割当てるよう構成される、請求項8に記載の装置。
  13. 前記第1のノードは、前記データブロックに前記第2のノードに前記データブロックを読出すことを許可するロックを付与することにより、前記第2のノードに前記データブロックへのアクセスの許可を与える、請求項8に記載の装置。
  14. 前記ディスクコントローラは、前記第1のノードを完全にバイパスするデータ項目返送経路に前記データブロックを送るよう構成される、請求項8に記載の装置。
  15. 前記要求メッセージは第1の通信ネットワークを通して送られ、前
    記ディスクコントローラは前記データブロックを第2の通信ネットワークを通して伝達する、請求項8に記載の装置。
  16. 多重ノードコンピュータシステム中のデータにアクセスするための一連の命令が記憶されているコンピュータ読出可能媒体であって、前記一連の命令は以下のステップを行なうための命令を含み、そのステップは
    特定のデータ項目を記憶する不揮発性メモリへのアクセスを有する複数のノードから選択される第1のノードに、前記特定のデータ項目にアクセスする各エンティティが前記特定のデータ項目を整合した状態で保つようアクセスすることを確実にするための責務を割当てるステップを含み、
    前記複数のノードの各ノードは揮発性メモリと、前記揮発性メモリへのアクセスを有する1つまたはそれ以上のプロセッサとを含み、さらに
    前記第1のノードが前記特定のデータ項目に対する読出要求を受取るステップを含み、前記読出要求は前記複数のノードの第2のノードにおいて開始され、さらに
    前記第1のノードが、前記第2のノードに前記特定のデータ項目を読出すことを許可するロックを前記特定のデータ項目に付与するステップと、
    前記第1のノードが、前記特定のデータ項目を記憶する不揮発性メモリを制御するディスクコントローラに、前記特定のデータ項目を識別する送信メッセージを転送するステップと、
    前記ディスクコントローラが、前記第1のノードから前記特定のデータ項目を識別する前記送りメッセージを受取るステップと
    前記送りメッセージに応答して、前記ディスクコントローラが
    前記不揮発性メモリから前記特定のデータ項目を読出すステップと、
    前記特定のデータ項目が前記第1のノードによって処理されることなく、前記特定のデータ項目を前記第2のノードに届けるデータ項目返送経路に前記特定のデータ項目を伝達するステップとを行なうステップとを含む、コンピュータ読出可能媒体。
  17. 前記第2のノードが、前記第2のノードに属する揮発性メモリ中の、前記特定のデータ項目が記憶される場所を示す宛先データを発生するステップを行なうための命令をさらに含む、請求項16に記載のコンピュータ読出可能媒体。
  18. 前記第1のノードが前記第2のノードから前記宛先データを受取るステップと、
    前記第1のノードが前記ディスクコントローラに前記宛先データを転送するステップと、
    前記ディスクコントローラが前記第2のノードの揮発性メモリ中の前記場所に前記特定のデータ項目を届けるステップとを行なうための命令をさらに含む、請求項17に記載のコンピュータ読出可能媒体。
  19. 前記読出要求を一意に識別する宛先データを発生するステップと、
    前記特定のデータ項目が前記ディスクコントローラから前記第2のノードに到着するときに、前記第2のノードが前記宛先データを調べることによって前記特定のデータ項目の読出を許可する前記ロックが付与されているかを判断するステップとを行なうための命令をさらに含む、請求項16に記載のコンピュータ読出可能媒体。
  20. 前記第2のノードが、前記読出要求を伝達する前に、前記特定のデータ項目に対する読出を許可する前記ロックを付与されることなく前記特定のデータ項目を受取るためにバッファキャッシュの一部を割当てるステップを行なうための命令をさらに含み、前記バッファキャッシュは前記第2のノードに属する前記揮発性メモリ中に存在する、請求項16に記載のコンピュータ読出可能媒体。
  21. 前記データ項目返送経路は前記第1のノードを完全にバイパスする、請求項16に記載のコンピュータ読出可能媒体。
  22. 前記読出要求は第1の通信ネットワークを通して送られ、前記ディスクコントローラは前記特定のデータ項目を第2の通信ネットワークを通して伝達する、請求項16に記載のコンピュータ読出可能媒体。
  23. 多重ノードコンピュータシステム中のデータにアクセスするための方法であって、
    第1のノードから第2のノードに、データ項目に対するアクセス要求を送るステップを含み、前記データ項目は前記第1のノードおよび前記第2のノードの両方がアクセスを有する不揮発性メモリに存在し、さらに
    前記第2のノードで前記アクセス要求を受取るステップと、
    前記アクセス要求に応答して、前記第2のノードが前記第1のノードに前記データ項目にアクセスするための許可を与えるステップと、
    前記第2のノードからディスクコントローラに、前記アクセス要求に対応するデータを転送するステップと、
    前記ディスクコントローラにおいて前記アクセス要求に対応する前記データを受取るステップと、
    前記アクセス要求に対応する前記データを受取る前記ディスクコントローラに応答して、前記ディスクコントローラによって前記不揮発性メモリから前記データ項目を読出すステップと、
    前記ディスクコントローラによって、前記第2のノードをバイパスするデータ項目返送経路で前記データ項目を前記第1のノードに伝達するステップとを含む、方法。
  24. 前記第1のノード中の、前記要求されデータが記憶されるバッファキャッシュの場所を示す宛先データを発生するステップと、
    前記第2のノードにおいて前記宛先データを受取るステップと、
    前記第2のノードから前記ディスクコントローラに前記宛先データを転送するステップとをさらに含む、請求項23に記載の方法。
  25. 前記アクセス要求を一意に識別する宛先データを発生するステップをさらに含み、前記宛先データを発生するステップは前記第1のノードによって行なわれ、前記宛先データは前記第1のノードから前記第2のノードに送られ、前記宛先データは前記第2のノードから前記ディスクコントローラに転送され、前記宛先データが前記ディスクコントローラから前記第1のノードに送られることによって、複数のそのまま残っているアクセス要求のうちどのアクセス要求が前記ディスクコントローラによってサービスされているかを前記第1のノードに示す、請求項23に記載の方法。
  26. 前記第1のノードが前記データ項目にアクセスするための許可を付与されていることを、第2のノードは前記第1のノードに直接伝えない、請求項23に記載の方法。
  27. 前記データ項目に対する前記アクセス要求は前記第1のノードによって第1の通信ネットワークを通して送られ、前記データ項目は前記ディスクコントローラから前記第1のノードに向けて第2の通信ネットワークを通して伝達される、請求項23に記載の方法。
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 1997-10-07
US08/946,084 US6112281A (en) 1997-10-07 1997-10-07 I/O forwarding in a cache coherent shared disk computer system
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 JP2001519565A (ja) 2001-10-23
JP3748774B2 true 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
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
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
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
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
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
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
US20040202013A1 (en) * 2001-09-21 2004-10-14 Polyserve, Inc. System and method for collaborative caching in a multinode system
US7010521B2 (en) 2002-05-13 2006-03-07 Netezza Corporation Optimized database appliance
JP4628786B2 (ja) * 2002-08-28 2011-02-09 グラス・バレー(ユー・エス)インコーポレイテッド 増加されたパフォーマンスをもつビデオストレージネットワーク
US7698338B2 (en) * 2002-09-18 2010-04-13 Netezza Corporation 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
CA2305510C (en) 2005-08-09
HK1028825A1 (en) 2001-03-02
WO1999018510A1 (en) 1999-04-15
JP2001519565A (ja) 2001-10-23
AU749592B2 (en) 2002-06-27
US6112281A (en) 2000-08-29
CA2305510A1 (en) 1999-04-15
EP1021764B1 (en) 2002-01-09
AU9601898A (en) 1999-04-27
DE69803478D1 (de) 2002-02-28
EP1021764A1 (en) 2000-07-26

Similar Documents

Publication Publication Date Title
JP3748774B2 (ja) キャッシュコヒーレンス共用ディスクコンピュータシステムにおけるi/o転送
US8024528B2 (en) Global address space management
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US5604882A (en) System and method for empty notification from peer cache units to global storage control unit in a multiprocessor data processing system
JP3987162B2 (ja) 読取り−共有トランザクションのための強化ブロッキング・メカニズムを含むマルチプロセス・システム
US6615319B2 (en) Distributed mechanism for resolving cache coherence conflicts in a multi-node computer architecture
EP1906313B1 (en) Memory management in a shared memory system
JP3900479B2 (ja) システム・メモリに組み込まれるリモート・メモリ・キャッシュを有する不均等メモリ・アクセス(numa)データ処理システム
US7698523B2 (en) Hardware memory locks
US5829052A (en) Method and apparatus for managing memory accesses in a multiple multiprocessor cluster system
US5860159A (en) Multiprocessing system including an apparatus for optimizing spin--lock operations
US6510496B1 (en) Shared memory multiprocessor system and method with address translation between partitions and resetting of nodes included in other partitions
JP3900478B2 (ja) 不均等メモリ・アクセス(numa)コンピュータ・システム及び該コンピュータ・システムを操作する方法
EP0817071B9 (en) A multiprocessing system configured to detect and efficiently provide for migratory data access patterns
JP3924203B2 (ja) マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理
EP0818732B1 (en) Hybrid memory access protocol in a distributed shared memory computer system
WO1995025306A2 (en) Distributed shared-cache for multi-processors
KR20180071967A (ko) 데이터 처리
US6651157B1 (en) Multi-processor system and method of accessing data therein
JP2746530B2 (ja) 共有メモリマルチプロセッサ
CN108990422B (zh) 一种锁分配的方法、装置和计算设备
EP0936551A1 (en) A hierarchical bus simple coma architecture for shared memory multiprocessors
JPH05108481A (ja) マルチプロセツサ制御装置

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