比特網 發(fā)表于:14年05月09日 09:17 [轉載] 比特網
CPU和VMM
VMM能發(fā)展到今天這個地步是無人始料的,一開始就是玩玩,沒想到玩了個大的出來。有不少人持有上述觀點,其實這個觀點只是表象。虛擬機技術起源于大型機,中小型機上早已也使用了多年,所以VMM可并不是玩玩。大機小機都是封閉市場,技術也確實牛。開放市場領域很多技術其實都是源自大型機小型機。虛擬機顯然是單機性能過剩,而多機整體資源又無法得到全局細粒度池化分配時代的產物。VMM虛擬CPU,虛擬IO設備,虛擬內存,一開始全用軟件實現,每一條指令解釋執(zhí)行,后來優(yōu)化了設計,但最終還是要監(jiān)控和截獲+虛擬那些敏感和特權指令,每個進程還要虛擬出額外頁表從而虛擬內存,IO需要經歷重重內存拷貝才能發(fā)出去一個包,要想商用的話,軟件各方面開銷實在是搞不定了,此時還得硬件出馬,在CPU層面提供硬件輔助,IO設備也開始有了SRIOV/MRIOV的方案,我總感覺這次硬件反而有點“過度”定義了,被軟件騙了一回。為什么呢?就因為硬件資源不能做到池化和細粒度切分,才會產生VMM這個尷尬的東西,而此時硬件仿佛走火入魔了,弄出一系列復雜的技術來支撐VMM。其實硬件還有另一條路可以走,同樣可以實現VMM類似的效果,那就是讓硬件變得可以切分,而不是用軟件去切分。這條路在小機系統(tǒng)上曾經有人嘗試過,采用總線級別的隔離開關來切分不同的CPU和內存以及IO槽位。要實現細粒度切分的前提是必須把硬件最小切分粒度降下來,單CPU使勁增加性能其實已經不是一條比較明智的路線了。近幾年眾核CPU不斷冒出頭來,單CPU128個核心已經不是什么驚訝之事了,但是由于生態(tài)尚未成熟,它們目前仍被局限在并行度高耦合度低的處理場景比如網絡包處理等。另一個跡象就是ARM生態(tài)的崛起,種種跡象表明這很有可能是一條光明大道。但是如何將傳統(tǒng)生態(tài)導向這個道路上就不那么簡單了。我們看到Intel正在搞SiPh硅光方案,其致力于硬件資源的靈活拼搭,如果粒度足夠細,VMM其實就可以退出舞臺了,這將又是一場硬件拆臺軟件的血腥戰(zhàn)斗。