JP6231679B2 - 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理 - Google Patents

周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理 Download PDF

Info

Publication number
JP6231679B2
JP6231679B2 JP2016528329A JP2016528329A JP6231679B2 JP 6231679 B2 JP6231679 B2 JP 6231679B2 JP 2016528329 A JP2016528329 A JP 2016528329A JP 2016528329 A JP2016528329 A JP 2016528329A JP 6231679 B2 JP6231679 B2 JP 6231679B2
Authority
JP
Japan
Prior art keywords
processor
resource
domain
information
request
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
JP2016528329A
Other languages
English (en)
Other versions
JP2016530618A (ja
Inventor
ノーバート・エギ
ロバート・ラサター
トーマス・ボイル
ジョン・ピーターズ
グアンユ・シ
Original Assignee
ホアウェイ・テクノロジーズ・カンパニー・リミテッド
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 ホアウェイ・テクノロジーズ・カンパニー・リミテッド filed Critical ホアウェイ・テクノロジーズ・カンパニー・リミテッド
Publication of JP2016530618A publication Critical patent/JP2016530618A/ja
Application granted granted Critical
Publication of JP6231679B2 publication Critical patent/JP6231679B2/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
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • H04L47/785Distributed allocation of resources, e.g. bandwidth brokers among multiple network domains, e.g. multilateral agreements
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/4063Device-to-bus coupling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Bus Control (AREA)

Description

〔関連出願の相互参照〕
本出願は、2014年6月25日に出願した、発明の名称を「resource management for peripheral component interconnect express domains」とする米国非仮出願第14/315,099号の優先権と、2013年7月22日に出願した、発明の名称を「Cascading PCI-Express network domains」とする米国仮出願第61/857,031号の優先権を主張するものであり、両出願はその全体が参照により本明細書に組み込まれる。
本出願は、一般に周辺コンポーネント相互接続エクスプレス(PCIe)ネットワークに関し、具体的には、PCIeネットワーク上でインタードメインリソース割り振りを管理するための技術に関する。
PCI(Peripheral Component Interconnect)技術の後継としてのPCI-Express(PCIe)は、パーソナルコンピュータ(PC)またはサーバ内で展開されたCPUとそれらの周辺機器とを相互接続するための最も広く使用されている手段である。それは、高スループット、低遅延、パケットベースかつスイッチト相互接続技術である。
それぞれがそれ独自のホスト、すなわち、マイクロコンピュータまたはCPUを有する複数のPCIeドメインは、一つまたは複数のPCIe非透過的ブリッジ(NTB)によって相互接続されている。この構成におけるNTBは、それらが接続されたPCIeドメインのアドレス空間との間のアドレス変換を実行するために使用され、それによって、分離されたPCIeドメイン内のノード(すなわち、I/Oデバイス、CPU等)間でデータ転送を実行することができる。
PCIeネットワークは、規模と複雑さにおいて成長し続けている。PCIeドメインを横断したリソース管理の必要が生じると予想される。
本発明の実施形態は、周辺コンポーネント相互接続エクスプレス(PCIe)ネットワーク内のインタードメインリソース割り振りを管理するための装置を提供する。PCIeネットワークは、リンクプロセッサによってそれぞれ管理され、かつ非透過的ブリッジ(NTB)を介して1つ以上の他のドメインに接続された複数のPCIeドメインを含む。装置は、メモリと、メモリに連結された管理プロセッサを含む。管理プロセッサは、各ドメインのリンクプロセッサによって報告されたドメインの利用可能リソースについての情報を取得するように構成される。利用可能リソースについての情報は、報告された各利用可能リソースのメモリアドレスを含む。プロセッサは、利用可能リソースについて取得された情報をメモリ内に記憶し、かつドメインの1つの要求プロセッサからリソース要求を受信するように構成される。リソース要求に応答して、プロセッサは、利用可能リソースのリソースを要求プロセッサに割り振る。割り振られたリソースは、要求プロセッサを有するドメインとは異なるドメインに存在する。プロセッサは、割り振られたリソースのメモリアドレス情報をメモリから取得し、1つ以上のリンクプロセッサに、割り振られたリソースと要求プロセッサとの間のトラフィックが、割り振られたリソースのメモリアドレス情報に基づいて流れることとなる1つ以上のインタードメインNTBをプログラムするように指示し、要求プロセッサと割り振られたリソースとの間のクロスドメインリソースアクセスを可能にする。
本発明の別の実施形態は、周辺コンポーネント相互接続エクスプレス(PCIe)ネットワーク内のインタードメインリソース割り振りを管理するための方法を提供する。PCIeネットワークは、リンクプロセッサによってそれぞれ管理され、かつ非透過的ブリッジ(NTB)を介して1つ以上の他のドメインに接続された複数のPCIeドメインを含む。プロセッサは、各ドメインのリンクプロセッサによって報告されたドメインの利用可能リソースについての情報を取得する。利用可能リソースについての情報は、報告された各利用可能リソースのメモリアドレスを含む。プロセッサは、利用可能リソースについて取得された情報をメモリ内に記憶する。プロセッサは、ドメインの1つの要求プロセッサからリソース要求を受信する。リソース要求に応答して、プロセッサは、利用可能リソースのリソースを要求プロセッサに割り振る。割り振られたリソースは、要求プロセッサを有するドメインとは異なる別のドメインに存在する。プロセッサは、割り振られたリソースのメモリアドレス情報をメモリから取得し、1つ以上のリンクプロセッサに、割り振られたリソースと要求プロセッサとの間のトラフィックが、割り振られたリソースのメモリアドレス情報に基づいて流れることとなる1つ以上のインタードメインNTBをプログラムするように指示し、要求プロセッサと割り振られたリソースとの間のクロスドメインリソースアクセスを可能にする。
前述の方法は、1つ以上のプロセッサ、メモリ、およびこれらの方法を実行するためのメモリ内に記憶された1つ以上のモジュール、プログラムまたは命令のセットによって実行されてもよい。
前述の方法を実行するための命令が、1つ以上のプロセッサにより実行されるよう構成されたコンピュータプログラム製品に含まれてもよい。いくつかの実施形態では、装置は、コンピュータ読み取り可能な記憶媒体(例えば、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、または他の不揮発性ソリッドステートメモリデバイス)およびその中に埋め込まれた実行可能なコンピュータプログラムメカニズムを含む。
3つの例示的なPCIeドメインを含むPCIeネットワークのブロック図である。 インタードメインNTBを使用したメモリアドレス変換を示す2つのPCIeドメインのブロック図である。 インタードメインNTBを使用したルートID変換を示す2つのPCIeドメインのPCIeネットワークのブロック図である。 PCIeネットワーク内のインタードメインリソース割り振りを管理するための方法のフローチャートである。
本願の前述の目的、技術的解決策、および利点をより理解し易くするために、詳細な説明が以下に提供される。実施形態、添付図面に示される実施例が参照される。ブロック図、フローチャート、および/または実施例が1つ以上の機能および/または動作を含む限り、そのようなブロック図、フローチャート、または実施例の中の各機能および/または動作が、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせの広い範囲によって個々におよび/または集合的に実装され得ることは、当業者によって理解されるであろう。
図1は、1つ以上のNTBを介して相互接続された複数のドメインを示している。例示の目的で、図1に示される3つのPCIeドメイン100、200、300のみが存在する。NTBを介して相互接続されるより多くのPCIeドメインが存在してもよい。ドメイン100、200は、NTB 150を介して接続され、一方で、ドメイン100、300は、NTB 250を介して接続される。図1に示されるドメイン100、200、300は、それぞれリンクプロセッサ101、201、301によって管理される。
別のドメインは、別の構成を有する別のデバイスを含んでもよい。例示の目的で、図1に示されるドメイン100、200、および300はそれぞれ、他のドメインに類似したデバイスを含んでおり、かつドメイン100のみが詳細に説明される。ドメイン100は、リンクプロセッサ(例えば、CPU)101、PCIeファブリック103、1つ以上のPCIeI/Oデバイス131-139、および1つ以上のワーカープロセッサ111-119を含む。PCIeファブリック103は、お互いに相互接続された1つまたは複数のPCIeスイッチ(図1には図示せず)を備える。リンクプロセッサ101、PCIe I/Oデバイス131-139、およびワーカープロセッサ111-119は、PCIeファブリック103内のPCIeスイッチの少なくとも1つに接続される。
リンクプロセッサ101は、アドレスを、ドメイン100内のPCIeファブリック103に接続されたデバイス(すなわち、ワーカープロセッサ、I/Oデバイス等)に割り当てることを担うドメイン100のルートホストとして機能する。ワーカープロセッサ111、112は、それぞれ非透過的ブリッジ(NTB)121、122を介してPCIeファブリック103に接続される。NTB 121は、異なるメモリドメインの2つのホストであるリンクプロセッサ101およびワーカープロセッサ111の単離を可能にし、さらにリンクプロセッサ101とワーカープロセッサ111との間のステータスおよびデータ交換を可能にする。NTB 121は、リンクプロセッサ101とワーカープロセッサ111のメモリ空間の間でのアドレス変換を提供する。NTB 121を使用すると、ブリッジの両側のデバイスは、他の側からは見えないが、リンクプロセッサ101とワーカープロセッサ111のメモリドメイン間のデータ転送とステータス交換のためにパスが提供される。NTB 121は、BAR(Base Address Register)の2つのセットを有し、1つはリンクプロセッサ101側用、もう1つはワーカープロセッサ111側用である。BARは、NTB 121のもう一方の側のメモリ空間へのアドレス変換ウィンドウを定義するために使用され、かつトランザクションが、ローカルメモリまたはI/Oにマッピングされることを可能する。
ワーカープロセッサ119は、透過的ブリッジ(TB)129を介してPCIeファブリック103に接続されており、この場合、それらはエンドポイントとして構成される必要がある。リンクプロセッサ101は、ブリッジおよびエンドデバイスの検出を介してシステムを列挙する。TB 129については、“Type 1”ヘッダを有するコンフィギュレーションステータスレジスタ(CSR)は、リンクプロセッサ101に、このブリッジを越えて、下流にある追加のデバイスとして列挙し続けるように知らせる。エンドポイントデバイスとしてのワーカープロセッサ119は、そのCSR内に“type 0”ヘッダを有し、追加デバイスが下流にないことをイニューマレータ(すなわち、リンクプロセッサ101)に知らせる。CSRは、リンクプロセッサ101から、メモリおよびI/O開口を要求するために使用されるベースBARを含む。
PCIeドメイン(例えば、PCIeドメイン100、200、または300)は、それ自身が独立した64ビットアドレス空間を有するPCIeネットワークである。ワーカープロセッサ111、112は、NTB 121、122を介してPCIeドメイン100に接続されている。もしNTBが使用される場合、物理的には、それらは分離されたドメインにある。しかし、この実施形態において、NTBの役割は、PCIeドメイン100からのアドレスをワーカープロセッサのドメインにマッピングすることであり、かつワーカープロセッサ111、112はさらに、リンクプロセッサ101の制御下にあり、従って、ワーカープロセッサ111、112は、論理レベルでPCIeドメイン100の一部として扱われてもよい。図1に示されるように、コンセプトドメインがこの実施形態において使用されるとき、ワーカープロセッサ111、112は、PCIeドメイン100の一部である。
図1に示されるようなPCIeドメイン100では、各ノード(例えば、ワーカープロセッサまたはI/Oデバイス)は、2つの独立したアドレスを有している。1つはメモリアドレス(MA)であり、かつもう1つは、8ビットのバス番号、5ビットのデバイス番号、および3ビットのファンクション番号(すなわち、B:D:F)のシーケンスのフォーマットにおけるリクエストID(RID)である。プロセッサが、ノードの1つ、例えば、PCIe I/Oデバイス131-139の1つにデータの読み取りまたは書き込み要求を開始するとき、プロセッサは、そのMAを使用してノードをアドレス指定し(すなわち、パケットの宛先アドレスがノードのMAになることとなる)、かつそのRIDを有するそれ自体をデータのリクエスタとして同定する。ノードがデータ(読み取りの場合)またはデータ受信の確認応答パケット(書き込みの場合)を返信するとき、ノードは、宛先アドレスとしてプロセッサのRIDを使用する。従って、もし要求パケットが2つのドメインの境界上のNTBを横断する場合、両方のアドレス(すなわち、MAおよびRID)は、リモートドメインにおけるアドレス衝突を回避し、かつ正しいノードへのパケット(要求とそれに続く応答または完了確認応答との両方)を得るために、変換されなければならない。なお、PCIeドメイン内のアドレスは、他のPCIeドメインから独立して割り当てられるが、PCIeドメインのアドレス空間は、同一の64ビットアドレス空間であってよい。結果として、パケットがNTBを横断するときに発生する2つのアドレス変換が存在し、1つは、元々発信元ドメイン内のNTBのインターフェースのMAであったパケットのMAを変換し、さらにもう1つの変換は、RIDを変換する。これらの変換メカニズムのいずれも、以下に説明される。
図2は、MAアドレス変換のための実施例を示している。アドレス指定およびアクセス可能な利用可能なデバイスが存在することをPCIeシステムに示すために、デバイスは、列挙フェーズ中にそれに割り振られたアドレスを有するBARで構成されている。このレジスタは、NTBの向こう側にアドレス指定されたパケットが存在するときに物理的に書き込まれるものである。PCIeドメイン100は、PCIeドメイン100内のリンクプロセッサ101(図2には図示せず)によって割り当てられたMA“A1”を有するノードA 118を含む。NTB 150を介してPCIeドメイン100に接続されたPCIeドメイン200は、PCIeドメイン200内のリンクプロセッサ201(図2には図示せず)によって割り当てられたメモリアドレス B2を有するノードB 218を含む。
ドメイン内の要求ノードが、別のドメイン内のアクセスされるノードにアクセスできるようにするために、アクセスされるノードと同一の長さを有するアドレスが、リクエスタノードのドメイン内のNTB 150において利用可能である必要がある。例えば、PCIeドメイン200内のノードB 218からPCIeドメイン100内のノードA 118(アドレスA1)にアクセスするためには、A1と同一の長さを有するPCIeドメイン200内のアドレスA2が、NTB 150におけるPCIeドメイン100内のアドレスA1にマッピング可能であるべきである。PCIeドメイン200内のノードは、A1に変換され、かつNTB 150によってノードA 118に転送されることとなるアドレスA2にデータパケットを送信することによって、ノードA 118にアクセスしてもよい。同様に、PCIeドメイン100からPCIeドメイン200内のノードB218(アドレスB2)にアクセスするために、PCIeドメイン100内のB2と同一の長さを有するアドレスB1が、PCIeドメイン200内のアドレスB2にマッピングされる。MAは、ベースアドレスレジスタ(BAR)を介して実装される。
具体的には、実施形態として、NTB 150は、PCIeドメイン100内のノードA 118の実アドレスA1に関連するA2のためのアドレス変換テーブルに変換エントリを保持する。もし、NTB 150のA2宛のパケットが受信された場合、パケット内の宛先アドレスは、アドレス変換テーブル内のA2に関連したアドレスであるA1に置き換えられる。同様に、NTB 150はまた、PCIeドメイン200内のノードB 218の実アドレスB2に関連したB1のためのアドレス変換テーブル内の変換エントリを保持する。もし、NTB 150のB1宛のパケットが受信された場合、パケット内の宛先アドレスは、アドレス変換テーブル内のB1に関連したアドレスであるアドレスB2に置き換えられる。アドレステーブルとアドレステーブルは、同一テーブルの異なる部分であってもよい。
上述したように、応答または完了パケットは、データパケット内に検出されるRIDに基づいてリクエスタにルートバックされる。従って、もしドメインが横断される場合、RIDは、応答/完了パケットが適切なNTBに、かつ最終的には元のリクエスタノードにルートバックされることが確実となるように変換される必要がある。RIDアドレスの変換は、MAとは異なる方法で実行される。図3に示される実施例において、PCIeドメイン100内のノードA 118のRIDはA:B:Cであり、一方、PCIeドメイン200の側のNTBのインターフェースのRIDはU:V:Wである。ノードB 218宛のNTB 150にデータパケットが到達したとき、ノードA 118からリクエスタパケット内のRIDが、NTB 150に維持されるRID変換テーブルに挿入される。ノードA 118のRIDは、RID変換テーブル内のインデックスXと関連している。データパケットのための変換されたRIDは、NTBの8ビットポートアドレスと、RID変換テーブルからのインデックスXを連結することによって作成される。すなわち、PCIeドメイン200に転送されるデータパケットのための変換されたRIDアドレスはU:Xであり、ここで、Xは8ビット長である。いくつかの実施形態において、Xは5ビット長であり、かつB:D:Fアドレスの真ん中5ビットの部分(すなわち、“D”の部分のみ)とのみ置き換えられ、すなわち、この場合、新たなアドレスはU:X:Cとなり、ここで、Cは元のRIDのファンクションの値である。
一旦、パケットがPCIeドメイン200内の宛先ノードB 218に到着し、かつノードB 218によって処理されると、応答パケットが作成され、かつU:X(または、上述で提供された代替的な実施例におけるU:X:C)に宛てられ、BUSアドレスUがNTB 150に属するとき、パケットをNTB 150に導く。一旦、パケットがNTB 150によって受信されると、NTB 150はRID変換テーブルを検索し、かつRID変換テーブルに維持されるXとA:B:Cとの間の関係に基づいてアドレスU:Xを変換してA:B:Cに戻す。次いで、NTB 150は、RID A:B:Cをターゲットにすることによって、ノードA 118にパケットを転送する。
別のポリシーに基づいて、PCIeドメイン100、200、および300は、リモートドメインからのプロセッサが所定のドメイン内のリソースにアクセスできるようにしてもよい。ポリシーは、リソースの可用性、またはセントラルポリシーに基づくリソースの一部量の強制的な共有等に基づいてもよい。この目的のために、PCIeドメイン100、200、および300のリンクプロセッサは、リソース記述子テーブル105、205、および305をそれぞれ構成し、かつそのメモリ内にそれを記憶する。リソース記述子テーブルは、共有される利用可能なリソースについての情報を含んでいる。リソース記述子テーブル205、305は、リンクプロセッサ101、201、301から受信したテーブルをマージすることによってグローバルリソース可用性テーブル110を構成し、かつリモートドメイン内のプロセッサにリソースを割り当てるためのこの集約データを使用する管理プロセッサ101に転送される。管理プロセッサ101は、割り当てられたリソースと要求プロセッサとの間のトラフィックが、リソースと要求プロセッサとの間の通信を可能となるよう流れることとなるインタードメインNTBをプログラムするために、グローバルリソース可用性テーブル110から必要な情報を取得する。
図1および4に示されるように、ステップ401において、PCIeドメイン100のためのリンクプロセッサ101は、インタードメインNTB 150を介して、PCIeドメイン200内のリンクプロセッサ201と通信チャネルを確立する。1つの実現形態において、インタードメインNTB 150内に存在するドアベルレジスタ(単数または複数)と通信チャネルが確立されてもよい。ドアベルレジスタは、非透過的ブリッジの一方の側から他方の側への割り込みを送信するために使用される。同様に、別の通信チャネルが、リンクプロセッサ101と、PCIeドメイン300内のリンクプロセッサ301との間に確立されてもよい。
一旦、制御メッセージングのための通信チャネルが確立されると、リンクプロセッサ101、201、301は、管理プロセッサとなるそれらから1つを選択する選択アルゴリズムを実行してもよい。管理プロセッサは、現在の実施形態におけるPCIeドメイン100、PCIeドメイン200、およびPCIeドメイン300を意味する複数のドメインの全体の相互接続のための中央コントローラである。この選択アルゴリズムは、例えば、(1)PCIeネットワーク全体におけるすべてのノードに対して最小平均距離(すなわち、ホップ数またはレイテンシ)を有するリンクプロセッサ、(2)少なくとも利用されるリンクプロセッサ、または(3)リモートドメインと共有されるリソースの最大量を有するリンクプロセッサを選択してもよい。例示の目的で、この実施形態において、リンクプロセッサ101が、上述のアルゴリズムの1つを使用して、図1に示される複数のドメインの相互接続の管理プロセッサとして選択される。この実施例において、管理プロセッサは、リンクプロセッサの1つにおいて実行されている論理的なエンティティであり、管理プロセッサは、例えば、接続されたドメインのリンクプロセッサに接続されたプロセッサであるリンクプロセッサのいずれかから物理的に独立しているスタンドアロンシステムであってもよい。
この管理プロセッサ101、すなわち図示された実施形態におけるリンクプロセッサ101は、ドメイン内のリソースを、別のドメイン内のノードに割り当てることを担う。リソースは、TX/RXキューを介したネットワークリンクの一部または全体、ディスク/ソリッドステートドライブ(SSD)パーティションまたはディスク全体あるいは複数のディスクの形式のストレージボリューム、拡張メモリの一部量等であってもよい。管理プロセッサ101は、複数のドメインを横断したリソースアクセスを可能にするためインタードメインNTB(単数または複数)がどのようにプログラムされるかを制御することも担う。例えば、インタードメインNTBにおけるBARのサイズ、およびインタードメインNTBのアドレス変換テーブルエントリにロードされるアドレス値である。アドレス変換テーブルにロードされる正しい値は、パケットがNTBを介して通過し、かつリモートドメイン内の正しいデバイスに到達できるようにする。
ステップ403において、ドメイン100、200、300のリンクプロセッサ101、201、301は、管理プロセッサ101とリソース情報を共有する。共有される各リソースについての情報は、少なくとも以下の情報、すなわち、(1)ドメインID、(2)リソースのタイプ、(3)リソースID、(4)ベースアドレスおよびメモリアドレスのサイズ、(5)量情報、(6)追加情報の一部を含む。リソースのタイプは、ネットワーキング、ストレージ、メモリ、グラフィックスプロセッシングユニット(GPU)、フィールド・プログラマブル・ゲート・アレイ(FPGA)等であってもよい。あるいは、リソースのタイプは、より具体的な情報、例えば、メイク、モデル、またはファンクションについての情報を含んでもよく、それは単にリソースのタイプについてではなく、どのドライバをリモートプロセッサ上にロードするかを識別するために使用されてもよい。デバイス内のリソースIDは、デバイスタイプに応じて、それは仮想関数、チャネル、キュー等であってよい。デバイス内に利用可能な複数のリソース(例えば、ネットワーク帯域幅のフラクションまたはトラフィッククラスまたはハードディスクのパーティション等)が存在する場合、かつこれらは一般的に、キュー、チャネルまたは仮想関数によって表される。リソースIDは、デバイス内の特定のリソースの正確なアドレス(すなわち、ベースアドレスからのオフセット)を計算するために使用されてもよい。
追加情報は、要求され得るリソースの粒度を含んでもよく、その粒度情報は、要求に対してどれくらいの量のリソースを戻すかを定義してもよい。追加情報は、必要な期間更新を含んでもよい。期間更新は、更新要求が、設定された期間内に到達しなかった場合に、自動的にリソースを解放するために使用されてもよい。追加情報は、排他的、共有、静的、または動的であり得る使用インジケータを含んでもよい。排他的は、リソースが、シングルプロセッサによってのみ使用される状況を表しており、一方で共有は、リソースアクセスが複数のプロセッサ間で多重化されることを意味してもよい。静的は、リソースがプロセッサに静的に割り当てられ、かつ常にシングルプロセッサの占有にある場合を表しており、一方で動的は、それを使用したいときにリソースはプロセッサで利用可能であるが、プロセッサがそれを使用しないときには、リソースは一時的に別のプロセッサで利用できるようにされてもよいことを意味している。
利用可能なリソースの情報は、メッセージパッシングプロトコルを介して、またはデータが書き込まれる管理プロセッサのメモリ内に、インタードメインNTBのドアベルを介して、またはダイレクトメモリアクセス(DMA)メカニズムを介してメッセージキューを作成することによって、構造化されたリソース記述子テーブル105、205、305として、選択された管理プロセッサ101に送信されてもよい。管理プロセッサが、PCIeドメイン100のリンクプロセッサ101でもある図1に示される管理プロセッサ101のような特定のドメインのリンクプロセッサとなる場合、管理プロセッサ101それ自体が、PCIeドメイン100のリソース情報を取得することが可能である。
ステップ405において、管理プロセッサ101は、相互接続されているドメイン100、200、300のリンクプロセッサ101、201、301から受信されたリソース記述子テーブル105、205、305に基づいてグローバルリソース可用性テーブル110またはデータベースを構成する。表1は、管理プロセッサ101によって構成されたメモリ102内に記憶された例示的なグローバルリソース可用性テーブル110を示す。
Figure 0006231679
管理プロセッサ101は、ドメイン100、200、300の1つから到達するリソース要求に適切なリソースを割り振ってもよい。表1に記載されている情報は、単なる一例である。リンクプロセッサ(101、201、301)から管理プロセッサ101に送信される利用可能リソースについての情報は、表1に示されるよりも多くの情報を含んでもよく、または表1に記載された情報の一部のみを含んでもよい。
管理プロセッサ101は、最終的にはリンクプロセッサ201と、別のドメインにある割り振られたリソースとの間のクロスドメインリソースアクセスを可能にするインタードメインNTB(単数または複数)をプログラムすることに関与するリンクプロセッサと連携する。
ステップ407において、実施例として、計算エンティティ(すなわち、仮想マシン/コンテナ/アプリケーション/タスク/ジョブ等)がPCIeドメイン200内のワーカープロセッサ212上に生成されるとき、要求のセットは、各リソースタイプ(すなわち、ネットワーキング、ストレージ、リモートメモリ、GPU、FPGA等)のどれだけが、所定の計算エンティティに割り振られる必要があるのかを記述するものと関連付けられる。要求のセットは、要求をPCIeドメイン200内の利用可能リソースとマッチングさせようとするPCIeドメイン200のリンクプロセッサ201に伝達される。もし、例えばPCIeドメイン200内のリソースと共に供されえない1つの要求が存在する場合、リンクプロセッサ201は、供されていない必要なリソースを要求するために、リソース要求を管理プロセッサ101に送信する。
ステップ409において、リソース要求を受信した後、管理プロセッサ101は、グローバルリソース可用性(すなわち、表1)において維持されるリソース情報を検索し、かつリソース要求によって搬送された要求されるタイプおよび要求される量情報に基づいて1つ以上のリソースを割り振る。要求されるタイプ情報は、所望のリソースタイプ(例えば、ネットワーキング、ストレージ、遠隔メモリ、GPU、FPGA等)またはメイク、モデル、若しくはファンクションについての特定の情報を含んでもよい。要求されるタイプ情報が所望のリソースタイプを含む場合、管理プロセッサは、要求されたものと同一のタイプのリソースを検索してもよい。要求されるタイプ情報がメイク、モデル、またはファンクションについての情報を含む状況においては、ポリシーによって決まる。管理プロセッサ101は、同一のメイク、モデル、またはファンクションのリソースを検索するのみでもよい。または、管理プロセッサ101は、まず最初に同一のメイク、モデル、またはファンクションのリソースを検索してもよく、次いで、もしこれが検出されない場合は、管理プロセッサは、同一のタイプの他のリソースを検索し続けてもよく、あるいは、管理プロセッサ101は、メイク、モデル、またはファンクション情報についての情報に対して特別考慮することなく同一タイプのリソースを検索してもよい。
リソース要求の量の要件を満たすために、管理プロセッサ101は、少なくとも残りのリソース(例えば、ネットワーク帯域幅、ストレージ容量等)の量が多いリソースを検索するのみでもよい。要求されるタイプおよび要求される量について考慮することに加えて、管理プロセッサ101は、リソース要求に対して適切なリソースを検索することを目的とするリソース割り振りアルゴリズムをさらに実行してもよい。リソース割り振りアルゴリズムは、ネットワークの異なる規則および条件並びにグローバルリソース可用性テーブルに維持されたリソースに基づいてもよい。例えば、割り振りアルゴリズムは、レイテンシまたはホップ数または横断されるNTBの数、ネットワーク負荷(例えば、一定レベル以下、例えば50%以下で利用されているパス、または10Gbpsのような利用可能な帯域幅の所定の量を有するパスを介してアクセス可能なリソースを選択する)、リソース利用(例えば、10GのNICがより多くの利用可能な帯域幅を有する1つを選択する場合に、例えば、利用が低レベルであってもリソースが同一タイプであるデバイスを優先する)等の点で最も近いリソースを選択してもよい。
ステップ411において、一旦、管理プロセッサ101が、リソース要求のためにリソースを割り振ると、それはNTB(単数または複数)をプログラミングするためのアドレス情報(すなわち、ベースアドレスおよびアドレス長)を取得する。管理プロセッサ101は、ワーカープロセッサが管理プロセッサ101によって割り振られたこれらのリソースにアクセスできるようNTBをプログラムするために、アドレス情報で作用されるインタードメインNTBをプログラムすることができるリンクプロセッサに指示する。作用されるNTBは、PCIeドメイン200内のワーカープロセッサ212と、割り振られたリソースとの間のトラフィックが流れることとなるNTBを意味する。例えば、PCIeドメイン300における拡張メモリ(EM)が、PCIeドメイン200内のワーカープロセッサ212からのリソース要求に役立つために、割り振られてもよい。ワーカープロセッサ212がPCIeドメイン300にあるEMにアクセスできるようにするために、PCIeドメイン100およびPCIeドメイン200に接続しているNTB 150と、PCIeドメイン100およびPCIeドメイン300に接続しているNTB 250は、プログラムされる必要があるNTBである。
NTBの側のリンクプロセッサは、NTBをプログラムすることができるであろう。NTB 150は、管理プロセッサ101(リンクプロセッサ)、またはNTBの他の側のプロセッサ201によってプログラムされてもよい。NTB 250は、管理プロセッサ101またはNTB 250の他の側のリンクプロセッサ301によってプログラムされてもよい。従って、管理プロセッサは、それ自体によってNTB 150およびNTB 250をプログラムしてもよく、またはリンクプロセッサ201にNTB 150をプログラムするように、かつ、リンクプロセッサ301にNTB 250をプログラムするように指示してもよい。グローバルリソース可用性テーブルからのアドレス情報(すなわち、ベースアドレスおよびアドレス長)を用いて、NTBおよびNTBは、ワーカープロセッサ212が、PCIeドメイン300におけるEMにアクセスすることができるようにプログラムされてもよい。
ステップ413において、一旦、NTB 150、250がプログラムされると、管理プロセッサ101は、結果的に要求プロセッサに通知することとなる必要な情報を有する要求プロセッサのドメイン内のリンクプロセッサ201に通知し、かつ要求プロセッサ(ワーカープロセッサ212)によって必要とされる必要な情報を提供する。必要な情報は、グローバル可用性テーブルから割り振られたリソースのタイプ、デバイスのベースアドレス(デバイスの要求プロセッサのドメイン内にマッピングされたローカルアドレス)、および/またはリソースIDを含んでもよい。割り振られたリソースのタイプは、例えば、Intel 82599またはBroadcom BCMxyzであってもよく、本実施形態では、EMである。割り振られたリソースのタイプは、要求プロセッサに適切なドライバをロードするように促してもよい。リソースIDは、どのリソースのキュー/チャネル/VFがアクセス可能であるかを識別してもよい。
一旦、計算エンティティがそのジョブを完了すると、リンクプロセッサに通知され、結果的に、管理プロセッサ101に通知される。管理プロセッサ101は、プログラムされたNTBをクリアにすることを含む、以前に割り振られたリモートリソースを解放するために必要な措置をとる。
本発明の実施形態は、複数のPCIeドメインの相互接続全体に対する利用可能リソースについての情報を収集し、かつPCIeドメイン内のリソースを別のPCIeドメイン内のノードに割り当てるために管理プロセッサを使用する。複数のPCIeドメインのリソースは、効率的に利用されてもよい。
当業者は、本明細書の実施形態で説明した実施例との組み合わせで、ユニットおよびアルゴリズムステップは、電子ハードウェア、またはコンピュータソフトウェアと電子ハードウェアの組み合わせによって実装されることができることを理解すべきである。機能がハードウェアまたはソフトウェアによって実行されるか否かは、技術的解決策の特定のアプリケーションと設計制約条件に依存する。当業者は、各特定のアプリケーションについて説明した機能を実装するための別の方法を使用することができ、かつ説明される機能を実装するための別の方法は、本出願の範囲外とみなされるべきではない。
ソフトウェア機能ユニットの形式で実装され、かつ別個の製品として販売されまたは使用されるとき、機能は、コンピュータ読み取り可能な記憶媒体に格納されてもよい。このような理解に基づいて、本質的に、本願の技術的解決策、または従来技術に寄与する部分、または技術的解決策の部分は、ソフトウェア製品の形式で実装されてもよい。コンピュータソフトウェア製品は、コンピュータデバイス、またはより具体的には、メモリと一緒のコンピュータデバイス(コンピューティングデバイスは、パーソナルコンピュータ、サーバ、またはネットワークデバイス等であってもよい)内の1つ以上のプロセッサに、本願の各実施形態で説明した方法のステップのすべてまたは一部を実行するように指示する命令または複数の命令を含んでもよい。記憶媒体は、プログラムコードを記憶することができる、Uディスク、リムーバブルハードディスク、読出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク、または光ディスクのような任意の媒体を含む。
100 PCIeドメイン
101 管理/リンクプロセッサ
102 メモリ
103 PCIeファブリック
105 リソース記述子テーブル
110 グローバルリソース可用性テーブル
111 ワーカープロセッサ
112 ワーカープロセッサ
118 ノードA
119 ワーカープロセッサ
121 NTB
122 NTB
129 TB
131 PCIe I/Oデバイス
132 PCIe I/Oデバイス
139 PCIe I/Oデバイス
150 NTB
200 PCIeドメイン
201 リンクプロセッサ
205 リソース記述子テーブル
212 ワーカープロセッサ
218 ノードB
250 NTB
300 PCIeドメイン
301 リンクプロセッサ
305 リソース記述子テーブル

Claims (24)

  1. リンクプロセッサによってそれぞれ管理され、かつインタードメイン非透過的ブリッジ(NTB)を介して1つ以上の他のドメインに接続された複数のPCIeドメインを含む周辺コンポーネント相互接続エクスプレス(PCIe)ネットワーク内のインタードメインリソース割り振りを管理するための装置であって、
    メモリと、
    前記メモリと連結された管理プロセッサであって、前記管理プロセッサは、
    各ドメインのリンクプロセッサによって報告された前記ドメインの利用可能リソースについての情報を取得し、利用可能リソースについての前記情報は、報告された各利用可能リソースのメモリアドレスを含み、
    前記メモリ内に、前記利用可能リソースについての前記取得された情報を記憶し、
    前記ドメインの1つの要求プロセッサからリソース要求を受信し、
    前記リソース要求に応答して、前記要求プロセッサに、前記利用可能リソースのリソースを割り振り、前記割り振られたリソースは、前記要求プロセッサを有する前記ドメインとは異なるドメインに存在し、
    前記メモリから、前記割り振られたリソースのメモリアドレス情報を取得し、
    前記要求プロセッサと前記割り振られたリソースとの間のクロスドメインリソースアクセスを可能にするために、前記割り振られたリソースと前記要求プロセッサとの間のトラフィックが、前記割り振られたリソースの前記メモリアドレス情報に基づいて流れることとなる1つ以上のインタードメインNTBをプログラムするよう1つ以上のリンクプロセッサに指示する
    ように構成された管理プロセッサと
    を備える装置。
  2. 報告された前記利用可能リソースについての前記情報は、各リソースのタイプについての情報を含む、請求項1に記載の装置。
  3. タイプについての前記情報は、プロセッサのためにロードするドライバを識別するための利用可能リソースのメイク、モデル、またはファンクションについての情報を含む、請求項2に記載の装置。
  4. 前記管理プロセッサは、前記要求プロセッサにロードされるドライバを識別するために、前記要求プロセッサに、前記メモリから取得された前記割り振られたリソースの前記タイプについての情報を送信するようにさらに構成される、請求項2または3に記載の装置。
  5. 各利用可能リソースの前記メモリアドレスは、ベースアドレスと、前記メモリアドレスのサイズを含む、請求項1〜4のいずれか一項に記載の装置。
  6. 報告された前記利用可能リソースについての前記情報は、各利用可能リソースの量情報を含み、該量情報は、ネットワーク帯域幅およびストレージ容量を含む、請求項1〜5のいずれか一項に記載の装置。
  7. 前記管理プロセッサは、前記リソース要求に搬送される要求されるタイプおよび要求量についての情報に基づいて、前記メモリ内に記憶された前記利用可能リソースについての前記情報を検索することによって、前記リソースを割り振る、請求項1〜6のいずれか一項に記載の装置。
  8. 前記管理プロセッサは、レイテンシ、ホップ数、または横断されるNTBの数の点で最も近いリソースを判定するための割り振りアルゴリズムをさらに実行することによって、前記リソースを割り振る、請求項7に記載の装置。
  9. リンクプロセッサによってそれぞれ管理され、かつインタードメイン非透過的ブリッジ(NTB)を介して1つ以上の他のドメインに接続された複数のPCIeドメインを含む周辺コンポーネント相互接続エクスプレス(PCIe)ネットワーク内のインタードメインリソース割り振りを管理するための方法であって、前記方法は、
    各ドメインのリンクプロセッサによって報告された前記ドメインの利用可能リソースについての情報を取得するステップであって、利用可能リソースについての前記情報は、報告された各利用可能リソースのメモリアドレスを含む、ステップと、
    メモリ内に、前記利用可能リソースについての前記取得された情報を記憶するステップと、
    前記ドメインの1つの要求プロセッサからリソース要求を受信するステップと、
    前記リソース要求に応答して、前記要求プロセッサに、前記利用可能リソースのリソースを割り振るステップであって、前記割り振られたリソースは、前記要求プロセッサを有する前記ドメインとは異なる別のドメインに存在する、ステップと、
    前記メモリから、前記割り振られたリソースのメモリアドレス情報を取得するステップと、
    前記要求プロセッサと前記割り振られたリソースとの間のクロスドメインリソースアクセスを可能にするために、前記割り振られたリソースと前記要求プロセッサとの間のトラフィックが、前記割り振られたリソースの前記メモリアドレス情報に基づいて流れることとなる1つ以上のインタードメインNTBをプログラムするよう1つ以上のリンクプロセッサに指示するステップと
    を含む方法。
  10. 報告された前記利用可能リソースについての前記情報は、各リソースのタイプについての情報を含む、請求項9に記載の方法。
  11. タイプについての前記情報は、プロセッサのためにロードするドライバを識別するための利用可能リソースのメイク、モデル、またはファンクションについての情報を含む、請求項10に記載の方法。
  12. 前記要求プロセッサにロードされるドライバを識別するために、前記要求プロセッサに、前記メモリから取得された前記割り振られたリソースの前記タイプについての情報を送信するステップをさらに含む、請求項10または11に記載の方法。
  13. 各利用可能リソースの前記メモリアドレスは、ベースアドレスと、前記メモリアドレスのサイズを含む、請求項9〜12のいずれか一項に記載の方法。
  14. 報告された前記利用可能リソースについての前記情報は、各利用可能リソースの量情報を含み、該量情報は、ネットワーク帯域幅およびストレージ容量を含む、請求項9〜13のいずれか一項に記載の方法。
  15. 前記リソースは、前記リソース要求に搬送される要求されるタイプおよび要求量についての情報に基づいて、前記メモリ内に記憶された前記利用可能リソースについての前記情報を検索することによって割り振られる、請求項9〜14のいずれか一項に記載の方法。
  16. 前記リソースは、レイテンシ、ホップ数、または横断されるNTBの数の点で最も近いリソースを判定するための割り振りアルゴリズムをさらに実行することによって割り振られる、請求項15に記載の方法。
  17. コンピュータに請求項9〜16のいずれか一項に記載の方法を実行させるプログラム。
  18. リンクプロセッサによってそれぞれ管理され、かつ非透過的ブリッジ(NTB)を介して1つ以上の他のドメインに接続された複数のPCIeドメインを含む周辺コンポーネント相互接続エクスプレス(PCIe)ネットワーク内の装置であって、
    共有される利用可能リソースについての情報を含むリソース記述子テーブルを記憶するように構成されたメモリと、
    前記メモリと連結されたリンクプロセッサとを備えていて、前記リンクプロセッサは、
    前記リンクプロセッサによって制御されるドメインの利用可能リソースについての情報を、前記リンクプロセッサによって制御されるドメインに接続されている他のドメイン内の管理プロセッサに送信し、前記ドメインの利用可能リソースについての情報は、各利用可能リソースのメモリアドレス、特にベースアドレスおよび前記メモリアドレスのサイズを含み、
    リソース要求を前記他のドメインの管理プロセッサに送信し、
    前記管理プロセッサから必要な情報を有する通知を受信し、前記必要な情報は、グローバルリソース可用性テーブルから割り振られたリソースのタイプ、前記リンクプロセッサによって制御されるドメイン内にマッピングされたローカルアドレスであるデバイスのベースアドレス、および/またはリソースIDを含む、
    ように構成されている、
    装置。
  19. 前記リンクプロセッサは、複数のPCIeドメインの全体の相互接続のための中央コントローラである管理プロセッサになるように、それぞれドメインを管理する複数のリンクプロセッサのうちの1つを選択する選択アルゴリズムを実行するようにさらに構成されている、請求項18に記載の装置。
  20. 前記リンクプロセッサは、前記リンクプロセッサによって制御されるドメイン内のワーカープロセッサ上に生成される計算器エンティティと関連付けられる要求のセットを受信し、前記要求を前記リンクプロセッサによって制御されるドメイン内の利用可能リソースとマッチングさせ、もし前記リンクプロセッサによって制御されるドメイン内のリソースと共に供されえない1つの要求が存在する場合、リソース要求を送信するようにさらに構成されている、請求項18に記載の装置。
  21. リンクプロセッサによってそれぞれ管理され、かつ非透過的ブリッジ(NTB)を介して1つ以上の他のドメインに接続された複数のPCIeドメインを含む周辺コンポーネント相互接続エクスプレス(PCIe)ネットワーク内のインタードメインリソース割り振りを管理するための方法であって、前記方法は、
    リンクプロセッサによって制御されるドメインの利用可能リソースについての情報を、前記リンクプロセッサによって制御されるドメインに接続されている他のドメイン内の管理プロセッサに送信するステップであって、前記ドメインの利用可能リソースについての情報は、各利用可能リソースのメモリアドレスを含む、ステップと、
    リソース要求を前記管理プロセッサに送信するステップと、
    前記管理プロセッサから必要な情報を有する通知を受信するステップであって、前記必要な情報は、グローバルリソース可用性テーブルから割り振られたリソースのタイプ、前記リンクプロセッサによって制御されるドメイン内にマッピングされたローカルアドレスであるデバイスのベースアドレス、および/またはリソースIDを含む、ステップと
    を含む方法。
  22. 前記方法は、複数のPCIeドメインの全体の相互接続のための中央コントローラである管理プロセッサになるように、それぞれドメインを管理する複数のリンクプロセッサのうちの1つを選択する選択アルゴリズムを実行するステップをさらに含む、請求項21に記載の方法。
  23. 前記方法は、前記リンクプロセッサによって制御されるドメイン内のワーカープロセッサ上に生成される計算器エンティティと関連付けられる要求のセットを受信するステップと、前記要求を前記リンクプロセッサによって制御されるドメイン内の利用可能リソースとマッチングさせるステップと、もし前記リンクプロセッサによって制御されるドメイン内のリソースと共に供されえない1つの要求が存在する場合、リソース要求を送信するステップとをさらに含む、請求項21に記載の方法。
  24. コンピュータに請求項21〜23のいずれか一項に記載の方法を実行させるプログラム。
JP2016528329A 2013-07-22 2014-07-22 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理 Active JP6231679B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361857031P 2013-07-22 2013-07-22
US61/857,031 2013-07-22
US14/315,099 2014-06-25
US14/315,099 US9672167B2 (en) 2013-07-22 2014-06-25 Resource management for peripheral component interconnect-express domains
PCT/CN2014/082683 WO2015010597A1 (en) 2013-07-22 2014-07-22 Resource management for peripheral component interconnect-express domains

Publications (2)

Publication Number Publication Date
JP2016530618A JP2016530618A (ja) 2016-09-29
JP6231679B2 true JP6231679B2 (ja) 2017-11-15

Family

ID=52344555

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016528329A Active JP6231679B2 (ja) 2013-07-22 2014-07-22 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理

Country Status (9)

Country Link
US (1) US9672167B2 (ja)
EP (2) EP3025240B1 (ja)
JP (1) JP6231679B2 (ja)
KR (1) KR101853748B1 (ja)
CN (2) CN109032974B (ja)
AU (1) AU2014295583B2 (ja)
RU (1) RU2640648C2 (ja)
WO (1) WO2015010597A1 (ja)
ZA (1) ZA201600914B (ja)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195552B2 (en) * 2014-02-05 2015-11-24 Futurewei Technologies, Inc. Per-function downstream port containment
US20150261709A1 (en) * 2014-03-14 2015-09-17 Emilio Billi Peripheral component interconnect express (pcie) distributed non- transparent bridging designed for scalability,networking and io sharing enabling the creation of complex architectures.
JP6548459B2 (ja) * 2015-05-29 2019-07-24 キヤノン株式会社 情報処理装置
US9858228B2 (en) 2015-08-10 2018-01-02 Futurewei Technologies, Inc. Dynamic assignment of groups of resources in a peripheral component interconnect express network
WO2017062479A1 (en) * 2015-10-06 2017-04-13 Xilinx, Inc. Multistage boot image loading and configuration of programmable logic devices
TWI597953B (zh) 2015-11-25 2017-09-01 財團法人工業技術研究院 具故障轉移能力的快速周邊元件互連網路系統與操作方法
WO2017092015A1 (zh) 2015-12-03 2017-06-08 华为技术有限公司 一种阵列控制器、固态硬盘和控制固态硬盘写数据的方法
US10565147B2 (en) * 2016-03-11 2020-02-18 Panasonic Intellectual Property Managment Co., Ltd. Information processing apparatus for data transfer between a system host and a local device
WO2017154942A1 (ja) * 2016-03-11 2017-09-14 パナソニックIpマネジメント株式会社 情報処理装置
CN105827539A (zh) * 2016-03-30 2016-08-03 乐视控股(北京)有限公司 一种资源分配的方法和装置
US10082957B2 (en) * 2016-07-20 2018-09-25 Western Digital Technologies, Inc. Dual-ported PCI express-based storage cartridge including single-ported storage controllers
US11880326B2 (en) 2016-08-12 2024-01-23 Liqid Inc. Emulated telemetry interfaces for computing units
US11294839B2 (en) 2016-08-12 2022-04-05 Liqid Inc. Emulated telemetry interfaces for fabric-coupled computing units
WO2018031937A1 (en) * 2016-08-12 2018-02-15 Liqid Inc. Disaggregated fabric-switched computing platform
US10277677B2 (en) * 2016-09-12 2019-04-30 Intel Corporation Mechanism for disaggregated storage class memory over fabric
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10250572B2 (en) 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US10282330B2 (en) 2016-09-29 2019-05-07 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US10642492B2 (en) 2016-09-30 2020-05-05 Amazon Technologies, Inc. Controlling access to previously-stored logic in a reconfigurable logic device
US11115293B2 (en) * 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US10180924B2 (en) * 2017-05-08 2019-01-15 Liqid Inc. Peer-to-peer communication for graphics processing units
US10536329B2 (en) * 2017-06-01 2020-01-14 Dell Products L.P. Assisted configuration of data center infrastructure
US11249808B2 (en) * 2017-08-22 2022-02-15 Intel Corporation Connecting accelerator resources using a switch
FR3076142A1 (fr) * 2017-12-21 2019-06-28 Bull Sas Procede et serveur d'attribution d'adresses topologiques a des commutateurs de reseau, programme d'ordinateur et grappe de serveurs correspondants
US10417168B1 (en) 2018-03-14 2019-09-17 International Business Machines Corporation Combining switch slot resources
US10728172B2 (en) 2018-03-28 2020-07-28 Quanta Computer Inc. Method and system for allocating system resources
US11315013B2 (en) * 2018-04-23 2022-04-26 EMC IP Holding Company LLC Implementing parameter server in networking infrastructure for high-performance computing
EP3881191A1 (en) * 2018-12-28 2021-09-22 Huawei Technologies Co., Ltd. Apparatus and method for locking pcie network having non-transparent bridging
US10540185B1 (en) 2019-01-11 2020-01-21 Liqid Inc. Software deployment in disaggregated computing platforms
US11392525B2 (en) 2019-02-01 2022-07-19 Liqid Inc. Specialized device instantiation onto PCIe fabrics
US11954326B2 (en) 2019-02-01 2024-04-09 Liqid Inc. Memory device instantiation onto communication fabrics
US10585827B1 (en) 2019-02-05 2020-03-10 Liqid Inc. PCIe fabric enabled peer-to-peer communications
US11973650B2 (en) 2019-04-25 2024-04-30 Liqid Inc. Multi-protocol communication fabric control
US11106616B1 (en) * 2019-11-21 2021-08-31 Xilinx, Inc. Virtualized peripheral component interconnect express (PCIe) device
US11822964B2 (en) * 2020-06-03 2023-11-21 Baidu Usa Llc Data protection with static resource partition for data processing accelerators
US11442776B2 (en) 2020-12-11 2022-09-13 Liqid Inc. Execution job compute unit composition in computing clusters
CN114968591A (zh) * 2022-06-09 2022-08-30 阿里巴巴(中国)有限公司 资源共享系统、方法、电子设备、存储介质和程序产品

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005018325A (ja) * 2003-06-25 2005-01-20 Hitachi Ltd 半導体集積回路
JP3944176B2 (ja) * 2004-02-20 2007-07-11 株式会社東芝 探索要求送信装置およびプログラム
US7340578B1 (en) * 2004-04-28 2008-03-04 Sun Microsystems, Inc. Method and apparatus for maintaining an accurate inventory of storage capacity in a clustered data processing system
JP2006318012A (ja) * 2005-05-10 2006-11-24 Hitachi Ltd ディスク制御システム
TW201015336A (en) 2008-10-03 2010-04-16 Accusys Technology Ltd Shared-storage bus switch
CN101729356A (zh) * 2008-10-16 2010-06-09 世仰科技股份有限公司 共享储存之汇流排交换器
US7792916B2 (en) * 2008-10-20 2010-09-07 International Business Machines Corporation Management of cluster-wide resources with shared variables
US8595343B2 (en) * 2008-11-14 2013-11-26 Dell Products, Lp System and method for sharing storage resources
CN201369046Y (zh) 2009-03-27 2009-12-23 福建星网锐捷网络有限公司 快速外部设备互联总线数据通信系统
JP5074457B2 (ja) * 2009-06-04 2012-11-14 株式会社日立製作所 計算機システム、スイッチ切り替え方法及びpciスイッチ
US8521915B2 (en) 2009-08-18 2013-08-27 Fusion-Io, Inc. Communicating between host computers and peripheral resources in an input/output (I/O) virtualization system
US8463934B2 (en) 2009-11-05 2013-06-11 Rj Intellectual Properties, Llc Unified system area network and switch
US8732349B2 (en) * 2009-11-18 2014-05-20 Fusion-Io, Inc. Assignment of resources in an input/output (I/O) virtualization system
US20110238909A1 (en) * 2010-03-29 2011-09-29 Pankaj Kumar Multicasting Write Requests To Multiple Storage Controllers
WO2011141956A1 (en) 2010-05-11 2011-11-17 Hitachi, Ltd. Storage device and method of controlling storage device
US8589613B2 (en) 2010-06-02 2013-11-19 Intel Corporation Method and system to improve the operations of an integrated non-transparent bridge device
US8429325B1 (en) 2010-08-06 2013-04-23 Integrated Device Technology Inc. PCI express switch and method for multi-port non-transparent switching
JP5555903B2 (ja) 2010-09-27 2014-07-23 株式会社日立製作所 I/oアダプタ制御方法、計算機及び仮想計算機生成方法
EP2515241B1 (en) 2011-04-21 2016-05-25 RJ Intellectual Properties, LLC Unified system area network and switch
WO2012157103A1 (ja) 2011-05-19 2012-11-22 株式会社日立製作所 マルチルートスイッチ、計算機、及び計算機間通信方法
RU2461055C1 (ru) * 2011-07-13 2012-09-10 Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Квант" Кластерная система с прямой коммутацией каналов
JP5903801B2 (ja) 2011-08-23 2016-04-13 富士通株式会社 通信装置およびid設定方法
CN102707991B (zh) * 2012-05-17 2016-03-30 中国科学院计算技术研究所 多根i/o虚拟化共享方法和系统
CN102722414B (zh) * 2012-05-22 2014-04-02 中国科学院计算技术研究所 用于多根i/o 虚拟化共享系统的i/o 资源管理方法
WO2014026374A1 (zh) * 2012-08-17 2014-02-20 华为技术有限公司 服务器系统、管理方法及设备
US9086919B2 (en) * 2012-08-23 2015-07-21 Dell Products, Lp Fabric independent PCIe cluster manager
CN103092676A (zh) 2013-01-04 2013-05-08 华为技术有限公司 虚拟机集群的模拟输入输出方法、装置及系统
WO2014106321A1 (zh) 2013-01-04 2014-07-10 华为技术有限公司 一种基于pcie网络的虚拟机通信方法、服务器及系统
CN103095463B (zh) * 2013-02-01 2016-08-03 福建星网锐捷网络有限公司 Pcie交换网系统和通信方法
CN103353861B (zh) 2013-06-18 2016-06-29 中国科学院计算技术研究所 实现分布式i/o资源池化的方法及装置
CN103312720B (zh) 2013-07-01 2016-05-25 华为技术有限公司 一种数据传输方法、设备及系统

Also Published As

Publication number Publication date
US20150026385A1 (en) 2015-01-22
AU2014295583B2 (en) 2017-07-20
KR20160033771A (ko) 2016-03-28
US9672167B2 (en) 2017-06-06
RU2640648C2 (ru) 2018-01-10
EP3252613A1 (en) 2017-12-06
EP3025240A4 (en) 2016-06-22
EP3025240A1 (en) 2016-06-01
EP3025240B1 (en) 2017-09-06
RU2016105477A (ru) 2017-08-25
WO2015010597A1 (en) 2015-01-29
AU2014295583A1 (en) 2016-03-03
ZA201600914B (en) 2020-01-29
EP3252613B1 (en) 2019-01-02
CN109032974B (zh) 2021-10-19
JP2016530618A (ja) 2016-09-29
KR101853748B1 (ko) 2018-05-02
CN105408879B (zh) 2018-06-15
CN105408879A (zh) 2016-03-16
CN109032974A (zh) 2018-12-18

Similar Documents

Publication Publication Date Title
JP6231679B2 (ja) 周辺コンポーネント相互接続エクスプレスドメインのためのリソース管理
US8144582B2 (en) Differentiating blade destination and traffic types in a multi-root PCIe environment
US11888710B2 (en) Technologies for managing cache quality of service
US9237093B2 (en) Bandwidth on-demand adaptive routing
JP5490336B2 (ja) Pciエクスプレス・マルチプル・ルートi/o仮想化環境における低待ち時間の優先順位付け
JP6379291B2 (ja) ファイルアクセス方法、システム、及びホスト
US10467179B2 (en) Method and device for sharing PCIe I/O device, and interconnection system
US10067900B2 (en) Virtualized I/O device sharing within a distributed processing node system
US20220300442A1 (en) Peripheral component interconnect express device and method of operating the same
US11575620B2 (en) Queue-to-port allocation
WO2016065613A1 (zh) 访问文件的方法、分布式存储系统和网络设备
JP2012113604A (ja) 計算機システム、方法、及びi/oスイッチ
CN107155307B (zh) 访问文件的方法、系统和主机

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170526

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171019

R150 Certificate of patent or registration of utility model

Ref document number: 6231679

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250