JP4469010B2 - ブリッジ、情報処理システムおよびアクセス制御方法 - Google Patents

ブリッジ、情報処理システムおよびアクセス制御方法 Download PDF

Info

Publication number
JP4469010B2
JP4469010B2 JP2008504992A JP2008504992A JP4469010B2 JP 4469010 B2 JP4469010 B2 JP 4469010B2 JP 2008504992 A JP2008504992 A JP 2008504992A JP 2008504992 A JP2008504992 A JP 2008504992A JP 4469010 B2 JP4469010 B2 JP 4469010B2
Authority
JP
Japan
Prior art keywords
access request
request packet
writing
target node
packet
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.)
Active
Application number
JP2008504992A
Other languages
English (en)
Other versions
JPWO2007105373A1 (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.)
Sony Interactive Entertainment Inc
Sony Corp
Original Assignee
Sony Corp
Sony Computer Entertainment Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp, Sony Computer Entertainment Inc filed Critical Sony Corp
Publication of JPWO2007105373A1 publication Critical patent/JPWO2007105373A1/ja
Application granted granted Critical
Publication of JP4469010B2 publication Critical patent/JP4469010B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/4027Coupling between buses using bus bridges
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Description

本発明は、コンピュータネットワーク上におけるノード間のアクセス技術に関する。
従来、コンピュータネットワーク上において、通信を行うノード同士は互いのメモリやIOデバイスなどのリソースが見えず、リソースの透過性がなかった。
そのため、たとえば、Ethernet(登録商標)などのネットワークにおいて、ノード間のアクセスは、ノードに備えられたNIC(ネットワーク・インターフェイス・カード)などのネットワークハードウェアやこれらのハードウェアのデバイスドライバを介して行われており、システムの負荷が大きく、オーバーヘッドにつながる問題があった。
また、複数のプロセッサが接続されてなるマルチプロセッサシステムのようなコンピュータネットワークにおいて、各プロセッサ間においてリソースの透過性がないため、各プロセッサがアクセス可能な共有メモリを設け、共有メモリを介してプロセッサ間のデータの受渡しを行うことが考えられる。この場合、たとえばプロセッサAがプロセッサBにデータを渡したいときに、直接の受渡ができず、プロセッサAによる、共有メモリへデータをコピーする処理と、プロセッサBによる、共有メモリからデータを読み出してコピーする処理が必要であり、同じくオーバーヘッドの問題が起きうる。
本願出願人は、特願2006ー008004において、コンピュータネットワークのノード間において、リソースの透過性を提供する技術を提案した。この技術によれば、ノード間において、リソースに対する直接アクセスが可能となる。この技術が適用された、ブリッジを介してプロセッサを相互接続したマルチプロセッサシステムシステムにおいて、プロセッサがリード/ライトコマンドを発行すると、それらのコマンドを含むパケットがスイッチングネットワークで転送されるため、コマンドの送信順位が保証されないということについて、アクセスのオーダリング制御について改善する余地があることを本願出願人は認識した。
本発明は、上記事情に鑑みてなされたものであり、その目的は、コンピュータネットワーク上のノード間において、リソースの透過性を実現するとともに、アクセスのオーダリング制御が可能な技術を提供することにある。
本発明のある態様は、ブリッジである。このブリッジは、プロセッサユニットの入出力バスを、複数のプロセッサユニットが相互接続されるスイッチング装置の入出力バスへと中継するブリッジであって、上流ポートと、制御部と、下流ポートを含む。
上流ポートは、各プロセッサユニットの実効アドレスがマッピングされた複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、当該プロセッサユニットから、複数のプロセッサユニットの内いずれかのターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取る。ここで、実効アドレスとは実効アドレス空間内の所定の位置を示すアドレスである。さらに実効アドレス空間とは、各プロセッサユニット内に点在するメインメモリ等を含む記憶手段の各々から部分的に切り取られたメモリ空間の一部同士を集合させ、結合したものである。1つの実効メモリ空間は1つのプロセッサユニットに対応する。すなわち、プロセッサユニットと同数の実効メモリ空間が存在することになり、各プロセッサユニットは自分に対応する実効メモリ空間をワークメモリとして使用する。実効メモリ空間の内部構成を最適化することにより、対応するプロセッサユニットは最大パフォーマンスで動作できる。
制御部は、ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、ターゲットノードの実効アドレスをグローバルアドレスに変換する変換部を備える。さらに、制御部は、書込を行うためのアクセス要求パケットの出力後、ターゲットノードにおいてこの書込が行われたことを確認する確認部を有する。
下流ポートは、グローバルアドレスが指定されたアクセス要求パケットをスイッチング装置に出力する。
また、確認部は、書込を行うためのアクセス要求パケットにより指定されるグローバルアドレスを指定するアクセス要求パケットであって、読出を行うためのアクセス要求パケットを生成して下流ポートに出力させ、この読出が行われたことをもって確認を行うようにしてもよい。
さらに、制御部は、プロセッサユニットから発行された、書込を行ったことをターゲットノードに通知を行う通知パケットに対して、該通知パケットの前に出力した、ターゲットノードに書込を行うためのアクセス要求パケットの出力後の確認が取れたことを条件として、この通知パケットの出力を許可する順序保証部をさらに備えてもよい。
また、複数のプロセッサユニット上で動作する分散アプリケーションを一意に識別するアプリケーション識別番号によってグローバルアドレス空間が論理的に区分けされる場合に、変換部は、グローバルアドレスが指定されたアクセス要求パケット内にアプリケーション識別番号を格納するようにしてもよい。
また、下流ポートが、複数のプロセッサユニットのいずれかであるソースノードから、当該プロセッサユニットをターゲットノードとしてその実効アドレスを指定したアクセス要求パケットを受け取った場合、変換部は、アクセス要求パケットからアプリケーション識別番号を取得し、上流ポートは、アクセス要求パケットに指定された当該プロセッサユニットの実効アドレスとともに、アクセス要求パケットから取得したアプリケーション識別番号を当該プロセッサユニットに渡すようにしてもよい。
本発明の別の態様は、情報処理システムである。この情報処理システムは、複数のプロセッサユニットと、複数のプロセッサユニットを相互接続するスイッチング装置と、各プロセッサユニットの入出力バスをスイッチング装置の入出力バスへと中継するブリッジとを含む。このブリッジは、前述した態様のブリッジとすることができる。
なお、本発明の構成要素や表現を方法、装置、システム、プログラム、プログラムを記憶した記憶媒体などの間で相互に置換したものもまた、本発明の態様として有効である。
本発明は、コンピュータネットワーク上のノード間においてリソースの透過性を実現するとともに、アクセスのオーダリング制御を可能にする。
本発明の概要の説明に用いた情報処理システムを示す図である。 図1に示す情報処理システムにおけるノードの構成を示す図である。 グローバルアドレス空間の概念を示す図(その1)である。 図2に示すノードにおけるブリッジの構成を示す図である。 図4に示すブリッジにおける制御部の構成を示す図である。 図3に示すグローバルアドレス空間に対応するグローバルアドレスのフォーマットを示す図である。 グローバルアドレス空間の概念を示す図(その2)である。 図7に示すグローバルアドレス空間に対応するグローバルアドレスのフォーマットの一例を示す図である。 本発明にかかる実施の形態による情報処理システムの構成を示す図である。 図9に示す情報処理システムにおけるノードの構成例を示す図である。 図10に示すノードにおけるブリッジの構成を示す図である。 実効アドレスを物理アドレスへ変換する際に用いられる変換テーブルおよび変換の結果の例を示す図である。
符号の説明
20 ブリッジ、 21 上流ポート、 22 制御部、 23 変換部、 24 確認部、 25 順序保証部、 28 下流ポート、 30 プロセッサユニット、 40 ノード、 50 スイッチ、 80 スイッチ、 100 ノード、 110 ブリッジ、 112 第1の入出力部、 114 ブリッジコントローラ、 116 レジスタ群、 118 第2の入出力部、 120 マルチコアプロセッサ、 130 サブプロセッサ、 132 コア、 134 ローカルメモリ、 136 MFC、 138 DMAC、 140 メインプロセッサ、 142 コア、 144 L1キャッシュ、 145 L2キャッシュ、 146 MFC、 148 DMAC、 150 リングバス、 160 IOIF、 164 IOコントローラ、 170 メモリコントローラ、 180 メインメモリ。
本発明の実施の形態の詳細を説明する前に、まず、本発明者が提案する技術の概要を説明する。
図1に示す情報処理システムについて考える。この情報処理システムは、複数ここでは例として2つのノード40を有し、これらのノードはスイッチング装置(以下単にスイッチという)50によって接続される。
図2は、ノード40の構成を示す。
ノード40は、プロセッサユニット30と、プロセッサユニット30の入出力バス(図示せず)を、スイッチ50の入出力バス(図示せず)へ中継するブリッジ20を備える。プロセッサユニット30は、単一のプロセッサであってもよいし、複数のプロセッサより構成されたものであってもよい。ここで、ブリッジ20の詳細を説明する前に、この技術に用いられるグローバルアドレス空間について説明する。
図3は、グローバルアドレス空間の概念を示す。図3に示すように、グローバルアドレス空間において、各プロセッサユニット30の実効アドレス空間が、このプロセッサユニット30が属するノードに対応付けられるようにマッピングされている。このグローバルアドレス空間は、各プロセッサユニット30間で共有され、それにおけるアドレスは、以下グローバルアドレスという。
このグローバルアドレス空間を用いて、ノード40間のアクセスが行われる。
ソースノードのプロセッサユニット30は、ターゲットノードにアクセスする際に、ターゲットノードの実効アドレスを指定したアクセス要求パケットを発行して、ブリッジ20に出力する。このアクセス要求パケットの発行は、たとえばDMA(ダイレクト・メモリ・アクセス)アーキテクチャを用いて行われる。
図4は、ブリッジ20の構成を示す。ブリッジ20は、プロセッサユニット30の入出力バスを介してプロセッサユニット30との送受信を行う上流ポート21、制御部22、スイッチ50の入出力バスを介してスイッチ50との送受信を行う下流ポート28を備える。
図5は、制御部22の構成を示す。制御部22は、変換部23、確認部24、順序保証部25を備える。
上流ポート21は、プロセッサユニット30により発行されたアクセス要求パケットを受け取り、制御部22の変換部23は、ターゲットノードの実効アドレスに、ターゲットノードの、スイッチングに必要なノード識別番号(以下ノードIDという)を付加することによって、ターゲットノードの実効アドレスをグローバルアドレスに変換する。そして、下流ポート28は、このグローバルアドレスを指定するアクセス要求パケットをスイッチ50に出力する。
制御部22における確認部24と、順序保証部25については、後述する。
ノードIDは、ノード40がネットワークにおける物理位置を示しうるものであり、たとえば、スイッチ50における、このノードが接続された接続ポートの番号を用いることができる。
図6は、グローバルアドレスのフォーマットを示す。図示のように、グローバルアドレスは、ノードIDと実効アドレスから構成される。
ブリッジ20の下流ポート28は、このようなグローバルアドレスを指定したアクセス要求パケットをスイッチ50に出力し、スイッチ50は、受信したアクセス要求パケットのグローバルアドレスに含まれるノードIDを読み取り、このノードIDにより示される接続ポートに接続されたノード40にアクセス要求パケットを転送する。
ターゲットノードとなるノード40のブリッジ20は、下流ポート28によりアクセス要求パケットを受け取る。上流ポート21はアクセス要求パケットにより指定された実効アドレスをプロセッサユニット30に出力する。この場合、変換部23によりグローバルアドレスから実効アドレスを読み出して上流ポート21に渡すようにしてもよいし、スイッチ50が、アクセスパケットを転送する際に、グローバルアドレスに含まれる実効アドレスのみをブリッジ20に出力し、変換部23の介在を必要としないようにしてもよい。または、アクセス要求パケットをそのままプロセッサユニット30に渡し、プロセッサユニット30により実効アドレスの読出を行うようにしてもよい。
プロセッサユニット30は、実効アドレスを物理アドレスに変換する。
このように、ユーザ空間の一部をグローバルアドレス空間にマッピングすることによって、コンピュータネットワーク上のノード間において、リソースの透過性を得ることができる。これによって、ネットワークハードウェアやこれらのハードウェアのデバイスドライバの操作をせずにノード間のアクセスができ、低オーバヘッドのメモリアクセスが実現される。
さらに、各ノードに含まれるプロセッサユニットにおけるメモリにおいて、自身以外のノード毎にエリアを割り当てておき、各ノードが自身に割り当てられたエリアにのみアクセスができるようにして安全性を高めるようにしてもよい。具体的には、ソースノードのブリッジ20は、グローバルアドレスへの変換を行う際に、ターゲットノードのノードIDとともに、ソースノードのノードIDも付加する。ターゲットノードのブリッジ20は、アクセス要求パケットに含まれる実効アドレスとともに、ソースノードのノードIDをプロセッサユニット30に渡す。そして、プロセッサユニット30が、ブリッジから渡された、ソースノードのノードIDを利用して、このアクセスの許否を決定するようにする。
たとえば、プロセッサユニットは、実効アドレスを物理アドレスに変換する際に、変換のためのアドレス変換テーブルを用いることが考えられる。このアドレス変換テーブルに、アクセス要求先である物理アドレス空間へのアクセス許可または禁止を示す許可識別番号を付加する。当該許可識別番号とは例えば、各物理アドレス空間毎にアクセスを許可するアクセス要求元のノードのノードIDとすることができる。そして、プロセッサユニットは、この変換テーブルを参照して実効アドレスを物理アドレスに変換する際に、ブリッジから渡されたアクセス要求元のノードIDと、変換テーブルにおいてこの実効アドレスに対応付けられた許可識別番号と一致するか否かにより、この実効アドレスに対するアクセスの許否を決定することができる。
こうすることによって、各ノードにおいてプロセッサユニットが最大パフォーマンスで動作するように各々の実効メモリ空間の内部構成が最適化された状態において、当該実効メモリ空間のノード間の相互アクセスを容易にするとともに、各ノードに対して割り当てられたエリアが、異なるノードからアクセスされることを防ぐことができ、安全である。
ここで、アクセス要求パケットが、ターゲットノードのプロセッサユニット30のメモリに書込を行うものである場合について考える。上述したように、グローバルアドレス空間を導入することによって、異なるノード間において直接アクセスすることができる。ソースノードのプロセッサユニット30がターゲットノードのプロセッサユニット30のメモリに直接書込を行う際に、ターゲットノードのプロセッサユニット30に「書込を行った」ことを通知するために、通知するためのパケット(以下通知パケットという)を発行することが考えられる。ターゲットノードのプロセッサユニット30は、この通知パケットの受信をもってデータの書込が行われたことを知り、該当するデータの読み出しを行う。ここで、通知パケットを受信した、ターゲットノードのプロセッサユニット30にデータを読出させるために、シグナル・ノティフィクション・レジスタ(Singal Notification Register)、メール・ボックス(Mail Box)、ポーリング、リザーベーション・ロスト・イベント(Reservation Lost Event)などの種々の知られている技術を用いてプロセッサに対する割込みを発生させる。
ところで、ネットワークのルーティングにおいて、同じソースノード、同じアドレス(ここでは実効アドレス)のパケットは、同一経路を通り、各経路においてバスたとえばPCI Express(登録商標)のオーダリングルールに従うようにすることによって、オーダリングが保証されるが、アドレスが異なる場合においては、同じソースノード、同じターゲットノードであっても、異なる経路でルーティングされることがあり、オーダリングの保証がない。たとえば、ソースノードのプロセッサユニット30は、書込を行う際に、書込を行うアクセス要求パケット(以下書込パケットという)の発行後、複数回の書込を連続して行う場合には、該複数回の書込のうちの最後の書込を行うアクセス要求パケットの発行後に、通知パケットを発行するが、書込パケットと通知パケットの転送順序が入れ替わることがあるため、この通知パケットは、必ずしも先行の書込パケットの後にターゲットノードに到着するとは限らない。通知パケットが先行の書込パケットより先にターゲットノードに到着すると、ターゲットノードのプロセッサユニット30は、まだ書込がされていないデータを読み出すように動作し、古いデータまたは無効のデータを読み出してしまうという問題が起きる。
ブリッジ20の、図5に示す制御部22における確認部24と順序保証部25は、通知が、先行の書込パケットによる書込が完了した後に行われることを保証するために設けられたものである。確認部24は、各書込パケットの出力後、この書込パケットによる書込が完了したかの確認を行う。ここで、直接アクセスにおける書込においてよく利用され、書込パケットの出力後、該書込が行われたか否かについてターゲットノードから通知されないコマンドたとえばPosted Writeを利用する場合について考える。この場合において、確認部24は、書込パケットによる書込が完了したことを確認するために、読出を行うものであって、書込パケットにより指定されるグローバルアドレスと同じアドレスを指定したリードコマンドを含むアクセス要求パケット(以下確認パケットという)を生成して、下流ポート28を介して出力する。この確認パケットを、ソースノードにおいて実行が失敗したときにエラーが返されるNon−Posted Readで送信される。
なお、この際、ソースノードとターゲットノードによる処理量、ネットワーク上を流れるデータ量を減らすために、この確認パケットは、0バイトの読出を行うものであることが好ましい。
PCIでは、Non−Posted Readは、Posted Writeを追い越さないという規則があるから、先行の書込パケットによる書込が完了しなければ、確認パケットによる読出ができないので、確認部24は、確認パケットによる読出が失敗したことを示すエラーを受信した際には、先行の書込が完了していないことを知り、読出が成功したことを示す応答を受信したことによって、先行の書込が完了したことを確認する。
上述したように、ソースノードのプロセッサユニット30は、ターゲットノードのプロセッサユニット30に「書込を行った」ことを通知するために、書込パケットの後に通知パケットを発行してブリッジ20に出力する。この通知パケットは、先行の書込パケットによる指定されるターゲットノードと同じノードを指定する。
ここで、ブリッジ20はソースノードのプロセッサユニット30から通知パケットを受信すると、制御部22における順序保証部25によりこの通知パケットの出力を制御する。具体的には、確認部24による確認パケットを用いた確認結果が、通知パケットより先に発行された全ての、同じアドレスを指定する書込パケットによる書込が完了したことを示すこと条件として、この通知パケットの出力を許可する。
なお、スイッチ50に出力される確認パケットと通知パケットが指定するアドレスは、他のアクセス要求パケットと同じようにグローバルアドレスである。確認パケットについては、確認部24は、グローバルアドレスを指定するように直接生成するようにしてもよいし、確認部24は実効アドレスを指定するように生成して、変換部23により他のアクセス要求パケットの場合と同じようにグローバルアドレスへの変換を行うようにしてもよい。
このように、確認部24と順序保証部25によって、通知パケットは、書込が行われた後に出力されることを保証される。
次に、ネットワーク上の複数のノードが並列に同じアプリケーションを処理可能な分散アプリケーションシステムにこの技術を適用した場合について説明する。
この場合において、アプリケーションを実行するノード、具体的にはノードに含まれるプロセッサユニットにおけるメモリには、動作中のアプリケーション毎にエリアが割り当てられている。本発明者が提案する技術は、分散アプリケーションシステムにおいて、異なるノードで動作する同じアプリケーション間で、このアプリケーションに対して割り当てられたエリアにアクセスすることを容易にする。
そのために、アプリケーション識別番号(以下アプリケーションIDまたはAPIDという)を導入し、図3に示すグローバルアドレス空間を、このアプリケーションIDを用いて論理的に区分けする。
アプリケーションIDは、動作中のアプリケーション毎に付与された、システム全体において一意にこのアプリケーションを識別するものである。すなわち、異なる複数のノードで動作する同じアプリケーションは、同じアプリケーションIDを有することになる。
図7は、この場合のグローバルアドレス空間の概念を示す。右側のアドレス空間は各ノード、または当該ノードにおいて動作するアプリケーションに対応する実効アドレス空間である。中央のアドレス空間は、情報処理システム内に点在する同じアプリケーションに対応する実効アドレス空間の集合である。左側のアドレス空間は、情報処理システム内の各アプリケーションに対応するアドレス空間の集合である。
図1に示すシステム構成を利用して、この場合におけるノード間のアクセスを説明する。
ソースノードのプロセッサユニット30は、ターゲットノードにアクセスする際に、ターゲットノードの実効アドレスを指定したアクセス要求パケットを発行して、ブリッジ20に出力する。
ブリッジ20の変換部23は、ターゲットノードの実効アドレスに、APIDと、ターゲットノードのノードIDとを付加することによって、ターゲットノードの実効アドレスをグローバルアドレスに変換して、下流ポートを介して、このグローバルアドレスを指定するアクセス要求パケットをスイッチ50に出力する。
図8は、グローバルアドレスのフォーマットの一例を示す。図示のように、このグローバルアドレスは、APID、ターゲットノードのノードID、実効アドレスによって構成される。
なお、グローバルアドレスのフォーマットは、図8に示す例に限られることがない。APIDは、アクセス要求パケットに含まれ、ターゲットノードのブリッジ20により読出可能であればよく、たとえばグローバルアドレスのフォーマットとして図6に示すフォーマットを用い、APIDをアクセス要求パケットに格納するようにしてもよい。
ターゲットノードとなるノード40のブリッジ20は、アクセス要求パケットを受け取ると、変換部23は、アクセス要求パケットからAPIDを読み出し、このAPIDとともに、アクセス要求パケットにより指定された実効アドレスをノード40に渡す。
プロセッサユニット30は、実効アドレスを、APIDに対応するアプリケーションに対して設けられたエリアの物理アドレスに変換する。
このように、各ノードにおける実効アドレスがマッピングされたグローバル空間を、さらにAPIDを用いて論理的に区分けし、グローバルアドレスにAPIDを付加するかアクセス要求パケットにAPIDを格納することによって、ユーザアプリケーションが容易に、ノード間にまたがってアプリケーションが利用するメモリ空間にアクセスする可能となる。 さらに、この場合において、プロセッサユニットは、ブリッジから渡されたAPIDを利用して、このアクセスの許否を決定するようにすることが好ましい。
たとえば、プロセッサユニットは、実効アドレスを物理アドレスに変換する際に、変換のためのアドレス変換テーブルを用いることが考えられる。このアドレス変換テーブルに、アクセス要求先である物理アドレス空間へのアクセス許可または禁止を示す許可識別番号を付加する。ここで許可識別番号とは例えば、各物理アドレス空間毎にアクセスを許可するAPIDである。そして、プロセッサユニットは、この変換テーブルを参照して実効アドレスを物理アドレスに変換する際に、ブリッジから渡されたAPIDと、変換テーブルにおいてこの実効アドレスに対応付けられた許可識別番号と一致するか否かにより、この実効アドレスに対するアクセスの許否を決定することができる。
こうすることによって、アプリケーションがノード間にまたがって動作し、且つ各ノードにおいてはプロセッサユニットまたはアプリケーションが最大パフォーマンスで動作するように各々の実効メモリ空間の内部構成が最適化された状態において、当該実効メモリ空間のノード間の相互アクセスを容易にするとともに、所定のアプリケーションに対して割り当てられたエリアが、異なるアプリケーションからアクセスされることを防ぐことができ、安全である。
また、実効アドレスから物理アドレスへの変換を、プロセッサユニット側において行うことによって、ブリッジの構成を単純にすることができる。さらに、プロセッサユニット側において、ブリッジとは独立に変換テーブルの調整などができる。さらに、IOデバイスやメモリサイズの異なる種類のノードが混在しても、同じ構成のブリッジでノード間のアクセスを可能にすることができる。
さらに、この場合においても、ブリッジ20の確認部24と順序保証部25により、書込を通知する通知パケットが、先行の書込パケットによる書込が完了した後に出力されることを保証することができる。
以下、本発明の実施の形態について、以上の概要を具現化してシステムを説明する。
図9は、本発明にかかる実施の形態による情報処理システムの構成を示す。この情報処理システムは、複数のノード100と、これらのノードを接続してネットワークを形成するスイッチ80を備える。ノード100は、図示しない接続用バスでスイッチ80と接続されており、この接続用バスは、たとえばPCIバスとする。また、スイッチ80はたとえばPCI−PCIブリッジにより構成される。なお、PCIバスは、PCI、PCI−X、PCI Express(登録商標)のいずれの仕様によるものでもよい。
図10は、図9に示す情報処理システムにおけるノード100の構成例を示す。ノード100は、ブリッジ110と、マルチコアプロセッサ120と、メインメモリ180とを有する。
マルチコアプロセッサ120は、ワンチップで形成されており、メインプロセッサPPE(Power Processing Element)140と、複数、図示の例では8つのサブプロセッサSPE(Synergistic Processing Element)130と、IOインターフェイス(以下IOIFという)160と、メモリコントローラ170とを有し、これらは、リングバス150によって接続される。
メインメモリ180は、マルチコアプロセッサ120の各処理ユニットの共有メモリであり、メモリコントローラ170と接続されている。
メモリコントローラ170は、PPE140および各SPE130がメインメモリ180にアクセスする仲介を行う。なお、図10に示す例では、メインメモリ180はマルチコアプロセッサ120の外部に設けられているが、マルチコアプロセッサ120内に含まれるように設けられてもよい。
IOIF160は、図示しないIOEFバスによってブリッジ110と接続され、ブリッジ110と協働して、各ノード100間のアクセスを可能にする。IOIF160には、IOコントローラ164が含まれている。
SPE130は、コア132と、ローカルメモリ134と、メモリコントローラ(以下MFCという)136とを備え、MFC136には、DMAC(ダイレクトメモリアクセスコントローラ)138が含まれている。なお、ローカルメモリ134は、従来のハードウェアキャッシュメモリではないことが望ましく、それには、ハードウェアキャッシュメモリ機能を実現するための、チップ内蔵またはチップ外に置かれたハードウェアキャッシュ回路、キャッシュレジスタ、キャッシュメモリコントローラなどが無い。
PPE140は、コア142と、L1キャッシュ144と、L2キャッシュ145と、MFC146とを備え、MFC146には、DMAC148が含まれている。
通常、マルチコアプロセッサ120のオペレーティングシステム(以下OSともいう)は、PPE140において動作し、OSの基本処理に基づいて、各SPE130で動作するプログラムが決定される。また、SPE130で動作するプログラムは、OSの機能の一部をなすようなプログラム(たとえばデバイスドライバや、システムプログラムの一部など)であってもよい。なお、PPE140とSPE130の命令セットアーキテクチャは、異なる命令セットを有する。
図9に示す情報処理システムは、複数のマルチコアプロセッサ120上で同じアプリケーションが動作可能な分散アプリケーションシステムである。このシステムにおいて、図7に示すグローバルアドレス空間が用いられる。
図11は、ブリッジ110の構成を示す。ブリッジ110は、第1の入出力部112、ブリッジコントローラ114と、第2の入出力部118を有し、ブリッジコントローラ114には、レジスタ群116が含まれている。
第1の入出力部112と第2の入出力部118は、図4に示すブリッジ20の上流ポート21と下流ポート28とそれぞれ同じであり、ここで詳細な説明を省略する。
ブリッジコントローラ114は、自身が属するノードがソースノードであるときに、マルチコアプロセッサ120により発行されたアクセス要求パケットが指定した実効アドレスをグローバルアドレスへの変換を行う。また、自身が属するノードがターゲットノードとしてアクセスされたときに、第2の入出力部118によって受信したアクセス要求パケットに含まれるグローバルアドレスからアクセス要求元ノードIDまたはAPIDを読み出し、このAPIDとともに、アクセス要求パケットが指定した実効アドレスをマルチコアプロセッサ120に渡す。
また、ブリッジコントローラ114は、図5に示す制御部22と同じように、確認部24と順序保証部25が行う、すなわち書込が完了したことを確認する処理と、確認の結果を用いて、通知パケットの出力を制御して順序保証を行う処理も行う。
ブリッジコントローラ114内には、各ノード100における実効アドレスとIOアドレスの変換を行うためのIOアドレス空間が存在する。IOアドレス空間は1つまたは複数のセグメントに分割され、さらに各セグメントは1つまたは複数のページに分割される。ブリッジコントローラ114は、変換を行うためのレジスタを各ページ毎に備え、それらレジスタの集合がレジスタ群116である。ブリッジコントローラ114が備える変換用レジスタは、当該ページへのアクセスが許可されているアクセス要求元ノードIDまたはアクセス要求元アプリケーションの識別情報であるAPID、当該ページに対応付けてマッピングされたメインメモリ180における物理アドレス等を各ページ毎に含む。
各ページ毎の情報は、システムプログラムによってIOIF160を経由してレジスタ群116に含まれる該当のレジスタに書き込まれる。
ここで、ノード100間のアクセスについて説明する。
まず、アクセスを行うノード100の動作を説明する。
ノード100に含まれるマルチコアプロセッサ120はターゲットノードとなる他のノードにアクセスする。アクセスするのにあたり、マルチコアプロセッサ120は、アクセス要求パケットをブリッジ110に発行する。このアクセス要求パケットは、ターゲットノードにおけるアクセス要求先アプリケーションの実効アドレスを含む。なお、このアクセス要求パケットは、マルチコアプロセッサ120に含まれるいずれかの処理ユニットのDMACから発行される。
ブリッジ110のブリッジコントローラ114は、実効アドレスをグローバルアドレスに変換する。ここで、グローバルアドレスについては、図8に示すフォーマットが用いられる。すなわち、ブリッジコントローラ114により得られたグローバルアドレスは、アクセスを要求するアプリケーションのAPIDと、ターゲットノードのノードIDと、ターゲットノードにおける実効アドレスから構成される。さらにここで、アクセス要求パケットにはアクセス要求元であるソースノードのノードIDが追加される。
スイッチ80は、このグローバルアドレスを指定したアクセス要求パケットに含まれるノードIDを読み取り、このノードIDにより示されるターゲットノードにアクセス要求パケットを転送する。
マルチコアプロセッサ120は、書込を行うためのアクセスをする際に、書込パケットを発行した後に、書込を行ったことをターゲットノードに通知する通知パケットを発行する。なお、連続して書込を行う場合には、書込パケットを連続して発行するとともに、最後の書込パケットの後に、通知パケットを発行する。マルチコアプロセッサ120は、この通知パケットに対して、先行した各書込パケットによる書込が完了した後に出力されることを要求することを示すたとえば「fence」属性を付けてブリッジ110に出力する。
ブリッジ110のブリッジコントローラ114は、それぞれの書込パケットに対してその出力後、0バイトの読出を行う確認パケットを生成して、第2の入出力部118を介して出力する。そして、この読出を行ったことを示す応答を受信したことによって、書込の完了を確認する。
ブリッジコントローラ114は「fence」属性が付けられた通知パケットをマルチコアプロセッサ120から受信すると、先行の書込パケットに対する確認パケットを用いた確認結果が、通知パケットより先に発行された書込パケット(連続して複数の書込パケットが発行された場合においてはこれらのすべての書込パケット)による書込が完了したことを示すこと条件として、この通知パケットの出力を許可する。
次に、アクセスされる側のノード100、すなわちターゲットノードの動作について説明する。
ターゲットノードとなるノード100のブリッジ110はアクセス要求パケットを受信すると、ブリッジコントローラ114によりアクセス要求パケットに含まれるアクセス要求元ノードIDまたはAPIDを読み出す。そして、アクセス要求パケットに含まれる実効アドレスを、IOアドレスに変換する。
ブリッジ110は、このようにして得たIOアドレスを、アクセス要求元ノードIDまたはAPIDとともにマルチコアプロセッサ120のIOIF160に送信する。
IOIF160のIOコントローラ164は、IOアドレスを、メインメモリ180における物理アドレスに変換する。図12は、この変換に用いられた変換テーブルおよび変換の結果の例を示す。
メインメモリ180がセグメントに分けられており、各セグメントはまた所定のページサイズのページに分けられている。ページサイズが4KBであるときに、36ビットのIOアドレスの各ビットは下記のように規定される:IO Address[34:28]=セグメント、IO Address[27:12]=ページ、IO Address[11:0]=オフセット。
図12に示すように変換テーブルは、セグメントに含まれる各ページ毎に物理アドレス空間をマッピングするとともに、許可識別番号IOIDによってアクセス許可/禁止を示している。ここでIOIDは、対応する物理アドレス(空間)へのアクセスが許可されているアクセス要求元ノードIDまたはアプリケーションの識別情報であるAPIDを示す。
IOコントローラ164は、ブリッジ110から受信したIOアドレスにより表されるセグメント番号、ページ番号について、変換テーブルを参照して、アクセスが許可されているか否かを見出す。たとえば、「セグメント=1、ページ=2、オフセット=0」を示すIOアドレスとともに受信したアクセス要求元ノードIDまたはAPIDがCである場合には、変換テーブルはセグメント=1、ページ=2に対してIOID=Cを対応づけ、アクセス要求元ノードID=Cで識別されるノードまたはAPID=Cで識別されるアプリケーションによる物理アドレスdへのアクセスが許可されることを規定しているので、IOコントローラ164は、物理アドレスdへのアクセスを許可する。一方、「セグメント=127、ページ=1、オフセット=0」を示すIOアドレスとともに受信したアクセス要求元ノードIDまたはAPIDがCである場合には、変換テーブルはセグメント=127、ページ=1に対してIOID=Dを対応づけ、アクセス要求元ノードID=Cで識別されるノードまたはAPID=Cで識別されるアプリケーションによるアクセスが許可されないことを示しているので、IOコントローラ164は、エラー信号を返して、アクセスを拒否する。
なお、変換テーブルからわかるように、同じアクセス要求元ノードまたは同じアプリケーション(たとえばIOID=Aに対応するアクセス要求元ノードまたはアプリケーション)に対して、メモリ上の連続したエリア(物理アドレスa、bにより示されるエリア)にマッピングされる。
以上の構成によれば、ネットワークにより接続されたマルチプロセッサシステムにおいて、リソースの透過性を実現するとともに、オーダリングの制御が可能となる。
図9に示す情報システムは、例としてスイッチ一つのみのシステムとしているが、上述したオーダリング制御の技術を、複数のスイッチにより拡張されたシステムにおける各ノード間のアクセスにも適用することができる。
このようなシステムでは、たとえ同一ソース、同一ターゲットノードであっても、異なるルーティングバスを経由してコマンドやデータが届けられることを想定するため、連続的に発行するコマンドのオーダリングを保証することができない。
一方、ルーティングに関して、完全に制約を無くしてしまったり、Ethernet(登録商標)のようなネットワークのようにパケットの消失を許容してしまうと、プロトコルが複雑になるため、ここで、システムに与える制約として、同一ソースノード、同一アドレスのルーティングパスは、同一になるというのを加える。そして、同一ルーティングパスに関しては、PCIたとえばPCI Express(登録商標)のオーダリングルールに従うという制約を加える。
このような制限を加えると、あるノードのプロセッサユニットから発行したライトコマンドは、同一ノードが同じアドレスに対してリードコマンドを発行し、応答を待つことによって、先に発行したライトコマンドの完了を保証することができるようになる。
あるプロセッサユニットが複数のライトコマンドによってデータを転送し、その完了を通知するために1つの通知コマンドを発行する場合、通知コマンドは、前に発行されたすべてのライトが完了した後に発行する必要がある。オーダリングを保証するには、同じアドレスに対するリードコマンドの完了が必要であるというルールに従うと、通知コマンドを発行する前に、以前に発行したライトコマンドと同一アドレスのリードコマンドがすべて完了する必要がある。
ブリッジでは、ライトコマンドを発行した後に、同一アドレスにたとえば0バイトのリードコマンドを発行する機能を実装する。また、オーダリングが要求されるコマンド(オーダリングフラグ付きコマンド)に関しては、前に発行されたすべてのリードコマンドが完了した後での発行が保証される。なお、オーダリングフラグは、たとえばアドレスを変換するレジスタの一部として、ユーザが設定できる領域に実装されるようにしてもよい。
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
たとえば、図9に示す情報処理システムにおいて、アプリケーションIDすなわちAPIDをIOIDとして用いて、異なるノード間において、所定のアプリケーションに対して割り当てられたエリアが、異なるアプリケーションからアクセスされることを防ぐようにしている。たとえば、APIDの代わりにアクセス元のノードIDを用いて、このノードIDに割り当てられたエリアが他のノードによりアクセスされることを防ぐようにしてもよい。
また、スイッチ80はPCIバスを相互接続するものであったが、PCI以外の規格のバスを相互接続するスイッチを用いてネットワークを構成してもよい。
本発明は、コンピュータネットワーク上におけるノード間のアクセス技術に利用できる。

Claims (11)

  1. プロセッサユニットの入出力バスを、複数のプロセッサユニットが相互接続されるスイッチング装置への入出力バスへ中継するブリッジであって、
    各プロセッサユニットの実効アドレスがマッピングされた前記複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、当該プロセッサユニットから、前記複数のプロセッサユニットの内いずれかのターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取る上流ポートと、
    前記ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、前記ターゲットノードの実効アドレスをグローバルアドレスに変換する変換部を有する制御部と、
    前記グローバルアドレスが指定されたアクセス要求パケットを前記スイッチング装置に出力する下流ポートとを備え、
    前記制御部は、書込を行うための前記アクセス要求パケットの出力後であって、書込を行ったことを前記ターゲットノードに通知する前に、書込を行うための前記アクセス要求パケットにより指定されるグローバルアドレスを指定するアクセス要求パケットであって、読出を行うためのアクセス要求パケットを生成して前記下流ポートに出力させ、該読出が成功したことをもって前記ターゲットノードにおいて該書込が行われたことを確認する確認部をさらに有することを特徴とするブリッジ。
  2. 前記確認部は、前記読出しを行うためのアクセス要求パケットを、前記複数のプロセッサユニット間の入出力バスにおいて、書き込みを行うための前記アクセス要求パケットとの順序保証がなされる態様で前記下流ポートに出力させることを特徴とする請求項1に記載のブリッジ。
  3. 前記制御部は、前記プロセッサユニットから発行された、書込を行ったことを前記ターゲットノードに通知を行う通知パケットに対して、該通知パケットの前に出力した、前記ターゲットノードに書込を行うためのアクセス要求パケットの出力後の前記確認が取れたことを条件として、該通知パケットの出力を許可する順序保証部をさらに備えることを特徴とする請求項1または2に記載のブリッジ。
  4. 前記複数のプロセッサユニット上で動作する分散アプリケーションを一意に識別するアプリケーション識別番号によって前記グローバルアドレス空間が論理的に区分けされる場合に、前記変換部は、前記グローバルアドレスが指定されたアクセス要求パケット内に前記アプリケーション識別番号を格納することを特徴とする請求項1から3のいずれか1項に記載のブリッジ。
  5. 前記下流ポートは、前記複数のプロセッサユニットのいずれかであるソースノードから、当該プロセッサユニットをターゲットノードとしてその実効アドレスを指定したアクセス要求パケットを受け取った場合、前記変換部は、前記アクセス要求パケットから前記アプリケーション識別番号を取得し、前記上流ポートは、前記アクセス要求パケットに指定された当該プロセッサユニットの実効アドレスとともに、前記アクセス要求パケットから取得した前記アプリケーション識別番号を当該プロセッサユニットに渡すことを特徴とする請求項4に記載のブリッジ。
  6. 複数のプロセッサユニットと、
    複数のプロセッサユニットを相互接続するスイッチング装置と、
    各プロセッサユニットの入出力バスを前記スイッチング装置の入出力バスへと中継するブリッジとを含み、
    前記ブリッジは、
    各プロセッサユニットの実効アドレスがマッピングされた前記複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、当該プロセッサユニットから、前記複数のプロセッサユニットの内いずれかのターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取る上流ポートと、
    前記ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、前記ターゲットノードの実効アドレスをグローバルアドレスに変換する変換部を有する制御部と、
    前記グローバルアドレスが指定されたアクセス要求パケットを前記スイッチング装置に出力する下流ポートとを備え、
    前記制御部は、書込を行うための前記アクセス要求パケットの出力後であって、書込を行ったことを前記ターゲットノードに通知する前に、書込を行うための前記アクセス要求パケットにより指定されるグローバルアドレスを指定するアクセス要求パケットであって、読出を行うためのアクセス要求パケットを生成して前記下流ポートに出力させ、該読出が成功したことをもって前記ターゲットノードにおいて該書込が行われたことを確認する確認部をさらに備えることを特徴とする情報処理システム。
  7. 前記確認部は、前記読出しを行うためのアクセス要求パケットを、前記複数のプロセッサユニット間の入出力バスにおいて、書き込みを行うための前記アクセス要求パケットとの順序保証がなされる態様で前記下流ポートに出力させることを特徴とする請求項6に記載の情報処理システム。
  8. 前記プロセッサユニットは、
    ソースノードである場合においては、書込を行うためのアクセス要求パケットの発行後、該書込を行ったことを前記ターゲットノードに通知する通知パケットを発行可能であり、
    ターゲットノードである場合においては、該通知パケットの受信後、それにより通知される前記書込により書き込まれたデータを読み出し、
    ソースノードのブリッジにおける前記制御部は、当該プロセッサユニットから発行された通知パケットに対して、該通知パケットの前に出力した、ターゲットノードに書込を行うためのアクセス要求パケットの出力後の前記確認が取れたことを条件として、該通知パケットの出力を許可する順序保証部をさらに備えることを特徴とする請求項6または7に記載の情報処理システム。
  9. 複数のプロセッサユニットの各々がブリッジを介してスイッチング装置に接続された情報処理システムにおけるアクセス制御方法であって、
    各プロセッサユニットの実効アドレスがマッピングされた前記複数のプロセッサユニット間で共有されるグローバルアドレス空間を前提として、当該プロセッサユニットから、前記複数のプロセッサユニットの内いずれかのターゲットノードの実効アドレスを指定したアクセス要求パケットを受け取る第1のステップと、
    前記ターゲットノードの実効アドレスにそのターゲットノードの、スイッチングに必要なノード識別番号を付加することにより、前記ターゲットノードの実効アドレスをグローバルアドレスに変換する変換ステップを第2のステップと、
    前記グローバルアドレスが指定されたアクセス要求パケットを前記スイッチング装置に出力する第3のステップとを含み、
    前記第2のステップは、書込を行うための前記アクセス要求パケットの出力後であって、書込を行ったことを前記ターゲットノードに通知する前に、書込を行うための前記アクセス要求パケットにより指定されるグローバルアドレスを指定するアクセス要求パケットであって、読出を行うためのアクセス要求パケットを生成して出力し、該読出が成功したことをもって前記ターゲットノードにおいて該書込が行われたことを確認する確認ステップをさらに含むことを特徴とするアクセス制御方法。
  10. 前記確認ステップは、前記読出しを行うためのアクセス要求パケットを、前記複数のプロセッサユニット間の入出力バスにおいて、書き込みを行うための前記アクセス要求パケットとの順序保証がなされる態様で出力することを特徴とする請求項9に記載のアクセス制御方法。
  11. 前記第2のステップは、前記プロセッサユニットから発行された、書込を行ったことを前記ターゲットノードに通知を行う通知パケットに対して、該通知パケットの前に出力した、前記ターゲットノードに書込を行うためのアクセス要求パケットの出力後の前記確認が取れたことを条件として、該通知パケットの出力を許可する順序保証ステップをさらに含むことを特徴とする請求項9または10に記載のアクセス制御方法。
JP2008504992A 2006-03-10 2007-01-11 ブリッジ、情報処理システムおよびアクセス制御方法 Active JP4469010B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006066790 2006-03-10
JP2006066790 2006-03-10
PCT/JP2007/050266 WO2007105373A1 (ja) 2006-03-10 2007-01-11 ブリッジ、情報処理システムおよびアクセス制御方法

Publications (2)

Publication Number Publication Date
JPWO2007105373A1 JPWO2007105373A1 (ja) 2009-07-30
JP4469010B2 true JP4469010B2 (ja) 2010-05-26

Family

ID=38509214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008504992A Active JP4469010B2 (ja) 2006-03-10 2007-01-11 ブリッジ、情報処理システムおよびアクセス制御方法

Country Status (3)

Country Link
US (1) US8185683B2 (ja)
JP (1) JP4469010B2 (ja)
WO (1) WO2007105373A1 (ja)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
CA2558892A1 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for a self-optimizing reservation in time of compute resources
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
CA2827035A1 (en) 2004-11-08 2006-05-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
CA2603577A1 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
JP5069079B2 (ja) * 2007-10-19 2012-11-07 株式会社ハプティック ハブ装置
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US8275947B2 (en) 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US8255913B2 (en) 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
WO2010022554A1 (en) * 2008-08-27 2010-03-04 Xing Chen Flow control system and network
US11720290B2 (en) * 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US10877695B2 (en) * 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
CN102110072B (zh) * 2009-12-29 2013-06-05 中兴通讯股份有限公司 一种多处理器完全互访的方法及系统
KR20160028680A (ko) * 2014-09-04 2016-03-14 삼성전자주식회사 데이터 저장 장치와 이의 작동 방법
US20160092123A1 (en) * 2014-09-26 2016-03-31 Pankaj Kumar Memory write management in a computer system
JP6593222B2 (ja) * 2016-02-23 2019-10-23 富士通株式会社 情報処理装置、演算処理装置及び情報処理装置の制御方法
CN106302243B (zh) * 2016-09-23 2019-11-12 新华三技术有限公司 一种报文传输方法、cpu以及网络设备
CN109997122B (zh) * 2016-11-30 2023-06-30 株式会社索思未来 信息处理系统、半导体集成电路以及信息处理方法
JP6853479B2 (ja) * 2017-07-04 2021-03-31 富士通株式会社 情報処理システム、情報処理装置、及び情報処理システムの制御方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3080457B2 (ja) 1991-12-26 2000-08-28 富士通株式会社 分散アドレス変換方式
JPH0922397A (ja) 1995-07-07 1997-01-21 Hitachi Ltd 並列計算機
JP2780662B2 (ja) 1995-03-30 1998-07-30 日本電気株式会社 マルチプロセッサシステム
US5887138A (en) * 1996-07-01 1999-03-23 Sun Microsystems, Inc. Multiprocessing computer system employing local and global address spaces and COMA and NUMA access modes
JP3092566B2 (ja) * 1997-10-30 2000-09-25 日本電気株式会社 パイプライン方式のバスを用いたメモリ制御方式
JP3667585B2 (ja) 2000-02-23 2005-07-06 エヌイーシーコンピュータテクノ株式会社 分散メモリ型並列計算機及びそのデータ転送終了確認方法
US7251698B2 (en) * 2002-05-28 2007-07-31 Newisys, Inc. Address space management in systems having multiple multi-processor clusters
JP4690667B2 (ja) 2004-06-28 2011-06-01 広幸 早川 二輪自動車用足踏み式変速装置
US7598958B1 (en) * 2004-11-17 2009-10-06 Nvidia Corporation Multi-chip graphics processing unit apparatus, system, and method
US7698493B2 (en) * 2005-08-31 2010-04-13 Ati Technologies, Inc. Methods and apparatus for translating write request messages in a computing system
US20070165596A1 (en) * 2006-01-18 2007-07-19 Boyd William T Creation and management of routing table for PCI bus address based routing with integrated DID

Also Published As

Publication number Publication date
WO2007105373A1 (ja) 2007-09-20
JPWO2007105373A1 (ja) 2009-07-30
US8185683B2 (en) 2012-05-22
US20100070675A1 (en) 2010-03-18

Similar Documents

Publication Publication Date Title
JP4469010B2 (ja) ブリッジ、情報処理システムおよびアクセス制御方法
JP4219964B2 (ja) ブリッジ、プロセッサユニット、情報処理装置およびアクセス制御方法
JP3579198B2 (ja) データ処理システム及びデータ処理方法
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
EP0497600B1 (en) Memory access method and apparatus
US6163829A (en) DSP interrupt control for handling multiple interrupts
US9219695B2 (en) Switch, information processing apparatus, and communication control method
JP2010165022A (ja) プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体
WO2008010397A1 (fr) Contrôleur de mémoire
US8583845B2 (en) Multi-processor system and controlling method thereof
JP2009110032A (ja) ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法
JP5439808B2 (ja) 複数バスを有するシステムlsi
JP2001333137A (ja) 自主動作通信制御装置及び自主動作通信制御方法
JP2004133942A (ja) データバスシステム及びバス間クロスアクセス方法
JP2002183102A (ja) コンフィグレーションアクセスルーティング方法
JP6365718B1 (ja) コンピュータシステム、及びメモリコピー方法
JP5483020B2 (ja) 通信制御装置、ネットワーク、及びネットワークシステム
JPH11338833A (ja) マルチプロセッサ型コントローラ及びスケーラブルコントローラシステム
JP4965974B2 (ja) 半導体集積回路装置
JP2001273191A (ja) コンピュータシステム
JP4774099B2 (ja) 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP2008123333A5 (ja)
JPH0223060B2 (ja)
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
JPH06332842A (ja) ダイレクト・メモリ・アクセス・制御回路

Legal Events

Date Code Title Description
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: 20100223

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

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

Year of fee payment: 3