英特尔Atom是面向嵌入式、超低功耗、超轻薄以及网络等设备的处理器产品。自从2011年发布以来,Atom就以超低功耗和独特的功能特性得到了市场的青睐,并已经发展成为继酷睿处理器产品后英特尔旗下又一大处理器家族。相比酷睿处理器架构不断更新和发展的状况,Atom系列产品由于面向的市场对性能没有那么敏感,因此架构进步不算太块。随着英特尔的工艺发展至10nm时代,Atom处理器家族终于迎来了全新的架构和产品代号,那就是Lakefield产品和对应的Tremont架构。今天本文就和大家一起来了解一下这两款全新设计的产品。
英特尔在近期的新闻发布会中更新了旗下Atom处理器的架构路线图。在现有的Goldmont Plus之后,分别是Tremont、Gracemont和Future Mont三代产品。其中代号为Tremont的全新超低功耗处理器架构将在2019年正式发布,采用10nm工艺制造。不仅如此,这款架构还将搭配英特尔称作“Foveros”的3D堆叠封装技术,和Core架构的核心一起形成大小核搭配的Lakefiled处理器。近期,英特尔又公布了更多有关Tremont架构的信息。
Atom处理器发展回顾
英特尔的Atom处理器和相关产品面向诸多市场,包括嵌入式平台、网络设备、智能手机、平板电脑、NAS、控制中心甚至部分定制工业产品等。从2011年开始,Atom相关产品先后使用了Saltwell、Silvermont、Airmont、Goldmont、Goldmont Plus五代架构,前两代采用的工艺是32nm和22nm,后面三代都采用14nm,主要原因是英特尔10nm工艺的严重延期。
在发展过程中,Atom处理器在所有的产品领域其实存在着一定程度的重叠。一般来说,同一个系列会采用相同的内核,并且由于Atom全部采用的SoC设计方案,因此在不同的市场中规格相同的产品有可能会以不同的型号出现。另外,面向手机的Atom处理器在2016年后就不再推出了,面向平板电脑的产品也不再更新。未来在Tremont架构对应的Lakefiled产品发布后,Atom将可能重新回到平板电脑、上网本等产品中。
另外值得注意的变化是,随着英特尔将酷睿微架构的核心功耗范围从每核心1.5W扩展到每核心20W,Atom在将再更多的市场中展示自己的能力。Atom的面积相比Core等大核心而言小很多,并且功耗也低很多,其可量化的性能函数低于Core架构,因此能够在更低性能需求的场合下带来更好的性能和功耗表现。借助新的Tremont架构,英特尔可以结合Atom和Core的特点,实现更宽广的性能、功耗输出。
30%性能提升——Tremont的设计目标
对于CPU的设计而言,早期的重点话题都是处理器的性能,对功耗的关注反而很少。发展至今天,设备的续航时间和功耗效率等有关功耗的话题已经成为了诸如电池供电设备中最常被提到的话题。性能和电源是处理器的一体两面,在设计中需要很好地平衡二者的关系。目前一些处理器公司严格控制功耗和性能的比值,他们只允许功率和性能以相同的百分比增强,或者性能/功率的比最多是2∶1。
在英特尔的有关资料中,有趣的是,他们明确表示Tremont是在考虑性能的基础上构建的,其目的是比上一代处理器架构大幅度提高原始时钟下处理器的吞吐能力。根据英特尔自己的指标也就是SPEC来看,英特尔宣称Tremont的性能相比Goldmont Plus平均提高了30%。
值得注意的是,这样的数据来自于较为早期的Tremont设计方案,应该代表最小的性能提升幅度。英特尔给出的性能提升示意图显示,三个SPEC项目得到了65%以上的性能提升,有关这三个项目,英特尔没有给出详细信息,也没有告知有关编译代码的相关内容,据估计有可能是libquantum、lbm等相关测试。
不过,英特尔宣称这项测试中Tremont和Goldmont Plus上使用了相同的编译文件。有关最终数据的呈现方式,英特尔没有说明他们是否进行过数据处理,比如是否根据处理器的频率调整了性能,或者给出的是每频率性能等。因此这份数据的参考意义有限,仅能从表面上进行分析。
当然,即使大量的数据和内容没有给出,但是仅仅从处理器代际更迭的角度来看,30%的性能提升都是相当夸张的。但是就这么认为Tremont是成功的还为时尚早。因为除了微架构的进步和10nm制程外,还有一些其他因素影响到整个处理器的设计,比如功耗表现更为宽泛、芯片面积更大等等。为此,英特尔没有给出详细的功耗设计区间和其他信息,只是公布了Lakefiled处理器,它拥有1个Core大核心、4个Tremont小核心,并且将其和传统Atom 7W处理器进行了比较。
这样一来,将14nm的Goldmont Plus(标准的14nm工艺,并非14nm+或者14nm++)和10nm的Tremont进行比较将变得困难。因为驱动Tremont提升性能的因素很多。当然,从架构角度来分析这个问题也是一个很重要的方面,接下来我们将从架构部分对Tremont进行分析。
更大的前端和缓存设计
对于一直关注Core微体系架构的读者而言,应该对英特尔Core微体系架构不断扩大的规模和微架构结构有所印象。更大的架构规模意味着有更多的指令正在运行,与之匹配的则是更大的缓存、更大的缓冲区、更大的TLB、更多的执行端口和更多的指令及支持。
当然,一味地做大架构也并不能带来最好的结果,整个处理器架构还必须做到智能化设计,拥有可以最大限度调用内部资源的能力。因为仅仅扩展架构对一些简单的指令集来说是毫无意义的。
在Tremont上,整个架构设计的关键部分在于扩大架构规模。但是英特尔采用了两个不同的步骤和方法来精确管控处理器内部的计算过程。
关键提升之一:指令预取和分支预测
Atom处理器在微架构上的一个主要飞跃就是预取器和分支预测器。不过在Tremont上,英特尔放弃了之前Atom处理器微架构的相关设计,而是将最新的大核心Sunny Cove架构上的预取器和分支预测器移植到了Tremont上。
当然,英特尔也表示,出于芯片面积和功耗方面的考虑,两者在设计上还是存在一定差异的,但是其原理相似,并且分支预测历史记录表等元素和核心设计处于同一顺序。另外,英特尔声称L1预测没有带来性能惩罚,而L2预测的惩罚比之前几代要小。
关键提升之二:解码引擎大变革
从表面上看,Tremont包含了一个6宽度也就是6-wide的解码引擎和一个4宽度的分配和调度引擎。这种设计其实很奇怪,因为一般来看,我们希望解码引擎和调度引擎的宽度基本相等,或者调度引擎宽度比解码引擎大,以确保重排序缓冲区由于等待过久而溢出。
在Sunny Cove的微架构中,英特尔设计了4到6宽度的解码引擎,支持微操作缓存,指令会随后进入大型的重排序缓冲区,并且向后端的10宽度调度部分进行分发。在这里,Tremont和Sunny Cove的比例完全相反。
那么实施情况是怎样的呢?实际上Tremont中的6-wide解码引擎并不是一个完整的设计,它采用了2个3-wide的解码引擎并发而来。这意味着,每个解码引擎在处理不同的分支预测时,都可以采用单独的指令流,在这种情况下,与单独的6-wide解码引擎相比,2个3-wide的解码引擎的平均利用率更高。当不存在分支预测时,可以对其中一个(一组)解码引擎进行时钟门控操作以节省功耗。对于单个指令流而言,Tremont实际上只是3-wide解码,4-wide的调度。
英特尔随后也说明,在技术上,他们可以通过更新微码将解码引擎更改为一个6-wide整体,而不再是2个3-wide的设计。这种更改将不会出现在OEM自选的功能中,但是根据英特尔的具体要求,这种设计可以根据不同的用户的需求进行更改。
另一个需要特别指出的是,Tremont没有微操作缓存。英特尔对此的解释是,微操作缓存可以更好地利用宽解码的设计方案,但是在Tremont上,每个解码引擎的宽度都不大,通过使用这种双引擎的设计,实际上带来了性能的提升并节省了芯片面积。英特尔没有明确指出哪一个方案的最终实现效果更出色,但是考虑到Atom产品的功耗范围和Atom内核的典型指令流程,现有的方案应该是实现性能、功耗和面积的最优组合。
在解码引擎之后,英特尔在Tremont上做出的另一个改进是重新排序缓冲区。Tremont的缓冲区被设计为支持208条指令,而之前的Goldmont只有78条,加强版Goldmont Plus则提升至了95条。相比而言,Tremont带来了一个巨大的提升。另外,英特尔没有说明Tremont是否有能力将指令融合至ROB的微操作中(Goldmont没有这个设计)。在实际的微操作处理中,指令采用的是1∶1奇偶校验。
缓存设计:更大、更宽
Tremont的缓存设计变化比较大。英特尔增加了Tremont的L1缓存容量,目前的L1指令缓存设计了32KB容量、8路关联。L1数据缓存方面,Atom之前的几个版本都采用的是24KB容量、6路关联的方案,在Tremont上,它被提升至32KB容量和8路关联,这使得Tremont的L1数据缓存和L1指令缓存的容量、关联设计完全一样,延迟方面,Tremont的L1数据缓存延迟为3个周期。相比之下,大核心的Core微架构体系中Skylake的数据缓存为32KB、延迟为4个周期,Sunny Cove的数据缓存为48KB,延迟为5个周期。
L2缓存方面,对于之前的Atom处理器而言,这实际上是系统模块中为所有内核划分的最后一级缓存,其容量和设计取决于系统模块的要求。在之前的22nm Silvermont中,每核心采用了512KB的方案,在Goldmont中,每核心增加至1MB。对于Tremont,英特尔称L2缓存容量会因产品而异,从每个模块1.5MB到4.5MB均可。
Tremont的一个模块最多可以包含4个内核,因此有可能出现4.5MB每核心的L2缓存方案,或者1.5MB 4个核心的L2缓存方案。在一个模块中,所有内核都可以访问缓存,但是不可以访问其他模块的L2缓存。英特尔能够通过微码将L2重置为包含式或者非包含式缓存。
英特尔表示,Tremont的L2缓存平均具有17个周期的延迟。关联性方面则取决于容量,1.5MB的L2缓存将拥有12路关联,4.5MB则拥有18路关联,相应的,可以推测出3MB L2设计可能拥有15路关联。
Tremont还增加了对跨模块的全局L3缓存的支持,L2和L3缓存都能支持QoS,从而允许为特定线程或者虚拟机确定数据优先级,并增加执行内存带宽。值得一提的是,英特尔在Broadwell Xeon上引入的这项技术可以避免数据中心的多核心处理器的某个核心受到其他核心带来的数据访问和优先级排序干扰等问题。
更宽的后端设计
Tremont在后端设计上颇为激进,拥有8个执行端口和7个数据保留单元(reservation station)。Tremont的地址生成单元也就是2个AGU占用了组合数据保留单元,同时也为处于排队中的微码操作提供额外的存储空间。这样做的原因是由于2个AGU提供了2×16字节的存储空间,或者2×16的负载空间,或者每次使用其中的一个。英特尔显然希望Tremont的AGU单元更为活跃一些。相比之下,在Sunny Cove这类大核心设计中,所有的整数和浮点都使用统一的数据保留单元,AGU则独占3个。
在整数性能方面,除了两个AGU外,Tremont还拥有3个ALU,一个跳转端口和一个存储数据端口。每个ALU支持不同的功能,其中一个启用位移功能,另一个则支持乘法和除法。与Core微架构的执行单元相比,Tremont的ALU相对更为轻巧一些,不过英特尔在此处没有更多说明。
在浮点端,Tremont支持三个不同的端口,其中2个ALU,1个存储端口。2个ALU钟的一个支持FADD也就是融合加法,另一个支持FMUL也就是融合乘法和除法。两种ALU都支持具有4个周期延迟的128位SIMD和128位AES,以及4个周期的单个指令SHA 256。但是并不支持256位向量计算。另外,Tremont还支持GFNI指令,这可以帮助一些特殊的计算。
在TLB方面,Tremont支持一个更大的1024条目的L2 TLB缓存,支持1024×4K条目、32×2M条目或者8×1G条目。相比之前的Goldmont,Tremont在这方面做出了很大的提升。
其他方面
英特尔本次公开的内容主要是关于Tremont的微体系架构,其他一些信息包括SoC以及Lakefiled等都没有给出太多具体的内容。此外,英特尔也没有提到有关Tremont的GPU支持。不过英特尔还是提到Tremont将是第一个完全支持Speed Shift/ACPI的Atom微架构,以实现更快的高频率操作。
在加密和安全性能方面,Tremont支持全面内存加密,能够有效地防止物理攻击。另外还能够支持Rooted Secure Boot和Boot Guard等功能。对之前英特尔爆出的“幽灵”漏洞等问题,英特尔宣称Tremont和Cascade Lake具有相同的保护级别。
功耗方面,目前消息不多。不过有消息称在具有4个Tremont核心的模块中,所有的核心都可以共享相同的频率,不过每个核可以进入独立的C状态以减少不使用时的功耗。
写在最后
随着英特尔将Core微架构的实际功耗降低至1.5W,Tremont架构的Atom处理器将如何在传统的2mW到2W范围内发挥自己的作用将变得很有趣。目前,也有一些声音在讨论Tremont将如何和ARM Cortex-A76或者高通的Kryo核心竞争。当然,Tremont所拥有的x86优势是无可动摇的。
另一个问题则是目前英特尔的产能问题。目前英特尔的产品需求主要集中在14nm工艺上,在10nm阶段只有部分移动处理器上市,随后的10nm+阶段Tremont、Lakefield以及Snow Ridge都将现身。不过目前没有消息给出10nm和10nm+之间的差异,以及英特尔是否会再次遭工艺问题。
英特尔首发支持10nm+的处理器是Ice Lake,这款产品将在今年用在高端笔记本电脑中,搭载了Tremont的Lakefield已经宣布将用于Surface Neo。现在还不清楚Surface Neo的销量。另外,之前英特尔将Atom架构的产品规划进入了Pentium和Celeron处理器阵列,但实际表现并不出色。综合这些因素,我们有可能很难在下一代除了Atom之外的消费级处理器上看到Tremont架构的使用了。
未来,我们还将进一步跟踪Tremont的相关情况,包括产品型号、规格和性能等,对此有兴趣的读者不妨留意。