学位論文要旨



No 213020
著者(漢字) 梅野,英典
著者(英字)
著者(カナ) ウメノ,ヒデノリ
標題(和) 仮想計算機システムの性能設計に関する研究
標題(洋) Research on Performance Design of Virtual Machine systems
報告番号 213020
報告番号 乙13020
学位授与日 1996.09.24
学位種別 論文博士
学位種類 博士(理学)
学位記番号 第13020号
研究科
専攻
論文審査委員 主査: 東京大学 教授 益田,隆司
 東京大学 教授 小柳,義夫
 東京大学 教授 平木,敬
 東京大学 教授 石田,晴久
 東京大学 助教授 清水,謙多郎
内容要旨

 本論文は、複数台の高性能仮想計算機(VM)をサポートし、最終的に各VMに、実計算機と殆ど同等の性能を与えるための性能設計に関するものである。仮想計算機システムの性能向上に関しては、それが実用化され、一般に広く使用されるに至るまでさまざまの角度から研究が行われてきた。本研究はその中にあって複数台の高性能VMの提案と云う点で先行的な役割を果たすものである。

 仮想計算機システムは、オペレーティングシステム(OS)自体の開発やテストにおける計算機の利用効率の低下という問題点を改善し、一台の実計算機の下で複数台のOSを同時に動かすために考え出された。各OSは実計算機の機能的コピーである仮想計算機(VM:Virtual Machine)上で動作する。複数台のVMが同時に動作するシステムを仮想計算機システム(VMS)といい、そのVMS全体の制御プログラムをVMM(Virtual Machine Monitor)と云う。

 仮想計算機技術は、アーキテクチャを多重化する技術である。この多重化のためにソフトウェア(即ちVMM)が、メモリ上に各VMのリソースを擬似的に構成し実計算機アーキテクチャをシミュレーションしている。従って、VMオーバヘッドの要因は以下の通りである。

 (1)メモリアーキテクチャ多重化のためのメモリシミュレーションオーバヘッド

 (2)CPUアーキテクチャ多重化のための制御命令シミュレーションオーバヘッド

 (3)I/Oアーキテクチャ多重化のためのI/Oシミュレーションオーバヘッド

 (4)複数VM同時運用のためのスケジューリングオーバヘッド

 これらのオーバヘッドは、アクティブなVMの台数、ゲストOS(i.e.VM上のOS)のI/O命令発行頻度、ゲストOSの仮想空間多重度に対して比例的に増加する。VMSの性能向上は、即ち、これらのオーバヘッドを低減することである。性能設計のアプローチとして、既存のアーキテクチャを前提としてのソフトウェア的な改善方式と、並行して、アーキテクチャに対するVM用新機能の追加というアプローチを取った。図1.に本研究において提案した性能向上方式とその効果の概算を段階的に示す。以下同図に示す(b)〜(e)までの各性能向上方式を含めて論述する。

図1.性能向上方式とその効果概算1.ソフトウェアによる性能向上

 (1)常駐VM方式:常駐VMは、図2に示す通り、その主記憶のアドレスをある変位だけずらしてシステムの主記憶に常駐化させたものである(これをV=Resi属性と云う)。常駐VMは、主記憶サイズの許す範囲内で複数台定義可能である。このメモリの割当て方自体は新しいものではなく、=0が従来のV=RVMに相当する(これをV=R属性という)。しかし、従来、常駐VMは、一般のVM(その主記憶がホスト即ちVMMの仮想空間であるVM)と同じくシャドウテーブル(図2のST:ゲストOSの仮想アドレス(x2)をシステムの実アドレス(x0)に変換するテーブルでVMMが管理するもの)を必要とし、そのメモリアドレス階層は一般のVMの主記憶領域をページ固定したものとして見られていた。従って、一般VMと同程度にオーバヘッドが高かった。本研究においては、この複数台の常駐VMを、V=RVMに並ぶ高性能VMにすることを検討した。

図2.常駐VMに対するアドレス変換方式の提案

 (2)Fast I/O方式:従来、全オーバヘッドの中で、I/Oシミュレーションオーバヘッドは主要なオーバヘッドである(図1.(a)参照)。CCW(Channel Command Word)は、I/Oチャネルに対する指令語であるが、I/Oシミュレーションの中でCCW変換が主要なオーバヘッドである。V=RVMの場合V=R属性によってCCW変換をバイパスすることができる。一般のVMの場合は、一般的なCCW変換が必要であるため、そのオーバヘッドを低減することはできない。しかし、本研究において、常駐VMのV=Resi属性を利用すればCCW変換における複雑なページング処理等を除外し高速化できることに着目し、各常駐VMを対象とした高速CCW変換方式を提案した。さらに、I/O正常ケースのFast pathを設定した。これらによって常駐VMに対してはI/Oシミュレーションオーバヘッドを半分にすることができた(図1.(b))。

 (3)シャドウテーブル保守オーバヘッドの低減:シャドウテーブル保守オーバヘッドは、全体のオーバヘッドの中で主要なものであった(図1.(a))。従来、V=RVMの場合V=R属性によりシャドウテーブルをバイパスすることができる。しかし、一般のVMにとって、シャドウテーブルはVMの仮想空間をサポートするために必要であって、常駐VMに対しても同様であった。また、従来、OSのページングはその内部処理であり対応するシャドウページテーブルはVMMにとって特定できなかった。このため、VMMは該OSのページングに対してシャドウテーブルを全て無効化していた。従って、その保守オーバヘッドが大きくなった。これを防止するため本研究では一般のVMに対して、その上のOSとのハンドシェーキングにより、該OSに無効化すべきfull page address(完全なセグメント番号、ベージ番号を含むもの)を指定してもらうようにした。これにより、それに対応するシャドウ・ページ・テーブル・エントリだけを選択的に無効化する方式を提案した(図1.(c))。

 以上のシミュレーション方式の改善により複数台の常駐VMに対して性能を向上し、高負荷に対してオーバヘッドをほぼ半減することができた(図1(a)、(c))。

2.ハードウェアによる性能向上

 (1)常駐VM用アドレス変換方式:ゲストOSのジョブ多重度が数百以上になるとシャドウテーブル保守オーバヘッドは抑え難いものとなった。したがって、高性能VMをサポートするためにはシャドウテーブル無しでVMの仮想空間をサポートしなければならない。このために、従来、ゲストOSのアドレス変換テーブル(図2AT1)とホストのアドレス変換テーブル(図2AT0)の2種類のアドレス変換テーブルを直接ハードウェアで検索する方式(図2従来2に示す多段アドレス変換方式)を用いたりした。この方式は、一般のVMに適用可能で、シャドウテーブルを不要とする方式であるが、3〜4回もアドレス変換テーブルを検索しなければならないのでNative modeのアドレス変換に比べて3倍から4倍の実行時間がかかる。従って命令実行性能は低下する。これに対して本研究では、常駐VMを対象として、図2に示すように新しく常駐VMとしてのメモリアドレス階層の見方を与え、それに基づいて、より高速な常駐VM用アドレス変換方式を提案した。これはOSの管理するゲストアドレス変換テーブル(図2のAT1)を常駐VMの主記憶における固定的対応関係(+,OR,Block変換等)を適用しながら直接検索する方式であり、アドレス変換テーブルの検索はNative modeと同じくゲストアドレス変換テーブル(AT1)の検索1回だけである。これにより各常駐VMに対して、シャドウテーブルは不要となり、かつ、Native modeと殆ど同等のアドレス変換性能を得ることができた(図1(d))。

 (2)制御命令直接実行方式:従来、使用頻度の高い制御命令はマイクロコードVMAによりシミュレーションされている。VMAは、効果が高いが、その加速率は低く、各制御命令の実行時間はNative modeに比べると3〜4倍の実行時間がかかった。したがって、制御命令のシミュレーションオーバヘッドが少なからず残った(図1.(a))。このため本研究においては、一般的にVMアーキテクチャを認識するモード(VMモード)を提案し、アーキテクチャとしてゲスト(i.e.VM)リソースとホスト(i.e.VMM)リソースを用意し、VMモードにおいて制御命令をハードウエアによりNative modeと殆ど同程度の実行速度で直接実行する方式を提案した。以上(1),(2)によって、図1.(d)に示すようにNative modeに対するオーバヘッドは50%にまで低減することができた。

 (3)I/O直接実行方式:前述の様に従来V=RVMに対しては、そのV=Rメモリ属性によりCCW変換バイパス方式を適用しI/Oシミュレーションオーバヘッドを低減していた。しかし、常駐VMや一般のVMに対しては、従来のI/Oチャネルを使用する限り、ソフトウェア(i.e.VMM)が介入してCCW変換を行なわなければならない。さらに一般的にはソフトウェアによるサブチャネル(サブチャネルは装置状態を表す論理オブジェクトである)のスケジュールが必要であり、I/Oシミュレーションが必要となる。従って、高I/O負荷に対して、I/Oシミュレーションオーバヘッドが増加するのを避けることができなかった。そこで本研究では、複数台の常駐VMに対するI/O命令とI/O割込みをVMMを介さずハードウェアにより直接実行する方式を検討した。先ずI/Oチャネルにおいて、その機能を拡張し、該当常駐VMの固定的対応関係を適用してゲストCCWを直接実行する方式を提案した。次に、OSにとってサブチャネルがI/O命令スケジュールの単位であることから、ゲストOSにそのスケジュールを委ねるために、専有サブチャネルに対するI/O命令だけを直接実行の対象とすることを提案した。これらにより、図1.(e)に示すようにNative modeに対するオーバヘッドは10%以下となり、実計算機とほぼ同等の性能を持つ複数台の常駐VMを実現する方式を明らかにすることができた。

 (4)VMスケジューリング方式:複数台のVMを効率良くスケジュールしなければならないが、各VM上ではタスクスケジュール機能を持つOSが動作することが一般のOSのタスクスケジュールとは異なる。VMスケジュールに特有の問題がいくつかあり、それらを解決しなければならない。代表的な問題の例としてマルチプロセッサモードOSのスピン(disabled spin loop)がある。該OSはロック確保等のために或プロセッサ上でスピンするが、これは、Native modeにおいては、パートナ(相手プロセッサ)が故障でもしない限り短時間の内に完了するので問題はない。しかし、VM環境下ではマルチプロセッサモードOSは過剰なスピンを検出する可能性が高くなる。なぜならパートナ(同一VMに属する論理プロセッサ)がready状態でスケジュール待ちの状態であるかも知れないからである。一般にOSの過剰スピン回復処理はNative mode用に作られているから、VM環境では正しく作動せずパートナをオフラインにしたりする。これを防止するために本研究においてはVMMにおいて、スピンした論理プロセッサのスケジュールを遅らせ、そのパートナのスケジュールを優先させることにより過剰スピンを防止する方式を提案した。

 本研究の内容を今日のメインフレームのVM技術との関係で以下に評価する。現在、メインフレームは、海外では、80%以上がVM運用形態をとっており、国内のユーザも徐々に増加しつつある。それらのユーザは全て常駐VMを使用している。これらの運用において、本研究における常駐VMの高速化方式、すなわち、常駐VM用のアドレス変換、制御命令の直接実行や、I/O直接実行等の方式が適用されている。すなわち、本研究は今日のメインフレームにおけるVMの運用とその広がりに大きく貢献したと云うことができる。また、もし、アーキテクチャの多重化であるVMSが、PC/WSでサポートされるときは本研究で得られた方式を大部分適用することができる。

審査要旨

 仮想計算機システム(VMS)の性能向上に関しては、それが実用化され、一般に広く使用されるに至るまでさまざまの角度から研究が行われてきた。そのなかで、本論文は、複数台の高性能仮想計算機(VM)をサポートし、各VMに、実計算機とほとんど同等の性能を与えるための性能設計に関するものである。本論文は、10章からなっている。第1章の概要に続き、第2章から第4章はソフトウェアによる性能向上方式を論述する。ハードウェアによる性能向上方式を第5章、第6章に述べる。第7章、第8章はVMスケジューリング方式に関係する。第9章に、本研究によって得られた方式のまとめと評価を論述する。最後に第10章に結果のまとめと将来の研究方向について述べる。

 第1章では、本研究の背景と目的、内容の概要等について述べる。仮想計算機技術は、アーキテクチャを多重化する技術である。当初、VMはすべてソフトウェア(制御プログラム(ホストともいう))によるシミュレーションによってサポートされたために、実計算機の10倍以上のCPU時間がかかっていた。従来よりマイクロコード等による性能向上が図られ、業務運用のための一台の高性能VM(V=RVMと呼ばれ、システム全体で一台しか存在しない)と複数台のOS開発用VM(V=VVMと呼ばれ比較的低性能)方式が提案され実用に供されていた。これに対して、本研究においては、複数台のOSを同時に業務として運用することの必要性に応じ、複数台の高性能VM方式を提案し、その技術を確立することを目的とする。これによって、新旧OSによるオンライン運用や、複数OSの同時運用を行い可用性の向上を図ることができる。

 第2章では、複数台定義可能な高性能常駐VM方式を提案した。常駐VM方式は、VMの主記憶領域をシステムの主メモリ上に連続的にマッピングするものである。このマッピング手段としてアドレス変換テーブルによる方法を提案した。後の第5章で、さらに効率的なハードウェアによる方式を提案する。VMオーバヘッドの主要因であるI/Oシミュレーションオーバヘッドを低減するため、I/O正常処理のFast Pathと常駐VMのアドレス属性を利用したCCW変換の高速化によるFast I/O-simulation方式を提案した。これにより、I/Oシミェレーションオーバヘッドを半減し、各常駐VMのCPU処理時間(VMのオーバヘッドを含む全CPU処理時間)は、高負荷に対して、従来、実計算機の約3倍のCPU時間がかかっていたものを、約2.5倍にまで削減することができた。

 第3章では、オンラインシステムの移行用にVMSを用いるに当たり、その信頼性と操作性の向上方式について提案している。具体的には、複数VMの自動log-onや自動IPL、自動リスタート等である。これによって、オンラインシステムへの適用性を高めている。

 第4章では、シャドウテーブル保守オーバヘッド削減方式を提案している。シャドウテーブルは、VM上のOS(ゲストOS)のアドレス変換テーブルとホストのそれを合成したアドレス変換テーブルである。ゲストOSの仮想アドレスをホスト実アドレス(ホストにとっての実アドレス)に変換する。このとき、ゲストOSのページング等によりシャドウテーブル保守のためのオーバヘッドが発生する。従来、そのページ無効化に対して該当ページアドレスが不明のため全シャドウテーブルを無効化していた。そこで、OSから情報を得ることによって該当のシャドウテーブルエントリだけを無効化する方式を提案した。これにより、VMのCPU処理時間は実計算機の約2倍にまで低減している。

 第5章において、ハードウェアによる性能向上として、常駐VM用アドレス変換方式を提案した。これは、常駐VMの主記憶アドレスが持つ固定的対応関係(定数加算やOR演算等)と、ゲストOSのアドレス変換テーブルとの組合せ、連係をハードウェア的に直接サポートすることによりゲスト仮想アドレスをホスト実アドレスに変換する方式である。このアドレス変換方式を前提として、タイマ等の制御命令直接実行方式を提案した。これらによりシャドウテーブルを不要とし制御命令シミュレーションオーバヘッドを削減し、VMのCPU処理時間を実計算機の約1.5倍にまで削減した。従来研究において、唯一しか存在しないV=RVMに対して、その性能を実計算機とほとんど同等とするために、必要なI/Oリソースを専有化し、I/O命令、I/O割込みをハードウェアより直接実行する方式(I/O直接実行方式)が提案されていた。これに対して、本研究においてはじめて複数台の常駐VMに対してI/O直接実行方式を提案した。I/Oシミュレーションの一般的な場合は複雑であるためにソフトウェアによるシミュレーションが必要である。したがって、I/O直接実行のためには、パフォーマンス/コストを検討し、その適用範囲を制限して、ハードウェア技術を適用することが必要であることを示している。すなわち、本研究において、I/O直接実行のためには、常駐VMの適用、サブチャネル(I/O装置を表すオブジェクト)の専有化、ゲストCCWの直接実行、I/O割込み優先順位の専有化方式が基本技術であることを示した。以上によって各常駐VMのCPU処理時間は、実計算機の約1.1倍以下にまで削減され、実計算機とほぼ同等の性能を得ることができるようになった。

 第6章では、I/Oレスポンスを高めるための動的チャネルパス再結合方式と上記I/O直接実行方式との両立性について論じた。従来、この両立性を得るために、各VMに排他的にチャネルパスを割り当てなければならなかった。しかし、これでは、VMSにおけるI/Oシステム構成の柔軟性に欠けるので、本研究では、VM間でチャネルパスを共有して、この両方式を同時使用可能とするVM用チャネルパスグループ管理方式を提案している。

 第7章では、ホストマルチプロセッサにおけるTLB制御方式について提案する。従来、論理プロセッサのディスパッチの切替えにおいてそのconsistencyを保証するためにTLBを無効化していた。これに対して、そのような切替えにおいても有効なTLBエントリを再利用する方式を提案している。この方式により、平均命令実行時間がこれまでにくらべて約10%短縮される。

 第8章では、ゲストマルチプロセッサ(マルチプロセッサモードで動作するVM)における過剰スピン制御方式を提案している。従来の実計算機モードでの制御方式だけでは不充分であるので、同一VM内の論理プロセッサを優先するいくつかの制御方式を提案し、それにより、過剰スピンの低減方式を明らかにしている。

 第9章では、本研究によって得られた広範囲に適用可能なVMの性能設計と実現のための方式を論述する。さらに、本研究での各性能向上方式とその効果についてまとめた。

 第10章に結果のまとめと将来のVM研究方向について述べる。

 以上のように本論文は、ソフトウェア、ハードウェアの両面から複数台の高性能仮想計算機を実用化するための重要な方式を提案しており、この分野の技術の発展に多大の貢献をするものと評価することができる。なお、本論文の内容の一部は共同研究者による成果を含むが、いずれも論文提出者が主たる方式を提案し、中心となって研究を行ったものである。これによって、本審査委員会は、論文提出者梅野英典に博士(理学)の学位を授与することができると認める。

UTokyo Repositoryリンク