人文艺术 > 为什么我国自主设计的CPU基本上都是精简指令集,复杂指令集是要

为什么我国自主设计的CPU基本上都是精简指令集,复杂指令集是要

2020-07-20 20:54阅读(77)

为什么我国自主设计的CPU基本上都是精简指令集,复杂指令集是要过时了吗?:精简指令集(RISC)的代表ARM确实占领了手机等移动市场,但没必要把它捧上天,复杂指

1

精简指令集(RISC)的代表ARM确实占领了手机等移动市场,但没必要把它捧上天,复杂指令集(CISC)的代表英特尔和AMD的CPU也并非一无是处,仅在性能和兼容性上的两大优势,就是ARM的处理器无法替代的。所以现在断言复杂指令集(CISC)过时,有点言之过早。

打个比方,复杂指令集(CISC)的代表英特尔处理器相当于三国演义中的曹操,占据最有利的地形,兵强马壮(PC领域和服务器领域绝对的王者);

精简指令集(RISC)的代表ARM处理器相当于东吴,实力也不弱,曾击退曹操百万大军(在移动领域打败英特尔);

而精简指令集(RISC)阵营的另一代表是MIPS处理器,相当于蜀汉。三者关系详见下图:

“曹操”英特尔能混到今天的地位,靠的是什么?靠的是强大的性能和良好的兼容性。

先说性能。

没错,复杂指令集(CISC)的缺点是指令集臃肿,但这个缺点也是它的优点,因为指令多意味着能完成的功能也多,性能也强大。英特尔处理器近几年增加了几百条MMX、SSE指令,提高了执行多媒体程序和其它特殊程序的性能,所以成为工作站、服务器、游戏机等高性能CPU的绝对首选。

在这些对计算性能要求高的场所,打酱油都是同为复杂指令集(CISC)的AMD处理器(服务器市场份额为5%),ARM的份额基本等于零。

此外,英特尔处理器在1995年让复杂指令集(CISC)这棵老树发出了新芽,发布的Pentium Pro处理器采用著名的P6微架构,成为教科书式的一代经典。其经典之处在于,X86指令集(属于CISC)先解码成类似精简指令集(RISC)的微操作(microoperations),然后采用RISC内核执行。这句话读起来太专业晦涩?不要紧,记住这句话就行:现在的英特尔处理器,相当于用复杂指令集(CISC)这张饺子皮,包着精简指令集(RISC)的馅儿

P6架构虽然复杂,但提升了性能,不仅让复杂指令集(CISC)这颗老树成功发芽,还开花结果,越来越繁盛,20多年来不仅统治PC市场,还在服务器领域将精简指令集(RISC)CPU碾成渣渣,逼得其代表ARM只能向低功耗和嵌入式方向发展,最后遇上手机崛起,才由衰转盛,和霉运说拜拜。

和英特尔硬抗到底、不愿撤退的Power处理器,现在坟头树已经有合抱粗了。

精简指令集(RISC)CPU败给英特尔,主要就栽在了兼容这道坎上。

IBM最先提出RISC思想,开发的Power处理器性能强过CISC指令集的老大英特尔处理器,还拉来苹果、摩托罗拉、SUN公司、微软等成立软硬件联盟,但最终结果是,英特尔凭借良好的兼容性,打败了Power处理器,苹果也转投英特尔怀抱。这就是兼容的威力。


性能和兼容是两大指令集交锋的重点,其中兼容又是决定性因素,因为它牵涉到生态问题。现在CISC指令集CPU主要集中在PC和服务器领域,RISC指令集CPU主要占据移动和嵌入式设备,井水不犯河水,就是因为两大阵营都建立了各自强大的生态系统,想犯也没有用。

至于以后,RISC指令集中的ARM处理器是否会一统天下,CISC指令集中的英特尔处理器是否会因此被淘汰,这个谁也不好说,但在可见的未来,两大指令集系统还是会保持互不侵犯的状态

说过CISC指令集并不过时、生命力依然旺盛后,现在可以回答题主问题了。我国自主设计的CPU基本采用RISC指令集,主要因为它是一个开放的生态,花钱可以买指令集授权,买IP核搞集成设计,总之可以随意买买买。而CISC指令集是一个封闭的生态,代表是英特尔处理器,目前仅授权AMD,给钱人家也不卖。

2

直接一句话道出根本原因:想用复杂指令集但得不到授权,没办法,只能使用精简指令集。吹精简指令集属于自欺欺人。

3

国内对RISC的认识程度还可以,但是对CISC的认识程度很浅。

.

因为大多数研究生甚至是教授老师,认为CISC就是x86那样的指令,这其实是个很大的误解。

.

对CISC的理解,要从Cray-1的架构去理解才能有比较深入的认识。看了Cray-1之后,在去把NEC的SX系列看一下。

.

NEC的SX系列可以认为是CRAY-1的传承,他的指令集在35年内(从1983年的SX3开始,到今年已经是37年了)都保持了兼容性。

.

看了Cray-1和NEC SX之后,你才知道什么是真正的CISC,它的设计意图是什么,它取得了什么收益。

.

举个例子。

.

NEC SX的向量寄存器的宽度是256个Element,每个Element是64比特位宽的双精度浮点数或者CRAY的浮点数格式,或者将其理解为Packed Data,即512个单精度浮点数。

.

但他的实际执行单元SIMD单元的位宽为4个或8个或16个或32个Element(从SX3到SX-Aurora一直在变化)。也就是说,单条指令可以让执行单元在十几个或数十个时钟周期内都保持为Busy状态。

.

这大大减少了取指的开销、分支预测的压力,并且更容易做指令的调度、访存的Merge等等。

.

这才是CISC的精髓,它是为了提高硬件单元的利用率。而Intel的CISC呢?只是为了降低硬件成本而已。

.

所以,你根据Intel的CISC去研究CISC,那不是被带到沟里了吗?

4

没用过汇编的人,是没有资格评价指令集优劣的。

要想评价精简指令集和复杂指令集在应用层面的优劣,必须同时熟悉两种指令集,并有过成熟的应用才可以,否则就是耍流氓!

精简指令集最大的优势是设计和制造环节,在应用层面,复杂指令集完胜,不接受反驳!

5

RISC才是王道



6

至少在通用处理器领域,复杂指令集不是要过时了,而是已经过时了不知道多少年了。

早期CPU多倾向于提供较为复杂的指令试图帮助用户更自然地使用计算机,倾向于提供较少的寄存器而在指令中使用很多内存操作数。这种指令集如今被称为复杂指令集(CISC)。但是,后来研究者发现,复杂的指令利用率并不高,大部分时候计算机执行的都是简单指令,同时使用大量内存操作数的指令执行很慢(内存速度增长和CPU速度增长间存在剪刀差)。于是,为了进一步提高处理器速度,精简指令集(RISC)被提出了。RISC倾向于提供专门的load store指令进行访存,运算指令只使用寄存器操作数,将慢速操作和快速操作分离;同时,RISC倾向于提供更多通用寄存器(得益于编译技术的进步,精简指令集提出时编译器有能力充分利用RISC提供的众多寄存器),这使得访存总次数得到了有效降低,大量计算可以仅在CPU内寄存器间完成。同时,RISC技术还让指令更利于流水线操作,可以利用流水线技术提高处理器性能。

现在存在的所谓CISC处理器,如x86,其内部也已经将复杂指令拆成近似RISC的微指令再去执行。他们之所以仍保留CISC的表象,只是为了兼容原有软件。

以上内容在各类计算机组成原理、体系结构课本中不难找到说明,有兴趣者最好参考有关书籍而非可能不那么精确的网上回答。


自主设计的CPU大多采用RISC指令集也不奇怪。CISC的ISA大多很难获得授权,RISC中MIPS、RISC-V、Alpha甚至ARM的授权都算相对容易获得。在不打算另起炉灶完全从头开始打造软件生态的情况下兼容已有标准实现这些RISC风格ISA的选择非常自然。RISC的ISA设计还免去了将CISC的指令拆成微指令组合再去做流水线这一繁杂过程,也有利于减轻处理器设计者的负担。

7

随着手机等移动设备功能越来越强大,传统桌面电脑市场越来越萎缩,尤其精简指令架构开始进入服务器市场。复杂指令架构应用会越来越少的。能耗和封闭性会慢慢侵蚀它的生命。

8

以前因为性能太低,所以用指令的复杂度来换取效率的提升,当前的芯片制程的不断提高已经可以允许精简指令集也可以有不错的效率了,所以整个业界都或多或少的重新拿起精简指令集,并且愈来愈推崇。我们国家的芯片工业本来就薄弱,好处也是没什么负担,既然精简指令集是未来方向,现在就着眼于更有未来前景的也无可厚非。

9

我们面对的不仅仅是编一套指令集,我们还要与CPU届的巨无霸争客户(主要体现在架构上),并且还得绕过别人的知识产权保护,相对于这三点来说,编一套指令集相对容易。

10

这么说吧精简指令集是进化版本,是没有历史包袱的,英特尔AMDCPU是是在抛不开,没办法,可不要认为精简就是复杂的阉割版哦,多的不说,就看游戏的电脑版和手机版有区别吗