Movatterモバイル変換


[0]ホーム

URL:


JP7056870B2 - Information processing equipment, information processing methods and programs - Google Patents

Information processing equipment, information processing methods and programs
Download PDF

Info

Publication number
JP7056870B2
JP7056870B2JP2018052740AJP2018052740AJP7056870B2JP 7056870 B2JP7056870 B2JP 7056870B2JP 2018052740 AJP2018052740 AJP 2018052740AJP 2018052740 AJP2018052740 AJP 2018052740AJP 7056870 B2JP7056870 B2JP 7056870B2
Authority
JP
Japan
Prior art keywords
data
virtual machine
communication
virtual
memory
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
JP2018052740A
Other languages
Japanese (ja)
Other versions
JP2019164661A (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 Platforms Ltd
Original Assignee
NEC Platforms Ltd
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 Platforms LtdfiledCriticalNEC Platforms Ltd
Priority to JP2018052740ApriorityCriticalpatent/JP7056870B2/en
Publication of JP2019164661ApublicationCriticalpatent/JP2019164661A/en
Application grantedgrantedCritical
Publication of JP7056870B2publicationCriticalpatent/JP7056870B2/en
Activelegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Landscapes

Description

Translated fromJapanese

本発明は、情報処理装置、情報処理方法及びプログラムに関する。 The present invention relates to an information processing apparatus, an information processing method and a program.

コンピュータなどの情報機器では、1台のコンピュータ上で、複数のコンピュータやOS(Operating System)を動作させる場合や、別のアーキテクチャ用のソフトウェアを動作させる場合に、仮想マシンが用いられている。仮想マシンが動く情報機器(以下「ホストマシン」という。)は、RAM(Random Access Memory)などを用いて仮想マシンを動かす。 In information devices such as computers, virtual machines are used when operating a plurality of computers and OSs (Operating Systems) on one computer, or when operating software for different architectures. An information device (hereinafter referred to as a "host machine") on which a virtual machine operates uses RAM (Random Access Memory) or the like to operate the virtual machine.

仮想マシンは、他の仮想マシンやコンピュータと通信を行うことができる。ホストマシン上に、仮想マシンが複数存在する場合、当該仮想マシンは、他の仮想マシンと通信が可能である。しかしながら、同一のホストマシン上の仮想マシン同士であっても、仮想マシン間の通信は、TCP/IP(Transmission Control Protocol / Internet Protocol)などのネットワーク通信用の通信プロトコル(以下「NW通信プロトコル」という。)を使用する必要がある。 A virtual machine can communicate with other virtual machines and computers. When a plurality of virtual machines exist on the host machine, the virtual machine can communicate with other virtual machines. However, even between virtual machines on the same host machine, communication between virtual machines is a communication protocol for network communication such as TCP / IP (Transmission Control Protocol / Internet Protocol) (hereinafter referred to as "NW communication protocol"). .) Must be used.

NW通信プロトコルに従った通信方式を用いた場合、通信データに制御を行うためのデータを付与する工程を経て通信され、通信データの容量は、大きくなる。これは、NW通信プロトコルのデータ通信モデルに基づいて、各階層で通信を制御するためのデータが付与されるためである。このため、NW通信プロトコルに従った通信方式は、同一のホストマシン上の仮想マシン間で通信する場合、複数の処理階層を経由するため、通信効率が悪く、通信処理のオーバーヘッドが大きくなる。 When a communication method according to the NW communication protocol is used, communication is performed through a step of adding data for controlling the communication data, and the capacity of the communication data becomes large. This is because data for controlling communication is added at each layer based on the data communication model of the NW communication protocol. Therefore, in the communication method according to the NW communication protocol, when communicating between virtual machines on the same host machine, the communication efficiency is poor and the communication processing overhead becomes large because the communication goes through a plurality of processing layers.

また、ネットワーク通信用のI/O(Input / Output)処理は、他のI/O処理と比較して処理優先度が低い。このため、システムのI/O負荷が高くなった場合、ネットワーク通信用のI/O性能が低下しやすい。これにより通信処理のオーバーヘッドが増加する可能性がある。 Further, the I / O (Input / Output) processing for network communication has a lower processing priority than other I / O processing. Therefore, when the I / O load of the system becomes high, the I / O performance for network communication tends to deteriorate. This may increase the communication processing overhead.

以上のことから、仮想マシン同士の通信は、同一のホストマシン上の仮想マシン同士の通信であっても、NW通信プロトコルを用いた通信を実行する必要があるため、処理にオーバーヘッドが生じてしまうという課題があった。 From the above, in the communication between virtual machines, even if the communication is between virtual machines on the same host machine, it is necessary to execute the communication using the NW communication protocol, which causes an overhead in the processing. There was a problem.

仮想マシン間の通信処理におけるオーバーヘッドの対策として、仮想マシン間のネットワーク通信では、通信する階層を減らし、仮想マシン間で共用可能なメモリを使用する手法が文献1で開示されている。具体的には、文献1では、同一のメモリ(以下「共有メモリ」という。)を仮想マシン間で使用することが可能であるため、共用メモリを使用して通信する方法が開示されている。 As a measure against overhead in communication processing between virtual machines, in network communication between virtual machines, a method of reducing the communication hierarchy and using a memory that can be shared between virtual machines is disclosed inDocument 1. Specifically,Document 1 discloses a method of communicating using a shared memory because the same memory (hereinafter referred to as “shared memory”) can be used between virtual machines.

また、仮想マシン間の通信処理におけるオーバーヘッドの対策として、仮想マシン内に定めた通信チャネルを介して通信を行う手法が文献2で開示されている。具体的には、文献2では、仮想マシン間の通信機構として通信チャネルが提供される。文献2の仮想マシンは、当該通信チャネルを用いて、仮想マシン間の通信を行う手法が開示されている。 Further, as a measure against overhead in communication processing between virtual machines, a method of performing communication via a communication channel defined in the virtual machine is disclosed in Document 2. Specifically, in Document 2, a communication channel is provided as a communication mechanism between virtual machines. The virtual machine of Document 2 discloses a method of communicating between virtual machines using the communication channel.

特開2015-170887号公報Japanese Unexamined Patent Publication No. 2015-170887国際公開第2010/064411号International Publication No. 2010/064411

以上より、上記文献1及び2では、同一ホストマシン上の仮想マシン間で通信を行う場合、NW通信プロトコルを使用して試みている。しかしながら、上記の方法では、同一ホストマシン上の仮想マシン間の通信にも関わらず、ネットワークのNW通信プロトコルを使用するため、各通信階層の制御処理による通信のオーバーヘッドは、削減できていないという問題があった。各通信階層の制御処理とは、通信に使用する中身のデータ(以下「実データ」という。)に、プロトコルの階層に応じた制御用のデータを付与する処理である。 From the above, inDocuments 1 and 2 above, when communicating between virtual machines on the same host machine, an attempt is made using the NW communication protocol. However, in the above method, although the communication between virtual machines on the same host machine is used, the network NW communication protocol is used, so that the communication overhead due to the control processing of each communication layer cannot be reduced. was there. The control process of each communication layer is a process of adding control data according to the protocol layer to the content data (hereinafter referred to as “actual data”) used for communication.

そこで本発明は、上述の課題を解決する情報処理装置、情報処理方法及びプログラムを提供することを目的としている。 Therefore, an object of the present invention is to provide an information processing apparatus, an information processing method, and a program that solve the above-mentioned problems.

本発明の第1の態様によれば、情報処理装置は、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する。 According to the first aspect of the present invention, the information processing apparatus is secured in the memory of the information processing apparatus for each of the plurality of virtual machines mounted on the same information processing apparatus and communicating with each other. Communication secured in each of the virtual first storage area, the first virtual machine that transmits transmission data including identification data for specifying the data content, and the second virtual machine that receives the transmission data. A memory control unit associated with a second storage area for data processing, and a communication control unit for controlling communication between the first virtual machine and the second virtual machine are provided, and the first virtual machine is the first virtual machine. The transmission data is written in the first storage area associated with the second storage area of the first virtual machine, and the second virtual machine is associated with the second storage area of the second virtual machine. A reception instruction for receiving the transmission data is written in the first storage area, and the communication control unit transmits the transmission data to the second virtual machine based on the reception instruction.

本発明の第2の態様によれば、情報処理方法は、1又は複数のコンピュータが、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御ステップと、前記第一仮想マシンが、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込むステップと、前記第二仮想マシンが、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込むステップと、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信するステップと、を有する。 According to the second aspect of the present invention, in the information processing method, in a plurality of virtual machines in which one or a plurality of computers are mounted on the same information processing device and communicate with each other, the information is described for each of the plurality of virtual machines. Each of the virtual first storage area secured in the memory of the processing device, the first virtual machine for transmitting transmission data including identification data for specifying the data content, and the second virtual machine for receiving the transmission data. A memory control step associated with a second storage area for communication secured in the above, and the first storage area in which the first virtual machine is associated with the second storage area of the first virtual machine. In the step of writing the transmission data, and the reception instruction for the second virtual machine to receive the transmission data in the first storage area associated with the second storage area of the second virtual machine. It has a step of writing the data and a step of transmitting the transmission data to the second virtual machine based on the reception instruction.

本発明の第3の態様によれば、プログラムは、1又は複数のコンピュータに、同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させる。 According to the third aspect of the present invention, the program is mounted on one or a plurality of computers on the same information processing device, and in a plurality of virtual machines communicating with each other, the information processing device is used for each of the plurality of virtual machines. In each of the virtual first storage area secured in the memory of the first virtual machine for transmitting transmission data including identification data for specifying the data content and the second virtual machine for receiving the transmission data. A memory control unit associated with the second storage area for communication secured in the above, and a communication control unit for controlling communication between the first virtual machine and the second virtual machine are provided. The virtual machine writes the transmission data in the first storage area associated with the second storage area of the first virtual machine, and the second virtual machine is the second storage of the second virtual machine. A reception instruction for receiving the transmission data is written in the first storage area associated with the area, and the communication control unit transmits the transmission data to the second virtual machine based on the reception instruction. To function as an information processing device.

上記態様のうち少なくとも1つの態様によれば、仮想マシンは、ホストマシンの仮想通信用メモリを用いて通信を行う。これにより、同一ホストマシン上の仮想マシン間で通信を行う場合、NW通信プロトコルを使用せずに、メモリアクセスで通信を行うため、各通信階層の制御処理による通信のオーバーヘッドが削減できるという効果が得られる。 According to at least one of the above aspects, the virtual machine communicates using the virtual communication memory of the host machine. As a result, when communicating between virtual machines on the same host machine, communication is performed by memory access without using the NW communication protocol, so there is an effect that the communication overhead due to the control processing of each communication layer can be reduced. can get.

本発明の一実施形態に係る情報処理装置1のハードウェア構成を示す図である。It is a figure which shows the hardware composition of theinformation processing apparatus 1 which concerns on one Embodiment of this invention.本発明の一実施形態に係る制御部100のソフトウェア構成を示す概略ブロック図である。It is a schematic block diagram which shows the software structure of thecontrol part 100 which concerns on one Embodiment of this invention.本発明の一実施形態に係るコマンド及び宛先情報の一例を示すデータテーブルである。It is a data table which shows an example of the command and the destination information which concerns on one Embodiment of this invention.本発明の一実施形態に係る通信用メモリのアドレスの一例を示すデータテーブルである。It is a data table which shows an example of the address of the communication memory which concerns on one Embodiment of this invention.本発明の一実施形態に係る仮想マシンの通信用メモリ及び通信用メモリドライバの論理ブロックアドレスの一例を示すデータテーブルである。It is a data table which shows an example of the logical block address of the communication memory and the communication memory driver of the virtual machine which concerns on one Embodiment of this invention.本発明の一実施形態に係る通信用メモリが管理する識別データの一例を示すデータテーブルである。It is a data table which shows an example of the identification data managed by the communication memory which concerns on one Embodiment of this invention.本発明の一実施形態に係る仮想マシンの通信用メモリを設定する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process of setting the communication memory of the virtual machine which concerns on one Embodiment of this invention.本発明の一実施形態に係る仮想マシン間の通信において、初期設定の処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of the process of initial setting in the communication between virtual machines which concerns on one Embodiment of this invention.本発明の一実施形態に係る仮想マシン間の通信において、先に送信処理を行う場合の処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of the process when the transmission process is performed first in the communication between virtual machines which concerns on one Embodiment of this invention.本発明の一実施形態に係る仮想マシン間の通信において、先に受信を行う場合の処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of the process when the reception is performed first in the communication between the virtual machines which concerns on one Embodiment of this invention.本発明の一実施形態に係る仮想マシンのプロトコル階層の一例を示す図である。It is a figure which shows an example of the protocol hierarchy of the virtual machine which concerns on one Embodiment of this invention.本実施形態による情報処理装置1の最少構成を示す図である。It is a figure which shows the minimum structure of theinformation processing apparatus 1 by this embodiment.

以下、本発明の実施形態について、図面を参照して説明する。 Hereinafter, embodiments of the present invention will be described with reference to the drawings.

図1は本発明の一実施形態に係る情報処理装置1のハードウェア構成を示す図である。
情報処理装置1は、制御部100と、システムメモリ200と、通信用メモリドライバ300と、仮想通信用メモリ400と、第一仮想マシン500と、第二仮想マシン600と、を備える。
FIG. 1 is a diagram showing a hardware configuration of aninformation processing apparatus 1 according to an embodiment of the present invention.
Theinformation processing apparatus 1 includes acontrol unit 100, asystem memory 200, acommunication memory driver 300, avirtual communication memory 400, a firstvirtual machine 500, and a secondvirtual machine 600.

なお、本実施形態における仮想マシンは、ホスト型でもよいし、ハイパーバイザ型でもよい。つまり、同一ホストマシン上で動作する仮想マシンであれば、仮想マシンの稼働方式及び稼働数は問わない。以下の本実施形態では、例として、ホストマシン上でホスト型の仮想マシンを2台動作させるものとして説明する。 The virtual machine in this embodiment may be a host type or a hypervisor type. That is, as long as it is a virtual machine operating on the same host machine, the operating method and the number of operating virtual machines do not matter. In the following embodiment, as an example, two host-type virtual machines will be operated on the host machine.

制御部100は、CPU(Central Processing Unit)等のプロセッサを用いて構成される。制御部100は、プログラムをメインメモリに展開し、プロセッサがプログラムを実行することによって、プログラムに従って処理を実行する。本実施形態では、制御部100は、プログラムを実行することで、図2で示す制御部として機能する。
システムメモリ200は、通信用メモリ記憶部210及び通信データ記憶部220を備える。なお、システムメモリ200は、記憶部の一態様である。
Thecontrol unit 100 is configured by using a processor such as a CPU (Central Processing Unit). Thecontrol unit 100 expands the program to the main memory, and the processor executes the program to execute the process according to the program. In the present embodiment, thecontrol unit 100 functions as the control unit shown in FIG. 2 by executing the program.
Thesystem memory 200 includes a communicationmemory storage unit 210 and a communicationdata storage unit 220. Thesystem memory 200 is one aspect of the storage unit.

通信用メモリ記憶部210は、後述する図3から図5までのデータテーブルを予め記憶する。また、通信用メモリ記憶部210は、データ登録部130から受信する、処理のコマンド(以下「指示データ」という。)や、識別ID、通信IDなどの情報(以下「識別データ」という。)を、図6で後述するデータテーブルに記憶する。
通信データ記憶部220は、第一仮想マシン500と第二仮想マシン600との間で通信される実データを記憶する。
The communicationmemory storage unit 210 stores in advance the data tables of FIGS. 3 to 5, which will be described later. Further, the communicationmemory storage unit 210 receives information such as a processing command (hereinafter referred to as “instruction data”), an identification ID, and a communication ID (hereinafter referred to as “identification data”) received from thedata registration unit 130. , Stored in a data table described later in FIG.
The communicationdata storage unit 220 stores actual data communicated between the firstvirtual machine 500 and the secondvirtual machine 600.

通信用メモリドライバ300は、仮想通信用メモリ400の生成を行う。制御部100は、通信用メモリドライバ300の機能を用いてプログラムの処理を実行する。 Thecommunication memory driver 300 generates thevirtual communication memory 400. Thecontrol unit 100 executes the program processing by using the function of thecommunication memory driver 300.

仮想通信用メモリ400は、第一仮想メモリ410及び第二仮想メモリ420を備える。なお、第一仮想メモリ410及び第二仮想メモリ420のフォーマットは、VHDXやVHDなど仮想マシンで使用できるフォーマットであれば、どのフォーマットを使用してもよい。また、第一仮想メモリ410及び第二仮想メモリ420は、第一記憶領域の一態様である。
第一仮想メモリ410及び第二仮想メモリ420は、第一通信用メモリ520及び第二通信用メモリ620と対応付けて扱われる。
Thevirtual communication memory 400 includes a firstvirtual memory 410 and a secondvirtual memory 420. The formats of the firstvirtual memory 410 and the secondvirtual memory 420 may be any format as long as it can be used in a virtual machine such as VHDX or VHD. Further, the firstvirtual memory 410 and the secondvirtual memory 420 are one aspect of the first storage area.
The firstvirtual memory 410 and the secondvirtual memory 420 are handled in association with thefirst communication memory 520 and thesecond communication memory 620.

第一仮想マシン500は、第一アプリケーション510及び第一通信用メモリ520を備える。
第一アプリケーション510は、第一仮想マシン500が第二仮想マシン600とデータの送受信を行う際、第一通信用メモリ520を通して送受信の命令を通信用メモリドライバ300へ通知する。
The firstvirtual machine 500 includes afirst application 510 and afirst communication memory 520.
When the firstvirtual machine 500 transmits / receives data to / from the secondvirtual machine 600, thefirst application 510 notifies thecommunication memory driver 300 of a transmission / reception command through thefirst communication memory 520.

第一通信用メモリ520は、第一アプリケーション510から通知された送受信の命令を通信用メモリドライバ300へ通知し、通信を行う。なお、第一通信用メモリ520は、後述するメモリ制御部110によって、第一仮想メモリ410とアドレスが対応付けされる。また、第一通信用メモリ520は、第二記憶領域の一態様である。 Thefirst communication memory 520 notifies thecommunication memory driver 300 of the transmission / reception command notified from thefirst application 510, and performs communication. The address of thefirst communication memory 520 is associated with the firstvirtual memory 410 by thememory control unit 110 described later. Further, thefirst communication memory 520 is one aspect of the second storage area.

第二仮想マシン600は、第二アプリケーション610及び第二通信用メモリ620を備える。
第二アプリケーション610は、第二仮想マシン600が第一仮想マシン500とデータの送受信を行う際、第二通信用メモリ620を通して送受信の命令を通信用メモリドライバ300へ通知する。
The secondvirtual machine 600 includes asecond application 610 and asecond communication memory 620.
When the secondvirtual machine 600 transmits / receives data to / from the firstvirtual machine 500, thesecond application 610 notifies thecommunication memory driver 300 of a transmission / reception command through thesecond communication memory 620.

第二通信用メモリ620は、第二アプリケーション610から通知された送受信の命令を通信用メモリドライバ300へ通知し、通信を行う。なお、第二通信用メモリ620は、後述するメモリ制御部110によって、第二仮想メモリ420が対応付けされる。また、第二通信用メモリ620は、第二記憶領域の一態様である。 Thesecond communication memory 620 notifies thecommunication memory driver 300 of the transmission / reception command notified from thesecond application 610, and performs communication. Thesecond communication memory 620 is associated with the secondvirtual memory 420 by thememory control unit 110 described later. Further, thesecond communication memory 620 is one aspect of the second storage area.

なお、システムメモリ200及び通信用メモリドライバ300は、記憶装置の一例であり、仮想通信用メモリ400は、仮想的な記憶装置の一例である。 Thesystem memory 200 and thecommunication memory driver 300 are examples of storage devices, and thevirtual communication memory 400 is an example of virtual storage devices.

図2は、本発明の一実施形態に係る制御部100のソフトウェア構成を示す概略ブロック図である。
制御部100は、プログラムを実行することで、メモリ制御部110、データ判定部120、データ登録部130及び通信制御部140として機能する。
FIG. 2 is a schematic block diagram showing a software configuration of thecontrol unit 100 according to the embodiment of the present invention.
Thecontrol unit 100 functions as amemory control unit 110, adata determination unit 120, adata registration unit 130, and acommunication control unit 140 by executing a program.

メモリ制御部110は、仮想マシンと通信を行うための、仮想の通信用メモリ(以下「仮想通信用メモリ400」という。)を構成する。はじめに、メモリ制御部110は、メインメモリから記憶領域を確保し、通信用メモリドライバ300によりアクセスする仮想通信用メモリ400を生成する。メモリ制御部110は、仮想通信用メモリ400に、第一仮想メモリ410及び第二仮想メモリ420を生成する。次に、メモリ制御部110は第一仮想メモリ410及び第二仮想メモリ420を、第一通信用メモリ520及び第二通信用メモリ620に対応付ける。 Thememory control unit 110 constitutes a virtual communication memory (hereinafter referred to as “virtual communication memory 400”) for communicating with the virtual machine. First, thememory control unit 110 secures a storage area from the main memory and generates avirtual communication memory 400 to be accessed by thecommunication memory driver 300. Thememory control unit 110 generates a firstvirtual memory 410 and a secondvirtual memory 420 in thevirtual communication memory 400. Next, thememory control unit 110 associates the firstvirtual memory 410 and the secondvirtual memory 420 with thefirst communication memory 520 and thesecond communication memory 620.

これにより、第一仮想マシン500及び第二仮想マシン600が、第一通信用メモリ520及び第二通信用メモリ620を用いて通信を行う場合、メモリ制御部は、第一通信用メモリ520及び第二通信用メモリ620を、仮想通信用メモリ400にアクセスさせる。 As a result, when the firstvirtual machine 500 and the secondvirtual machine 600 communicate using thefirst communication memory 520 and thesecond communication memory 620, the memory control unit uses thefirst communication memory 520 and thesecond communication memory 520. (Ii) Thecommunication memory 620 is made to access thevirtual communication memory 400.

なお、本実施形態では、2台の仮想マシン間での通信を想定しているため、仮想通信用メモリ400内の仮想メモリは2つにしている。3台以上の複数の仮想マシン間での通信を想定する場合、仮想メモリは、仮想マシンの台数に応じて生成される必要がある。2台の仮想マシンでの通信の場合と同様に、メモリ制御部110は、生成した仮想メモリを、仮想マシンの通信用メモリと1対1で対応付ける。 In this embodiment, since communication between two virtual machines is assumed, the number of virtual memories in thevirtual communication memory 400 is two. When assuming communication between a plurality of virtual machines of three or more, virtual memory needs to be generated according to the number of virtual machines. As in the case of communication between two virtual machines, thememory control unit 110 associates the generated virtual memory with the communication memory of the virtual machine on a one-to-one basis.

データ判定部120は、情報処理装置1のOSがWindows(登録商標)の場合であれば、プロセスからファイルへのアクセスが行われる際には入出力要求パケット(IRP:I/O Request Packet)が発行される。データ判定部120は、プロセスから受け取った入出力要求パケットの情報に基づいて、実データ及び識別データを判定する。入出力要求パケットの情報には、通信用メモリのアドレスに対応した論理ブロックアドレスLBA(Logical Block Addressing)が含まれ、データ判定部120は、送信要求及び受信要求の発行元の識別IDとしてLBAを使用する。そして、データ判定部120は、判定結果に基づいて取得したデータをデータ登録部130へ送る。 When the OS of theinformation processing device 1 is Windows (registered trademark), thedata determination unit 120 receives an input / output request packet (IRP: I / O Request Packet) when the process accesses the file. publish. Thedata determination unit 120 determines the actual data and the identification data based on the information of the input / output request packet received from the process. The information of the input / output request packet includes a logical block address LBA (Logical Block Addressing) corresponding to the address of the communication memory, and thedata determination unit 120 uses the LBA as the identification ID of the issuer of the transmission request and the reception request. use. Then, thedata determination unit 120 sends the acquired data based on the determination result to thedata registration unit 130.

データ登録部130は、データ判定部120から受け取ったデータをシステムメモリ200に登録する。本実施形態では、例として、データ登録部130は、データ判定部120から受け取った識別ID、通信ID、保存データフラグ及びデータ保存アドレスを通信用メモリ記憶部210に登録する。 Thedata registration unit 130 registers the data received from thedata determination unit 120 in thesystem memory 200. In the present embodiment, as an example, thedata registration unit 130 registers the identification ID, the communication ID, the storage data flag, and the data storage address received from thedata determination unit 120 in the communicationmemory storage unit 210.

データ登録部130は、通信制御部140の処理の結果に基づいて、仮想マシンが制御された状態を表すデータ(以下「状態情報」という。)を通信制御部140から受け取り、通信用メモリ記憶部210に登録する。データ登録部130は、データ判定部120から受け取った実データを通信データ記憶部220に登録する。 Thedata registration unit 130 receives data representing the controlled state of the virtual machine (hereinafter referred to as “state information”) from thecommunication control unit 140 based on the processing result of thecommunication control unit 140, and receives communication memory storage unit. Register with 210. Thedata registration unit 130 registers the actual data received from thedata determination unit 120 in the communicationdata storage unit 220.

通信制御部140は、複数の仮想マシン間の通信を制御する。通信制御部140は、後述する図6のデータテーブルに基づいて、仮想マシンのデータ通信を制御する。具体的には、通信制御部140は、OSが発行する入出力要求パケットなどの識別データに基づいて、仮想マシン間の通信を制御する。 Thecommunication control unit 140 controls communication between a plurality of virtual machines. Thecommunication control unit 140 controls the data communication of the virtual machine based on the data table of FIG. 6 described later. Specifically, thecommunication control unit 140 controls communication between virtual machines based on identification data such as input / output request packets issued by the OS.

例えば、第一アプリケーション510から、初期化リクエストがあった場合、通信制御部140は、図6のデータテーブルを参照し、指示データが書込用初期設定の「INIT_W」、識別IDが「LBA_AP1_W」、送り元が「AP1」であることを確認する。そして、通信制御部140は、第一アプリケーション510の書き込み用初期設定を行う。 For example, when there is an initialization request from thefirst application 510, thecommunication control unit 140 refers to the data table of FIG. 6, the instruction data is the initial setting for writing "INIT_W", and the identification ID is "LBA_AP1_W". , Confirm that the sender is "AP1". Then, thecommunication control unit 140 performs the initial setting for writing of thefirst application 510.

通信制御部140が行う制御に関しては、後述する図8から10のシーケンス図を用いて説明する。また、通信制御部140は、制御処理が行われる工程に基づいて、状態情報をデータ登録部130へ送る。 The control performed by thecommunication control unit 140 will be described with reference to the sequence diagrams of FIGS. 8 to 10 described later. Further, thecommunication control unit 140 sends the state information to thedata registration unit 130 based on the process in which the control process is performed.

図3は、本発明の一実施形態に係るコマンド及び宛先情報の一例を示すデータテーブルである。
通信用メモリ記憶部210は、書き込みの初期設定を行う指示データ、読み込みの初期設定を行う指示データ及び送信を行う指示データを、予め記憶する。また、通信する宛先や送り元を示す宛先情報も同様に記憶されている。
FIG. 3 is a data table showing an example of a command and destination information according to an embodiment of the present invention.
The communicationmemory storage unit 210 stores in advance instruction data for initial setting of writing, instruction data for initial setting of reading, and instruction data for transmission. In addition, destination information indicating a communication destination and a sender is also stored in the same manner.

図3では、例として、指示データの項目に「INIT_W」、「INIT_R」、「TX」が記憶されており、宛先情報の項目に「AP1」、「AP2」が記憶されている。なお、図3は、本実施形態のデータフォーマットの一例であり、使用する通信方法に合わせて変更してもよい。 In FIG. 3, as an example, "INIT_W", "INIT_R", and "TX" are stored in the instruction data item, and "AP1" and "AP2" are stored in the destination information item. Note that FIG. 3 is an example of the data format of the present embodiment, and may be changed according to the communication method to be used.

図4は、本発明の一実施形態に係る通信用メモリのアドレスの一例を示すデータテーブルである。
通信用メモリ記憶部210は、仮想マシンの通信用メモリの送信用アドレス及び受信用アドレスを、予め記憶する。
FIG. 4 is a data table showing an example of the address of the communication memory according to the embodiment of the present invention.
The communicationmemory storage unit 210 stores in advance the transmission address and the reception address of the communication memory of the virtual machine.

図4では、例として、第一通信用メモリ520の送信用アドレス項目に「0xXXXXXXX1」、第一通信用メモリ520の受信用アドレス項目に「0xYYYYYYY1」、第二通信用メモリ620の送信用アドレス項目に「0xXXXXXXX2」、第二通信用メモリ620の受信用アドレス項目に「0xYYYYYYY2」が記憶されている。 In FIG. 4, as an example, the transmission address item of thefirst communication memory 520 is "0xXXXXXXX1", the reception address item of thefirst communication memory 520 is "0xYYYYYYY1", and the transmission address item of thesecond communication memory 620 is. "0xXXXXXXXXX2" is stored in, and "0xYYYYYYY2" is stored in the receiving address item of thesecond communication memory 620.

図5は、本発明の一実施形態に係る仮想マシンの通信用メモリ及び通信用メモリドライバの論理ブロックアドレスの一例を示すデータテーブルである。論理ブロックアドレスとは、記憶装置においてデータの位置を示すアドレスを指定する方法である。論理ブロックアドレスは、論理ブロックを含むブロックアドレス空間の先頭からのブロックオフセットを表す。 FIG. 5 is a data table showing an example of the logical block address of the communication memory and the communication memory driver of the virtual machine according to the embodiment of the present invention. The logical block address is a method of designating an address indicating the position of data in a storage device. The logical block address represents the block offset from the beginning of the block address space containing the logical block.

図5では、例として、通信用メモリのI/Oに使用する論理ブロックアドレスとして、図4で示した通信用メモリの送信用アドレスと、受信用アドレスと、を用いている。通信用メモリドライバの論理ブロックアドレスは、通信用メモリのI/Oに使用する論理ブロックアドレスと、関連付けて記憶される、通信用メモリドライバの論理ブロックアドレスとして、例として、「LBA_AP1_W」「LBA_AP1_R」「LBA_AP2_W」「LBA_AP2_R」を設定している。 In FIG. 5, as an example, the transmission address and the reception address of the communication memory shown in FIG. 4 are used as the logical block addresses used for the I / O of the communication memory. The logical block address of the communication memory driver is, for example, "LBA_AP1_W" and "LBA_AP1_R" as the logical block address of the communication memory driver that is stored in association with the logical block address used for the I / O of the communication memory. "LBA_AP2_W" and "LBA_AP2_R" are set.

図6は、本発明の一実施形態に係る通信用メモリ記憶部210で管理する識別データの一例を示すデータテーブルである。本実施形態では、通信用メモリ記憶部210で管理する識別データのデータテーブル(以下「管理テーブル」という。)は、識別ID、通信ID、状態情報、保存データフラグ、データ保存アドレスを有する。 FIG. 6 is a data table showing an example of identification data managed by the communicationmemory storage unit 210 according to the embodiment of the present invention. In the present embodiment, the data table of identification data managed by the communication memory storage unit 210 (hereinafter referred to as "management table") has an identification ID, a communication ID, state information, a storage data flag, and a data storage address.

識別IDのデータ項目は、通信用メモリドライバの論理ブロックアドレスが登録される。図6において、論理ブロックアドレスは、図5の通信用メモリの送受信のアドレスと対応付いて登録されている。
通信IDのデータ項目は、宛先情報が登録される。図6において、宛先情報は、図3の宛先情報と対応付いて登録されている。
The logical block address of the communication memory driver is registered in the data item of the identification ID. In FIG. 6, the logical block address is registered in association with the transmission / reception address of the communication memory of FIG.
Destination information is registered in the data item of the communication ID. In FIG. 6, the destination information is registered in association with the destination information of FIG.

状態のデータ項目は、「初期設定中」「アイドル」「送信要求中」「送信完了待ち」「受信要求中」「受信完了待ち」の6つの状態情報うち、いずれか1つの状態情報が登録される。状態のデータ項目は、通信制御部140の処理に基づいて、データ登録部130によって登録される。なお、初期設定を行う前は識別IDによる管理情報が無いため、「初期状態」として表す。 As for the status data item, one of the six status information of "initial setting", "idle", "transmission requesting", "transmission completion waiting", "reception requesting", and "reception completion waiting" is registered. Idol. The state data item is registered by thedata registration unit 130 based on the processing of thecommunication control unit 140. Since there is no management information based on the identification ID before the initial setting is performed, it is expressed as "initial state".

保存データフラグのデータ項目は、保存された実データが存在するか否かに基づいて、データ登録部130によって登録される。保存データフラグの種別は、有効、無効とし、保存データが有る場合には有効、保存データが無い場合には無効とする。 The data item of the saved data flag is registered by thedata registration unit 130 based on whether or not the saved actual data exists. The types of saved data flags are valid and invalid, valid when there is saved data, and invalid when there is no saved data.

データ保存アドレスのデータ項目は、初期設定を行う際、通信データを一時的に格納するメモリエリア(バッファ)の先頭アドレスがデータ登録部130によって登録される。
なお、保存データフラグ及びデータ保存アドレスは、識別IDが送信用の場合、使用しない。
As for the data item of the data storage address, the start address of the memory area (buffer) for temporarily storing the communication data is registered by thedata registration unit 130 when the initial setting is performed.
The saved data flag and data saved address are not used when the identification ID is for transmission.

図7は、本発明の一実施形態に係る仮想マシンの通信用メモリを設定する処理の流れを示すフローチャートである。
メモリ制御部110は、メインメモリから記憶領域を確保し、通信用メモリドライバ300によりアクセスする仮想通信用メモリ400を生成する(ステップS100)。
FIG. 7 is a flowchart showing a flow of processing for setting a communication memory of a virtual machine according to an embodiment of the present invention.
Thememory control unit 110 secures a storage area from the main memory and generates avirtual communication memory 400 to be accessed by the communication memory driver 300 (step S100).

メモリ制御部110は、仮想通信用メモリ400の中に仮想マシンの数と同数の仮想メモリ(第一仮想メモリ410、第二仮想メモリ420、…)を生成する(ステップS101)。
メモリ制御部110は、各仮想マシンの通信用メモリに、ステップS101で生成した仮想メモリを1対1で対応付ける(ステップS102)。
Thememory control unit 110 generates the same number of virtual memories (firstvirtual memory 410, secondvirtual memory 420, ...) In thevirtual communication memory 400 as the number of virtual machines (step S101).
Thememory control unit 110 associates the communication memory of each virtual machine with the virtual memory generated in step S101 on a one-to-one basis (step S102).

図8は、本発明の一実施形態に係る仮想マシン間の通信において、初期設定の処理の流れを示すシーケンス図である。
第一通信用メモリからの入出力要求パケットを処理するスレッド1と、第二通信用メモリからの入出力要求パケットを処理するスレッド2は、マルチスレッドで動作する。
FIG. 8 is a sequence diagram showing a flow of initial setting processing in communication between virtual machines according to an embodiment of the present invention.
Thethread 1 that processes the input / output request packet from the first communication memory and the thread 2 that processes the input / output request packet from the second communication memory operate in multiple threads.

第一アプリケーション510は、第一通信用メモリ520の送信用アドレスを用いて初期化要求(書込用初期設定の入出力要求パケット生成)を行う(ステップS200)。この初期化要求により、OSが発行する入出力要求パケットの情報(指示データ:INIT_W、送り元:AP1、識別ID:LBA_AP1_W)をデータ判定部120が受け取る(ステップS201)。 Thefirst application 510 makes an initialization request (generation of an input / output request packet for initial setting for writing) using the transmission address of the first communication memory 520 (step S200). By this initialization request, thedata determination unit 120 receives the information (instruction data: INIT_W, sender: AP1, identification ID: LBA_AP1_W) of the input / output request packet issued by the OS (step S201).

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS202)。データ判定部120の判定結果に基づいて、データ登録部130は、通信用メモリ記憶部210が記憶する管理テーブルに、識別IDを「LBA_AP1_W」、状態を「初期設定中」として登録する(ステップS203)。 Thedata determination unit 120 determines identification data such as an identification ID included in the input / output request packet based on the information of the input / output request packet (step S202). Based on the determination result of thedata determination unit 120, thedata registration unit 130 registers the identification ID as "LBA_AP1_W" and the state as "initial setting" in the management table stored in the communication memory storage unit 210 (step S203). ).

データ登録部130は、管理テーブルに識別ID「LBA_AP1_W」の通信IDを「AP1」として識別データを登録する(ステップS204)。初期値を記憶した後、データ登録部130は、管理テーブルに識別ID「LBA_AP1_W」の状態を「アイドル」として登録する(ステップS205)。そして、通信制御部140は、ステップS201の入出力要求パケットで要求された処理の完了通知を第一アプリケーション510へ送る(ステップS206)。 Thedata registration unit 130 registers the identification data in the management table with the communication ID of the identification ID “LBA_AP1_W” as “AP1” (step S204). After storing the initial value, thedata registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “idle” in the management table (step S205). Then, thecommunication control unit 140 sends a notification of completion of the process requested by the input / output request packet in step S201 to the first application 510 (step S206).

第二アプリケーション610は、第二通信用メモリ620の受信用アドレスを用いて初期化要求(読込用初期設定の入出力要求パケット生成)を行う(ステップS207)。この初期化要求により、OSが発行する入出力要求パケットの情報(指示データ:INIT_R、送り元:AP2、識別ID:LBA_AP2_R)をデータ判定部120が受け取る(ステップS208)。 Thesecond application 610 makes an initialization request (generation of an input / output request packet for initial setting for reading) using the reception address of the second communication memory 620 (step S207). By this initialization request, thedata determination unit 120 receives the information (instruction data: INIT_R, sender: AP2, identification ID: LBA_AP2_R) of the input / output request packet issued by the OS (step S208).

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS209)。データ判定部120の判定結果に基づいて、データ登録部130は、通信用メモリ記憶部210が記憶する管理テーブルに、識別IDを「LBA_AP2_R」、状態を「初期設定中」として登録する(ステップS210)。 Thedata determination unit 120 determines identification data such as an identification ID included in the input / output request packet based on the information of the input / output request packet (step S209). Based on the determination result of thedata determination unit 120, thedata registration unit 130 registers the identification ID as "LBA_AP2_R" and the state as "initial setting" in the management table stored in the communication memory storage unit 210 (step S210). ).

データ登録部130は、管理テーブルに識別ID「LBA_AP2_R」の通信IDを「AP2」、保存データフラグを「無効」、データ保存アドレスを「LBA_AP2_R用バッファアドレス」として識別データを登録する(ステップS211)。初期値を記憶した後、データ登録部130は、管理テーブルに識別ID「LBA_AP2_R」の状態を「アイドル」として登録する(ステップS212)。そして、通信制御部140は、ステップS208の入出力要求パケットで要求された処理の完了通知を第二アプリケーション610へ送る(ステップS213)。 Thedata registration unit 130 registers identification data in the management table with the communication ID of the identification ID "LBA_AP2_R" as "AP2", the save data flag as "invalid", and the data save address as "buffer address for LBA_AP2_R" (step S211). .. After storing the initial value, thedata registration unit 130 registers the state of the identification ID “LBA_AP2_R” as “idle” in the management table (step S212). Then, thecommunication control unit 140 sends a notification of completion of the process requested by the input / output request packet in step S208 to the second application 610 (step S213).

図9は、本発明の一実施形態に係る仮想マシン間の通信において、先に送信処理を行う場合の処理の流れを示すシーケンス図である。
第一アプリケーション510は、第一通信用メモリ520の送信用アドレスを用いて送信要求(送信リクエストの入出力要求パケット生成)を行う(ステップS300)。この送信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP1_W、指示データ:TX、送り元:AP1、宛先:AP2)をデータ判定部120が受け取る(ステップS301)。
FIG. 9 is a sequence diagram showing a processing flow when the transmission processing is performed first in the communication between the virtual machines according to the embodiment of the present invention.
Thefirst application 510 makes a transmission request (generation of an input / output request packet for a transmission request) using the transmission address of the first communication memory 520 (step S300). In response to this transmission request, thedata determination unit 120 receives information (identification ID: LBA_AP1_W, instruction data: TX, source: AP1, destination: AP2) of the input / output request packet issued by the OS (step S301).

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS302)。データ判定部120の判定結果に基づいて、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信要求中」として登録する(ステップS303)。さらに、データ判定部120は、判定結果に基づいて、「LBA_AP2_R」の状態が「アイドル中」であることをデータ登録部130に通知する。データ登録部130は、通信データ記憶部220の「LBA_AP2_R用」のバッファアドレスに実データを保存し、識別ID「LBA_AP2_R」のデータ保存フラグを「有効」にする(ステップS304)。 Thedata determination unit 120 determines identification data such as an identification ID included in the input / output request packet based on the information of the input / output request packet (step S302). Based on the determination result of thedata determination unit 120, thedata registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “transmission requesting” in the management table (step S303). Further, thedata determination unit 120 notifies thedata registration unit 130 that the state of “LBA_AP2_R” is “idle” based on the determination result. Thedata registration unit 130 stores the actual data in the buffer address of the communicationdata storage unit 220 “for LBA_AP2_R”, and sets the data storage flag of the identification ID “LBA_AP2_R” to “valid” (step S304).

データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信完了待ち」として登録する(ステップS305)。 Thedata registration unit 130 registers the state of the identification ID “LBA_AP1_W” in the management table as “waiting for transmission completion” (step S305).

第二アプリケーション610は、第二通信用メモリ620の受信用アドレスを用いて受信要求(受信リクエストの入出力要求パケット生成)を行う(ステップS306)。この受信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP2_R)をデータ判定部120が受け取る(ステップS307)。 Thesecond application 610 makes a reception request (input / output request packet generation of the reception request) using the reception address of the second communication memory 620 (step S306). In response to this reception request, thedata determination unit 120 receives the information (identification ID: LBA_AP2_R) of the input / output request packet issued by the OS (step S307).

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS308)。具体的には、データ判定部120は、識別ID「LBA_AP2_R」のデータ保存フラグを参照し、保存された実データがあるか確認する。データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「受信要求中」として登録する(ステップS309)。 Thedata determination unit 120 determines identification data such as an identification ID included in the input / output request packet based on the information of the input / output request packet (step S308). Specifically, thedata determination unit 120 refers to the data storage flag of the identification ID “LBA_AP2_R” and confirms whether or not there is stored actual data. Thedata registration unit 130 registers the state of the identification ID “LBA_AP2_R” in the management table as “reception requesting” (step S309).

図9の処理フローでは、実データは保存されているため、通信制御部140は、通信データ記憶部220の「LBA_AP2_R用」のバッファアドレスから実データを読み出して、読み出した実データをAP2宛の実データとして第二アプリケーション610に転送する(ステップS310)。データ登録部130は、通信データ記憶部220の「LBA_AP2_R用」のバッファアドレスに保存された実データを破棄し識別ID「LBA_AP2_R」のデータ保存フラグを「無効」にする。 In the processing flow of FIG. 9, since the actual data is stored, thecommunication control unit 140 reads the actual data from the buffer address of the “LBA_AP2_R” of the communicationdata storage unit 220, and the read actual data is addressed to the AP2. It is transferred to thesecond application 610 as actual data (step S310). Thedata registration unit 130 discards the actual data stored in the buffer address of the communicationdata storage unit 220 “for LBA_AP2_R” and sets the data storage flag of the identification ID “LBA_AP2_R” to “invalid”.

通信制御部140が実データを第二アプリケーション610に転送した後、データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「アイドル」として登録する(ステップS311)。そして、通信制御部140は、ステップS307の入出力要求パケットで要求された処理の完了を通知する(ステップS312)。 After thecommunication control unit 140 transfers the actual data to thesecond application 610, thedata registration unit 130 registers the state of the identification ID “LBA_AP2_R” as “idle” in the management table (step S311). Then, thecommunication control unit 140 notifies the completion of the processing requested by the input / output request packet in step S307 (step S312).

また、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「アイドル」として登録する(ステップS313)。そして、通信制御部140は、ステップS301の入出力要求パケットで要求された処理の完了を通知する(ステップS314)。 Further, thedata registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “idle” in the management table (step S313). Then, thecommunication control unit 140 notifies the completion of the processing requested by the input / output request packet in step S301 (step S314).

図10は、本発明の一実施形態に係る仮想マシン間の通信において、先に受信を行う場合の処理の流れを示すシーケンス図である。
第二アプリケーション610は、第二通信用メモリ620の受信用アドレスを用いて受信要求(受信リクエストの入出力要求パケット生成)を行う(ステップS400)。この受信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP2_R)をデータ判定部120が受け取る(ステップS401)。
FIG. 10 is a sequence diagram showing a flow of processing when reception is performed first in communication between virtual machines according to an embodiment of the present invention.
Thesecond application 610 makes a reception request (input / output request packet generation of the reception request) using the reception address of the second communication memory 620 (step S400). In response to this reception request, thedata determination unit 120 receives the information (identification ID: LBA_AP2_R) of the input / output request packet issued by the OS (step S401).

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS402)。具体的には、データ判定部120は、識別ID「LBA_AP2_R」のデータ保存フラグを参照し、保存された実データがあるか確認する。データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「受信要求中」として登録する(ステップS403)。 Thedata determination unit 120 determines identification data such as an identification ID included in the input / output request packet based on the information of the input / output request packet (step S402). Specifically, thedata determination unit 120 refers to the data storage flag of the identification ID “LBA_AP2_R” and confirms whether or not there is stored actual data. Thedata registration unit 130 registers the state of the identification ID “LBA_AP2_R” in the management table as “reception requesting” (step S403).

図10の処理フローでは、実データは保存されていないため、データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「受信完了待ち」として登録する(ステップS404)。 In the processing flow of FIG. 10, since the actual data is not saved, thedata registration unit 130 registers the state of the identification ID “LBA_AP2_R” in the management table as “waiting for completion of reception” (step S404).

第一アプリケーション510は、第一通信用メモリ520の送信用アドレスを用いて送信要求(送信リクエストの入出力要求パケット生成)を行う(ステップS405)。この送信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP1_W、指示データ:TX、送り元:AP1、宛先:AP2)をデータ判定部120が受け取る(ステップS406)。 Thefirst application 510 makes a transmission request (generation of an input / output request packet for a transmission request) using the transmission address of the first communication memory 520 (step S405). In response to this transmission request, thedata determination unit 120 receives information (identification ID: LBA_AP1_W, instruction data: TX, source: AP1, destination: AP2) of the input / output request packet issued by the OS (step S406).

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS407)。データ判定部120の判定結果に基づいて、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信要求中」として登録する(ステップS408)。さらにデータ判定部120は、判定結果に基づいて、「LBA_AP2_R」の状態が「受信完了待ち」であることを通信制御部140に通知する。通信制御部140は、「LBA_AP2_R」の状態が「受信完了待ち」であるため、実データを第二アプリケーション610へ転送する(ステップS409)。 Thedata determination unit 120 determines identification data such as an identification ID included in the input / output request packet based on the information of the input / output request packet (step S407). Based on the determination result of thedata determination unit 120, thedata registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “transmission requesting” in the management table (step S408). Further, thedata determination unit 120 notifies thecommunication control unit 140 that the state of “LBA_AP2_R” is “waiting for completion of reception” based on the determination result. Since the state of "LBA_AP2_R" is "waiting for completion of reception", thecommunication control unit 140 transfers the actual data to the second application 610 (step S409).

通信制御部140が実データを第二アプリケーション610に転送した後、データ登録部130は、管理テーブルに、識別ID「LBA_AP2_R」の状態を「アイドル」として登録する(ステップS410)。そして、通信制御部140は、ステップS401の入出力要求パケットで要求された処理の完了を通知する(ステップS411)。 After thecommunication control unit 140 transfers the actual data to thesecond application 610, thedata registration unit 130 registers the state of the identification ID “LBA_AP2_R” as “idle” in the management table (step S410). Then, thecommunication control unit 140 notifies the completion of the processing requested by the input / output request packet in step S401 (step S411).

また、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「アイドル」として登録(ステップS412)する。そして、通信制御部140は、ステップS406の入出力要求パケットで要求された処理の完了を通知する(ステップS413)。 Further, thedata registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “idle” in the management table (step S412). Then, thecommunication control unit 140 notifies the completion of the processing requested by the input / output request packet in step S406 (step S413).

[変形例]
本実施形態では、仮想マシンを2台用いて説明したが、同一のホストマシン上で動作する仮想マシンであれば、2台以上のN台の仮想マシン間の通信にも本実施形態は、応用が可能である。
[Modification example]
In this embodiment, two virtual machines have been described, but if the virtual machines operate on the same host machine, the present embodiment can also be applied to communication between two or more N virtual machines. Is possible.

本実施形態では、仮想通信用メモリ400を、仮想マシン上の通信用メモリとして対応付けることにより、仮想通信用メモリ400を通信用メモリとみなして動作させた。変形例では、通信データフォーマットのデータテーブルに通信用の制御コードを予め登録しておき、通信用制御コードを参照することにより、動作方法を変更することが可能となる。 In the present embodiment, thevirtual communication memory 400 is associated with the communication memory on the virtual machine, so that thevirtual communication memory 400 is regarded as the communication memory and operated. In the modification, the operation method can be changed by registering the communication control code in the data table of the communication data format in advance and referring to the communication control code.

図11は、本発明の一実施形態に係る仮想マシンのプロトコル階層の一例を示す図である。
NW通信プロトコルを使用した仮想マシン間の通信は、TCP/IPの規格に基づいて、アプリケーション層、トランスポート層、インターネット層、ネットワークインターフェース層を介して通信を行う。
FIG. 11 is a diagram showing an example of a protocol hierarchy of a virtual machine according to an embodiment of the present invention.
Communication between virtual machines using the NW communication protocol is performed via the application layer, the transport layer, the Internet layer, and the network interface layer based on the TCP / IP standard.

送信側の仮想マシンは、通信する実データに加えて、各層に応じた制御用のデータを付与する。受信側の仮想マシンは、付与されたデータを、各層に応じて取り除き、実データのみを取得する。図11では、例として、NW通信プロトコルを使用し、第一仮想マシン500から第二仮想マシン600へデータを送信する場合を説明する。 The virtual machine on the transmitting side adds control data according to each layer in addition to the actual data to be communicated. The virtual machine on the receiving side removes the given data according to each layer and acquires only the actual data. FIG. 11 describes a case where data is transmitted from the firstvirtual machine 500 to the secondvirtual machine 600 by using the NW communication protocol as an example.

第一仮想マシン500から送信される実データは、送信処理が行われた場合、アプリケーション層からネットワークインターフェース層までの各層で、制御用のデータとしてTCPセグメント(TCPパケット)が付与される。そして、ホストマシンの仮想マシン管理層を経由し、第二仮想マシン600へ送信される。 When the transmission process is performed, the actual data transmitted from the firstvirtual machine 500 is provided with a TCP segment (TCP packet) as control data in each layer from the application layer to the network interface layer. Then, it is transmitted to the secondvirtual machine 600 via the virtual machine management layer of the host machine.

第二仮想マシン600では、ネットワークインターフェース層からアプリケーション層までの各層に応じたTCPセグメントを取り除く。そして、第二仮想マシンは、実データを受信する。 In the secondvirtual machine 600, the TCP segment corresponding to each layer from the network interface layer to the application layer is removed. Then, the second virtual machine receives the actual data.

上記の通信方法を用いた場合、仮想マシン間の通信に制御用のデータを使用する工程が発生する。本実施形態では、NW通信プロトコルを使用せず、メモリアクセスの手法でデータを通信するため、上記の通信方法で発生するオーバーヘッドが削減できる。 When the above communication method is used, a step of using control data for communication between virtual machines occurs. In the present embodiment, since the data is communicated by the memory access method without using the NW communication protocol, the overhead generated by the above communication method can be reduced.

図12は、本実施形態による情報処理装置1の最小構成を示す図である。
本実施形態による情報処理装置1は少なくとも、メモリ制御部110及び通信制御部140を備えればよい。
FIG. 12 is a diagram showing a minimum configuration of theinformation processing apparatus 1 according to the present embodiment.
Theinformation processing apparatus 1 according to the present embodiment may include at least amemory control unit 110 and acommunication control unit 140.

メモリ制御部110は、仮想マシンと通信を行うための、仮想通信用メモリを構成する。はじめに、メモリ制御部110は、メインメモリから記憶領域を確保し、通信用メモリドライバ300によりアクセスする仮想通信用メモリ400を生成する。そして、仮想通信用メモリ400の中に2台分の仮想メモリを生成する。つまり、メモリ制御部110は、第一仮想メモリ410及び第二仮想メモリ420を生成する。次に、メモリ制御部110は第一仮想メモリ410及び第二仮想メモリ420を、第一通信用メモリ520及び第二通信用メモリ620に対応付ける。 Thememory control unit 110 constitutes a virtual communication memory for communicating with the virtual machine. First, thememory control unit 110 secures a storage area from the main memory and generates avirtual communication memory 400 to be accessed by thecommunication memory driver 300. Then, two virtual memories are generated in thevirtual communication memory 400. That is, thememory control unit 110 generates the firstvirtual memory 410 and the secondvirtual memory 420. Next, thememory control unit 110 associates the firstvirtual memory 410 and the secondvirtual memory 420 with thefirst communication memory 520 and thesecond communication memory 620.

通信制御部140は、複数の仮想マシン間の通信を制御する。通信制御部140は、図6のデータテーブルに基づいて、仮想マシンのデータ通信を制御する。また、通信制御部140は、処理のフローに基づいて、状態情報を通信用メモリ記憶部210に登録する。 Thecommunication control unit 140 controls communication between a plurality of virtual machines. Thecommunication control unit 140 controls the data communication of the virtual machine based on the data table of FIG. Further, thecommunication control unit 140 registers the state information in the communicationmemory storage unit 210 based on the processing flow.

以上より、本実施形態では、メモリ制御部110、通信制御部140を持つことにより、同一ホストマシン上の仮想マシン同士の通信において、NW通信プロトコルを使用しないことにより、通信処理のオーバーヘッドを削減することができる。 From the above, in the present embodiment, by having thememory control unit 110 and thecommunication control unit 140, the overhead of communication processing is reduced by not using the NW communication protocol in the communication between virtual machines on the same host machine. be able to.

上述の情報処理装置は内部に、コンピュータシステムを有している。そして、上述した同一ホストマシン上で動作する複数の仮想マシン間で通信を行う場合に、オーバーヘッドを削減する過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。 The above-mentioned information processing apparatus has a computer system inside. The process of reducing overhead when communicating between a plurality of virtual machines operating on the same host machine described above is stored in a computer-readable recording medium in the form of a program, and this program is stored in a computer. Reads and executes, so that the above processing is performed. Here, the computer-readable recording medium means a magnetic disk, a magneto-optical disk, a CD-ROM, a DVD-ROM, a semiconductor memory, or the like. Further, this computer program may be distributed to a computer via a communication line, and the computer receiving the distribution may execute the program.

なお、図1における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、BIOSの例外時にOSの処理を継続させてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。 An exception to the BIOS is obtained by recording a program for realizing the function of the processing unit in FIG. 1 on a computer-readable recording medium, causing the computer system to read the program recorded on the recording medium, and executing the program. Occasionally, OS processing may be continued. The term "computer system" as used herein includes hardware such as an OS and peripheral devices. Further, the "computer system" shall also include a WWW system provided with a homepage providing environment (or display environment). Further, the "computer-readable recording medium" refers to a portable medium such as a flexible disk, a magneto-optical disk, a ROM, or a CD-ROM, and a storage device such as a hard disk built in a computer system. Furthermore, a "computer-readable recording medium" is a volatile memory (RAM) inside a computer system that serves as a server or client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line. In addition, it shall include those that hold the program for a certain period of time.

また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。 Further, the program may be transmitted from a computer system in which this program is stored in a storage device or the like to another computer system via a transmission medium or by a transmission wave in the transmission medium. Here, the "transmission medium" for transmitting a program refers to a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line. Further, the above program may be for realizing a part of the above-mentioned functions. Further, a so-called difference file (difference program) may be used, which can realize the above-mentioned function in combination with a program already recorded in the computer system.

《付記》
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
<< Additional notes >>
Some or all of the above embodiments may also be described, but not limited to:

(付記1)
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、
情報処理装置。
(Appendix 1)
In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control unit that associates a first virtual machine that transmits transmission data including identification data and a second storage area for communication secured in each of the second virtual machine that receives the transmission data.
A communication control unit that controls communication between the first virtual machine and the second virtual machine is provided.
The first virtual machine writes the transmission data in the first storage area associated with the second storage area of the first virtual machine.
The second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
The communication control unit transmits the transmission data to the second virtual machine based on the reception instruction.
Information processing equipment.

(付記2)
前記複数の仮想マシンのOSが発行する前記識別データと、前記第一仮想マシンが発行する前記通信制御部の処理の内容を示す指示データと、に基づいて、前記送信データに含まれている情報を判定するデータ判定部
を備える付記1に記載の情報処理装置。
(Appendix 2)
Information included in the transmission data based on the identification data issued by the OSs of the plurality of virtual machines and instruction data indicating the processing contents of the communication control unit issued by the first virtual machine. The information processing apparatus according toAppendix 1, which comprises a data determination unit for determining.

(付記3)
前記通信制御部は、前記データ判定部の判定結果に基づいて、前記送信データを前記第二仮想マシンに送信する
付記2に記載の情報処理装置。
(Appendix 3)
The information processing device according to Appendix 2, wherein the communication control unit transmits the transmission data to the second virtual machine based on the determination result of the data determination unit.

(付記4)
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として送信先を表す送信先情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記送信先情報が示す前記第仮想マシンに送信データを送信
付記2又は3に記載の情報処理装置。
(Appendix 4)
The data determination unit determines the identification data included in the transmission data, and outputs the destination information indicating the destination as the determination result to the communication control unit.
The information processing deviceaccording to Appendix 2 or 3, wherein the communication control unit transmits transmission data to thesecond virtual machine indicated by the destination information based on the output result of the data determination unit.

(付記5)
前記送信データに含まれる、データの内容を示す実データ及び前記識別データを記憶する記憶部と、
前記データ判定部の判定結果に基づいて、前記実データ及び前記識別データを前記記憶部に登録するデータ登録部
を備える付記2から4のいずれか一項に記載の情報処理装置。
(Appendix 5)
A storage unit that stores actual data indicating the contents of the data and the identification data included in the transmission data, and a storage unit.
The information processing apparatus according to any one of Supplementary note 2 to 4, further comprising a data registration unit for registering the actual data and the identification data in the storage unit based on the determination result of the data determination unit.

(付記6)
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンの通信状態を表す状態情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記状態情報を前記データ登録部に出力し、
前記データ登録部は、前記状態情報を前記記憶部に登録する
付記5に記載の情報処理装置。
(Appendix 6)
The data determination unit determines the identification data included in the transmission data, and outputs status information indicating the communication status of the plurality of virtual machines as a determination result to the communication control unit.
The communication control unit outputs the state information to the data registration unit based on the output result of the data determination unit.
The information processing device according to Appendix 5, wherein the data registration unit registers the state information in the storage unit.

(付記7)
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンに前記実データが保有されているか否かを表す保存データ情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記保存データ情報を前記データ登録部に出力し、
前記データ登録部は、前記保存データ情報を前記記憶部に登録する
付記5又は6に記載の情報処理装置。
(Appendix 7)
The data determination unit determines the identification data included in the transmission data, and outputs stored data information indicating whether or not the actual data is possessed by the plurality of virtual machines as a determination result to the communication control unit. death,
The communication control unit outputs the stored data information to the data registration unit based on the output result of the data determination unit.
The information processing apparatus according to Appendix 5 or 6, wherein the data registration unit registers the stored data information in the storage unit.

(付記8)
前記データ登録部は、前記保存データ情報に、前記実データのアドレスを対応付けて登録する
付記7に記載の情報処理装置。
(Appendix 8)
The information processing device according to Appendix 7, wherein the data registration unit registers the stored data information in association with the address of the actual data.

(付記9)
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御ステップと、
前記第一仮想マシンが、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込むステップと、
前記第二仮想マシンが、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込むステップと、
前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信するステップと、
を有する情報処理方法。
(Appendix 9)
In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control step associated with a second storage area for communication secured in each of the first virtual machine that transmits transmission data including the identification data and the second virtual machine that receives the transmission data.
A step in which the first virtual machine writes the transmission data to the first storage area associated with the second storage area of the first virtual machine.
A step in which the second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
A step of transmitting the transmission data to the second virtual machine based on the reception instruction, and
Information processing method with.

(付記10)
1又は複数のコンピュータを、
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させるためのプログラム。
(Appendix 10)
One or more computers,
In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control unit that associates a first virtual machine that transmits transmission data including identification data and a second storage area for communication secured in each of the second virtual machine that receives the transmission data.
A communication control unit that controls communication between the first virtual machine and the second virtual machine is provided.
The first virtual machine writes the transmission data in the first storage area associated with the second storage area of the first virtual machine.
The second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
The communication control unit is a program for functioning as an information processing device that transmits the transmission data to the second virtual machine based on the reception instruction.

1・・・情報処理装置
100・・・制御部
110・・・メモリ制御部
120・・・データ判定部
130・・・データ登録部
140・・・通信制御部
200・・・システムメモリ
210・・・通信用メモリ記憶部
220・・・通信データ記憶部
300・・・通信用メモリドライバ
400・・・仮想通信用メモリ
410・・・第一仮想メモリ
420・・・第二仮想メモリ
500・・・第一仮想マシン
510・・・第一アプリケーション
520・・・第一通信用メモリ
600・・・第二仮想マシン
610・・・第二アプリケーション
620・・・第二通信用メモリ
1 ...Information processing device 100 ...Control unit 110 ...Memory control unit 120 ...Data judgment unit 130 ...Data registration unit 140 ...Communication control unit 200 ...System memory 210 ... -Communicationmemory storage unit 220 ... Communicationdata storage unit 300 ...Communication memory driver 400 ...Virtual communication memory 410 ... Firstvirtual memory 420 ... Secondvirtual memory 500 ... Firstvirtual machine 510 ...first application 520 ...first communication memory 600 ... secondvirtual machine 610 ...second application 620 ... second communication memory

Claims (10)

Translated fromJapanese
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、
情報処理装置。
In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control unit that associates a first virtual machine that transmits transmission data including identification data and a second storage area for communication secured in each of the second virtual machine that receives the transmission data.
A communication control unit that controls communication between the first virtual machine and the second virtual machine is provided.
The first virtual machine writes the transmission data in the first storage area associated with the second storage area of the first virtual machine.
The second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
The communication control unit transmits the transmission data to the second virtual machine based on the reception instruction.
Information processing equipment.
前記複数の仮想マシンのOSが発行する前記識別データと、前記第一仮想マシンが発行する前記通信制御部の処理の内容を示す指示データと、に基づいて、前記送信データに含まれている情報を判定するデータ判定部
を備える請求項1に記載の情報処理装置。
Information included in the transmission data based on the identification data issued by the OSs of the plurality of virtual machines and instruction data indicating the processing contents of the communication control unit issued by the first virtual machine. The information processing apparatus according to claim 1, further comprising a data determination unit for determining.
前記通信制御部は、前記データ判定部の判定結果に基づいて、前記送信データを前記第二仮想マシンに送信する
請求項2に記載の情報処理装置。
The information processing device according to claim 2, wherein the communication control unit transmits the transmission data to the second virtual machine based on the determination result of the data determination unit.
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として送信先を表す送信先情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記送信先情報が示す前記第仮想マシンに送信データを送信
請求項2又は3に記載の情報処理装置。
The data determination unit determines the identification data included in the transmission data, and outputs the destination information indicating the destination as the determination result to the communication control unit.
The information processing deviceaccording to claim 2 or 3, wherein the communication control unit transmits transmission data to thesecond virtual machine indicated by the destination information based on the output result of the data determination unit.
前記送信データに含まれる、データの内容を示す実データ及び前記識別データを記憶する記憶部と、
前記データ判定部の判定結果に基づいて、前記実データ及び前記識別データを前記記憶部に登録するデータ登録部
を備える請求項2から4のいずれか一項に記載の情報処理装置。
A storage unit that stores actual data indicating the contents of the data and the identification data included in the transmission data, and a storage unit.
The information processing apparatus according to any one of claims 2 to 4, further comprising a data registration unit for registering the actual data and the identification data in the storage unit based on the determination result of the data determination unit.
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンの通信状態を表す状態情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記状態情報を前記データ登録部に出力し、
前記データ登録部は、前記状態情報を前記記憶部に登録する
請求項5に記載の情報処理装置。
The data determination unit determines the identification data included in the transmission data, and outputs status information indicating the communication status of the plurality of virtual machines as a determination result to the communication control unit.
The communication control unit outputs the state information to the data registration unit based on the output result of the data determination unit.
The information processing device according to claim 5, wherein the data registration unit registers the state information in the storage unit.
前記データ判定部は、前記送信データに含まれる前記識別データを判定し、判定結果として前記複数の仮想マシンに前記実データが保有されているか否かを表す保存データ情報を前記通信制御部に出力し、
前記通信制御部は、前記データ判定部の出力結果に基づいて、前記保存データ情報を前記データ登録部に出力し、
前記データ登録部は、前記保存データ情報を前記記憶部に登録する
請求項5又は6に記載の情報処理装置。
The data determination unit determines the identification data included in the transmission data, and outputs stored data information indicating whether or not the actual data is possessed by the plurality of virtual machines as a determination result to the communication control unit. death,
The communication control unit outputs the stored data information to the data registration unit based on the output result of the data determination unit.
The information processing device according to claim 5 or 6, wherein the data registration unit registers the stored data information in the storage unit.
前記データ登録部は、前記保存データ情報に、前記実データのアドレスを対応付けて登録する
請求項7に記載の情報処理装置。
The information processing device according to claim 7, wherein the data registration unit registers the stored data information in association with the address of the actual data.
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御ステップと、
前記第一仮想マシンが、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込むステップと、
前記第二仮想マシンが、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込むステップと、
前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信するステップと、
を有する情報処理方法。
In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control step associated with a second storage area for communication secured in each of the first virtual machine that transmits transmission data including the identification data and the second virtual machine that receives the transmission data.
A step in which the first virtual machine writes the transmission data to the first storage area associated with the second storage area of the first virtual machine.
A step in which the second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
A step of transmitting the transmission data to the second virtual machine based on the reception instruction, and
Information processing method with.
1又は複数のコンピュータを、
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させるためのプログラム。
One or more computers,
In order to specify a virtual first storage area secured on the memory of the information processing device and data contents for each of the plurality of virtual machines in a plurality of virtual machines mounted on the same information processing device and communicating with each other. A memory control unit that associates a first virtual machine that transmits transmission data including identification data and a second storage area for communication secured in each of the second virtual machine that receives the transmission data.
A communication control unit that controls communication between the first virtual machine and the second virtual machine is provided.
The first virtual machine writes the transmission data in the first storage area associated with the second storage area of the first virtual machine.
The second virtual machine writes a reception instruction for receiving the transmission data in the first storage area associated with the second storage area of the second virtual machine.
The communication control unit is a program for functioning as an information processing device that transmits the transmission data to the second virtual machine based on the reception instruction.
JP2018052740A2018-03-202018-03-20 Information processing equipment, information processing methods and programsActiveJP7056870B2 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
JP2018052740AJP7056870B2 (en)2018-03-202018-03-20 Information processing equipment, information processing methods and programs

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
JP2018052740AJP7056870B2 (en)2018-03-202018-03-20 Information processing equipment, information processing methods and programs

Publications (2)

Publication NumberPublication Date
JP2019164661A JP2019164661A (en)2019-09-26
JP7056870B2true JP7056870B2 (en)2022-04-19

Family

ID=68065671

Family Applications (1)

Application NumberTitlePriority DateFiling Date
JP2018052740AActiveJP7056870B2 (en)2018-03-202018-03-20 Information processing equipment, information processing methods and programs

Country Status (1)

CountryLink
JP (1)JP7056870B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP6885635B1 (en)*2020-03-042021-06-16Necプラットフォームズ株式会社 Information processing device, information processing method and program for information processing device
JP7197212B2 (en)*2021-03-152022-12-27Necプラットフォームズ株式会社 Information processing device, information processing method and program
JP7708459B1 (en)*2024-03-062025-07-15Necプラットフォームズ株式会社 Information processing device, information processing method, and program

Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP2011141635A (en)2010-01-062011-07-21Hitachi LtdCommunication method of data of virtual server using iner-host communication
JP2017108231A (en)2015-12-082017-06-15富士通株式会社Communication control program, communication control method, and information processing device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JPS6320541A (en)*1986-07-141988-01-28Nec CorpCommunication system between virtual computers
JPH01191234A (en)*1988-01-261989-08-01Fujitsu LtdCommunication system between virtual computers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
JP2011141635A (en)2010-01-062011-07-21Hitachi LtdCommunication method of data of virtual server using iner-host communication
JP2017108231A (en)2015-12-082017-06-15富士通株式会社Communication control program, communication control method, and information processing device

Also Published As

Publication numberPublication date
JP2019164661A (en)2019-09-26

Similar Documents

PublicationPublication DateTitle
US20200278880A1 (en)Method, apparatus, and system for accessing storage device
EP3798835B1 (en)Method, device, and system for implementing hardware acceleration processing
JP5068108B2 (en) Method and system for memory address translation and pinning
US7756943B1 (en)Efficient data transfer between computers in a virtual NUMA system using RDMA
US7784060B2 (en)Efficient virtual machine communication via virtual machine queues
US8738890B2 (en)Coupled symbiotic operating system
US20160350261A1 (en)Memory Deduplication Support for Remote Direct Memory Access (RDMA)
JP2016513846A (en) Memory sharing over the network
JP2004326753A (en)Management of lock in virtual computer environment
JP7056870B2 (en) Information processing equipment, information processing methods and programs
JP2018022345A (en) Information processing system
TW201030623A (en)Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
CN117692416B (en)Network message processing method, device, computer equipment and storage medium
WO2025118798A1 (en)Transparent encryption and decryption computing system based on heterogeneous computing, and method, device and medium
US7694100B2 (en)Managing system memory resident device management queues
TWI412934B (en)External direct memory access of embedded controller memory
JPWO2017203645A1 (en) Computer system and data control method
US20060242258A1 (en)File sharing system, file sharing program, management server and client terminal
CN111201516A (en)Message passing in data processing system
US8234651B2 (en)Information processing method and apparatus using the same
JP7197212B2 (en) Information processing device, information processing method and program
CN115599549A (en)Multi-process-based exception handling method
JP5471677B2 (en) Virtual disk control system, method and program
JP4965456B2 (en) Method, system, and computer program for transferring data between system and storage in shared buffer (data transfer between system and shared buffer storage)
CN114489848B (en) Task offloading method and computable storage system based on computable storage architecture

Legal Events

DateCodeTitleDescription
A621Written request for application examination

Free format text:JAPANESE INTERMEDIATE CODE: A621

Effective date:20210210

A977Report on retrieval

Free format text:JAPANESE INTERMEDIATE CODE: A971007

Effective date:20211216

A131Notification of reasons for refusal

Free format text:JAPANESE INTERMEDIATE CODE: A131

Effective date:20211221

A521Request for written amendment filed

Free format text:JAPANESE INTERMEDIATE CODE: A523

Effective date:20220221

TRDDDecision of grant or rejection written
A01Written decision to grant a patent or to grant a registration (utility model)

Free format text:JAPANESE INTERMEDIATE CODE: A01

Effective date:20220308

A61First payment of annual fees (during grant procedure)

Free format text:JAPANESE INTERMEDIATE CODE: A61

Effective date:20220329

R150Certificate of patent or registration of utility model

Ref document number:7056870

Country of ref document:JP

Free format text:JAPANESE INTERMEDIATE CODE: R150


[8]ページ先頭

©2009-2025 Movatter.jp