众所周知,对于芯片(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下的生态。
如今通过二进制翻译功能,让龙芯可以使用上各种各样的操作系统下的软件,想必对于龙芯进入个人消费市场,是一件大好事。