JP2012003478A - Interruption control unit - Google Patents
Interruption control unit Download PDFInfo
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
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.
上述したように、従来の仮想計算機は、物理デバイスからの割込みに対応する処理を一旦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.
以下の説明において、処理装置とは後述するCPU911等のことである。つまり、処理装置はハードウェアである。
また、以下の説明において、仮想マシンモニタは仮想マシンモニタ実行部が処理装置により動作させ、オペレーティングシステムはオペレーティングシステム実行部が処理装置により動作させるものである。つまり、仮想マシンモニタ、オペレーティングシステム等は、ハードウェアである処理装置と協調して動作するものである。
In the following description, the processing device refers to a
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
計算機101内には、物理デバイスであるDEV−X107、DEV−Y108の割込み線が、割込みコントローラであるINTC109のIRQ#9へ接続されている。つまり、DEV−X107とDEV−Y108とが同一の割り込み番号“9”(識別情報)を共有している。従って、IRQ#9の割込みが発生した場合、その割込みの要因がDEV−X107、DEV−Y108のいずれか、または両方かを一意に判断することはできない。
In the
計算機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
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-
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
次に、実施の形態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
In FIG. 2, a
計算機201内には、物理デバイスであるDEV−X207、DEV−Y208の割込み線が、割込みコントローラであるINTC209のIRQ#9へ接続されている。なお、ここでは割込み番号を9としているが、他の割込み番号でも構わない。
In the
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
In the VM-
Within OS-A 205 and OS-
次に、実施の形態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
FIG. 3 is a flowchart showing the operation of the
First, an interrupt is generated in the DEV-
割込み信号を受信した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-
When the DEV-
The IRQH-
同様に、割込み通知を受信した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-
When the DEV-
The IRQH-
以上のように、実施の形態1に係る計算機201では、VMM202は単に割込み信号を各VMへ送信するだけである。したがって、VMM202にはオーバヘッドがかからない。また、VMM202はデバイスドライバを実行することがないため、VMM202の構造を単純化できる。
As described above, in the
なお、上記説明において、(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-
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
In FIG. 4, a
計算機401内には、物理デバイスであるDEV−X407、DEV−Y408の割込み線が、割込みコントローラであるINTC409のIRQ#9へ接続されている。なお、ここでは割込み番号を9としているが、他の割込み番号でも構わない。
In the
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
Within the VM-
Within OS-
次に、実施の形態2に係る計算機401の割込み制御について説明する。
図5は、DEV−X407からの割込みが発生した場合における計算機401の動作を示すフローチャートである。
まず、計算機401のDEV−X407により割込みが発生し(S501)、INTC409が割込み発生を示す割込み発生を受信する(S502)。INTC409は、VMM402へ割込み信号を送信する(S503)。
Next, interrupt control of the
FIG. 5 is a flowchart showing the operation of the
First, an interrupt is generated by the DEV-
割込み信号を受信した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
Here, since the DEV-
割込み信号を受信した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-
以上のように、実施の形態2に係る計算機401では、VMM402はデバイスドライバを実行するのではなく、単に割込みを発生させているデバイスを特定する処理のみを行う。したがって、VMM402は、実施の形態1に係る計算機201に比べるとオーバヘッドが発生するものの、計算機101に比べるとオーバヘッドが小さくなる。また、実施の形態1に係る計算機201と同様に、VMM402がデバイスドライバを持つ必要がない。
また、実施の形態2に係る計算機401では、VMM402が割込みを発生させているデバイスを特定しているため、VMに無駄な処理が発生せず、VMにかかる負荷を軽減できる。
As described above, in the
Further, in the
なお、VMM402で割込みを発生させているデバイスを特定した上で、対応するVMへ割込み信号を送信しているため、割込み信号が送信されたVMでは割込みが発生しているか否かを判定する必要はない。したがって、(S514)での判定は本来不要である。しかし、判定を行っても何ら処理に影響はなく、デバイスドライバの処理を敢えて変更する必要はないため、上記説明の通りの処理の流れとしてもよい。
Since the
また、上記説明では、DEV−X407が割込みを発生させた場合について説明したため、VM−B404側の処理についての説明は省略した。VM−B404側の処理は、VM−A403側の処理と同様である。
In the above description, since the case where the DEV-
また、上記説明では、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-
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
次に、実施の形態における計算機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
FIG. 6 is a diagram illustrating an example of a hardware configuration of the
As shown in FIG. 6, the
ROM913、磁気ディスク装置920は、不揮発性メモリの一例である。RAM914は、揮発性メモリの一例である。ROM913とRAM914と磁気ディスク装置920とは、記憶装置(メモリ)の一例である。
The
磁気ディスク装置920又はROM913などには、オペレーティングシステム921、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
An
プログラム群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
In the
また、上記の説明におけるフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、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
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
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-
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.
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)
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 |
-
2010
- 2010-06-16 JP JP2010137312A patent/JP2012003478A/en active Pending
Patent Citations (6)
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 |