[go: up one dir, main page]

JP2019164661A - Information processing device, information processing method and program - Google Patents

Information processing device, information processing method and program Download PDF

Info

Publication number
JP2019164661A
JP2019164661A JP2018052740A JP2018052740A JP2019164661A JP 2019164661 A JP2019164661 A JP 2019164661A JP 2018052740 A JP2018052740 A JP 2018052740A JP 2018052740 A JP2018052740 A JP 2018052740A JP 2019164661 A JP2019164661 A JP 2019164661A
Authority
JP
Japan
Prior art keywords
data
communication
virtual machine
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.)
Granted
Application number
JP2018052740A
Other languages
Japanese (ja)
Other versions
JP7056870B2 (en
Inventor
久弥 高木
Hisaya Takagi
久弥 高木
博文 園田
Hirofumi Sonoda
博文 園田
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 Ltd filed Critical NEC Platforms Ltd
Priority to JP2018052740A priority Critical patent/JP7056870B2/en
Publication of JP2019164661A publication Critical patent/JP2019164661A/en
Application granted granted Critical
Publication of JP7056870B2 publication Critical patent/JP7056870B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

To provide an information processing device, an information processing method and a program capable of reducing an overhead of communication by control processing of each communication hierarchy by performing communication with memory access without using an NW communication protocol in the case of performing communication among virtual machines on the same host machine.SOLUTION: An information processing device 1 has a control part including a memory control part and a communication control part. The memory control part associates a virtual first storage area secured on a memory of the information processing device in each of a plurality of virtual machines with a second storage area for communication secured in each of a first virtual machine for transmitting transmission data including identification data for specifying a plurality of data contents and a second virtual machine for receiving the transmission data in a plurality of virtual machines mounted on the same information processing device to mutually communicate. The communication control part controls communication between the first virtual machine and the second virtual machine.SELECTED DRAWING: Figure 1

Description

本発明は、情報処理装置、情報処理方法及びプログラムに関する。   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 an information device such as a computer, a virtual machine is used when a plurality of computers and an OS (Operating System) are operated on one computer or when software for another architecture is operated. An information device (hereinafter referred to as “host machine”) on which a virtual machine runs moves the virtual machine using a RAM (Random Access Memory) or the like.

仮想マシンは、他の仮想マシンやコンピュータと通信を行うことができる。ホストマシン上に、仮想マシンが複数存在する場合、当該仮想マシンは、他の仮想マシンと通信が可能である。しかしながら、同一のホストマシン上の仮想マシン同士であっても、仮想マシン間の通信は、TCP/IP(Transmission Control Protocol / Internet Protocol)などのネットワーク通信用の通信プロトコル(以下「NW通信プロトコル」という。)を使用する必要がある。   The 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 process of adding data for control to communication data, and the capacity of the communication data increases. This is because data for controlling communication in each layer is given based on the data communication model of the NW communication protocol. For this reason, the communication method according to the NW communication protocol passes through a plurality of processing layers when communicating between virtual machines on the same host machine, resulting in poor communication efficiency and an increase in communication processing overhead.

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

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

仮想マシン間の通信処理におけるオーバーヘッドの対策として、仮想マシン間のネットワーク通信では、通信する階層を減らし、仮想マシン間で共用可能なメモリを使用する手法が文献1で開示されている。具体的には、文献1では、同一のメモリ(以下「共有メモリ」という。)を仮想マシン間で使用することが可能であるため、共用メモリを使用して通信する方法が開示されている。   As a countermeasure for overhead in communication processing between virtual machines, Document 1 discloses a technique that uses a memory that can be shared between virtual machines by reducing the communication hierarchy in network communication between virtual machines. 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, Document 2 discloses a technique for performing communication via a communication channel defined in a virtual machine as a countermeasure for overhead in communication processing between virtual machines. Specifically, Document 2 provides a communication channel as a communication mechanism between virtual machines. The virtual machine disclosed in Document 2 discloses a technique for performing communication between virtual machines using the communication channel.

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

以上より、上記文献1及び2では、同一ホストマシン上の仮想マシン間で通信を行う場合、NW通信プロトコルを使用して試みている。しかしながら、上記の方法では、同一ホストマシン上の仮想マシン間の通信にも関わらず、ネットワークのNW通信プロトコルを使用するため、各通信階層の制御処理による通信のオーバーヘッドは、削減できていないという問題があった。各通信階層の制御処理とは、通信に使用する中身のデータ(以下「実データ」という。)に、プロトコルの階層に応じた制御用のデータを付与する処理である。   As described above, in the documents 1 and 2, when performing communication between virtual machines on the same host machine, an attempt is made using the NW communication protocol. However, in the above method, the network NW communication protocol is used in spite of the communication between virtual machines on the same host machine, so 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 corresponding to the protocol layer to the contents 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-described problems.

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

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

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

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

本発明の一実施形態に係る情報処理装置1のハードウェア構成を示す図である。It is a figure which shows the hardware constitutions of the information processing apparatus 1 which concerns on one Embodiment of this invention. 本発明の一実施形態に係る制御部100のソフトウェア構成を示す概略ブロック図である。It is a schematic block diagram which shows the software structure of the control part 100 which concerns on one Embodiment of this invention. 本発明の一実施形態に係るコマンド及び宛先情報の一例を示すデータテーブルである。It is a data table which shows an example of the command and destination information which concern on one Embodiment of this invention. 本発明の一実施形態に係る通信用メモリのアドレスの一例を示すデータテーブルである。It is a data table which shows an example of the address of the memory for communication which concerns on one Embodiment of this invention. 本発明の一実施形態に係る仮想マシンの通信用メモリ及び通信用メモリドライバの論理ブロックアドレスの一例を示すデータテーブルである。It is a data table which shows an example of the logical block address of the memory for communication of the virtual machine which concerns on one Embodiment of this invention, and the memory driver for communication. 本発明の一実施形態に係る通信用メモリが管理する識別データの一例を示すデータテーブルである。It is a data table which shows an example of the identification data which the memory for communication concerning one Embodiment of this invention manages. 本発明の一実施形態に係る仮想マシンの通信用メモリを設定する処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the process which sets the memory for communication of the virtual machine which concerns on one Embodiment of this invention. 本発明の一実施形態に係る仮想マシン間の通信において、初期設定の処理の流れを示すシーケンス図である。FIG. 9 is a sequence diagram showing a flow of initial setting processing in communication between virtual machines according to an embodiment of the present invention. 本発明の一実施形態に係る仮想マシン間の通信において、先に送信処理を行う場合の処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of a process in the case of performing a transmission process previously in communication between the virtual machines which concerns on one Embodiment of this invention. 本発明の一実施形態に係る仮想マシン間の通信において、先に受信を行う場合の処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of a process in the case of receiving previously in 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 the information 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 an information processing apparatus 1 according to an embodiment of the present invention.
The information processing apparatus 1 includes a control unit 100, a system memory 200, a communication memory driver 300, a virtual communication memory 400, a first virtual machine 500, and a second virtual machine 600.

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

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

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

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

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

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

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

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

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

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

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

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

これにより、第一仮想マシン500及び第二仮想マシン600が、第一通信用メモリ520及び第二通信用メモリ620を用いて通信を行う場合、メモリ制御部は、第一通信用メモリ520及び第二通信用メモリ620を、仮想通信用メモリ400にアクセスさせる。   Accordingly, when the first virtual machine 500 and the second virtual machine 600 communicate using the first communication memory 520 and the second communication memory 620, the memory control unit performs the first communication memory 520 and the second communication machine 520. The second communication memory 620 accesses the virtual communication memory 400.

なお、本実施形態では、2台の仮想マシン間での通信を想定しているため、仮想通信用メモリ400内の仮想メモリは2つにしている。3台以上の複数の仮想マシン間での通信を想定する場合、仮想メモリは、仮想マシンの台数に応じて生成される必要がある。2台の仮想マシンでの通信の場合と同様に、メモリ制御部110は、生成した仮想メモリを、仮想マシンの通信用メモリと1対1で対応付ける。   In the present embodiment, since communication between two virtual machines is assumed, the number of virtual memories in the virtual communication memory 400 is two. When communication between three or more virtual machines is assumed, virtual memory needs to be generated according to the number of virtual machines. As in the case of communication between two virtual machines, the memory 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へ送る。   If the OS of the information processing apparatus 1 is Windows (registered trademark), the data determination unit 120 receives an input / output request packet (IRP: I / O Request Packet) when a process accesses a file. publish. The data determination unit 120 determines actual data and 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 the data determination unit 120 uses the LBA as the identification ID of the issuer of the transmission request and the reception request. use. Then, the data determination unit 120 sends the data acquired based on the determination result to the data registration unit 130.

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

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

通信制御部140は、複数の仮想マシン間の通信を制御する。通信制御部140は、後述する図6のデータテーブルに基づいて、仮想マシンのデータ通信を制御する。具体的には、通信制御部140は、OSが発行する入出力要求パケットなどの識別データに基づいて、仮想マシン間の通信を制御する。   The communication control unit 140 controls communication between a plurality of virtual machines. The communication control unit 140 controls data communication of the virtual machine based on a data table shown in FIG. Specifically, the communication control unit 140 controls communication between virtual machines based on identification data such as an input / output request packet 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 the first application 510, the communication control unit 140 refers to the data table of FIG. 6, and the instruction data is “INIT_W” for initial setting for writing and the identification ID is “LBA_AP1_W”. Confirm that the transmission source is “AP1”. Then, the communication control unit 140 performs initial setting for writing of the first application 510.

通信制御部140が行う制御に関しては、後述する図8から10のシーケンス図を用いて説明する。また、通信制御部140は、制御処理が行われる工程に基づいて、状態情報をデータ登録部130へ送る。   The control performed by the communication control unit 140 will be described with reference to the sequence diagrams of FIGS. Further, the communication control unit 140 sends the state information to the data 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 command and destination information according to an embodiment of the present invention.
The communication memory storage unit 210 stores in advance instruction data for performing initial setting for writing, instruction data for performing initial setting for reading, and instruction data for performing transmission. In addition, destination information indicating a destination to communicate with and a transmission source is also stored.

図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 item of instruction data, and “AP1” and “AP2” are stored in the item of destination information. 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 addresses of the communication memory according to the embodiment of the present invention.
The communication memory 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, “0xXXXXXXX1” is the transmission address item in the first communication memory 520, “0xYYYYYYY1” is the reception address item in the first communication memory 520, and the transmission address item is in the second communication memory 620. “0xXXXXXXX2” and “0xYYYYYYY2” are stored in the receiving address field of the second communication memory 620.

図5は、本発明の一実施形態に係る仮想マシンの通信用メモリ及び通信用メモリドライバの論理ブロックアドレスの一例を示すデータテーブルである。論理ブロックアドレスとは、記憶装置においてデータの位置を示すアドレスを指定する方法である。論理ブロックアドレスは、論理ブロックを含むブロックアドレス空間の先頭からのブロックオフセットを表す。   FIG. 5 is a data table showing an example of logical block addresses of the communication memory and communication memory driver of the virtual machine according to the embodiment of the present invention. The logical block address is a method for designating an address indicating a data position in the storage device. The logical block address represents a block offset from the head of the block address space including 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” or “LBA_AP1_R” as the logical block address of the communication memory driver 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 communication memory storage unit 210 according to an embodiment of the present invention. In this embodiment, the data table of identification data (hereinafter referred to as “management table”) managed by the communication memory storage unit 210 has an identification ID, a communication ID, status information, a storage data flag, and a data storage address.

識別IDのデータ項目は、通信用メモリドライバの論理ブロックアドレスが登録される。図6において、論理ブロックアドレスは、図5の通信用メモリの送受信のアドレスと対応付いて登録されている。
通信IDのデータ項目は、宛先情報が登録される。図6において、宛先情報は、図3の宛先情報と対応付いて登録されている。
In the data item of the identification ID, the logical block address of the memory driver for communication is registered. In FIG. 6, the logical block address is registered in association with the transmission / reception address of the communication memory in FIG.
The 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による管理情報が無いため、「初期状態」として表す。   In the status data item, any one of the six status information items of “initial setting”, “idle”, “transmission request”, “waiting for transmission completion”, “waiting for reception”, and “waiting for reception completion” is registered. The The status data item is registered by the data registration unit 130 based on the processing of the communication control unit 140. Since there is no management information based on the identification ID before initial setting, it is represented as “initial state”.

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

データ保存アドレスのデータ項目は、初期設定を行う際、通信データを一時的に格納するメモリエリア(バッファ)の先頭アドレスがデータ登録部130によって登録される。
なお、保存データフラグ及びデータ保存アドレスは、識別IDが送信用の場合、使用しない。
In the data item of the data storage address, the data registration unit 130 registers the top address of the memory area (buffer) that temporarily stores the communication data when performing the initial setting.
Note that the storage data flag and the data storage 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 the communication memory of the virtual machine according to the embodiment of the present invention.
The memory control unit 110 secures a storage area from the main memory, and generates the virtual communication memory 400 that is accessed by the communication memory driver 300 (step S100).

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

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

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

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS202)。データ判定部120の判定結果に基づいて、データ登録部130は、通信用メモリ記憶部210が記憶する管理テーブルに、識別IDを「LBA_AP1_W」、状態を「初期設定中」として登録する(ステップS203)。   The data 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 the data determination unit 120, the data registration unit 130 registers the identification ID as “LBA_AP1_W” and the state as “initializing” 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)。   The data registration unit 130 registers the identification data with the communication ID of the identification ID “LBA_AP1_W” as “AP1” in the management table (step S204). After storing the initial value, the data registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “idle” in the management table (step S205). Then, the communication control unit 140 sends a notification of completion of the processing 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)。   The second application 610 uses the reception address of the second communication memory 620 to make an initialization request (read initial setting input / output request packet generation) (step S207). In response to this initialization request, the data determination unit 120 receives information on the input / output request packet issued by the OS (instruction data: INIT_R, source: AP2, identification ID: LBA_AP2_R) (step S208).

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS209)。データ判定部120の判定結果に基づいて、データ登録部130は、通信用メモリ記憶部210が記憶する管理テーブルに、識別IDを「LBA_AP2_R」、状態を「初期設定中」として登録する(ステップS210)。   The data 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 the data determination unit 120, the data registration unit 130 registers the identification ID as “LBA_AP2_R” and the state as “initially set” 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)。   The data registration unit 130 registers the identification data in the management table with the communication ID of the identification ID “LBA_AP2_R” as “AP2”, the storage data flag as “invalid”, and the data storage address as “buffer address for LBA_AP2_R” (step S211). . After storing the initial value, the data registration unit 130 registers the state of the identification ID “LBA_AP2_R” as “idle” in the management table (step S212). Then, the communication control unit 140 sends a completion notification 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 flow of processing when performing transmission processing first in communication between virtual machines according to an embodiment of the present invention.
The first application 510 makes a transmission request (transmission request input / output request packet generation) using the transmission address of the first communication memory 520 (step S300). With this transmission request, the data determination unit 120 receives information (input 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)。   The data 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 the data determination unit 120, the data registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “transmission requested” in the management table (step S303). Furthermore, the data determination unit 120 notifies the data registration unit 130 that the state of “LBA_AP2_R” is “idling” based on the determination result. The data registration unit 130 stores the actual data in the buffer address for “LBA_AP2_R” in the communication data storage unit 220, and sets the data storage flag of the identification ID “LBA_AP2_R” to “valid” (step S304).

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

第二アプリケーション610は、第二通信用メモリ620の受信用アドレスを用いて受信要求(受信リクエストの入出力要求パケット生成)を行う(ステップS306)。この受信要求により、OSが発行する入出力要求パケットの情報(識別ID:LBA_AP2_R)をデータ判定部120が受け取る(ステップS307)。   The second application 610 makes a reception request (generates an input / output request packet for a reception request) using the reception address of the second communication memory 620 (step S306). In response to this reception request, the data determination unit 120 receives 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)。   The data 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, the data determination unit 120 refers to the data storage flag of the identification ID “LBA_AP2_R” and confirms whether there is stored actual data. The data registration unit 130 registers the state of the identification ID “LBA_AP2_R” in the management table as “receiving request in progress” (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, the communication control unit 140 reads the actual data from the buffer address for “LBA_AP2_R” in the communication data storage unit 220, and the read actual data is addressed to AP2. The actual data is transferred to the second application 610 (step S310). The data registration unit 130 discards the actual data stored in the “LBA_AP2_R” buffer address of the communication data storage unit 220 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 the communication control unit 140 transfers the actual data to the second application 610, the data registration unit 130 registers the state of the identification ID “LBA_AP2_R” as “idle” in the management table (step S311). Then, the communication 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, the data registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “idle” in the management table (step S313). Then, the communication 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 receiving is performed first in communication between virtual machines according to an embodiment of the present invention.
The second application 610 makes a reception request (generates an input / output request packet for a reception request) using the reception address of the second communication memory 620 (step S400). In response to this reception request, the data determination unit 120 receives 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)。   The data 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, the data determination unit 120 refers to the data storage flag of the identification ID “LBA_AP2_R” and confirms whether there is stored actual data. The data registration unit 130 registers the state of the identification ID “LBA_AP2_R” as “receiving request in progress” in the management table (step S403).

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

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

データ判定部120は、入出力要求パケットの情報に基づき、入出力要求パケットに含まれる識別IDなどの識別データを判定する(ステップS407)。データ判定部120の判定結果に基づいて、データ登録部130は、管理テーブルに、識別ID「LBA_AP1_W」の状態を「送信要求中」として登録する(ステップS408)。さらにデータ判定部120は、判定結果に基づいて、「LBA_AP2_R」の状態が「受信完了待ち」であることを通信制御部140に通知する。通信制御部140は、「LBA_AP2_R」の状態が「受信完了待ち」であるため、実データを第二アプリケーション610へ転送する(ステップS409)。   The data 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 the data determination unit 120, the data registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “transmission requested” in the management table (step S408). Further, the data determination unit 120 notifies the communication control unit 140 that the state of “LBA_AP2_R” is “waiting for reception completion” based on the determination result. Since the state of “LBA_AP2_R” is “waiting for reception completion”, the communication 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 the communication control unit 140 transfers the actual data to the second application 610, the data registration unit 130 registers the state of the identification ID “LBA_AP2_R” as “idle” in the management table (step S410). Then, the communication 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, the data registration unit 130 registers the state of the identification ID “LBA_AP1_W” as “idle” in the management table (step S412). Then, the communication 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]
Although this embodiment has been described using two virtual machines, the present embodiment can also be applied to communication between two or more N virtual machines as long as the virtual machines operate on the same host machine. Is possible.

本実施形態では、仮想通信用メモリ400を、仮想マシン上の通信用メモリとして対応付けることにより、仮想通信用メモリ400を通信用メモリとみなして動作させた。変形例では、通信データフォーマットのデータテーブルに通信用の制御コードを予め登録しておき、通信用制御コードを参照することにより、動作方法を変更することが可能となる。   In the present embodiment, the virtual communication memory 400 is associated with it as a communication memory on the virtual machine, so that the virtual communication memory 400 is operated as a communication memory. In the modification, it is possible to change the operation method by previously registering a communication control code in the data table of the communication data format 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 transmission-side virtual machine gives control data corresponding to each layer in addition to the actual data to be communicated. The receiving-side virtual machine removes the assigned data according to each layer and acquires only the actual data. In FIG. 11, as an example, a case where data is transmitted from the first virtual machine 500 to the second virtual machine 600 using the NW communication protocol will be described.

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

第二仮想マシン600では、ネットワークインターフェース層からアプリケーション層までの各層に応じたTCPセグメントを取り除く。そして、第二仮想マシンは、実データを受信する。   In the second virtual 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 actual data.

上記の通信方法を用いた場合、仮想マシン間の通信に制御用のデータを使用する工程が発生する。本実施形態では、NW通信プロトコルを使用せず、メモリアクセスの手法でデータを通信するため、上記の通信方法で発生するオーバーヘッドが削減できる。   When the above communication method is used, a process of using control data for communication between virtual machines occurs. In the present embodiment, since data is communicated by a 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 illustrating a minimum configuration of the information processing apparatus 1 according to the present embodiment.
The information processing apparatus 1 according to the present embodiment may include at least the memory control unit 110 and the communication control unit 140.

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

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

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

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

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

また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。   The program may be transmitted from a computer system storing the program 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 the 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. The program may be for realizing a part of the functions described above. Furthermore, what can implement | achieve the function mentioned above in combination with the program already recorded on the computer system, and what is called a difference file (difference program) may be sufficient.

《付記》
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
《Appendix》
A part or all of the above-described embodiment can be described as in the following supplementary notes, but is not limited thereto.

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

(付記2)
前記複数の仮想マシンのOSが発行する前記識別データと、前記第一仮想マシンが発行する前記通信制御部の処理の内容を示す指示データと、に基づいて、前記送信データに含まれている情報を判定するデータ判定部
を備える付記1に記載の情報処理装置。
(Appendix 2)
Information included in the transmission data based on the identification data issued by the OS 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 attachment 1, further comprising a data determination unit that determines

(付記3)
前記通信制御部は、前記データ判定部の判定結果に基づいて、前記送信データを前記第二仮想マシンに送信する
付記2に記載の情報処理装置。
(Appendix 3)
The information processing apparatus according to claim 2, wherein the communication control unit transmits the transmission data to the second virtual machine based on a 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 transmission destination information representing a transmission destination to the communication control unit as a determination result.
The information processing apparatus according to appendix 2 or 3, wherein the communication control unit causes the first virtual machine indicated by the transmission destination information to transmit transmission data based on an output result of the data determination unit.

(付記5)
前記送信データに含まれる、データの内容を示す実データ及び前記識別データを記憶する記憶部と、
前記データ判定部の判定結果に基づいて、前記実データ及び前記識別データを前記記憶部に登録するデータ登録部
を備える付記2から4のいずれか一項に記載の情報処理装置。
(Appendix 5)
A storage unit for storing actual data indicating the content of data included in the transmission data and the identification data;
The information processing apparatus according to any one of appendices 2 to 4, further comprising: a data registration unit that registers the actual data and the identification data in the storage unit based on a 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 state information indicating communication states of the plurality of virtual machines to the communication control unit as a determination result,
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 apparatus 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 held in the plurality of virtual machines to the communication control unit as a determination result And
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 apparatus according to claim 7, wherein the data registration unit registers the stored data information in association with an address of the actual data.

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

(付記10)
1又は複数のコンピュータを、
同一の情報処理装置上で実装され互いに通信する複数の仮想マシンにおいて、前記複数の仮想マシン毎に前記情報処理装置のメモリ上に確保された仮想の第一記憶領域と、データ内容を特定するための識別データを含む送信データを送信する第一仮想マシン及び前記送信データを受信する第二仮想マシンのそれぞれの中で確保された通信用の第二記憶領域と、を対応付けるメモリ制御部と、
前記第一仮想マシンと前記第二仮想マシンとの間の通信を制御する通信制御部と、を備え、
前記第一仮想マシンは、前記第一仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを書き込み、
前記第二仮想マシンは、前記第二仮想マシンの前記第二記憶領域に対応付けられた前記第一記憶領域に、前記送信データを受信するための受信指示を書き込み、
前記通信制御部は、前記受信指示に基づいて、前記送信データを前記第二仮想マシンに送信する、情報処理装置、として機能させるためのプログラム。
(Appendix 10)
One or more computers,
In a plurality of virtual machines that are mounted on the same information processing apparatus and communicate with each other, a virtual first storage area secured in the memory of the information processing apparatus for each of the plurality of virtual machines and data contents are specified A memory control unit for associating a second storage area for communication secured in each of the first virtual machine that transmits the transmission data including the identification data and the second virtual machine that receives the transmission data;
A communication control unit for controlling communication between the first virtual machine and the second virtual machine,
The first virtual machine writes the transmission data to 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・・・第二通信用メモリ
DESCRIPTION OF SYMBOLS 1 ... Information processing apparatus 100 ... Control part 110 ... Memory control part 120 ... Data determination part 130 ... Data registration part 140 ... Communication control part 200 ... System memory 210 ... Communication memory storage unit 220: Communication data storage unit 300 ... Communication memory driver 400 ... Virtual communication memory 410 ... First virtual memory 420 ... Second virtual memory 500 ... First virtual machine 510 ... first application 520 ... first communication memory 600 ... second virtual machine 610 ... second application 620 ... second communication memory

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018052740A JP7056870B2 (en) 2018-03-20 2018-03-20 Information processing equipment, information processing methods and programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018052740A JP7056870B2 (en) 2018-03-20 2018-03-20 Information processing equipment, information processing methods and programs

Publications (2)

Publication Number Publication Date
JP2019164661A true JP2019164661A (en) 2019-09-26
JP7056870B2 JP7056870B2 (en) 2022-04-19

Family

ID=68065671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018052740A Active JP7056870B2 (en) 2018-03-20 2018-03-20 Information processing equipment, information processing methods and programs

Country Status (1)

Country Link
JP (1) JP7056870B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021140415A (en) * 2020-03-04 2021-09-16 Necプラットフォームズ株式会社 Information processing device, information processing method, and program for information processing device
JP2022141463A (en) * 2021-03-15 2022-09-29 Necプラットフォームズ株式会社 Information processing device, information processing method and program
JP7708459B1 (en) * 2024-03-06 2025-07-15 Necプラットフォームズ株式会社 Information processing device, information processing method, and program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6320541A (en) * 1986-07-14 1988-01-28 Nec Corp Communication system between virtual computers
JPH01191234A (en) * 1988-01-26 1989-08-01 Fujitsu Ltd Communication system between virtual computers
JP2011141635A (en) * 2010-01-06 2011-07-21 Hitachi Ltd Communication method of data of virtual server using iner-host communication
JP2017108231A (en) * 2015-12-08 2017-06-15 富士通株式会社 Communication control program, communication control method, and information processing device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6320541A (en) * 1986-07-14 1988-01-28 Nec Corp Communication system between virtual computers
JPH01191234A (en) * 1988-01-26 1989-08-01 Fujitsu Ltd Communication system between virtual computers
JP2011141635A (en) * 2010-01-06 2011-07-21 Hitachi Ltd Communication method of data of virtual server using iner-host communication
JP2017108231A (en) * 2015-12-08 2017-06-15 富士通株式会社 Communication control program, communication control method, and information processing device

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021140415A (en) * 2020-03-04 2021-09-16 Necプラットフォームズ株式会社 Information processing device, information processing method, and program for information processing device
JP2022141463A (en) * 2021-03-15 2022-09-29 Necプラットフォームズ株式会社 Information processing device, information processing method and program
JP7197212B2 (en) 2021-03-15 2022-12-27 Necプラットフォームズ株式会社 Information processing device, information processing method and program
JP7708459B1 (en) * 2024-03-06 2025-07-15 Necプラットフォームズ株式会社 Information processing device, information processing method, and program

Also Published As

Publication number Publication date
JP7056870B2 (en) 2022-04-19

Similar Documents

Publication Publication Date Title
US10713074B2 (en) Method, apparatus, and system for accessing storage device
US20250284524A1 (en) System, apparatus and method for accessing multiple address spaces via a virtualization device
JP4942966B2 (en) Partition bus
US8738890B2 (en) Coupled symbiotic operating system
CN108062253A (en) The communication means of a kind of kernel state and User space, device and terminal
US10713081B2 (en) Secure and efficient memory sharing for guests
US20240264768A1 (en) Request Processing Method, Apparatus, and System
KR20040036535A (en) System and method for transferring data between virtual machines or other computer entities
JP2000330806A (en) Computer system
JP2016513846A (en) Memory sharing over the network
US9529618B2 (en) Migrating processes between source host and destination host using a shared virtual file system
JP7615474B2 (en) Computing device and method for handling interrupts - Patents.com
JP4719655B2 (en) Processor control technology on the network
TW201030623A (en) Providing multiple virtual device controllers by redirecting an interrupt from a physical device controller
JP2004234114A (en) Computer system, computer device, operating system transfer method and program
TWI412934B (en) External direct memory access of embedded controller memory
CN115576716A (en) A Method of Memory Management Based on Multi-Process
JP7056870B2 (en) Information processing equipment, information processing methods and programs
CN120540783A (en) Virtual machine communication method, device, equipment and storage medium
US20130117347A1 (en) Communication apparatus, communication method, and computer product
JP2016173741A (en) Information processing apparatus, information processing method, and program
JP5104501B2 (en) Virtual machine system, host computer, virtual machine construction method and program
JP6885635B1 (en) Information processing device, information processing method and program for information processing device
US20060242258A1 (en) File sharing system, file sharing program, management server and client terminal
JP5471677B2 (en) Virtual disk control system, method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220329

R150 Certificate of patent or registration of utility model

Ref document number: 7056870

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150