JP6885635B1 - 情報処理装置、情報処理方法及び情報処理装置用プログラム - Google Patents
情報処理装置、情報処理方法及び情報処理装置用プログラム Download PDFInfo
- Publication number
- JP6885635B1 JP6885635B1 JP2020036956A JP2020036956A JP6885635B1 JP 6885635 B1 JP6885635 B1 JP 6885635B1 JP 2020036956 A JP2020036956 A JP 2020036956A JP 2020036956 A JP2020036956 A JP 2020036956A JP 6885635 B1 JP6885635 B1 JP 6885635B1
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- data
- destination virtual
- communication
- address
- 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
Links
Images
Landscapes
- Multi Processors (AREA)
Abstract
Description
情報処理装置1は、制御部100と、システムメモリ200と、通信用メモリドライバ300と、仮想通信用メモリ400と、N台の仮想マシン(第一仮想マシン500、第二仮想マシン600、・・・、第N仮想マシン800)を備える。ここで、Nは3以上の整数とする。
システムメモリ200は、通信用メモリ記憶部210及び通信データ記憶部220を備える。なお、システムメモリ200は、記憶部の一態様である。
通信データ記憶部220は、N台の仮想マシン(第一仮想マシン500、第二仮想マシン600、・・・、第N仮想マシン800)の間で通信される実データを記憶する。通信データ記憶部220は、各仮想マシン宛てに送信された実データを記憶するために、各仮想マシン用のリングバッファを備え、図6のデータテーブルにそれらのリングバッファの先頭アドレスと終端アドレスを記憶する。
仮想メモリ(第一仮想メモリ410、第二仮想メモリ420、・・・、第N仮想メモリ440)は、通信用メモリ(第一通信用メモリ520、第二通信用メモリ620、・・・、第N通信用メモリ820)と対応付けて扱われる。
第一アプリケーション510は、第一仮想マシン500が他の仮想マシンとデータの送受信を行う際、第一通信用メモリ520を通して送受信の命令を通信用メモリドライバ300へ通知する。
第一通信用メモリ520は、第一アプリケーション510から通知された送受信の命令を通信用メモリドライバ300へ通知し、通信を行う。なお、第一通信用メモリ520は、後述するメモリ制御部110によって、第一仮想メモリ410とアドレスが対応付けされる。また、第一通信用メモリ520は、第二記憶領域の一態様である。
第二アプリケーション610は、第二仮想マシン600が他の仮想マシンとデータの送受信を行う際、第二通信用メモリ620を通して送受信の命令を通信用メモリドライバ300へ通知する。
第二通信用メモリ620は、第二アプリケーション610から通知された送受信の命令を通信用メモリドライバ300へ通知し、通信を行う。なお、第二通信用メモリ620は、後述するメモリ制御部110によって、第二仮想メモリ420が対応付けされる。また、第二通信用メモリ620は、第二記憶領域の一態様である。
第Nアプリケーション810は、第N仮想マシン800が他の仮想マシンとデータの送受信を行う際、第N通信用メモリ820を通して送受信の命令を通信用メモリドライバ300へ通知する。
第N通信用メモリ820は、第Nアプリケーション810から通知された送受信の命令を通信用メモリドライバ300へ通知し、通信を行う。なお、第N通信用メモリ820は、後述するメモリ制御部110によって、第N仮想メモリ440が対応付けされる。また、第N通信用メモリ820は、第二記憶領域の一態様である。
通信用メモリ記憶部210は、仮想マシンの通信用メモリの送信用アドレス及び受信用アドレスを、予め記憶する。
通信IDのデータ項目は、宛先情報が登録される。図6において、宛先情報は、図3の宛先情報と対応付いて登録されている。
これにより、先頭アドレスと終端アドレスが等しい場合には保存されたデータは無く、等しくない場合に保存されたデータは有ることになる。また、リングバッファの終了アドレスの次のデータ格納エリアのアドレスは、リングバッファの開始アドレスとする。これにより、最小限の固定したメモリ領域を使用して、同様の手順でデータの書き込みと読み込みを継続することができる。
メモリ制御部110は、メインメモリから記憶領域を確保し、通信用メモリドライバ300によりアクセスする仮想通信用メモリ400を生成する(ステップS100)。
メモリ制御部110は、各仮想マシンの通信用メモリに、ステップS101で生成した仮想メモリを1対1で対応付ける(ステップS102)。
第一通信用メモリからの入出力要求パケットを処理するスレッドW1と、第二通信用メモリからの入出力要求パケットを処理するスレッドR2は、マルチスレッドで動作する。
ここでは、第一通信用メモリ520を用いてデータ送信、第二通信用メモリ620を用いてデータ受信する例としている。なお、他の仮想マシンの組み合わせについても同様の処理となる。
以下、図9から図12まで、第一仮想マシン500から第二仮想マシン600へのデータの送信を例にするが、他の仮想マシン間のデータの送信における処理も同様である。また、図9、図10に示す記号A、B、C、Dは、図8に示す対応する記号A、B、C、Dに続く処理であることを示す。
第二アプリケーション610は、第二通信用メモリ620の受信用アドレスを用いて受信要求(受信リクエストの入出力要求パケット生成)を行う(ステップS400)。この受信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP2_R)をデータ判定部120が受け取る(ステップS401)。
ステップS303にて、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信要求中」として登録する。その後、データ判定部120の判定結果に基づいて、宛先の識別ID「LBA_AP2_R」の状態が「アイドル中」であり、かつ、識別ID「LBA_AP2_R」の排他制御フラグが「処理不可」ある場合に、データ登録部130は、他のスレッドが識別ID「LBA_AP2_R」への送信データ書き込み中と判断し、識別ID「LBA_AP1_W」の状態を「通信データ保存待ち中」として登録する(ステップS303−2)。データ登録部130は、識別ID「LBA_AP2_R」の排他制御フラグが「処理可」になるまで排他制御フラグの値を定期的に確認し、識別ID「LBA_AP2_R」の排他制御フラグが「処理可」であることを確認すると、次のステップS304に進み、データ登録部130は、排他制御フラグを「処理不可」として登録した後、実データをリングバッファに保存する。その後、データ登録部130は、識別ID「LBA_AP2_R」のデータ保存フラグを「有効」にして、排他制御フラグを「処理可」にする。
なお、保存データフラグ使用せず、保存データフラグで保存データの有無を確認する方法ではなく、リングバッファの先頭アドレスと終端アドレスの比較により保存データの有無を確認する方法とした場合には、図11Bで示した受信側での通信データ転送待ちは発生しない。
ステップS408にて、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信要求中」として登録する。その後、データ判定部120の判定結果に基づいて、識別ID「LBA_AP2_R」の状態が「受信完了待ち」であり、かつ、識別ID「LBA_AP2_R」の排他制御フラグが「処理不可」ある場合に、データ登録部130は、識別ID「LBA_AP1_W」の状態を「通信データ転送待ち中」として登録する(ステップS408−2)。データ登録部130は、識別ID「LBA_AP2_R」の排他制御フラグが「処理可」になるまで排他制御フラグの値を定期的に確認し、識別ID「LBA_AP2_R」の排他制御フラグが「処理可」であることを確認すると、次のステップS409に進み、データ登録部130は、排他制御フラグを「処理不可」として登録して、通信制御部140は、実データを第二アプリケーション610へ転送する。すなわち、通信制御部140は、リングバッファを介することなく実データを第二アプリケーション610へ転送する。その後、ステップS410にて、データ登録部130は、識別ID「LBA_AP2_R」の状態を「アイドル」として登録し、排他制御フラグを「処理可」として登録する。
以上、本実施の形態に示す情報処理装置1では、N個の仮想マシン間で通信を行う場合に、リングバッファのデータ格納エリアの数を(N−1)個とした。情報処理装置1において、メモリ領域が十分に大きい場合には数を増やし、メモリ領域が小さい場合には数を減らすなど、メモリ領域に合わせてリングバッファのエントリ数を変更しても良い。
また、本実施の形態において、特許文献1に示す通信方法を基にした複数の仮想マシン間の通信方法(以下「1対1通信の拡張による通信方法」と呼ぶ)との対比を示した。本実施の形態に示す情報処理装置1が行う通信方法(以下「1対N通信による通信方法」と呼ぶ)と前述の「1対1通信の拡張による通信方法」を組み合わせた通信方法としても良い。具体的には、仮想マシンの数が少ない場合には「1対1通信の拡張による通信方法」、仮想マシンの数が多い場合には「1対N通信による通信方法」とし、ホストマシンのリソース数や通信速度を監視する監視機能を追加し、監視機能の結果を見て、自動的に最適な通信方法に切り替えても良い。
次に、情報処理装置1におけるハードウェアの構成例について述べる。図21は、情報処理装置1のハードウェア構成を例示する図である。図21では、情報処理装置1を実現するための計算機2は任意の仮想マシンを実現しうる性能を備えた計算機である。
ストレージデバイス24は、情報処理装置1の各処理部を実現するプログラムモジュールを記憶している。プロセッサ22は、これら各プログラムモジュールをメモリ23に読み出して実行することで、各プログラムモジュールに対応する機能を実現する。
記憶部200は、仮想マシン毎に、送信される実データを記憶するためのリングバッファの先頭アドレスと終端アドレス、排他制御フラグとを含むデータテーブルを記憶する。
通信制御部140は、送信元の仮想マシンから送信先の仮想マシンに送信する実データのリングバッファのデータ格納エリアでの保存の有無、送信先の仮想マシンによる受信要求の有無、送信先の仮想マシンに対応するデータテーブルの排他制御フラグの状態に基づき、リングバッファのアドレスを利用して、送信元の仮想マシンから送信先の仮想マシンデータへのデータの転送制御をする。
110 メモリ制御部
120 データ判定部
130 データ登録部
140 通信制御部
200 システムメモリ
210 通信用メモリ記憶部
220 通信データ記憶部
300 通信用メモリドライバ
400 仮想通信用メモリ
410 第一仮想メモリ
420 第二仮想メモリ
440 第N仮想メモリ
500 第一仮想マシン
510 第一アプリケーション
520 第一通信用メモリ
600 第二仮想マシン
610 第二アプリケーション
620 第二通信用メモリ
800 第N仮想マシン
810 第Nアプリケーション
820 第N通信用メモリ
Claims (10)
- 3台以上の複数の仮想マシンを備える情報処理装置であって、
仮想マシン毎に、送信される実データを記憶するためのリングバッファの先頭アドレスと終端アドレス、排他制御フラグとを含むデータテーブルを記憶する記憶手段と、
送信元の仮想マシンから送信先の仮想マシンに送信する実データの前記リングバッファのデータ格納エリアでの保存の有無、前記送信先の仮想マシンによる受信要求の有無、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグの状態に基づき、前記リングバッファのアドレスを利用して、前記送信元の仮想マシンから前記送信先の仮想マシンデータへのデータの転送制御をする通信制御手段と
を備える情報処理装置。 - 送信先の仮想マシンに対応するデータテーブルの先頭アドレスに次のデータ格納エリアのアドレスを格納するデータ登録手段
をさらに備え、
前記通信制御手段は、送信元の仮想マシンから送信先の仮想マシンに送信する実データが前記リングバッファのデータ格納エリアに保存されており、前記送信先の仮想マシンが受信要求をしており、かつ、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理可を示している場合、前記送信先の仮想マシンに対応するデータテーブルの先頭アドレスから前記実データを読み出して前記送信先の仮想マシンに前記読み出したデータを転送し、
前記データ登録手段は、前記通信制御手段による前記送信先の仮想マシンに前記読み出した前記実データの転送の後、前記送信先の仮想マシンに対応するデータテーブルの先頭アドレスに次のデータ格納エリアのアドレスを格納する
請求項1に記載の情報処理装置。 - 前記データ登録手段は、送信元の仮想マシンが送信先の仮想マシンに送信する実データを有し、かつ、前記送信先の仮想マシンが受信要求をしていなく、かつ、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理可を示している場合、前記送信先の仮想マシンに対応するデータテーブルの終端アドレスから前記実データを保管するとともに、前記送信先の仮想マシンに対応するデータテーブルの終端アドレスに次のデータ格納エリアのアドレスを格納する
ことをさらに行う、請求項2に記載の情報処理装置。 - 前記通信制御手段は、送信元の仮想マシンが送信先の仮想マシンに送信する実データを有し、かつ、前記送信先の仮想マシンが受信要求しており、かつ、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理可を示している場合、前記リングバッファを介することなく前記実データを前記送信先の仮想マシンに転送する
請求項1から請求項3のいずれか1項に記載の情報処理装置。 - 前記データ登録手段は、送信元の仮想マシンが送信先の仮想マシンに送信する実データを有し、かつ、前記送信先の仮想マシンが受信要求をしていなく、かつ、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理不可を示す場合、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理可を示すまで、前記送信先の仮想マシンに対応するデータテーブルの終端アドレスから前記実データを保管する処理を保留する
請求項3に記載の情報処理装置。 - 前記通信制御手段は、送信元の仮想マシンから送信先の仮想マシンに送信する実データが前記リングバッファのデータ格納エリアに保存されており、前記送信先の仮想マシンが受信要求をしており、かつ、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理不可を示している場合、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理可を示すまで、前記送信先の仮想マシンに対応するデータテーブルの先頭アドレスから前記実データを読み出して前記送信先の仮想マシンに前記読み出したデータを転送する処理を保留する
請求項2に記載の情報処理装置。 - 前記通信制御手段は、送信元の仮想マシンが送信先の仮想マシンに送信する実データを有し、かつ、前記送信先の仮想マシンが受信要求しており、かつ、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理不可を示している場合、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグが処理可を示すまで、前記リングバッファを介することなく前記実データを前記送信先の仮想マシンに転送する処理を保留する
請求項4に記載の情報処理装置。 - 送信元の仮想マシンから送信先の仮想マシンに送信する実データが前記リングバッファのデータ格納エリアに保存されているか否は、該送信先の仮想マシンに対応するデータテーブルの先頭アドレスと終端アドレスが一致するか否かにより確認される
請求項1から請求項7のいずれか1項に記載の情報処理装置。 - 3台以上の複数の仮想マシンを備える情報処理装置による情報処理法であって、
仮想マシン毎に、送信される実データを記憶するためのリングバッファの先頭アドレスと終端アドレス、排他制御フラグとを含むデータテーブルを記憶し、
送信元の仮想マシンから送信先の仮想マシンに送信する実データの前記リングバッファのデータ格納エリアでの保存の有無、前記送信先の仮想マシンによる受信要求の有無、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグの状態に基づき、前記リングバッファのアドレスを利用して、前記送信元の仮想マシンから前記送信先の仮想マシンデータへのデータの転送制御をする
情報処理方法。 - 仮想マシン毎に、送信される実データを記憶するためのリングバッファの先頭アドレスと終端アドレス、排他制御フラグとを含むデータテーブルを記憶させ、
送信元の仮想マシンから送信先の仮想マシンに送信する実データの前記リングバッファのデータ格納エリアでの保存の有無、前記送信先の仮想マシンによる受信要求の有無、前記送信先の仮想マシンに対応するデータテーブルの排他制御フラグの状態に基づき、前記リングバッファのアドレスを利用して、前記送信元の仮想マシンから前記送信先の仮想マシンデータへのデータの転送制御をする
ことをコンピュータに行わせる3台以上の複数の仮想マシンを備える情報処理装置用プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020036956A JP6885635B1 (ja) | 2020-03-04 | 2020-03-04 | 情報処理装置、情報処理方法及び情報処理装置用プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020036956A JP6885635B1 (ja) | 2020-03-04 | 2020-03-04 | 情報処理装置、情報処理方法及び情報処理装置用プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6885635B1 true JP6885635B1 (ja) | 2021-06-16 |
JP2021140415A JP2021140415A (ja) | 2021-09-16 |
Family
ID=76310154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020036956A Active JP6885635B1 (ja) | 2020-03-04 | 2020-03-04 | 情報処理装置、情報処理方法及び情報処理装置用プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6885635B1 (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002373084A (ja) * | 2001-06-14 | 2002-12-26 | Hitachi Ltd | 二重化システムの状態交換・障害検出兼用方法 |
JP4756603B2 (ja) * | 2006-10-10 | 2011-08-24 | ルネサスエレクトロニクス株式会社 | データプロセッサ |
JP7056870B2 (ja) * | 2018-03-20 | 2022-04-19 | Necプラットフォームズ株式会社 | 情報処理装置、情報処理方法及びプログラム |
-
2020
- 2020-03-04 JP JP2020036956A patent/JP6885635B1/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2021140415A (ja) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169080B2 (en) | Method for work scheduling in a multi-chip system | |
CN100405303C (zh) | 数据处理系统 | |
US7752349B2 (en) | Apparatus and method for performing DMA data transfer | |
US5991797A (en) | Method for directing I/O transactions between an I/O device and a memory | |
KR100326864B1 (ko) | 네트워크통신방법및네트워크시스템 | |
US9529532B2 (en) | Method and apparatus for memory allocation in a multi-node system | |
JP3807250B2 (ja) | クラスタシステム、コンピュータ及びプログラム | |
CN110888827A (zh) | 数据传输方法、装置、设备及存储介质 | |
US10592459B2 (en) | Method and system for ordering I/O access in a multi-node environment | |
US9372800B2 (en) | Inter-chip interconnect protocol for a multi-chip system | |
EP3563534B1 (en) | Transferring packets between virtual machines via a direct memory access device | |
WO2021051919A1 (zh) | 一种数据转发芯片及服务器 | |
JP2018190277A (ja) | メモリアクセス制御装置及びその制御方法 | |
CN115357416B (zh) | 一种跨系统进行数据处理的方法及装置 | |
JP2002041449A (ja) | バスシステム及びその実行順序の調整方法 | |
US20090292856A1 (en) | Interserver communication mechanism and computer system | |
WO2006134804A1 (ja) | 外部デバイスアクセス装置 | |
JP6885635B1 (ja) | 情報処理装置、情報処理方法及び情報処理装置用プログラム | |
US7529857B2 (en) | Data processing apparatus and data transfer control method | |
JP7056870B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP4856413B2 (ja) | 演算処理装置、情報処理装置、及び演算処理装置の制御方法 | |
US20230229500A1 (en) | Parallel and distributed computing system | |
CN109992560B (zh) | 一种通信方法及通信系统 | |
JP4983133B2 (ja) | 入出力制御装置およびその制御方法、並びにプログラム | |
JP7197212B2 (ja) | 情報処理装置、情報処理方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210325 |
|
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: 20210413 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210506 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6885635 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |