扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
来源:驱动之家 2010年9月15日
关键字: Sandy Bridge Intel
在本页阅读全文(共8页)
一、前端
从高级层面角度看,SNB架构只是一次进化,但是如果看看Nehalem/Westmere以来晶体管变化的规模,绝对是一次革命。
Core 2引入了一种叫作循环流检测器(LSD)的逻辑块,检测到CPU执行软件循环的时候就会关闭分枝预测器、预取/解码引擎,然后通过自身缓存的微指令(micro-ops)供给执行单元。这种做法通过在循环执行的时候关闭前端节省了功耗,并改进了性能。
SNB里又增加了一个微指令缓存,用于在指令解码时临时存放。这里没有什么严格的算法,指令只要在解码就会放入缓存。预取硬件获得一个新指令的时候,会首先检查它是否存在于微指令缓存中,如是则由缓存为其余的管线服务,前端随之关闭。解码硬件是x86管线里非常复杂的部分,关闭它能够节约大量的功耗。如果这种技术也能引入到Atom处理器架构中,无疑也能使之受益匪浅。
这个缓存是直接映射的,能存储大约1.5K微指令,相当于6KB指令缓存。它位于一级指令缓存内,大多数程序的命中率都能达到80%左右,而且带宽也相比一级指令缓存更高、更稳定。真正的一级指令和数据缓存并没有变,仍然都是32KB,合计64KB。
这看起来有点儿像Pentium 4的追踪缓存,但最大的不同是它并不缓存追踪,而更像是一个指令缓存,存储的是微指令,而非x86指令(macro-ops)。
与此同时,Intel还完全重新了一个分支预测单元(BPU),精确度更高,并在三个方面进行了创新。
第一,标准的BPU都是2-bit预测器,每个分支都使用相关可信度(强/弱)进行标记。Intel发现,这种双模预测器所预测的分支几乎都是强可信度的,因此SNB里多个分支都使用一个可信度位,而不是每个分支对应一个可信度位,结果就是在分支历史表中同样的位可以对应更多分支,进而提高预测精确度。
第二,分支目标同样做了翻新。之前的架构中分支目标的大小都是固定的,但是大多数目标都是相对近似的。SNB现在支持多个不同的分支目标大小,而不是一味扩大寻址能力、保存所有分支目标,因而浪费的时间更少,CPU能够跟踪更多目标、加快预测速度。
第三,提高分枝预测器精度的传统方法是使用更多的历史位,但这只对要求长指令的特定类型分支有效,SNB于是将分支按照长短不同历史进行划分,从而提高预测精度。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者