目 录CONTENT

文章目录

CPU架构简介

ByteNews
2022-08-22 / 0 评论 / 1 点赞 / 7,218 阅读 / 2,966 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-08-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

CPU架构简介

CPU 架构是CPU厂商给属于同一系列的 CPU 产品定的一个规范,主要目的是为了区分不同类型 CPU 的重要标示。目前市面上的 CPU 分类主要分有两大阵营,一个是 intel、AMD 为首的复杂指令集 CPU,另一个是以 IBM、ARM 为首的精简指令集 CPU。两个不同品牌的 CPU,其产品的架构也不相同,例如,Intel、AMD 的 CPU 是 X86 架构的,而 IBM 公司的 CPU 是 PowerPC 架构,ARM 公司是 ARM 架构。

以下摘自CPU 架构解析:ARM 和 x86 大比拼 - 51CTO.COM

要了解 X86 和 ARM,就得先了解复杂指令集(CISC)和精简指令集(RISC) 从 CPU 发明到现在,有非常多种架构,从我们**熟悉的 X86、ARM,到不太熟悉的 MIPS、IA64,**它们之间的差距都非常大。但是如果从最基本的逻辑角度来分类的话,它们可以被分为两大类,即所谓的“复杂指令集”与“精简指令集”系统,也就是经常看到的“CISC”与“RISC”。

Intel 和 ARM 处理器的第一个区别是,前者使用复杂指令集(CISC),而后者使用精简指令集(RISC)。属于这两种类中的各种架构之间最大的区别,在于它们的设计者考虑问题方式的不同。下面分别来介绍:

  • PC 领域,Intel 的 CPU 一枝独秀。最初采用的 80x86 系列在发布了产品 80486 后,Intel 对该系列(x86)产品进行了重新命名并注册,这也就是现在 Intel 的 Pentium 系列,当然,这个系列在中国还有个更响亮的名字,即奔腾系列。目前奔腾系列的 CPU 包括:Pentium、Pentium MMX、Pentium Pro、PII、PII Xeon(至强)、PIII、PIII Xeon、P4 Xeon、Celeron2(赛扬)等。
  • 移动端呢?那就当属 ARM。ARM 处理器最大的特点在于节能,这也是其在移动通信领域无人能敌的原因之一。

ARM 与 X86 大比拼

  • 1、制造工艺 ARM 和 Intel 处理器的一大区别是 ARM 从来只是设计低功耗处理器,Intel 的强项是设计超高性能的台式机和服务器处理器。

一直以来,Intel 都是台式机的服务器行业的老大。然而进入移动行业时,Intel 依然使用和台式机同样的复杂指令集架构,试图将其硬塞入给移动设备使用的体积较小的处理器中。但是 Intel i7 处理器平均发热率为 45 瓦。基于 ARM 的片上系统的发热率最大瞬间峰值大约是 3 瓦,约为 Intel i7 处理器的 1/15。其最新的 Atom 系列处理器采用了跟 ARM 处理器类似的温度控制设计,为此 Intel 必须使用最新的 22 纳米制造工艺。

  • 2、64 位计算对于 64 位计算,ARM 和 Intel 也有一些显著区别。Intel 并没有开发 64 位版本的 x86 指令集。64 位的指令集名为 x86-64(有时简称为 x64),实际上是 AMD 设计开发的。Intel 想做 64 位计算,它知道如果从自己的 32 位 x86 架构进化出 64 位架构,新架构效率会很低,于是它搞了一个新 64 位处理器项目名为 IA64。由此制造出了Itanium 系列处理器。

而 ARM 在看到移动设备对 64 位计算的需求后,于 2011 年发布了ARMv8 64 位架构,这是为了下一代 ARM 指令集架构工作若干年后的结晶。为了基于原有的原则和指令集,开发一个简明的 64 位架构,**ARMv8 使用了两种执行模式,AArch32 和 AArch64。**顾名思义,一个运行 32 位代码,一个运行 64 位代码。ARM 设计的巧妙之处,是处理器在运行中可以无缝地在两种模式间切换。这意味着 64 位指令的解码器是全新设计的,不用兼顾 32 位指令,而处理器依然可以向后兼容。

  • 3、异构计算 ARM 的 big.LITTLE 架构是一项 Intel 一时无法复制的创新。在 big.LITTLE 架构里,处理器可以是不同类型的。传统的双核或者四核处理器中包含同样的 2 个核或者 4 个核。一个双核 Atom 处理器中有两个一模一样的核,提供一样的性能,拥有相同的功耗。ARM 通过 big.LITTLE 向移动设备推出了异构计算。这意味着处理器中的核可以有不同的性能和功耗。当设备正常运行时,使用低功耗核,而当你运行一款复杂的游戏时,使用的是高性能的核。

这是什么做到的呢?设计处理器的时候,要考虑大量的技术设计的采用与否,这些技术设计决定了处理器的性能以及功耗。在一条指令被解码并准备执行时,Intel 和 ARM 的处理器都使用流水线,就是说解码的过程是并行的。

为了更快地执行指令,这些流水线可以被设计成允许指令们不按照程序的顺序被执行(乱序执行)。一些巧妙的逻辑结构可以判断下一条指令是否依赖于当前的指令执行的结果。Intel 和 ARM 都提供乱序执行逻辑结构,可想而知,这种结构十分的复杂,复杂意味着更多的功耗。

那为什么反而 ARM 的比 X86 耗电少得多呢。这就和另外一个因素相关了,那就是设计。

设计又分为前端和后端设计,前端设计体现了处理器的构架,精简指令集和复杂指令集的区别是通过前端设计体现的。后端设计处理电压、时钟等问题,是耗电的直接因素。当然,其中任何一项都会使得时钟和电源所控制的模块无法工作。他们的区别在于,门控时钟的恢复时间较短,而电源控制的时间较长。此外,如果条单条指令使用多个模块的功能,在恢复功能的时候,并不是最慢的那个模块的时间,而可能是几个模块时间相加,因为这牵涉到一个上电次序的问题,也就是恢复工作时候模块间是有先后次序的,不遵照这个次序,就无法恢复。而遵照这个次序,就会使得总恢复时间很长。

所以在后端这块,可以得到一个结论,**为了省电,可以关闭一些暂时不会用到的处理器模块。**但是也不能轻易的关闭,否则一旦需要,恢复的话会让完成某个指令的时间会很长,总体性能显然降低。此外,子模块的门控时钟和电源开关通常是设计电路时就决定的,对于操作系统是透明的,无法通过软件来优化。

再来看前端。ARM 的处理器有个特点,就是乱序执行能力不如 X86。换句话说,就是用户在使用电脑的时候,他的操作是随机的,无法预测的,造成了指令也无法预测。X86 为了增强对这种情况下的处理能力,加强了乱序指令的执行。此外,X86 还增强了单核的多线程能力。这样做的缺点就是,无法很有效的关闭和恢复处理器子模块,因为一旦关闭,恢复起来就很慢,从而造成低性能。为了保持高性能,就不得不让大部分的模块都保持开启,并且时钟也保持切换。这样做的直接后果就是耗电高。而 ARM 的指令强在确定次序的执行,并且依靠多核而不是单核多线程来执行。这样容易保持子模块和时钟信号的关闭,显然就更省电。

ARM 和 X86 现在发展如何?

关于 X86 架构和 ARM 架构这两者谁将统一市场的争执一直都有,**但是也有人说这两者根本不具备可比性,X86 无法做到 ARM 的功耗,而 ARM 也无法做到 X86 的性能。**现在 ARM 架构已经具备了进入服务器芯片的能力,众多芯片研发企业纷纷采用 ARM 架构研发服务器芯片无疑将促进其繁荣, 2015 年一款采用 ARM 架构的 Windows 10 平板现身,这也是目前曝光的全球首款非 X86 架构、运行 Windows 系统的平板产品。

随着移动网络和互联网融合互通日趋明显,ARM 发展后台数据中心已经是大势所趋,所以与其说 ARM 倒更像是背水一战,无论是 ARM 还是 Intel,双方都没有任何退路可言。

1

评论区