JP3589394B2 - リモート資源管理システム - Google Patents

リモート資源管理システム Download PDF

Info

Publication number
JP3589394B2
JP3589394B2 JP07553199A JP7553199A JP3589394B2 JP 3589394 B2 JP3589394 B2 JP 3589394B2 JP 07553199 A JP07553199 A JP 07553199A JP 7553199 A JP7553199 A JP 7553199A JP 3589394 B2 JP3589394 B2 JP 3589394B2
Authority
JP
Japan
Prior art keywords
remote
controller
interface
data
fetch
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
JP07553199A
Other languages
English (en)
Other versions
JP2000076130A (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 JP2000076130A publication Critical patent/JP2000076130A/ja
Application granted granted Critical
Publication of JP3589394B2 publication Critical patent/JP3589394B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/0817Cache consistency protocols using directory methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)
  • Memory System (AREA)

Description

【0001】
【発明の属する技術分野】
本発明はコンピュータ・システムに関して、特に、高速リモート記憶クラスタ・インタフェース制御装置に関する。
【0002】
【従来の技術】
歴史的に、システム設計者は、大規模な密結合対称マルチプロセッサ(SMP)・コンピュータ・システムにおいて、高性能を達成するために、様々な手段を使用してきた。そうした手段は、個々のプロセッサまたはプロセッサ・クラスタを、1つの共用システム・バスを介して結合するものから、プロセッサをクラスタとして一緒に結合し、クラスタがクラスタ−クラスタ間インタフェースを用いて通信するもの、更に、多数(すなわち32乃至1024)のプロセッサから構成される並列システムが、中央スイッチ(すなわちクロスバー・スイッチ)を介して相互接続される、集中的に相互接続されたネットワークに及ぶ。
【0003】
共用バス方法は、通常、最も廉価なシステム設計を提供する。なぜなら、単一バス・プロトコルが、複数のタイプの資源をサービスするからである。更に、追加のプロセッサ、クラスタまたは周辺装置が経済的にバスに接続され、システムを発展させる。しかしながら、大規模なシステムでは、調停オーバヘッドと結合されるシステム・バス上の輻輳(congestion)が、全体システム性能を劣化させ、低SMP効率を生成する傾向がある。これらの問題は、500MHzを超える周波数で実行されるプロセッサを使用する対称マルチプロセッサ・システムでは侮り難い。
【0004】
集中的に相互接続されるシステムは通常、システム内の全てのプロセッサに対して、共用資源に対する等しい待ち時間の利点を提供する。理想的なシステムでは、等しい待ち時間は、システム構造またはメモリ階層の事前知識無しに、複数のアプリケーション、またはアプリケーション内の並列スレッドが、使用可能なプロセッサ間で分散されることを可能にする。これらのタイプのシステムは一般に、1つ以上の大規模クロスバー・スイッチを用いて実現され、データをプロセッサとメモリの間で転送する。基礎を成す設計はしばしば、大規模ピン・パッケージング要求、及び高価なコンポーネント・パッケージングの必要性を生じ得る。更に、有効な共用キャッシュ構造を実現することは困難である。
【0005】
密結合クラスタ化方法は、妥協策として作用する。本願では、用語”クラスタ”は、1つの主メモリを共用するプロセッサの集合を指し示し、従って、特定のクラスタへの親和性に関係なく、システム内の任意のプロセッサが、主メモリの任意の部分をアクセスすることができる。非一様メモリ・アクセス(NUMA)・アーキテクチャと異なり、ここでの例で参照されるクラスタは、メモリと各クラスタ内に配置される第2レベル・キャッシュ間のデータ・コヒーレンスを維持するために、専用のハードウェアを使用し、それにより、メモリ階層またはメモリ・バンク・インタリーブなどの物理区分の無い、統一された1つのイメージをソフトウェアに提供する。これらのシステムの1つの利点は、クラスタ内の密結合プロセッサの性質が、データがそれを必要とするプロセッサの近くに存在するとき、優れた性能を提供することである。例えば、データがクラスタの第2レベル・キャッシュ内、またはそのクラスタに接続されるメモリ・バンク・インタリーブ内に存在する場合である。更に、通常、中央相互接続システム内で見い出される大規模Nウェイ・クロスバー・スイッチと比較し、よりコスト効率の良いパッケージングを実現する。しかしながら、クラスタ化方法は、プロセッサが頻繁に他のクラスタからデータを要求する場合、低性能を生じ得、続く待ち時間が増大したり帯域幅が不十分になる。
【0006】
中央相互接続システムに関連する多くの高価な問題が廉価に解決されるまで、市場は共用バスまたはクラスタ設計にもとづく経済的なシステムとして存在し続けることであろう。本発明は従来のインタフェース設計の多くの欠点を除去し、高価なハイ・レベル・パッケージまたは過度なオンボード・キャッシュの必要無しに、システムがプロセッサ性能を最大化するものである。本発明に関連する分野の従来技術は、廉価な高周波記憶制御装置を設計する全体的な問題の、孤立した側面だけを解決する様々なアプローチを教示する。しかしながら、以下の例で示されるように、それらは本発明で掲げられる目的を満足する完全な解決策を提供するには及ばない。
【0007】
対称マルチプロセッサの2つのクラスタからなるシステムが、Krygowskiらによる1985年3月5日付けの米国特許第4503497号で述べられている。この発明は、専用のストアイン・キャッシュを有するプロセッサ間の、キャッシュ・コヒーレンスを維持する改善された方法を教示する。しかしながら、これはクラスタ内に存在し、そのクラスタに接続される全てのプロセッサにより共用される、ストアイン・パイプライン化レベル2(L2)キャッシュに関連する様々な問題を解決しない。この方法はまた、全てのタイプのオペレーション(プロセッサ、I/O、メモリ、同報通信、相互クラスタ同期など)に対して、クラスタ・インタフェースの総効率を最大化することに着目していない。
【0008】
超大規模SMPシステムの例が、Millerらによる1992年12月1日付けの米国特許第5168547号、及びChenらによる1993年3月23日付けの米国特許第5197130号で開示されている。両者は多数のクラスタを含むコンピュータ・システムについて述べており、各々のクラスタが、多数の(すなわち32個の)プロセッサ及び外部インタフェース手段を有する。各プロセッサは、全てのクラスタ内の全ての共用資源に対して対称アクセスを有する。コンピュータ・システムは、大規模クロスバー・スイッチと、高度インタリーブド共用主メモリと、出所と宛先間の経路が使用可能になるまでトランザクションをステージするための、一連のインバウンド・キュー及びアウトバウンド・キューと、データの同期及び共用のために使用される、クラスタ調停手段内の大域資源のセットとの組み合わせに頼ることにより、その性能目標を達成する。この開示はまた、階層メモリ・システム(第2レベル・キャッシュを含む)を使用すること無く、複数の並列プロセッサ間でジョブを区分する、より効率的な手段を実現するアーキテクチャを教示する。
【0009】
複数のI/O装置をクラスタ化し、それらを高機能制御装置により管理することにより、全体システム性能を向上するための幾つかの方法が考案された。Rawlingsらによる1979年5月29日付けの米国特許第4156907号、同じくRawlingsらによる1980年4月29日付けの米国特許第4200930号は、ホスト・システムからのデータ転送及びメッセージ転送をオフロードするための、ファームウェアにより使用可能になるI/Oプロセッサを含む、改善されたアダプタ・クラスタ・モジュール及びデータ通信サブシステムを教示する。この発明は無数の伝送プロトコルを用いて、様々なリモート周辺装置とのインタフェースを可能にする。アダプタ・クラスタ・モジュールは主に、プロトコルが不一致の下で作用する”バイト”・トラフィックを、単一プロトコルを用いて、より効率的にホスト・システムに伝送される全メッセージに変換することに関わる。この発明はまた、ホスト・システムが機能停止を生じるときでも、通信サブシステムがリモート周辺伝送を処理し続けることを可能にする、幾つかの信頼性機構及び可用性機構を使用する。そこで開示される技術は、確かにI/Oサブシステム・レベルにおける性能問題を改善するが、それらはホスト・コンピュータ・システム内の2つのプロセッサ間の、または1つのプロセッサと主メモリ間の高速データ転送の必要性を解決しない。
【0010】
本発明により解決される全体的な問題の断片を解決する幾つかの発明が存在するが、どれも全ての側面を解決しない。より重要な点は、これらの発明で開示される概念の集結が、本発明により提供される全体効率の度合いを与えないことである。例えば、Barucchiらによる1995年2月21日付けの米国特許第5392401号は、2つのプロセッサ間でデータを転送する改善された方法を教示する。しかしながら、この発明はクロスバー・スイッチの使用に頼り、共用第2レベル・キャッシュのキャッシュ・コヒーレンスを教示しない。Fletcherによる1984年4月24日付けの米国特許第4445174号は、専用キャッシュ及び共用レベル2(L2)キャッシュによりプロセッサをインタロックする手段を教示するが、クラスタ−クラスタ間インタフェースに関連する帯域幅及び待ち時間の問題を解決しない。Chinnaswamyらによる1993年2月9日付けの米国特許第5185875号は、データをキャッシュにロードするのと同時に、データを被要求プロセッサに転送することにより、記憶制御ユニット間のデータ転送待ち時間を低減する方法を教示する。類似の技術が今日、コンピュータ・システム設計において広く使用されているが、この発明は、記憶制御ユニットがキャッシュへのアクセスを要求する各システム資源(I/O及びメモリを含む)に対して、専用ピン・インタフェースを提供できない場合に生じる問題を解決しない。Keeleyによる1988年11月15日付けの米国特許第4785395号は、少なくとも1対のプロセッサの間でキャッシュを共用する方法を教示する。しかしながら、この特許は、全てのプロセッサがキャッシュを等しい待ち時間でアクセスすることを仮定する。
【0011】
幾つかの発明が、共用バス・システムにおいてトラフィックを調停する技術について述べており、そこでは、個々のプロセッサまたはプロセッサのクラスタが、共用バスを介して、主メモリ及び外部I/O装置と通信する。例えば、Fischerによる1988年11月15日付けの米国特許第4785394号は、共用バスの使用を調停する方法について述べている。その技術は、応答者にイニシエータよりも高い優先権を与え、たとえ受信モジュールが使用中であっても、要求が受信モジュールに対して開始されることを可能にする。本発明は、リモート側の資源が作業に順応できる場合にだけ、クラスタ−クラスタ間インタフェースを使用中にすることにより、この調停オペレーションを改善する。更に、応答者とイニシエータ間の調停が、各サイクル毎に固定の優先権無しに動的に実行される。Tetrickらによる1986年2月11日付けの米国特許第4570220号は、シリアル・バス及びパラレル・バスの組み合わせによりシステム・バスを構成する。バスが幾つかの”エージェント”により共用され、エージェントはハンドシェーク・シーケンスに従事し、バスの使用権を獲得しなければならない。本発明は任意のタイプのバス交渉を実行する必要無しに、1クロック・サイクルで新たな要求を動的に開始できるように、リモート資源を追跡する。
【0012】
【発明が解決しようとする課題】
本発明の目的は、対称マルチプロセッサ・システムにおける、高速リモート記憶クラスタ・インタフェース制御装置を提供することである。
【0013】
【課題を解決するための手段】
本発明は、双節(bi−nodal)SMPシステム内の2つのクラスタ間のインタフェースを管理する手段について述べる。好適な実施例が、複数の中央プロセッサを含む対称多重処理システム内に組み込まれる。各中央プロセッサは、専用L1キャッシュ、複数のI/Oアダプタ、及び主メモリを有し、任意のプロセッサまたはI/Oアダプタが、メモリの任意の部分をアクセスできる。プロセッサ及びI/Oアダプタの総数は、2つのクラスタに等しく分割される。更に、主メモリがバンクまたはインタリーブから構成され、その半分が各クラスタに接続される。
【0014】
各クラスタ内には記憶制御装置が存在し、これは共用第2レベル・キャッシュ、様々な制御装置、及びあらゆるプロセッサ、I/Oアダプタ、及び主メモリとの個別のインタフェース(またはポート)を含む。本実施例で表されるキャッシュは、複数のバンクまたはインタリーブからなり、その内容が8ウェイ・アソシアティブ・ディレクトリにより管理される。図1に示される記憶制御装置は、主要機能要素を表し、更に好適な実施例に関連して詳述される。しかしながら、1クラスタ内の記憶制御装置の概要は、本発明の側面を理解する上で有益である。
【0015】
記憶制御装置の主要機能は、プロセッサ及びI/Oアダプタからの、主メモリに対するデータ・フェッチ要求及びストア要求を処理することである。記憶制御装置は、ソフトウェア及びオペレーティング・システムからは体系的に見えない共用第2レベル・キャッシュを含むので、記憶制御装置はディレクトリ・アクセス及びキャッシュ・アクセスを実行する役目をする。全ての入来要求が記憶制御装置上のポートに入力し、そこで中央プロセッサ(CFAR)またはI/O制御装置により受信される。これらの制御装置は中央優先ユニットに要求を生成し、中央優先ユニットが要求を調停し、リクエスタの1つをそのアドレスにもとづき選択し、2つのマルチステージ・パイプラインの1つに入力する。パイプラインの各ステージの間、リクエスタはキャッシュ、ローカル・キャッシュ・フェッチ/ストア制御装置、データ経路制御、データ経路FIFOバッファ、リモート・キャッシュ・フェッチ/ストア制御装置などの、様々な資源をアクセスし、それらを予約する。
【0016】
要求がパイプラインから出力するとき、ローカル・フェッチ/ストア制御装置の1つが、完了を通じてオペレーションを管理する役目をする。しばしばこれは、パイプラインを通じる追加の経路を要求し、それによりローカル・フェッチ/ストア制御装置は、中央優先調停にも参加しなければならず、リクエスタとも見なされる。本実施例では、ローカル・フェッチ/ストア制御装置の一部として、キャッシュ制御装置及び主メモリ制御装置を含み、それらの間で、次のオペレーション、すなわち、キャッシュ・インタリーブからのデータのアクセス、キャッシュ・ミス発生時における主メモリへのデータ・アクセスの処理、キャッシュ・インタリーブへのストア・オペレーションの実行、及び主メモリ・アクセスからの入来データのための空間を確保するために、(最長未使用法による)キャッシュから主メモリへの時効データの追放のために必要な全ての資源(FIFOバッファ及びクロスポイント・スイッチなどのデータ経路要素)を含む。
【0017】
前述のように、主メモリ・バンクは双節SMPシステムの2つのクラスタ間で物理的に分散される。しかしながら、主メモリは、SMPシステム内のどこかに配置される任意のプロセッサまたはI/Oアダプタにとって、1つの統一されたエンティティとして現れる。従って、本実施例は、リモート・フェッチ/ストア制御装置として知られる、追加の制御装置のセットを組み込む。記憶制御装置は、各クラスタ上で、メモリ・バンクに割当てられる主メモリ・アドレスを追跡する。データ・アクセス(フェッチ要求)が、ローカル・クラスタ上でキャッシュ・ミスを発生する度に(ここで用語”ローカル”は、発信元プロセッサまたはI/Oアダプタが接続されるクラスタを指し示す)、ローカル・フェッチ/ストア制御装置はリモート(または”他の”)・クラスタに、データがそのキャッシュ内に存在するか否かを問い合わさなければならない。これらのリモート問い合わせは、リモート・フェッチ制御装置により処理され、それらはローカル・フェッチ/ストア制御装置と同様に、要求を中央優先ユニットに発行し、資源をアクセスする。
【0018】
更に、データ・アクセスがリモート・キャッシュにおいてミスするが、アドレスがそのアドレスがリモート・クラスタに接続されるメモリ・バンクに属することを示す場合、リモート・フェッチ/ストア制御装置がまた、主メモリ制御装置と相互作用し、主メモリ・アクセスを開始する。メモリへのデータの記憶を必要とするオペレーション(時効データのキャッシュからの追放など)のために、アドレスが再度、ローカル・フェッチ/ストア制御装置がオペレーション全体を処理できるか否か、或いはリモート・ストア・オペレーションが双節インタフェースを介して開始されなければならないかを判断する。この状況では、リモート・ストア・オペレーションがリモート・ストア制御装置により処理され、後者が主メモリ制御装置と相互作用し、データを主メモリ・インタリーブに記憶する。ローカル・フェッチ/ストア制御装置同様、リモート・フェッチ/ストア制御装置も、クラスタ間オペレーションを処理するために必要な全ての資源(データ経路、FIFOバッファ、及びクロスポイント・スイッチを含む)を含む。
【0019】
本発明は、前述のリモート・フェッチ/ストア制御装置を含む資源を管理し、これらのリモート・フェッチ/ストア制御装置に作業を分配するリモート管理システムに関する。リモート・フェッチ/ストア制御装置は、エージェントとして動作し、作業要求を開始したリクエスタに関する知識を要求すること無く、所望のオペレーションを実行する。対称マルチプロセッサの複数のクラスタ間の絶え間の無い通信の必要無しに、作業を処理するためにリモート資源が使用可能なときにだけ作業が分配される。従って、最小のインタフェース通信信号が使用される。
【0020】
本発明のリモート資源管理システムは、対称マルチプロセッサの2つのクラスタ間のインタフェースを、少ない数の入出力ピンを用いて、効率的に管理する。ピン制限を克服し、その上、S/390エンタープライズ・サーバなどの非常に複雑なコンピュータ・システム内に統合することを可能にするため、幾つかの技術が使用される。ここでS/390サーバでは、1クラスタが複数の超高速プロセッサ、共用L2キャッシュ、複数のI/Oアダプタ手段、及び主メモリを含み得る。こうしたシステムでは、性能が際だって優れ、キャッシュ・ミスに関連付けられる待ち時間が最小化されなければならない。従って、本発明はパッケージング・コストを最小化する一方で、全体システム性能を最大化することを探究する。
【0021】
まず第1に、各クラスタ上の1つのインタフェース・ユニットが、インタフェースの完全な制御を担う。こうした制御には、待ち行列化された要求を優先順位付けするステップ、インタフェースを通じて新たなオペレーションを送信するステップ、他の側からの返却応答を処理するステップ、及びクラスタ間の全てのデータの転送を監視するステップが含まれる。制御I/Oの数の制限により、本発明はリモート資源管理と、コマンド再マップ化との新たな組み合わせにより、伝送される必要がある情報の量を最小化する。ローカル・インタフェース制御装置は、作業要求をリモート側に開始するだけでなく、リモート側のフェッチ/ストア制御装置を管理し、それにより新たなオペレーションを使用可能な制御装置に即時経路指定する。リモート・フェッチ/ストア制御装置は単に、ローカル・インタフェース制御装置のために作業するエージェントとなり、ローカル・インタフェース制御装置がリクエスタのために作業する。このように活動することにより、オペレーションの所有者を識別する情報を送信する必要性を排除する。なぜなら、リモート側はそれを知る必要性を有さないからである。
【0022】
リモート制御装置の更なる単純化が、コマンド再マップ化オペレーションを通じて達成され、それにより幾つかのローカル・オペレーションが、1つのアトミック・リモート・オペレーションに結合される。例えば、データの読出し専用コピーに対するプロセッサ・フェッチ要求、及び記憶保護キーを含む読出し専用データに対するフェッチ要求が、リモート・クラスタ上のフェッチ制御装置が、同一の状態図及びキャッシュ管理オペレーションを使用することを要求する。従って、インタフェース制御装置はこれらの両方を、読出し専用ライン・フェッチとして知られる、1つの単純化されたリモート記憶クラスタ(RSC)・インタフェース制御装置コマンドに再マップし、それによりリモート記憶クラスタ・インタフェース制御装置(RSC)により処理されなければならないオペレーションの数を低減する。
【0023】
この再マップ化オペレーションの追加の利点は、不要なデータ転送を除去することにより、インタフェース・データ経路をより効率的に管理する能力である。64バイトのI/Oストアについて鑑みると、入来する64バイトが主メモリに記憶される以前に、同一のデータ・ラインの最も最近のコピーと併合されることが要求される。このオペレーションは、ターゲット主記憶アドレス及び現キャッシュ状態に依存して、次の3つの異なる状況を生じ得る。
1.データがリモート側の主メモリをターゲットとし、ローカル・キャッシュにおいてミスする場合、I/Oストア・データが他の側に送信され、併合されなければならない。このことはRSCインタフェース制御装置(RSC IC)が、ローカル・クラスタからリモート・クラスタにストア・オペレーションを実行することを必要とする。
2.データがローカル・メモリをターゲットとするが、リモート・キャッシュにおいてヒットする場合、リモート側からラインが検索され、ローカル・クラスタ上で併合が実行される必要がある。このことは可能なデータ・フェッチと共に、リモート側との相互問い合わせを必要とする。
3.ラインのコピーが両方のキャッシュ内に存在する場合、リモート側のラインを無効にするアクションだけが要求される。なぜなら、入来する64バイトは、ローカル・キャッシュ内のコピーと併合されるからである。
【0024】
より単純な設計は、インタフェースを介して、I/Oストア・コマンドを無条件に64バイトのデータと一緒に送信することである。すると、他の側のリモート・フェッチ/ストア制御装置が、ディレクトリ・ステータスにもとづき、必要なアクションを実行する。しかしながら、3つのケースの内の2つにおいて、ストア・データの転送は、不必要にローカル−リモート間データ・バスを拘束する。ディレクトリ情報を送信するために、追加の制御ラインも要求され得る。本発明は、最後の2つのケースを、それぞれ”強制追放(force cast out)”コマンド及び”読出し専用無効(read−only invalidate)”コマンドに再マップする、高機能インタフェース制御装置を使用する。
【0025】
コマンド再マップ化は幾つかの利点を提供する。第1に、それはリモート・フェッチ/ストア制御装置の設計を単純化する。なぜなら、多くのオペレーションが、単純なアトミック・インタフェース・オペレーションのサブセットにマップされるからである。第2に、クラスタ間でディレクトリ情報を送信するために、追加の制御I/Oが要求されない。第3に、待ち時間の増加を防止するために、コマンド再マップ化が、新たなコマンドがインタフェースを横断するための優先順位が発行されるのと同一サイクル内に実行される。
【0026】
リモート管理システムは、1つのまたは複数のパイプライン化レベル2キャッシュをサービスするための、多数のフェッチ制御装置及びストア制御装置を含む、ハイエンド記憶サブシステムとインタフェースするように設計される。一連の優先ステーションが、インタフェースを介して送信される要求を究極的に選択するために使用される。複数のパイプが関与するが、各パイプ内の優先ステーションは、フェッチ要求またはストア要求の1つを選択し、RSC ICに転送する。同一のサイクルの間、RSC ICは高性能優先オペレーションを使用し、コマンド・タイプ及び資源可用性にもとづき、最適な要求を選択する。複数のパイプが任意の所与のサイクルにおいて、インタフェースの使用を要求できるので、リモート・フェッチ制御装置が使用可能である限り、オペレーションはストアよりもフェッチを優先する。それ以外では、リモート・ストア制御装置が使用可能である限り、ストアが実行され、データ経路がそれらのストア・オペレーションにとって使用可能になる。両方の要求がフェッチであり、両方が使用可能な資源を有する場合、単純なラウンド・ロビンが優遇される方の要求を決定する。両方の要求がストアの場合、どちらのパイプが使用可能な資源を有するかにより、勝者が決定される。再度、両方共に使用可能な資源を有する場合、単純なラウンド・ロビンが使用される。この方法は事実上、作業要求及び使用可能な資源が存在する限り、コマンドが伝送されることを保証する。更に、プロセッサ・フェッチに与えられる優先処置が、全体システム性能を向上させる。最後に、ローカル・インタフェース制御装置内のリモート資源の管理により、インタフェース・サイクルがリモート側で結局、待ち行列化される作業の伝送のために浪費されないように保証される。
【0027】
更に、L1キャッシュ・ミスによるプロセッサのデータ・アクセス待ち時間を低減するために、RSC ICは、フェッチ制御装置またはストア制御装置がインタフェースの使用を要求していないサイクルの間、”高速路指定(fast−pathing)”技術を使用する。これらのサイクルの間、全てのパイプが有効なCPフェッチのためにモニタされる。もしそれが見い出されると、即時リモート側にディスパッチされ、その間、ローカル・キャッシュ・フェッチ制御装置が並列にロードされる。これはフェッチ要求が、リモート側への1サイクルのヘッド開始を獲得することを可能にし、それにより返却データの待ち時間を低減する。
【0028】
リモート・キャッシュをヒットするデータ・フェッチの最良の待ち時間と、ローカル主メモリからのデータ・アクセスとの間には、大きな相違が存在するので、RSC ICは、リモート・キャッシュ・ヒットをローカル・フェッチ制御装置に伝達する能力を有し、それにより、主記憶アクセスの取り消しを可能にする。このことは別の要求のためにメモリ・バンクを解放することにより、システム性能全体に寄与する。
【0029】
RSC ICは同期応答バス及び非同期応答バスの両方を使用し、キャッシュ・コヒーレンスを維持する一方、性能を最大化する。要求がリモート側のキャッシュ状態をテストする以前に、オペレーションを完了するための正確なパイプ・サイクル数を決定することは不可能であるので、非同期応答バスが全ての最終応答に対して使用される。これらの応答は、リモート・オペレーションの公式の終りをマークし、しばしばオリジナル・リクエスタに転送される。更に、最終応答はデータ変更情報(ライン変更ステータス)によりタグ付けされ、これがローカル・ディレクトリが適切な最終状態により更新されることを可能にする。最終応答は、単一の最終応答インタフェース・バスの競合により遅延され得るので、初期リモート・キャッシュ相互問い合わせ(XI:cross interrogation)の結果を、それが知れるや否や報告することにより性能が改善され得る。RSCは常に、このXI結果を同期XI応答バスを用いて、最小の時間フレーム内に報告できる。これが可能な理由は、記憶クラスタ(SC)の中央優先ステーションが、リモート側から受信される新たな要求が、即時適切なパイプラインに受け入れられるように保証するからである。初期ディレクトリ検索が固定パイプ・サイクル内に実行され、結果がXI応答バスを介して返送される。オペレーションを開始したインタフェース制御装置は、XI応答が将来の固定サイクル数以内に使用可能であることを知り、従って、単純なステージング機構が、ヒット/ミス結果を要求フェッチ/ストア制御装置に転送するために使用される。
【0030】
制御インタフェースを管理することに加え、RSC ICは全てのクラスタ−クラスタ間データ・フローを管理する。本発明は、各パイプが双方向に1サイクル当たり16バイトを転送することを可能にする、十分なデータ・フローI/Oを含み、RSC ICは潜在的に、1サイクル当たり64バイトの最大スループットを使用することができる。2つの単方向データ経路が存在するが、所与のデータ経路が、クラスタAからクラスタBに転送されるストア・データ、及びクラスタBからクラスタAに返却されるフェッチ・データのための、コンジット(conduit)として作用しなければならない。RSC ICは衝突を回避するだけでなく、予めバスを予約すること無くそれを実行する。このことはRSC ICが、ローカル・ストア制御装置からの要求を、常駐リモート・フェッチ制御装置からの要求と比較し、フェッチ・データを返却することを可能にする。両者がデータ経路を競合するサイクルの間、優先権が返却フェッチ・データに与えられる。再度、これは全体システム性能を支援する。更に、フェッチ・データがリモート主メモリから獲得される場合、データがメモリ・バンクからアクセスされるとき、RSC ICが対応するデータ経路をモニタする。RSCデータ経路が使用可能な場合、データがリモート・フェッチ・バッファをバイパスし、それにより、データの一時的バッファリングに関連付けられる正規の待ち時間を低減する。
【0031】
本発明は、全体システム・スループットを改善するために複製される、リモート記憶制御装置の資源の管理を改善する方法を証明した。例えば、リモート・キャッシュをヒットする、連続的フェッチ要求の効率を最大化するために使用される1つの技術は、複製のリモート・フェッチ資源の間で、作業要求を交互することである。全てのフェッチが、転送されるデータの最初の16バイトに相当する最終応答により終了する。これに関する利点は、リモート・フェッチ制御装置のバッファがまだ空の間に、リモート・フェッチ資源が即時新たな作業に割当てられることである。逆に欠点は、新たな作業の一部が、リモート・キャッシュをヒットするデータ・フェッチである場合に生じる。バッファはまだ空であろうから、リモート・フェッチ制御装置はバッファが使用可能になるまで、要求をパイプを通じてリサイクルしなければならない。RSC ICは、複製のリモート・フェッチ制御装置が使用可能であれば、第2のフェッチ要求をその複製のリモート・フェッチ制御装置に送信することにより、この状況を緩和する。それにより、第1のバッファがまだそのデータ転送を完了している間、第2のリモート・フェッチ制御装置が、そのバッファのロードを開始できる。このことは、第1のバッファの転送の完了時に、第2のバッファが即時、そのデータをインタフェースを介して転送することを可能にする。
【0032】
リモート・インタフェースはまた、オペレーションがリモート側で成功裡に完了し得ない場合に、多くのオペレーションが再試行されるようにすることにより、高い信頼性及び可用性を示す。これらのタイプの問題は、2つの主なカテゴリ、すなわち拒絶とインタフェース・エラーとに分類される。オペレーションは、潜在的な相互クラスタ・デッドロックを回避するため、リモート・クラスタにより拒絶され得る。これらのデッドロックは、記憶サブシステム・フェッチ制御装置及びストア制御装置の数が、それらにサービスするRSC資源の数よりも多い場合に発生し得る。リモート・フェッチ制御装置及びストア制御装置は、相互クラスタ・デッドロックを生じ得るオペレーション・シーケンスをモニタするように設計される、デッドロック回避機構を含む。こうした状況の検出に際して、制御装置は特殊な拒絶応答を開始クラスタに返却することにより、保留のオペレーションを拒絶する。RSC ICが次に、拒絶を発信元フェッチ/ストア制御装置に転送し、オペレーションが再試行される。デッドロック窓が消えるまで、オペレーションは連続的に拒絶され、再試行される。新たなRSCオペレーションに付随する任意の制御情報に対して、インタフェース・パリティ・エラーが検出されるとき、他のタイプの回復が発生する。コマンドが送信された後、固定サイクル数以内にインタフェース・エラー・ステータスを伝送するために、同期インタフェースが使用される。エラーの場合、発信元フェッチ/ストア制御装置がそれを通知され、実質的に回復の適格性を決定する。RSC ICは自動的に対応するRSC資源をリセットし、オペレーションが再度要求されることを可能にする。これらの及び他の改善が、以下で詳述される。本発明の利点及び特徴をより理解するため、以下の説明及び図面を参照されたい。
【0033】
本発明は好適な実施例に関連して述べられるが、当業者であれば、ここで開示される概念が3つ以上のクラスタを含み、本実施例とは異なる記憶クラスタを使用するシステムにも適用可能であることが理解できよう。更に、本発明は、異なる数及び構成の機能ユニットを有する、代替の記憶制御装置の実施例についても考慮する。これらには、キャッシュ構造、主メモリ構成、データ経路資源(バッファ、制御バスなど)の数及びサイズ、様々な制御装置の構成、及びパイプラインの数及びサイズなどが含まれる。
【0034】
【発明の実施の形態】
図1は、双節対称マルチプロセッサ・システムの1つの記憶制御装置クラスタを示す。本発明はリモート記憶クラスタ・インタフェース制御装置(RSC IC)10として表され、これは1対のローカル・フェッチ/ストア制御装置11、リモート・フェッチ/ストア制御装置12、及び集中型マルチステージ・パイプライン13のセットと相互作用する。これらのパイプラインは、中央優先14ステーションにより供給され、これはN個の中央処理ユニット制御装置15またはN個のI/Oアダプタ制御装置16から発生する非同期の作業要求を優先順位付けする。各CPU制御装置は、SMPシステム内の特定の中央プロセッサ(CPU)と親和性を有する。パイプラインは共用レベル2ストアイン・キャッシュを含み、それに対して、全ての中央処理ユニット、I/Oアダプタ及びローカル・フェッチ/ストア制御装置及びリモート・フェッチ/ストア制御装置が、読出しアクセス及び書込みアクセスを有する。好適な実施例で使用されるキャッシュ・コヒーレンス・オペレーションは、データが読出し専用状態または排他的所有状態でキャッシュ内に存在することを可能にする。ここで読出し専用状態では、両方のクラスタ上の全てのプロセッサ及びI/Oアダプタが、データのコピーをアクセスすることができ、排他的所有状態では、1つのプロセッサだけが任意の時刻にデータを所有できる。たとえ別のプロセッサが現在所与のデータを所有していようと、任意のクラスタ上の任意のプロセッサが、任意の時刻にそのデータの所有権を要求し得る。
【0035】
好適な実施例はデュアル・パイプライン設計を使用し、そこでは中央パイプライン13、リモート・フェッチ/ストア制御装置12、及びローカル・フェッチ/ストア制御装置11が全て重複される。本発明で開示される概念は、記憶制御装置(SC)の周囲の構造に独立であり、3つ以上のパイプラインを使用する従来的または新たな単一パイプラインSC設計により効果的に実現され得る。当業者であれば、RSC IC10のインタフェース方法、及び内部機能ブロック図が、ほとんどのSC構造に当てはまるように、容易にスケーリングされ得ることが理解できよう。
【0036】
RSCインタフェース制御装置10は、様々なSC機能ユニットと相互作用する幾つかのサブユニットから構成される。パイプライン13及びフェッチ/ストア制御装置11、12の1対のセットからの要求をサービスする、1つのリモート記憶クラスタ・インタフェースだけしか存在しないので、唯一のRSC ICが、複数のローカル・インタフェース、及びクラスタ−クラスタ間インタフェースに順応しなければならない。更に、RSC ICは、ローカル・クラスタからリモート・クラスタへの、及びその逆のトラフィック・フローを管理しなければならない。図2は、詳細なインタフェースと、RSC IC10を含むサブユニットを示す。
【0037】
好適な実施例の記憶制御装置の性質により、大半の要求はローカル・フェッチ/ストア制御装置11から到来する。これらの要求は、LFAR要求として知られるフェッチ要求と、LSAR要求として知られるストア要求とに分けられる。好適な実施例では、各パイプラインに対して、4つのLFAR要求及び4つのLSAR要求が存在し、従って、RSCインタフェースの使用を競合する、合計16の可能なLFSAR要求が存在する。LFSAR制御装置内の事前優先(pre−priority)ステーションは、各パイプから1つのリクエスタを選択し、高々2つの要求を1クロック・サイクルでRSC ICに転送する。再度、本発明の趣旨は、任意の数のLFARリクエスタ及びLSARリクエスタが、任意の数のパイプラインの間で分配されることを可能にする。更に、LFSAR制御装置11内の事前優先ステーションが、RSC IC内のコマンド優先ユニットに直接組み込まれ得る。
【0038】
LFSAR制御装置11とRSC IC10間のインタフェースに注意を向けると、1パイプラインに関連付けられる制御装置の各セットに対して、1つのインタフェースが存在する。各インタフェースは、要求バス、C3コマンド・バス、C3リクエスタIDバス、及びC3アドレス・バスを含む。8ビット要求バスは、LFARリクエスタ及びLSARリクエスタの各々に対して1ビットを含み、1ビットだけが任意のサイクルで活動化され得る。このビットは、事前優先ステーションによりそのサイクルにおいて選択される、LFAR制御装置またはLSAR制御装置のIDを示す。対応するバスが、パイプラインにコマンドを開始したCPU、I/OアダプタまたはSC制御装置の、コマンド、アドレス及びIDを伝達する。この情報の全てが、パイプラインの第3ステージに相当するC3サイクルで、RSC ICに提供される。RSC ICがLFSAR要求を、それが提供されるサイクルにおいて優遇することができない場合、LFSAR制御装置は同一の要求を提供し続けるか、次のサイクルで新たな要求を動的に選択し得る。
【0039】
LFSAR制御装置に加え、パイプライン13自身もまた、高速路指定と呼ばれるオペレーションを可能にするリクエスタとして作用する。高速路指定は、フェッチが要求され、いずれのLFSAR制御装置11からも保留の作業が存在しない場合、RSCが両方のパイプをモニタし、リモート・フェッチ・オペレーションを発行することを可能にする。C1コマンド、C1アドレス、及びC1リクエスタIDが、各パイプの第1ステージ(C1サイクル)から獲得され、RSCICのRSC優先21サブユニット内の事前優先ステーションに送信される。事前優先ステーションの出力が、主優先ステーション(同様にRSC優先21サブユニット内に配置される)に転送され、そこでLFSAR制御装置11からの要求と競合する。
【0040】
各サイクルごとに、RSC優先21ステーションは保留の作業要求を調査し、高性能オペレーションにより、インタフェースを横断することを許可される要求を決定する。要求の選択に際して、選択されたオペレーションのパイプラインに対応するLFSAR制御装置11に、グラント(許可)が送信される。グラントは選択されたオペレーションが、LFSAR制御装置11からの保留の要求であったか、或いはパイプライン13から開始された高速路オペレーションであったかを示す。グラントがLFSAR制御装置に発行されている間、選択されたコマンドが、その関連アドレス、リクエスタID、及びRSC資源を示すタグ・ラインと共に、RSCインタフェースを介して、リモート・クラスタに送信される。
【0041】
全てのRSCオペレーションが、リモート・クラスタから特定のタイプの完了応答を要求する。更に、データ・フェッチは、要求されたデータがリモート・キャッシュ内に存在するか否かを示す相互問い合わせ(XI)応答を要求する。全ての応答がRSC IC10を通じて処理され、オリジナル・リクエスタに直接的に、または間接的に転送される。大半の時間、応答が復号され、適切なステータス、解放及びキャッシュ・コヒーレンス情報が、LFAR制御装置またはLSAR制御装置に転送される。しかしながら、多くのオペレーションが、応答をオリジナルCPU制御装置(CFAR)15に返送することに携わる。応答の最終的な宛先に関わらず、RSC ICはあらゆるオペレーションにとって必要な全ての情報を追跡し、それにより、全てのRSCオペレーションにおける応答情報が、1つの符号化応答バス上で多重化され得る。RSC ICは、応答ハンドラ22への入来応答を受信する。応答ハンドラのジョブは、応答を復号し、適切な情報をLFSAR制御装置11またはCPU制御装置15に伝送することである。
【0042】
図2はまた、リモート・フェッチ/ストア制御装置12とRSC ICとの間のインタフェースを示す。リモート・フェッチ/ストア制御装置は、別々のリモート・フェッチ制御装置(RFAR)12a及びリモート・ストア制御装置(RSAR)12bに分けられる。リモート・フェッチ制御装置12aは、他のクラスタからフェッチ要求を受信し、それらをパイプライン13を通じて処理し、(可能であれば)データを必要な応答情報と一緒に返却する役目をする。リモート・ストア制御装置12bは、入来ストア・オペレーション(及び任意の付随データ)を受信し、それらをパイプライン13を通じて処理し、必要な応答情報を返却する。各パイプラインは、自身に関連付けられるRFAR12a制御装置及びRSAR12b制御装置を有する。従って、所与のサイクル内に最大4つの要求がRSC ICに提供され、情報が符号化応答バス上に返却される。RSC IC内の応答優先23サブユニットが、これらの要求を調停し、符号化応答バス上のトラフィックを管理する。RFAR制御装置がフェッチ・データを返却する必要がある場合、応答優先23ステーションがRSC優先21ステーション及びクロスポイント(XPT)制御装置25と通信し、データ経路が使用可能になるように保証する。
【0043】
本発明の重要な側面の1つは、資源レジスタ24を使用し、ローカル側の全てのリモート活動を追跡することである。インタフェースI/Oを最小化し、スループットを最大化するために、RSC ICは、ローカル側のオリジナル・リクエスタのためのエージェントとして作用する。RSC ICはリモート側のRFAR資源及びRSAR資源を追跡し、絶え間の無いクラスタ−クラスタ間通信の必要性を除去する。資源レジスタ24はRSC優先21ステーションと相互作用し、RSC資源が使用可能な場合にだけ、オペレーションが開始されるように保証する。オペレーションの開始に際して、RSC ICは選択されたRFARまたはRSARを”使用中(in use)”とマークし、その資源は、オペレーションの完了を示す応答が受信されるまで使用中であり続ける。これらの応答は次に、資源をリセットし、それを新たなオペレーションのために使用可能にするために使用される。
【0044】
好適な実施例では、合計8つのRSC資源レジスタ24が存在し、各パイプラインに対して、2つのRFAR及び2つのRSARが存在する。2つのRFAR/RSARの各々は、互いに同一であり、複数のリモート・フェッチ及びストア・オペレーションが、各パイプにより同時に処理されることを可能にすることにより、主に性能を向上するために存在する。再度、本発明は1パイプ当たり、2つのRFAR及び2つのRSARを要求したり、それに制限されるものではない。全てのリモート資源は、存在する数に関係無しに、同様に追跡される。
【0045】
オペレーションの選択に先立ち、オリジナル・パイプライン・コマンドがRSCコマンドに変換される。多くの場合、結果のRSCコマンドはオリジナル・コマンドと同一であるが、特定の場合では、コマンド・コード・ポイントが再マップされ、類似のオペレーションが1つのRSCコード・ポイントを共用することを可能にする。このステップは、全てのRSCフェッチ・コマンドが連続範囲内(好適な実施例では’01’x乃至’1F’x)に収まる一方、全てのストア・コマンドが、異なる連続範囲内(好適な実施例では’20’x乃至’3F’x)に収まることを保証する。オペレーションの開始に際して、RSC ICは2つの選択ビットを使用し、他の側に対して8つの資源の内で、新たに選択されたオペレーションをサービスする資源を示す。2つのビットは、パイプラインと、そのパイプライン内の1対の資源の内で、コマンドを処理すべき方の資源を示す。コマンドのビット0は、コマンドがフェッチ・タイプ(ビット0=0)か、ストア・タイプ(ビット0=1)かを決定する。全てのフェッチ・コマンドはRFARによりサービスされ、ストア・コマンドはRSARにより処理される。コマンド及びアドレスが常に伝送されなければならないので、このアプローチは両方の側を同期するために、2つの追加のインタフェース制御ビットが1度だけ伝送されることを必要とする。ここで好適な実施例は、コマンド、アドレス及び選択ラインに加え、要求IDを伝送するためのRSCインタフェース・バスを示す。この要求IDは純粋に、RSCインタフェースを通じて、リモート側のCPU制御装置またはI/Oアダプタ制御装置などのリクエスタに転送される情報である。本発明が使用する技術は、その目的を達成するために、オリジナル・リクエスタのIDの知識を必要としない。
【0046】
最後のサブユニットは、クロスポイント(XPT)制御装置25であり、これはクラスタを接続する4つのデータ経路を管理する役目をする。好適な実施例では、各パイプに対して、2つの単方向データ経路が存在し、同時に4つのデータ転送が発生することを可能にする。各データ経路は、4つのオペレーションが同時に発生し得るように、それ自身のXPTバスを有する。データ経路は16バイト幅であり、各サイクルにつき4倍長ワード(16バイト)を転送することができる。
【0047】
RSCコマンド変換:
本発明の目的の1つは、リモート資源管理を用い、クラスタ−クラスタ間インタフェースを介して交換されなければならない情報の量の他に、リモート・フェッチ/ストア制御装置12のサイズ及び複雑度を最小化することである。複雑な記憶制御装置を有するハイエンドSMPシステムでは、事実上、ローカル・クラスタ内で開始され得るあらゆるコマンドが、リモート・クラスタ上で処理されるために、インタフェースを介して送信され得る。これらのコマンドが一連のアトミック・オペレーションに分解されるとき、リモート側のRSCフェッチ/ストア制御装置12が、同一の状態マシンを用い、幾つかの類似のコマンドを処理することができる。従って、RSC設計を単純化するために、ローカル側のオリジナル・コマンドのあるものは、等価な”基本(base)”RSCコマンドに再マップされる。例えば、”記憶保護キーを有する排他的フェッチ”は、”キーの無い排他的フェッチ”と同一のパイプライン・シーケンス及びディレクトリ更新アクションを生じる。従って、RSCインタフェース制御装置は、キーを有する排他的フェッチ・コマンド(’06’x)を、それをインタフェースを介して送信する以前に、単純な排他的フェッチ・コマンド(’02’x)に再マップする。
【0048】
好適な実施例は、図3に示されるハードウェアにより、コマンド変換を実現する。オリジナル・コマンドが、フリップ・ビット発生器26に入力する。ここでフリップ・ビット発生器は、コマンド変換テーブル28のフリップ・ビット列を実現するために要求される論理ゲートから構成される。オリジナル・コマンドがディレクトリ・ステータス及びターゲットL3と結合され、フリップされる必要があるビットを決定する。結果のフリップ・ビットがXLAT27ブロックにおいて、オリジナル・コマンドと排他的論理和され、コマンド変換テーブル28のRSCコマンド列内に示される所望のRSC基本コマンドを生成する。RSCコマンド変換器は、1クロック・サイクル内に変換を実行するように設計される、独立な機能ユニットである。従って、当業者であれば、これが使用され得る柔軟性を理解することができよう。例えば、コマンド変換器は物理的に、RSCインタフェース制御装置10の一部として実現されるか、或いはRSCに作業要求を開始する制御装置内に含まれ得る。更に、コマンド変換器は、RSCコマンド優先ステーションと同一の論理サイクルに統合されるか、オリジナル・コマンドが使用可能な場合、前のサイクルで実行されてもよい。例えば、好適な実施例では、パイプライン高速路コマンドが第2のパイプライン・ステージ(C2)で使用可能であり、従って、RSCコマンド優先サイクル以前に変換され得る。
【0049】
コマンド変換の使用は、幾つかの点でインタフェース効率を向上する。まず第1に、多くのオペレーションがリモート側に、所望のデータがローカル・キャッシュ内に存在するか否かを問い合わせる必要がない。従って、コマンド変換器はディレクトリ・ステータスを用い、これらのタイプのオペレーションを、RSCインタフェースの使用を要求するものから除外する。第2に、コマンド変換は、データが1度転送され、処理され、次にオリジナル側に返却されるのではなく、データ転送が1方向にだけ送信されればよいことを保証する。例えば、I/Oストア64バイト(コマンド28)は、変換が無い場合、たとえデータの最終的な宛先がローカルL3メモリであっても、64バイトのデータの無条件伝送を生じる。このことは、64バイトがリモート側に転送され、ターゲット・ラインに併合され、更新されたラインがインタフェースを介して再度返却され、ローカル・クラスタに接続されるL3メモリに記憶されなければならないことを意味する。本発明は、宛先アドレスがリモートL3メモリであり、データがキャッシュ内に存在しない場合、ローカルL3及びディレクトリ・ステータスを用いて、インタフェースを介して64バイトを送信するだけにより、データ転送を最適化する。データがキャッシュ・ミスを生じ、ターゲットL3がローカル側であり、更にデータがリモート・キャッシュ内でヒットする場合、それをリモート・キャッシュから転送するように要求する問い合わせが、他の側に送信される。この状況では、初期データ転送は発生せず、ターゲット・ラインがリモート・キャッシュ内に保持されている場合、データがインタフェースを介して戻されるだけである。たとえデータがリモート・キャッシュ内に存在しても、オペレーション全体は、リモート側からローカル側への1度のデータ転送を必要とするだけであり、ローカル側でデータがI/Oストア・データと併合され、ローカルL3メモリ内に記憶される。最後に、I/Oストアの第3の可能な状況は、ターゲット・データが両方のキャッシュ内に読出し専用状態で存在する場合である。再度、この場合、I/Oストア・データがデータのローカル・コピーと併合され、インタフェースを介してデータを転送する必要がない。代わりに、オリジナル・コマンドが読出し専用無効コマンドに変換され、それがリモート・フェッチ制御装置12aに転送され、リモート・キャッシュ内のデータのコピーが無効とマークされる。
【0050】
RSC優先ステーション:
作業要求をできるだけ効率的且つ好都合に処理するために、RSCインタフェース制御装置10が多重レベル高機能優先ステーションを使用する。図4は、全体的な優先ステーションを示し、これは主コマンド優先ステーション33と、それに供給するパイプライン事前優先ステーション32とを含む。パイプライン事前優先ステーションは、両方のパイプラインの第1ステージ(C1)をモニタし、高速路候補を探索する。任意のCPUフェッチ・コマンド(’01’x乃至’07’x)が、高速路指定の候補と見なされる。いずれかのパイプ・コマンドが候補の場合、それが事前優先ステーション32に入力し、他のパイプライン・コマンドと共に、C2ステージング・エリアへの選択を競合する。1つのパイプだけがそのサイクルにおいて有効な候補を有する場合、それが自動的に選択される。両方のパイプが有効な候補を有する場合、単純なラウンド・ロビンが次の順番のものを決定する。
【0051】
パイプ・コマンドがC2ステージング・エリアに選択されると、それが第2パイプライン・ステージ(C2)に関連付けられる様々なインタフェース信号と比較される。これらのC2拒絶信号には、様々なCPU制御装置15からのディレクトリ・ステータス、拒絶信号、及びLFSAR制御装置11からの高速路阻止信号が含まれる。これらの信号の組み合わせが、C2ステージング・エリア内の現オペレーションが、完全に拒絶されるべきか、或いは主コマンド優先ステーション33に転送されるべきかを決定する。オペレーションを拒絶する可能な原因には、次のものが含まれる。
○リモート側にデータを問い合わす必要性を否定する適切な状態を有する、ローカル・ディレクトリをヒットするCPUフェッチ
○任意のCPU CFAR制御装置15からの拒絶信号
○C2パイプライン有効のリセット
○LFSAR制御装置11からの高速路阻止信号
○L3メモリ構成アレイからの無効アドレス指示
【0052】
拒絶条件が存在しない場合、コマンドは主コマンド優先ステーション33に転送され、そこで両方のLFSAR制御装置11からの要求と競合する。
【0053】
図4に示されるように、コマンド優先ステーション33は、パイプライン事前優先ステーション32から転送されるパイプライン高速路情報の他に、各LFSAR制御装置11から信号のセットを受信する。更に、コマンド優先ステーションは、8つの資源レジスタ24及びXPT制御装置25とインタフェースし、知能的に好適なオペレーションを選択する。
【0054】
基本的に、オペレーションは、LFSARオペレーションが保留でRSC資源が使用可能な場合、常にLFSARオペレーションを選択しようとする。1つのLFSAR制御装置11だけが要求しており、RSC資源が使用可能な場合、そのLFSARが選択される。両方のLFSAR制御装置11が要求しており、一方だけが使用可能な資源を有する場合、そのLFSARが選択される。両方のLFSAR制御装置11が要求しており、両方が使用可能な資源を有する場合、フェッチ・タイプのオペレーションがストア・タイプよりも優先される。両方の要求が同一のタイプの場合、単純なラウンド・ロビンが次の順番を決定する。最後に、LFSAR制御装置11が要求していない場合、或いはLFSAR要求を優遇する資源が使用可能でない場合、高速路要求が選択される。
【0055】
資源の可用性は、オペレーションのタイプに依存して変化する。フェッチは最も単純な場合である。なぜなら、要求される資源が、フェッチ・オペレーションを処理するパイプラインに対応するリモート・フェッチ制御装置(RFAR)12aだけであるからである。RFARは、それらが他のフェッチ・オペレーションを処理するために使用中であるか、或いは、資源ディセーブル・スイッチが活動化され得るために使用不能であり得る。コマンド優先ステーション33は、各RSC資源のディセーブル・スイッチ及び有効ビットをモニタし可用性を判断する。
【0056】
システム性能を更に向上させるために、優先オペレーションが応答ハンドラ22と協働し、リモート・フェッチの効率を最大化する。通常、フェッチは次の使用可能なRFAR制御装置12aにディスパッチされる。リモート・クラスタ上のRFARが、パイプライン内のフェッチ要求を処理し、そのデータ・バッファのロードを開始する。同時に、それはインタフェースを介してリモート側のRSC IC10に、最終応答及びデータを返却するように要求を発行する。最終応答が伝送されるや否や、そのRFAR資源が使用可能と見なされ、新たな作業を受諾することが可能になる。新たな非データ・オペレーションがそのRFARに送信される場合、RFARはそれを、以前のフェッチからの後続バイトがまだデータ・バッファから読出されている間に処理することができる。しかしながら、新たなオペレーションが第2のデータ・フェッチの場合、そのオペレーションはバッファが使用可能になるまで、リモート側のパイプラインを通じて、連続的にリサイクルされる。
【0057】
本発明は、第2のフェッチ要求が到来するとき、両方の資源が使用可能であれば、連続的なデータ・フェッチが交互のRFAR制御装置に送信されるように保証することにより、この状況を回避する。例えば、RFAR A0が第1のフェッチを処理しており、RFAR A0がまだ使用中の間に、第2のフェッチが到来する場合、(RFAR A1が使用可能と仮定して、)第2のフェッチがRFAR A1に経路指定される。更に、最終応答が伝送され、RFAR A0が使用可能になり、第2のフェッチが到来する場合にも、(RFAR A0バッファがまだデータを転送しているので、)第2のフェッチはRFAR A1に経路指定される。しかしながら、RFAR A0がまだ使用中の間に、読出し専用無効のような非データ・オペレーションが到来した場合、それはRFAR A1に経路指定される。これにデータ・フェッチに相当する第3のオペレーションが続く場合、RFAR A0が使用可能であれば、たとえバッファがまだ後続バイトの転送のために使用中であっても、この新たなデータ・フェッチがRFAR A0に送信される。換言すると、要求を異なるRFARに交互に渡す機構は、1対のいずれかの資源の可用性に従う。
【0058】
図5は、前述の機構と、RSC優先ステーション21との間の相互作用を示す論理ブロック図である。RSC資源24の各対に対して、資源トグル機能がRSC IC内に存在する。パイプラインAに対するRFAR対を表す1つの資源トグル器35が、図5に示される。これは各RFAR資源(A0及びA1)から可用性信号を受信する。これらの可用性信号は、他の6つのRSC資源からのそれらと一緒に、RSC優先ステーション21にも供給される。更に、パイプAフェッチ・グラント信号が、RSC優先ステーションにより生成され、資源トグル器35に供給される。最後に、適切な条件が存在する場合、資源トグル器がトグル保持ラッチ36を介して、次のオペレーションに割当てられる資源対の一方を制御する。資源トグル器は1つの選択信号を生成し、これがフェッチ・グラント信号と2度論理積され、ロードRFAR A0信号及びロードRFAR A1信号が生成される。そして、これらがRFAR A0資源レジスタ及びA1資源レジスタに転送される。
【0059】
図5に示されるトグル器真理値表37は、選択信号及びトグル保持ラッチ36が更新される様子を示す。2つの資源の一方だけが使用可能な場合、選択信号はトグル保持ラッチ36の状態に関係無しに、使用可能な資源をデフォルト指定する。両方の資源が使用可能で、フェッチ・グラントがこのパイプラインに対して発行された場合、トグル保持ラッチの現状態が選択信号を駆動する。更に、トグル保持ラッチが次のサイクルで、”他の”資源に仕向けられる続くフェッチを見越して更新される(但し、他の資源が使用可能な場合)。トグル器真理値表37の最下部に示されるように、使用可能信号は資源有効ビット59aと、ディセーブル・ビット59fと、最終応答がこの資源に対して受信済みで、それがこのサイクルで”使用可能”と見なされることを示すRST_RFAR_A0ラッチとの関数である。
【0060】
ストア・タイプ・オペレーションは、コマンドを伴う初期データ転送を含み得るので、フェッチよりも複雑である。コマンド優先ステーション33が、ディセーブル・スイッチ及び有効ビットをテストすることにより、RFARと同様に、リモート・ストア制御装置(RSAR)12bの可用性の一部を決定する。コマンド優先ステーション33がRSC基本コマンドを復号し、それがデータ転送を要求するか否かを見分ける。コマンドがデータ転送を要求する場合、データ・バスの可用性がテストされなければならない。このテストを合格するためには、次の2つの条件が満たされなければならない。
1.ストアを発行するパイプラインに対応するデータ・バスが、データ転送のために使用中でないこと。
2.対応するRFAR制御装置12aが、他のクラスタから発行されたフェッチ・オペレーションに対するデータの返却のために、データ経路の使用を要求していないこと。
【0061】
両方の条件が満たされる場合、またはISKオペレーション(コマンド30)など、ストア・コマンドがデータ経路の使用を要求しない場合、ストア・オペレーションの資源基準が満足される。
【0062】
前述の優先オペレーションは、資源が使用可能である限り、新たなオペレーションがリモート側に転送されることを保証する。更に、LFSAR制御装置11を優先化することにより、LFSAR資源のスループットを向上し、それにより、互いに競合のために待機し、インタロックされる資源により引き起こされる資源輻輳及びデッドロックを低減する。一旦オペレーションが選択されると、コマンド(そのオリジナルのまたは再マップされたコードポイントによる)がRSCインタフェースを介して、27ビットのフル・アドレスと一緒に送信される。リモート側のRSCコマンド・ディストリビュータが、C0_C1_CMDコマンド・バスのビット0の値に従い、コマンドをRFARまたはRSARに経路指定する。更に、C0_C1_PIPE_SEL及びC0_C1_REQ_REG_SELが、コマンドをオペレーションを処理するパイプラインに関連付けられる選択RFSAR制御装置12aまたは12bに仕向けるために使用される。このリモート資源管理技術は、複数のパイプライン間で広がる非常に多数の記憶制御装置の資源が、限られた数のI/Oを用いて、共用RSCインタフェースを使用することを可能にする。
【0063】
前述したように、C0_C1_REQIDは、インタフェースを介して送信される発信元リクエスタのIDであるが、リモート管理オペレーションには参加しない。このIDは純粋に、リモート側に転送され、それを必要とする記憶制御装置の資源に渡される情報として扱われる。
【0064】
新たなRSCオペレーションを発行するとき、コマンド優先ステーション33はグラントを対応するLFSAR制御装置11に発行する。好適な実施例では、このグラントを1サイクル遅延することにより、クリティカルなタイミング経路を緩和する。しかしながら、この遅延は、LFSAR制御装置からの要求ラインが、必要とされるよりも1サイクル長く活動状態であることを意味する。RSC優先ステーションはこれを考慮して、次のオペレーションのために要求を分析し、その同一のオペレーションを再度選択してサイクルを浪費しないように保証する。2つのタイプのグラントが各LFSAR制御装置11に発行され、それらは何がRSC優先ステーション内で生じたかを明示する。正規のグラントはLFSAR要求が選択されるとき発行され、特殊な高速路グラントは、パイプライン高速路コマンドが選択されるとき発行される。
【0065】
RSC資源レジスタ:
一旦RSC優先ステーション21が、インタフェースを介して送信するコマンドを選択すると、コマンド及びその関連情報(LFSAR ID、リクエスタID、及びLFSARバッファID)が、適切なRSC資源レジスタにロードされる。図6は、コマンドが適切な保持レジスタにステージされる様子を示す。CLCコマンド42及びC3パイプ・コマンド43ステージング・レジスタの目的は、図6の右上の3ウェイ多重化41を通じて、クリティカル経路上のタイミングを緩和することである。全てのCLCコマンドがLFSAR制御装置11から発生し、タイミング的にクリティカルである。全体システム性能を向上するために、リモート・オペレーションがインタフェースを介して、1サイクルで送信される。この同一のコマンドは、優先論理及び小さなクロスポイント・スイッチを横断し、適切なRSC資源レジスタに達しなければならないので、これは困難な経路を提供する。好適な実施例は、入来するCLCコマンド及びパイプ・コマンドをクロスポイント・スイッチを介して送信する前にステージングすることにより、これを解決する。
【0066】
図6を再度参照すると、各LFSAR制御装置11要求に関連付けられるコマンドは、CLCコマンド・ステージング・レジスタ42にステージされる。それと並列に、パイプライン事前優先ステーション32により選択されるC2パイプライン・コマンドが、C3パイプ・コマンド・ステージング・レジスタ43にステージされる。更に並列に、CLC及びパイプ・コマンド・フローが、3ウェイ多重化41を介して転送される。この多重化は、コマンド優先ステーション33から来るグラント・ラインにより制御される。各CLCコマンドは、CLCパイプラインに関連付けられる2つのRFARコマンド45レジスタまたはRSARコマンド47レジスタのいずれかにロードされる。このことは、各CLCコマンドが4つの可能な宛先を有することを意味する。高速路コマンドはCPUフェッチ・オペレーションに制限されるので、それらは2つのRFARコマンド45レジスタだけにロードされ得る。コマンドは、2ウェイ多重化44及びゲートウェイ46から成るクロスポイント・スイッチを介して経路指定される。2ウェイ多重化は、CLCコマンド42及びC3パイプ・コマンド43レジスタ間を選択する信号により制御される。ゲートウェイ46は、CLCコマンド42の通過を許可する信号ゲート・ラインにより制御される。これらの全ての制御信号は直交し、選択RSCオペレーションのグラントを、次の使用可能な資源を選択する優先論理に結合することにより生じる。
【0067】
RSCは8つの資源レジスタ24を含み、これらが全ての相互クラスタ・オペレーションを処理する。このことは、各パイプラインに対する2つのフェッチ及び2つのストア・オペレーションが、同時に発生することを可能にする。オペレーション全体は、ローカルRSCインタフェース制御装置10により追跡されるので、オペレーションを完了するために要求される全ての情報は、資源レジスタ24内に保持されなければならない。図7は、1セットの資源レジスタ59の詳細図を示し、これはディセーブル・ビット、有効ビット、コマンド・レジスタ、オリジナル・リクエスタIDレジスタ、LFSAR制御装置IDレジスタ、及びLFSARバッファ・レジスタを含む。好適な実施例では、LFSAR制御装置11内の各パイプに対して、2つのLFAR及び2つのLSARが存在するが、各パイプに対して、2つのLFSARバッファだけしか存在しない。従って、LFSAR制御装置11は新たなオペレーションの度に、2つのバッファの一方を各LFSAR IDに動的に割当てなければならない。従って、バッファIDが各新たな要求と共に、RSC IC10に伝達されなければならない。
【0068】
当業者であれば、LFSAR資源、バッファの総数、及びそれらのお互いの関係が本発明に影響を及ぼさないことが理解できよう。バッファの数がLFSAR資源の数に等しく、固定の関係に従う場合、RSC ICはこの情報を追跡するために余分な資源レジスタを要求しない。しかしながら、RSC ICが、好適な実施例で示される以外の追加の情報を追跡する必要がある他の実施例も存在し得る。資源レジスタ内で追跡されなければならない情報の量に関係無しに、ここで開示される原理は当てはまるものである。
【0069】
図7に戻り、この図は多少より複雑なRFAR資源の詳細を示す。なぜなら、RFARが、C3高速路ステージング・レジスタ55a及びCLCステージング・レジスタ55bの両方を含むからである。図6は、資源レジスタのコマンド部分だけを示したが、8つの全ての資源レジスタを示した。それに対して図7は、1つの資源だけを示すが、所与のRSCオペレーションを追跡するために要求される全ての情報が、資源レジスタにロードされる様子を示す。全ての制御信号はコマンド優先ステーション33から発生する。この図では、優先グラント(実際に使用される信号のサブセット)だけを用い、様々な資源レジスタをロードする論理タイミングを示す。
【0070】
まず第1に、オペレーションがグラントを発行された後のサイクルで、有効ビット59aがロードされる。ORゲート54が、オペレーションが正規のCLCオペレーションか、パイプライン高速路オペレーションかに関わらず、有効ビットがロードされるように保証する。有効ビットは、資源が使用可能か否かを決定する上で重要な役割をするので、これは資源が次の優先サイクルにおいて、使用不能とマークされることを保証する。グラントを資源レジスタ59のセット全体にファンアウトすることにより生じる、タイミング・クリティカル経路を緩和するために、本発明は、残りの情報がロード以前に遅延可能である事実を利用する。
【0071】
LFSAR制御装置11から発行されるCLCオペレーションは、論理タイミングに関して最も単純である。これらのオペレーションのために、ステージされたCLCグラント53が、ORゲート54を介して、2ウェイ多重化56及びゲートウェイ58を制御する。それにより、このグラントが活動状態のとき、CLCステージング・レジスタ55bを含む全ての情報が、有効ビット59aのロードに続くサイクルで、資源レジスタの残りのセット59b乃至59dにロードされる。
【0072】
パイプライン高速路オペレーションは、C3高速路ステージング・レジスタ55aにステージされ、そこにはC3コマンド及びリクエスタIDレジスタだけが存在する。この状況では、ステージされた高速路グラントLC52aが、2ウェイ多重化56を介して、C3パイプライン・コマンド及びリクエスタIDを選択し、それらをコマンド59b及びリクエスタID59c資源レジスタにロードする。これらの高速路オペレーションがパイプラインの第3ステージに達すると、それらがLFAR資源にロードされ、LFARバッファに割当てられる。これは多くのCPUフェッチ・オペレーションが複数のパイプライン・パスを要求し、LFARがフェッチ・オペレーション全体を管理することが要求されるために必要である。従って、一旦この割当てが知れると、LFSAR制御装置11が、パイプライン高速路オペレーションの直後のサイクルで、特殊な要求をRSC IC10に提示する。要求と一緒に、LFSARインタフェースは、LFAR ID及びLFARバッファIDを含む。RSC ICは高速路グラントLC2トリガにより、情報がCLC BFRレジスタ及びCLC REQレジスタ55b内で使用可能になるタイミングを示す。これによりコマンド59b及びリクエスタID59cレジスタに続くサイクルで、この情報がゲートウェイ58を介してゲートされ、LFSARバッファ59d及びLFSAR ID59eレジスタにロードされる。
【0073】
好適な実施例は更に、エンコーダ57の使用を示し、これはCLC REQレジスタ内に存在する8つの要求信号の8対3符号化を実行し、IDを3ビット値として、LFSAR IDレジスタ59eに記憶する。更に、ディセーブル・レジスタ59fとして示される追加の1ビットが、完全性のために含まれる。この1ビット・レジスタは走査可能なレジスタであり、好適な実施例のUBUSを介してロードされ得る。各RSC資源レジスタは、こうしたディセーブル・ビットを有し、これはマイクロコードやファームウェア・ロード、またはシステム・リセットなどを通じて、資源が永久にまたは一時的に使用禁止になることを可能にする。このビットは、RSC IC10の通常のシステム・オペレーションでは何の役割も演じないが、エンジニアリング・デバッグ及びインタフェース性能分析において有用である。
【0074】
応答処理:
図2に示される応答ハンドラ22は、リモート・クラスタから返却される全ての応答トラフィックを処理し、適切な完了信号をイニシエータに送信する役目をする。RSC IC10により受信される、2つの主な応答のタイプが存在する。RSCオペレーションの多くは、データがリモート・キャッシュ内に存在するか否かを決定するための、リモート相互問い合わせ(XI)を含む。これらのオペレーションの1つが呼び出されると、コマンドが他の側で受信され、保証された優先レベルによりリモート・パイプに入力する。パイプへのこの保証付きのエントリは、オペレーションがインタフェースを介して発せられる時点と、ヒット/ミス結果が知れる時点との間に、同期関係が存在することを可能にする。本実施例では、コマンドがRSCインタフェースに提供されてから4サイクル後に、XI応答が返却される。
【0075】
RSC優先21サイクルで始まり、応答ハンドラ22は図8に示されるステージング機構を用いて、XI応答を追跡する。ローカル・キャッシュでミスを発生する特定のタイプのフェッチの性能を向上するために、RSC ICは、同期インタフェースに結合され、フェッチがローカルL3メモリまたはリモートL3メモリのいずれをターゲットとするかを示すアドレス・ビットにより、自動的にオペレーションを退けるか否かを決定する。例えば、フェッチがリモートL3メモリをターゲットとする場合、RSC資源はオペレーションが完了するまで、有効に維持されなければならない。なぜなら、所望のデータがリモート・キャッシュまたはリモートL3メモリのいずれかから到来するからである。しかしながら、アドレスがローカルL3メモリをターゲットとし、データがリモート・キャッシュ内に存在しない場合には、データ・フェッチがローカルLFAR制御装置により処理されるので、資源が新たなオペレーションのために解放され得る。
【0076】
毎サイクルごとに、CLCコマンド・レジスタ55bの各々がデコーダ61により分析され、それが相互問い合わせ(XI)を要求するフェッチ・コマンドの1つであるか否かが見分けられる。この結果が、CLCローカルL3ビット60と、このCLCオペレーションがグラントを発行されたことを示すRSC優先ステーション21からの信号と結合される。並列に、C3パイプ・ローカルL3ビットが、高速路オペレーションがグラントを発行されたことを示す、RSC優先ステーション21からの類似の信号と結合される。定義上、全ての高速路オペレーションは、相互問い合わせを要求する。グラントは相互に排他的なので、1つの分岐だけが任意のサイクルにおいて活動化され得る。これらの信号が、2ウェイAND/OR多重化63内で図示のように結合され、条件が真であれば、4ビットL3ステージング・パイプライン64の1ビットをロードする。このパイプラインは、各サイクルに対して、4ビット・ステージング・レジスタを含み、ステージ2から開始し、ステージ6で終了する。4ビットの各々は、RFAR資源12aの1つを表す。図8では示されていないが、前述した機能を成す全ての要素が、4回複製され、結果の出力がステージ2のビットの各々に供給される。再度、これらのRFAR資源の1つだけが、任意の所与のサイクルでロードされるので、L3ステージング・パイプライン64内の各ステージの4ビットは直交する。パイプラインのステージ6は、XI応答が応答ハンドラ22により受信されるときのサイクルに対応する。4ビットのいずれかが活動状態で、XI応答がミスの場合、有効ビット59aをオフにすることにより、対応するRSC資源レジスタがリセットされる。
【0077】
データ・フェッチのサブセットの間にだけロードされる特殊L3ステージング・パイプライン64に加え、図8はRFSARステージング・パイプライン67を示し、これは新たに開始されたあらゆるRSCオペレーションによりロードされる。各RSC資源レジスタ24は、資源が最後のサイクルでロードされたことを示す1ビット・ラッチを含む。これらの8つの資源ロード・ラッチ65は直交する。なぜなら、各サイクルにおいて、1資源だけが新たなオペレーションによりロードされ得るからである。これらの8つのレジスタの出力は、8対3エンコーダ66により符号化され、3ビット符号化値が、RFSARステージング・パイプ67内に記憶される。このパイプラインもまたステージ2から開始し、ステージ6で終了する。3ビットRSC資源IDは有効ビットと結合され、ステージ6に達するまで、各サイクルごとにステージを通じてパイプライン処理される。論理タイミングに関しては、このIDは、XI応答及びリモート・インタフェース・エラー信号が受信されるのと同一サイクルのステージ6に到来する。
【0078】
インタフェース・エラーの場合、3ビットRFSAR IDが復号され、オペレーションに関わるRSC資源レジスタ21をリセットするために使用される。更に、ハードウェア・ルックアップ・テーブル68を用いて、3ビットRSC IDにより、資源レジスタのLFSAR ID59eレジスタを指標化する。LFSAR IDレジスタの内容が更に復号され、インタフェース・エラー信号を適切なLFAR制御装置またはLSAR制御装置に送信するために使用される。例えば、RFSARステージング・パイプライン67のステージ6が、値”010”を含む場合、これはパイプAのRSAR0がRSC資源であることを示す。ルックアップ・テーブル68はこの時、パイプA RSAR0資源内のLFSAR IDレジスタを復号し、その値がこの特定のオペレーションに関連付けられるLSARを指し示す。所与のオペレーションを、対応するローカルLFAR制御装置またはLSAR制御装置に関連付ける能力は、多くのRSCオペレーションの再試行を可能にする。しばしば、インタフェース・エラーは断続的に発生し、従ってオペレーションを再試行する能力が、不要なシステム機能停止を阻止する。
【0079】
RFSARステージング・パイプライン67を使用する追加のシステム性能改善は、高速読出し専用無効(FAST READ−ONLY INVALIDATE)である。RSCオペレーションの1つは読出し専用無効であり、キャッシュ内に存在するデータの読出し専用コピーが、リモート側で無効にされなければならない。これは例えば、CPUが排他的所有権により、データのフェッチを希望し、他のCPUがデータの読出し専用コピーを有するときに発生する。他のCPUがリモート側に存在する場合、RSC ICは読出し専用無効コマンドを送信し、他のクラスタ上のリモート・フェッチ制御装置12aがそれを処理する。通常、これはディレクトリ・エントリを無効にする単純なパイプライン・パスを生じる。時々、これらの初期パイプライン・パスは、リモートCPUのために同一のラインのアクセスを試みる別の制御装置とのアドレス比較を生成する。これらの衝突が発生するとき、衝突を完全に解決する以前に、排他的所有権を要求しているCPUにデータを所有させることが安全な場合がある。本発明におけるリモート・フェッチ制御装置12aは、初期パイプライン・パスの間に、これらの”安全な”状況を検出し、同期XI応答バスを介して、RSC ICに安全に進行可能であることを知らせる能力を有する。
【0080】
図9は、読出し専用無効ステージング・パイプライン75を示し、これは前述の他の2つのステージング・パイプラインと同様に作用する。両方のパイプラインのCLCコマンド・レジスタ55bが、読出し専用無効オペレーションを除外するROIデコーダ73により復号される。これがCLCグラント53と結合され、有効な読出し専用オペレーションが開始されたことを示す。再度、これらの内の1つだけが、任意の所与のサイクルで開始され得る。結果がROI多重化74に供給され、読出し専用無効ステージング・パイプライン75のステージ2をセットするために使用される。このビットは下流のステージ6にパイプライン処理され、そこで応答ハンドラ22に受信されたXI応答と提携する。RO無効ステージ6ビットが活動状態で、XI応答がミスの場合、RFSARステージ6レジスタ67及びLFSARルックアップ・テーブル68が、関連するLFAR制御装置を解放するために使用され、初期オペレーションの完了を可能にする。リモート・フェッチ制御装置は読出し専用無効を処理し続け、従ってRSC資源有効ビットが活動状態に維持される。一旦リモート・フェッチ制御装置12aがオペレーションを完了すると、それは最終応答を返却し、これがオペレーションを退け、資源が新たな作業を受諾することを可能にする。その間、読出し専用無効に関連付けられるLFARが、新たなオペレーションを開始したかもしれない。読出し専用無効に対する最終応答が、新たなLFARオペレーションに対する最終応答と間違えられないようにするため、RSC ICは各RFAR資源に対する保持レジスタを含む。高速読出し専用無効機構がLFARを解放するために使用される都度、適切な保持レジスタがセットされ、今度の最終応答がそのLFARに知らされることを防止する。一旦最終応答が受信され、オペレーションが公式に完了されると、保持レジスタが残りの資源レジスタと一緒にリセットされる。
【0081】
相互問い合わせ以外の、リモート・オペレーションに関わる本発明の全てのオペレーションは、符号化最終応答により終了する。応答ハンドラ22が符号化応答IDバスを用い、応答をオペレーションを開始したLFSAR IDと突き合わせる。最低限、RSC IC10は発信元LFSAR制御装置に、オペレーションが完了したことを知らせ、後者は資源を解放することができる。データがリモート側からフェッチされる場合、データ・アドバンス(advance)が対応するローカルLFAR制御装置に送信され、LFAR制御装置はローカル・ディレクトリ・ステータスを更新できる。更に、RSC XPTコードポイントがデータ・フロー・チップに送信されるように、信号がXPT制御措置25に送信される。
【0082】
リモート・オペレーションのサブセットはまた、全応答コードがCFAR制御装置15に転送されるように要求する。例えば、CFAR制御装置はこの信号応答により、早期応答及び最終応答を中央処理ユニットに返送しなければならない。本発明で定義される7つの応答ビットの内、ビット0及びビット1は、実際の応答値内に含まれない。代わりに、それらは次の特殊な意味を有する。
○ビット0は、通常、デッドロック状況を回避するために、リモート・オペレーションが拒絶されたことを示す。このビットにより、再試行信号が適切なLFSARに送信される。LFSARはオペレーションを後に再試行しようとする。○ビット1は、ラインが変更状態のリモート・キャッシュをヒットしたことを示す。この情報は、データ・フェッチの間にLFARにより、ローカル・ディレクトリの最終状態を計算するために使用される。
【0083】
残りのビットは、開始オペレーションに依存して、様々な完了コードを示すために符号化される。
【0084】
応答優先:
リモート側から返却される応答を処理することに加え、RSC ICは応答優先機能を用い、応答をリモート側に送信する。これらの応答は相互問い合わせ(XI)形式であり、リモート・クラスタから開始され、ローカル・クラスタ上で処理されるオペレーションの最終応答である。(合計4つのリクエスタに対する)各パイプラインからのローカルRFAR12a制御装置及びRSAR12b制御装置が、最終応答をRSC IC10に送信するためのXI応答及び要求を提示する。相互問い合わせはフェッチ・オペレーションだけに関与するので、RFAR制御装置12aだけがXI応答を提示できる。更に、1つの相互問い合わせだけがリモート側により1度に開始され得、それらがパイプラインを通じて、固定サイクル数で処理されることが保証されているので、4つの可能なRFAR XI応答の1つだけが、任意の所与のサイクルにおいて活動状態であり得る。従って、応答優先23論理は単に4つのXI応答を一緒に論理和し、出力をインタフェースに転送する。
【0085】
最終応答要求は、RFAR12a制御装置及びRSAR12b制御装置から生じ得、リモート・オペレーションが長さ的に大きく変化するので、応答は非同期に発生する。応答優先23論理がRSC優先ステーション21と相互作用し、いずれかの最終応答要求が優遇され得るかを判断する。データ・フェッチ以外のオペレーションでは、応答論理は単純な優先オペレーションを用い、4つのRFSARの1つを選択し、応答をインタフェースを介して転送する。2つ以上のRFSARが要求を同一のサイクルに発行する場合、オペレーションはRFARをRSARよりも優先する。このことは、CPUにより要求されるフェッチ・データが、不必要にRSAR応答トラフィックにより遅延されないように保証することにより、システム性能を向上させる。両方のRFARが同一サイクルにおいて要求を提示する場合、オペレーションはラウンド・ロビンを用い、RFARの一方を選択する。優遇されるRFARが存在せず、2つ以上のRSARが要求している場合、単純なラウンド・ロビンがRSARを選択する。
【0086】
本発明の新規の側面の1つは、共用データ・バスの効率を最大化するための、応答優先機能23とRSC優先ステーション21間の相互作用である。(遠隔的に開始されたフェッチに関する)フェッチ・データの返却は、局所的に開始されたストア・オペレーションと同一のデータ経路を共用しなければならないので、ストア転送の完了を待機している間に、フェッチが遅延される潜在性が存在する。応答優先は、フェッチ・データを返却しようとする最終応答要求のために、次のステップを実行することにより、この潜在性を低減する。
1.要求元RFARのパイプラインに対応するデータ経路が、使用可能か否かをチェックする。使用可能でない場合、RSAR要求が保留であれば、優先論理が即時そのRSAR要求を選択する。
2.データ経路が使用可能な場合、優先論理がRFARを選択し、RSC優先ステーションに、データ転送を含む保留のLSARストア・オペレーションの選択を阻止するように伝える。
【0087】
両方の優先機能21及び23内のオペレーションは、周期的に動的であり、これはそれらが各サイクルごとに現環境を評価し、1サイクル内に全ての判断を下すことを意味する。従って、データ経路が使用不能なために、要求が遅延される場合、その要求は自身がサービスされ得る最初のサイクルにおいてサービスされる。インタフェースを介する伝送のための要求が選択される都度、グラントが要求元RFSARに送信され、要求元RFSARは現要求を取り下げ、新たな要求を次のサイクルで発行できる。実際の応答に加え、RSC ICはまた、応答を返却しているRFSARを示す3ビット符号化応答IDバスを送信する。他の側の応答ハンドラ22がこの3ビットのIDを復号し、リセットされる必要のあるRSC資源レジスタを解析する。
【0088】
全ての応答がRSCインタフェースを1サイクル内に横断するが、2つのオペレーションは追加の情報のために応答バスを使用する。キー・オペレーションの間、実際のキーが応答の直後に続く。テスト・バイト・アブソリュート(TBA)・オペレーションの間には、更にTBAステータスが次のサイクルで応答に続く。いずれの場合も、RFSAR制御装置が、応答要求に付随して、これが2サイクル・オペレーションであることを示す特殊な信号を、RSC ICに送信する。それにより応答優先23は、第2のサイクルの間に、新たなRFSAR最終応答を選択するのを回避する。
【0089】
クロスポイント(XPT)制御装置:
好適な実施例のRSCインタフェースは、合計4つの4倍長ワード(QW)・データ経路をサポートする。各パイプに対して、各方向(ローカルからリモート、及びリモートからローカルの方向)に1つのデータ経路が存在する。物理的に、各データ経路はその実現に2つのSCDチップを要求し、各データ・チップがダブル・ワード(DW)を伝搬する。この設計は共用バス構造と、真に専用のポイント−ポイント間データ・フローとの間の妥協案である。各方向において、単方向データ経路が存在するが、各データ経路は、インタフェースの両側から開始されたデータを多重化しなければならない。例えば、リモートSCをローカルSCに接続するデータ経路は、局所的に開始されたフェッチ要求に応答して、データを返却するためにいつでも使用されるか、或いはリモート側により開始されたストア・オペレーションに伴うストア・データを伝送するために使用され得る。理想的には、これらのオペレーションは別々のデータ経路により分離されるべきであるが、パッケージ化制限がこれを阻む。しかしながら、各パイプに対して、単方向バスが両方向に存在する事実が、1サイクルにつき4つのQW(すなわち64バイト)の同時移動を可能にする。
【0090】
RSC ICは、4つの全てのデータ経路を監視するクロスポイント(XPT)制御装置25を含む。実際、各データ経路の半分が、各クラスタ上のXPT制御装置により制御される。例えば、ローカルSCからリモートSCに転送されるデータは、ローカルRSC ICにより駆動され、リモートRSC ICにより受信される。従って、XPTバスの駆動部分はローカルRSC ICから発生する一方、受信部分はリモートRSC ICから到来する。4つの全てのデータ経路が11ビット制御バスにより制御され、ここでビット(0:5)は受信側を制御し、ビット(6:10)は駆動側を制御する。これらの部分的XPTバスは、以下では、受信XPT(RCV XPT)及び駆動XPT(DRV_XPT)と呼ばれる。
【0091】
図10は、1つのRSC IC内の1パイプラインの受信XPT及び駆動XPTの内部論理を示す。クリティカル・タイミング経路を緩和するために、XPT情報が可能であれば事前にセット・アップされる。XPT発生器81a論理の役割は、RSC資源情報と外部信号との組み合わせを用い、適切なデータ経路制御をセット・アップすることである。トリガ82a及び82bは、転送データに関して、XPT情報を正に正確な時間にRSC XPTバス上に解放するゲートとして作用する。RSC XPTバスのビットは、データ・チップ上の様々なバッファ制御装置及びクロスポイント・スイッチにより受信される。この論理は単純なデコーダを含み、これらがバッファ・アドレス及び書込み制御、更にセレクタを活動化する。データ・チップは、データ転送の背後の論理オペレーションの知識を有さないので、RSC XPTバスが、各QWの転送に対して1度、”パルス駆動”されなければならない。従って、データのラインが転送を要求する場合、RSC ICは適切な値を16連続サイクルの間、RSC XPTバス上に保持しなければならない。
【0092】
XPT制御装置25のRCV_XPT部分に注目すると、RCV XPT発生器81a論理が、RFAR資源レジスタ、ブロックXPT信号、及びRSC_CMDにより供給されるように示される。前述のように、データは2つの理由のために、すなわち、局所的に開始された要求からの返却フェッチ・データ、または遠隔的に開始されたストア・オペレーションからの入来ストア・データのために、このSCにより受信され得る。前者の場合、このRSC ICがフェッチ・オペレーションを担当し、RFAR資源レジスタのセット内に全ての情報を有する。XPT発生器論理は、コマンド59b、要求ID59c、LFARバッファ59d、及びLFAR ID59eレジスタ内の情報を使用し、RCV_XPTの値を計算し、データ転送長を決定する。長さが1QWよりも大きい場合、XPT制御装置83が適切なサイクル数によりロードされる。これは全て、コマンドがインタフェースを介してディスパッチされた少し後で発生する。データが返却されるとき、第1のQWは常に、符号化応答’03’x、’23’x、’05’x、または’18’x乃至’1B’xを伴う。(マッチングenc_resp_idを有する)これらの応答の1つをトリガ論理82aに受信すると、RCV_XPTがRSC_XPTバス上に解放される。複数のQWが含まれる場合、XPT制御装置はカウントが尽きるまで、RCV_XPT値を供給し続ける。RCV_XPTはオペレーションに従い、データを適切なCPUポート、I/Oポート、LSARバッファ、またはLFARバッファ(後にキャッシュに含むため)に仕向ける。特定の状況の下では、ローカルCPUに仕向けられるデータが、最後の瞬間、CPUに送信されるのを阻止しなければならない。RSC ICは、各LFAR11制御装置及びCFAR15制御装置から、トリガを抑制するために使用される幾つかの阻止信号を受信する。
【0093】
RCV_XPTバスの使用に関する第2の状況は、リモート・クラスタから開始されたストア・データの受信に関わる。これは完全に非同期な事象であるので、XPT発生器81a及びトリガ論理82aが同時に呼び出される。RSC ICは、ローカルRSAR制御装置12bからのデータ・アドバンス・トリガと同様に、入来RSC_CMDバスの一部をモニタする。RSAR_DADVが活動状態で、コマンドのサブセットが適切な値に復号される場合、RCV_XPTがセット・アップされて、RSC_XPTバスに提供され、それによりローカル・データ経路チップが入来データを受諾し、それをRSARバッファに経路指定するように指示される。
【0094】
駆動XPT(DRV_XPT)は類似に作用する。再度、2つの状況がこのデータ経路の使用を要求する。第1の状況は、局所的に開始されたストア・オペレーションに関わる。この場合、RSAR資源レジスタが、必要に応じてDRV_XPTをセット・アップし、XPT制御装置83をロードするために必要な全ての情報を保持する。トリガ論理82bにより受信されるRSAR_ST_OP信号が、インタフェースを介するコマンドの発行に関して、データが転送され始めるタイミングを制御する。他の側のRSARがリモートRSC ICにRSAR_DADVを活動化し、後者が”起動(wake up)”し、ストア・データを受諾し得る。RSAR_ST_OP信号は、単にRSARコマンド59bレジスタの復号であり、現オペレーションがストア・データ転送を要求するか否かを判断する。全てのストア・データはローカル側のLSARバッファから発生し、DRV_XPTがこれらのバッファの読出しを制御する。
【0095】
他の状況は、他の側により要求されたフェッチ・データの返却に関わる。このデータの源はRFARバッファ、PMAインタフェースまたは任意のCPUリモート・センス・レジスタであるので、XPT発生器81b論理が、MBA_IDに加え、RFAR制御装置12aからの信号の組み合わせを使用する。非0のMBA_IDは、データがそのIDに対応するリモート・センス・レジスタから到来することを示す。IDが0の場合、データがRFARバッファまたはPMAインタフェースのいずれから到来するかを決定するために、様々なRFAR信号が使用される。これらの信号の1つであるPMA_DATA_RDY信号は、データがL3メモリから記憶制御装置に転送されている時間窓の間に、RFAR制御装置12aにより生成される。この窓の間に、応答優先23がRFAR符号化応答要求を処理できる場合、データがRFARバッファをバイパスし、直接RSCインタフェースに転送され得る。他方、応答優先23がグラントを要求元RFARに発行する以前に窓の終りに達する場合、PMA_DATA_RDY信号が取り下げられる。この時、XPT発生器81b論理が、RSCインタフェースが使用可能になり、データをバッファからインタフェースに転送できるようになるまで、データをバッファに経路指定する。本発明のこの側面は、リモート・クラスタへのCPフェッチの間、不要なバッファ・ロード及びアンロードを排除することにより、一層システム性能を向上させる。
【0096】
DRV_XPTのセット・アップに加え、RFAR制御装置12aからの幾つかの信号が、データ転送長の導出を可能にするCRF_XFR_LENバスを構成する。返却データの場合、トリガ論理82bが、”返却フェッチ・データ”を示すENC_RESP値に結合される、応答優先ステーションからのRFARグラントにより活動化される。これはDRV_XPTが、RSC_XPTバスの別の半分上に解放されることを可能にする。再度、転送長が1QWよりも大きい場合、XPT制御装置83はカウンタが尽きるまで、連続的にRSC_XPTを活動化する。
【0097】
ここでRSCの非同期の性質は、頻繁な衝突を導く点に注意を要する。こうした衝突は例えば、ローカルRSCがストア・オペレーションを開始しようとする一方で、リモート・フェッチ・オペレーションのために、同時にデータを返却しようとするなどである。データ経路上で衝突を回避する一方、性能を最大化するために、XPT制御装置25は優先ステーションと密接に相互作用し、常に可能であれば、返却フェッチ・データが優先権を有するように保証する。また、一旦データ経路が使用中になると、優先ステーションは即時、データ経路を要求しない新たなオペレーションの開始に集中し、常に作業がクラスタ間で転送され続けるように努力する。
【0098】
ディセーブル・スイッチ:
RSC資源レジスタの各々は、図7に示される1ビットのディセーブル・ラッチ59fを含む。このラッチが’1’に走査されると、資源のあらゆる組み合わせが永久に禁止される。更に、これらのラッチはUBUSレジスタ内の4つのビットを用いてセットされ得る。好適な実施例で示される記憶制御装置は、一連のこれらのUBUSレジスタを含み、それらはファームウェア及びCPミリコードを通じて、読出され、書込まれ、変更され得る。ディセーブル・ラッチは、これらのミリコード制御式UBUSレジスタの1つを介して制御されるので、RSC資源の動的なディセーブル化(すなわち使用不能にすること)が、ミリコード・ルーチンまたは一時的パッチの一部として達成され得る。こうした用途の1つは、様々な作業負荷に対する複製資源の効果を決定する比較性能分析である。
【0099】
下位のコード・ポイント’1’x乃至’6’xは、コード・ポイント’8’x乃至’F’xとは異なって作用する。コード・ポイント’8’x乃至’F’xの呼び出しは、RSC IC内の関連ディセーブル・ビットを活動化することにより、単に選択資源をディセーブルする。複数の資源の任意の所望の組み合わせの使用を禁止するため、連続的なUBUS書込みオペレーションが使用され得る。下位コード・ポイントはディセーブル状況を生じ、それによりRSC IC内の優先論理がディセーブル・モードをモニタし、インタフェース活動を適宜制限する。例えば、モード’2’xが選択される場合、優先論理は、第1のオペレーションが完了するまで、第2のオペレーションが開始されないように保証する。
【0100】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0101】
(1)対称多重処理環境において資源を管理するリモート資源管理システムであって、
対称マルチプロセッサ・システムのクラスタ・ノード間のインタフェースを有する、対称マルチプロセッサの複数のクラスタと、
ローカル・インタフェース及びローカル・インタフェース制御装置と、
それぞれが前記ローカル・インタフェース制御装置を有する1つ以上のリモート記憶制御装置と、
ローカル−リモート間データ・バスと、
複数のプロセッサ、共用キャッシュ・メモリ、複数のI/Oアダプタ及び主メモリをそれぞれが有する、前記対称マルチプロセッサの2つの前記クラスタ間のインタフェースを管理するリモート資源マネージャと
を含み、前記リモート資源マネージャがリモート記憶制御装置により資源を管理し、作業要求を開始したリクエスタの知識を必要とすること無く、所望のオペレーションを実行するエージェントとして作用する前記リモート制御装置に前記作業を分配し、前記対称マルチプロセッサの前記クラスタ間の絶え間の無い通信の必要無しに、リモート・リクエスタが作業処理のために使用可能な場合にだけ、前記作業が転送される、リモート資源管理システム。
(2)待ち行列化された要求を優先順位付けするステップと、新たなオペレーションを前記インタフェースを介して送信するステップと、他の側からの返却応答を処理するステップと、前記クラスタ間の全てのデータの転送を監視するステップとを含む、インタフェース・タスクの制御を担う各クラスタ上の1つのインタフェース・マクロを有し、前記ローカル・インタフェース制御装置が、前記作業要求を前記リモート側に開始するだけでなく、前記リモート側のフェッチ/ストア制御装置を管理することにより、新たなオペレーションを使用可能な前記リモート制御装置に即時経路指定し、それにより前記リモート制御装置が、前記ローカル・インタフェース制御装置のために作用するエージェントとなり、前記ローカル・インタフェース制御装置がリクエスタのために作用し、オペレーションの所有者を識別する情報を送信する必要性を排除する、前記(1)記載のリモート資源管理システム。
(3)幾つかのローカル・オペレーションが1つのアトミック・リモート・オペレーションと結合されることを可能にする、コマンド再マップ化オペレーションを有する、前記(2)記載のリモート資源管理システム。
(4)データの読出し専用コピーのためのプロセッサ・フェッチ要求、及び記憶保護キーを含む読出し専用データのためのフェッチ要求が、前記リモート・クラスタ上の前記フェッチ制御装置が、同一の状態図及びキャッシュ管理オペレーションを使用するように要求し、前記インタフェース制御装置が前記両方の要求を、読出し専用ライン・フェッチとして知られる、1つの単純化されたリモート記憶クラスタ(RSC)・インタフェース制御装置コマンドに再マップすることにより、前記RSCインタフェース制御装置(RSC IC)により処理されなければならないオペレーションの数を低減する、前記(3)記載のリモート資源管理システム。
(5)ストア・データの転送が不必要にローカル−リモート間データ・バスを拘束し、ディレクトリ情報を送信するために追加の制御ラインが要求される場合、前記インタフェース制御装置がディレクトリ・ステータスにもとづき、転送コマンドを”強制追放”コマンドまたは”読出し専用無効”コマンドに再マップする、前記(4)記載のリモート資源管理システム。
(6)1つ以上のパイプライン階層レベル・キャッシュをサービスする多数のフェッチ・リモート制御装置及びストア・リモート制御装置を含む、ハイエンド記憶サブシステムを有するインタフェースを有し、一連の優先ステーションがインタフェースを介して送信される要求を選択し、複数のパイプが関わる場合、各パイプ内の事前優先ステーションが、RSC ICに転送されるフェッチ要求またはストア要求を選択し、同一のサイクルの間、前記リモート記憶制御装置の前記インタフェース制御装置が、優先オペレーションを用い、コマンド・タイプ及び資源可用性にもとづき、最適な要求を選択する、前記(1)記載のリモート資源管理システム。
(7)前記優先オペレーションにおいて、前記複数のパイプが任意の所与のサイクルにおいて、前記インタフェースの使用を要求できるので、リモート・フェッチ制御装置が使用可能な限り、前記オペレーションがストアよりもフェッチを優先し、それ以外では、リモート・ストア制御装置が使用可能な限り、ストアが実行され、データ経路を要求するこれらのストア・オペレーションのために前記データ経路が使用可能となり、両方の要求がフェッチで、両者が使用可能な資源を有する場合、ラウンド・ロビンが優遇される方の要求を決定し、両方の要求がストアの場合、どちらのパイプが使用可能な資源を有するかにより勝者が決定され、両方の要求が全て使用可能な資源を有する場合、ラウンド・ロビンが使用される、前記(6)記載のリモート資源管理システム。
(8)各ローカル・インタフェース制御装置内に、リモート側で待ち行列化される作業の送信のために、インタフェース・サイクルが浪費されないように保証する、リモート資源のマネージャを有する、前記(6)記載のリモート資源管理システム。
(9)各リモート記憶制御装置の前記ローカル・インタフェース制御装置が、同期応答バス及び非同期応答バスの両方を用いて、キャッシュ・コヒーレンスを維持する一方、性能を最大化し、非同期応答バスが、前記リモート・オペレーションの公式な終了を示し、しばしばオリジナル・リクエスタに転送される全ての最終応答のために使用され、前記最終応答が、ローカル・ディレクトリを適切な最終状態により更新することを可能にする変更ライン情報によりタグ付けされる、前記(6)記載のリモート資源管理システム。
(10)前記リモート制御装置のインタフェース制御装置マネージャが、全てのクラスタ−クラスタ間データ・フローを管理し、前記ローカル・ストア制御装置からの要求を、フェッチ・データを返却しようとする常駐リモート・フェッチ制御装置からの要求と比較し、両者が前記データ経路を競合するサイクルの間、優先権が返却フェッチ・データに与えられ、フェッチ・データが前記リモート主メモリから獲得される場合、前記リモート制御装置の前記インタフェース制御装置マネージャが、データがメモリ・バンクからアクセスされるとき、対応する前記データ経路をモニタ及び管理し、前記リモート記憶制御装置のデータ経路が使用可能なとき、データが前記リモート・フェッチ・バッファをバイパスし、データの一時的バッファリングに関連付けられる正規の待ち時間を低減する、前記(9)記載のリモート資源管理システム。
(11)全体システム・スループットを向上するために複製されたリモート記憶制御装置の資源の管理を向上するために、前記リモート制御装置の前記インタフェース制御装置マネージャが、前記複製のリモート・フェッチ資源の間の交互の作業要求により、リモート・キャッシュをヒットする連続フェッチ要求を管理し、第2のフェッチ要求を複製のリモート制御装置に、もしそれが使用可能であれば送信し、前記複製のリモート制御装置がそのバッファのロードを開始することを可能にし、その間、第1のリモート制御装置のバッファはまだそのデータ転送を完了中であり、前記第1のバッファ転送の完了時に、第2のバッファが即時そのデータをインタフェースを介して転送することを可能にする、前記(9)記載のリモート資源管理システム。
(12)前記リモート制御装置の前記インタフェース制御装置マネージャが、相互クラスタ・デッドロックを生じ得るオペレーション・シーケンスをモニタするために設計されたデッドロック回避機構を管理し、こうした状況を検出すると、前記リモート制御装置の前記インタフェース制御装置マネージャが、特殊な拒絶応答を発信元クラスタに返却することにより、保留のオペレーションを拒絶し、前記リモート制御装置の前記インタフェース制御装置が前記拒絶を発信元フェッチ/ストア制御装置に転送し、それにより前記オペレーションが再試行され、前記デッドロック窓が消滅するまで連続的に拒絶され、再試行される、前記(9)記載のリモート資源管理システム。
(13)新たなリモート記憶制御装置オペレーションを伴う任意の制御情報において、インタフェース・パリティ・エラーが検出されるとき、同期インタフェースを用いコマンドが送信された後、固定サイクル数以内にインタフェース・エラー・ステータスを送信し、エラーの場合、発信元フェッチ/ストア制御装置がそれを通知され、続いて回復の適格性を決定し、前記リモート記憶制御装置の前記インタフェース制御装置が自動的に対応するリモート記憶制御装置の資源をリセットし、前記オペレーションが再度要求されることを可能にする、前記(9)記載のリモート資源管理システム。
(14)前記システムが、コマンドのスーパセットをより小さく効率的なサブセットに再マップすることにより、前記リモート制御装置の複雑度を軽減し、不要なデータ転送を回避することにより、インタフェース効率を向上させる、コマンド再マップ化機構を含む、前記(1)記載のリモート資源管理システム。
(15)前記コマンド再マップ化がフリップ・ビットを用いて、要求されるゲート数を低減し、更に機能が1論理サイクル内に実行されるようにすることにより、システム性能を向上させる、前記(14)記載のリモート資源管理システム。
(16)局所的に開始されたオペレーションと、アウトバウンド・データ及びインバウンド・データが前記データ・バスを共用することを可能にするリモート・リターンを処理する統一制御を提供することにより、インタフェースI/Oを低減する一方、全体システム性能に関して、前記バスが高効率に管理されることを可能にする、前記(6)記載のリモート資源管理システム。
(17)前記優先オペレーションが、前記要求及び前記リモート記憶制御装置の資源を毎サイクルごとに動的に分析し、フェッチ要求をストア要求に優先させ、局所的に開始された要求及び遠隔的に開始されたオペレーションへの応答の両方、及びデータ経路を要求するオペレーションのデータ経路可用性を考慮し、適切な資源が使用可能な場合にだけ、オペレーションが前記インタフェースを介して送信されるようにすることにより、システム性能とインタフェース利用とを効率的に均衡させる、前記(6)記載のリモート資源管理システム。
(18)前記リモート資源管理マネージャが、リモート・キャッシュ内のディレクトリ・ミスに際して、資源を固定時間内に自動的に解放するための同期相互問い合わせと、RSC ICがCPフェッチを探索中のパイプラインをモニタするための、前記CPフェッチのためのパイプ高速路指定とを提供し、前記CPフェッチの発見に際して、該フェッチが前記RSC ICに提供される以前に、LFAR制御装置にロードされなければならない正規の場合よりも、前記フェッチを1サイクル前に開始し、前記相互問い合わせが前記インタフェースを介して送信されるのと同時に、ローカルPMAがデータのフェッチを開始する早期PMAフェッチ/取り消しをサポートし、前記リモート・キャッシュ内のヒットに際して、前記RSC ICが前記ローカルLFAR制御装置に、前記早期PMAフェッチを取り消し、メモリ・インタリーブを解放するように指示し、前記フェッチ・バッファが階層キャッシュ・アクセスをバイパスし、データが前記階層キャッシュ(PMA)から受信されている間、前記RSC ICがクラスタ−クラスタ間データ経路をモニタし、前記データ経路が使用可能な場合、データが自動的に前記フェッチ・バッファをバイパスし、前記PMA受信ポートから直接RSCインタフェースに転送される、前記(1)記載のリモート資源管理システム。
(19)前記リモート資源管理マネージャが、1つのクロスポイント制御装置により、4ウェイ同時データ転送が可能な4つのデータ経路を管理し、各前記データ経路が、局所的に開始されるオペレーション及び遠隔的に開始されるオペレーションを多重化することにより、前記データ経路の可用性が、次のディスパッチ・オペレーションを決定するために優先機構に伝送される、前記(1)記載のリモート資源管理システム。
(20)前記リモート資源管理マネージャが、
前記リモート側が読出し専用無効において要求される全てのステップを完了する以前に、前記ローカルLFAR制御装置を解放し、前記LFAR制御装置が、リモート・オペレーション及び続く読出し専用無効の送信を含む、新たなオペレーションを開始できるようにする加速読出し専用無効オペレーションと、
インタフェース・パリティ・エラーの場合、RSC資源を自動的にリセットし、関連するLFAR制御装置またはLSAR制御装置がオペレーションを再試行できるように前記制御装置へ通知する、同期インタフェース・チェックの使用と、
前記リモートRFAR制御装置またはRSAR制御装置が潜在的デッドロックを検出し、対応するLFAR制御装置またはLSAR制御装置に拒絶応答を送信し、前記制御装置がオペレーションを再試行することを可能にする、相互クラスタ・デッドロック回避手段と、
連続的なデータ・フェッチが、RFAR資源またはRSAR資源対の交互の資源に分配されるようにし、前記資源対の両方のメンバが使用可能な場合、先のフェッチの後続バイトがまだ他のバッファ内で処理されている間に、後のフェッチがロードを開始するためのリモート・バッファを有することを保証する、RSC資源対の使用と
を提供する、前記(1)記載のリモート資源管理システム。
【図面の簡単な説明】
【図1】双節対称マルチプロセッサ・システムの1つの記憶制御装置クラスタを示す図である。
【図2】リモート・クラスタから返却される全ての応答トラフィックを処理する応答ハンドラ、詳細なインタフェース、及びリモート記憶制御装置RSC IC10を含むサブユニットと、リモート・フェッチ/ストア制御装置12とRSC IC間のインタフェースを示す図である。
【図3】コマンド変換のハードウェアの好適な実施例を示す図である。
【図4】主コマンド優先ステーション33と、それに供給するパイプライン優先ステーション32を含む、全体優先ステーションを示す図である。
【図5】前述の機構とRSC優先ステーション21との相互作用を示す論理ブロック図である。
【図6】コマンドが適切な資源保持レジスタにステージされる様子を示す図である。
【図7】ディセーブル・ビット、有効ビット、コマンド・レジスタ、オリジナル・リクエスタIDレジスタ、LFSAR制御装置IDレジスタ、及びLFSARバッファ・レジスタを提供する、資源レジスタ59の1つのセットの詳細図である。
【図8】ステージング機構と、応答ハンドラ22がステージング機構を用い、XI応答を追跡する様子を示す図である。
【図9】他のステージング・パイプラインと同様に作用する、読出し専用無効ステージング・パイプライン75を示す図である。
【図10】RSC IC内のクロスポイントを受信及び駆動する1パイプラインの内部論理図である。
【符号の説明】
10 リモート記憶クラスタ・インタフェース制御装置(RSC IC)
11 ローカル・フェッチ/ストア制御装置
12 リモート・フェッチ/ストア制御装置
15 中央処理ユニット制御装置
16 I/Oアダプタ制御装置
22 応答ハンドラ
23 応答優先
24、59 資源レジスタ
25 クロスポイント(XPT)制御装置
26 フリップ・ビット発生器
32 パイプライン事前優先ステーション
33 コマンド優先ステーション
35 資源トグル器
41 3ウェイ多重化
44、56 2ウェイ多重化
46、58 ゲートウェイ
53 CLCグラント
54 ORゲート
65 資源ロード・ラッチ
74 ROI多重化

Claims (15)

  1. 対称多重処理環境において資源を管理するリモート資源管理システムであって、
    対称マルチプロセッサ・システムのクラスタ・ノード間のインタフェースを行なうためのインタフェース・ユニットを有する、対称マルチプロセッサの複数のクラスタと、
    クラスタ間のデータ転送に使用されるローカル−リモート間データ・バスと、
    を含み、
    前記インタフェース・ユニットは、
    ローカル・インタフェース及びローカル・インタフェース制御装置(11)と、
    1つ以上のリモート記憶制御装置(12)と、
    複数のプロセッサ、共用キャッシュ・メモリ、複数のI/Oアダプタ及び主メモリをそれぞれ含む前記対称マルチプロセッサの2つの前記クラスタ間のインタフェースを管理する資源レジスタ(24)を含むリモート資源マネージャ(10)と、
    を含んで構成され、
    前記1つ以上のリモート記憶制御装置(12)のそれぞれが前記リモート資源マネージャにより制御され、
    前記リモート資源マネージャ(10)がリモート記憶制御装置(12)を介してリモート制御装置を含むリモート資源を管理し、ローカル側の前記ローカル・インタフェース制御装置による作業要求をリモート側に通知させると共に、前記リモート側のフェッチ/ストア制御装置を管理することにより、新たな作業要求を、前記作業要求のリクエスタを識別させる情報をリモート資源の管理のために使用することなく使用可能な前記リモート制御装置に即時経路指定させており、
    前記リモート資源マネージャは、資源レジスタに格納されたローカル側における全てのリモート資源の利用状況を追跡し、前記リモート資源が作業処理のために使用可能な場合にだけ、前記ローカル・インタフェース制御装置が前記リモート制御装置をエージェントとして利用するべく前記作業要求を前記リモート側に転送することにより、リモート制御装置に作業を分配する、リモート資源管理システム。
  2. 前記リモート資源マネージャは、待ち行列化された要求を優先順位付けし、新たな作業要求を前記リモート記憶制御装置を介して送信させ、リモート側からの返却応答を処理すると共に、前記クラスタ間の全てのデータの転送を監視するインタフェース・タスクを制御する、請求項1記載のリモート資源管理システム。
  3. 幾つかのローカル側における指令を、リモート側における1つのアトミック・オペレーションと結合させる、コマンド再マップ化処理を有する、請求項2記載のリモート資源管理システム。
  4. データの読出し専用コピーのためのプロセッサ・フェッチ要求、及び記憶保護キーを含む読出し専用データのためのフェッチ要求が、前記リモート・クラスタ上の前記フェッチ制御装置が同一の状態図及びキャッシュ管理処理を使用することを要求するものであり、前記リモート資源マネージャは、リモート記憶クラスタ(RSC)・インタフェース制御装置であり、前記RSCインタフェース制御装置が前記両方の要求を、読出し専用ライン・フェッチとして知られる、1つの単純化されたRSCインタフェース制御装置コマンドに再マップすることにより、前記RSCインタフェース制御装置(RSC IC)により処理されなければならないオペレーションの数を低減する、請求項3記載のリモート資源管理システム。
  5. 前記リモート資源マネージャは、リモート側に対するローカル・キャッシュにおけるデータの存在の問い合わせに際して、ディレクトリ・ステータスにもとづき、コマンド変換を使用して、転送コマンドを“強制追放”コマンドまたは“読出し専用無効”コマンドに 再マップすることにより、ストア・データの転送によるデータ・バスの拘束を生じさせない、請求項4記載のリモート資源管理システム。
  6. 前記インタフェース・ユニットは、1つ以上のパイプライン階層レベル・キャッシュをサービスする多数のリモート・フェッチ制御装置及びリモート・ストア制御装置を含む、ハイエンド記憶サブシステムを有するインタフェースを有し、前記リモート資源マネージャは、一連の優先ステーションを含み、前記一連の優先ステーションが前記インタフェースを介して送信される要求を選択し、複数のパイプが関わる場合、各パイプ内の事前優先ステーションが、前記リモート資源マネージャに転送されるフェッチ要求またはストア要求を選択し同一のサイクルの間、優先オペレーション処理によりコマンド・タイプ及び資源可用性にもとづき、資源が使用可能である限り、新たな作業要求をリモート側に転送させる、請求項1記載のリモート資源管理システム。
  7. 前記優先オペレーション処理は、前記複数のパイプが任意の所与のサイクルにおいて、前記インタフェースの使用を要求できるので、リモート・フェッチ制御装置が使用可能な限り、前記オペレーションがストアよりもフェッチを優先し、それ以外では、リモート・ストア制御装置が使用可能な限り、ストアが実行され、データ経路を要求するこれらのストア・オペレーションのために前記データ経路が使用可能となり、両方の要求がフェッチで、両者が使用可能な資源を有する場合、ラウンド・ロビンが優遇される方の要求を決定し、両方の要求がストアの場合、どちらのパイプが使用可能な資源を有するかにより勝者が決定され、両方の要求が全て使用可能な資源を有する場合、ラウンド・ロビンが使用される、請求項6記載のリモート資源管理システム。
  8. 前記リモート資源マネージャは、各ローカル・インタフェース制御装置内に含まれ、資源レジスタを参照して、リモート側で待ち行列化される作業の送信のために、インタフェース・サイクルが浪費されないように保証する、請求項6記載のリモート資源管理システム。
  9. 各リモート記憶制御装置の前記ローカル・インタフェース制御装置が、同期応答バス及び非同期応答バスの両方を用いて、キャッシュ・コヒーレンスを維持させ、非同期応答バスが、前記リモート・オペレーションの公式な終了を示し、オリジナル・リクエスタに転送される全ての最終応答のために使用され、前記最終応答が、ローカル・ディレクトリを適切な最終状態により更新することを可能にする変更ライン情報によりタグ付けされる、請求項6記載のリモート資源管理システム。
  10. 前記リモート記憶制御装置の前記インタフェース制御装置が、相互クラスタ・デッドロックを生じ得るオペレーション・シーケンスをモニタするために設計されたデッドロック回避機構を管理し、こうした状況を検出すると、前記リモート記憶制御装置の前記インタフェース制御装置が、特殊な拒絶応答を発信元クラスタに返却することにより、保留のオペレーションを拒絶し、前記リモート記憶制御装置の前記インタフェース制御装置が前記拒絶を発信元フェッチ/ストア制御装置に転送し、それにより前記オペレーションが再試行され、デッドロック・ウィンドウが消滅するまで連続的に拒絶され、再試行される、請求項9記載のリモート資源管理システム。
  11. 新たなリモート記憶制御装置に対する作業を伴う任意の制御情報において、インタフェース・パリティ・エラーが検出されるとき、同期インタフェースを用いコマンドが送信された後、固定サイクル数以内にインタフェース・エラー・ステータスを送信し、エラーの場合、発信元フェッチ/ストア制御装置がそれを通知され、続いて回復の適格性を決定し、前記リモート記憶制御装置の前記インタフェース制御装置が自動的に対応するリモート記憶制御装置の資源をリセットし、前記作業が再度要求されることを可能にする、請求項9記載のリモート資源管理システム。
  12. 前記システムが、オリジナルのコマンドが入力されフリップ・ビット列を生成させるためのフリップ・ビット発生器により発生されるフリップ・ビットに基づくコマンドのスーパセットのより小さなアトミック・オペレーションのサブセットへの再マップのためのコマンド再マップ化機構を含む、請求項1記載のリモート資源管理システム。
  13. 前記コマンド再マップ化機構が、前記フリップ・ビット発生器により発生されたフリップ・ビットと、前記オリジナルのコマンドとの排他的論理和を用いて、RSCコマンドを生成させる、請求項12記載のリモート資源管理システム。
  14. 前記優先オペレーションが、前記要求及び前記リモート記憶制御装置の資源を毎サイクルごとに動的に分析し、フェッチ要求をストア要求に優先させ、ローカル側において開始された要求及びリモート側において開始された指令への応答の両方、及びデータ経路を要求するオペレーションのデータ経路可用性を、資源レジスタを参照することにより判断し、対応する資源が使用可能な場合にだけ、指令が前記インタフェースを介して送信される、請求項6記載のリモート資源管理システム。
  15. 前記リモート資源管理マネージャが、1つのクロスポイント制御装置により、4ウェイ同時データ転送が可能な4つのデータ経路を管理し、各前記データ経路が、局所的に開始されるオペレーション及び遠隔的に開始されるオペレーションを多重化することにより、前記データ経路の可用性が、次のディスパッチ・オペレーションを決定するために優先オペレーション処理機構に伝送される、請求項1記載のリモート資源管理システム。
JP07553199A 1998-03-23 1999-03-19 リモート資源管理システム Expired - Lifetime JP3589394B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/046430 1998-03-23
US09/046,430 US6038651A (en) 1998-03-23 1998-03-23 SMP clusters with remote resource managers for distributing work to other clusters while reducing bus traffic to a minimum

Publications (2)

Publication Number Publication Date
JP2000076130A JP2000076130A (ja) 2000-03-14
JP3589394B2 true JP3589394B2 (ja) 2004-11-17

Family

ID=21943414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07553199A Expired - Lifetime JP3589394B2 (ja) 1998-03-23 1999-03-19 リモート資源管理システム

Country Status (6)

Country Link
US (1) US6038651A (ja)
EP (1) EP0945798A3 (ja)
JP (1) JP3589394B2 (ja)
KR (1) KR100297908B1 (ja)
CN (1) CN1133943C (ja)
CA (1) CA2262314C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148467A (ja) * 2005-11-24 2007-06-14 Nec Computertechno Ltd 情報処理装置およびそのエラー処理方法ならびに制御プログラム

Families Citing this family (123)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240501B1 (en) * 1997-09-05 2001-05-29 Sun Microsystems, Inc. Cache-less address translation
JP3636871B2 (ja) * 1997-09-16 2005-04-06 株式会社日立製作所 並列プロセッサシステム
EP2320322A3 (en) * 1998-12-21 2011-08-03 Advanced Micro Devices, Inc. Conservation of system memory bandwidth and cache coherency maintenance using memory cancel messages
JP3858492B2 (ja) 1998-12-28 2006-12-13 株式会社日立製作所 マルチプロセッサシステム
CA2381080C (en) * 1999-08-02 2005-04-05 Tae Gyu Lee Remote storage and loading of internet data
US7996843B2 (en) 1999-08-25 2011-08-09 Qnx Software Systems Gmbh & Co. Kg Symmetric multi-processor system
US6920519B1 (en) 2000-05-10 2005-07-19 International Business Machines Corporation System and method for supporting access to multiple I/O hub nodes in a host bridge
US6826619B1 (en) 2000-08-21 2004-11-30 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6751721B1 (en) * 2000-08-31 2004-06-15 Hewlett-Packard Development Company, L.P. Broadcast invalidate scheme
US6487643B1 (en) 2000-09-29 2002-11-26 Intel Corporation Method and apparatus for preventing starvation in a multi-node architecture
US6671793B1 (en) 2000-10-02 2003-12-30 International Business Machines Corporation Method and system for managing the result from a translator co-processor in a pipelined processor
US6640289B2 (en) * 2000-11-15 2003-10-28 Unisys Corporation Software controlled cache line ownership affinity enhancements in a multiprocessor environment
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
US6738872B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation Clustered computer system with deadlock avoidance
US6738870B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
US6738871B2 (en) * 2000-12-22 2004-05-18 International Business Machines Corporation Method for deadlock avoidance in a cluster environment
US7234029B2 (en) * 2000-12-28 2007-06-19 Intel Corporation Method and apparatus for reducing memory latency in a cache coherent multi-node architecture
US6791412B2 (en) * 2000-12-28 2004-09-14 Intel Corporation Differential amplifier output stage
US6721918B2 (en) 2000-12-29 2004-04-13 Intel Corporation Method and apparatus for encoding a bus to minimize simultaneous switching outputs effect
US20020087775A1 (en) * 2000-12-29 2002-07-04 Looi Lily P. Apparatus and method for interrupt delivery
US20020087766A1 (en) * 2000-12-29 2002-07-04 Akhilesh Kumar Method and apparatus to implement a locked-bus transaction
US6785773B2 (en) * 2001-03-29 2004-08-31 International Business Machines Corporation Verification of global coherence in a multi-node NUMA system
US6918021B2 (en) * 2001-05-10 2005-07-12 Hewlett-Packard Development Company, L.P. System of and method for flow control within a tag pipeline
US6785758B1 (en) * 2001-06-01 2004-08-31 Advanced Micro Devices, Inc. System and method for machine specific register addressing in a split transactional unidirectional bus architecture
US7159216B2 (en) * 2001-11-07 2007-01-02 International Business Machines Corporation Method and apparatus for dispatching tasks in a non-uniform memory access (NUMA) computer system
US20030101160A1 (en) * 2001-11-26 2003-05-29 International Business Machines Corporation Method for safely accessing shared storage
DE10164338A1 (de) * 2001-12-28 2003-07-17 Thomson Brandt Gmbh Verfahren zur Einstellung eines Betriebsparameters in einem Peripherie-IC und Vorrichtung zur Durchführung des Verfahrens
US7792978B2 (en) * 2001-12-28 2010-09-07 At&T Intellectual Property I, L.P. System and method to remotely manage and audit set top box resources
US7219121B2 (en) * 2002-03-29 2007-05-15 Microsoft Corporation Symmetrical multiprocessing in multiprocessor systems
US8103748B2 (en) * 2002-05-20 2012-01-24 International Business Machines Corporation Rule-based method and system for managing heterogenous computer clusters
US7281055B2 (en) * 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7155525B2 (en) * 2002-05-28 2006-12-26 Newisys, Inc. Transaction management in systems having multiple multi-processor clusters
US7103636B2 (en) * 2002-05-28 2006-09-05 Newisys, Inc. Methods and apparatus for speculative probing of a remote cluster
US7243282B2 (en) * 2002-07-29 2007-07-10 Hewlett-Packard Development Company, L.P. Method and apparatus for implementing multiple remote diagnose register chains
US20040039816A1 (en) * 2002-08-23 2004-02-26 International Business Machines Corporation Monitoring method of the remotely accessible resources to provide the persistent and consistent resource states
US7577755B2 (en) * 2002-11-19 2009-08-18 Newisys, Inc. Methods and apparatus for distributing system management signals
US7228351B2 (en) * 2002-12-31 2007-06-05 International Business Machines Corporation Method and apparatus for managing resource contention in a multisystem cluster
US20040139142A1 (en) * 2002-12-31 2004-07-15 International Business Machines Corporation Method and apparatus for managing resource contention
US7047370B1 (en) * 2003-01-14 2006-05-16 Cisco Technology, Inc. Full access to memory interfaces via remote request
US7380082B2 (en) * 2003-03-25 2008-05-27 Emc Corporation Reading virtual ordered writes at local storage device
US20040199727A1 (en) * 2003-04-02 2004-10-07 Narad Charles E. Cache allocation
US7383336B2 (en) 2003-04-24 2008-06-03 International Business Machines Corporation Distributed shared resource management
US7085897B2 (en) * 2003-05-12 2006-08-01 International Business Machines Corporation Memory management for a symmetric multiprocessor computer system
US7437728B2 (en) * 2003-06-12 2008-10-14 Microsoft Corporation System and method for CPU bandwidth allocation
US7386626B2 (en) * 2003-06-23 2008-06-10 Newisys, Inc. Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
US7577727B2 (en) 2003-06-27 2009-08-18 Newisys, Inc. Dynamic multiple cluster system reconfiguration
US7117419B2 (en) * 2003-08-05 2006-10-03 Newisys, Inc. Reliable communication between multi-processor clusters of multi-cluster computer systems
US7159137B2 (en) * 2003-08-05 2007-01-02 Newisys, Inc. Synchronized communication between multi-processor clusters of multi-cluster computer systems
US7395347B2 (en) * 2003-08-05 2008-07-01 Newisys, Inc, Communication between and within multi-processor clusters of multi-cluster computer systems
US7103823B2 (en) * 2003-08-05 2006-09-05 Newisys, Inc. Communication between multi-processor clusters of multi-cluster computer systems
US7426578B2 (en) 2003-12-12 2008-09-16 Intercall, Inc. Systems and methods for synchronizing data between communication devices in a networked environment
US7590845B2 (en) * 2003-12-22 2009-09-15 Lenovo Singapore Pte. Ltd. Key cache management through multiple localities
US7380039B2 (en) * 2003-12-30 2008-05-27 3Tera, Inc. Apparatus, method and system for aggregrating computing resources
US7664110B1 (en) 2004-02-07 2010-02-16 Habanero Holdings, Inc. Input/output controller for coupling the processor-memory complex to the fabric in fabric-backplane interprise servers
US7757033B1 (en) 2004-02-13 2010-07-13 Habanero Holdings, Inc. Data exchanges among SMP physical partitions and I/O interfaces enterprise servers
US7953903B1 (en) 2004-02-13 2011-05-31 Habanero Holdings, Inc. Real time detection of changed resources for provisioning and management of fabric-backplane enterprise servers
US7860961B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Real time notice of new resources for provisioning and management of fabric-backplane enterprise servers
US7633955B1 (en) 2004-02-13 2009-12-15 Habanero Holdings, Inc. SCSI transport for fabric-backplane enterprise servers
US7873693B1 (en) 2004-02-13 2011-01-18 Habanero Holdings, Inc. Multi-chassis fabric-backplane enterprise servers
US8868790B2 (en) 2004-02-13 2014-10-21 Oracle International Corporation Processor-memory module performance acceleration in fabric-backplane enterprise servers
US7843907B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway target for fabric-backplane enterprise servers
US7860097B1 (en) 2004-02-13 2010-12-28 Habanero Holdings, Inc. Fabric-backplane enterprise servers with VNICs and VLANs
US8145785B1 (en) * 2004-02-13 2012-03-27 Habanero Holdings, Inc. Unused resource recognition in real time for provisioning and management of fabric-backplane enterprise servers
US7685281B1 (en) 2004-02-13 2010-03-23 Habanero Holdings, Inc. Programmatic instantiation, provisioning and management of fabric-backplane enterprise servers
US7843906B1 (en) 2004-02-13 2010-11-30 Habanero Holdings, Inc. Storage gateway initiator for fabric-backplane enterprise servers
US7990994B1 (en) 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US8112584B1 (en) * 2004-06-28 2012-02-07 Cisco Technology, Inc Storage controller performing a set of multiple operations on cached data with a no-miss guarantee until all of the operations are complete
US20140067771A2 (en) * 2004-07-09 2014-03-06 International Business Machines Corporation Management of a Scalable Computer System
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
US7840731B2 (en) * 2004-08-25 2010-11-23 Cisco Technology, Inc. Accelerated data switching on symmetric multiprocessor systems using port affinity
US8254411B2 (en) * 2005-02-10 2012-08-28 International Business Machines Corporation Data processing system, method and interconnect fabric having a flow governor
US20060176890A1 (en) * 2005-02-10 2006-08-10 International Business Machines Corporation Data processing system, method and interconnect fabric for improved communication in a data processing system
US8230178B2 (en) * 2005-02-10 2012-07-24 International Business Machines Corporation Data processing system and method for efficient coherency communication utilizing coherency domain indicators
US7765405B2 (en) * 2005-02-25 2010-07-27 Microsoft Corporation Receive side scaling with cryptographically secure hashing
CN1317447C (zh) * 2005-05-09 2007-05-23 烟台万华超纤股份有限公司 一种阻燃性聚氨酯合成革及其制备方法
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US7587543B2 (en) * 2006-01-23 2009-09-08 International Business Machines Corporation Apparatus, method and computer program product for dynamic arbitration control
US20080022079A1 (en) * 2006-07-24 2008-01-24 Archer Charles J Executing an allgather operation with an alltoallv operation in a parallel computer
US8495308B2 (en) * 2006-10-09 2013-07-23 International Business Machines Corporation Processor, data processing system and method supporting a shared global coherency state
US8161480B2 (en) 2007-05-29 2012-04-17 International Business Machines Corporation Performing an allreduce operation using shared memory
US20090006663A1 (en) * 2007-06-27 2009-01-01 Archer Charles J Direct Memory Access ('DMA') Engine Assisted Local Reduction
KR20090004266A (ko) * 2007-07-06 2009-01-12 한국전자통신연구원 자체 제어 기능을 갖는 기능 모듈 및 이의 동작 제어방법과, 이를 이용한 시스템
US7818504B2 (en) * 2007-09-26 2010-10-19 International Business Machines Corporation Storage system that prioritizes storage requests
US8422402B2 (en) 2008-04-01 2013-04-16 International Business Machines Corporation Broadcasting a message in a parallel computer
US8484440B2 (en) 2008-05-21 2013-07-09 International Business Machines Corporation Performing an allreduce operation on a plurality of compute nodes of a parallel computer
US7836185B2 (en) * 2008-06-27 2010-11-16 International Business Machines Corporation Common resource management in a server cluster
US8281053B2 (en) 2008-07-21 2012-10-02 International Business Machines Corporation Performing an all-to-all data exchange on a plurality of data buffers by performing swap operations
KR20100026509A (ko) * 2008-08-29 2010-03-10 삼성전자주식회사 복수의 데이터 플로우를 전송하는 반도체 장치
US9396021B2 (en) * 2008-12-16 2016-07-19 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster using local job tables
US9384042B2 (en) * 2008-12-16 2016-07-05 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on inter-thread communications
US8122132B2 (en) * 2008-12-16 2012-02-21 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on broadcast information
US8239524B2 (en) 2008-12-16 2012-08-07 International Business Machines Corporation Techniques for dynamically assigning jobs to processors in a cluster based on processor workload
US20110145837A1 (en) * 2009-12-14 2011-06-16 Bower Kenneth S Filtering Broadcast Recipients In A Multiprocessing Environment
US8332460B2 (en) * 2010-04-14 2012-12-11 International Business Machines Corporation Performing a local reduction operation on a parallel computer
US9424087B2 (en) 2010-04-29 2016-08-23 International Business Machines Corporation Optimizing collective operations
US8949577B2 (en) 2010-05-28 2015-02-03 International Business Machines Corporation Performing a deterministic reduction operation in a parallel computer
US8688880B2 (en) * 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
US8776081B2 (en) 2010-09-14 2014-07-08 International Business Machines Corporation Send-side matching of data communications messages
US8566841B2 (en) 2010-11-10 2013-10-22 International Business Machines Corporation Processing communications events in parallel active messaging interface by awakening thread from wait state
US8635411B2 (en) 2011-07-18 2014-01-21 Arm Limited Data processing apparatus and method for managing coherency of cached data
US8893083B2 (en) 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
US8910178B2 (en) 2011-08-10 2014-12-09 International Business Machines Corporation Performing a global barrier operation in a parallel computer
US8667501B2 (en) 2011-08-10 2014-03-04 International Business Machines Corporation Performing a local barrier operation
US8996718B2 (en) * 2012-02-02 2015-03-31 Apple Inc. TCP-aware receive side coalescing
US8706847B2 (en) 2012-02-09 2014-04-22 International Business Machines Corporation Initiating a collective operation in a parallel computer
US9495135B2 (en) 2012-02-09 2016-11-15 International Business Machines Corporation Developing collective operations for a parallel computer
GB2514024B (en) 2012-03-02 2020-04-08 Advanced Risc Mach Ltd Data processing apparatus having first and second protocol domains, and method for the data processing apparatus
KR101366967B1 (ko) * 2012-06-12 2014-02-25 엘에스산전 주식회사 메모리 공유 회로
CN102880585B (zh) * 2012-09-28 2015-05-06 无锡江南计算技术研究所 用于具有多个处理器核心的处理器系统的同步器
US9561469B2 (en) * 2014-03-24 2017-02-07 Johnson Matthey Public Limited Company Catalyst for treating exhaust gas
US9858189B2 (en) * 2015-06-24 2018-01-02 International Business Machines Corporation Hybrid tracking of transaction read and write sets
US9760494B2 (en) 2015-06-24 2017-09-12 International Business Machines Corporation Hybrid tracking of transaction read and write sets
US10642780B2 (en) 2016-03-07 2020-05-05 Mellanox Technologies, Ltd. Atomic access to object pool over RDMA transport network
US10387415B2 (en) * 2016-06-28 2019-08-20 International Business Machines Corporation Data arrangement management in a distributed data cluster environment of a shared pool of configurable computing resources
US10380034B2 (en) * 2017-07-14 2019-08-13 International Business Machines Corporation Cache return order optimization
US10552367B2 (en) 2017-07-26 2020-02-04 Mellanox Technologies, Ltd. Network data transactions using posted and non-posted operations
US11163489B2 (en) * 2018-05-23 2021-11-02 SK Hynix Inc. Workload clusterization for memory system and method of executing the same
CN109388609B (zh) * 2018-09-30 2020-02-21 中科驭数(北京)科技有限公司 基于加速核的数据处理方法和装置
US10802966B2 (en) 2019-02-14 2020-10-13 International Business Machines Corporation Simultaneous, non-atomic request processing within an SMP environment broadcast scope for multiply-requested data elements using real-time parallelization
JP6894459B2 (ja) * 2019-02-25 2021-06-30 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. 疑似スタティックランダムアクセスメモリとその動作方法
US11099905B2 (en) 2019-02-26 2021-08-24 International Business Machines Corporation Efficient remote resource allocation within an SMP broadcast scope maintaining fairness between operation types
CN111367672A (zh) * 2020-03-05 2020-07-03 北京奇艺世纪科技有限公司 数据缓存方法、装置、电子设备及计算机存储介质
CN115114188B (zh) * 2022-06-23 2023-04-07 云南大学 一种嵌入式处理器高速缓存器结构及控制方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4156907A (en) * 1977-03-02 1979-05-29 Burroughs Corporation Data communications subsystem
US4200930A (en) * 1977-05-23 1980-04-29 Burroughs Corporation Adapter cluster module for data communications subsystem
US4570220A (en) 1983-11-25 1986-02-11 Intel Corporation High speed parallel bus and data transfer method
US5204954A (en) * 1987-11-18 1993-04-20 International Business Machines Corporation Remote storage management mechanism and method
US4939724A (en) * 1988-12-29 1990-07-03 Intel Corporation Cluster link interface for a local area network
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5168547A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Distributed architecture for input/output for a multiprocessor system
US5513325A (en) * 1992-12-23 1996-04-30 Unisys Corporation Technique for coupling CTOS units to non-CTOS host
JPH08235092A (ja) * 1995-02-22 1996-09-13 Kofu Nippon Denki Kk データ転送制御装置
US6105053A (en) * 1995-06-23 2000-08-15 Emc Corporation Operating system for a non-uniform memory access multiprocessor system
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5784697A (en) * 1996-03-27 1998-07-21 International Business Machines Corporation Process assignment by nodal affinity in a myultiprocessor system having non-uniform memory access storage architecture
US5893160A (en) * 1996-04-08 1999-04-06 Sun Microsystems, Inc. Deterministic distributed multi-cache coherence method and system
US5749095A (en) * 1996-07-01 1998-05-05 Sun Microsystems, Inc. Multiprocessing system configured to perform efficient write operations
US5878268A (en) * 1996-07-01 1999-03-02 Sun Microsystems, Inc. Multiprocessing system configured to store coherency state within multiple subnodes of a processing node

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007148467A (ja) * 2005-11-24 2007-06-14 Nec Computertechno Ltd 情報処理装置およびそのエラー処理方法ならびに制御プログラム
JP4584124B2 (ja) * 2005-11-24 2010-11-17 エヌイーシーコンピュータテクノ株式会社 情報処理装置およびそのエラー処理方法ならびに制御プログラム

Also Published As

Publication number Publication date
EP0945798A2 (en) 1999-09-29
KR19990077851A (ko) 1999-10-25
CA2262314C (en) 2002-08-13
US6038651A (en) 2000-03-14
EP0945798A3 (en) 2005-06-15
CA2262314A1 (en) 1999-09-23
CN1133943C (zh) 2004-01-07
JP2000076130A (ja) 2000-03-14
CN1236136A (zh) 1999-11-24
KR100297908B1 (ko) 2001-09-26

Similar Documents

Publication Publication Date Title
JP3589394B2 (ja) リモート資源管理システム
US11907528B2 (en) Multi-processor bridge with cache allocate awareness
US7590805B2 (en) Monitor implementation in a multicore processor with inclusive LLC
US5440698A (en) Arbitration of packet switched busses, including busses for shared memory multiprocessors
US5265235A (en) Consistency protocols for shared memory multiprocessors
CN100524252C (zh) 一种嵌入式系统芯片及数据读写处理方法
EP0488770B1 (en) Consistent packet switched memory bus for shared memory multiprocessors
US6738872B2 (en) Clustered computer system with deadlock avoidance
US5983326A (en) Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
EP0817073B1 (en) A multiprocessing system configured to perform efficient write operations
US5860159A (en) Multiprocessing system including an apparatus for optimizing spin--lock operations
US6738871B2 (en) Method for deadlock avoidance in a cluster environment
US7991964B2 (en) Pre-coherence channel
US6249520B1 (en) High-performance non-blocking switch with multiple channel ordering constraints
US20020083299A1 (en) High speed remote storage controller
US20030046356A1 (en) Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
KR100387541B1 (ko) 멀티프로세서 시스템에서 캐쉬 코히어런시 유지 방법, 멀티프로세서 시스템 및 노드 제어기
US7383336B2 (en) Distributed shared resource management
JP2002182976A (ja) マルチプロセッサ・システムにおけるメモリ・アクセスの動的直列化
CA2051209C (en) Consistency protocols for shared memory multiprocessors
US7739451B1 (en) Method and apparatus for stacked address, bus to memory data transfer
US6950913B2 (en) Methods and apparatus for multiple cluster locking
US6460133B1 (en) Queue resource tracking in a multiprocessor system
US6430658B1 (en) Local cache-to-cache transfers in a multiprocessor system
US6389516B1 (en) Intervention ordering in a multiprocessor system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040426

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20040810

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040812

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20080827

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090827

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090827

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100827

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20100827

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110827

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120827

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130827

Year of fee payment: 9

EXPY Cancellation because of completion of term