ARM 服务器:数据中心的移动 CPU 架构?
已发表: 2022-03-11我渐渐老了。 回到我的时代,如果你想要一流的 CPU 性能,你必须使用高端的 x86 芯片,或者,如果你有更大的财力,你可以得到一些奇特的东西,比如 PowerPC 系统。 该行业对 x86 处理器的依赖似乎在增加,而不是在下降。
十年前,Apple 加入了 x86 俱乐部,这促使许多观察家得出结论,非 x86 处理器在大众市场上的时代已经结束。 仅仅几年后,他们不得不信守诺言,而苹果又一次与这件事有关。 ARM 服务器即将问世,它们可能会重振服务器行业。
重新思考处理器设计
随着范式的转变和主流用户接受智能手机和平板电脑,英特尔、AMD 和威盛的 x86 芯片很快就无法胜任这项任务。 虽然 x86 是地球上最多产的指令集,但出于多种原因,它对于移动设备来说并不是一个好的选择。 事实上,英特尔的指令集仍然不是移动处理器的热门选择,尽管由于英特尔的代工技术领先地位,这种情况开始发生变化。 无论如何,在这个细分市场中,x86 的效率不如其他 CPU 架构,即基于 ARM 的 32 位 ARMv7 和 64 位 ARMv8 指令集的处理器。
在过去的十年里,尤其是在过去的五年里,ARM 处理器已经在智能手机和平板电脑领域占据主导地位,而且它们有很多优势。 它们提供了大量的每瓦性能,设计、生产和部署成本低廉。 大供应商可以购买必要的构建块并基于 ARMv7 或 ARMv8 设计自己的处理器,并根据需要添加其他组件(高速调制解调器和不同的 GPU 等等)。
这导致一些芯片设计人员采取了一些不同的方法来设计他们自己的定制 CPU 内核。 高通和苹果一路领先,两家公司都成为移动片上系统 (SoC) 市场的重要参与者,他们开发的复杂定制内核对他们的成功起到了重要作用。 然而,定制 ARM 内核仍用于高端处理器,而所有其他细分市场均由标准 ARM Cortex CPU 内核覆盖,如 32 位 Cortex-A8、A9、A7 和 A15,其次是 64 位Cortex-A53、A57 和即将开始发货的新 A72 内核等设计。
ARM 成功的另一个先决条件是微软的失败。
Windows 仅在 x86 处理器上运行,因此如果微软要在移动领域站稳脚跟,它将使天平对英特尔有利。 然而,在过去十年结束时,很明显雷德蒙德已经放弃了,将这个利润丰厚的市场拱手让给了谷歌和苹果。 说到球,微软的长期首席执行官史蒂夫鲍尔默几年前离开了公司,承认他和他的团队未能认识到智能手机和平板电脑的潜力。 无论如何,这不再是鲍尔默的问题了:他现在脑子里还有其他的球,准确的说是篮球。
然而,移动并不是第一个或唯一一个见证微软大规模失败的细分市场。 另一个是服务器市场。 从表面上看,智能手机和数据中心没有太多共同点,但从技术和商业角度来看,它们有一些重叠之处。
无论您是在设计智能手机还是服务器,您都需要强调硬件平台的类似方面,例如电源效率、良好的散热、每美元的性能等等。 最重要的是,智能手机和许多类型的服务器并不需要基于 x86 的处理器。 由于微软的失败,这些细分市场并没有被任何 Windows 风格所主导。 他们依赖于基于 UNIX 的操作系统:Android、iOS 和各种 Linux 发行版。
微软还试图利用 ARM 处理器的潜力,因此它尝试开发一个可以在 ARM 硬件上运行的 Windows 版本,这很方便地让我想到了微软的下一个失败:Windows RT。 微软最终取消了 Windows RT 的插件,或最初称为“ARM 上的 Windows”。 微软最新的 Surface 平板电脑采用 x64 处理器和标准 Windows 10。微软的 Lumia 智能手机系列(前身是诺基亚 Lumia)仍然使用高通公司的 ARM 处理器,但 Windows Phone 作为主流智能手机平台几乎已死。
服务器不必花费 ARM 和一条腿
目前,我们拥有数十亿部智能手机和平板电脑,其中绝大多数都基于 ARM 处理器。 然而,ARM 芯片并没有进入其他细分市场。 只有少数基于 ARM 的大容量计算平台不属于智能手机和平板电脑类别。 Google Chromebook 可能是最著名的例子。 然而,ARM 芯片用于大量其他设备:路由器、机顶盒和智能电视、智能手表、一些游戏设备、汽车信息娱乐系统等。
ARM 服务器呢?
这就是棘手的地方。 自 2010 年以来,我一直在听到有关 ARM 服务器的讨论,但进展缓慢且有限。 ARM 在服务器领域的市场份额仍然微不足道,生态系统仍然分别由英特尔和 AMD 的 x86 Xeon 和 Opteron 部件主导。 由于 AMD 在 CPU 方面陷入困境,英特尔近年来设法扩大了其市场份额的领先地位。
但为什么一开始 ARM 服务器听起来是个好主意呢?
钱。 我可以尝试列出使 ARM 在服务器市场上成为 x86 的可行替代品的所有令人讨厌的点,但归根结底,这主要是为了钱,所以我将尝试用几行来解释它。
- 价格/性能
- 数据中心工作负载正在发展和变化
- 能够从各种供应商处采购处理器
- 为各种利基市场使用定制设计的芯片
- ARM芯片更适合一些基础设施应用
- 固守英特尔,蚕食其市场地位,这是一个好办法(英特尔在服务器领域处于垄断地位的边缘)
我们不需要庞大而昂贵的 Xeon 处理器来处理所有事情。 此外,使用过时的 x86 处理器来处理要求不高的工作负载并不是一个好的选择,因为它们的功耗很高。 请记住,我们谈论的是服务器,而不是您的 MacBook 或台式 PC。 服务器全天候运行,因此每一项效率提升(包括相对较小的提升)往往都很重要。 这不仅仅是为了获得更大的电费; 数据中心必须进行冷却和维护,因此具有较低热设计功率 (TDP) 等级的处理器对企业用户而言比个人更有价值。
为什么使用 ARM 服务器?
那么,ARM 处理器适合什么样的企业应用呢?
嗯,ARM 预计将在网络基础设施应用程序中获得绝大多数设计胜利。 由于其灵活性、小尺寸、效率和低廉的价格,ARM 处理器是基础架构的绝佳选择。 您可以在路由器、高性能存储解决方案和某些类型的服务器中使用 ARM 处理器。
然而,ARM 预计这十年的大部分企业增长将来自服务器,因为它的其他细分市场已经成熟并且在其中拥有健康的市场份额。 服务器工作负载也在发生变化,这种趋势与云服务的增长有关。 因此,服务器必须处理越来越多的小任务。
许多组织更愿意保持他们的选择开放,因此他们从多个供应商处采购硬件。 这对 ARM 服务器处理器来说是个好消息,因为它们可以由许多不同的公司销售。 此外,ARM 的许可政策和处理器设计的模块化方法可用于为特定应用设计定制处理器。 显然,这不是小公司的选择,但如果像亚马逊、Facebook 或谷歌这样的大公司开始要求定制服务器处理器,以在某一特定应用程序上表现出色,会发生什么?
至于“固守英特尔”,我要说明的是,我并不是说英特尔有什么害处,我不希望看到它失败或被逐出各个细分市场,但同时我也担心英特尔的主导地位最终可能会扼杀增长和创新。 更多的竞争应该会降低最终用户的价格,这就是 ARM 服务器的全部意义所在。
多线程:多少 CPU 内核才足够?
仅在十年前,多核 x86 处理器被保留用于高性能计算机和服务器,但现在您可以在 100 美元的平板电脑中获得四核 x86 芯片。
在多核计算的早期,您仍然需要大 CPU 内核来获得足够的性能水平。 许多软件无法利用这些新处理器及其额外内核,因此良好的单线程性能至关重要。 事情肯定发生了变化; 如今,我们拥有八核智能手机、四核英特尔平板电脑和手机,以及 16 核 x86 服务器处理器。
这是有充分理由的。 从技术和财务角度来看,构建多核处理器非常有意义。 将负载分配到几个更小、更高效的 CPU 内核比开发一个能够在高频下运行的单个巨大内核要容易得多。 多核方法确保了卓越的效率和芯片良率。
ARM 有可能将核心热潮提升到一个新的水平。 ARM CPU 内核往往比用于服务器和台式机部件的英特尔所谓的“大内核”要小(英特尔的“小内核”Atom 是为移动设备保留的,尽管也可以使用基于 Atom 的服务器部件)。 然而,这并不意味着我们很快就会看到 128 核或 256 核 ARM 处理器,尽管理论上它们是可能的。 这取决于新的 ARMv8 服务器处理器如何处理多线程负载。 有一些令人鼓舞的迹象,对于可以从多核处理器中受益的一系列工作负载来说,ARM 服务器很有可能是一个不错的选择。
高通的第一款服务器处理器有 24 个 ARMv8 CPU 内核,这家芯片制造商明确表示,未来的型号将配备更多内核。 还记得 AMD 及其服务器市场的困境吗? 好吧,就在几周前,该公司推出了早该推出的基于 ARM 的 Opteron A1100 处理器。 高通公司在 10 月份宣布了这一消息,因此这两款产品都将在未来几个月内上市。
当然,英特尔不会参加这次 ARM 派对,但高通和 AMD 并不是唯一一家致力于基于 ARM 的企业芯片的芯片公司。 Broadcom、Calxeda、Cavium Networks 和华为海思等芯片制造商也致力于开发基于 ARM 的服务器产品。 英伟达和三星是 SoC 和 GPU 业务的两大巨头,他们也曾尝试过使用 ARM 服务器部件,直到几年前他们决定停止开发。 德州仪器、赛灵思和 Marvell 也在探索 ARM 服务器部件。

其中一些公司也致力于定制 ARM 内核,但目前唯一可用的非 Apple 64 位定制 ARM 内核是 Nvidia 的 Denver,它只获得了少数设计胜利。
什么是 ARM 定制内核?
我知道大多数人都不会费心跟踪所有行业利基市场,包括 CPU 空间,所以我认为现在是解释 ARM 内核的不同之处以及定制内核实际是什么的好时机。 我不会剖析处理器并解释 x86 和 ARM 指令集之间的区别,但我将从业务角度概述它们的区别。
你看,ARM 并没有因为它使用不同的指令集而有所不同,尽管这会做出一个快速而令人讨厌的解释,但在我看来,英特尔、AMD 和 ARM 之间最大的区别不是架构,而是商业模式. 此外,架构发生了变化,新的 CPU 设计定期发布,但 ARM 对其技术进行营销和许可的方式多年来并没有改变。
这是一个简单的例子。
英特尔处理器由英特尔开发,使用英特尔指令集。 它由英特尔代工厂制造,包装和发货时带有“Intel Inside”品牌。 这听起来可能很简单,但我们不要忘记几十年来投入了数十亿美元的研发费用,或者英特尔依靠自己的晶圆厂进行制造的事实(如果你在市场上购买 14nm 代工厂,请确保你有一些备用改变你,因为芯片厂的成本与核航空母舰一样高)。
ARM 产品呢? 嗯,ARM 不是芯片制造商,它是芯片设计者,或者是“无晶圆厂”芯片公司,所以它不涉及制造,也不销售自有品牌的芯片。 ARM 卖的东西更有趣:知识产权。 这意味着 ARM 客户可以选择多种不同的许可计划中的任何一种,并开始制作自己的设计。 他们中的大多数选择 ARM 的内部设计(Cortex 系列 CPU、Mali 系列 GPU),因此他们为生产的每个 CPU/GPU 内核支付许可费。
但是,客户不必为这些现成的 CPU 授权; 它可以改为许可架构集,并基于 ARM 指令集开发自定义内核。 这就是苹果所做的。 它使用 ARMv8 指令集为其 iOS 设备构建强大的 64 位 CPU 内核。 Nvidia 的 Denver CPU 在这方面类似,Qualcomm 的定制内核(32 位 Krait 和 64 位 Kryo 系列)也是如此。
设计一个定制的 CPU 内核并不容易。 并不是说你会发现芯片设计师失业并在 Craigslist 上提供设计定制处理器,所以这种方法通常是为那些拥有必要技术、财务和人力资源的大玩家保留的。 因此,大多数公司改用现成的 ARM Cortex 内核(64 位 Cortex-A57 内核可用于服务器环境,并且被大多数下一代 ARM 服务器处理器使用)。
需要注意的是,实际上基于 ARM 的芯片是定制设计的,但大多数使用的 CPU 内核不是。
绝大多数 ARM 处理器依赖于标准 ARM CPU 设计 (Cortex CPU),而不是定制 CPU 内核。 这意味着芯片制造商可以选择任意数量的 ARM CPU 内核、第三方 GPU 和其他组件,并定制处理器以满足他们的需求,而无需开发定制的 CPU 内核。 这是使架构更灵活的一种廉价方式,而且它更多地与 ARM 的许可政策有关,而不是工程。
还需要注意的是,这些即将推出的 ARM 服务器基于最新的 ARM 64 位 CPU 架构,与多年前的实验性 ARM 服务器没有太多共同之处。 例如,我们的一位同事使用过 Scaleway ARM 服务器,但它们基于 ARMv7 处理器并且有许多硬件限制(例如,Scaleway 使用共享 I/O 控制器,并且缺乏 64 位支持创建了另一个一系列挑战)。 新一代基于 ARM 的服务器不会遇到这些初期问题; 它们在功能和标准方面更接近英特尔硬件。
ARM 服务器的优缺点
ARM 服务器的问题在于它们倾向于用于小众市场,不适合可以与任何服务器共存的小型开发人员。 虽然一些大公司觉得它们很有吸引力,但目前可用的 ARM 服务器并不适合大多数个人开发人员。
但是,即将推出的服务器解决方案有所不同,应该会吸引更多的利基市场。 这可以使它们吸引更广泛的用户群:
- 降低硬件成本,潜在的卓越效率(每美元的性能,每瓦的性能)。
- 提高流行端口的兼容性和可用性。
- 支持尖端技术和新的行业标准。
- 能够胜任某些类型的工作负载(简单但多线程负载)。
- 与 x86 空间相比,具有更多竞争和产品多样性的潜力。
我必须强调,在这个阶段,其中一些观点是理论上的,因为硬件还没有推出。 然而,虽然我不能断然声称知道未来几个季度会发生什么,但我相信新型 ARM 服务器将带来这些(以及更多)优势。 为什么我这么自信? 好吧,如果他们没有潜力做出改变,ARM、高通、AMD 和其他公司就不会在他们的开发上浪费时间和烧钱。
那么,ARM 服务器的缺点呢? 有很多,其中一些很大。 幸运的是,该行业正在努力解决这些问题。
- 命中和错过软件支持
- 可用性、潜在的部署问题
- 投资回报率问题
- 微小的生态系统
- 旧习难改
与软件相关的问题可能是最直接的问题。 虽然许多流行的服务将在 ARM 服务器上运行,但软件支持将是一个问题。 仅仅将东西移植到新硬件是不够的; 我们必须确保一切正常运行,以免性能受到影响或出现故障。 换句话说,移植的软件必须成熟。 没有人会开发和部署建立在有缺陷的基础上的服务。
在服务器市场上赚到了所有的钱,人们会期望看到快速的进展,但情况并非总是如此。 采用新硬件并调整在其上运行的所有软件绝非易事,其速度取决于市场采用情况。 ARM 服务器生态系统的规模(非常)有限,我怀疑几个新处理器在短期内会产生很大的不同。 尽管 ARM 和高通等有影响力的公司对看到 ARM 服务器需求的回升有着既得利益,但他们对软件无能为力。 他们对软件开发人员几乎没有影响力,因此他们不能强迫他们将 ARM 支持添加到现有产品中。
长话短说:仔细查看您的堆栈并尝试确定一切是否可以在 ARM 硬件上正常运行。 如果有足够的时间,开发人员将开始添加对 ARM 硬件的支持,但这不会是一个快速的过程。 他们将不得不调整框架和应用程序以适应新的架构,而且我怀疑,在有足够的 ARM 服务器(可能需要数年时间)之前,他们中的许多人不会打扰。 对遗留软件的支持是另一个明显的问题。
这将我们带到了下一点:市场可用性和潜在的部署问题。 那里没有那么多 ARM 服务器,因此选择有限,可用性也有限。 一两年后,我们可以看到许多基于 ARM 的托管软件包,但我们不会看到太多。 更糟糕的是,这些服务器很有可能会集中在世界的某些地方,从而降低它们对某些开发人员的吸引力。 与部署相关的未知数很多,所以现在说事情会如何发展还为时过早。
缓慢的采用可能会带来另一组挑战。 这些不仅限于 ARM 服务器; 它们适用于大多数企业技术。 许多组织一定会探索使用 ARM 服务器的可能性,但这并不一定意味着他们会真正使用它们。 为了保证足够的发展和消费需求,市场采用率需要稳步增长。 否则,规避风险的人可能会远离,采取观望态度。 另一个潜在的问题是经济问题:如果开发人员不确定生态系统的增长速度是否足够快,他们可能会认为潜在的回报根本不值得付出努力。
这些老习惯怎么办? 好吧,由于服务器空间发展不快,人们倾向于坚持使用经过验证的平台,即 x86 硬件。 座右铭很简单:如果它没有坏,就不要修理它。 业内资深人士可能会将 ARM 服务器视为一个机会,并对其进行赌博。 将复杂项目的一部分与许多人仍然认为未经测试或不成熟的硬件平台联系起来需要相当大的勇气和信心。 我担心很多人不会愿意冒险,至少不会这么早。
光明的未来和一小撮炒作
我成年后的大部分时间都在研究尖端芯片,而我个人对 ARM 服务器的看法是它们具有很大的潜力,但它们并不适合所有人。 他们可以通过为基础设施提供廉价的构建块和处理利基服务器工作负载,在未来的互联网中发挥重要作用。
然而,与此同时,我无法摆脱 ARM 服务器往往被过度炒作的感觉。 尽管如此,我并不认为它们是一种时尚。 我认为他们会留下来,但供应商必须开辟一些可以真正从新架构中受益的特定领域。
换句话说,我们不会看到很多基于 ARM 的简单 LAMP Web 托管服务器,但我们可以在更奇特的领域(以及一些非常无聊的领域)中看到它们的负载。 ARM 处理器可能非常适合特定负载,尤其是那些可以利用大量小型物理 CPU 内核(不受 CPU 限制)的处理器。 听起来可能不多,但这实际上涵盖了很多潜在用途:数据记录、大量简单查询、某些类型的数据库、各种存储服务等等。
我可以继续列出 ARM 服务器的各种用例、优缺点以及潜在问题,但归根结底,我怀疑 ARM 服务器的采用将取决于良好的旧现金。 抛开技术不谈,ARM 服务器只有在经济成分得到验证的情况下才有意义。 换句话说,如果它们要证明它们的存在是合理的,它们将不得不提供比 x86 处理器更多的物有所值。
由于这或多或少是将这种新架构引入服务器行业的全部意义所在,因此我希望价格具有吸引力,但我们还需要几个月的时间才能确定。
