ARM(RISC)和x86(CISC)的技术差异

2019-12-04来源: eefocus关键字:ARM(RISC)  x86(CISC)  技术差异

RISC和CISC,这一对冤家,从诞生之日开始就处在不停的纠缠之中。直到今天,两者经过多年的发展后,都在各自领域打开了一片天地,并且相互渗透。RISC专注高性能、高性能功耗比、小体积以及移动设备领域,CISC专注桌面、高性能和民用市场。现在,RISC的代表是ARM,而CISC的代表则是我们耳熟能详的x86。那么,他们的技术差异在哪里?究竟是怎样的技术分歧带来了两者如此大的差别呢?

ARM(RISC)和x86(CISC)的技术差异。

指令集的出现

要说清楚RISC和CISC,也就是今天热门的ARM和x86之间的差异,还得把时间往前推一些,观察计算机诞生之初的一些事情,才能很清楚地了解指令集、精简和复杂之间的关系。

 

机器语言的实例
机器语言含义
0000,0000,000000010000代表 LOAD A, 16
0000,0001,000000000001代表 LOAD B, 1
0001,0001,000000010000代表 STORE B, 16
0001,0001,000000000001代表 STORE B, 1

 

今天学生学习计算机实在是太幸福了!今天有大量的可视化的操作方式,有成熟的各种接近自然语言的编程语言,在这些语言中还有很多写好的库用于完成那些固定而复杂的任务。这种“幸福”的计算机的学习和使用过程,你完全不应该觉得困难——请注意,如果和上个世纪七十年代的计算机使用者比起来,真的好太多了。

老式的计算机,使用纸带进行输入输出,效率极其低下。
老式的计算机,使用纸带进行输入输出,效率极其低下。


上世纪70年代末期,计算机的出现虽然带来了各种方便,但也带来了各种不方便。首先就是编程。当时没有类似今天这样的高级的、接近自然语言的、各种逻辑都非常完善的编程语言,而是采用最底层的机器语言来写命令。


机器语言和后来的汇编语言,在使用中都显得很麻烦,可读性差,并且很难维护。此外,还有最重要的一点是,这些语言都比较“笨”,如果要计算一些稍微复杂的操作比如乘法、除法、三角函数、微积分、方程等,每次计算都需要重新编写程序(在纸带上打孔输入数据的时代,是没有“粘贴+复制”的方便功能的)。


于是人们想了一个方法,对一些比较常用的指令,比如积分、微分、乘除法等,干脆写一套标准的程序,留下输入数据的接口。这样就能够大幅度地降低编程中的难度,提高编程效率并增加其易用性。这个想法一提出,就得到了很多业内人士的认可,大家给这种想法取了一个名字,叫做“指令集”。


指令集中包含了大量的基础运算的内容,并且以公式化和模块化的方式供人们使用。对软件来说,指令集的出现无疑大幅度提高了程序编写的效率。同时由于模块化指令的存在,软件的运行效率也得到了提升。对硬件来说,专用模块的效率永远高于通用模块,因此指令集的出现也为CPU硬件性能的提升开启了一扇新的大门。

复杂的还是精简的?

指令集诞生后,CPU厂商都开始整理、规范这些指令集,其中就包括英特尔。英特尔在它最为成功的一款处理器8086中,开始加入大量指令集,以提高计算效率、增强CPU性能。与此同时,另外一种思想在悄悄萌芽。

英特尔为了兼容8086处理器,不得不一直采用x86 CISC指令集。
英特尔为了兼容8086处理器,不得不一直采用x86 CISC指令集。

业界有一个著名的“8020定理”,可以应用在很多方面:比如一家公司80%的人都会是普通职员,20%的人才可能成为领导者;这些领导者每天做的事情80%是不紧急或者不重要的、20%才是最紧急最重要的内容等等。“8020定理”概括了社会发展的大部分内容,虽然不那么精确,但足以说明大部分内容往往没有什么效率,最值得关心的往往是那20%的核心部分—比如下面这一段:


CPU的指令集是各种功能的集合。指令集诞生的原因是人们渴望在软件编写时更有效率,同时也符合事物发展中规范化、模块化的需求。但是,在所有指令集中,经过人们分析和统计,只有20%的指令集会在80%的场合都用到,而绝大部分80%的指令集只有20%的场合需要出现。

RISC处理器的效率很高,一般来说能耗比很出色,但是指令比较复杂,特别是程序体积较大。图为IBM的Power 7处理器的接口,是经典的高性能RISC处理器。
RISC处理器的效率很高,一般来说能耗比很出色,但是指令比较复杂,特别是程序体积较大。图为IBM的Power 7处理器的接口,是经典的高性能RISC处理器。


这里的意思就很明确了。如果一个CPU支持所有的指令集,那么其中20%的部分会被经常调用,而80%的部分经常闲置无所事事,至少在80%的时间中都是如此。在CPU晶体管“寸土寸金”的年代,这样的做法是对晶体管的严重浪费。在这种情况下,曾任斯坦福大学校长、美国科学院、工程学院和文理学院三院院士的约翰·亨尼西教授和加州大学伯克利分校的计算机教授戴维·帕特森等人,就提出了一种更为简单的指令集,叫做精简指令集,全称是Reduced Instruction Set Computing,简写为RISC。而传统的大而全的指令集也被赋予了一个正式的名字,叫做Complex Instruction Set Computing,也就是CISC。


RISC的优势在于将指令数目和寻址方式都做出了改进,大幅度降低了设计难度,编译器的效率更高并且指令的并行执行程度更高。同时RISC制造的CPU体积更小、能耗更低、性能功耗比更高。但是RISC并不是没有缺点,比如RISC的CPU对20%的常用指令集的计算效率更高,而对一些不常用或者复杂的指令,则以几个常用指令组合的方式来完成,计算效率就明显下降。对软件来说,RISC的程序体积相对CISC会大一些,复杂度稍高。并且由于指令集精简,早期的RISC处理器的性能显然不如同期的CISC,虽然它更小、功耗更低。

今天的CPU:x86和ARM

虽然从原理来看,RISC和CISC可谓井水不犯河水。但RISC和CISC在发展过程中,彼此反而取长补短,各有所得。


对CISC来说,指令集本身随着计算要求不断发展,肯定会越来越多。CISC继续发展下去,其实际CPU产品的晶体管数量会难以抑制地上升,性能功耗比和成本表现很难让人满意。从设计角度来看,CISC指令集长度不固定、执行时间也不固定、设计困难很多,很难找出一条高效率的通用设计道路来完成指令的执行。此外,由于CISC处理器和存储器之间的速度差距,缓存变得越来越重要。这也意味着CPU本身需要更为精简高效,节省的空间需要用于容纳越来越重要的各级缓存。


为了解决这些问题,现代的CISC处理器开始认真学习RISC的思想。CISC的问题在于指令集复杂多变,为每一个指令制定专门的硬件优化显然不可能。那么,可不可以换一个思路呢?将那些最常使用的指令集挑选出来,然后为其进行专门优化,就可以大大提高效率;至于不常用的指令,则可以用几个基础指令组合的方式完成——这正是RISC的思想。有所不同的是,RISC让思想完成在指令层面,而CISC将这个思想实现在硬件层面。

英特尔的Nehalem处理器可谓借鉴RISC思想而设计的x86。
英特尔的Nehalem处理器可谓借鉴RISC思想而设计的x86。

以英特尔的Nehalem或者AMD的K10处理器为例。首先,这些x86处理器内部都会使用“微指令”。所谓微指令,就是一些基础的指令,CISC指令中大部分都可以被拆分为几条简单而固定的微指令。其次,CPU内部设计了“翻译单元”,一般是由解码单元来执行的。在运行中,CPU接受一条x86指令,然后解码单元将接收到的比较复杂的X86指令拆解为一个或几个微指令。比如Nehalem设计了3个简单的解码单元和1个复杂的解码单元,可以将x86指令解码拆分、“翻译”为1~4条微指令。


第三,CPU内部针对这些微指令会做出充足的优化,让其执行效率和速度都达到令人满意的程度。当然,在解码处理的过程中,不是所有的x86指令都会得到平均对待。那些最常用的指令比如mov、push、call、cmp、add等会被重点、优先、加速处理,不常用的指令要么被拆分为常用指令,要么进入普通循环进行处理。效率虽然有影响,但考虑到其使用几率很低,因此这样的设计完全可以接受。在微指令解码和处理过程中,如何更有效率、更为高效地执行x86命令;微指令应该如何表达、运行;微指令和x86指令的关系以及哪些微指令是最常用、最优先的指令,成为最影响CPU性能的核心内容。

未来的ARM Cortex A-50是高性能处理器的代表产品
未来的ARM Cortex A-50是高性能处理器的代表产品。

在采用了RISC思想、对x86处理器的设计进行革新后,如今的CISC处理器基本上可以解决CISC指令复杂、体积庞大,晶体管耗费多等问题。对厂商来说,一个设计优秀的x86处理器的解码和流水线核心可以维持数代发展而不落伍。厂商可以在发展过程中不断对已经设计好的核心进行调整和调配,在缓存、总线配置上进行更改以获取更好的性能。


CISC借鉴RISC的思想,让自己获得了新生。相对来说,RISC对CISC也有借鉴,但不算太多。RISC指令简单并且相对固定,处理快速,在设计上甚至可以使用更长的流水线来达到高频率,并最终获得更优秀的效能。但RISC的主要问题在于指令集简单,因此在处理一些比较复杂的应用时,存储器需要读入的指令总数耗费时间更多,部分场合下性能表现不理想也是RISC的硬伤。因此,在RISC的发展中,RISC也在逐渐注入CISC的思想。比如紧跟时代加入一些新的指令集,更进一步优化内部架构,运行周期变成不固定周期等。RISC发展到现在,指令也逐渐增多,浮点计算等重要性能也日益强大。以ARM为例,不但逐渐增强浮点计算性能、新增专门的

[1] [2]
关键字:ARM(RISC)  x86(CISC)  技术差异 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481966.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:ARM详细指令集
下一篇:ARM的栈指令

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

32位RISC-CPU-ARM芯片的应用和选型
摘要:ARM公司以及ARM芯片的现状和发展,从应用的角度介绍了ARM芯片的选择方法,并介绍了具有多芯核结构的ARM芯片。列举了目前的主要ARM芯片供应商,其产品以及应用领域。举例说明了几种嵌入式产品最佳ARM芯片选择方案。ARM公司自1990年正式成立以来,在32位RISC(Reduced Instruction Set Computer)CPU开发领域不断取得突破,其结构已经从V3发展到V6。由于ARM公司自成立以来,直以IP(Intelligence Property)提供者的身份向各大半导体制造商出售知识产权,而自己从不介入芯片的生产销售,加上其设计的芯核具有功耗低、成本低等显著优点,因此获得众多的半导体厂家和整机厂商
发表于 2019-10-18
华为徐直军:未来Arm若断供,将会考虑RISC-V
据ChinaDaily报道,华为技术有限公司上周五(2019年8月23日)表示,如果美国政府长期以来继续限制从英国Arm公司获取最新技术,那么华为将考虑使用开源芯片架构RISC-V,但其同时表示华为仍然希望继续使用Arm技术,并且目前还没有开始任何基于RISC-V的商用化开发。华为轮值董事长徐直军在接受采访时表示,该公司已经获得了Arm V8架构技术的永久许可,因此美国政府的禁令不会影响其芯片的开发。“如果Arm的新技术在未来无法使用,我们也可以使用RISC-V,这是一种对所有公司开放的架构,挑战并非难以逾越。”徐直军说。华为采用Arm架构为智能手机,服务器和其他应用设计了许多芯片。但华盛顿禁止华为在未经政府特别批准的情况下采用
发表于 2019-08-27
ARM DesignStart让你感到前所未有的灵活
翻译自——Semiwiki, Bernard Murphy  概要 RISC-V的开源性对未来的设计产生了深远的影响,但作为处理器IP龙头企业Arm来说,他们要为客户的需求着想,建立一个更加灵活多功能的模式。DesignStart能够让用户感受到如同RISC-V一样的灵活性,根据你自己的要求使用他们的软件和IP,但这是有偿的。 毫无疑问,RISC-V产生了很大的影响,确信有很多新设计频频出现,特别是在成本极具竞争力或处理器要求额外的差异化领域。恐怕这不会对Arm的业务产生实质性的影响,而只会对媒体产生影响。要取代一个如此规模的生态系统,以及市场对Arm产品的信心,需要很长时间
发表于 2019-08-13
ARM DesignStart让你感到前所未有的灵活
Arm高管:先过这5关,RISC-V才能片大好
ARM停止和华为合作,让全世界半导体产业为之震动,也再次证明这家公司在半导体产业的龙头地位。今年的台北国际电脑展上,安谋的竞争对手RISC-V也积极串连,这是一个利用开放平台,开发半导体运算技术的新技术阵营。去年上海市首次出台政策,鼓励相关产业发展,中国也成立两个协会,广邀各国好手合作,想在AI和异质运算的时代,弯道超车。5月28日,安谋IP产品事业群总裁雷内.哈斯(Rene Haas)在君悦酒店接受《财讯》专访,他首次分析安谋如何看待新竞争模式带来的挑战,他也摊开安谋在AI时代继续帮助客户获利,扩大影响力的策略蓝图。▲安谋IP产品事业群总裁哈斯(Rene Haas)(右),和安谋车用暨嵌入式产品总经理凡卡妮(Dipti
发表于 2019-06-20
Arm高管:先过这5关,RISC-V才能片大好
AI、物联网时代,RISC-V挑战巨头ARM和英特尔
“基于ARM架构的芯片在物联网市场上同质化非常严重,最后就变成打价格战,现在都是红海一片。”RISC-V基金会中国顾问委员会主席方之熙在接受第一财经专访时表示,RISC-V架构将在物联网时代挑战巨头ARM和英特尔X86架构。Wintel(微软+英特尔)定义了PC时代,ARM+安卓定义了智能手机时代。RISC-V支持者认为,在物联网时代需要新的架构适应垂直细分领域。RISC-V是一种免费开源指令集架构(ISA)。方之熙告诉记者,做CPU设计首先需要指令集架构,接着根据架构设计芯片,“根据不同的市场,比如根据英特尔X86系统架构设计电脑的CPU。芯片设计完成后,做后端、流片,成为产品。”目前,全球微处理器指令集架构中,英特尔的X86
发表于 2019-05-15
AI、物联网时代,RISC-V挑战巨头ARM和英特尔
RISC-V让科技业不用再依照英特尔、Arm的路走
台湾物联网产业技术协会理事长暨力晶集团董事长黄崇仁表示,从IBM做PC到今天,全球科技业都受到英特尔影响,后来有了Arm后,年轻人要做Arm的东西也是要付费,现在有了RISC-V让科技业不用再依照英特尔、Arm的路走。对很多新进者来说,就不用再被大系统控制。黄崇仁7日出席台湾RISC V联盟启动仪式暨研讨会,释出上述看法。黄崇仁说,英特尔及微软控制全球科技产业很久了,但是这样的产业发展,其实是因为当初IBM在大型电脑的时候,有一个内规,就是个人电脑(PC)效能不能比大型电脑强,所以进而导致全球科技业都被英特尔及微软所控制。黄崇仁也透露,当初他自己在生产扫描器的时候,就是跟苹果搭配的效能比较好,跟个人电脑的效能就是不好,但个人电脑
发表于 2019-03-09
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved