JP2021048513A - 情報処理装置、情報処理方法および仮想マシン接続管理プログラム - Google Patents
情報処理装置、情報処理方法および仮想マシン接続管理プログラム Download PDFInfo
- Publication number
- JP2021048513A JP2021048513A JP2019170412A JP2019170412A JP2021048513A JP 2021048513 A JP2021048513 A JP 2021048513A JP 2019170412 A JP2019170412 A JP 2019170412A JP 2019170412 A JP2019170412 A JP 2019170412A JP 2021048513 A JP2021048513 A JP 2021048513A
- Authority
- JP
- Japan
- Prior art keywords
- data
- coprocessor
- fpga
- storage area
- receive buffer
- 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.)
- Granted
Links
- 230000010365 information processing Effects 0.000 title claims description 41
- 238000003672 processing method Methods 0.000 title claims description 5
- 238000012545 processing Methods 0.000 claims abstract description 154
- 230000015654 memory Effects 0.000 claims abstract description 28
- 238000000034 method Methods 0.000 claims description 68
- 230000008569 process Effects 0.000 claims description 57
- 238000012546 transfer Methods 0.000 claims description 30
- 230000006870 function Effects 0.000 description 106
- 238000007726 management method Methods 0.000 description 20
- 238000004891 communication Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 16
- 230000009471 action Effects 0.000 description 12
- 230000004044 response Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000052 comparative effect Effects 0.000 description 4
- 238000013144 data compression Methods 0.000 description 4
- 230000001174 ascending effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 238000005315 distribution function Methods 0.000 description 1
- 238000005401 electroluminescence Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17337—Direct connection machines, e.g. completely connected computers, point to point communication networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
ここで、仮想スイッチは、中継機能に加えて、暗号処理やデータ圧縮などの拡張機能を実行することがある。一方、コプロセッサの演算リソースは比較的小さく、中継機能および拡張機能の両方を単一のコプロセッサにオフロードするのが難しいことがある。そこで、中継機能と拡張機能とを各々別個のコプロセッサにオフロードすることが考えられる。
また、1つの態様では、仮想マシン接続管理プログラムが提供される。
[第1の実施の形態]
第1の実施の形態を説明する。
情報処理装置1は、1または複数の仮想マシンを実行する。情報処理装置1は、例えば、ハイパーバイザ(図1では図示を省略している)を実行し、ハイパーバイザの機能により、情報処理装置1の演算リソースを、各仮想マシンに割り当てる。
ここで、シングルキューである受信バッファ11aに受信順にデータを書き込み、仮想マシン21により順番に処理させるため、コプロセッサ13,14のうち、コプロセッサ13のみに、受信バッファ11aの記憶領域を割り当てることも考えられる。しかし、このようにすると、拡張処理対象の受信データをコプロセッサ13からコプロセッサ14に送信した後、受信バッファ11aに書き込むために、コプロセッサ14からコプロセッサ13に対する折り返しの通信が発生する。このため、バス15の帯域が多く消費されて、情報処理装置1の性能が低下する可能性がある。
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
サーバ100は、CPU101、RAM102、HDD103、FPGA104,105、画像信号処理部106、入力信号処理部107、媒体リーダ108およびNIC109を有する。これらのハードウェアは、サーバ100のバス111に接続される。なお、CPU101は、第1の実施の形態のプロセッサ12に対応する。RAM102は、第1の実施の形態のメモリ11に対応する。
図4は、仮想化機構の例を示す図である。
サーバ100は、ハードウェア110を有し、ハードウェア110を用いて、ハイパーバイザ120および仮想マシン130,130a,130bを動作させる。
ハイパーバイザ120は、サーバ100のハードウェア110を、仮想マシン130,130a,130bに割り振ることで、サーバ100上に、仮想マシン130,130a,130bを動作させる。ハイパーバイザ120は、仮想スイッチの機能を有する。ただし、ハイパーバイザ120は、仮想スイッチの機能を、FPGA104,105にオフロードする。このため、ハイパーバイザ120は、オフロードされた仮想スイッチに対する制御機能を実行すればよく、仮想スイッチの中継機能や拡張機能を実行しなくてよい。
なお、サーバ200も、サーバ100と同様に、ハイパーバイザおよび仮想マシンを実行する。
例えば、仮想スイッチ140の中継機能がFPGA104にオフロードされる。仮想スイッチ140は、仮想ポート141,142,143,144,145を有する。仮想ポート141〜145は、物理ポートまたは仮想マシンと接続される仮想的なインタフェースである。
CPU101は、IO(Input/Output)コントローラ101a,101bを有する。FPGA104は、IOコントローラ101aに接続されている。FPGA105は、IOコントローラ101bに接続されている。FPGA104,105の間のIOコントローラ101a,101bを介する通信経路は、バス111の一部である。FPGA104を識別する番号を「#1」とする。FPGA105を識別する番号を「#2」とする。
vnic131は、受信キュー132および送信キュー133を有する。また、仮想マシン130は、受信バッファ134を有する。受信バッファ134は、RAM102上の記憶領域により実現され、仮想マシン130を宛先とする受信データが書き込まれる。
ハイパーバイザ120は、受信キュー121,122および調停部123を有する。受信キュー121,122は、RAM102上の記憶領域を用いて実現される。
仮想ポート143aは、調停部123から受信バッファ134のうちの書き込み先の記憶領域のインデックスを取得し、当該記憶領域に対してデータをDMA転送する。仮想ポート143aは、受信バッファ134への書き込み(DMA転送)に応じて、デスクリプタ122aのused_idxを更新する。
図8は、サーバの機能例(続き)を示す図である。
FPGA104は、仮想ポート143,144,146,…、中継機能150、記憶部161、仮想ポート処理部162、FPGA間転送処理部163およびIOコントローラ164を有する。図8では、仮想ポート141,142,145の図示を省略している。
中継機能150は、物理ポート109aを介して外部から受信したデータを、宛先の仮想マシンに中継する。中継機能150は、検索部151、アクション適用部152およびクロスバースイッチ153を有する。なお、データはパケットと呼ばれる単位で受信される。パケット単位の処理を説明する際に、「パケット」の語を用いることがある。
フィルタ部172は、予約部190を介してFPGA104により転送された受信データを取得する。フィルタ部172は、記憶部171に記憶されたフィルタルールに基づいて、FPGA104から受信したデータの出力先の仮想ポートを特定し、クロスバースイッチ174に供給する。
記憶部181は、DMAメモリ情報を記憶する。DMAメモリ情報は、前述のように、仮想ポートに対応するDMA転送先の受信バッファを識別する情報である。
図9は、予約部の処理の例を示す図である。
更新部192は、受信データ60のメタデータから、出力先の仮想ポートに所要される記憶領域の数をカウントし、要求数カウンタ191を更新する。
ポート情報記憶部124は、RAM102の所定の記憶領域を用いて実現される。ポート情報記憶部124は、インデックスヒストリ125およびインデックス管理情報126を有する。
fpga2 last_used_idxは、受信バッファ134において、FPGA105により書き込み済である記憶領域の終端のインデックスを示す。
分配処理は、受信バッファ134における、インデックスで区分される記憶領域を、FPGA104,105に割り当てる処理である。例えば、調停部123は仮想マシン130に関して次のように分配処理を行う(他の仮想マシンについても同様の処理となる)。
続いて、FPGA104は、受信キュー121のデスクリプタ121aで割り当てられているavail_idxの小さい方から順に、当該avail_idxに対応する受信バッファ134の記憶領域にデータを書き込む。例えば、FPGA104は、受信バッファ134の0≦i<2の記憶領域にデータを書き込んだとする。そして、FPGA104は、デスクリプタ121aのused_idxを0から2に更新する。
図12は、調停部による調停処理の例を示す図である。
count=MIN(used_idx,H)−last_used_idx ・・・(1)
ここで、MINは、引数のうちの最小値をとる関数である。式(1)におけるused_idxは、選択したFPGA側のデスクリプタ(デスクリプタ121aまたはデスクリプタ122a)のused_idxである。式(1)におけるlast_used_idxは、インデックス管理情報126における、選択したFPGAに対応する値となる。
続いて、FPGA105は、受信キュー122のデスクリプタ122aで割り当てられているavail_idxの小さい方から順に、当該avail_idxに対応する受信バッファ134の記憶領域にデータを書き込む。
調停部123は、count=2≧1であるため、デスクリプタ132aのused_idxを、4+count=4+2=6に更新する。また、調停部123は、インデックス管理情報126におけるfpga2 last_used_idxを0+count=0+2=2に更新する。ここで、fpga2 last_used_idx=2は、H=2に等しくなるので、調停部123は、インデックスヒストリ125のFPGA105の先頭データ(6,2)を削除する。
次に、サーバ100の処理手順を説明する。以下では、仮想マシン130を宛先とするデータを受信した場合を例示するが、他の仮想マシンを宛先とするデータを受信した場合も同様の手順となる。まず、FPGA104,105の処理手順を説明する。
(S10)FPGA104は、物理ポート109aを介して、データを受信する。
(S11)FPGA104は、受信したデータが拡張処理対象であるか否かを判定する。拡張処理対象である場合、ステップS12に処理が進む。拡張処理対象でない場合、ステップS13に処理が進む。例えば、FPGA104は、受信したデータのヘッダ情報などを基に、ヘッダ情報に対するルールによって予め定められたアクションを特定することで、受信したデータが拡張処理対象であるか否かを判定する。
(S15)FPGA104は、FPGA104(FPGA#1)側のused_idxを更新する。すなわち、FPGA104は、デスクリプタ121aのused_idxに、データを書き込んだ記憶領域の数(当該記憶領域に対応するインデックスの数)を加算する。そして、中継機能用FPGAの処理が終了する。
(S20)FPGA105は、中継機能用FPGA(すなわち、FPGA104)から拡張処理対象のデータを受信する。
(S22)FPGA105は、ステップS20で受信したデータのサイズに応じた拡張処理後のデータの書き込みサイズを求め、当該書き込みサイズに基づいて受信バッファ134の記憶領域の要求数を求める。FPGA105は、拡張処理後データの出力先の仮想ポート143aに対応する受信バッファ134の記憶領域の要求数を更新する。仮想ポート毎の要求数は前述のように要求数カウンタ191に登録されている。
(S24)FPGA105は、受信バッファ134の記憶領域の割当結果を調停部123から取得する。
(S26)FPGA105は、FPGA105(FPGA#2)側のused_idxを更新する。すなわち、FPGA105は、デスクリプタ122aのused_idxに、データを書き込んだ記憶領域の数(当該記憶領域に対応するインデックスの数)を加算する。そして、拡張機能用FPGAの処理が終了する。
図16は、中継機能用FPGAに対する分配処理の例を示すフローチャートである。
(S40)調停部123は、FPGA105(FPGA#2)から受信バッファ134の記憶領域の割当要求を受信する。
(S42)調停部123は、FPGA105(FPGA#2)に、受信バッファ134の未割当領域を先頭から順に割り当てる。調停部123は、FPGA105に対応する受信キュー122のデスクリプタ122aのavail_idxを割り当てた記憶領域の分だけ更新する。調停部123は、インデックスヒストリ125において、FPGA105に対し、今回割り当てた記憶領域に対応する、デスクリプタ132aにおける終端インデックスと、デスクリプタ122aのavail_idxの組を記録する。
(S44)調停部123は、インデックス管理情報126における要求数が0であるか否かを判定する。要求数≠0の場合、ステップS42に処理が進む。要求数=0の場合、拡張機能用FPGAに対する分配処理が終了する。
調停部123は、例えば、デスクリプタ121aのused_idxまたはデスクリプタ122aのused_idxが更新されたときに、あるいは、所定の周期で下記の手順を実行する。
(S53)調停部123は、仮想マシン130側used_idx(デスクリプタ132aにおけるused_idx)と、インデックス管理情報126における該当のFPGAのlast_used_idxの各々にcountを加算する。
このように、調停部123は、FPGA104による受信バッファ134に対するデータの書き込み、または、FPGA105による受信バッファ134に対する拡張処理後のデータの書き込みを検出する。すると、調停部123は、仮想マシン130により参照される、受信バッファ134のうちの書き込み済の記憶領域を示す情報(デスクリプタ132aのused_idx)を更新することで、仮想マシン130に当該書き込み済の記憶領域を通知する。デスクリプタ132aは、仮想マシン130により参照される既存の情報である。調停部123の調停処理によって、仮想マシン130の処理に影響を及ぼさないように、FPGA104,105の両方からの受信バッファ134への書き込みを可能にできる。
図19は、仮想マシンの受信処理の例を示すフローチャートである。
(S62)仮想マシン130は、解放した分の記憶領域を受信バッファ134に割り当てる。仮想マシン130は、新たに割り当てた分だけ、デスクリプタ132aのavail_idxを更新する。そして、仮想マシン130の受信処理が終了する。
調停部123の制御により、FPGA104,105の各々は、仮想マシン130の受信バッファ134への書き込みを行える。例えば、FPGA104は、受信したデータが拡張処理対象である場合、バス111を介して、当該データをFPGA105に転送する。FPGA105は、当該データに対して拡張処理を実行し、拡張処理後のデータを、仮想マシン130の受信バッファ134に書き込む。これにより、仮想マシン130は、当該データに対する受信処理を行える。
比較例では、FPGA104のみが受信バッファ134への書き込みを行う場合を考える。例えば、FPGA104は、受信したデータが拡張処理対象である場合、バス111を介して、当該データをFPGA105に転送する。FPGA105は、当該データに対して拡張処理を実行し、拡張処理後のデータを、FPGA104に転送する。FPGA104は、拡張処理後のデータを仮想マシン130の受信バッファ134に書き込む。これにより、仮想マシン130は、当該データに対する受信処理を行える。
10 ハードウェア
11 メモリ
11a 受信バッファ
12 プロセッサ
13,14 コプロセッサ
13a 中継処理部
14a 拡張処理部
15 バス
20 ソフトウェア
21 仮想マシン
Claims (9)
- 自装置で動作する仮想マシンを宛先とするデータが書き込まれる受信バッファを備えるメモリと、
仮想スイッチの中継処理のオフロード先である第1のコプロセッサに、前記受信バッファの第1の記憶領域を継続的に割り当て、前記仮想スイッチの拡張処理のオフロード先である第2のコプロセッサにも、前記第2のコプロセッサから前記受信バッファの割当要求を受け付けたときに、前記受信バッファの第2の記憶領域を割り当てるプロセッサと、
を有する情報処理装置。 - 前記プロセッサは、
前記第1の記憶領域の少なくとも一部の領域が解放されると、解放された領域のサイズに応じた追加の記憶領域を前記第1のコプロセッサに割り当て、
前記受信バッファの記憶領域の割り当て順に、前記記憶領域に書き込まれたデータを処理し、処理済の前記記憶領域を解放する、
請求項1記載の情報処理装置。 - 前記プロセッサは、前記第2のコプロセッサに、前記割当要求で要求されるサイズの前記第2の記憶領域を割り当てる、
請求項1または2記載の情報処理装置。 - 前記仮想マシンを宛先とする前記データを受信すると、前記データが前記拡張処理の対象であるか否かを判定し、前記データが前記拡張処理の対象である場合に前記第2のコプロセッサに前記データを転送し、前記データが前記拡張処理の対象でない場合に前記データを前記第1の記憶領域に書き込む前記第1のコプロセッサと、
前記第1のコプロセッサから前記拡張処理の対象の前記データを受信し、前記データに対して前記拡張処理を行い、前記拡張処理後の前記データを前記第2の記憶領域に書き込む前記第2のコプロセッサと、
を更に有する請求項1乃至3の何れか1項に記載の情報処理装置。 - 前記第2のコプロセッサは、前記第1のコプロセッサから前記拡張処理の対象の前記データを受信すると、前記データに対する前記拡張処理を開始するとともに、前記割当要求を前記プロセッサに通知する、
請求項4記載の情報処理装置。 - 前記プロセッサは、前記第1のコプロセッサによる前記受信バッファに対する前記データの書き込み、または、前記第2のコプロセッサによる前記受信バッファに対する前記拡張処理後の前記データの書き込みを検出すると、前記仮想マシンにより参照される、前記受信バッファのうちの書き込み済の記憶領域を示す情報を更新することで、前記仮想マシンに前記書き込み済の記憶領域を通知する、
請求項1乃至5の何れか1項に記載の情報処理装置。 - 前記受信バッファは、シングルキューである、
請求項1乃至6の何れか1項に記載の情報処理装置。 - コンピュータが、
仮想スイッチの中継処理のオフロード先である第1のコプロセッサに、前記コンピュータで動作する仮想マシンを宛先とするデータが書き込まれる受信バッファの第1の記憶領域を継続的に割り当て、
前記仮想スイッチの拡張処理のオフロード先である第2のコプロセッサにも、前記第2のコプロセッサから前記受信バッファの割当要求を受け付けたときに、前記受信バッファの第2の記憶領域を割り当てる、
情報処理方法。 - コンピュータに、
仮想スイッチの中継処理のオフロード先である第1のコプロセッサに、前記コンピュータで動作する仮想マシンを宛先とするデータが書き込まれる受信バッファの第1の記憶領域を継続的に割り当て、
前記仮想スイッチの拡張処理のオフロード先である第2のコプロセッサにも、前記第2のコプロセッサから前記受信バッファの割当要求を受け付けたときに、前記受信バッファの第2の記憶領域を割り当てる、
処理を実行させる仮想マシン接続管理プログラム。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019170412A JP7280508B2 (ja) | 2019-09-19 | 2019-09-19 | 情報処理装置、情報処理方法および仮想マシン接続管理プログラム |
EP20192975.9A EP3796168A1 (en) | 2019-09-19 | 2020-08-26 | Information processing apparatus, information processing method, and virtual machine connection management program |
US17/010,406 US20210089343A1 (en) | 2019-09-19 | 2020-09-02 | Information processing apparatus and information processing method |
CN202010968057.6A CN112527494A (zh) | 2019-09-19 | 2020-09-15 | 信息处理设备和方法以及非暂态计算机可读记录介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019170412A JP7280508B2 (ja) | 2019-09-19 | 2019-09-19 | 情報処理装置、情報処理方法および仮想マシン接続管理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021048513A true JP2021048513A (ja) | 2021-03-25 |
JP7280508B2 JP7280508B2 (ja) | 2023-05-24 |
Family
ID=72266142
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019170412A Active JP7280508B2 (ja) | 2019-09-19 | 2019-09-19 | 情報処理装置、情報処理方法および仮想マシン接続管理プログラム |
Country Status (4)
Country | Link |
---|---|
US (1) | US20210089343A1 (ja) |
EP (1) | EP3796168A1 (ja) |
JP (1) | JP7280508B2 (ja) |
CN (1) | CN112527494A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4109264A1 (en) | 2021-06-25 | 2022-12-28 | Fujitsu Limited | Information processing apparatus, information processing program, and method for processing information |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11809908B2 (en) | 2020-07-07 | 2023-11-07 | SambaNova Systems, Inc. | Runtime virtualization of reconfigurable data flow resources |
US11782729B2 (en) | 2020-08-18 | 2023-10-10 | SambaNova Systems, Inc. | Runtime patching of configuration files |
US11392740B2 (en) | 2020-12-18 | 2022-07-19 | SambaNova Systems, Inc. | Dataflow function offload to reconfigurable processors |
US11182221B1 (en) | 2020-12-18 | 2021-11-23 | SambaNova Systems, Inc. | Inter-node buffer-based streaming for reconfigurable processor-as-a-service (RPaaS) |
US11237880B1 (en) | 2020-12-18 | 2022-02-01 | SambaNova Systems, Inc. | Dataflow all-reduce for reconfigurable processor systems |
US11782760B2 (en) | 2021-02-25 | 2023-10-10 | SambaNova Systems, Inc. | Time-multiplexed use of reconfigurable hardware |
US11200096B1 (en) | 2021-03-26 | 2021-12-14 | SambaNova Systems, Inc. | Resource allocation for reconfigurable processors |
US20230297527A1 (en) * | 2022-03-18 | 2023-09-21 | SambaNova Systems, Inc. | Direct Access to Reconfigurable Processor Memory |
CN115412502B (zh) * | 2022-11-02 | 2023-03-24 | 之江实验室 | 一种网络端口扩展和报文快速均衡处理方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130125125A1 (en) * | 2010-07-21 | 2013-05-16 | Shuichi Karino | Computer system and offloading method in computer system |
US20150033222A1 (en) * | 2013-07-25 | 2015-01-29 | Cavium, Inc. | Network Interface Card with Virtual Switch and Traffic Flow Policy Enforcement |
US20170063701A1 (en) * | 2015-08-24 | 2017-03-02 | Fujitsu Limited | Bandwidth control circuit, arithmetic processing apparatus, and bandwidth control method for apparatus |
KR20170057770A (ko) * | 2015-11-17 | 2017-05-25 | 에스케이텔레콤 주식회사 | 가상 스위치의 패킷 전송 제어 방법 |
US20180095750A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Hardware accelerators and methods for offload operations |
JP2018137616A (ja) * | 2017-02-22 | 2018-08-30 | 株式会社アルチザネットワークス | アクセラレータ |
US20190044892A1 (en) * | 2018-09-27 | 2019-02-07 | Intel Corporation | Technologies for using a hardware queue manager as a virtual guest to host networking interface |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9401967B2 (en) * | 2010-06-09 | 2016-07-26 | Brocade Communications Systems, Inc. | Inline wire speed deduplication system |
US8473689B2 (en) * | 2010-07-27 | 2013-06-25 | Texas Instruments Incorporated | Predictive sequential prefetching for data caching |
KR101684042B1 (ko) * | 2012-03-28 | 2016-12-07 | 인텔 코포레이션 | 네트워크 장치에서 프로세싱 요소를 위한 공유 버퍼 |
US8904068B2 (en) * | 2012-05-09 | 2014-12-02 | Nvidia Corporation | Virtual memory structure for coprocessors having memory allocation limitations |
JP2016170669A (ja) | 2015-03-13 | 2016-09-23 | 富士通株式会社 | 負荷分散機能配備方法、負荷分散機能配備装置および負荷分散機能配備プログラム |
US11157422B2 (en) * | 2017-03-31 | 2021-10-26 | Intel Corporation | Shared memory for intelligent network interface cards |
-
2019
- 2019-09-19 JP JP2019170412A patent/JP7280508B2/ja active Active
-
2020
- 2020-08-26 EP EP20192975.9A patent/EP3796168A1/en active Pending
- 2020-09-02 US US17/010,406 patent/US20210089343A1/en active Pending
- 2020-09-15 CN CN202010968057.6A patent/CN112527494A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130125125A1 (en) * | 2010-07-21 | 2013-05-16 | Shuichi Karino | Computer system and offloading method in computer system |
JP2013535711A (ja) * | 2010-07-21 | 2013-09-12 | 日本電気株式会社 | 計算機システム、及び計算機システムにおけるオフローディング方法 |
US20150033222A1 (en) * | 2013-07-25 | 2015-01-29 | Cavium, Inc. | Network Interface Card with Virtual Switch and Traffic Flow Policy Enforcement |
CN104348694A (zh) * | 2013-07-25 | 2015-02-11 | 凯为公司 | 具有虚拟交换机和业务流策略增强的网络接口卡 |
JP2015039166A (ja) * | 2013-07-25 | 2015-02-26 | カビウム・インコーポレーテッド | 仮想スイッチを有するネットワークインタフェースカードおよびトラフィックフローポリシの適用 |
US20170063701A1 (en) * | 2015-08-24 | 2017-03-02 | Fujitsu Limited | Bandwidth control circuit, arithmetic processing apparatus, and bandwidth control method for apparatus |
JP2017045089A (ja) * | 2015-08-24 | 2017-03-02 | 富士通株式会社 | 帯域制御回路、演算処理装置、および装置の帯域制御方法 |
KR20170057770A (ko) * | 2015-11-17 | 2017-05-25 | 에스케이텔레콤 주식회사 | 가상 스위치의 패킷 전송 제어 방법 |
US20180095750A1 (en) * | 2016-09-30 | 2018-04-05 | Intel Corporation | Hardware accelerators and methods for offload operations |
CN109690475A (zh) * | 2016-09-30 | 2019-04-26 | 英特尔公司 | 用于转移操作的硬件加速器和方法 |
JP2018137616A (ja) * | 2017-02-22 | 2018-08-30 | 株式会社アルチザネットワークス | アクセラレータ |
US20190044892A1 (en) * | 2018-09-27 | 2019-02-07 | Intel Corporation | Technologies for using a hardware queue manager as a virtual guest to host networking interface |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4109264A1 (en) | 2021-06-25 | 2022-12-28 | Fujitsu Limited | Information processing apparatus, information processing program, and method for processing information |
Also Published As
Publication number | Publication date |
---|---|
US20210089343A1 (en) | 2021-03-25 |
JP7280508B2 (ja) | 2023-05-24 |
CN112527494A (zh) | 2021-03-19 |
EP3796168A1 (en) | 2021-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7280508B2 (ja) | 情報処理装置、情報処理方法および仮想マシン接続管理プログラム | |
US10365938B2 (en) | Systems and methods for managing data input/output operations in a virtual computing environment | |
CN110059037B (zh) | 用于管理输入/输出的方法、设备和计算机程序产品 | |
US9760497B2 (en) | Hierarchy memory management | |
US9405476B2 (en) | Systems and methods for a file-level cache | |
US8996807B2 (en) | Systems and methods for a multi-level cache | |
US20170017524A1 (en) | Quality of service implementation in a networked storage system with hierarchical schedulers | |
JP4769308B2 (ja) | 仮想計算機管理機構、同管理機構を有する仮想計算機システム及び同システムにおけるページング処理方法 | |
US8874823B2 (en) | Systems and methods for managing data input/output operations | |
US20160266938A1 (en) | Load balancing function deploying method and apparatus | |
KR20090079012A (ko) | 가상 머신의 상태를 저장, 복원하는 방법 및 장치 | |
US8166339B2 (en) | Information processing apparatus, information processing method, and computer program | |
US20220066928A1 (en) | Pooled memory controller for thin-provisioning disaggregated memory | |
US20190188032A1 (en) | Thread interrupt offload re-prioritization | |
US20210117240A1 (en) | Cpu utilization for service level i/o scheduling | |
US11947463B2 (en) | Method and apparatus for managing memory in memory disaggregation system | |
US10776173B1 (en) | Local placement of resource instances in a distributed system | |
CN113031857B (zh) | 数据写入方法、装置、服务器及存储介质 | |
US11003378B2 (en) | Memory-fabric-based data-mover-enabled memory tiering system | |
CN115221073A (zh) | 用于运行云业务实例的物理服务器的内存管理方法和装置 | |
JP6653786B2 (ja) | I/o制御方法およびi/o制御システム | |
US20240037032A1 (en) | Lcs data provisioning system | |
US11281612B2 (en) | Switch-based inter-device notational data movement system | |
US20230266992A1 (en) | Processor for managing resources using dual queues, and operating method thereof | |
Muhammed Unais P et al. | SymFlex: Elastic, Persistent and Symbiotic SSD Caching in Virtualization Environments. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220609 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230327 |
|
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: 20230411 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230424 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7280508 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |