CPU架构:一个简明的概述

以下内容源于网络资源的学习与整理,如有侵权请告知删除。

注意,这篇文章是很早前发布的,里面的数据与描述与当下可能不符,仅当常识认知用。

CPU发展至今存在着很多种架构,比如x86架构、ARM架构、MIPS架构、PowerPC架构等。它们可以分为两类,即复杂指令集计算机(CISC,Complex Instruction Set Computer)和精简指令集计算机(RISC,Reduced Instruction Set Computer)。

CISC典型的有 Intel 的 x86 架构,而 RISC 常见的有 IBM 的 PowerPC架构、MIPS 的 MIPS架构、Acorn 的 ARM 架构。

指令集是对CPU架构硬件的抽象,不同架构的CPU会采用不同的指令集,比如x86指令集、MIPS指令集、PowerPC指令集、ARM指令集等。同一种架构的CPU可能有几套指令集,比如ARM架构有32位的ARM指令集和16位的thumb指令集。 

一、x86架构

x86或80×86是英特尔研发的一种微处理器体系结构的泛称。该系列较早期的处理器名称用数字来表示,并以“86”作为结尾,包括Intel 8086、80186、80286、80386以及80486,因此其架构被称为“x86”。

1978年,英特尔公司推出基于x86架构的Intel 8086中央处理器(该处理器是从Intel 8008处理器中发展而来的,而8008则从Intel 4004发展而来)。1981年,8086被IBM PC所选用,从此x86便成为了个人电脑的标准平台,成为有史以来最成功的CPU架构。

在1985年英特尔公司推出32位的80386中央处理器之前,x86架构都维持16位元。在推出32位的80386之后,英尔特陆续推出了一系列基于x86架构的32位的中央处理器。直到2003年,AMD对x86架构发展了64位的扩充,并命名为AMD64。后来英特尔公司也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位时代。

其实英特尔公司早在1990年代就与惠普合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的架构,和x86架构完全没有相似性。

如今的PC机基本都是x86架构计算机。如果你想尝试其他架构的计算机,首先要考虑是否放弃Windows系统。不过从 Windows 8 起,微软开始支持ARM架构,也就是说,ARM架构的计算机也可以运行Windows 8以上版本的系统。 

二、ARM架构

ARM,是Advanced RISC Machine的缩写,早期是Acorn RISC Machine的缩写。

ARM架构是一个32位精简指令集中央处理器架构,其广泛地使用在许多嵌入式系统设计。

ARM架构包含了下述RISC特性:

  • 读取/储存架构。
  • 正交指令集(存取指令可以任意的寻址方式存取数据)
  • 大量的16 × 32-bit 寄存器阵列。
  • 固定的32 bits 操作码长度,降低编码数量所产生的耗费,减轻解码和流水线化的负担。
  • 大多均为一个CPU周期执行。
  • 为了补强这种简单的设计方式,相较于同时期的处理器如Intel 80286和Motorola 68020,还多加了一些特殊设计:

  • 大部分指令可以条件式地执行,降低在分支时产生的负重,弥补分支预测器的不足。
  • 算数指令只会在要求时更改条件编码。
  • 32-bit筒型位移器可用来执行大部分的算数指令和寻址计算而不会损失效能。
  • 强大的索引寻址模式。
  • 精简但快速的双优先级中断子系统,具有可切换的暂存器组。
  • 目前,ARM家族拥有32位嵌入式处理器75%的市场比例。从可携式设备(比如移动电话、多媒体播放器、计算机等),到电脑周边设备(比如硬盘、路由器等等),甚至在导弹的弹载计算机等军用设施中,都有ARM处理器的存在。

    三、MIPS架构

    MIPS,是Microprocessor without Interlocked Pipeline Stages的缩写,中文意思是“无内部互锁流水级的微处理器”。

    MIPS架构是一种采取精简指令集的处理器架构,1981年出现,由MIPS科技公司开发并授权,广泛地使用在许多电子产品、网络设备、个人娱乐装置与商业装置上。其机制是尽量利用软件办法避免流水线中的数据相关问题。它最早是在80年代初期由斯坦福(Stanford)大学Hennessy教授领导的研究小组研制出来的。MIPS公司的R系列就是在此基础上开发的RISC工业产品的微处理器。这些系列产品为很多计算机公司采用构成各种工作站和计算机系统。

    MIPS是出现最早的商业RISC架构芯片之一。MIPS的系统结构及设计理念比较先进,强调软硬件协同提高性能,同时简化硬件设计。

    2002年,中国科学院计算所开始研发龙芯处理器,采用MIPS架构,但未经MIPS公司的授权,遭到侵权的控告。2007年,中国科学院与MIPS公司达成和解,得到正式授权。中国龙芯2和前代产品采用的都是64位MIPS指令架构。过去,MIPS架构的产品多见于工作站领域,索尼PS2游戏机所用的“Emotion Engine”也采用MIPS指令,这些MIPS处理器的性能都非常强劲,而龙芯2也属于这个阵营,在软件方面与上述产品完全兼容。

    四、ARM架构与MIPS、X86架构的对比

    1、ARM架构与MIPS架构的对比

    与当前商业化最成功的ARM架构相比,MIPS的优势主要有以下几点:

  • MIPS支持64bit指令和操作,ARM目前只到32bit 。
  • MIPS有专门的除法器,可以执行除法指令 。
  • MIPS的内核寄存器比ARM多一倍,所以同样的性能下MIPS的功耗会比ARM更低,同样功耗下性能比ARM更高。
  • MIPS指令比ARM稍微多一点,稍微灵活一点。
  • 有观点认为MIPS的bank寄存器性能也要好于ARM,不过没见过能反映出来的测试。
  • 商业上二者差别也大,ARM很昂贵,而且不能随意自行更改内核,而MIPS开放许多。这也是龙芯为不采用ARM架构的原因。
  • 与ARM架构相比,MIPS架构也存在着以下几点不足:

  • MIPS的内存地址起始有问题,这导致了MIPS在内存和cache的支持方面都有限制,现在的MIPS处理器单内核面对高容量内存时有问题。
  • MIPS今后的发展方向是并行线程,类似Intel的超线程,而ARM未来的发展方向是物理多核,目前看来物理多核占优。由此来看,我国的龙芯向多核发展还是颇具远见的。
  • MIPS虽然结构更加简单,但是到现在还是顺序单发射,ARM已经进化到了乱序双发射甚至乱序三发射了。
  • 2、ARM架构与X86架构的对比

    性能对比

    X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多、强得多。X86的CPU的主频随便就是1GHZ以上,双核、四核大行其道,现在通常使用22nm制程的工艺进行生产;而ARM方面,其CPU通常是几百兆,最近才出现1G左右的CPU,制程通常使用32nm或45nm制程的工艺,可以说在性能和生产工艺方面ARM根本不是X86结构系统的对手。

    但ARM的优势不在于性能强大而在于效率,ARM采用RISC流水线指令集,在完成综合性工作方面根本就处于劣势,而在一些任务相对固定的应用场合其优势就能发挥得淋漓尽致。

    扩展能力对比

    X86结构的电脑采用“桥”的方式与扩展设备(如硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多,价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。

    ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用ARM结构的系统,一般不考虑扩展,基本奉行“够用就好”的原则。

    操作系统的兼容性

    X86系统由微软及Intel构建的Wintel联盟一统天下,垄断了个人电脑操作系统近30年,形成巨大的用户群,也深深固化了众多用户的使用习惯,同时x86系统在硬件和软件开发方面已经形成统一的标准,几乎所有x86硬件平台都可以直接使用微软的视窗系统及现在流行的几乎所有工具软件,所以x86系统在兼容性方面具有无可比拟的优势。

    ARM系统几乎都采用Linux的操作系统,而且几乎所有的硬件系统都要单独构建自己的系统,与其他系统不能兼容,这也导致其应用软件不能方便移植,这一点一直严重制约了ARM系统的发展和应用。

    GOOGLE开发了开放式的Android系统后,统一了ARM结构电脑的操作系统,使新推出基于ARM结构的电脑系,有了统一的、开放式的、免费的操作系统,为ARM的发展提供了强大的支持和动力。

    软件开发的方便性及可使用工具的多样性

    软件配套、软件开发工具的配套及兼容等工作,X86已经到达非常成熟甚至可以说是完美的境界。所以使用X86电脑系统不仅有大量的第三方软件可供选择也有大量的软件编程工具可以 帮助您完成您所希望完成的工作。

    Arm结构的电脑系统因为硬件性能的制约、操作系统的精简、以及系统兼容等问题的制约,造成Arm结构的电脑系统不可能像X86电脑系统那样有众多的编程工具和第三方软件可供选择及使用,ARM的编程语言大多采用C和JAVA或C++。

    因此,基于x86结构电脑系统平台开发软件比arm结构系统更容易、更简单、实际成本也更低,同时更容易找到第三方软件(免去自己开发的时间和成本),而且软件移植更容易。

    功耗对比

    X86电脑因考虑要适应各种应用的需求,其发展思路是:性能+速度。20多年来x86电脑的速度从原来8088的几M发展到现在随便就是几G,而且还是几核,其速度和性能已经提升了千、万倍,技术进步使x86电脑成为大众生活中不可缺少的一部分。但是x86电脑发展的方向和模式,使其功耗一直居高不下,一台电脑随便就是几百瓦,即使是号称低功耗节能的手提电脑或上网本,也有十几、二十多瓦的功耗,这与ARM结构的电脑就无法相比。

    ARM的设计及发展思路是:满足某个特殊方面的应用即可,在某一专项领域是最强的,(哪怕在其他方面一无是处),这样Arm以其不是最强的技术,同样也不是很高级制程的制造工艺,生产出性能不是很强的电脑系统,但在某个专业应用方面则是最好的,特别是在众多终端应用,尤其在移动终端应用上占有绝对优势的统治地位,这个原因就是:功耗。

    高功耗导致了一系列X86系统无法解决的问题出现:系统的续航能力弱、体积无法缩小、稳定性差、对使用环境要求高等问题。从这里我们可以看到x86系统与ARM系统是在两个完全不同领域方面的应用,它们之间根本不存在替换性,在服务器、工作站以及其他高性能运算等应用方面,是可以不考虑功耗和使用环境等条件时,X86系统占了优绝对优势。但受功耗、环境等条件制约且工作任务固定的情况下ARM就占有很大的优势,在手持式移动终端领域,X86的功耗更使它英雄毫无用武之地。

    总结

    从以上对比分析,给了我们的一个很清晰的感觉,ARM和X86结构的电脑根本就无法对比,ARM根本就不是X86电脑的的对手。如果只考虑上述几个方面的要数,ARM确实无法与X86电脑竞争,甚至连比较的资格都没有。但是近1、2年,ARM的产品在终端应用特别是手持终端应用飞速发展(如智能手机、平板电脑等),其销售数量已经远远超出x86结构的电脑销售数量,可见ARM是具有其与X86结构电脑不可对比的优势。

    X86系统和ARM系统应该是两个完全不同领域的应用,如果功能单一又受到环境制约的应用,如:POS、ATM、多媒体广告机(现已经有ARM+DSP的产品)、车载电脑终端等应用,应该首先考虑ARM方案,ARM方案与X86相比,其功耗和成本占有很大优势。

    现在ARM很强大,但它距离X86还是非常遥远,毕竟它们设计的出发点不一样, X86无法做到ARM的功耗,而ARM也无法做到X86的性能。不过这也不意味着ARM以后就只能占据低端,毕竟任何架构都有其优点,一旦有应用针对其进行优化,那么就可以扬长避短。X86的繁荣也正是因为整个世界的资源都针对它进行了优化所致。只要能为ARM找到合适的应用与适合的领域,未来ARM也未必不可以进入更高的层次。

    物联沃分享整理
    物联沃-IOTWORD物联网 » CPU架构:一个简明的概述

    发表评论