当你想到移动计算硬件时,首先想到的可能是ARM,或者应该是ARM。英特尔在历史上一直是公认的领先的芯片制造,直到今天仍然如此,多年来,手臂慢慢雕刻成一个利基市场,最终达到一个转折点,在计算设备不再需要更快,但是他们需要更有效率和便携式。
这就是ARM在移动处理器市场占据主导地位的原因,几乎每个主要版本都构建在其架构之上。我们说的是用于嵌入式应用、生物识别系统、智能电视、iphone、笔记本电脑和平板电脑的数十亿芯片。但是为什么会出现这种情况呢?为什么其他的架构,比如x86,都没能站稳脚跟呢?在本文中,我们将向您概述ARM是什么,它来自哪里,以及为什么它会如此受欢迎。
首先要注意的是,ARM(最近的格式是小写的“ARM”)实际上并不生产处理器。相反,他们设计CPU的架构,并将这些设计授权给高通(Qualcomm)或三星(Samsung)等其他公司,这些公司将其整合到自己的处理器中。由于它们都使用统一的标准,运行在高通Snapdragon处理器上的代码也将运行在三星Exynos处理器上。
每一个电脑芯片都需要一个ISA来运行,这就是ARM所代表的。要详细了解CPU如何在内部运行,必须阅读我们的CPU设计系列文章。解释ARM的第一步是理解ISA到底是什么和不是什么。
它不像缓存或核心那样是一个物理组件,而是定义了处理器的各个方面如何工作。这包括芯片可以处理的指令类型、输入和输出数据应该如何格式化、处理器如何与RAM交互等等。另一种考虑方法是,ISA是一组规范,而CPU是这些规范的实现或实现。它是一个CPU的所有部分如何操作的蓝图。
例如,ISAs指定每个数据块的大小,而大多数现代数据块使用64位模型。虽然所有处理器都执行读取指令、执行这些指令和根据结果更新其状态这三个基本功能,但是不同的ISAs可能会进一步分解这些步骤。像x86这样复杂的ISA通常会把这个过程分成几十个更小的操作来提高吞吐量。其他任务,如条件指令的分支预测和预取未来的数据片段,也由ISA指定。
除了定义处理器的微体系结构之外,ISA还将指定一组它可以处理的指令。指令是CPU在每个周期执行的指令,由编译器生成。有很多类型的指令,例如内存读/写、算术操作、分支/跳转操作等等。例如,“将内存地址1的内容添加到内存地址2的内容中,并将结果存储在内存地址3中。”
每条指令通常有32或64位长,有几个字段。最重要的是操作码,它告诉处理器它是哪种特定类型的指令。一旦处理器知道接下来要执行的指令的类型,它就会获取该操作所需的相关数据。数据的位置和类型将在操作码的另一部分给出。下面是一些ARM和x86操作码列表的链接。
现在我们已经对ISA有了基本的了解,让我们开始看看ARM的特别之处。最重要的特点是ARM是精简指令集计算的RISC架构,而x86是复杂指令集计算的CISC架构。这是两种主要的处理器设计范例,它们都有各自的优缺点。
在RISC体系结构中,每条指令都直接指定一个CPU要执行的操作,它们是相对基本的。另一方面,CISC体系结构中的指令更复杂,并为CPU指定了更广泛的概念。这意味着CISC CPU通常会将每条指令进一步分解为一系列微操作。CISC体系结构可以将更多的细节编码到单个指令中,从而大大提高性能。例如,RISC体系结构可能只有一个或两个“添加”指令,而CISC体系结构可能有20个,这取决于用于计算的数据类型和其他参数。关于RISC和CISC的更详细的比较可以在这里找到。
另一种看待它的方法是把它比作盖房子。在RISC系统中,你只有一个基本的锤子和锯子,而在CISC系统中,你有几十种不同类型的锤子、锯子、钻头等等。使用类似于cisc的系统的构建器能够完成更多的工作,因为它们的工具更加专业和强大。RISC构建器仍然能够完成这项工作,但是需要更长的时间,因为他们的工具更基础,功能更弱。
您现在可能会想“既然CISC系统如此强大,为什么还会有人使用RISC系统呢?”不过,性能远非唯一需要考虑的因素。我们的CISC制造商不得不雇佣一群额外的工人,因为每个工具都需要一套专门的技能。这意味着工作地点要复杂得多,需要大量的计划和组织。管理所有这些工具的成本也要高得多,因为每个工具可能使用不同类型的材料。我们的RISC朋友不用担心这个问题,因为他们的基本工具可以处理任何东西。
家庭设计师可以选择他们想要如何建造他们的家。他们可以为我们的RISC生成器创建简单的计划,也可以为我们的CISC生成器创建更复杂的计划。开始的想法和完成的产品是一样的,但是中间的工作是不同的。在本例中,home设计器相当于编译器。它将程序员(home designer)生成的代码(home drawing)作为输入代码,并根据首选的样式输出一组指令(building plans)。这允许程序员为ARM CPU和x86 CPU编译相同的程序,即使指令的结果列表非常不同。
让我们再回到ARM。如果你已经把这些点连接起来,你可能会猜出是什么让ARM如此吸引移动系统设计师。这里的关键是效率。在嵌入式或移动场景中,能效比性能重要得多。几乎每次,如果系统设计人员认为这意味着节省电力,那么他们的性能就会受到影响。除非电池技术有所改进,否则在设计移动产品时,热量和功耗仍将是主要的限制因素。这就是为什么我们在移动电话上看不到大型桌面处理器。当然,它们的速度比移动芯片快几个数量级,但你的手机温度太高,拿不动,电池只能维持几分钟。高端的桌面x86 CPU在负载情况下可以消耗200瓦的电量,而移动处理器最多可以消耗2到3瓦的电量。
您当然可以制造一个低能力的x86 CPU,但是CISC范式最适合于更强大的芯片。这就是为什么你不经常在台式机上看到ARM芯片或在手机上看到x86芯片;它们不是为那个设计的。为什么ARM能够实现如此高的能效?这一切都可以追溯到它的RISC设计和架构的复杂性。因为它不需要处理那么多类型的指令,所以内部架构也可以简单得多。在管理RISC处理器方面也有更少的开销。
这些都直接转化为能源节约。更简单的设计意味着更多的晶体管可以直接提高性能,而不是用来管理架构的其他部分。与给定的x86芯片相比,一个给定的ARM芯片不能处理那么多类型的指令,也不能处理得那么快,但它在效率上弥补了这一点。
ARM带来的另一个关键特性是“大”。异构计算架构很少。这种设计在同一芯片上有两个伴生处理器。一个将是非常低功率的核心,而另一个是更强大的核心。该芯片将分析系统的利用率,以确定哪个核心被激活。在其他情况下,编译器可以告诉芯片调出更强大的核心,如果它知道一个计算密集型的任务即将到来。
如果设备处于空闲状态或者只是运行一个基本的计算,低功耗(小)的内核将打开,而更强大的(大)的内核将关闭。ARM表示,这样可以节省高达75%的电能。虽然传统的桌面CPU在负载较轻的时候确实会降低功耗,但是有一些部分是永远不会关闭的。由于ARM能够完全关闭一个内核,因此它的表现显然优于竞争对手。
处理器设计始终是流程每一步的一系列权衡。ARM把全部精力都放在了RISC架构上,并获得了丰厚的回报。2010年,它们在手机处理器市场上的占有率为95%。随着其他公司试图进入这个市场,这个数字略有下降,但仍然没有人接近。
ARM的商业许可方式是他们占据市场主导地位的另一个原因。物理上制造芯片是非常困难和昂贵的,所以ARM不会这样做。这使得他们的产品更加灵活和可定制。
根据不同的用例,被许可方可以挑选他们想要的功能,然后让ARM为他们选择最佳类型的芯片。客户也可以设计自己的专用芯片,只实现ARM的部分指令集。使用ARM架构的科技公司不胜枚举,但这里只列举几个:苹果(Apple)、英伟达(Nvidia)、三星(Samsung)、AMD、博通(Broadcom)、富士通(Fujitsu)、亚马逊(Amazon)、华为(Huawei)和高通(Qualcomm)都使用了ARM的部分技术。
除了为智能手机(手持电脑)提供动力外,微软还一直在推动Surface和其他轻量级设备的架构。我们写一个完整的Windows 10复审的手臂在一年前,当这一努力不带操作系统到终点,我们因为看到新的和更好的行动像表面Pro x苹果也已长传闻将macOS的手臂,在理论上,这样我们可以有笔记本电脑,像手机一样高效地工作。
即使在数据中心,多年来,Arm的承诺主要是节能——当你谈论成千上万的服务器时,这是一个关键因素。然而,最近他们看到了更多的大规模计算设备的采用,这些设备旨在提供比英特尔和AMD现有的解决方案更好的性能和性能。坦率地说,这并不是很多人预期会很快发生的事情。
ARM还建立了一个可以在其架构上运行的补充知识产权(IP)的大型生态系统。这包括加速器、编码器/解码器和媒体处理器,客户都可以购买许可权利,以便在其产品中使用。
ARM也是绝大多数物联网设备的首选架构。亚马逊的Echo和谷歌Home Mini都运行在ARM Cortex处理器上。它们已经成为事实上的标准,在设计移动电子产品时,你需要一个很好的理由不使用ARM处理器。
除了他们的中央ISA业务单元,ARM还扩展到系统芯片(SoC)空间。随着空间和电力需求变得更加苛刻,移动计算市场已经转向更加集成的设计方法。CPU和SoC有很多相似之处,但SoC实际上是下一代移动计算。
芯片上的系统就像它听起来的那样。它将许多不同的组件组合到一个芯片上以提高效率。想象一下把整个桌面主板缩小成一个芯片,这就是SoC。它通常有CPU、图形处理器、内存、外围控制器、电源管理、网络和一些加速器。在此设计被采用之前,系统需要为这些功能中的每一个单独的芯片。芯片之间的通信速度可能比同一芯片上的内部连接慢10到100倍,消耗的电力可能比内部连接多10到100倍。这就是移动市场如此强烈地接受这一概念的原因。
一个基于arm的高通SoC的许多特性的表示
显然,soa并不适合于所有类型的系统。你不会看到台式机或主流笔记本电脑使用soc,因为你可以塞进一个芯片的东西是有限的。你不可能把整个独立GPU的功能、足够的内存和所有需要的互连都放在一个芯片上。就像RISC范例一样,soc对于低功耗的设计非常有用,但是对于高性能的设计就不那么适用了。
到目前为止,您应该已经理解了为什么ARM会在移动处理器市场占据如此主导的地位。他们的RISC ISA模型允许他们将计划授权给芯片制造商。通过使用RISC模型,他们最大限度地提高了效率而不是性能。当谈到移动计算,这是游戏的名字,他们是大师。