龍芯中科推出LoongArch二進制翻譯應(yīng)用方案,加速完善國產(chǎn)平臺生態(tài)體系
一直以來,應(yīng)用生態(tài)都是國產(chǎn)軟硬件廠商聯(lián)合攻堅的重點方向。近日,為加速國產(chǎn)平臺生態(tài)體系的完善,龍芯中科推出了基于自主指令系統(tǒng)LoongArch二進制翻譯應(yīng)用解決方案,該方案以二進制翻譯為核心技術(shù),旨在消除指令壁壘,實現(xiàn)不同平臺應(yīng)用軟件的兼容運行,適用場景包括MIPS、X86、ARM平臺中廠商已停止支持的老舊軟硬件,以及MIPS、X86、ARM平臺中廠商無法提供充分技術(shù)支持的商業(yè)閉源軟件,為面向用戶構(gòu)建兼容生態(tài)提供堅實的技術(shù)保障。
基于自主指令系統(tǒng) 方案穩(wěn)定、高效、全兼容
龍芯架構(gòu)具有完全自主、技術(shù)先進、兼容生態(tài)三方面特點。LoongArch架構(gòu)在設(shè)計之初就充分考慮生態(tài)兼容需求,把實現(xiàn)將異構(gòu)平臺現(xiàn)有應(yīng)用軟件平滑遷移到龍芯平臺作為設(shè)計目標,除基礎(chǔ)指令、虛擬機擴展指令等指令外,LoongArch還包含二進制翻譯擴展指令,以支持龍芯二進制翻譯系統(tǒng)對其他架構(gòu)下二進制指令的高效翻譯。龍芯二進制翻譯系統(tǒng)基于LoongArch二進制翻譯擴展指令實現(xiàn),利用軟硬件結(jié)合的翻譯優(yōu)化技術(shù),實現(xiàn)跨指令集、跨操作系統(tǒng)間的應(yīng)用兼容、高效運行。
龍芯二進制翻譯應(yīng)用解決方案通過三個龍芯二進制翻譯系統(tǒng)LATM(LAT from MIPS)、LATA(LAT from ARM)、LATX(LAT from X86),分別支持MIPS、ARM和X86平臺的應(yīng)用在龍芯平臺的安裝運行。龍芯二進制翻譯系統(tǒng)作為中間層,通過架構(gòu)層支持與軟硬協(xié)同算法優(yōu)化,充分利用本地硬件,最大化提升模擬效率,為上層應(yīng)用軟件提供目標指令集的良好虛擬運行環(huán)境。

二進制翻譯技術(shù)是實現(xiàn)跨指令系統(tǒng)兼容的重要手段。二進制翻譯技術(shù)在宿主機(host)上用軟件模擬出一個目標機/客戶機(guest)指令系統(tǒng)兼容的CPU來,從而在宿主機上執(zhí)行客戶機的二進制代碼,達到兼容的目的。如在龍芯計算機上模擬X86指令系統(tǒng),從而實現(xiàn)與X86兼容。二進制翻譯的最大問題是效率問題,用純軟件模擬的CPU比硬件直接實現(xiàn)的CPU慢很多。如在龍芯計算機上使用二進制翻譯的方法運行X86二進制程序,比起把該程序直接從源代碼編譯成LoongArch指令并在龍芯計算機上執(zhí)行,運行速度一般有數(shù)量級的差異。
龍芯二進制翻譯系統(tǒng)利用動態(tài)二進制翻譯技術(shù),使用了多種軟硬件結(jié)合的翻譯優(yōu)化技術(shù),利用LoongArch指令集二進制翻譯擴展提供的EFLAGS運算標志指令與浮點特殊尋址模式支持,大幅減少翻譯代價,提升二進制翻譯程序的運行效率。
龍芯二進制翻譯解決方案具有三大優(yōu)勢
● 高效:基于軟硬件結(jié)合的高效二進制翻譯技術(shù),比傳統(tǒng)軟件模擬方式有數(shù)量級的性能提升。應(yīng)用級翻譯實現(xiàn)對3D加速、視頻編解碼等功能的硬件支持。
● 兼容:跨指令集應(yīng)用兼容運行,通過wine中間件可實現(xiàn)Windows到Linux的操作系統(tǒng)級別兼容,支持多平臺應(yīng)用在龍芯平臺的運行。
● 自主:與龍芯自主指令集設(shè)計深度協(xié)同,通過持續(xù)優(yōu)化改進翻譯器和指令集,實現(xiàn)更高效的翻譯與更廣泛的兼容性。
通過龍芯二進制翻譯系統(tǒng),基于wine中間件技術(shù)可以在龍芯平臺上流暢運行常用桌面應(yīng)用,如微信、Photoshop等。

此外,龍芯二進制翻譯系統(tǒng)支持硬件加速,可充分利用硬件性能,加速音視頻、3D等應(yīng)用場景,基于龍芯二進制翻譯系統(tǒng)可在龍芯平臺上流暢運行CS等3D游戲,后續(xù)將持續(xù)適配更多X86平臺上的應(yīng)用。
