2024年5月21日发(作者:户安妮)
Sandy bridge
2009年(TICK时间),Intel处理器制程将会迈入32nm时代,而之后到了2010年的TOCK
时间,Intel将会推出代号为Sandy Bridge的处理器,该处理器采用32nm制程。Sandy
Bridge(之前称作Gesher)是Nehalem的继任者,也是其工艺升级版,从45nm进化到32nm。
Sandy Bridge将有八核心版本,二级缓存仍为512KB,但三级缓存将扩容至16MB。而Sandy
Bridge最主要特点则是加入了game instrution AVX(Advanced Vectors Extensions)技术,
也就是之前的VSSE。intel宣称,使用AVX技术进行矩阵计算的时候将比SSE技术快90%。
其重要性堪比1999年Pentium III引入SSE。
简介
Sandy Bridge最大的亮点是将引入“高级矢量扩展”指令集,简称“AVX”(之前称作
VSSE),其重要性堪比1999年Pentium III引入SSE。
这颗处理器采用Intel第二代32nm HKMG工艺制造,目前为B2步进(工程样品),
LGA1155封装接口,原始主频2.50GHz,外频100MHz(Nehalem/Westmere都是
133MHz),倍频25x,一级缓存8路关联256KB,二级缓存8路关联4×256KB,三
级缓存12路关联6MB(小于Nehalem),整合Intel第六代图形核心,支持超线程技术
和AES-NI、AVX指令集,其中AES-NI新增七条指令,可加速数据加密和解密,AVX(高
级矢量扩展)则针对密集型浮点运算,并协助一般用途和工程应用的加速。AVX将可
以进行256bit的运算,Intel也特地为它设计了256bit的物理寄存器。
主要特性
1、更宽的矢量运算:从128-bit增至256-bit,并保持向下兼容性
2、增强的数据重排:单个操作可同时处理8个32-bit数据
3、支持三操作数和四操作数,非破坏性句法
4、支持弹性的访存地址不对齐
5、可扩展的新操作码(VEX)
新特性全面解析
一、前端
从高级层面角度看,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于是将分支按照长短不同历史进行划分,从而提高预
测精度。
二、物理寄存器文件(PRF)和执行改进
类似于AMD的推土机、山猫,Intel SNB也使用了物理寄存器文件。Core 2、
Nehalem架构中,每个微指令需要的每个操作数都有一份拷贝,这就意味着乱序执行
硬件(调度器/重排序缓存/关联队列)必须要非常大,以便容纳微指令和相关数据。Core
Duo时代是80-bit,加入SSE指令集后增至128-bit,现在又有了AVX指令集,按照
趋势会翻番至256-bit。
RPF在寄存器文件中存储微指令操作数,而微指令在乱序执行引擎中只会携带指
向操作数的指针,而非数据本身。这就大大降低了乱序执行硬件的功耗(转移大量数
据很费电的),同时也减小了流水线的核心面积,数据流窗口也增大了三分之一。
核心面积的精简正是AVX指令(SNB最主要革新之一)集得以实现并保证良好性
能的关键所在。以最小的核心面积代价,Intel将所有SIMD单元都转向了256-bit。
AVX支持256-bit操作数,相当消耗晶体管与核心面积,而RPF的使用加大了
乱序执行缓冲,能够很好地满足更高吞吐量的浮点引擎。
Nehalem架构中有三个执行端口和三个执行单元堆栈:
2024年5月21日发(作者:户安妮)
Sandy bridge
2009年(TICK时间),Intel处理器制程将会迈入32nm时代,而之后到了2010年的TOCK
时间,Intel将会推出代号为Sandy Bridge的处理器,该处理器采用32nm制程。Sandy
Bridge(之前称作Gesher)是Nehalem的继任者,也是其工艺升级版,从45nm进化到32nm。
Sandy Bridge将有八核心版本,二级缓存仍为512KB,但三级缓存将扩容至16MB。而Sandy
Bridge最主要特点则是加入了game instrution AVX(Advanced Vectors Extensions)技术,
也就是之前的VSSE。intel宣称,使用AVX技术进行矩阵计算的时候将比SSE技术快90%。
其重要性堪比1999年Pentium III引入SSE。
简介
Sandy Bridge最大的亮点是将引入“高级矢量扩展”指令集,简称“AVX”(之前称作
VSSE),其重要性堪比1999年Pentium III引入SSE。
这颗处理器采用Intel第二代32nm HKMG工艺制造,目前为B2步进(工程样品),
LGA1155封装接口,原始主频2.50GHz,外频100MHz(Nehalem/Westmere都是
133MHz),倍频25x,一级缓存8路关联256KB,二级缓存8路关联4×256KB,三
级缓存12路关联6MB(小于Nehalem),整合Intel第六代图形核心,支持超线程技术
和AES-NI、AVX指令集,其中AES-NI新增七条指令,可加速数据加密和解密,AVX(高
级矢量扩展)则针对密集型浮点运算,并协助一般用途和工程应用的加速。AVX将可
以进行256bit的运算,Intel也特地为它设计了256bit的物理寄存器。
主要特性
1、更宽的矢量运算:从128-bit增至256-bit,并保持向下兼容性
2、增强的数据重排:单个操作可同时处理8个32-bit数据
3、支持三操作数和四操作数,非破坏性句法
4、支持弹性的访存地址不对齐
5、可扩展的新操作码(VEX)
新特性全面解析
一、前端
从高级层面角度看,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于是将分支按照长短不同历史进行划分,从而提高预
测精度。
二、物理寄存器文件(PRF)和执行改进
类似于AMD的推土机、山猫,Intel SNB也使用了物理寄存器文件。Core 2、
Nehalem架构中,每个微指令需要的每个操作数都有一份拷贝,这就意味着乱序执行
硬件(调度器/重排序缓存/关联队列)必须要非常大,以便容纳微指令和相关数据。Core
Duo时代是80-bit,加入SSE指令集后增至128-bit,现在又有了AVX指令集,按照
趋势会翻番至256-bit。
RPF在寄存器文件中存储微指令操作数,而微指令在乱序执行引擎中只会携带指
向操作数的指针,而非数据本身。这就大大降低了乱序执行硬件的功耗(转移大量数
据很费电的),同时也减小了流水线的核心面积,数据流窗口也增大了三分之一。
核心面积的精简正是AVX指令(SNB最主要革新之一)集得以实现并保证良好性
能的关键所在。以最小的核心面积代价,Intel将所有SIMD单元都转向了256-bit。
AVX支持256-bit操作数,相当消耗晶体管与核心面积,而RPF的使用加大了
乱序执行缓冲,能够很好地满足更高吞吐量的浮点引擎。
Nehalem架构中有三个执行端口和三个执行单元堆栈: