关于处理器指令集和微架构

2023-03-27 15:58:57 浏览数 (1)

大家好,前段时间小伙伴测试了两款服务器处理器,同是armV8指令集架构,结果差别巨大,可以看出两家公司在微架构设计能力上的差距。

借着这个话题,今天cloud3聊聊处理器的指令集和微架构。

指令集

指令集就是我们常说的架构,CPU执行计算任务时都需要遵从一定的规范,这种规范或语言就是指令集(ISA,Instruction Set Architecture),它规定处理器相应操作,通过指令集去控制处理器实现相应功能。

常见的指令集有x86、ARM、MIPS 、 Alpha、 RISC-V、Power等,除x86 是CISC 指令体系外,其他都是RISC指令体系的指令集。

指令集可以被扩展,如x86增加64位支持就有了x86-64。厂商开发兼容某种指令集的CPU需要指令集专利持有者授权,典型例子如Intel授权AMD,使后者可以开发兼容x86指令集的CPU。

微架构

CPU核的实现方式被称为微架构(Microarchitecture),它是处理器的硬件架构,是一堆硬件电路,去实现指令集所规定的操作运算。

在相同指令集架构的规范下,如何设计硬件电路,每个人实现是不同的,所以设计出的微架构也不相同。

例如AMD的x86指令架构是Intel 授权给他们的,虽然AMD 采用的也是x86 指令集,但Intel 可没把硬件实现方法也告诉AMD,如果实现方式一样了,那不成了一样的CPU了。这就是指令集相同,微架构不同。

总结起来,指令集是CPU选择的指令编码,而微架构是具体物理实现方式。

我们平时所说的Haswell、Cortex-A57、Cortex-A72、Kyro 这些都是指CPU的微架构,其中Cortex系列为ARM公司的微架构,任何公司可以购买,也就是我们所说的公版架构,Kyro是高通自己基于ARM指令集设计的微架构,是构建在ARM指令集的生态上的微架构。

关于ARM授权

ARM公司有自己研发的ARM指令集,同时它还研发具体的微架构如Cortex系列并对外授权。ARM的授权就是从这两个层次上进行的,一种是指令集授权,一种是微架构授权。

如果是指令集授权, 仅购买ARM的架构/指令集(ARMv8、ARMv9),然后自己研究兼容ARM指令集的微架构,例如苹果公司可以使用ARM指令集设计自己的微架构,甚至可以对ARM指令集进行扩展,从而出现了苹果公司自己的'swift架构'。

如果是微架构授权,只能是在arm微架构基础然后在加上自己的外设,最后形成了自己完整的SoC。

自主研发微架构才是

IC设计实力的体现

最能体现CPU设计能力的是微架构的设计能力,微架构的研发也是IT产业技术含量最高的领域之一,业界认为一个企业只有具备独立的微架构研发能力才算具备了CPU研发能力。

因为CPU的微架构的设计非常复杂,CPU微架构包括缓存管理,缓存设计,乱序执行,超标量,超流水线,内存控制,分支预测等众多的极其复杂的电路,这些结构的效率是直接决定CPU性能的,所以微架构才是决定处理器好坏的主要因素。

高通、苹果、华为、龙芯等是自主设计的这些电路,所以说是自主的CPU微架构,只是用了ARM的指令系统和寻址方式而已。微架构玩的最好的当属苹果,华为鲲鹏920也是遵循armV8指令集的自研微架构,我国的龙芯也只是用了MIPS指令系统,但微架构也是自己设计的。

我们为什么不设计一套指令集?

要明白一点指令集与操作系统和编译器是紧密相连的,目前主流移动操作系统有Android和IOS,他们是arm的最亲密战友,X86指令集上面有windows这颗大树。

如果你设计一套新的指令集架构,上面的生态是大问题。所以你看华为、三星、高通都买arm的授权,其实买的是一种生态。

现在龙芯LoongArch是国内第一套完全自研的指令集,算是龙芯从原来的授权 自主指令集的模式的道路上走了一段时间之后的突破吧。

我是cloud3

0 人点赞