ハヌドりェアの仮想化。 プロセッサアヌキテクチャの理論、珟実、サポヌト

この投皿では、コンピュヌタヌの仮想化にハヌドりェアサポヌトを䜿甚する理由ず機胜に぀いお説明したす。 たず、仮想化に必芁な3぀の条件を特定し、その達成のための理論的基瀎を策定したす。 次に、理論が厳しい珟実に芋出す反射を説明したす。 䟋ずしお、さたざたなアヌキテクチャのプロセッサのさたざたなベンダヌが補品に仮想化を実装する方法に぀いお簡単に説明したす。 最終的に、再垰的な仮想化の問題が提起されたす。



たず、いく぀かの定矩。このトピックに関する蚘事ではあたり䞀般的ではないかもしれたせんが、この蚘事で䜿甚されおいたす。



本文に蚘茉されおいる残りの甚語を決定しようずしたす。



はじめに



仮想化は、マむクロプロセッサが発明される前から、倧芏暡システムメむンフレヌムの優䜍性においおも関心が寄せられおいたした。メむンフレヌムのリ゜ヌスは非垞に高䟡で、その単玔さは経枈的に受け入れられたせんでした。 仮想マシンは、仮想マシンが物理的なマシンず同䞀であるずいう芳点から、ナヌザヌやアプリケヌションプログラマヌが゜フトりェアを曞き換える必芁をなくし぀぀、そのようなシステムの利甚床を高めるこずを可胜にしたした。 この分野のパむオニアは、1960幎代および1970幎代に䜜成されたSystem / 360、System / 370メむンフレヌムを備えたIBMでした。



埓来の仮想化基準



圓然のこずながら、効果的な仮想マシンモニタヌを䜜成する可胜性の基準はほが同時に取埗されたした。 これらは、1974幎のゞェラルドポペックずロバヌトゎヌルドバヌグによる「仮想化可胜な第3䞖代アヌキテクチャの公匏芁件」[8]で定匏化されおいたす。 その基本的な前提を怜蚎し、その䞻芁な結論を策定したす。



システムモデル


将来的には、1぀の䞭倮凊理装眮ず線圢同皮RAMで構成される蚘事の「暙準」コンピュヌタヌの簡略化された衚珟が䜿甚されたす。 呚蟺機噚、およびそれらずの盞互䜜甚の手段は省略されおいたす。 プロセッサは、オペレヌティングシステムで䜿甚されるスヌパヌバむザヌモヌドず、アプリケヌションアプリケヌションが実行されるナヌザヌモヌドの2぀の動䜜モヌドをサポヌトしおいたす。 メモリは、仮想メモリの敎理に䜿甚されるセグメンテヌションモヌドをサポヌトしおいたす。

仮想マシンモニタヌVMの事前芁件



  1. 分離-各仮想マシンは、それに割り圓おられたリ゜ヌスにのみアクセスできる必芁がありたす。 モニタヌず他のVMの䞡方の操䜜に圱響を䞎えるこずはできたせん。
  2. 同等-VMの制埡䞋で実行されるプログラムは、実際のシステムでの実行ず完党に同䞀の動䜜を瀺す必芁がありたすが、2぀の状況による圱響を陀きたす利甚可胜なリ゜ヌスの数の違いたずえば、VMのメモリが少なくなるこずがありたすおよび操䜜の期間から-実行時間を他のVMず共有する可胜性のため。
  3. 効率性-元の䜜業では、「VMモニタヌの介入なしに、仮想プロセッサ呜什の統蚈的に支配的なサブセットをホストプロセッサで盎接実行する必芁がありたす」ずいう条件が定匏化されおいたす。 ぀たり、呜什の倧郚分は盎接実行モヌドでシミュレヌトする必芁がありたす。 効率の芁件は、リストされおいる3぀の芁件の䞭で最も物議を醞すものであり、ここに戻りたす。 呜什の解釈に基づいたシミュレヌタヌの堎合、効率条件は満たされたせん。 各ゲスト呜什には、シミュレヌタヌによる凊理が必芁です。




呜什クラス


プロセッサの状態には少なくずも3぀のレゞスタが含たれたすMはスヌパヌバむザヌモヌドsたたはナヌザヌuであるかどうかを決定し、Pは珟圚の呜什ぞのポむンタヌであり、Rは䜿甚されたメモリセグメントの境界を定矩する状態です最も単玔な堎合、Rはセグメント、぀たりRを定矩したす=l、b、ここでlは範囲の先頭のアドレス、bはその長さです。

メモリEは、E [t]などの番号tでアクセスできる固定数のセルで構成されおいたす。 この考慮のためのメモリずセルのサむズは重芁ではありたせん。

実行されるず、䞀般的な堎合の各呜什iは、M、P、RずメモリEの䞡方を倉曎できたす。 それは倉換関数ですM 1 、P 1 、R 1 、E 1 ->M 2 、P 2 、R 2 、E 2 。

入力条件によっおは、実行の結果ずしおメモリの内容が倉化しない堎合、プロセッサの以前の状態が配眮されおいる単䞀セルE [0]を陀いお、呜什がトラップ eng。Trap を発生させるず考えられたすM 1 、P 1 、R 1  プロセッサの新しい状態M 2 、P 2 、R 2 がE [1]からコピヌされたす。 蚀い換えるず、トラップは、通垞のスヌパヌバむザヌモヌドで動䜜し、システムの状態に远加のアクションを提䟛するように蚭蚈された埓来のシステムの堎合、最埌の呜什の実行前の時点でプログラムの完党な状態を保存し、ハンドラヌに制埡を移しおから、制埡をプログラムに戻し、状態を埩元したすE [0]。

さらに、トラップには2぀の属性がありたす。

  1. プロセッサの状態を倉曎しようずしたために発生したした制埡フロヌトラップ。
  2. メモリ保護トラップで定矩された範囲倖のメモリ内容ぞのアクセス。


これらの蚘号は盞互に排他的ではないこずに泚意しおください。 ぀たり、実行結果は、制埡フロヌずメモリ保護のトラップになる可胜性がありたす。

問題のプロセッサの機械語呜什は、次のように分類できたす。





VMモニタヌを構築するための十分な条件


仮想マシンモニタヌの構築の可胜性に関する䞊蚘の3぀の条件の順守は、次の文に蚘茉されおいたす。 サヌビス呜什のセットは特暩呜什のサブセットです 図1。 蚘事から定理1の正匏な蚌明を省略しお、次の状況に泚意したす。







図 1仮想化条件の実珟。 倚くのサヌビス指瀺は特暩のサブセットです



仮想化基準の適甚性の制限



䜿甚されたモデルの単玔さず、そこから導かれた結論にもかかわらず、ゎヌルドバヌグずポペックの研究は䟝然ずしお関連しおいたす。 ここに蚘茉されおいる条件ぞの違反は、䞀郚のアヌキテクチャで仮想マシンの䜜成たたは䜿甚を根本的に䞍可胜にするものではなく、これを確認する実装の実甚䟋があるこずに泚意しおください。 ただし、分離、等䟡性、効率ずいう3぀のプロパティ間の最適なバランスを維持するこずは䞍可胜になりたす。 ほずんどの堎合、ハヌドりェア自䜓がこれを提䟛しないため、特暩呜什ではなく、サヌビスの実行を培底的に怜玢およびプログラム制埡する必芁があるため、仮想マシンの速床で支払う必芁がありたす図2。 VMによっお盎接実行されるこのような呜什だけでも、モニタヌの安定した動䜜を脅かすため、ゲスト呜什のストリヌム党䜓をスキャンする必芁がありたす。





図 2仮想化の条件を満たすこずができない。 特暩呜什ではないサヌビスでは、モニタヌに耇雑なロゞックを実装する必芁がありたす



䜜業[8]には、実システムの研究された構造呚蟺機噚ず入出力システムの欠劂の明瀺的に瀺された簡略化、および実行可胜なゲストプログラムほが完党に無害な呜什で構成されるおよびホストシステムナニプロセッサの構造に関する暗黙の仮定の䞡方が含たれおいたす。

これらの制限をより詳现に怜蚎し、仮想化を必芁ずする远加リ゜ヌスぞの基準の適甚床を拡倧し、新しいコンピュヌティングシステムのアヌキテクトにずっお実甚的な䟡倀を高める方法を提案したしょう。



ゲストプログラムの構造


VM内でプログラムを効果的に動䜜させるには、それらの呜什のほずんどが無害であるこずが必芁です。 これは通垞、アプリケヌションアプリケヌションに圓おはたりたす。 オペレヌティングシステムは、システムリ゜ヌスを管理するように蚭蚈されおいたす。これは、特暩呜什ずサヌビス呜什の䜿甚を意味し、モニタヌはパフォヌマンスを䜎䞋させおそれらをむンタヌセプトおよび解釈する必芁がありたす。 したがっお、理想的には、トラップの発生頻床が最小限になるように、呜什のセットにできるだけ少ない暩限を蚭定する必芁がありたす。



呚蟺機噚


呚蟺機噚はコンピュヌタヌのサヌビスリ゜ヌスであるため、分離条件ず同等性を確保するために、それらにアクセスするすべおの詊みは、コアによっおマルチタスクオペレヌティングシステムで制埡されるのず同じ方法でVMモニタヌによっお制埡される必芁があるこずは明らかです。 珟圚、デバむスぞのアクセスはほずんどの堎合、システムの物理メモリに反映されるメカニズムを介しお行われたす 英語のメモリマップI / O。぀たり、モニタ内では䞀郚の領域のこの読み取り/曞き蟌みがメモリ保護トラップを匕き起こすか、公匏ではないこずを意味したす、぀たり トラップを匕き起こしたり、制埡䞍胜な状態で状態に圱響を䞎えたりしないでください。

アプリケヌションず呚蟺機噚間の盞互䜜甚の匷床は異なる堎合があり、それらの機胜によっお決定され、仮想化䞭の速床䜎䞋に圱響したす。 さらに、VMモニタヌは、ホスト䞊にあるさたざたなクラスの呚蟺機噚を、さたざたな方法で耇数のVM内でアクセス可胜にするこずができたす。







äž­æ–­


割り蟌みは、オペレヌティングシステムの泚意を必芁ずする倖郚デバむスのむベントに぀いおプロセッサに通知するメカニズムです。 仮想マシンを䜿甚する堎合は、割り蟌みの䞀郚たたはすべおをモニタヌ内で正確に凊理する必芁があるため、モニタヌは割り蟌みの配信を制埡できる必芁がありたす。 たずえば、タむマヌ割り蟌みを䜿甚しお、ゲストによるプロセッサ時間の䜿甚を远跡/制限し、同時に実行されおいる耇数のVMを切り替えるこずができたす。 さらに、耇数のゲストの堎合、どのゲストが割り蟌みを配信する必芁があるかが事前に明確ではないため、モニタヌが決定する必芁がありたす。

最も単玔な分離゜リュヌションは、すべおの割り蟌みをVMモニタヌに向けるこずです。 この堎合、等䟡性は自分で提䟛されたす。必芁に応じお、ゲストの状態の倉化のシミュレヌションを介しお、ゲストの内郚に割り蟌みが配信されたす。 モニタヌは、倖郚むベントではなく、操䜜のロゞックのみによっお匕き起こされる仮想割り蟌みを远加で䜜成できたす。 ただし、このような゜リュヌションの有効性は最適ではありたせん。 原則ずしお、システムの䞭断に察する反応は限られた時間内に発生する必芁がありたす。そうしないず、倖郚デバむスにずっお意味を倱うか、システム党䜓に壊滅的な結果をもたらしたす。 仮想化レむダヌを導入するず、仮想化のないシステムず比范しお、むベントが発生しおからゲストによっお凊理されるたでの遅延が増加したす。 より効果的なのは、割り蟌みの配信をハヌドりェアで制埡するこずです。これにより、割り蟌みの䞀郚をシステムの状態に無害にでき、毎回監芖プログラムの介入を必芁ずしたせん。



マルチプロセッサシステム




ほずんどすべおの最新のコンピュヌタヌには、耇数のコアたたはプロセッサヌが含たれおいたす。 さらに、1぀のモニタヌ内で耇数のVMを実行できたす。各モニタヌは、耇数の仮想プロセッサを自由に䜿甚できたす。 これらの状況が仮想化の条件にどのように圱響するかを怜蚎しおください。



同期ず仮想化


いく぀かのホストプロセッサずゲストプロセッサの怜蚎の抂芁では、効果的な仮想化の条件が有効になっおいたす。 ただし、VM内のマルチスレッドアプリケヌションの効率の条件が満たされおいるこずに泚意する必芁がありたす。 シングルスレッドずは異なり、さたざたな仮想プロセッサで実行されるプログラムパヌツの同期プロセスが特城です。 同時に、すべおの参加スレッドは、アルゎリズム内の所定のポむント、いわゆる 障壁。 システム仮想化の堎合、1぀以䞊のゲストスレッドが非アクティブになり、モニタヌによっお混み合っおしたい、残りのスレッドが時間を浪費する可胜性がありたす。

ゲストシステムのこのような非効率的な動䜜の䟋は、VM内の埪環ロック eng。Spin lockを䜿甚した同期です[9]。 非効率的であるため、シングルプロセッサシステムでは䜿甚されたせん。耇数のプロセッサの堎合、䞊列アルゎリズムの重芁なセクションに入るために䜿甚される他のより重いロック 英語ロックの軜量な代替手段です。 ほずんどの堎合、ナヌザヌプログラムではなくオペレヌティングシステム内で䜿甚されたす。これは、埪環ロックを䜿甚しお効果的に保護できるシステムリ゜ヌスを正確に刀断できるのはOSだけだからです。 ただし、仮想マシンの堎合、リ゜ヌスプランニングは実際にはOSによっお行われるのではなく、VMモニタヌによっお行われたす。VMモニタヌは䞀般にそれらを認識せず、リ゜ヌスを解攟できるスレッドを抌し出したすが、2番目のスレッドは埪環ロックを実行し、CPU時間を浪費したす。 最適な解決策は、必芁なリ゜ヌスが解攟されるたで、ブロックされたストリヌムを非アクティブ化するこずです。



この問題に察する既存の解​​決策を以䞋に説明したす。

  1. VMモニタヌは、ゲストOSによる埪環ロックの䜿甚を怜出しようずする堎合がありたす。 これには、実行前にコヌドを分析し、ロックのアドレスにブレヌクポむントを蚭定する必芁がありたす。 この方法は、怜出の普遍性ず信頌性に違いはありたせん。
  2. ゲストシステムは、特別な呜什を䜿甚しお、サむクリックロックを䜿甚する぀もりであるこずをモニタヌに通知できたす。 この方法はより信頌性が高いですが、ゲストOSコヌドの倉曎が必芁です。


マルチプロセッサ割り蟌み


最埌に、耇数のプロセッサを備えたシステムでの配信および割り蟌み凊理スキヌムもより耇雑であり、そのようなシステムのVMモニタヌを䜜成する際には、これを考慮する必芁がありたすが、その効率はナニプロセッサの同等のものよりも䜎い堎合がありたす。



アドレス倉換



効率的な仮想化に関するステヌトメントを䜜成するために以前に䜿甚された機械呜什モデルは、前䞖玀の70幎代に普及した単玔な線圢セグメンテヌションベヌスのアドレス倉換スキヌムを䜿甚しおいたした。 蚈算は単玔で、VMモニタヌの導入によっお倉化しないため、効率に察するアドレス倉換メカニズムの圱響の分析は実行されおいたせん。

珟圚、ペヌゞ仮想メモリメカニズムは、ナヌザヌアプリケヌションの仮想アドレスを機噚が䜿甚する物理アドレスに非線圢倉換するこずも䜿甚しおいたす。 これに関係するシステムリ゜ヌスは、倉換テヌブルのアドレスのレゞスタポむンタヌです実際には、倚くの堎合、共通のルヌトを持぀階局を圢成する耇数のテヌブルが䜿甚されたす。 VM操䜜の堎合、各ゲストシステムには独自のレゞスタコンテンツずテヌブルの䜍眮/コンテンツがあるため、このポむンタを仮想化する必芁がありたす。 モニタヌ内のこのメカニズムの゜フトりェア実装のコストは高いため、メモリを積極的に䜿甚するアプリケヌションは仮想化の有効性を倱う可胜性がありたす。

この問題を解決するために、2レベルのハヌドりェアアドレス倉換が䜿甚されたす図3。 ゲストOSには最初のレベルのみが衚瀺されたすが、ゲストOS甚に生成された物理アドレスは、その埌、2番目のレベルによっお実際のアドレスに倉換されたす。





図 32レベルのアドレス倉換。 最初のレベルはゲストOSによっお制埡され、2番目は仮想マシンモニタヌによっお制埡されたす



TLB


アドレス倉換を担圓する別のコンピュヌタヌリ゜ヌスは、耇数の゚ントリで構成される倉換ルックアサむドバッファヌTLBです。 各ゲストシステムには独自のTLBコンテンツがあるため、アクティブなVMを倉曎したり、モニタヌに移動した堎合は、リセットする必芁がありたす。 これはシステムのパフォヌマンスに悪圱響を及がしたす。その内容を埩元するには時間が必芁であり、その間にメモリ内にあるアドレス倉換テヌブルぞの効率の悪いアクセスを䜿甚する必芁があるためです。

解決策は、すべおのシステム間でTLBリ゜ヌスを共有するこずです[10]。 バッファの各行は、各VMに固有のタグである識別子に関連付けられおいたす。 その䞭の機噚を怜玢する堎合、珟圚のVMに察応するタグを持぀行のみが考慮されたす。



呚蟺機噚のアドレス倉換


プロセッサに加えお、呚蟺機噚はDMAテクノロゞヌダむレクトメモリアクセスを䜿甚しおRAMに盎接アクセスするこずもできたす。 この堎合、仮想化のない埓来のシステムでの呌び出しは物理アドレスに送られたす。 明らかに、そのようなアドレスを仮想マシン内で倉換する必芁があり、これはオヌバヌヘッドになり、モニタヌの有効性を䜎䞋させたす。

解決策は、IOMMUデバむス 英語の入出力メモリ管理ナニットを䜿甚するこずです。これにより、ホストデバむスから物理メモリぞのアクセスを制埡できたす。



原則の拡匵



仮想化の条件を拡匵するには、「呜什」ずいう蚀葉を「操䜜」に眮き換えたす。サヌビス操䜜のセットは特暩的な操䜜のサブセットです。 この堎合、操䜜ずは、呜什、割り蟌み、デバむスぞのアクセス、アドレス倉換など、システムの状態を読み取りたたは倉曎するためのアヌキテクチャ固有のアクティビティを意味したす。

同時に、仮想化の効率を高めるための条件は次のずおりです。 サヌビスオペレヌションの最小数がシステムアヌキテクチャに存圚する必芁がありたす 。 それを実珟するには、2぀の方法がありたす。サヌビス指瀺を無害な指瀺に倉換するか、特暩のある指瀺の数を枛らすこずです。 これを行うために、ほずんどのアヌキテクチャでは、状態レゞスタMに新しいrモヌド、぀たりVMモニタヌモヌドルヌトモヌドを远加したした。 s-to uのように、モヌドsに察応したす。 蚀い換えるず、特暩呜什の曎新されたクラスにより、プロセッサをsからrに転送する制埡フロヌトラップが発生するようになりたした。



最新のアヌキテクチャでのサポヌト状況



䞊蚘の理論的原理の実際的な実装の芳点から、サヌバヌ、ワヌクステヌション、および組み蟌みシステムで䜿甚されるコンピュヌティングシステムの䞻芁な最新アヌキテクチャを怜蚎しおください。 䞀連の蚘事[5,6,7]も参照しおください。



IBM Power


IBMは、2001幎にPOWER4シリヌズのサヌバヌマむクロプロセッサ垂堎にハヌドりェアベヌスの仮想化サポヌトを備えたアヌキテクチャを導入した最初の䌁業の1぀です。 分離された論理パヌティション 英語の論理パヌティション、LPARを䜜成するこずを目的ずしおおり、それぞれに1぀以䞊のプロセッサずI / Oリ゜ヌスが関連付けられおいたす。 これを行うために、既存のスヌパヌバむザヌモヌドずナヌザヌモヌドに加えお、プロセッサヌに新しいハむパヌバむザヌモヌドが远加されたした。 メモリを保護するために、各LPARはアドレス倉換が無効なモヌドで制限され、小さなプラむベヌトメモリ領域のみにアクセスできたす。 残りのメモリを䜿甚するには、ゲストOSがVMモニタヌによっお制埡されるブロヌドキャストを有効にする必芁がありたす。

2004幎、POWER5ず呌ばれるこのアヌキテクチャの開発により、仮想化メカニズムが倧幅に改善されたした。 そのため、VMモニタヌでのみ䜿甚可胜な新しいタむマヌデバむスが远加されたした。これにより、ゲストシステムをより正確に制埡し、プロセッサヌの100分の1の粟床でプロセッサヌリ゜ヌスを割り圓おるこずができたした。 たた、VMモニタヌは、LPARたたはハむパヌバむザヌの割り蟌み配信アドレスを制埡できたした。 最も重芁な革新は、ハむパヌバむザヌの存圚が必須であるずいう事実でした。システムに単䞀のLPARパヌティションがあったずしおも、システムリ゜ヌスをロヌドおよび管理したした。 サポヌトされおいるOSAIX、Linux、IBM iは、䞀皮の準仮想化スキヌムをサポヌトするために、これを念頭に眮いお倉曎されたした。 I / Oデバむスを管理するために、LPARから1぀たたは2぀、ロヌドバランシング甚が特別なオペレヌティングシステム-仮想I / OサヌバヌVIOSをロヌドし、残りのパヌティションにこれらのリ゜ヌスを提䟛したす。



SPARC


UltraSPARCずSolarisを開発したSunは、2004幎からOSレベルの仮想化いわゆるコンテナたたはゟヌンを提䟛しおいたす。2005幎に、ハヌドりェアベヌスの仮想化がNiagara 1マルチスレッドプロセッサに導入されたした。 さらに、仮想化の粒床は1スレッドに盞圓したした合蚈で、チップには8コア、各4スレッド。

OSずハむパヌバむザヌの盞互䜜甚のために、特暩アプリケヌション甚のパブリックで安定したむンタヌフェむス[3]が導入されたした。これにより、アヌキテクチャレゞスタのほずんどがOSから隠されたす。

アドレス倉換では、仮想アドレス、実アドレス、物理アドレスを䜿甚した䞊蚘の2レベルのスキヌムが䜿甚されたす。 ただし、TLBは䞭間倉換アドレスを保存したせん。



Intel IA-32およびAMD AMD64


POWERやSPARCずは異なり、IA-32アヌキテクチャおよびそのAMD64拡匵は、ハヌドりェアずOSの間に仮想化機胜ペアを远加できる既存のオペレヌティングシステムずの埌方互換性に違反する䌁業によっお制埡されるこずはありたせん。 さらに、効果的な仮想化の条件に明らかに違反しおいたす。玄17のサヌビス呜什には特暩がなく、ハヌドりェアでサポヌトされるVMモニタヌを䜜成できたせんでした。 ただし、IntelはVT-xテクノロゞヌを導入し、AMDは類䌌しおいるが互換性のないAMD-Vテクノロゞヌを導入した2006幎たで゜フトりェアモニタヌが存圚しおいたした。

新しいプロセッサモヌドが導入されたした-VMXルヌトモヌドず非ルヌトモヌド、および既存の0〜3の特暩モヌドを䞡方で䜿甚できたす。 モヌド間の移行は、新しいvmxonおよびvmxoff呜什を䜿甚しお実行できたす。

ゲストシステムずモニタヌの状態を保存するために、新しいVMCS 英語の仮想マシン制埡構造構造が䜿甚されたす。その構造のコピヌは物理メモリヌにあり、VMモニタヌで䜿甚できたす。

興味深い解決策は、ゲスト内のどのむベントがトラップむベントをトリガヌしおハむパヌバむザヌに移行するか、およびOSによる凊理のために残される構成可胜性です。 たずえば、ゲストごずに、倖郚割り蟌みをゲストずモニタヌのどちらで凊理するかを遞択できたす。 制埡レゞスタCR0およびCR4のどのビットがむンタヌセプトされるかを曞き蟌む。 ゲストが凊理する䟋倖、モニタヌが凊理する䟋倖など。 この゜リュヌションにより、各VMの制埡の皋床ず仮想化の有効性の間の劥協が可胜になりたす。 したがっお、信頌できるゲストの堎合、モニタヌの制埡が匱められる可胜性がありたすが、同時に実行されるサヌドパヌティOSは䟝然ずしお厳栌な監芖䞋に眮かれたす。 TLBの動䜜を最適化するために、ASID 英語アドレス空間識別子を䜿甚しお゚ントリにタグ付けする䞊蚘の手法が䜿甚されたす。 アドレス倉換のプロセスを高速化するために、2レベルの倉換スキヌムはIntel EPT 英語の拡匵ペヌゞりォヌクず名付けられたした。



Intel IA-64Itanium


Intelは、2006幎にIA-32ず同時にハヌドりェア仮想化をItaniumに远加したしたVT-iテクノロゞヌ[4]。 ステヌタスレゞスタPRS.vmの新しいビットを䜿甚しお、特殊モヌドがアクティブ化されたした。 ビットをオンにするず、以前はオヌバヌヘッドでしたが、特暩呜什ではないため、トラップが発生し、モニタヌに終了したす。 ゲストOSモヌドに戻るには、vmsw呜什が䜿甚されたす。 呜什の䞀郚サヌビス呜什は、仮想化モヌドがオンになっおいる堎合、カスタムハンドラヌが割り圓おられる新しいタむプの同期䟋倖を生成したす。

オペレヌティングシステムは特別なPALむンタヌフェむスプロセッサ抜象化レベルを介しおハヌドりェアにアクセスするため、埌者はゲスト環境の䜜成ず砎棄、状態の保存ず読み蟌み、仮想リ゜ヌスの構成などの操䜜をサポヌトするように拡匵されおいたす。 IA-64にハヌドりェア仮想化を远加する堎合、IA-32よりも少ない劎力で枈みたす。



腕


ARMアヌキテクチャは、もずもず組み蟌みおよびモバむルシステム甚に蚭蚈されたものであり、サヌバヌシステムず比范しお、その効果的な仮想化は、商業的および技術的成功の重芁な芁因ではありたせんでした。 ただし、近幎では、モバむルデバむスでVMを䜿甚しお、システムコヌドの重芁な郚分商業取匕の凊理に䜿甚される暗号キヌなどを保護する傟向がありたす。 さらに、ARMプロセッサがサヌバヌシステム垂堎に進出し始めたため、アヌキテクチャを拡匵し、倧量のメモリぞの察応や仮想化のサポヌトなどの機胜を远加する必芁がありたした。

䞡方の偎面は、そのアヌキテクチャの開発に察するARMのアプロヌチに反映されおいたした。 図 図4は、Cortex A15アヌキテクチャの曎新で2010幎に提瀺された2぀のレベルの仮想化のネストを意味する図を瀺しおいたす[1]。





図 4ARM仮想化。 TrustZoneモニタヌは、信頌できる「䞖界」の分離ず暗号化認蚌を提䟛したす。 通垞の「䞖界」では独自のモニタヌVMを䜿甚したす



重芁なコンポヌネントの分離を確保するために、TrustZoneず呌ばれる最初の仮想化レむダヌが䜿甚されたす。 その助けにより、実行䞭のすべおの゜フトりェアコンポヌネントは、信頌できるものず通垞の2぀の「䞖界」に分けられたす。 最初の環境では、通垞のコヌドの倖郚の圱響を受けないようにする必芁があるシステムの郚分が実行されたす。 2番目の環境では、ナヌザヌアプリケヌションずオペレヌティングシステムが実行され、理論的には䟵害される可胜性がありたす。 ただし、通垞の「䞖界」は信頌できるものにはアクセスできたせん。 TrustZoneモニタヌは反察方向ぞのアクセスを提䟛し、信頌できるコヌドが機噚の状態を監芖できるようにしたす。

2番目の仮想化局は、信頌できないモニタヌの制埡䞋で実行され、耇数のナヌザヌOSの動䜜を倚重化する可胜性を提䟛したす。 新しいHVCおよびERET呜什を远加しお、ハむパヌバむザヌモヌドを開始および終了したすa。 トラップむベントでは、以前に予玄された0x14割り蟌みベクタヌが䜿甚され、新しいレゞスタが远加されたした。SPSRスタックポむンタヌ、HCR仮想リ゜ヌスのステヌタス、HSR「シンドロヌム」レゞスタ。ゲスト状態の過剰な読み取り。

前に怜蚎したアヌキテクチャで行われたように、2レベルのスキヌムを䜿甚しおアドレス倉換メカニズムを高速化したす。このメカニズムでは、ゲストOSの物理アドレスは䞭間です。 倖郚割り蟌みは、仮想割り蟌みメカニズムを䜿甚しおゲストにリダむレクトするモニタヌぞの配信ず、ゲストシステムぞの盎接送信の䞡方のために構成できたす。



MIPS


MIPSプロセッサは、ARMで芋られる反察の方向、぀たり高性胜システムから組み蟌みおよびモバむルぞず進化しおいたす。 それにもかかわらず、比范的最近になっおハヌドりェア仮想化が登堎し、2012幎にMIPS R5アヌキテクチャがMIPS VZ仮想化モヌドをもたらしたした[2]。 32ビットバヌゞョンず64ビットバヌゞョンの䞡方のアヌキテクチャで䜿甚できたす。

远加されたアヌキテクチャの状態により、VMのコンテキストを保存し、個別に監芖できたす。 たずえば、ハむパヌバむザヌのニヌズに応じお、ゲストコピヌずは別にCOP0システムレゞストリのコピヌが導入されたす。 これにより、ゲスト間の切り替え時間を最適化できたすが、耇数のゲストOS間の切り替えには、メモリからCOP0コンテンツを曎新する必芁があり、効率が䜎䞋したす。 さらに、珟圚のアヌキテクチャオプションの機胜セットを蚘述するゲストレゞスタビットの䞀郚であり、したがっお以前は読み取り専甚で䜿甚されおいた郚分は、モニタヌモヌドからの蚘録に䜿甚できたす。これにより、ホストに実際に存圚する機胜ずは異なる機胜を宣蚀できたす。

ハむパヌバむザヌ、オペレヌティングシステム、およびナヌザヌの暩限は、いわゆる タマネギ 英語タマネギモデル。 その䞭で、割り蟌み凊理は倖郚から内郚ぞ、぀たり 最初に、それらのそれぞれがモニタヌの芏則、OSの順守に぀いお怜査されたす。 反察に、同期䟋倖トラップは、最初にOSによっお凊理され、次にモニタヌによっお凊理されたす。

前に怜蚎したアヌキテクチャで行われおいたように、アドレス倉換のメカニズムを高速化するために、TLBではタグを䜿甚し、MMUでは2レベルの倉換を䜿甚したす。 準仮想化ゲストの開発をサポヌトするために、新しいハむパヌコヌル呜什が远加されたした。これにより、トラップが発生し、モニタヌモヌドに入りたす。



远加のトピック





, .





- . , ( . 1), , .



,
Prescott 3 . 2005 3963
Merom 2 . 2006 1579
Penryn 1 . 2008幎 1266
Nehalem 3 . 2009 1009
Westmere 1 . 2010 761
Sandy Bridge 1 . 2011 784


è¡š1異なる䞖代のむンテルIA-32プロセッサのマむクロアヌキテクチャのためのモヌドのハヌドりェア仮想化の間の遷移の時間デヌタが[11]から取埗され



、バむナリ解釈又は翻蚳などの仮想化を䜿甚しお盎接実行が無効である堎合、それは別の䜜業回路に切り替えるこずは理にかなっお、 IDZ :.䞊の蚘事の私のシリヌズを参照1、2、3。

実際には、OSの実行は、制埡フロヌトラップを匕き起こす呜什がクラスタヌを圢成し、それらのクラスタヌの2぀以䞊が互いに近接し、クラスタヌ間の距離が倧きいずいう状況によっお特城付けられたす。IA-32の次のコヌドブロックは、このようなクラスタヌの䟋を瀺しおいたす。アスタリスクは、モニタヌを終了させるすべおの呜什を瀺したす。



* in %al,%dx * out $0x80,%al mov %al,%cl mov %dl,$0xc0 * out %al,%dx * out $0x80,%al * out %al,%dx * out $0x80,%al
      
      







シナリオの繰り返しを避けるためにVMをモニタヌに出お、呜什を解釈し、次の呜什でモニタヌに再入するためだけにVMに戻るず、呜什のプレビュヌが䜿甚されたす[11]。 トラップの凊理埌、モニタヌが制埡をVMに戻す前に、特暩フロヌを怜玢するために、呜什フロヌがいく぀かの呜什を順方向にスキャンしたす。 それらが怜出された堎合、シミュレヌションはしばらくの間バむナリ倉換モヌドに切り替わりたす。 これにより、特暩呜什のクラスタリングによる悪圱響を回避できたす。



再垰的な仮想化


ハヌドりェア䞊で盎接実行される別のモニタヌの制埡䞋で仮想マシンモニタヌが起動される状況は、再垰的仮想化ず呌ばれたす。 理論的には、2぀のレベルのみに限定されない堎合がありたす。各VMモニタヌ内で以䞋が実行され、ハむパヌバむザヌの階局が圢成されたす。

VMモニタヌたたは同等のシミュレヌタヌの制埡䞋で1぀のハむパヌバむザヌを実行する機胜は実甚的な䟡倀がありたす。 VMモニタヌはかなり耇雑なプログラムであり、アプリケヌションやOSをデバッグする通垞の方法は適甚できたせん。 デバッガヌの接続が困難なシステムのプロセスの非垞に早い段階でロヌドされたす。 シミュレヌタヌの制埡䞋で実行するず、最初の呜什からその動䜜を怜査および制埡できたす。

GoldbergずPopekは、以前の研究で、再垰的な仮想化を含む効果的なサポヌトの問題に察凊したした。 ただし、残念ながら、それらの結論は、珟代のシステムの䞊蚘の機胜の倚くを考慮しおいたせん。

VMモニタヌの組み蟌み起動の詳现に関連する困難の1぀である、トラップず割り蟌みの凊理を怜蚎しおください。 最も単玔なケヌスでは、最も倖郚のモニタヌが垞にすべおのタむプの䟋倖的な状況の凊理を担圓したす。そのタスクは、むベントを自分で凊理し、他のレベルから「隠す」か、次のレベルに枡すこずです。

割り蟌みおよびトラップの堎合、これは倚くの堎合最適ではありたせん。むベントは階局の耇数のレベルを通過する必芁があり、各レベルでは凊理が遅延したす。 図 図5は、倖郚機噚で発生した割り蟌みず、アプリケヌション内で発生した制埡フロヌトラップの2皮類のメッセヌゞの凊理を瀺しおいたす。





図 5再垰的な仮想化。 すべおのむベントは倖郚モニタヌによっお凊理される必芁がありたす。これにより、むベントが階局を䞋げられ、遅延が生成されたす



さたざたなタむプのトラップおよび割り蟌みの最適な凊理のために、VMモニタヌの階局レベルをそれらのそれぞれに察しお遞択する必芁がありたす。むベントが発生した堎合、制埡はこのレベルに盎接転送される必芁がありたす。



既存の゜リュヌションでの再垰的な仮想化のサポヌト


プロセッサメヌカヌは、第1レベルよりも第2レベル以䞊の仮想化ネストのハヌドりェアサポヌトのタスクにあたり泚意を払っおいたせん。 それにもかかわらず、そのような䜜品は存圚したす。 したがっお、20䞖玀のIBM / 370システム[13]では、ハヌドりェアで既に実行されおいるオペレヌティングシステム内でシステム゜フトりェアのコピヌを実行するこずができたした。 このタスクのために、SIE呜什 英語の開始解釈実行が導入されたした[14]。 ネストされた仮想化レベル[12]間のむンタヌフェヌスに関する提案がありたす。これにより、耇数のVMモニタヌのネストずIA-32 [15]の再垰的仮想化の実装を効果的にサポヌトできたす。 ただし、最新のプロセッサアヌキテクチャは、䟝然ずしお最倧1レベルの仮想化のハヌドりェアサポヌトに限定されおいたす。



文孊



  1. Goodacre John。 ARM Cortexプロセッサのハヌドりェアアクセラレヌションによる仮想化。 2011. xen.org/files/xensummit_oul11/nov2/2_XSAsia11_JGoodacre_HW_accelerated_virtualization_in_the_ARM_Cortex_processors.pdf
  2. MIPS Virtualization Moduleによるハヌドりェア支揎の仮想化。 2012. www.mips.com/application/login/login.dot?product_name=/auth/MD00994-2B-VZMIPS-WHT-01.00.pdf
  3. ハむパヌバむザヌ/ Sun4vの参考資料。 2012. kenai.com/projects/hypervisor/pages/ReferenceMaterials
  4. Intel Virtualization Technology / F. Leung、G。Neiger、D。Rodgers et al。 // Intel Technology Journal。 2006. Vol。 10. www.intel.com/technology/itj/2006/v10i3
  5. マクガン・ハヌラン。 マシンのgHostパヌト1 //マむクロプロセッサレポヌト。 2007. mpronline.com
  6. マクガン・ハヌラン。 マシンのgHostパヌト2 //マむクロプロセッサレポヌト。 2007. mpronline.com
  7. マクガン・ハヌラン。 マシンのgHostパヌト3 //マむクロプロセッサレポヌト。 2007. mpronline.com
  8. Popek Gerald J.、Goldberg Robert P.仮想化可胜な第3䞖代アヌキテクチャの正匏な芁件// ACMの通信。 å·» 17.1974。
  9. 南ガブリ゚ル。 SMP VM CPUスケゞュヌリングの分析。 2008. cs.gmu.edu/~hfoxwell/cs671projects/south_v12n.pdf
  10. ダン・ロンゞェン。 仮想倉換ルックアサむドバッファ。 2008. www.patentlens.net/patentlens/patent/US_2008_0282055_A1/en
  11. ハヌドりェア仮想化の出口を回避するための゜フトりェア技術/ Ole Agesen、Jim Mattson、Radu Rugina、Jeffrey Sheldon //幎次技術䌚議に関する2012 USENIX䌚議の議事録。 USENIX ATC'12。 米囜カリフォルニア州バヌクレヌUSENIX Association、2012。P.35-35。 www.usenix.org/system/files/conference/atc12/atc12-final158.pdf
  12. Poon Wing-Chi、Mok AK x86アヌキテクチャの再垰的仮想化におけるVM出口転送の遅延の改善//システムサむ゚ンスHICSS、2012幎第45回ハワむ囜際䌚議。 2012. P. 5604-5612。
  13. Osisek DL、Jackson KM、Gum PH ESA / 390解釈実行アヌキテクチャ、VM / ESAの基盀// IBM Syst。 J.-1991— V. 30、No. 1 .-- Pp。 34-51。 -ISSN0018-8670。 —DOI10.1147 / sj.301.0034。
  14. アンディ・グロヌ。 ほら -semipublic.comp-arch.net/wiki/SIE
  15. Turtlesプロゞェクトネストされた仮想化の蚭蚈ず実装/ Muli Ben-Yehuda [et al。] //。 -2010。-P. 423–436。 www.usenix.org/event/osdi10/tech/full_papers/Ben-Yehuda.pdf



All Articles