
文章目录CPU架构常见架构x86armRISC-V比较同样架构CPU一定是一样的……吗跨平台梳理结尾本文由Jzwalliser原创发布在CSDN平台上遵循CC 4.0 BY-NC-SA协议。因此若需转载/引用本文请注明作者并附原文链接不得用于商业用途。违者必究谢谢配合。个人主页blog.csdn.net/jzwalliserCPU架构——一直是困扰大家很长时间的问题。今天咱们就重拳出击细细拆解CPU的架构。快点开始吧CPU架构CPU作为电脑中最核心的计算单元肯定有着自己的一套“语言”——而电脑中运行的软件则使用CPU听得懂的“语言”给CPU发送指令然后CPU负责执行。这种“语言”就叫“指令集架构”简称“架构”。就像世界上有汉语、英语、德语、法语、俄罗斯语等等各种语言在CPU的世界里也有很多“语言”——即很多种架构。当然别理解错了——虽然说C、Python等也是一种“语言”但这都不是CPU所“看得懂”的“语言”。CPU唯一能够识别的就是无穷无尽的0和1。至于C、Python脚本是怎么变成CPU看得懂的0和1这就是后话了我们在这篇文章中先不讨论。而CPU的不同架构从根本上来自于其不同的内部电路。有的CPU内部电路复杂晶体管数量多功能也随之强大有的CPU内部电路简单些晶体管数量少但耗能也低——这就有了不同的架构。所以到这里你只需理解CPU的架构是什么——它可以看作是CPU使用的“语言”。常见架构x86x86就是一种指令集架构。它最早来源于Intel在1978年上市的Intel 8086。该系列较早期的处理器都是用数字来表示的——如Intel 8086、80186、80286、80386、80486。这些名称都符合“80x86”的“通式”后来就被称为“x86”。刚开始的x86也很弱鸡其中808680286都是16位的到了80386才开始出现32位——而著名的“i386”便来自于这里Intel 80386。图片来自TurnoffCC 4.0 BY-NC-SA后来1999-2003年间AMD干了个大活他们把x86架构做成了64位的并把它取名为“AMD64”。然后Intel又“抄”了回去也给它取了自己的名字……这才有了现在这些形形色色但都表示64位x86的缩写x86-64AMD64x64Intel 64EM64T等等。今天我们看到的绝大多数电脑芯片都使用的是x86架构——包括但不限于Intel的Core系列i5、i7、i9和AMD的Ryzen系列。大多数超级计算机也使用它因为它功能丰富速度也快。而现在生产x86处理器的厂家几乎只有AMD和Intel了。armarm架构则来自于一位物理学家Hermann Hauser和另一位工程师Chris Curry。他们手下有一家公司叫Acorn专门生产电子设备。有一次他们想在一款电子设备上使用摩托罗拉公司的16位芯片但是发现太TM贵啦于是他们找替代品问Intel公司要80286芯片的设计结果对方不鸟他们……没办法他们只好自己设计基于当时新兴的RISC精简指令集设计理念研发出自己的处理器——而这就是ARM架构的雏形。当然由RISC理念衍生出的架构还有很多——比如RISC-V、SPARC、MIPS等等。但其中最最最重要的便是arm了Advanced RISC Machine——因为你现在手上拿的手机里面就是arm架构的芯片。刚开始的arm是32位的——叫armv7。后来arm也走上了64位之路有了arm-v8a。现在绝大部分的手机都是64位armarm-v8a的了。arm架构用得有多广泛呢几户所有移动设备安卓手机、iPhone、iPad、开发版包括Orang Pi、Raspberry Pi用的都是arm芯片。甚至有些电脑使用的芯片如Apple M系列都是arm。而至于苹果的M芯片——它几乎是个“行业炸弹”它向世界证明arm架构的芯片不仅能用于手机也能在高端电脑上提供强大性能和优秀续航打破了x86在个人计算领域的绝对统治。arm芯片的生产方式和x86不太一样。arm公司即改名后的Acorn公司本身不再生产芯片了而负责把这一切授权给其他公司然后由其它公司生产芯片。RISC-V这里还是稍微说一下RISC-V吧与前面的x86、arm不同它开源、免费、可自由扩展因而被看作未来的重要变量尤其在物联网和新兴领域。比较分别介绍完了x86和arm就要对比一下了。首先没有太多优劣之分不同的架构服务于不同的目的。x86属于CISCComplex Instruction Set Computing可以简单理解为复杂指令集。它的运行速度快指令也很繁多——代价是耗能高。不过毕竟它大多是用在电脑上的就没有那么追求省电了。而arm属于RISCReduced Instruction Set Computing可以认为是精简的指令集。它的指令比较少不过耗能也低。在相同半导体工艺和性能目标下arm架构通常能实现更高的能效比性能/功耗这是其在移动设备上取得统治地位的根本原因。这里可以类比理解一下x86和arm就像是两个不同级别的厨师——x86就是“高级厨师”你只需要告诉他“给我来个煮鸡蛋”很快做好的煮鸡蛋就端上来了。而arm则不同它像是“新手厨师”你需要告诉他“拿来锅子往里面放水将一个鸡蛋放进去开火烧烧滚之后再过一会儿关火然后把鸡蛋拿出来放到盘子里端到我的桌上”。虽然最后结果是一样的但是中间过程不一样——很明显如果需要达到同样的目的高级厨师只需要很少的指令就行但是新手厨师需要接受大量的指令。他俩工资也不一样高手厨师一个月赚2w耗能高新手厨师一个月只拿8k耗能低。现在明白了不x86复杂高速高功耗arm精简中速低功耗。同样架构CPU一定是一样的……吗于是有人会觉得很好奇既然AMD、Intel生产的都是x86架构的处理器那么它们的内部构造是否也几乎一样答非也。这就是“微架构”的差异。就像同一种语言指令集下的不同“方言”或“表达风格”。Intel的Core和AMD的Ryzen都是x86但内部电路设计微架构却有很大的不同造就了不同的性能与体验。对于arm芯片也是同理——生产arm芯片的厂商有一大堆联发科、高通、苹果等等但CPU的内部电路实现是不一样的跨平台前面提到了x86大多是放在电脑上的arm基本服务于移动设备。而大多电脑上运行的是Windows多数手机先不谈iOS运行的是Android——这么看来Windows与x86有什么联系吗Android和arm又有什么关系吗事实上Windows在x86上已经扎根很长时间了。而且几户所有Windows 的exe软件都是x86架构的。不过微软后来也做了大量工作制作了Windows on arm即WOA使Windows可以成功运行在arm的架构CPU上。而Android也几乎是一样的情况——它在arm架构上生根发芽现在已经长成了参天大树。和Windows一样总有些人热衷于把本来只能运行在arm上的Android通过各种技术手段移植到其它架构上——比如x86架构。于是就有了今天的Android x86包括一些著名的操作系统如Bliss OS、Phoenix OS等等。而因为Android的开源特性它甚至还被移植到了RISC-V上呢但你一定会觉得奇怪Windows on arm既然是运行在arm架构的处理器上它又该如何运行专为x86写的软件呢所以就出现了一个东西叫做“转译层”。它负责“同声传译”在软件运行过程中把一条条x86的指令迅速翻译成arm指令这样CPU不就能运行了吗对于Android x86也是同理那些只能运行在arm上的软件也可以通过转义层将arm指令翻译成x86指令从而运行在x86上。再深入一些Windows on arm上有Prism转义层而在Android x86上就有libndk和houdini。它们做着同样的事情“同声传译”。梳理好啦CPU架构就先说到这里了给大家梳理一下并拓展些其它架构这里感谢Deepseek供图CISC复杂指令集RISC精简指令集x86m68kMotorola 68000系列VAXDEC VAX系列PDP-11DEC PDP-11系列i386/IA-3232位x86架构amd64/x86-6464位x86扩展IA-64/ItaniumIntel安腾架构ARMRISC-VPowerPC/POWERSPARCSun/OracleLoongArch龙芯架构MIPSAlphaDEC Alphahppa/PA-RISC惠普SiFiveRISC-V商业化ARMv7/AArch3232位ARM架构ARMv8/AArch6464位ARM架构Apple M系列基于ARMv8ARM Neoverse服务器/数据中心Cortex-A系列应用处理器RV32I32位基础指令集RV64I64位基础指令集RV128I128位基础指令集MIPS I-VMicroMIPSMIPS32/MIPS64POWER1-10IBMPower ISA结尾好啦就介绍到这里先溜了记得点赞关注哦