《2022年CPU架构简介 .pdf》由会员分享,可在线阅读,更多相关《2022年CPU架构简介 .pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、这里就不去管细节,简单来谈一下,ARM 和 X86之间为什么不太具有可比性的问题。要搞清楚这个问题首先要明白什么是架构,之前也有很多人提到了架构不同,但架构是什么意思?它是一个比较抽象的概念,不太容易用几句话就解释清楚。我们要明白 CPU 是一个执行部件, 它之所以能执行, 也是因为人们在里面制作了执行各种功能的硬件电路,然后再用一定的逻辑让它按照一定的顺序工作,这样就能完成人们给它的任务。也就是说,如果把CPU看作一个人,首先它要有正常的工作能力(既执行能力),然后又有足够的逻辑能力(能明白做事的顺序),最后还要听的懂别人的话(既指令集) ,才能正常工作。而这些集中在一起就构成了所谓的“架构
2、”,它可以理解为一套“工具”、“方法”和“规范”的集合。不同的架构之间,工具可能不同,方法可能不同,规范也可能不同,这也造成了它们之间的不兼容你给一个意大利泥瓦匠看一份中文写成的烹饪指南,他当然不知道应该干什么了。如果还看不懂,没关系,我们继续。从CPU发明到现在,有非常多种架构,从我们熟悉的X86,ARM ,到不太熟悉的MIPS ,IA64,它们之间的差距都非常大。但是如果从最基本的逻辑角度来分类的话, 它们可以被分为两大类,即所谓的“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC ”与“RISC ”。属于这两种类中的各种架构之间最大的区别,在于它们的设计者考虑问题方式的不同。
3、我们可以继续举个例子,比如名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - 说我们要命令一个人吃饭,那么我们应该怎么命令呢?我们可以直接对他下达“吃饭”的命令,也可以命令他“先拿勺子,然后舀起一勺饭,然后张嘴,然后送到嘴里,最后咽下去”。从这里可以看到, 对于命令别人做事这样一件事情,不同的人有不同的理解,有人认为,如果我首先给接受命令的人以足够的训练,让他掌握各种复杂技能(即在硬件中实现对应的复杂功能),那么以后就可以用非常简单
4、的命令让他去做很复杂的事情比如只要说一句“吃饭”, 他就会吃饭。 但是也有人认为这样会让事情变的太复杂, 毕竟接受命令的人要做的事情很复杂,如果你这时候想让他吃菜怎么办?难道继续训练他吃菜的方法?我们为什么不可以把事情分为许多非常基本的步骤,这样只需要接受命令的人懂得很少的基本技能,就可以完成同样的工作,无非是下达命令的人稍微累一点比如现在我要他吃菜,只需要把刚刚吃饭命令里的“舀起一勺饭”改成“舀起一勺菜”,问题就解决了,多么简单。这就是“复杂指令集”和“精简指令集”的逻辑区别。可能有人说, 明显是精简指令集好啊,但是我们不好去判断它们之间到底谁好谁坏, 因为目前他们两种指令集都在蓬勃发展,而
5、且都很成功 X86是复杂指令集( CISC)的代表,而ARM 则是精简指令集( RISC)的代表,甚至 ARM 的名字就直接表明了它的技术: Advanced RISC Machine 高级 RISC机。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - 到了这里你就应该明白为什么RISC和 CISC之间不好直接比较性能了, 因为它们之间的设计思路差异太大。这样的思路导致了 CISC和 RISC分道扬镳前者更加专注于高性能但同时高功
6、耗的实现, 而后者则专注于小尺寸低功耗领域。实际上也有很多事情 CISC更加合适,而另外一些事情则是RISC更加合适,比如在执行高密度的运算任务的时候CISC就更具备优势,而在执行简单重复劳动的时候RISC就能占到上风,比如假设我们是在举办吃饭大赛,那么CISC只需要不停的喊“吃饭吃饭吃饭”就行了,而 RISC则要一遍一遍重复吃饭流程,负责喊话的人如果嘴巴不够快(即内存带宽不够大),那么RISC就很难吃的过CISC。但是如果我们只是要两个人把饭舀出来,那么CISC就麻烦得多, 因为 CISC里没有这么简单的舀饭动作,而 RISC就只需要不停喊“舀饭舀饭舀饭”就OK 。这就是 CISC和 RIS
7、C之间的区别。 但是在实际情况中问题要比这复杂许许多多, 因为各个阵营的设计者都想要提升自家架构的性能。 这里面最普遍的就是所谓的“发射”概念。什么叫发射?发射就是同时可以执行多少指令的意思,例如双发射就意味着 CPU可以同时拾取两条指令,三发射则自然就是三条了。现代高级处理器已经很少有单发射的实现,例如Cortex A8 和 A9都是双发射的RISC ,而 Cortex A15则是三发射。 ATOM 是双发射CISC,Core 系列甚至做到了四发射这个方面大家倒是不相上下,但是不要忘了CISC的指令更加复杂,也就意味着指令更名师资料总结 - - -精品资料欢迎下载 - - - - - - -
8、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 6 页 - - - - - - - - - 加强大,还是吃饭的例子,CISC只需要 1 个指令,而 RISC需要5 个,那么在内存带宽相同的情况下,CISC能达到的性能是要超过 RISC的(就吃饭而言是5 倍),而实际中CISC的 Core i处理器内存带宽已经超过了100GB/s,而 ARM 还在为 10GB/s 而苦苦奋斗,一个更加吃带宽的架构,带宽却只有别人的十分之一,性能自然会受到非常大的制约。为什么说 ARM 和 X86不好比,这也是很重要的一个原因,因为不同的应用对带宽需求是不同
9、的。一旦遇到带宽瓶颈,哪怕ARM 处理器已经达到了很高的运算性能,实际上根本发挥不出来,自然也就会落败了。说到这儿大家应该也已经明白CISC和 RISC的区别和特色了。简而言之, CISC实际上是以增加处理器本身复杂度作为代价,去换取更高的性能, 而 RISC则是将复杂度交给了编译器,牺牲了程序大小和指令带宽,换取了简单和低功耗的硬件实现。但如果事情就这样发展下去,为了提升性能,CISC的处理器将越来越大,而RISC需要的内存带宽则会突破天际,这都是受到技术限制的。 所以进十多年来, 关于 CISC和 RISC的区分已经慢慢的在模糊, 例如自 P6体系(即 Pentium Pro)以来,作为
10、CISC代表的 X86架构引入了微码概念,与此对应的, 处理器内部也增加了所谓的译码器,负责将传统的CISC指令“拆包”为更加短小的微码( uOPs )。一条 CISC指令进来以后,会被译码器拆分为数量不等的微码, 然后送入处理器的执行管线这实际上可以理解为 RISC内核+CISC解码器。而 RISC也引入了指令集这个名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 6 页 - - - - - - - - - 就逻辑角度而言非常不精简的东西,来增加运算性能。 正常而言,一条
11、 X86指令会被拆解为24 个 uOPs ,平均来看就是3 个,因此同样的指令密度下, 目前 X86的实际指令执行能力应该大约是ARM 的 3 倍左右。不过不要忘了这是基于“同样指令密度”下的一个假设,实际上X86可以达到的指令密度是十倍甚至百倍于ARM 的。最后一个需要考虑的地方就是指令集。这个东西的引入,是为了加速处理器在某些特定应用上性能而设计的,已经有了几十年的历史了。 而实际上在目前的应用环境内,起到决定作用的很多时候是指令集而不是CPU 核心。 X86架构的强大,很多时候也源于指令集的强大,比如我们知道的ATOM ,虽然它的 X86核心非常羸弱,但是由于它支持SSE3 ,在很多时候
12、性能甚至可以超过核心性能远远强大于它的Pentium M , 这就是指令集的威力。目前 X86指令集已经从MMX ,发展到了 SSE ,AVX ,而 ARM 依然还只有简单而基础的NEON 。它们之间不成比例的差距造成了实际应用中成百上千倍的性能落差,例如即便是现今最强大的ARM 内核依然还在为软解1080p H.264 而奋斗,但一颗普通的中端Core i 处理器却可以用接近十倍播放速度的速度去压缩1080p H.264视频。至少在这点上,说PC处理器的性能百倍于ARM 是无可辩驳的,而实际中这样的例子比比皆是。这也是为什么我在之前说平均下来 ARM 只有 X86几十分之一的性能的原因。名师
13、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - 打了这么多字,其实就是为了说明一点,虽然现在ARM很强大, 但它距离 X86还是非常遥远, 并没有因为这几年的进步而缩短, 实际上反而在被更快的拉大。毕竟它们设计的出发点不一样,因此根本不具备多少可比性,X86无法做到 ARM 的功耗,而 ARM 也无法做到 X86的性能。这也是为什么ATOM 一直以来都不成功的原因所在Intel试图用自己的短处去和别人的长处对抗,结果自然是不太好的,
14、要不是 Intel拥有这个星球上最先进的半导体工艺, ATOM 根本都不可能出现。而ARM 如果尝试去和 X86拼性能, 那结果自然也好不到哪儿去,原因刚刚也解释过了。不过这也不意味着ARM 以后就只能占据低端, 毕竟任何架构都有其优点,一旦有应用针对其进行优化,那么就可以扬长避短。X86的繁荣也正是因为整个世界的资源都针对它进行了优化所致。只要能为 ARM 找到合适的应用与适合的领域,未来 ARM 也未必不可以进入更高的层次。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -