JP2010128943A - Information processing apparatus and method of controlling the same - Google Patents
Information processing apparatus and method of controlling the same Download PDFInfo
- Publication number
- JP2010128943A JP2010128943A JP2008304833A JP2008304833A JP2010128943A JP 2010128943 A JP2010128943 A JP 2010128943A JP 2008304833 A JP2008304833 A JP 2008304833A JP 2008304833 A JP2008304833 A JP 2008304833A JP 2010128943 A JP2010128943 A JP 2010128943A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- bios
- processing apparatus
- information processing
- address
- 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
- Stored Programmes (AREA)
Abstract
Description
本発明は、ハイパーバイザ上で仮想マシンが動作する技術に関し、特に仮想マシンがI/Oデバイスと通信を行う情報処理装置、および情報処理装置の制御方法に関する。 The present invention relates to a technique for operating a virtual machine on a hypervisor, and more particularly to an information processing apparatus in which a virtual machine communicates with an I / O device, and a control method for the information processing apparatus.
現在、ハードウェアとユーザが使用するソフト環境(仮想マシン)とを切り分ける、仮想マシン技術が注目されている。 Currently, virtual machine technology that separates hardware from a software environment (virtual machine) used by a user is attracting attention.
仮想マシン技術では、ハイパーバイザがハードウェアと仮想マシンとの間の調停を行っている。 In virtual machine technology, a hypervisor mediates between hardware and a virtual machine.
仮想マシンシステムにおいて、マイクロハイパーバイザとサービス仮想マシンとを備え、既存のオペレーティングシステムを修正しないでゲスト仮想マシンとして実行されることが開示されている(特許文献1参照)。
上述した技術では、既存のオペレーティングシステムを修正しないでゲスト仮想マシンとして使用することができる。ところが、システムBIOS以外のSMBIOS、拡張BIOS、VIDEO BIOS等はインストール時にメモリ空間に割り当てられる。そのため、コンピュータ毎にSMBIOS、拡張BIOS、VIDEO BIOS等が割り当てられるアドレスが異なることがあり、別のコンピュータで作られたイメージを用いてシステムを起動することができない。 With the above-described technology, an existing operating system can be used as a guest virtual machine without modification. However, SMBIOS other than the system BIOS, expansion BIOS, VIDEO BIOS, and the like are allocated to the memory space at the time of installation. For this reason, the addresses to which SMBIOS, expansion BIOS, VIDEO BIOS, etc. are assigned may be different for each computer, and the system cannot be started up using an image created by another computer.
本発明の目的は、別な装置で作られたシステムを実行するためのイメージを用いてもシステムを実行することが可能な情報処理装置および情報処理装置の制御方法を提供することにある。 An object of the present invention is to provide an information processing apparatus and a control method for the information processing apparatus that can execute the system using an image for executing the system created by another apparatus.
本発明の一例に係わる情報処理装置は、ハイパーバイザ上で仮想マシンが動作する情報処理装置であって、前記情報処理装置に設けられたI/Oデバイスと、システムBIOS(Basic Input/Output System)と異なるBIOSとをメモリ空間に割り当てる割り当て手段と、デバイスプロファイルと前記I/Oデバイスの構成とに応じて前記仮想マシンのアドレス空間に対してI/Oデバイスを割り当てるための情報と、前記仮想マシンのアドレス空間上の前記システムBIOSと異なるBIOSのアドレスを前記割り当て手段が割り当てたアドレスと同一のアドレスに割り当てるための情報とを含むデバイスモデルを作成するデバイスマネージャと、前記仮想マシンが前記割り当てられたI/OデバイスにMMIOアクセスするためのアドレス変換、前記割り当てられたI/Oデバイスと前記仮想マシンとの間でDMA転送を行うためのアドレス変換、および前記仮想マシンが前記システムBIOSと異なるBIOSにアクセスするためのアドレス変換を行うためのアドレス変換回路を有する半導体回路とを具備し、前記ハイパーバイザは、前記デバイスモデルに基づいて前記仮想マシンのメモリ空間に前記I/Oデバイスを割り当て、前記仮想マシンは、前記割り当てられたI/Oデバイスに対してMMIOアクセスを行う、前記割り当てられたI/Oデバイスとの間でDMA転送を行う、または前記システムBIOSと異なるBIOSにアクセスする場合、前記アドレス変換回路を用いてアクセスすることを特徴とする。 An information processing apparatus according to an example of the present invention is an information processing apparatus in which a virtual machine operates on a hypervisor, and includes an I / O device provided in the information processing apparatus and a system BIOS (Basic Input / Output System). Allocating means for allocating a different BIOS to a memory space, information for allocating an I / O device to an address space of the virtual machine according to a device profile and the configuration of the I / O device, and the virtual machine A device manager for creating a device model including information for assigning a BIOS address different from the system BIOS in the address space to the same address as the address assigned by the assigning means, and the virtual machine is assigned Address translation for MMIO access to I / O devices, Address conversion for performing DMA transfer between the allocated I / O device and the virtual machine, and address conversion circuit for performing address conversion for the virtual machine to access a BIOS different from the system BIOS The hypervisor allocates the I / O device to the memory space of the virtual machine based on the device model, and the virtual machine allocates the I / O device to the allocated I / O device. In the case of performing MMIO access, performing DMA transfer with the assigned I / O device, or accessing a BIOS different from the system BIOS, the address conversion circuit is used for access.
本発明によれば、別な装置で作られたシステムを実行するためのイメージを用いてもシステムを実行することが可能になる。 According to the present invention, it is possible to execute the system using an image for executing the system made by another apparatus.
本発明の実施の形態を以下に図面を参照して説明する。 Embodiments of the present invention will be described below with reference to the drawings.
図1に示すように、本発明の一実施形態に係わる情報処理装置としてのクライアントコンピュータおよびサーバを含むシステム構成を示すブロック図である。
図1に示すように、コンピュータ10は、仮想マシンモニタ(ハイパーバイザ)230、仮想マシンマネージャ210、デバイスマネージャ220、仮想マシン200、ATAコントローラ104A、LANコントローラ110、USBコントローラ113、IEEE1394コントローラ116、PCIデバイス114、GPU(Graphycs Processor Unit)105/サウンドコントローラ106、ハードディスクドライブ111等を有する。
As shown in FIG. 1, it is a block diagram showing a system configuration including a client computer and a server as information processing apparatuses according to an embodiment of the present invention.
As shown in FIG. 1, the
仮想マシンモニタ230は、LANコントローラ110、USBコントローラ113、IEEE1394コントローラ116、PCIデバイス114、GPU(Graphycs Processor Unit)105/サウンドコントローラ106等のハードウェアを管理し、仮想マシンモニタ230上で動作する各仮想マシン200に対してリソース割り当てを行う。また仮想マシンモニタ230は、仮想マシン200の実行スケジュールと仮想マシンからのI/O要求をハードウェアへ振り分ける。
The
仮想マシンマネージャ210は、仮想マシンモニタ230上で動作する仮想マシン200の起動制御等を行う。デバイスマネージャ220は、仮想マシン200の起動前にハードウェアの管理を行う。また、デバイスマネージャは、仮想マシンの起動後に、I/Oデバイスとの通信制御等も行う。また、仮想マシンマネージャ210は、仮想マシンから参照され、初期のオペレーティングシステムのロード起動指示、ACPI(電源管理、I/Oコントロール)を行う。
The
なお、仮想マシンモニタ230、仮想マシンマネージャ210、デバイスマネージャ220、および仮想マシン200は、プロセッサ上で動作するソフトウエアモジュールである。
The virtual machine monitor 230, the
LANコントローラ110は、本コンピュータをLAN(Local Area Network)に接続するためのネットワークインターフェースである。USBコントローラ113は、USBバスに接続されたキーボード13、タッチパッド16、HDD/フラッシュメモリ113A等のUSBデバイスとの通信を制御するコントローラである。IEEE1394コントローラ116は、IEEE1394バスに接続された外部デバイスとの通信を制御するコントローラである。PCIデバイス114は,PCIバスに接続されたデバイスである。GPU105は、ディスプレイを制御する表示コントローラである。このGPU105はビデオメモリ(VRAM)を有しており、OS/アプリケーションプログラムによってビデオメモリに描画された表示データから、ディスプレイに表示すべき表示イメージを形成する映像信号を生成する。サウンドコントローラ106は音源デバイスであり、再生対象のオーディオデータをスピーカに出力する。
The
ATAコントローラ104Aは、ハードディスクドライブ111の標準規格であるATAに対応し、ハードディスクドライブ111と通信を行ってデータの書き込みおよび読み出しを行うコントローラである。
The ATA controller 104A corresponds to ATA, which is a standard for the
HDD111には、コンピュータ10をユーザに提供した時点で、オペレーティングシステム,ドライバ、アプリケーションを実行するためのインストールイメージ111Aが格納されている。通常は、このプリインストールイメージ111Aを用いて、オペレーティングシステムを起動した後、ドライバ、アプリケーションの実行を行うことによってコンピュータ10を使用する(非仮想マシンモード)。コンピュータ10を仮想環境で使用する際、このプリインストールイメージ111Aを仮想マシンとして実行し、他のサービスOSがバックグランドで同時に実行される(仮想マシンモード)。モードの切り替えは仮想マシンマネージャ210によって行われる。仮想マシンマネージャ210は起動時にどちらのモードで使用するかをユーザに尋ね、ユーザの指示に応じて仮想マシンモードおよび非仮想マシンモードの何れかでシステムを起動する。
The HDD 111 stores an
なお、仮想マシンモードで動作する際は、仮想マシンとH/Wを制御する仮想マシンモニタ(ハイパーバイザ)と、仮想マシンに対してデバイスI/Oのリソース割り当て等を行うデバイスマネージャと、仮想マシンイメージをロードするローダが動作する。また、
次に、図2を参照して、本コンピュータのシステム構成について説明する。
When operating in the virtual machine mode, a virtual machine monitor (hypervisor) that controls the virtual machine and H / W, a device manager that allocates device I / O resources to the virtual machine, and the virtual machine The loader that loads the image works. Also,
Next, the system configuration of the computer will be described with reference to FIG.
本コンピュータは、図2に示されているように、CPU101、ノースブリッジ102、主メモリ103、サウスブリッジ104、グラフィクス・プロセッシング・ユニット(GPU)105、ビデオメモリ(VRAM)105A、サウンドコントローラ106、BIOS−ROM109、LANコントローラ110、ハードディスクドライブ(HDD)111、DVDドライブ112、PCIデバイス114、モデム115、IEEE 1394コントローラ116、およびエンベデッドコントローラ/キーボードコントローラIC(EC/KBC)117等を備えている。
As shown in FIG. 2, the computer includes a
CPU101は本コンピュータ10の動作を制御するプロセッサであり、ハードディスクドライブ(HDD)111から主メモリ103にロードされる、各種アプリケーションプログラムを実行する。また、CPU101は、BIOS−ROM109に格納されたシステムBIOS(Basic Input Output System)も実行する。BIOSはハードウェア制御のためのプログラムである。
The
ノースブリッジ102は、CPU101のローカルバスとサウスブリッジ104との間を接続するブリッジデバイスである。ノースブリッジ102には、主メモリ103をアクセス制御するメモリー・コントローラも内蔵されている。また、ノースブリッジ102は、PCI EXPRESS規格のシリアルバスなどを介してGPU105との通信を実行する機能も有している。
The
GPU105は、本コンピュータ10のディスプレイモニタとして使用されるディスプレイ117を制御する表示コントローラである。このGPU105によって生成される表示信号はディスプレイ117に送られる。
The GPU 105 is a display controller that controls a
サウスブリッジ104は、LPC(Low Pin Count)バス上のレガシーデバイス18を含む各デバイス、およびPCI(Peripheral Component Interconnect)バス上の各デバイスを制御する。また、サウスブリッジ104は、ハードディスクドライブ(HDD)111およびDVDドライブ112を制御するためのIDE(Integrated Drive Electronics)コントローラを内蔵している。さらに、サウスブリッジ104は、サウンドコントローラ106との通信を実行する機能も有している。
The
サウンドコントローラ106は音源デバイスであり、再生対象のオーディオデータをスピーカ18に出力する。USBコントローラ113は、USB規格のシリアルバスを介して外部機器との通信を実行する。IEEE 1394コントローラ116は、IEEE 1394規格のシリアルバスを介して外部機器との通信を実行する。モデム115は、電話回線を介してなどのアナログ回線を通じてデータ通信を行うための信号変換装置である。
The
エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)116は、電力管理のためのエンベデッドコントローラと、キーボード(KB)13およびタッチパッド16を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このエンベデッドコントローラ/キーボードコントローラIC(EC/KBC)116は、ユーザによるパワーボタン14の操作に応じて本コンピュータ10をパワーオン/パワーオフする機能を有している。さらに、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)116は、リモコンユニットインタフェース20との通信を実行する機能を有している。
The embedded controller / keyboard controller IC (EC / KBC) 116 is a one-chip microcomputer in which an embedded controller for power management and a keyboard controller for controlling the keyboard (KB) 13 and the
上記デバイスの内、GPU105,LANコントローラ110、HDD11およびDVDが接続されるIDE(Integrated Drive Electronics)コントローラ、USBコントローラ113,IEEE1394コントローラ116,モデム115、その他PCIデバイス114などは、PCIデバイスとして接続されている。CPU101からは、PCIの規格に沿った形で上記デバイスにアクセスし、動作する。
Among the above devices, GPU 105,
本コンピュータは、インテル(登録商標)のダイレクトI/Oテクノロジー(VT−d)」をサポートした装置である。VT−dでは,I/Oを仮想化する技術である。VT−dは、特に,チップ・セット、I/Oコントローラ,メモリー・コントローラの部分を担っている。 This computer is a device that supports Intel (registered trademark) direct I / O technology (VT-d). VT-d is a technology for virtualizing I / O. The VT-d is particularly responsible for the chip set, I / O controller, and memory controller.
I/Oデバイスの仮想化にはいくつかの手法があるが、VT−dをサポートしている本装置では、パススルー・モデルを用いて、I/Oデバイスを仮想化する。パススルー・モデルでは、仮想マシンモニタがI/Oデバイスを直接仮想マシンに割り当てることができる。例えば、仮想マシンごとに専用のSCSIカードやネットワーク・カードなどを用意し、それらを1つずつ仮想マシンに割り当てる。また、デバイスマネージャは、PCIデバイスの初期化制御を行う。 There are several methods for virtualizing the I / O device. In this apparatus that supports VT-d, the I / O device is virtualized using a pass-through model. In the pass-through model, the virtual machine monitor can assign an I / O device directly to the virtual machine. For example, a dedicated SCSI card or network card is prepared for each virtual machine, and these are assigned to the virtual machine one by one. The device manager also controls initialization of the PCI device.
以下に、仮想マシンの起動、およびI/Oデバイスの割り当てについて説明する。
図3は、H/Wデバイスを管理するデバイスマネージャの構成および仮想マシン、仮想マシンモニタとの関連を示す。
図4、図5、図6、図7は、コンピュータ10の起動(電源ONによる)から仮想マシン実行までの動作フローを示す。
Hereinafter, activation of a virtual machine and allocation of an I / O device will be described.
FIG. 3 shows the configuration of the device manager that manages the H / W device and the relationship with the virtual machine and the virtual machine monitor.
4, 5, 6, and 7 show an operation flow from the startup of the computer 10 (by turning on the power) to the execution of the virtual machine.
ユーザがパワーボタンを押下操作することによってウェイクアップイベントが発生すると、CPU102はBIOS−ROM109に搭載されているBIOSによってPOST(Power-On Self Test)処理を実行する(ステップS11)。POST処理が終了すると、起動したブートローダは、通常ならばOSをロードするが、このPCは、ブートローダは、仮想マシンマネージャ210、デバイスマネージャ220、仮想マシンモニタ230をロード、起動する(ステップS14)。
When a wake-up event occurs when the user presses the power button, the
ここで、仮想マシンの起動指示(通常のOS起動と同じ)があると、仮想マシンマネージャ210は、起動するユーザ情報を決定する(ステップS15)。PCのIDや、予め設定されたユーザ名などからユーザを決定すると、仮想マシンマネージャ210は、ハードディスクドライブからインストールイメージ111Aを取得する(ステップS21)。なお、すべてロードするのではなく、仮想マシンが初期起動するために必要なローダ、システムファイル、ドライバ等をロードする。同時に仮想マシンマネージャは、デバイスマネージャ220にユーザに適したデバイスを構築するように指示する。
Here, when there is a virtual machine activation instruction (same as normal OS activation), the
デバイスマネージャ220は、ユーザ情報からデバイスプロファイル250をロードし(ステップS31)、デバイスプロファイルに応じたデバイスモデル211を構成する(ステップS32)。デバイスプロファイル250の例を図8に示す。デバイスモデルの構成は、デバイスモデル生成部221がBIOSのACPI情報からコンピュータ10が持つ実際のHWデバイス情報を取得し、プロファイル情報と照合して構成する。例えば、ACPI情報にUSBデバイスが存在することが記述されていた場合、プロファイル情報にDeviceTypeがUSBであるリストがあるか探し、リストに存在する場合にはそのUSBデバイスを仮想マシンが使用するように図9のデバイスモデル構成リストを構成する。ACPI情報にデバイスが存在していても、デバイスプロファイルに同じタイプのデバイスが存在しない場合には、デバイスモデル構成リストには追加しない。また、デバイスプロファイルにあって、ACPI情報にない場合も同様である。すべてのデバイスについて確認が終了すると図10に示すような仮想デバイスモデルが構成される。図10に示すように、ホストブリッジ270にバス0を介してグラフィクス・プロセッシング・ユニット105V、USBコントローラ113V、およびPCI−PCIブリッジ280が接続されている。PCI-PCIブリッジ280にバス1を介してIEEE1394コントローラ116Vが接続されている。バス1にPCI−PCIブリッジ290を介してISAバスが接続されている。ISAバスにキーボード/マウスコントローラ117Vが接続されている。
The
図10に示す仮想デバイスモデルを作成するにあたって、デバイスマネージャ220は、実コンピュータのデバイス(バスNo.、デバイスID, Function ID)と同じになるように構成し、そこに新に追加するデバイスがあれば、デバイスIDが重ならないように追加、隠蔽すべきデバイスがあればそのデバイスを削除する。これにより、プリインストールイメージのオペレーティングシステムおよびドライバを再構成せずに仮想環境で起動できるようになる。
In creating the virtual device model shown in FIG. 10, the
デバイスマネージャ220は、図9に示すデバイスモデル構成リストに従って、仮想マシンモニタ230に対しデバイスの登録を行う(ステップS33)。登録の際、デバイスマネージャ220は、PCIデバイスBUS番号、PCIデバイスDevice番号、PCIデバイスFunction番号、使用するI/Oポートアドレス(PIOおよびMMIO)、仮想I/Oポートアドレス(PIOおよびMMIO)のIOMAP情報、また、割込み番号(IRQ)、仮想割込み番号(VIRQ)を仮想マシンモニタ230に通知する。
The
また、デバイスマネージャ220は、仮想マシン上のSMBIOS、拡張BIOS、およびVIDEO BIOSのアドレス空間を、実マシンのメモリ空間に割り当てられているSMBIOS、拡張BIOS、およびVIDEO BIOSのアドレスと一致するようにするための情報をデバイスモデルに加える。
Further, the
SMBIOSはユーザ、オペレーティングシステム、アプリケーション等がコンピュータに特有な情報を不揮発性メモリに格納した情報のコピーであり、オペレーティングシステム、アプリケーション等はSMBIOSに格納されている情報を利用することができる。SMBIOSはC000h〜FFFFHの範囲にマッピングされる。拡張BIOSは、PCIスロット等に装着された拡張カード上に内蔵されたBIOSである。拡張BIOSブート時にメモリ上のC000h〜DFFFHの範囲にマッピングされる。VIDEO BIOSは、GPU105が設けられた拡張カードに設けられたVideo Video BIOSに高速にアクセスするためにC000h〜DFFFhにマッピングされたシャドーである。
The SMBIOS is a copy of information in which information specific to a computer is stored in a nonvolatile memory by a user, operating system, application, etc., and the operating system, application, etc. can use the information stored in the SMBIOS. SMBIOS is mapped to the range of C000h to FFFFH. The expansion BIOS is a BIOS built in an expansion card installed in a PCI slot or the like. It is mapped to the range of C000h to DFFFH on the memory when the extended BIOS is booted. The VIDEO BIOS is a shadow mapped to C000h to DFFFh in order to access the Video Video BIOS provided in the expansion card provided with the
登録が終了すると、デバイスマネージャ220は、仮想マシンマネージャ210に仮想マシン200の起動を指示する(ステップS34)。仮想マシンマネージャ210は、指示に応じてサーバ240からダウンロードした仮想マシンを起動する(ステップS22)。起動した仮想マシン200は、オペレーティングシステム(OS)起動時の初期化の課程で、デバイスドライバのロード(ステップS23)、デバイスドライバの初期化を実行する(ステップS24)。そして、オペレーティングシステムの起動後、仮想マシン内でアプリケーションが起動する(ステップS25)。デバイスドライバの初期化時やアプリケーションからPIOアクセスがあった場合、仮想マシンモニタは、アクセスをトラップする(ステップS27)。
When the registration is completed, the
仮想マシンモニタ230は、このIOMAPの登録により、仮想マシン200からPCIデバイスへのPCIコンフィグレーション空間へのアクセスやポートI/Oへのアクセスまたは割込みが発生した場合、アクセスをトラップし(ステップS27)、登録のアドレスへ変換してアクセスする。
The virtual machine monitor 230 traps access when an access to the PCI configuration space from the
I/Oポートへのアクセスのうち、PCIコンフィグレーション空間へのアクセスの場合、仮想マシンモニタ230は、デバイスマネージャ220をコールし、デバイスマネージャ220がPCIコンフィグレーション空間へのアクセスを代行する。このアクセスの代行の場合、二つのアクセス方法が有る。そのため、デバイスマネージャは、PCIコンフィグレーションにアクセスするデバイスを特定する(ステップS35)。そして、特定したデバイスがパススルーデバイスへのアクセスであるか否かを判別する(ステップS36)。パススルーデバイスへのアクセスであると判断した場合(ステップS36のYES)、、実際のPCIデバイスのコンフィグレーション空間にアクセスする(ステップS37)。また、パススルーデバイスへのアクセスでは無いと判断した場合(ステップS36のNO)、そのコンフィグレーション空間をコピーしたダミーのエリアがデバイスマネージャ220内にあり、直接アクセスする必要がないデバイス、他の仮想マシンと共有しているデバイスは、ダミーのエリアに対してREAD/WRITEを行う。
In the case of access to the PCI configuration space among the access to the I / O port, the virtual machine monitor 230 calls the
また、MMIOおよびDMA転送については、仮想マシンからの要求に対して、アドレス変換ユニット260がアドレス変換情報に従って、仮想物理アドレスからマシンアドレスへ変換しアクセスする。このアドレス変換ユニット260は、メモリー・コントローラが設けられているデバイスに設けられる。アドレス変換ユニット260は、I/Oメモリ管理ユニット(IOMMU)261とDMARU(DMA Remapping Unit)262とを有する。I/Oメモリ管理ユニット(IOMMU)261は、仮想マシン200が主メモリ上のMMIOエリアにアクセスする場合に用いられる。この場合、仮想マシン側からは通常のデバイスを使用しているのと何ら変わらないので、仮想マシンのデバイスドライバを直接利用して仮想マシンから利用できるようになる。
As for MMIO and DMA transfer, the
また、DMARU262は、仮想マシン200に割り当てられているメモリ空間とDMA転送する場合に用いられる。図11はアドレス変換の様子を示す。図11に示すように、仮想マシン物理アドレス空間上のページメモリ、並びにPCIデバイス1、PCIデバイス2、およびPCIデバイス3のMMIOエリアと、実マシンアドレス空間上のページメモリ、並びにPCIデバイス1、PCIデバイス2、およびPCIデバイス3のMMIOエリアとの変換が、仮想マシンモニタ、I/Oメモリ管理ユニット(IOMMU)261、DMARU(DMA Remapping Unit)262とよって行われる。
The
図11に示すように、仮想マシンの物理アドレス空間上のSMBIOS、拡張BIOS(Ext. BIOS)、およびVIDEO BIOSと実マシンの物理アドレス空間上のSMBIOS、拡張BIOS(Ext. BIOS)、およびVIDEO BIOSとは、アドレス変換ユニット260経由で等化的に1:1のアドレスにマッピングされている。
As shown in FIG. 11, the SMBIOS, the extended BIOS (Ext. BIOS), and the VIDEO BIOS on the physical address space of the virtual machine, the SMBIOS, the extended BIOS (Ext. BIOS), and the VIDEO BIOS on the physical address space of the real machine. Is equivalently mapped to a 1: 1 address via the
IBM PCの標準的なアーキテクチャでは、セグメント000h〜9FFFhまでがRAM、A000H〜BFFFHまでがビデオメモリやビデオBIOS、C000H〜FFFH迄が拡張BIOS等の予約領域として設計されている。 In the standard architecture of IBM PC, segments 000h to 9FFFh are designed as RAM, A000H to BFFFH are reserved as video memory and video BIOS, and C000H to FFFH are reserved areas such as extended BIOS.
上述したSMBIOS、拡張BIOS、およびVIDEO BIOSは、アプリケーションがオペレーティングシステムがインストール時にそれぞれの使用する領域がマッピングされる。従って、SMBIOS、拡張BIOS、およびVIDEO BIOSのアドレスが仮想マシンでのアドレス空間と実マシン上でのアドレス空間のアドレスが異なると、アプリケーションやオペレーティングシステムはSMBIOS、拡張BIOS、およびVIDEO BIOSにアクセスすることができなくなる。 In the above-described SMBIOS, extended BIOS, and VIDEO BIOS, areas used by the application when the operating system is installed are mapped. Therefore, if the address of the SMBIOS, the extended BIOS, and the VIDEO BIOS is different from the address space on the virtual machine and the address space on the real machine, the application or operating system can access the SMBIOS, the extended BIOS, and the VIDEO BIOS. Can not be.
上述したように、仮想マシンでのアドレス空間と実マシン上でのアドレス空間のアドレスを等化にマッピングすることで、実マシンと同じ内容を仮想マシンから参照、実行することができるようになる。 As described above, by mapping the address space on the virtual machine and the address space on the real machine to equalization, the same contents as the real machine can be referenced and executed from the virtual machine.
また、仮想マシンは、起動時にPCIやレガシーデバイスのプローブ(検索)を行う時に、デバイスへアクセスすると、実マシンのデバイスではなく、図10の仮想デバイスモデルのデバイスへアクセスし、そのモデルのデバイス構成で仮想マシンは起動する。 In addition, when a virtual machine accesses a device when performing a probe (search) for a PCI or a legacy device at startup, the virtual machine accesses the device of the virtual device model in FIG. 10 instead of the device of the real machine, and the device configuration of the model The virtual machine starts up.
コンピュータ10側に仮想マシンモニタ、デバイスマネージャによって仮想マシンに直接マッピング可能なデバイスを割り当て、実メモリ空間と仮想マシン内でのメモリ空間とのアドレス変換をハードウエアで行うことによって、仮想マシンのI/O性能、操作性が飛躍的に向上する。その結果、マルチメディアを扱うアプリケーションやCADなどの高速描画行うの動作が可能となる。
By assigning a virtual machine monitor on the
また、仮想マシンのI/Oエミュレーションが不要になり、エミュレーションが対応していないなどの理由で使用できなかったデバイスが、仮想マシンのデバイスドライバを直接利用して仮想マシンから利用できるようになる。 In addition, I / O emulation of the virtual machine becomes unnecessary, and a device that could not be used because the emulation is not supported can be used from the virtual machine by directly using the device driver of the virtual machine.
ユーザ毎にデバイスプロファイルを用意することによって、使用できるI/Oデバイスが指定でき、OS(仮想マシン)からは認識できるI/Oが限られ、ユーザがデバイスドライバをインストールなどして故意にデバイスを有効しようとしても不可能ため、情報漏洩等の防止に役立つセキュリティ対策ができる。 By preparing a device profile for each user, I / O devices that can be used can be specified, and the I / O that can be recognized from the OS (virtual machine) is limited. Since it is impossible even if it tries to be effective, it is possible to take security measures that help prevent information leakage.
仮想マシンのイメージを別のサーバでロード・起動することにより、ユーザ毎の環境設定がコンピュータのH/Wを変えてもインストール、再設定の作業をせずに利用できる。 By loading and starting the virtual machine image on another server, the environment setting for each user can be used without installation or reconfiguration even if the H / W of the computer is changed.
なお、上記実施形態では、ハードディスクドライブ111に格納されているインストールイメージを用いてシステムを起動する例を説明した。しかし、図12に示すように、ハードディスクドライブとは異なる不揮発性メモリなどの外部メディア241に格納されているインストールイメージ242を用いて、仮想マシン、デバイスマネージャ、仮想マシンマネージャ210を起動するようにしても良い。これにより、HDDに仮想マシンモニタ、デバイスマネージャ等のイメージをインストールする必要はなく、HDDは完全に、プリインストールの内容のままで実行する。
In the above embodiment, the example in which the system is activated using the installation image stored in the
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。 Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the constituent elements without departing from the scope of the invention in the implementation stage. Further, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, you may combine suitably the component covering different embodiment.
200…仮想マシン,210…仮想マシンマネージャ,221…デバイスモデル生成部,220…デバイスマネージャ,230…仮想マシンモニタ,240…サーバ,241…HDD,242…ソフトウェアイメージ,260…アドレス変換ユニット,261…IOメモリ管理ユニット,262…DMARU,270…ホストブリッジ,280…PCIブリッジ。
DESCRIPTION OF
Claims (10)
前記情報処理装置に設けられたI/Oデバイスと、システムBIOS(Basic Input/Output System)と異なるBIOSとをメモリ空間に割り当てる割り当て手段と、
デバイスプロファイルと前記I/Oデバイスの構成とに応じて前記仮想マシンのアドレス空間に対してI/Oデバイスを割り当てるための情報と、前記仮想マシンのアドレス空間上の前記システムBIOSと異なるBIOSのアドレスを前記割り当て手段が割り当てたアドレスと同一のアドレスに割り当てるための情報とを含むデバイスモデルを作成するデバイスマネージャと、
前記仮想マシンが前記割り当てられたI/OデバイスにMMIOアクセスするためのアドレス変換、前記割り当てられたI/Oデバイスと前記仮想マシンとの間でDMA転送を行うためのアドレス変換、および前記仮想マシンが前記システムBIOSと異なるBIOSにアクセスするためのアドレス変換を行うためのアドレス変換回路を有する半導体回路とを具備し、
前記ハイパーバイザは、前記デバイスモデルに基づいて前記仮想マシンのメモリ空間に前記I/Oデバイスを割り当て、
前記仮想マシンは、前記割り当てられたI/Oデバイスに対してMMIOアクセスを行う、前記割り当てられたI/Oデバイスとの間でDMA転送を行う、または前記システムBIOSと異なるBIOSにアクセスする場合、前記アドレス変換回路を用いてアクセスすることを特徴とする情報処理装置。 An information processing apparatus in which a virtual machine operates on a hypervisor,
An allocating means for allocating an I / O device provided in the information processing apparatus and a BIOS different from a system BIOS (Basic Input / Output System) to a memory space;
Information for allocating an I / O device to the address space of the virtual machine according to a device profile and the configuration of the I / O device, and a BIOS address different from the system BIOS on the address space of the virtual machine A device manager that creates a device model including information for assigning to the same address as the address assigned by the assigning means;
Address translation for MMIO access to the assigned I / O device by the virtual machine, Address translation for performing DMA transfer between the assigned I / O device and the virtual machine, and the virtual machine Comprises a semiconductor circuit having an address conversion circuit for performing address conversion for accessing a BIOS different from the system BIOS,
The hypervisor allocates the I / O device to the memory space of the virtual machine based on the device model,
When the virtual machine performs MMIO access to the allocated I / O device, performs DMA transfer with the allocated I / O device, or accesses a BIOS different from the system BIOS, An information processing apparatus that is accessed using the address conversion circuit.
前記情報処理装置は、前記仮想マシンモードと前記非仮想マシンとを切り替えるための手段を更に具備することを特徴とする請求項1に記載の情報処理装置。 The information processing apparatus has a virtual machine mode for operating an installed operating system and application program as the virtual machine, and a non-virtual machine mode for operating the operating system and application program as a non-virtual machine,
The information processing apparatus according to claim 1, further comprising means for switching between the virtual machine mode and the non-virtual machine.
前記情報処理装置に設けられたI/Oデバイスと、システムBIOS(Basic Input/Output System)と異なるBIOSとをメモリ空間に割り当て、
デバイスプロファイルと前記情報処理装置に設けられたI/Oデバイス構成とに応じて、前記仮想マシンのメモリ空間に対してI/Oデバイスを割り当てる情報と、前記仮想マシンのアドレス空間上の前記システムBIOSと異なるBIOSのアドレスを前記割り当て手段が割り当てたアドレスと同一のアドレスに割り当てるための情報とを含むデバイスモデルを作成し、
前記ハイパーバイザが、前記デバイスモデルに基づいて前記仮想マシンのメモリ空間に前記I/Oデバイスおよび前記システムBIOSと異なるBIOSを割り当て、
前記仮想マシンは、前記割り当てられたI/Oデバイスに対してMMIOアクセスを行う、前記割り当てられたI/Oデバイスとの間でDMA転送を行う、または前記システムBIOSと異なるBIOSにアクセスする場合、前記仮想マシンが前記割り当てられたI/OデバイスにMMIOアクセスするためのアドレス変換、および前記割り当てられたI/Oデバイスまたは前記システムBIOSと異なるBIOSと前記仮想マシンとの間でDMA転送を行うためのアドレス変換を行うためのアドレス変換回路を用いて前記アクセスまたは前記DMA転送を行うことを特徴とする情報処理装置の制御方法。 A method for controlling an information processing apparatus in which a virtual machine operates on a hypervisor,
An I / O device provided in the information processing apparatus and a BIOS different from a system BIOS (Basic Input / Output System) are allocated to a memory space;
Information for allocating an I / O device to a memory space of the virtual machine according to a device profile and an I / O device configuration provided in the information processing apparatus, and the system BIOS on the virtual machine address space A device model including information for assigning a different BIOS address to the same address as the address assigned by the assigning means,
The hypervisor allocates a BIOS different from the I / O device and the system BIOS to the memory space of the virtual machine based on the device model,
When the virtual machine performs MMIO access to the allocated I / O device, performs DMA transfer with the allocated I / O device, or accesses a BIOS different from the system BIOS, Address translation for the virtual machine to make MMIO access to the assigned I / O device, and DMA transfer between the assigned I / O device or a BIOS different from the system BIOS and the virtual machine A method for controlling an information processing apparatus, wherein the access or the DMA transfer is performed using an address conversion circuit for performing address conversion.
前記ロードしたイメージを用いて前記仮想マシンを前記ハイパーバイザ上で動作させることを特徴とする請求項6に記載の情報処理装置の制御方法。 Load an image to run the virtual machine on the hypervisor;
The method according to claim 6, wherein the virtual machine is operated on the hypervisor using the loaded image.
システムの起動時に前記仮想マシンモードと前記非仮想マシンとを切り替える
ことを特徴とする請求項6に記載の情報処理装置の制御方法。 The information processing apparatus has a virtual machine mode for operating an installed operating system and application program as the virtual machine, and a non-virtual machine mode for operating the operating system and application program as a non-virtual machine,
The information processing apparatus control method according to claim 6, wherein the virtual machine mode and the non-virtual machine are switched when the system is started.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008304833A JP2010128943A (en) | 2008-11-28 | 2008-11-28 | Information processing apparatus and method of controlling the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008304833A JP2010128943A (en) | 2008-11-28 | 2008-11-28 | Information processing apparatus and method of controlling the same |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010128943A true JP2010128943A (en) | 2010-06-10 |
Family
ID=42329271
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008304833A Pending JP2010128943A (en) | 2008-11-28 | 2008-11-28 | Information processing apparatus and method of controlling the same |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010128943A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014170385A (en) * | 2013-03-04 | 2014-09-18 | Fujitsu Ltd | Virtual machine management device, method and program |
US9558364B2 (en) | 2012-02-23 | 2017-01-31 | Mitsubishi Electric Corporation | Computing machine, access management method, and access management program |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0333937A (en) * | 1989-06-30 | 1991-02-14 | Hitachi Ltd | Display control system in virtual machine |
JPH04205151A (en) * | 1990-11-30 | 1992-07-27 | Hitachi Ltd | Keyboard control system for virtual computer |
JPH0546406A (en) * | 1991-08-19 | 1993-02-26 | Hitachi Ltd | Virtual computer emulation system |
JPH06222998A (en) * | 1993-01-25 | 1994-08-12 | Seiko Epson Corp | Executing method for virtual computer system |
JPH1069393A (en) * | 1996-06-19 | 1998-03-10 | Hokkaido Nippon Denki Software Kk | Virtual computer emulator, virtual computer emulating method, and recording medium where virtual computer emultating program is recorded |
JPH113236A (en) * | 1997-06-12 | 1999-01-06 | Hokkaido Nippon Denki Software Kk | Virtual computer emulation device |
-
2008
- 2008-11-28 JP JP2008304833A patent/JP2010128943A/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0333937A (en) * | 1989-06-30 | 1991-02-14 | Hitachi Ltd | Display control system in virtual machine |
JPH04205151A (en) * | 1990-11-30 | 1992-07-27 | Hitachi Ltd | Keyboard control system for virtual computer |
JPH0546406A (en) * | 1991-08-19 | 1993-02-26 | Hitachi Ltd | Virtual computer emulation system |
JPH06222998A (en) * | 1993-01-25 | 1994-08-12 | Seiko Epson Corp | Executing method for virtual computer system |
JPH1069393A (en) * | 1996-06-19 | 1998-03-10 | Hokkaido Nippon Denki Software Kk | Virtual computer emulator, virtual computer emulating method, and recording medium where virtual computer emultating program is recorded |
JPH113236A (en) * | 1997-06-12 | 1999-01-06 | Hokkaido Nippon Denki Software Kk | Virtual computer emulation device |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558364B2 (en) | 2012-02-23 | 2017-01-31 | Mitsubishi Electric Corporation | Computing machine, access management method, and access management program |
JP2014170385A (en) * | 2013-03-04 | 2014-09-18 | Fujitsu Ltd | Virtual machine management device, method and program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4665040B2 (en) | Computer and access control method | |
JP2009259108A (en) | Information processing apparatus and method of controlling information processing apparatus | |
CN106537340B (en) | Input/output acceleration apparatus and method of virtualized information handling system | |
RU2639693C1 (en) | Method for resource processing, operating system and device | |
US8595723B2 (en) | Method and apparatus for configuring a hypervisor during a downtime state | |
KR102269452B1 (en) | Supporting multiple operating system environments in computing device without contents conversion | |
TWI512479B (en) | Assigning processors to memory mapped configuration | |
US8856781B2 (en) | Method and apparatus for supporting assignment of devices of virtual machines | |
CN107430570B (en) | Additional secure execution environment with SR-IOV and xHCI-IOV | |
US20180336158A1 (en) | Systems and methods for data transfer with coherent and non-coherent bus topologies and attached external memory | |
JP2011100431A (en) | Device and method for controlling virtual machine | |
JP2012009013A (en) | Unified storage device based on partial virtualized machine | |
US10503922B2 (en) | Systems and methods for hardware-based security for inter-container communication | |
US10235195B2 (en) | Systems and methods for discovering private devices coupled to a hardware accelerator | |
JP2011526714A (en) | Memory management for hypervisor loading | |
JP6242502B2 (en) | Virtual computer system control method and virtual computer system | |
US20180335956A1 (en) | Systems and methods for reducing data copies associated with input/output communications in a virtualized storage environment | |
JP4692912B2 (en) | Resource allocation system and resource allocation method | |
US10776145B2 (en) | Systems and methods for traffic monitoring in a virtualized software defined storage architecture | |
JP2010128943A (en) | Information processing apparatus and method of controlling the same | |
US11829772B2 (en) | Heterogeneous compute domains with an embedded operating system in an information handling system | |
CN118312226A (en) | UEFI firmware starting method and system based on RISCV server CPU | |
JP4292220B2 (en) | Virtual computer system | |
JP4548514B2 (en) | Control method of virtual computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100713 |