JP2006209386A - Virtual machine system and its method for controlling external interrupt - Google Patents

Virtual machine system and its method for controlling external interrupt Download PDF

Info

Publication number
JP2006209386A
JP2006209386A JP2005019276A JP2005019276A JP2006209386A JP 2006209386 A JP2006209386 A JP 2006209386A JP 2005019276 A JP2005019276 A JP 2005019276A JP 2005019276 A JP2005019276 A JP 2005019276A JP 2006209386 A JP2006209386 A JP 2006209386A
Authority
JP
Japan
Prior art keywords
interrupt
virtual machine
processor
external
external interrupt
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
JP2005019276A
Other languages
Japanese (ja)
Inventor
Shuhei Matsumoto
周平 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005019276A priority Critical patent/JP2006209386A/en
Publication of JP2006209386A publication Critical patent/JP2006209386A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Multi Processors (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To speed up transmission of an external interrupt to a guest operating system (OS) on a virtual machine, and to eliminate delay of inter-processor interrupt transmission for the guest OS, in external interrupt control of a virtual machine monitor (VMM) of a virtual machine system. <P>SOLUTION: Interrupt vectors for an external interrupt is separated into a set of interrupt vectors used by the guest OS on the virtual machine and an interrupt vector used by VMM. The VMM determines, according to the classification of the interrupt vectors, whether the external interrupt is to be transmitted to the guest OS or to be processed in the VMM, and does not convert the interrupt vector. When transmitting the inter-processor interrupt of the guest OS, the VMM is not interposed and the guest OS is made to directly access a specific memory area for transmitting the inter-processor interrupt. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、仮想計算機システムに係わり、特に仮想計算機および仮想計算機モニタ向けの外部割込みの制御方法に関する。   The present invention relates to a virtual machine system, and more particularly, to an external interrupt control method for a virtual machine and a virtual machine monitor.

複数プロセッサ構成の物理計算機が標準で使われるようになり、また、技術の発展によりプロセッサの高多重化も進んできている。今後、複数プロセッサ構成の物理計算機を用いる仮想計算機システムの重要性が増すと予測される。   A physical computer having a multi-processor configuration has come to be used as a standard, and with the development of technology, the number of processors has been increased. In the future, it is expected that the importance of virtual computer systems using physical computers with multiple processors will increase.

仮想計算機システムの仮想計算機モニタは、物理計算機にあるプロセッサとI/Oデバイスを論理的に分割して各仮想計算機に割り当てる。各仮想計算機はこのように分割された論理区画上で動作する。   The virtual machine monitor of the virtual machine system logically divides the processor and I / O device in the physical machine and assigns them to each virtual machine. Each virtual machine operates on the logical partition thus divided.

ある種の物理計算機は、外部割込みが発生したとき、I/Oデバイス、タイマ、プロセッサ間割込みなどの外部割込み生成源に設定された割込みベクタを仮想計算機モニタに伝えることにより、仮想計算機モニタが外部割込みの要因を識別することを可能とする。仮想計算機モニタは、割込みベクタにより仮想計算機向けの外部割込みを仮想計算機に伝達する。   When an external interrupt occurs, some types of physical computers send the interrupt vector set to the external interrupt generation source such as an I / O device, timer, and interprocessor interrupt to the virtual computer monitor. It is possible to identify the cause of the interrupt. The virtual machine monitor transmits an external interrupt for the virtual machine to the virtual machine by an interrupt vector.

特許文献1は、複数プロセッサ構成の物理計算機を用いる仮想計算機システムについて開示する。   Patent Document 1 discloses a virtual computer system that uses a physical computer having a plurality of processors.

米国特許第6075938号明細書US Pat. No. 6,075,938

従来の仮想計算機システムでは、仮想計算機上のゲストオペレーティングシステム(OS)が外部割込み生成源に割込みベクタを設定するとき、および仮想計算機へ外部割込みを伝達するとき、いずれの場合にも仮想計算機モニタ(VMM)は、割込みベクタの変換を行っていた。   In the conventional virtual machine system, when the guest operating system (OS) on the virtual machine sets an interrupt vector to the external interrupt generation source and transmits an external interrupt to the virtual machine, the virtual machine monitor ( (VMM) converted the interrupt vector.

このように仮想計算機に外部割込みを伝達するときにVMMが割込みベクタの変換を行うので、発生した外部割込みの仮想計算機への伝達が遅れるという問題があった。特にゲストOSがあるプロセッサから他のプロセッサへプロセッサ間割込みを送信する際には、VMMは、例外を発生させて介入し、割込みベクタの変換を行うのでプロセッサ間割込みの送信が遅れるとともに、プロセッサ間割込みの発生に伴ってさらに割込みベクタの変換を行うのでプロセッサ間割込みの他ゲストOSへの伝達が遅れるという問題があった。仮想計算機に割り当てられるプロセッサの数が増えるほど、ゲストOSの送信するプロセッサ間割込みの数も増えるため、外部割込みの送信と伝達の遅れの影響も大きくなる。またVMMの外部割込み制御のコードのうち、割込みベクタの変換に関するコード量が多いという問題があった。   As described above, when the external interrupt is transmitted to the virtual machine, the VMM converts the interrupt vector, so that there is a problem that transmission of the generated external interrupt to the virtual machine is delayed. In particular, when an inter-processor interrupt is transmitted from one processor to another processor in the guest OS, the VMM intervenes by generating an exception and converts the interrupt vector, so that the transmission of the inter-processor interrupt is delayed and the inter-processor interrupt is delayed. Since the interrupt vector is further converted along with the occurrence of the interrupt, there is a problem that the transmission of the inter-processor interrupt to the guest OS is delayed. As the number of processors allocated to the virtual machine increases, the number of inter-processor interrupts transmitted by the guest OS also increases, so the influence of delays in transmission and transmission of external interrupts also increases. In addition, the VMM external interrupt control code has a large amount of code related to the conversion of interrupt vectors.

本発明の目的は、仮想計算機への外部割込みの送信と伝達の遅れをなくするか小さくするとともに、VMMの外部割込み制御のコード量を減らすことにある。   An object of the present invention is to eliminate or reduce delays in transmission and transmission of external interrupts to a virtual machine and to reduce the amount of code for external interrupt control of the VMM.

本発明においては、外部割込みの割込みベクタを、仮想計算機上のゲストオペレーティングシステム(OS)が使用する割込みベクタの集合と、仮想計算機モニタ(VMM)が使用する割込みベクタとに分離する。   In the present invention, the interrupt vector of the external interrupt is separated into a set of interrupt vectors used by the guest operating system (OS) on the virtual machine and an interrupt vector used by the virtual machine monitor (VMM).

外部割込みが発生しVMMに制御が移ると、VMMはその外部割込みの割込みベクタを調べ、割込みベクタがゲストOS用割込みベクタ集合に含まれると判定したときは、仮想計算機にその外部割込みの割込みベクタを変換せずに伝達し、VMM用の割込みベクタと等しいと判定したときは、VMM内部で処理し仮想計算機には伝達しない。   When an external interrupt occurs and control is transferred to the VMM, the VMM examines the interrupt vector of the external interrupt. If it is determined that the interrupt vector is included in the guest OS interrupt vector set, the VMM sends the interrupt vector of the external interrupt to the virtual machine. Is transmitted without conversion and is determined to be equal to the interrupt vector for the VMM, it is processed inside the VMM and not transmitted to the virtual machine.

特に、ゲストOSがプロセッサ間割込みを他プロセッサに送信するときには、VMMは介在せず、ゲストOSがプロセッサ間割込みを送信するためのコマンドを書き込む特定のメモリ領域を直接アクセスするようにさせる。   In particular, when the guest OS transmits an interprocessor interrupt to another processor, the VMM does not intervene, and the guest OS directly accesses a specific memory area in which a command for transmitting the interprocessor interrupt is written.

本発明によれば、仮想計算機モニタ(VMM)の外部割込み制御において、割込みベクタの変換を行わないことにより、ゲストOSへの外部割込みの伝達の遅れを小さくすることと、ゲストOSのプロセッサ間割込み送信の遅れがなくなることと、VMMの外部割込み制御のコード量が減ることという効果がある。   According to the present invention, in the external interrupt control of the virtual machine monitor (VMM), the interrupt vector is not converted, thereby reducing the delay in the transmission of the external interrupt to the guest OS and the inter-processor interrupt of the guest OS. There is an effect that there is no transmission delay and the amount of code for external interrupt control of the VMM is reduced.

以下、本発明を適用する一実施形態について図面を用いて説明する。   Hereinafter, an embodiment to which the present invention is applied will be described with reference to the drawings.

図1は、本発明を適用した仮想計算機システムの一実施形態を示す構成図である。物理計算機100は、プロセッサ110−0,110−1,110−2,110−3、I/Oデバイス150−1,150−2,150−3,150−4、およびファームウェア160を有する。プロセッサ110−0,110−1,110−2,110−3は、それぞれプロセッサ間割込み機構111−0,111−1,111−2,111−3と、タイマ112−0,112−1,112−2,112−3を有する。   FIG. 1 is a configuration diagram showing an embodiment of a virtual machine system to which the present invention is applied. The physical computer 100 includes processors 110-0, 110-1, 110-2, 110-3, I / O devices 150-1, 150-2, 150-3, 150-4, and firmware 160. The processors 110-0, 110-1, 110-2, and 110-3 include inter-processor interrupt mechanisms 111-0, 111-1, 111-2, and 111-3, and timers 112-0, 112-1, and 112, respectively. -2, 112-3.

仮想計算機モニタ(VMM)200は、プロセッサ110及びI/Oデバイス150を論理的に分割して、仮想計算機300−1,300−2を構築する。プロセッサ110−0,110−1と、I/Oデバイス150−1,150−2は、仮想計算機300−1に割り当てられる物理資源230−1である。プロセッサ110−2,110−3と、I/Oデバイス150−3,150−4は、仮想計算機300−2に割り当てられる物理資源230−2である。   The virtual machine monitor (VMM) 200 logically divides the processor 110 and the I / O device 150 to construct virtual machines 300-1 and 300-2. The processors 110-0 and 110-1 and the I / O devices 150-1 and 150-2 are physical resources 230-1 allocated to the virtual machine 300-1. The processors 110-2 and 110-3 and the I / O devices 150-3 and 150-4 are physical resources 230-2 allocated to the virtual machine 300-2.

仮想計算機300−1と300−2は、それぞれ割り当てられたプロセッサ110と同じ数の仮想プロセッサ310を有する。以下、プロセッサ110−0,110−1,110−2,110−3のいずれかを指すときには、プロセッサ110と表記する。他の構成要素についても同様である。   The virtual machines 300-1 and 300-2 each have the same number of virtual processors 310 as the assigned processors 110. Hereinafter, when referring to any of the processors 110-0, 110-1, 110-2, and 110-3, the processor 110 is described. The same applies to other components.

仮想計算機300−1の仮想プロセッサ310−0,310−1はそれぞれプロセッサ110−0,110−1に対応し、仮想計算機300−2の仮想プロセッサ310−2,310−3はそれぞれプロセッサ110−2,110−3に対応する。各仮想プロセッサ310は、仮想計算機300から見える各プロセッサ110に対応する論理プロセッサである。   The virtual processors 310-0 and 310-1 of the virtual machine 300-1 correspond to the processors 110-0 and 110-1, respectively, and the virtual processors 310-2 and 310-3 of the virtual machine 300-2 correspond to the processor 110-2, respectively. , 110-3. Each virtual processor 310 is a logical processor corresponding to each processor 110 seen from the virtual machine 300.

仮想計算機300−1の仮想プロセッサ310−0,310−1は、それぞれ仮想タイマ311−0,311−1を有し、仮想計算機300−2の仮想プロセッサ310−2,310−3はそれぞれ仮想タイマ311−2,311−3を有する。各仮想タイマ311は、対応するタイマ112をタイマ源とする論理的タイマである。   The virtual processors 310-0 and 310-1 of the virtual machine 300-1 have virtual timers 311-0 and 311-1 respectively, and the virtual processors 310-2 and 310-3 of the virtual machine 300-2 are respectively virtual timers. 311-3 and 311-3. Each virtual timer 311 is a logical timer that uses the corresponding timer 112 as a timer source.

仮想計算機300−1の上でゲストオペレーティングシステム(OS)330−1が動作し、仮想計算機300−2の上でゲストOS330−2が動作する。   A guest operating system (OS) 330-1 operates on the virtual machine 300-1, and a guest OS 330-2 operates on the virtual machine 300-2.

本実施形態のVMM200は、本発明に関連するものとして、外部割込みが発生すると起動し、発生した外部割込みの割込みベクタを調べ、その割込みベクタに対応する処理を行う外部割込みハンドラ210と、複数のプロセッサ110間でプロセッサ間割込みを使ってメッセージ交換を行う制御プログラムとしてプロセッサ間通信部220を有する。   As related to the present invention, the VMM 200 of this embodiment is activated when an external interrupt occurs, examines the interrupt vector of the generated external interrupt, and performs an external interrupt handler 210 that performs processing corresponding to the interrupt vector, and a plurality of An inter-processor communication unit 220 is provided as a control program for exchanging messages between processors 110 using inter-processor interrupts.

ゲストOS330は、物理計算機100の割り当てられた図示しないメモリ領域に格納され、割り当てられた仮想プロセッサ310によって実行される。VMM200は、物理計算機100のメモリに格納され、プロセッサ110によって実行される。   The guest OS 330 is stored in an allocated memory area (not shown) of the physical computer 100 and is executed by the allocated virtual processor 310. The VMM 200 is stored in the memory of the physical computer 100 and executed by the processor 110.

図2は、外部割込みの種別を示す割込みベクタの概念図である。外部割込み生成源500に対して割込みベクタが設定される。割込みベクタは割込みの種別を示す番号を格納する。外部割込み生成源500に割込みベクタが設定され外部割込みの宛先とするプロセッサ110が指定されると、外部割込み生成源500は、指定されたプロセッサ110に対して設定された割込みベクタの外部割込みを生成する。   FIG. 2 is a conceptual diagram of an interrupt vector indicating the type of external interrupt. An interrupt vector is set for the external interrupt generation source 500. The interrupt vector stores a number indicating the type of interrupt. When an interrupt vector is set in the external interrupt generation source 500 and the processor 110 that is the destination of the external interrupt is specified, the external interrupt generation source 500 generates an external interrupt of the interrupt vector set for the specified processor 110. To do.

プロセッサ110はそれぞれ独立した割込みベクタ集合504を有する。割込みベクタ集合504は、番号の順に割込みベクタを配列したものである。複数の外部割込み生成源500の外部割込みの宛先を同一のプロセッサ110とするときには、それぞれの外部割込み生成源500に異なる割込みベクタを設定することによって、そのプロセッサ110は、発生した外部割込み生成源500を特定することができる。   Each processor 110 has an independent set of interrupt vectors 504. The interrupt vector set 504 is an array of interrupt vectors in the order of numbers. When the external interrupt destinations of a plurality of external interrupt generation sources 500 are set to the same processor 110, by setting different interrupt vectors in the respective external interrupt generation sources 500, the processor 110 can generate the generated external interrupt generation sources 500. Can be specified.

例えば外部割込み生成源500−1と500−4は、ともに宛先をプロセッサ110−0とするが、それぞれの外部割込み生成源500に異なる割込みベクタを設定することにより、プロセッサ110−0は、発生した外部割込みが外部割込み生成源500−1と外部割込み生成源500−4のどちらであるかを判定することができる。外部割込み生成源500−2と500−3についても同様である。外部割込み生成源500−1と500−2は、宛先のプロセッサ110が異なるので、両者に同一番号の割込みベクタを設定しても構わない。   For example, both the external interrupt generation sources 500-1 and 500-4 are destined for the processor 110-0, but by setting different interrupt vectors for the respective external interrupt generation sources 500, the processor 110-0 is generated. It can be determined whether the external interrupt is the external interrupt generation source 500-1 or the external interrupt generation source 500-4. The same applies to the external interrupt generation sources 500-2 and 500-3. The external interrupt generation sources 500-1 and 500-2 are different in destination processor 110, and therefore, the same number of interrupt vectors may be set for both.

図2は、プロセッサ110−0と110−1について例示するが、プロセッサ110−2とプロセッサ110−3についても同様である。   FIG. 2 illustrates the processors 110-0 and 110-1, but the same applies to the processors 110-2 and 110-3.

図3、図4、及び図5をもとに、ゲストOS330が使用する割込みベクタと、VMM 200が使用する割込みベクタを分離する2つの方法について説明する。各プロセッサについて割込みベクタを分離する方法は同じであるため、本実施形態は、プロセッサ110−1について説明する。   Two methods for separating the interrupt vector used by the guest OS 330 and the interrupt vector used by the VMM 200 will be described with reference to FIGS. 3, 4, and 5. Since the method for separating the interrupt vector is the same for each processor, the present embodiment will be described for the processor 110-1.

まず図3をもとに、ファームウェア160用の割込みベクタを使用して、ゲストOS330の使用する割込みベクタとVMM200の使用する割込みベクタを分離する第1の方法について説明する。ファームウェア160は、ゲストOS330が立ち上がるまでの間にプロセッサ110をイニシャライズする物理計算機100の機構である。   First, referring to FIG. 3, a first method for separating the interrupt vector used by the guest OS 330 and the interrupt vector used by the VMM 200 using the interrupt vector for the firmware 160 will be described. The firmware 160 is a mechanism of the physical computer 100 that initializes the processor 110 before the guest OS 330 starts up.

外部割込み生成源500からプロセッサ110−1に伝達される外部割込みの割込みベクタの集合504−1は、ファームウェア用割込みベクタの集合600とゲストOS用割込みベクタの集合601に分離される。   The external interrupt vector set 504-1 transmitted from the external interrupt generation source 500 to the processor 110-1 is separated into a firmware interrupt vector set 600 and a guest OS interrupt vector set 601.

VMM200は、その起動時にファームウェア用割込みベクタ集合600の中でファームウェア160が使用しない割込みベクタを確保し、VMM用割込みベクタ602とする。   The VMM 200 secures an interrupt vector that is not used by the firmware 160 in the firmware interrupt vector set 600 at the time of activation, and sets it as a VMM interrupt vector 602.

VMM200は、VMM自身の制御のために他プロセッサ110からプロセッサ110−1にプロセッサ間割込みを送信するときは、VMM用割込みベクタ602のみを使用する。VMM用割込みベクタ602は、VMM 200とファームウェア160の間で共用せず、VMM 200が占有的に使用する。   The VMM 200 uses only the VMM interrupt vector 602 when transmitting an interprocessor interrupt from the other processor 110 to the processor 110-1 for the control of the VMM itself. The VMM interrupt vector 602 is not shared between the VMM 200 and the firmware 160, and is exclusively used by the VMM 200.

VMM200は、ゲストOS用割込みベクタを使用しないので、プロセッサ110−1で発生した外部割込みの割込みベクタが、ゲストOSの使用する割込みベクタの集合601−1に含まれるか否かを調べることにより、発生した外部割込みを仮想計算機300−1の仮想プロセッサ310−1に伝達するか、VMM 200あるいはファームウェア160が外部割込みとして処理し、仮想計算機300−1の仮想プロセッサ310−1に伝達しないかを直ちに判定することができる。   Since the VMM 200 does not use the guest OS interrupt vector, by checking whether the interrupt vector of the external interrupt generated by the processor 110-1 is included in the interrupt vector set 601-1 used by the guest OS, Immediately determines whether the generated external interrupt is transmitted to the virtual processor 310-1 of the virtual machine 300-1, or whether the VMM 200 or the firmware 160 processes it as an external interrupt and does not transmit it to the virtual processor 310-1 of the virtual machine 300-1. Can be determined.

次に、図4と図5をもとに、仮想外部割込み生成源についてゲストOS330が設定する割込みベクタを利用して、ゲストOS330の使用する割込みベクタとVMM200の使用する割込みベクタを分離する第2の方法について説明する。仮想計算機300は、プロセッサ110が有する物理的な外部割込み生成源に1対1に対応する仮想外部割込み生成源を仮想プロセッサ310ごとに有する。   Next, based on FIG. 4 and FIG. 5, the interrupt vector used by the guest OS 330 and the interrupt vector used by the VMM 200 are separated by using the interrupt vector set by the guest OS 330 for the virtual external interrupt generation source. The method will be described. The virtual computer 300 has a virtual external interrupt generation source corresponding to the physical external interrupt generation source of the processor 110 on a one-to-one basis for each virtual processor 310.

本実施例では、仮想外部割込み生成源が仮想タイマ311であるとし、物理的な外部割込み生成源がタイマ112であるとする。ただし、本発明はこれに限定されるものではない。また仮想外部割込みをどのように実現するかについては、本発明の主目的ではないため、その詳細を説明しない。   In this embodiment, it is assumed that the virtual external interrupt generation source is the virtual timer 311, and the physical external interrupt generation source is the timer 112. However, the present invention is not limited to this. Further, how to realize the virtual external interrupt is not the main object of the present invention, and thus the details thereof will not be described.

図4は、仮想プロセッサ310の仮想タイマ311に対してゲストOS330が設定する割込みベクタを、物理的なタイマ112の外部割込みと、VMM 200自身がプロセッサ間通信を行う際のプロセッサ間割込みとによって共有する方法を示す概念図である。   FIG. 4 shows that the interrupt vector set by the guest OS 330 for the virtual timer 311 of the virtual processor 310 is shared by the external interrupt of the physical timer 112 and the inter-processor interrupt when the VMM 200 itself performs inter-processor communication. It is a conceptual diagram which shows the method to do.

VMM200は、仮想計算機300−1上でゲストOS330−1が起動するまでは、プロセッサ間通信を行う際に発生させるプロセッサ間割込みの割込みベクタとして、任意の割込みベクタを使用する。   Until the guest OS 330-1 is started on the virtual machine 300-1, the VMM 200 uses an arbitrary interrupt vector as an interrupt vector for an inter-processor interrupt that is generated when inter-processor communication is performed.

仮想計算機300−1上でゲストOS330−1が起動すると、ゲストOS330−1は、仮想プロセッサ310−1の仮想タイマ311−1に割込みベクタ700を設定する。仮想タイマ311はソフトウェア的なタイマであるので、その仮想外部割込みは、物理的なタイマ112の外部割込みとは関係なく発生し得る。   When the guest OS 330-1 is activated on the virtual computer 300-1, the guest OS 330-1 sets the interrupt vector 700 in the virtual timer 311-1 of the virtual processor 310-1. Since the virtual timer 311 is a software timer, the virtual external interrupt can occur independently of the physical timer 112 external interrupt.

VMM200は、割込みベクタ700を内部的にVMM用割込みベクタ701として保持するとともに、プロセッサ110−1のタイマ112−1にこの割込みベクタ700を設定する。ここで割込みベクタ700とVMM用割込みベクタ701は、同一番号の割込みベクタである。   The VMM 200 internally holds the interrupt vector 700 as the VMM interrupt vector 701, and sets the interrupt vector 700 in the timer 112-1 of the processor 110-1. Here, the interrupt vector 700 and the VMM interrupt vector 701 are the same numbered interrupt vectors.

VMM200は、仮想計算機300−1にプロセッサ110−1のタイマ112−1を使用させず、仮想プロセッサ310−1の仮想タイマ311−1を使用させることにより、割込みベクタ700を利用する。すなわちVMM200は、VMM用割込みベクタ701を、プロセッサ110−1のタイマ112−1の外部割込みと、VMM200のプロセッサ間通信部220がVMM自身のプロセッサ間通信のために他プロセッサ110からプロセッサ110−1へ送信するプロセッサ間割込みとの間で共有する。VMM200は、同一のVMM用割込みベクタ701を用いても両割込みを区別することができる。   The VMM 200 uses the interrupt vector 700 by causing the virtual machine 300-1 not to use the timer 112-1 of the processor 110-1 but to use the virtual timer 311-1 of the virtual processor 310-1. That is, the VMM 200 uses the VMM interrupt vector 701, the external interrupt of the timer 112-1 of the processor 110-1, and the inter-processor communication unit 220 of the VMM 200 for the inter-processor communication of the VMM itself from the other processor 110 to the processor 110-1. Shared between interprocessor interrupts to send to. The VMM 200 can distinguish between both interrupts even when the same VMM interrupt vector 701 is used.

図5は、ゲストOS330が仮想タイマ311に設定する割込みベクタ700を利用して、ゲストOS330の使用する割込みベクタ700とVMM200の使用するVMM用割込みベクタ701を分離する方法を示す概念図である。VMM用割込みベクタ701の外部割込みは、物理的なタイマ112からの外部割込みか、あるいはVMM200自身のプロセッサ間通信用のプロセッサ間割込みであり、仮想計算機300−1には伝達しない。従ってゲストOS用割込みベクタ集合601−1に含まれる外部割込みの割込みベクタを、VMM用割込みベクタ701と等しいか否か調べることにより、発生した外部割込みを仮想計算機300−1の仮想プロセッサ310−1に伝達するか、VMM 200の外部割込みとしてVMMが処理し、仮想計算機300−1の仮想プロセッサ310−1の外部割込みとしてゲストOS330−1に伝達しないかを直ちに判定することができる。   FIG. 5 is a conceptual diagram showing a method for separating the interrupt vector 700 used by the guest OS 330 and the VMM interrupt vector 701 used by the VMM 200 by using the interrupt vector 700 set by the guest OS 330 in the virtual timer 311. The external interrupt of the VMM interrupt vector 701 is an external interrupt from the physical timer 112 or an inter-processor interrupt for inter-processor communication of the VMM 200 itself, and is not transmitted to the virtual machine 300-1. Therefore, by checking whether or not the interrupt vector of the external interrupt included in the guest OS interrupt vector set 601-1 is equal to the VMM interrupt vector 701, the generated external interrupt is determined as the virtual processor 310-1 of the virtual computer 300-1. It is possible to immediately determine whether the VMM processes as an external interrupt of the VMM 200 and does not transmit to the guest OS 330-1 as an external interrupt of the virtual processor 310-1 of the virtual machine 300-1.

図6と図7は、それぞれ、第1の方法および第2の方法を実現するために、VMM200の外部割込みハンドラ210が外部割込みの伝達先を判定する処理の流れを示すフローチャートである。すなわち図6は、ファームウェア160用の割込みベクタを利用してゲストOS330の割込みベクタと、VMM200の割込みベクタを分離する場合の処理手順を示す。図7は、ゲストOS330の割込みベクタの中で、仮想外部割込み生成源(本実施例では仮想タイマ)にゲストOS330が設定する割込みベクタを利用して、ゲストOS330の割込みベクタとVMM200の割込みベクタを分離する場合の処理手順を示す。ただし、ここで図6と図7は処理手順の一例であり、より効率のよい処理手順もあり得る。   FIGS. 6 and 7 are flowcharts showing the flow of processing in which the external interrupt handler 210 of the VMM 200 determines the transmission destination of the external interrupt in order to realize the first method and the second method, respectively. That is, FIG. 6 shows a processing procedure when the interrupt vector of the guest OS 330 and the interrupt vector of the VMM 200 are separated using the interrupt vector for the firmware 160. FIG. 7 shows the interrupt vector of the guest OS 330 and the interrupt vector of the VMM 200 using the interrupt vector set by the guest OS 330 in the virtual external interrupt generation source (virtual timer in this embodiment) among the interrupt vectors of the guest OS 330. The procedure for separation is shown below. However, FIG. 6 and FIG. 7 are examples of processing procedures, and there may be more efficient processing procedures.

図6は、第1の方法を採用する場合の、VMM200の外部割込みハンドラ210が外部割込みの伝達先を判定する処理の流れを示すフローチャートである。プロセッサ110の1つで外部割込みが発生すると、VMM200の外部割込みハンドラ210が実行を開始する(ステップ801)。外部割込みハンドラ210は、発生した外部割込みの割込みベクタを取得する(ステップ802)。   FIG. 6 is a flowchart showing a flow of processing in which the external interrupt handler 210 of the VMM 200 determines the transmission destination of the external interrupt when the first method is adopted. When an external interrupt occurs in one of the processors 110, the external interrupt handler 210 of the VMM 200 starts execution (step 801). The external interrupt handler 210 acquires the interrupt vector of the generated external interrupt (step 802).

以下のステップ(803〜807)は、取得した割込みベクタの伝達先を決め、決めた伝達先にその割込みベクタを伝達する処理の流れを示す。従来の方法は、割込みベクタの伝達先を決めるだけでなく割込みベクタの変換を行う必要があったが、本発明によれば、割込みベクタの伝達先を決めるだけでよい。   The following steps (803 to 807) show the flow of processing for determining the transmission destination of the acquired interrupt vector and transmitting the interrupt vector to the determined transmission destination. In the conventional method, it is necessary not only to determine the transmission destination of the interrupt vector but also to convert the interrupt vector. According to the present invention, it is only necessary to determine the transmission destination of the interrupt vector.

外部割込みハンドラ210は、取得した割込みベクタがゲストOS用割込みベクタ集合601に含まれるかどうかを判定する(ステップ803)。取得した割込みベクタがゲストOS用割込みベクタ集合601に含まれる場合には、外部割込みハンドラ210は、この割込みベクタを変換せずに、直ちに該当する仮想計算機300の仮想プロセッサ310に伝達する(ステップ804)。   The external interrupt handler 210 determines whether or not the acquired interrupt vector is included in the guest OS interrupt vector set 601 (step 803). When the acquired interrupt vector is included in the guest OS interrupt vector set 601, the external interrupt handler 210 immediately transmits the interrupt vector to the virtual processor 310 of the corresponding virtual machine 300 without converting the interrupt vector (step 804). ).

取得した割込みベクタがゲストOS用割込みベクタ集合601に含まれない場合には、外部割込みハンドラ210は、この割込みベクタがVMM用割込みベクタ602と等しいかどうか判定する(ステップ805)。取得した割込みベクタがVMM用割込みベクタ602と等しい場合には、外部割込みハンドラ210は、VMM200が自身のプロセッサ間通信を行うために発生させたプロセッサ間割込みと判定し、VMM200のプロセッサ間通信部220を呼び出す(ステップ806)。取得した割込みベクタがVMM用割込みベクタ602と異なる場合には、外部割込みハンドラ210は、ファームウェア160に伝達すべき外部割込みと判定し、この割込みベクタをファームウェア160に伝達する(ステップ807)。   If the acquired interrupt vector is not included in the guest OS interrupt vector set 601, the external interrupt handler 210 determines whether or not this interrupt vector is equal to the VMM interrupt vector 602 (step 805). When the acquired interrupt vector is equal to the VMM interrupt vector 602, the external interrupt handler 210 determines that the VMM 200 generates an inter-processor interrupt generated in order to perform inter-processor communication, and the inter-processor communication unit 220 of the VMM 200. (Step 806). If the acquired interrupt vector is different from the VMM interrupt vector 602, the external interrupt handler 210 determines that it is an external interrupt to be transmitted to the firmware 160, and transmits this interrupt vector to the firmware 160 (step 807).

図7は、第2の方法を採用する場合の、VMM200の外部割込みハンドラ210が外部割込みの伝達先を判定する処理の流れを示すフローチャートである。仮想外部割込み生成源が仮想的な外部割込みを生成する方法は本発明の主題ではないため、説明を省略する。   FIG. 7 is a flowchart showing a flow of processing in which the external interrupt handler 210 of the VMM 200 determines the transmission destination of the external interrupt when the second method is adopted. Since the method of generating a virtual external interrupt by the virtual external interrupt generation source is not the subject of the present invention, a description thereof will be omitted.

プロセッサ110の1つで外部割込みが発生すると、VMM200の外部割込みハンドラ210が実行を開始する(ステップ901)。外部割込みハンドラ210は、発生した外部割込みの割込みベクタを取得する(ステップ902)。   When an external interrupt occurs in one of the processors 110, the external interrupt handler 210 of the VMM 200 starts execution (step 901). The external interrupt handler 210 acquires the interrupt vector of the generated external interrupt (step 902).

以下のステップ(ステップ903〜907)は、取得した割込みベクタの伝達先を決め、決めた伝達先に該割込みベクタを伝達する処理の流れを示す。従来の方法は、割込みベクタの伝達先を決めるだけでなく割込みベクタの変換を行う必要があったが、本発明によれば、割込みベクタの伝達先を決めるだけでよい。   The following steps (steps 903 to 907) indicate the flow of processing for determining the transmission destination of the acquired interrupt vector and transmitting the interrupt vector to the determined transmission destination. In the conventional method, it is necessary not only to determine the transmission destination of the interrupt vector but also to convert the interrupt vector. According to the present invention, it is only necessary to determine the transmission destination of the interrupt vector.

外部割込みハンドラ210は、取得した割込みベクタがゲストOS用割込みベクタ集合601に含まれるか否かを判定する(ステップ903)。取得した割込みベクタがゲストOS用割込みベクタ集合601に含まれない場合には、外部割込みハンドラ210は、ファームウェア160に伝達すべき外部割込みと判定し、この割込みベクタをファームウェア160に伝達する(ステップ904)。   The external interrupt handler 210 determines whether or not the acquired interrupt vector is included in the guest OS interrupt vector set 601 (step 903). If the acquired interrupt vector is not included in the guest OS interrupt vector set 601, the external interrupt handler 210 determines that the external interrupt should be transmitted to the firmware 160 and transmits this interrupt vector to the firmware 160 (step 904). ).

取得した割込みベクタがゲストOS用割込みベクタ集合601に含まれる場合には、外部割込みハンドラ210は、この割込みベクタがVMM用割込みベクタ701と等しいかどうか判定する(ステップ905)。取得した割込みベクタがVMM用割込みベクタ701と等しい場合には、外部割込みハンドラ210は、VMM200が自身のプロセッサ間通信を行うために発生させたプロセッサ間割込み、あるいはプロセッサ110の物理的なタイマ112の外部割込みと判定し、VMM200のプロセッサ間通信220と、この割込みベクタを設定した物理的なタイマ112の外部割込みサービスルーチンを呼び出す(ステップ906)。取得した割込みベクタがVMM用割込みベクタ701と異なる場合には、外部割込みハンドラ210は、この割込みベクタを変換せず、仮想計算機300の仮想プロセッサ310に伝達する(ステップ907)。   When the acquired interrupt vector is included in the guest OS interrupt vector set 601, the external interrupt handler 210 determines whether or not this interrupt vector is equal to the VMM interrupt vector 701 (step 905). When the acquired interrupt vector is equal to the VMM interrupt vector 701, the external interrupt handler 210 causes the inter-processor interrupt generated by the VMM 200 to perform its own inter-processor communication or the physical timer 112 of the processor 110. The external interrupt is determined, and the inter-processor communication 220 of the VMM 200 and the external interrupt service routine of the physical timer 112 in which this interrupt vector is set are called (step 906). If the acquired interrupt vector is different from the VMM interrupt vector 701, the external interrupt handler 210 transmits the interrupt vector to the virtual processor 310 of the virtual machine 300 without converting the interrupt vector (step 907).

図8は、VMM200自身がプロセッサ間通信の際に送信するプロセッサ間割込み、ゲストOS330が送信するプロセッサ間割込み、およびI/Oデバイス150から仮想プロセッサ310への外部割込みに関する全体の処理の流れを示す図である。以下第1の方法のファームウェア160の割込みベクタを利用してゲストOS330とVMM200の割込みベクタを分離する場合について説明する。第2の方法のOSの割込みベクタの中で仮想外部割込み生成源にゲストOS330が設定する割込みベクタを利用してゲストOS330とVMMの割込みベクタを分離する場合も全く同様の処理の流れとなる。なお図8で示す処理の流れは一例であり、本発明を限定するものではない。   FIG. 8 shows the overall processing flow regarding the inter-processor interrupt transmitted by the VMM 200 itself during inter-processor communication, the inter-processor interrupt transmitted by the guest OS 330, and the external interrupt from the I / O device 150 to the virtual processor 310. FIG. Hereinafter, a case where the interrupt vector of the guest OS 330 and the VMM 200 is separated using the interrupt vector of the firmware 160 according to the first method will be described. When the interrupt vector of the guest OS 330 and the VMM is separated using the interrupt vector set by the guest OS 330 as the virtual external interrupt generation source among the interrupt vectors of the OS of the second method, the same processing flow is performed. Note that the flow of processing shown in FIG. 8 is an example, and does not limit the present invention.

まずVMM200自身がプロセッサ間通信を行う際に送信するプロセッサ間割込みについて説明する。VMM200のプロセッサ間通信部220が、プロセッサ110−0からプロセッサ110−1へのメッセージ送信を目的として、プロセッサ110−0からプロセッサ110−1へプロセッサ間割込みを送信する場合を説明する。プロセッサ110−1上でこのプロセッサ間割込み以外の外部割込みは発生しないものと仮定する。   First, an interprocessor interrupt transmitted when the VMM 200 itself performs interprocessor communication will be described. A case will be described in which the inter-processor communication unit 220 of the VMM 200 transmits an inter-processor interrupt from the processor 110-0 to the processor 110-1 for the purpose of transmitting a message from the processor 110-0 to the processor 110-1. It is assumed that no external interrupt other than this interprocessor interrupt occurs on the processor 110-1.

VMM200のプロセッサ間通信部220は、プロセッサ110−0上のプロセッサ間割込みを送信するための特定のメモリ領域(プロセッサ間割込み用メモリ領域)に、プロセッサ110−1にVMM用の割込みベクタ602の外部割込みを発生させるためのコマンドを書き込む(1001)。プロセッサ110−0のプロセッサ間割込み機構111−0は、コマンドを受け取ると、書き込まれた割込みベクタの外部割込みをプロセッサ110−0へ送信する(1005)。   The inter-processor communication unit 220 of the VMM 200 includes a specific memory area (inter-processor interrupt memory area) for transmitting an inter-processor interrupt on the processor 110-0, and an external of the VMM interrupt vector 602 to the processor 110-1. A command for generating an interrupt is written (1001). When receiving the command, the inter-processor interrupt mechanism 111-0 of the processor 110-0 transmits an external interrupt of the written interrupt vector to the processor 110-0 (1005).

プロセッサ110−1で外部割込みが発生すると、VMM200の外部割込みハンドラ210に制御が移る(1004)。外部割込みハンドラ210は、発生した外部割込みの割込みベクタがVMM用割込みベクタ602と等しいと判定し、VMM200のプロセッサ間通信部220を呼び出す(1002)。プロセッサ間通信部220は呼び出されると、要求された処理を行う。   When an external interrupt occurs in the processor 110-1, control is transferred to the external interrupt handler 210 of the VMM 200 (1004). The external interrupt handler 210 determines that the interrupt vector of the generated external interrupt is equal to the VMM interrupt vector 602, and calls the inter-processor communication unit 220 of the VMM 200 (1002). When called, the inter-processor communication unit 220 performs the requested processing.

次に図8を参照してゲストOS330が送信するプロセッサ間割込みについて説明する。仮想計算機300−1上のゲストOS330−1が仮想プロセッサ310−0から仮想プロセッサ310−1へプロセッサ間割込みを送信する場合について説明する。   Next, an interprocessor interrupt transmitted by the guest OS 330 will be described with reference to FIG. A case where the guest OS 330-1 on the virtual computer 300-1 transmits an inter-processor interrupt from the virtual processor 310-0 to the virtual processor 310-1 will be described.

VMM200は、仮想計算機300−1を構築するときに、仮想プロセッサ310−0のプロセッサ間割込み用メモリ領域へのコマンドの書き込みは、VMM200を介入させず、プロセッサ110−0のプロセッサ間割込み用メモリ領域に対して直接行われるように設定している。プロセッサ110−1上でこのプロセッサ間割込み以外の外部割込みは発生しないものと仮定する。   When the VMM 200 constructs the virtual machine 300-1, the command writing to the inter-processor interrupt memory area of the virtual processor 310-0 does not intervene in the VMM 200, and the inter-processor interrupt memory area of the processor 110-0. Is set to be done directly. It is assumed that no external interrupt other than this interprocessor interrupt occurs on the processor 110-1.

ゲストOS330−1は、仮想プロセッサ310−0から仮想プロセッサ310−1へプロセッサ間割込みを送信するために、仮想プロセッサ310−0のプロセッサ間割込み領域に割込みベクタを含むコマンドを書き込む。この書き込みはプロセッサ110−0のプロセッサ間割込み用メモリ領域に対して直接行われる(1000)。プロセッサ110−0のプロセッサ間割込み機構111−0は、このコマンドを受け取ると、ゲストOS330−1が指定した割込みベクタの外部割込みをプロセッサ110−1へ送信する(1005)。   The guest OS 330-1 writes a command including an interrupt vector in the inter-processor interrupt area of the virtual processor 310-0 in order to transmit an inter-processor interrupt from the virtual processor 310-0 to the virtual processor 310-1. This writing is directly performed on the inter-processor interrupt memory area of the processor 110-0 (1000). Upon receiving this command, the inter-processor interrupt mechanism 111-0 of the processor 110-0 transmits an external interrupt of the interrupt vector designated by the guest OS 330-1 to the processor 110-1 (1005).

プロセッサ110−1で外部割込みが発生すると、VMM 200の外部割込みハンドラ210に制御が移る(1004)。外部割込みハンドラ210は、発生した外部割込みを仮想計算機300−1の仮想プロセッサ310−1に伝達する外部割込みと判定し、割込みベクタを変換せずに外部割込みを直ちに仮想プロセッサ310−1へ伝達する(1003)。   When an external interrupt occurs in the processor 110-1, control is transferred to the external interrupt handler 210 of the VMM 200 (1004). The external interrupt handler 210 determines that the generated external interrupt is an external interrupt that is transmitted to the virtual processor 310-1 of the virtual machine 300-1, and immediately transmits the external interrupt to the virtual processor 310-1 without converting the interrupt vector. (1003).

次にI/Oデバイス150から仮想計算機へ送信される外部割込みについて説明する。仮想計算機300−1に割り当てられたI/Oデバイス150−2から仮想計算機300−1の仮想プロセッサ310−1に外部割込みが伝達される場合について説明する。   Next, an external interrupt transmitted from the I / O device 150 to the virtual machine will be described. A case where an external interrupt is transmitted from the I / O device 150-2 assigned to the virtual machine 300-1 to the virtual processor 310-1 of the virtual machine 300-1 will be described.

I/Oデバイス150の宛先プロセッサは、プロセッサ110−1に設定されている。プロセッサ110−1上でこの外部割込み以外の外部割込みは発生しないものと仮定する。I/Oデバイス150−2からの外部割込みはプロセッサ110−1に伝達される(1006)。   The destination processor of the I / O device 150 is set to the processor 110-1. It is assumed that no external interrupt other than this external interrupt occurs on the processor 110-1. An external interrupt from the I / O device 150-2 is transmitted to the processor 110-1 (1006).

プロセッサ110−1で外部割込みが発生すると、VMM 200の外部割込みハンドラ210に制御が移る(1004)。外部割込みハンドラ210は、発生した外部割込みを仮想プロセッサ310−1に伝達する外部割込みと判定し、割込みベクタを変換せずにこの外部割込みを直ちに仮想計算機300−1の仮想プロセッサ310−1へ伝達する(1003)。   When an external interrupt occurs in the processor 110-1, control is transferred to the external interrupt handler 210 of the VMM 200 (1004). The external interrupt handler 210 determines that the generated external interrupt is an external interrupt to be transmitted to the virtual processor 310-1, and immediately transmits this external interrupt to the virtual processor 310-1 of the virtual computer 300-1 without converting the interrupt vector. (1003).

以上述べたように、本実施形態によれば、仮想計算機モニタ(VMM)の外部割込み制御において割込みベクタの変換を行わないことにより、ゲストOS330への外部割込みの伝達の遅れを小さくし、ゲストOS330のプロセッサ間割込み送信の遅れをなくし、VMMの外部割込み制御のコード量を減らすことができる。   As described above, according to the present embodiment, the interrupt vector is not converted in the external interrupt control of the virtual machine monitor (VMM), thereby reducing the delay in the transmission of the external interrupt to the guest OS 330 and the guest OS 330. Therefore, it is possible to eliminate the delay of the inter-processor interrupt transmission and reduce the code amount of the external interrupt control of the VMM.

実施形態の仮想計算機システムの構成図である。It is a block diagram of the virtual computer system of an embodiment. 外部割込みの種別を示す割込みベクタの概念図である。It is a conceptual diagram of an interrupt vector indicating the type of external interrupt. 実施形態のゲストOS用割込みベクタとVMM用割込みベクタを分離する第1の方法を説明する概念図である。It is a conceptual diagram explaining the 1st method of isolate | separating the interrupt vector for guest OS and the interrupt vector for VMM of embodiment. ゲストOSが仮想外部割込み生成源に設定する割込みベクタを、VMM用割込みベクタとして使用する第2の方法を説明する概念図である。It is a conceptual diagram explaining the 2nd method of using the interrupt vector which a guest OS sets to a virtual external interrupt generation source as a VMM interrupt vector. 実施形態のゲストOS用割込みベクタとVMM用割込みベクタを分離する第2の方法を説明する概念図である。It is a conceptual diagram explaining the 2nd method of isolate | separating the interrupt vector for guest OS and the interrupt vector for VMM of embodiment. 第1の方法を採用したときのVMMの外部割込みハンドラが外部割込みの伝達先を判定する処理を示すフローチャートである。It is a flowchart which shows the process in which the external interrupt handler of VMM when the 1st method is employ | adopted determines the transmission destination of an external interrupt. 第2の方法を採用したときのVMMの外部割込みハンドラが外部割込みの伝達先を判定する処理を示すフローチャートである。It is a flowchart which shows the process which the external interrupt handler of VMM determines the transmission destination of an external interrupt when the 2nd method is employ | adopted. 実施形態のVMMのプロセッサ間割込み、ゲストOSのプロセッサ間割込み、およびI/Oデバイスから仮想プロセッサへの外部割込みに関する全体の処理の流れを示す図である。It is a figure which shows the flow of the whole process regarding the inter-processor interrupt of VMM of embodiment, the inter-processor interrupt of guest OS, and the external interrupt from an I / O device to a virtual processor.

符号の説明Explanation of symbols

100:物理計算機、110:プロセッサ、150:I/Oデバイス、160:ファームウェア、200:仮想計算機モニタ、210:VMM外部割込みハンドラ、220:VMMプロセッサ間通信部、300:仮想計算機、310:仮想プロセッサ、330:ゲストオペレーティングシステム
100: Physical computer, 110: Processor, 150: I / O device, 160: Firmware, 200: Virtual computer monitor, 210: VMM external interrupt handler, 220: Inter-VMM communication unit, 300: Virtual computer, 310: Virtual processor 330: Guest operating system

Claims (5)

複数のプロセッサと、メモリと、I/Oデバイスとを有する物理計算機と、前記メモリに格納され前記プロセッサによって実行される仮想計算機モニタと仮想計算機のゲストオペレーティングシステムとを有し、前記仮想計算機モニタは、前記プロセッサに発生する外部割込みが前記ゲストオペレーティングシステムに伝達すべき外部割込みか前記仮想計算機モニタ用の外部割込みかを判定する仮想計算機システムにおいて、前記仮想計算機モニタによって実行される方法であって、
発生した前記外部割込みについて設定された割込みベクタを取得し、
前記割込みベクタが前記ゲストオペレーティングシステムが使用する割込みベクタの集合に属すれば前記ゲストオペレーティングシステムに伝達し、
取得した前記割込みベクタが前記割込みベクタの集合に属さない割込みベクタであり、かつ前記仮想計算機モニタ用の割込みベクタであれば、前記仮想計算機モニタ内部の処理のための制御プログラムを呼び出すことを特徴とする仮想計算機システムの外部割込み制御方法。
A physical machine having a plurality of processors, a memory, and an I / O device; a virtual machine monitor stored in the memory and executed by the processor; and a guest operating system of the virtual machine. A method executed by the virtual machine monitor in a virtual machine system for determining whether an external interrupt generated in the processor is an external interrupt to be transmitted to the guest operating system or an external interrupt for the virtual machine monitor,
Get the interrupt vector set for the external interrupt that occurred,
If the interrupt vector belongs to a set of interrupt vectors used by the guest operating system, communicate to the guest operating system,
If the acquired interrupt vector is an interrupt vector that does not belong to the set of interrupt vectors and is an interrupt vector for the virtual machine monitor, a control program for processing inside the virtual machine monitor is called. External interrupt control method for a virtual machine system.
複数のプロセッサと、メモリと、I/Oデバイスとを有する物理計算機と、前記メモリに格納され前記プロセッサによって実行される仮想計算機モニタと仮想計算機のゲストオペレーティングシステムとを有し、前記仮想計算機モニタは、前記プロセッサに発生する外部割込みが前記ゲストオペレーティングシステムに伝達すべき外部割込みか前記仮想計算機モニタ用の外部割込みかを判定する仮想計算機システムにおいて、前記仮想計算機モニタによって実行される方法であって、
発生した前記外部割込みについて設定された割込みベクタを取得し、
前記割込みベクタが前記プロセッサに発生する外部割込みとは独立に前記ゲストオペレーティングシステムが内部的に発生させる仮想外部割込みについて設定された割込みベクタと一致すれば、前記仮想計算機モニタ内部の処理のための制御プログラムを呼び出し、
取得した前記割込みベクタが前記仮想外部割込みについて設定された割込みベクタ以外の前記ゲストオペレーティングシステムが使用する割込みベクタの集合に属すれば前記ゲストオペレーティングシステムに伝達することを特徴とする仮想計算機システムの外部割込み制御方法。
A physical machine having a plurality of processors, a memory, and an I / O device; a virtual machine monitor stored in the memory and executed by the processor; and a guest operating system of the virtual machine. A method executed by the virtual machine monitor in a virtual machine system for determining whether an external interrupt generated in the processor is an external interrupt to be transmitted to the guest operating system or an external interrupt for the virtual machine monitor,
Get the interrupt vector set for the external interrupt that occurred,
If the interrupt vector matches the interrupt vector set for the virtual external interrupt generated internally by the guest operating system independently of the external interrupt generated in the processor, control for processing inside the virtual machine monitor Call the program,
If the acquired interrupt vector belongs to a set of interrupt vectors used by the guest operating system other than the interrupt vector set for the virtual external interrupt, it is transmitted to the guest operating system. Interrupt control method.
前記ゲストオペレーティングシステムがプロセッサ間割込みを他プロセッサに送信するときには、前記仮想計算機モニタが介入せずに、前記ゲストオペレーティングシステムがプロセッサ間割込み用メモリ領域に直接前記割込みベクタを含むコマンドを書き込むようにさせることを特徴とする請求項1又は2記載の仮想計算機システムの外部割込み制御方法。   When the guest operating system sends an inter-processor interrupt to another processor, the virtual machine monitor causes the guest operating system to write a command including the interrupt vector directly in the inter-processor interrupt memory area without intervention. The external interrupt control method for a virtual machine system according to claim 1 or 2. 複数のプロセッサと、メモリと、I/Oデバイスとを有する物理計算機と、前記メモリに格納され前記プロセッサによって実行される仮想計算機モニタと仮想計算機のゲストオペレーティングシステムとを有し、前記仮想計算機モニタは、前記プロセッサに発生する外部割込みが前記ゲストオペレーティングシステムに伝達すべき外部割込みか前記仮想計算機モニタ用の外部割込みかを判定する仮想計算機システムにおいて、前記仮想計算機モニタは、
発生した前記外部割込みについて設定された割込みベクタを取得する手段と、
前記割込みベクタが前記ゲストオペレーティングシステムが使用する割込みベクタの集合に属すれば前記ゲストオペレーティングシステムに伝達する手段と、
取得した前記割込みベクタが前記割込みベクタの集合に属さない割込みベクタであり、かつ前記仮想計算機モニタ用の割込みベクタであれば、前記仮想計算機モニタ内部の処理のための制御プログラムを呼び出す手段とを有することを特徴とする仮想計算機システム。
A physical machine having a plurality of processors, a memory, and an I / O device; a virtual machine monitor stored in the memory and executed by the processor; and a guest operating system of the virtual machine. In the virtual machine system for determining whether an external interrupt generated in the processor is an external interrupt to be transmitted to the guest operating system or an external interrupt for the virtual machine monitor, the virtual machine monitor includes:
Means for acquiring an interrupt vector set for the generated external interrupt;
Means for communicating to the guest operating system if the interrupt vector belongs to a set of interrupt vectors used by the guest operating system;
Means for calling a control program for processing inside the virtual machine monitor if the acquired interrupt vector is an interrupt vector that does not belong to the set of interrupt vectors and is an interrupt vector for the virtual machine monitor. A virtual computer system characterized by that.
複数のプロセッサと、メモリと、I/Oデバイスとを有する物理計算機と、前記メモリに格納され前記プロセッサによって実行される仮想計算機モニタと仮想計算機のゲストオペレーティングシステムとを有し、前記仮想計算機モニタは、前記プロセッサに発生する外部割込みが前記ゲストオペレーティングシステムに伝達すべき外部割込みか前記仮想計算機モニタ用の外部割込みかを判定する仮想計算機システムにおいて、前記仮想計算機モニタは、
発生した前記外部割込みについて設定された割込みベクタを取得する手段と、
前記割込みベクタが前記プロセッサに発生する外部割込みとは独立に前記ゲストオペレーティングシステムが内部的に発生させる仮想外部割込みについて設定された割込みベクタと一致すれば、前記仮想計算機モニタ内部の処理のための制御プログラムを呼び出す手段と、
取得した前記割込みベクタが前記仮想外部割込みについて設定された割込みベクタ以外の前記ゲストオペレーティングシステムが使用する割込みベクタの集合に属すれば前記ゲストオペレーティングシステムに伝達する手段とを有することを特徴とする仮想計算機システム。
A physical machine having a plurality of processors, a memory, and an I / O device; a virtual machine monitor stored in the memory and executed by the processor; and a guest operating system of the virtual machine. In the virtual machine system for determining whether an external interrupt generated in the processor is an external interrupt to be transmitted to the guest operating system or an external interrupt for the virtual machine monitor, the virtual machine monitor includes:
Means for acquiring an interrupt vector set for the generated external interrupt;
If the interrupt vector matches the interrupt vector set for the virtual external interrupt generated internally by the guest operating system independently of the external interrupt generated in the processor, control for processing inside the virtual machine monitor Means to call the program;
Means for transmitting to the guest operating system if the acquired interrupt vector belongs to a set of interrupt vectors used by the guest operating system other than the interrupt vector set for the virtual external interrupt. Computer system.
JP2005019276A 2005-01-27 2005-01-27 Virtual machine system and its method for controlling external interrupt Pending JP2006209386A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005019276A JP2006209386A (en) 2005-01-27 2005-01-27 Virtual machine system and its method for controlling external interrupt

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005019276A JP2006209386A (en) 2005-01-27 2005-01-27 Virtual machine system and its method for controlling external interrupt

Publications (1)

Publication Number Publication Date
JP2006209386A true JP2006209386A (en) 2006-08-10

Family

ID=36966187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005019276A Pending JP2006209386A (en) 2005-01-27 2005-01-27 Virtual machine system and its method for controlling external interrupt

Country Status (1)

Country Link
JP (1) JP2006209386A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2241978A1 (en) 2009-04-14 2010-10-20 Hitachi, Ltd. Computer system, interrupt relay circuit and interrupt relay method
WO2017094132A1 (en) * 2015-12-02 2017-06-08 株式会社日立製作所 Computer and method for controlling computer
JP2018536945A (en) * 2015-12-08 2018-12-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated Method and apparatus for time-based scheduling of tasks
WO2020008757A1 (en) * 2018-07-03 2020-01-09 株式会社デンソー Method of accessing device in virtualized environment
WO2024051122A1 (en) * 2022-09-05 2024-03-14 浪潮电子信息产业股份有限公司 Pcie interrupt processing method and apparatus, device, and non-volatile readable storage medium

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2241978A1 (en) 2009-04-14 2010-10-20 Hitachi, Ltd. Computer system, interrupt relay circuit and interrupt relay method
WO2017094132A1 (en) * 2015-12-02 2017-06-08 株式会社日立製作所 Computer and method for controlling computer
JP2018536945A (en) * 2015-12-08 2018-12-13 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated Method and apparatus for time-based scheduling of tasks
WO2020008757A1 (en) * 2018-07-03 2020-01-09 株式会社デンソー Method of accessing device in virtualized environment
JP2020008933A (en) * 2018-07-03 2020-01-16 株式会社デンソー Access method to device in virtualized environment
JP7196439B2 (en) 2018-07-03 2022-12-27 株式会社デンソー How to access devices in a virtualized environment
WO2024051122A1 (en) * 2022-09-05 2024-03-14 浪潮电子信息产业股份有限公司 Pcie interrupt processing method and apparatus, device, and non-volatile readable storage medium

Similar Documents

Publication Publication Date Title
JP3989911B2 (en) Virtualization of global interrupt queue
JP2009265963A (en) Information processing system and task execution control method
US20110125949A1 (en) Routing packet from first virtual machine to second virtual machine of a computing device
KR20160097363A (en) Resource processing method, operating system, and device
JP2007109040A (en) Information processing unit, information processing system, communication relay unit, and communication control method
JP2007183951A (en) Transmission of direct interrupt to virtual processor
US11188369B2 (en) Interrupt virtualization
JP2008176360A (en) Multiprocessor system
JP2006209386A (en) Virtual machine system and its method for controlling external interrupt
US6256660B1 (en) Method and program product for allowing application programs to avoid unnecessary packet arrival interrupts
TWI403955B (en) Device,method and system for audio subsystem sharing in a virtualized environment
KR20210051325A (en) Device and method for sharing data on an asymmetric multi-processing system
US10353857B2 (en) Parallel processing apparatus and method for controlling communication
WO2016015493A1 (en) Hardware virtual port and processor system
US20160098289A1 (en) System and method for handling an interrupt
JP7451438B2 (en) Communication devices, communication systems, notification methods and programs
US9548906B2 (en) High availability multi-partition networking device with reserve partition and method for operating
JP2009282917A (en) Interserver communication mechanism and computer system
JP4259390B2 (en) Parallel processing unit
KR101620896B1 (en) Executing performance enhancement method, executing performance enhancement apparatus and executing performance enhancement system for map-reduce programming model considering different processing type
US11663150B2 (en) Fault tolerant system
US20200387396A1 (en) Information processing apparatus and information processing system
US11513983B2 (en) Interrupt migration
US7320044B1 (en) System, method, and computer program product for interrupt scheduling in processing communication
US11042494B1 (en) Direct injection of a virtual interrupt

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080122

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20080122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090701

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100202