JP2012003478A - Interruption control unit - Google Patents

Interruption control unit Download PDF

Info

Publication number
JP2012003478A
JP2012003478A JP2010137312A JP2010137312A JP2012003478A JP 2012003478 A JP2012003478 A JP 2012003478A JP 2010137312 A JP2010137312 A JP 2010137312A JP 2010137312 A JP2010137312 A JP 2010137312A JP 2012003478 A JP2012003478 A JP 2012003478A
Authority
JP
Japan
Prior art keywords
interrupt
virtual machine
operating system
interrupt signal
machine monitor
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.)
Pending
Application number
JP2010137312A
Other languages
Japanese (ja)
Inventor
Hitoshi 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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010137312A priority Critical patent/JP2012003478A/en
Publication of JP2012003478A publication Critical patent/JP2012003478A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

PROBLEM TO BE SOLVED: To accelerate a response to an interruption of a physical device in a virtual machine and simplify a virtual computer monitor.SOLUTION: An interruption control unit is a computer 201 in which a virtual machine monitor 202 is operated. The virtual machine monitor 202 provides a plurality of virtual machines 203, 204 by virtualizing a hardware resource. In each of the virtual machines, operating systems 205, 206 run respectively. The virtual machine monitor 202 notifies the operating systems 205, 206 of interruption respectively when interruption signals are supplied from devices 207, 208. The operating systems 205, 206 accesses the devices 207, 208 corresponding to the notified interruption signals to determine whether or not the interruption occurred in the operating systems 205, 206.

Description

この発明は、仮想マシンを実現する計算機におけるデバイスからの割込み制御技術に関する。   The present invention relates to an interrupt control technique from a device in a computer that implements a virtual machine.

従来の仮想計算機は、物理マシンで仮想マシンモニタ(VMM)が動作し、VMMによりハードウェアリソースが仮想化された仮想マシン(VM)が提供され、VMでオペレーティングシステム(OS,ゲストOS)が動作している。
従来のVMMは、物理マシン内のデバイスからの割込みに対応する処理を一旦実行し、その結果を用いてOSへVM内の仮想デバイスとして提供する。物理マシン内の複数デバイスが同一割込み番号を使用している場合でも、一旦VMMが割込みを受信し処理を実行することで、その割込みを発生させている物理デバイスを特定できる。そのため、割込みをどのOSへ通知すべきかを判断し、通知することが可能である。
In a conventional virtual machine, a virtual machine monitor (VMM) operates on a physical machine, a virtual machine (VM) in which hardware resources are virtualized by the VMM is provided, and an operating system (OS, guest OS) operates on the VM is doing.
A conventional VMM once executes a process corresponding to an interrupt from a device in a physical machine, and provides the OS as a virtual device in the VM using the result. Even when a plurality of devices in the physical machine use the same interrupt number, the VMM once receives the interrupt and executes the process, thereby identifying the physical device that has generated the interrupt. Therefore, it is possible to determine to which OS the interrupt should be notified and notify it.

David Chisnell著、日本仮想化技術(株)監訳、渡邉了介訳、「仮想化技術」(株)毎日コミュニケーションズ、2008年8月20日発行、p.26〜35By David Chisnell, translated by Nihon Virtualization Technology Co., Ltd., translated by Ryosuke Watanabe, “Virtualization Technology” Mainichi Communications Inc., issued on August 20, 2008, p. 26-35

上述したように、従来の仮想計算機は、物理デバイスからの割込みに対応する処理を一旦VMMが実行し、その結果を用いて仮想デバイスをOSへ提供する。そのため、VMMにオーバヘッドがかかり、リアルタイム応答性が損なわれている。また、VMMが物理デバイスに対応するデバイスドライバを有している必要があり、VMMが複雑化している。
この発明は、仮想計算機における物理デバイスの割込みへの応答を高速化するとともに、VMMを単純化することを目的とする。
As described above, in the conventional virtual computer, the VMM once executes a process corresponding to the interrupt from the physical device, and uses the result to provide the virtual device to the OS. Therefore, overhead is applied to the VMM, and real-time responsiveness is impaired. Further, it is necessary for the VMM to have a device driver corresponding to the physical device, and the VMM is complicated.
An object of the present invention is to speed up a response to an interrupt of a physical device in a virtual machine and simplify a VMM.

この発明に係る割込み制御装置は、
ハードウェアリソースを仮想化した複数の仮想マシンを提供する仮想マシンモニタを処理装置により動作させる仮想マシンモニタ実行部と、
前記仮想マシンモニタ実行部が動作させた複数の仮想マシンの各仮想マシンの制御下で、オペレーティングシステムを処理装置により動作させるオペレーティングシステム実行部と、
前記オペレーティングシステム実行部が前記各仮想マシンの制御下で動作させたオペレーティングシステムに対応付けられた複数のデバイスから同一の識別情報が割り当てられた割込み信号が送信される場合に、前記複数のデバイスのうちのあるデバイスから送信された割込み信号を受信し、受信した割込み信号を前記仮想マシンモニタへ送信する割込みコントローラと
を備え、
前記仮想マシンモニタは、前記割込みコントローラから割込み信号が送信されると、その割込み信号を前記各仮想マシンへ送信し、
前記各仮想マシンの制御下で動作するオペレーティングシステムは、割込み信号が送信されると、デバイスドライバを動作させてそのオペレーティングシステムに対応付けられたデバイスにアクセスすることにより、そのデバイスが割込みを発生させたか否かを判定するとともに、割込みを発生させたと判定した場合、その割込みに対応する処理を実行する
ことを特徴とする。
The interrupt control device according to the present invention is:
A virtual machine monitor execution unit that causes a processing device to operate a virtual machine monitor that provides a plurality of virtual machines with virtualized hardware resources;
An operating system execution unit that causes the processing system to operate an operating system under the control of each virtual machine of the plurality of virtual machines operated by the virtual machine monitor execution unit;
When an interrupt signal to which the same identification information is assigned is transmitted from a plurality of devices associated with an operating system operated by the operating system execution unit under the control of each virtual machine, the plurality of devices An interrupt controller that receives an interrupt signal transmitted from a certain device and transmits the received interrupt signal to the virtual machine monitor;
When an interrupt signal is transmitted from the interrupt controller, the virtual machine monitor transmits the interrupt signal to each virtual machine,
When an operating system operating under the control of each virtual machine receives an interrupt signal, it operates the device driver to access a device associated with the operating system, thereby causing the device to generate an interrupt. And determining that an interrupt has occurred, a process corresponding to the interrupt is executed.

この発明に係る割込み制御装置では、VMMは割込みに対応する処理を実行せず、各VMへ割込みを通知するだけである。したがって、VMMにはオーバヘッドがかからない。また、VMMにデバイスドライバを持たせる必要もないため、VMMが単純な構成になる。   In the interrupt control device according to the present invention, the VMM does not execute the processing corresponding to the interrupt, but only notifies the VM of the interrupt. Therefore, the VMM has no overhead. In addition, since it is not necessary to have a device driver in the VMM, the VMM has a simple configuration.

計算機の構成図。The block diagram of a computer. 実施の形態1に係る計算機201の構成図。1 is a configuration diagram of a computer 201 according to Embodiment 1. FIG. DEV−X207からの割込みが発生した場合における計算機201の動作を示すフローチャート。The flowchart which shows operation | movement of the computer 201 when the interruption from DEV-X207 generate | occur | produces. 実施の形態2に係る計算機401の構成図。FIG. 4 is a configuration diagram of a computer 401 according to the second embodiment. DEV−X407からの割込みが発生した場合における計算機401の動作を示すフローチャート。The flowchart which shows operation | movement of the computer 401 when the interruption from DEV-X407 generate | occur | produces. 計算機101、計算機201、計算機401のハードウェア構成の一例を示す図。The figure which shows an example of the hardware constitutions of the computer 101, the computer 201, and the computer 401.

以下の説明において、処理装置とは後述するCPU911等のことである。つまり、処理装置はハードウェアである。
また、以下の説明において、仮想マシンモニタは仮想マシンモニタ実行部が処理装置により動作させ、オペレーティングシステムはオペレーティングシステム実行部が処理装置により動作させるものである。つまり、仮想マシンモニタ、オペレーティングシステム等は、ハードウェアである処理装置と協調して動作するものである。
In the following description, the processing device refers to a CPU 911 and the like which will be described later. In other words, the processing device is hardware.
In the following description, a virtual machine monitor is a virtual machine monitor execution unit operated by a processing device, and an operating system is an operating system execution unit operated by a processing device. That is, a virtual machine monitor, an operating system, etc. operate in cooperation with a processing device that is hardware.

実施の形態1.
まず、計算機における基本的な割込み制御について簡単に説明する。
図1は、計算機の構成図である。
図1において、計算機101は物理的な計算機(物理マシン)である。計算機101では、仮想マシンモニタであるVMM102が動作している。VMM102は仮想マシンであるVM−A103、VM−B104を提供している。VM−A103、VM−B104では、それぞれオペレーティングシステムであるOS−A105、OS−B106が動作している。
Embodiment 1 FIG.
First, basic interrupt control in a computer will be briefly described.
FIG. 1 is a configuration diagram of a computer.
In FIG. 1, a computer 101 is a physical computer (physical machine). In the computer 101, a VMM 102 that is a virtual machine monitor is operating. The VMM 102 provides VM-A 103 and VM-B 104 which are virtual machines. In the VM-A 103 and the VM-B 104, OS-A 105 and OS-B 106, which are operating systems, operate.

計算機101内には、物理デバイスであるDEV−X107、DEV−Y108の割込み線が、割込みコントローラであるINTC109のIRQ#9へ接続されている。つまり、DEV−X107とDEV−Y108とが同一の割り込み番号“9”(識別情報)を共有している。従って、IRQ#9の割込みが発生した場合、その割込みの要因がDEV−X107、DEV−Y108のいずれか、または両方かを一意に判断することはできない。   In the computer 101, the interrupt lines of DEV-X107 and DEV-Y108 which are physical devices are connected to IRQ # 9 of INTC109 which is an interrupt controller. That is, DEV-X 107 and DEV-Y 108 share the same interrupt number “9” (identification information). Accordingly, when an interrupt of IRQ # 9 occurs, it cannot be uniquely determined whether the cause of the interrupt is DEV-X 107, DEV-Y 108, or both.

計算機101内のINTC109は、物理デバイスからの割込み信号を検出するとVMM102の割込みハンドラであるIRQH110へ割込み信号を送信する。
割込み信号を受信したIRQH110は、その割込み番号に登録されているデバイスドライバDD−X111、DD−Y112を実行する。DD−X111、DD−Y112はそれぞれ物理デバイスであるDEV−X107、DEV−Y108へアクセスし、割込みを発生させているか否かを判定する。割込みハンドラIRQH110は、DEV−X107が割込みを発生させている場合は、そのデバイスを使用する仮想マシンVM−A103の仮想割込みコントローラvINTC−A113へ割込み発生を通知する。同様にDEV−Y108が割込みを発生させている場合は、そのデバイスを使用する仮想マシンVM−B104の割込みコントローラvINTC−B115へ割込み発生を通知する。
割込み発生を通知された仮想割込みコントローラvINTC−A113(もしくはvINTC−B115)は、OS−A105(もしくはOS−B106)の割込みハンドラIRQH−A117(もしくはIRQH−B119)へ割込み発生を通知する。
割込みハンドラは該割込み番号へ登録されたデバイスドライバvDD−X118(もしくはvDD−Y120)を実行する。デバイスドライバvDD−X118(もしくはvDD−Y112)は、VM内の仮想デバイスvDEV−X114(もしくはvDEV−Y116)へアクセスする。
When the INTC 109 in the computer 101 detects an interrupt signal from a physical device, the INTC 109 transmits an interrupt signal to the IRQH 110 that is an interrupt handler of the VMM 102.
The IRQH 110 that has received the interrupt signal executes the device drivers DD-X111 and DD-Y112 registered in the interrupt number. The DD-X 111 and DD-Y 112 access the DEV-X 107 and DEV-Y 108, which are physical devices, respectively, and determine whether or not an interrupt is generated. When the DEV-X 107 generates an interrupt, the interrupt handler IRQH 110 notifies the virtual interrupt controller vINTC-A 113 of the virtual machine VM-A 103 that uses the device that the interrupt has occurred. Similarly, when the DEV-Y 108 has generated an interrupt, the interrupt generation is notified to the interrupt controller vINTC-B 115 of the virtual machine VM-B 104 that uses the device.
The virtual interrupt controller vINTC-A 113 (or vINTC-B 115) notified of the occurrence of the interrupt notifies the interrupt handler IRQH-A 117 (or IRQH-B 119) of the OS-A 105 (or OS-B 106) of the occurrence of the interrupt.
The interrupt handler executes the device driver vDD-X 118 (or vDD-Y 120) registered for the interrupt number. The device driver vDD-X 118 (or vDD-Y 112) accesses the virtual device vDEV-X 114 (or vDEV-Y 116) in the VM.

つまり、計算機101では、VMM102のIRQH110が割込み番号に対応する全てのデバイスドライバを実行して、どのデバイスが割込みを発生させたかを特定する。そのため、VMM102にはオーバヘッドがかかる。また、VMM102は全てのデバイスドライバを持つ必要がある。   That is, in the computer 101, the IRQH 110 of the VMM 102 executes all device drivers corresponding to the interrupt numbers, and identifies which device has generated the interrupt. Therefore, the VMM 102 has an overhead. The VMM 102 needs to have all device drivers.

次に、実施の形態1に係る計算機201(割込み制御装置)について説明する。
図2は、実施の形態1に係る計算機201の構成図である。
図2において、計算機201は物理的な計算機である。計算機201では、仮想マシンモニタであるVMM202が動作している。VMM202は仮想マシンであるVM−A203、VM−B204を提供している。VM−A203、VM−B204では、それぞれオペレーティングシステムであるOS−A205、OS−B206が動作している。
Next, the computer 201 (interrupt control device) according to the first embodiment will be described.
FIG. 2 is a configuration diagram of the computer 201 according to the first embodiment.
In FIG. 2, a computer 201 is a physical computer. In the computer 201, a VMM 202 which is a virtual machine monitor is operating. The VMM 202 provides VM-A 203 and VM-B 204 which are virtual machines. In VM-A 203 and VM-B 204, OS-A 205 and OS-B 206, which are operating systems, are operating, respectively.

計算機201内には、物理デバイスであるDEV−X207、DEV−Y208の割込み線が、割込みコントローラであるINTC209のIRQ#9へ接続されている。なお、ここでは割込み番号を9としているが、他の割込み番号でも構わない。   In the computer 201, interrupt lines of DEV-X207 and DEV-Y208 which are physical devices are connected to IRQ # 9 of INTC209 which is an interrupt controller. Although the interrupt number is 9 here, other interrupt numbers may be used.

VMM202内では、割込みハンドラであるIRQH210が動作する。IRQH210は、計算機201のINTC209から割込み信号を受信すると、各VM(VM−A203、VM−B204)へ割込み信号を送信する。
VM−A203、VM−B204内では、それぞれ仮想割込みコントローラであるvINTC−A211、vINTC−B212が動作する。各vINTCはVMM202のIRQH210から割込み信号を受信し、受信した割込み信号をOSへ送信する。
OS−A205、OS−B206内では、それぞれ割込みハンドラであるIRQH−A213、IRQH−B216と、デバイスドライバであるDD−X214、DD−Y217と、ダミーデバイスドライバであるdDD−A215、dDD−B218とが動作する。各OS内のIRQHはVMのvINTCから割込み発生を受信し、その割込み番号に登録されているデバイスドライバDDおよびdDDを実行する。DD−X214、DD−Y217は、それぞれ計算機201内のDEV−X207、DEV−Y208へアクセスし割込みが発生している場合は、それに対する処理を実行する。dDD−A215、dDD−B218は、デバイスに対して何もせずに割込み処理の正常終了を応答する。
In the VMM 202, an IRQH 210 that is an interrupt handler operates. Upon receiving an interrupt signal from the INTC 209 of the computer 201, the IRQH 210 transmits an interrupt signal to each VM (VM-A 203, VM-B 204).
In the VM-A 203 and VM-B 204, vINTC-A211 and vINTC-B212, which are virtual interrupt controllers, operate. Each vINTC receives an interrupt signal from the IRQH 210 of the VMM 202 and transmits the received interrupt signal to the OS.
Within OS-A 205 and OS-B 206, interrupt handlers IRQH-A 213 and IRQH-B 216, device drivers DD-X 214 and DD-Y 217, dummy device drivers dDD-A 215 and dDD-B 218, respectively Works. The IRQH in each OS receives the interrupt generation from the VM vINTC, and executes the device drivers DD and dDD registered in the interrupt number. The DD-X 214 and DD-Y 217 access the DEV-X 207 and DEV-Y 208 in the computer 201, respectively, and execute processing for the interrupt when an interrupt occurs. The dDD-A 215 and dDD-B 218 respond to the normal end of the interrupt processing without doing anything to the device.

次に、実施の形態1に係る計算機201の割込み制御について説明する。
図3は、DEV−X207からの割込みが発生した場合における計算機201の動作を示すフローチャートである。
まず、計算機201のDEV−X207で割込みが発生し(S301)、INTC209が割込み発生を示す割込み信号を受信する(S302)。INTC209は、VMM202へ割込み信号を送信する(S303)。割込み信号を受信したVMM202のIRQH210は、各VM(VM−A203、VM−B204)へ割込み信号を送信する(S304)。
Next, interrupt control of the computer 201 according to the first embodiment will be described.
FIG. 3 is a flowchart showing the operation of the computer 201 when an interrupt from the DEV-X 207 occurs.
First, an interrupt is generated in the DEV-X 207 of the computer 201 (S301), and the INTC 209 receives an interrupt signal indicating the occurrence of an interrupt (S302). The INTC 209 transmits an interrupt signal to the VMM 202 (S303). The IRQH 210 of the VMM 202 that has received the interrupt signal transmits an interrupt signal to each VM (VM-A 203, VM-B 204) (S304).

割込み信号を受信したVM−A203のvINTC−A211は、OS−A205へ割込み信号を送信する(S305)。割込み信号を受信したOS−A205のIRQH−A213は、受信した割込み信号に割り当てられているデバイスドライバ(DD−X214)を実行する(S306)。DD−X214は、計算機201のDEV−X207へアクセスし(S307)、DEV−X207が割込みを発生させているかを判定する(S308)。
DD−X214は、DEV−X207が割込みを発生させている場合(S308でYES)、DEV−X207の割込みに対応する処理を実行する(S309)。これにより、DEV−X207の割込みが停止され(S310)、DD−X214は割込み処理の正常終了をIRQH−A213へ応答する(S311)。一方、DD−X214は、DEV−X207が割込みを発生させていなかった場合(S308でNO)、デバイスに対する処理を実行せず、処理を(S312)へ進める。なお、ここでは、DEV−X207が割込みを発生させているため、(S308)から(S309)へ処理が進む。
IRQH−A213は、dDD−A215を実行して、割込み処理の正常終了を応答させる(S312)。割込み処理の正常終了を受け取ったIRQH−A213は、ドライバ実行を終了する(S313)。
The vINTC-A 211 of the VM-A 203 that has received the interrupt signal transmits the interrupt signal to the OS-A 205 (S305). The IRQH-A 213 of the OS-A 205 that has received the interrupt signal executes the device driver (DD-X 214) assigned to the received interrupt signal (S306). The DD-X 214 accesses the DEV-X 207 of the computer 201 (S307), and determines whether the DEV-X 207 generates an interrupt (S308).
When the DEV-X 207 generates an interrupt (YES in S308), the DD-X 214 executes a process corresponding to the DEV-X 207 interrupt (S309). Thereby, the interruption of DEV-X207 is stopped (S310), and DD-X214 responds to IRQH-A213 about the normal end of the interruption process (S311). On the other hand, if the DEV-X 207 has not generated an interrupt (NO in S308), the DD-X 214 does not execute the process for the device and advances the process to (S312). Here, since the DEV-X 207 generates an interrupt, the process proceeds from (S308) to (S309).
The IRQH-A 213 executes the dDD-A 215 to respond with a normal end of the interrupt process (S312). The IRQH-A 213 that has received the normal end of the interrupt processing ends the driver execution (S313).

同様に、割込み通知を受信したVM−B204のvINTC−B212はOS−B206へ割込み信号を送信する(S314)。割込み信号を受信したOS−B206のIRQH−B216は、受信した割込み信号に割り当てられているデバイスドライバ(DD−Y217)を実行する(S315)。DD−Y217は、計算機201のDEV−Y208へアクセスし(S316)、DEV−Y208が割込みを発生させているかを判定する(S317)。
DD−Y217は、DEV−Y208が割込みを発生させている場合(S317でYES)、DEV−Y208の割込みに対応する処理を実行する(S318)。これによりDEV−Y208の割込みが停止され、DD−Y217は割込み処理の正常終了をIRQH−B216へ応答する(S319)。一方、DEV−Y208が割込みを発生させていなかった場合(S317でNO)、デバイスに対する処理を実行せず、処理を(S320)へ進める。なお、ここでは、DEV−Y208が割込みを発生させていないため、(S317)から(S320)へ処理が進む。
IRQH−B216は、dDD−B218を実行して、割込み処理の正常終了を応答させる(S320)。割込み処理の正常終了を受け取ったIRQH−B216はドライバ実行を終了する(S321)。
Similarly, the vINTC-B 212 of the VM-B 204 that has received the interrupt notification transmits an interrupt signal to the OS-B 206 (S314). The IRQH-B 216 of the OS-B 206 that has received the interrupt signal executes the device driver (DD-Y 217) assigned to the received interrupt signal (S315). The DD-Y 217 accesses the DEV-Y 208 of the computer 201 (S316), and determines whether the DEV-Y 208 generates an interrupt (S317).
When the DEV-Y 208 has generated an interrupt (YES in S317), the DD-Y 217 executes processing corresponding to the interrupt of the DEV-Y 208 (S318). As a result, the interrupt of DEV-Y 208 is stopped, and DD-Y 217 responds to IRQH-B 216 of the normal end of the interrupt processing (S319). On the other hand, if the DEV-Y 208 has not generated an interrupt (NO in S317), the process for the device is not executed and the process proceeds to (S320). Here, since the DEV-Y 208 does not generate an interrupt, the process proceeds from (S317) to (S320).
The IRQH-B 216 executes the dDD-B 218 to respond with a normal end of the interrupt process (S320). The IRQH-B 216 that has received the normal end of the interrupt processing ends the driver execution (S321).

以上のように、実施の形態1に係る計算機201では、VMM202は単に割込み信号を各VMへ送信するだけである。したがって、VMM202にはオーバヘッドがかからない。また、VMM202はデバイスドライバを実行することがないため、VMM202の構造を単純化できる。   As described above, in the computer 201 according to the first embodiment, the VMM 202 simply transmits an interrupt signal to each VM. Therefore, the VMM 202 has no overhead. Further, since the VMM 202 does not execute a device driver, the structure of the VMM 202 can be simplified.

なお、上記説明において、(S312)や(S320)でdDD−A215やdDD−B218のダミーデバイスドライバが割込み処理の正常終了を応答するとした。これは、通常、IRQH−A213やIRQH−B216の割込みハンドラは、デバイスドライバを実行した後、所定時間内に割込み処理の正常終了の応答がない場合、処理が異常終了したと判定してしまう。また、通常、割込み処理を実行していないデバイスドライバは、割込み処理の正常終了を応答しない。そこで、割込みが発生していないにも関わらず、デバイスドライバが実行された場合、ダミーデバイスドライバが割込み処理の正常終了を応答するようにしている。
上記説明では、割込みが発生した場合においては、デバイスドライバとダミーデバイスドライバとの両方から割込み処理の正常終了の応答がされる。割込みが発生した場合においては、ダミーデバイスドライバから割込み処理の正常終了の応答をする処理((S312)や(S320))が実行されないようにしてもよい。しかし、デバイスドライバとダミーデバイスドライバとの両方から割込み処理の正常終了の応答がされても、割込みハンドラの処理には影響を与えない。そのため、処理を単純にすることを考慮して、上記説明の通りの処理の流れとしてもよい。
In the above description, it is assumed that the dummy device driver of dDD-A 215 or dDD-B 218 responds that the interrupt processing is normally completed in (S312) and (S320). Normally, the interrupt handler of IRQH-A 213 or IRQH-B 216 determines that the process has ended abnormally if there is no response to the normal end of the interrupt process within a predetermined time after executing the device driver. In general, a device driver that has not executed interrupt processing does not respond to the normal end of interrupt processing. Therefore, when the device driver is executed even though no interrupt has occurred, the dummy device driver responds to the normal end of the interrupt processing.
In the above description, when an interrupt occurs, a response indicating normal termination of the interrupt processing is sent from both the device driver and the dummy device driver. When an interrupt occurs, the process ((S312) or (S320)) for responding the normal end of the interrupt process from the dummy device driver may not be executed. However, even if both the device driver and the dummy device driver respond to the normal end of the interrupt processing, the interrupt handler processing is not affected. Therefore, considering the simplification of the process, the process flow as described above may be used.

実施の形態2.
実施の形態1では、VMMの割込みハンドラは割込みを発生させた物理デバイスを特定せず、全VMに対して割込み発生を通知するようにした。実施の形態2では、VMMの割込みハンドラが、デバイスドライバを実行するのではなく、割込み発生の判定のみ実施する方法について説明する。
Embodiment 2. FIG.
In the first embodiment, the VMM interrupt handler does not identify the physical device that generated the interrupt, and notifies all VMs of the occurrence of the interrupt. In the second embodiment, a description will be given of a method in which the VMM interrupt handler does not execute the device driver, but only determines whether an interrupt has occurred.

実施の形態1に係る計算機201(割込み制御装置)について説明する。
図4は、実施の形態2に係る計算機401の構成図である。
図4において、計算機401は物理的な計算機である。計算機401では、仮想マシンモニタであるVMM402が動作している。VMM402は仮想マシンであるVM−A403、VM−B404を提供している。VM−A403、VM−B404では、それぞれオペレーティングシステムであるOS−A405、OS−B406が動作している。
A computer 201 (interrupt control device) according to the first embodiment will be described.
FIG. 4 is a configuration diagram of the computer 401 according to the second embodiment.
In FIG. 4, a computer 401 is a physical computer. In the computer 401, a VMM 402 that is a virtual machine monitor is operating. The VMM 402 provides VM-A 403 and VM-B 404 which are virtual machines. In VM-A 403 and VM-B 404, operating systems OS-A 405 and OS-B 406 are operating, respectively.

計算機401内には、物理デバイスであるDEV−X407、DEV−Y408の割込み線が、割込みコントローラであるINTC409のIRQ#9へ接続されている。なお、ここでは割込み番号を9としているが、他の割込み番号でも構わない。   In the computer 401, DEV-X407 and DEV-Y408 interrupt lines, which are physical devices, are connected to IRQ # 9 of INTC409, which is an interrupt controller. Although the interrupt number is 9 here, other interrupt numbers may be used.

VMM402内では、割込みハンドラであるIRQH410と、割込みハンドラから実行され割込みを発生させているデバイスを検出する割込み判定処理jDD−X411、jDD−Y412とが動作する。IRQH410は、計算機401のINTC409から割込み信号を受信し、受信した割込みに対応する割込み判定処理を実行する。割込み判定処理jDD−X411、jDD−Y412は、それぞれ計算機401内の物理デバイスDEV−X407、DEV−Y408へアクセスし、割込みを発生させているかを判定する。IRQH410は、割込み判定処理の結果を元にどのVMへ割込み信号を送信するか特定し、特定したVMへ割込み信号を送信する。
VM−A403、VM−B404内では、仮想割込みコントローラであるvINTC−A413、vINTC−B414が動作する。vINTC−A413、vINTC−B414は、VMM402のIRQH410から割込み信号を受信し、OS−A405、OS−B406へ通知する。
OS−A405、OS−B406内では、割込みハンドラであるIRQH−A415、IRQH−B417と、デバイスドライバであるDD−X416、DD−Y418とが動作する。各OS内のIRQHは、対応するVMのvINTCから割込み信号を受信し、その割込み番号に登録されているデバイスドライバDDを実行する。DD−X416、DD−Y418は、それぞれ計算機401内のDEV−X407、DEV−Y408へアクセスし割込みが発生している場合は、それに対する処理を実行する。
In the VMM 402, an IRQH 410 that is an interrupt handler and interrupt determination processes jDD-X411 and jDD-Y412 that detect a device that is executed from the interrupt handler and that generates an interrupt operate. The IRQH 410 receives an interrupt signal from the INTC 409 of the computer 401 and executes an interrupt determination process corresponding to the received interrupt. Interrupt determination processes jDD-X411 and jDD-Y412 access the physical devices DEV-X407 and DEV-Y408 in the computer 401, respectively, and determine whether an interrupt is generated. The IRQH 410 specifies to which VM the interrupt signal is transmitted based on the result of the interrupt determination process, and transmits the interrupt signal to the specified VM.
Within the VM-A 403 and VM-B 404, virtual interrupt controllers vINTC-A 413 and vINTC-B 414 operate. The vINTC-A 413 and vINTC-B 414 receive the interrupt signal from the IRQH 410 of the VMM 402 and notify the OS-A 405 and OS-B 406.
Within OS-A 405 and OS-B 406, interrupt handlers IRQH-A 415 and IRQH-B 417 and device drivers DD-X 416 and DD-Y 418 operate. The IRQH in each OS receives an interrupt signal from the vINTC of the corresponding VM, and executes the device driver DD registered in the interrupt number. The DD-X 416 and DD-Y 418 access the DEV-X 407 and DEV-Y 408 in the computer 401, respectively, and execute processing for the interrupt when an interrupt occurs.

次に、実施の形態2に係る計算機401の割込み制御について説明する。
図5は、DEV−X407からの割込みが発生した場合における計算機401の動作を示すフローチャートである。
まず、計算機401のDEV−X407により割込みが発生し(S501)、INTC409が割込み発生を示す割込み発生を受信する(S502)。INTC409は、VMM402へ割込み信号を送信する(S503)。
Next, interrupt control of the computer 401 according to the second embodiment will be described.
FIG. 5 is a flowchart showing the operation of the computer 401 when an interrupt from the DEV-X 407 occurs.
First, an interrupt is generated by the DEV-X 407 of the computer 401 (S501), and the INTC 409 receives an interrupt generation indicating the occurrence of the interrupt (S502). The INTC 409 transmits an interrupt signal to the VMM 402 (S503).

割込み信号を受信したVMM402のIRQH410は、受信した割込み信号に割り当てられている割込み判定処理(jDD−X411、jDD−Y412)を実行する。jDD−X411は、DEV−X407へアクセスし(S504)、DEV−X407が割込みを発生させているかを判定する(S505)。DEV−X407が割込みを発生している場合(S505でYES)、DEV−X割込みフラグを内部メモリにセットする(S506)。同様に、jDD−Y412は、DEV−Y408へアクセスし(S507)、DEV−Y408が割込みを発生させているかを判定する(S508)。DEV−Y408が割込みを発生している場合(S508でYES)、DEV−Y割込みフラグを内部メモリにセットする(S509)。IRQH410は、内部メモリにセットされた割込みフラグをチェックし、DEV−X407が割込みを発生させている場合はVM−A403へ、DEV−Y408が割込みを発生させている場合はVM−B404へ割込み信号を送信する(S510)。
なお、ここでは、DEV−X407が割込みを発生させているため、IRQH410はVM−A403へ割込み信号を送信する。そこで、図5では、割込み信号が送信されないVM−B404側の処理を破線で示す。
The IRQH 410 of the VMM 402 that has received the interrupt signal executes an interrupt determination process (jDD-X411, jDD-Y412) assigned to the received interrupt signal. The jDD-X 411 accesses the DEV-X 407 (S504), and determines whether the DEV-X 407 generates an interrupt (S505). If the DEV-X 407 has generated an interrupt (YES in S505), the DEV-X interrupt flag is set in the internal memory (S506). Similarly, the jDD-Y 412 accesses the DEV-Y 408 (S507), and determines whether the DEV-Y 408 has generated an interrupt (S508). If the DEV-Y 408 has generated an interrupt (YES in S508), the DEV-Y interrupt flag is set in the internal memory (S509). The IRQH 410 checks the interrupt flag set in the internal memory. When the DEV-X 407 generates an interrupt, the interrupt signal is sent to the VM-A 403, and when the DEV-Y 408 generates an interrupt, the interrupt signal is sent to the VM-B 404. Is transmitted (S510).
Here, since the DEV-X 407 generates an interrupt, the IRQH 410 transmits an interrupt signal to the VM-A 403. Therefore, in FIG. 5, the process on the VM-B 404 side where no interrupt signal is transmitted is indicated by a broken line.

割込み信号を受信したVM−A403のvINTC−A413は、OS−A405へ割込み信号を送信する(S511)。割込み信号を受信したOS−A405のIRQH−A415は、受信した割込み信号に割り当てられているデバイスドライバ(DD−X416)を実行する(S512)。DD−X416は、計算機401のDEV−X407へアクセスし(S513)、DEV−X407が割込みを発生させているかを判定する(S514)。DD−X416は、DEV−X407が割込みを発生させている場合にDEV−X407の割込みに対応する処理を実行する(S515)。これによりDEV−X407の割込みが停止され(S516)、DD−X416は割込み処理の正常終了をIRQH−A415へ応答する(S517)。割込み処理の正常終了を受け取ったIRQH−A415はドライバ実行を終了する(S518)。   The vINTC-A 413 of the VM-A 403 that has received the interrupt signal transmits an interrupt signal to the OS-A 405 (S511). The IRQH-A 415 of the OS-A 405 that has received the interrupt signal executes the device driver (DD-X 416) assigned to the received interrupt signal (S512). The DD-X 416 accesses the DEV-X 407 of the computer 401 (S513), and determines whether the DEV-X 407 generates an interrupt (S514). When the DEV-X 407 generates an interrupt, the DD-X 416 executes processing corresponding to the DEV-X 407 interrupt (S515). As a result, the interruption of DEV-X407 is stopped (S516), and DD-X416 responds to IRQH-A415 about the normal end of interruption processing (S517). The IRQH-A 415 that has received the normal end of the interrupt processing ends the driver execution (S518).

以上のように、実施の形態2に係る計算機401では、VMM402はデバイスドライバを実行するのではなく、単に割込みを発生させているデバイスを特定する処理のみを行う。したがって、VMM402は、実施の形態1に係る計算機201に比べるとオーバヘッドが発生するものの、計算機101に比べるとオーバヘッドが小さくなる。また、実施の形態1に係る計算機201と同様に、VMM402がデバイスドライバを持つ必要がない。
また、実施の形態2に係る計算機401では、VMM402が割込みを発生させているデバイスを特定しているため、VMに無駄な処理が発生せず、VMにかかる負荷を軽減できる。
As described above, in the computer 401 according to the second embodiment, the VMM 402 does not execute a device driver, but simply performs a process of specifying a device that generates an interrupt. Therefore, although the VMM 402 generates an overhead compared to the computer 201 according to the first embodiment, the VMM 402 has a smaller overhead than the computer 101. Further, like the computer 201 according to the first embodiment, the VMM 402 does not need to have a device driver.
Further, in the computer 401 according to the second embodiment, since the VMM 402 identifies a device that generates an interrupt, no unnecessary processing occurs in the VM, and the load on the VM can be reduced.

なお、VMM402で割込みを発生させているデバイスを特定した上で、対応するVMへ割込み信号を送信しているため、割込み信号が送信されたVMでは割込みが発生しているか否かを判定する必要はない。したがって、(S514)での判定は本来不要である。しかし、判定を行っても何ら処理に影響はなく、デバイスドライバの処理を敢えて変更する必要はないため、上記説明の通りの処理の流れとしてもよい。   Since the VMM 402 identifies a device that has generated an interrupt and transmits an interrupt signal to the corresponding VM, it is necessary to determine whether or not an interrupt has occurred in the VM to which the interrupt signal is transmitted. There is no. Therefore, the determination in (S514) is not originally necessary. However, even if the determination is made, there is no effect on the processing, and it is not necessary to change the processing of the device driver. Therefore, the processing flow described above may be used.

また、上記説明では、DEV−X407が割込みを発生させた場合について説明したため、VM−B404側の処理についての説明は省略した。VM−B404側の処理は、VM−A403側の処理と同様である。   In the above description, since the case where the DEV-X 407 generates an interrupt has been described, the description of the processing on the VM-B 404 side is omitted. The process on the VM-B 404 side is the same as the process on the VM-A 403 side.

また、上記説明では、DEV−X407とDEV−Y408とが同時に割込みを発生させる場合も想定して、(S505)と(S508)とでDEV−X407とDEV−Y408とが割込みを発生させているかを判定した。しかし、DEV−X407とDEV−Y408とが同時に割込みを発生させることがないのであれば、(S505)でDEV−X407が割込みを発生させているか否か判定するだけで、DEV−X407とDEV−Y408とのどちらが割込みを発生させているか判定できる。
さらに、3つ以上のデバイスについて、どのデバイスが割込みを発生させているかを判定する場合もある。この場合には、各デバイスについての割込み判定処理jDDを順に実行して、割込みを発生させているデバイスが特定された時点で、残りの割込み判定処理jDDの実行を止めてもよい。
In the above description, it is assumed that DEV-X 407 and DEV-Y 408 generate an interrupt at the same time, and whether DEV-X 407 and DEV-Y 408 generate an interrupt in (S505) and (S508). Was judged. However, if the DEV-X 407 and the DEV-Y 408 do not generate an interrupt at the same time, it is only determined whether or not the DEV-X 407 generates an interrupt in (S505), and the DEV-X 407 and the DEV-- It can be determined which of Y408 is generating the interrupt.
Further, for three or more devices, it may be determined which device is generating an interrupt. In this case, the interrupt determination process jDD for each device may be sequentially executed, and the execution of the remaining interrupt determination process jDD may be stopped when the device that has generated the interrupt is identified.

また、各割込み判定処理jDDは、対応するデバイスドライバ(例えば、jDD−X411であれば、DD−X416)が登録されたOS−A405が起動する場合に、デバイスドライバがVMM402に登録するものとする。   Each interrupt determination process jDD is registered in the VMM 402 when the OS-A 405 in which the corresponding device driver (for example, DD-X416 for jDD-X411) is registered starts. .

次に、実施の形態における計算機101、計算機201、計算機401のハードウェア構成について説明する。
図6は、計算機101、計算機201、計算機401のハードウェア構成の一例を示す図である。
図6に示すように、計算機101、計算機201、計算機401は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、LCD901(Liquid Crystal Display)、キーボード902(K/B)、通信ボード915、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920(固定ディスク装置)の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。磁気ディスク装置920は、所定の固定ディスクインタフェースを介して接続される。
Next, the hardware configuration of the computer 101, the computer 201, and the computer 401 in the embodiment will be described.
FIG. 6 is a diagram illustrating an example of a hardware configuration of the computer 101, the computer 201, and the computer 401.
As shown in FIG. 6, the computer 101, the computer 201, and the computer 401 have a CPU 911 (also referred to as a central processing unit, a central processing unit, a processing unit, a processing unit, a microprocessor, a microcomputer, or a processor) that executes a program. I have. The CPU 911 is connected to the ROM 913, the RAM 914, the LCD 901 (Liquid Crystal Display), the keyboard 902 (K / B), the communication board 915, and the magnetic disk device 920 via the bus 912, and controls these hardware devices. Instead of the magnetic disk device 920 (fixed disk device), a storage device such as an optical disk device or a memory card read / write device may be used. The magnetic disk device 920 is connected via a predetermined fixed disk interface.

ROM913、磁気ディスク装置920は、不揮発性メモリの一例である。RAM914は、揮発性メモリの一例である。ROM913とRAM914と磁気ディスク装置920とは、記憶装置(メモリ)の一例である。   The ROM 913 and the magnetic disk device 920 are examples of a nonvolatile memory. The RAM 914 is an example of a volatile memory. The ROM 913, the RAM 914, and the magnetic disk device 920 are examples of a storage device (memory).

磁気ディスク装置920又はROM913などには、オペレーティングシステム921、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。   An operating system 921, a window system 922, a program group 923, and a file group 924 are stored in the magnetic disk device 920 or the ROM 913. The programs in the program group 923 are executed by the CPU 911, the operating system 921, and the window system 922.

プログラム群923には、上記の説明において「VMM102」、「VM−A103」、「VM−B104」、「OS−A105」、「OS−B106」、「INTC109」、「IRQH110」、「DD−X111」、「DD−Y112」、「vINTC−A113」、「vDEV−X114」、「vINTC−B115」、「vDEV−Y116」、「IRQH−A117」、「vDD−X118」、「IRQH−B119」、「vDD−Y120」、「VMM202」、「VM−A203」、「VM−B204」、「OS−A205」、「OS−B206」、「INTC209」、「IRQH210」、「vINTC−A211」、「vINTC−B212」、「IRQH−A213」、「DD−X214」、「dDD−A215」、「IRQH−B216」、「DD−Y217」、「dDD−B218」、「VMM402」、「VM−A403」、「VM−B404」、「OS−A405」、「OS−B406」、「INTC409」、「IRQH410」、「jDD−X411」、「jDD−Y412」、「vINTC−A413」、「vINTC−B414」、「IRQH−A415」、「DD−X416」、「IRQH−B417」、「DD−Y418」等として説明した機能を実行するソフトウェアやプログラムやその他のプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、上記の説明において「割込み信号」、「割込みフラグ」等の情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶される。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのCPU911の動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のCPU911の動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
The program group 923 includes “VMM102”, “VM-A103”, “VM-B104”, “OS-A105”, “OS-B106”, “INTC109”, “IRQH110”, “DD-X111” in the above description. ”,“ DD-Y112 ”,“ vINTC-A113 ”,“ vDEV-X114 ”,“ vINTC-B115 ”,“ vDEV-Y116 ”,“ IRQH-A117 ”,“ vDD-X118 ”,“ IRQH-B119 ”, “VDD-Y120”, “VMM202”, “VM-A203”, “VM-B204”, “OS-A205”, “OS-B206”, “INTC209”, “IRQH210”, “vINTC-A211”, “vINTC” -B212 "," IRQH-A213 "," DD-X214 "," dDD-A215 " “IRQH-B216”, “DD-Y217”, “dDD-B218”, “VMM402”, “VM-A403”, “VM-B404”, “OS-A405”, “OS-B406”, “INTC409”, “IRQH410”, “jDD-X411”, “jDD-Y412”, “vINTC-A413”, “vINTC-B414”, “IRQH-A415”, “DD-X416”, “IRQH-B417”, “DD-Y418” Software, programs and other programs that execute the functions described as “etc.” are stored. The program is read and executed by the CPU 911.
In the file group 924, information, data, signal values, variable values, and parameters such as “interrupt signal” and “interrupt flag” in the above description are stored as items of “file” and “database”. The “file” and “database” are stored in a recording medium such as a disk or a memory. Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit, and extracted, searched, referenced, compared, and calculated. Used for the operation of the CPU 911 such as calculation / processing / output / printing / display. Information, data, signal values, variable values, and parameters are temporarily stored in the main memory, cache memory, and buffer memory during the operation of the CPU 911 for extraction, search, reference, comparison, calculation, calculation, processing, output, printing, and display. Is remembered.

また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、その他光ディスク等の記録媒体やICチップに記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体や電波によりオンライン伝送される。
また、上記の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。また、「〜装置」として説明するものは、「〜回路」、「〜機器」、「〜手段」、「〜機能」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。さらに、「〜処理」として説明するものは「〜ステップ」であっても構わない。すなわち、「〜部」として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、ROM913等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、上記で述べた「〜部」としてコンピュータ等を機能させるものである。あるいは、上記で述べた「〜部」の手順や方法をコンピュータ等に実行させるものである。
In the above description, the arrows in the flowchart mainly indicate input / output of data and signals, and the data and signal values are recorded in a memory of the RAM 914, other recording media such as an optical disk, and an IC chip. Data and signals are transmitted online by a bus 912, signal lines, cables, other transmission media, and radio waves.
In addition, what is described as “to part” in the above description may be “to circuit”, “to device”, “to device”, “to means”, and “to function”. It may be “step”, “˜procedure”, “˜processing”. In addition, what is described as “˜device” may be “˜circuit”, “˜device”, “˜means”, “˜function”, and “˜step”, “˜procedure”, “ ~ Process ". Furthermore, what is described as “to process” may be “to step”. That is, what is described as “˜unit” may be realized by firmware stored in the ROM 913. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware. Firmware and software are stored in a recording medium such as ROM 913 as a program. The program is read by the CPU 911 and executed by the CPU 911. That is, the program causes a computer or the like to function as the “˜unit” described above. Alternatively, the computer or the like is caused to execute the procedures and methods of “to part” described above.

101,201,401 計算機、102,202,402 VMM、103,203,403 VM−A、104,204,404 VM−B、105,205,405 OS−A、106,206,406 OS−B、107,207,407 DEV−X、108,208,408 DEV−Y、109,209,409 INTC、110,210,410 IRQH、111,214,416 DD−X、112,217,418 DD−Y、113,211,413 vINTC−A、114 vDEV−X、115,212,414 vINTC−B、116 vDEV−Y、117,213,415 IRQH−A、118 vDD−X、119,216,417 IRQH−B、120 vDD−Y、215 dDD−A、218 dDD−B、411 jDD−X、412 jDD−Y。   101, 201, 401 Computer, 102, 202, 402 VMM, 103, 203, 403 VM-A, 104, 204, 404 VM-B, 105, 205, 405 OS-A, 106, 206, 406 OS-B, 107, 207, 407 DEV-X, 108, 208, 408 DEV-Y, 109, 209, 409 INTC, 110, 210, 410 IRQH, 111, 214, 416 DD-X, 112, 217, 418 DD-Y, 113, 211, 413 vINTC-A, 114 vDEV-X, 115, 212, 414 vINTC-B, 116 vDEV-Y, 117, 213, 415 IRQH-A, 118 vDD-X, 119, 216, 417 IRQH-B 120 vDD-Y, 215 dDD-A, 218 dD -B, 411 jDD-X, 412 jDD-Y.

Claims (6)

ハードウェアリソースを仮想化した複数の仮想マシンを提供する仮想マシンモニタを処理装置により動作させる仮想マシンモニタ実行部と、
前記仮想マシンモニタ実行部が動作させた複数の仮想マシンの各仮想マシンの制御下で、オペレーティングシステムを処理装置により動作させるオペレーティングシステム実行部と、
前記オペレーティングシステム実行部が前記各仮想マシンの制御下で動作させたオペレーティングシステムに対応付けられた複数のデバイスから同一の識別情報が割り当てられた割込み信号が送信される場合に、前記複数のデバイスのうちのあるデバイスから送信された割込み信号を受信し、受信した割込み信号を前記仮想マシンモニタへ送信する割込みコントローラと
を備え、
前記仮想マシンモニタは、前記割込みコントローラから割込み信号が送信されると、その割込み信号を前記各仮想マシンへ送信し、
前記各仮想マシンの制御下で動作するオペレーティングシステムは、割込み信号が送信されると、デバイスドライバを動作させてそのオペレーティングシステムに対応付けられたデバイスにアクセスすることにより、そのデバイスが割込みを発生させたか否かを判定するとともに、割込みを発生させたと判定した場合、その割込みに対応する処理を実行する
ことを特徴とする割込み制御装置。
A virtual machine monitor execution unit that causes a processing device to operate a virtual machine monitor that provides a plurality of virtual machines with virtualized hardware resources;
An operating system execution unit that causes the processing system to operate an operating system under the control of each virtual machine of the plurality of virtual machines operated by the virtual machine monitor execution unit;
When an interrupt signal to which the same identification information is assigned is transmitted from a plurality of devices associated with an operating system operated by the operating system execution unit under the control of each virtual machine, the plurality of devices An interrupt controller that receives an interrupt signal transmitted from a certain device and transmits the received interrupt signal to the virtual machine monitor;
When an interrupt signal is transmitted from the interrupt controller, the virtual machine monitor transmits the interrupt signal to each virtual machine,
When an operating system operating under the control of each virtual machine receives an interrupt signal, it operates the device driver to access a device associated with the operating system, thereby causing the device to generate an interrupt. And an interrupt control device that executes processing corresponding to the interrupt when it is determined that an interrupt has occurred.
前記各仮想マシンの制御下で動作する前記オペレーティングシステムは、デバイスドライバが実行する処理が正常終了したことを示す応答を出力するダミーデバイスドライバを備え、デバイスドライバに対応するデバイスが割込みを発生させていないと判定した場合、前記ダミーデバイスドライバを動作させて処理が正常終了したことを示す応答を出力させる
ことを特徴とする請求項1に記載の割込み制御装置。
The operating system that operates under the control of each virtual machine includes a dummy device driver that outputs a response indicating that the process executed by the device driver has been normally completed, and the device corresponding to the device driver generates an interrupt. 2. The interrupt control apparatus according to claim 1, wherein if it is determined that the processing is not completed, the dummy device driver is operated to output a response indicating that the processing is normally completed.
前記ダミーデバイスドライバは、前記デバイスドライバがオペレーティングシステムに登録される場合に、合わせてオペレーティングシステムに登録される
ことを特徴とする請求項2に記載の割込み制御装置。
The interrupt control apparatus according to claim 2, wherein the dummy device driver is registered in the operating system when the device driver is registered in the operating system.
ハードウェアリソースを仮想化した複数の仮想マシンを提供する仮想マシンモニタを処理装置により動作させる仮想マシンモニタ実行部と、
前記仮想マシンモニタ実行部が動作させた複数の仮想マシンの各仮想マシンの制御下で、オペレーティングシステムを処理装置により動作させるオペレーティングシステム実行部と、
前記各仮想マシンにおいて動作するオペレーティングシステムに対応付けられた複数のデバイスから同一の識別情報が割り当てられた割込み信号が送信される場合に、前記複数のデバイスのうちのあるデバイスから送信された割込み信号を受信し、受信した割込み信号を前記仮想マシンモニタへ送信する割込みコントローラと
を備え、
前記仮想マシンモニタは、前記割込みコントローラから割込み信号が送信されると、送信された割込み信号がどの仮想マシンで動作するオペレーティングシステムに対応するデバイスから送信された割込み信号であるかを特定するとともに、その割込み信号を特定したオペレーティングシステムが動作する仮想マシンへ送信し、
前記各仮想マシンの制御下で動作するオペレーティングシステムは、割込み信号が送信されると、デバイスドライバを動作させてそのオペレーティングシステムに対応して設けられたデバイスにアクセスして、その割込みに対応する処理を実行する
ことを特徴とする割込み制御装置。
A virtual machine monitor execution unit that causes a processing device to operate a virtual machine monitor that provides a plurality of virtual machines with virtualized hardware resources;
An operating system execution unit that causes the processing system to operate an operating system under the control of each virtual machine of the plurality of virtual machines operated by the virtual machine monitor execution unit;
When an interrupt signal to which the same identification information is assigned is transmitted from a plurality of devices associated with an operating system operating in each virtual machine, the interrupt signal transmitted from a certain device among the plurality of devices And an interrupt controller for transmitting the received interrupt signal to the virtual machine monitor,
When the interrupt signal is transmitted from the interrupt controller, the virtual machine monitor specifies which virtual machine the interrupt signal transmitted is an interrupt signal transmitted from a device corresponding to an operating system operating on the virtual machine, Send the interrupt signal to the virtual machine running the specified operating system,
When an interrupt signal is transmitted, the operating system operating under the control of each virtual machine operates a device driver to access a device provided corresponding to the operating system and perform processing corresponding to the interrupt An interrupt control device characterized by executing
各オペレーティングシステムで動作するデバイスドライバは、オペレーティングシステムが起動する際、割込み信号がその仮想マシンで動作するオペレーティングシステムに対応するデバイスから送信された割込み信号であるかを判定する処理を実行する割込み判定処理を前記仮想マシンモニタに登録し、
前記仮想マシンモニタは、割込み信号を送信されると、各デバイスドライバに登録された割込み判定処理を実行することにより、割込み信号がどの仮想マシンで動作するオペレーティングシステムに対応するデバイスから送信された割込み信号であるかを特定する
ことを特徴とする請求項4に記載の割込み制御装置。
When the operating system starts up, the device driver operating in each operating system executes an interrupt determination process for determining whether the interrupt signal is an interrupt signal transmitted from a device corresponding to the operating system operating in the virtual machine. Register the process with the virtual machine monitor,
When the virtual machine monitor receives an interrupt signal, the virtual machine monitor executes an interrupt determination process registered in each device driver, whereby an interrupt signal is transmitted from a device corresponding to an operating system operating in which virtual machine. The interrupt control device according to claim 4, wherein the interrupt control device identifies whether the signal is a signal.
前記仮想マシンモニタは、各デバイスドライバに登録された割込み判定処理を所定の順に実行し、実行した割込み判定処理で割込み信号を送信したデバイスが特定された場合には、残りの割込み判定処理の実行を止める
ことを特徴とする請求項5に記載の割込み制御装置。
The virtual machine monitor executes the interrupt determination processing registered in each device driver in a predetermined order, and when the device that transmitted the interrupt signal is identified by the executed interrupt determination processing, the remaining interrupt determination processing is executed. The interrupt control device according to claim 5, wherein the interrupt control device is stopped.
JP2010137312A 2010-06-16 2010-06-16 Interruption control unit Pending JP2012003478A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010137312A JP2012003478A (en) 2010-06-16 2010-06-16 Interruption control unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010137312A JP2012003478A (en) 2010-06-16 2010-06-16 Interruption control unit

Publications (1)

Publication Number Publication Date
JP2012003478A true JP2012003478A (en) 2012-01-05

Family

ID=45535388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010137312A Pending JP2012003478A (en) 2010-06-16 2010-06-16 Interruption control unit

Country Status (1)

Country Link
JP (1) JP2012003478A (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02208740A (en) * 1989-02-09 1990-08-20 Fujitsu Ltd Virtual computer control system
JPH03192431A (en) * 1989-12-22 1991-08-22 Nagano Oki Denki Kk Interruption processing system
JPH10260847A (en) * 1997-03-21 1998-09-29 Mitsubishi Electric Corp Input-output driver management method
JP2001229038A (en) * 2000-02-17 2001-08-24 Hitachi Ltd Multi-operating computer system
JP2008176360A (en) * 2007-01-16 2008-07-31 Renesas Technology Corp Multiprocessor system
JP2010244179A (en) * 2009-04-02 2010-10-28 Nec Corp System, method and program for interrupt control

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02208740A (en) * 1989-02-09 1990-08-20 Fujitsu Ltd Virtual computer control system
JPH03192431A (en) * 1989-12-22 1991-08-22 Nagano Oki Denki Kk Interruption processing system
JPH10260847A (en) * 1997-03-21 1998-09-29 Mitsubishi Electric Corp Input-output driver management method
JP2001229038A (en) * 2000-02-17 2001-08-24 Hitachi Ltd Multi-operating computer system
JP2008176360A (en) * 2007-01-16 2008-07-31 Renesas Technology Corp Multiprocessor system
JP2010244179A (en) * 2009-04-02 2010-10-28 Nec Corp System, method and program for interrupt control

Similar Documents

Publication Publication Date Title
KR100977662B1 (en) Two-level interrupt service routine
EP2787444B1 (en) Central processing unit, information processing apparatus, and intra-virtual-core register value acquisition method
JP5167844B2 (en) Processor, electronic device, interrupt control method, and interrupt control program
JP4792113B2 (en) Interprocessor interrupt
US9367311B2 (en) Multi-core processor system, synchronization control system, synchronization control apparatus, information generating method, and computer product
US20110320860A1 (en) Managing processing associated with hardware events
CA2800632C (en) Enable/disable adapters of a computing environment
JP2014182813A (en) Instruction emulation processors, methods, and systems
US20110321060A1 (en) Operating system notification of actions to be taken responsive to adapter events
CN102067083A (en) Lazy handling of end of interrupt messages in a virtualized environment
CA1080364A (en) Microprogrammed control of foreign processor control functions
CN107918555B (en) Method and apparatus for processing data based on physical host
US8700807B2 (en) High speed baseboard management controller and transmission method thereof
CN107003828B (en) Instrumentization of graphics instructions
RU2606565C2 (en) Firmware agent
US20110173361A1 (en) Information processing apparatus and exception control circuit
CN111124599A (en) Virtual machine memory data migration method and device, electronic equipment and storage medium
JP2007516536A (en) Method and apparatus for handling hot key input using interrupt handling visible to the operating system
JP5862722B2 (en) Multi-core processor system, multi-core processor system control method, and multi-core processor system control program
JP5590114B2 (en) Software control apparatus, software control method, and software control program
US11106478B2 (en) Simulation device, simulation method, and computer readable medium
US8752046B2 (en) Virtual calculating machine system, virtual calculating machine control apparatus and virtual calculating machine control method
US20140052879A1 (en) Processor, information processing apparatus, and interrupt control method
JP2012003478A (en) Interruption control unit
CN106844025B (en) Asynchronous interrupt processing method and interrupt controller

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140708