JP2006505868A - マルチクラスタのロックのための方法および装置 - Google Patents

マルチクラスタのロックのための方法および装置 Download PDF

Info

Publication number
JP2006505868A
JP2006505868A JP2004551763A JP2004551763A JP2006505868A JP 2006505868 A JP2006505868 A JP 2006505868A JP 2004551763 A JP2004551763 A JP 2004551763A JP 2004551763 A JP2004551763 A JP 2004551763A JP 2006505868 A JP2006505868 A JP 2006505868A
Authority
JP
Japan
Prior art keywords
home
remote
lock
cluster
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004551763A
Other languages
English (en)
Inventor
グラスコ・デイビッド・ビー.
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Newisys Inc
Original Assignee
Newisys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Newisys Inc filed Critical Newisys Inc
Publication of JP2006505868A publication Critical patent/JP2006505868A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols

Abstract

【課題】
【解決手段】 コンピュータシステム内でロックおよびロック解除の動作を制御するための方法および装置が提供されている。ホームクラスタは、ホームロック管理部を備える。ホームロック管理部は、ホームクラスタと複数のリモートクラスタのための主ロック管理部であり、複数のリモートクラスタは、リモートキャッシュ一貫性制御部と複数のリモートプロセッサとを備える。ホームロック管理部からロックおよびロック解除コマンドが、ホームキャッシュ一貫性制御部によってリモートキャッシュ一貫性制御部に送信され、リモートプロセッサに転送される。

Description

本発明は、一般に、マルチプロセッサ・システムにおけるデータアクセスに関する。特に、本発明は、マルチクラスタ・アーキテクチャを有するマルチプロセッサ・システムにおいて、キャッシュ一貫性を維持するためロック機構を改善する技術を提供する。
バス・アーキテクチャを用いた従来のコンピュータシステムでは、性能が制限されることから、1つのメモリ空間を有するシステム内の複数のプロセッサを接続するためのポイントツーポイント・アーキテクチャが開発された。一例では、個々のプロセッサが、複数のポイントツーポイント・リンクを介して互いに直接的に接続されて、プロセッサのクラスタを形成することができる。さらに、プロセッサのクラスタが、複数接続されてよい。ポイントツーポイント・リンクは、コプロセッシングおよびマルチプロセッシング機能のための帯域幅を大幅に増大させる。
しかしながら、ポイントツーポイント・アーキテクチャを用いて、1つのメモリ空間を共有するマルチクラスタ・システム内の複数のプロセッサを接続すると、様々な問題が生じる。これらの問題のいくつかは、複数のノードが、共通のタスクに従事する、および/または、共通のデータワードにアクセスしようとする際の調整処理に関連して起きる。しかしながら、ポイントツーポイント・アーキテクチャのためのロック機構には限界がある。したがって、ポイントツーポイント・リンクを用いて接続された複数のプロセッサの複数のクラスタを有するシステムにおけるキャッシュ一貫性のためのロック機構を改善する技術を提供することが望まれている。
本発明によると、マルチプロセッサ・マルチクラスタ・システムにおけるロック機構の効率を向上させるための方法および装置が提供される。本発明の一部の実施形態では、ホームクラスタは、複数のホームノードを備える。ホームノードは、例えば、ホームキャッシュ一貫性制御部、1または複数のホームプロセッサ、ホームメモリ制御部、ホームI/Oブリッジ、およびホームロック管理部を含んでよい。複数のプロセッサを備える各リモートクラスタのリモートキャッシュ一貫性制御部は、ホームロック管理部の制御下で、リモートクラスタのためのローカルロック管理部として機能する。しかしながら、ホームロック管理部は、ホームクラスタの外部のノードを意識してもよいし意識しなくてもよい。コマンドおよび応答は、キャッシュ一貫性制御部を介してクラスタ間でやり取りされる。
様々な実施形態によると、コンピュータシステムが提供されている。そのコンピュータシステムは、複数のホームノードを備えたホームクラスタを備える。なお、ホームノードは、複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む。複数のホームノードの1つは、ロック要求に応じてロックコマンドをすべてのホームノードにブロードキャストするよう構成されたホームロック管理部を備える。ホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続されている。そのコンピュータシステムは、さらに、第1のリモートキャッシュ一貫性制御部と第1の複数のリモートプロセッサとを備えた第1のリモートクラスタを備える。第1のリモートキャッシュ一貫性制御部と第1の複数のリモートプロセッサは、第2のポイントツーポイント・アーキテクチャで相互接続されている。第1のリモートキャッシュ一貫性制御部は、ホ―ムキャッシュ一貫性制御部を介してロックコマンドを受信し、ロックコマンドを第1の複数のリモートプロセッサに転送するよう構成されている。
他の実施形態によると、ホームクラスタを備える別のコンピュータシステムが提供されている。そのホームクラスタは、第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームノードを備える。なお、ホームノードは、複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む。ホームノードの1つは、ホームロック管理部を備える。各ホームノードは、ホームロック管理部の位置をホームロック要求の宛先として指定するホーム構成レジスタを備える。コンピュータシステムは、さらに、第1のリモートキャッシュ一貫性制御部と第1の複数のリモートプロセッサとを備えた第1のリモートクラスタを有する。第1のリモートキャッシュ一貫性制御部および第1の複数のリモートプロセッサは、第2のポイントツーポイント・アーキテクチャで相互接続されており、第1のリモートキャッシュ一貫性制御部は、ホームキャッシュ一貫性制御部と相互接続されており、第1の複数のリモートプロセッサの各々は、第1のリモートキャッシュ一貫性制御部の位置を第1のリモートロック要求の宛先として指定する第1のリモート構成レジスタを備えている。
さらに他の実施形態によると、コンピュータシステムが提供されている。そのコンピュータシステムは、複数のホームノードを有するホームクラスタを備える。なお、ホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む。ホームノードの1つは、ホームロック管理部を備える。そのコンピュータシステムは、さらに、第1のリモートキャッシュ一貫性制御部と第1の複数のリモートプロセッサとを備えた第1のリモートクラスタを有する。第1のリモートキャッシュ一貫性制御部と第1の複数のリモートプロセッサは、第2のポイントツーポイント・アーキテクチャで相互接続されている。第1のリモートキャッシュ一貫性制御部は、ホ―ムキャッシュ一貫性制御部と相互接続されている。第1のリモートキャッシュ一貫性制御部は、第1のリモートクラスタのための第1のリモートロック管理部として機能するよう構成されている。
本発明の一部の態様によると、コンピュータシステム内でロックコマンドを制御する方法が提供されている。その方法は、ホームクラスタ内の複数のホームノードの内の要求ホームノードからロック要求を受信する工程であって、複数のホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む、工程と、ロック要求に応答してロックコマンドをすべてのホームノードにブロードキャストする工程と、ロックコマンドをホームキャッシュ一貫性制御部から第1のリモートクラスタの第1のリモートキャッシュ一貫性制御部に送信する工程であって、第1のリモートクラスタは、第1のリモートキャッシュ一貫性制御部と第2のポイントツーポイント・アーキテクチャで相互接続された複数の第1のリモートプロセッサを含む、工程と、を備える。
本発明の他の態様によると、コンピュータシステム内でロックコマンドを制御する方法が提供されている。その方法は、ホームクラスタ内の複数のホームノードの内の要求ホームノードからロック要求を受信する工程であって、複数のホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む、工程と、ロック要求に応答してロックコマンドをすべてのホームノードにブロードキャストする工程と、ロックコマンドをホームキャッシュ一貫性制御部から第1のリモートクラスタの第1のリモートキャッシュ一貫性制御部に送信する工程であって、第1のリモートクラスタは、第1のリモートキャッシュ一貫性制御部と第2のポイントツーポイント・アーキテクチャで相互接続された複数の第1のリモートプロセッサを含む、工程と、ロックコマンドを複数の第1のリモートプロセッサの各々に転送する工程と、第1のロック完了応答を第1のリモートプロセッサの各々から第1のリモートキャッシュ一貫性制御部に送信する工程であって、第1のロック完了応答は、複数の第1のリモートプロセッサの1つがロックコマンドを受け付けたことを通知する、工程と、第1のリモートクラスタロック完了応答を第1のリモートキャッシュ一貫性制御部からホームキャッシュ一貫性制御部に送信する工程であって、第1のリモートクラスタロック完了応答は、複数の第1のリモートプロセッサの各々がロックコマンドを受け付けたことを通知する、工程と、ホームロック完了応答を各ホームプロセッサからホームロック管理部に送信する工程であって、ホームロック完了応答は、ロックコマンドを受け付けたことを通知する、工程と、第1のリモートクラスタロック完了応答をホームキャッシュ一貫性制御部からホームロック管理部に中継する工程と、ホームロック管理部が、ホームロック完了応答と第1のリモートクラスタロック完了応答とを受信した後に、システムロック完了応答を要求ホームノードに送信する工程と、を備える。
本発明のかかる態様の一部は、さらに、ロック解除要求を要求ホームノードから受信する工程と、ロック解除要求に応答してロック解除コマンドをすべてのホームノードにブロードキャストする工程と、ロック解除コマンドを第1のリモートキャッシュ一貫性制御部に送信する工程と、ロック解除コマンドを複数の第1のリモートプロセッサの各々に転送する工程と、第1のロック解除完了応答を第1のリモートプロセッサの各々から第1のリモートキャッシュ一貫性制御部に送信する工程であって、第1のロック解除完了応答は、複数の第1のリモートプロセッサの1つがロック解除コマンドを受け付けたことを通知する、工程と、第1のリモートクラスタロック解除完了応答を第1のリモートキャッシュ一貫性制御部からホームキャッシュ一貫性制御部に送信する工程であって、第1のリモートクラスタロック解除完了応答は、複数の第1のリモートプロセッサの各々がロック解除コマンドを受け付けたことを通知する、工程と、ホームロック解除完了応答を各ホームプロセッサからホームロック管理部に送信する工程であって、ホームロック解除完了応答は、ロック解除コマンドを受け付けたことを通知する、工程と、第1のリモートクラスタロック解除完了応答をホームキャッシュ一貫性制御部からホームロック管理部に中継する工程と、ホームロック管理部が、ホームロック解除完了応答と第1のリモートクラスタロック解除完了応答とを受信した後に、システムロック解除完了応答を要求ホームノードに送信する工程と、を備える。
本発明の一部の実施形態は、コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータプログラムを提供する。そのコンピュータプログラムは、ロック要求をホームクラスタ内の複数のホームノードの内の要求ホームノードからホームロック管理部に送信する機能であって、複数のホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む、機能と、ロック要求に応答してロックコマンドをホームロック管理部からすべてのホームノードにブロードキャストする機能と、ロックコマンドをホームキャッシュ一貫性制御部から第1のリモートクラスタの第1のリモートキャッシュ一貫性制御部に送信する機能であって、第1のリモートクラスタは、第1のリモートキャッシュ一貫性制御部と第2のポイントツーポイント・アーキテクチャで相互接続された複数の第1のリモートプロセッサを含む、機能と、ロックコマンドを複数の第1のリモートプロセッサの各々に転送する機能と、第1のロック完了応答を第1のリモートプロセッサの各々から第1のリモートキャッシュ一貫性制御部に送信する機能であって、第1のロック完了応答は、複数の第1のリモートプロセッサの1つがロックコマンドを受け付けたことを通知する、機能と、第1のリモートクラスタロック完了応答を第1のリモートキャッシュ一貫性制御部からホームキャッシュ一貫性制御部に送信する機能であって、第1のリモートクラスタロック完了応答は、複数の第1のリモートプロセッサの各々がロックコマンドを受け付けたことを通知する、機能と、ホームロック完了応答を各ホームプロセッサからホームロック管理部に送信する機能であって、ホームロック完了応答は、ロックコマンドを受け付けたことを通知する、機能と、第1のリモートクラスタロック完了応答をホームキャッシュ一貫性制御部からホームロック管理部に中継する機能と、ホームロック管理部が、ホームロック完了応答と第1のリモートクラスタロック完了応答とを受信した後に、システムロック完了応答をホームロック管理部から要求ホームノードに送信する機能と、をコンピュータに実行させる命令を備える。
かかるコンピュータプログラムの一部は、ロック解除要求を要求ホームノードから受信する機能と、ロック解除要求に応答してロック解除コマンドをすべてのホームノードにブロードキャストする機能と、ロック解除コマンドを第1のリモートキャッシュ一貫性制御部に送信する機能と、ロック解除コマンドを複数の第1のリモートプロセッサの各々に転送する機能と、第1のロック解除完了応答を第1のリモートプロセッサの各々から第1のリモートキャッシュ一貫性制御部に送信する機能であって、第1のロック完了応答は、複数の第1のリモートプロセッサの1つがロック解除コマンドを受け付けたことを通知する、機能と、第1のリモートクラスタロック解除完了応答を第1のリモートキャッシュ一貫性制御部からホームキャッシュ一貫性制御部に送信する機能であって、第1のリモートクラスタロック解除完了応答は、複数の第1のリモートプロセッサの各々がロック解除コマンドを受け付けたことを通知する、機能と、ホームロック解除完了応答を各ホームプロセッサからホームロック管理部に送信する機能であって、ホームロック解除完了応答は、ロック解除コマンドを受け付けたことを通知する、機能と、第1のリモートクラスタロック解除完了応答をホームキャッシュ一貫性制御部からホームロック管理部に中継する機能と、ホームロック管理部が、ホームロック解除完了応答と第1のリモートクラスタロック解除完了応答とを受信した後に、システムロック解除完了応答を要求ホームノードに送信する機能と、をコンピュータに実行させる命令を備える。
本発明のさらに別の実施形態は、コンピュータシステムを提供している。そのコンピュータシステムは、第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームプロセッサとホームキャッシュ一貫性制御部とを備えるホームクラスタであって、複数のホームプロセッサの内の1つは、ホームロック管理部を備える、ホームクラスタと、第2のポイントツーポイント・アーキテクチャで相互接続された第1の複数のリモートプロセッサと第1のリモートキャッシュ一貫性制御部とを備える第1のリモートクラスタであって、第1のリモートキャッシュ一貫性制御部は、ホームキャッシュ一貫性制御部と相互接続されており、第1のリモートキャッシュ一貫性制御部は、ホームキャッシュ一貫性制御部を介してホームロック管理部と信号をやり取りすることにより、第1のリモートクラスタロック管理部として機能するよう構成されている、第1のリモートクラスタと、第3のポイントツーポイント・アーキテクチャで相互接続された第2の複数のリモートプロセッサと第2のリモートキャッシュ一貫性制御部とを備える第2のリモートクラスタであって、第2のリモートキャッシュ一貫性制御部は、ホームキャッシュ一貫性制御部と相互接続されており、第2のリモートキャッシュ一貫性制御部は、ホームキャッシュ一貫性制御部を介してホームロック管理部と信号をやり取りすることにより、第2のリモートクラスタロック管理部として機能するよう構成されている、第2のリモートクラスタと、を備える。
本発明の本質および利点については、本明細書の以下の部分と図面とを参照することにより、さらに理解を深めることができる。
ここで、本発明を実施するために発明者が提供する最良の形態を含む本発明のいくつかの具体的な実施形態について、詳細な説明を行う。これら具体的な実施形態の例は、添付の図面に示されている。本発明は、これら具体的な実施形態に関連して説明されているが、説明されている実施形態に本発明を限定する意図はない。逆に、添付の特許請求の範囲によって規定される本発明の趣旨および範囲に含まれうる代替物、変形物、および等価物を網羅するよう意図されている。本発明の具体的な実施形態を実施するには、プロセッサ間でポイントツーポイント通信を行うマルチプロセッサ・アーキテクチャが適している。以下の説明では、本発明の完全な理解を促すために、多くの具体的な詳細事項が説明されている。本発明は、これら具体的な詳細事項の一部またはすべてがなくとも実施可能である。本発明を不必要に分かりにくくしないよう、周知の処理動作については、詳細に説明していない。さらに、本願において、特定の1つの構成要素に対する言及は、特に否定しない限り、本発明の方法および装置が、2以上の構成要素を用いて実施されうる可能性を含む。
マルチプロセッサ・マルチクラスタ・システムにおいて、データアクセスの効率を向上させるための技術が提供されている。ポイントツーポイント・アーキテクチャでは、プロセッサのクラスタは、ポイントツーポイント・リンクを介して互いに直接的に接続された複数のプロセッサを備える。従来の共有バスや外部ネットワークの代わりにポイントツーポイント・リンクを用いることにより、同じメモリ空間を共有するシステム内で、複数のプロセッサが効率的に利用されるようになる。また、従来のバスおよび外部ネットワークに基づくマルチプロセッサ・アーキテクチャにおける帯域幅および待ち時間の制限の多くを回避することにより、処理およびネットワークの効率も改善される。しかしながら、様々な実施形態によると、ポイントツーポイント・アーキテクチャにおけるプロセッサの数の線形的な増加に伴って、複数のプロセッサを接続するために用いられるリンクの数は、指数関数的に増大する。用いられるリンクの数を減らすと共に、ポイントツーポイント・アーキテクチャを用いるマルチプロセッサ・システムをモジュール化するために、複数のクラスタが用いられる。
様々な実施形態によると、複数のプロセッサクラスタが、ポイントツーポイント・アーキテクチャを用いて相互接続される。各プロセッサクラスタは、クラスタ間の通信を行うために用いられるキャッシュ一貫性制御部を備える。各プロセッサクラスタは、任意の適切な数のプロセッサを備えてよい。一実施形態では、プロセッサを接続するために用いられるポイントツーポイント・アーキテクチャは、クラスタの接続にも用いられる。
キャッシュ一貫性制御部を用いることにより、マルチクラスタを必ずしもサポートしない複数のプロセッサを用いて、マルチクラスタ・システムを構築することができる。かかるマルチクラスタ・システムは、ローカルノードが、ローカルクラスタの外部のノードの存在を意識する必要がないように、キャッシュ一貫性制御部を用いて、ローカルトランザクションにおける非ローカルノードを代表させることにより構築されてよい。キャッシュ一貫性制御部については、後に詳細に説明する。
本明細書では、データアクセス要求を順序づけるための任意の機構を直列化ポイントと呼ぶこととする。シングルクラスタ・システムにおいては、すべてのデータアクセス要求を1または複数のかかる直列化ポイントを介して送信することにより、キャッシュ一貫性を維持することができる。直列化ポイントの一例としては、メモリ制御部が挙げられる。メモリ制御部は、ロック管理部として機能してよい。シングルクラスタ・システム内の様々なプロセッサが、データアクセス要求をメモリ制御部に送信してよい。一部の実施形態では、クラスタ内のプロセッサがそれぞれメモリ制御部を備える。一例では、メモリ制御部は、どの時点においても、所与のメモリラインに対する1つのデータアクセス要求のみが許可されるように、データアクセス要求を直列化するよう構成される。他のプロセッサが同じメモリラインへのアクセスを試行すると、そのデータアクセスの試行はブロックされる。メモリ制御部は、マルチプロセッサ・シングルクラスタ・システムにおいてキャッシュ一貫性を維持することを可能にする。
様々なクラスタ内のプロセッサが1つのアドレス空間を共有するマルチプロセッサ・マルチクラスタ・システムにおいて、直列化ポイントを用いることもできる。1つのアドレス空間を用いる場合には、内部のポイントツーポイント・リンクを用いることで、外部ネットワークを利用する従来のマルチクラスタ・システムよりもクラスタ間の通信を大幅に改善することができる。一部の実施形態では、各プロセッサがメモリ制御部を備える。様々なクラスタ内の様々なプロセッサが、特定のクラスタに関連するメモリ制御部に、データアクセス要求を送信する。一部の実施形態では、各クラスタ内のキャッシュ一貫性制御部は、メモリラインが他のクラスタにキャッシュされていることを示すキャッシュディレクトリを備える。メモリ制御部が、キャッシュ一貫性制御部の一部として構成されてよく、異なるクラスタからのすべてのデータ要求を直列化することができる。
しかしながら、マルチプロセッサ・マルチクラスタ・システムにおける直列化ポイントは、マルチプロセッサ・シングルクラスタ・システムにおける直列化ポイントほど効率がよくない場合がある。すなわち、クラスタ間の伝送の待ち時間などの要因に由来する遅延が、様々なデータアクセス要求の応答時間に悪影響を与える可能性がある。遅延は、マルチプロセッサ環境でのプローブの利用によっても生じることに注意されたい。
図1Aは、本発明の技術を利用できるマルチクラスタ・マルチプロセッサ・システムの一例を示す図である。図1Aおよび1Bには、4つの処理クラスタ(「クラスタ」とも呼ぶ)が図示されているが、マルチクラスタ・システムは、任意の適切な数のクラスタを備えてよい。さらに、各クラスタ101、103、105、および107は、プロセッサと、メモリ制御部と、I/Oブリッジと、ロック管理部とを、それぞれ複数備えてよい。クラスタ101、103、105、および107は、ポイントツーポイント・リンク111a−fを介して互いに接続されている。一実施形態では、図1Aに示すマルチクラスタ・アーキテクチャ内の複数のプロセッサは、同じメモリ空間を共有する。この例では、ポイントツーポイント・リンク111a−fは、クラスタ101、103、105、および107内の複数のプロセッサを接続するために、従来のフロントサイドバスの代わりに用いられる内部システム接続である。ポイントツーポイント・リンク111a−fは、任意のポイントツーポイント一貫性プロトコルをサポートしてよい。
図1Bは、本発明の技術を利用できるマルチクラスタ・マルチプロセッサ・システムの別の例を示す図である。各クラスタ121、123、125、および127は、ポイントツーポイント・リンク141a−dを介してスイッチ131に接続されることが可能である。スイッチ131とポイントツーポイント・リンク141a−dとを用いることにより、システム内の複数のクラスタを接続するに当たって、比較的少ないポイントツーポイント・リンクによって実現できることに注意されたい。スイッチ131は、一貫性プロトコル・インターフェースを有するプロセッサを備えてよい。様々な実施例によると、図1Aに示すマルチクラスタ・システムは、図1Bに示すように、スイッチ131を用いて拡張される。
図2は、図1Aに示したクラスタ101のようなマルチプロセッサ・クラスタの一例を示す図である。クラスタ200は、プロセッサ202a−202dと、1または複数の基本入出力システム(BIOS)204と、メモリバンク206a−206dを含むメモリサブシステムと、ポイントツーポイント通信リンク208a−208eと、サービスプロセッサ212とを備える。ポイントツーポイント通信リンク208a−208eは、プロセッサ202a−202d、I/Oスイッチ210、およびキャッシュ一貫性制御部230の間の相互接続を可能にするよう構成されている。サービスプロセッサ212は、図2にリンク214a−214fとして示すJTAGインターフェースを介して、プロセッサ202a−202d、I/Oスイッチ210、およびキャッシュ一貫性制御部230との通信を可能にするよう構成されている。他のインターフェースもサポートされていることに注意されたい。I/Oスイッチ210は、I/Oアダプタ216および220に、システムの他の構成要素を接続する。
具体的な実施形態によると、本発明のサービスプロセッサは、前もって指定されたパーティション化スキーマに従ってシステムリソースをパーティション化する機能を有する。パーティション化は、サ―ビスプロセッサによってシステムプロセッサと関連付けられたルーティングテーブルの直接的な操作を、ポイントツーポイント通信インフラストラクチャによって可能にすることによって実現されてよい。ルーティングテーブルは、様々なシステムリソースを制御および分離するために用いられ、システムリソース間の接続が、テーブル内に定義されている。代表的なサービスプロセッサおよびコンピュータシステムのパーティション化は、2001年8月16日出願の特許出願No.09/932,456「Computer System Partitioning Using Data Transfer Routing Mechanism」(代理人整理番号No.NWISP001)に開示されており、この参照により本明細書に組み込まれる。
プロセッサ202a−dは、さらに、ポイントツーポイント・リンク232a−dを介してキャッシュ一貫性制御部230に接続されている。本明細書では、キャッシュ一貫性を維持しつつ複数のプロセッサクラスタ間の通信を提供するために利用できる任意の機構または装置を、キャッシュ一貫性制御部と呼ぶこととする。キャッシュ一貫性制御部230は、他のマルチプロセッサ・クラスタに関連するキャッシュ一貫性制御部に接続されてもよい。1つのクラスタ内に2以上のキャッシュ一貫性制御部が備えられてもよいことに注意されたい。キャッシュ一貫性制御部230は、ポイントツーポイント・プロトコルを用いて、プロセッサ202a−dとリモートクラスタの両方と通信することが好ましい。
より一般的には、図2に示した具体的なアーキテクチャは例示に過ぎず、本発明の実施形態は、様々な構成およびリソースの相互接続と、図に示したシステムリソースの各々に対する様々な代替物とを含むよう意図されていることを理解されたい。しかしながら、例示のために、クラスタ200の具体的な詳細事項を想定することとする。例えば、図2に示したリソースの大部分は、1つの電子アセンブリに存在すると想定される。さらに、メモリバンク206a−206dは、デュアルインラインメモリモジュール(DIMM)として物理的に提供されるダブルデータレート(DDR)メモリを備えてよい。I/Oアダプタ216は、例えば、永続ストレージデバイスへのアクセスを提供するウルトラダイレクトメモリアクセス(UDMA)制御部またはスモールコンピュータシステムインターフェース(SCSI)制御部であってよい。I/Oアダプタ220は、ローカルエリアネットワーク(LAN)またはインターネットなどのネットワークとの通信を提供するよう適合されたイーサネット(登録商標)カードであってよい。
具体的な実施形態によると、図2に示すように、I/Oアダプタ216および220の両方が、対称的なI/Oアクセスを提供する。すなわち、各々が、同等のセットのI/Oへのアクセスを提供する。当然、かかる構成は、複数のパーティションが同じ種類のI/Oにアクセスするパーティション化スキームを容易にする。しかしながら、I/Oなしのパーティションが形成される実施形態が想定されることも理解されたい。例えば、1または複数のプロセッサと、関連のメモリリソース(すなわち、メモリ複合体)とを備えるパーティションが、そのメモリ複合体を試験する目的で形成されることも可能である。
一実施形態によると、サービスプロセッサ212は、集積チップセット機能を備えるモトローラ社のMPC855Tマイクロプロセッサである。キャッシュ一貫性制御部230は、ローカルのポイントツーポイント一貫性プロトコルをサポートする特定用途向け集積回路(ASIC)である。キャッシュ一貫性制御部230は、さらに、非一貫性プロトコルを扱ってI/Oデバイスとの通信を可能にするよう構成されてもよい。キャッシュ一貫性制御部230は、プログラム可能な論理デバイスやプログラム可能なゲートアレイなど、特別に構成されたプログラム可能なチップである。
また、一部の実施例では、マルチプロセッサ・システム内にサービスプロセッサが備えられないことにも注意されたい。さらに、他のクラスタアーキテクチャが、本発明の範囲に含まれる。例えば、他のアーキテクチャは、より多いもしくは少ないプロセッサ202を備えてもよい。さらに、「ノード」および「プロセッサ」という用語は、本明細書においては、しばしば同じ意味で用いられることに注意されたい。しかしながら、様々な実施形態によると、ノード(例えば、プロセッサ202a−202d)は、複数のサブユニットを備えてよいことを理解されたい。
図2Aは、上述のように複数のサブユニットを含むノードの一例を示す図である。ノード202は、CPU250と、メモリ制御部260と、I/Oブリッジ270とを備える。この実施形態では、メモリ制御部260は、ロック管理部265を備える。ロック管理部265は、後に図7ないし10を参照して詳述するホームロック管理部720の一実施形態である。ロック管理部265は、図2Aに示すようにプロセッサのメモリ管理部の一部であってもよいし、ノードの別の構成要素であってもよい。あるいは、ロック管理部265は、別のノードの一部であってもよいし、別個の制御部など、別個のノードであってもよい。
図3は、キャッシュ一貫性制御部230の一例を示す図である。様々な実施形態によると、キャッシュ一貫性制御部は、マルチプロセッサ・システムの様々なクラスタ内のプロセッサから受信したプローブや要求などのパケットを扱うよう構成されたプロトコルエンジン305を備える。プロトコルエンジン305の機能は、性能を向上させるために、いくつかのエンジンにわたってパーティション化されてよい。一例では、パーティション化は、パケットの種類(要求、プローブ、応答など)、方向(受信および送信)、または、トランザクションフロー(要求フロー、プローブフローなど)に基づいて行われる。
プロトコルエンジン305は、キャッシュ一貫性制御部230が、最近の要求およびプローブなどのトランザクションを追跡して、それらのトランザクションを特定のプロセッサに関連付けることを可能にする保留バッファ309にアクセスする。保留バッファ309に保持されるトランザクション情報は、トランザクション宛先ノード、その後の衝突検出およびプロトコル最適化のための要求のアドレス、応答情報、タグ、状態情報、およびその他の情報を含みうる。
キャッシュ一貫性制御部は、キャッシュ一貫性制御部が、そのクラスタ内および外部のプロセッサクラスタ内の他のプロセッサと通信することを可能にする一貫性プロトコルインターフェース307などのインターフェースを有する。様々な実施形態によると、各インターフェース307および311は、完全クロスバーとして、または、マルチプレクサおよびバッファなどの構成要素を用いた別個の受信および送信装置として実装される。キャッシュ一貫性制御部は、さらに、I/Oデバイスと通信するために、非一貫性プロトコルインターフェース311のような他のインターフェースを備えてよい。しかしながら、キャッシュ一貫性制御部230は、必ずしも、一貫性および非一貫性インターフェースの両方を提供する必要はないことに注意されたい。また、あるクラスタ内のキャッシュ一貫性制御部が、他のクラスタ内のキャッシュ一貫性制御部と通信できることにも注意されたい。
図4は、キャッシュ一貫性制御部を利用しない単一のクラスタを有するシステム内のプロセッサからのキャッシュ要求のためのトランザクションを示す図である。本明細書では、構成要素「XXX−s」は、工程「s」における構成要素XXXを表す。例えば、プロセッサ401−1は、工程1におけるプロセッサ401を意味する。ここで、プロセッサ401−1は、アクセス要求450(メモリライン読み取り要求など)をメモリ制御部403−1に送信する。メモリ制御部403−1は、このプロセッサと関連していてもよいし、クラスタ内の他のノードと関連していてもよい。あるいは、メモリ制御部403−1は、ASICまたは特別に構成されたプログラム可能な論理デバイス(PLD)など、別個の構成要素であってもよい。
キャッシュ一貫性を維持するために、通例は、任意の与えられた時間に、1つのプロセッサだけが、共有アドレス空間に対応するメモリラインへのアクセスを許可される。他のプロセッサが、同じメモリラインへのアクセスを試行しないように、メモリ制御部403−1は、そのメモリラインをロックすることができる。メモリラインがロックされると、そのメモリラインへの他の要求はすべて、ブロックされるか、または、待ち行列に入れられる。他のプロセッサによるアクセスは、通例、メモリ制御部403−1がメモリラインをロック解除した時だけ許可される。
次いで、メモリ制御部403−1は、キャッシュ状態を判定するために、プローブ455、460、および465をローカルキャッシュメモリ405、407、および409に送信する。次に、ローカルキャッシュメモリ405、407、および409は、プローブ応答470、475、および480をプロセッサ401−2に送信する。メモリ制御部403−1は、さらに、アクセス応答485(読み取り応答など)をプロセッサ401−3に送信する。次いで、プロセッサ401−3は、「完了」応答をメモリ制御部403−2に送信して、メモリ制御部403−2が、次の要求のためにメモリラインをロック解除することを可能にすることができる。CPU401−1、CPU401−2、およびCPU401−3は、工程1、2、および3におけるプロセッサ401であることに注意されたい。
図5A−5Dは、キャッシュ一貫性制御部の動作を示す図である。マルチプロセッサ・クラスタでキャッシュ一貫性制御部を利用すると、各クラスタ内のプロセッサや関連のメモリ制御部のようなローカルノードの機能に影響を与えることなく、マルチプロセッサ・マルチクラスタ・一貫性ドメインを作成することができる。一部の例では、プロセッサは、複数のクラスタを許可することなく、単一のクラスタ内の限られた数のプロセッサを許可するプロトコルのみをサポートしてよい。キャッシュ一貫性制御部を用いれば、非ローカルの複数のノードが、キャッシュ一貫性制御部に実装された単一のローカルノードにすぎないと、ローカルプロセッサに認識させることにより、マルチクラスタ・システムを実現することができる。かかる実施形態では、あるクラスタ内のプロセッサは、他のクラスタ内のプロセッサが存在することを意識する必要がない。その代わり、そのクラスタ内のプロセッサは、キャッシュ一貫性制御部がすべての非ローカルノードを代表するかのように、キャッシュ一貫性制御部と通信する。
本明細書では、リモートクラスタ内のノードを、「非ローカルノード」または「リモートノード」と呼んでいることに注意されたい。しかしながら、「非ローカルノード」という用語は、一般的には、要求クラスタ内に存在しないノードを意味するものであり、リモートクラスタ内のノードとホームクラスタ内のノードの両方を含む。本明細書では、データアクセスすなわちキャッシュアクセス要求の送信元であるクラスタを、要求クラスタと呼ぶこととする。本明細書では、メモリ制御部403など、要求を処理する直列化ポイントを含むクラスタを、ホームクラスタと呼ぶこととする。本発明に従ったロック管理では、ホームクラスタは、後に図7ないし10を参照して詳述するホームロック管理部720を含むクラスタである。その他のクラスタについては、リモートクラスタと呼ぶ。本明細書では、ホームクラスタおよびリモートクラスタを、非ローカルクラスタとも呼ぶ。様々な実施形態によると、メモリアドレスは、ローカルメモリ制御部に存在する。
一貫性プロトコルが、いくつかの種類のメッセージを含みうることにも注意されたい。一例では、一貫性プロトコルは、以下に示すようなものを含めて、様々な種類のメッセージを含む:データすなわちキャッシュアクセス要求、プローブ、「ロック」および「ロック解除」コマンドなどのコマンド、プローブ応答や「ロック完了」および「ロック解除完了」応答などの応答、および、データパケット。
「ロック」および「ロック解除」コマンドは、ロック管理部によって送出される。ロック管理部は、別個のノードであってもよいし別のノードの一部であってもよい。一部の実施形態では、ロック管理部は、プロセッサに関連するメモリ制御部の一部である。ロックコマンドは、後にロック解除コマンドを受信するまで、共有メモリのさらなるデータにアクセスしないよう、ノードに命令する。好ましい実施形態では、ノードは、後にロック解除コマンドを受信するまで、システムトランザクションの生成を停止するよう命令される。様々な実施形態によると、本発明のロックコマンドは、複数のクラスタ内の複数のノードをロックすることによりトランザクションが原子的に実行されるように見えることを可能にするための機構を提供する。すなわち、本発明のロックコマンドは、トランザクションが、あらゆるトランザクションの介在なしに実行されることを可能にする。一部の例では、グローバルロックコマンドは、読み取り−変更−書き込み、テスト−設定など、原子性セマンティクスを有するプロセッサメモリアクセスに対応するために用いられる。別の例では、グローバルロックコマンドは、データが複数のキャッシュラインにわたる場合に、キャッシュ不可能なメモリに対する動作や、キャッシュ可能なメモリに対する動作のために用いられる。かかるトランザクションの原子性は、通例、キャッシュ自体、または、任意の直列化ポイントによって扱われることはできない。ロックコマンドは、さらに、後にロック解除コマンドを受信するまで、動作を中断するよう、ノードに命令する。
本発明の技術は、いくつかのロック機構に関連することに注意されたい。ある種類のロック動作は、メモリラインのロックに関連する。メモリラインは、通例、キャッシュ一貫性を維持すると共に個々のノードによる特定のメモリラインへのアクセスを調整するために、直列化ポイントによってロックされる。メモリラインロック動作の原子性は、通例、キャッシュ自体によって扱われる。例えば、ノードによる特定のメモリラインへの書き込みトランザクションは、原子性トランザクションになる。
特定のメモリラインがロックされると、通例、マルチクラスタ・アーキテクチャ内の他のノードは、ロックされたメモリラインにアクセスできなくなる。しかしながら、他のメモリラインは、例えば、システム内の他のノードによってアクセス可能である。ある場合においては、第2のプロセッサが第2のメモリラインに書き込みを行っている間に、第1のプロセッサが第1のメモリラインに書き込みを行うことが可能である。
しかしながら、一部のプロセッサアーキテクチャは、グローバルロックを呼び出す動作を備える。グローバルロックを伴う場合がある一部の動作は、データが複数のキャッシュラインにわたる場合の、読み取り−変更−書き込み動作、テスト−設定動作、キャッシュ不可能なメモリに対する動作、および、キャッシュ可能なメモリに対する動作を含む。グローバルロックトランザクションでは、グローバルロックが、マルチクラスタ・アーキテクチャ内の複数のノードにブロードキャストされる。ロックブロードキャストトランザクションを受信すると、各ノードは、新しいトランザクションを送出しなくなる。本明細書では、ノードをロックするために複数のクラスタ内の複数のノードにブロードキャストされたコマンドを、グローバルロックコマンドと呼ぶこととする。1つのメモリ空間を共有するマルチクラスタ・システムでは、ロックコマンドは、通例、有効になる前に、システム内のすべてのノードによって受信される必要がある。さらに、ロックを要求しているノードに送り戻される最終的な「システムロック完了」応答は、ロックコマンドがシステム内のすべてのノードによって受信され、すべてのノードが「ロック完了」応答を送信するまでブロックされることが好ましい。
一部の実施形態によると、ノードは、ロックコマンドを受信すると、現在進行中の動作を完了させるが、別の動作を開始しない。さらに別の実施形態によると、ノードは、ロックコマンドを受信すると、現在進行中の動作が一定期間内に完了可能である場合のみ、その動作を完了させる。すべてのロック完了応答が、様々なノードから受信された時点で、システムがロックされる。通例、システムがロックされると、任意の他のメモリラインに対するトランザクションは発生できなくなる。システム全体がロック状態に置かれることで、読み取り−変更−書き込みおよびテスト−設定などのトランザクションの完了が可能になる。「ロック解除」コマンドは、通常動作を再開するよう、ノードに命令する。
データすなわちキャッシュアクセス要求は、通例、ホームノードメモリ制御部を対象とする。プローブは、システム内の各キャッシュへの照会を行うために用いられる。プローブパケットは、キャッシュが、指定されたラインのためのキャッシュ状態に適切に移行することを可能にする情報を搬送できる。応答は、応答情報を搬送すると共に、ノードが、与えられたトランザクションの状態を他のノードに通知することを可能にするために用いられる。例えば、ノードは、ロックコマンドを受け付けると、「ロック完了」応答を送出する。同様に、ノードは、ロック解除コマンドを受け付けると、「ロック解除完了」応答を送出する。データパケットは、書き込み要求および読み出し応答の両方のための要求データを搬送する。
図5Aは、集約的なリモートキャッシュとして機能するキャッシュ一貫性制御部を示す図である。プロセッサ501−1が、ローカルメモリ制御部503−1に対するデータアクセス要求550を生成すると、キャッシュ一貫性制御部509は、ローカルメモリ制御部503−1からプローブ565を受信して、非ローカルノード部511に転送する。次いで、キャッシュ一貫性制御部509は、非ローカルノード511からの応答513を蓄積して、キャッシュブロック505および507に関連するローカルノードが、単一の応答576および580を送信するのと同じように、プロセッサ501−2に単一の応答570を送信する。メモリ制御部503−1は、アクセス応答517(読み取り応答など)をプロセッサ501−3に送信する。次いで、プロセッサ501−3は、「完了」応答519をローカルメモリ制御部503−2に送信することが好ましい。ローカルプロセッサは、調査(プローブ)されるローカルノードごとに1つずつの応答を予期してもよい。キャッシュ一貫性制御部を利用することで、ローカルプロセッサは、非ローカルノードが存在するか否かを考慮せずに動作することが可能になる。
図5Bは、プローブエージェントペアとして機能するキャッシュ一貫性制御部を示す図である。キャッシュ一貫性制御部521−1は、非ローカルノード531からプローブ581を受信すると、プローブ581を受け入れて、キャッシュブロック523、525、および527に関連するローカルノードに転送する。次いで、キャッシュ一貫性制御部521−2は、最終応答582を非ローカルノード部531に転送する。この例では、キャッシュ一貫性制御部は、プローブの送信元であって送信先でもある。キャッシュブロック523、525、および527に関連するローカルノードは、キャッシュ一貫性制御部が、ローカルメモリ要求を行うローカルプロセッサであるかのように振る舞う。
図5Cは、リモートメモリとして機能するキャッシュ一貫性制御部を示す図である。ローカルプロセッサ541−1が、リモートメモリを対象としたアクセス要求583を生成すると、キャッシュ一貫性制御部543−1は、要求583を非ローカルノード553に転送する。リモート要求584がローカル調査を指定すると、キャッシュ一貫性制御部543−1は、ローカルノード545、547、549、および551へのプローブ585、586、587、および588をそれぞれ生成する。調査されたノードは、プロセッサ541−2に応答589、590、591、および592を提供する。キャッシュ一貫性制御部543−1は、非ローカルノード部553からデータを受信すると、読み出し応答593をプロセッサ541−3へ転送する。キャッシュ一貫性制御部543−2は、最終応答594を非ローカルノード部553に関連するリモートメモリ制御部に転送する。
図5Dは、リモートプロセッサとして機能するキャッシュ一貫性制御部を示す図である。第1のクラスタのキャッシュ一貫性制御部561−1は、第2のクラスタのプロセッサから要求595を受信すると、第2のクラスタのプロセッサに代わって第1のクラスタのプロセッサとして機能する。キャッシュ一貫性制御部561−1は、非ローカルノード部575からの要求を受け入れて、メモリ制御部563−1に転送する。メモリ制御部563−1は、プローブ572、573、574、および577をノード565、567、569、および571に送信する。キャッシュ一貫性制御部561−2は、プローブ応答578、579、596、597と、フェッチされたデータとを蓄積する。キャッシュ一貫性制御部561−3は、最終応答598をメモリ制御部563−2と非ローカルノード575に転送する。
キャッシュ一貫性制御部が、集約的なリモートキャッシュ、プローブエージェントペア、リモートメモリ、およびリモートプロセッサとして機能することを可能にすることにより、マルチクラスタを必ずしもサポートしない複数のプロセッサを用いて、マルチクラスタ・システムを構築することができる。かかるキャッシュ一貫性制御部は、ローカルノードが、ローカルクラスタの外部のノードの存在を意識する必要がないように、ローカルトランザクションにおける非ローカルノードを代表するよう用いられることが可能である。
図6は、キャッシュ一貫性制御部を用いる非ローカルクラスタに送られたローカルプロセッサからのデータ要求のためのトランザクションを示す図である。マルチクラスタ・システムは、要求クラスタ600と、ホームクラスタ620と、リモートクラスタ640とを備える。上述のように、本明細書では、要求クラスタ600を除く、ホームクラスタ620、リモートクラスタ640、および任意の他のクラスタを、非ローカルクラスタと呼ぶ。ローカルおよび非ローカルのクラスタに関連するプロセッサおよびキャッシュ一貫性制御部は、同様に、それぞれ、ローカルプロセッサ、ローカルキャッシュ一貫性制御部、非ローカルプロセッサ、および非ローカルキャッシュ一貫性制御部と呼ぶ。
様々な実施形態によると、ローカルクラスタ600内のプロセッサ601−1は、データアクセス要求(読み出し要求など)をキャッシュ一貫性制御部603−1に送信する。キャッシュ一貫性制御部603−1は、保留バッファ(図3に示したようなバッファ)内のトランザクションを追跡して、その要求をホームクラスタ620のキャッシュ一貫性制御部621−1に転送する。ホームクラスタ620のキャッシュ一貫性制御部621−1は、アクセス要求を受信して、自身の保留バッファ内のその要求を追跡する。一例では、それらの要求に関連する情報が、保留バッファに格納される。キャッシュ一貫性制御部621−1は、ホームクラスタ620に関連するメモリ制御部623−1にアクセス要求を転送する。この時点で、メモリ制御部623−1は、その要求に関連するメモリラインをロックする。一例では、メモリラインは、要求クラスタ600、ホームクラスタ620、およびリモートクラスタ640内の複数のプロセッサによって共有されたメモリ空間の固有のアドレスである。メモリ制御部623−1は、データアクセス要求に関連するプローブを生成し、キャッシュブロック625および627に関連するローカルノードと、キャッシュ一貫性制御部621−2に、そのプローブを転送する。
要求、プローブ、応答、およびデータに関連するメッセージは、1つのノードから他のノードへ転送される際に記述されるが、それらのメッセージ自体は、種々の形態を含んでよいことに注意されたい。一例では、マルチクラスタ・アーキテクチャが、様々なローカルノードに対して透過的であることを可能にするために、メッセージに対して修正がなされる。書き込み要求についても、同様に扱うことができることに注意されたい。書き込み要求では、対象となるメモリ制御部が、応答を収集して、収集が完了した時点で、それらの応答をプロセッサに送信する。
リモートクラスタ640に関連するキャッシュ一貫性制御部641−1は、キャッシュ一貫性制御部621−2からプローブを受信し、キャッシュブロック645、647、および649に関連するローカルノードを調査する。同様に、要求クラスタ600に関連するキャッシュ一貫性制御部603−2は、プローブを受信して、そのプローブをキャッシュブロック605、607、および609に関連するローカルノードに転送し、要求クラスタ600内のキャッシュブロックを調査する。プロセッサ601−2は、キャッシュブロック605、607、および609に関連するローカルノードからプローブ応答を受信する。
様々な実施形態によると、キャッシュ一貫性制御部621−3は、プローブ応答を蓄積して、それらのプローブ応答をキャッシュ一貫性制御部603−3に送信し、その後、キャッシュ一貫性制御部603−3は、それらのプローブ応答をプロセッサ601−3に転送する。キャッシュ一貫性制御部621−4は、さらに、読み出し応答をキャッシュ一貫性制御部603−4に送信し、キャッシュ一貫性制御部603−4は、その読み出し応答をプロセッサ601−4に転送する。プローブおよびプローブ応答が、システム内のキャッシュ一貫性を維持するための情報を搬送するのに対し、読み出し応答は、実際のフェッチされたデータを搬送することができる。フェッチされたデータの受信後、プロセッサ601−4は、ソース完了応答をキャッシュ一貫性制御部603−5に送信してよい。様々な実施形態によると、この時点で、要求クラスタ600でのトランザクションは完了する。キャッシュ一貫性制御部603−5は、ソース完了メッセージをキャッシュ一貫性制御部621−5に転送する。次いで、キャッシュ一貫性制御部621−5は、ソース完了メッセージをメモリ制御部623−2に送信する。ソース完了メッセージを受信すると、メモリ制御部623−2は、メモリラインをロック解除することが可能になり、その時点で、ホームクラスタ620でのトランザクションが完了する。これで、他のプロセッサが、ロック解除されたメモリラインにアクセスできるようになる。
キャッシュ一貫性制御部621−3は、プローブ応答をキャッシュ一貫性制御部603−3に送信する前にリモートクラスタプローブ応答を待つため、システムに遅延が生じることに注意されたい。様々な実施形態によると、プローブ応答は、キャッシュ一貫性制御部603−3で収集される。リモートクラスタに、ホームクラスタを介してプローブ応答を送信させることにより、ホームクラスタプローブ応答とリモートクラスタプローブ応答の両方が、ホームクラスタのキャッシュ一貫性制御部で遅延される場合がある。一例では、リモートクラスタプローブ応答は、要求クラスタに到達するために、さらなるホップを通過する必要がある。リモートクラスタと要求クラスタとの間のプローブ応答の伝送の待ち時間は、ホームクラスタを介したリモートクラスタと要求クラスタとの間のプローブ応答の伝送の待ち時間よりも大幅に短い場合がある。ホームクラスタプローブ応答は、さらに、この追加されたホップの結果として遅延される。
当業者にとって明らかなように、要求、プローブ、および応答メッセージを含む具体的なトランザクションシーケンスは、具体的な実施例に応じて異なってよい。一例では、キャッシュ一貫性制御部621−3は、プローブ応答メッセージと読み取り応答メッセージの両方をキャッシュ一貫性制御部603−3に送信する前に、メモリ制御部623−1からの読み取り応答メッセージの受信を待ってよい。別の例では、キャッシュ一貫性制御部は、要求を生成するプロセッサそのものであってもよい。一部のプロセッサが、プロセッサとキャッシュ一貫性制御部の両方として動作してもよい。さらに、読み取りおよび書き込みに関連する様々なデータアクセス要求メッセージ、プローブ、および応答が考慮されてよい。上述のように、キャッシュをスヌープするための任意のメッセージをプローブと呼ぶことができる。同様に、メモリラインがロック解除されるようメモリ制御部に指示するための任意のメッセージを、ソース完了メッセージと呼ぶことができる。
図6に示したトランザクションは、図5A−5Dを参照して説明したようなリモートプロセッサ、集約的なローカルキャッシュ、プローブエージェントペア、およびリモートメモリの機能を含む多くの様々な機能を、キャッシュ一貫性制御部が実行する例を示している。
ホームクラスタ620のキャッシュ一貫性制御部621−1は、リモートプロセッサとして機能している。キャッシュ一貫性制御部は、要求クラスタのプロセッサから要求を受信すると、要求クラスタのプロセッサに代わって、要求を行うプロセッサとして機能するよう指示される。この場合、キャッシュ一貫性制御部621−1は、プロセッサ601−1から転送された要求を受け入れて、メモリ制御部623−1に送信し、すべてのローカルノードおよびメモリ制御部623−1から応答を蓄積して、蓄積した応答とデータとを、要求プロセッサ601−3に転送する。キャッシュ一貫性制御部621−5は、さらに、ソース完了をローカルメモリ制御部623−2に転送する。
要求クラスタ600のキャッシュ一貫性制御部603−1は、リモートメモリとして機能している。リモートメモリとして、キャッシュ一貫性制御部は、プロセッサから適切なリモートクラスタへ要求を転送すると共に、ローカルノードが調査されることを保証するよう設計されている。この場合、キャッシュ一貫性制御部603−1は、プローブをホームクラスタ620のキャッシュ一貫性制御部621−1に転送する。キャッシュ一貫性制御部603−2は、さらに、ローカルノード605、607、および609を調査する。
要求クラスタ640のキャッシュ一貫性制御部641−1は、プローブエージェントペアとして機能している。上述のように、プローブエージェントペアとして機能するキャッシュ一貫性制御部は、リモートクラスタからプローブを受信すると、そのプローブを受け入れて、すべてのローカルノードに転送する。キャッシュ一貫性制御部は、それらの応答を蓄積して、最終応答を要求クラスタに送信する。この例では、キャッシュ一貫性制御部641−1は、プローブをキャッシュブロック645、647、および649に関連するローカルノードに送信し、プローブ応答を収集してホームクラスタ620のキャッシュ一貫性制御部621−3に送信する。同様に、キャッシュ一貫性制御部603−2も、要求クラスタ600においてプローブエージェントペアとして機能する。キャッシュ一貫性制御部603−2は、プローブ要求をキャッシュブロック605、607、および609に関連するローカルノードを含むローカルノードに転送する。
キャッシュ一貫性制御部621−2および621−3も、集約的なリモートキャッシュとして機能している。キャッシュ一貫性制御部621−2は、メモリ制御部623−1からプローブを受けて、他のプロセッサクラスタ600および640に転送する役割を有する。より具体的には、キャッシュ一貫性制御部621−2は、要求クラスタ600に対応するキャッシュ一貫性制御部603−2と、リモートクラスタ640に対応するキャッシュ一貫性制御部641−1とに、プローブを転送する。上述のように、マルチクラスタ・アーキテクチャを用いると、遅延や、トラフィックの増大および処理オーバーヘッドなどの他の望ましくない要素が生じる場合がある。
図7ないし10では、各クラスタは、4つのノードのみを備えている。しかしながら、図7ないし10を参照して説明するクラスタは、任意の適切な数のノードを有してよい。図7は、ホームクラスタの要求ホームノードからのロック要求に基づいて、マルチクラスタ・システムをロックするためのトランザクションの流れを示す図である。本発明の技術は、複数のクラスタ内の複数のノードにロックコマンドを効率的に送信することを可能にするものであり、その技術においては、各プロセッサノードは、リモートノードの知識を有していない。この例では、要求ホームノードは、ホ―ムクラスタ710のホームプロセッサ705−1であり、ロック要求715をホームロック管理部720−1に送信する。上述のように、ホームロック管理部720−1は、メモリ制御部や別のプロセッサの一部であってもよいし、別個の制御部であってもよい。
ホームロック管理部720−1は、ノード730および735とホームキャッシュ一貫性制御部740−1とを含むすべてのホームノードに対してロックコマンド725をブロードキャストする。ノード730および735は、例えば、ホームクラスタ710内の他のホームプロセッサであってよい。ホームキャッシュ一貫性制御部740−1は、ロックコマンド725をリモートクラスタ750のリモートキャッシュ一貫性制御部745−1に送信する。リモートキャッシュ一貫性制御部745−1は、ロックコマンド725をリモートノード755、760、および765に転送する。この例では、リモートノード755、760、および765は、リモートプロセッサであり、ロックコマンドの受信前に始まった動作を完了させるが、その他の動作を開始したり、ローカルメモリまたはすべてのクラスタによって共有されるメモリのさらなるデータにアクセスしたりすることはない。
ロックコマンドを受け付けると、各リモートプロセッサ755、760、および765は、「ロック完了」応答770をリモートキャッシュ一貫性制御部745−2に送信して、各リモートプロセッサ755、760、および765がロックコマンド725を受け付けたことを通知する。各リモートプロセッサ755、760、および765からロック応答770を受信すると、リモートキャッシュ一貫性制御部745−2は、「リモートクラスタロック完了」応答775をホームキャッシュ一貫性制御部740−2に送信して、リモートクラスタ750内の各ノードがロックコマンド725を受け付けたことを通知する。ホームキャッシュ一貫性制御部740−2は、リモートクラスタロック完了応答775をホームロック管理部720−2に転送する。
同様に、ホームノード730および735は、ロックコマンド725を受け付けて、ホームロック完了応答780をホームロック管理部720−2に送出する。ホームロック管理部720−2は、ホームクラスタ内の各ノードからロック完了応答を受信して初めて、システムロック完了応答785を要求ホームノード705−2に送信する。この例では、ホームロック管理部720−2は、各ホームノード730および735からホームロック完了応答780を受信すると共にホームキャッシュ一貫性制御部745−2からリモートクラスタロック完了応答775を受信して初めて、システムロック完了応答785を要求ホームノード705−2に送信する。この例では、ホームロック管理部720−2は、リモートクラスタ750の存在を意識せず、745−2をさらなる別のローカルノードとして認識している。
図8は、リモートクラスタ(要求クラスタとも呼ぶ)の要求プロセッサからのロック要求に基づいて、マルチクラスタ・システムをロックするためのトランザクションの流れを示す図である。リモートクラスタ750および要求クラスタ810は、両方ともリモートクラスタであり、第1および第2のリモートクラスタと見なされてもよい。
この例では、要求クラスタ810のプロセッサ805−1は、ロック要求815を要求クラスタのキャッシュ一貫性制御部820−1に送出する。キャッシュ一貫性制御部820−1は、ロック要求815をホームクラスタ710のホームキャッシュ一貫性制御部740−1に送信する。ホームキャッシュ一貫性制御部740−1は、ロック要求815をホームロック管理部720−1に転送する。なお、ホームロック管理部720−1は、要求クラスタ810やリモートクラスタ750の存在を意識してもよいし意識しなくてもよい。この例では、ホームロック管理部720−1は、要求クラスタ810とリモートクラスタ750の存在を意識していない。ホームロック管理部720−1は、単に、ロック要求815をホームキャッシュ一貫性制御部740−1から受信して、ホームキャッシュ一貫性制御部740−1を要求ノードとして扱う。
したがって、ホームロック管理部720−1は、ホームキャッシュ一貫性制御部740−1とホームノード730および735に対してロックコマンド725をブロードキャストする。ホームキャッシュ一貫性制御部740−1は、ロックコマンド725を要求クラスタのキャッシュ一貫性制御部820−2とリモートキャッシュ一貫性制御部745−1に送信する。
リモートキャッシュ一貫性制御部745−1は、ロックコマンド725をリモートノード755、760、および765に転送する。ロックコマンドを受け付けると、各リモートプロセッサ755、760、および765は、ロック完了応答770をリモートキャッシュ一貫性制御部745−2に送信して、各リモートプロセッサ755、760、および765がロックコマンド725を受け付けたことを通知する。各リモートプロセッサ755、760、および765からロック応答770を受信すると、リモートキャッシュ一貫性制御部745−2は、リモートクラスタロック完了応答775をホームキャッシュ一貫性制御部740−3に送信して、リモートクラスタ750内の各ノードがロックコマンド725を受け付けたことを通知する。ホームキャッシュ一貫性制御部740は、リモートクラスタロック完了応答775をホームロック管理部720−2に転送する。
同様に、要求クラスタのキャッシュ一貫性制御部820−2は、ロックコマンド725を要求クラスタのノード825、830、および835に転送し、各ノードは、ロック完了応答840を要求クラスタのキャッシュ一貫性制御部820−3に送出することにより、ロックコマンド725を受け付けたことを通知する。ロック完了応答840を要求クラスタのノード825、830、および835の各々から受信すると、要求クラスタのキャッシュ一貫性制御部820−3は、要求クラスタロック完了応答850をホームキャッシュ一貫性制御部740−4に送信する。この例では、ホームキャッシュ一貫性制御部740−4は、リモートクラスタロック完了応答775と要求クラスタロック完了応答850とを受信して初めて、ロック完了応答をホームロック管理部720−2に送信する。
ホームノード730および735は、ロックコマンド725を受け付けて、ホームロック完了応答780をホームロック管理部720−2に送出する。ホームロック管理部720−2は、ホームクラスタ内の各ノードからロック完了応答を受信して初めて、システムロック完了応答785を要求ホームノード740−5に送信する。ここでは、ホームロック管理部720−2は、各ホームノード730および735からホームロック完了応答780を受信すると共にホームキャッシュ一貫性制御部740−4からロック完了応答を受信して初めて、システムロック完了応答785をホームキャッシュ一貫性制御部740−5に送信する。
図9は、ホームクラスタのプロセッサからのロック解除要求に基づいて、マルチクラスタ・システムをロック解除するためのトランザクションの流れを示す図である。この例では、ホ―ムクラスタ710のホームプロセッサ705−1は、ロック解除要求915をホームロック管理部720−1に送信する。ホームロック管理部720−1は、ノード730および735とホームキャッシュ一貫性制御部740−1とを含むすべてのホームノードに対してロック解除コマンド925をブロードキャストする。ホームキャッシュ一貫性制御部740−1は、ロック解除コマンド925をリモートクラスタ750のリモートキャッシュ一貫性制御部745−1に送信する。
リモートキャッシュ一貫性制御部745−1は、ロック解除コマンド925をリモートノード755、760、および765に転送する。ロック解除コマンドを受け付けると、各リモートプロセッサ755、760、および765は、ロック解除完了応答970をリモートキャッシュ一貫性制御部745−2に送信して、各リモートプロセッサ755、760、および765がロック解除コマンド925を受け付けたことを通知する。各リモートプロセッサ755、760、および765からロック解除応答970を受信すると、リモートキャッシュ一貫性制御部745−2は、リモートクラスタロック解除完了応答975をホームキャッシュ一貫性制御部740−2に送信して、リモートクラスタ750内の各ノードがロック解除コマンド925を受け付けたことを通知する。ホームキャッシュ一貫性制御部740−2は、リモートクラスタロック解除完了応答975をホームロック管理部720−2に転送する。
同様に、ホームノード730および735は、ロック解除コマンド925を受け付けて、ホームロック解除完了応答980をホームロック管理部720−2に送出する。ホームロック管理部720−2は、ホームクラスタ内の各ノードからロック解除完了応答を受信して初めて、システムロック解除完了応答985を要求ホームノード705−2に送信する。この例では、ホームロック管理部720−2は、各ホームノード730および735からホームロック解除完了応答980を受信すると共にホームキャッシュ一貫性制御部745−2からリモートクラスタロック解除完了応答975を受信して初めて、システムロック解除完了応答985を要求ホームノード705−2に送信する。
図10は、リモートクラスタのプロセッサからのロック解除要求に基づいて、マルチクラスタ・システムをロック解除するためのトランザクションの流れを示す図である。上述のように、リモートクラスタ750および要求クラスタ810は、両方ともリモートクラスタであり、第1および第2のリモートクラスタと見なされてもよい。
この例では、要求クラスタ810のプロセッサ805−1は、ロック解除要求1015を要求クラスタのキャッシュ一貫性制御部820−1に送出する。キャッシュ一貫性制御部820−1は、ロック解除要求1015をホームクラスタ710のホームキャッシュ一貫性制御部740−1に送信する。ホームキャッシュ一貫性制御部740−1は、ロック解除要求1015をホームロック管理部720−1に転送する。なお、ホームロック管理部720−1は、要求クラスタ810やリモートクラスタ750の存在を意識してもよいし意識しなくてもよい。この例では、ホームロック管理部720−1は、要求クラスタ810とリモートクラスタ750の存在を意識していない。ホームロック管理部720−1は、ロック解除要求1015をホームキャッシュ一貫性制御部740−1から受信して、ホームキャッシュ一貫性制御部740−1を要求ノードとして扱う。
したがって、ホームロック管理部720−1は、ホームキャッシュ一貫性制御部740−1とホームノード730および735に対してロック解除コマンド925をブロードキャストする。ホームキャッシュ一貫性制御部740−1は、ロック解除コマンド925を要求クラスタのキャッシュ一貫性制御部820−2とリモートキャッシュ一貫性制御部745−1に送信する。
リモートキャッシュ一貫性制御部745−1は、ロック解除コマンド925をリモートノード755、760、および765に転送する。各リモートノードは、上述のように、ロック解除コマンド925に従う。ロック解除コマンドを受け付けると、各リモートプロセッサ755、760、および765は、ロック解除完了応答970をリモートキャッシュ一貫性制御部745−2に送信して、各リモートプロセッサ755、760、および765がロック解除コマンド925を受け付けたことを通知する。各リモートプロセッサ755、760、および765からロック解除応答970を受信すると、リモートキャッシュ一貫性制御部745−2は、リモートクラスタロック解除完了応答975をホームキャッシュ一貫性制御部740−3に送信して、リモートクラスタ750内の各ノードがロック解除コマンド925を受け付けたことを通知する。
同様に、要求クラスタのキャッシュ一貫性制御部820−2は、ロック解除コマンド925を要求クラスタのノード825、830、および835に転送し、各ノードは、ロック解除完了応答1040を要求クラスタのキャッシュ一貫性制御部820−3に送出することにより、ロック解除コマンド925を受け付けたことを通知する。ロック解除完了応答1040を要求クラスタのノード825、830、および835の各々から受信すると、要求クラスタのキャッシュ一貫性制御部820−3は、要求クラスタロック解除完了応答1050をホームキャッシュ一貫性制御部740−4に送信する。ホームキャッシュ一貫性制御部740−4は、リモートクラスタロック解除完了応答975と要求クラスタロック解除完了応答1050とを受信して初めて、ロック解除完了応答をホームロック管理部720−2に送信する。
ホームノード730および735は、ロック解除コマンド925を受け付けて、ホームロック解除完了応答980をホームロック管理部720−2に送出する。ホームロック管理部720−2は、ホームクラスタ内の各ノードからロック解除完了応答を受信して初めて、システムロック解除完了応答985を要求ホームノード705−2に送信する。ここでは、ホームロック管理部720−2は、各ホームノード730および735からホームロック解除完了応答980を受信すると共にホームキャッシュ一貫性制御部740−4からロック解除完了応答を受信して初めて、システムロック解除完了応答985をホームキャッシュ一貫性制御部740−5に送信する。
本発明について、具体的な実施形態を参照しつつ詳細に説明したが、本発明の趣旨および範囲から逸脱することなく、開示した実施形態の形態および詳細事項における変更を行うことができることは、当業者にとって明らかなことである。例えば、本発明の実施形態は、ポイントツーポイント、スイッチ、またはバスアーキテクチャを用いて接続された複数のプロセッサクラスタに適用されてよい。別の例では、複数のプロセッサクラスタが、1つのキャッシュ一貫性制御部を共有してもよいし、複数のキャッシュ一貫性制御部が、1つのクラスタ内で用いられてもよい。米国特許出願No.10/145,439(2002年5月13日出願)の図7ないし12と、21ページ11行から28ページ2行の説明は、マルチクラスタ・システムにおけるキャッシュ一貫性制御部の動作に関して、さらなる詳細事項を提供しており、この参照により本明細書に組み込まれる。したがって、本発明の範囲は、添付の請求項の範囲を参照して判断されるものである。
複数のクラスタを有するシステムを示す図。 複数のクラスタを有するシステムを示す図。 複数のプロセッサを有するクラスタを示す図。 複数のサブユニットを備えるノードを示す図。 キャッシュ一貫性制御部を示す図。 単一のクラスタ内のプロセッサからのデータアクセス要求のためのトランザクションの流れを示す図。 キャッシュ一貫性制御部の機能を示す図。 キャッシュ一貫性制御部の機能を示す図。 キャッシュ一貫性制御部の機能を示す図。 キャッシュ一貫性制御部の機能を示す図。 リモートクラスタがホームクラスタに応答してプローブを送信するためのトランザクションの流れを示す図。 ホームクラスタのプロセッサからのロック要求に基づいて、マルチクラスタ・システムをロックするためのトランザクションの流れを示す図。 リモートクラスタのプロセッサからのロック要求に基づいて、マルチクラスタ・システムをロックするためのトランザクションの流れを示す図。 ホームクラスタのプロセッサからのロック解除要求に基づいて、マルチクラスタ・システムをロック解除するためのトランザクションの流れを示す図。 リモートクラスタのプロセッサからのロック解除要求に基づいて、マルチクラスタ・システムをロック解除するためのトランザクションの流れを示す図。
符号の説明
101、103、105、107…クラスタ
111a−f…ポイントツーポイント・リンク
121、123、125、127…クラスタ
131…スイッチ
141a−d…ポイントツーポイント・リンク
200…クラスタ
202a−d…プロセッサ
204…BIOS
206a−d…メモリバンク
208a−e…ポイントツーポイント通信リンク
210…I/Oスイッチ
212…サービスプロセッサ
214a−f…リンク
216、220…I/Oアダプタ
230…キャッシュ一貫性制御部
232a−d…ポイントツーポイント・リンク
250…CPU
260…メモリ制御部
265…ロック管理部
270…I/Oブリッジ
305…プロトコルエンジン
307…一貫性プロトコルインターフェース
309…保留バッファ
311…非一貫性プロトコルインターフェース
401…プロセッサ
403…メモリ制御部
405、407、409…ローカルキャッシュメモリ
455、460、465…プローブ
470、475、480…プローブ応答
485…アクセス応答
501…プロセッサ
503…ローカルメモリ制御部
505、507…キャッシュブロック
509…キャッシュ一貫性制御部
511…非ローカルノード
513…応答
517…アクセス応答
519…完了応答
521…キャッシュ一貫性制御部
523、525、527…キャッシュブロック
531…非ローカルノード
541…プロセッサ
543…キャッシュ一貫性制御部
545、547、549、551…ローカルノード
550…データアクセス要求
553…非ローカルノード
561…キャッシュ一貫性制御部
563…メモリ制御部
570、576、580…応答
572、573、574、577…プローブ
575…非ローカルノード
578、579、596、597…プローブ応答
581…プローブ
582…最終応答
583…アクセス要求
584…リモート要求
585、586、587、588…プローブ
589、590、591、592…応答
593…読み出し応答
594…最終応答
595…要求
598…最終応答
600…要求クラスタ
601…プロセッサ
603…キャッシュ一貫性制御部
605、607、609…キャッシュブロック
620…ホームクラスタ
621…キャッシュ一貫性制御部
623…メモリ制御部
625、627…キャッシュブロック
640…リモートクラスタ
641…キャッシュ一貫性制御部
645、647、649…キャッシュブロック
705…ホームプロセッサ
710…ホームクラスタ
715…ロック要求
720…ホームロック管理部
725…ロックコマンド
730、735…ホームノード
740…ホームキャッシュ一貫性制御部
745…リモートキャッシュ一貫性制御部
750…リモートクラスタ
755、760、765…リモートノード
770…ロック完了応答
775…リモートクラスタロック完了応答
780…ホームロック完了応答
785…システムロック完了応答
805…プロセッサ
810…要求クラスタ
815…ロック要求
820…キャッシュ一貫性制御部
825、830、835…ノード
840…ロック完了応答
850…要求クラスタロック完了応答
915…ロック解除要求
925…ロック解除コマンド
970…ロック解除完了応答
975…リモートクラスタロック解除完了応答
980…ホームロック解除完了応答
985…システムロック解除完了応答
1015…ロック解除要求
1040…ロック解除完了応答
1050…要求クラスタロック解除完了応答

Claims (12)

  1. コンピュータシステムであって、
    複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む複数のホームノードを備えるホームクラスタであって、前記複数のホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続されており、前記複数のホームノードの内の1つは、ロックコマンドを前記複数のホームプロセッサおよび前記ホームキャッシュ一貫性制御部にブロードキャストするよう構成されたホームロック管理部を備える、ホームクラスタと、
    第1のリモートキャッシュ一貫性制御部と第1の複数のリモートプロセッサとを備える第1のリモートクラスタであって、前記第1のリモートキャッシュ一貫性制御部および前記第1の複数のリモートプロセッサは、第2のポイントツーポイント・アーキテクチャで相互接続されており、前記第1のリモートキャッシュ一貫性制御部は、前記ホームキャッシュ一貫性制御部を介して前記ロックコマンドを受信すると共に、前記ロックコマンドを前記第1の複数のリモートプロセッサに転送するよう構成されている、第1のリモートクラスタと、を備える、コンピュータシステム。
  2. 請求項1に記載のコンピュータシステムであって、前記複数のホームノードの各々は、ロック管理部の位置を示す構成レジスタへのアクセス権を有する、コンピュータシステム。
  3. 請求項1に記載のコンピュータシステムであって、前記第1の複数のリモートプロセッサの各々は、第1のリモートロック管理部の位置として前記第1のリモートキャッシュ一貫性制御部の位置を示す構成レジスタへのアクセス権を有する、コンピュータシステム。
  4. 請求項1に記載のコンピュータシステムであって、前記ホームキャッシュ一貫性制御部は、ホームロック管理部の位置と第1のリモートキャッシュ一貫性制御部の位置とを含むホームホルス構成レジスタへのアクセス権を有する、コンピュータシステム。
  5. 請求項1に記載のコンピュータシステムであって、前記第1のリモートキャッシュ一貫性制御部は、ホームロック管理部の位置を含む第1のリモートホルス構成レジスタへのアクセス権を有する、コンピュータシステム。
  6. コンピュータシステムであって、
    複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む複数のホームノードを備えるホームクラスタであって、前記複数のホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続されており、前記複数のホームノードの内の1つは、ロックコマンドを前記複数のホームノードにブロードキャストするよう構成されたホームロック管理部を備え、各ホームノードは、前記ホームロック管理部の位置をホームロック要求の宛先として指定するホーム構成レジスタを備える、ホームクラスタと、
    第1のリモートキャッシュ一貫性制御部と第1の複数のリモートプロセッサとを備える第1のリモートクラスタであって、前記第1のリモートキャッシュ一貫性制御部および前記第1の複数のリモートプロセッサは、第2のポイントツーポイント・アーキテクチャで相互接続されており、前記第1のリモートキャッシュ一貫性制御部は、前記ホームキャッシュ一貫性制御部と相互接続されており、前記第1の複数のリモートプロセッサの各々は、前記第1のリモートキャッシュ一貫性制御部の位置を第1のリモートロック要求の宛先として指定する第1のリモート構成レジスタを備える、第1のリモートクラスタと、を備える、コンピュータシステム。
  7. 請求項6に記載のコンピュータシステムであって、前記第1のリモートキャッシュ一貫性制御部は、前記ホームキャッシュ一貫性制御部を第1のリモートロック要求の宛先として指定する第1のリモートホルス構成レジスタへのアクセス権を有する、コンピュータシステム。
  8. 請求項6に記載のコンピュータシステムであって、前記ホームキャッシュ一貫性制御部は、前記第1のリモートキャッシュ一貫性制御部を前記ホームロック管理部から受信されたロックコマンドの宛先として指定するホームホルス構成レジスタへのアクセス権を有する、コンピュータシステム。
  9. コンピュータシステム内でロックコマンドを制御する方法であって、
    ホームクラスタ内の複数のホームノードの内の要求ホームノードからロック要求を受信する工程であって、前記複数のホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む、工程と、
    前記ロック要求に応答してロックコマンドをすべてのホームノードにブロードキャストする工程と、
    前記ロックコマンドを前記ホームキャッシュ一貫性制御部から第1のリモートクラスタの第1のリモートキャッシュ一貫性制御部に送信する工程であって、前記第1のリモートクラスタは、前記第1のリモートキャッシュ一貫性制御部と第2のポイントツーポイント・アーキテクチャで相互接続された複数の第1のリモートプロセッサを含む、工程と、
    前記ロックコマンドを前記複数の第1のリモートプロセッサの各々に転送する工程と、
    第1のロック完了応答を第1のリモートプロセッサの各々から前記第1のリモートキャッシュ一貫性制御部に送信する工程であって、前記第1のロック完了応答は、前記複数の第1のリモートプロセッサの1つが前記ロックコマンドを受け付けたことを通知する、工程と、
    第1のリモートクラスタロック完了応答を前記第1のリモートキャッシュ一貫性制御部から前記ホームキャッシュ一貫性制御部に送信する工程であって、前記第1のリモートクラスタロック完了応答は、前記複数の第1のリモートプロセッサの各々が前記ロックコマンドを受け付けたことを通知する、工程と、
    ホームロック完了応答を各ホームプロセッサからホームロック管理部に送信する工程であって、前記ホームロック完了応答は、前記ロックコマンドを受け付けたことを通知する、工程と、
    前記第1のリモートクラスタロック完了応答を前記ホームキャッシュ一貫性制御部から前記ホームロック管理部に中継する工程と、
    前記ホームロック管理部が、前記ホームロック完了応答と前記第1のリモートクラスタロック完了応答とを受信した後に、システムロック完了応答を前記要求ホームノードに送信する工程と、を備える、方法。
  10. コンピュータ読み取り可能な記憶媒体に記憶されたコンピュータプログラムであって、
    ロック要求をホームクラスタ内の複数のホームノードの内の要求ホームノードからホームロック管理部に送信する機能であって、前記複数のホームノードは、第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームプロセッサとホームキャッシュ一貫性制御部とを含む、機能と、
    前記ロック要求に応答してロックコマンドを前記ホームロック管理部からすべてのホームノードにブロードキャストする機能と、
    前記ロックコマンドを前記ホームキャッシュ一貫性制御部から第1のリモートクラスタの第1のリモートキャッシュ一貫性制御部に送信する機能であって、前記第1のリモートクラスタは、前記第1のリモートキャッシュ一貫性制御部と第2のポイントツーポイント・アーキテクチャで相互接続された複数の第1のリモートプロセッサを含む、機能と、
    前記ロックコマンドを前記複数の第1のリモートプロセッサの各々に転送する機能と、
    第1のロック完了応答を第1のリモートプロセッサの各々から前記第1のリモートキャッシュ一貫性制御部に送信する機能であって、前記第1のロック完了応答は、前記複数の第1のリモートプロセッサの1つが前記ロックコマンドを受け付けたことを通知する、機能と、
    第1のリモートクラスタロック完了応答を前記第1のリモートキャッシュ一貫性制御部から前記ホームキャッシュ一貫性制御部に送信する機能であって、前記第1のリモートクラスタロック完了応答は、前記複数の第1のリモートプロセッサの各々が前記ロックコマンドを受け付けたことを通知する、機能と、
    ホームロック完了応答を各ホームプロセッサから前記ホームロック管理部に送信する機能であって、前記ホームロック完了応答は、前記ロックコマンドを受け付けたことを通知する、機能と、
    前記第1のリモートクラスタロック完了応答を前記ホームキャッシュ一貫性制御部から前記ホームロック管理部に中継する機能と、
    前記ホームロック管理部が、前記ホームロック完了応答と前記第1のリモートクラスタロック完了応答とを受信した後に、システムロック完了応答を前記ホームロック管理部から前記要求ホームノードに送信する機能と、をコンピュータに実行させる命令を備える、コンピュータプログラム。
  11. 請求項10に記載のコンピュータプログラムであって、さらに、
    ロック解除要求を前記要求ホームノードから受信する機能と、
    前記ロック解除要求に応答してロック解除コマンドをすべてのホームノードにブロードキャストする機能と、
    前記ロック解除コマンドを前記第1のリモートキャッシュ一貫性制御部に送信する機能と、
    前記ロック解除コマンドを前記複数の第1のリモートプロセッサの各々に転送する機能と、
    第1のロック解除完了応答を第1のリモートプロセッサの各々から前記第1のリモートキャッシュ一貫性制御部に送信する機能であって、前記第1のロック完了応答は、前記複数の第1のリモートプロセッサの1つが前記ロック解除コマンドを受け付けたことを通知する、機能と、
    第1のリモートクラスタロック解除完了応答を前記第1のリモートキャッシュ一貫性制御部から前記ホームキャッシュ一貫性制御部に送信する機能であって、前記第1のリモートクラスタロック解除完了応答は、前記複数の第1のリモートプロセッサの各々が前記ロック解除コマンドを受け付けたことを通知する、機能と、
    ホームロック解除完了応答を各ホームプロセッサから前記ホームロック管理部に送信する機能であって、前記ホームロック解除完了応答は、前記ロック解除コマンドを受け付けたことを通知する、機能と、
    前記第1のリモートクラスタロック解除完了応答を前記ホームキャッシュ一貫性制御部から前記ホームロック管理部に中継する機能と、
    前記ホームロック管理部が、前記ホームロック解除完了応答と前記第1のリモートクラスタロック解除完了応答とを受信した後に、システムロック解除完了応答を前記要求ホームノードに送信する機能と、をコンピュータに実行させる命令を備える、コンピュータプログラム。
  12. コンピュータシステムであって、
    第1のポイントツーポイント・アーキテクチャで相互接続された複数のホームプロセッサとホームキャッシュ一貫性制御部とを備えるホームクラスタであって、前記複数のホームプロセッサの内の1つは、ホームロック管理部を備える、ホームクラスタと、
    第2のポイントツーポイント・アーキテクチャで相互接続された第1の複数のリモートプロセッサと第1のリモートキャッシュ一貫性制御部とを備える第1のリモートクラスタであって、前記第1のリモートキャッシュ一貫性制御部は、前記ホームキャッシュ一貫性制御部と相互接続されており、前記第1のリモートキャッシュ一貫性制御部は、前記ホームキャッシュ一貫性制御部を介して前記ホームロック管理部と信号をやり取りすることにより、第1のリモートクラスタロック管理部として機能するよう構成されている、第1のリモートクラスタと、
    第3のポイントツーポイント・アーキテクチャで相互接続された第2の複数のリモートプロセッサと第2のリモートキャッシュ一貫性制御部とを備える第2のリモートクラスタであって、前記第2のリモートキャッシュ一貫性制御部は、前記ホームキャッシュ一貫性制御部と相互接続されており、前記第2のリモートキャッシュ一貫性制御部は、前記ホームキャッシュ一貫性制御部を介して前記ホームロック管理部と信号をやり取りすることにより、第2のリモートクラスタロック管理部として機能するよう構成されている、第2のリモートクラスタと、を備える、コンピュータシステム。
JP2004551763A 2002-11-08 2003-11-04 マルチクラスタのロックのための方法および装置 Pending JP2006505868A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/291,895 US6950913B2 (en) 2002-11-08 2002-11-08 Methods and apparatus for multiple cluster locking
PCT/US2003/035290 WO2004044744A2 (en) 2002-11-08 2003-11-04 Methods and apparatus for multiple cluster locking

Publications (1)

Publication Number Publication Date
JP2006505868A true JP2006505868A (ja) 2006-02-16

Family

ID=32229306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004551763A Pending JP2006505868A (ja) 2002-11-08 2003-11-04 マルチクラスタのロックのための方法および装置

Country Status (8)

Country Link
US (1) US6950913B2 (ja)
EP (1) EP1561162B1 (ja)
JP (1) JP2006505868A (ja)
AT (1) ATE352062T1 (ja)
AU (1) AU2003286912A1 (ja)
CA (1) CA2505259A1 (ja)
DE (1) DE60311302T2 (ja)
WO (1) WO2004044744A2 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293228B1 (en) * 1997-01-31 2007-11-06 Timebase Pty Limited Maltweb multi-axis viewing interface and higher level scoping
AUPO489297A0 (en) * 1997-01-31 1997-02-27 Aunty Abha's Electronic Publishing Pty Ltd A system for electronic publishing
US20030041305A1 (en) * 2001-07-18 2003-02-27 Christoph Schnelle Resilient data links
US7363310B2 (en) 2001-09-04 2008-04-22 Timebase Pty Limited Mapping of data from XML to SQL
US7281206B2 (en) * 2001-11-16 2007-10-09 Timebase Pty Limited Maintenance of a markup language document in a database
US7089372B2 (en) * 2003-12-01 2006-08-08 International Business Machines Corporation Local region table for storage of information regarding memory access by other nodes
US7877549B1 (en) * 2007-06-12 2011-01-25 Juniper Networks, Inc. Enforcement of cache coherency policies using process synchronization services
US20110040839A1 (en) * 2007-10-23 2011-02-17 Valeriu Zabalan System and method for transactional storage of email data
US20120110291A1 (en) * 2009-04-06 2012-05-03 Kaminario Technologies Ltd. System and method for i/o command management
US8402106B2 (en) * 2010-04-14 2013-03-19 Red Hat, Inc. Asynchronous future based API
US8904174B2 (en) * 2011-03-22 2014-12-02 International Business Machines Corporation System, method and computer program product for product license management
CN104508645B (zh) * 2012-07-31 2017-08-18 慧与发展有限责任合伙企业 用于使用多个子锁来控制对具有读取器‑写入器锁的共享数据结构的访问的系统和方法
CN104375963B (zh) 2014-11-28 2019-03-15 上海兆芯集成电路有限公司 基于缓存一致性的控制系统和方法
US20170111286A1 (en) * 2015-10-15 2017-04-20 Kabushiki Kaisha Toshiba Storage system that includes a plurality of routing circuits and a plurality of node modules connected thereto
US9940269B2 (en) * 2016-01-22 2018-04-10 International Business Machines Corporation Conditionally releasing locks in response to requests
US10402218B2 (en) * 2016-08-30 2019-09-03 Intel Corporation Detecting bus locking conditions and avoiding bus locks
US11347712B2 (en) 2017-11-07 2022-05-31 International Business Machines Corporation Preventing long running transactions from holding record locks
FR3086426B1 (fr) * 2018-09-26 2021-10-29 Commissariat Energie Atomique Gestionnaire de verrous pour architecture multicoeurs
US11467962B2 (en) * 2020-09-02 2022-10-11 SiFive, Inc. Method for executing atomic memory operations when contested

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4399504A (en) * 1980-10-06 1983-08-16 International Business Machines Corporation Method and means for the sharing of data resources in a multiprocessing, multiprogramming environment
US4965719A (en) * 1988-02-16 1990-10-23 International Business Machines Corporation Method for lock management, page coherency, and asynchronous writing of changed pages to shared external store in a distributed computing system
US5226143A (en) 1990-03-14 1993-07-06 International Business Machines Corporation Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager
JP2819982B2 (ja) * 1993-03-18 1998-11-05 株式会社日立製作所 範囲指定可能なキャッシュ一致保証機能を有するマルチプロセッサシステム
US5577226A (en) * 1994-05-06 1996-11-19 Eec Systems, Inc. Method and system for coherently caching I/O devices across a network
US5634043A (en) 1994-08-25 1997-05-27 Intel Corporation Microprocessor point-to-point communication
US5946710A (en) 1996-11-14 1999-08-31 Unisys Corporation Selectable two-way, four-way double cache interleave scheme
US6151688A (en) * 1997-02-21 2000-11-21 Novell, Inc. Resource management in a clustered computer system
US6044438A (en) * 1997-07-10 2000-03-28 International Business Machiness Corporation Memory controller for controlling memory accesses across networks in distributed shared memory processing systems
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
US6167492A (en) 1998-12-23 2000-12-26 Advanced Micro Devices, Inc. Circuit and method for maintaining order of memory access requests initiated by devices coupled to a multiprocessor system
US6473849B1 (en) * 1999-09-17 2002-10-29 Advanced Micro Devices, Inc. Implementing locks in a distributed processing system
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
US6587921B2 (en) * 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment

Also Published As

Publication number Publication date
DE60311302T2 (de) 2007-08-30
WO2004044744A2 (en) 2004-05-27
WO2004044744A3 (en) 2004-08-12
DE60311302D1 (de) 2007-03-08
US6950913B2 (en) 2005-09-27
AU2003286912A1 (en) 2004-06-03
EP1561162B1 (en) 2007-01-17
ATE352062T1 (de) 2007-02-15
CA2505259A1 (en) 2004-05-27
EP1561162A2 (en) 2005-08-10
US20040093469A1 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
US7296121B2 (en) Reducing probe traffic in multiprocessor systems
US7334089B2 (en) Methods and apparatus for providing cache state information
US7395379B2 (en) Methods and apparatus for responding to a request cluster
EP1561162B1 (en) Methods and apparatus for multiple cluster locking
US6920532B2 (en) Cache coherence directory eviction mechanisms for modified copies of memory lines in multiprocessor systems
US7003633B2 (en) Methods and apparatus for managing probe requests
US20040088495A1 (en) Cache coherence directory eviction mechanisms in multiprocessor systems
US6865595B2 (en) Methods and apparatus for speculative probing of a remote cluster
US20040088494A1 (en) Cache coherence directory eviction mechanisms in multiprocessor systems
US7107409B2 (en) Methods and apparatus for speculative probing at a request cluster
US7107408B2 (en) Methods and apparatus for speculative probing with early completion and early request
US7103636B2 (en) Methods and apparatus for speculative probing of a remote cluster
US20030182514A1 (en) Methods and apparatus for speculative probing with early completion and delayed request
US7653790B2 (en) Methods and apparatus for responding to a request cluster
US7272688B1 (en) Methods and apparatus for providing cache state information
EP1652091B1 (en) Methods and apparatus for providing early responses from a remote data cache
US7103726B2 (en) Methods and apparatus for managing probe requests
CA2505016A1 (en) Methods and apparatus for managing probe requests
US7162589B2 (en) Methods and apparatus for canceling a memory data fetch