2012年10月20日

歷史性時刻!ARM首次成功模擬運行x86

ARM在移動領域風生水起,但是要想在桌面和服務器上佔領一席之地,最大的麻煩就在於不兼容最為普及的x86代碼系統和程序,而出路只有兩條:要麼大力推進自己的生態系統,要麼模擬運行x86,就像曾經的全美達那樣(下場比較慘)。

今年七月份,英國廠商Boston Server推出了基於Calxeda ARM架構處理器的服務器「Viridis」,之後也一直在披露其工作進展,近日更是豪氣萬丈地官方宣佈了一個歷史性時刻的到來:這套ARM平台第一次成功運行了x86代碼!

過去一段時間裡,Boston一直在和來自Eltech的工程師團隊就此進行合作。這家貌似來自俄羅斯的公司正在ARM服務器上開發能夠運行x86程序的軟件,並且已經成功開發出了一種可作為模擬器使用的二進制轉換器(binary translator),能夠發揮出大約45%的原生ARM性能。

雙方在Viridis平台上進行了六大類別的深入測試後,將這一模擬效率提高到了65%,並且會爭取在近期繼續提高到80%,乃至更高。

雖然Boston拒絕披露具體細節,但是AnandTech網站分析指出,Eltech的模擬器是實時翻譯、運行x86代碼的,因此整個模擬器會有些偏大,畢竟它要在兩套完全不同的指令集架構之間牽線搭橋,不同於VMware那樣在x86-x86之間轉換。

據稱,Eltech使用了1MB的轉換器緩存,這意味著代碼轉換可以重複利用,但隨著緩存逐漸填滿,重複利用率就會迅速降低,而且只有相對輕便的代碼才能運行得比較快,獲得宣稱的45-65%的轉換效率。

但是我們知道,大多數服務器應用的代碼和指令都很大,所以Eltech的轉換器能否高效率運行它們也有待觀察。高性能計算軟件倒是相對不那麼複雜,但這玩意兒對處理器性能要求又特別高,很難說服他們放棄x86、改用ARM再去模擬x86(何苦來著)。

總的來說,二進制轉換器在特定場合下還是有用的,比如某些特定的Web應用軟件不算很大,又是閉源的,沒有ARM版本,但除此之外就很難說了。ARM服務器真想闖出一片天地,最穩妥的還得是催生一整套針對ARM架構完全優化編譯的Linux軟件。

历史性时刻!ARM首次成功模拟运行x86

 

沒有留言:

發佈留言