一台服务器、一台电脑、一台手机最重要的电子零部件是什么?没错,就是CPU处理器。它主要负责数据计算、控制功能,是最核心的部分。不过你又知道有多少种CPU架构吗?主流的X86、ARM到底有什么区别?
下面就给大家介绍一下几种常见的CPU架构:
X86
1978年6月8日,Intel发布了史诗级的CPU处理器8086,由此X86架构传奇正式拉开帷幕。首次为8086引入X86作为计算机语言的指令集,定义了一些基本使用规则,X86架构使用的是CISC复杂指令集。同时8086处理器的大获成功也直接让Intel成为了CPU巨头,如果你对8086不是那么熟悉,那么一定听过奔腾处理器吧?况且为了纪念8086K诞生40周年,今年Intel发布了一颗纪念限量版的处理器Core i7-8086K,这你都听说过吧?
图片
IA64(Intel Architecture 64,英特尔架构64)
哇,IA64听起来好陌生,是的,虽然同出Intel之手。但这可以说是失败品。当年X86过渡到64位指令集时,一个不小心被AMD弯道超车,最后只能联合惠普推出了属于自己的IA64指令集,但这也仅限于服务器上,也是Itanium安腾处理器的来历(现在已经凉了)。
至于IA64究竟是RISC还是CISC指令集的延续,这个真的很难说清楚,但单纯以IA64基于HP的EPIC(Explicitly Parallel Instruction Computers,精确并行指令计算机)来看,似乎更偏向于RISC体系。
MIPS(Microprocessor without interlockedpipedstages,无内部互锁流水级的微处理器)
在上世纪80年代由美国斯坦福大学Hennessy教授的研究小组研发,它采用精简指令系统计算结构(RISC)来设计芯片。和Intel采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的CPU。
让MIPS出名的,可能是在2007年,中科院计算机研究所的龙芯处理器获得了MIPS的全部专利、指令集授权,中国开始走上了一MIPS为基础的CPU研发道路。
PowerPC
PowerPC是有蓝色巨人IBM联合苹果、摩托罗拉公司研发的一种基于RISC精简指令集的CPU,PowerPC架构最大优点是灵活性非常好,核心数目灵活可变,因此在嵌入式设备上具有很高效益,可以针对服务器市场做超多核,针对掌机做双核,因此它具有优异的性能、较低的能量损耗以及较低的散热量。
ARM(Advanced RISC Machine,进阶精简指令集机器)
ARM可以说是一个异军突起的CPU架构,采用了RISC精简指令集,而且ARM发展到今天,架构上非常灵活,可以根据面向应用场景不同使用不同设计的内核,因此可以广泛用于嵌入式系统中,同时它高度节能的特性,目前各种移动设备中全都是它的身影。据统计,使用ARM架构的芯片年出货量高达200亿片,随着物联网时代降临,对于低功耗性ARM芯片需求量会发生爆炸性增长。
CISC、RISC之争
从上面得知,历史的长河里面,有过许许多多的CPU架构,它们之间的差异性非常大,经过时间、用户的检验,我们平常所接触到CPU架构也就剩X86和ARM两者,按照最核心的不同可以被分为两大类,即“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”。
要了解X86和ARM CPU架构,就得先了解CISC复杂指令集和RISC精简指令集 ,因为它们第一个区别就是X86使用了复杂指令集(CISC),而后者使用精简指令集(RISC)。造成他们使用不同该指令集的原因在于,面向的设备、对象、性能要求是不一样。手机SoC普遍都是采用ARM提供的核心作为基础,依据自身需求改变SoC的核心架构,而ARM正正是RISC精简指令集的代表人物。CPU巨头Intel、AMD所采用的X86架构已经沿用了数十年,是CISC复杂指令集的典型代表。
CISC复杂指令系统就是为了增强原有指令的功能,设置更为复杂的新指令实现部分大量重复的软件功能的硬件化。由于早期的电脑主频低、运行速度慢,为了提高运算速度,不得已将更多的复杂指令加入到指令系统中来提高电脑的处理效率,慢慢形成以桌面电脑为首的复杂指令系统计算机。其指令集也是在不断更新增加当中,如Intel为X299平台上的处理器增加了AVX 512指令集,目的就是为了提高某一方面的性能。
虽然CISC可以实现高性能CPU设计,但是设计起来就相当麻烦了,要保持庞大硬件设计正确是一件不容易的事情,还要确保性能有所提升,不能开倒车,因此桌面CPU研发时间也慢慢地变长。这时候,以ARM为首的一些RISC精简指令系统计算机开始崭露头角了。
RISC可以说是从CISC中取其精华去其糟粕,简化指令功能,让指令的平均执行周期减少,达到提升计算机工作主频的目的,同时引入大量通用寄存器减少不必要的读写过程,提高子程序执行速度,这样一来程序运行时间缩短并且减少了寻址,提高了编译效率,最终达到高性能目的。
这两种指令集一直都在求同存异当中,都在追求在体系架构、操作运行、软硬件、编译时间以及运行时间等等诸多因素中做出某种平衡,以此达到当初所设计的高效运转目的。
图片来自新浪博客
功耗上的限制
从CISC、RISC设计思路来看,大家不难发现,他们走的路根本不一样,前者专注于高性能方向,但带来高功耗,而后者专注于做低功耗的嵌入式,对于性能的最强不是太过强劲。因此我们也看到Intel、AMD他们擅长于设计性能超高的X86处理器,而高通、苹果依靠ARM IP授权设计出注重效能的SoC芯片。
就像我们以前所举的例子,Core i7-8086K可以轻易跑出95W功耗,但像高通骁龙845这种最顶级的SoC也不过是5W,只有其1/19,主要是手机尺寸越来越小,电池容量、能量密度发展跟不上,手机所用ARM内核只能是低功耗。
一般来说,处理器的功耗可以随着制造工艺的进步而降低,但近些年来,移动设备所采用的的SoC往往率先使用更小的纳米工艺制程,比方说骁龙845的10nm,虽然里面有取巧成分,但推进速度远远快于Intel的10nm工艺,加之SoC还会有对应的低功耗版本工艺,所以无论是设计上、还是工艺上的差别,都导致了ARM、X86功耗差异非常大。
大小核架构
从前的X86传统CPU,如果是四核或者是双核,内部的四个、两个个核心都是一模一样的,这样的话,由于一旦软件只能调度一个核心,处于高频工作,但由于架构限制,其余核心也要保持同样的高频率和高电压状态,这样就浪费了大量的能量在做无用功。后来就发展出了异步多核,允许不同核心工作在不同频率上,以此换来更低功耗。
由于移动设备更加在意功耗,所以ARM采用了更加激进的做法,八个核里面允许有不同Cortex-A架构核心,那就是著名的ARM bigLITTLE。这样的大小核设计目的很明确,就是在有限的电池容量中,兼顾性能、续航的需求,因此SoC内部的CPU是采用异构计算,既有高性能大核心,也有低功耗小核心。
bigLITTLE架构框架,图片来自ARM官网
芯片设计厂商可以根据自己的需求,设计出有针对性的产品,比方说目前高通骁龙845、华为的麒麟970、联发科Helio X30都是bigLITTLE架构,这样的话如果你只是刷刷微博、朋友圈,那么只需要动用小核心就能完成任务,玩《绝地求生》吃鸡游戏就可能大小核全开,从而保证性能、续航的平衡。
因此ARM的bigLITTLE异步多核架构非常值得参考,甚至传闻称英特尔将在第10代酷睿处理器Lakefield上使用这种技术,高性能大核是Ice lake(下一代Core),低功耗小核心则是Tremont(下一代Atom),因此在整体功耗上控制在35W以内,用于二合一笔记本上。
ARM、X86也能相互融合
之前我们在另一篇超能课堂《手机SoC与电脑的CPU性能究竟差多少?》就总结过,RISC、CISC各有各的优势,目前两者界限开始逐渐变得模糊,现代的CPU往往采用了CISC的外围,而内部则加入了部分RISC的特性,这个也是Intel处理器的开始拥有RISC的典型例子。也就是说其实未来CPU发展方向之一就是融合CISC以及RISC,从软件、硬件上取长补短,进一步提高处理器的并行性以及工艺水平。
X86、ARM在性能、功耗上各占优势,尽管ARM一直想进入高性能服务器市场上,但一直都是雷声大雨点小,前不久想要挑战intel服务器地位的高通,ARM服务器部门直接裁员50%,技术副总裁也不玩了;ARM处理器也期望能获得X86处理器的高性能,以便能用在移动笔记本上,就像刚刚推出的高通骁龙835 Windows笔记本一样,但评价、反映都是平平;Intel利用X86架构Atom做手机SoC,结果还是败给了ARM,亏掉数十亿美元,最终直接砍掉了这个项目,老老实实做X86处理器。
所以说ARM、X86都在各自领域站稳了脚跟,由于设计之初的理念不同,已经很难渗入对方的领域,只能说不断尝试,两者之间的差异在将来可能会缩小,不断借鉴改进。