JPWO2015155997A1 - 設定装置、制御装置、設定方法及びネットワークスイッチ - Google Patents

設定装置、制御装置、設定方法及びネットワークスイッチ Download PDF

Info

Publication number
JPWO2015155997A1
JPWO2015155997A1 JP2016512609A JP2016512609A JPWO2015155997A1 JP WO2015155997 A1 JPWO2015155997 A1 JP WO2015155997A1 JP 2016512609 A JP2016512609 A JP 2016512609A JP 2016512609 A JP2016512609 A JP 2016512609A JP WO2015155997 A1 JPWO2015155997 A1 JP WO2015155997A1
Authority
JP
Japan
Prior art keywords
setting
information
packet
processing hint
computer
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.)
Pending
Application number
JP2016512609A
Other languages
English (en)
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Publication of JPWO2015155997A1 publication Critical patent/JPWO2015155997A1/ja
Pending legal-status Critical Current

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/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

プロセッシングヒント機能の普及に貢献する。設定装置は、コンピュータと1つ以上のI/Oデバイスとの間に配置され、前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持する設定情報保持手段と、前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する設定手段と、を備える。

Description

本発明は、設定装置、制御装置、設定方法及びプログラムに関し、特に、コンピュータとI/O(Input/output)デバイスとの間でやり取りするパケットに対してプロセッシングヒントと呼ばれるヒント情報を付加する設定装置、制御装置、設定方法及びプログラムに関する。
図22は、コンピュータの一般的な構成を示したものである。図22を参照すると、コンピュータX1は、CPU(Central Processing Unit)2と、メインメモリ3と、I/Oコントローラ4と、PCI Express(登録商標)デバイス5と、ストレージデバイス6と、を備えて構成される。
I/Oコントローラ4は、コンピュータX1が備えるシステムバスに接続される様々なI/Oデバイスに対するアクセスを制御するコントローラであり、内部にPCI Expressルートコンプレックス40と、シリアルATA(Advanced Technology Attachment)コントローラ41と、を備える。I/Oコントローラ4は、CPU2に対して、これらのI/Oデバイスに対するアクセス機能を提供する。
PCI Expressデバイス5は、PCI Expressプロトコルに基づくI/Oファブリックネットワークに接続されるI/Oデバイスであり、PCI Expressの仕様ではエンドポイントと呼ばれる。
このようなデバイスの例として、NIC(Network Interface Card)のようなコンピュータネットワーク接続用のデバイスや、RAID(Redundant Arrays of Independent Disks)カードなどのストレージ装置接続用のデバイス、GPU(Graphics Processing Unit)のようなディスプレイ表示用のデバイス、サウンドカードやビデオキャプチャカードなどのAV(Audio Visual)機能を備えたデバイス、などが挙げられる。
このI/Oファブリックネットワークを構成する要素として、PCI Expressルートコンプレックス40や、エンドポイントのほかに、スイッチやブリッジと呼ばれるノードが存在する。I/Oファブリックネットワークは、PCI Expressルートコンプレックス40をルートとし、PCI ExpressスイッチやPCI Expressブリッジを中間ノード、エンドポイントをリーフとしたツリー構造をとる。I/Oファブリックネットワーク中に存在するこれらの要素は、BDF(Bus、Device、Function)番号という、I/Oファブリックネットワーク中のバス番号、デバイス番号、ファンクション番号の組で識別される。また、これらの要素は、コンピュータX1のメモリ空間にマップされ、各要素に対して一意に割り当てられたメモリ領域を指すアドレスを用いて識別することも可能である。
ストレージデバイス6は、ATA規格に従ったストレージデバイスであり、例として、HDD(Hard Disk Drive)やSSD(Solid State Drive)、Blu−ray(登録商標)ドライブなどが挙げられる。
PCI Expressルートコンプレックス40は、I/Oファブリックネットワークの最上位階層(ルート)に位置し、CPU2とI/Oファブリックネットワーク上の各要素と、を接続するためのインタフェースである。
シリアルATAコントローラ41は、CPU2と、HDDやSSDといったストレージデバイスを接続するためのコントローラである。
これらのI/Oデバイス以外に、図22に示していないI/Oデバイスとして、例えばUSB(Universal Serial Bus)デバイスや、PS/2デバイス、シリアルポートデバイス、パラレルポートデバイス、などが存在する。I/Oコントローラ4は、これらの様々なI/OデバイスをコンピュータX1に接続するためのコントローラを備えている。
図23は、PCI Expressルートコンプレックス40と、PCI Expressデバイス5とを、拡張ネットワーク(Extension Network)7を用いて接続したコンピュータX1bを示したものである。もともと、I/Oファブリックネットワークは、コンピュータX1の筐体の内部に閉じ、コンピュータ1の基板上にPCI Expressルートコンプレックス40のチップや、PCI Expressスイッチのチップをプリント配線で接続する形で実現されてきた。しかしながら、このI/Oファブリックネットワークを、イーサネット(登録商標)などのコンピュータネットワークのように、ネットワークケーブルとネットワークスイッチから構成される拡張ネットワーク7で実現する方式が登場してきている。このようなコンピュータX1bの場合、PCI Expressデバイス5は、コンピュータX1bの筐体の中に備えられる必要はなく、拡張ネットワーク7越しに設置することができる。
図24はPCI Expressプロトコルのプロトコルスタックを示したものである。図24を参照すると、PCI Expressプロトコルスタックは、主に、トランザクションレイヤ42と、データリンクレイヤ44と、物理レイヤ46と、の3層から構成される。CPU2やPCI Expressデバイス5から、I/Oファブリックネットワークにパケットを送信する際には、パケットの宛先などに基づいて、トランザクションレイヤ42でTLP(Transaction Layer Protocol)パケットが構築され、データリンクレイヤ44に渡される。
データリンクレイヤ44では、TLPパケットの先頭にシーケンス番号などの情報が、TLPパケットの最後尾にCRC(Cyclic Redundancy Check)が付加され、DLLP(Data Link Layer Protocol)パケットが構築される。構築されたDLLPパケットは物理レイヤ46に渡される。
物理レイヤ46では、DLLPパケットをエンコーディング、及びシリアル化し、I/Oファブリックネットワークにパケットを送出する。PCI Expressにおいては、エンコーディング時に、PCI Expressのバージョンに応じて、8b/10bエンコーディングや、128b/130bエンコーディングが実行される(例えば、非特許文献1の188〜202頁参照)。
パケットの受信側では、下位レイヤから処理が行われる。まず、物理レイヤ46で、パケットのデコーディングが行われ、データリンクレイヤ44にDLLPパケットが渡される。データリンクレイヤ44では、CRCを用いたエラーチェックなどを行い、TLPパケットがトランザクションレイヤ42に渡される。そして、トランザクションレイヤ42を経由して、宛先のCPU2やPCI Expressデバイス5に、データが届けられる。
図3は、I/Oファブリックネットワーク中を流れるTLPパケットのフォーマットの概要を示したものである。なお、図3の例では32ビット分を一行で表記している。また、図3の上部の数字は、8ビットを単位としたバイト位置(+0〜+3)と、各バイト位置内でのビット位置(7〜0)を示している。また、図3の左部の数字は各行の先頭バイト位置を示している。図3を参照すると、TLPパケットは、TLPプリフィックス50と、TLPヘッダ52(以降、「TLPヘッダ」と表記する)と、データ54(以降、「TLPデータ」と表記する)と、TLPダイジェスト56と、から構成される。ただし、TLPプリフィックス50と、TLPダイジェスト56はオプションである。
TLPパケットは、I/Oファブリックネットワーク中を、転送先のメモリアドレス、またはBDF番号に基づいて転送される。図6は、メモリアドレスで転送されるTLPパケットのTLPヘッダ52の一例を示したものである。また、図7は、BDF番号に基づいて転送されるTLPパケットのTLPヘッダ52の一例を示したものである。
メモリアドレスで転送するTLPパケットの場合(図6参照)、アドレス[31:2]フィールド524に、TLPパケットの転送先となるメモリアドレスを格納し、リクエスタIDフィールド526に、TLPパケットの送信元となるPCI Expressデバイス5などの識別子を格納する。このリクエスタIDは典型的にはBDF番号である。
また、BDF番号で転送するTLPパケットの場合(図7参照)、BDF番号フィールド528に、TLPパケットの転送先となるBDF番号を格納し、リクエスタIDフィールド526に、TLPパケットの送信元となるPCI Expressデバイス5などの識別子を格納する。
ところで、PCI Expressの仕様において、PCI Expressデバイス5が、メモリアドレスを宛先として指定し、送信するTLPパケットにヒントを付加する機能が定義されている。この機能はTLP Processing Hints(TPH)と呼ばれ、PCI Express 2.1から仕様に取り込まれた。PCI Express 2.1の仕様については非特許文献1に詳しい。
TPHは、TLPプリフィックス50とTLPヘッダ52の特定のフィールドに、TLPパケットの転送先のメモリアドレスに基づいて、PCI Expressデバイス5が、ステアリングタグと呼ばれる情報を書き込む機能である。
図4は、TLPプリフィックス50のフォーマットの一例を示したものである。また、図5は、TLPヘッダ52のフォーマットの一例を示したものである。図4のST[15:8]フィールド502と、図5のST[7:0]フィールド522が、ステアリングタグを書き込む領域である。なお、ST[15:8]フィールド502はオプションである。また、プロセッシングヒントを持つTLPヘッダであることを示すためには、図5のTHフィールド534に1がセットされる。
このステアリングタグをどのように扱うかは、TLPパケットを受信する側のデバイス(CPU2やPCI Expressルートコンプレックス40)次第である。TPHと同様の仕組みは既にコンピュータ製品に搭載されている。例えば、ST[7:0]フィールド522を利用して、Intel社はDCA(Direct Cache Access)という機能を、同社のCPUやI/Oコントローラに搭載している。このDCAとは、PCI Expressデバイス5からのTLPパケットに含まれるTLPデータ54を、CPU2がST[7:0]フィールド522の情報(タグ情報)に基づいて、キャッシュメモリにハードウェアプリフェッチするものである。
例えば、DCAに対応したNICは、TLPパケットのST[7:0]フィールド522にタグ情報をセットし、CPU2やI/Oコントローラ4に向けて、このTLPパケットを送信する。非特許文献2の7.5節によると、DCAの場合、タグ情報には、(1)DCAが有効か無効かを示すフラグとターゲットとなるキャッシュを示すID、あるいは(2)APIC(Advanced Programmable Interrupt Controller)IDに基づくターゲットCPUのID、のいずれかが格納される。
また、非特許文献2の8.2.3.11節によると、Intel 82599 10Gigabit Ethernet(登録商標) Controllerでは、(1)メインメモリ3に書き戻す受信ディスクリプタのTLPパケットに対してタグ情報を付加するモード、(2)受信パケットのヘッダバッファへのTLPパケットにタグ情報を付加するモード、(3)受信したイーサネットパケットのペイロードに対してタグ情報を付加するモード、が存在する。
このように、ステアリングタグのフィールドに書き込む情報は、CPU2やI/Oコントローラ4、PCI Expressデバイス5に応じて、様々な意味を持つ。つまり、コンピュータX1ごとに、ステアリングタグのフィールドフォーマット、ステアリングタグのフィールドの各ビットが持つ意味が異なる。
また、PCI Expressの仕様では、プロセッシングヒントを付加したデータに対するアクセスパターンに関するヒントを与えることも規定されており、この場合、図6のPHフィールド532に、アクセスパターンに関するヒントを設定する。
特許文献1には、I/Oファブリックネットワーク中の要素が、TLPパケットを変更する技術の一例が開示されている。特許文献1では、I/Oファブリックネットワーク中の要素が、TLPヘッダ52に含まれる情報からテーブルを参照し、テーブルから取得した情報をもとに、TLPヘッダ52を書き換えている。
より具体的には、特許文献1のI/Oシステムは、PCI Expressルートコンプレックス40と、PCI Expressデバイス5との間に、TLPヘッダ52内の、TLPパケットの転送先を示すアドレス情報を書き換える手段(以降、「TLPヘッダ書き換え手段」と表記する)と、前記アドレス情報をどのように書き換えるかを示したルールを格納する手段(以降、「TLPヘッダ書き換えルール格納手段」と表記する)と、を備える。TLPヘッダ書き換えルール格納手段には、TLPヘッダに含まれるアドレス情報をキーとして与えることで、変更後のアドレス情報を引くことができる。これにより、CPU2からPCI Expressデバイス5、あるいはPCI Expressデバイス5からCPU2へのTLPパケットを、前記TLPパケット書き換え手段が、TLPヘッダ書き換えルール格納手段から変更後のアドレス情報を取得し、TLPヘッダ52を書き換える。
また、特許文献2には、ST[7:0]フィールド522のNビットをCPU2のキャッシュメモリなどの記憶階層の各階層に対応させ、また、ST[15:8]フィールド502のNビットをビットマスクとして使用し、このビットマスクをPCI Expressデバイス5以外のハードウェアデバイス、またはオペレーティングシステム(Operating System:OS)などのソフトウェアが変更する技術が記載されている。
特許文献2によると、PCI Expressデバイス5が指定したビットマスク値を、OSまたはPCI Expressデバイス5以外のハードウェアデバイスがCPU2のキャッシュミス率などに応じて書き換える。そして、書き換え後のビットマスクとST[7:0]フィールド522と論理積の演算を行うことで、PCI Expressデバイス5から送信されたデータを格納する記憶階層を指定することができる。
国際公開第2009/025381号 米国特許出願公開第2013/0173834号明細書
「PCI Express Base Specification Revision 2.1」、2011年発行、著者PCI−SIG(登録商標、The Peripheral Component Interconnect Special Interest Group)、第188頁〜第202頁 「Intel 82599 10 Gigabit Ethernet Controller Datasheet Revision 2.8」、2013年発行、著者Intel、第7節、及び、第8.2.3.11節
以下の分析は、本発明の発明者によって与えられたものである。例えば、PCI Expressにおけるプロセッシングヒント機能について、I/Oデバイスがプロセッシングヒントの機能を持っていないと、同機能を利用することができない。
その理由は、プロセッシングヒントを与える機能が、個々のI/Oデバイスに提供されるからである。例えば、PCI Expressプロトコルに対応したI/Oデバイスと一口にいっても、古いバージョンのPCI Expressに対応したPCI Expressデバイスは、プロセッシングヒント機能を備えていない。また、新しいバージョンのPCI Expressに対応したPCI Expressデバイスでも、TPHの機能を実装していない場合がある。これらの場合、TPHが設定されたTLPパケットを扱えるCPU2やI/Oコントローラ4はTPHによる機能を利用できないことになる。
とりわけ、拡張ネットワーク経由でI/Oデバイスが接続される環境を想定すると、上記のような状況は多数生じることになる。
本発明の目的は、プロセッシングヒント機能の普及に貢献できる設定装置、制御装置、設定方法及びプログラムを提供することにある。
第1の視点によれば、コンピュータと1つ以上のI/Oデバイスとの間に配置され、前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持する設定情報保持手段と、前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する設定手段と、を備える設定装置が提供される。
第2の視点によれば、上記した設定装置に対し、設定情報を設定する制御装置が提供される。
第3の視点によれば、上記した設定装置として機能するネットワークスイッチが提供される。
第4の視点によれば、コンピュータと1つ以上のI/Oデバイスとの間に配置された設定装置において、前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持するステップと、前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定するステップと、を含む設定方法が提供される。
本方法は、コンピュータと1つ以上のI/Oデバイスとの間に配置された設定装置という、特定の機械に結びつけられている。
第5の視点によれば、コンピュータと1つ以上のI/Oデバイスとの間に配置された設定装置を構成するコンピュータに、前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持する処理と、前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
本発明によれば、プロセッシングヒント機能の普及に貢献することが可能となる。
本発明の第1の実施形態の構成を示した図である。 図1のプロセッシングヒント設定モジュールの構成を示した図である。 I/Oファブリックネットワーク中を流れるTLPパケットのフォーマットの概要を示した図である。 TLPプリフィックスのフォーマットの一例を示した図である。 TLPヘッダのフォーマットの一例を示した図である。 メモリアドレスで転送されるTLPパケットのヘッダの一例を示した図である。 BDF番号に基づいて転送されるTLPパケットのヘッダの一例を示した図である。 図2のプロセッシングヒント設定情報保持部に保持されるプロセッシングヒント設定情報の一例を示した図である。 図2のプロセッシングヒント設定情報保持部に保持されるプロセッシングヒント設定情報の別の例を示した図である。 図1のプロセッシングヒント制御モジュールの構成を示した図である。 本発明の第1の実施形態の動作を表したシーケンス図である。 本発明の第1の実施形態のプロセッシングヒント設定装置の動作を示したフローチャートである。 本発明の第2の実施形態の構成を示した図である。 図13のプロセッシングヒント設定モジュールの構成を示した図である。 図13のプロセッシングヒント制御モジュールの構成を示した図である。 本発明の第2の実施形態のデバイス情報保持部が保持するI/Oデバイス情報の一例を示したものである。 本発明の第2の実施形態のデバイス情報保持部が保持するメモリ空間に関する情報の一例を示したものである。 本発明の第2の実施形態の動作(デバイス登録時)を表したシーケンス図である。 本発明の第2の実施形態の動作(デバイス情報更新時)を表したシーケンス図である。 本発明の第2の実施形態の動作(プロセッシングヒント設定準備)を表したシーケンス図である。 本発明の第3の実施形態の構成を示したものである。 コンピュータの一般的な構成を示したものである。 拡張ネットワークに接続されたコンピュータの一般的な構成を示したものである。 PCI Expressプロトコルのプロトコルスタックを示した図である。
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
本発明は、その一実施形態において、コンピュータと1つ以上のI/Oデバイスとの間に配置されたプロセッシングヒント設定装置にて実現できる。より具体的には、このプロセッシングヒント設定装置は、設定情報保持手段(図1のプロセッシングヒント制御モジュール82参照)と、プロセッシングヒント設定手段(図1のプロセッシングヒント設定モジュール80参照)と、を備える。設定情報保持手段は、コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するためのプロセッシングヒント設定情報を保持する。さらに、プロセッシングヒント設定手段は、このプロセッシングヒント設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する。
上記構成を備えることにより、I/Oデバイスがプロセッシングヒントの機能を持っていない場合においてもプロセッシングヒント機能を利用することが可能となる。その理由は、プロセッシングヒント設定装置が、I/Oデバイスに代わってプロセッシングヒントを設定するよう構成したことにある。
[第1の実施形態]
続いて、本発明の第1の実施形態について、図面を参照して詳細に説明する。図1は、本発明の第1の実施形態の構成を示した図である。図1を参照すると、PCI Expressデバイス5と、PCI Expressルートコンプレックス40と、の間に、プロセッシングヒント設定装置8を挿入した構成が示されている。なお、図1においては、図22、図23と同一の構成要素に対しては同一の符号を付し、詳細な説明を省略する。
また、コンピュータ1は、図22、23のコンピュータX1、X1bと同様の構成としているが、このことは、コンピュータ1の構成を図1の構成に限定することを意図するものではない。
プロセッシングヒント設定装置8は、プロセッシングヒント設定モジュール80と、プロセッシングヒント制御モジュール82と、を備えて構成される。
プロセッシングヒント設定モジュール80は、PCI Expressデバイス5から送られてきたTLPパケットに対し、プロセッシングヒントの書き換え、付与、あるいは削除を行うモジュールである(前述の「プロセッシングヒント設定手段」に相当)。プロセッシングヒントの書き換え、付与、あるいは削除は、プロセッシングヒント制御モジュール82が指定するプロセッシングヒント設定情報に従う。
図2は、プロセッシングヒント設定モジュール80の構成を示したものである。図2を参照すると、プロセッシングヒント設定モジュール80は、プロセッシングヒント書き換え部802と、プロセッシングヒント設定情報保持部804と、チェックコード再計算部805と、を含んで構成される。
プロセッシングヒント書き換え部802は、プロセッシングヒント設定情報保持部804に格納されるプロセッシングヒント設定情報に従って、TLPパケットに対し、プロセッシングヒントを設定する。PCI Expressデバイス5から、あるいは、PCI Expressデバイス5へのTLPパケットが、プロセッシングヒント設定モジュール80に入力される。プロセッシングヒント設定モジュール80に入力されるたびに、プロセッシングヒント書き換え部802が、プロセッシングヒント設定情報保持部804を参照し、適切なプロセッシングヒントを付与する。このとき、プロセッシングヒント書き換え部802は、もともとプロセッシングヒントが付与されていなかったTLPパケットのTHフィールド534(図5〜図7の符号534参照)の値を1にセットする。さらに、プロセッシングヒントを書き換える、または付与するのと同様に、プロセッシングヒント書き換え部802にて、TLPパケットのPHフィールド532(図6参照)の値を変更することも可能である。
ここで、PCI Expressにおいては、TLPパケットに対して、データリンクレイヤでTLPパケットのビットエラーを検出するためのCRCが付与される。そのため、プロセッシングヒント書き換え部802は、TLPパケットに設定されていたプロセッシングヒントの内容を変更、あるいは削除した場合、チェックコード再計算部805で、CRCを再計算し、TLPパケットに付与する。またはTLPパケットにプロセッシングヒントを付与し、THフィールドを書き換えた場合、チェックコード再計算部805で、CRCを再計算し、TLPパケットに付与する。なお、TLPダイジェストが存在すれば、TLPレイヤでもCRCが付与されるため、この場合は、TLPレイヤのCRCの再計算も必要である。
また、プロセッシングヒント書き換え部802は、プロセッシングヒント制御モジュール82と通信するための制御インタフェース806を備える。
プロセッシングヒント設定情報保持部804は、プロセッシングヒントをどのような条件で設定するかを示したプロセッシングヒント設定情報を保持する。例えば、プロセッシングヒント設定情報は、アドレス[31:2]フィールド524で指定される領域に対して、プロセッシングヒントを付与する。具体的には、あるリクエスタIDフィールド526で指定されるPCI Expressデバイス5から送信されるTLPパケットにプロセッシングヒントが付与される。また、別のプロセッシングヒント設定情報の例として、TLPヘッダ52に含まれる長さフィールド530が、ある一定値以上の値を持つTLPパケットに対して、プロセッシングヒントを付与する、というものも考えられる。
図8は、プロセッシングヒント設定情報保持部804に保持されるプロセッシングヒント設定情報の一例を示した図である。図8を参照すると、リクエスタID列8042と、宛先アドレス列8046と、TPH値列8048と、PH値列8049と、を対応付けたデータ構造が示されている。TLPパケットのリクエスタID値と、TLPパケットの宛先アドレス値を条件(マッチング条件)とし、その条件にマッチしたTLPパケットに対して付与するTPH値とPH値を取得する。また、リクエスタID値や宛先アドレス値をワイルドカードとすることも可能である。
また、宛先アドレス値を、メモリアドレス0x10000000(0xは16進数を示す)から1KByte分の領域のように、ある一定のメモリ領域を示すように指定することも可能である。この場合、プロセッシングヒント設定情報保持部804に、メモリアドレスの下限値と上限値が登録される、または、メモリアドレスの下限値と、マスク値が登録される。例として、0x10000000から1KByte分の領域を指定したプロセッシングヒント設定情報の場合を考える。前者の方法であれば、メモリアドレスの下限値として0x10000000を、メモリアドレスの上限値として0x100003ffが登録される。そして、プロセッシングヒント書き換え部802が、プロセッシングヒント設定情報保持部804を参照する際、リクエスタIDが一致する行を抽出しTLPパケットに含まれる宛先メモリアドレスが、抽出したプロセッシングヒント設定情報のメモリアドレスの上限値と下限値の間に収まっているか比較する。
一方、後者の方法であれば、メモリアドレスの下限値として、0x10000000を登録し、マスク値として0xfffffc00が登録される。そして、プロセッシングヒント書き換え部802が、プロセッシングヒント設定情報保持部804を参照する際、リクエスタIDが一致する行を抽出する。そして、プロセッシングヒント書き換え部802が、TLPパケットに含まれる宛先メモリアドレスと、抽出したプロセッシングヒント設定情報に含まれるマスク値でビット単位の論理積をとった結果を用いて下限値と一致するか比較する。比較の対象は、抽出したプロセッシングヒント設定情報に含まれるメモリアドレスの下限値である。
これらの方法により、一定範囲のメモリ領域を示す宛先アドレスをプロセッシングヒント設定情報保持部804に保持させることが可能となる。
リクエスタID列8042は、TLPパケットに設定されているリクエスタIDフィールド526の値である。宛先アドレス列8046は、TLPパケットの宛先アドレスを示す値である。具体的には、32ビットアドレスの場合、TLPパケットのアドレス[31:2]フィールド524に設定される値が格納される。TPH値列8048は、条件にマッチしたTLPパケットに設定するTPH値が格納される。TPHの場合、値が0の場合はTPHが無効を示す。図8の例では、リクエスタIDがYのプロセッシングヒント設定情報は、もともとTLPパケットに設定されていたTPHを無効とする内容が定められている。PH値列8049には、条件にマッチしたTLPパケットに設定するPH値が格納される。
図9は、プロセッシングヒント設定情報保持部804に保持されるプロセッシングヒント設定情報の別の一例を示した図である。図9のプロセッシングヒント設定情報の例では、TLPパケットの長さを条件とし、その条件にマッチしたTLPパケットに対して、TPH値列8048で指定されたTPHを設定する内容となっている。より具体的には、図9の第1のプロセッシングヒント設定情報では、TLPパケットが64バイト以下の場合に、TPHとして0x1122(「0x」は16進数であることを示す)を設定する内容が規定されている。また、図9の第2のプロセッシングヒント設定情報では、TLPパケットサイズが64バイトより大きい場合にTPHを無効とする内容(0x0000)が規定されている。この形式の場合、TLPパケットの宛先を示す情報が、メモリアドレスであることを確認し、宛先がメモリアドレスで表現されたTLPパケットのみを対象とすることができる。TLPパケットの宛先を示す情報がメモリアドレスかBDF番号かは、Typeフィールド536を参照することで確認することができる。Typeフィールド536がメモリリクエストか、I/Oリクエストを示すTLPパケットの場合、宛先がメモリアドレスで表現されている。
ここで、TPHとしてST[15:8]フィールド502と、ST[7:0]フィールド522との、両方のフィールドを使用する場合は、図8、図9のTPH値列8048に格納される値は、それに合わせて、16ビット分の値となる。また、TPHを設定する条件として、TLPパケットの任意のフィールドの値を使用することは、図8、図9のプロセッシングヒント設定情報の例と同様に可能である。
プロセッシングヒント制御モジュール82は、プロセッシングヒント設定モジュール80が、どのTLPパケットに対し、どのようなプロセッシングヒントを設定するかを指示するモジュールである(前述の「設定情報保持手段」に相当)。
図10は、プロセッシングヒント制御モジュール82の構成を示したものである。図10を参照すると、制御インタフェース806と、プロセッシングヒント構築部822と、プロセッシングヒント設定要求受付部824と、デバイス情報取得部826と、を備えた構成が示されている。
プロセッシングヒント制御モジュール82は、外部モジュールからプロセッシングヒントの設定要求を受けることで、プロセッシングヒント設定情報を構築し、構築したプロセッシングヒント設定情報をプロセッシングヒント設定情報保持部804に設定する。外部モジュールの例として、コンピュータ1上で動くOS(Operating System)が挙げられる。OSがCPU2の使用率やキャッシュヒット率などに基づいて、あるいは、あるPCI Expressデバイス5を使用するプロセスを動かす際に、プロセッシングヒント制御モジュール82に対し、プロセッシングヒントの設定要求を発行する。プロセッシングヒントの設定要求は、そのPCI Expressデバイス5からのTLPパケットのステアリングタグが、このプロセスが実行されるCPU2を指定するものである。
例えば、プロセッシングヒントによって、PCI Expressデバイス5からのTLPパケットをCPU2のキャッシュメモリに格納するかどうかを決められる場合がある。この場合、キャッシュヒット率が悪化した際に、CPU2へのすべてのTLPパケットのプロセッシングヒントを無効にするための制御をOSから行うことが考えられる。このようなキャッシュヒット率は、CPU2のパフォーマンスカウンタを参照することで取得することができる。
また、別の例として、GPUを使用するプロセスが起動した際に、そのプロセスが稼動するCPU2のキャッシュメモリに対して、GPUからのTLPパケットを直接格納するように、プロセッシングヒントを付与するための要求を発行することが考えられる。GPUからのTLPパケットを直接格納するとは、キャッシュインジェクションに相当する。GPU以外にも、NICでも同様のことが可能である。すなわち、複数のNICと複数のCPU2を備えるコンピュータ1において、あるNICから受信したイーサネットパケットを特定のCPU2のキャッシュメモリにインジェクションするように、プロセッシングヒントを設定することも考えられる。
プロセッシングヒント設定要求受付部824は、外部モジュールからプロセッシングヒント設定情報の設定要求を受け付けるためのインタフェースである(設定要求受付手段に相当)。この設定要求には、少なくとも、TLPパケットの送信元の識別子と、TLPパケットの宛先メモリアドレスと、どのようなプロセッシングヒントを付与するかを示す情報と、が含まれる。これら識別子に関してはワイルドカードでもよい。典型的には、TLPパケットの送信元の識別子は、BDF番号である。
また、設定するプロセッシングヒント設定情報が、ある一定範囲のメモリアドレス領域宛のTLPパケットに対するものであった場合、宛先メモリアドレスの代わりに、メモリ領域の上限値と下限値、あるいは下限値とマスク値を与えることも考えられる。
どのようなプロセッシングヒントを付与するかを示す情報の例として、TLPパケットの転送先デバイスが既定するプロセッシングヒントのフォーマットに合わせたビット列を用いることが考えられる。
設定要求の別の例として、TLPパケットの送信元、あるいは宛先以外の情報、例えばTLPパケットの長さなどに応じてプロセッシングヒントの設定を行う場合、設定要求には、そのような情報(長さなど)が含まれる。以降では、設定要求にTLPパケットの宛先メモリアドレスを与えるものとして説明するが、このことは、設定要求に含める情報が、これに限定されることを意図するものではない。
デバイス情報取得部826は、コンピュータ1のメモリ空間に関する情報と、PCI Expressデバイス5のBDF番号又は使用するメモリ領域と、I/Oファブリックネットワークのツリー構造に関する情報を外部モジュールから取得するモジュールである。なお、I/Oファブリックネットワークのツリー構造とは、BDF番号に基づくツリーの構造である。デバイス情報取得部826は、デバイス情報取得手段に相当する。
これらの情報は、例えば、コンピュータ1上で稼動するOSから取得することができ、ツリー構造に関する情報であれば、Linux(登録商標)においてはlspciコマンドによる出力などにより得られる。また、これらの情報は、メモリ空間に関する情報であれば、/proc/iomemファイルを読み込むことなどで得られる。この場合、プロセッシングヒント制御モジュール82は、コンピュータ1上で稼動するOSとコンピュータネットワークなどを介して通信する。典型的には、プロセッシングヒント制御モジュール82は、コンピュータ1上で稼動するOSの一部、あるいはこのOS上で稼動するソフトウェアプログラムとして実現することができる。さらに、プロセッシングヒント制御モジュール82は、プロセス間通信やシステムコールを使用することで、上記情報を取得することができる。
また、デバイス情報の取得方法の別の例として、デバイス情報を管理するデータベースを用いることが考えられる。OSはデバイス情報をこのデータベースに登録し、デバイス情報取得部826は、このデータベースからデバイス情報を取得する。
プロセッシングヒント構築部822は、プロセッシングヒント設定要求受付部824が受け付けたプロセッシングヒント設定要求に基づいて、プロセッシングヒント設定情報保持部804に設定するプロセッシングヒント設定情報を構築する。
プロセッシングヒント構築部822は、プロセッシングヒント設定要求に含まれる、TLPパケットの送信元デバイスの識別子(BDF番号)を用いて、デバイス情報取得部826に、そのようなデバイスが存在するかどうかを問い合わせる。また、TLPパケットの宛先メモリアドレスについても、デバイス情報取得部826が取得する、コンピュータ1のメモリ空間の情報に基づいて、そのメモリアドレスで示される領域が有効かどうかを確認する。従って、プロセッシングヒント構築部822は、デバイス確認手段及びプロセッシングヒント格納手段としても機能する。
なお、上記した説明中でも触れたように、図1、2、10等に示したプロセッシングヒント設定装置8の各部(処理手段)は、同装置を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現できる。
[動作の説明]
次に、図面を参照して、本実施の形態の全体の動作について詳細に説明する。
図11は、コンピュータ1上で稼動するOSを外部モジュールとしたときの本実施形態の動作を表したシーケンス図である。図11の例では、OSからの要求に応じて、プロセッシングヒント設定装置が、プロセッシングヒント設定情報を構築し、プロセッシングヒントをプロセッシングヒント設定情報保持部804に設定することになる。
図11を参照すると、まず、OSは、プロセッシングヒント制御モジュール82に対して、プロセッシングヒント設定情報の設定要求(プロセッシングヒント設定要求)を発行する(図11のステップS820)。この要求には、少なくとも、TLPパケットの送信元の識別子と、TLPパケットの宛先メモリアドレスと、設定するプロセッシングヒントと、に関する情報が含まれる。
次に、プロセッシングヒント制御モジュール82は、OSに対して、デバイス情報要求を発行する(図11のステップS822)。
次に、OSは、プロセッシングヒント制御モジュール82に対して、デバイス情報を送信する。このデバイス情報は、例えば、Linuxであればlspciコマンドで取得できる情報や、/proc/iomemファイルに含まれる情報から構成される。
次に、プロセッシングヒント制御モジュール82は、図11のステップS820で受け取ったプロセッシングヒント設定情報の設定要求に含まれる情報と、図11のステップS824で取得したデバイス情報から、プロセッシングヒント設定情報を構築する。プロセッシングヒント設定情報の構築は、図11のステップS826で示される。
ここで、図8や図9の例に示した、プロセッシングヒント設定情報保持部804に保持されるプロセッシングヒント設定情報またはこれを含む制御メッセージが生成される。また、プロセッシングヒント制御モジュール82は、OSから受け取ったプロセッシングヒント設定要求に含まれる、TLPパケットの送信元の識別子と、TLPパケットの宛先メモリアドレスが有効かどうかチェックする。これらのチェックで、該当するデバイスが存在しない場合、プロセッシングヒント制御モジュール82は、プロセッシングヒントを構築せずに、処理を終了する。
次に、プロセッシングヒント制御モジュール82は、図11のステップS826で構築したプロセッシングヒント設定情報を、プロセッシングヒント設定モジュール80に送信する(図11のステップS828)。
プロセッシングヒント設定モジュール80は、プロセッシングヒント制御モジュール82から受信したプロセッシングヒント設定情報を、プロセッシングヒント設定情報保持部804に登録する(図11のステップS829)。
図12は、図11のステップS822からステップS828までの、プロセッシングヒント制御モジュール82の動作を示したフローチャートである。
まず、プロセッシングヒント制御モジュール82は、OS(外部モジュール)にデバイス情報要求を発行する(図12のステップF822)。
次に、プロセッシングヒント制御モジュール82は、OSからデバイス情報を取得する(図12のステップF824のYes)。プロセッシングヒント制御モジュール82は、OSから受信したプロセッシングヒント構築要求に含まれる、TLPパケットの送信元、宛先メモリアドレスが有効かどうかをチェックする(図12のステップF825)。この際に、デバイス情報に、TLPパケットの送信元識別子、送信先メモリアドレスが有効かどうかを確認する。
図12のステップF825において、TLPパケットの送信元識別子に相当するデバイスが存在しない場合、プロセッシングヒント制御モジュール82は、プロセッシングヒント設定情報を構築せずに、処理を終了する。あるいは、送信先メモリアドレスの値が無効の場合(図12のステップF825の「無効」)、プロセッシングヒント制御モジュール82は、プロセッシングヒント設定情報を構築せずに、処理を終了する。
一方、図12のステップF825において、該当する送信もデバイスが存在し、かつ宛先アドレスが有効の場合(図12のステップF825の「有効」)、次のように対応する。すなわち、プロセッシングヒント制御モジュール82は、OSからのプロセッシングヒント構築要求と、図12のステップF824で受信したデバイス情報を元に、プロセッシングヒント設定情報を構築する(図12のステップF826)。ここで、図8や図9の例に示した、プロセッシングヒント設定情報保持部804に保持されるプロセッシングヒント設定情報またはこれを含む制御メッセージが生成される。
次に、プロセッシングヒント制御モジュール82は、図12のステップF826で構築したプロセッシングヒント設定情報を、プロセッシングヒント設定モジュール80に送信する(図12のステップF828)。
このようにして、プロセッシングヒント制御モジュール82は、プロセッシングヒント設定情報保持部804にプロセッシングヒント設定情報を設定する。
次に、本実施形態の効果について説明する。本実施形態では、PCI Expressデバイス5と、PCI Expressルートコンプレックス40との間に、プロセッシングヒント設定装置8が備えられる。
プロセッシングヒント設定装置8が、外部モジュールからのプロセッシングヒント設定要求に応じて、プロセッシングヒント設定情報を構築する。このプロセッシングヒント設定情報に基づいて、プロセッシングヒント設定装置8が、I/Oファブリックネットワークを流れるTLPパケットにプロセッシングヒントを付与する。
これにより、プロセッシングヒントに対応していないI/Oデバイスに対してもプロセッシングヒントの機能を提供できる。
背景技術に述べたTPHの別の問題点として、I/Oデバイスが設定するプロセッシングヒントは、特定のCPUやI/Oコントローラ向けのフォーマットに限定されている、という点が挙げられる。しかしながら、本実施形態によれば、プロセッシングヒントのフォーマットは、外部モジュールからのプロセッシングヒント設定要求に含まれる情報を元に構築できるため、特定のCPU2や、プロセッシングヒントをI/Oコントローラ4に非依存なものにできる。
[第2の実施形態]
次に、本発明の第2の実施形態について、図面を参照して詳細に説明する。
図13は、本発明の第2の実施形態の構成を示した図である。図13を参照すると、第2の実施形態は、各コンピュータ1のPCI Expressデバイス5と、PCI Expressルートコンプレックス40と、の間にプロセッシングヒント設定モジュール80bを配置する。さらに、第2の実施形態は、その他のコンピュータ1内のプロセッシングヒント設定モジュールを含む各プロセッシングヒント設定モジュール80bを制御するプロセッシングヒント制御モジュール82bと、を備える。
図14は、プロセッシングヒント設定モジュール80bの構成を示した図である。図2に示した第1の実施形態のプロセッシングヒント設定モジュール80との相違点は、プロセッシングヒント設定要求受付部824と、デバイス情報登録要求受付部830と、が追加されている点である。図14における、図2と同一の構成要素に対しては同一の符号を付し、詳細な説明を省略する。
プロセッシングヒント設定モジュール80bは、各コンピュータ1に備えられ、各コンピュータ1内で、TLPパケットへのプロセッシングヒントの設定、及び、プロセッシングヒントの設定要求の受け付けと、デバイス情報登録要求の受け付けを行う。
プロセッシングヒント設定要求受付部824は、プロセッシングヒント設定モジュール80bが備えられたコンピュータ1からのプロセッシングヒント設定情報の設定要求を受け付けるインタフェースである。例えば、プロセッシングヒント設定要求受付部824を、PCI Expressデバイス5としてI/Oファブリックネットワークに接続する。これにより、コンピュータ1上で稼動するOSなどからプロセッシングヒント設定要求受付部824にアクセスすることが可能となる。
デバイス情報登録要求受付部830は、情報を通知するためのインタフェースである。その情報は、コンピュータ1上で稼動するOSなどが、プロセッシングヒント制御モジュール82bに対し、コンピュータ1に備えられるI/Oファブリックネットワークに接続されるI/Oデバイスの情報と、コンピュータ1のメモリ空間に関する情報である。プロセッシングヒント設定要求受付部824と同様に、デバイス情報登録要求受付部830は、PCI Expressデバイス5として実現される。これによって、コンピュータ1上で稼動するOSなどからデバイス情報登録要求受付部830にアクセスすることが可能となる。デバイス情報登録要求受付部830は、コンピュータ1のデバイス情報を、プロセッシングヒント制御モジュール82bに送信する場合、コンピュータ1の識別子を付与して送信する。この識別子は、プロセッシングヒント設定装置8bが管理するコンピュータ群で一意な値である。
図15は、プロセッシングヒント制御モジュール82bの構成を示した図である。図15を参照すると、プロセッシングヒント構築部822と、デバイス情報保持部828と、を備えたプロセッシングヒント制御モジュール82bが示されている。図15において、図10に示した第1の実施形態のプロセッシングヒント制御モジュール82と同一の構成要素に対しては同一の符号を付し、詳細な説明を省略する。
デバイス情報保持部828は、各コンピュータ1のI/Oデバイス情報を、コンピュータ1の識別子と共に保持する。図16は、デバイス情報保持部828が保持するI/Oデバイス情報の一例を示した図である。デバイス情報保持部828は、図16のようなデバイス情報から、コンピュータ1の識別子を用いて検索することで、そのコンピュータ1のI/Oデバイス情報を取得できる。
また、デバイス情報保持部828は、各コンピュータ1のメモリ空間に関する情報を、コンピュータ1の識別子と共に保存する。図17は、デバイス情報保持部828が保持するメモリ空間に関する情報の一例を示した図である。デバイス情報保持部828は、図17に示す情報から、コンピュータ1の識別子を用いて検索することで、そのコンピュータ1のメモリ空間に関する情報を取得できる。図17には、I/Oデバイスが使用しているメモリ領域の情報だけでなく、メインメモリやビデオメモリの情報も記載される。
さらに、図17において、そのメモリ領域に対して、TLPパケットを送信できるか否かのフラグを保持する領域を設けることが考えられる。プロセッシングヒント構築部822が、プロセッシングヒント設定情報構築時に、TLPパケットの宛先メモリアドレスがコンピュータ1のメモリ空間に含まれる値であっても、フラグを参照し、TLPパケットを送信できる領域であるかどうかを判断できる。また、TLPパケットを送信できない領域の場合は、そのようなルールを構築しないということが可能となる。
[動作の説明]
続いて、図面を参照して、本実施形態の動作について詳細に説明する。
図18〜図20は、本実施形態の動作を表したシーケンス図である。はじめに、コンピュータ1のI/Oデバイス情報を、デバイス情報保持部828に登録する際の動作について図18を参照して説明する。なお、図18では、コンピュータ1上で稼動するOSからデバイス情報を送信するものとしている。
まず、OSが、プロセッシングヒント設定モジュール80bに対し、プロセッシングヒント設定要求受付部824を介して、デバイス情報とコンピュータ1の識別子とともに、デバイス情報登録要求を発行する(図18のステップS830b)。
次に、プロセッシングヒント設定モジュール80bが、制御インタフェース806bを介して、プロセッシングヒント制御モジュール82bに、I/Oデバイス情報と、コンピュータ1の識別子を送信する(図18のステップS832b)。
次に、プロセッシングヒント構築部822が、デバイス情報保持部828に、コンピュータ1の識別子とともにI/Oデバイスの情報を登録する(図18のステップS834b)。
このようにして、デバイス情報保持部828にI/Oデバイスの情報を登録することができる。コンピュータ1のメモリ空間に関する情報も、同様に登録することが可能である。
図19は、コンピュータ1のI/Oファブリックネットワークに接続されているI/Oデバイスの構成が変更された際の、プロセッシングヒント設定装置8bの動作を示したシーケンス図である。図19における、図18と同様の動作については同一の符号を付し、詳細な説明を省略する。
まず、OSが、取り外したI/Oデバイスの情報又は追加したI/Oデバイスの情報を、コンピュータ1の識別子とともに、プロセッシングヒント設定要求受付部824を介して、プロセッシングヒント設定モジュール80bにデバイス情報変更要求を発行する。図19のステップS831bに、プロセッシングヒント設定モジュール80bにデバイス情報変更要求を発行することを示す。この、取り外した、または追加したI/Oデバイスの情報には、少なくともBDF番号と、このI/Oデバイスが使用するメモリ領域の情報が含まれる。
次に、プロセッシングヒント設定モジュール80bがプロセッシングヒント制御モジュール82bに、I/Oデバイス情報と、コンピュータ1の識別子を送信する(図19のステップS832b)。
次に、プロセッシングヒント構築部822が、デバイス情報保持部828に登録されているI/Oデバイス情報を更新する(図19のステップS835b)。I/Oデバイスを取り外す場合、プロセッシングヒント構築部822は、コンピュータ1の識別子と、更新対象のI/OデバイスのBDF番号やメモリアドレスを用いて、I/Oデバイス情報を検索し、該当するI/Oデバイス情報を削除する。BDF番号の場合は一致するI/Oデバイスを、メモリアドレスの場合は、そのメモリアドレスが含まれるメモリ領域を使用するI/Oデバイスを削除する。また、I/Oデバイスを追加する場合、対象のコンピュータ1のI/Oデバイス情報に、追加するI/Oデバイスの情報を追加する。
次に、I/Oデバイスを取り外す場合、プロセッシングヒント制御モジュール82bは、I/Oデバイス情報更新要求を発行したコンピュータ1に備えられるプロセッシングヒント設定モジュール80bに対して、プロセッシングヒント設定情報の削除を指示する。削除される情報は、プロセッシングヒント設定情報保持部804から、取り外すI/Oデバイスに該当するプロセッシングヒント設定情報である。図19のステップS836bにプロセッシングヒント設定情報の削除の指示が示される。図8のデータ構造の例をとると、まず、プロセッシングヒント設定モジュール80bは、取り外すI/OデバイスのBDF番号を用いて、リクエスタID列が一致するプロセッシングヒント設定情報を削除する。そして、プロセッシングヒント設定モジュール80bは、取り外すI/Oデバイスのメモリ情報を用いて、宛先アドレス列に設定された値が取り外すI/Oデバイスのメモリ領域に含まれるプロセッシングヒント設定情報を削除する。
図20は、コンピュータ1上で稼動するOSが、外部モジュールとして、プロセッシングヒント設定モジュール80bに対し、プロセッシングヒントを設定する処理の流れを示したシーケンス図である。図20において、図11と同様の動作については同一の符号を付し、詳細な説明を省略する。
まず、OSは、プロセッシングヒント設定モジュール80bに対して、プロセッシングヒント設定要求受付部824を介して、プロセッシングヒントの設定要求を発行する(図20のステップS820b)。この要求には、少なくとも、コンピュータ1の識別子と、TLPパケットの送信元の識別子と、TLPパケットの送信先の識別子と、設定するプロセッシングヒントと、に関する情報が含まれる。
次に、プロセッシングヒント設定モジュール80bは、制御インタフェース806bを介して、プロセッシングヒント制御モジュール82bに、プロセッシングヒント設定情報の設定要求を送信する(図20のステップS825)。
次に、プロセッシングヒント制御モジュール82bに備えられるプロセッシングヒント構築部822は、プロセッシングヒント設定情報を構築する(図20のステップS826b)。この際に、プロセッシングヒント構築部822は、プロセッシングヒント設定情報の設定要求に含まれるコンピュータ1の識別子を用い、デバイス情報保持部828を参照し、該当するコンピュータ1のI/Oデバイスの情報とメモリ空間に関する情報とを取得する。次にプロセッシングヒント構築部822は、取得したコンピュータ1のI/Oデバイス情報と、プロセッシングヒント構築要求を比較し、プロセッシングヒント構築要求に含まれるTLPパケットの送信元の識別子に該当するI/Oデバイスが存在するかを確認する。また、プロセッシングヒント構築部822は、取得したコンピュータ1のメモリ空間に関する情報と、TLPパケットの宛先メモリアドレスを比較し、宛先メモリアドレスが有効なアドレスかどうかを確認する。このときに、該当するI/Oデバイスが存在しない場合、または、宛先メモリアドレスが無効な場合、プロセッシングヒント構築部822は、プロセッシングヒント設定情報を構築せずに、処理を終了する。
一方、該当するI/Oデバイスが存在し、宛先メモリアドレスが有効な場合、プロセッシングヒント構築部822は、構築したプロセッシングヒント設定情報を、プロセッシングヒント設定モジュール80bに送信する。さらに、プロセッシングヒント構築部822は、構築したプロセッシングヒント設定情報を、プロセッシングヒント設定情報保持部804に登録する(図20のステップS828)。
このようにして、本実施形態のプロセッシングヒント制御モジュール82b及びプロセッシングヒント設定モジュール80bは、プロセッシングヒント設定情報保持部804にプロセッシングヒント設定情報を設定する。
次に、本実施形態の効果について説明する。本実施形態では、プロセッシングヒント制御モジュール82bが、コンピュータ1の外部モジュールとして設けられ、複数のコンピュータ1のプロセッシングヒント設定情報を構築する構成となっている。これにより、コンピュータ1ごとに、プロセッシングヒントを構築する機能を設ける必要が無くなり、プロセッシングヒント設定システムのコストを低減することができる。
[第3の実施形態]
次に、ネットワークスイッチにより、上記プロセッシングヒント設定モジュール及びプロセッシングヒント制御モジュールを実現した本発明の第3の実施形態を説明する。
図21は、本発明の第3の実施形態のネットワークスイッチの構成を表した図である。
このようなネットワークスイッチとしては、図23の拡張ネットワーク7に配置されるネットワークスイッチを利用することができる。
図21を参照すると、このネットワークスイッチは、パケットを転送するスイッチチップ802cと、スイッチチップ802cがパケットをどのポートに出力するかを決定するためのルールを格納するフォワーディングテーブル804cを備える。さらに、ネットワークスイッチは、スイッチチップを制御するコントロールCPU822c(826c)と、コントロールCPU822c(826c)がワーキングメモリとして使用するメモリ828cを備える。ネットワークスイッチは、ネットワークスイッチを外部から設定するためのマネジメントポート824c(830c)を備えている。なお、このようなネットワークスイッチの構成は、一般的なネットワークスイッチの構成と同様のものである。
ネットワークスイッチは、スイッチチップ802cをプロセッシングヒント書き換え部802として動作させ、フォワーディングテーブル804cをプロセッシングヒント設定情報保持部804として利用することができる。また、ネットワークスイッチは、コントロールCPU822c(826c)上で、プロセッシングヒント構築部822、およびデバイス情報取得部826相当の機能を実現するソフトウェアを動作させる。これにより、図10のプロセッシングヒント構築部822およびデバイス情報取得部826に相当する構成を得ることができる。また、メモリ828cはデバイス情報保持部828として利用される。また、コントロールCPU822c(826c)とスイッチチップ802cを接続するバス806cは、制御インタフェース806として利用される。さらに、マネジメントポート824c(830c)はプロセッシングヒント設定要求受付部824、およびデバイス情報登録要求受付部830として利用される。これにより、図13の破線で示すプロセッシングヒント設定モジュール80b及びプロセッシングヒント制御モジュール82bとを組み合わせた構成(図13の8b)を得ることができる。また、プロセッシングヒント制御モジュール82bに相当する構成は、複数のネットワークスイッチを集中制御するコントローラ装置により実現することもできる。
フォワーディングテーブル804cはTCAM(Ternary Content Accessible Memory)などで実現されており、パケットヘッダの任意のフィールドでマッチングすることが可能である。
スイッチチップ802cは、パケットヘッダの任意のフィールドを別の値に書き換えることが可能である。
コントロールCPU822cは、汎用プロセッサであり、Linuxのような汎用OSが稼働する。メモリ828cは、I/Oデバイス情報を保持するほか、OSが稼働するためのメモリとしても使用され、その役割はコンピュータ1におけるメインメモリ3と同等である。
マネジメントポート824cは、拡張ネットワーク7の制御用ネットワークに接続されており、各コンピュータ1も自身が備えるネットワークインタフェースなどを介して、この制御用ネットワークに接続される。各コンピュータ1で稼働するOSが、マネジメントポートとファブリックネットワークを介して、プロセッシングヒント設定装置8に接続する。
以上のように、本発明は、拡張ネットワーク7上のネットワークスイッチにより、実現することができる。
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成、各要素の構成、データ構造等の表現形態は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
上記の実施形態の一部又は全部は、以下の付記のように記載されうるが、以下には限られない。
[付記1]
コンピュータと1つ以上のI/Oデバイスとの間に配置され、前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持する設定情報保持手段とを備える。更に、前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する設定手段と、を備える設定装置。
[付記2]
前記コンピュータは、PCI Expressルートコンプレックスを備え、
前記I/Oデバイスに代わって、パケットに対してプロセッシングヒントを設定する付記1の設定装置。
[付記3]
さらに、
前記コンピュータから、パケットの送信元デバイスの識別子と、パケットの宛先メモリアドレスと、設定するプロセッシングヒントの値と、を含む設定情報の設定要求を受け付ける設定要求受付手段と、
前記I/Oファブリックネットワークに接続された前記デバイスの情報と、前記コンピュータのメモリ空間の情報と、を取得するデバイス情報取得手段と、
前記デバイス情報を用いて、前記パケットの送信元デバイスの識別子に該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在するかどうかを判断し、前記メモリ空間の情報を用いて、前記パケットの宛先メモリアドレスが前記コンピュータのメモリ空間上で有効な値であるかどうかを判断するデバイス確認手段と、
前記送信元デバイスに該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在し、かつ、前記宛先メモリアドレスが有効な値である場合に、前記設定情報保持手段に、前記設定要求を受けた設定情報を格納するプロセッシングヒント格納手段と、
を備える付記1又は付記2の設定装置。
[付記4]
前記デバイス情報取得手段は、前記コンピュータのメモリ空間の情報として、メモリ領域の範囲と、そのメモリ領域の割当先デバイスと、そのメモリ領域に対して、前記パケットを転送することができるか否かを示すフラグ情報と、を取得し、
前記デバイス確認手段は、前記フラグ情報を参照し、前記パケットの宛先メモリアドレスが、前記パケットを転送することができる領域かどうかを確認し、
前記プロセッシングヒント格納手段は、前記デバイス確認手段の確認の結果、前記パケットが、宛先メモリアドレスの領域に転送できない場合、設定情報を破棄する付記1から付記3いずれか一に記載の設定装置。
[付記5]
さらに、前記I/Oファブリックネットワーク内に備えられたI/Oデバイスのいずれかが削除された際に、削除されたI/Oデバイスの識別子を用いて、前記設定情報保持手段から、該当する設定情報を削除する設定情報削除手段を備える設定装置。設定情報削除手段を備える設定装置は付記1から付記4いずれか一に記載の設定装置に適用できる。
[付記6]
コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持する設定情報保持手段と、
前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する設定手段と、を備えた1つ以上のコンピュータに接続され、
前記1つ以上のコンピュータからの前記設定情報の設定要求に応じて、前記設定情報保持手段に設定情報を設定する制御装置。
[付記7]
さらに、
前記コンピュータから、パケットの送信元デバイスの識別子と、パケットの宛先メモリアドレスと、設定するプロセッシングヒントの値と、を含む設定情報の設定要求を受け付ける設定要求受付手段と、
前記I/Oファブリックネットワークに接続された前記デバイスの情報と、前記コンピュータのメモリ空間の情報と、を取得するデバイス情報取得手段と、
前記デバイス情報を用いて、前記パケットの送信元デバイスの識別子に該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在するかどうかを判断し、前記メモリ空間の情報を用いて、前記パケットの宛先メモリアドレスが前記コンピュータのメモリ空間上で有効な値であるかどうかを判断するデバイス確認手段と、
前記送信元デバイスに該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在し、かつ、前記宛先メモリアドレスが有効な値である場合に、前記設定情報保持手段に、前記設定要求を受けた設定情報を格納するプロセッシングヒント格納手段と、
を備える付記6に記載の制御装置。
[付記8]
さらに、前記I/Oファブリックネットワーク内に備えられたI/Oデバイスのいずれかが削除された際に、削除されたI/Oデバイスの識別子を用いて、前記コンピュータの前記設定情報保持手段から、該当する設定情報を削除する設定情報削除手段を備える設定装置。設定情報削除手段を備える設定装置は、付記6又は付記7に記載の制御装置に適用できる。
[付記9]
設定情報保持手段として前記設定情報を保持可能なフォワーディングテーブルと、
前記設定手段として、前記フォワーディングテーブルに登録された設定情報に基づいて、前記パケットにプロセッシングヒントを設定するスイッチチップと、を備え、
付記1から付記4いずれか一に記載の設定装置として機能するネットワークスイッチ。
[付記10]
付記9のネットワークスイッチにおいて、
前記デバイス情報取得手段、デバイス確認手段及びプロセッシングヒント格納手段として、
前記コンピュータから設定情報の設定要求を受け付け、前記I/Oファブリックネットワークに接続されたI/Oデバイスの情報と、前記コンピュータのメモリ空間の情報を取得するためのマネジメントポートと、
パケットの送信元デバイスの識別子に該当するI/Oデバイスが、前記I/Oファブリックネットワークに存在するかどうかを判断し、前記パケットの宛先メモリアドレスが、前記コンピュータのメモリ空間上で有効な値であるかどうかを判断し、前記送信元デバイスに該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在し、前記宛先メモリアドレスが有効な値である場合に、前記フォワーディングテーブルに、前記設定要求を受けた設定情報を格納するコントロールCPUと、
を備え、付記3の設定装置として機能するネットワークスイッチ。
[付記11]
前記マネジメントポートから、前記I/Oファブリックネットワークに接続されたI/Oデバイスが削除されたことを示す通知がなされた場合に、前記コントロールCPUが、該当するI/Oデバイスの識別子を用いて、前記フォワーディングテーブルから該当する設定情報を削除する付記10に記載のネットワークスイッチ。
[付記12]
前記マネジメントポートを介して、前記コンピュータのメモリ空間の情報として、メモリ領域の範囲と、そのメモリ領域の割当先デバイスと、そのメモリ領域に対して、前記パケットを転送することができるか否かを示すフラグ情報と、を取得し、
前記コントロールCPUは、前記フラグ情報を参照し、前記パケットの宛先メモリアドレスが、前記パケットを転送することができる領域かどうかを確認し、前記デバイス確認手段の確認の結果、前記パケットが、宛先メモリアドレスの領域に転送できない場合に、前記設定要求を受けた設定情報を破棄する、付記10又は付記11に記載のネットワークスイッチ。
[付記13]
コンピュータと1つ以上のI/Oデバイスとの間に配置された設定装置において、前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持するステップと、前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定するステップと、を含む設定方法。
[付記14]
コンピュータと1つ以上のI/Oデバイスとの間に配置された設定装置を構成するコンピュータに、前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持する処理と、前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する処理と、を実行させるプログラム。
なお、上記付記13、付記14は、付記1と同様に、付記2〜付記5に展開することが可能である。
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
この出願は、2014年4月11日に出願された日本出願特願2014−082209を基礎とする優先権を主張し、その開示の全てをここに取り込む。
1、1b コンピュータ
2 CPU
3 メインメモリ
4 I/Oコントローラ
5 PCI Expressデバイス
6 ストレージデバイス
7 拡張ネットワーク
8、8b プロセッシングヒント設定装置
9 マネジメントインタフェース
40 PCI Expressルートコンプレックス
41 シリアルATAコントローラ
42 トランザクションレイヤ
44 データリンクレイヤ
46 物理レイヤ
50 TLPプリフィックス
52 TLPヘッダ
54 TLPデータ
56 TLPダイジェスト
502 ST[15:8]フィールド
522 ST[7:0]フィールド
524 アドレス[31:2]フィールド
526 リクエスタIDフィールド
528 BDF番号フィールド
530 長さフィールド
532 PHフィールド
534 THフィールド
536 Typeフィールド
80、80b プロセッシングヒント設定モジュール
82、82b プロセッシングヒント制御モジュール
802 プロセッシングヒント書き換え部
804 プロセッシングヒント設定情報保持部
805 チェックコード再計算部
806、806b 制御インタフェース
822 プロセッシングヒント構築部
824 プロセッシングヒント設定要求受付部
826 デバイス情報取得部
828 デバイス情報保持部
830 デバイス情報登録要求受付部
8042 リクエスタID列
8046 宛先アドレス列
8048 TPH値列
8049 PH値列
8050 長さ値列
802c スイッチチップ
804c フォワーディングテーブル
806c バス
822c(826c)コントロールCPU
824c(830c)マネジメントポート
828c メモリ

Claims (10)

  1. コンピュータと1つ以上のI/Oデバイスとの間に配置され、
    前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持する設定情報保持手段と、
    前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する設定手段と、
    を備える設定装置。
  2. 前記コンピュータは、PCI Expressルートコンプレックスを備え、
    前記I/Oデバイスに代わって、パケットに対してプロセッシングヒントを設定する請求項1の設定装置。
  3. 前記コンピュータから、パケットの送信元デバイスの識別子と、パケットの宛先メモリアドレスと、設定するプロセッシングヒントの値と、を含むプロセッシングヒント設定情報の設定要求を受け付ける設定要求受付手段と、
    前記I/Oファブリックネットワークに接続された前記デバイスの情報と、前記コンピュータのメモリ空間の情報と、を取得するデバイス情報取得手段と、
    前記デバイス情報を用いて、前記パケットの送信元デバイスの識別子に該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在するかどうかを判断し、前記メモリ空間の情報を用いて、前記パケットの宛先メモリアドレスが前記コンピュータのメモリ空間上で有効な値であるかどうかを判断するデバイス確認手段と、
    前記送信元デバイスに該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在し、かつ、前記宛先メモリアドレスが有効な値である場合に、前記設定情報保持手段に、前記設定要求を受けた設定情報を格納するプロセッシングヒント格納手段と、
    を備える請求項1又は2の設定装置。
  4. 前記デバイス情報取得手段は、前記コンピュータのメモリ空間の情報として、メモリ領域の範囲と、そのメモリ領域の割当先デバイスと、そのメモリ領域に対して、前記パケットを転送することができるか否かを示すフラグ情報と、を取得し、
    前記デバイス確認手段は、前記フラグ情報を参照し、前記パケットの宛先メモリアドレスが、前記パケットを転送することができる領域かどうかを確認し、
    前記プロセッシングヒント格納手段は、前記デバイス確認手段の確認の結果、前記パケットが、宛先メモリアドレスの領域に転送できない場合、設定情報を破棄する、請求項3の設定装置。
  5. さらに、前記I/Oファブリックネットワーク内に備えられたI/Oデバイスのいずれかが削除された際に、削除されたI/Oデバイスの識別子を用いて、前記設定情報保持手段から、該当する設定情報を削除する設定情報削除手段を備える
    請求項1から4いずれか一に記載の設定装置。
  6. コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持する設定情報保持手段と、
    前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する設定手段と、を備えた1つ以上のコンピュータに接続され、
    前記1つ以上のコンピュータからの前記設定情報の設定要求に応じて、前記設定情報保持手段に設定情報を設定する制御装置。
  7. さらに、
    前記コンピュータから、パケットの送信元デバイスの識別子と、パケットの宛先メモリアドレスと、設定するプロセッシングヒントの値と、を含む設定情報の設定要求を受け付ける設定要求受付手段と、
    前記I/Oファブリックネットワークに接続された前記デバイスの情報と、前記コンピュータのメモリ空間の情報と、を取得するデバイス情報取得手段と、
    前記デバイス情報を用いて、前記パケットの送信元デバイスの識別子に該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在するかどうかを判断し、前記メモリ空間の情報を用いて、前記パケットの宛先メモリアドレスが前記コンピュータのメモリ空間上で有効な値であるかどうかを判断するデバイス確認手段と、
    前記送信元デバイスに該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在し、かつ、前記宛先メモリアドレスが有効な値である場合に、前記設定情報保持手段に、前記設定要求を受けた設定情報を格納するプロセッシングヒント格納手段と、
    を備える請求項6の制御装置。
  8. 設定情報保持手段として前記設定情報を保持可能なフォワーディングテーブルと、
    前記設定手段として、前記フォワーディングテーブルに登録された設定情報に基づいて、前記パケットにプロセッシングヒントを設定するスイッチチップと、を備え、
    請求項1から5いずれか一に記載の設定装置として機能するネットワークスイッチ。
  9. 前記デバイス情報取得手段、デバイス確認手段及びプロセッシングヒント格納手段として、
    前記コンピュータから設定情報の設定要求を受け付け、前記I/Oファブリックネットワークに接続されたI/Oデバイスの情報と、前記コンピュータのメモリ空間の情報を取得するためのマネジメントポートと、
    パケットの送信元デバイスの識別子に該当するI/Oデバイスが、前記I/Oファブリックネットワークに存在するかどうかを判断し、前記パケットの宛先メモリアドレスが、前記コンピュータのメモリ空間上で有効な値であるかどうかを判断し、前記送信元デバイスに該当するI/Oデバイスが、前記I/Oファブリックネットワーク中に存在し、前記宛先メモリアドレスが有効な値である場合に、前記フォワーディングテーブルに、前記設定要求を受けた設定情報を格納するコントロールCPUと、
    を備え、請求項3の設定装置として機能するネットワークスイッチ。
  10. コンピュータと1つ以上のI/Oデバイスとの間に配置された設定装置において、
    前記コンピュータとI/Oデバイスとの間のI/Oファブリックネットワーク中を流れるパケットのヘッダ情報に基づいて、プロセッシングヒントを設定するための設定情報を保持し、
    前記設定情報に定められた条件にマッチするパケットに対してプロセッシングヒントを設定する、
    設定方法。
JP2016512609A 2014-04-11 2015-04-10 設定装置、制御装置、設定方法及びネットワークスイッチ Pending JPWO2015155997A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014082209 2014-04-11
JP2014082209 2014-04-11
PCT/JP2015/002019 WO2015155997A1 (ja) 2014-04-11 2015-04-10 設定装置、制御装置、設定方法及びネットワークスイッチ

Publications (1)

Publication Number Publication Date
JPWO2015155997A1 true JPWO2015155997A1 (ja) 2017-04-27

Family

ID=54287581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016512609A Pending JPWO2015155997A1 (ja) 2014-04-11 2015-04-10 設定装置、制御装置、設定方法及びネットワークスイッチ

Country Status (2)

Country Link
JP (1) JPWO2015155997A1 (ja)
WO (1) WO2015155997A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157153B2 (en) * 2016-02-03 2018-12-18 Qualcomm Incorporated Inline cryptographic engine (ICE) for peripheral component interconnect express (PCIe) systems
KR102405593B1 (ko) * 2017-08-23 2022-06-08 삼성전자 주식회사 전자 장치 및 그의 데이터 운용 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1728170A2 (en) * 2004-03-19 2006-12-06 Koninklijke Philips Electronics N.V. Signaling arrangement and approach therefor
JP2009075718A (ja) * 2007-09-19 2009-04-09 Hitachi Ltd 仮想i/oパスの管理方法、情報処理システム及びプログラム
US8510509B2 (en) * 2007-12-18 2013-08-13 International Business Machines Corporation Data transfer to memory over an input/output (I/O) interconnect
US7849252B2 (en) * 2008-05-30 2010-12-07 Intel Corporation Providing a prefix for a packet header
CN103250392B (zh) * 2010-12-09 2016-12-14 日本电气株式会社 计算机系统、控制器和网络监视方法

Also Published As

Publication number Publication date
WO2015155997A1 (ja) 2015-10-15

Similar Documents

Publication Publication Date Title
US9672143B2 (en) Remote memory ring buffers in a cluster of data processing nodes
JP6381541B2 (ja) データ処理システム中で命令を処理する方法、回路構成、集積回路デバイス、プログラム製品(リモート処理ノード中のアドレス変換データ構造を更新するための変換管理命令)
TWI570563B (zh) 後置中斷架構
JP4958111B2 (ja) データ処理システム内でネットワーク入出力(i/o)アダプタと通信するためにネットワーク・デバイス・ドライバによって使用されるバッファ・データ構造にアクセスするためのアドレス変換を管理するための方法、コンピュータ・プログラム、および装置(キュー・データ構造およびキャッシュされたアドレス変換を使用してネットワーク・アダプタと通信するための装置および方法)
CN106575206B (zh) 计算机系统中的存储器写入管理
EP2016499B1 (en) Migrating data that is subject to access by input/output devices
JP5452733B2 (ja) 計算機システムおよびルーティング制御方法
JP5310175B2 (ja) スイッチシステム、及びスイッチシステムの制御方法
JPWO2014038070A1 (ja) 情報処理装置,並列計算機システム及び情報処理装置の制御方法
EP4220419B1 (en) Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests
JP5928087B2 (ja) スイッチ、情報処理装置および通信制御方法
US11201838B2 (en) System, apparatus and method for increasing efficiency of link communications
JP2008102930A (ja) データ処理システム内でシステム・イメージとローカルに接続された外部記憶装置との間の動作を実行するための方法、コンピュータ・プログラム、および装置(キャッシュされたアドレス変換を使用して入出力アダプタと通信するための装置および方法)
WO2016065611A1 (zh) 访问文件的方法、系统和主机
JP5621918B2 (ja) 情報処理装置、並列計算機システムおよび演算処理装置の制御方法
US10097658B2 (en) Traffic control of packet transfer
JP2004260806A (ja) 境界ワード格納機構を用いた読み取り−修正−書き込み動作を回避する方法及びシステム
JP2008181389A (ja) ノード制御装置および情報処理装置
WO2015155997A1 (ja) 設定装置、制御装置、設定方法及びネットワークスイッチ
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
TWI791134B (zh) 通信裝置、資訊處理系統及通信方法
CN104702508A (zh) 表项动态更新方法及系统
WO2016065610A1 (zh) 访问文件的方法、分布式存储系统和存储节点
JP2018504689A5 (ja)
US8375156B2 (en) Intelligent PCI-express transaction tagging