JP6029550B2 - 計算機の制御方法及び計算機 - Google Patents

計算機の制御方法及び計算機 Download PDF

Info

Publication number
JP6029550B2
JP6029550B2 JP2013150629A JP2013150629A JP6029550B2 JP 6029550 B2 JP6029550 B2 JP 6029550B2 JP 2013150629 A JP2013150629 A JP 2013150629A JP 2013150629 A JP2013150629 A JP 2013150629A JP 6029550 B2 JP6029550 B2 JP 6029550B2
Authority
JP
Japan
Prior art keywords
interrupt
physical
processor
virtual
virtualization
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.)
Expired - Fee Related
Application number
JP2013150629A
Other languages
English (en)
Other versions
JP2015022553A5 (ja
JP2015022553A (ja
Inventor
貴之 今田
貴之 今田
俊臣 森木
俊臣 森木
直也 服部
直也 服部
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 JP2013150629A priority Critical patent/JP6029550B2/ja
Priority to US14/275,183 priority patent/US9697024B2/en
Publication of JP2015022553A publication Critical patent/JP2015022553A/ja
Publication of JP2015022553A5 publication Critical patent/JP2015022553A5/ja
Application granted granted Critical
Publication of JP6029550B2 publication Critical patent/JP6029550B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Stored Programmes (AREA)

Description

本発明は、マルチコアCPUまたはマルチプロセッサ構成を有する計算機で仮想化ソフトウェアを利用する場合の割込み制御技術に関する。
近年、企業で用いられるストレージ装置では、単体のアクセス性能に加えて、低価格、省エネや省スペースといったコストパフォーマンスが重視されている。従来、アクセスI/Fの種類やプロトコルに応じて個別の専用ストレージ装置が用意されてきた。しかし、近年では、SAN(Storage Area Network)とLAN(Local Area Network)の両方のアクセスI/Fを備えた統合ストレージ装置が台頭しており、そのコストパフォーマンスの高さに注目が集まっている。
統合ストレージ装置では、同一の筐体内でSAN I/Fからのブロックアクセス(セクタ単位でのHDDアクセス手法)を処理するブロックOS(Operating System)と、LAN I/Fからのファイルアクセス(ファイル単位でのデータアクセス手法)を処理するファイルOSの両方を同時に稼働させる必要がある。例えば、単一の計算機上で複数OSの同時稼働を実現する手段として、仮想化ソフトウェアが知られている。
仮想化ソフトウェアは主にサーバ装置で使われてきた技術で、単一の計算機上で複数の論理区画を生成する。各論理区画では独立して個別のOSが実行できるため、統合ストレージ装置内に2つの論理区画を生成し、1つの論理区画でブロックOSを、もう一方の論理区画でファイルOSを同時に稼働させ、両者を仮想的な通信路で接続することにより同時稼働が実現出来る。
仮想化ソフトウェアの主な役割は、計算機の物理資源(プロセッサやメモリ、I/Oデバイス)と論理区画との対応付けを管理することである。物理資源の管理のため、仮想化ソフトウェアは論理区画上でのCPU(Central Processing Unit)時間の利用状況や割込みによる通信状況等を常時監視し、論理区画上のゲストOSに割り付けた資源を超えてアクセスした場合に当該アクセスを抑制する、もしくは処理の代替を行う。この処理を全てソフトウェアで行うと多大な性能低下(オーバヘッド)を生じるため、近年のIntel(登録商標)社製CPUでは仮想化ソフトウェアによる物理資源の管理をハードウェアでサポートするための専用機能を備えている(例えば、非特許文献1に記載のVT−x: Virtualization Technology for Xeon)。以下、この種の機能を仮想化支援機能とする。
しかしストレージ装置の場合、特にブロックOSでは、データベースサーバ等からのアクセスを受け付けるため、数10μsec程度の高い応答性能(低アクセスレイテンシ)が求められる。統合ストレージ装置でもSANをメインに用いる顧客では、性能に対する要求レベルが高い傾向にある。さらにファイルOSについても、ビッグデータの利用及び活用の進展に伴って、単位時間当たりのデータ処理要求が増加すると考えられる。
そこで、ストレージ装置に仮想化ソフトウェアを適用する場合、上記仮想化支援機能を最大限に利用し、仮想化に起因するオーバヘッドを最小化させる必要がある(例えば、特許文献1,2)。しかし、今日の仮想化ソフトウェアにおけるオーバヘッドの主要因として、割込みによる通信処理の代替が挙げられる。仮想化ソフトウェアを用いた場合、割込みの伝達時に、仮想化ソフトウェアは(1)物理割込みの発生、(2)物理割込みの受け付け、(3)論理割込みの生成の3ステップを行って論理区画上のOSの割込みハンドラに割込みを通知する。
米国特許出願公開第2011/0161541号明細書 米国特許出願公開第2010/0223611号明細書
Intel 64 and IA-32 Architectures Software Developer’s Manual Volume 3C: System Programming Guide、Part 3、Intel Corp、2013年6月発行、第29−13頁、14頁
しかしながら、上記従来例では、割込みを始めとする仮想化ソフトウェアによる処理が必要なイベント(仮想化イベント)が発生すると、CPUのモードはゲストOSを実行するモード(VMXノンルート)から仮想化ソフトウェアで処理を実行するモード(VMXルート)へ切り換えが発生する。この切り換え処理により、オーバヘッドが発生する。
本発明の課題は、マルチコアCPUまたは複数のCPUおよび仮想化ソフトウェアを有する計算機またはストレージ装置において、仮想化イベントの発生を抑制することで上記オーバヘッドを削減し、仮想化ソフトウェアの管理下のOSに対して高速な割込みを実現することである。
本発明は、仮想化支援機能を有する複数の物理プロセッサと、メモリとを含む計算機の制御方法であって、前記計算機は、前記物理プロセッサのうち仮想化支援機能を無効にした第1のプロセッサグループと、前記物理プロセッサのうち仮想化支援機能を有効にした第2のプロセッサグループと、を含み、第1のOSに前記第1のプロセッサグループを割り当てて、前記第1のOSを起動させる第1のステップと、仮想マシンを稼働させる仮想化部に前記第2のプロセッサグループを割り当て、前記仮想化部を起動させる第2のステップと、前記仮想化部が、前記メモリのうちの所定の領域と、前記第2のプロセッサグループの第2の物理プロセッサを仮想化した仮想プロセッサと、を前記仮想マシンとしての第2のOSに割り当てて、当該第2のOSを起動させる第3のステップと、前記仮想化部が、前記メモリに前記第1のOSと仮想化部が相互に読み書き可能な共有領域を設定する第4のステップと、前記仮想化部が、割込み受信対象の前記第2のOSに割り当てられた前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアの割り込み制御部の識別子と、前記第1のプロセッサグループの第1の物理プロセッサで生成する物理割込みに付加する通知ベクタと、を設定した割込みパス情報を前記共有領域に設定する第5のステップと、前記第1のOSが、前記共有領域から前記割込みパス情報を取得する第6のステップと、前記第1のOSが、前記取得した前記通知ベクタを設定した前記物理割込みを前記第1の物理プロセッサに生成させ、第1の物理プロセッサが、前記割込み受信対象の前記第2のOSに割り当てられた前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアの割り込み制御部の識別子に対応する前記第2のプロセッサグループの第2の物理プロセッサへ前記生成した物理割込みを発行する第7のステップと、
前記第2の物理プロセッサが、前記仮想化部を経由せず、前記第1の物理プロセッサから前記物理割込みを受信すると、前記割込みパス情報に基づいて、前記第2のOSへ論理割込みを発行する第8のステップと、を含む。
したがって、本発明によれば、仮想化支援機能と割込み支援機能を有するプロセッサを利用し、仮想化部(仮想化ソフトウェア、VMM)の非管理下の第1のOSから仮想化部の管理下の第2のOS(ゲストOS)へ高速な割込み伝達を仮想化ソフトウェアの介在無しで実現でき、割込み処理を高速にすることができる。
本発明の実施例を示し、マルチコアプロセッサを有するひとつのハードウェアを用いてファイル機能とブロック機能を統合したストレージ装置の一例を示すブロック図である。 本発明の実施例を示し、各ゲストOSの仮想CPUと物理CPUのLAPIC IDの関係を示すテーブルの一例を示す。 本発明の実施例を示し、仮想PCIデバイスの割込みパスを保持する割込みパス記述テーブルの一例を示す。 本発明の実施例を示し、割込み要求の一例を示す図である。 本発明の実施例を示し、仮想PCIデバイスの割込み情報を保持する割込みパス記述テーブルの初期化処理の一例を示すフローチャートである。 本発明の実施例を示し、VMMがゲストOSの仮想CPUに割り当てる物理CPUを変更するスケジューリング処理の一例を示すフローチャートである。 本発明の実施例を示し、VMMが割込みパス記述テーブルを更新する処理の一例を示すフローチャートである。 本発明の実施例を示し、ブロックOSがファイルOSへ割込みを発生する処理の一例を示すフローチャートである。
以下、本発明の一実施形態を添付図面に基づいて説明する。
図1は、本発明の実施例を示し、マルチコアプロセッサを有するひとつのハードウェア上にファイル機能とブロック機能を統合したストレージ装置の一例を示すブロック図である。
本実施例では、統合ストレージ装置を構成するために仮想化ソフトウェアの非管理下のOSとしてブロックOS130と、仮想化ソフトウェア上のゲストOSとしてファイルサーバOS160(以下、ファイルOSとする)を同一のハードウェア上で独立して稼働させ、前記ファイルOSから発行されたストレージ制御コマンドを前記ブロックOSが処理し、その後、前記ブロックOSが割込みを利用してコマンド完了の通知を前記ファイルOSへ行う例を説明する。
なお本実施例はあくまでも本発明を適用した一例であり、同様にして仮想化ソフトウェアの非管理OSからゲストOSへ割込みを発生させる場合においても本発明を容易に適用可能であることは言うまでもない。
<1. ハードウェア構成>
本発明を実施する統合ストレージ装置のハードウェア構成例について、図1を参照しながら説明する。物理計算機110はハードウェアリソースとしてCPUリソース111と、メモリリソース112と、通信とデータの送受信を行うI/Oリソース117とを有する。
CPUリソース111はマルチプロセッサ構成もしくはマルチコアCPUを利用して複数のCPUコアから構成される。各CPUコアは仮想化支援機能(例えばIntel社 VT-x機能)を有し、仮想化支援機能を有効(VMX ON)に設定したコアの物理CPUコアグループB114と、仮想化支援機能を無効(VMX OFF)に設定したコアの物理CPUコアグループA113と、に分類される。
ここで、各CPUリソース111の物理CPUコアは、仮想化支援機能が有効(以下では仮想化ONモード)または無効(仮想化OFF)モードの区別を有する。さらに仮想化ONモードでは前記非特許文献1に記載されているように、仮想化支援機能の割込み支援機能(前記非特許文献1ではPosted Interrupt Processing)が有効になる。以下実施例では、Posted Interrupt Processingの利用を想定する。
メモリリソース112は、ブロックOS130に割り当てられるメモリグループA115aおよび仮想化ソフトウェアとしてのVMM(Virtual Machine Monitor)140に割り当てられるメモリグループB115bから構成される。メモリグループA115aは物理CPUコアグループA113からアクセスされる。メモリグループB115bは物理CPUコアグループB114からアクセスされ、さらにメモリグループB115bの一部はファイルOS160から利用される。また、メモリグループB115bのうちVMM140に割り当てられるメモリ領域の一部は、ブロックOS130から直接アクセス可能なる共有メモリ領域116を含む。
I/Oリソース117は、ネットワーク(図示省略)を介して計算機(図示省略)と通信を行うNIC(Network Interface Card)118と、図示しないSAN(Storage Area Network)を介してデータやプログラムを格納するストレージデバイス120とデータの送受信を行うHBA(Host Bus Adapter)119と、を含む。なお、NIC118及びHBA119は、PCI(Peripheral Component Interfaces)仕様に基づくI/Oデバイスである。
<2.ソフトウェア構成>
次に、物理計算機110上で実行されるソフトウェアの構成の主要部について、図1を参照しながら詳述する。
物理計算機110上では、ブロックOS130と、仮想化ソフトウェアとしてのVMM140がシステムソフトウェアとして独立してそれぞれ稼働する。なお、ブロックOS130はSAN等を介してHDD等をセクタ単位でアクセスするOSである。また、ファイル(ファイルサーバ)OS160は、LANに接続されてファイル単位でデータを管理するOSである。
ブロックOS130は、物理計算機110のハードウェアを直接制御できるネイティヴパーティション101で稼働し、ファイルOS160は、VMM140が管理するゲストパーティション102で稼働する。
ブロックOS130は、ストレージ制御コマンド192を実行するコマンド処理部131と、物理CPUコア(またはプロセッサコア)間の割込みを制御するIPI(Inter Processor Interrupt)制御部132とを有する。
コマンド処理部131は、ファイルOS160から送られるストレージ制御コマンド192をブロックOS130が処理するためのオブジェクトである。コマンド処理部131は、受け付けたストレージ制御コマンド192に応じてHBA119を介してストレージデバイス120にアクセスして受け付けたコマンドを実行する。コマンド処理部131は、ストレージ制御コマンド192に対する実行結果を取得してから、ファイルOS160に対してコマンド完了通知のための割込み要求133をIPI制御部132に依頼する。なお、本実施例では、ブロックOS130を実行する物理CPUコアグループA113のうちのひとつの物理CPUコアから、VMM140を実行する物理CPUコアグループB114のうちのひとつの物理CPUコアへの割込みとなるため、IPIを用いる。なお、以下の説明では、物理CPUコアグループA113に所属するコアを物理CPUコアAとし、物理CPUコアグループB114に所属するコアを物理CPUコアBとする。
IPI制御部132は、コマンド処理部131からの割込み要求133の転送対象となるファイルOS160に割り当てられた仮想CPU151に対して、物理IPI195を発行する。なお、コマンド処理部131がIPI制御部132の機能を有する構成であっても構わない。
VMM140は、物理計算機110から割り当てられた物理リソースを利用して仮想計算機150を生成する。仮想計算機150はVMM140により複数生成することができ、全ての仮想計算機150はゲストパーティション102に属する。仮想計算機150が有する仮想CPU151の実行ステートは、VMM140が保持する仮想マシン管理情報であるVMCS(Virtual Machine Control Structure)145により保持される。なお、VMCS145の詳細については、上記非特許文献1に記載されているとおりである。
仮想計算機150は1つ以上の仮想CPU151と、ゲストメモリ152と、割込み対象となる仮想PCIデバイス153とから構成され、その他必要に応じて他デバイスを保持してもよい。
仮想CPU151は、VMM140によって物理CPUコアグループB114のうちの1以上の物理CPUコアBが割り当てられる。ゲストメモリ152は、VMM140によってメモリグループB115bの一部が割り当てられ、ゲストOSは仮想計算機150上の物理メモリであるかのように扱うことができる。仮想PCIデバイス153は、PCI仕様に基づくソフトウェアで実装されたHBA119として機能する仮想デバイスであり、PCI Local Bus Specification Revision 3.0(PCI SIG発行、2002年8月12日)に記載のPCI仕様に基づくPCIコンフィグ空間154と、MSI−X(Message Signal Interrupt-X)領域155を有する。
MSI−X領域155は、割込みベクタを通知するための(Guest Vector)番号156および仮想CPU LAPIC(Local Advanced Programmable Interrupt Controller)ID157を保持し、必要であればMSI−X仕様に基づきその他のデータを有してもよい。
また、仮想PCIデバイス153が保持するデータはゲストメモリ152上に展開され、VMM140によりデータ更新がトラップされる。本実施例はストレージデバイス120を対象としているためHBA119を仮想PCIデバイス153とする例を示すが、本発明はNIC118等の他種の仮想PCIデバイスにも応用可能である。
ファイルOS160は仮想計算機150上で稼働するオペレーティングシステムであり、仮想PCIデバイスドライバ161を有し、仮想PCIデバイスドライバ161を利用して仮想PCIデバイス153を制御する。本実施例において、仮想PCIデバイス153は、VMM140が物理的なPCIデバイスであるHBA119を仮想化したデバイスである。
またファイルOS160は、仮想CPU151への仮想割込み(または論理割込み)197として受信されるブロックOS130からの制御完了割込みを契機として、ブロックOS130へ送信したストレージ制御コマンド発行192に対するストレージ制御コマンドの実行結果を受信する。
さらにVMM140は、仮想−物理CPU関係テーブル141を有し、仮想計算機150に割り当てた物理CPUコアグループB114の物理CPUコアBと、仮想CPU151との関係を管理する。
また、VMM140は割込みパス記述テーブル142を有し、仮想計算機150の割込み情報を管理する。割込みパス記述テーブル142は、後述するように、ファイルOS160が使用する仮想及び物理リソースに関する情報を格納する情報読み出し領域143と、ブロックOS130がCPUリソース111による割込み支援を利用するために必要な情報を書き出す情報書き出し領域144を含む。
仮想−物理CPU関係テーブル141および割込みパス記述テーブル142は、メモリグループB115b上に保持されるが、特に割込みパス記述テーブル142はブロックOS130からアクセス出来るよう、共有メモリ領域116に保持される。
また、物理計算機110の起動は、まず、物理CPUコアグループA113がブロックOS130をメモリグループA115aにロードして、物理CPUコアグループA113がブロックOS130を起動する。次に、ブロックOS130がメモリグループB115bにVMM140をロードして、物理CPUコアグループB114をVMM140に割り当てて起動させる。そして、VMM140がメモリグループB115bの一部と、物理CPUコアグループB114の一部を仮想計算機150に割り当てて、ゲストメモリ152と仮想CPU151でファイルOS160を起動させる。
そして、VMM140は、VMM140とブロックOS130が相互に読み書き可能な共有メモリ領域116をメモリグループB115bの一部に設定して、この共有メモリ領域116には、ファイルOS160への論理割込みと物理割込みの対応関係を含む割込みパス記述テーブル(割込みパス情報)142を配置する。
図2は、VMM140が保持する仮想−物理CPU関係テーブル141の一例である。仮想−物理CPU関係テーブル141は、VMM140が管理する割込み関係に特化したCPUスケジューリング情報の一部である。
仮想−物理CPU関係テーブル141は、ファイルOS160が稼働するゲストパーティション102の識別子を格納するパーティション番号210と、ゲストパーティション102が利用する仮想CPU151のLAPIC ID220と、当該仮想CPU151に割り当てられた物理CPUコアグループB114の物理CPUコアBのLAPIC ID230とを含む。
図示の例では、ファイルOS160が稼働するゲストパーティション番号210=「0」には、LAPICのIDが「0」〜「3」の4つの仮想CPU151が割り当てられる。そして、これらの仮想CPU151には、物理CPUコアグループB114のLAPICのIDが「1」〜「4」の物理CPUコアBが割り当てられていることを示す。なお、ゲストパーティション番号210=「1」は、図1では表示していないゲストパーティション番号である。
なお、物理CPUコアLAPIC ID230及び仮想CPU LAPIC ID220は、VMM140が所定のタイミング(例えば、ポーリング等)で取得した値である。また、物理CPUコアLAPIC ID230は、物理CPUコアBの割り込み制御部の識別子であり、仮想CPU LAPIC ID220は、仮想CPU151の割り込み制御部の識別子である。
図3は、VMM140がメモリグループB115bの共有メモリ領域116に保持する割込みパス記述テーブル142の一例である。
割込みパス記述テーブル142は、情報読み出し領域143と、情報書き出し領域144とを含む。情報読み出し領域143は、ファイルOS160が稼働するゲストパーティション102の識別子を格納するゲストパーティション番号310と、ファイルOS160が利用する仮想PCIデバイス153の識別子を格納する仮想PCIデバイス番号320と、各仮想PCIデバイスに関連づけられた物理CPUコアBのLAPICの識別子を格納するLAPIC ID330と、通知ベクタ(Notification Vector)番号331と、ゲストベクタ(Guest Vector)番号332と、物理CPUコアグループB114内の各物理CPUコアBのLAPIC ID340と、物理CPUコアグループB114内の各物理CPUコアBが有するPID(Posted-Interrupt Descriptor)350と、PID350が保持されているメモリアドレスを格納するPIDアドレス360とを含む。なお、通知ベクタ番号331とPIDアドレス360については、前記非特許文献1の第29−13頁、14頁に記載されているとおりであり、VMCS145に含まれる値のひとつである。
通知ベクタ番号331は、前記非特許文献1の第24−13頁に記載されるとおり、VMCS145に含まれる値のひとつであり、物理割込み(物理IPI195)の通知先の物理CPUコアBで、仮想CPU151に対する仮想割込み197(図1参照)を発生させるための情報を含む。
Posted Interruptでは、物理IPI195に通知ベクタを付加することで、物理IPI195を受信した物理CPUコアBに、PID350を参照させて、仮想CPU151に対する仮想割込み197に、論理割り込み先を指定するPIR(Posted-Interrupt Requests)ビットマップ370の値の割り込みベクタを付加させる。
ゲストベクタ番号332は、上述したPCI規格のMSI−Xに準拠するものでファイルOS160が仮想PCIデバイス153にアクセスしたときに、VMM140がフックすること等により取得した値である。ゲストベクタ番号332には、図1に示した仮想PCIデバイス153のゲストベクタ番号156の値がVMM140によって設定される。
ここで、Posted Interruptの概要は、インテル社製のプロセッサに搭載された仮想化環境用のプロセッサ間割込みの支援機能で、前記非特許文献1に記載のVT−x: Virtualization Technology for Xeonを拡張した割込み支援機能である。Posted Interruptは、同一の仮想化ソフトウェア上で複数のゲストOSが稼働している状態で、ゲストOSから他のゲストOSへ割込みをかける際にVMM140(仮想化ソフトウェア)を経由せずに、割込みを高速に通知する仮想化環境の割込み支援機能である。
Posted Interruptを受けた物理CPUコアBは、対応する仮想CPU151に対して情報読み出し領域143のゲストベクタ番号332で指定されたゲストOS(ファイルOS160)割込みハンドラを起動させる。
これにより物理IPI195を受信した物理CPUコアBは、従来例のように仮想化ソフトウェア(VMM140)で割込みハンドラを起動することなく、直接仮想CPU151からゲストOS(ファイルOS160)の割込みハンドラを起動させることができ、仮想化環境における割込み処理を高速化するものである。
また、情報書き出し領域144は、IPI制御部132が物理CPUによる割込み支援機能を利用するために必要な情報を書き出す領域であり、PID350を含む。PID350は、PIRビットマップ(以下、割り込み要求ビットマップ)370と、発行済み通知(図中ON=Outstanding Notification)ビット371の情報を含む。なお、PIR(割込み要求)ビットマップ370の詳細な構成については、上述の非特許文献1の第29−13頁、14頁に記載されている。
割り込み要求ビットマップ370は、ファイルOS160の論理割り込み先を指定する割り込みベクタを含む。また、発行済み通知ビット371は、物理IPI195を生成したことを示し、物理IPI195の生成の際に設定される。
上記のように、情報読み出し領域143と、情報書き出し領域144を含む割込みパス記述テーブル142を、VMM140とブロックOS130が相互に読み書き可能な共有メモリ領域116に格納し、Posted Interruptに関する情報を格納しておく。そして、ブロックOS130がパス記述テーブル142を利用することで、VMM140の管理外のブロックOS130から、VMM140の管理下のゲストOSであるファイルOS160に直接プロセッサ間割込み(IPI)を通知することができるのである。
なお、ゲストパーティション番号310と、仮想PCIデバイス番号320と、物理CPUコアLAPIC ID330と、通知ベクタ番号331は、VMM140が設定した値である。また、ゲストベクタ番号332は、ゲストOS(ファイルOS160)が設定した値である。
図4は、ブロックOS130のコマンド処理部131が生成する割込み要求133の一例である。割込み要求133は、コマンドがどの仮想PCIデバイスに対応するものなのかを一意に区別するため、ファイルOS160が実行されているゲストパーティションの識別子を格納するパーティション番号410と、ファイルOS160に割り当てられている仮想PCIデバイス153の識別子を格納する仮想PCIデバイス番号420とを含む。
図示の例では、ゲストパーティション番号が0で、仮想PCIデバイス番号が1に対応する仮想CPU151への割込み要求133の例を示す。
<3.VMMによる割込み情報の初期化および更新処理>
次に、VMM140が行う割込みパス記述テーブル142の初期化および更新処理の一例について、以下フローチャートを参照しながら説明する。
図5は、仮想計算機150がVMM140によって生成される際に、VMM140による仮想PCIデバイス153の構成後に割込みパス記述テーブル142を初期化する処理の一例を示すフローチャートである。この処理は、仮想計算機150が生成されるときに実行される。
VMM140は、仮想計算機150の生成時に割込みパス記述テーブル142を保持可能なデータ領域を共有メモリ領域116上に確保する(S510)。すなわち、VMM140は、図3に示した情報読み出し領域143と、情報書き出し領域144と、PID350を格納する領域を、メモリグループB115bの共有メモリ領域116に確保する。
続けて、VMM140は、仮想計算機150に割り当てる仮想CPU151に対応する物理CPUコアグループB114内の物理CPUコアBの通知ベクタ番号(当該仮想PCIデバイスへの割込みに対する識別子となる任意値)を、割込みパス記述テーブル142の通知ベクタ番号331へ設定する(S520)。
そして、VMM140は、仮想計算機150が有する仮想CPU151に利用される物理CPUコアグループB114内の物理CPUコアBのLAPIC ID340に対応するPID350のメモリアドレスをPIDアドレス360へ登録する(S530)。
次に、VMM140は、情報読み出し領域143の物理CPUコアLAPIC ID330にリストされた物理CPUコアLAPIC IDを、物理CPUコアLAPIC ID340中で特定する(S540)。
その後、ステップS540で特定した物理CPUコアLAPIC IDに対応するPIDアドレス360を、VMCS145へ設定する(S550)。
最後に、ステップS520で設定した通知ベクタ番号値をVMCS145へ設定する(S560)。
VMM140は、上記ステップS510からステップS550の処理を、仮想計算機150に割り当てられた仮想PCIデバイス153の数の分だけ実施する。
図6は、VMM140が仮想計算機150の仮想CPU151のスケジューリングを行う際に、VMM140による割込みパス記述テーブル142を更新する処理の一例を示すフローチャートである。この処理は、仮想CPU151に割り当てる物理CPUコアBを変更する際に実行される。または、VMM140が、仮想計算機150の生成、停止などを行うときに実行される。
VMM140は、仮想−物理CPU関係テーブル141を参照し、仮想−物理CPU関係テーブル141の仮想CPUコアLAPIC ID220に対応する物理CPUコアLAPIC ID230が変更されたか否かを判定する(S610)。
変更された場合、VMM140は、変更後の物理CPUコアLAPIC ID230を、情報読み出し領域143内の物理CPUコアLAPIC ID330に再設定し(S611)、ステップS611で更新した物理CPUコア LAPIC IDに対応するPIDアドレス360をVMCS145へ再設定する(S612)。
以上の処理により、仮想CPUコアLAPIC ID220に割り当てられた物理CPUコアLAPIC ID230が変更されると、VMM140は、割込みパス記述テーブル142の情報読み出し領域143と、VMCS145の値を更新する。
<4.ファイルOSによる割込み情報変更時の処理>
図7は、ファイルOS160の起動、もしくはファイルOS160により実施される仮想PCIデバイス153に対するMSI−X155のデータ更新191に基づいて、VMM140が割込みパス記述テーブル142を更新する処理の一例を示すフローチャートである。本フローチャートは、ファイルOS160によるMSI−X領域155へのアクセスをVMM140がトラップしたことを契機に、VMM140によって実施される。
VMM140は、MSI−X領域155のデータ更新191が発生した場合、MSI−X領域155中の割込みベクタを示すゲストベクタ番号156が変更されたかを否かを、情報読み出し領域143中のゲストベクタ番号332とゲストベクタ番号156の比較で判定する(S710)。ゲストベクタ番号332が変更された場合は、ステップS711へ進んで、VMM140は、割込みパス記述テーブル142の情報読み出し領域143でゲストベクタ番号332を更新する。
続けて、VMM140は、MSI−X領域155中の仮想CPU LAPIC ID157が変更されたか否かを判定する(S720)。本判定では、MSI−X領域155中の仮想CPU LAPIC ID157に対応する物理CPU LAPIC ID230の値を仮想−物理CPU関係テーブル141から取得する。そして、VMM140は取得した物理CPU LAPIC ID230が情報読み出し領域143中の物理CPUコアLAPIC ID330と等しいか否かを判定する。
VMM140は、仮想CPU LAPIC ID157が変更されたと判定すると、ステップS721へ進む。一方、変更が無い場合には当該処理を終了する。
変更された場合、VMM140は変化前後の仮想−物理CPU関係テーブル141および割込みパス記述テーブル142を比較して、変更された仮想CPU LAPIC ID157へ仮想割込み197を発生させる仮想PCIデバイス番号320を算出する(S721)。
そして、VMM140は仮想−物理CPU関係テーブル141から変更後の仮想CPU LAPIC ID220に対応する物理CPUコア LAPIC ID230を算出する(S722)。
その後、VMM140はステップS721にて算出した仮想PCIデバイス番号320に対応する物理CPUコア LAPIC ID 330を、ステップS722にて算出した物理CPUコア LAPIC ID230に更新し(S723)、ステップS722にて算出した物理CPUコア LAPIC ID230に対応するPIDアドレス360をVMCS145へ再設定する(S724)。
以上の処理により、MSI−X領域155のデータ更新191が発生すると、VMM140は、仮想PCIデバイス153と仮想−物理CPU関係テーブル141を読み込んで、割込みパス記述テーブル142とVMCS145を変更後の値に更新する。
<5.コマンド処理部からの割込発生処理>
図8は、コマンド処理部131による割込み要求後に、ブロックOS130で行われる割込み発生処理の一例を示すフローチャートである。
コマンド処理部131からの割込み要求133を受け付けたIPI制御部132は、VMM140が共有メモリ領域116に設定した共有メモリ領域116の割込みパス記述テーブル142の情報読み出し領域143を参照し、図4で示した割込み要求133のゲストパーティション番号410と仮想PCIデバイス番号420が、共有メモリ領域116の情報読み出し領域143においてゲストパーティション番号310と仮想PCIデバイス番号320が一致する組み合わせを選択する。IPI制御部132は、選択したゲストパーティション番号310と仮想PCIデバイス番号320の組み合わせに対応する物理CPU LAPIC ID330と、ゲストベクタ番号332を取得する(S810)。
続けて、ステップS810にて取得したゲストベクタ番号332の値をxとするとき、IPI制御部132は、ステップS810にて取得した物理CPUコア LAPIC ID330に対応する書き出し情報領域134のPIRビットマップ370のxビット目をenable(例えば、1)にする(S820)。すなわち、IPI制御部132は、VMM140が共有メモリ領域116に設定した情報読み出し領域143の物理CPUコアLAPIC ID330とゲストベクタ番号332を読み込み、図3で示したグループB物理CPUコアLAPIC ID340に対応するPIDアドレス360を取得する。そしてIPI制御部132は、取得したPIDアドレス360に対応するPID350のPIRビットマップ(割込み要求ビットマップ)370の0〜255ビットのうち、ゲストベクタ番号332の値をxとすると、xビット目をenableにセットする。このxビットで仮想CPU151に割込みベクタを通知する。
続けて、IPI制御部132は、S810にて取得した物理CPUコア LAPIC ID320に対応する情報書き出し領域144領域内の発行済み通知(図中ON)ビット371がenable(有効)であるか否かを判定する(S830)。
発行済み通知ビット371が「1」の場合は有効であることを示し、この時点で割込み要求133の元となったストレージ制御コマンド発行192に対するコマンド処理結果がファイルOS160に通知される事が期待でき、IPI制御部132は何もせず処理はここで終了する。つまり、発行済み通知ビット371が有効のときには、すでに割込みをファイルOS160に通知したことを意味する。これにより、ブロックOS130から複数のコマンドが完了したときの割込み処理回数削減でき、結果としてファイルOS160での割込みを受け付ける処理も削減されるためスループットが向上する。
一方、発行済み通知ビット371が「0」の場合は無効であり、IPI制御部132は発行済み通知ビット371をEnable(例えば、1)に設定する(S840)。続けて、IPI制御部132は、ステップS810にて取得した物理CPUコア LAPIC ID330に対応する通知ベクタ番号331を、割込みパス記述テーブル142内の情報読み出し領域143から検索して取得する(S850)。
次に、IPI制御部132は、上記ステップS850にて取得した通知ベクタ番号331の値を物理CPUコアグループA113に所属する物理CPUコアAの図示しないICR(Interrupt Command Register)に設定する(S851)。
続けて、IPI制御部132は、S850にて通知ベクタ番号331の値をICRに設定した物理CPUコアAに物理IPI195(図1参照)を発行させ、情報読み出し領域143の物理CPUコアLAPIC ID330を割込みの宛先とする(S860)。
以上のS810からS860までの処理により、S860にて発行された物理IPI195は、S810にて取得した物理CPUコア LAPIC ID330を持つ物理CPUコアBに通知される。
続いて、物理IPI195を受信した物理CPUコアBが、情報書き出し領域144中のPID350を参照するPID取得196(図1参照)を実施する。このPID取得196は、物理IPI195を受信した物理CPUコアBが、自身のLAPIC ID(グループB物理CPUコアLAPIC ID340)に対応するPIDアドレス360(VMCS145に登録済み)のPID350から割込み要求ビットマップ370を読み込んでゲストベクタ番号332を取得する。
そして、ゲストベクタ番号332を取得した物理CPUコアBは、仮想−物理CPU関係テーブル141の物理CPUコア LAPIC ID230に対応する仮想CPU LAPIC ID220を持つ仮想CPU151に対して、割込みベクタとしてのゲストベクタ番号332を伴う仮想割込み197を発行する。
以上のように、ファイルOS160がストレージ制御コマンド192(図1参照)を発行すると、仮想計算機150はブロックOS130にストレージ制御コマンド192を通知する。ブロックOS130は、コマンド処理部131でストレージ制御コマンド192を実行し、ストレージデバイス120へのアクセス結果を取得する。コマンド処理部131は、アクセス結果をファイルOS160に応答するため、IPI制御部132に割込み要求133を発行する。
IPI制御部132は、ファイルOS160に割り当てられた仮想PCIデバイス153に対応する物理CPUコアLAPIC ID330と、割込みベクタに対応するゲストベクタ番号332を取得する。そして、IPI制御部132は、共有メモリ領域116に配置された割込みパス記述テーブル142の情報書き出し領域144のPID350に対して、物理CPUコアLAPIC ID330に対応するPID350の割込み要求ビットマップ370に、ゲストベクタ番号332の値をセットしておく。
次に、IPI制御部132は、情報読み出し領域143から物理CPUコアLAPIC ID330に対応する通知ベクタ(NV)番号331を読み込んで、物理CPUコアグループA133の物理CPUコアAのICRにセットする。この物理CPUコアAで物理IPI195を発行し、物理CPUコアLAPIC ID330に対応する物理CPUコアグループB114の物理CPUコアBに物理IPI195を通知する。
物理CPUコアBは、物理IPI195に含まれる通知ベクタ番号331に基づいて、物理CPUコアLAPIC ID330に対応するPID350から、割込み要求ビットマップ370を取得し、割込み要求ビットマップ370の値に基づく割込みベクタを含む仮想割込み197を生成し、仮想CPU151に通知する。仮想CPU151で実行されるファイルOS160は、割込みベクタに応じた割込みハンドラを起動してブロックOS130からの応答を取得し、一連の処理を完了する。
<6.まとめ>
以上の構成及び処理により本実施例では、ネイティヴパーティション101に所属するブロックOS130を実行する仮想化OFFモードの物理CPUコアAからプロセッサ間割込み195を発行し、割込み支援機能に対応した物理CPUコアグループB114の一部が割り当てられたゲストパーティション102上のファイルOS160に対して、VMM140のソフトウェア処理無しに高速な割込み伝達を実現出来る。
なお、本発明において説明した計算機等の構成、処理部及び処理手段等は、それらの一部又は全部を、専用のハードウェアによって実現してもよい。
また、上記実施例では、マルチコアのCPUを用いる例を示したが、物理プロセッサとしてはホモジニアスに限定されるものではなく、ヘテロジニアスのプロセッサを用いてもよい。
また、本実施例で例示した種々のソフトウェアは、電磁的、電子的及び光学式等の種々の記録媒体(例えば、非一時的な記憶媒体)に格納可能であり、インターネット等の通信網を通じて、コンピュータにダウンロード可能である。
また、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。
101 ネイティヴパーティション
102 ゲストパーティション
110 物理計算機
111 CPUリソース
112 メモリリソース
113 物理CPUコアグループA
114 物理CPUコアグループB
115a メモリグループA
115b メモリグループB
116 共有メモリ領域
130 ブロックOS
131 コマンド処理部
132 IPI制御部
133 割込み要求
140 VMM(仮想化ソフトウェア)
141 仮想−物理CPU関係テーブル
142 割込みパス記述テーブル
143 情報読み出し領域
144 情報書き出し領域
145 VMCS
150 仮想計算機
151 仮想CPU
152 ゲストメモリ
153 仮想PCIデバイス
154 PCIコンフィグ空間
155 MSI−X領域
156 Guest Vector番号
157 仮想CPU LAPIC ID
160 ファイルOS
161 仮想PCIデバイスドライバ
191 MSI−Xデータ更新
192 ストレージ制御コマンド発行
193 割込みパス記述テーブル取得
194 割込みパス記述テーブル設定
195 物理IPI
196 Posted−Interrupt Descriptor(PID)取得
197 仮想割込み
210 ゲストパーティション番号
220 仮想CPU LAPIC ID
230 物理CPUコア LAPIC ID
310 ゲストパーティション番号
320 仮想PCIデバイス番号
330 物理CPUコア LAPIC ID
331 Notification Vector番号
332 Guest Vector番号
340 グループB物理CPUコア LAPIC ID
350 Posted−Interrupt Descriptor(PID)
360 PIDアドレス
370 Posted−Interrupt Requestsビットマップ
371 Outstanding Notificationビット
410 ゲストパーティション番号
420 仮想デバイス番号

Claims (13)

  1. 仮想化支援機能を有する複数の物理プロセッサと、メモリとを含む計算機の制御方法であって、
    前記計算機は、
    前記物理プロセッサのうち仮想化支援機能を無効にした第1のプロセッサグループと、前記物理プロセッサのうち仮想化支援機能を有効にした第2のプロセッサグループと、を含み、
    第1のOSに前記第1のプロセッサグループを割り当てて、前記第1のOSを起動させる第1のステップと、
    仮想マシンを稼働させる仮想化部に前記第2のプロセッサグループを割り当て、前記仮想化部を起動させる第2のステップと、
    前記仮想化部が、前記メモリのうちの所定の領域と、前記第2のプロセッサグループの第2の物理プロセッサを仮想化した仮想プロセッサと、を前記仮想マシンとしての第2のOSに割り当てて、当該第2のOSを起動させる第3のステップと、
    前記仮想化部が、前記メモリに前記第1のOSと仮想化部が相互に読み書き可能な共有領域を設定する第4のステップと、
    前記仮想化部が、割込み受信対象の前記第2のOSに割り当てられた前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアの割り込み制御部の識別子と、前記第1のプロセッサグループの第1の物理プロセッサで生成する物理割込みに付加する通知ベクタと、を設定した割込みパス情報を前記共有領域に設定する第5のステップと、
    前記第1のOSが、前記共有領域から前記割込みパス情報を取得する第6のステップと、
    前記第1のOSが、前記取得した前記通知ベクタを設定した前記物理割込みを前記第1の物理プロセッサに生成させ、第1の物理プロセッサが、前記割込み受信対象の前記第2のOSに割り当てられた前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアの割り込み制御部の識別子に対応する前記第2のプロセッサグループの第2の物理プロセッサへ前記生成した物理割込みを発行する第7のステップと、
    前記第2の物理プロセッサが、前記仮想化部を経由せず、前記第1の物理プロセッサから前記物理割込みを受信すると、前記割込みパス情報に基づいて、前記第2のOSへ論理割込みを発行する第8のステップと、
    を含むことを特徴とする計算機の制御方法。
  2. 請求項1に記載の計算機の制御方法であって、
    前記第3のステップは、
    記仮想化部が、前記第2のOSが利用する仮想プロセッサ情報を前記仮想化部の仮想マシン管理情報の一部として設定し、
    前記第5のステップは、
    前記仮想化部が、込み受信対象の前記第2のOSの割り込みハンドラを特定するゲストベクタと、を前記割込みパス情報に設定し、
    前記第6のステップは、
    前記第1のOSが、前記割込みパス情報のうち、前記割込み受信対象の前記第2のOSに割り当てられた前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアの割り込み制御部の識別子と、割込み受信対象の前記第2のOSの割り込みハンドラを特定するゲストベクタと、を取得することを特徴とする計算機の制御方法。
  3. 請求項2に記載の計算機の制御方法であって、
    前記第5のステップは、 前記仮想化部が、記ゲストベクタに対応する割り込み要求ビットマップと、を前記割込みパス情報に設定し、
    前記第7のステップは、
    前記第1のOSが、前記割込みパス情報に、物理割込みを発行したことを示す発行済み通知ビットを有効化することを特徴とする計算機の制御方法。
  4. 請求項3に記載の計算機の制御方法であって、
    前記第5のステップは、
    前記第2のOSに割り当てられた前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアに前記第8のステップを実施させるため、前記通知ベクタと、前記割り込み要求ビットマップおよび前記発行済み通知ビットとを保持するメモリ領域のメモリアドレスと、を前記仮想化部の仮想マシン管理情報へ設定ることを特徴とする計算機の制御方法。
  5. 請求項3または請求項4に記載の計算機の制御方法であって、
    前記物理プロセッサは、割り込み支援機能として、論理割込み発生に仮想化ソフトウェアの処理を省く機能を有することを特徴とする計算機の制御方法。
  6. 請求項1に記載の計算機の制御方法であって、
    前記仮想化部が、前記第2のプロセッサグループの物理プロセッサと前記第2のOSの関係を変更する第9のステップと、
    前記仮想化部が、前記変更された前記第2のプロセッサグループの物理プロセッサと前記第2のOSの関係に基づいて、前記第2のOSへの論理割込みと物理割込みの対応関係を含む割込みパス情報を更新する第10のステップと、
    をさらに含むことを特徴とする計算機の制御方法。
  7. 請求項1に記載の計算機の制御方法であって、
    前記割込みパス情報に含まれる、前記第2のOSへの論理割込みと物理割込みの対応関係は、
    前記第2のOSが、MSI−X領域に設定する仮想プロセッサの割込み制御部の識別子と、
    前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアの割り込み制御部の識別子と、
    から構成され、
    かつ、前記MSI−X領域を前記第2のOSに割り当てられたメモリ領域に配置し、
    前記仮想化部が、前記MSI−X領域へのアクセスをトラップして前記対応関係の変更を検知することを特徴とする計算機の制御方法。
  8. 仮想化支援機能を有する複数の物理プロセッサと、メモリとを含む計算機であって、
    前記物理プロセッサのうち仮想化支援機能を無効にした第1のプロセッサグループと、
    前記物理プロセッサのうち仮想化支援機能を有効にした第2のプロセッサグループと、
    前記第1のプロセッサグループを割り当てる第1のOSと、
    前記第2のプロセッサグループを割り当てて、仮想マシンとしての第2のOSを稼働させる仮想化部と、を有し、
    前記仮想化部は、
    前記第2のOSが利用する仮想プロセッサ情報を前記仮想化部の仮想マシン管理情報の一部として設定し、
    前記メモリのうちの所定の領域と、前記第2のプロセッサグループの第2の物理プロセッサを仮想化した仮想プロセッサとを第2のOSに仮想プロセッサとして割り当てて、当該第2のOSを起動して仮想マシンとして提供し、
    前記メモリに前記第1のOSと仮想化部が相互に読み書き可能な共有領域を設定し、当該共有領域には割込み受信対象の前記第2のOSに割り当てられた前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアの割り込み制御部の識別子と、前記第1のプロセッサグループの第1の物理プロセッサで生成する物理割込みに付加する通知ベクタとを含む割込みパス情報を設定し、
    前記第1のOSが、
    前記共有領域から前記割込みパス情報を取得して、前記取得した前記通知ベクタを設定した前記物理割込みを前記第1の物理プロセッサに生成させ、第1の物理プロセッサが、前記割込み受信対象の前記第2のOSに割り当てられた前記仮想プロセッサの割込み制御部の識別子に対応する物理プロセッサコアの割り込み制御部の識別子に対応する前記第2のプロセッサグループの第2の物理プロセッサへ前記生成した物理割込みを発行し、
    前記第2の物理プロセッサが、前記仮想化部を経由せず、前記第1の物理プロセッサから前記物理割込みを受信すると、前記割込みパス情報に基づいて、前記第2のOSへ論理割込みを発行することを特徴とする計算機。
  9. 請求項8に記載の計算機であって、
    前記仮想化部は、
    込み受信対象の前記第2のOSの割り込みハンドラを特定するゲストベクタと、を前記割込みパス情報に設定し、
    前記第1のOSは、
    前記割込みパス情報のうち、込み受信対象の前記第2のOSの割り込みハンドラを特定するゲストベクタと、を取得することを特徴とする計算機。
  10. 請求項9に記載の計算機であって、
    前記仮想化部は、
    前記ゲストベクタに対応する割り込み要求ビットマップと、を前記割込みパス情報に設定し、
    前記第1のOSは、
    前記割込みパス情報に、物理割込みを発行したことを示す発行済み通知ビットを有効化することを特徴とする計算機。
  11. 請求項10に記載の計算機であって、
    前記仮想化部は、
    前記通知ベクタと、前記割り込み要求ビットマップおよび前記発行済み通知ビットとを保持するメモリ領域のメモリアドレスと、を前記仮想化部の仮想マシン管理情報へ設定ることを特徴とする計算機。
  12. 請求項10または請求項11に記載の計算機であって、
    前記物理プロセッサは、割り込み支援機能として、論理割込み発生に仮想化ソフトウェアの処理を省く機能を有することを特徴とする計算機。
  13. 請求項8に記載の計算機であって、
    前記仮想化部が、
    前記第2のプロセッサグループの物理プロセッサと前記第2のOSの関係を変更し、前記変更された前記第2のプロセッサグループの物理プロセッサと前記第2のOSの関係に基づいて、前記第2のOSへの論理割込みと物理割込みの対応関係を含む割込みパス情報を更新することを特徴とする計算機。
JP2013150629A 2013-07-19 2013-07-19 計算機の制御方法及び計算機 Expired - Fee Related JP6029550B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013150629A JP6029550B2 (ja) 2013-07-19 2013-07-19 計算機の制御方法及び計算機
US14/275,183 US9697024B2 (en) 2013-07-19 2014-05-12 Interrupt management method, and computer implementing the interrupt management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013150629A JP6029550B2 (ja) 2013-07-19 2013-07-19 計算機の制御方法及び計算機

Publications (3)

Publication Number Publication Date
JP2015022553A JP2015022553A (ja) 2015-02-02
JP2015022553A5 JP2015022553A5 (ja) 2016-01-14
JP6029550B2 true JP6029550B2 (ja) 2016-11-24

Family

ID=52344690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013150629A Expired - Fee Related JP6029550B2 (ja) 2013-07-19 2013-07-19 計算機の制御方法及び計算機

Country Status (2)

Country Link
US (1) US9697024B2 (ja)
JP (1) JP6029550B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6157719B2 (ja) * 2014-03-07 2017-07-05 株式会社日立製作所 計算機
US9697151B2 (en) 2014-11-19 2017-07-04 Nxp Usa, Inc. Message filtering in a data processing system
US9727500B2 (en) * 2014-11-19 2017-08-08 Nxp Usa, Inc. Message filtering in a data processing system
US10713195B2 (en) * 2016-01-15 2020-07-14 Intel Corporation Interrupts between virtual machines
WO2017126097A1 (ja) * 2016-01-22 2017-07-27 株式会社日立製作所 計算機システム、計算機
US10209889B2 (en) 2016-07-14 2019-02-19 International Business Machines Corporation Invalidation of shared memory in a virtual environment
US10176115B2 (en) 2016-07-14 2019-01-08 International Business Machines Corporation Shared memory in a virtual environment
JP6852509B2 (ja) * 2017-03-30 2021-03-31 ブラザー工業株式会社 プログラム及び情報処理装置
US10248595B2 (en) * 2017-08-10 2019-04-02 Infineon Technologies Ag Virtual machine monitor interrupt support for computer processing unit (CPU)
CN110162377A (zh) * 2018-02-14 2019-08-23 华为技术有限公司 一种通信方法和逻辑处理器
TWI764082B (zh) 2019-02-14 2022-05-11 美商萬國商業機器公司 用於經引導中斷虛擬化之中斷信號之方法、電腦系統及電腦程式產品
WO2020164818A1 (en) 2019-02-14 2020-08-20 International Business Machines Corporation Directed interrupt for multilevel virtualization
TWI759677B (zh) * 2019-02-14 2022-04-01 美商萬國商業機器公司 用於具有回退之經引導中斷虛擬化之方法、電腦系統及電腦程式產品
US11003484B2 (en) * 2019-06-28 2021-05-11 Intel Corporation Inter-processor interrupt virtualization with pass-through of local interrupt controller
CN113094111B (zh) * 2021-04-16 2024-01-09 三星(中国)半导体有限公司 设备以及设备的启动方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001290665A (ja) * 2000-04-11 2001-10-19 Nec Software Hokuriku Ltd プロセッサシステム
US7685635B2 (en) * 2005-03-11 2010-03-23 Microsoft Corporation Systems and methods for multi-level intercept processing in a virtual machine environment
US7900204B2 (en) * 2005-12-30 2011-03-01 Bennett Steven M Interrupt processing in a layered virtualization architecture
US8453197B2 (en) * 2006-09-07 2013-05-28 Intel Corporation Method, apparatus and system for isolating a temporary partition on a host
US7533207B2 (en) * 2006-12-06 2009-05-12 Microsoft Corporation Optimized interrupt delivery in a virtualized environment
US20080155092A1 (en) * 2006-12-22 2008-06-26 Arvind Kumar Method, apparatus and system for securely metering resource usage on a computing platform
US8453143B2 (en) 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
US8566492B2 (en) 2009-12-31 2013-10-22 Intel Corporation Posting interrupts to virtual processors
US8489789B2 (en) * 2010-02-05 2013-07-16 Advanced Micro Devices, Inc. Interrupt virtualization
US10684973B2 (en) * 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch

Also Published As

Publication number Publication date
US9697024B2 (en) 2017-07-04
US20150026678A1 (en) 2015-01-22
JP2015022553A (ja) 2015-02-02

Similar Documents

Publication Publication Date Title
JP6029550B2 (ja) 計算機の制御方法及び計算機
TWI621023B (zh) 用於支持對經由nvme控制器、通過網路存取的遠端存儲設備的熱插拔的系統和方法
US10691363B2 (en) Virtual machine trigger
WO2017024783A1 (zh) 一种虚拟化方法、装置和系统
US10133504B2 (en) Dynamic partitioning of processing hardware
US9081612B2 (en) Virtual machine control method and virtual machine
US9798565B2 (en) Data processing system and method having an operating system that communicates with an accelerator independently of a hypervisor
JP2015503784A (ja) グラフィックス処理部における仮想マシン間の移行
EP3329368A1 (en) Multiprocessing within a storage array system executing controller firmware designed for a uniprocessor environment
EP3074866A1 (en) Apparatus and method for scheduling graphics processing unit workloads from virtual machines
US11194735B2 (en) Technologies for flexible virtual function queue assignment
JP7504092B2 (ja) 仮想化コンピューティング環境での安全なメモリアクセス
US10853259B2 (en) Exitless extended page table switching for nested hypervisors
US11188365B2 (en) Memory overcommit by speculative fault
US10102022B2 (en) System and method for configuring a virtual device
KR20110094764A (ko) 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
US11467776B1 (en) System supporting virtualization of SR-IOV capable devices
JP2015088014A (ja) 計算機の制御方法及び計算機
US20230051825A1 (en) System supporting virtualization of sr-iov capable devices
KR20110095051A (ko) 가상화 환경에서의 데이터 처리 방법 및 드라이버
WO2020177567A1 (zh) 一种迁移数据的方法、装置及系统
KR101587600B1 (ko) Numa 시스템상에서 가상머신간의 통신방법
US20230033583A1 (en) Primary input-output queue serving host and guest operating systems concurrently

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151120

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160726

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160905

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161004

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161018

R150 Certificate of patent or registration of utility model

Ref document number: 6029550

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees