JP4641545B2 - マルチプロセッサの操作を管理する方法、システム、およびコンピュータ・プログラム - Google Patents

マルチプロセッサの操作を管理する方法、システム、およびコンピュータ・プログラム Download PDF

Info

Publication number
JP4641545B2
JP4641545B2 JP2007541929A JP2007541929A JP4641545B2 JP 4641545 B2 JP4641545 B2 JP 4641545B2 JP 2007541929 A JP2007541929 A JP 2007541929A JP 2007541929 A JP2007541929 A JP 2007541929A JP 4641545 B2 JP4641545 B2 JP 4641545B2
Authority
JP
Japan
Prior art keywords
processor
cache
line
shared
shared memory
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 - Fee Related
Application number
JP2007541929A
Other languages
English (en)
Other versions
JP2008522264A5 (ja
JP2008522264A (ja
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008522264A publication Critical patent/JP2008522264A/ja
Publication of JP2008522264A5 publication Critical patent/JP2008522264A5/ja
Application granted granted Critical
Publication of JP4641545B2 publication Critical patent/JP4641545B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Saccharide Compounds (AREA)
  • Hardware Redundancy (AREA)

Description

本発明は、マルチプロセッサの操作の管理に関する。
あるコンピューティング環境では、マルチ・ホスト・システムが、要求を受け取るIBMエンタープライズ・ストレージ・サーバ(ESS)(R)などの制御装置によって管理される記憶デバイス内のデータについてESSと通信して、一または複数の論理パスで相互接続されたハードディスク・ドライブなどの記憶デバイスへのアクセスを提供する(IBMおよびESSは、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である)。相互接続されたドライブは、直接アクセス記憶デバイス(DASD)、独立ディスク冗長アレイ(RAID)、単なるディスクの束(JBOD)等として構成できる。制御装置はマルチプロセッサ型のシステムでよい。例えば、制御装置は、クラスタとしても知られる重複かつ冗長なプロセッシング・コンプレックスを含むことができ、1つが障害を起こした場合に残りのクラスタへのフェイルオーバーに備える。
マルチプロセッサ・システムには多様なタイプがある。あるタイプでは、プロセッサは各々がそれ自体のメモリおよびキャッシュをもつことがある。プロセッサは並行してランしてディスクを共有してもよい。あるタイプのマルチプロセッサ・システムでは、各プロセッサがそれぞれオペレーティング・システムのコピーをランすることができ、プロセッサは、例えばローカル・エリア・ネットワーク(LAN)で疎結合できる。プロセッサ間の通信はメッセージの受渡しで行える。
別のタイプのマルチプロセッサ・システムでは、プロセッサは、スイッチまたはブリッジにより接続するなど、もっと密に結合することがある。プロセッサ間の通信は、例えば共有メモリで行える。
さらに別のタイプのマルチプロセッサ・システムでは、すべてのプロセッサでオペレーティング・システムのコピーを1つだけランすることがある。これらのタイプのマルチプロセッサ・システムは高速バスまたはスイッチで同じ筐体内に密に結合される傾向にある。さらに、プロセッサは同じグローバル・メモリ、ディスク、および入出力(I/O)デバイスを共有できる。
共有ディスクなどの共有リソースが障害を起こす場合、マルチプロセッサ・システムのプロセッサは単に障害の発生したディスクを使うのをやめることができる。システムのプロセッサ全体で1つのオペレーティング・システムのコピーをランするマルチプロセッサ・システムでは、回復操作は容易に調整できる。例えば、ブリッジなどの共有リソースを、プロセッサの1つがブリッジをリセットするなどの回復操作を行って復元する場合、該回復操作はプロセッサの共通のオペレーティング・システムにより様々なプロセッサ間で調整できる。
マルチプロセッサ・システム内の各プロセッサは、共有メモリの一または複数のラインをキャッシュできるキャッシュをもつこともある。このため、2つ以上のキャッシュが共有メモリの同じラインのコピーをもつことがある。あるプロセッサが他のプロセッサのキャッシュにキャッシュされる共有メモリのライン内のデータを変更する場合、様々なキャッシュが異なる不正確なバージョンの共有メモリのラインをもつかもしれない。その結果、キャッシュされたデータは他のキャッシュまたは共有メモリに対してもはや「コヒーレント」ではないことがある。
複数のキャッシュ間でデータを同期するために、様々なキャッシュ・コヒーレンシ・プロトコルを採用できる。あるキャッシュ・コヒーレンシ・プロトコルは各キャッシュ・ラインに変更、排他、共有、または無効(MESI)という4つの状態のうちの1つをマークする。変更状態にあるとマークされるキャッシュ・ラインは、そのキャッシュ・ラインが変更されており、そのため共有メモリのラインにある元データはもはや有効ではないことを示す。排他状態にあるとマークされるキャッシュ・ラインは、そのキャッシュ・ラインがその特定のキャッシュにしか格納されておらず、まだ変更されていないことを示す。共有状態にあるとマークされるキャッシュ・ラインは、そのキャッシュ・ラインが他のプロセッサの他のキャッシュに格納できることを示す。無効状態にあるとマークされるキャッシュ・ラインは、そのキャッシュ・ラインが無効であることを示す。
キャッシュ・コヒーレンシをとるには特定のコヒーレンシ・プロトコルを利用するスヌープ論理が採用されるのが一般的である。プロセッサ内のスヌープ論理はメッセージを他のプロセッサと共有する共通のバス・ラインにブロードキャストでき、あるプロセッサがそのキャッシュ内のデータを変更するたびに他のプロセッサに通知する。スヌープ論理は他のプロセッサからの当該メッセージを探してバスをスヌープすることもできる。
あるプロセッサが、別のプロセッサがそれ自体のキャッシュに存在するアドレスで値を変更したことを検知すると、スヌープ論理はMESIプロトコルなどの様々なプロトコルに従ってそのキャッシュへのそのエントリを無効にする。キャッシュ・ラインが無効状態のマークをされると、プロセッサにキャッシュの値が有効ではないことを知らせることができる。その結果、プロセッサは共有メモリ内または別のキャッシュ内の正しい値を探すことができる。
マルチプロセッサの操作を管理するにあたって、第1プロセッサは、キャッシュ・ラインを反復的に読み取る。このキャッシュ・ラインは、第1プロセッサおよび第2プロセッサの両方が共有するリソースの共有メモリのラインからキャッシュされる。共有メモリ・ラインとキャッシュ・ラインの間のコヒーレンシはキャッシュ・コヒーレンシ・プロトコルに従って維持される。ある側面において、反復的なキャッシュ・ラインの読み取りは第1プロセッサを占有して、第1プロセッサが共有リソースにアクセスするのを禁止する。別の側面において、共有リソースに関わる第2プロセッサの操作の完了時、第2プロセッサはデータを共有メモリ・ラインに書き込んで、共有リソースに第1プロセッサからアクセスできることを第1プロセッサに知らせる。それに応答して、第1プロセッサはキャッシュ・コヒーレンシ・プロトコルに従いキャッシュ・ラインの状態を変更し、第2プロセッサが書き込んだデータを読み取る
図1は、本明細書に記載する説明の側面を採用できるコンピューティング環境の一例である。一または複数のホスト2は記憶システム4に出される入出力(I/O)要求を制御装置6に伝えて、制御装置6が記憶システム4へのアクセスを管理する。一実施例では、制御装置6は、各々がプロセッサ10a、10cとホスト・アダプタ22a、22bとを含む2つのプロセッシング・コンプレックス8a、8bから構成される。各ホスト・アダプタ22a、22bは対応のプロセッシング・コンプレックス8a、8bがホスト2と通信するのを可能にし、プロセッサ10b、10dを含む。図示する実施例では、各プロセッサ10a、10b、10c、10dはそれぞれ対応のメモリ12a、12b、12c、12dをもち、それぞれオペレーティング・システム18a、18b、18c、18d、およびそれぞれデバイス・ドライバ20a、20b、20c、20dを個別に実行する。オペレーティング・システム18a、18b、18c、18dは互いに同じタイプでも、または各々まったく異なるタイプのオペレーティング・システムでもよい。例えば、オペレーティング・システム18a、18cは各々、例えばLINUX(Linus Torvaldsの商標)などの組み込み型マルチスレッドのオペレーティング・システムで、オペレーティング・システム18b、18dは各々、例えばホスト・アダプタの実時間タスクを実行する組み込み型ハードウェア・アブストラクション・レイヤとすることができよう。ある特定のアプリケーション次第で、様々なタイプおよび組み合わせのオペレーティング・システムを採用できることは認識される。
各デバイス・ドライバ20a、20b、20c、20dは、デバイス・ドライバ20a、20b、20c、20dが実行するプロセッシング・コンプレックス8a、8b内の対応のオペレーティング・システム18a、18b、18c、18dと、ホスト・アダプタ22a、22bおよび様々なデバイス・アダプタ24a、24bなどの内部もしくは外部デバイスとのインターフェースを提供する。デバイス・アダプタ24a、24bはプロセッシング・コンプレックス8a、8bが記憶システム4と通信するのを可能にする。図示する実施例は制御装置6が、プロセッシング・コンプレックス8a、8b、デバイス・アダプタ24a、24b等など、様々なコンポーネントのうちの2つをもつように示されているが、制御装置6はこれより多いもしくは少ない数の当該コンポーネントをもつことができることは認識される。
プロセッシング・コンプレックス8aはバス31aに連結されて、そのプロセッシング・コンプレックス8aのプロセッサ10aおよびプロセッサ10bと共有する共有メモリ30aをもつことができる。各メモリ12a、12bはキャッシュ28a、28bをもつことができ、そこに共有メモリ30aの一または複数のラインをキャッシュできる。同様に、プロセッシング・コンプレックス8bはバス31bに連結されて、そのプロセッシング・コンプレックス8bのプロセッサ10cおよびプロセッサ10dと共有する共有メモリ30bをもつことができる。各メモリ12c、12dはキャッシュ28c、28dをもつことができ、そこに共有メモリ30bの一または複数のラインをキャッシュできる。キャッシュ28a、28b、28c、28dは制御装置6の他のメモリのラインをキャッシュできる。
各プロセッシング・コンプレックス8a、8bは個別のパワー境界上にあってもよい。プロセッシング・コンプレックス8a、8bは、記憶システム4に構成される特定のボリュームに出されるI/O要求をハンドルするように割り当てることができる。プロセッシング・コンプレックス8a、8bは、ローカル・エリア・ネットワーク(LAN)、ストレージ・エリア・ネットワーク(SAN)、バス・インターフェース、シリアル・インターフェース等を含めることができるデバイス・ネットワーク(図示せず)で、デバイス・アダプタ24a、24b、24c、24dを介して記憶システム4と通信する。
さらに、プロセッシング・コンプレックス8a、8bはブリッジ34を含む接続32で通信し、プロセッサ間の相互通信が共有アダプタ22a、22bなどの共有デバイスに対して行う操作の構成を管理することを可能にする。同様に、各プロセッシング・コンプレックス8a、8bはブリッジ36a、36bをもつ。ブリッジ36aはプロセッサ10a、10bが共有するリソースである。同様に、ブリッジ36bはプロセッサ10c、10dが共有するリソースである。
以下詳しく説明するように、プロセッサの活動の調整もプロセッサ・キャッシュ28a、28b、28c、28dおよびキャッシュ・コヒーレンシ・プロトコルを使って達成できる。例えば、ブリッジ36aなどの共有リソースが誤作動を起こすこともあり、正規の機能に復元するようリセットする必要があることがある。この回復操作は一または複数のプロセッサ・キャッシュ28a、28b、およびキャッシュ・コヒーレンシ・プロトコルを使ってプロセッサ10a、10b間で調整できる。同様に、ブリッジ36bなどの共有リソースが誤作動を起こすことがあり、正規の機能に復元するようにリセットする必要があることがある。この回復操作は一または複数のプロセッサ・キャッシュ28c、28d、およびキャッシュ・コヒーレンシ・プロトコルを使ってプロセッサ10c、10d間で調整できる。
制御装置6は、エンタープライズ・ストレージ・サーバ、ストレージ・コントローラー等のあらゆるタイプのサーバ、あるいは付加記憶システム4へのI/O要求を管理するために使う他のデバイスを有することができ、記憶システムは相互接続されたハードディスク・ドライブ(例、DASD、RAID、JBOD等として構成される)、磁気テープ、電子メモリ等など、当分野で周知の一または複数の記憶デバイスを有することができる。ホスト2は、ローカル・エリア・ネットワーク(LAN)、ストレージ・エリア・ネットワーク(SAN)、広域ネットワーク(WAN)、無線ネットワーク等などのネットワーク(図示せず)でアダプタ22a、22bを介して、制御装置6と通信できる。代わりに、ホスト2は周辺装置相互接続(PCI)バスまたはシリアル・インターフェースなど、バス・インターフェースで制御装置6と通信できる。
共有アダプタ22a、22bなどの共有デバイスで障害が発生するとプロセッシング・コンプレックス8a、8b内のオペレーティング・システム18a、18b、18c、18dにマシン・チェック状態を引き起こすことがあり、共有ハードウェアが1種の致命的エラーをもつ場合、両プロセッシング・コンプレックスのクラッシュを引き起こす可能性がある。一実施例では、これら回復操作はブリッジ34などの共有デバイスから調整できる。
図2は、マルチプロセッサ・システムのプロセッサの操作をプロセッサ・キャッシュ、共有メモリ、およびキャッシュ・コヒーレンシ・プロトコルを使って調整できる実施例を図示する。例えば、プロセッシング・コンプレックス8aのブリッジ36aに障害が発生することがある。プロセッサ10a、10b間の回復操作を調整するために、キャッシュ28a、28bのうちの一方を共有メモリ30aおよびキャッシュ・コヒーレンシ・プロトコルとともに利用できる。
この例では、ブリッジ36aなどの共有リソースはエラー状態に入ると、プロセッサ10a、10bの各々に割込みを発することができる。このような割込みの受信に応答して、プロセッサ10aなどの第1プロセッサはエラー処理手続きを開始できる(ブロック200)。同様に、プロセッサ10bなどの第2プロセッサは第2エラー処理手続きを開始できる(ブロック202)。プロセッサ10a、10bはエラー処理手続きを開始するために他のイベントを利用できることは認識される。例えば、プロセッサ10a、10bは様々な共有デバイスの状態を監視して、エラー状態を検出したらエラー処理手続きを開始してもよい。
第1プロセッサ10aのエラー処理手続きに従い、第1プロセッサ10aはキャッシュ28aのラインなどのキャッシュ・ラインを反復的に読み取る(ブロック204)。この例では、反復的なキャッシュ・ラインの読み取りは第1プロセッサ10aを占有し、第1プロセッサ10aがブリッジ36aなどの共有リソースにアクセスするのを禁止する。この反復的な読み取りは、例えばループ・プロセスを使って達成できる。
さらに、第1プロセッサ10aに反復的に読み取られるキャッシュ・ラインは、第1プロセッサ10aおよび第2プロセッサ10bが共有するリソースの共有メモリのラインからキャッシュされる。この例では、キャッシュ・ラインは共有メモリ30aのラインからキャッシュできる。加えて、例えば、MESIプロトコルなどのキャッシュ・コヒーレンシ・プロトコルに従い、共有メモリ・ラインとキャッシュ・ラインとのコヒーレンシが維持される。MESIプロトコルでは、読み取られるキャッシュ・ラインの状態は第1プロセッサ10aの排他となる。同様に他のキャッシュ・コヒーレンシ・プロトコルも利用できることは認識される。このプロトコルに従い、第1プロセッサ10aは共有バス31aを介して共有メモリ30aをスヌープして(ブロック204)、共有メモリ30aからキャッシュされたメモリ・ラインの変更を識別する。
第1プロセッサ10aがブリッジ36aなどの共有リソースへのアクセスを禁止されるため、第2プロセッサ10bは、そのエラー処理手続きの実行時、第1プロセッサ10aからの干渉なく、ブリッジ36aなどの共有リソースを安全にリセットできる(ブロック206)。第1プロセッサ10aが共有リソースへのアクセスを禁止されるときに、第2プロセッサ10bが引き受けることのできるエラー処理手続きは、障害の発生したリソースの隔離、または障害の発生したリソースを復元する他の措置をとるなどの他の措置を含むことができることは認識される。
適切な時点で、第2プロセッサ10bは、共有メモリ・ラインが第1プロセッサ・キャッシュ28aによってキャッシュされている共有メモリ30aの共有メモリ・ラインにデータを書き込むことができる(ブロック208)。以下に述べるように、第2プロセッサ10bが書き込むこのデータを使用して、第1プロセッサが共有リソースへのアクセスを再開しても安全であるという信号を第1プロセッサ10aに送る。このため、例えば、第2プロセッサ10bが共有メモリ30aの共有メモリ・ラインにデータを書き込むのに適切なある時点とは、第2プロセッサ10bがブリッジ36aのリセット操作を完了して、共有リソースまたは共有リソースもしくは複数の共有リソースの少なくとも一部の復元が成功した時点であろう。こうして、第2プロセッサ10bはそのエラー処理手続きを完了できる(ブロック210)。第2プロセッサ10bによる共有メモリ30aのキャッシュされたメモリ・ラインへの書き込みは、特定のアプリケーション次第で、他方のプロセッサ10aに他の情報を知らせるために行ってもよく、他の時点で行ってもよいことは認識される。
図示する実施例では、共有バス31aを介して共有メモリ30aをスヌープする第1プロセッサ10aは、第2プロセッサ10bによる共有メモリ30aのキャッシュされたメモリ・ラインへのこの書き込みを検知する。この例ではMESIキャッシュ・コヒーレンシ・プロトコルであるキャッシュ・コヒーレンシ・プロトコルに従い、第1プロセッサ10aは、第2プロセッサ10bによる共有メモリ30aの共有メモリ・ラインへのデータの書き込みに応答して、キャッシュ28aのキャッシュ・ラインの状態を変更する(ブロック212)。MESIキャッシュ・コヒーレンシ・プロトコルに従うと、第1プロセッサ・キャッシュ28aのキャッシュ・メモリ・ラインの状態は無効状態に変更される。加えて、第1プロセッサ10aはキャッシュ28aのメモリ・ラインを反復的に読み取るループ・プロセスから出て、共有メモリ30aのキャッシュされたメモリ・ラインに書き込まれた更新データを取り出せる(ブロック214)。障害の発生したリソースが例えば共有メモリ30aへのブリッジである場合、共有リソースは第1プロセッサ10aが復元された共有リソースに安全にアクセスできるように第2プロセッサ10bが復元していることになろう。
別の操作において、第1プロセッサはそのエラー処理手続きを完了する(ブロック216)。第2プロセッサ10bがすべてのエラー状態からシステムを完全に復元していたら、第1プロセッサはその通常の処理を再開できる。別の例では、第2プロセッサの復元操作が未完了のことがある。この例では、プロセッサ10aおよび10bは役割を交替して、復元プロセスを再開できる。こうなると、プロセッサ10bは図2の「第1プロセッサ」と呼べ、またプロセッサ10aは図2の「第2プロセッサ」と呼べるであろう。
第1プロセッサ10bのエラー処理手続きに従い、第1プロセッサ10bはキャッシュ28bのラインなどのキャッシュ・ラインを反復的に読み取る(ブロック204)。この例では、反復的なキャッシュ・ラインの読み取りは第1プロセッサ10bを占有し、第1プロセッサ10bがブリッジ36aなどの共有リソースにアクセスするのを禁止する。第1プロセッサ10bがブリッジ36aなどの共有リソースにアクセスするのを禁止されるため、第2プロセッサ10aは、そのエラー処理手続きの実行時、第1プロセッサ10bからの干渉なく、ブリッジ36aなどの共有リソースを安全にリセットできる(ブロック206)。適切な時点で、第2プロセッサ10aは、共有メモリ・ラインが第1プロセッサ・キャッシュ28bにキャッシュされている共有メモリ30aの共有メモリ・ラインにデータを書き込んで(ブロック208)、他方のプロセッサ10bに共有リソースに安全にアクセスできることを知らせることができ、第2プロセッサ10aはそのエラー処理手続きを完了できる(ブロック210)。
共有バス31aを介して共有メモリ30aをスヌープする第1プロセッサ10bは、第2プロセッサ10aによる共有メモリ30aのキャッシュされたメモリ・ラインへのこの書き込みを検知する。キャッシュ・コヒーレンシ・プロトコルに従い、第1プロセッサ10bは、第2プロセッサ10aによる共有メモリ30aの共有メモリ・ラインへのデータの書き込みに応答して、キャッシュ28bのキャッシュ・ラインの状態を無効状態に変更する(ブロック212)。加えて、第1プロセッサ10bはキャッシュ28bのメモリ・ラインを反復的に読み取るループ・プロセスを出て、共有メモリ30aのキャッシュされたメモリ・ラインに書き込まれた更新データを取り出せる(ブロック214)。障害の発生したリソースが例えば共有メモリ30aへのブリッジである場合、共有リソースは第1プロセッサ10bが復元された共有リソースに安全にアクセスできるように第2プロセッサ10aが復元していることになろう。
別の操作において、第1プロセッサ10bはそのエラー処理手続きを完了する(ブロック216)。第2プロセッサ10aがすべてのエラー状態からシステムを完全に復元していたら、第1プロセッサ10bはその通常の処理を再開できる。別の例では、第2プロセッサ10aの復元操作がまだ未完了のことがある。この例では、プロセッサ10aおよび10bは役割を交替して、復元プロセスまたは他のプロセスを再開できる。
また、各プロセッサがキャッシュ・ラインを反復的に読み取る(ブロック204)制限時間を設定してもよい。例えば、制限時間がキャッシュ・ラインの状態が排他状態から無効状態に変わる前に終了すると、一実施例では、第1プロセッサは他方の第2プロセッサが動作していないと想定できる。その場合、第1プロセッサは第2プロセッサの役割を引き継いで、共有リソースのリセット(ブロック206)など第2プロセッサの回復手続きを実行できる。
プロセッシング・コンプレックス8bのブリッジ36bなどの共有リソースに障害が発生することもあることは認識される。プロセッサ10c、10d間の回復操作を調整するために、キャッシュ28c、28dの一方を共有メモリ30bおよびキャッシュ・コヒーレンシ・プロトコルとともに利用できる。
説明する実施例は、標準的なプログラミング技術およびエンジニアリング技術もしくは標準的なプログラミング技術またはエンジニアリング技術を使ってソフトウェア、ファームウェア、ハードウェア、またはそのあらゆる組み合わせを製造する方法、装置、または製造物として実施できる。本明細書で使用する「製造物」という用語は、ハードウェア・ロジック(例、集積回路チップ、プログラマブル・ゲート・アレイ(PGA)、特定用途向け集積回路(ASIC)等)、または磁気記憶媒体(例、ハードディスク・ドライブ、フレキシブルディスク、テープ等)、光ストレージ(CD−ROM、光ディスク等)、揮発性および不揮発性のメモリ・デバイス(例、EEPROM、ROM、PROM、RAM、DRAM、SRAM、ファームウェア、プログラム可能ロジック等)などのコンピュータ読み取り可能媒体に実装できるコードまたはロジックをいう。コンピュータ読み取り可能媒体に実装されるコードはプロセッサからアクセスおよび実行する。好適な実施例を実施するコードは、伝送媒体を経由して、またはネットワークでファイル・サーバからもアクセス可能でもよい。この場合、コードが実施される製造物は、ネットワーク伝送路、無線伝送媒体、空間伝搬信号、電波、赤外線信号等の伝送媒体を有してもよい。このように、「製造物」は、コードを具体化する媒体を有することができる。加えて、「製造物」はコードを具体化、処理、および実行するハードウェア・コンポーネントとソフトウェア・コンポーネントの組み合わせを有してもよい。
一定の実施例は、人またはコンピュータ読み取り可能コードをコンピューティング・システムに統合する自動化プロセスによって演算命令を配備する方法に向けられ、コードはコンピューティング・システムと組み合わせて説明する実施例の操作を行える。
プロセッシング・コンプレックスが複数の論理区画をもつ実施例では、スーパーバイザーが多様な論理区画の実行を管理する。プロセッシング・コンプレックスが論理区画をもたない実施例では、スーパーバイザー・モジュールは、特定のアプリケーション次第で、中間デバイス・ドライバと、他方のプロセッシング・コンプレックスのオペレーティング・システムとは異なるタイプまたは同じタイプのオペレーティング・システムを有することができる。
説明する実施例では、制御装置6は2つのプロセッシング・コンプレックス8a、8bを含んだ。追加の実施例では、共有デバイスにアクセスするシステムが2つより多くてもよい。当該実施例では、割込みを受信するデバイス・ドライバ20aは複数のプロセッシング・コンプレックスと通信して、復元または他の操作を調整することができる。
図2の図示する操作はある順番で発生する一定のイベントを示している。代替実施例では、一定の操作は異なる順番で行ってもよく、修正または省略してもよい。また、前述のロジックにステップを追加してもよく、それでも説明する実施例に準拠する。さらに、本明細書に説明する操作は逐次的に起こしてもよく、または一定の操作を並行して処理してもよい。さらに、操作は単一プロセッシング・ユニットまたは分散プロセッシング・ユニットで行ってもよい。
様々な実施例の前述の説明は、例示および説明のために提示してきた。これはすべてを網羅するものでも、または開示したそのままの形態に制限するものでもない。上記教唆に鑑みて数多くの修正および変型が可能である。
本発明の好適な実施例を以下の図面を参照しながら単なる例として詳しく説明する。
実施例を実装するコンピューティング環境を図示する。 マルチプロセッサの操作を管理する操作を図示する。

Claims (9)

  1. キャッシュをもつ第1プロセッサと、キャッシュをもつ第2プロセッサと、前記第1プロセッサおよび前記第2プロセッサによって共有される共有メモリを含む共有リソースとを備えたシステムにおいて、
    (a)前記第1プロセッサが、前記第1プロセッサのキャッシュのライン(以下「キャッシュ・ライン」と称する)を反復的に読み取るステップを有し、
    前記キャッシュ・ラインが前記共有メモリのライン(以下「共有メモリ・ライン」と称する)からキャッシュされ、前記共有メモリ・ラインと前記キャッシュ・ラインとのコヒーレンシキャッシュ・コヒーレンシ・プロトコルに従い維持され、前記反復的なキャッシュ・ラインの読み取りが前記第1プロセッサを占有して前記第1プロセッサが前記共有リソースにアクセスするのを禁止し、
    (b)前記第2プロセッサが前記共有メモリ・ラインにデータを書き込んで、前記共有リソースに前記第1プロセッサからアクセスできることを前記第1プロセッサに知らせるステップと、
    (c)前記第1プロセッサが、前記キャッシュ・コヒーレンシ・プロトコルに従い、前記共有メモリ・ラインへの前記データの書き込みに応答して、前記キャッシュ・ラインの状態を変更するステップとをさらに有する、方法。
  2. 前記第1プロセッサが、前記キャッシュ・コヒーレンシ・プロトコルに従い前記共有メモリ・ラインに前記第2プロセッサにより書き込まれた前記データを前記キャッシュ・ラインに取り出すステップをさらに有する、請求項1に記載の方法。
  3. 前記第1プロセッサが、前記キャッシュ・ラインの読み取り、前記キャッシュ・ラインの状態の変更、および前記共有メモリ・ラインの読み取りを含む第1エラー処理手続きを実行するステップをさらに有する、請求項2に記載の方法。
  4. 前記第2プロセッサが、前記第1プロセッサが前記キャッシュ・ラインを読み取る間の前記共有リソースのリセット、および前記共有リソースのリセットの完了時の前記共有メモリ・ラインへの前記データの書き込みを含む第2エラー処理手続きを実行するステップをさらに有する、請求項3に記載の方法。
  5. 前記共有リソースがエラー状態に入る場合に、前記共有リソースが前記第1および第2プロセッサにそれぞれ第1および第2割込みを発するステップをさらに有し、前記第1プロセッサは前記第1割込みに応答して前記第1エラー処理手続きを実行し、前記第2プロセッサは前記第2割込みに応答して前記第2エラー処理手続きを実行する、請求項4に記載の方法。
  6. 前記第1プロセッサが、前記第2プロセッサが前記共有メモリ・ラインに前記データを書き込んだことを検知するようにスヌープするステップをさらに有する、請求項1に記載の方法。
  7. 前記第1プロセッサが、前記キャッシュ・ラインを反復的に読み取る期間が終了したことを判定するステップと、
    前記期間の終了時、前記第1プロセッサが前記共有リソースのリセットを含む第2エラー処理手続きを実行するステップとをさらに有する、請求項1に記載の方法。
  8. キャッシュをもつ第1プロセッサと、
    キャッシュをもつ第2プロセッサと、
    共有メモリを含む複数の共有リソースとを備え
    前記第1プロセッサが、前記共有メモリのライン(以下「共有メモリ・ライン」と称する)を前記第1プロセッサのキャッシュのライン(以下「キャッシュ・ライン」と称する)にキャッシュし且つ前記共有メモリ・ラインと前記キャッシュ・ラインのコヒーレンシをキャッシュ・コヒーレンシ・プロトコルに従い維持するようになされたロジックをもち、
    記第1プロセッサが前記キャッシュ・ラインを反復的に読み取るようになされたロジックをもち、前記反復的なキャッシュ・ラインの読み取りが前記第1プロセッサを占有して前記第1プロセッサが前記共有リソースにアクセスするのを禁止し、
    前記第2プロセッサが前記共有メモリ・ラインにデータを書き込んで、前記共有リソースに前記第1プロセッサからアクセスできることを前記第1プロセッサに知らせるようになされたロジックをもち、
    前記第1プロセッサが、前記キャッシュ・コヒーレンシ・プロトコルに従い、前記共有メモリ・ラインへの前記データの書き込みに応答して、前記キャッシュ・ラインの状態を変更するようになされたロジックをもつ、システム。
  9. コンピュータ・システムに、請求項1ないし請求項の何れかの方法に記載された各ステップを実行させる、コンピュータ・プログラム。
JP2007541929A 2004-11-30 2005-11-11 マルチプロセッサの操作を管理する方法、システム、およびコンピュータ・プログラム Expired - Fee Related JP4641545B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/001,476 US7418557B2 (en) 2004-11-30 2004-11-30 Managing multiprocessor operations
PCT/EP2005/055907 WO2006058826A1 (en) 2004-11-30 2005-11-11 Managing multiprocessor operations

Publications (3)

Publication Number Publication Date
JP2008522264A JP2008522264A (ja) 2008-06-26
JP2008522264A5 JP2008522264A5 (ja) 2008-10-02
JP4641545B2 true JP4641545B2 (ja) 2011-03-02

Family

ID=35645753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007541929A Expired - Fee Related JP4641545B2 (ja) 2004-11-30 2005-11-11 マルチプロセッサの操作を管理する方法、システム、およびコンピュータ・プログラム

Country Status (9)

Country Link
US (2) US7418557B2 (ja)
EP (1) EP1839156B1 (ja)
JP (1) JP4641545B2 (ja)
CN (1) CN100568199C (ja)
AT (1) ATE402444T1 (ja)
DE (1) DE602005008477D1 (ja)
IL (1) IL183470A (ja)
MX (1) MX2007006350A (ja)
WO (1) WO2006058826A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536694B2 (en) * 2004-11-30 2009-05-19 International Business Machines Corporation Exception handling in a multiprocessor system
US7937709B2 (en) 2004-12-29 2011-05-03 Intel Corporation Synchronizing multiple threads efficiently
JP2006227856A (ja) * 2005-02-17 2006-08-31 Hitachi Ltd アクセス制御装置及びそれに搭載されるインターフェース
US7818056B2 (en) * 2005-03-24 2010-10-19 Cardiac Pacemakers, Inc. Blending cardiac rhythm detection processes
JP4831599B2 (ja) * 2005-06-28 2011-12-07 ルネサスエレクトロニクス株式会社 処理装置
US7849362B2 (en) * 2005-12-09 2010-12-07 International Business Machines Corporation Method and system of coherent design verification of inter-cluster interactions
JP2007219571A (ja) * 2006-02-14 2007-08-30 Hitachi Ltd 記憶制御装置及びストレージシステム
WO2012014285A1 (ja) * 2010-07-27 2012-02-02 富士通株式会社 割込制御方法、マルチコアプロセッサシステム、および割込制御プログラム
JP5745868B2 (ja) * 2011-01-18 2015-07-08 トヨタ自動車株式会社 マルチプロセッサシステム
JP5614419B2 (ja) 2012-02-29 2014-10-29 富士通株式会社 情報処理装置、制御方法および制御プログラム
CN104321750B (zh) * 2012-04-25 2019-03-08 英特尔公司 在共享存储器编程中保持释放一致性的方法和系统
US9135175B2 (en) * 2012-12-21 2015-09-15 Oracle International Corporation Distributed cache coherency directory with failure redundancy
CN103745315A (zh) * 2013-12-31 2014-04-23 太原理工大学 重点项目行政执法监察联动管理方法及系统
US10310982B2 (en) * 2016-12-15 2019-06-04 International Business Machines Corporation Target cache line arbitration within a processor cluster
US10339064B2 (en) * 2017-03-29 2019-07-02 International Business Machines Corporation Hot cache line arbitration
US10915445B2 (en) 2018-09-18 2021-02-09 Nvidia Corporation Coherent caching of data for high bandwidth scaling
CN114327920B (zh) * 2022-03-16 2022-06-21 长沙金维信息技术有限公司 用于多处理器系统的硬件资源共享方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181889A (ja) * 1998-12-15 2000-06-30 Hitachi Ltd プロセッサおよびマルチプロセッサシステム
US6751705B1 (en) * 2000-08-25 2004-06-15 Silicon Graphics, Inc. Cache line converter

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08202622A (ja) * 1995-01-31 1996-08-09 Fujitsu Ltd 分散型メモリ構成のキャッシュ制御方法
US5930821A (en) * 1997-05-12 1999-07-27 Integrated Device Technology, Inc. Method and apparatus for shared cache lines in split data/code caches
US6314526B1 (en) 1998-07-10 2001-11-06 International Business Machines Corporation Resource group quorum scheme for highly scalable and highly available cluster system management
US6467050B1 (en) 1998-09-14 2002-10-15 International Business Machines Corporation Method and apparatus for managing services within a cluster computer system
US6622260B1 (en) 1999-12-30 2003-09-16 Suresh Marisetty System abstraction layer, processor abstraction layer, and operating system error handling
US6772298B2 (en) * 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US6859866B2 (en) 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000181889A (ja) * 1998-12-15 2000-06-30 Hitachi Ltd プロセッサおよびマルチプロセッサシステム
US6751705B1 (en) * 2000-08-25 2004-06-15 Silicon Graphics, Inc. Cache line converter

Also Published As

Publication number Publication date
US20080168238A1 (en) 2008-07-10
IL183470A0 (en) 2007-09-20
MX2007006350A (es) 2007-06-19
ATE402444T1 (de) 2008-08-15
EP1839156B1 (en) 2008-07-23
CN101065736A (zh) 2007-10-31
US7418557B2 (en) 2008-08-26
IL183470A (en) 2011-03-31
JP2008522264A (ja) 2008-06-26
CN100568199C (zh) 2009-12-09
US7650467B2 (en) 2010-01-19
US20060117147A1 (en) 2006-06-01
DE602005008477D1 (de) 2008-09-04
EP1839156A1 (en) 2007-10-03
WO2006058826A1 (en) 2006-06-08

Similar Documents

Publication Publication Date Title
JP4641545B2 (ja) マルチプロセッサの操作を管理する方法、システム、およびコンピュータ・プログラム
US6912621B2 (en) Method and apparatus for updating data in mass storage subsystem using emulated shared memory
US7107411B2 (en) Apparatus method and system for fault tolerant virtual memory management
US5423044A (en) Shared, distributed lock manager for loosely coupled processing systems
US7343515B1 (en) System and method for performing error recovery in a data processing system having multiple processing partitions
JP5265654B2 (ja) システムにおけるメモリ冗長性の制御
JP2003162447A (ja) エラー回復
US10049036B2 (en) Reliable distributed messaging using non-volatile system memory
JP4939180B2 (ja) 接続された装置を構成するための初期設定コードの実行
JP2006195977A (ja) ストレージ・アクセス要求をリダイレクトするための方法、システム、および製品
JP5285786B2 (ja) 回復動作中に使用するためのキャッシュ内の修正済みデータを決定するためのシステム
JPH11161625A (ja) コンピュータ・システム
US9632934B2 (en) Maintaining coherence when removing nodes from a directory-based shared memory system
WO2006120225A2 (en) Dumping data in processing systems to a shared storage
US7536694B2 (en) Exception handling in a multiprocessor system
US20050289545A1 (en) Method to enable user mode process to operate in a privileged execution mode
JP2024505635A (ja) 監視排他命令
EP1895427B1 (en) Data processing system, data processing apparatus, and data processing method
US20060106996A1 (en) Updating data shared among systems
US10789168B2 (en) Maintaining multiple cache areas
US7219256B2 (en) Method and apparatus for controlling data storage within a data storage system
JP3312652B2 (ja) マルチプロセッサアーキテクチャでのデータベース管理方式
US11016896B2 (en) Reducing overhead of managing cache areas
US10795814B2 (en) Placement of local cache areas
CN117632599A (zh) 纵向扩展numa系统中的机箱维修和迁移

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080813

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080813

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20100721

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20100809

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101029

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: 20101124

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101129

R150 Certificate of patent or registration of utility model

Ref document number: 4641545

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees