编者按:鉴于笔者水平有限,文中难免有不当之处,还请各位读者海涵。
我猜,常年混迹CSDN的同学应该不会没听说过CPU吧?
但你真的了解CPU吗?那笔者问你CPU有哪些架构呢?
如果你对你的答案不是很确定,那刚好,不妨跟随笔者来大致了解一下吧~
下面开始正文。
照例,先抛出几个问题,带着问题来阅读本文,效果会更好。
话不多说,让咱们来一一解密。
先说说CPU厂商,在PC和服务器领域,Intel和AMD是耳熟能详的,在移动消费领域有基于ARM架构进行设计的TI、ST、NXP等等,它们都是头部的CPU厂商。当然,还有国产的CPU厂商,后面会介绍到。
再来说说CPU架构,那什么是CPU架构?
CPU架构是CPU厂商给属于同一系列的CPU产品设定的一个规范,其目的是为了区分不同类型的CPU。
我们知道,CPU是为了执行计算机指令而诞生的,根据计算机指令集的不同呢,市面上的CPU可以分为两大阵营:CISC和RISC。
CISC: Complex Instruction Set Computer, 复杂指令集计算机
CISC指令集的设计理念是:尽可能减小指令的数量,让每一条指令实现更复杂的功能,从而降低CPU向内存取指令的频率,进而减小程序的执行时间,提升计算性能。为了让某一条指令能实现更复杂的功能,CISC的指令设计采用变指令长度。而这必然对CPU硬件电路设计提出了非常高的要求,往往需要非常复杂的控制、解码、执行电路。
基于任何事情都可以用二八定律来描述,计算机指令集也不例外。据实际统计,CISC中只有20%的指令才会被经常使用,而剩下的80%则较少使用。也就是说,为了实现那极少使用的80%的指令,代价是复杂的硬件控制电路和编译器设计,这值得吗?
基于此,一种新的CPU设计理念——RISC便诞生了。
RISC: Reduced Instruction Set Computer, 精简指令集计算机
RISC指令集的设计理念是:只保留必要的指令,采用固定长度指令设计,将复杂的功能实现上交给软件去实现。其好处便是指令集、硬件电路、编译器设计简单了。缺点是实现同样的功能,需要更多的指令,代码密度更低。
CISC和RISC孰优孰劣的争论持续了许多年,它们两个虽然谁都不服谁,各自占据着自己的领域。比如,以CISC x86架构为主的Intel/AMD统治着PC和服务器领域,而以RISC架构为主的ARM则统治着移动消费领域。尽管它们互相看不顺眼,但是随着科技的发展,CISC和RISC也在相互借鉴对方的优势,它们之间的界限也越来越模糊。
好,关于CISC和RISC,咱们就先讲到这里,感兴趣的同学,也可以去了解了解它们的爱恨历史,也颇为有趣 (参考文章后面的英文参考链接)。
前面我们知道了CPU的指令集可以分为:CISC和RISC。这是指令集层面上的划分。CPU除了指令集,还包括各种组件,如ALU,EU、寄存器、Cache等等。它们的组织方式也会影响CPU的架构,即同一个指令集下面,CPU厂商又可以生产不同架构的CPU。具体来讲,目前市面上基于CISC指令集的CPU主要是x86架构,比如 Intel的x86,x86-64和AMD的amd64。而RISC下面则有ARM,MIPS,PowerPC,RISC-V等多种CPU架构。
下图简单列举了国内外的一些CPU架构。
接下来,笔者参考网上资料,简单总结了一下各主流CPU架构的一些特点。先声明,这些特点只是大概的,了解即可,可能不足,也可能不正确,也可能过时了。当然,如果读者乐意,也欢迎留言指出。
好,那么咱们开始。
x86 架构采用CISC指令集,由Intel公司于 1978 年推出,也就是8086/8088系列,故后面将该系列称为x86系列。它最初设计用于个人电脑,但后来也被用于服务器、工作站和其它设备。x86 架构的特点包括:
关于x86的劣势,一位知友的文章中有提到,我觉得蛮有趣:
成也萧何,败也萧何。x86主打兼容性,导致兼容性的包袱越来越重,走得举步维艰。
站在哲学的立场来说,优点也是一种缺点,而破局的关键则在于改变。面对x86沉重的兼容性包袱和ARM的步步紧逼,AMD和Intel都在寻找新出路,未来如何,我们且看。
ARM (Advanced RISC Machine) 架构是一种精简指令集计算机(RISC)架构,由英国 ARM 公司于 1985 年推出。它最初设计用于嵌入式系统,但后来也被用于智能手机、平板电脑和其他设备。ARM 架构的特点包括:
ARM 架构的缺点包括:
目前,由于ARM芯片价格低廉,功耗低,性能好,在移动消费等嵌入式领域拥有超过75%以上的市场份额,拥有绝对的话语权,采用ARM内核进行CPU设计的公司也有很多,比如ST (STM32系列)、TI(MSP430系列,DSP系列)、NXP等等。
MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级的微处理器”(microprocessor without interlocked piped stages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福大学 Hennessy 教授领导的研究小组研制。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,之后把设计方案授权给客户,使得客户能够制造出高性能的 CPU。
它的基本特点是:
采用MIPS架构的公司及CPU芯片:
关于龙芯,网上有资料说是自主研发的 LoongArch 架构。,也有说基于MIPS,笔者也没搞清楚,暂且按下不表。欢迎读者留言指出,谢谢~
RISC-V 架构是一种精简指令集计算机(RISC)架构,由加州大学伯克利分校于 2010 年推出。它最初设计用于嵌入式系统,但后来也被用于服务器、工作站和其他设备。RISC-V 架构的特点包括:
采用RISC-V架构的公司及CPU芯片:
RISC-V由于其开源特性,很多公司都采用它进行开发,但大多都是一些小设备小应用,比如物联网之类的。有知友把它比作“永远的小童星”,虽然很火,但终究长不大,好像有一定道理。
PowerPC 架构是一种精简指令集计算机(RISC)架构,由苹果公司、IBM 公司和摩托罗拉公司于 1991 年联合推出。它最初设计用于工作站,但后来也被用于服务器、嵌入式系统和其他设备。PowerPC 架构的特点包括:
PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBMPowerPC 601 微处理器POWER(Performance Optimized With Enhanced RISC)架构。二十世纪九十年代,IBM、苹果和摩托罗拉合作开发 PowerPC 芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC 架构的特点是可伸缩性好、方便灵活,有着广泛的应用范围,包括从诸如 Power4 那样的高端服务器 CPU 到嵌入式 CPU 市场(任天堂 Gamecube 使用了 PowerPC)。PowerPC 处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了像串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。
PowerPC, emmm,好像在路由器,网关上面用得比较多。
关于国产CPU,笔者了解的不多,大概有六种品牌,貌似龙芯最强,贴一张图,让读者有个大概的印象。
具体细节可以参考这篇文章:国产CPU之4种架构和6大品牌 - 知乎 (zhihu.com)
终于看完了,真是收获满满啊,不过你不会真的以为,本文的内容就到此结束了吧?
我只能说,Too young too simple.
不信你再看看这篇文章,一个外国老哥写的:都2021年了,还把x86和ARM归为CISC和RISC? - 知乎 (zhihu.com)
附上英文原文相关链接:
反正笔者看完后,就一个反应:合着我写的都完全过时了,白写了是吧!
但是细细想来,也不全是,毕竟自己还是对RISC、CISC以及各种CPU芯片的历史、架构和应用有了一个大致、朦胧的了解,不至于一无所知,完全抓瞎。如果读者也和我一样,那么本文的目的便达到了。
笔者后续也会尽量对本文内容进行更新。
最后,如果读者觉得本文对你有所帮助,还请帮忙点个赞,你的鼓励是笔者不懈创作的动力,谢谢~
如果没有,那笔者也只能摊摊双手,表示浪费你宝贵的时间咯,然后溜之大吉~
【全文完】