JP2013191089A - Exception processing method, program, and device - Google Patents

Exception processing method, program, and device Download PDF

Info

Publication number
JP2013191089A
JP2013191089A JP2012057848A JP2012057848A JP2013191089A JP 2013191089 A JP2013191089 A JP 2013191089A JP 2012057848 A JP2012057848 A JP 2012057848A JP 2012057848 A JP2012057848 A JP 2012057848A JP 2013191089 A JP2013191089 A JP 2013191089A
Authority
JP
Japan
Prior art keywords
operation code
instruction
host
virtual machine
exception
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012057848A
Other languages
Japanese (ja)
Other versions
JP5929353B2 (en
Inventor
Masao Yamamoto
昌生 山本
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012057848A priority Critical patent/JP5929353B2/en
Publication of JP2013191089A publication Critical patent/JP2013191089A/en
Application granted granted Critical
Publication of JP5929353B2 publication Critical patent/JP5929353B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide an exception processing method and the like supporting live migration so that original performance and functions of physical CPUs can be wastelessly used without the need for uniformizing an instruction set to an instruction set of the lowest order CPU even when different types of physical CPUs are present.SOLUTION: An instruction invalidated due to movement of a virtual machine between physical machines is detected, a valid operation code associated with an invalid operation code included in the detected instruction is acquired, and an instruction corresponding to the acquired valid operation code is executed.

Description

本発明は、仮想マシンが複数の物理マシン間を動的に移動するライブマイグレーションに関する。   The present invention relates to live migration in which a virtual machine dynamically moves between a plurality of physical machines.

ライブマイグレーションは、仮想マシンを動作させたまま、動作している物理マシンを他の物理マシンに移動させることである。仮想マシンが移動した場合、移動元のCPU(Central Processing Unit)と移動先のCPUとのCPUタイプが異なり、実行可能な命令セットが異なる場合がある。そのような場合、移動元のCPUでは発生しない未定義命令例外が、移動先のCPUにて発生する。   Live migration is to move an operating physical machine to another physical machine while operating the virtual machine. When a virtual machine moves, the CPU type of the movement source CPU (Central Processing Unit) and the movement destination CPU may be different, and the executable instruction set may be different. In such a case, an undefined instruction exception that does not occur in the source CPU occurs in the destination CPU.

従来、プログラム実行中に未定義命令による不正命令割り込みが発生すると、OSが未定義命令をエミュレーションするという例外処理の技術が知られている(特許文献1)。   Conventionally, there has been known an exception processing technique in which an OS emulates an undefined instruction when an illegal instruction interrupt due to an undefined instruction occurs during program execution (Patent Document 1).

特開平2−231634号公報JP-A-2-231634

しかしながら、従来技術では、未定義命令例外を発生する命令は予め定まっている必要がある。搭載されているCPUが異なる物理マシンが混在する環境にて、ライブマイグレーションを実行する場合、移動先の物理マシンは各物理マシンの状況に応じて、その都度、決定される。従って、未定義命令例外を発生する命令も、その都度異なるため、従来技術では対応できない。   However, in the prior art, an instruction that generates an undefined instruction exception needs to be predetermined. When live migration is executed in an environment in which physical machines with different CPUs are mixed, the destination physical machine is determined each time according to the status of each physical machine. Therefore, since the instruction that generates the undefined instruction exception is also different each time, the conventional technique cannot cope with it.

そこで、搭載されているCPUが異なる物理マシンが混在する環境にて、ライブマイグレーションを実行する場合には、すべてのCPUを下位互換の動作モードで起動しておき、動作可能な命令セットをすべてのCPUで統一することも行なわれている。この場合、上位のCPUは実行できる命令セットが制限される。そのため、複雑な処理を効率的に処理可能な拡張命令は実行されないため、CPUの本来の性能や機能を十分に活用できない。   Therefore, when performing live migration in an environment where physical machines with different installed CPUs coexist, start all CPUs in a backward compatible operation mode, and set all operable instruction sets. Unification by CPU is also performed. In this case, the instruction set that can be executed by the upper CPU is limited. For this reason, an extended instruction that can efficiently process complex processing is not executed, and the original performance and function of the CPU cannot be fully utilized.

1つの側面では、本発明は、異なるタイプの物理CPUが混在していても、物理CPUの本来の性能や機能を無駄なく利用可能となるよう、ライブマイグレーションに対応した例外処理方法等を提供することにある。   In one aspect, the present invention provides an exception handling method and the like corresponding to live migration so that the original performance and functions of physical CPUs can be used without waste even when different types of physical CPUs coexist. There is.

本願に開示する例外処理方法は、仮想マシンが物理マシン間を移動したことにより無効となった命令を検出し、検出した前記命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、取得した前記有効なオペレーションコードに対応した命令を実行する。   The exception handling method disclosed in the present application detects an invalid instruction by moving a virtual machine between physical machines, and obtains a valid operation code associated with the invalid operation code included in the detected instruction. Acquire and execute an instruction corresponding to the acquired effective operation code.

本願の一観点によれば、異なるタイプの物理CPUが混在していても、物理CPUの本来の性能や機能を無駄なく利用可能となる。   According to one aspect of the present application, even if different types of physical CPUs are mixed, the original performance and functions of the physical CPUs can be used without waste.

情報処理システムの概要を示す説明図である。It is explanatory drawing which shows the outline | summary of an information processing system. ホストのハードウェア群を示すブロック図である。It is a block diagram which shows the hardware group of a host. 実施の形態1に係るホストの機能構成を示すための説明図である。FIG. 3 is an explanatory diagram for illustrating a functional configuration of a host according to the first embodiment. 未定義命令例外が発生した場合のホストの処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of a host when an undefined instruction exception generate | occur | produces. オペコードテーブルのレコードレイアウトの一例を示す説明図である。It is explanatory drawing which shows an example of the record layout of an opcode table. エミュレーションコードテーブルのレコードレイアウトの一例を示す説明図である。It is explanatory drawing which shows an example of the record layout of an emulation code table. 実施の形態2に係るホストの機能構成を示すための説明図である。FIG. 6 is an explanatory diagram for illustrating a functional configuration of a host according to a second embodiment. 未定義命令例外が発生した場合のホストの処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of a host when an undefined instruction exception generate | occur | produces. 実施の形態3に係るバックエンド処理の処理手順を示すフローチャートである。10 is a flowchart showing a processing procedure of back-end processing according to the third embodiment. 実施の形態1から3に係るホストの構成を示すブロック図である。4 is a block diagram showing a configuration of a host according to Embodiments 1 to 3. FIG. 実施の形態4に係る命令書き換え処理の処理手順を示すフローチャートである。14 is a flowchart illustrating a processing procedure of instruction rewriting processing according to the fourth embodiment. 実施の形態5に係るホスト及び管理ホストの機能構成を示すための説明図である。FIG. 10 is an explanatory diagram for illustrating a functional configuration of a host and a management host according to a fifth embodiment. 実施の形態5に係るホスト及び管理ホストにおける例外処理の処理手順を示すフローチャートである。10 is a flowchart illustrating a processing procedure of exception processing in a host and a management host according to a fifth embodiment. 実施の形態6に係る例外処理装置のハードウェア群を示すブロック図である。FIG. 20 is a block diagram illustrating a hardware group of an exception handling device according to a sixth embodiment. 実施の形態7に係るホストのハードウェア群を示すブロック図である。FIG. 20 is a block diagram illustrating a hardware group of a host according to a seventh embodiment.

実施の形態1
以下実施の形態を、図面を参照して説明する。図1は情報処理システムの概要を示す説明図である。情報処理システムはインターネット、LAN(Local Area Network)及び公衆電話網等の通信網Nを介して相互に接続される複数のホストコンピュータ1(以下、「ホスト1」と略記する。)、ホストコンピュータ2(以下、「ホスト2」と略記する。)、管理ホストコンピュータ3(以下、「管理ホスト3」と略記する。)、共有ディスク4を含む。ホスト1、ホスト2、及び管理ホスト3は、例えばサーバコンピュータである。
Embodiment 1
Hereinafter, embodiments will be described with reference to the drawings. FIG. 1 is an explanatory diagram showing an outline of an information processing system. The information processing system includes a plurality of host computers 1 (hereinafter abbreviated as “host 1”) and host computers 2 connected to each other via a communication network N such as the Internet, a LAN (Local Area Network), and a public telephone network. (Hereinafter abbreviated as “host 2”), a management host computer 3 (hereinafter abbreviated as “management host 3”), and a shared disk 4. The host 1, the host 2, and the management host 3 are server computers, for example.

ホスト1及びホスト2は、主として情報処理システムのユーザにサービスを提供するコンピュータである。ホスト1及びホスト2は仮想マシン(VM:Virtual Machine)を提供するよう構成されている。ホスト1及びホスト2はそれぞれ物理的には一台の計算機であるが、ハイパーバイザと呼ばれるソフトウェアによりCPU、メモリ等の資源を論理的に分割し、独立した仮想マシンが複数動作可能となっている。各仮想マシンは、それぞれOSが動作し、それぞれのOS上でアプリケーションプログラムが動作し、ユーザにサービスを提供している。   The host 1 and the host 2 are computers that mainly provide services to users of the information processing system. The host 1 and the host 2 are configured to provide a virtual machine (VM: Virtual Machine). Each of the host 1 and the host 2 is physically one computer, but resources such as CPU and memory are logically divided by software called a hypervisor so that a plurality of independent virtual machines can operate. . Each virtual machine runs an OS, and an application program runs on each OS to provide services to users.

管理ホスト3は、主として、ホスト1及びホスト2にて動作するハイパーバイザ及び仮想マシンにより構成された仮想化環境を管理・制御する。管理ホスト3は、仮想化環境を管理・制御するための管理・制御ミドルウェアが動作する。   The management host 3 mainly manages and controls a virtual environment configured by a hypervisor and virtual machines operating on the host 1 and the host 2. The management host 3 operates management / control middleware for managing / controlling the virtual environment.

共有ディスク4は、ホスト1、ホスト2、及び管理ホスト3のいずれのコンピュータからもアクセスが可能なディスクである。各ホストは自らの動作に必要なデータを共有ディスク4に書き込み、書き込んだデータの読み込みを行う。各仮想マシンは、共有ディスク上にVMイメージファイルを作成し、仮想ディスクとして共有ディスク4を利用する。   The shared disk 4 is a disk that can be accessed from any of the hosts 1, 2, and 3. Each host writes data necessary for its own operation to the shared disk 4 and reads the written data. Each virtual machine creates a VM image file on the shared disk and uses the shared disk 4 as a virtual disk.

図1に示す例では、ホスト1には3つの仮想マシンVM1、VM2、VM3が、ホスト2には2つの仮想マシンVM4、VM5が動作している。仮想マシンVM4は、ホスト1にて動作していたが、動作させたままホスト2に移動されている。すなわち、ライブマイグレーションにより仮想マシンVM4が移動されている。   In the example shown in FIG. 1, three virtual machines VM1, VM2, and VM3 are operating on the host 1, and two virtual machines VM4 and VM5 are operating on the host 2. The virtual machine VM4 was operating on the host 1, but has been moved to the host 2 while operating. That is, the virtual machine VM4 is moved by live migration.

図2はホスト1のハードウェア群を示すブロック図である。ここでは、ホスト1についてのみ説明するが、ホスト2についても同様な構成である。ホスト1は制御部としてのCPU11、RAM(Random Access Memory)12、記憶部13、及び通信部14等を含む。CPU11は、バスを介してハードウェア各部と接続されている。CPU11は記憶部13に記憶された制御プログラムに従いハードウェア各部を制御する。RAM12は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM12は、記憶部としても機能し、CPU11による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。   FIG. 2 is a block diagram showing a hardware group of the host 1. Although only the host 1 will be described here, the host 2 has the same configuration. The host 1 includes a CPU 11 as a control unit, a RAM (Random Access Memory) 12, a storage unit 13, a communication unit 14, and the like. The CPU 11 is connected to each part of hardware via a bus. The CPU 11 controls each part of the hardware according to the control program stored in the storage unit 13. The RAM 12 is, for example, SRAM (Static RAM), DRAM (Dynamic RAM), flash memory, or the like. The RAM 12 also functions as a storage unit, and temporarily stores various data generated when the CPU 11 executes various programs.

記憶部13は例えば、ハードディスクまたは大容量フラッシュメモリ等である。記憶部13にはハイパーバイザプログラム、VMイメージファイルが記憶されうる場所の一つである。ハイパーバイザプログラムは仮想化環境を実現するためのプログラムである。ハイパーバイザ上で仮想マシンが動作する。仮想マシン上でOS(Operating System)が動作し、さらにOS上でアプリケーションプログラムが動作し、ユーザにサービスを提供する。各仮想マシン上で動作するOSやアプリケーションプログラムはその各該当VMイメージファイル内に書き込まれて(インストールされて)存在している。VMイメージファイルはいわば仮想マシンに接続される仮想ディスクである。   The storage unit 13 is, for example, a hard disk or a large-capacity flash memory. The storage unit 13 is one of locations where a hypervisor program and a VM image file can be stored. The hypervisor program is a program for realizing a virtual environment. A virtual machine runs on the hypervisor. An OS (Operating System) operates on the virtual machine, and an application program operates on the OS to provide a service to the user. The OS and application program operating on each virtual machine are written (installed) in each corresponding VM image file. A VM image file is a virtual disk connected to a virtual machine.

通信部14は例えばLAN(Local Area Network)カード等であり、ユーザ端末、例えばホスト2などの他のホスト、管理ホスト等と通信を行う。   The communication unit 14 is a LAN (Local Area Network) card, for example, and communicates with a user terminal, for example, another host such as the host 2, a management host, or the like.

本実施の形態では、ホスト1は、拡張命令セットが動作可能なCPUを備えるが、ホスト2は、拡張命令セットが動作しないCPUを備えている。ホスト1からホスト2へライブマイグレーションされた仮想マシンVM4は、拡張命令セットが用いられるアプリケーションが動作しているため、ホスト2では未定義命令例外が発生する。図3は実施の形態1に係るホストの機能構成を示すための説明図である。図4は未定義命令例外が発生した場合のホスト2の処理手順を示すフローチャートである。   In the present embodiment, the host 1 includes a CPU that can operate the extended instruction set, but the host 2 includes a CPU that does not operate the extended instruction set. In the virtual machine VM4 that is live migrated from the host 1 to the host 2, an application using an extended instruction set is running, and therefore an undefined instruction exception occurs in the host 2. FIG. 3 is an explanatory diagram for illustrating a functional configuration of the host according to the first embodiment. FIG. 4 is a flowchart showing the processing procedure of the host 2 when an undefined instruction exception occurs.

割り込みハンドラ25aは、未定義命令例外が発生した場合に起動され、例外処理を行う。図5はオペコードテーブル25bのレコードレイアウトの一例を示す説明図である。オペコードテーブル25bは、拡張命令列を含む。拡張命令列には、他ホストのCPUでは実行可能であるが、CPU21では実行できない無効な命令、すなわち、実行すると未定義命令例外が発生する命令のオペコードを記憶している。図5では一例として、OP1、OP2、…がオペコードとして記憶されている。オペコードマッチャー25cは、未定義命令例外を発生させた命令を取得し、取得した命令のオペコードが、オペコードテーブル25bに記憶されているかを調べる。
なお、オペコードはオペレーションコードとも記載するが、本明細書では主としてオペコードと記載する。
The interrupt handler 25a is activated when an undefined instruction exception occurs, and performs exception processing. FIG. 5 is an explanatory diagram showing an example of a record layout of the operation code table 25b. The opcode table 25b includes an extended instruction sequence. The extended instruction string stores an opcode of an invalid instruction that can be executed by the CPU of the other host but cannot be executed by the CPU 21, that is, an instruction that generates an undefined instruction exception when executed. In FIG. 5, as an example, OP1, OP2,... Are stored as operation codes. The operation code matcher 25c acquires the instruction that caused the undefined instruction exception, and checks whether the operation code of the acquired instruction is stored in the operation code table 25b.
Although the operation code is also described as an operation code, it is mainly described as an operation code in this specification.

エミュレーション部25dは、CPU21では無効となる命令をエミュレーションする。図6はエミュレーションコードテーブル25eのレコードレイアウトの一例を示す説明図である。エミュレーションコードテーブル25eは、拡張命令列、引数列、代替コード列を含む。拡張命令列は、未定義命令例外が発生する拡張命令のオペコードが格納されている。引数列は、拡張命令に対する引数が格納されている。代替コード列は、拡張命令をエミュレーションするための代替コードが格納されている。図6では一例として、オペコードOP1の命令は、引数a、bを取り、その代替コードは、それぞれオペコードがOP11、OP12、OP13である3つの命令から構成されることが示されている。オペコードOP2の命令は、引数aを取り、その代替コードは、オペコードOP21、OP22である2つの命令から構成されることが示されている。
エミュレーション部25dは、代替コードをエミュレーションコードテーブル25eより取得し、それを基に、未定義命令例外を発生させた命令のエミュレーションを行う。
The emulation unit 25d emulates an instruction that is invalid in the CPU 21. FIG. 6 is an explanatory diagram showing an example of a record layout of the emulation code table 25e. The emulation code table 25e includes an extended instruction sequence, an argument sequence, and an alternative code sequence. The extended instruction sequence stores an opcode of an extended instruction that causes an undefined instruction exception. The argument string stores an argument for the extension instruction. The substitute code string stores substitute codes for emulating extension instructions. As an example, FIG. 6 shows that the instruction of the operation code OP1 takes arguments a and b, and the alternative codes are composed of three instructions whose operation codes are OP11, OP12, and OP13, respectively. The instruction of the operation code OP2 takes an argument a, and the alternative code is shown to be composed of two instructions which are operation codes OP21 and OP22.
The emulation unit 25d obtains an alternative code from the emulation code table 25e, and performs emulation of the instruction that caused the undefined instruction exception based on the replacement code.

レジスタコンテキスト退避・復元領域25fは、未定義命令例外が発生時のレジスタの状態を退避させておくための領域である。例外発生時、まずCPU21は自動的にその時点の各種レジスタの状態をレジスタコンテキスト退避・復元領域25fに退避させる。そしてその後、ハイパーバイザ25に割込みをあげて、該当例外の担当としてハイパーバイザ25に登録されている割り込みハンドラ25aが例外処理を行う。例外処理が終わると、レジスタコンテキスト退避・復元領域25fに基づき、CPU21が自動的にレジスタの状態を復元して、割込み元のプログラムに制御を戻す。   The register context save / restore area 25f is an area for saving the register state when an undefined instruction exception occurs. When an exception occurs, first, the CPU 21 automatically saves the state of various registers at that time in the register context save / restore area 25f. Thereafter, an interrupt is given to the hypervisor 25, and the interrupt handler 25a registered in the hypervisor 25 in charge of the corresponding exception performs exception processing. When the exception processing ends, the CPU 21 automatically restores the register state based on the register context save / restore area 25f, and returns control to the interrupt source program.

図4に戻り、割り込みハンドラ25aによる処理について説明する。仮想マシンVM4により、CPU21は、自分が対応していない拡張命令を実行する。CPU21にて、未定義命令例外が発生する(ステップS1)。それに伴い、CPU21は、未定義命令例外の割り込みを発生する(ステップS2)。CPU21は、ハイパーバイザ25の設定に従い、予め未定義命令例外の割り込みハンドラとして登録されている割り込みハンドラ25aへ制御を移行する(ステップS3)。   Returning to FIG. 4, the processing by the interrupt handler 25a will be described. The virtual machine VM4 causes the CPU 21 to execute an extension instruction that is not supported by the CPU 21. An undefined instruction exception occurs in the CPU 21 (step S1). Accordingly, the CPU 21 generates an undefined instruction exception interrupt (step S2). In accordance with the setting of the hypervisor 25, the CPU 21 shifts the control to the interrupt handler 25a registered in advance as an interrupt handler for an undefined instruction exception (step S3).

CPU21は、オペコードマッチャー25cとして機能し、未定義命令例外を発生させた命令のオペコードを取得する。CPU21は、オペコードテーブル25bを検索し、取得したオペコードがオペコードテーブル25bに含まれているかを調べる(ステップS4)。CPU21は検索にヒットしたか否かを調べる(ステップS5)。検索にヒットした場合(ステップS5でYES)、CPU21は、エミュレーション部25dとして機能し、エミュレーションコードテーブル25eから未定義命令に対応した代替コードを取り出す。代替コードは、CPU21において有効な命令(オペコードと引数)から構成されている。CPU21は代替コードを基に、未定義命令をエミュレートするコードを生成し、未定義命令をエミュレートする(ステップS6)。CPU21は、エミュレートした命令に戻り値があるか否かを調べる(ステップS7)。戻り値がある場合(ステップS7でYES)、戻り値をレジスタコンテキスト退避・復元領域25fに反映させる(ステップS8)。CPU21は、制御を仮想マシンVM4に戻し(ステップS9)、割り込みハンドラとしての処理を終了する。戻り値がない場合(ステップS7でNO)、CPU21は、制御を仮想マシンVM4に戻し(ステップS9)、割り込みハンドラとしての処理を終了する。未定義命令例外を発生させた命令のオペコードを検索して、検索にヒットしなかった場合(ステップS5でNO)、拡張命令が実行されたことが原因ではないので、通常の例外処理(ステップS10)を行い、処理を終了する。   The CPU 21 functions as the operation code matcher 25c, and acquires the operation code of the instruction that caused the undefined instruction exception. The CPU 21 searches the operation code table 25b and checks whether the acquired operation code is included in the operation code table 25b (step S4). The CPU 21 checks whether or not the search is hit (step S5). If the search is hit (YES in step S5), the CPU 21 functions as the emulation unit 25d, and extracts an alternative code corresponding to the undefined instruction from the emulation code table 25e. The substitute code is composed of instructions (opcode and argument) effective in the CPU 21. Based on the alternative code, the CPU 21 generates a code that emulates an undefined instruction, and emulates the undefined instruction (step S6). The CPU 21 checks whether the emulated instruction has a return value (step S7). If there is a return value (YES in step S7), the return value is reflected in the register context save / restore area 25f (step S8). The CPU 21 returns control to the virtual machine VM4 (step S9), and ends the processing as an interrupt handler. If there is no return value (NO in step S7), the CPU 21 returns the control to the virtual machine VM4 (step S9) and ends the process as an interrupt handler. If the operation code of the instruction that caused the undefined instruction exception is searched and the search is not hit (NO in step S5), it is not caused by the execution of the extended instruction, so that the normal exception processing (step S10) is performed. ) To finish the process.

以上のように、実施の形態1では、拡張命令に対応していないホストにおいて、拡張命令に起因する未定義命令例外が発生した場合、例外を発生させた命令をエミュレートして実行する。それにより、異なるタイプの物理CPUが混在していても、命令セットを最下位CPUの命令セットに揃える必要が無いので、物理CPUの本来の性能や機能が無駄なく利用可能となる。   As described above, in the first embodiment, when an undefined instruction exception caused by an extended instruction occurs in a host that does not support the extended instruction, the instruction that generated the exception is emulated and executed. Thereby, even if different types of physical CPUs are mixed, it is not necessary to align the instruction set with the instruction set of the lowest CPU, so that the original performance and functions of the physical CPU can be used without waste.

実施の形態2
実施の形態1では、未定義命令例外が発生した場合に、例外を発生させた命令をエミュレートして実行している。実施の形態2では、例外を発生させた命令をエミュレートする際に、仮想マシンVM4のメモリ上やディスク上の該当命令をエミュレートする命令に書き換えるものとする。それにより、一度未定義命令例外を発生させた命令は、すべてエミュレーションするための命令に書き換わるので、同一仮想マシンにおいて、再び同一の命令による未定義命令例外は発生しない。そのため、例外処理の発生回数が減るので、より効率的な処理が可能となる。
Embodiment 2
In the first embodiment, when an undefined instruction exception occurs, the instruction that caused the exception is emulated and executed. In the second embodiment, when the instruction that caused the exception is emulated, the instruction on the memory of the virtual machine VM4 or on the disk is rewritten to the instruction to emulate. As a result, all instructions that have once generated an undefined instruction exception are rewritten as instructions for emulation, and therefore an undefined instruction exception due to the same instruction does not occur again in the same virtual machine. As a result, the number of occurrences of exception processing is reduced, and more efficient processing is possible.

図7は実施の形態2に係るホストの機能構成を示すための説明図である。実施の形態2においては、割り込みハンドラ25aにバイナリパッチ部25gが追加されている。バイナリパッチ部25gは、仮想マシンで動作しているプログラムのバイナリコードを書き換える機能を持っている。このバイナリパッチ部25gにより、未定義命令例外を発生させる命令をエミュレーションコードに書き換える。   FIG. 7 is an explanatory diagram for illustrating a functional configuration of a host according to the second embodiment. In the second embodiment, a binary patch unit 25g is added to the interrupt handler 25a. The binary patch unit 25g has a function of rewriting a binary code of a program running on the virtual machine. The binary patch unit 25g rewrites an instruction that generates an undefined instruction exception into an emulation code.

図8は未定義命令例外が発生した場合のホストの処理手順を示すフローチャートである。以下では、実施の形態1との相違点について主に説明する。CPU21は、オペコードマッチャー25cとして機能し、未定義命令例外を発生させた命令のオペコードがオペコードテーブル25bに含まれているかを調べる(ステップS4)。CPU21は検索にヒットしたか否かを調べる(ステップS5)。検索にヒットした場合(ステップS5でYES)、CPU21は、エミュレーション部25dとして機能し、エミュレーションコードテーブル25eから未定義命令に対応した代替コードを取り出す。CPU21は代替コードを基に、未定義命令をエミュレートするエミュレーションコードを生成する(ステップS11)。CPU21は、バイナリパッチ部25gとして機能し、未定義命令例外を発生させた仮想マシンVM4が管理するRAM12、記憶部13、共有ディスク4上のVMイメージファイルを検索し(ステップS12)、記憶されているプログラムコードに含まれる未定義命令例外を発生させた命令をすべて、それに対応したエミュレーションコードに書き換える(ステップS13)。具体的には、RAM12の空き領域にエミュレーションコードを書き込む。エミュレーションコードの最後にはリターン命令を設けておき、ジャンプ元に戻るようにする。未定義命令例外を発生させた命令をジャンプ命令に置き換え、RAM12の空き領域に書き込んだエミュレーションコードを実行するようにする。   FIG. 8 is a flowchart showing the processing procedure of the host when an undefined instruction exception occurs. Hereinafter, differences from the first embodiment will be mainly described. The CPU 21 functions as the operation code matcher 25c, and checks whether the operation code of the instruction that caused the undefined instruction exception is included in the operation code table 25b (step S4). The CPU 21 checks whether or not the search is hit (step S5). If the search is hit (YES in step S5), the CPU 21 functions as the emulation unit 25d, and extracts an alternative code corresponding to the undefined instruction from the emulation code table 25e. Based on the alternative code, the CPU 21 generates an emulation code that emulates an undefined instruction (step S11). The CPU 21 functions as the binary patch unit 25g, searches for the VM image file on the RAM 12, the storage unit 13, and the shared disk 4 managed by the virtual machine VM4 that has generated the undefined instruction exception (step S12), and is stored. All the instructions that have generated an undefined instruction exception included in the existing program code are rewritten to the corresponding emulation code (step S13). Specifically, the emulation code is written in an empty area of the RAM 12. A return instruction is provided at the end of the emulation code to return to the jump source. The instruction that caused the undefined instruction exception is replaced with a jump instruction, and the emulation code written in the empty area of the RAM 12 is executed.

次に、CPU21は未定義命令例外が発生した前の状態に戻す(ステップS14)。CPU21は仮想マシンに制御を戻す(ステップS9)。仮想マシンでは、未定義命令例外が発生する直前の状態に戻っている。次の命令が実行されるが、上述の処理により、コードが書き変わっているので、実行される命令は、未定義命令ではなく、例えばジャンプ命令となっている。ジャンプ命令により、未定義命令をエミュレートするコードが呼び出され、未定義命令がエミュレートされる。   Next, the CPU 21 returns to the state before the occurrence of the undefined instruction exception (step S14). The CPU 21 returns control to the virtual machine (step S9). In the virtual machine, the state immediately before the occurrence of the undefined instruction exception is restored. The next instruction is executed. However, since the code has been rewritten by the above-described processing, the executed instruction is not an undefined instruction but a jump instruction, for example. The jump instruction calls a code that emulates an undefined instruction and emulates the undefined instruction.

なお、上述の説明では、未定義命令例外が発生した命令を書き換えた後に、CPU21の状態を戻して、仮想マシンの制御に戻しているが、実施の形態1と同様に、未定義命令例外が発生した命令のエミュレートを行い、処理を仮想マシンに戻した後に、バックエンドプロセスでコードの書き換えを行うこととしても良い。   In the above description, after rewriting an instruction in which an undefined instruction exception has occurred, the state of the CPU 21 is returned to return to control of the virtual machine. However, as in the first embodiment, an undefined instruction exception is returned. It is also possible to rewrite the code in the backend process after emulating the generated instruction and returning the processing to the virtual machine.

上述したように、実施の形態2においては、未定義命令例外が発生した時点で、例外を発生させた仮想マシンが管理するRAM12、記憶部13、共有ディスク4上のVMイメージファイルを検索し、例外を発生させた命令を書き換える。それにより、一度、例外を発生させた命令については、エミュレーションコードが実行され、例外が発生しなくなるので、例外処理によるオーバーヘッドが少なくなり、より効率的に処理を行うことが可能となる。   As described above, in the second embodiment, when an undefined instruction exception occurs, the VM image file on the RAM 12, the storage unit 13, and the shared disk 4 managed by the virtual machine that has generated the exception is searched. Rewrite the instruction that caused the exception. As a result, once the exception has occurred, the emulation code is executed and no exception is generated. Therefore, the overhead due to exception processing is reduced, and the processing can be performed more efficiently.

本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。   The second embodiment is as described above, and the other parts are the same as those of the first embodiment. Therefore, the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.

実施の形態3
実施の形態2では、未定義命令例外を発生させた命令のみに関して、プログラムコードの書き換えを行った。実施の形態3では、未定義命令例外を発せさせるすべての命令を対象とし、バックエンドで書き換え処理を行う。ここで言うバックエンドで処理を行うとは、バックグラウンドで処理を動作させ、ユーザとの対話する機能を持たないことを意味している。
Embodiment 3
In the second embodiment, the program code is rewritten only for the instruction that caused the undefined instruction exception. In the third embodiment, all instructions that cause an undefined instruction exception are targeted, and rewrite processing is performed at the back end. Processing in the back end here means that the processing is performed in the background and does not have a function of interacting with the user.

バックエンド処理は、ハイパーバイザ25が備える機能である。ハイパーバイザはCPU21の負荷状況を監視し、アイドル時にバックエンド処理を起動する。図9は実施の形態3に係るバックエンド処理の処理手順を示すフローチャートである。   The back-end process is a function that the hypervisor 25 has. The hypervisor monitors the load status of the CPU 21 and activates back-end processing when idling. FIG. 9 is a flowchart showing a processing procedure of back-end processing according to the third embodiment.

CPU21は、オペコードテーブルより未定義命令例外を発生させるオペコードを取得する(ステップS21)。ここで言うオペコードテーブルは図5に示すものと同様なものである。CPU21は、仮想マシンが管理するRAM12、記憶部13、共有ディスク4上のVMイメージファイルを検索し、記憶されているプログラムコードが取得したオペコードを含んでいないか否かを調べる(ステップS22)。CPU21は検索がヒットしたか否かを調べる(ステップS23)。検索がヒットした場合(ステップS23でYES)、CPU21は、取得したオペコードに対応した代替コードをエミュレーションコードテーブルより取得し、エミュレーションコードを生成する(ステップS24)。ここで言うエミュレーションコードテーブルとは図6に示すものと同様なものである。CPU21は、未定義命令例外が発生する命令を、エミュレーションコードに書き換える(ステップS25)。この書き換えは、実施の形態2と同様である。   The CPU 21 acquires an operation code that causes an undefined instruction exception from the operation code table (step S21). The opcode table referred to here is the same as that shown in FIG. The CPU 21 searches for the VM image file on the RAM 12, the storage unit 13, and the shared disk 4 managed by the virtual machine, and checks whether or not the stored program code includes the acquired operation code (step S22). The CPU 21 checks whether or not the search is hit (step S23). If the search is hit (YES in step S23), the CPU 21 acquires an alternative code corresponding to the acquired operation code from the emulation code table, and generates an emulation code (step S24). The emulation code table here is the same as that shown in FIG. The CPU 21 rewrites an instruction that causes an undefined instruction exception into an emulation code (step S25). This rewriting is the same as in the second embodiment.

CPU21は、すべてのオペコードについて検索したかを判定する(ステップS26)。すべてのオペコードについて検索が完了した場合(ステップS26でYES)、CPU21は処理を終了する。すべてのオペコードについて検索が完了していない場合(ステップS26でNO)、CPU21は処理をステップS21に戻し、未だ検索していない未定義命令例外を発生させる命令のオペコードを取得し、処理を行う。   The CPU 21 determines whether all the operation codes have been searched (step S26). When the search is completed for all the operation codes (YES in step S26), the CPU 21 ends the process. If the search has not been completed for all the operation codes (NO in step S26), the CPU 21 returns the process to step S21, acquires the operation code of the instruction that causes an undefined instruction exception that has not been searched, and performs the process.

上述のように、実施の形態3においては、未定義命令例外を発生させる命令をバックエンド処理にて書き換えを行うので、未定義命令例外を発生する頻度を低減され、例外処理によるオーバーヘッドが少なくなり、より効率的に処理を行うことが可能となる。   As described above, in the third embodiment, since an instruction that generates an undefined instruction exception is rewritten by back-end processing, the frequency of occurrence of an undefined instruction exception is reduced, and the overhead due to exception processing is reduced. It becomes possible to perform processing more efficiently.

本実施の形態3は以上の如きであり、その他は実施の形態1及び実施の形態2と同様であるので、対応する部分には同一の符号を付してその詳細な説明を省略する。   The third embodiment is as described above, and the other parts are the same as in the first and second embodiments. Therefore, the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.

図10は、実施の形態1から3に係るホスト2の構成を示すブロック図である。CPU21が制御プログラム等を実行することにより、ホスト2は以下のように動作する。仮想マシン実行部21aは、仮想マシンを動作させ、ユーザにサービスを提供する。例外検知部21bは、未定義命令例外などの例外の発生を検知する。オペコードマッチャー21c、エミュレーション部21d、バイナリパッチ部21gは上述した動作を行う。オペコードテーブル25b、エミュレーションコードテーブル25e、レジスタコンテキスト退避・復元領域25fの機能は、上述したとおりである。なお、ホスト1についても、ホスト2と同様な構成である。   FIG. 10 is a block diagram illustrating a configuration of the host 2 according to the first to third embodiments. When the CPU 21 executes a control program or the like, the host 2 operates as follows. The virtual machine execution unit 21a operates the virtual machine and provides a service to the user. The exception detection unit 21b detects the occurrence of an exception such as an undefined instruction exception. The opcode matcher 21c, the emulation unit 21d, and the binary patch unit 21g perform the above-described operations. The functions of the operation code table 25b, the emulation code table 25e, and the register context save / restore area 25f are as described above. The host 1 has the same configuration as the host 2.

実施の形態4
実施の形態1から3においては、仮想マシンがマイグレーション後に、未定義命令例外を発生させた命令のエミュレート、または未定義命令例外を発生させる命令の書き換えを行っている。本実施の形態においては、マイグレーションを行う際に、未定義命令例外を発生させる命令の書き換えを行う。
Embodiment 4
In the first to third embodiments, after migration, the virtual machine emulates an instruction that caused an undefined instruction exception or rewrites an instruction that causes an undefined instruction exception. In the present embodiment, when migration is performed, an instruction that causes an undefined instruction exception is rewritten.

図11は実施の形態4に係る命令書き換え処理の処理手順を示すフローチャートである。ホスト1からホスト2へ仮想マシンVM4が移動する場合の処理である。   FIG. 11 is a flowchart showing the procedure of the instruction rewriting process according to the fourth embodiment. This is processing when the virtual machine VM4 moves from the host 1 to the host 2.

管理ホスト3は、仮想マシンVM4をホスト2にライブマイグレーションにより移動することをホスト1に通知する(ステップS31)。ホスト1のCPU11は、ホスト2では無効となる命令のオペコードの一覧を取得する(ステップS32)。該一覧は、図5に示したオペコードテーブル25bと同様なものである。該一覧は移動先のホスト2より取得する。CPU11は、一覧より処理対象とするオペコードを取得する(ステップS33)。CPU11は、仮想マシンVM4が管理するメモリイメージ内に、処理対象のオペコードが含まれていないか検索を行う(ステップS34)。CPU11は検索結果を検証する(ステップS35)。検索にヒットした場合(ステップS35でYES)、エミュレーションコードを生成する(ステップS36)。エミュレーションコードの生成については、上述した処理と同様であり、図6に示したエミュレーションコードテーブル25eと同様なテーブルを用いて生成する。該テーブルは移動先のホスト2より取得する。CPU11は、無効となる命令をエミュレーションコードに書き換える(ステップS37)。CPU11は無効となるすべての命令のオペコードについて検索したかを判定する(ステップS38)。すべてのオペコードについて検索をしている場合(ステップS38でYES)、仮想マシンVM4のメモリイメージを移動先のホスト2に転送する(ステップS39)。管理ホスト3は、ライブマイグレーションを実行し、仮想マシンVM4をホスト1からホスト2に移動する(ステップS40)。検索がヒットしなかった場合(ステップS35でNO)、CPU11は処理をステップS38に移す。すべてのオペコードについて検索していない場合(ステップS38でNO)、CPU11は処理をステップS33に移す。   The management host 3 notifies the host 1 that the virtual machine VM4 is moved to the host 2 by live migration (step S31). The CPU 11 of the host 1 acquires a list of operation codes of instructions that are invalid in the host 2 (step S32). This list is the same as the operation code table 25b shown in FIG. The list is acquired from the destination host 2. The CPU 11 acquires an operation code to be processed from the list (step S33). The CPU 11 performs a search for whether or not the operation code to be processed is included in the memory image managed by the virtual machine VM4 (step S34). The CPU 11 verifies the search result (step S35). If the search is hit (YES in step S35), an emulation code is generated (step S36). The generation of the emulation code is the same as that described above, and is generated using a table similar to the emulation code table 25e shown in FIG. The table is obtained from the host 2 of the movement destination. The CPU 11 rewrites an invalid instruction with an emulation code (step S37). The CPU 11 determines whether or not all the operation codes of the invalid instructions have been searched (step S38). If all the operation codes have been searched (YES in step S38), the memory image of the virtual machine VM4 is transferred to the destination host 2 (step S39). The management host 3 executes live migration and moves the virtual machine VM4 from the host 1 to the host 2 (step S40). If the search is not hit (NO in step S35), the CPU 11 advances the process to step S38. If all the operation codes have not been searched (NO in step S38), the CPU 11 moves the process to step S33.

本実施の形態では、ライブマイグレーションの際の仮想マシンイメージ送信時に移動先ホストで無効となる命令の書き換えを行うので、ライブマイグレーション後に、未定義命令例外を発生することを防ぐことが可能となる。   In this embodiment, since an instruction that becomes invalid at the migration destination host is rewritten when a virtual machine image is transmitted during live migration, it is possible to prevent an undefined instruction exception from occurring after live migration.

本実施の形態においては、仮想マシン移動元のホスト1が無効命令の書き換えを行ったが、移動先のホスト2が行なっても良い。その場合、ホスト2は、まず、ホスト1より送信された仮想マシンイメージを受信する。ホスト2は、受信した仮想マシンイメージに対して、図11で示したステップS32からS38までの処理と同様な処理を行い、無効命令の書き換えを行う。書き換えが終了したら、管理ホスト3に通知し、マイグレーションを実行すれば良い。   In the present embodiment, the virtual machine migration source host 1 rewrites the invalid instruction, but the migration destination host 2 may do it. In that case, the host 2 first receives the virtual machine image transmitted from the host 1. The host 2 performs processing similar to the processing from step S32 to S38 shown in FIG. 11 on the received virtual machine image, and rewrites the invalid instruction. When the rewriting is completed, the management host 3 is notified and migration may be executed.

上述の実施の形態1から4において、オペコードテーブル25b、エミュレーションコードテーブル25eは、割り込みハンドラ25aのプログラム内に保持している。割り込みハンドラ25aがRAMにロードされる際にオペコードテーブル25b、エミュレーションコードテーブル25eがメモリにロードされる。オペコードテーブル25b、エミュレーションコードテーブル25eの内容を更新する場合には、割り込みハンドラ25aのプログラム自体の更新が必要となるので、メンテナンス性が低くなる。   In the first to fourth embodiments described above, the operation code table 25b and the emulation code table 25e are held in the program of the interrupt handler 25a. When the interrupt handler 25a is loaded into the RAM, the operation code table 25b and the emulation code table 25e are loaded into the memory. When updating the contents of the operation code table 25b and the emulation code table 25e, it is necessary to update the program of the interrupt handler 25a, so that maintainability is lowered.

変形例1
変形例1では、オペコードテーブル25b、エミュレーションコードテーブル25eをプログラムコードに埋め込むのではなく、各ホストが備えるハードディスク、フラッシュメモリなどの記憶装置に記憶することとする。割り込みハンドラ25aは必要に応じて、記憶装置に記憶したオペコードテーブル25b、エミュレーションコードテーブル25eを参照する。この場合、テーブルの更新は、記憶装置上のテーブルを置き換えるだけで済むので、メンテナンス性が高い。また、割り込みハンドラ25aが動作中であっても、更新が行えるという利点がある。
Modification 1
In the first modification, the operation code table 25b and the emulation code table 25e are not embedded in the program code, but are stored in a storage device such as a hard disk or a flash memory provided in each host. The interrupt handler 25a refers to the operation code table 25b and the emulation code table 25e stored in the storage device as necessary. In this case, the table can be updated simply by replacing the table on the storage device, so that maintenance is high. Further, there is an advantage that updating can be performed even when the interrupt handler 25a is operating.

変形例2
変形例2では、オペコードテーブル25b、エミュレーションコードテーブル25eを、共有ディスク4に記憶することとする。テーブルを一元管理できるので、変形例1よりもさらにメンテナンス性が向上する。ただし、共有ディスクへのアクセスが増えると読み出し時間がオーバーヘッドとなるので、割り込みハンドラ25aをロードする際に、メモリ上にオペコードテーブル25b、エミュレーションコードテーブル25eをロードし、メモリ上で参照しても良い。
Modification 2
In the second modification, the operation code table 25 b and the emulation code table 25 e are stored in the shared disk 4. Since the table can be centrally managed, the maintainability is further improved as compared with the first modification. However, when the access to the shared disk increases, the reading time becomes an overhead. Therefore, when loading the interrupt handler 25a, the operation code table 25b and the emulation code table 25e may be loaded on the memory and referenced on the memory. .

変形例3
変形例3では、オペコードテーブル25b、エミュレーションコードテーブル25eを、管理ホスト3の記憶装置に記憶して管理する。ライブマイグレーションは、主として各ホストの負荷状況に応じて動的に行なわれる。そのため、オペコードテーブル25b、エミュレーションコードテーブル25eは、情報システム内に存在する全タイプのCPUに対応している必要がある。そのため、CPUタイプの数に比例して、オペコードテーブル25bのレコード数が増加する。エミュレーションコードテーブル25eは、CPUタイプの数の増加に伴い、移動元CPUと移動先CPUとの組み合わせ数が増大するため、レコード数が増加する。テーブルのレコード数が増加すると、テーブルの検索効率、読み出し効率が低下する。そこで、管理ホスト3の記憶装置にオペコードテーブル25b、エミュレーションコードテーブル25eを記憶させる。ライブマイグレーション時に、移動元CPU及び移動先CPUのタイプに基づいて、オペコードテーブル25b、エミュレーションコードテーブル25eの必要なレコードを抽出し、移動先ホストの割り込みハンドラ25aに渡すようにする。そのようにすれば、移動先ホストが用いるオペコードテーブル25b、エミュレーションコードテーブル25eのレコード数は必要最小限となり、検索効率、読み出し効率の低下を防ぐことが可能となる。
Modification 3
In the third modification, the operation code table 25b and the emulation code table 25e are stored in the storage device of the management host 3 and managed. Live migration is performed dynamically mainly according to the load status of each host. Therefore, the operation code table 25b and the emulation code table 25e need to correspond to all types of CPUs existing in the information system. Therefore, the number of records in the operation code table 25b increases in proportion to the number of CPU types. In the emulation code table 25e, as the number of CPU types increases, the number of combinations of the movement source CPU and the movement destination CPU increases, so the number of records increases. When the number of records in the table increases, the table search efficiency and the read efficiency decrease. Therefore, the operation code table 25b and the emulation code table 25e are stored in the storage device of the management host 3. At the time of live migration, necessary records in the operation code table 25b and the emulation code table 25e are extracted based on the types of the migration source CPU and the migration destination CPU, and passed to the interrupt handler 25a of the migration destination host. By doing so, the number of records in the operation code table 25b and the emulation code table 25e used by the destination host is minimized, and it is possible to prevent a decrease in search efficiency and read efficiency.

実施の形態5
図12は実施の形態5に係るホスト2及び管理ホスト3の機能構成を示すための説明図である。上述の実施の形態1と同様、ライブマイグレーションにより、仮想マシンVM4がホスト1からホスト2に移動されている。図13は実施の形態5に係るホスト2及び管理ホスト3における例外処理の処理手順を示すフローチャートである。
Embodiment 5
FIG. 12 is an explanatory diagram for illustrating functional configurations of the host 2 and the management host 3 according to the fifth embodiment. As in the first embodiment, the virtual machine VM4 is moved from the host 1 to the host 2 by live migration. FIG. 13 is a flowchart showing a processing procedure of exception processing in the host 2 and the management host 3 according to the fifth embodiment.

実施の形態5では、図12に示すように、オペコードテーブル3b、オペコードマッチャー3c、及びエミュレーションコードテーブル3eは、管理・制御ミドルウェアが動作している管理ホスト3が備えている。なお、オペコードテーブル3b、オペコードマッチャー3c、及びエミュレーションコードテーブル3eを管理・制御ミドルウェアが備えていても良い。また、オペコードテーブル3b、又はエミュレーションコードテーブル3eを、共有ディスク4に記憶させても良い。   In the fifth embodiment, as shown in FIG. 12, the operation code table 3b, the operation code matcher 3c, and the emulation code table 3e are provided in the management host 3 on which the management / control middleware operates. The management / control middleware may include the operation code table 3b, the operation code matcher 3c, and the emulation code table 3e. Further, the operation code table 3b or the emulation code table 3e may be stored in the shared disk 4.

図13を参照して、ホスト2及び管理ホスト3の処理手順について説明する。仮想マシンVM4の動作により、CPU21にて、未定義命令例外が発生する(ステップS41)。CPU21は、未定義命令例外割り込みを発生する(ステップS42)。CPU21は、ハイパーバイザ25の設定に従い、割り込みハンドラ25aへ制御を移行する(ステップS43)。割り込みハンドラ25aは、管理ホスト3に未定義命令例外を発生させた命令のオペコードを通知する。管理ホスト3のCPU31は、オペコードマッチャー3cを実行し、オペコードテーブル3bを検索する(ステップS44)。CPU31は、検索がヒットしたか否かを調べる(ステップS45)。検索にヒットした場合(ステップS45でYES)、CPU31は、エミュレーションコードテーブル3eを参照して、未定義命令例外を発生させた命令に対応する、ホスト2のCPU21でエミュレート可能なコード(エミュレーションコード)を生成し、ホスト2に送信する(ステップS46)。   Processing procedures of the host 2 and the management host 3 will be described with reference to FIG. Due to the operation of the virtual machine VM4, an undefined instruction exception occurs in the CPU 21 (step S41). The CPU 21 generates an undefined instruction exception interrupt (step S42). The CPU 21 shifts control to the interrupt handler 25a according to the setting of the hypervisor 25 (step S43). The interrupt handler 25a notifies the management host 3 of the opcode of the instruction that caused the undefined instruction exception. The CPU 31 of the management host 3 executes the operation code matcher 3c and searches the operation code table 3b (step S44). The CPU 31 checks whether or not the search is hit (step S45). If the search is hit (YES in step S45), the CPU 31 refers to the emulation code table 3e and corresponds to the instruction that can be emulated by the CPU 21 of the host 2 (emulation code) corresponding to the instruction that caused the undefined instruction exception. ) And transmitted to the host 2 (step S46).

ホスト2のCPU21は、エミュレーション部25dとして機能し、管理ホスト3より送信されたエミュレーションコードを実行する(ステップS47)。CPU21は、エミュレーションコードに戻り値があるか判定する(ステップS48)。戻り値がある場合(ステップS48でYES)、戻り値をレジスタコンテキスト退避・復元領域25fに反映させる(ステップS49)。CPU21は、仮想マシンへ制御を戻す。戻り値がない場合(ステップS48でNO)、CPU21は、仮想マシンへ制御を戻す(ステップS50)。   The CPU 21 of the host 2 functions as the emulation unit 25d and executes the emulation code transmitted from the management host 3 (step S47). The CPU 21 determines whether there is a return value in the emulation code (step S48). If there is a return value (YES in step S48), the return value is reflected in the register context save / restore area 25f (step S49). The CPU 21 returns control to the virtual machine. If there is no return value (NO in step S48), the CPU 21 returns control to the virtual machine (step S50).

未定義命令例外を発生させた命令のオペコードが、オペコードテーブルの検索にヒットしない場合(ステップS45でNO)、管理ホスト3のCPU31はその旨を、ホスト2に通知し、ホスト2のCPU21は、通常の例外処理を実行する(ステップS51)。CPU21は、仮想マシンへ制御を戻す(ステップS50)。   If the opcode of the instruction that caused the undefined instruction exception does not hit the search of the opcode table (NO in step S45), the CPU 31 of the management host 3 notifies the host 2 to that effect, and the CPU 21 of the host 2 Normal exception processing is executed (step S51). The CPU 21 returns control to the virtual machine (step S50).

本実施の形態5では、オペコードテーブル3b、オペコードマッチャー3c、及びエミュレーションコードテーブル3eを、管理ホスト3が備えている。管理ホスト3は管理・制御ミドルウェアを備え、ライブマイグレーション時の移動元、移動先を履歴として管理している。従って、未定義命令例外を発生させた命令のオペコードの検索、該命令に対するエミュレーションコードの生成を効率的に行うことが可能である。   In the fifth embodiment, the management host 3 includes an operation code table 3b, an operation code matcher 3c, and an emulation code table 3e. The management host 3 includes management / control middleware, and manages a movement source and a movement destination during live migration as a history. Accordingly, it is possible to efficiently search for an operation code of an instruction that has caused an undefined instruction exception and generate an emulation code for the instruction.

実施の形態6
図14は実施の形態6に係る例外処理装置5のハードウェア群を示すブロック図である。実施の形態6に係る例外処理装置5は、例外処理の中で、オペコードの検索、エミュレーションコードの生成を行う機能をホスト1、ホスト2、管理ホスト3とは異なるハードウェアで構成したものである。以下の説明では、コンピュータプログラムを汎用のコンピュータに読み取らせ、コンピュータの中央処理装置が所定の処理を実行することにより例外処理装置5を構成した場合について説明する。しかし、それに限られず、等価な働きをする専用のハードウェアを有する装置として、例外処理装置5を構成してもよい。
Embodiment 6
FIG. 14 is a block diagram illustrating a hardware group of the exception handling apparatus 5 according to the sixth embodiment. The exception processing apparatus 5 according to the sixth embodiment is configured with hardware different from that of the host 1, the host 2, and the management host 3 for performing an operation code search and an emulation code generation in exception processing. . In the following description, a case will be described in which the exception processing device 5 is configured by causing a general-purpose computer to read a computer program and causing the central processing unit of the computer to execute predetermined processing. However, the present invention is not limited thereto, and the exception handling device 5 may be configured as a device having dedicated hardware that performs an equivalent function.

例外処理装置5は、CPU51、RAM52、記憶部53、通信部54を含む。CPU51は記憶部53に記憶された制御プログラム531に従いハードウェア各部を制御する。RAM52は例えばSRAM、DRAM、フラッシュメモリ等である。RAM52は記憶部としても機能し、CPU51による各種プログラムの実行時に発生する種々のデータを一時的に記憶する。   The exception processing device 5 includes a CPU 51, a RAM 52, a storage unit 53, and a communication unit 54. The CPU 51 controls each part of the hardware according to the control program 531 stored in the storage unit 53. The RAM 52 is, for example, SRAM, DRAM, flash memory or the like. The RAM 52 also functions as a storage unit, and temporarily stores various data generated when the CPU 51 executes various programs.

記憶部53は例えば、ハードディスクまたは大容量フラッシュメモリ等である。記憶部53には制御プログラム531、オペコードテーブル532、エミュレーションコードテーブル533が記憶されている。   The storage unit 53 is, for example, a hard disk or a large-capacity flash memory. The storage unit 53 stores a control program 531, an operation code table 532, and an emulation code table 533.

通信部54は例えばLAN(Local Area Network)カード等であり、ホスト、管理ホスト等と通信を行う。   The communication unit 54 is, for example, a LAN (Local Area Network) card or the like, and communicates with a host, a management host, and the like.

本実施の形態に係る例外処理装置5は、各ホストのCPUタイプを記憶部53に記憶しているものとする。また、管理ホスト3よりライブマイグレーションの情報、例えば、移動元のホスト名、移動先のホスト名、移動した仮想マシンの識別情報などを受信し、履歴情報として保持しているものとする。   The exception handling apparatus 5 according to the present embodiment is assumed to store the CPU type of each host in the storage unit 53. In addition, it is assumed that live migration information such as the migration source host name, the migration destination host name, and the identification information of the migrated virtual machine is received from the management host 3 and held as history information.

例外処理装置5及び各ホストでの処理は、上述の図13と同様である。以下、簡単に説明する。各ホストは、仮想マシンの動作により未定義命令例外が発生した場合に、例外が発生した命令のオペコードを、例外処理装置5に送信する。例外処理装置5のCPU51は、送信元のCPUのタイプを取得する。CPU51は、オペコードテーブル532を検索し、ホストから受信したオペコードがオペコードテーブル3bに含まれ、かつ、取得したCPUタイプと対応付けられているかを調べる。検索にヒットした場合、CPU51は、エミュレーションコードテーブル533を基に、ホストのCPUタイプに適合したエミュレーションコードを生成し、ホストに送信する。検索にヒットしない場合、CPU51は、通常の例外処理をするよう、その旨をホストに送信する。   The processing in the exception handling device 5 and each host is the same as in FIG. A brief description is given below. When an undefined instruction exception occurs due to the operation of the virtual machine, each host transmits an operation code of the instruction in which the exception has occurred to the exception processing device 5. The CPU 51 of the exception processing device 5 acquires the type of the transmission source CPU. The CPU 51 searches the operation code table 532 and checks whether the operation code received from the host is included in the operation code table 3b and is associated with the acquired CPU type. When the search is hit, the CPU 51 generates an emulation code suitable for the CPU type of the host based on the emulation code table 533 and transmits it to the host. If there is no hit in the search, the CPU 51 sends a message to that effect to the normal exception processing.

本実施の形態においては、オペコードの検索と、エミュレーションコードの生成を例外処理装置5で行うこととしたので、未定義命令例外処理を行う際に、各ホスト及び管理ホストの負荷を低減することが可能となる。   In the present embodiment, the operation code search and emulation code generation are performed by the exception processing device 5, so that when performing undefined instruction exception processing, the load on each host and management host can be reduced. It becomes possible.

上述の説明では、オペコードテーブル532、エミュレーションコードテーブル533を、例外処理装置5が備えることとしたが、それに限られず、例えば、共有ディスク4に記憶しておいても良い。   In the above description, the operation code table 532 and the emulation code table 533 are provided in the exception processing device 5. However, the present invention is not limited thereto, and may be stored in the shared disk 4, for example.

また、上述の説明においては、例外処理装置5はネットワークNに接続されることを前提としたが、それに限られるものではない。各ホストの拡張カードスロットに装填可能な拡張カードとして例外処理装置5を構成しても良い。この場合、例外処理装置5は、主として装填されているホストの例外処理を担うこととなる。   In the above description, the exception handling device 5 is assumed to be connected to the network N, but is not limited thereto. The exception processing device 5 may be configured as an expansion card that can be loaded into the expansion card slot of each host. In this case, the exception processing device 5 is mainly responsible for exception processing of the loaded host.

上述の実施の形態1から6及び変形例1から3において、オペコードテーブルに、オペコードに加えて引数(オペランド)を含めることとしても良い。引数を含めることにより、より厳密にマッチングを行うことが可能となる。
また、オペコードテーブル、エミュレーションコードテーブルは一つのテーブルでも良い。
In Embodiments 1 to 6 and Modifications 1 to 3 described above, the operation code table may include an argument (operand) in addition to the operation code. By including an argument, it becomes possible to perform matching more strictly.
The opcode table and the emulation code table may be one table.

実施の形態7
図15は実施の形態7に係るホスト1のハードウェア群を示すブロック図である。上述の実施の形態1から5では、ホスト1を動作させるための制御プログラムは、ディスクドライブ等の読み取り部10AにCD-ROM、DVD(DigitalVersatile Disc)ディスク、メモリカード、またはUSB(Universal SerialBus)メモリ等の可搬型記録媒体1Aを読み取らせて記憶部13に記憶しても良い。また当該プログラムを記憶したフラッシュメモリ等の半導体メモリ1Bをホスト1内に実装しても良い。さらに、当該プログラムは、インターネット等の通信網を介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
Embodiment 7
FIG. 15 is a block diagram illustrating a hardware group of the host 1 according to the seventh embodiment. In the first to fifth embodiments described above, a control program for operating the host 1 is stored in a reading unit 10A such as a disk drive in a CD-ROM, a DVD (Digital Versatile Disc) disk, a memory card, or a USB (Universal Serial Bus) memory. The portable recording medium 1 </ b> A may be read and stored in the storage unit 13. Further, a semiconductor memory 1B such as a flash memory storing the program may be mounted in the host 1. Further, the program can be downloaded from another server computer (not shown) connected via a communication network such as the Internet. The contents will be described below.

図15に示すホスト1は、上述した各種ソフトウェア処理を実行するプログラムを、可搬型記録媒体1Aまたは半導体メモリ1Bから読み取り、或いは、通信網を介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御プログラムとしてインストールされ、RAM12にロードして実行される。これにより、上述したホスト1として機能する。   The host 1 shown in FIG. 15 reads a program for executing the above-described various software processes from the portable recording medium 1A or the semiconductor memory 1B or downloads it from another server computer (not shown) via a communication network. . The program is installed as a control program, loaded into the RAM 12 and executed. Thereby, it functions as the host 1 described above.

本実施の形態7は以上の如きであり、その他は実施の形態1から5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。   The seventh embodiment is as described above, and the other parts are the same as those of the first to fifth embodiments. Accordingly, the corresponding parts are denoted by the same reference numerals, and detailed description thereof is omitted.

ホスト1と同様に、ホスト2を構成することも可能である。また、管理ホスト3又は実施の形態6における例外処理装置5についても、制御プログラムを可搬型記録媒体から読み取り記憶部に記憶したり、半導体メモリとして実装したりしても良い。
なお、制御プログラムにとどまらず、オペコードテーブルやエミュレーションコードテーブルを可搬型記録媒体から読み取り記憶部に記憶したり、半導体メモリとして実装したりしても良い。
Similarly to the host 1, the host 2 can be configured. Also, the management host 3 or the exception processing device 5 in the sixth embodiment may also read a control program from a portable recording medium and store it in a storage unit, or may be implemented as a semiconductor memory.
In addition to the control program, an operation code table or an emulation code table may be read from a portable recording medium and stored in a storage unit, or may be mounted as a semiconductor memory.

なお、上述した実施の形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。   It should be understood that the above-described embodiment is illustrative in all respects and not restrictive. The scope of the present invention is defined by the terms of the claims, rather than the meanings described above, and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.

以上の実施例1から7及び変形例1から3を含む実施の形態に関し、更に以下の付記を開示する。   The following additional notes are further disclosed regarding the embodiments including Examples 1 to 7 and Modifications 1 to 3 described above.

(付記1)
仮想マシンが物理マシン間を移動したことにより無効となった命令を検出し、
検出した前記命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、
取得した前記有効なオペレーションコードに対応した命令を実行する
例外処理方法。
(Appendix 1)
Detects instructions that are invalidated because the virtual machine has moved between physical machines,
Obtain a valid operation code associated with an invalid operation code included in the detected instruction,
An exception handling method for executing an instruction corresponding to the obtained valid operation code.

(付記2)
前記無効となった命令を検出した場合、
前記検出した命令を実行した仮想マシンを特定し、
特定した仮想マシンが確保している記憶領域を対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記1に記載の例外処理方法。
(Appendix 2)
If the invalid instruction is detected,
Identify the virtual machine that executed the detected instruction,
Search the invalid operation code for the storage area reserved by the identified virtual machine,
The exception handling method according to attachment 1, wherein an invalid operation code included in the search result is rewritten to a valid operation code.

(付記3)
前記特定した仮想マシンが確保している記憶領域を対象に、前記仮想マシンが動作する物理マシンにて無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記1又は2に記載の例外処理方法。
(Appendix 3)
For the storage area reserved by the specified virtual machine, search for an invalid operation code in the physical machine on which the virtual machine operates,
The exception handling method according to appendix 1 or 2, wherein an invalid operation code included in the search result is rewritten to a valid operation code.

(付記4)
仮想マシンが物理マシン間を移動する時に、
仮想マシンに対応付けられたメモリイメージを対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記1から3のいずれか1つに記載の例外処理方法。
(Appendix 4)
When a virtual machine moves between physical machines,
Search the invalid operation code for the memory image associated with the virtual machine,
The exception handling method according to any one of appendices 1 to 3, wherein an invalid operation code included in the search result is rewritten to a valid operation code.

(付記5)
前記有効なオペレーションコードを取得する際、無効なオペレーションコード及び有効なオペレーションコードを対応付けたテーブルを用いる
付記1から4のいずれか1つに記載の例外処理方法。
(Appendix 5)
The exception handling method according to any one of appendices 1 to 4, wherein when acquiring the valid operation code, a table in which the invalid operation code and the valid operation code are associated with each other is used.

(付記6)
仮想マシンが物理マシン間を移動したことにより、仮想マシンが動作する物理マシンにて無効となった命令を検出し、
検出した命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、
取得した有効なオペレーションコードに対応した命令を実行する
処理を前記物理マシンに実行させるプログラム。
(Appendix 6)
When a virtual machine moves between physical machines, it detects an invalid instruction on the physical machine on which the virtual machine operates.
Obtain a valid operation code associated with the invalid operation code included in the detected instruction,
A program that causes the physical machine to execute a process that executes an instruction corresponding to the acquired valid operation code.

(付記7)
前記無効となった命令を検出した場合、
前記検出した命令を実行した仮想マシンを特定し、
特定した仮想マシンが確保している記憶領域を対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記6に記載のプログラム。
(Appendix 7)
If the invalid instruction is detected,
Identify the virtual machine that executed the detected instruction,
Search the invalid operation code for the storage area reserved by the identified virtual machine,
The program according to appendix 6, wherein the invalid operation code included in the search result is rewritten to a valid operation code.

(付記8)
前記特定した仮想マシンが確保している記憶領域を対象に、前記仮想マシンが動作する物理マシンにて無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記6又は7に記載のプログラム。
(Appendix 8)
For the storage area reserved by the specified virtual machine, search for an invalid operation code in the physical machine on which the virtual machine operates,
The program according to appendix 6 or 7, wherein an invalid operation code included in the search result is rewritten to a valid operation code.

(付記9)
仮想マシンが物理マシン間を移動することを検出し、
移動を検出した仮想マシンに対応付けられたメモリイメージを対象に無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
付記6から8のいずれか1つに記載のプログラム。
(Appendix 9)
Detects that virtual machines move between physical machines,
Search for invalid operation codes in the memory image associated with the virtual machine that detected the movement,
The program according to any one of appendices 6 to 8, wherein an invalid operation code included in the search result is rewritten to a valid operation code.

(付記10)
前記有効なオペレーションコードを取得する際、無効なオペレーションコード及び有効なオペレーションコードを対応付けたテーブルを用いる
付記6から9のいずれか1つに記載のプログラム。
(Appendix 10)
The program according to any one of appendices 6 to 9, wherein a table in which invalid operation codes are associated with valid operation codes is used when acquiring the valid operation codes.

(付記11)
仮想マシンが物理マシン間を移動したことにより無効となった命令を検出する検出部、
検出した命令に含まれるオペレーションコードに対応付けられた有効なオペレーションコードを取得する取得部、
取得した有効なオペレーションコードを出力する出力部
を有する装置。
(Appendix 11)
A detection unit that detects an instruction invalidated by the movement of a virtual machine between physical machines,
An acquisition unit that acquires a valid operation code associated with the operation code included in the detected instruction;
A device having an output unit that outputs the acquired valid operation code.

1、2 ホスト
21a 仮想マシン実行部
21b 例外検知部
25 ハイパーバイザ
25a 割り込みハンドラ
25b オペコードテーブル
25c オペコードマッチャー
25d エミュレーション部
25e エミュレーションコードテーブル
25f レジスタコンテキスト退避・復元領域
3 管理ホスト
4 共有ディスク
5 例外処理装置
DESCRIPTION OF SYMBOLS 1, 2 Host 21a Virtual machine execution part 21b Exception detection part 25 Hypervisor 25a Interrupt handler 25b Operation code table 25c Operation code matcher 25d Emulation part 25e Emulation code table 25f Register context save / restore area 3 Management host 4 Shared disk 5 Exception processing device

Claims (7)

仮想マシンが物理マシン間を移動したことにより無効となった命令を検出し、
検出した前記命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、
取得した前記有効なオペレーションコードに対応した命令を実行する
例外処理方法。
Detects instructions that are invalidated because the virtual machine has moved between physical machines,
Obtain a valid operation code associated with an invalid operation code included in the detected instruction,
An exception handling method for executing an instruction corresponding to the obtained valid operation code.
前記無効となった命令を検出した場合、
前記検出した命令を実行した仮想マシンを特定し、
特定した仮想マシンが確保している記憶領域を対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
請求項1に記載の例外処理方法。
If the invalid instruction is detected,
Identify the virtual machine that executed the detected instruction,
Search the invalid operation code for the storage area reserved by the identified virtual machine,
The exception processing method according to claim 1, wherein an invalid operation code included in the search result is rewritten to a valid operation code.
前記特定した仮想マシンが確保している記憶領域を対象に、前記仮想マシンが動作する物理マシンにて無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
請求項1又は2に記載の例外処理方法。
For the storage area reserved by the specified virtual machine, search for an invalid operation code in the physical machine on which the virtual machine operates,
The exception processing method according to claim 1, wherein an invalid operation code included in the search result is rewritten to a valid operation code.
仮想マシンが物理マシン間を移動する時に、
仮想マシンに対応付けられたメモリイメージを対象に前記無効なオペレーションコードを検索し、
検索結果に含まれる無効なオペレーションコードを、有効なオペレーションコードに書き換える
請求項1から3のいずれか1項に記載の例外処理方法。
When a virtual machine moves between physical machines,
Search the invalid operation code for the memory image associated with the virtual machine,
The exception handling method according to any one of claims 1 to 3, wherein an invalid operation code included in the search result is rewritten to a valid operation code.
前記有効なオペレーションコードを取得する際、無効なオペレーションコード及び有効なオペレーションコードを対応付けたテーブルを用いる
請求項1から4のいずれか1項に記載の例外処理方法。
The exception processing method according to any one of claims 1 to 4, wherein when acquiring the valid operation code, a table in which invalid operation codes and valid operation codes are associated with each other is used.
仮想マシンが物理マシン間を移動したことにより、仮想マシンが動作する物理マシンにて無効となった命令を検出し、
検出した命令に含まれる無効なオペレーションコードに対応付けられた有効なオペレーションコードを取得し、
取得した有効なオペレーションコードに対応した命令を実行する
処理を前記物理マシンに実行させるプログラム。
When a virtual machine moves between physical machines, it detects an invalid instruction on the physical machine on which the virtual machine operates.
Obtain a valid operation code associated with the invalid operation code included in the detected instruction,
A program that causes the physical machine to execute a process that executes an instruction corresponding to the acquired valid operation code.
仮想マシンが物理マシン間を移動したことにより無効となった命令を検出する検出部、
検出した命令に含まれるオペレーションコードに対応付けられた有効なオペレーションコードを取得する取得部、
取得した有効なオペレーションコードを出力する出力部
を有する装置。
A detection unit that detects an instruction invalidated by the movement of a virtual machine between physical machines,
An acquisition unit that acquires a valid operation code associated with the operation code included in the detected instruction;
A device having an output unit that outputs the acquired valid operation code.
JP2012057848A 2012-03-14 2012-03-14 Exception processing method, program, and apparatus Active JP5929353B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012057848A JP5929353B2 (en) 2012-03-14 2012-03-14 Exception processing method, program, and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012057848A JP5929353B2 (en) 2012-03-14 2012-03-14 Exception processing method, program, and apparatus

Publications (2)

Publication Number Publication Date
JP2013191089A true JP2013191089A (en) 2013-09-26
JP5929353B2 JP5929353B2 (en) 2016-06-01

Family

ID=49391242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012057848A Active JP5929353B2 (en) 2012-03-14 2012-03-14 Exception processing method, program, and apparatus

Country Status (1)

Country Link
JP (1) JP5929353B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015150940A1 (en) * 2014-03-31 2015-10-08 International Business Machines Corporation Partition mobility for partitions with extended code
WO2017170309A1 (en) * 2016-03-31 2017-10-05 日本電気株式会社 Network system, management method and device for same, and server
EP3301567B1 (en) * 2015-06-17 2022-10-19 Huawei Technologies Co., Ltd. Computer instruction processing method, coprocessor, and system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02231634A (en) * 1989-03-03 1990-09-13 Nec Corp Method for maintaining interchangeability of software
JPH10133886A (en) * 1996-10-31 1998-05-22 Fujitsu Ltd Data processor
JP2002063031A (en) * 2000-08-18 2002-02-28 Fainaaku Kk Architecture switching-reconstruction coping processor
JP2008299648A (en) * 2007-05-31 2008-12-11 Toshiba Corp Program and information processor
JP2010272055A (en) * 2009-05-25 2010-12-02 Sony Corp Apparatus, method and program for processing information
JP2011123635A (en) * 2009-12-10 2011-06-23 Nec Corp Information processing apparatus, control method for the same and recording medium

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02231634A (en) * 1989-03-03 1990-09-13 Nec Corp Method for maintaining interchangeability of software
JPH10133886A (en) * 1996-10-31 1998-05-22 Fujitsu Ltd Data processor
JP2002063031A (en) * 2000-08-18 2002-02-28 Fainaaku Kk Architecture switching-reconstruction coping processor
JP2008299648A (en) * 2007-05-31 2008-12-11 Toshiba Corp Program and information processor
JP2010272055A (en) * 2009-05-25 2010-12-02 Sony Corp Apparatus, method and program for processing information
JP2011123635A (en) * 2009-12-10 2011-06-23 Nec Corp Information processing apparatus, control method for the same and recording medium

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015150940A1 (en) * 2014-03-31 2015-10-08 International Business Machines Corporation Partition mobility for partitions with extended code
GB2539344A (en) * 2014-03-31 2016-12-14 Ibm Partition mobility for partition with extended code
US9858058B2 (en) 2014-03-31 2018-01-02 International Business Machines Corporation Partition mobility for partitions with extended code
US9870210B2 (en) 2014-03-31 2018-01-16 International Business Machines Corporation Partition mobility for partitions with extended code
GB2539344B (en) * 2014-03-31 2019-02-13 Ibm Partition mobility for partitions with extended code
EP3301567B1 (en) * 2015-06-17 2022-10-19 Huawei Technologies Co., Ltd. Computer instruction processing method, coprocessor, and system
WO2017170309A1 (en) * 2016-03-31 2017-10-05 日本電気株式会社 Network system, management method and device for same, and server
JPWO2017170309A1 (en) * 2016-03-31 2019-02-21 日本電気株式会社 Network system, management method and apparatus thereof, and server
US11288086B2 (en) 2016-03-31 2022-03-29 Nec Corporation Network system, management method and apparatus thereof, and server
JP7056555B2 (en) 2016-03-31 2022-04-19 日本電気株式会社 Network system, its management method and equipment, and server
US11868794B2 (en) 2016-03-31 2024-01-09 Nec Corporation Network system, management method and apparatus thereof, and server

Also Published As

Publication number Publication date
JP5929353B2 (en) 2016-06-01

Similar Documents

Publication Publication Date Title
JP7090657B2 (en) Methods, devices, devices and storage media for upgrading applications
JP6018590B2 (en) Application compatibility with library operating system
US7797507B2 (en) Virtual machine system and operating method thereof
JP5460430B2 (en) Dynamic compiler program, dynamic compilation method, and dynamic compilation apparatus
TWI715762B (en) Method and apparatus for creating virtual machine
WO2012100535A1 (en) Updating method and computer system for hypervisor components
CN102207896A (en) Virtual machine crash file generation techniques
CN102165431A (en) On-the-fly replacement of physical hardware with emulation
KR20140118093A (en) Apparatus and Method for fast booting based on virtualization and snapshot image
CN105138382A (en) Method for upgrading Android system and terminal
US20130318528A1 (en) Information processing method
US10705867B2 (en) Hypervisor exchange with virtual machines in memory
US11693722B2 (en) Fast memory mapped IO support by register switch
WO2013088818A1 (en) Virtual computer system, virtualization mechanism, and data management method
CN106648827A (en) Method for online adding virtual machine resources
WO2020063432A1 (en) Method and apparatus for upgrading virtualized emulator
US7200705B2 (en) Method of checkpointing state of virtual memory for process
US20120240116A1 (en) Performance In A Virtualization Architecture With A Processor Abstraction Layer
JP5929353B2 (en) Exception processing method, program, and apparatus
Kooburat et al. The Best of Both Worlds with {On-Demand} Virtualization
CN114090171A (en) Virtual machine creation method, migration method and computer readable medium
US20110314203A1 (en) Resource adjustment methods and systems for virtual machines
CN113791873B (en) Virtual machine creating method, computing device and storage medium
US11188361B1 (en) Cross-architecture software distribution using a virtual instruction set architecture
JP6197871B2 (en) Virtual machine management method, virtual machine management apparatus, and virtual machine management program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150203

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151116

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151215

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160405

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160418

R150 Certificate of patent or registration of utility model

Ref document number: 5929353

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150