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軟件。