前言
1. CPU
中央处理器(Central Processing Unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。——百度百科
将晶体管作为开关,将一个开关的输出端与另一个的输入端相连,就能构成各种逻辑电路和功能块,这些功能块采用的形式包括加法器、锁存器、触发器、寄存器、计数器等等,我们可以使用这些功能块构建自定义执行单元来执行特定计算。
归根结底,CPU就是构建多个专用处理元件,并用多种方式将它们连接起来,从而实现复杂的计算的芯片。
2. CPU 架构
CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU主要分有两大阵营,一个是以intel、AMD为首的CISC(复杂指令集)CPU,另一个是以IBM、ARM为首的RISC(精简指令集)CPU。不同品牌的CPU,其产品架构一般也不同,例如,Intel、AMD的CPU是X86架构,而IBM公司的CPU是PowerPC架构,ARM公司是ARM架构。——百度百科
3. ABI
ABI(Application Binary Interface):应用程序二进制接口,描述了应用程序和操作系统之间、一个应用和它的库之间或者应用的组成部分之间的低接口。ABI涵盖了各种细节,如: 1.数据类型的大小、布局和对齐; 2.调用约定(函数的参数如何传送、返回值如何接收)。例如,是所有的参数都通过栈传递,还是部分参数通过寄存器传递;哪个寄存器用于哪个函数参数;通过栈传递的第一个函数参数是最先push到栈上还是最后; 3.系统调用的编码以及一个应用如何向操作系统进行系统调用; 4.目标文件的二进制格式、程序库等。
4. 视频资料
x86、ARM、RISC-V指令集架构简介(强烈建议先看一遍,5分钟不到)
- 硬核科普
intel cpu架构,from “英特尔中国”,介绍intel cpu 的微架构。
- CPU架构全览:CPU到底是个啥?
- CPU架构全览:CPU微架构又是啥?
intel 发展史
- 英特尔发展史【IT王语嫣】
史上几款最重要的CPU,如个人计算机 开山鼻祖intel 8086,划时代意义64位CPU AMD 速龙64,ARM Cortex-A8 (AMD第一款被广泛应用到消费级设备的芯片)
- 史上最重要的CPU漫谈 #电子速谈
碳基芯片(北大在这方面贼牛皮)
- 绕过光刻机,碳基芯片是硅基时代的终结者?
一、Android相关CPU架构
Android开发中,在打包发布应用时会选择应用适配的CPU架构平台,在引用第三方库时也要根据不同CPU架构引入相应的so包。Android 主要包括以下CPU架构(对应不同的ABI):
CPU架构 | ABI | 指令集 |
---|
ARMv5 | armeabi | | ARMv7 (从2010年起) | armeabi-v7a | 32位指令集 A32 和16位指令集 T16 | x86 (从2011年起) | x86 | | MIPS (从2012年起) | mips | | ARMv8 | arm64-v8a | 64位指令集 AArch64, 兼容32位指令集 AArch32 | MIPS64 | mips64 | | x86_64(从2014年起) | x86_64 | | AMMv9(2021) | | 基本同ARMv 8 |
注:
- 以上标黄为存疑,欢迎补充
- AMMv9 2021年发布,有望2022年应用到手机上
- mips及mips64极少用于手机,特点是高性能,主要用于路由器、猫
二、如何查看Android设备 CPU架构
在cmd命令行执行如下命令(要求安装ADB)
adb shell getprop ro.product.cpu.abi
Mate 30 EPro 设备结果
arm64-v8a
Mate30EPro的CPU型号为 麒麟990E CPU 架构 ARM架构
三、CPU架构综述
1. x86架构
?? X86架构(The X86 architecture)是微处理器执行的计算机语言指令集。X86指令集是美国Intel公司为其第一块16位CPU(i8086)专门开发的,美国IBM公司1981年推出的世界第一台PC机中的CPU–i8088(i8086简化版)使用的也是X86指令。为提高浮点数据处理能力而增加的X87芯片系列数字协处理器则另外使用X87指令,包括后来 Intel 80186、80286、80386、80486。由于以“86”作为结尾,以后就将X86指令集和X87指令集统称为X86指令集。虽然随着CPU技术的不断发展,Intel陆续研制出更新型的i80386、i80486直到今天的Pentium 4(以下简为P4)系列,但为了保证电脑能继续运行以往开发的各类应用程序以保护和继承丰富的软件资源,所以Intel公司所生产的所有CPU仍然继续使用X86指令集,所以它的CPU仍属于X86系列。
?? x86架构CPU主要应用领域:个人计算机、服务器等。在PC市场Wintel组合(windows系统 + intel处理器)占据了大部分江山,另外一部分主要由ADM占领。国内厂商兆芯,从AMD和VIA(威盛)获取授权,研发自己的X86CPU。国产CPU + 国产操作系统(linux系)针对的是特殊用户,可以用于教育和事业单位以及军工行业。但想进入民用市场,由于性能、价格以及生态系统等,仍需要继续优化打磨以及一个合适契机。
x86指令集发展
- IA:Intel Architecture
- IA-32:英特尔32位体系架构,X86从16位到32位是在原有的架构基础上进行修改(Intel称之为IA-32)
- x86-32:如今Intel把x86-32称为IA-32
x86-64 分为intel和AMD
-
AMD64:x86架构的64位拓展,向后兼容于16位及32位的x86架构。x64于1999年由AMD设计,AMD首次公开64位集以扩展给x86,称为“AMD64”,AMD64和Intel64基本上一致 -
Intel64:EM64T(Extended Memory 64 Technology)扩展64bit内存技术,本质上和AMD64一样都是IA-32的增强版本。 -
IA-64:64位的英特尔架构,英特尔安腾架构(Intel Itanium architecture),使用在Itanium处理器家族上的64位指令集架构,由英特尔公司与惠普公司共同开发。IA是Intel Architecture(英特尔架构)的缩写,64指64位系统。使用这种架构的CPU,包括Itanium和Itanium 2。此架构与x86及x86-64并不相容,操作系统与软件需使用IA-64专用版本。
?? Intel推出X86架构已满40年了,同486相比,Pentium向前迈进了一大步, 而PⅡ的前进步伐则没有这么大了,X86 CPU的发展似乎已到了尽头。英特尔非常清楚,是X86指令集限制了CPU性能的进一步提高,因此,他们正同惠普共同努力开发下一代指令集架构(Instruction Set Architecture ,ISA): EPIC(Explicitly Parallel Instruction Computing,显性并行指令计算)。对英特尔而言, IA-64(英特尔的64位架构)是下一个10到15年的架构。新的ISA将使英特尔摆脱X86架构的限制,从而设计出超越所有现有RISC CPU和X86 CPU的新型处理器。
2. ARM架构
?? ARM架构,也称作进阶精简指令集机器(Advanced RISC Machine,更早称作:Acorn RISC Machine),是一个32位精简指令集(RISC)处理器架构,其广泛地使用在许多嵌入式系统设计。由于节能的特点,ARM处理器非常适用于移动通讯领域。
?? ARM家族占了所有32位嵌入式处理器75%的比例,使它成为占全世界最多数的32位架构之一。目前ARM主要市场是手机端CPU和MCU,手机CPU市场,由高通骁龙系列、华为麒麟系列、三星猎户系列和联发科系列组成,在MCU端主要是STM32以及国产的GD32,其它厂商的芯片用于其它领域,比如汽车电子、智能家居等。在CPU处理器上,有华为海思的鲲鹏920CPU(应用于泰山服务器中)和FT(飞腾)的CPU(军工领域),虽然FT的CPU起步很早,但是鲲鹏显然有后来居上之趋势。国内ARM芯片做的最好的是华为海思,鲲鹏920CPU性能在ARM架构中是NO1,另外海思麒麟系列手机芯片已发展为全球前三的地位,海思的视频处理芯片以及IoT芯片,在行业中都是标杆产品。
?? 在2020年11月11日,apple公司发布了新一代的mac book,亮点就是使用了apple自己的ARM架构的M1。由于ARM的功耗小,在新一代的macbook上,apple大胆的去掉了散热风扇芯片,将笔记本厚度进一步压缩,续航时间达到了18小时。同时,搭载M1芯片的mac book CPU 性能提升至 3.5 倍,GPU 性能提升至 5 倍,机器学习性能提升至 9 倍。根据apple公司的影响力,未来PC中市场将会被ARM架构的CPU替代。
3. MIPS架构
?? MIPS是世界上很流行的一种RISC处理器。MIPS的意思是“无内部互锁流水级微处理器”(Microprocessor without interlockedpipedstages),其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。
?? MIPS技术公司是美国著名的芯片设计公司,它采用精简指令系统计算结构(RISC)来设计芯片。和英特尔采用的复杂指令系统计算结构(CISC)相比,RISC具有设计更简单、设计周期更短等优点,并可以应用更多先进的技术,开发更快的下一代处理器。MIPS是出现最早的商业RISC架构芯片之一,新的架构集成了所有原来MIPS指令集,并增加了许多更强大的功能。MIPS自己只进行CPU的设计,把设计方案授权给客户,使得客户能够制造出高性能的CPU。
?? MPIS架构授权和ARM架构授权不一样,ARM架构授权用户基本不能自行修改,而MPIS架构授权后,可以自己修改。目前MPIS发扬光大寄希望中科龙芯公司,龙芯处理器从龙芯1号,到现在的龙芯3号系列的3A4000,CPU的性能已经大幅度提高,完全可以胜任日常办公或者作为特殊用途的服务器。龙芯CPU和国产的飞腾(FT)处理器并驾齐驱,发展我国自主可控CPU。
4. SPARC架构
?? SPARC架构(Scalable Processor ARChitecture,可扩展处理器架构)是国际上流行的RISC处理器体系架构之一,SPRAC如今已发展成为一个开放的标准,任何机构或个人均可研究或开发基于SPRAC架构的产品,而无需交纳版权费。SPARC 处理器架构具备精简指令集(RISC)、支持32 位/64 位指令长度,架构运行稳定、可扩展性优良、体系标准开放等特点。SPARC因此得以迅速发展壮大,在现在已经有大约3万多个成功的应用案例。
?? SPARCV7/V8 是目前嵌入式控制系统常用的处理器标准版本,并在航天设备的电子系统中得到广泛应用。然而,SPARC只是一个处理器的架构标准,并不提供现成的源码或IP核,具体的芯片实现要由开发者去完成。
?? 运行Oracle Solaris的Oracle SPARC T4服务器提供了创世界纪录的性能,其单线程性能提高了5倍、内存容量高达2 TB且实现了极高的系统吞吐量和I/O容量。SPARC T4服务器适用于需要极高的可靠性、可用性和集成式片上加密加速的企业应用程序和任务关键型应用程序,可确保最终的安全性。
5. Alpha架构
?? Alpha处理器最早由DEC公司设计制造,在Compaq(康柏)公司收购DEC之后,Alpha处理器继续得到发展,并且应用于许多高档的Compaq服务器上。自1995年开始开发了21164芯片,工艺为0.5um,主频为200MHz。1998年,推出新型号21264,主频为600MHz。较新的21264芯片主频达到1GHz,工艺为0.18um。芯片具有完善的指令预测能力和很高的存储系统带宽(超过1GB/s),并且增加了处理视频信息的功能,其多媒体处理能力得到了增强。
?? Alpha架构于1992年2月25日,在东京召开的一次会议上被正式推介,新架构的关键特性都一一的被罗列出来。当时说Alpha只是产品开发的内部代号。新处理器采用完全64-bit RISC设计,执行固定长度指令(32 bits)。有32个64 bit整数寄存器,操作43-bit的虚拟地址(在后来能够扩充到64-bit)。和VAX相同,使用little-endian字节顺序,即低字节的寄存器占用低内存地址线。而不像如摩托罗拉等大多数处理器所使用的big-endian字节顺序,即低字节寄存器占用高内存地址线。除此之外,处理器还内建一个算术协处理器,有32个浮点64-bit寄存器,采用随机存取(intel x86协处理器上使用的堆栈存取方式)。整个Alpha的生命周期被设计为至少25年。
?? Alpha处理器被用于DEC自己的工作站和服务器中。作为VAX的后续被开发,支持VMS操作系统,如 Digital UNIX。不久之后开放源代码的操作系统也可以在其上运行,如Linux和 DSB 。Microsoft 支持这款处理器,直到Windows NT 4.0 SP6 ,但是从Windows 2000 RC2开始放弃了对Alpha的支持。
目前国内采用此架构的是申微超算处理器,得益于国家的支持,申威处理器在军队应用广泛。
6. PowerPC系列
?? PowerPC 是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的IBMPowerPC 601 微处理器POWER(PerformanceOptimized With Enhanced RISC;《IBM Connect 电子报》2007年8月号译为“增强RISC性能优化”)架构。二十世纪九十年代,IBM、Apple和Motorola(摩托罗拉)公司开发PowerPC芯片成功,并制造出基于PowerPC的多处理器计算机。PowerPC架构的特点是可伸缩性好、方便灵活。
?? PowerPC 处理器有广泛的实现范围,包括从诸如 Power4 那样的高端服务器CPU 到嵌入式 CPU 市场(任天堂Gamecube 使用了 PowerPC)。PowerPC处理器有非常强的嵌入式表现,因为它具有优异的性能、较低的能量损耗以及较低的散热量。除了像串行和以太网控制器那样的集成 I/O,该嵌入式处理器与“台式机”CPU 存在非常显著的区别。
7. 架构之间的竞争
7.1 PC和服务竞争
?? PC端和服务器端是X86架构的天下,而X86架构基本是以Intel为首,AMD为辅二分天下之势。国产CPU基本只能用在军工行业或者事业单位等。其实说性能,powerpc,可谓是高出不胜寒。硬件方面,Power系统在可靠性、可用性和可维护性的方面的出色表现使得 IBM从芯片到系统所设计的整机方案有着独有的优势。Power架构的处理器在超算、大型企业的UNIX服务器等多个方面应用也十分成功。在软件方面,其专用的AIX系统在稳定性、软件方案集成度和厂商技术支持能力方面都要更强。由于用户选一平台主要看软件需求,一般对数据保护和7*24小时不宕机等有所要求,power架构的稳定性和运维等方面相对更优。但是,由于IBM的技术把控,使得其价格太不友好,同时技术也赶不上环境的变化,在云计算兴起后,随着分布式系统逐渐成熟,系统对小型机的依赖开始降低,改为依靠集群提供,性能也可实现分布式处理。而更为关键的是,IBM的全套服务尽管稳定性优秀,但却影响了Power架构对其他商家的吸引力。
?? 而Sparc架构和Power架构基本犯了同样的错误:价格不友好。SPARC架构的成功和Sun旗下的Solaris系统有着密不可分的关系。当计算机系统庞大、用户数量巨大增加时,基于Unix操作系统打造的 Solaris能更好地利用计算机资源,是所有商业版中最可靠最完善的版本。而依赖SPARC架构和Solaris系统的性能和可靠性,其占领了服务器高端市场。Sun的另一个更为知名的产品是Java,虽然在上世纪90年代为智能家电开发的Java并没有为其带来相应的回报,但已成为今天移动时代最重要的开发语言。如此强大的实力本应统领服务器市场,但遗憾的是,在windows和英特尔组成Wintel联盟之后,两者凭借自身在各自市场的规模效应,使得采用Wintel产品的服务器厂商可以通过低廉的价格大肆抢占中低端市场。而当Sun醒悟过来,通过开源等方式想要挽回败局时为时已晚。
?? X86架构与Power和SPARC在高性能领域的风生水起不同,x86架构是天生的小屌丝。1978年他出生的那年,英特尔还只是一个普通的科技公司。可是x86架构随同其cisc指令集却开启了一个新的时代。x86之所以可以赢得市场主要原因在于其是一个十分开放的架构。IBM和SUN当年都是从芯片到服务器到系统一手包办的公司。而英特尔则是一个十分纯粹的芯片厂商,其业务仅与AMD等少数芯片生产者存在竞争,这就使得服务器厂商不用忌惮与之发生竞争关系。
?? 单从性能来看,无论Power还是SPARC架构都可以击溃x86,可是最终能够赢下来的却偏偏是"最弱"的x86架构。这并非劣币淘汰良币,而是市场竞争的选择,根源上讲,x86的成功在于英特尔根本不碰服务器。因此不论设备生产商、软件开发者或者系统开发者都可以与不存在利益竞争关系的英特尔合作。受益于此,x86架构的兼容性也越发强大,生态体系越发完善,这才成就了现如今市场占有率超过90%的一家独大局面,英特尔也借助x86架构一跃成为全球顶级的芯片提供商。
7.2 移动端竞争
?? 正如PC和服务器端是X86的天下一样,移动端是ARM的天下。Intel在CPU界的大名,可谓家喻户晓,但是在移动端却难以看到英国ARM公司的身影。2006年,自从AMD的64位处理器发布以来,AMD成功逆袭了Intel,市场占有率大幅上升,而Intel老迈的P4处理器则是腹背受敌,尽失昔日霸气,市场表现一路走低。为了稳住投资人的信心,最好的做法自然是让公司持续盈利,为此Intel进行大规模的重整,包括上任新CEO 欧德宁、大规模裁员、以及出售XScale手机处理器业务。正因为这个举措,使得Intel到达了人生巅峰,从PC市场有赚的钵满盆满,然而也是因为此,Intel忽视了移动领域的迅猛发展。(当年,Intel拒绝了乔帮主还是PPT的Iphone手机。但是想一下Iphone X 使用Intel基带,信号差的诟病,Intel做手机芯是否会臭名昭著也未可知)
?? 和Intel公司不同, ARM公司不制造,不销售芯片,而是只自己设计IP核,包括指令集架构、微处理器、GPU、互连架构等,然后谁想用就授权卖给谁,再从每颗实际造出来的产品中收取版税。ARM有三种授权模式,分别是架构授权、内核授权、使用授权,分别对应大中小公司,非常讨喜,贴个牌子就能说是自己的CPU,为ARM处理器的广泛使用打下坚实基础。
?? ARM的成功除了商业模式的独特之外还少不得自身素质的优秀,Intel技术毫无疑问是顶尖的,但应用场景在传统PC上,换成移动设备就行不通了,移动设备比起性能首先要考虑功耗和续航,Intel就吃了这个大亏,X86架构独步天下肯定是不能随意变改的,移动设备当然继续沿用X86架构,然而换来却是高功耗和快速掉电,换谁都看不上。反之功耗控制则是ARM的强项,使用精简指令集(RISC)和创新的big.LITTLE架构,使ARM处理器能耗比一直领先于Intel。
?? Intel正在积极布局,推出应用于 IoT 物联网的 Atom E3900 及车载电子的 Atom A3900 系列,号称 CPU 性能提升70%,GPU 性能提升190%,其中 Atom A3900 特别针对高温环境设计,可在110°C高温下使用15年。Intel是一家伟大的企业,但也是会犯错误的,既然已经错失移动市场,不妨暂时脱离,提前做好下一阶段的技术研发(5G),也有可能实现弯道超车。
引用
- Android 的ARM架构和X86架构
- ARMv7-A ARMv8-A ARMv9-A 架构
- CPU架构:CPU架构详细介绍
|