来源: MikesICroom作者: Mike Liu

上周,英特尔在加利福尼亚州召开的Linley秋季处理器大会上公布了X86 Atom低功耗处理器系列Tremont的架构设计细节。 英特尔的终端处理器主要由两条产品线组成。 一个是高性能的核心系列,是台式机系统中使用的被称为“酷睿”的东西。 另一个是低功耗的ATOM系列,中文称为“凌动”,主要面向移动端和IOT。 Tremont作为ATOM的最新架构,设计思路与高性能的zzdxx Cove有很大不同,对功耗、面积等指标更为重视。 本文将解读Tremont公共信息,探讨英特尔移动处理器的设计细节和思路。

intel atom系列(atom cpu)-冯金伟博客园

虽然Atom芯片曾一度在上网本中闪耀,但随着智能手机的普及,ARM以绝对优势垄断了这个巨大的市场,Atom似乎消失了。 虽然Atom的功耗一直备受诟病,但由于基于X86指令集,在兼容性和编程性方面有一定的优势,特别是需要与桌面系统合作的情况。 因此,在工业领域、windows平板电脑、个人存储(NAS )等专用移动市场中仍被广泛使用。

英特尔在Goldmont plus之后,计划了三代架构路线。 Tremont、Gracemont、and‘future mont’。 Tremont作为第一代10nm低功耗架构,不仅仅是上一代架构的细节和指标的改善,更重要的是与高性能的酷睿核心一起构成异构多核系统,提供更好的功耗。 该方法与ARM的big.LITTLE体系结构相同,在一个系统中捆绑多个高性能核心和低功耗核心,根据程序的负载需求选择对应的核心进行执行,其他核心通过处于低功耗状态,实现性能和功耗的平衡。 英特尔的尺寸终端系统被称为“Lakefiled”,核心、zzdxx Cove; 还有4个原子核: Tremont。 根据公开的信息,Lakefield可以支持1、4个核心的同时工作。 这与ARM的big.LITTLE不同,后者只能选择一个进行工作。 这里可以看到Intel和ARM异构系统设计的区别。 ARM注重功耗的平衡,英特尔希望在高性能APP中最大限度地发挥每个核心的潜力,从而提高性能。 虽然Atom是低功耗核心,但它是针对酷睿核心的,比ARM高很多。 Tremont内核的结构与ARM A77相同,可以说英特尔的单核相当于ARM的Big内核。 这也是为各个领域设计的选择。 ARM的big.LITTLE是移动终端,功耗敏感,小核心无法提供太多性能输出的Intel的Lakefield是台式机和服务器端,在高负载时输出尽可能高的性能更重要,低负载更是如此。 但是,由于结构不同的多处理器同时工作,对软件时间表的要求也不少,这就非常考验英特尔的软件优化实力。

intel atom系列(atom cpu)-冯金伟博客园

基于以上分析,Tremont的设计指标很好理解。 虽然是低功耗核心,但性能依然排在第一位。 相对于上一代的Goldmont plus,Tremont的性能提高了30%,即使是一定的功耗,也比zzdxx Cove的能效高。 在提高性能的前提下,重新设计相关结构以降低功耗和成本。

intel atom系列(atom cpu)-冯金伟博客园

Tremont的基本流水线框图。 这幅画很难解释,看起来像PCB的版面,对理解没什么帮助。 可以看到Tremont的硬件配置、6解码、4分发、10执行、双负载存储。 这个小核心和ARM的大核心A77一样。 其中有几个值得注意的细节。 首先是两个解码管道的设计。 每个pipe包含三个解码器,3×2=6个解码器宽度。 这个结构很奇怪,不符合常规的多位解码设计。 如果没有明确指出多线程的需求,稍后将详细分析其细节。 第二小的距离宽度。 通常选择dispatch和解码器的宽度一致。 较小的距离宽度似乎浪费了解码器的逻辑,10执行端口的需求也不合理。 这里应该主要考虑了耗电量和成本的需求。 第三,小核心仍然支持AVX128运算,体现了计算能力的需求。 因此,低功耗是有限的。 在wiki上也找到了重新绘制的Tremont结构图。 请作为参考。

intel atom系列(atom cpu)-冯金伟博客园

intel atom系列(atom cpu)-冯金伟博客园

前段流水的设计与传统结构没有太大不同,主要的改进是面向公关

efetchers and branch predictor。Tremont使用了和CORE架构中类似的prefetch和predictor,虽然增加了面积,但可以换取更好的预取性能和分支预测准确率,这个也和其性能优先的设计思路相关。和ZEN类似,Tremont也使用了zero cycle penalty的L1 predictor(应该是BTB)。这里提到了一个新概念“out of order fetch”。通常处理器的执行在renaming之前一定都是顺序的,之后开始乱序执行,但通过ROB来管理指令的程序流顺序。从fetch就开始out-of-order似乎不科学。我认为这里的out-of-order并不是通常意义上的乱序执行,而是支持了更深的instruction prefetch。通过在更长的prefetch序列上做预测,直接获取预测后的指令序列,这样体现出一定程度的乱序,但是并没有打乱程序流的顺序。可以看到Tremont可以支持8条cachelilne miss的pre-fetch操作,和上述分析是匹配的。

intel atom系列(atom cpu)-冯金伟博客园

Tremont采用了一个比较奇怪的decode流水设计。从FETCH之后,流水线被分成对称的2条,每条包括3个decoder和独立的inst Queue,然后在RENAME级重新合并。这个设计是很少见的。分离的decode虽然可以提供6宽度的译码,不过如果其硬件完全独立的话,并不能很好的处理两者之间的依赖关系,微指令的处理也会受影响。由于没有更多的细节,这里只能猜测其设计的初衷。一个可能的原因是功耗,通过关闭其中一条decoder,可以在小核心内实现一个更小的运行核心,不过这就需要单独的clock/power domain,也需要其他模块的可配置支持。其次是多线程,虽然Tremont结构没有提到multi-threading的设计,但2条分离的pipeline在微架构上是可以提供一个简单的双线程设计的。不过考虑到之前atom也能支持多线程,再设计一个特殊的多线程结构的理由并不是很能站住脚。第三就是简化设计,提高频率。通过牺牲6 decoder的译码性能来简化多位宽译码逻辑。虽然有上述分析,不过这些并不是特别有说服力的理由。希望之后能从Intel得到更多的信息。

另一个特殊的设计是6 decode,4 dispatch,10 exec的配置组合。中间的dispatch宽度似乎有点小。同时Tremont结构为了减少面积还省掉了mop cache。这个数字的比例感觉上不是特别的合理。相信Intel在选取配置的时候肯定是做过性能评估的,认为这样的组合在有限的面积上可以获得令人满意的性能。因此可能的理由应该是为了面积和功耗。由于缺少了mop cache,dispatch需要直接从decoder获取最多6条指令。而通常由于执行单元的限制,可能并不能一次将所有的指令发射下去,在这种情况下,减少dispatch端口数目可以降低硬件复杂度和时序的影响。虽然有这些可能的理由,最终的决定还是多依赖于性能评估的结果。

intel atom系列(atom cpu)-冯金伟博客园

cache结构上,Tremont还是很大方的,32KB的L1,1.5~4.5MB的L2,和主流的高端移动处理器持平。在memory hierarchy上,L2处于一个cluster内,可以被1~4个核心共享。相比上代,Tremont还支持了L3 cache,可以cross cluster访问。这基本上是主流处理器内存系统的设计。可以看到ATOM系列的L2 latency较 zzdxx Cove高不少,其中应该是将某些并行访问改为了串行访问以减少存储操作的功耗。

intel atom系列(atom cpu)-冯金伟博客园

后端流水线的主要提升是直接把ROB的数目从95增加到了208。这样大大增加了处理器并行执行的指令数目和动态调度能力,和其10个exec pipe的能力相匹配。执行上Tremont是标准的renaming physical resigster结构。这里的RS就是我们通常所说的issue Queue。这里Tremont采用了分离式的Issue Queue,这个跟ZEN是类似的。看来现在的主流设计更注重频率和ALU的性能,从而部分牺牲了在schedule上的效率。整数执行上3个ALU,1 branch,2条LS addr流水线和1条store data流水线,和A77基本上持平。这一部分大家的思路都差不多。

intel atom系列(atom cpu)-冯金伟博客园

AVX流水线上也是中规中矩。Tremont支持128bits运算宽度,包含2条ALU和一条store data pipeline。执行上两个ALU并不对等,一个支持 fused additions (FADD),另一个支持fused multiplication and division (FMUL)。

intel atom系列(atom cpu)-冯金伟博客园

总结一下,Tremont的设计主要体现了Intel在异构多核上的思路,即以高性能桌面和服务器为目标,在能耗允许的前提下,尽可能挖掘小核心的运算能力,从而和大核心一起提供更强劲的性能。这个和ARM在big.LITTLE结构上的思路是有所不同的。尽管有一些类似乱序fetch,dual pipe decoder的设计,从大的结构上,Tremont并没有跟传统处理器有什么明显区别。可以说现代处理器的设计已经进入了细节为王的时代,比拼的是每个小模块的设计和技巧,通过一点点的改进,聚沙成塔,最后在整体上体现出较大的优势。Intel有上千人的设计团队,可以在算法探索,微架构设计,物理实现上做的更深入更细致,最终累积出巨大的优势。这也是目前国内设计公司比较欠缺的地方。随着更多的人参与到集成电路的事业中,并能够沉下心做设计,不断积累经验,我们就能够慢慢的缩小和这些巨头的差距,直到有能力挑战。

MikesICroom

回复“课程”获取斯坦福大学AI加速器课程资料

温馨提示

intel atom系列(atom cpu)-冯金伟博客园