當前位置

首頁 > 商務英語 > 實用英語 > 電腦cpu的vt是什麼意思

電腦cpu的vt是什麼意思

推薦人: 來源: 閱讀: 1.83W 次

大家誰知道電腦CPU的VT是什麼意思啊?我們來了解看看。下面是本站小編給大家整理的電腦cpu的vt是什麼意思,供大家參閱!

電腦cpu的vt是什麼意思
  電腦cpu的vt是什麼意思

被稱為Vanderpool的虛擬技術簡稱VT,是英特爾公司處理器市場策略的一部分,英特爾公司的策略是向用戶提供的實用功能而不是增長的效能。VT能夠使使用者在他們的個人電腦上建立多套虛擬的執行環境以便能夠使同一臺個人電腦上能夠執行不同的作業系統。VT還能夠允許IT技術管理員下載系統補丁或者升級個人電腦的一部分的同時,使用者能夠在另一個虛擬環境中執行他們的應用程式。

  VT技術存在的問題

在採用英特爾® 架構(IA)的系統上,虛擬化是一種純軟體解決方案。Microsoft Virtual Server* 、Virtual PC*、VMware ESX* 和 Workstation* 等產品(稱為“虛擬機器* ”(VMM*))可處理英特爾架構系統的所有虛擬化問題。由於 VMM 必須建立一種規則,使主機作業系統直接與硬體進行通訊,因此它必須採取一些措施。虛擬機器主要採用以下兩種方法:

半虛擬化:此項技術要求更改作業系統、特別是核心的原始碼,以便其能夠在指定的 VMM 上執行。此方法類似於大型機方法,其中定製作業系統擴充套件與硬體配合密切。當然,半虛擬化將不能與商業化作業系統協作。

二進位制譯碼:VMM 在作業系統二進位制程式碼載入到虛擬機器時對其進行更改。這一方法在支援英特爾架構的商業產品中十分常見,唯一的限制是只能安裝特定版本的作業系統,而新版本的作業系統均需要測試和驗證,並可能要求對 VMM 軟體進行升級。

兩款解決方案共同的問題在於軟體無法與基礎硬體協同工作,因此必須採用一些複雜的方案向軟體模擬某些硬體特性,同時讓主機作業系統誤認為該虛擬機器是另一個應用。此外,VMM 還面臨著其它技術挑戰。

  VT技術的作用

VT的目的是在儘可能最小化程式設計師痛苦的同時儘可能多的增加“virtualization holes”(虛擬化孔)。這種解決方案中,VT-X針對X86而VT-i針對Itanium,分別引入了一種新的模式針對不同的CPU.這裡我們主要來看看VT-X,實際上VT-i的功能與VT-X有很多相同的地方。

這種新的模式被稱為VMX,並且引入了一個虛擬化機監控器VMM運行於其中。它被設定在R0級別下,你可以認為是R-1級或者看成是在環的旁邊執行。主機作業系統和所有的程式在VMX模式中執行,與此同時VMM執行在VMX根模式中。

任何一個執行在VMX模式下的作業系統,都擁有所有運行於非VT系統中的一般作業系統的功能和特性。它也處在R0級別中,與平常一樣有權利處理每一件事情,而且並不知道有什麼東西正在它的旁邊執行。當情況得到授權,CPU進入VMX根模式,VMM就可以切換到其他一個執行在另一VMX例項的作業系統。這些切換被稱做VM登入和VM退出。

VT技術所表現出來的不可思議的地方就在於它將從VMX模式到VMX根模式(或從VMX根模式到VMX模式)的登入和退出處理易於操作。一旦主機作業系統被涉及到,那它一定是獨自處在自己的世界裡的,你必須儲存虛擬化世界的完整狀態並當你返回時重新載入它。雖然在VT裡還有很多事物要去處理,但它被設計為一項任務,所以客觀地說它實際是一個簡單而並不費力的程序。

因為每一個作業系統例項都在正確的位置執行,所以前面所提到的4個問題也就不存在了。相關聯的工作區也不再需要,與此有關的系統開銷沒有了。這些能有效提高速度。但這些並非免費,只是付出的代價要少很多。

啟動一個新的主機作業系統,你需為其留出一塊4kB的儲存區並將它傳遞給一個VMPTLRD指令。這塊區域將用來儲存該系統例項不被啟用時的所有狀態和重要Bit位。只要該作業系統例項存在,則這塊區域一直有效,直到在其上執行一條VMCLEAR指令。這樣就設立了一個虛擬化機例項。

如果你想要把控制權交給虛擬化機,你要麼登入VMX非根模式或簡單一點,執行VMX模式即可。這些提到的VM登入指令就是VMLAUNCH和VMRESUME,兩者並沒有太大的區別。VMRESUME指令只是簡單地從剛開始已經初始化的4kB儲存區裡載入CPU狀態,並把控制權交給主機作業系統。VMLAUNCH做的也是同樣的工作,但它會啟動一個虛擬化機控制構件VMCS,它包含一些設立VM的現場背後的記錄,因為這需花費一些時間,所以人們儘量避免在併發登入時使用VMLAUNCH.

從這一點來看,主機作業系統開始了它的愉快之旅,儘可能地運轉,毫無察覺是否有其他東西正在它的一旁執行。正如過去所計劃的一樣,它存在於自己的世界裡,全速執行,或接近全速。唯一的問題是你如何打破這一切美好的景象而將它關閉到一邊,以使得機器裡的其他作業系統能真正執行。這就是VT技術所體現出來的複雜的一面——VMCS中一些特別的位映像。

這些位映像是一些32位的欄位,每一個Bit位標誌一個事件。如果某個事件被觸發,則對應的Bit位被置位,CPU觸發一條VM退出指令,並將控制權返還給執行在VMX根模式下的可做任何想做的事,然後將VMRESUME指令傳遞給下一個作業系統,或剛離開的那個作業系統。這個被啟動的作業系統同樣很好地執行著,直到觸發另一條VM退出指令。如此這樣以每秒上千次的速度重複著。

什麼能觸發這些指令呢?它們可以是引腳訊號、CPU、異常和頁面錯誤這些平臺事件,所有這些都會觸發VM退出指令。VT技術的完美之處在於它有很強的適應性,另一個與此類似之處就是在除錯程式中設定斷點,你可在每個事件上都設定一個,或者一個也不設定,這都取決於你自己。

引腳訊號事件要做的是當有一個內部中斷或一個不可遮蔽中斷髮生時,則觸發退出指令。而CPU事件,則是當你設定任意Bit位在某一欄位,當相應的CPU狀態接收到它時,則觸發退出指令。雖然大多數指令需要去設定,但也有一些指令無條件地引發VM退出指令。這是在一個非常細小的層面上控制VM,允許每當你需要時登入和退出。

異常位映像也是一些32位的欄位,每個Bit位標誌每個32位指令地址的異常情況。如果Bit位被設定並有一個異常被丟擲,它就會引發VM退出指令。如果Bit位是空的或沒有異常,那麼主機作業系統則繼續它的快樂之旅,與平常一樣。這是一種從VMX模式退出而進入VMX根模式的系統開銷非常低的方法。

最後還有頁面錯誤退出,它與異常退出十分相像,只不過它用兩個32位欄位來控制。這些欄位內的Bit位對每一個可能出問題的頁面錯誤程式碼進行映像,因此你可細心地從中挑選從哪裡退出。同樣,它也是基於很細小的層面,系統開銷也很低。

在計算機裡,VT工作在一個比傳統的R0環更有特權的級別中。任何一個主機作業系統都可在沒有改變的舊有架構下執行,並且不知道一個控制程式在控制它們。當遭遇到某些使用者設定的觸發器,控制權將被轉交給執行在更高級別的VMX根模式上的VMM.因為這是一種被動觸發事件,而不需被積極監視,因此係統開銷降到了最低限。

VT技術使得安裝和解除安裝那些比以往VM模式更穩定的執行環境變得簡單。如果你需執行虛擬化系統,沒有理由不用一個擁有Vanderpool功能的CPU去實現它,而軟體虛擬化機會逐漸不被人關注。

這也許不錯,但必須記得,這必須付出代價。每一次登入意味著建立4kB的儲存區域,每一次退出要向這4kB儲存區內寫入資料。這看上去有些耗費過多,可與那些較老的方式比較,它的速度驚人地快。