中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助
鲲鹏小智

为什么要做软件迁移

图1左边是计算的技术栈,计算机是由软件和和硬件组成。下面是硬件的最底层,由物理材料、晶体管来实现门电路和寄存器,再组成CPU的微架构。上面是软件,由各种语言开发出来的程序。在中间的是CPU指令集,它是软硬件之间的接口,程序是通过指令集中定义的指令来驱动硬件完成计算。

图1右边是程序执行的过程,程序通常是由C/C++/JAVA/Python等高级语言开发,高级语言经过编译后得到汇编语言,再由汇编器生成二进制的机器码。机器码其实就是由指令和数据组成的。所以,程序要在CPU上执行,必须要使用CPU能够支持的指令。

图1 计算机技术栈与程序执行过程

一行简单的C/C++代码,c=a+b,分别在x86处理器和鲲鹏处理器上编译后生成的指令有很大的不同,如表1所示。

表1 指令差异

处理器

汇编指令

CPU指令

x86

三条mov指令和一条add指令。

指令是变长的,有24位的,也有16位的。

鲲鹏

两条ldr指令将数据加载到寄存器,一条add指令完成加法运算,最后再使用str指令将结果存储到内存中。

指令是定长,32位的。

所以CPU处理器所使用的指令集的差异,决定了x86上编译后的程序无法直接在鲲鹏上运行,这就是使用鲲鹏处理器后需要做软件迁移的原因了。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词