眾所周知,對於晶片(CPU)而言,晶片架構基本上就對應了作業系統(生態),比如ARM架構,對應的就是安卓生態,而X86架構對應的就是windows生態。
原因是晶片架構對應的是一種指令集,而作業系統,是晶片與軟體中間的翻譯者,作業系統將軟體執行翻譯成指令讓晶片執行。
所以跨平臺的生態使用,是非常難的,因為作業系統就沒法翻譯,比如X86架構下的windows要執行安卓的軟體,或者ARM架構下的安卓等系統要執行windows軟體,都不容易。
當然,不容易並不是指不能做到,真要去做,還是做得一以的,只是比較難,辦法一般是透過二進位制轉譯功能。
舉個例子,蘋果使用上了M1晶片後,改成了ARM架構,但原來MacOS下的軟體都是X86架構的,怎麼辦呢?於是蘋果做了一個名叫 Rosetta 2 的指令翻譯器,將X86架構下程式的指令進行轉譯成ARM架構下指令,這樣就算是M1晶片,也實現了對傳統 X86 架構程式的支援。
而蘋果的這種做法,也讓龍芯學了一招,在龍芯全面採用自研的LoongArch指令集後,也開始搞二進位制翻譯功能,在LoongArch指令中包含了用於加速二進位制翻譯的LBT子集,能夠模擬相容MIPS、ARM及x86指令集。
按照龍芯胡偉武的說法,LoongArch指令集對MIPS指令的翻譯效率是100%,對ARM可以達到90%,最難的是x86,在Linux下翻譯的效率可達80%,Windows下的效率還要減少到70%。
而近日,有網友正式對這個功能進行了全面測試,並放出了影片、測試圖等,發現雖然是在linux系統下,但還真的能夠使用windows、linux、安卓的程式,只是相比於原生的程式,執行稍慢一點點,畢竟轉換有效率損耗的。
事實上,龍芯之所以沒有進入普通消費者市場,就是因為龍芯無法使用windows,而大家習慣了windows下的生態。
如今透過二進位制翻譯功能,讓龍芯可以使用上各種各樣的作業系統下的軟體,想必對於龍芯進入個人消費市場,是一件大好事。