英特尔全新Atom微架构解读 intel atom是什么处理器( 二 )


英特尔全新Atom微架构解读 intel atom是什么处理器

文章插图
▲Tremont架构总览
这样一来,将14nm的Goldmont Plus(标准的14nm工艺,并非14nm+或者14nm++)和10nm的Tremont进行比较将变得困难 。因为驱动Tremont提升性能的因素很多 。当然,从架构角度来分析这个问题也是一个很重要的方面,接下来我们将从架构部分对Tremont进行分析 。
英特尔全新Atom微架构解读 intel atom是什么处理器

文章插图
▲英特尔之前在路线图中展示的Tremont和其继任者
更大的前端和缓存设计对于一直关注Core微体系架构的读者而言,应该对英特尔Core微体系架构不断扩大的规模和微架构结构有所印象 。更大的架构规模意味着有更多的指令正在运行,与之匹配的则是更大的缓存、更大的缓冲区、更大的TLB、更多的执行端口和更多的指令及支持 。
当然,一味地做大架构也并不能带来最好的结果,整个处理器架构还必须做到智能化设计,拥有可以最大限度调用内部资源的能力 。因为仅仅扩展架构对一些简单的指令集来说是毫无意义的 。
英特尔全新Atom微架构解读 intel atom是什么处理器

文章插图
▲Tremont的前端设计
在Tremont上,整个架构设计的关键部分在于扩大架构规模 。但是英特尔采用了两个不同的步骤和方法来精确管控处理器内部的计算过程 。
关键提升之一:指令预取和分支预测
Atom处理器在微架构上的一个主要飞跃就是预取器和分支预测器 。不过在Tremont上,英特尔放弃了之前Atom处理器微架构的相关设计,而是将最新的大核心Sunny Cove架构上的预取器和分支预测器移植到了Tremont上 。
英特尔全新Atom微架构解读 intel atom是什么处理器

文章插图
▲Tremont的指令预取和分支预测得到了加强
当然,英特尔也表示,出于芯片面积和功耗方面的考虑,两者在设计上还是存在一定差异的,但是其原理相似,并且分支预测历史记录表等元素和核心设计处于同一顺序 。另外,英特尔声称L1预测没有带来性能惩罚,而L2预测的惩罚比之前几代要小 。
英特尔全新Atom微架构解读 intel atom是什么处理器

文章插图
▲Tremont和Sunny Cove在功耗和性能方面存在一定的重叠
关键提升之二:解码引擎大变革
从表面上看,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的调度 。
英特尔全新Atom微架构解读 intel atom是什么处理器

文章插图
▲Tremont的后端解码部分设计
英特尔随后也说明,在技术上,他们可以通过更新微码将解码引擎更改为一个6-wide整体,而不再是2个3-wide的设计 。这种更改将不会出现在OEM自选的功能中,但是根据英特尔的具体要求,这种设计可以根据不同的用户的需求进行更改 。
另一个需要特别指出的是,Tremont没有微操作缓存 。英特尔对此的解释是,微操作缓存可以更好地利用宽解码的设计方案,但是在Tremont上,每个解码引擎的宽度都不大,通过使用这种双引擎的设计,实际上带来了性能的提升并节省了芯片面积 。英特尔没有明确指出哪一个方案的最终实现效果更出色,但是考虑到Atom产品的功耗范围和Atom内核的典型指令流程,现有的方案应该是实现性能、功耗和面积的最优组合 。
在解码引擎之后,英特尔在Tremont上做出的另一个改进是重新排序缓冲区 。Tremont的缓冲区被设计为支持208条指令,而之前的Goldmont只有78条,加强版Goldmont Plus则提升至了95条 。相比而言,Tremont带来了一个巨大的提升 。另外,英特尔没有说明Tremont是否有能力将指令融合至ROB的微操作中(Goldmont没有这个设计) 。在实际的微操作处理中,指令采用的是1∶1奇偶校验 。