JP4169914B2 - データ転送方法、コンピュータ・プログラム、データ転送システムおよびデータ処理システム - Google Patents

データ転送方法、コンピュータ・プログラム、データ転送システムおよびデータ処理システム Download PDF

Info

Publication number
JP4169914B2
JP4169914B2 JP2000241082A JP2000241082A JP4169914B2 JP 4169914 B2 JP4169914 B2 JP 4169914B2 JP 2000241082 A JP2000241082 A JP 2000241082A JP 2000241082 A JP2000241082 A JP 2000241082A JP 4169914 B2 JP4169914 B2 JP 4169914B2
Authority
JP
Japan
Prior art keywords
data
processor
response
processors
requesting
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
JP2000241082A
Other languages
English (en)
Other versions
JP2001101147A (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 JP2001101147A publication Critical patent/JP2001101147A/ja
Application granted granted Critical
Publication of JP4169914B2 publication Critical patent/JP4169914B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、全般的にはコンピュータ・ソフトウェアに関し、具体的には、性能が最大になる、複数プロセッサ・データ処理システム内のプロセッサ間でデータを転送する方法に関する。
【0002】
【従来の技術】
ローカル・キャッシュを有するマルチプロセッサ・システムでは、バス・デバイスがデータを要求した時に、3つの状態のうちの1つがありえる。第1の状態は、要求されたデータが、他のバス・デバイスのローカル・キャッシュにまだ存在しない状態である。この状況では、データを主記憶によって供給しなければならない。第2の状態は、要求されたデータが、別のバス・デバイスのローカル・キャッシュ内に存在し、そのバス・デバイスが主記憶から取り出した後にデータを変更している状態である。この状況では、要求元のデバイスが、データの変更されたコピーを有するデバイスからデータを取り出さなければならない。これは、2つのバス・デバイス間のキャッシュ対キャッシュ転送を介して直接に、または、間接的な形すなわち、他方のバス・デバイスに主記憶内のデータを更新させ、その後、新しい要求元のバス・デバイスが更新されたデータを主記憶から取り出せるようにすることのいずれかによって行うことができる。第3の状態は、要求されたデータが、他のバス・デバイスのローカル・キャッシュ内に存在するが、そのバス・デバイスがまだそのデータを更新していない状態である。
【0003】
第3の場合に、一部のバス・プロトコルでは、他のバス・デバイスのうちの1つが、メモリ・アクセス要求に介入し、新しい要求元にキャッシュ対キャッシュ転送を介して直接にデータを供給することができる。そのような「共用介入」転送は、通常は、主記憶アクセスより短い時間で達成でき、かなりの性能改善を実現することができる。
【0004】
さらに、一部のマルチプロセッサ・システムでは、プロセッサが、複数のマルチプロセッサ・ノードにグループ化される(すなわち、2レベルのクラスタ化)。同一ノード上のプロセッサ間のデータ転送は、メモリからプロセッサへのデータ転送よりはるかに短い要求−データ待ち時間で達成でき、メモリからプロセッサへのデータ転送は、異なるノード上のプロセッサ間の転送より短い待ち時間を有する。その結果、選択的な形の共用介入を実施することが望ましかった。要求されたデータの共用コピーを有するプロセッサが、要求元のプロセッサと同一のノード上にある場合には、共用介入の進行が許可される。そうでない場合には、共用介入がブロックされ、その要求は、主記憶ユニットによって処理される。この機構を用いると、システムは、データ要求をサービスする、より高速で効率的な方法を使用することができるようになる。
【0005】
【発明が解決しようとする課題】
しかし、共用応答システムを実施する現在の方法では、要求されたデータを要求元のプロセッサに送るのに使用するプロセッサの選択が、どのプロセッサが要求されたデータを所有するかに関して、すべてのプロセッサから受け取られた応答の優先順位だけに基づく。この結果、時には、共有介入がリモート・ノード上のプロセッサに対して認められ、その結果、読取−データ有効待ち時間が最長になり、システム・データ・バスおよびバッファの利用度が高くなる。したがって、共用介入がリモート・ノード上のプロセッサに対して認められる時の総合的な効果は、総合的なシステム帯域幅の低下になる。したがって、効率を改善された、マルチプロセッサ・データ処理システムのプロセッサ間でデータを転送する方法およびシステムを有することが望ましい。
【0006】
【課題を解決するための手段】
本発明は、複数プロセッサ・データ処理システム内のプロセッサ間でデータを転送する方法を提供する。好ましい実施形態では、データの要求が、要求元プロセッサから、トランザクション応答収集配布論理ユニットで受け取られる。要求元プロセッサからのデータの要求は、データ処理システムのすべてのプロセッサに同報通信される。トランザクション応答収集配布論理ユニットは、複数のプロセッサのそれぞれから個々の応答を受け取り、この個々の応答によって、個々のプロセッサに関連するキャッシュ内の要求されたデータの状態が指定される。トランザクション応答収集配布論理ユニットは、受け取った応答のすべてを評価し、各プロセッサに適当な最終応答状態を供給する。この最終応答状態によって、どのプロセッサおよび関連するメモリ・キャッシュが要求されたデータを要求元プロセッサに送るか、または、要求されたデータがシステムの主記憶から供給されるかが決定される。
【0007】
【発明の実施の形態】
本発明の特性を示すと考えられる新規の特徴を、特許請求の範囲に示す。しかし、本発明自体ならびに本発明の使用の好ましい態様、さらなる目的および長所は、添付図面と共に以下の例示的実施形態の詳細な説明を参照することによって最もよく理解されるであろう。
【0008】
本発明は、プロセッサ間でデータを転送する方法を提供し、それぞれが複数のプロセッサを有する複数のノードを含む単一のデータ処理システム内で実施することができる。その代わりに、本発明を、それぞれが複数のプロセッサを含む複数のデータ処理システムにまたがって実施することもできる。
【0009】
ここで図面、具体的には図1を参照すると、本発明を実施することができる複数のデータ処理システムの完全なシステムレベルの配置が示されている。システム100は、複数の処理ノード(データ処理システム)102および104(個々のSMPサーバとすることができる)および主記憶ユニット170からなり、これらのすべてが、システムレベル相互接続ネットワーク(システム・スイッチとも称する)172によって相互接続される。
【0010】
処理ノード102には、計算プロセッサ106および108と、入出力インターフェース・プロセッサ118および120が含まれる。計算プロセッサ106および108(たとえばIBM Power3プロセッサ)には、通常は、内部計算ユニットによる使用のために命令およびデータ情報を記憶する1つまたは複数のレベルの内蔵キャッシュまたは付加キャッシュ110および112が含まれる。入出力インターフェース・プロセッサ118および120は、ディスク駆動装置アダプタ122および端末インターフェース126などのさまざまな周辺装置に接続するのに使用される。入出力インターフェース・プロセッサ118および120には、内蔵キャッシュを含めても含めなくてもよい。端末インターフェース126は、処理ノード102をモニタ128およびキーボード130に接続し、このモニタ128およびキーボード130は、処理ノード102にユーザ・インターフェースを提供する。
【0011】
処理ノード102の計算プロセッサ106および108と入出力インターフェース・プロセッサ118および120は、ローカル相互接続114およびシステム−バス・ブリッジ・ユニット116を介して、お互いおよびシステム100の残りに接続される。ローカル相互接続114は、ポイントツーポイント・クロスバー・ネットワークまたは共通共用バスとすることができる。システム−バス・ブリッジ・ユニット116は、ローカル相互接続114をシステムレベル相互接続ネットワーク172に接続する。
【0012】
処理ノード104には、計算プロセッサ140および142と、入出力インターフェース・プロセッサ152および154の組合せが含まれる。計算プロセッサ140および142(たとえばIBM Power3プロセッサ)には、通常は、その内部計算ユニットによる使用のために命令およびデータ情報を記憶する1つまたは複数のレベルの内蔵キャッシュまたは付加キャッシュ144および146が含まれる。入出力インターフェース・プロセッサ152および154は、ディスク駆動装置アダプタ156およびネットワーク・アダプタ(LAN/WAN/ファイバ・チャネル/モデム)158などのさまざまな周辺装置への接続に使用される。入出力インターフェース・プロセッサ152および154には、内蔵キャッシュを含めても含めなくてもよい。ネットワーク・アダプタ158は、通信経路168に処理ノード104を接続し、通信経路168は、LAN接続、WAN接続、またはファイバ・チャネル接続とすることができる。通信経路168は、処理ノード104と、ネットワーク端末162、サーバ164、およびデータ処理システム166との間のインターフェースを提供する。
【0013】
処理ノード104の計算プロセッサ140および142と入出力インターフェース・プロセッサ152および154は、ローカル相互接続148およびシステム−バス・ブリッジ・ユニット150を介してお互いおよびシステム100の残りに接続される。ローカル相互接続148は、ポイントツーポイント・クロスバ・ネットワークまたは共通共用バスとすることができる。システム−バス・ブリッジ・ユニット150は、ローカル相互接続148をシステムレベル相互接続ネットワーク172に接続する。
【0014】
システムレベル相互接続ネットワーク172は、ポイントツーポイント・クロスバ・ネットワーク、共通共用バス、またはシリアル通信ネットワークからなるものとすることができる。後者は、本発明の分散実施形態の場合に使用される。
【0015】
主記憶ユニット170には、システム100内の共用データ記憶域のすべてが含まれる。この記憶域は、通常は、ダイナミック・ランダム・アクセス・メモリ(DRAM)の形である。
【0016】
単一データ処理システム実施形態(本発明による単一のマルチプロセッサ・データ処理システムの例は、下で説明し、図2に示す)では、最大の性能が達成されるのは、ローカル相互接続およびシステム相互接続が、高速並列インターフェースであり、ローカル−システム相互接続およびシステムレベル相互接続が、ポイントツーポイント・クロスバ・ネットワークである時である。
【0017】
図1に示された分散データ処理実施形態では、処理ノード102および104を、高速LANによるシステムレベル相互接続ネットワーク172を介してお互いおよび主記憶ユニット170に接続された個々の対称型マルチプロセッサ・サーバとすることができる。システムレベル相互接続ネットワーク172は、全ノードおよびメモリの間の環状のデイジーチェーン式とするか、システム・メモリ・ユニットへのポイントツーポイントLAN接続のいずれかとすることができ、後者には、どのノードでも他のノードと通信できるようにするために複数のLANインターフェースおよび対応する相互接続論理が含まれるはずである。
【0018】
ここで図2を参照すると、通常のマルチプロセッサ式のコンピュータ・システム210の基本構造が示されている。コンピュータ・システム210は、複数の処理ユニット212a、212b、および212cを有し、これらの処理ユニットは、さまざまな周辺装置に接続され、この周辺装置には、モニタ・アダプタ202および表示モニタ205と、キーボード・アダプタ204およびキーボード207と、ディスク・アダプタ203および永久記憶装置206とからのデータを受け入れ、これらにデータを供給する入出力エージェント214、プログラム命令を実行するために処理ユニットによって使用されるメモリ216(ダイナミック・ランダム・アクセス・メモリすなわちDRAMなど)、ならびに、コンピュータが初めて電源を投入された時に必ず周辺機器のうちの1つ(通常は永久記憶装置)からオペレーティング・システムを見つけ出し、ロードすることを主目的とするファームウェア218が含まれる。処理ユニット212a、212b、および212cは、バス220を含むさまざまな手段によって周辺装置と通信する。コンピュータ・システム210は、モデムまたはプリンタなどの周辺装置への接続のためのシリアル・ポートおよびパラレル・ポートなど、図示されていない多数の追加の構成要素を有することができる。図2のブロック図に示された構成要素と共に使用することのできる他の構成要素があることを、当業者は諒解するであろう。たとえば、表示装置アダプタを使用して、ビデオ表示モニタを制御することができ、メモリ・コントローラを使用して、メモリ216にアクセスすることができる、などである。さらに、コンピュータ・システム210は、これより多数または少数のプロセッサを用いて構成することができる。本発明の他の実施形態は、メインフレーム、サーバ、ワークステーション、ネットワーク・コンピュータ、インターネット機器、パーム・コンピュータなど、他の種類のデータ処理システムで実施することができる。
【0019】
対称型マルチプロセッサ(SMP)コンピュータでは、処理ユニット212a、212b、および212cのすべてが、一般に同一である。すなわち、これらの処理ユニットのすべてが、命令およびプロトコルの共通のセットまたはサブセットを使用して動作し、全般的に同一のアーキテクチャを有する。
【0020】
ここで図3を参照すると、典型的な編成が示されている。処理ユニット312には、コンピュータを動作させるためにプログラム命令を実行する、複数のレジスタおよび実行ユニットを有するプロセッサ322が含まれる。プロセッサは、命令キャッシュ324およびデータ・キャッシュ326などのキャッシュを有することもできる。これらのキャッシュは、プロセッサのレジスタおよび実行ユニットと共に統合してパッケージ化される時には、「オンボード」と呼ばれる。キャッシュは、一般に、図2に示されたメモリ216などのメモリから値をロードするという長いステップを回避することによって処理を高速化するために、プロセッサによって繰り返してアクセスされる可能性がある値を一時的に記憶するのに使用される。
【0021】
処理ユニット312に、キャッシュ328などの追加のキャッシュを含めることができる。キャッシュ328は、オンボード(レベル1)のキャッシュ324および326をサポートするので、レベル2(L2)キャッシュと呼ばれる。言い換えると、キャッシュ328は、メモリ216とオンボード・キャッシュの間の中間物として働き、オンボード・キャッシュよりはるかに大量の情報(命令およびデータ)を記憶することができるが、アクセス・ペナルティはオンボード・キャッシュより長い。たとえば、キャッシュ328は、256キロバイトまたは512キロバイトの記憶容量を有するチップとすることができ、処理ユニット312は、総記憶容量96キロバイトのオンボード・キャッシュを有するIBM PowerPC Power3シリーズ・プロセッサとすることができる。キャッシュ328は、バス320に接続され、メモリ216から処理ユニット312への情報のロードのすべてが、キャッシュ328を介して行われなければならない。図3には、2レベルだけのキャッシュ階層が示されているが、直列に接続された多数のレベルのキャッシュがあるマルチレベル・キャッシュ階層を設けることができる。
【0022】
ここで図4を参照すると、キャッシュ間接続(440x、441x、442x)を介してL2キャッシュ(440c、441c、442c)に接続されたL1キャッシュ(440b、441b、442b)をそれぞれが有するプロセッサ(440a、441a、442a)からなる3つの処理ユニット(440、441、442)を有するコンピュータ・システムが示されている。L2キャッシュ(440c、441c、442c)は、キャッシュ間接続(440y、441y、442y)を介してL3キャッシュ(440d、441d、442d)に接続される。各プロセッサ内または各プロセッサに付加されたキャッシュのそれぞれは、メモリ・サブシステム444からの命令およびデータのコピーをローカルに記憶し、その結果、そのような情報をプロセッサがすばやくアクセスできるようにするのに使用される。さらに、プロセッサ内またはプロセッサに付加されたキャッシュの合計の容量を、図4に示されるように複数のレベルのキャッシュに分割することができる。各キャッシュ・レベルは、プロセッサから離れるたびに、通常はより長いアクセス遅延(すなわち低速)と引き換えにより大きい容量という特性を有する。
【0023】
プロセッサは、汎用相互接続443を介して通信する。プロセッサは、この相互接続を介してメッセージを渡して、メモリ位置の読取または書込を所望することを示す。メモリ・トランザクションが、相互接続上に提出された時に、他のプロセッサのすべてが、このトランザクションを受け取り、記録し、そのキャッシュの状態が、要求されたトランザクションの進行を許容することができるかどうかを判定し、そうである場合には、どの条件の下でそれを行えるかを判定する。この通信が必要になるのは、キャッシュを有するシステムで、所与のメモリのブロックの最新の有効なコピーが、メモリ・サブシステム444からシステム内の1つまたは複数のキャッシュに移動されている(すなわち変更済み状態)可能性があるからである。プロセッサが、ブロックの読取または書込を望む時には、そのプロセッサは、キャッシュ・コヒーレンシを維持するために、その望みをシステム内の他の処理ユニットに通信しなければならない。これを達成するために、キャッシュコヒーレンス・プロトコルによって、キャッシュ階層内の各レベルの各ブロックに、そのブロックの現在の「状態」を示す状況インジケータを関連付ける。状態情報は、汎用相互接続443とキャッシュ間接続440x、440y、441x、441y、442xおよび442yでのトランザクション・トラフィックを減らす、コヒーレンシ・プロトコルでの最適化を可能にするのに使用される。この機構の1例として、処理ユニットは、読取トランザクションを実行する時に、その読取トランザクションを後で再試行しなければならないか否かを示すメッセージまたは信号を受け取る。読取トランザクションが再試行されない場合には、そのメッセージに、通常は、他の処理ユニットもそのブロックのまだアクティブなコピーを有するかどうかをその処理ユニットが判定できるようにする情報も含まれる(これは、他の最下位レベル・キャッシュに、再試行されない読取トランザクションに関する「共用」、「非共用」、または「変更済み」の表示を与えさせることによって達成される)。
【0024】
ここで図5に移ると、主記憶システムに接続された複数のプロセッサを示すブロック図が示されている。本発明は、単一のデータ処理システム内と、図1に示された複数のデータ処理システム内の両方で、プロセッサが図5に示された複数のマルチプロセッサ・ノードにグループ化される(すなわちマルチレベル・クラスタリング)システムに適用可能である。この説明全体を通じて、用語「プロセッサ」は、計算プロセッサまたは入出力プロセッサのいずれかを指す。どちらの場合でも、プロセッサは、内蔵キャッシュまたはローカル・キャッシュを組み込んでいると仮定する(必要ではない)。
【0025】
このシステムは、x個のノードからなり、各ノードには、2ないしn個のプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnが含まれる。所与のノードのプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnは、ノードレベル・クロスバ・データ・スイッチ510、512、514および516を介して、お互いおよびシステムの残りと接続される。1ないしx個のプロセッサ・ノードは、システムレベル・クロスバ・データ・スイッチ504を介して、お互いおよび主記憶と接続される。
【0026】
機能的に共通のトランザクション要求バス506は、すべてのプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnを主記憶502に接続する。これによって、各プロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnに、他のすべてのプロセッサのデータに関する要求の可視性が与えられて、キャッシュ・コヒーレンシが維持されることが保証される。
【0027】
応答収集配布ユニット508は、システム内のプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnのそれぞれからおよび主記憶からのキャッシュ・コヒーレンシ応答を収集する。応答収集配布ユニット508は、個々の応答を評価して、システムのコヒーレンシを保つためにどの集団応答タイプが必要であるかを判定する。その後、応答収集配布ユニット508は、その応答を、プロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnのそれぞれおよび主記憶に送り返す。
【0028】
同一ノード上のプロセッサ間のデータ転送は、一般に、プロセッサ・キャッシュの比較的高速なアクセス時間と、データが単一のノードレベル・クロスバ・データ・スイッチ510だけを通過しなければならないという事実に起因して、最も高速な種類のデータ転送である。この種のデータ転送を、「ローカル」データ転送または「ノード内」(intra-node)データ転送と呼ぶことができる。図6に、ノードレベル・クロスバ・データ・スイッチ510でのプロセッサA0およびAnの間の「ローカル」データ転送602の例を示す。
【0029】
プロセッサと主記憶502の間のデータ転送は、システムレベル・クロスバ・データ・スイッチ504の追加の遅延および主記憶502のより遅いアクセス時間が原因で、一般に、ローカル・プロセッサ対プロセッサ転送より低速である。これらの転送を、「主記憶」転送と称する。主記憶502とプロセッサA0の間の「主記憶」転送702の例を、図7に示す。
【0030】
図8に示されたプロセッサA0とプロセッサXnの間のデータ転送802などの、異なるノードレベル・クロスバ・データ・スイッチ510、512、514、および516上のプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnの間のデータ転送を、「リモート」転送または「ノード間」(inter-node)転送と呼ぶことができる。
【0031】
リモート・ノードからのデータ転送は、データが、2つのノードレベル・クロスバ・スイッチ(図8に示された例ではノードレベル・クロスバ・データ・スイッチ516および510)ならびにシステムレベル・クロスバ・データ・スイッチ504を通過しなければならないという事実に起因して、ローカル・プロセッサ対プロセッサ転送より明らかに低速である。
【0032】
リモート・プロセッサからのデータへのアクセスは、主記憶502からのデータに直接にアクセスするより早い場合とそうでない場合がある。クロスバ・スイッチングが効率的であり、主記憶502のアクセスがリモート・プロセッサのキャッシュ・アクセスに比較して非常に低速である場合には、リモート・プロセッサ・アクセスが、主記憶502よりかなり良い待ち時間を有する可能性がある。したがって、可能な時には必ず主記憶502のアクセスの代わりにそのような転送を選択することによって、総合的なシステム性能を改善することができる。
【0033】
しかし、リモート・プロセッサからのデータへのアクセスが、主記憶502から直接データにアクセスするより大幅に高速ではない場合には、主記憶502のアクセスを使用することが望ましい。というのは、主記憶502のアクセスは、システムレベル・クロスバ・データ・スイッチ504とリモート・プロセッサの間のデータ経路資源を束縛せず、別のトランザクションのデータを転送するためにこれらの資源を使用でき、これによって、総合的なシステム帯域幅およびシステム性能が高まるからである。
【0034】
ローカル・キャッシュを有するマルチプロセッサ・システムでは、バス・デバイスがデータを要求する時に、次の3つの状態のうちの1つが発生する。
(1)要求されたデータが、他のバス・デバイスのローカル・キャッシュにまだ存在しない。この状況では、データは、主記憶によって供給されなければならない。
(2)要求されたデータが、別のバス・デバイスのローカル・キャッシュに存在し、そのバス・デバイスが、主記憶からデータを取り出した後にデータを変更している。この状況では、要求元のデバイスは、変更されたコピーを有するデバイスからデータを得なければならない。これは、2つのバス・デバイス間のキャッシュ対キャッシュ転送(すなわち、6XX変更済み介入)を介して直接に、または、間接的な形(すなわち、他のデバイスに、主記憶内のデータを更新させ、その後、新しい要求元が主記憶からデータを取り出せるようにする)のいずれかで行われる。
(3)要求されたデータが、他のバス・デバイスのローカル・キャッシュ内に存在するが、そのバス・デバイスがデータを変更していない。
【0035】
上のケース(3)では、バス・プロトコルによって、他のバス・デバイスの1つが、メモリ・アクセス要求に介入し、キャッシュ対キャッシュ転送を介して新しい要求元に直接データを供給できるようにする。そのような「共用介入」転送は、通常は、主記憶アクセスより短い時間で達成できるので、かなりの性能向上を実現することができる。
【0036】
次のシステム特性を仮定する。
(1)同一ノード上のプロセッサ間のデータ転送は、プロセッサとメモリの間の転送よりはるかに短い要求−データ待ち時間で達成することができる。
(2)リモート・ノード上のプロセッサからのデータ転送は、主記憶からのアクセスよりかなり速いわけではない。
【0037】
性能を最適化するためには、選択的な形の共用介入を実施することが望ましい。要求されたデータの共用コピーを有するプロセッサが、要求元プロセッサと同一のノード上にある場合には、共用介入の進行が許可される。そうでない場合には、共用介入がブロックされ、その要求は、主記憶ユニットによって処理される。この機構を用いると、システムは、システム資源(すなわちデータ経路)の使用を最小にすると同時に、データ要求をサービスする、より高速で効率的な方法を使用することができるようになる。
【0038】
ここで図9に移ると、本発明の選択的共用介入機構を示す流れ図が示されている。この選択的共用介入機構は、応答収集配布ユニット508内で実施され、どの応答デバイスが、データを要求したデバイスに最も近い論理的近接を有するかを判定する。データを要求したデバイスに最も近い論理的近接であるデバイスとは、要求元デバイスへの最もすばやいデータの転送をもたらすデバイスである。たとえば、データが変更されている場合、変更されたデータを含むデバイスが、要求元デバイスに最も近い論理的近接である。もう1つの例として、要求元デバイスと同一のノード上の別のデバイスが、そのデータを含み、そのデータがシステム内の他の場所で変更されていない場合には、要求元デバイスと同一のノード上の、そのデータを有するデバイスが、要求元デバイスに最も近い論理的近接である。トランザクション要求バス506上でトランザクションが開始される時に(ステップ902)、応答収集配布ユニット508は、どのプロセッサがその要求を開始したかを記録する(ステップ904)。すべてのプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnと主記憶502は、応答収集配布ユニットに、内蔵(または付加された)キャッシュ内での要求されたデータの状態に関する個々の応答を供給する(ステップ906)。応答収集配布ユニット508とプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnと主記憶の間のキャッシュ・コヒーレンシ応答信号は、ノード単位を基礎として(on a node-wise basis)論理的にグループ化される。この2つの特性が一緒になって、応答収集配布ユニット508が、介入応答の局所性を判定できるようになり、各プロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnと主記憶502に、適当な最終応答状態を供給できるようになる(ステップ908)。
【0039】
応答収集配布ユニット508は、判断ステップを実行して、プロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnから受け取った応答のいずれかが「変更済み」応答(データが変更されている)を示すかどうかを判定する(ステップ910)。応答の1つが、データが変更されていることを示す場合には、すべてのプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnと主記憶502が、「変更済み」の最終応答を受け取る。「変更済み」を応答したデバイスは、直接的(キャッシュ対キャッシュ変更済み介入を介する)または間接的(主記憶502への書込とその後の主記憶502からの読取を介する)のいずれかで、要求元プロセッサにそのデータを供給する(ステップ912)。
【0040】
「変更済み」応答を受け取らなかった場合には、応答収集配布ユニット508は、共用介入応答を受け取ったかどうかに関する判定を行う(ステップ914)。1つまたは複数の共用介入応答を受け取った場合には、応答収集論理は、共用介入応答を応答したプロセッサのうちの1つまたは複数が、要求元プロセッサと同一のノードに配置されているかどうかを判定する(ステップ916)。
【0041】
共用介入応答を応答する1つまたは複数のプロセッサが、要求元プロセッサと同一のノードに存在する場合には、単一の共用介入「勝者(winner)」が、そのノードのプロセッサ間の固定優先順位付けまたはラウンドロビン優先順位付けに基づいて選択される。ラウンドロビン優先順位付けによって最も以前に選択されたデバイスが選択される。勝ったプロセッサは、共用介入応答を受け取り、要求されたデータをローカル・キャッシュ対キャッシュ転送を介して供給できるようになる。共用介入応答を応答した他のプロセッサ(同一ノード上または他のノード上のいずれか)には、単純な共用応答が提示され、これによって、それらの介入がブロックされる。他のすべてのバス・デバイスには、共用介入応答が提示される。勝った共用介入プロセッサは、キャッシュ対キャッシュ共用介入を介して、要求元プロセッサに直接データを供給する(ステップ918)。
【0042】
共用介入応答が、要求元プロセッサと異なるノードからのものだけである場合には、すべてのバス・デバイスに共用応答が提示され、これによって、大域的に介入がブロックされ、主記憶502がデータを供給するようになる(ステップ922)。
【0043】
「変更済み」応答または共用介入応答が、応答収集配布ユニット508によって受け取られない場合には、応答収集配布ユニット508は、「共用」応答を受け取ったかどうかを判定する(ステップ920)。「共用」応答を受け取った場合には、すべてのプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnと主記憶502が、「共用」の最終応答を受け取る。その後、要求されたデータが、主記憶502によって要求元プロセッサに供給される(ステップ922)。
【0044】
「変更済み」応答、共用介入応答、および「共用」応答のいずれもが受け取られていない場合には、すべてのプロセッサA0、An、B0、Bn、C0、Cn、X0、およびXnと主記憶502が、受け取られた応答の最高の優先順位と等しい最終応答を受け取り、要求されたデータが、主記憶502によって要求元プロセッサに供給される(ステップ924)。
【0045】
選択的共用介入機構は、以下の使用可能化特性/機能によって可能になることに留意されたい。
(1)応答収集論理は、各トランザクションのソース・プロセッサを判定できなければならない。
(2)プロセッサと応答収集配布ユニットの間の応答入出力は、プロセッサごとにグループ化されなければならない。実際に、これらの信号は、ポイントツーポイント接続(すなわち、複数のプロセッサの間で共用されない)でなければならない。
(3)従来の応答収集アルゴリズムでは、最終/大域コヒーレンシ応答が、さまざまな応答の相対的な優先順位だけに基づいて選択されるが、これとは異なって、本明細書に記載の機構では、応答するプロセッサの、要求元プロセッサに対する相対的な地理的近接も要因になる。
(4)従来の応答配布方式では、すべてのバス・デバイスに均等に最終/大域応答が同報通信されるが、これとは異なって、本明細書に記載の機構は、各プロセッサに対して独自の応答を供給できなければならない。これは、複数のプロセッサが共用介入を応答する場合を扱うために必要である。この状況では、勝ったプロセッサだけが、共用介入応答を受け取ることを許可されるようにすることができ、残りの共用介入応答は、それらが介入しないようにするために、「共用」応答を得なければならない。
【0046】
上で述べたように、本発明を、主に単一のデータ処理システム上の複数のプロセッサに関して説明してきたが、当業者によって理解されるように、それぞれが複数のプロセッサを有する複数のノードを各データ処理システムが有する複数のデータ処理システムに本発明を適用することもできることに留意されたい。そのような複数のデータ処理システムは、図1に示されたシステム100など、ネットワークを介して互いに接続することができる。
【0047】
完全に機能するデータ処理システムに関して本発明を説明してきたが、本発明の処理を、命令のコンピュータ可読媒体の形およびさまざまな形で配布することができることと、本発明が配布の実行に実際に使用される信号担持媒体の特定の種類に無関係に同等に適用されることを、当業者が諒解するであろうことに留意することが重要である。コンピュータ可読媒体の例には、フロッピ・ディスク、ハード・ディスク装置、RAM、およびCD−ROMなどの記録可能型媒体と、ディジタル通信リンクおよびアナログ通信リンクなどの伝送型媒体が含まれる。
【0048】
まとめとして、本発明の構成に関して以下の事項を開示する。
【0049】
(1)コンピュータ・システム内のデバイスの間でデータを転送する方法であって、
要求元デバイスからデータの要求を同報通信するステップと、
前記コンピュータ・システム内の複数のデバイスのそれぞれからの応答を識別するステップであって、識別される応答のそれぞれが、前記デバイスの位置および前記デバイスが前記データを含むかどうかを示す、識別するステップと、
前記複数のデバイスの中の前記データを含む選択されたデバイスから前記要求元デバイスへ前記データを転送するステップであって、前記選択されたデバイスが、前記要求元デバイスに対する最も近い論理的近接を有する、転送するステップと
を含む方法。
(2)前記要求元デバイスが、プロセッサである、上記(1)に記載の方法。
(3)前記複数のデバイスの少なくとも1つが、プロセッサである、上記(1)に記載の方法。
(4)前記複数のデバイスの1つが、主記憶ユニットである、上記(1)に記載の方法。
(5)前記要求元デバイスと同一のノード上のデバイスが前記データを含み、どのデバイスも前記データを変更していない場合に、前記要求元デバイスと同一の前記ノード上の前記デバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(1)に記載の方法。
(6)前記データが変更されている場合に、前記データを変更したデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(1)に記載の方法。
(7)前記要求元デバイスと同一のノード上の複数のデバイスが、前記データを有し、前記データが変更されていない場合に、前記複数のデバイスのうちで、データを転送するためのデバイスとして最も以前に選択されたデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(1)に記載の方法。
(8)前記要求元デバイスと同一のノード上の複数のデバイスが、前記データを有し、前記データが変更されていない場合に、前記複数のデバイスのうちで、最も高い優先順位を割り当てられているデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(1)に記載の方法。
(9)前記要求元デバイスと同一のノード上のデバイスが、前記データを有さず、前記データが変更されていない場合に、主記憶ユニットが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(1)に記載の方法。
(10)コンピュータ・システム内のデバイスの間でデータを転送するための、データ処理システム内で使用するためのコンピュータ可読媒体内のコンピュータ・プログラム製品であって、
要求元デバイスからデータの要求を同報通信する第1命令と、
前記コンピュータ・システム内の複数のデバイスのそれぞれからの応答を識別する第2命令であって、識別される応答のそれぞれが、前記デバイスの位置および前記デバイスが前記データを含むかどうかを示す、第2命令と、
前記複数のデバイスの中の前記データを含む選択されたデバイスから前記要求元デバイスへ前記データを転送する第3命令であって、前記選択されたデバイスが、前記要求元デバイスに対する最も近い論理的近接を有する、第3命令と
を含むコンピュータ・プログラム製品。
(11)前記要求元デバイスが、プロセッサである、上記(10)に記載のコンピュータ・プログラム製品。
(12)前記複数のデバイスの少なくとも1つが、プロセッサである、上記(10)に記載のコンピュータ・プログラム製品。
(13)前記複数のデバイスの1つが、主記憶ユニットである、上記(10)に記載のコンピュータ・プログラム製品。
(14)前記要求元デバイスと同一のノード上のデバイスが、前記データを含み、どのデバイスも前記データを変更していない場合に、前記要求元デバイスと同一の前記ノード上の前記デバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(10)に記載のコンピュータ・プログラム製品。
(15)前記データが変更されている場合に、前記データを変更したデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(10)に記載のコンピュータ・プログラム製品。
(16)前記要求元デバイスと同一のノード上の複数のデバイスが、前記データを有し、前記データが変更されていない場合に、前記複数のデバイスのうちで、データを転送するためのデバイスとして最も以前に選択されたデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(10)に記載のコンピュータ・プログラム製品。
(17)前記要求元デバイスと同一のノード上の複数のデバイスが、前記データを有し、前記データが変更されていない場合に、前記複数のデバイスのうちで、最も高い優先順位を割り当てられているデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(10)に記載のコンピュータ・プログラム製品。
(18)前記要求元デバイスと同一のノード上のデバイスが、前記データを有さず、前記データが変更されていない場合に、主記憶ユニットが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(10)に記載のコンピュータ・プログラム製品。
(19)コンピュータ・システム内のデバイスの間でデータを転送するシステムであって、
要求元デバイスからデータの要求を同報通信する手段と、
前記コンピュータ・システム内の複数のデバイスのそれぞれからの応答を識別する手段であって、識別される応答のそれぞれが、前記デバイスの位置および前記デバイスが前記データを含むかどうかを示す、識別する手段と、
前記複数のデバイスの中の前記データを含む選択されたデバイスから前記要求元デバイスへ前記データを転送する手段であって、前記選択されたデバイスが、前記要求元デバイスに対する最も近い論理的近接を有する、転送する手段と
を含むシステム。
(20)前記要求元デバイスが、プロセッサである、上記(19)に記載のシステム。
(21)前記複数のデバイスの少なくとも1つが、プロセッサである、上記(19)に記載のシステム。
(22)前記複数のデバイスの1つが、主記憶ユニットである、上記(19)に記載のシステム。
(23)前記要求元デバイスと同一のノード上のデバイスが、前記データを含み、どのデバイスも前記データを変更していない場合に、前記要求元デバイスと同一の前記ノード上の前記デバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(19)に記載のシステム。
(24)前記データが変更されている場合に、前記データを変更したデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(19)に記載のシステム。
(25)前記要求元デバイスと同一のノード上の複数のデバイスが、前記データを有し、前記データが変更されていない場合に、前記複数のデバイスのうちで、データを転送するためのデバイスとして最も以前に選択されたデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(19)に記載のシステム。
(26)前記要求元デバイスと同一のノード上の複数のデバイスが、前記データを有し、前記データが変更されていない場合に、前記複数のデバイスのうちで、最も高い優先順位を割り当てられているデバイスが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(19)に記載のシステム。
(27)前記要求元デバイスと同一のノード上のデバイスが、前記データを有さず、前記データが変更されていない場合に、主記憶ユニットが、前記要求元デバイスに対する前記最も近い論理的近接である、上記(19)に記載のシステム。
(28)バスと、
前記バスに接続された論理ブロックと、
前記バスに接続された複数のデバイスと
を含み、前記論理ブロックが、前記複数のデバイスの1つである要求元デバイスからデータの要求を受け取り、前記要求元デバイスへのデータの最も速い転送をもたらす、前記要求されたデータを含む送出デバイスを前記複数のデバイスから判定するように構成される
データ処理システム。
(29)前記複数のデバイスの少なくとも1つが、プロセッサである、上記(28)に記載のデータ処理システム。
(30)前記複数のデバイスの少なくとも1つが、主記憶ユニットである、上記(28)に記載のデータ処理システム。
(31)複数のノード
をさらに含み、前記複数のデバイスが、デバイスの組に編成され、
デバイスの各組が、複数のデバイスを含み、
デバイスの各組の各デバイスが、前記複数のノードの同一のノードに接続される
上記(28)に記載のデータ処理システム。
(32)コンピュータ・システム内のデバイスの間でデータを転送する方法であって、
要求元デバイスからのデータの要求を、前記コンピュータ・システム内の複数のデバイスに同報通信するステップと、
前記同報通信に応答して、前記複数のデバイス内の前記デバイスの位置および前記デバイスが前記データを含むかどうかを示す、前記複数のデバイスのそれぞれからの応答を受け取るステップと、
前記複数のデバイスのうちの選択されたデバイスから前記要求元デバイスに前記要求されたデータを転送するステップであって、前記選択されたデバイスが、前記複数のデバイス内の他のデバイスと比較して、最も速いデータの転送を有する、転送するステップと
を含む方法。
(33)前記要求元デバイスが、プロセッサである、上記(32)に記載の方法。
(34)前記複数のデバイスの少なくとも1つが、プロセッサである、上記(32)に記載の方法。
(35)前記複数のデバイスの少なくとも1つが、主記憶ユニットである、上記(32)に記載の方法。
【図面の簡単な説明】
【図1】本発明を実施することができる複数のデータ処理システムの完全なシステムレベルの配置を示す図である。
【図2】通常のマルチプロセッサ・コンピュータ・システムの基本構造を示す図である。
【図3】プロセッサの典型的な編成を示す図である。
【図4】3つの処理ユニットを有するコンピュータ・システムを示す図である。
【図5】本発明の処理を示す、主記憶システムに接続された複数のプロセッサのブロック図である。
【図6】ノードレベル・クロスバ・データ・スイッチ510のプロセッサA0およびAnの間の「ローカル」データ転送602の例を示す図である。
【図7】主記憶502とプロセッサA0の間の「主記憶」転送702の例を示す図である。
【図8】「リモート」データ転送または「ノード間」データ転送の例を示す図である。
【図9】本発明の選択的共用介入機構を示す流れ図である。
【符号の説明】
502 主記憶
504 システムレベル・クロスバ・データ・スイッチ
506 トランザクション要求バス
508 応答収集配布ユニット
510 ノードレベル・クロスバ・データ・スイッチ
512 ノードレベル・クロスバ・データ・スイッチ
514 ノードレベル・クロスバ・データ・スイッチ
516 ノードレベル・クロスバ・データ・スイッチ
602 「ローカル」データ転送
702 「主記憶」転送
802 データ転送

Claims (8)

  1. それぞれが複数のプロセッサを有する複数のノード、主記憶ユニット及び応答収集配布ユニットを含むコンピュータ・システム内でデータを転送する方法であって、前記コンピュータ・システム内の全てのプロセッサは、トランザクション要求用のバスにより前記主記憶ユニットに接続され、同一のノード上にある複数のプロセッサの各々はノード毎に設けられた対応するノードレベルのスイッチを介して互いに接続され、前記複数のノードの各々はシステムレベルのスイッチを介して互いに及び前記主記憶ユニットに接続され、前記方法は、
    前記トランザクション要求用のバス上でトランザクションが開始されたことに応答して、前記応答収集配布ユニットにより、データを要求した要求元のプロセッサを記録するステップと、
    前記応答収集配布ユニットにより、前記要求元のプロセッサを除く全てのプロセッサ及び前記主記憶ユニットからの、前記トランザクション要求用のバス上に同報通信された前記データの要求に対する応答を収集するステップと、
    前記応答収集配布ユニットにより、収集した前記応答を評価することによって、要求された前記データが、いずれかのプロセッサにおいて変更されたか否かを判定するステップと、
    いずれのプロセッサにおいても前記データが変更されていないとの判定に応答して、前記応答収集配布ユニットにより、収集した前記応答を評価することによって、前記データを有し、かつ前記要求元のプロセッサと同一のノード上にあるプロセッサが存在するか否か判定するステップと、
    存在するとの判定に応答して、前記応答収集配布ユニットにより、前記同一のノード上にあるプロセッサに、該プロセッサが前記要求元のプロセッサに対応する前記ノードレベルのスイッチを介して前記データを供給できるように、共有介入応答を返すステップと、
    存在しないとの判定に応答して、前記応答収集配布ユニットにより、前記全てのプロセッサ及び前記主記憶ユニットに、前記主記憶ユニットが前記要求元のプロセッサに前記システムレベルのスイッチを介して前記データを供給できるように、共有応答を返すステップと
    を含む方法。
  2. いずれかのプロセッサにおいて前記データが変更されたとの判定に応答して、前記応答収集配布ユニットにより、前記全てのプロセッサ及び前記主記憶ユニットに、前記データを変更したプロセッサが直接又は間接に前記要求元のプロセッサに前記データを供給できるように、前記データは変更済みであることを示す応答を返すステップを更に含む、請求項1に記載の方法。
  3. 要求される前記データを有し、かつ前記要求元のプロセッサと同一のノード上にあるプロセッサが複数存在する場合、前記応答収集配布ユニットにより、データを転送するためのプロセッサとして最も以前に選択されたプロセッサを、前記要求元のプロセッサに前記データを供給するプロセッサとして選択するステップを更に含む、請求項1に記載の方法。
  4. 要求される前記データを有し、かつ前記要求元のプロセッサと同一のノード上にあるプロセッサが複数存在する場合、前記応答収集配布ユニットにより、データを転送するためのプロセッサとして最も高い優先順位を割り当てられているプロセッサを、前記要求元のプロセッサに前記データを供給するプロセッサとして選択するステップを更に含む、請求項1に記載の方法。
  5. コンピュータ・システムであって、
    それぞれが複数のプロセッサを有する複数のノードと、
    主記憶ユニットと、
    全ての前記プロセッサを前記主記憶ユニットに接続するトランザクション要求用のバスと、
    同一のノード上にある複数のプロセッサの各々をそれぞれ接続する、ノード毎に設けられた複数のノードレベルのスイッチと
    前記複数のノードの各々を互いにかつ前記主記憶ユニットに接続するシステムレベルのスイッチと、
    前記トランザクション要求用のバス上の前記全てのプロセッサ及び前記主記憶ユニットからの各応答を収集し、該各応答を評価し、前記全てのプロセッサ及び前記主記憶ユニットに応答を返す、応答収集配布ユニットとを含み、
    前記応答収集配布ユニットは、前記トランザクション要求用のバス上でトランザクションが開始されたことに応答して、データを要求した要求元のプロセッサを記録し、前記要求元のプロセッサを除く全てのプロセッサ及び前記主記憶ユニットからの、前記トランザクション要求用のバス上に同報通信された前記データの要求に対する応答を収集して評価し、要求された前記データがいずれのプロセッサにおいても変更されておらず、かつ、前記要求元のプロセッサと同一のノード上に前記データを有するプロセッサが存在する場合は、該プロセッサに、該プロセッサが前記要求元のプロセッサに対応する前記ノードレベルのスイッチを介して前記データを供給できるように、共有介入応答を返し、要求された前記データがいずれのプロセッサにおいても変更されておらず、かつ、前記要求元のプロセッサと同一のノード上に前記データを有するプロセッサが存在しない場合は、前記全てのプロセッサ及び前記主記憶ユニットに、前記主記憶ユニットが前記要求元のプロセッサに前記システムレベルのスイッチを介して前記データを供給できるように、共有応答を返す、
    コンピュータ・システム。
  6. いずれかのプロセッサにおいて前記データが変更されている場合、前記応答収集配布ユニットは、前記全てのプロセッサ及び前記主記憶ユニットに、前記データを変更したプロセッサが直接又は間接に前記要求元のプロセッサに前記データを供給できるように、前記データは変更済みであることを示す応答を返す、請求項5に記載のコンピュータ・システム。
  7. 要求される前記データを有し、かつ前記要求元のプロセッサと同一のノード上にあるプロセッサが複数存在する場合、前記応答収集配布ユニットは、データを転送するためのプロセッサとして最も以前に選択されたプロセッサを、前記要求元のプロセッサに前記データを供給するプロセッサとして選択する、請求項5に記載のコンピュータ・システム。
  8. 要求される前記データを有し、かつ前記要求元のプロセッサと同一のノード上にあるプロセッサが複数存在する場合、前記応答収集配布ユニットは、データを転送するためのプロセッサとして最も高い優先順位を割り当てられているプロセッサを、前記要求元のプロセッサに前記データを供給するプロセッサとして選択する、請求項5に記載のコンピュータ・システム。
JP2000241082A 1999-08-26 2000-08-09 データ転送方法、コンピュータ・プログラム、データ転送システムおよびデータ処理システム Expired - Fee Related JP4169914B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/383,736 US6484220B1 (en) 1999-08-26 1999-08-26 Transfer of data between processors in a multi-processor system
US09/383736 1999-08-26

Publications (2)

Publication Number Publication Date
JP2001101147A JP2001101147A (ja) 2001-04-13
JP4169914B2 true JP4169914B2 (ja) 2008-10-22

Family

ID=23514486

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000241082A Expired - Fee Related JP4169914B2 (ja) 1999-08-26 2000-08-09 データ転送方法、コンピュータ・プログラム、データ転送システムおよびデータ処理システム

Country Status (4)

Country Link
US (1) US6484220B1 (ja)
JP (1) JP4169914B2 (ja)
KR (1) KR100389103B1 (ja)
IL (1) IL137594A0 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6728258B1 (en) * 1995-11-15 2004-04-27 Hitachi, Ltd. Multi-processor system and its network
US6938094B1 (en) 1999-09-17 2005-08-30 Advanced Micro Devices, Inc. Virtual channels and corresponding buffer allocations for deadlock-free computer system operation
US6950438B1 (en) 1999-09-17 2005-09-27 Advanced Micro Devices, Inc. System and method for implementing a separate virtual channel for posted requests in a multiprocessor computer system
US6888843B2 (en) * 1999-09-17 2005-05-03 Advanced Micro Devices, Inc. Response virtual channel for handling all responses
US6751698B1 (en) * 1999-09-29 2004-06-15 Silicon Graphics, Inc. Multiprocessor node controller circuit and method
JP2001167067A (ja) * 1999-12-13 2001-06-22 Fujitsu Ltd マルチプロセッサシステム及びデータ転送方法
JP2001167069A (ja) * 1999-12-13 2001-06-22 Fujitsu Ltd マルチプロセッサシステム及びデータ転送方法
US7225320B2 (en) * 2000-12-28 2007-05-29 Koninklijke Philips Electronics N.V. Control architecture for a high-throughput multi-processor channel decoding system
US6715055B1 (en) * 2001-10-15 2004-03-30 Advanced Micro Devices, Inc. Apparatus and method for allocating buffer space
US7124410B2 (en) * 2002-01-09 2006-10-17 International Business Machines Corporation Distributed allocation of system hardware resources for multiprocessor systems
US6973544B2 (en) * 2002-01-09 2005-12-06 International Business Machines Corporation Method and apparatus of using global snooping to provide cache coherence to distributed computer nodes in a single coherent system
US8185602B2 (en) 2002-11-05 2012-05-22 Newisys, Inc. Transaction processing using multiple protocol engines in systems having multiple multi-processor clusters
US7111128B2 (en) * 2002-12-19 2006-09-19 Intel Corporation Hierarchical virtual model of a cache hierarchy in a multiprocessor system
US7917646B2 (en) * 2002-12-19 2011-03-29 Intel Corporation Speculative distributed conflict resolution for a cache coherency protocol
WO2004107180A1 (ja) * 2003-05-30 2004-12-09 Fujitsu Limited マルチプロセッサシステム
US20050262250A1 (en) * 2004-04-27 2005-11-24 Batson Brannon J Messaging protocol
US7822929B2 (en) * 2004-04-27 2010-10-26 Intel Corporation Two-hop cache coherency protocol
US20050240734A1 (en) * 2004-04-27 2005-10-27 Batson Brannon J Cache coherence protocol
US7676637B2 (en) * 2004-04-27 2010-03-09 International Business Machines Corporation Location-aware cache-to-cache transfers
US7596653B2 (en) * 2004-11-08 2009-09-29 Intel Corporation Technique for broadcasting messages on a point-to-point interconnect
US7395381B2 (en) * 2005-03-18 2008-07-01 Intel Corporation Method and an apparatus to reduce network utilization in a multiprocessor system
US7945756B1 (en) * 2005-03-30 2011-05-17 Emc Corporation System and method for managing a data storage system by contacting a single processor in a data storage system having more than one processor
US7568063B2 (en) * 2006-02-02 2009-07-28 Hewlett-Packard Development Company, L.P. System and method for a distributed crossbar network using a plurality of crossbars
WO2007096979A1 (ja) 2006-02-24 2007-08-30 Fujitsu Limited 情報処理装置およびデータ転送方法
US20070226456A1 (en) * 2006-03-21 2007-09-27 Mark Shaw System and method for employing multiple processors in a computer system
US8024504B2 (en) * 2008-06-26 2011-09-20 Microsoft Corporation Processor interrupt determination
US8244986B2 (en) * 2009-12-30 2012-08-14 Empire Technology Development, Llc Data storage and access in multi-core processor architectures
JP5949312B2 (ja) * 2012-08-16 2016-07-06 富士通株式会社 並列計算機システム、データ転送装置及び並列計算機システムの制御方法
US20150074357A1 (en) * 2013-09-09 2015-03-12 Qualcomm Incorporated Direct snoop intervention

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4583166A (en) * 1982-10-08 1986-04-15 International Business Machines Corporation Roll mode for cached data storage
US4818984A (en) * 1986-11-26 1989-04-04 American Telephone And Telegraph Company, At&T Bell Laboratories Broadcasting messages in a distributed processing system
JP3516344B2 (ja) * 1990-10-22 2004-04-05 株式会社日立製作所 分散処理システムの多重データ処理方法
US5825773A (en) * 1991-03-20 1998-10-20 Hitachi, Ltd. Switching system for transferring broadcast packet held in broadcast buffer received from input port to output ports according to the state of each output port
JPH08235141A (ja) * 1995-02-28 1996-09-13 Kofu Nippon Denki Kk 情報処理システム
US6011791A (en) * 1995-11-15 2000-01-04 Hitachi, Ltd. Multi-processor system and its network
KR100265955B1 (ko) * 1996-12-02 2000-09-15 김영환 주프로세서에대해다수개의부프로세서가존재하는시스템의부프로세서로딩방법
US5889968A (en) * 1997-09-30 1999-03-30 Intel Corporation Method and apparatus for interlocking a broadcast message on a bus
US6185662B1 (en) * 1997-12-22 2001-02-06 Nortel Networks Corporation High availability asynchronous computer system

Also Published As

Publication number Publication date
IL137594A0 (en) 2001-07-24
KR100389103B1 (ko) 2003-06-25
JP2001101147A (ja) 2001-04-13
KR20010050091A (ko) 2001-06-15
US6484220B1 (en) 2002-11-19

Similar Documents

Publication Publication Date Title
JP4169914B2 (ja) データ転送方法、コンピュータ・プログラム、データ転送システムおよびデータ処理システム
US10824565B2 (en) Configuration based cache coherency protocol selection
US6425060B1 (en) Circuit arrangement and method with state-based transaction scheduling
US5659710A (en) Cache coherency method and system employing serially encoded snoop responses
KR100848255B1 (ko) 메모리 허브 및 메모리 시스템 실행 모니터링을 위한 방법
KR100324975B1 (ko) 잠재적인 제3 노드 트랜잭션을 버퍼에 기록하여 통신 대기시간을 감소시키는 비균일 메모리 액세스(numa) 데이터 프로세싱 시스템
US7788452B2 (en) Method and apparatus for tracking cached addresses for maintaining cache coherency in a computer system having multiple caches
US20050188055A1 (en) Distributed and dynamic content replication for server cluster acceleration
US20030177320A1 (en) Memory read/write reordering
US6725307B1 (en) Method and system for controlling data transfers with physical separation of data functionality from address and control functionality in a distributed multi-bus multiprocessor system
US7856535B2 (en) Adaptive snoop-and-forward mechanisms for multiprocessor systems
JP3628595B2 (ja) 少なくとも1つのnuma(non−uniformmemoryaccess)データ処理システムとして構成可能な相互接続された処理ノード
JP2003044456A (ja) マルチノード・コンピュータ・システムにおけるメモリ・ディレクトリ管理
JP2003030169A (ja) マルチノード・コンピュータ・システムにおける非集中グローバル・コヒーレンス管理
US20130073811A1 (en) Region privatization in directory-based cache coherence
US6334172B1 (en) Cache coherency protocol with tagged state for modified values
WO2006072064A2 (en) System and method for cache coherency in a cache with different cache location lengths
US6351791B1 (en) Circuit arrangement and method of maintaining cache coherence utilizing snoop response collection logic that disregards extraneous retry responses
US8135910B2 (en) Bandwidth of a cache directory by slicing the cache directory into two smaller cache directories and replicating snooping logic for each sliced cache directory
US6247098B1 (en) Cache coherency protocol with selectively implemented tagged state
JP2002175268A (ja) コヒーレンシ副作用なしでpci−pciブリッジがデータをキャッシングできる方法とシステム
US6701416B1 (en) Cache coherency protocol with tagged intervention of modified values
US7797472B2 (en) Method and apparatus for providing overlapping defer phase responses
US6510471B1 (en) Method for choosing device among plurality of devices based on coherncy status of device's data and if device supports higher-performance transactions
US6665753B1 (en) Performance enhancement implementation through buffer management/bridge settings

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040203

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040426

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040430

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040802

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050706

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20050713

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20060210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080611

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080703

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

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

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees