JP5635815B2 - Computer system and control method thereof - Google Patents

Computer system and control method thereof Download PDF

Info

Publication number
JP5635815B2
JP5635815B2 JP2010135033A JP2010135033A JP5635815B2 JP 5635815 B2 JP5635815 B2 JP 5635815B2 JP 2010135033 A JP2010135033 A JP 2010135033A JP 2010135033 A JP2010135033 A JP 2010135033A JP 5635815 B2 JP5635815 B2 JP 5635815B2
Authority
JP
Japan
Prior art keywords
data
virtual
unit
physical
event
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.)
Expired - Fee Related
Application number
JP2010135033A
Other languages
Japanese (ja)
Other versions
JP2012003313A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010135033A priority Critical patent/JP5635815B2/en
Publication of JP2012003313A publication Critical patent/JP2012003313A/en
Application granted granted Critical
Publication of JP5635815B2 publication Critical patent/JP5635815B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)

Description

本発明は,コンピュータシステムの構成技術に関わり,特に,搭載するプロセッサを多重化し,発生する故障を検出,隠蔽することで高信頼を実現する構成技術に関する。   The present invention relates to a computer system configuration technology, and more particularly to a configuration technology that realizes high reliability by multiplexing installed processors and detecting and concealing a failure that occurs.

コンピュータシステムでの障害の抑止,あるいは影響最小化を可能とする高信頼なコンピュータシステムの構成技術の一つとして,プロセッサの耐故障(Fault Tolerant,以下FTと略記)技術がある。   As one of highly reliable computer system configuration techniques that can suppress a failure in a computer system or minimize its influence, there is a fault tolerant (Fault Tolerant, hereinafter abbreviated as FT) technique.

プロセッサFT技術にも種類があるが,コンピュータシステム障害抑止について,高い効果を得るために,ロックステッピングと呼ばれる手法で,複数のプロセッサをハードウェアレベルで同一動作させることで,プロセッサを多重化し,さらに,多重化されたプロセッサ間で出力信号を比較することで,プロセッサに発生する故障を検出,隠蔽することが行われていた。   There are various types of processor FT technology, but in order to obtain a high effect on computer system failure suppression, a technique called lock stepping is used to multiplex processors by operating them at the hardware level, Therefore, by comparing output signals between multiplexed processors, a failure occurring in the processor is detected and concealed.

しかし,近年,プロセッサの高性能化を目的とした,プロセッサの動作周波数の向上,プロセッサ内部への非同期動作する回路の導入により,ハードウェアレベルでの同一動作が不可能になりつつあり,ひいては,ロックステッピングによるプロセッサFTが困難になりつつある。   In recent years, however, the same operation at the hardware level has become impossible due to the improvement of the processor operating frequency and the introduction of asynchronously operating circuits inside the processor for the purpose of improving the performance of the processor. Processor FT by lockstepping is becoming difficult.

一方,近年のコンピュータシステムでの仮想化技術の発展により,特許文献1で開示される技術のように,ハイパバイザによって,複数のプロセッサにおいて,ハイパバイザ上で動作するプログラムの動作をソフトウェアレベルで同一動作させて多重化する手法が用いられつつある。   On the other hand, with the development of virtualization technology in computer systems in recent years, as in the technology disclosed in Patent Document 1, a hypervisor causes a plurality of processors to perform the same program operation on the hypervisor at the software level. Multiplexing techniques are being used.

特開2009−80695号公報JP 2009-80695 A

前述の,ソフトウェアレベルで同一動作を行う手法では,同一動作による多重化は可能なものの,プロセッサ故障の検出,隠蔽が不完全,あるいは著しく性能が低下する,という問題があった。   The above-described technique for performing the same operation at the software level has the problem that although the same operation can be multiplexed, the detection and concealment of processor faults are incomplete or the performance is significantly reduced.

プロセッサ故障の検出,隠蔽は,基本的には,プロセッサの内部状態や出力を,多重化したプロセッサ間において比較することによって実現される。   Detection and concealment of processor faults are basically realized by comparing the internal state and output of the processors between the multiplexed processors.

プロセッサ故障の検出,隠蔽を完全にするためには,プロセッサから出力される全てのI/Oイベントを比較するなど,相当量の比較処理が必要となるが,比較処理はソフトウェアのハイパバイザによって行うことになるため,性能低下が著しい。   To complete detection and concealment of processor faults, a considerable amount of comparison processing is required, such as comparing all I / O events output from the processor, but the comparison processing must be performed by a software hypervisor. Therefore, performance degradation is significant.

逆に,プロセッサから出力される全てのI/Oイベントを比較せず,例えば,メモリを経由せずに直接I/Oにアクセスを出力する,I/Oコマンド出力のみを比較する場合,性能低下は抑えられるが,プロセッサ故障の検出,隠蔽は不完全となる。   Conversely, if all I / O events output from the processor are not compared, for example, if only the I / O command output that outputs access directly to the I / O without going through the memory is compared, the performance deteriorates. However, detection and concealment of processor failures are incomplete.

本発明の目的は,ソフトウェアレベルでのプロセッサ多重化において,性能低下を抑えつつ,プロセッサ故障の完全な検出,隠蔽を実現するコンピュータシステム及びその制御方法を提供する。   An object of the present invention is to provide a computer system that realizes complete detection and concealment of a processor failure while suppressing performance degradation in processor multiplexing at the software level, and a control method therefor.

上記の目的を達成するため,本発明においては,複数の仮想計算機が同一のアプリケーションプログラムを実行するコンピュータシステムであって,プロセッサとメモリとI/Oデバイスを備えた物理計算機と,物理計算機の計算機資源を仮想化して,第一の仮想計算機と第二の仮想計算機を実行する仮想化制御部とを備え,仮想化制御部は,第一の仮想計算機と第二の仮想計算機上のアプリケーションプログラムを同時に実行する同期制御部と,第一の仮想計算機と第二の仮想計算機が発行したI/Oイベントを検出し,種類を特定するI/Oイベント検出部と,第一の仮想計算機が発行したI/Oイベントと,第二の仮想計算機が発行したI/Oイベントを比較し,I/Oデバイスに対して出力を生成するI/Oイベント処理部とを備え,I/Oイベント処理部は,第一の仮想計算機と第二の仮想計算機が発行したI/Oイベントが,I/Oコマンドである場合に,これらI/Oコマンドを比較するI/Oコマンド比較部と,I/Oコマンド比較部の比較結果が不一致である場合には,I/Oコマンドの出力を抑止する抑止部と,を備えた構成のコンピュータシステムを提供する。   In order to achieve the above object, in the present invention, a computer system in which a plurality of virtual machines execute the same application program, a physical computer having a processor, a memory, and an I / O device, and a computer of the physical machine A virtualization control unit configured to virtualize resources and execute the first virtual computer and the second virtual computer, the virtualization control unit executing an application program on the first virtual computer and the second virtual computer; Synchronous control unit that executes simultaneously, I / O event issued by the first virtual machine and the second virtual machine, and I / O event detection unit that identifies the type and issued by the first virtual machine An I / O event processing unit that compares an I / O event with an I / O event issued by a second virtual machine and generates an output to an I / O device The I / O event processing unit compares the I / O commands when the I / O events issued by the first virtual machine and the second virtual machine are I / O commands. When the comparison result of the I / O command comparison unit does not match, a computer system having a configuration including a suppression unit that suppresses output of the I / O command is provided.

また,上記の目的を達成するため,本発明において,上述のI/Oイベント処理部は,第一の仮想計算機と第二の仮想計算機が発行したI/Oイベントが,I/Oデータ出力である場合に,第一の仮想計算機のメモリ領域と,第二の仮想計算機のメモリ領域から読み出されたI/Oデータを比較するI/Oデータ比較部を更に備え,抑止部は,I/Oデータ比較部の比較結果が不一致である場合には,当該I/Oデータをメモリ領域からの読み出しを抑止するコンピュータシステムを提供する。   In order to achieve the above object, in the present invention, the I / O event processing unit described above is configured such that the I / O event issued by the first virtual machine and the second virtual machine is an I / O data output. In some cases, an I / O data comparison unit that compares the I / O data read from the memory area of the first virtual machine and the memory area of the second virtual machine is further provided. Provided is a computer system that suppresses reading of the I / O data from the memory area when the comparison result of the O data comparison unit does not match.

更に,上記の目的を達成するため,本発明においては,複数の仮想計算機が,同一のアプリケーションプログラムを実行するコンピュータシステムであって,
プロセッサとメモリとI/Oデバイスを備えた物理計算機と,物理計算機の計算機資源を仮想化して,第一の仮想計算機と第二の仮想計算機と第三の仮想計算機を実行する仮想化制御部とを備え,仮想化制御部は,第一,第二,第三の仮想計算機上のアプリケーションプログラムを同時に実行する同期制御部と,第一,第二,第三の仮想計算機が発行したI/Oイベントを検出し,種類を特定するI/Oイベント検出部と,第一,第二,第三の仮想計算機がそれぞれ発行したI/Oイベントを比較し,I/Oデバイスに対して出力を生成するI/Oイベント処理部を備え,I/Oイベント処理部は,第一,第二,第三の仮想計算機が発行したI/Oイベントが,I/Oコマンドである場合に,これらI/Oコマンドを比較するI/Oコマンド比較部と,比較の結果,2つが一致している場合は,一致しているI/Oコマンドを出力し,全て不一致の場合には,I/Oコマンドの出力を抑止する抑止部とを備えた構成のコンピュータシステムを提供する。
Furthermore, in order to achieve the above object, in the present invention, a plurality of virtual machines are computer systems that execute the same application program,
A physical computer including a processor, a memory, and an I / O device; a virtualization controller that virtualizes computer resources of the physical computer and executes the first virtual computer, the second virtual computer, and the third virtual computer; The virtualization control unit includes a synchronous control unit that simultaneously executes application programs on the first, second, and third virtual machines, and an I / O issued by the first, second, and third virtual machines. Compares the I / O event detector that detects the event and identifies the type with the I / O event issued by the first, second, and third virtual machines, and generates an output for the I / O device I / O event processing unit, and when the I / O event issued by the first, second and third virtual machines is an I / O command, the I / O event processing unit I / O command to compare O command A comparison unit and a suppression unit that outputs a matching I / O command if the two match, and if all do not match, a suppression unit that suppresses the output of the I / O command. A computer system having the above configuration is provided.

また更に,上記の目的を達成するため,本発明において,上述のI/Oイベント処理部は,第一,第二,第三の仮想計算機が発行したI/Oイベントが,I/Oデータ出力である場合に,第一,第二,第三の仮想計算機のメモリ領域から読み出されたI/Oデータを比較するI/Oデータ比較部を更に有し,抑止部は,I/Oデータ比較部の比較の結果,2つが一致している場合は,一致しているI/Oデータ出力に対応するデータ読み出しコマンドの出力を行い,全て不一致の場合には,I/Oデータをメモリ領域から読み出すのを抑止するコンピュータシステムを提供する。   Furthermore, in order to achieve the above object, in the present invention, the I / O event processing unit described above is configured so that I / O events issued by the first, second, and third virtual machines are output as I / O data. The I / O data comparison unit for comparing the I / O data read from the memory areas of the first, second, and third virtual machines, and the suppression unit includes the I / O data. If the two match as a result of the comparison by the comparison unit, a data read command corresponding to the matching I / O data output is output, and if all do not match, the I / O data is stored in the memory area. Provided is a computer system that suppresses reading from a computer.

更にまた,上記の目的を達成するため,本発明においては,プロセッサとメモリとI/Oデバイスを備えた物理計算機と,物理計算機の計算機資源を仮想化して,複数の仮想計算機を実行する仮想化制御部と有するコンピュータシステムの制御方法であって,仮想化制御部は,複数の仮想計算機上の同一のアプリケーションプログラムを同時に実行し,複数の仮想計算機が発行したI/Oイベントを検出し,I/Oイベントの種類を特定し,複数の仮想計算機が発行したI/OイベントがI/Oコマンドである場合,I/Oコマンドを比較し,I/Oイベントが,I/Oデータ出力である場合に,複数の仮想計算機のメモリ領域から当該I/Oデータを読み出して比較し,I/Oコマンドの比較結果が不一致である場合には,I/OコマンドのI/Oデバイスへの出力を抑止し,I/Oデータの比較結果が不一致である場合には,I/Oデータをメモリ領域からI/Oデバイスに読み出すことを抑止するコンピュータシステムの制御方法を提供する。   Furthermore, in order to achieve the above object, the present invention virtualizes a physical computer having a processor, a memory, and an I / O device, and virtualizing computer resources of the physical computer to execute a plurality of virtual computers. A control method of a computer system having a control unit, wherein the virtualization control unit simultaneously executes the same application program on a plurality of virtual machines, detects an I / O event issued by the plurality of virtual machines, When the type of / O event is specified and an I / O event issued by multiple virtual machines is an I / O command, the I / O command is compared, and the I / O event is an I / O data output In this case, the I / O data is read from the memory areas of a plurality of virtual machines and compared, and if the comparison result of the I / O command does not match, the I / O command A computer system control method that suppresses output to an I / O device and suppresses reading of I / O data from the memory area to the I / O device when the comparison result of the I / O data is inconsistent. provide.

すなわち,本発明においては,メモリを経由して間接的にI/Oイベントを出力する,I/Oデータ出力を含め,プロセッサから出力される全てのI/Oイベント比較を行うが,比較処理を効率化することにより性能低下を抑える,という方針を採る。比較処理の効率化は,(1)I/Oデータ出力メモリアクセスに伴うハイパバイザ遷移オーバーヘッド削減と,(2)I/Oデータ出力メモリ読み出し,比較オーバーヘッド削減の2点により行う。   That is, in the present invention, all I / O events output from the processor including I / O data output that outputs an I / O event indirectly via a memory are compared. Adopt a policy of suppressing performance degradation by increasing efficiency. The efficiency of the comparison processing is performed by two points: (1) reduction of hypervisor transition overhead associated with I / O data output memory access, and (2) reduction of I / O data output memory and comparison overhead.

(1)I/Oデータ出力メモリアクセスに伴うハイパバイザ遷移オーバーヘッド削減は,I/Oデータ出力に用いられるメモリ領域が,特定のI/Oコマンド出力を契機として,その後I/Oから読み出されることに着目し,プロセッサが,I/Oデータ出力メモリ領域にアクセスを行うたびに,ハイパバイザ遷移を行って比較するのではなく,特定のI/Oコマンド出力を捕捉してハイパバイザ遷移を行い,まとめて比較を行うことによって,ハイパバイザへの遷移回数を減らして実現する。   (1) Hypervisor transition overhead reduction associated with I / O data output memory access means that the memory area used for I / O data output is read from the I / O after a specific I / O command output. Paying attention, every time the processor accesses the I / O data output memory area, it does not perform a hypervisor transition and compares it, but captures a specific I / O command output and performs a hypervisor transition and compares them together. This is achieved by reducing the number of transitions to the hypervisor.

(2)I/Oデータ出力メモリ読み出し,比較オーバーヘッド削減は,I/Oデータ出力のメモリ領域の読み出しが,アドレスさえ与えられれば,I/Oからでも可能であることに着目し,I/Oデータ比較部をI/Oスイッチに追加し,ハイパバイザがI/Oデータ出力メモリ読み出しを捕捉した後,ハイパバイザはメモリ領域のアドレスをI/Oデータ比較部に与え,比較処理はI/Oデータ比較部で行うことによって実現する。   (2) I / O data output memory read and comparison overhead reduction can be achieved by reading I / O data output memory area from I / O as long as an address is given. A data comparison unit is added to the I / O switch, and after the hypervisor captures an I / O data output memory read, the hypervisor gives the address of the memory area to the I / O data comparison unit, and the comparison process is an I / O data comparison. It is realized by doing in the department.

本発明により,近年の高性能なプロセッサを搭載したコンピュータシステムにおいても,高い障害抑止効果を有するプロセッサFTが実現でき,ひいては高性能,かつ高信頼なコンピュータシステムを実現することが可能になる。   According to the present invention, even in a computer system equipped with a high-performance processor in recent years, a processor FT having a high failure suppression effect can be realized, and as a result, a high-performance and highly reliable computer system can be realized.

第一の実施例の仮想計算機システムの全体構成を示す図である。It is a figure which shows the whole structure of the virtual computer system of a 1st Example. 第一の実施例の仮想計算機システムのハイパバイザBの詳細構成を示す図である。It is a figure which shows the detailed structure of the hypervisor B of the virtual machine system of a 1st Example. 第一の実施例の仮想計算機システムのI/Oスイッチの詳細構成を示す図である。It is a figure which shows the detailed structure of the I / O switch of the virtual machine system of a 1st Example. 仮想計算機システムにおける、ハイパバイザによるVM同期処理の流れを説明する図である。It is a figure explaining the flow of VM synchronization processing by a hypervisor in a virtual machine system. 第一の実施例の,プロセッサ故障が発生していない場合の,ハイパバイザによるVM同期,I/Oイベント出力比較処理の流れを示す図である。It is a figure which shows the flow of VM synchronization and I / O event output comparison processing by a hypervisor when a processor failure has not occurred in the first embodiment. 第一の実施例の,プロセッサ故障が発生しI/Oコマンドが変化した場合の,ハイパバイザによるVM同期,I/Oイベント出力比較処理の流れを示す図である。It is a figure which shows the flow of a VM synchronization and I / O event output comparison process by a hypervisor when a processor failure occurs and an I / O command changes in the first embodiment. 第一の実施例の,プロセッサ故障が発生しI/Oデータが変化した場合の,ハイパバイザによるVM同期,I/Oイベント出力比較処理の流れを示す図である。It is a figure which shows the flow of VM synchronization and I / O event output comparison processing by a hypervisor when a processor failure occurs and I / O data changes in the first embodiment. 第一の実施例の,ハイパバイザBの物理アドレス変換部の処理フローを示す図である。It is a figure which shows the processing flow of the physical address conversion part of the hypervisor B of a 1st Example. 第二の実施例の仮想計算機システムの全体構成を示す図である。It is a figure which shows the whole structure of the virtual machine system of a 2nd Example. 第二の実施例の仮想計算機システムのハイパバイザCの詳細構成図である。It is a detailed block diagram of the hypervisor C of the virtual machine system of a 2nd Example. 第二の実施例の仮想計算機システムのI/Oスイッチの詳細構成図である。It is a detailed block diagram of the I / O switch of the virtual machine system of the second embodiment.

以下、本発明の好適な実施例を図面に従い説明する。なお、本明細書において、各計算機上で実行される各種のプログラムの機能ブロックを「部」として表現する場合があるが、図面上ではこの「部」の表示は省略される。例えば、「I/Oイベント処理部」は、「I/O Event Processing(I/Oイベント処理)」と表記され、”Unit”は省略されている。   Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings. In this specification, functional blocks of various programs executed on each computer may be expressed as “parts”, but the display of “parts” is omitted in the drawings. For example, “I / O event processing unit” is expressed as “I / O Event Processing”, and “Unit” is omitted.

図1は,第一の実施例の全体構成を示す図である。同図においては、左側が系Aを構成する物理計算機A、右側が系Bを構成する物理計算機Bを示しているが、図面より明らかなため、以後の説明において、系A,B表記は省略する。   FIG. 1 is a diagram showing the overall configuration of the first embodiment. In this figure, the left side shows the physical computer A constituting the system A, and the right side shows the physical computer B constituting the system B. However, since it is clear from the drawing, the system A and B notations are omitted in the following description. To do.

100,101はCPU(Central Processing Unit)であるプロセッサ,102,103はメモリ,105,106はI/OデバイスX,Yであり,120,121は,プロセッサ,メモリ,I/Oデバイスによって構成される物理計算機である。   Reference numerals 100 and 101 denote processors (Central Processing Units), 102 and 103 denote memories, 105 and 106 denote I / O devices X and Y, and 120 and 121 denote processors, memories, and I / O devices. It is a physical computer.

プロセッサとI/OデバイスがI/Oスイッチ104を介して接続されることにより,物理計算機とI/Oデバイスの間は接続が共有されており,プロセッサ100,メモリ102,I/Oスイッチ104により,物理計算機120が,プロセッサ101,メモリ103,I/Oスイッチ104により,物理計算機121がそれぞれ構成され,DMAコントローラ(Direct Memory Access Controller:DMA)を備えたI/Oデバイス105,106は物理計算機120,121と接続される。   Since the processor and the I / O device are connected via the I / O switch 104, the connection between the physical computer and the I / O device is shared, and the processor 100, the memory 102, and the I / O switch 104 The physical computer 120 includes a processor 101, a memory 103, and an I / O switch 104, and a physical computer 121 is configured. The I / O devices 105 and 106 including a DMA controller (Direct Memory Access Controller: DMA) are physical computers. 120 and 121 are connected.

ここで,107,108,109はPeripheral Component Interconnect(PCI) Express Busによる物理的な接続であり,プロセッサ100,101,メモリ102,103とI/Oスイッチ104が,PCI Express Bus107によって,また,I/Oスイッチ104とI/Oデバイス105がPCI Express Bus108によって,さらに,I/Oスイッチ104とI/Oデバイス106がPCI Express Bus109によって,それぞれ接続されている。   Here, 107, 108 and 109 are physical connections by Peripheral Component Interconnect (PCI) Express Bus, and the processors 100 and 101, the memories 102 and 103 and the I / O switch 104 are connected by the PCI Express Bus 107 and I The / O switch 104 and the I / O device 105 are connected by a PCI Express Bus 108, and the I / O switch 104 and the I / O device 106 are connected by a PCI Express Bus 109, respectively.

132,133は仮想化制御部として機能するハイパバイザのプログラムである。この仮想化制御部を構成するハイパバイザ132,133が,物理計算機120,121でそれぞれ動作することにより,仮想的なコンピュータに対応するソフトウェア実行環境である,仮想計算機(Virtual Machine,以下VMと略記)122と123が生成される。   132 and 133 are hypervisor programs that function as a virtualization control unit. A virtual machine (Virtual Machine, hereinafter abbreviated as VM), which is a software execution environment corresponding to a virtual computer, when the hypervisors 132 and 133 constituting the virtualization control unit operate on the physical computers 120 and 121, respectively. 122 and 123 are generated.

メモリ102は,ハイパバイザ132の働きにより,VM122が利用するメモリ領域110と,ハイパバイザ132が利用するメモリ領域112に分割される。このとき,VM122での仮想アドレス空間と,物理計算機120での物理アドレス空間の対応は,ハイパバイザ132内の,特にページテーブルを備えたアドレス変換部141よって管理される。   The memory 102 is divided into a memory area 110 used by the VM 122 and a memory area 112 used by the hypervisor 132 by the action of the hypervisor 132. At this time, the correspondence between the virtual address space in the VM 122 and the physical address space in the physical computer 120 is managed by the address conversion unit 141 provided with a page table in the hypervisor 132.

また,同様に,メモリ103は,ハイパバイザ133の働きにより,VM123が利用するメモリ領域111と,ハイパバイザ133が利用するメモリ領域113に分割され,VM123での仮想アドレス空間と,物理計算機121での物理アドレス空間の対応は,ハイパバイザ133内のアドレス変換部143によって管理される。   Similarly, the memory 103 is divided into a memory area 111 used by the VM 123 and a memory area 113 used by the hypervisor 133 by the action of the hypervisor 133, and the virtual address space in the VM 123 and the physical area in the physical computer 121. Address space correspondence is managed by the address conversion unit 143 in the hypervisor 133.

VM122と123内においては,それぞれ,ソフトウェア130と131が動作するが,ハイパバイザ132の同期処理部140から,ハイパバイザ133の同期処理部142に,イベント送信チャネル160を通じて情報が送信されることにより,ソフトウェア130と131の動作は,ソフトウェアレベルで同一である。   Softwares 130 and 131 operate in the VMs 122 and 123, respectively. However, when information is transmitted from the synchronization processing unit 140 of the hypervisor 132 to the synchronization processing unit 142 of the hypervisor 133 through the event transmission channel 160, the software The operations 130 and 131 are the same at the software level.

ここで,イベント送信チャネル160は,物理計算機120と121間でのデータの送受信を論理的に示したものであり,物理的には,I/Oスイッチ104を介した通信である。   Here, the event transmission channel 160 logically indicates data transmission / reception between the physical computers 120 and 121, and is physically communication via the I / O switch 104.

また,ソフトウェアの動作がソフトウェアレベルで同一,とは,ソフトウェアのプログラム実行フローが,割り込みなどの非同期事象の影響も含めた上で,同一であるということである。割り込みなどの非同期事象は,実行したプログラムの内容だけでは,発生の仕方が一意に定まらないため,プログラム実行フローを同一とするためには,非同期事象の発生の仕方を同一にする必要があり,ハイパバイザ132の同期処理部140と,ハイパバイザ133の同期処理部142は,この処理を行うものである。処理の内容については,後述する。   The software operation is the same at the software level, which means that the software program execution flow is the same, including the effects of asynchronous events such as interrupts. Asynchronous events such as interrupts cannot be uniquely determined only by the contents of the executed program. Therefore, in order to make the program execution flow the same, it is necessary to make the asynchronous events occur in the same way. The synchronization processing unit 140 of the hypervisor 132 and the synchronization processing unit 142 of the hypervisor 133 perform this processing. Details of the processing will be described later.

ソフトウェア130が実行されると,I/Oイベント170が発生するが,プロセッサ100が有する機構の働きにより,I/Oイベント170はハイパバイザ132にトラップされ,同期処理部140に入力される。同期処理部140は,発生したI/Oイベント170の情報を,イベント送信チャネル160を通じて,ハイパバイザ133の同期処理部142に送信する。   When the software 130 is executed, an I / O event 170 is generated. The I / O event 170 is trapped by the hypervisor 132 and input to the synchronization processing unit 140 due to the mechanism of the processor 100. The synchronization processing unit 140 transmits information on the generated I / O event 170 to the synchronization processing unit 142 of the hypervisor 133 through the event transmission channel 160.

同期処理部142は,受信したI/Oイベント170の情報を,ソフトウェア130と131の動作をソフトウェアレベルで同一にする処理に用いる他に,I/Oイベント172として,同じくハイパバイザ133内のI/Oイベント検出部144に出力する。   The synchronization processing unit 142 uses the received information of the I / O event 170 for processing to make the operations of the software 130 and 131 the same at the software level, and also as the I / O event 172, the I / O event in the hypervisor 133. Output to the O event detection unit 144.

また,ソフトウェア131の実行により発生するI/Oイベント171は,プロセッサ101が有する機構の働きにより,ハイパバイザ133にトラップされ,I/Oイベント検出部144に入力される。   The I / O event 171 generated by the execution of the software 131 is trapped by the hypervisor 133 and input to the I / O event detection unit 144 by the function of the processor 101.

I/Oイベント検出部144では,VM122側のI/Oイベント172の種類を解析し,特に,I/Oコマンドを出力するイベントと,I/Oデータを出力するイベントについて,それぞれI/Oコマンド出力イベント173と,I/Oデータ出力イベント174として,I/Oイベント処理部145に出力する。また,I/Oイベント検出部144は,VM123側のI/Oイベント171の種類を解析し,I/Oコマンド出力イベント175と,I/Oデータ出力イベント176を,I/Oイベント処理部145に出力する。   The I / O event detection unit 144 analyzes the type of the I / O event 172 on the VM 122 side, and in particular, an I / O command for an event that outputs an I / O command and an event that outputs I / O data, respectively. The output event 173 and the I / O data output event 174 are output to the I / O event processing unit 145. Further, the I / O event detection unit 144 analyzes the type of the I / O event 171 on the VM 123 side, and outputs an I / O command output event 175 and an I / O data output event 176, and an I / O event processing unit 145. Output to.

I/Oイベント処理部145は,I/Oコマンド出力イベント173,175について,I/Oコマンドの内容を比較し,一致していれば,I/Oスイッチ104との間で,I/OのI/Oコマンド190として送受信を行う。   The I / O event processing unit 145 compares the contents of the I / O command with respect to the I / O command output events 173 and 175, and if they match, the I / O event processing unit 145 exchanges the I / O command with the I / O switch 104. Transmission / reception is performed as an I / O command 190.

I/Oスイッチ104は,I/Oコマンド190を,その送受信先に応じて,I/Oデバイス105,あるいはI/Oデバイス106に,それぞれI/Oコマンド181,182として送受信することにより,I/Oコマンド出力イベント173,および175は,I/Oデバイス105,あるいは106に出力される。   The I / O switch 104 transmits / receives an I / O command 190 to the I / O device 105 or the I / O device 106 as I / O commands 181 and 182 according to the transmission / reception destination, respectively. The / O command output events 173 and 175 are output to the I / O device 105 or 106.

また,I/Oイベント処理部145は,I/Oデータ出力イベント174,176について,I/Oデータの内容を比較し,一致していれば,I/Oコマンド190として,I/Oデバイス105,あるいは106のDMAに読み出しコマンドを送信する。   In addition, the I / O event processing unit 145 compares the contents of the I / O data for the I / O data output events 174 and 176, and if they match, the I / O command 105 is used as the I / O command 190. Or a read command is transmitted to the DMA 106.

I/Oデータ出力イベント174でのI/Oデータは,ソフトウェア130のI/Oデータ書き込み177によって,I/Oデータ出力イベント174に先立って,VM122が利用するメモリ領域110内の,I/Oデータバッファ114に書き込まれている。   The I / O data in the I / O data output event 174 is stored in the I / O data in the memory area 110 used by the VM 122 prior to the I / O data output event 174 by the I / O data write 177 of the software 130. It is written in the data buffer 114.

また,I/Oデータ出力イベント176でのI/Oデータは,ソフトウェア131のI/Oデータ書き込み178によって,I/Oデータ出力イベント176に先立って,VM123が利用するメモリ領域111内の,I/Oデータバッファ115に書き込まれている。   Also, the I / O data in the I / O data output event 176 is stored in the memory area 111 used by the VM 123 prior to the I / O data output event 176 by the I / O data write 178 of the software 131. / O data buffer 115 is written.

I/Oイベント処理部145には,特に,I/Oデータ出力比較部146があり,I/Oデータ出力イベント174の情報から,I/Oデータバッファ114のVM122のアドレス空間でのアドレスを特定し,さらに,VM122のアドレス空間でのアドレスから,物理計算機120のアドレス空間でのアドレスに変換する。   In particular, the I / O event processing unit 145 includes an I / O data output comparison unit 146, which specifies an address in the address space of the VM 122 of the I / O data buffer 114 from the information of the I / O data output event 174. Further, the address in the address space of the VM 122 is converted into an address in the address space of the physical computer 120.

同様に,I/Oデータ出力比較部146では,I/Oデータ出力イベント176の情報から,I/Oデータバッファ115のVM123のアドレス空間でのアドレスを特定し,さらに,VM123のアドレス空間でのアドレスから,物理計算機121のアドレス空間でのアドレスに変換する。   Similarly, the I / O data output comparison unit 146 identifies the address in the address space of the VM 123 of the I / O data buffer 115 from the information of the I / O data output event 176, and further in the address space of the VM 123. The address is converted into an address in the address space of the physical computer 121.

続いてI/Oデータ出力比較部146は,I/Oデータ出力イベント通知191と,I/Oデータ出力イベント174に対応するI/Oデータバッファ114の物理計算機120のアドレス空間でのアドレス情報である,物理アドレス情報192と,I/Oデータ出力イベント175に対応するI/Oデータバッファ115の物理計算機121のアドレス空間でのアドレス情報である,物理アドレス情報193を,I/Oスイッチ104に対する要求送信部147を通じて,I/Oスイッチ104の要求受信部116に,それぞれ送信する。   Subsequently, the I / O data output comparison unit 146 uses the I / O data output event notification 191 and the address information in the address space of the physical computer 120 of the I / O data buffer 114 corresponding to the I / O data output event 174. The physical address information 192 and the physical address information 193 that is address information in the address space of the physical computer 121 of the I / O data buffer 115 corresponding to the I / O data output event 175 are sent to the I / O switch 104. The data is transmitted to the request reception unit 116 of the I / O switch 104 through the request transmission unit 147.

I/Oスイッチ104の要求受信部116が,I/Oデータ出力イベント通知191,物理アドレス情報192,193を受信すると,I/Oスイッチ104は,I/Oデータバッファ114と115の内容を,それぞれDMAデータ読み出し186,187として,それぞれメモリ102,103から直接読み出して比較し,比較結果194を,I/Oデータ出力比較部146への応答送信部117を通じて,I/Oデータ出力比較部146の応答受信部148に送信する。   When the request receiving unit 116 of the I / O switch 104 receives the I / O data output event notification 191, physical address information 192, and 193, the I / O switch 104 reads the contents of the I / O data buffers 114 and 115. As DMA data readings 186 and 187, respectively, they are directly read from the memories 102 and 103 and compared, and the comparison result 194 is sent to the I / O data output comparing unit 146 through the response transmission unit 117 to the I / O data output comparing unit 146. To the response receiver 148.

ここで,I/Oコマンド190,およびI/Oデータ出力イベント通知191,物理アドレス情報192,193,比較結果194は,PCI Express Bus107上での,I/Oコマンド180の送受信として,同様のバスシーケンスにて実行されるものである。   Here, the I / O command 190, the I / O data output event notification 191, the physical address information 192, 193, and the comparison result 194 are the same buses as transmission / reception of the I / O command 180 on the PCI Express Bus 107. It is executed in sequence.

また,DMAデータ読み出し186,187は,PCI Express Bus107上での,DMAデータ読み出し185として,同様のバスシーケンスで実行されるものである。   The DMA data readings 186 and 187 are executed in the same bus sequence as the DMA data reading 185 on the PCI Express Bus 107.

I/Oデータ出力比較部146は,I/Oデータバッファ114と115の比較結果を,応答受信部148を通じて受信し,その結果が一致であることを示していれば,I/Oコマンド190として,I/Oデバイス105,あるいは106に,DMA読み出しコマンドを送信する。   The I / O data output comparison unit 146 receives the comparison result between the I / O data buffers 114 and 115 through the response reception unit 148, and if the result indicates that they match, an I / O command 190 is obtained. , A DMA read command is transmitted to the I / O device 105 or 106.

I/Oデバイス105,あるいは106が,DMA読み出しコマンドを受信すると,DMAデータ読み出し188,あるいは189として,I/Oスイッチ104に対して読み出しを行う。I/Oスイッチ104は,DMAデータ読み出し188,189を,その読み出し先に応じて,DMAデータ読み出し186,187として,それぞれメモリ102,103から読み出して,DMAデータ読み出し188,189の読み出し結果を返すことにより,結果としてI/Oデータ出力イベント174,および176は,I/Oデバイス105,あるいは106に出力される。   When the I / O device 105 or 106 receives the DMA read command, the I / O switch 104 performs reading as the DMA data read 188 or 189. The I / O switch 104 reads the DMA data readings 188 and 189 from the memories 102 and 103 as the DMA data readings 186 and 187 according to the reading destinations, and returns the reading results of the DMA data readings 188 and 189, respectively. As a result, the I / O data output events 174 and 176 are output to the I / O device 105 or 106 as a result.

図2は,図1に示した実施例1のシステムの物理計算機121上で動作する仮想化制御部を構成するハイパバイザ133の一構成例の詳細を示す図である。   FIG. 2 is a diagram illustrating details of a configuration example of the hypervisor 133 that configures the virtualization control unit that operates on the physical computer 121 of the system according to the first embodiment illustrated in FIG. 1.

ハイパバイザ133には,同期処理部142,アドレス変換部143,I/Oイベント検出部144,I/Oイベント処理部145があり,I/Oイベント処理部145には,I/Oデータ出力比較部146があり,I/Oデータ出力比較部146には,I/Oスイッチ104に対する要求送信部147,応答受信部148があることは先に述べた通りであり,更に,仮想アドレス特定部151と,物理アドレス変換部152等がある。   The hypervisor 133 includes a synchronization processing unit 142, an address conversion unit 143, an I / O event detection unit 144, and an I / O event processing unit 145. The I / O event processing unit 145 includes an I / O data output comparison unit. As described above, the I / O data output comparison unit 146 includes the request transmission unit 147 and the response reception unit 148 for the I / O switch 104. , Physical address conversion unit 152, and the like.

加えて,ハイパバイザ133のI/Oイベント処理部145には,I/Oコマンド出力比較部149,I/Oコマンド出力抑止部150,DMA抑止部153がある。なお,このI/Oコマンド出力抑止部150とDMA抑止部153は総称して抑止部と呼ばれることがある。   In addition, the I / O event processing unit 145 of the hypervisor 133 includes an I / O command output comparison unit 149, an I / O command output suppression unit 150, and a DMA suppression unit 153. The I / O command output suppression unit 150 and the DMA suppression unit 153 may be collectively referred to as a suppression unit.

I/Oコマンド出力比較部149は,I/Oイベント検出部144からのI/Oコマンド出力イベント173,175のI/Oコマンドの内容を比較し,その結果をI/Oコマンド比較結果201として,I/Oコマンド出力抑止部150に出力する。   The I / O command output comparison unit 149 compares the contents of the I / O command of the I / O command output events 173 and 175 from the I / O event detection unit 144 and uses the result as the I / O command comparison result 201. , Output to the I / O command output suppression unit 150.

I/Oコマンド出力抑止部150は,I/Oイベント検出部144からのI/Oコマンド出力イベント173,175のI/Oコマンドの内容をI/Oコマンド190として送受信するが,I/Oコマンド比較結果201が不一致を示している場合,対応するI/Oコマンド出力イベント173,175のI/Oコマンド送受信を抑止する。   The I / O command output suppression unit 150 transmits and receives the I / O command contents of the I / O command output events 173 and 175 from the I / O event detection unit 144 as an I / O command 190. When the comparison result 201 indicates a mismatch, I / O command transmission / reception of the corresponding I / O command output events 173 and 175 is suppressed.

I/Oデータ出力比較部146の仮想アドレス特定部151は,I/Oイベント検出部144からのI/Oデータ出力イベント174,176の情報から,I/Oデータバッファ114のVM122のアドレス空間での仮想アドレスと,I/Oデータバッファ116のVM123のアドレス空間での仮想アドレスを特定し,その結果をI/Oデータ出力イベント仮想アドレス情報211,212として,物理アドレス変換部152に出力する。   The virtual address specifying unit 151 of the I / O data output comparing unit 146 uses the information of the I / O data output events 174 and 176 from the I / O event detecting unit 144 to search the address space of the VM 122 of the I / O data buffer 114. And the virtual address in the address space of the VM 123 of the I / O data buffer 116 are specified, and the result is output to the physical address conversion unit 152 as I / O data output event virtual address information 211, 212.

物理アドレス変換部152は,I/Oデータ出力イベント仮想アドレス情報211に基づいて,一般的なページテーブルを有するアドレス変換部143のページテーブルサイズ毎に,仮想ページ番号221をアドレス変換部143に入力し,アドレス変換部143から,対応する物理ページ番号222を入力することによって,I/Oデータバッファ114の物理計算機120のアドレス空間でのアドレスに変換し,その結果を,I/Oデータ出力イベント物理アドレス情報231として,要求送信部147に出力する。   Based on the I / O data output event virtual address information 211, the physical address conversion unit 152 inputs a virtual page number 221 to the address conversion unit 143 for each page table size of the address conversion unit 143 having a general page table. Then, by inputting the corresponding physical page number 222 from the address conversion unit 143, it is converted into an address in the address space of the physical computer 120 of the I / O data buffer 114, and the result is converted to an I / O data output event. The physical address information 231 is output to the request transmission unit 147.

また,物理アドレス変換部152は,同様にして,I/Oデータバッファ116の物理計算機121のアドレス空間でのアドレスを,I/Oデータ出力イベント物理アドレス情報232として,要求送信部147に出力する。   Similarly, the physical address conversion unit 152 outputs the address in the address space of the physical computer 121 of the I / O data buffer 116 to the request transmission unit 147 as I / O data output event physical address information 232. .

要求送信部147は,I/Oイベント検出部144からのI/Oデータ出力イベント174,176の入力と,物理アドレス変換部152からのI/Oデータ出力イベント物理アドレス情報231,232の入力から,I/Oデータ出力イベント通知191,物理アドレス情報192,193をI/Oスイッチ104の要求受信部116に送信する。   The request transmission unit 147 receives the input of I / O data output events 174 and 176 from the I / O event detection unit 144 and the input of I / O data output event physical address information 231 and 232 from the physical address conversion unit 152. , I / O data output event notification 191, physical address information 192 and 193 are transmitted to the request receiving unit 116 of the I / O switch 104.

応答受信部148は,比較結果194をI/Oスイッチ104の応答送信部117から受信し,その結果をI/Oデータ比較結果241として,DMA抑止部153に出力する。   The response reception unit 148 receives the comparison result 194 from the response transmission unit 117 of the I / O switch 104, and outputs the result as the I / O data comparison result 241 to the DMA suppression unit 153.

DMA抑止部153は,I/Oイベント検出部144からのI/Oデータ出力イベント174,176に含まれるI/Oデバイス105,あるいは106へのDMA読み出しコマンドをI/Oコマンド190として送信するが,I/Oデータ比較結果241が不一致を示している場合,対応するI/Oデータ出力イベント174,176のDMA読み出しコマンド送信を抑止する。   The DMA suppression unit 153 transmits a DMA read command to the I / O device 105 or 106 included in the I / O data output events 174 and 176 from the I / O event detection unit 144 as an I / O command 190. When the I / O data comparison result 241 indicates a mismatch, the DMA read command transmission of the corresponding I / O data output events 174 and 176 is suppressed.

図3は,図1に示した実施例1のシステムのI/Oスイッチ104の一構成例の詳細を示す図である。   FIG. 3 is a diagram illustrating details of a configuration example of the I / O switch 104 in the system according to the first embodiment illustrated in FIG. 1.

I/Oスイッチ104は,PCI Express Bus107によってプロセッサ100,101と,PCI Express Bus108によってI/Oデバイス105と,PCI Express Bus109によってI/Oデバイス106と,それぞれ接続され,I/Oコマンド180の送受信を,I/Oデバイス105にI/Oコマンド181として送受信し,あるいは,I/Oデバイス106にI/Oコマンド182として送受信し,また,I/Oデバイス105からのDMA読み出し188,あるいはI/Oデバイス106からのDMA読み出し189を,DMA読み出し185として読み出すが,これは,I/Oスイッチ104内のスイッチ回路300の動作による。   The I / O switch 104 is connected to the processors 100 and 101 by the PCI Express Bus 107, the I / O device 105 by the PCI Express Bus 108, and the I / O device 106 by the PCI Express Bus 109, and transmits and receives the I / O command 180. Is transmitted / received to / from the I / O device 105 as an I / O command 181, or transmitted / received to / from the I / O device 106 as an I / O command 182, and DMA read 188 from the I / O device 105, or The DMA read 189 from the O device 106 is read as the DMA read 185, which is due to the operation of the switch circuit 300 in the I / O switch 104.

また,I/Oスイッチ104には,I/Oデータ出力比較部146に対する要求受信部116,応答送信部117があることは先に述べたが,好適には加えて,DMAデータ読み出し部301と,I/Oデータ比較部として機能するI/Oデータバッファ比較部302が付加される。このI/Oデータバッファ比較部302が付加されることにより,I/Oスイッチ104はハイパバイザ132,133の仮想化制御部のデータ比較機能を分担し,その比較オーバーヘッド削減を図る。   As described above, the I / O switch 104 includes the request receiving unit 116 and the response transmitting unit 117 for the I / O data output comparing unit 146. , An I / O data buffer comparator 302 that functions as an I / O data comparator is added. By adding the I / O data buffer comparison unit 302, the I / O switch 104 shares the data comparison function of the virtualization control units of the hypervisors 132 and 133, and reduces the comparison overhead.

要求受信部116は,I/Oスイッチ104内で,スイッチ回路300を通じてPCI Express Bus107と接続されており,I/Oデータ出力イベント通知191,物理アドレス情報192,193を,I/Oコマンド180として,I/Oデータ出力比較部146の要求送信部147から受信し,受信した内容をI/Oデータ出力イベント通知311,I/Oデータバッファ114の物理アドレス情報312,I/Oデータバッファ115の物理アドレス313として,DMAデータ読み出し部301に出力する。   The request receiving unit 116 is connected to the PCI Express Bus 107 in the I / O switch 104 through the switch circuit 300, and the I / O data output event notification 191, the physical address information 192 and 193 are used as the I / O command 180. , I / O data output comparison unit 146 received from request transmission unit 147, received contents are I / O data output event notification 311, physical address information 312 of I / O data buffer 114, I / O data buffer 115 The physical address 313 is output to the DMA data reading unit 301.

DMAデータ読み出し部301は,I/Oデータ出力イベント通知311,物理アドレス情報312,313を受け取ると,I/Oデータバッファ114,115の物理アドレス情報312,313をもとに,I/Oデータバッファ114,115へのDMAデータ読み出し186,187をそれぞれ行い,DMA読み出し結果326,327を,I/Oデータバッファ比較部302にそれぞれ出力する。   Upon receiving the I / O data output event notification 311 and the physical address information 312 and 313, the DMA data reading unit 301 receives the I / O data based on the physical address information 312 and 313 of the I / O data buffers 114 and 115. DMA data readings 186 and 187 to the buffers 114 and 115 are performed, and DMA reading results 326 and 327 are output to the I / O data buffer comparison unit 302, respectively.

I/Oデータバッファ比較部302は,DMAデータ読み出し部301から入力されるDMA読み出し結果326,327を順次比較し,比較結果314を応答送信部117に出力する。   The I / O data buffer comparison unit 302 sequentially compares the DMA read results 326 and 327 input from the DMA data read unit 301 and outputs the comparison result 314 to the response transmission unit 117.

応答送信部117は,I/Oデータバッファ比較部302からの比較結果314を入力し,I/Oスイッチ104内で,スイッチ回路300を通じてPCI Express Bus107と接続されており,比較結果194を,I/Oコマンド180として,I/Oデータ出力比較部146の応答受信部148に送信する。それを受けた応答受信部148は,I/Oデータ比較結果241として,DMA抑止部153に出力することは上述の通りである。   The response transmission unit 117 receives the comparison result 314 from the I / O data buffer comparison unit 302 and is connected to the PCI Express Bus 107 through the switch circuit 300 in the I / O switch 104. The data is transmitted as a / O command 180 to the response reception unit 148 of the I / O data output comparison unit 146. The response receiving unit 148 receiving it outputs the I / O data comparison result 241 to the DMA inhibiting unit 153 as described above.

図4は,本実施例の上述したシステム構成において、ハイパバイザによるVMの同期処理のみを行う場合についての流れを説明するための図である。   FIG. 4 is a diagram for explaining a flow in the case where only the VM synchronization processing by the hypervisor is performed in the above-described system configuration of the present embodiment.

物理計算機120でハイパバイザ132が動作することによりVM122が生成され,VM122内でソフトウェア130が動作し,物理計算機121でハイパバイザ133が動作することによりVM123が生成され,VM123内でソフトウェア131が動作することは先に述べた。   The VM 122 is generated by operating the hypervisor 132 in the physical computer 120, the software 130 operates in the VM 122, the VM 123 is generated by operating the hypervisor 133 in the physical computer 121, and the software 131 operates in the VM 123. Said earlier.

また,I/Oスイッチ104を介して接続されたI/Oデバイス105がDMAを備え,I/Oコマンド180を通じてDMAデータ読み出しが起動されることも先に述べた。   In addition, as described above, the I / O device 105 connected via the I / O switch 104 includes a DMA, and DMA data reading is activated by the I / O command 180.

その上で,ソフトウェア130,131の処理に応じた,仮想計算機システム全体での処理の流れを説明する。   Then, the flow of processing in the entire virtual machine system according to the processing of the software 130 and 131 will be described.

この例では,ソフトウェア130は,非同期事象,具体的には割り込みであるが,481が物理計算機120に入力されて処理401でそれを受理し,その後,処理402でI/Oコマンド1を出力し,非同期事象482が入力されると,処理403でそれを受理し,その後,処理404でI/Oデータ1をメモリに書き込み,処理405でI/Oデータ2をメモリに書き込み,処理406でDMA読み出し起動のI/Oコマンド2を出力し,非同期事象483が入力されると,処理407でそれを受理する動作を行っている。   In this example, the software 130 is an asynchronous event, specifically, an interrupt, but 481 is input to the physical computer 120 and accepted in process 401, and then I / O command 1 is output in process 402. Asynchronous event 482 is input, it is accepted in process 403, then I / O data 1 is written to memory in process 404, I / O data 2 is written to memory in process 405, and DMA is processed in process 406. When the read start I / O command 2 is output and an asynchronous event 483 is input, processing 407 accepts it.

また,I/Oデバイス105のDMAは,ソフトウェア130の処理406で出力されるDMA読み出し起動のI/Oコマンド2を受理し,処理471にてDMA転送を開始し,処理472でソフトウェア130が処理404でメモリに書き込んだI/Oデータ1を読み出し,処理473でソフトウェア130が処理405でメモリに書き込んだI/Oデータ2を読み出し,処理474でDMA転送を終了する。   The DMA of the I / O device 105 accepts the DMA read activation I / O command 2 output in the process 406 of the software 130, starts the DMA transfer in the process 471, and the software 130 processes in the process 472. In step 404, the I / O data 1 written in the memory is read. In step 473, the software 130 reads the I / O data 2 written in the memory in step 405. In step 474, the DMA transfer ends.

図4に示すように,ソフトウェア130の動作のうち,非同期事象の受理である処理401,403,407については,ハイパバイザ132の働きにより,ソフトウェア130内での遷移ではなく,ハイパバイザ132への遷移が発生する。   As shown in FIG. 4, among the operations of the software 130, the processes 401, 403, and 407 that are acceptance of asynchronous events cause the transition to the hypervisor 132 instead of the transition in the software 130 due to the action of the hypervisor 132. Occur.

物理計算機120に非同期事象481が入力されると,処理401でそれを受理して,ハイパバイザ132に遷移し,ハイパバイザ132が,処理451で,受理した非同期事象481の情報と,それを受理した際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   When an asynchronous event 481 is input to the physical computer 120, it is received in the process 401 and transitions to the hypervisor 132. When the hypervisor 132 receives the information of the received asynchronous event 481 and the information in the process 451, Information on the execution position of the software 130 is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

物理計算機120に非同期事象482が入力されると,処理403でそれを受理して,ハイパバイザ132に遷移し,ハイパバイザ132が,処理453で,受理した非同期事象482の情報と,それを受理した際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   When an asynchronous event 482 is input to the physical computer 120, it is received in the process 403 and transitioned to the hypervisor 132. When the hypervisor 132 receives the information of the received asynchronous event 482 in the process 453, Information on the execution position of the software 130 is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ハイパバイザ133は,ハイパバイザ132が処理451で送信した,非同期事象481の情報と,それを受理した際のソフトウェア130の実行位置の情報を,処理452において受信する。   In step 452, the hypervisor 133 receives the information on the asynchronous event 481 transmitted by the hypervisor 132 in step 451 and the information on the execution position of the software 130 when it is received.

同様に,ハイパバイザ133は,ハイパバイザ132が処理453で送信した,非同期事象482の情報と,それを受理した際のソフトウェア130の実行位置の情報を,処理454において受信する。   Similarly, the hypervisor 133 receives in step 454 information on the asynchronous event 482 transmitted by the hypervisor 132 in step 453 and information on the execution position of the software 130 when it is received.

ハイパバイザ133は,処理455で,処理454にて受信した,非同期事象482を受理した際のソフトウェア130の実行位置の情報から,その位置でソフトウェア131の実行が停止し,ハイパバイザ133への遷移が発生するように,物理計算機121を設定する。   In step 455, the hypervisor 133 stops the execution of the software 131 at the position from the information on the execution position of the software 130 received when the asynchronous event 482 was received in step 454, and a transition to the hypervisor 133 occurs. Thus, the physical computer 121 is set.

次に,処理456で,処理452にて受信した非同期事象481の情報から,仮想的な非同期事象491を設定し,あたかも仮想計算機123に非同期事象481が入力され,それを受理し,ソフトウェア131内の遷移が発生したかのように,ソフトウェア131に遷移する。   Next, in a process 456, a virtual asynchronous event 491 is set from the information of the asynchronous event 481 received in the process 452, and the asynchronous event 481 is input to the virtual machine 123, and it is received and received in the software 131. Transition to the software 131 as if a transition occurred.

ソフトウェア131に遷移すると,ソフトウェア131は,非同期事象481が入力された後のソフトウェア130の動作と同一の動作を行うため,処理412において,ソフトウェア130が処理402において出力したI/Oコマンド1と同一のI/Oコマンドを出力しようとするが,ハイパバイザ133の働きにより,実際には出力されず,ハイパバイザ133への遷移が発生する。   When the transition is made to the software 131, the software 131 performs the same operation as the operation of the software 130 after the asynchronous event 481 is input. Therefore, in the process 412, the software 131 is the same as the I / O command 1 output in the process 402. However, due to the action of the hypervisor 133, it is not actually output and a transition to the hypervisor 133 occurs.

ハイパバイザ133では,ソフトウェア131が処理412において出力しようとしたI/Oコマンド1を,処理457において破棄する。破棄する理由は,I/Oコマンド1は,ソフトウェア130が処理402において既に出力しているからである。破棄の後に,再度ソフトウェア131に遷移する。   In the hypervisor 133, the I / O command 1 that the software 131 tried to output in the process 412 is discarded in the process 457. The reason for discarding is that the I / O command 1 has already been output in the process 402 by the software 130. After discarding, the software 131 again transitions to the software 131.

ソフトウェア131に再度遷移した後に,ソフトウェア131は,ソフトウェア130と同一の動作を行い,やがて,ハイパバイザ133が,処理455において物理計算機121に設定した停止位置に到達し,処理413において,ハイパバイザ133への遷移が発生する。   After transitioning to the software 131 again, the software 131 performs the same operation as that of the software 130. Eventually, the hypervisor 133 reaches the stop position set in the physical computer 121 in the process 455, and the process to the hypervisor 133 is performed in the process 413. A transition occurs.

ここまでのソフトウェア131の動作,具体的には,処理456の直後から開始され,処理412にて中断,処理457の後に再開され,処理413で中断されるまでの間の動作は,ソフトウェア130の,処理451の後から開始され,処理402を実行,処理403で中断されるまでの間の動作と同一である。   The operation of the software 131 so far, specifically, the operation starting immediately after the process 456, suspended in the process 412, resumed after the process 457, and suspended until the process 413 is interrupted. , Starting from the process 451, executing the process 402, and the same as the operation until being interrupted by the process 403.

物理計算機120に非同期事象483が入力されると,同様に,処理407でそれを受理して,ハイパバイザ132に遷移し,ハイパバイザ132が,処理458で,受理した非同期事象483の情報と,それを受理した際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   When the asynchronous event 483 is input to the physical computer 120, it is similarly accepted in the process 407 and transitions to the hypervisor 132. The hypervisor 132 receives the information of the asynchronous event 483 accepted in the process 458 and the information. Information on the execution position of the software 130 at the time of acceptance is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ハイパバイザ133は,ハイパバイザ132が処理458で送信した,非同期事象483の情報と,それを受理した際のソフトウェア130の実行位置の情報を,処理459において受信する。   In step 459, the hypervisor 133 receives the information on the asynchronous event 483 transmitted by the hypervisor 132 in step 458 and the information on the execution position of the software 130 when the hypervisor 132 receives the information.

ハイパバイザ133は,処理460で,処理459にて受信した,非同期事象483を受理した際のソフトウェア130の実行位置の情報から,その位置でソフトウェア131の実行が停止し,ハイパバイザ133への遷移が発生するように,物理計算機121を設定する。   In step 460, the hypervisor 133 stops the execution of the software 131 at the position from the information on the execution position of the software 130 received in the step 459 when the asynchronous event 483 is received, and a transition to the hypervisor 133 occurs. Thus, the physical computer 121 is set.

次に,処理461で,処理454にて受信した非同期事象482の情報から,仮想的な非同期事象492を設定し,あたかも仮想計算機123に非同期事象482が入力され,それを受理し,ソフトウェア131内の遷移が発生したかのように,ソフトウェア131に遷移する。   Next, in a process 461, a virtual asynchronous event 492 is set from the information of the asynchronous event 482 received in the process 454, and the asynchronous event 482 is input to the virtual machine 123, and is received and received in the software 131. Transition to the software 131 as if a transition occurred.

ソフトウェア131に遷移すると,ソフトウェア131は,非同期事象482入力された後のソフトウェア130の動作と同一の動作を行うため,処理414と415において,ソフトウェア130が処理404と405においてメモリに書き込むI/Oデータ1,2と同一のI/Oデータをメモリに書き込む。   When the transition is made to the software 131, the software 131 performs the same operation as the operation of the software 130 after the asynchronous event 482 is input. Therefore, in the processes 414 and 415, the software 130 writes the I / O to the memory in the processes 404 and 405. The same I / O data as data 1 and 2 is written into the memory.

その後に,ソフトウェア131は,処理416において,ソフトウェア130が処理406において出力した,DMA読み出し起動のI/Oコマンド2と同一のI/Oコマンドを出力しようとするが,ハイパバイザ133の働きにより,実際には出力されず,ハイパバイザ133への遷移が発生する。   After that, the software 131 tries to output the same I / O command as the DMA read start I / O command 2 output by the software 130 in the process 406 in the process 416. Is not output, and a transition to the hypervisor 133 occurs.

ハイパバイザ133では,ソフトウェア131が処理416において出力しようとしたI/Oコマンド2を,処理462において破棄し,再度ソフトウェア131に遷移する。   In the hypervisor 133, the I / O command 2 that the software 131 tried to output in the process 416 is discarded in the process 462, and the software 131 transitions to the software 131 again.

ソフトウェア131に再度遷移した後に,ソフトウェア131は,ソフトウェア130と同一の動作を行い,やがて,ハイパバイザ133が,処理460において物理計算機121に設定した停止位置に到達し,処理417において,ハイパバイザ133への遷移が発生する。   After the transition to the software 131 again, the software 131 performs the same operation as that of the software 130, and eventually the hypervisor 133 reaches the stop position set in the physical computer 121 in the process 460, and in the process 417, the software 131 A transition occurs.

ここまでのソフトウェア131の動作,具体的には,処理461の直後から開始され,処理414,415を実行し,処理416にて中断,処理462の後に再開され,処理417で中断されるまでの間の動作は,ソフトウェア130の,処理453の後から開始され,処理404,405,406を実行,処理407で中断されるまでの間の動作と同一である。   The operation of the software 131 up to this point, specifically, starts immediately after the process 461, executes the processes 414 and 415, is interrupted in the process 416, resumes after the process 462, and is interrupted in the process 417. The operation in the middle is the same as the operation of the software 130 that starts after the processing 453, executes the processing 404, 405, 406, and is interrupted in the processing 407.

このように,ハイパバイザ132が,物理計算機120に入力される非同期事象について,その事象の情報と,それによって引き起こされたソフトウェア130の遷移の情報をハイパバイザ133に送信し,ハイパバイザ133が,その情報を元に,ソフトウェア131にもその非同期事象を再現することによって,VMの同期処理が可能である。   As described above, the hypervisor 132 transmits information on the asynchronous event input to the physical computer 120 and information on the transition of the software 130 caused by the event to the hypervisor 133, and the hypervisor 133 transmits the information. Originally, the software 131 can also perform the VM synchronization processing by reproducing the asynchronous event.

図5は,本実施例における,ハイパバイザによるVMの同期,およびI/Oイベント出力比較処理の流れ,特にプロセッサ故障が発生していない場合の流れを示す図である。   FIG. 5 is a diagram illustrating the flow of VM synchronization and I / O event output comparison processing by the hypervisor, particularly when no processor failure has occurred in the present embodiment.

この例では,ソフトウェア130は,非同期事象581が物理計算機120に入力されて処理501でそれを受理し,その後,処理502でI/Oコマンド1を出力し,非同期事象582が入力されると,処理503でそれを受理し,その後,処理504でI/Oデータ1をメモリに書き込み,処理505でI/Oデータ2をメモリに書き込み,処理506でDMA読み出し起動のI/Oコマンド2を出力する動作を行っている。   In this example, when the asynchronous event 581 is input to the physical computer 120 and received in the process 501, the software 130 outputs the I / O command 1 in the process 502 and the asynchronous event 582 is input. In step 503, it is accepted, and in step 504, I / O data 1 is written to the memory. In step 505, I / O data 2 is written to the memory. In step 506, an I / O command 2 for starting DMA read is output. The operation to be performed.

ソフトウェア130の動作のうち,非同期事象の受理である処理501,503,およびI/Oコマンドの出力である処理502,506については,ハイパバイザ132の働きにより,ソフトウェア130内での遷移ではなく,ハイパバイザ132への遷移が発生する。   Among the operations of the software 130, the processing 501, 503, which is the reception of asynchronous events, and the processing 502, 506, which is the output of the I / O command, are not a transition in the software 130 but a hypervisor by the action of the hypervisor 132. A transition to 132 occurs.

物理計算機120に非同期事象581が入力されると,処理501でそれを受理して,ハイパバイザ132に遷移し,ハイパバイザ132が,処理551で,受理した非同期事象581の情報と,それを受理した際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   When an asynchronous event 581 is input to the physical computer 120, it is received in the process 501 and transitioned to the hypervisor 132. When the hypervisor 132 receives the information of the received asynchronous event 581 in the process 551, Information on the execution position of the software 130 is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ソフトウェア130の処理502で,I/Oコマンド1出力が実行されようとすると,ハイパバイザ132に遷移し,ハイパバイザ132が,処理553で,ソフトウェア130が実行しようとしたI/Oコマンド1の内容と,その際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   If the I / O command 1 output is to be executed in the process 502 of the software 130, the process transits to the hypervisor 132, and the hypervisor 132 performs the process 553, the contents of the I / O command 1 that the software 130 tried to execute, Information on the execution position of the software 130 at that time is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ハイパバイザ133は,ハイパバイザ132が処理551で送信した,非同期事象581の情報と,それを受理した際のソフトウェア130の実行位置の情報を,処理552において受信する。   In step 552, the hypervisor 133 receives information on the asynchronous event 581 transmitted by the hypervisor 132 in step 551 and information on the execution position of the software 130 when the hypervisor 132 receives the information.

また,ハイパバイザ133は,ハイパバイザ132が処理553で送信した,ソフトウェア130の処理502で実行されようとしたI/Oコマンド1の内容と,その際のソフトウェア130の実行位置の情報を,処理554において受信する。   In step 554, the hypervisor 133 sends the contents of the I / O command 1 that the hypervisor 132 transmitted in step 553 and is about to be executed in step 502 of the software 130, and information on the execution position of the software 130 at that time. Receive.

ハイパバイザ133は,処理555で,処理552にて受信した非同期事象581の情報から,仮想的な非同期事象591を設定し,あたかも仮想計算機123に非同期事象591が入力され,それを受理し,ソフトウェア131内の遷移が発生したかのように,ソフトウェア131に遷移する。   In step 555, the hypervisor 133 sets a virtual asynchronous event 591 from the information of the asynchronous event 581 received in step 552, as if the asynchronous event 591 is input to the virtual machine 123, receives it, and the software 131. Transitions to the software 131 as if the transitions in FIG.

ソフトウェア131に遷移すると,ソフトウェア131は,非同期事象581が入力された後のソフトウェア130の動作と同一の動作を行うため,処理512において,ソフトウェア130が処理502において出力しようとしたI/Oコマンド1と同一のI/Oコマンド1を出力しようとするが,ハイパバイザ133の働きにより,実際には出力されず,ハイパバイザ133への遷移が発生する。   When the transition is made to the software 131, the software 131 performs the same operation as the operation of the software 130 after the asynchronous event 581 is input. Therefore, in the process 512, the I / O command 1 that the software 130 tried to output in the process 502 is performed. The same I / O command 1 is to be output, but due to the action of the hypervisor 133, it is not actually output and a transition to the hypervisor 133 occurs.

ハイパバイザ133では,処理556において,ソフトウェア130が処理502において出力しようとしたI/Oコマンド1の内容と,ソフトウェア131が処理512において出力しようとしたI/Oコマンド1の内容を比較し,一致していれば,処理557において,I/Oコマンド1を出力する。   The hypervisor 133 compares the contents of the I / O command 1 that the software 130 tried to output in the process 502 with the contents of the I / O command 1 that the software 131 tried to output in the process 512 in the process 556, and they match. If so, in process 557, I / O command 1 is output.

ここで,図4で説明したVMの同期処理のみの場合では,仮想計算機122での処理402において,I/Oコマンド1は即座に出力されるが,図5に示した本実施例の処理では,仮想計算機122での処理502,仮想計算機123での処理512を契機として,ハイパバイザ132,133によって比較され,処理557でI/Oコマンド1が出力されることに注目されたい。   Here, in the case of only the VM synchronization process described with reference to FIG. 4, the I / O command 1 is immediately output in the process 402 of the virtual machine 122, but in the process of the present embodiment shown in FIG. Note that the processing is performed by the hypervisors 132 and 133 in response to the process 502 in the virtual machine 122 and the process 512 in the virtual machine 123, and the I / O command 1 is output in the process 557.

また,ここまでのソフトウェア131の動作,具体的には,処理555の直後から開始され,処理512で中断されるまでの間の動作は,ソフトウェア130の,処理551の直後から開始され,処理502で中断されるまでの間の動作と同一である。   Further, the operation of the software 131 so far, specifically, the operation until immediately after the process 555 and until it is interrupted in the process 512 is started immediately after the process 551 of the software 130, and the process 502. The operation is the same as that until the interruption.

物理計算機120に非同期事象582が入力されると,同様に,処理503でそれを受理して,ハイパバイザ132に遷移し,ハイパバイザ132が,処理558で,受理した非同期事象582の情報と,それを受理した際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   When an asynchronous event 582 is input to the physical computer 120, it is similarly received in the process 503 and transitioned to the hypervisor 132. The hypervisor 132 receives the information of the asynchronous event 582 received in the process 558 and the information. Information on the execution position of the software 130 at the time of acceptance is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ハイパバイザ133は,ハイパバイザ132が処理558で送信した,非同期事象582の情報と,それを受理した際のソフトウェア130の実行位置の情報を,処理559において受信する。   In step 559, the hypervisor 133 receives information on the asynchronous event 582 transmitted by the hypervisor 132 in step 558 and information on the execution position of the software 130 when the hypervisor 132 has received the information.

ハイパバイザ133は,処理560で,処理559にて受信した,非同期事象582を受理した際のソフトウェア130の実行位置の情報から,その位置でソフトウェア131の実行が停止し,ハイパバイザ133への遷移が発生するように物理計算機121を設定して,ソフトウェア131に遷移する。   In step 560, the hypervisor 133 stops the execution of the software 131 at the position from the information on the execution position of the software 130 received in the process 559 when the asynchronous event 582 is received, and a transition to the hypervisor 133 occurs. Then, the physical computer 121 is set so as to shift to the software 131.

ソフトウェア131に遷移すると,ソフトウェア131は,I/Oコマンド1を出力しようとした後のソフトウェア130の動作と同一の動作を行い,やがて,ハイパバイザ133が,処理560において物理計算機121に設定した停止位置に到達し,処理513において,ハイパバイザ133への遷移が発生する。   When transitioning to the software 131, the software 131 performs the same operation as that of the software 130 after attempting to output the I / O command 1, and eventually the hypervisor 133 sets the stop position set in the physical computer 121 in the process 560. In process 513, a transition to the hypervisor 133 occurs.

ここまでのソフトウェア131の動作,具体的には,処理560の直後から開始され,処理513にて中断されるまでの間の動作は,ソフトウェア130の,処理553の後から開始され,処理503で中断されるまでの間の動作と同一である。   The operation of the software 131 up to this point, specifically, the operation that starts immediately after the process 560 and is interrupted in the process 513 is started after the process 553 of the software 130. It is the same as the operation until it is interrupted.

一方,ソフトウェア130は,ハイパバイザ132の処理558の後に処理を継続しており,処理504でI/Oデータ1をメモリに書き込み,処理505でI/Oデータ2をメモリに書き込み,処理506において,DMA読み出し起動のI/Oコマンド2の出力が実行されようとすると,ハイパバイザ132に遷移し,ハイパバイザ132が,処理561で,ソフトウェア130が実行しようとしたI/Oコマンド2の内容と,その際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   On the other hand, the software 130 continues processing after processing 558 of the hypervisor 132, writes I / O data 1 to the memory in processing 504, writes I / O data 2 to the memory in processing 505, and in processing 506, When the output of the DMA read start I / O command 2 is to be executed, a transition is made to the hypervisor 132, and the hypervisor 132 is the process 561, and the contents of the I / O command 2 that the software 130 attempted to execute, and at that time Information on the execution position of the software 130 is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ハイパバイザ133は,ハイパバイザ132が処理561で送信した,ソフトウェア130の処理506で実行されようとしたDMA読み出し起動のI/Oコマンド2の内容と,その際のソフトウェア130の実行位置の情報を,処理562において受信する。   The hypervisor 133 processes the contents of the DMA read activation I / O command 2 to be executed in the process 506 of the software 130 transmitted by the hypervisor 132 in the process 561 and the execution position information of the software 130 at that time. Receive at 562.

ハイパバイザ133は,処理563で,処理559にて受信した非同期事象582の情報から,仮想的な非同期事象592を設定し,あたかも仮想計算機123に非同期事象592が入力され,それを受理し,ソフトウェア131内の遷移が発生したかのように,ソフトウェア131に遷移する。   In step 563, the hypervisor 133 sets a virtual asynchronous event 592 from the information of the asynchronous event 582 received in step 559, as if the asynchronous event 592 is input to the virtual machine 123, receives it, and the software 131. Transitions to the software 131 as if the transitions in FIG.

ソフトウェア131に遷移すると,ソフトウェア131は,非同期事象582が入力された後のソフトウェア130の動作と同一の動作を行うため,処理514と515において,ソフトウェア130が処理504と505においてメモリに書き込むI/Oデータ1,2と同一のI/Oデータをメモリに書き込む。   When the transition is made to the software 131, the software 131 performs the same operation as the operation of the software 130 after the asynchronous event 582 is input. Therefore, in the processing 514 and 515, the software 130 writes the I / The same I / O data as the O data 1 and 2 is written into the memory.

その後に,ソフトウェア131は,処理516において,ソフトウェア130が処理506において出力しようとした,DMA読み出し起動のI/Oコマンド2と同一のI/Oコマンド2を出力しようとするが,ハイパバイザ133の働きにより,実際には出力されず,ハイパバイザ133への遷移が発生する。   Thereafter, the software 131 tries to output the same I / O command 2 as the DMA read activation I / O command 2 that the software 130 tried to output in the process 506 in the process 516, but the function of the hypervisor 133. As a result, a transition to the hypervisor 133 occurs without actually being output.

ハイパバイザ133では,処理564において,ソフトウェア130が処理506において出力しようとしたDMA読み出し起動のI/Oコマンド2の内容と,ソフトウェア131が処理516において出力しようとしたDMA読み出し起動のI/Oコマンド2の内容を比較する。   In the hypervisor 133, the contents of the DMA read start I / O command 2 that the software 130 tried to output in the process 506 in the process 564 and the DMA read start I / O command 2 that the software 131 tried to output in the process 516. Compare the contents of.

次に,処理565において,I/Oデータ比較部146の要求送信部147を通じて,I/Oスイッチ104の要求受信部116に対して,I/Oデータ出力イベント通知191と,I/Oデータバッファ114の物理アドレス情報192,I/Oデータバッファ115の物理アドレス情報193を送信する。   Next, in processing 565, the I / O data output event notification 191 and the I / O data buffer are sent to the request receiving unit 116 of the I / O switch 104 through the request transmitting unit 147 of the I / O data comparing unit 146. The physical address information 192 of 114 and the physical address information 193 of the I / O data buffer 115 are transmitted.

I/Oスイッチ104のDMA読み出し部301と,I/Oデータバッファ比較部302は,ハイパバイザ133の処理565を契機として,動作571でI/Oデータ比較を開始し,動作572で,ソフトウェア130が処理504,505でI/Oデータバッファ114に書き込んだI/Oデータ1,2と,ソフトウェア131が処理514,515でI/Oデータバッファ115に書き込んだI/O1,2を読み込んで比較し,動作573のI/Oデータ比較終了する。   The DMA reading unit 301 and the I / O data buffer comparison unit 302 of the I / O switch 104 start I / O data comparison in operation 571 triggered by the processing 565 of the hypervisor 133, and in operation 572, the software 130 The I / O data 1 and 2 written to the I / O data buffer 114 in processes 504 and 505 and the I / O 1 and 2 written in the I / O data buffer 115 by the software 131 in processes 514 and 515 are read and compared. , The I / O data comparison of operation 573 is completed.

ハイパバイザ133は,処理566において,I/Oデータ比較部146の応答受信部148を通じて,I/Oスイッチ104の応答送信部117から,比較結果194を受信し,一致していれば,処理567において,DMA読み出し起動のI/Oコマンド2を出力する。   In step 566, the hypervisor 133 receives the comparison result 194 from the response transmission unit 117 of the I / O switch 104 through the response reception unit 148 of the I / O data comparison unit 146. , DMA read start I / O command 2 is output.

ここでも,図4で説明したVMの同期処理のみでは,仮想計算機122の処理406において即座に出力されていた,DMA読み出し起動のI/Oコマンド2が,図5に示した本実施例の処理では,仮想計算機122での処理506,仮想計算機123での処理516を契機として,ハイパバイザ132,133,およびI/Oスイッチ104のDMA読み出し部301と,I/Oデータバッファ比較部302によって比較され,処理567でI/Oコマンド2が出力されることに注目されたい。   Here, the DMA read activation I / O command 2 that was immediately output in the process 406 of the virtual machine 122 only by the VM synchronization process described in FIG. 4 is the process of the present embodiment shown in FIG. Then, with the processing 506 in the virtual computer 122 and the processing 516 in the virtual computer 123 as a trigger, the hypervisors 132 and 133 and the DMA read unit 301 of the I / O switch 104 and the I / O data buffer comparison unit 302 compare them. Note that the I / O command 2 is output in the process 567.

また,ここまでのソフトウェア131の動作,具体的には,処理563の直後から開始され,処理514,515を実行し,処理516で中断されるまでの間の動作は,ソフトウェア130の,処理558の後から開始され,処理504,505を実行し,処理506で中断されるまでの間の動作と同一である。   The operation of the software 131 so far, specifically, the operation starting from immediately after the process 563, executing the processes 514 and 515 and being interrupted by the process 516, is performed by the process 130 of the software 130. This operation is the same as the operation from the start of the process until the process 504, 505 is executed and the process is interrupted in the process 506.

図6は,本実施例における、ハイパバイザによるVMの同期,およびI/Oイベント出力比較処理の流れのうち,特に,プロセッサ故障が発生して,図5に示したプロセッサ故障発生しないケースでの処理502において出力されようとするI/Oコマンド1が,変化した場合の流れを示す図である。   FIG. 6 shows the processing in the case where a processor failure occurs and the processor failure does not occur as shown in FIG. 5 in the flow of VM synchronization and I / O event output comparison processing by the hypervisor in this embodiment. It is a figure which shows the flow when the I / O command 1 which is going to be output in 502 changes.

この例では,ソフトウェア130は,非同期事象681が物理計算機120に入力されて処理601でそれを受理し,その後,処理602でI/Oコマンド1を出力するが,プロセッサ故障621が発生し,処理602で出力されるI/Oコマンド1が誤ったコマンドに変化する。   In this example, the software 130 inputs the asynchronous event 681 to the physical computer 120 and accepts it in the process 601, and then outputs the I / O command 1 in the process 602. However, the processor failure 621 occurs and the process 130 The I / O command 1 output at 602 changes to an incorrect command.

ソフトウェア130の動作のうち,非同期事象の受理である処理601,およびI/Oコマンドの出力である処理602については,前述と同様,ハイパバイザ132への遷移が発生する。   Among the operations of the software 130, the processing 601 that is acceptance of an asynchronous event and the processing 602 that is the output of an I / O command cause a transition to the hypervisor 132 as described above.

物理計算機120に非同期事象681が入力されると,処理601でそれを受理して,ハイパバイザ132に遷移し,ハイパバイザ132が,処理651で,受理した非同期事象681の情報と,それを受理した際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   When the asynchronous event 681 is input to the physical computer 120, it is received in the process 601 and transitions to the hypervisor 132. When the hypervisor 132 receives the information of the received asynchronous event 681 in the process 651, Information on the execution position of the software 130 is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ソフトウェア130の処理602で,I/Oコマンド1出力が実行されようとすると,ハイパバイザ132に遷移し,ハイパバイザ132が,処理653で,ソフトウェア130が実行しようとしたI/Oコマンド1の内容と,その際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   When the I / O command 1 output is to be executed in the process 602 of the software 130, the process transits to the hypervisor 132, and the hypervisor 132, in the process 653, the contents of the I / O command 1 that the software 130 attempted to execute, Information on the execution position of the software 130 at that time is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ここで,処理653において送信されるI/Oコマンド1の内容は,プロセッサ故障621の影響によって,本来出力されるべきI/Oコマンド1の内容とは異なっていることに留意されたい。   Here, it should be noted that the content of the I / O command 1 transmitted in the process 653 is different from the content of the I / O command 1 that should be output due to the influence of the processor failure 621.

ハイパバイザ133は,ハイパバイザ132が処理651で送信した,非同期事象681の情報と,それを受理した際のソフトウェア130の実行位置の情報を,処理652において受信する。   In step 652, the hypervisor 133 receives information on the asynchronous event 681 transmitted by the hypervisor 132 in step 651 and information on the execution position of the software 130 when the hypervisor 132 receives the information.

また,ハイパバイザ133は,ハイパバイザ132が処理653で送信した,ソフトウェア130の処理602で実行されようとした,本来の内容とは異なるI/Oコマンド1の内容と,その際のソフトウェア130の実行位置の情報を,処理654において受信する。   Further, the hypervisor 133 transmits the contents of the I / O command 1 which is different from the original contents and is executed by the process 1302 of the software 130 transmitted by the hypervisor 132 in the process 653 and the execution position of the software 130 at that time. Is received in processing 654.

ハイパバイザ133は,処理655で,処理652にて受信した非同期事象681の情報から,仮想的な非同期事象691を設定し,あたかも仮想計算機123に非同期事象691が入力され,それを受理し,ソフトウェア131内の遷移が発生したかのように,ソフトウェア131に遷移する。   In step 655, the hypervisor 133 sets a virtual asynchronous event 691 from the information of the asynchronous event 681 received in step 652, as if the asynchronous event 691 is input to the virtual machine 123, receives it, and the software 131. Transitions to the software 131 as if the transitions in FIG.

ソフトウェア131に遷移すると,ソフトウェア131は,非同期事象681が入力された後のソフトウェア130の動作と同一の動作を行うため,処理612において,プロセッサ故障621が発生しなかった場合に,ソフトウェア130が処理602において出力しようとしたI/Oコマンド1と同一のI/Oコマンドを出力しようとし,ハイパバイザ133の働きにより,実際には出力されず,ハイパバイザ133への遷移が発生する。   When the transition to the software 131 is performed, the software 131 performs the same operation as the operation of the software 130 after the asynchronous event 681 is input. Therefore, when the processor failure 621 does not occur in the processing 612, the software 130 performs processing. In step 602, the same I / O command as the I / O command 1 to be output is to be output. Due to the action of the hypervisor 133, the output is not actually output, but a transition to the hypervisor 133 occurs.

ここで,処理612においてソフトウェア131が出力しようとするI/Oコマンド1の内容は,本来出力されるべきI/Oコマンド1の内容であることに留意されたい。   Here, it should be noted that the content of the I / O command 1 that the software 131 intends to output in the process 612 is the content of the I / O command 1 that should be output.

ハイパバイザ133では,処理656において,ソフトウェア130が処理602において出力しようとした,本来の内容とは異なるI/Oコマンド1と,ソフトウェア131が処理612において出力しようとした本来のI/Oコマンド1の内容を比較し,不一致を発見する。   In the hypervisor 133, in the process 656, the I / O command 1 that is different from the original content that the software 130 tried to output in the process 602 and the original I / O command 1 that the software 131 tried to output in the process 612 Compare the contents and find inconsistencies.

その後,ハイパバイザ133は,処理657において,イベント送信チャネル160を通じて,ハイパバイザ132にVM停止通知を送信し,処理659においてI/Oコマンド1の出力を抑止し,以後,仮想計算機123の回復処理に入る。また,ハイパバイザ132は,処理658において,イベント送信チャネル160を通じて,ハイパバイザ133からVM停止通知を受信し,以後,仮想計算機122の回復処理に入る。なお、この回復処理としては、例えば自己診断等の処理が挙げられる。   Thereafter, the hypervisor 133 transmits a VM stop notification to the hypervisor 132 through the event transmission channel 160 in the process 657, suppresses the output of the I / O command 1 in the process 659, and thereafter enters the recovery process of the virtual machine 123. . In step 658, the hypervisor 132 receives a VM stop notification from the hypervisor 133 through the event transmission channel 160, and thereafter enters the recovery process of the virtual machine 122. Examples of the recovery process include a process such as self-diagnosis.

図7は,本実施例における、ハイパバイザによるVMの同期,およびI/Oイベント出力比較処理の流れのうち,特に,プロセッサ故障が発生して,図5に示したプロセッサ故障が発生しないケースでの処理505において出力されようとするI/Oデータ2が,変化した場合の流れを示す図である。   FIG. 7 shows a case where a processor failure occurs and the processor failure shown in FIG. 5 does not occur in the flow of VM synchronization and I / O event output comparison processing by the hypervisor in this embodiment. It is a figure which shows the flow when the I / O data 2 which is going to be output in the process 505 changes.

この例では,ソフトウェア130は,非同期事象782が物理計算機120に入力されて処理703でそれを受理し,その後,処理704でI/Oデータ1をメモリに書き込み,処理705でI/Oデータ2をメモリに書き込むが,プロセッサ故障721が発生し,処理705で書き込まれるI/Oデータ2は誤ったデータに変化しており,その後に,処理706でDMA読み出し起動のI/Oコマンド2を出力する動作を行っている。   In this example, the software 130 inputs the asynchronous event 782 to the physical computer 120 and accepts it in the process 703, then writes the I / O data 1 to the memory in the process 704, and then writes the I / O data 2 in the process 705. Is written in the memory, but the processor failure 721 has occurred, and the I / O data 2 written in the process 705 has changed to an incorrect data, and then the I / O command 2 for starting DMA read is output in the process 706 The operation to be performed.

ソフトウェア130の動作のうち,非同期事象の受理である処理703,およびI/Oコマンドの出力である処理706については,前述と同様,ハイパバイザ132への遷移が発生する。   Among the operations of the software 130, the process 703 that is an asynchronous event acceptance and the process 706 that is the output of the I / O command cause a transition to the hypervisor 132 as described above.

物理計算機120に非同期事象782が入力されると,処理703でそれを受理して,ハイパバイザ132に遷移し,ハイパバイザ132が,処理758で,受理した非同期事象782の情報と,それを受理した際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   When an asynchronous event 782 is input to the physical computer 120, it is received in process 703 and transitioned to the hypervisor 132. When the hypervisor 132 receives the information of the received asynchronous event 782 in process 758, Information on the execution position of the software 130 is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ハイパバイザ133は,ハイパバイザ132が処理758で送信した,非同期事象782の情報と,それを受理した際のソフトウェア130の実行位置の情報を,処理759において受信する。   In step 759, the hypervisor 133 receives information on the asynchronous event 782 transmitted by the hypervisor 132 in step 758 and information on the execution position of the software 130 when the hypervisor 132 has received the information.

ハイパバイザ133は,処理760で,処理759にて受信した,非同期事象782を受理した際のソフトウェア130の実行位置の情報から,その位置でソフトウェア131の実行が停止し,ハイパバイザ133への遷移が発生するように物理計算機121を設定して,ソフトウェア131に遷移する。   In step 760, the hypervisor 133 stops the execution of the software 131 at the position from the information on the execution position of the software 130 received in the process 759 when the asynchronous event 782 is received, and a transition to the hypervisor 133 occurs. Then, the physical computer 121 is set so as to shift to the software 131.

ソフトウェア131に遷移すると,ソフトウェア131は,ソフトウェア130の処理703までの動作と同一の動作を行い,やがて,ハイパバイザ133が,処理760において物理計算機121に設定した停止位置に到達し,処理713において,ハイパバイザ133への遷移が発生する。   When transitioning to the software 131, the software 131 performs the same operation as the processing up to the processing 703 of the software 130, and eventually the hypervisor 133 reaches the stop position set in the physical computer 121 in the processing 760, and in the processing 713, A transition to the hypervisor 133 occurs.

一方,ソフトウェア130は,ハイパバイザ132の処理758の後に処理を継続しており,処理704でI/Oデータ1をメモリに書き込み,処理705でI/Oデータ2をメモリに書き込み,処理706において,DMA読み出し起動のI/Oコマンド2の出力が実行されようとすると,ハイパバイザ132に遷移し,ハイパバイザ132が,処理761で,ソフトウェア130が実行しようとしたI/Oコマンド2の内容と,その際のソフトウェア130の実行位置の情報を,イベント送信チャネル160を通じてハイパバイザ133に送信し,ソフトウェア130に遷移する。   On the other hand, the software 130 continues processing after processing 758 of the hypervisor 132, writes I / O data 1 to the memory in processing 704, writes I / O data 2 to the memory in processing 705, and in processing 706, When the output of the DMA read start I / O command 2 is to be executed, the state transits to the hypervisor 132, and the hypervisor 132 is the process 761, and the contents of the I / O command 2 that the software 130 is going to execute and at that time Information on the execution position of the software 130 is transmitted to the hypervisor 133 through the event transmission channel 160, and the software 130 is transitioned to.

ここで,処理705によってメモリに書き込まれるI/Oデータ2の内容は,プロセッサ故障721の影響によって,本来書き込まれるべきI/Oデータ2の内容とは異なっていることに留意されたい。   Here, it should be noted that the content of the I / O data 2 written to the memory by the processing 705 is different from the content of the I / O data 2 that should be originally written due to the influence of the processor failure 721.

ハイパバイザ133は,ハイパバイザ132が処理761で送信した,ソフトウェア130の処理706で実行されようとしたDMA読み出し起動のI/Oコマンド2の内容と,その際のソフトウェア130の実行位置の情報を,処理762において受信する。   The hypervisor 133 processes the contents of the DMA read activation I / O command 2 transmitted by the hypervisor 132 in process 761 to be executed in the process 706 of the software 130 and the execution position information of the software 130 at that time. Receive at 762.

ハイパバイザ133は,処理763で,処理759にて受信した非同期事象782の情報から,仮想的な非同期事象792を設定し,あたかも仮想計算機123に非同期事象792が入力され,それを受理し,ソフトウェア131内の遷移が発生したかのように,ソフトウェア131に遷移する。   In step 763, the hypervisor 133 sets a virtual asynchronous event 792 from the information of the asynchronous event 782 received in step 759, as if the asynchronous event 792 is input to the virtual machine 123, receives it, and the software 131. Transitions to the software 131 as if the transitions in FIG.

ソフトウェア131に遷移すると,ソフトウェア131は,非同期事象782が入力された後のソフトウェア130の動作と同一の動作を行うため,処理714と715において,プロセッサ故障721が発生しなかった場合に,ソフトウェア130が処理704と705においてメモリに書き込むI/Oデータ1,2と同一のI/Oデータをメモリに書き込む。   When the transition is made to the software 131, the software 131 performs the same operation as the operation of the software 130 after the asynchronous event 782 is input. Therefore, if the processor failure 721 does not occur in the processing 714 and 715, the software 130 In the processes 704 and 705, the same I / O data as the I / O data 1 and 2 written to the memory is written to the memory.

ここで,処理715においてソフトウェア131がメモリに書き込むI/Oデータ2の内容は,本来書き込まれるべきI/Oデータ2の内容であることに留意されたい。   Here, it should be noted that the content of the I / O data 2 that the software 131 writes to the memory in the process 715 is the content of the I / O data 2 that should be originally written.

その後に,ソフトウェア131は,処理716において,ソフトウェア130が処理706において出力しようとした,DMA読み出し起動のI/Oコマンド2と同一のI/Oコマンドを出力しようとするが,ハイパバイザ133の働きにより,実際には出力されず,ハイパバイザ133への遷移が発生する。   After that, the software 131 tries to output the same I / O command as the DMA read start I / O command 2 that the software 130 tried to output in the process 706 in the process 716, but the hypervisor 133 works. , But not actually output, a transition to the hypervisor 133 occurs.

ハイパバイザ133では,処理764において,ソフトウェア130が処理706において出力しようとしたDMA読み出し起動のI/Oコマンド2の内容と,ソフトウェア131が処理716において出力しようとしたDMA読み出し起動のI/Oコマンド2の内容を比較する。   In the hypervisor 133, the contents of the DMA read start I / O command 2 that the software 130 tried to output in the process 706 in the process 764 and the DMA read start I / O command 2 that the software 131 tried to output in the process 716. Compare the contents of.

次に,処理765において,I/Oデータ比較部146の要求送信部147を通じて,I/Oスイッチ104の要求受信部116に対して,I/Oデータ出力イベント通知191と,I/Oデータバッファ114の物理アドレス情報192,I/Oデータバッファ115の物理アドレス情報193を送信する。   Next, in processing 765, the I / O data output event notification 191 and the I / O data buffer are sent to the request receiving unit 116 of the I / O switch 104 through the request transmitting unit 147 of the I / O data comparing unit 146. The physical address information 192 of 114 and the physical address information 193 of the I / O data buffer 115 are transmitted.

I/Oスイッチ104のDMA読み出し部301と,I/Oデータバッファ比較部302は,ハイパバイザ133の処理765を契機として,動作771でI/Oデータ比較を開始し,動作772で,ソフトウェア130が処理704,705でI/Oデータバッファ114に書き込んだI/Oデータ1,2と,ソフトウェア131が処理714,715でI/Oデータバッファ115に書き込んだI/O1,2を読み込んで比較し,不一致を発見して,動作773でI/Oデータ比較終了し,結果を送信する。   The DMA read unit 301 and the I / O data buffer comparison unit 302 of the I / O switch 104 start I / O data comparison in operation 771 triggered by the processing 765 of the hypervisor 133. In operation 772, the software 130 The I / O data 1 and 2 written to the I / O data buffer 114 in processes 704 and 705 and the I / O 1 and 2 written in the I / O data buffer 115 by the software 131 in processes 714 and 715 are read and compared. , A mismatch is found, the I / O data comparison ends in operation 773, and the result is transmitted.

ハイパバイザ133は,処理766において,I/Oデータ比較部146の応答受信部148を通じて,I/Oスイッチ104の応答送信部117から,比較結果194を受信し,不一致であるため,処理767において,イベント送信チャネル160を通じて,ハイパバイザ132にVM停止通知を送信し,以後,仮想計算機123の上述した回復処理に入る。   In step 766, the hypervisor 133 receives the comparison result 194 from the response transmission unit 117 of the I / O switch 104 through the response reception unit 148 of the I / O data comparison unit 146. A VM stop notification is transmitted to the hypervisor 132 through the event transmission channel 160, and thereafter, the above-described recovery processing of the virtual machine 123 is entered.

また,ハイパバイザ132は,処理768において,イベント送信チャネル160を通じて,ハイパバイザ133からVM停止通知を受信し,以後,仮想計算機122の上述した回復処理に入る。
図8は,本実施例における、仮想化制御部であるハイパバイザ133内の物理アドレス変換部152の処理フローである。
In step 768, the hypervisor 132 receives the VM stop notification from the hypervisor 133 through the event transmission channel 160, and thereafter enters the above-described recovery processing of the virtual machine 122.
FIG. 8 is a processing flow of the physical address translation unit 152 in the hypervisor 133 which is a virtualization control unit in this embodiment.

物理アドレス変換部152は,前述の通り,I/Oデータ出力イベント仮想アドレス情報211,212を入力として受け取り,I/Oデータ出力イベント物理アドレス情報231,232を出力する。   As described above, the physical address conversion unit 152 receives the I / O data output event virtual address information 211 and 212 as inputs and outputs the I / O data output event physical address information 231 and 232.

ここで,ステップ801に始まり,ステップ820で終わる一連の処理は,1回の処理実行で,1個のI/Oデータ出力イベント仮想アドレス情報の入力に対して,1個のI/Oデータ出力イベント物理アドレス情報の出力を得るものであり,211,212の2個のI/Oデータ出力イベント仮想アドレス情報の入力に対しては,2回処理が実行されることに注意されたい。   Here, a series of processes starting at step 801 and ending at step 820 is a single process execution, and one I / O data output event is output for one input of I / O data output event virtual address information. Note that the event physical address information is output, and two processes are executed for the input of two I / O data output event virtual address information 211 and 212.

入力であるI/Oデータ出力イベント仮想アドレス情報は,具体的には,複数の,仮想アドレスでの開始アドレスとサイズの対で表現されるが,ここでは,対の個数をVblkmax,iを0からVblkmax−1までの間の値として,i番目の開始アドレスとサイズを,それぞれ,Vblkstart[i],Vblksize[i]と表記する。   Specifically, the input I / O data output event virtual address information is expressed by a plurality of pairs of start address and size in the virtual address. Here, the number of pairs is Vblkmax, and i is 0. The i-th start address and the size are expressed as Vblkstart [i] and Vblksize [i], respectively, as values between 1 and Vblkmax−1.

また,出力であるI/Oデータ出力イベント物理アドレス情報は,複数の,物理アドレスでの開始アドレスとサイズの対で表現されるが,ここでは,対の個数をPblkmax,iを0からPblkmax−1までの間の値として,i番目の開始アドレスとサイズを,それぞれ,Pblkstart[i],Pblksize[i]と表記する。   The output I / O data output event physical address information is represented by a plurality of pairs of start addresses and sizes of physical addresses. Here, the number of pairs is Pblkmax, and i is from 0 to Pblkmax−. As the values between 1, the i-th start address and the size are expressed as Pblkstart [i] and Pblksize [i], respectively.

ステップ801,802は初期設定であり,Vblk,Pblkは,それぞれ,現在,何番目のI/Oデータ出力イベント仮想アドレス情報対,物理アドレス情報対の処理を進めているかを表す変数であり,tmpPblkstとtmpPblkszは,現在処理を進めている物理アドレス情報対のテンポラリ変数である。   Steps 801 and 802 are initial settings, and Vblk and Pblk are variables indicating the current I / O data output event virtual address information pair and physical address information pair, respectively, and tmpPblkst And tmpPblksz are temporary variables of the physical address information pair currently being processed.

ステップ803は,新しいI/Oデータ出力イベント仮想アドレス情報対に処理を進める度に行われる初期設定で,Vblkstart[Vblk]とVblksize[Vblk]を,テンポラリ変数であるtmpVblkstとtmpVblkszに,それぞれ格納している。   In step 803, Vblkstart [Vblk] and Vblksize [Vblk] are stored in the temporary variables tmpVblkst and tmpVblksz, respectively, as initial settings that are made each time processing proceeds to a new I / O data output event virtual address information pair. ing.

ステップ804からは,1個のI/Oデータ出力イベント仮想アドレス情報対の範囲の処理が終わるまで繰り返される処理である。ステップ804では,tmpVblkstの仮想アドレスに対応する仮想ページ番号(Vpnum),ページ先頭からのオフセット(offset),ページサイズ(pagesize)を求めている。   From step 804, the processing is repeated until the processing of the range of one I / O data output event virtual address information pair is completed. In step 804, the virtual page number (Vpnum) corresponding to the virtual address of tmpVblkst, the offset from the page head (offset), and the page size (pagesize) are obtained.

ステップ805,806,807では,今回のVpnumに対応する物理ページ番号(Ppnum)への変換処理で,tmpVblkstとtmpVblkszの仮想アドレス情報対が表す領域のうち,変換対象となった部分のサイズ(size)を算出している。pagesizeからoffsetを引いた分が変換対象となり得る部分のサイズだが,ステップ805にて比較処理を行い,tmpVblkszが小さいならば,ステップ807に分岐し,sizeをtmpVblkszとする。等しいか大きいならば,sizeはpagesize−offsetとする。   In steps 805, 806, and 807, the size (size) of the portion to be converted in the area represented by the virtual address information pair of tmpVblkst and tmpVblksz in the conversion process to the physical page number (Ppnum) corresponding to the current Vpnum. ). The size obtained by subtracting offset from pagesize is the size of the portion that can be converted, but comparison processing is performed in step 805. If tmpVblksz is small, the process branches to step 807, and size is set to tmpVblksz. If they are equal or greater, size is pagesize-offset.

ステップ808では,Vpnumに対応するPpnumを求めているが,この処理は,アドレス変換部143を呼び出すことで行っている。   In step 808, Ppnum corresponding to Vpnum is obtained, but this processing is performed by calling the address conversion unit 143.

ステップ809では,Ppnumの物理ページの先頭アドレスにoffsetを加算して,変換対象となった物理アドレスの領域の先頭アドレス(Pstart)を求めている。   In step 809, offset is added to the top address of the physical page of Ppnum to obtain the top address (Pstart) of the physical address area to be converted.

ステップ810から815では,今回変換対象となった物理アドレスの領域から,前回までの変換処理の結果が反映されているtmpPblkst,tmpPblkszを更新する処理を行っている。   In steps 810 to 815, the process of updating tmpPblkst and tmpPblksz reflecting the result of the previous conversion process is performed from the physical address area to be converted this time.

ステップ811への分岐のケースは,初回の処理の場合で,Pblkに1を加算し,tmpPblkst,tmpPblkszにはそれぞれ,Pstart,sizeをそのまま格納している。
ステップ813への分岐のケースは,前回までの変換処理の物理アドレスの領域の末尾と,今回変換対象となった物理アドレス領域の先頭が一致している場合で,この場合はtmpPblkszにsizeを加算している。
The case of branching to step 811 is the case of the first processing, in which 1 is added to Pblk, and Pstart and size are stored as they are in tmpPblkst and tmpPblksz, respectively.
The case of branching to step 813 is when the end of the physical address area of the previous conversion process and the start of the physical address area to be converted this time match. In this case, add size to tmpPblksz doing.

ステップ814,815への分岐のケースは,前回までの変換処理の物理アドレスの領域の末尾と,今回変換対象となった物理アドレス領域の先頭が一致していない場合で,この場合は,ステップ814で前回までの変換結果を,Pblk番目のI/Oデータ出力イベント物理アドレス情報対に格納し,ステップ815でPblkに1を加算した上で,tmpPblkst,tmpPblkszにはそれぞれ,Pstart,sizeをそのまま格納している。   The case of branching to steps 814 and 815 is the case where the end of the physical address area of the previous conversion process and the start of the physical address area that is the current conversion target do not match. In this case, step 814 The previous conversion results are stored in the Pblk-th I / O data output event physical address information pair, 1 is added to Pblk in step 815, and Pstart and size are stored as they are in tmpPblkst and tmpPblksz, respectively. doing.

ステップ816では,今回変換対象となった部分をtmpVblkstとtmpVblkszの仮想アドレス情報対が表す領域から除く処理を行っている。具体的には,tmpVblkstにsizeを加算し,tmpVblkszからsizeを減算している。   In step 816, a process for removing the part to be converted this time from the area represented by the virtual address information pair of tmpVblkst and tmpVblksz is performed. Specifically, size is added to tmpVblkst, and size is subtracted from tmpVblksz.

ステップ817では,tmpVblkstとtmpVblkszの仮想アドレス情報対が表す領域が全て変換されたかを判定している。tmpVblkszが0より大きい場合は,まだ変換する部分が残っているため,ステップ804に戻る。   In step 817, it is determined whether or not the entire area represented by the virtual address information pair of tmpVblkst and tmpVblksz has been converted. If tmpVblksz is greater than 0, there is still a portion to be converted, and the process returns to step 804.

ステップ818では,次のI/Oデータ出力イベント仮想アドレス情報対に処理を進めている。Vblkに1を加算している。   In step 818, the process proceeds to the next I / O data output event virtual address information pair. 1 is added to Vblk.

ステップ819では,全てのI/Oデータ出力イベント仮想アドレス情報対が処理されたかを判定しており,VblkがVblkmaxと等しいか大きい場合は,まだ変換する仮想アドレス情報対が残っているため,ステップ803に戻る。   In step 819, it is determined whether all the I / O data output event virtual address information pairs have been processed. If Vblk is equal to or larger than Vblkmax, there are still virtual address information pairs to be converted. Return to 803.

ステップ820では,最後の変換結果をPblk番目のI/Oデータ出力イベント物理アドレス情報対に格納し,Pblkの値をPblkmaxに格納している。   In step 820, the last conversion result is stored in the Pblk-th I / O data output event physical address information pair, and the value of Pblk is stored in Pblkmax.

以上のように,ハイパバイザ132が,物理計算機120に入力される非同期事象について,その事象の情報と,それによって引き起こされたソフトウェア130の遷移の情報をハイパバイザ133に送信し,ハイパバイザ133が,その情報をもとに,ソフトウェア131にもその非同期事象を再現することに加えて,さらに,ハイパバイザ132が,ソフトウェア130のI/Oイベントの情報をハイパバイザ133に送信し,ハイパバイザ133が,その情報と,ソフトウェア131のI/Oイベントの情報を比較することによって,VMを同期実行しつつ,I/Oイベント出力比較処理を行い,プロセッサ故障を検出することが可能となる。   As described above, for the asynchronous event input to the physical computer 120, the hypervisor 132 transmits information on the event and information on the transition of the software 130 caused by the event to the hypervisor 133, and the hypervisor 133 transmits the information. In addition to reproducing the asynchronous event in the software 131, the hypervisor 132 further transmits information on the I / O event of the software 130 to the hypervisor 133, and the hypervisor 133 By comparing the I / O event information of the software 131, it is possible to detect a processor failure by performing an I / O event output comparison process while executing VMs synchronously.

図9は,第二の実施例の全体構成を示す図である。実施例1においては、系A,Bからなるコンピュータシステムについて説明したが、本実施例は系A,B,Cからなるコンピュータシステムの実施例である。左側が系Aを構成する物理計算機A、中央が系Bを構成する物理計算機B、右側が系Cを構成する物理計算機Cを示しているが、図面より明らかなため、以後の説明において、系A,B,Cの表記は省略する。   FIG. 9 is a diagram showing the overall configuration of the second embodiment. In the first embodiment, the computer system including the systems A and B has been described. However, the present embodiment is an embodiment of the computer system including the systems A, B, and C. The left side shows the physical computer A constituting the system A, the center shows the physical computer B constituting the system B, and the right side shows the physical computer C constituting the system C. The notation of A, B, and C is omitted.

同図において、900,901,902はプロセッサ,903,904,905はメモリ,908,909はI/Oデバイスであり,915,916,917は,プロセッサ,メモリ,I/Oデバイスによって構成される物理計算機である。   In the figure, 900, 901 and 902 are processors, 903, 904 and 905 are memories, 908 and 909 are I / O devices, and 915, 916 and 917 are constituted by processors, memories and I / O devices. It is a physical computer.

プロセッサ900,901,902とI/Oデバイス908,909がI/Oスイッチ907を介して接続されることにより,物理計算機とI/Oデバイスの間は接続が共有されており,プロセッサ900,メモリ903,I/Oスイッチ907により,物理計算機915が,プロセッサ901,メモリ904,I/Oスイッチ907により,物理計算機916が,プロセッサ902,メモリ905,I/Oスイッチ907により,物理計算機917がそれぞれ構成され,I/Oデバイス908,909は物理計算機915,916,917と接続される。   By connecting the processors 900, 901, 902 and the I / O devices 908, 909 via the I / O switch 907, the connection between the physical computer and the I / O device is shared, and the processor 900, memory 903, an I / O switch 907, a physical computer 915, a processor 901, a memory 904, an I / O switch 907, a physical computer 916, a processor 902, a memory 905, and an I / O switch 907, respectively. The I / O devices 908 and 909 are connected to physical computers 915, 916, and 917.

910,911,912はPCI Express Busによる物理的な接続であり,プロセッサ900,901,902,メモリ903,904,905とI/Oスイッチ907が,PCI Express Bus910によって,また,I/Oスイッチ907とI/Oデバイス908がPCI Express Bus911によって,さらに,I/Oスイッチ907とI/Oデバイス909がPCI Express Bus912によって,それぞれ接続されている。   910, 911, and 912 are physical connections by PCI Express Bus, and the processors 900, 901, 902, memories 903, 904, and 905 and the I / O switch 907 are connected by the PCI Express Bus 910 and the I / O switch 907. And the I / O device 908 are connected by a PCI Express Bus 911, and the I / O switch 907 and the I / O device 909 are connected by a PCI Express Bus 912, respectively.

936,937,938はハイパバイザのプログラムであり,物理計算機915,916,917でそれぞれ動作することにより,VM930,931,932が生成される。   936, 937, and 938 are hypervisor programs, and VMs 930, 931, and 932 are generated by operating on the physical computers 915, 916, and 917, respectively.

メモリ903は,ハイパバイザ936の働きにより,VM930が利用するメモリ領域920と,ハイパバイザ936が利用するメモリ領域923に分割される。このとき,VM930でのアドレス空間と,物理計算機915でのアドレス空間の対応は,ハイパバイザ936内の,特にアドレス変換部941よって管理される。   The memory 903 is divided into a memory area 920 used by the VM 930 and a memory area 923 used by the hypervisor 936 by the action of the hypervisor 936. At this time, the correspondence between the address space in the VM 930 and the address space in the physical computer 915 is managed by the address conversion unit 941 in the hypervisor 936 in particular.

同様に,メモリ904は,ハイパバイザ937の働きにより,VM931が利用するメモリ領域921と,ハイパバイザ937が利用するメモリ領域924に分割され,VM931でのアドレス空間と,物理計算機916でのアドレス空間の対応は,ハイパバイザ937内のアドレス変換部943によって管理され,メモリ905は,ハイパバイザ938の働きにより,VM932が利用するメモリ領域922と,ハイパバイザ938が利用するメモリ領域925に分割され,VM932でのアドレス空間と,物理計算機917でのアドレス空間の対応は,ハイパバイザ938内のアドレス変換部945によって管理される。   Similarly, the memory 904 is divided into a memory area 921 used by the VM 931 and a memory area 924 used by the hypervisor 937 by the action of the hypervisor 937. Correspondence between the address space in the VM 931 and the address space in the physical computer 916 Is managed by the address conversion unit 943 in the hypervisor 937, and the memory 905 is divided into a memory area 922 used by the VM 932 and a memory area 925 used by the hypervisor 938 by the action of the hypervisor 938, and the address space in the VM 932 The address space correspondence in the physical computer 917 is managed by the address conversion unit 945 in the hypervisor 938.

VM930,931,932内においては,それぞれ,ソフトウェア933,934,935が動作するが,ハイパバイザ936の同期処理部940から,ハイパバイザ937の同期処理部942に,イベント送信チャネル957を通じて情報が送信され,また,ハイパバイザ936の同期処理部940から,ハイパバイザ938の同期処理部944に,イベント送信チャネル958を通じて情報が送信されることにより,ソフトウェア933,934,935の動作は,ソフトウェアレベルで同一である。   Software 933, 934, and 935 operate in the VMs 930, 931, and 932, respectively, but information is transmitted from the synchronization processing unit 940 of the hypervisor 936 to the synchronization processing unit 942 of the hypervisor 937 through the event transmission channel 957. Further, information is transmitted from the synchronization processing unit 940 of the hypervisor 936 to the synchronization processing unit 944 of the hypervisor 938 through the event transmission channel 958, so that the operations of the software 933, 934, and 935 are the same at the software level.

イベント送信チャネル957は,物理計算機915と916間でのデータの送受信を論理的に示したものであり,物理的には,I/Oスイッチ907を介した通信である。また,イベント送信チャネル958,959も,同様に,物理計算機915,917間,および物理計算機916,917間でのデータの送受信を論理的に示したものであり,物理的には,I/Oスイッチ907を介した通信である。   The event transmission channel 957 logically indicates transmission / reception of data between the physical computers 915 and 916 and is physically communication via the I / O switch 907. Similarly, the event transmission channels 958 and 959 logically indicate data transmission / reception between the physical computers 915 and 917 and between the physical computers 916 and 917. Physically, I / O Communication via the switch 907.

ソフトウェア933が実行されると,I/Oイベント960が発生するが,プロセッサ900が有する機構の働きにより,I/Oイベント960はハイパバイザ936にトラップされ,同期処理部940に入力される。   When the software 933 is executed, an I / O event 960 is generated. The I / O event 960 is trapped by the hypervisor 936 and input to the synchronization processing unit 940 by the function of the processor 900.

同期処理部940は,発生したI/Oイベント960の情報を,イベント送信チャネル958を通じて,ハイパバイザ938の同期処理部944に送信する。   The synchronization processing unit 940 transmits information on the generated I / O event 960 to the synchronization processing unit 944 of the hypervisor 938 through the event transmission channel 958.

また,ソフトウェア934が実行されると,I/Oイベント961が発生するが,プロセッサ901が有する機構の働きにより,I/Oイベント961はハイパバイザ937にトラップされ,同期処理部942に入力され,同期処理部942は,発生したI/Oイベント961の情報を,イベント送信チャネル959を通じて,ハイパバイザ938の同期処理部944に送信する。   When the software 934 is executed, an I / O event 961 is generated. The I / O event 961 is trapped by the hypervisor 937 and input to the synchronization processing unit 942 by the operation of the mechanism of the processor 901. The processing unit 942 transmits information on the generated I / O event 961 to the synchronization processing unit 944 of the hypervisor 938 through the event transmission channel 959.

同期処理部944は,受信したI/Oイベント960,961の情報を,ソフトウェア933,934,935の動作をソフトウェアレベルで同一にする処理に用いる他に,I/Oイベント963,964として,同じくハイパバイザ938内のI/Oイベント検出部946に出力する。   The synchronization processing unit 944 uses the received information of the I / O events 960 and 961 for processing for making the operations of the software 933, 934, and 935 the same at the software level, and also as the I / O events 963 and 964. The data is output to the I / O event detection unit 946 in the hypervisor 938.

また,ソフトウェア935の実行により発生するI/Oイベント962は,プロセッサ902が有する機構の働きにより,ハイパバイザ938にトラップされ,I/Oイベント検出部946に入力される。   Further, an I / O event 962 generated by the execution of the software 935 is trapped by the hypervisor 938 and input to the I / O event detection unit 946 by the function of the processor 902.

I/Oイベント検出部946では,VM930側のI/Oイベント963の種類を解析し,特に,I/Oコマンドを出力するイベントと,I/Oデータを出力するイベントについて,それぞれI/Oコマンド出力イベント965と,I/Oデータ出力イベント966として,I/Oイベント処理部947に出力する。   The I / O event detection unit 946 analyzes the type of the I / O event 963 on the VM 930 side, and in particular, an I / O command for an event that outputs an I / O command and an event that outputs I / O data, respectively. An output event 965 and an I / O data output event 966 are output to the I / O event processing unit 947.

また,I/Oイベント検出部946は,VM931側のI/Oイベント964の種類を解析し,I/Oコマンド出力イベント967と,I/Oデータ出力イベント968を,I/Oイベント処理部947に出力し,VM932側のI/Oイベント962の種類を解析し,I/Oコマンド出力イベント969と,I/Oデータ出力イベント970を,I/Oイベント処理部947に出力する。   Further, the I / O event detection unit 946 analyzes the type of the I / O event 964 on the VM 931 side, and outputs an I / O command output event 967 and an I / O data output event 968 as an I / O event processing unit 947. And the type of the I / O event 962 on the VM 932 side is analyzed, and the I / O command output event 969 and the I / O data output event 970 are output to the I / O event processing unit 947.

I/Oイベント処理部947は,I/Oコマンド出力イベント965,967,969について,I/Oコマンドの内容を比較し,一致していれば,I/Oスイッチ907との間で,I/Oコマンド990として送受信を行う。   The I / O event processing unit 947 compares the contents of the I / O command with respect to the I / O command output events 965, 967, and 969. Transmission / reception is performed as an O command 990.

I/Oスイッチ907は,I/Oコマンド990を,その送受信先に応じて,I/Oデバイス908,あるいはI/Oデバイス909に,それぞれI/Oコマンド981,982として送受信することにより,I/Oコマンド出力イベント965,967,969は,I/Oデバイス908,あるいは909に出力される。   The I / O switch 907 transmits / receives the I / O command 990 to the I / O device 908 or the I / O device 909 as I / O commands 981 and 982 according to the transmission / reception destination, respectively. The / O command output events 965, 967, and 969 are output to the I / O device 908 or 909.

また,I/Oイベント処理部947は,I/Oデータ出力イベント966,968,970について,I/Oデータの内容を比較し,その結果に基づいて,I/Oコマンド990として,I/Oデバイス908,あるいは909のDMAに読み出しコマンドを送信する。   Further, the I / O event processing unit 947 compares the contents of the I / O data for the I / O data output events 966, 968, and 970, and based on the result, the I / O command 990 is used as the I / O command 990. A read command is transmitted to the DMA of the device 908 or 909.

I/Oデータ出力イベント966でのI/Oデータは,ソフトウェア933のI/Oデータ書き込み971によって,I/Oデータ出力イベント966に先立って,VM930が利用するメモリ領域920内の,I/Oデータバッファ926に書き込まれている。   The I / O data at the I / O data output event 966 is stored in the I / O data in the memory area 920 used by the VM 930 prior to the I / O data output event 966 by the I / O data write 971 of the software 933. The data is written in the data buffer 926.

また,I/Oデータ出力イベント968でのI/Oデータは,ソフトウェア934のI/Oデータ書き込み972によって,I/Oデータ出力イベント968に先立って,VM931が利用するメモリ領域921内の,I/Oデータバッファ927に,I/Oデータ出力イベント970でのI/Oデータは,ソフトウェア935のI/Oデータ書き込み973によって,I/Oデータ出力イベント970に先立って,VM932が利用するメモリ領域922内の,I/Oデータバッファ928に,それぞれ書き込まれている。   Also, the I / O data at the I / O data output event 968 is stored in the memory area 921 used by the VM 931 prior to the I / O data output event 968 by the I / O data write 972 of the software 934. In the I / O data buffer 927, the I / O data in the I / O data output event 970 is a memory area used by the VM 932 prior to the I / O data output event 970 by the I / O data write 973 of the software 935. The data is written in the I / O data buffer 928 in the 922.

I/Oイベント処理部947には,特に,I/Oデータ出力比較部948があり,I/Oデータ出力イベント966の情報から,I/Oデータバッファ926のVM930のアドレス空間でのアドレスを特定し,さらに,VM930のアドレス空間でのアドレスから,物理計算機915のアドレス空間でのアドレスに変換する。   In particular, the I / O event processing unit 947 includes an I / O data output comparison unit 948, which identifies an address in the address space of the VM 930 of the I / O data buffer 926 from the information of the I / O data output event 966. Further, the address in the address space of the VM 930 is converted into an address in the address space of the physical computer 915.

同様に,I/Oデータ出力比較部948では,I/Oデータ出力イベント968の情報から,I/Oデータバッファ927のVM931のアドレス空間でのアドレスを特定し,さらに,VM931のアドレス空間でのアドレスから,物理計算機916のアドレス空間でのアドレスに変換する。   Similarly, the I / O data output comparison unit 948 specifies an address in the address space of the VM 931 of the I / O data buffer 927 from the information of the I / O data output event 968, and further, in the address space of the VM 931. The address is converted into an address in the address space of the physical computer 916.

同様に,I/Oデータ出力比較部948では,I/Oデータ出力イベント970の情報から,I/Oデータバッファ928のVM932のアドレス空間でのアドレスを特定し,さらに,VM932のアドレス空間でのアドレスから,物理計算機917のアドレス空間でのアドレスに変換する。   Similarly, the I / O data output comparison unit 948 specifies the address in the address space of the VM 932 of the I / O data buffer 928 from the information of the I / O data output event 970, and further, in the address space of the VM 932 The address is converted into an address in the address space of the physical computer 917.

続いてI/Oデータ出力比較部948は,I/Oデータ出力イベント通知991と,I/Oデータ出力イベント966に対応するI/Oデータバッファ926の物理計算機915のアドレス空間でのアドレス情報である,物理アドレス情報992と,I/Oデータ出力イベント968に対応するI/Oデータバッファ927の物理計算機916のアドレス空間でのアドレス情報である,物理アドレス情報993と,I/Oデータ出力イベント970に対応するI/Oデータバッファ928の物理計算機917のアドレス空間でのアドレス情報である,物理アドレス情報994を,I/Oスイッチ907に対する要求送信部949を通じて,I/Oスイッチ907の要求受信部913に,それぞれ送信する。   Subsequently, the I / O data output comparison unit 948 uses the I / O data output event notification 991 and the address information in the address space of the physical computer 915 of the I / O data buffer 926 corresponding to the I / O data output event 966. Physical address information 992, physical address information 993 which is address information in the address space of the physical computer 916 of the I / O data buffer 927 corresponding to the I / O data output event 968, and I / O data output event The physical address information 994, which is address information in the address space of the physical computer 917 of the I / O data buffer 928 corresponding to 970, is received by the I / O switch 907 via the request transmission unit 949 for the I / O switch 907. The data is transmitted to the unit 913.

I/Oスイッチ907の要求受信部913が,I/Oデータ出力イベント通知991,物理アドレス情報992,993,994を受信すると,I/Oスイッチ907は,I/Oデータバッファ926,927,928の内容を,それぞれDMAデータ読み出し985,986,987として,それぞれメモリ903,904,905から直接読み出して比較し,比較結果995を,I/Oデータ出力イベント比較部948への応答送信部914を通じて,I/Oデータ出力比較部948の応答受信部950に送信する。   When the request receiving unit 913 of the I / O switch 907 receives the I / O data output event notification 991, physical address information 992, 993, 994, the I / O switch 907 causes the I / O data buffers 926, 927, 928 to be received. Are read directly from the memories 903, 904, and 905 as DMA data readings 985, 986, and 987, respectively, and compared, and the comparison result 995 is sent through the response transmission unit 914 to the I / O data output event comparison unit 948. , I / O data output comparison unit 948 transmits to response reception unit 950.

ここで,I/Oコマンド990,およびI/Oデータ出力イベント通知991,物理アドレス情報992,993,994,比較結果995は,PCI Express Bus910上での,I/Oコマンド980の送受信として,同様のバスシーケンスにて実行されるものである。   Here, the I / O command 990, the I / O data output event notification 991, the physical address information 992, 993, 994, and the comparison result 995 are the same as the transmission / reception of the I / O command 980 on the PCI Express Bus 910. This is executed in the bus sequence.

また,DMAデータ読み出し985,986,987は,PCI Express Bus910上での,DMAデータ読み出し984として,同様のバスシーケンスで実行されるものである。   The DMA data read 985, 986, and 987 are executed in the same bus sequence as the DMA data read 984 on the PCI Express Bus 910.

I/Oデータ出力比較部948は,I/Oデータバッファ926,927,928の比較結果を,応答受信部950を通じて受信し,その結果に基づいて,I/Oコマンド990として,I/Oデバイス908,あるいは909に,DMA読み出しコマンドを送信する。   The I / O data output comparison unit 948 receives the comparison result of the I / O data buffers 926, 927, and 928 through the response reception unit 950, and based on the result, as an I / O command 990, an I / O device A DMA read command is transmitted to 908 or 909.

I/Oデバイス908,あるいは909が,DMA読み出しコマンドを受信すると,DMAデータ読み出し988,あるいは989として,I/Oスイッチ907に対して読み出しを行う。I/Oスイッチ907は,DMAデータ読み出し988,989を,その読み出し先に応じて,DMAデータ読み出し985,986,987として,それぞれメモリ903,904,905から読み出して,DMAデータ読み出し988,989の読み出し結果を返すことにより,結果としてI/Oデータ出力イベント966,968,970は,I/Oデバイス908,あるいは909に出力される。   When the I / O device 908 or 909 receives the DMA read command, the I / O switch 907 performs reading as the DMA data read 988 or 989. The I / O switch 907 reads the DMA data readings 988 and 989 from the memories 903, 904, and 905 as DMA data readings 985, 986, and 987 according to the reading destinations, and reads the DMA data readings 988 and 989, respectively. By returning the read result, an I / O data output event 966, 968, 970 is output to the I / O device 908 or 909 as a result.

図10は,図9に示した実施例2のシステムの物理計算機917上で動作するハイパバイザ938の構成の詳細を示す図である。   FIG. 10 is a diagram showing details of the configuration of the hypervisor 938 operating on the physical computer 917 of the system of the second embodiment shown in FIG.

ハイパバイザ938には,同期処理部944,アドレス変換部945,I/Oイベント検出部946,I/Oイベント処理部947があり,I/Oイベント処理部947には,I/Oデータ出力比較部948があり,I/Oデータ出力比較部948には,I/Oスイッチ907に対する要求送信部949,応答受信部950があることは先に述べたが,加えて,ハイパバイザ938のI/Oイベント処理部947には,I/Oコマンド出力比較部951,I/Oコマンド出力訂正部952,DMA訂正部955があり,I/Oデータ出力比較部948には,仮想アドレス特定部953と,物理アドレス変換部954がある。なお、本実施例においても,先の実施例同様,I/Oコマンド出力訂正部952とDMA訂正部955とを総称して抑止部と呼ぶ場合がある。以下に説明するように,実施例1と同様に訂正機能に加え,抑止機能を有するからである。   The hypervisor 938 includes a synchronization processing unit 944, an address conversion unit 945, an I / O event detection unit 946, and an I / O event processing unit 947. The I / O event processing unit 947 includes an I / O data output comparison unit. As described above, the I / O data output comparison unit 948 includes the request transmission unit 949 and the response reception unit 950 for the I / O switch 907. In addition, the I / O event of the hypervisor 938 The processing unit 947 includes an I / O command output comparison unit 951, an I / O command output correction unit 952, and a DMA correction unit 955. The I / O data output comparison unit 948 includes a virtual address specifying unit 953, There is an address conversion unit 954. In this embodiment, as in the previous embodiment, the I / O command output correction unit 952 and the DMA correction unit 955 may be collectively referred to as a suppression unit. This is because, as will be described below, in addition to the correction function, it has a deterrent function as in the first embodiment.

I/Oコマンド出力比較部951は,I/Oイベント検出部946からのI/Oコマンド出力イベント965,967,969のI/Oコマンドの内容を比較し,その結果をI/Oコマンド比較結果1001として,I/Oコマンド出力訂正部952に出力する。   The I / O command output comparison unit 951 compares the I / O command contents of the I / O command output events 965, 967, and 969 from the I / O event detection unit 946, and the result is the I / O command comparison result. 1001 is output to the I / O command output correction unit 952.

I/Oコマンド出力訂正部952は,I/Oイベント検出部946からのI/Oコマンド出力イベント965,967,969をI/Oコマンド990として送受信するが,I/Oコマンド比較結果1001が不一致を示している場合,特に,I/Oコマンド出力イベント965,967,969の3つのI/Oコマンドの内容のうち,2つが一致している場合は,一致している2つのI/Oコマンド出力イベントに対応するI/Oコマンド送受信を行い,3つとも一致しない場合は,I/Oコマンド送受信を抑止する。   The I / O command output correction unit 952 transmits / receives the I / O command output events 965, 967, 969 from the I / O event detection unit 946 as the I / O command 990, but the I / O command comparison result 1001 does not match. In particular, if two of the three I / O command contents of the I / O command output events 965, 967, and 969 match, the two I / O commands that match I / O command transmission / reception corresponding to the output event is performed. If all three do not match, I / O command transmission / reception is suppressed.

I/Oデータ出力比較部948の仮想アドレス特定部953は,I/Oイベント検出部946からのI/Oデータ出力イベント966,968,970の情報から,I/Oデータバッファ926のVM930のアドレス空間でのアドレスと,I/Oデータバッファ927のVM931のアドレス空間でのアドレス,I/Oデータバッファ928のVM932のアドレス空間でのアドレスを特定し,その結果をI/Oデータ出力イベント仮想アドレス情報1011,1012,1013として,物理アドレス変換部954に出力する。   The virtual address specifying unit 953 of the I / O data output comparison unit 948 uses the information of the I / O data output events 966, 968, and 970 from the I / O event detection unit 946 to determine the address of the VM 930 in the I / O data buffer 926. The address in the space, the address in the VM931 address space of the I / O data buffer 927, the address in the VM932 address space of the I / O data buffer 928 are specified, and the result is the I / O data output event virtual address The information 1011, 1012, 1013 is output to the physical address conversion unit 954.

物理アドレス変換部954は,I/Oデータ出力イベント仮想アドレス情報1011に基づいて,アドレス変換部945のページテーブルサイズ毎に,仮想ページ番号1021をアドレス変換部945に入力し,アドレス変換部945から,対応する物理ページ番号1022を入力することによって,I/Oデータバッファ926の物理計算機915のアドレス空間でのアドレスに変換し,その結果を,I/Oデータ出力イベント物理アドレス情報1031として,要求送信部949に出力する。   The physical address conversion unit 954 inputs the virtual page number 1021 to the address conversion unit 945 for each page table size of the address conversion unit 945 based on the I / O data output event virtual address information 1011. , By inputting the corresponding physical page number 1022, it is converted into an address in the address space of the physical computer 915 of the I / O data buffer 926, and the result is requested as I / O data output event physical address information 1031. The data is output to the transmission unit 949.

また,物理アドレス変換部954は,同様にして,I/Oデータバッファ927の物理計算機916のアドレス空間でのアドレスを,I/Oデータ出力イベント物理アドレス情報1032として,また,I/Oデータバッファ928の物理計算機917のアドレス空間でのアドレスを,I/Oデータ出力イベント物理アドレス情報1033として,要求送信部949に出力する。   Similarly, the physical address conversion unit 954 uses the address in the address space of the physical computer 916 of the I / O data buffer 927 as the I / O data output event physical address information 1032 and also the I / O data buffer. The address in the address space of the physical computer 917 928 is output to the request transmission unit 949 as I / O data output event physical address information 1033.

要求送信部949は,I/Oイベント検出部946からのI/Oデータ出力イベント966,968,970の入力と,物理アドレス変換部954からのI/Oデータ出力イベント物理アドレス情報1031,1032,1033の入力から,I/Oデータ出力イベント通知991,物理アドレス情報992,993,994をI/Oスイッチ907の要求受信部913に送信する。   The request transmission unit 949 receives I / O data output events 966, 968, and 970 from the I / O event detection unit 946, and I / O data output event physical address information 1031 and 1032 from the physical address conversion unit 954. From the input of 1033, I / O data output event notification 991, physical address information 992, 993, and 994 are transmitted to the request receiving unit 913 of the I / O switch 907.

応答受信部950は,比較結果995をI/Oスイッチ907の応答送信部914から受信し,その結果をI/Oデータ比較結果1041として,DMA訂正部955に出力する。   The response reception unit 950 receives the comparison result 995 from the response transmission unit 914 of the I / O switch 907 and outputs the result as the I / O data comparison result 1041 to the DMA correction unit 955.

DMA訂正部955は,I/Oイベント検出部946からのI/Oデータ出力イベント966,968,970に含まれるI/Oデバイス908,あるいは909へのDMA読み出しコマンドをI/Oコマンド990として送信するが,I/Oデータ比較結果1041が不一致を示している場合,特に,I/Oデータ出力イベント966,968,970の3つのI/Oデータの内容のうち,2つが一致している場合は,一致している2つのI/Oデータ出力イベントに対応するDMA読み出しコマンドを送信し,3つとも一致しない場合は,対応するI/Oデータ出力イベント966,968,970のDMA読み出しコマンド送信を抑止する。   The DMA correction unit 955 transmits a DMA read command to the I / O device 908 included in the I / O data output events 966, 968, and 909 from the I / O event detection unit 946 as an I / O command 990. However, when the I / O data comparison result 1041 indicates a mismatch, particularly when two of the contents of the three I / O data of the I / O data output events 966, 968, and 970 match. Transmits a DMA read command corresponding to two matching I / O data output events, and if none of the three matches, transmits a DMA read command of the corresponding I / O data output event 966, 968, 970 Is suppressed.

図11は,図9に示した実施例2のシステムのI/Oスイッチ907の構成の詳細を示す図である。   FIG. 11 is a diagram illustrating details of the configuration of the I / O switch 907 in the system according to the second embodiment illustrated in FIG. 9.

I/Oスイッチ907は,PCI Express Bus910によってプロセッサ900,901,902と,PCI Express Bus911によってI/Oデバイス908と,PCI Express Bus912によってI/Oデバイス909と,それぞれ接続され,I/Oコマンド980の送受信を,I/Oデバイス908にI/Oコマンド981として送受信し,あるいは,I/Oデバイス909にI/Oコマンド982として送受信し,また,I/Oデバイス908からのDMA読み出し988,あるいはI/Oデバイス909からのDMA読み出し989を,DMA読み出し984として読み出すが,これは,I/Oスイッチ907内のスイッチ回路1100の動作による。   The I / O switch 907 is connected to the processors 900, 901, and 902 by the PCI Express Bus 910, the I / O device 908 by the PCI Express Bus 911, and the I / O device 909 by the PCI Express Bus 912, respectively. Transmission / reception to / from the I / O device 908 as an I / O command 981, or transmission / reception to / from the I / O device 909 as an I / O command 982, and DMA reading 988 from the I / O device 908, or The DMA read 989 from the I / O device 909 is read as the DMA read 984, which is due to the operation of the switch circuit 1100 in the I / O switch 907.

また,I/Oスイッチ907には,I/Oデータ出力比較部948に対する要求受信部913,応答送信部914があることは先に述べたが,加えて,DMAデータ読み出し部1101と,I/Oデータバッファ比較部1102がある。   In addition, as described above, the I / O switch 907 includes the request reception unit 913 and the response transmission unit 914 for the I / O data output comparison unit 948. In addition, the DMA data reading unit 1101, There is an O data buffer comparison unit 1102.

要求受信部913は,I/Oスイッチ907内で,スイッチ回路1100を通じてPCI Express Bus910と接続されており,I/Oデータ出力イベント通知991,物理アドレス情報992,993,994を,I/Oコマンド980として,I/Oデータ出力比較部948の要求送信部949から受信し,受信した内容をI/Oデータ出力イベント通知1111,I/Oデータバッファ926の物理アドレス情報1112,I/Oデータバッファ927の物理アドレス1113,I/Oデータバッファ928の物理アドレス1114として,DMAデータ読み出し部1101に出力する。   The request receiving unit 913 is connected to the PCI Express Bus 910 through the switch circuit 1100 in the I / O switch 907, and the I / O data output event notification 991, physical address information 992, 993, and 994 are transferred to the I / O command. 980 received from the request transmission unit 949 of the I / O data output comparison unit 948, and the received contents are physical address information 1112 of the I / O data output event notification 1111 and I / O data buffer 926, and the I / O data buffer. The physical address 1113 of 927 and the physical address 1114 of the I / O data buffer 928 are output to the DMA data reading unit 1101.

DMAデータ読み出し部1101は,I/Oデータ出力イベント通知1111,物理アドレス情報1112,1113,1114を受け取ると,I/Oデータバッファ926,927,928の物理アドレス情報1112,1113,1114をもとに,I/Oデータバッファ926,927,928へのDMAデータ読み出し985,986,987をそれぞれ行い,DMA読み出し結果1126,1127,1128を,I/Oデータバッファ比較部1102にそれぞれ出力する。   When the DMA data reading unit 1101 receives the I / O data output event notification 1111, physical address information 1112, 1113, 1114, the DMA data reading unit 1101 uses the physical address information 1112, 1113, 1114 in the I / O data buffers 926, 927, 928. Then, DMA data readings 985, 986, and 987 to the I / O data buffers 926, 927, and 928 are performed, respectively, and the DMA reading results 1126, 1127, and 1128 are output to the I / O data buffer comparison unit 1102, respectively.

I/Oデータバッファ比較部1102は,DMAデータ読み出し部1101から入力されるDMA読み出し結果1126,1127,1128を順次比較し,比較結果1115を応答送信部914に出力する。   The I / O data buffer comparison unit 1102 sequentially compares the DMA read results 1126, 1127, and 1128 input from the DMA data read unit 1101, and outputs the comparison results 1115 to the response transmission unit 914.

応答送信部914は,I/Oデータバッファ比較部1102からの比較結果1115を入力し,I/Oスイッチ907内で,スイッチ回路1100を通じてPCI Express Bus910と接続されており,比較結果995を,I/Oコマンド980として,I/Oデータ出力比較部の応答受信部950に送信する。   The response transmission unit 914 receives the comparison result 1115 from the I / O data buffer comparison unit 1102, and is connected to the PCI Express Bus 910 through the switch circuit 1100 in the I / O switch 907. The data is transmitted as a / O command 980 to the response receiving unit 950 of the I / O data output comparing unit.

以上のように,ハイパバイザ936が,物理計算機915に入力される非同期事象について,その事象の情報と,それによって引き起こされたソフトウェア933の遷移の情報をハイパバイザ937,938に送信し,ハイパバイザ937,938が,その情報をもとに,ソフトウェア934,935にもその非同期事象を再現することに加えて,さらに,ハイパバイザ936,937が,ソフトウェア933,934のI/Oイベントの情報をハイパバイザ938に送信し,ハイパバイザ938が,その情報と,ソフトウェア935のI/Oイベントの情報を比較することによって,VMを同期実行しつつ,I/Oイベント比較処理を行い,プロセッサ故障を隠蔽することが可能となる。   As described above, the hypervisor 936 transmits information on the asynchronous event input to the physical computer 915 and information on the transition of the software 933 caused by the event to the hypervisor 937 and 938. However, in addition to reproducing the asynchronous event in the software 934 and 935 based on the information, the hypervisor 936 and 937 further transmits the information on the I / O event of the software 933 and 934 to the hypervisor 938. Then, the hypervisor 938 compares the information with the information of the I / O event of the software 935, thereby performing the I / O event comparison process while executing the VM synchronously and concealing the processor failure. Become.

以上,好適な実施例を示したが,本発明は,その技術的思想を逸脱しない範囲において,種々の変形が可能である。例えば,上述の実施例では,I/Oデータバッファの物理アドレス情報を,I/Oデータ出力比較部の要求送信インターフェースから,I/Oスイッチの要求受信インターフェースに対して直接受け渡ししているが,I/Oデータバッファの物理アドレス情報をハイパバイザのメモリ領域に格納し,その情報を格納したメモリアドレスを,I/Oスイッチの要求受信インターフェースに対して受け渡す,などである。   Although the preferred embodiments have been described above, the present invention can be variously modified without departing from the technical idea thereof. For example, in the above embodiment, the physical address information of the I / O data buffer is directly transferred from the request transmission interface of the I / O data output comparison unit to the request reception interface of the I / O switch. For example, the physical address information of the I / O data buffer is stored in the memory area of the hypervisor, and the memory address storing the information is transferred to the request receiving interface of the I / O switch.

100,101…プロセッサ,
102,103…メモリ,
104−I/Oスイッチ,
105,106…I/Oデバイス,
107,108,109…PCI Express Bus,
110,111,112,113…メモリ領域,
114,115…メモリ領域中のI/Oデータバッファ,
116…要求受信インターフェース部,
117…応答送信インターフェース部,
120,121…物理計算機,
122,123…仮想計算機,
130,131…ゲストソフトウェア,
132,133…ハイパバイザ,
140,142…同期処理部,
141,143…アドレス変換部,
144…I/Oイベント検出部,
145…I/Oイベント処理部,
146…I/Oデータ出力比較部,
147…要求送信インターフェース部,
148…応答受信インターフェース部,
149…I/Oコマンド出力比較部,
150…I/Oコマンド出力抑止部,
151…仮想アドレス特定部,
152…物理アドレス変換部,
153…DMA抑止部,
160…イベント送信チャネル,
170,171,172,173,174,175,176…I/Oイベント出力,
177,178…I/Oデータ書き込み,
180,181,182…I/Oコマンド送受信,
185,186,187,188,189…DMA読み出し,
190…I/Oイベント出力に対応するI/Oコマンド送受信,
191…データ出力イベント通知に対応するI/Oコマンド送信,
192,193…物理アドレス情報に対応するI/Oコマンド送信,
194…比較結果に対応するI/Oコマンド受信,
201…I/Oコマンド比較結果に対応するハイパバイザ内でのデータ出力,
211,212…I/Oデータ出力イベント仮想アドレス情報に対応するハイパバイザ内でのデータ出力,
221…仮想ページ番号に対応するハイパバイザ内でのデータ出力,
222…物理ページ番号に対応するハイパバイザ内でのデータ出力,
231,232…I/Oデータ出力イベント物理アドレス情報に対応するハイパバイザ内でのデータ出力,
241…I/Oデータ比較結果に対応するハイパバイザ内でのデータ出力,
300…スイッチ回路,
301…DMAデータ読み出し部,
302…I/Oデータバッファ比較部,
311…データ出力イベント通知に対応する信号,
312,313…物理アドレス情報に対応する信号,
314…比較結果に対応する信号,
326,327…DMA読み出し結果,
401,402,403,404,405,406,407,412,413,414,415,416,417…ゲストソフトウェアの処理ステップ,
451,452,453,454,455,456,457,458,459,460,461,462…ハイパバイザの処理ステップ,
471,472,473,474…DMAの動作ステップ,
481,482,483…I/Oからの非同期事象(割り込み),
491,492…ハイパバイザからの仮想的な非同期事象(割り込み),
501,502,503,504,505,506,512,513,514,515,516…ゲストソフトウェアの処理ステップ,
551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567…ハイパバイザの処理ステップ,
571,572,573…DMA読み出し部とI/Oデータバッファ比較部の動作ステップ,
581,582…I/Oからの非同期事象(割り込み),
591,592…ハイパバイザからの仮想的な非同期事象(割り込み),
601,602,612…ゲストソフトウェアの処理ステップ,
621…プロセッサ故障の発生タイミング,
651,652,653,654,655,656,657,658,659…ハイパバイザの処理ステップ,
681…I/Oからの非同期事象(割り込み),
691…ハイパバイザからの仮想的な非同期事象(割り込み),
703,704,705,706,713,714,715,716…ゲストソフトウェアの処理ステップ,
721…プロセッサ故障の発生タイミング,
758,759,760,761,762,763,764,765,766,767,768…ハイパバイザの処理ステップ,
771,772,773−DMA読み出し部とI/Oデータバッファ比較部の動作ステップ,
782…I/Oからの非同期事象(割り込み),
792…ハイパバイザからの仮想的な非同期事象(割り込み)
801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820…ハイパバイザの処理フローのステップ
900,901,902…プロセッサ,
903,904,905…メモリ,
907…I/Oスイッチ,
908,909…I/Oデバイス,
910,911,912…PCI Express Bus,
920,921,922,923,924,925…メモリ領域,
926,927,928…メモリ領域中のI/Oデータバッファ,
913…要求受信インターフェース部,
914…応答送信インターフェース部,
915,916,917…物理計算機,
930,931,932…仮想計算機,
933,934,935…ゲストソフトウェア,
936,937,938…ハイパバイザ,
940,942,944…同期処理部,
941,943,945…アドレス変換部,
946…I/Oイベント検出部,
947…I/Oイベント処理部,
948…I/Oデータ出力比較部,
949…要求送信インターフェース部,
950…応答受信インターフェース部,
951…I/Oコマンド出力比較部,
952…I/Oコマンド出力訂正部,
953…仮想アドレス特定部,
954…物理アドレス変換部,
955…DMA訂正部,
957,958,959…イベント送信チャネル,
960,961,962,963,964,965,966,967,968,969,970…I/Oイベント出力,
971,972,973…I/Oデータ書き込み,
980,981,982…I/Oコマンド送受信,
984,985,986,987,988,989…DMA読み出し,
990…I/Oイベント出力に対応するI/Oコマンド送受信,
991…データ出力イベント通知に対応するI/Oコマンド送信,
992,993,994…物理アドレス情報に対応するI/Oコマンド送信,
995…比較結果に対応するI/Oコマンド受信,
1001…I/Oコマンド比較結果に対応するハイパバイザ内でのデータ出力,
1011,1012,1013…I/Oデータ出力イベント仮想アドレス情報に対応するハイパバイザ内でのデータ出力,
1021…仮想ページ番号に対応するハイパバイザ内でのデータ出力,
1022…物理ページ番号に対応するハイパバイザ内でのデータ出力,
1031,1032,1033…I/Oデータ出力イベント物理アドレス情報に対応するハイパバイザ内でのデータ出力,
1041…I/Oデータ比較結果に対応するハイパバイザ内でのデータ出力,
1100…スイッチ回路,
1101…DMAデータ読み出し部,
1102…I/Oデータバッファ比較部,
1111…データ出力イベント通知に対応する信号,
1112,1113,1114…物理アドレス情報に対応する信号,
1115…比較結果に対応する信号,
1126,1127,1128…DMA読み出し結果。
100, 101 ... processor,
102, 103 ... memory,
104-I / O switch,
105, 106 ... I / O device,
107, 108, 109 ... PCI Express Bus,
110, 111, 112, 113 ... memory area,
114, 115 ... I / O data buffer in the memory area,
116... The request reception interface unit,
117 ... Response transmission interface part,
120, 121 ... physical computer,
122, 123 ... virtual machines,
130, 131 ... guest software,
132, 133 ... hypervisor,
140, 142 ... synchronization processing unit,
141, 143 ... Address converter,
144 ... I / O event detector,
145 ... I / O event processing unit,
146... I / O data output comparison unit,
147 ... request transmission interface unit,
148 ... Response reception interface section,
149 ... I / O command output comparison unit,
150 ... I / O command output suppression section,
151... Virtual address specifying unit,
152 ... physical address conversion unit,
153 ... DMA suppression unit,
160 ... event transmission channel,
170, 171, 172, 173, 174, 175, 176 ... I / O event output,
177, 178 ... I / O data write,
180, 181, 182 ... I / O command transmission / reception,
185, 186, 187, 188, 189 ... DMA read,
190 ... I / O command transmission / reception corresponding to I / O event output,
191 ... I / O command transmission corresponding to data output event notification,
192, 193 ... I / O command transmission corresponding to physical address information,
194 ... Receiving an I / O command corresponding to the comparison result,
201 ... Data output in the hypervisor corresponding to the I / O command comparison result,
211, 212 ... I / O data output event Data output in hypervisor corresponding to virtual address information,
221 ... Data output in the hypervisor corresponding to the virtual page number,
222 ... Data output in the hypervisor corresponding to the physical page number,
231, 232 ... I / O data output event Data output in the hypervisor corresponding to the physical address information,
241 ... Data output in the hypervisor corresponding to the I / O data comparison result,
300 ... Switch circuit,
301: DMA data reading unit,
302 ... I / O data buffer comparison unit,
311 ... Signal corresponding to data output event notification,
312, 313... Signal corresponding to physical address information,
314... Signal corresponding to the comparison result,
326, 327 ... DMA read result,
401, 402, 403, 404, 405, 406, 407, 412, 413, 414, 415, 416, 417 ... guest software processing steps,
451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462... Hypervisor processing steps,
471, 472, 473, 474 ... DMA operation steps,
481, 482, 483 ... Asynchronous event (interrupt) from I / O,
491, 492 ... Virtual asynchronous events (interrupts) from the hypervisor,
501,502,503,504,505,506,512,513,514,515,516 ... guest software processing steps,
551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567 ... hypervisor processing steps,
571, 572, 573... Operation steps of the DMA read unit and the I / O data buffer comparison unit,
581, 582... Asynchronous event (interrupt) from I / O,
591, 592 ... Virtual asynchronous event (interrupt) from the hypervisor,
601 602 612 ... guest software processing steps,
621 ... processor failure occurrence timing,
651, 652, 653, 654, 655, 656, 657, 658, 659 ... processing steps of the hypervisor,
681 ... Asynchronous event (interrupt) from I / O,
691 ... Virtual asynchronous event (interrupt) from the hypervisor,
703, 704, 705, 706, 713, 714, 715, 716 ... guest software processing steps,
721 ... processor failure occurrence timing,
758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 768 ... processing steps of the hypervisor,
771, 772, 773-DMA read section and I / O data buffer comparison section operation steps,
782 ... Asynchronous event (interrupt) from I / O,
792 ... Virtual asynchronous event (interrupt) from the hypervisor
801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820 ... Steps 900, 901 of the processing flow of the hypervisor 902 ... a processor,
903, 904, 905 ... memory,
907 ... I / O switch,
908, 909 ... I / O device,
910, 911, 912 ... PCI Express Bus,
920, 921, 922, 923, 924, 925... Memory area,
926, 927, 928 ... I / O data buffer in the memory area,
913 ... Request receiving interface part,
914 ... Response transmission interface unit,
915, 916, 917 ... physical computer,
930, 931, 932 ... virtual machine,
933, 934, 935 ... Guest software,
936, 937, 938 ... hypervisor,
940, 942, 944... Synchronization processing unit,
941, 943, 945 ... Address conversion unit,
946 ... I / O event detection unit,
947 ... I / O event processing unit,
948 ... I / O data output comparison unit,
949 ... Request transmission interface unit,
950 ... Response reception interface unit,
951 ... I / O command output comparison unit,
952 ... I / O command output correction section,
953 ... Virtual address specifying part,
954: Physical address conversion unit,
955 ... DMA correction section,
957, 958, 959 ... event transmission channel,
960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970 ... I / O event output,
971, 972, 973 ... I / O data write,
980, 981, 982 ... I / O command transmission / reception,
984, 985, 986, 987, 988, 989 ... DMA read,
990 ... I / O command transmission / reception corresponding to I / O event output,
991 ... I / O command transmission corresponding to data output event notification,
992, 993, 994 ... I / O command transmission corresponding to physical address information,
995 ... I / O command reception corresponding to the comparison result,
1001 ... Data output in the hypervisor corresponding to the I / O command comparison result,
1011, 1012, 1013 ... I / O data output event Data output in hypervisor corresponding to virtual address information,
1021 ... Data output in the hypervisor corresponding to the virtual page number,
1022 ... Data output in the hypervisor corresponding to the physical page number,
1031, 1032, 1033 ... I / O data output event Data output in the hypervisor corresponding to physical address information,
1041... Data output in the hypervisor corresponding to the I / O data comparison result,
1100: Switch circuit,
1101... DMA data reading unit,
1102 ... I / O data buffer comparison unit,
1111 ... Signal corresponding to the data output event notification,
1112, 1113, 1114... Signal corresponding to physical address information,
1115: Signal corresponding to the comparison result,
1126, 1127, 1128 ... DMA read results.

Claims (15)

プロセッサとメモリとI/Oデバイスとを備えた、複数の物理計算機と,前記物理計算機の計算機資源を仮想化して,複数の仮想計算機を実行する仮想化制御部と,複数の前記仮想計算機中の、第一の物理計算機上の第一の仮想計算機と、第二の物理計算機上の第二の仮想計算機が,同一のアプリケーションプログラムを実行するコンピュータシステムであって,
前記仮想化制御部は,
前記第一の仮想計算機と前記第二の仮想計算機上のアプリケーションプログラムを同時に実行する同期制御部と,
前記第一の仮想計算機と前記第二の仮想計算機が発行したI/Oイベントを検出し,種類を特定するI/Oイベント検出部と,
前記第一の仮想計算機が発行したI/Oイベントと,前記第二の仮想計算機が発行したI/Oイベントを比較し,前記I/Oデバイスに対して出力を生成するI/Oイベント処理部と,を備え,
前記I/Oイベント処理部は,
前記第一の仮想計算機と前記第二の仮想計算機が発行した前記I/Oイベントが,I/Oコマンドである場合に,前記I/Oコマンドを比較するI/Oコマンド比較部と,
前記I/Oコマンド比較部の比較結果が不一致である場合には,前記I/Oコマンドの出力を抑止する抑止部と,
を備えることを特徴とするコンピュータシステム。
A plurality of physical computers including a processor, a memory, and an I / O device; a virtualization control unit that virtualizes computer resources of the physical computers and executes the plurality of virtual computers; and The first virtual machine on the first physical computer and the second virtual machine on the second physical computer are computer systems that execute the same application program,
The virtualization control unit
A synchronization control unit that simultaneously executes application programs on the first virtual machine and the second virtual machine;
An I / O event detector for detecting an I / O event issued by the first virtual machine and the second virtual machine and identifying a type;
An I / O event processing unit that compares an I / O event issued by the first virtual machine with an I / O event issued by the second virtual machine and generates an output for the I / O device. And comprising
The I / O event processing unit
An I / O command comparison unit that compares the I / O command when the I / O event issued by the first virtual machine and the second virtual machine is an I / O command;
If the comparison result of the I / O command comparison unit does not match, a suppression unit for suppressing the output of the I / O command;
A computer system comprising:
請求項1に記載のコンピュータシステムであって,
前記I/Oイベント処理部は,
前記第一の仮想計算機と前記第二の仮想計算機が発行した前記I/Oイベントが,I/Oデータ出力である場合に,前記第一の仮想計算機のメモリ領域と,前記第二の仮想計算機のメモリ領域から当該I/Oデータを読み出し,比較するI/Oデータ比較部を更に備え,
前記抑止部は,前記I/Oデータ比較部の比較結果が不一致である場合には,前記I/Oデータを前記メモリ領域から前記I/Oデバイスに読み出すのを抑止する,
ことを特徴とするコンピュータシステム。
A computer system according to claim 1,
The I / O event processing unit
When the I / O event issued by the first virtual machine and the second virtual machine is an I / O data output, the memory area of the first virtual machine and the second virtual machine An I / O data comparison unit that reads and compares the I / O data from the memory area of
The inhibition unit inhibits reading of the I / O data from the memory area to the I / O device when the comparison result of the I / O data comparison unit does not match;
A computer system characterized by that.
請求項2に記載のコンピュータシステムであって,
前記I/OデバイスはDMAコントローラを備え,
前記抑止部は,前記I/Oデータ比較部の比較結果が不一致である場合に,前記DMAコントローラが前記メモリ領域から前記I/Oデータを読み出すのを抑止する,
ことを特徴とするコンピュータシステム。
A computer system according to claim 2,
The I / O device comprises a DMA controller;
The inhibiting unit inhibits the DMA controller from reading the I / O data from the memory area when the comparison result of the I / O data comparing unit is inconsistent;
A computer system characterized by that.
請求項2に記載のコンピュータシステムであって,
前記仮想化制御部は,
前記第一の仮想計算機と前記第二の仮想計算機それぞれが管理する仮想アドレスと,前記第一の物理計算機と前記第二の物理計算機それぞれが管理する物理アドレスの対応を管理するアドレス変換部を更に有し,
前記I/Oデータ比較部は,
前記第一の仮想計算機および前記第二の仮想計算機が発行した前記I/Oイベントから,前記第一の仮想計算機および前記第二の仮想計算機のI/Oデータ出力の対象データが保持されるメモリ領域の,仮想アドレスを特定する仮想アドレス特定部と,
前記アドレス変換部を用いて,特定された前記仮想アドレスに対応する物理アドレスを特定する物理アドレス特定部と,
特定された前記物理アドレスが示すメモリ領域から前記対象データを読み出すデータ読み出し部を備え,
読み出した前記対象データの比較結果を前記抑止部に出力する、
ことを特徴とするコンピュータシステム。
A computer system according to claim 2,
The virtualization control unit
An address conversion unit for managing correspondence between virtual addresses managed by the first virtual machine and the second virtual machine, and physical addresses managed by the first physical computer and the second physical machine, respectively; Have
The I / O data comparison unit
Memory in which target data of I / O data output of the first virtual machine and the second virtual machine is held from the I / O event issued by the first virtual machine and the second virtual machine A virtual address specifying part for specifying a virtual address of the area;
A physical address specifying unit for specifying a physical address corresponding to the specified virtual address using the address conversion unit;
A data reading unit that reads the target data from the memory area indicated by the identified physical address;
Outputting the comparison result of the read target data to the suppression unit;
A computer system characterized by that.
請求項4に記載のコンピュータシステムであって,
前記アドレス変換部は,
前記仮想アドレスと前記物理アドレスの対応をページ単位で管理するページテーブルを備え,
前記仮想アドレス特定部は,
前記第一の仮想計算機および前記第二の仮想計算機のI/Oデータ出力の対象データが保持される前記メモリ領域を,前記仮想アドレスの開始アドレスとサイズにより特定し,
前記物理アドレス特定部は,
前記仮想アドレス特定部で特定された,前記仮想アドレスの開始アドレスとサイズからなる仮想アドレス情報を,前記ページテーブルを用いて,一つ以上の開始アドレスとサイズの組み合わせからなる物理アドレス情報に変換する,
ことを特徴とするコンピュータシステム。
A computer system according to claim 4,
The address conversion unit
A page table for managing the correspondence between the virtual address and the physical address in units of pages;
The virtual address specifying unit
Identifying the memory area in which the target data of I / O data output of the first virtual machine and the second virtual machine is held by the start address and size of the virtual address;
The physical address specifying unit is:
Using the page table, virtual address information specified by the virtual address specifying unit and including the start address and size of the virtual address is converted into physical address information including a combination of one or more start addresses and sizes. ,
A computer system characterized by that.
請求項2に記載のコンピュータシステムであって,
前記物理計算機は,前記プロセッサと前記I/Oデバイスを接続するI/Oスイッチを更に有し,
前記I/Oスイッチは,
前記仮想化制御部から,I/Oデータ出力通知と,前記第一の仮想計算機及び前記第二の仮想計算機のI/Oデータ出力の対象データが保持される前記メモリ領域の複数の物理アドレスを受け取る要求受信インターフェース部と,
前記要求受信インターフェース部が前記I/Oデータ出力通知を受けると,受け取った複数の前記物理アドレスが示すメモリ領域から,対象データをそれぞれ読み出すメモリデータ読み出し部と,
読み出した前記対象データを比較するメモリデータ比較部と,
比較結果を前記仮想化制御部に受け渡す応答送信インターフェース部と,
を備える,
ことを特徴とするコンピュータシステム。
A computer system according to claim 2,
The physical computer further includes an I / O switch for connecting the processor and the I / O device,
The I / O switch
From the virtualization control unit, a plurality of physical addresses in the memory area in which I / O data output notification and target data for I / O data output of the first virtual machine and the second virtual machine are held A request receiving interface part for receiving;
When the request reception interface unit receives the I / O data output notification, a memory data reading unit that reads target data from the memory areas indicated by the received physical addresses,
A memory data comparison unit for comparing the read target data;
A response transmission interface unit for passing the comparison result to the virtualization control unit;
With
A computer system characterized by that.
請求項6に記載のコンピュータシステムであって,
前記仮想化制御部は,
前記第一の仮想計算機と前記第二の仮想計算機それぞれが管理する仮想アドレスと,前記第一の物理計算機と前記第二の物理計算機それぞれが管理する物理アドレスの対応を管理するアドレス変換部を更に有し,
前記I/Oデータ比較部は,
前記第一の仮想計算機および前記第二の仮想計算機が発行した前記I/Oイベントから,前記第一の仮想計算機および前記第二の仮想計算機のI/Oデータ出力の対象データが保持される前記メモリ領域の,複数の仮想アドレスを特定する仮想アドレス特定部と,
前記アドレス変換部を用いて,特定された複数の前記仮想アドレスに対応する複数の前記物理アドレスを特定する物理アドレス特定部と,
前記I/Oスイッチの前記要求受信インターフェース部に対して,前記I/Oデータ出力通知と,複数の前記物理アドレスを受け渡す要求送信インターフェース部と,
前記I/Oスイッチの前記応答送信インターフェース部から,比較結果を受け取る応答受信インターフェース部を備える,
ことを特徴とするコンピュータシステム。
A computer system according to claim 6,
The virtualization control unit
An address conversion unit for managing correspondence between virtual addresses managed by the first virtual machine and the second virtual machine, and physical addresses managed by the first physical computer and the second physical machine, respectively; Have
The I / O data comparison unit
The target data of the I / O data output of the first virtual machine and the second virtual machine is held from the I / O event issued by the first virtual machine and the second virtual machine. A virtual address specifying unit for specifying a plurality of virtual addresses in the memory area;
A physical address specifying unit for specifying a plurality of physical addresses corresponding to the specified plurality of virtual addresses using the address conversion unit;
An I / O data output notification to the request reception interface unit of the I / O switch; a request transmission interface unit that delivers a plurality of the physical addresses;
A response reception interface unit for receiving a comparison result from the response transmission interface unit of the I / O switch;
A computer system characterized by that.
複数の仮想計算機が,アプリケーションプログラムを実行するコンピュータシステムであって,
プロセッサとメモリとI/Oデバイスを備えた、複数の物理計算機と,
前記物理計算機の計算機資源を仮想化して,第一の物理計算機上の第一の仮想計算機と、第二の物理計算機上の第二の仮想計算機と、第三の物理計算機上の第三の仮想計算機を実行する仮想化制御部とを備え,
前記仮想化制御部は,
前記第一,第二,第三の仮想計算機上の同一のアプリケーションプログラムを同時に実行する同期制御部と,
前記第一,第二,第三の仮想計算機が発行したI/Oイベントを検出し,種類を特定するI/Oイベント検出部と,
前記第一,第二,第三の仮想計算機がそれぞれ発行したI/Oイベントを比較し,前記I/Oデバイスに対して出力を生成するI/Oイベント処理部と,を備え,
前記I/Oイベント処理部は,
前記第一,第二,第三の仮想計算機が発行した前記I/Oイベントが,I/Oコマンドである場合に,前記I/Oコマンドを比較するI/Oコマンド比較部と,
前記I/Oコマンド比較部の比較の結果,2つが一致している場合は,一致している前記I/Oコマンドの出力を行い,全て不一致である場合には,前記I/Oコマンドの出力を抑止する抑止部と,
を備えることを特徴とするコンピュータシステム。
A computer system in which a plurality of virtual machines execute application programs,
A plurality of physical computers with processors, memory and I / O devices;
By virtualizing the computer resources of the physical computer, a first virtual computer on the first physical computer, a second virtual computer on the second physical computer, and a third virtual computer on the third physical computer A virtualization control unit that executes the computer,
The virtualization control unit
A synchronous control unit that simultaneously executes the same application program on the first, second, and third virtual machines;
An I / O event detector that detects an I / O event issued by the first, second, and third virtual machines and identifies a type;
An I / O event processing unit that compares the I / O events issued by the first, second, and third virtual machines and generates an output for the I / O device;
The I / O event processing unit
An I / O command comparison unit that compares the I / O commands when the I / O events issued by the first, second, and third virtual machines are I / O commands;
As a result of comparison by the I / O command comparison unit, when the two match, the matched I / O command is output, and when all do not match, the I / O command is output. A deterrence unit that deters
A computer system comprising:
請求項8に記載のコンピュータシステムであって,
前記I/Oイベント処理部は,
前記第一,第二,第三の仮想計算機が発行した前記I/Oイベントが,I/Oデータ出力である場合に,前記第一、第二、第三の仮想計算機それぞれのメモリ領域からI/Oデータを読み出し,比較するI/Oデータ比較部を備え,
前記抑止部は、前記I/Oデータ比較部の比較の結果,2つが一致している場合は,一致している前記I/Oデータ出力に対応する読み出しコマンドを出力し,全てが不一致である場合には,前記I/Oデータを前記メモリ領域から読み出すのを抑止する,
ことを特徴とするコンピュータシステム。
9. A computer system according to claim 8, comprising:
The I / O event processing unit
When the I / O event issued by the first, second, and third virtual machines is an I / O data output, I / O data is output from the memory area of each of the first, second, and third virtual machines. An I / O data comparison unit that reads and compares / O data
The suppression unit outputs a read command corresponding to the matched I / O data output when the two match as a result of the comparison of the I / O data comparison unit, and all do not match. In this case, reading the I / O data from the memory area is suppressed.
A computer system characterized by that.
プロセッサとメモリとI/Oデバイスを備えた複数の物理計算機と,前記物理計算機それぞれの計算機資源を仮想化して,複数の仮想計算機を実行する仮想化制御部と有するコンピュータシステムの制御方法であって,
前記仮想化制御部は,
複数の前記仮想計算機上の同一のアプリケーションプログラムを同時に実行し,
複数の前記仮想計算機が発行したI/Oイベントを検出し,I/Oイベントの種類を特定し,
複数の前記仮想計算機が発行した前記I/Oイベントが,I/Oコマンドである場合,前記I/Oコマンドを比較し,前記I/Oイベントが,I/Oデータ出力である場合に,複数の前記仮想計算機のメモリ領域からI/Oデータを読み出して比較し,
前記I/Oコマンドを比較した結果が不一致である場合には,前記I/Oコマンドの出力を抑止し,
前記I/Oデータを比較した結果が不一致である場合には,前記I/Oデータを前記メモリ領域から読み出すことを抑止する,
ことを特徴とするコンピュータシステムの制御方法。
A computer system control method comprising: a plurality of physical computers including a processor, a memory, and an I / O device; and a virtualization control unit that virtualizes computer resources of each of the physical computers and executes the plurality of virtual computers. ,
The virtualization control unit
Simultaneously executing the same application program on a plurality of virtual machines,
Detect I / O events issued by multiple virtual machines, identify the type of I / O event,
When the I / O event issued by a plurality of virtual machines is an I / O command, the I / O commands are compared, and when the I / O event is an I / O data output, a plurality of I / O events are output. I / O data is read from the memory area of the virtual machine and compared,
If the comparison result of the I / O command is inconsistent, the output of the I / O command is suppressed,
If the result of comparing the I / O data is inconsistent, reading the I / O data from the memory area is suppressed.
A method for controlling a computer system.
請求項10に記載のコンピュータシステムの制御方法であって,
前記仮想化制御部は,
前記I/Oデータを読み出して比較する場合,
複数の前記仮想計算機が発行した前記I/Oイベントから,複数の前記仮想計算機の前記I/Oデータ出力の対象データが保持される前記メモリ領域の仮想アドレスを特定し,
特定した前記仮想アドレスを対応する前記物理計算機が管理する物理アドレスにアドレス変換し,
変換された前記物理アドレスが示す前記メモリ領域から対象データを読み出す,
ことを特徴とするコンピュータシステムの制御方法。
A method of controlling a computer system according to claim 10,
The virtualization control unit
When reading and comparing the I / O data,
From the I / O events issued by the plurality of virtual machines, specify the virtual address of the memory area where the target data of the I / O data output of the plurality of virtual machines is held,
Converting the identified virtual address into a physical address managed by the corresponding physical computer;
Read target data from the memory area indicated by the converted physical address,
A method for controlling a computer system.
請求項11に記載のコンピュータシステムの制御方法であって,
複数の前記仮想計算機は,第一の物理計算機上の第一の仮想計算機と、第二の物理計算機上の第二の仮想計算機を含み,
前記仮想化制御部は,
前記仮想アドレスと前記物理アドレスの対応をページ単位で管理するページテーブルを備え,
前記仮想アドレスを特定する場合,前記第一および第二の仮想計算機のI/Oデータ出力の対象データが保持される前記メモリ領域を,仮想アドレスの開始アドレスとサイズからなる仮想アドレス情報により特定し,
前記仮想アドレス情報を,前記ページテーブルを用いて,一つ以上の開始アドレスとサイズの組み合わせからなる物理アドレス情報に変換する,
ことを特徴とするコンピュータシステムの制御方法。
A computer system control method according to claim 11, comprising:
The plurality of virtual machines includes a first virtual machine on a first physical machine and a second virtual machine on a second physical machine,
The virtualization control unit
A page table for managing the correspondence between the virtual address and the physical address in units of pages;
When specifying the virtual address, the memory area in which the target data of the I / O data output of the first and second virtual machines is held is specified by virtual address information consisting of the start address and size of the virtual address. ,
Converting the virtual address information into physical address information comprising a combination of one or more start addresses and sizes using the page table;
A method for controlling a computer system.
請求項10に記載のコンピュータシステムの制御方法であって,
前記物理計算機は,前記プロセッサと前記I/Oデバイスを接続するI/Oスイッチを更に有し,
前記I/Oスイッチは,
前記仮想化制御部から,I/Oデータ出力通知と,複数の前記仮想計算機のI/Oデータ出力の対象データが保持されるメモリ領域の物理アドレスを受け取り,
前記I/Oデータ出力通知を受けると,受け取った複数の前記物理アドレスが示す前記メモリ領域から,対象データをそれぞれ読み出し,
読み出した対象データを比較し,比較結果を前記仮想化制御部に受け渡す,
ことを特徴とするコンピュータシステムの制御方法。
A method of controlling a computer system according to claim 10,
The physical computer further includes an I / O switch for connecting the processor and the I / O device,
The I / O switch
From the virtualization control unit, an I / O data output notification and a physical address of a memory area in which target data for I / O data output of the plurality of virtual machines are held are received,
Upon receiving the I / O data output notification, the target data is read from the memory area indicated by the received plurality of physical addresses,
Compare the read target data and pass the comparison result to the virtualization control unit.
A method for controlling a computer system.
請求項10記載のコンピュータシステムの制御方法であって,
複数の前記仮想計算機は,第一の物理計算機上の第一の仮想計算機と、第二の物理計算機上の第二の仮想計算機と、第三の物理計算機上の第三の仮想計算機を含み,
前記仮想制御部は,
前記I/Oコマンドを比較の結果,前記第一,第二,第三の仮想計算機が発行した前記I/Oコマンドの内,一つが不一致である場合には,一致する二つを正しいI/Oコマンドとして出力し,全てが不一致である場合には,前記I/Oコマンドの出力を抑止する,
ことを特徴とするコンピュータシステムの制御方法。
A method for controlling a computer system according to claim 10, comprising:
The plurality of virtual machines includes a first virtual machine on a first physical machine, a second virtual machine on a second physical machine, and a third virtual machine on a third physical machine ,
The virtual control unit
As a result of comparing the I / O commands, if one of the I / O commands issued by the first, second, and third virtual machines does not match, the two matching I / O commands are regarded as correct I / O commands. If it is output as an O command and all do not match, the output of the I / O command is suppressed.
A method for controlling a computer system.
請求項10記載のコンピュータシステムの制御方法であって,
複数の前記仮想計算機は,第一の物理計算機上の第一の仮想計算機と、第二の物理計算機上の第二の仮想計算機と、第三の物理計算機上の第三の仮想計算機を含み,
前記仮想制御部は,
前記I/Oデータを読み出し,比較した結果,前記第一,第二,第三の仮想計算機のメモリ領域から読み出した前記I/Oデータの内,一つが不一致である場合には,一致する二つを正しいデータとして読み出し,全てが不一致である場合には,前記I/Oデータを前記メモリ領域から読み出すことを抑止する,
ことを特徴とするコンピュータシステムの制御方法。
A method for controlling a computer system according to claim 10, comprising:
The plurality of virtual machines includes a first virtual machine on a first physical machine, a second virtual machine on a second physical machine, and a third virtual machine on a third physical machine ,
The virtual control unit
As a result of reading and comparing the I / O data, if one of the I / O data read from the memory areas of the first, second, and third virtual machines does not match, the two that match If all data are inconsistent, the I / O data is inhibited from being read from the memory area.
A method for controlling a computer system.
JP2010135033A 2010-06-14 2010-06-14 Computer system and control method thereof Expired - Fee Related JP5635815B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010135033A JP5635815B2 (en) 2010-06-14 2010-06-14 Computer system and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010135033A JP5635815B2 (en) 2010-06-14 2010-06-14 Computer system and control method thereof

Publications (2)

Publication Number Publication Date
JP2012003313A JP2012003313A (en) 2012-01-05
JP5635815B2 true JP5635815B2 (en) 2014-12-03

Family

ID=45535255

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010135033A Expired - Fee Related JP5635815B2 (en) 2010-06-14 2010-06-14 Computer system and control method thereof

Country Status (1)

Country Link
JP (1) JP5635815B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014078186A (en) * 2012-10-12 2014-05-01 Mitsubishi Electric Corp Multiplexing device, multiplexing method, and multiplexing program
JP6197585B2 (en) 2013-11-01 2017-09-20 富士通株式会社 Information processing apparatus and control method of information processing apparatus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06250868A (en) * 1993-02-25 1994-09-09 Mitsubishi Electric Corp Computer
JP2005309553A (en) * 2004-04-19 2005-11-04 Hitachi Ltd Computer
JP4394624B2 (en) * 2005-09-21 2010-01-06 株式会社日立製作所 Computer system and I / O bridge
JP5206009B2 (en) * 2008-02-18 2013-06-12 日本電気株式会社 Fault tolerant computer, synchronous control method, and program
JP4783392B2 (en) * 2008-03-31 2011-09-28 株式会社東芝 Information processing apparatus and failure recovery method
JP5268469B2 (en) * 2008-07-23 2013-08-21 株式会社東芝 High availability system and execution state control method
US8201169B2 (en) * 2009-06-15 2012-06-12 Vmware, Inc. Virtual machine fault tolerance

Also Published As

Publication number Publication date
JP2012003313A (en) 2012-01-05

Similar Documents

Publication Publication Date Title
US9052887B2 (en) Fault tolerance of data processing steps operating in either a parallel operation mode or a non-synchronous redundant operation mode
US9946870B2 (en) Apparatus and method thereof for efficient execution of a guest in a virtualized enviroment
US7890812B2 (en) Computer system which controls closing of bus
US8893122B2 (en) Virtual computer system and a method of controlling a virtual computer system on movement of a virtual computer
US10102373B2 (en) Method and apparatus for capturing operation in a container-based virtualization system
JP2008518310A (en) Method and apparatus for monitoring memory units in a multiprocessor system
CN106796546B (en) Method and apparatus for implementation in a data processing system
KR20150063417A (en) A data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains
JP6508382B1 (en) INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND PROGRAM
US20160259731A1 (en) Memory management
US20160034332A1 (en) Information processing system and method
JP6247816B2 (en) How to provide high integrity processing
US10746792B1 (en) Debug mechanisms for a processor circuit
US20110179255A1 (en) Data processing reset operations
US20120030504A1 (en) High reliability computer system and its configuration method
US20090248915A1 (en) Communication control apparatus and communication control method
US9864708B2 (en) Safely discovering secure monitors and hypervisor implementations in systems operable at multiple hierarchical privilege levels
JP5635815B2 (en) Computer system and control method thereof
US9535772B2 (en) Creating a communication channel between different privilege levels using wait-for-event instruction in systems operable at multiple levels hierarchical privilege levels
JP2011175641A (en) Reading to and writing from peripheral with temporally separated redundant processor execution
CN107111525B (en) System error handling in a data processing apparatus
WO2013008326A1 (en) Software verification method and software verification system
KR101268290B1 (en) Apparatus and method for detecting and recovering the fault of device driver in virtual machine
JP3628265B2 (en) Multiprocessor system unit
US20060195849A1 (en) Method for synchronizing events, particularly for processors of fault-tolerant systems

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140630

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140708

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140904

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140908

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141017

LAPS Cancellation because of no payment of annual fees