当前位置:谷粒网 > 生活妙招 > 正文

cpu指令集有哪些 (国产CPU指令集)

作者:谢颖逸 生活妙招 2023-04-19 01:02:25 阅读:27

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

精简指令集(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,给钱人家也不卖。

处理器的微架构是什么?它与指令集的关系是什么?

我们在装机,挑选硬件尤其是CPU时,总会听到“采用xxx架构的xxx处理器”,而通常我们在选择CPU时,很多玩家也会考虑购购买什么架构的处理器。而到现在智能手机成为主流的时代,我们也知道了什么叫“苹果A12”“高通骁龙855”。虽然我们都在说架构,但是还有一个与处理器息息相关的名词,叫做指令集。虽然很多朋友也知道“x86”“Arm”,但是“微架构”与“指令集”有什么关系呢?

Skylake处理器架构细节之一

首先要看这两个名词是面向什么的。指令集是一款CPU处理指令及数据的规范,我们只能通过输入指定格式的指令才能操作计算机。而这个是面向程序员和用户层面的。而微架构是面向CPU设计人员的,通过设计处理器的指令执行单元,当完成整个设计时,组成的一整套执行规定指令的微处理器的架构就叫“微架构”。

AVX指令中的3操作数和4操作数格式

前面提到了指令集就是“规范”,这也就意味着他能指导CPU设计人员通过阅读“指令集规范”这本“指南”来设计CPU。而CPU设计人员通过阅读这本规范后设计出来的CPU结构就叫“微架构”。举个简单的例子,就是小学老师教会我们如何解决一元二次方程,但题目是很多的,我们就需要通过解题方法来解决这些实际的问题。这里“解题方法”就是指令集,而“具体的题目”就是微架构了。

AMD推出的x86-64规范,图片来自Wikipedia

讲到这里更正式的表述就是“微架构”就是“指令集”的具体“实现”。所以从我们日常使用中就可以举例,AMD和英特尔同样都是采用x86指令集的处理器,但是他们处理器具体微架构是不同的,这就是典型的“实现”问题。而近期发布的Arm Cortex-A77处理器微架构,其采用的是Arm v8.2指令集,其前代微架构Cortex-A76也是采用的Arm v8.2指令集。所以从软件开发层面上讲,其汇编语言也是相同的,所以两者就可以使用相同的操作系统,基本相同的软件,而基本不需要重新开发编译。

Cortex-A77处理器微架构解析

不过在具体设计处理器微架构时,不同的处理器在缓存、分支预测等结构会有不同,所以虽然可以执行相同的指令,但为了让软件在该处理器上运行更快,所以会针对缓存命中等进行优化。这种优化主要是软件层面的,所以既可以通过汇编语言,也可以通过编译器进行,最终提升软件执行效率。

最后总结一下,指令集需要通过微架构去实现,而采用相同指令集的处理器即使微架构不同,其也可以运行相同的程序(一定条件下)。处理器虽然采用相同指令集,但微架构不同的处理器,在缓存设计等方面存在差异,所以也会有通常处理器厂商也会为开发调试工具甚至是编译器等方式优化软件在自家处理器上的运行效率

版权声明:本文内容由用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。转载请注明出处:https://www.gulizw.com/guli/29188.html

网友评论

  • 随机文章

  • 热门文章

  • 最新文章