科技时代新浪首页 > 科技时代 > 硬件 > 正文

英特尔Core微架构全面解析(4)


http://www.sina.com.cn 2006年04月27日 14:21 Ocer.net


  Core 微架构前端的改进还包括分支预测单元。分支预测行为发生在取指单元部分。首先,它使用了很多人们已经熟知的预测单元,包括传统的 NetBurst 微架构上的分支目标缓冲区(Branch Target Buffer,简称BTB)、分支地址计算器(Branch Address Calculator,简称BAC)和返回地址栈(Return Address Stack,RAS)。然后,它还引入了2个新的预测单元——循环回路探测器(Loop Detector,简称LD)和间接分支预测器(Indirect Branch Predictor,简称IBP),其中循环回路探测器可以正确预测循环的结束,而间接分支预测器可以基于全局的历史信息做出预测。Core 微架构在分支预测方面不仅可以利用所有这些预测单元,还增加了新的特性:在之前的设计中,分支转移总是会浪费流水线的一个周期;Core 微架构在分支目标预测器和取指单元之间增加了一个队列,在大部分的情况下可以避免这一个周期的浪费。看起来很微不足道?要知道,对微内核设计来说,节省每一个可以节省的周期就是最大的目标;对已经发展了很多年的设计进行改进也是非常非常困难的。

  Core 微架构的乱序执行引擎与 Yonah 微架构的设计类似,但是引入了更多的资源。如下图所示,Core 微架构与 Yonah 微架构在乱序执行引擎方面非常相似,包括寄存器别名表(Register Alias Table),分配器(Allocator)和乱序缓冲区(Reorder Buffer,简称ROB)。区别在于,所有的这些单元都被加大加宽,这样才可以配合更强劲的前端,容纳和调度更多的微指令,寻求更高的指令级并行度。

英特尔Core微架构全面解析(4)
图9 Intel 三代微架构乱序执行引擎对比

  NetBurst 微架构和 Yonah 微架构的最大吞吐量都是每周期3条微指令。相比之下,Core 微架构的最大吞吐量是每周期4条微指令。NetBurst 微架构的乱序缓冲区容量是126项,对 Yonah 微架构来说是多于40项,而 Core 微架构的乱序缓冲区容量是96项。

  Core 微架构的保留站(Reservation Station)同样被加大:从 Yonah 微架构的24项增大到32项。这方面与 NetBurst 微架构的比较有一些困难,因为 NetBurst 微架构采用了分布式调度器(Distributed Scheduler),而不是保留站。不过我们还是可以了解一些数字:NetBurst 微架构拥有46个调度槽(Scheduler Slot),存储单元使用8个,执行单元使用38个。

  Intel 没有过多的透露关于乱序执行引擎的资料,但是对执行单元子系统的相关资料毫不吝啬,言之甚详。Core 微架构的执行单元部分拥有3个调度端口,通过这3个端口来调度执行单元。执行单元包括3个64bit的整数执行单元(ALU)、2个128bit的浮点执行单元(FPU)和3个128bit的SSE执行单元,或者更准确的说法应该是,向量执行单元或SIMD执行单元。其中,位于端口1的整数执行单元可以处理128bit的Shift和Rotate操作。而2个浮点单元和3个SSE单元共享某些硬件资源。NetBurst 微架构和 Yonah 微架构的执行单元子系统也在图中列出作为比较。

英特尔Core微架构全面解析(4)
图10 Intel 三代微架构执行单元对比

  很明显,我们首先注意到 Core 微架构拥有3个调度端口——比 NetBurst 微架构和 Yonah 微架构的2个端口增加了1个。所以,Core 微架构的执行单元子系统每个周期最多可以执行3条操作,而 Yonah 微架构最多只能执行2条。需要注意的是,对于 NetBurst 微架构来说,并不是2条。NetBurst 微架构的调度机制使得每个周期最多可以执行4条操作,但是这种情况会相当罕见——必须是4个简单的整数单元操作。并且,NetBurst 微架构在执行64bit指令时会有额外的延迟。更重要的是,Core 微架构的功能单元的统筹安排相对平衡,对于整数操作,可以在多个周期内保持单周期执行3个操作的吞吐量。而 NetBurst 微架构在很多情况下只能单周期执行1个操作。

  Core 微架构所拥有的3个64bit的整数执行单元并非完全相同。与解码单元部分类似,3个整数执行单元也分为1个复杂整数执行单元和2个简单整数执行单元。不过,Core 微架构是 Intel 的X86架构处理器第一次可以在一周期内完成一次64bit的整数运算。之前的 NetBurst 微架构虽然也可以完成64bit的整数运算,但是需要2个时钟周期。另外,因为3个整数执行单元占据了不同的端口,所以采用 Core 微架构的处理器可以在一周期内最多执行3组64bit的整数运算。

  Core 微构架拥有2个浮点执行单元,位于端口0的浮点执行单元负责加减等简单的浮点运算,而端口1的浮点执行单元则负责乘除等浮点运算。这样,在Core 微架构中,浮点加减指令与浮点乘除指令被划分成两部分,使其具备了在一周期中完成两条浮点指令的能力。

  Core 微架构在 SSE 运算方面的性能也比它的前任有很大的提高。它的3个128bit的 SSE 单元并不是完全相同的,在移位和乘法的资源方面有微小的差异,但是都可以在单周期内完成1个128bit的 SSE 操作。相比之下,NetBurst 微架构的 SSE 单元无论在数量上还是质量上都有所不如:只有2个64bit的 SSE 单元,需要2个周期来执行1个128bit的操作。Yonah 微架构同样只有2个64bit的 SSE 单元。从SSE指令的执行资源来看,Core 微架构比 NetBurst 微架构和 Yonah 微架构有3倍的提升!

  128bit的SSE执行单元有什么样的意义?让我们从 Intel 最初支持128bit的向量执行指令开始说起。当 Intel 最初兼容128bit向量执行的时候,也就是在 P6 微架构上开始出现 SSE 指令集的时候,P6 微构架的向量执行单元单周期内只能进行64bit的运算,对于处理128bit数据的指令,P6 微构架必须把该指令解码成2条处理64bit数据的微指令来执行。这样的执行方案一直沿用了下来,包括采用 NetBurst 微架构的处理器和 Yonah 处理器。

  Core 微架构终于拥有了完整的128bit的向量处理单元。配合多达3组的执行单元以及load、store 存储单元,Core 微架构可在一个时钟周期内,同时执行一个128bit乘法操作、一个128bit加法操作、一个128bit load操作与一个128bit store操作,另外还有可能再加上一条经过宏指令融合的cmp/jmp指令——相当于单周期6条指令!真是令人叹为观止的指令级并行处理能力。做出如此大幅改进的 SSE 处理能力,使得 Core 微架构更加有利于多媒体方面的应用。

  Core 微架构有着数量众多的执行单元,形成了超乎寻常的处理资源。这庞大的执行单元不仅要求前端提供更多的微指令来喂饱自己,也对存储单元的处理能力提出了更高的要求。下图是 Core 微架构、Yonah 微架构和 NetBurst 微架构的存储单元对比,注意 NetBurst 微架构利用“fast ALU”来计算存储地址,因此并没有独立的存储地址单元。Core 微架构的存储系统源自 Yonah 微架构的设计,但是却拥有 NetBurst 微架构的超高带宽,实在是难能可贵。

英特尔Core微架构全面解析(4)
图11 Intel 三代微架构存储单元对比

  Core 微架构和 Yonah 微架构的一级缓存与二级缓存都采用“写回”(Write Back)的存储方式,以64字节为存储单位。而对于 NetBurst 微架构来说,一级数据缓存采用“写直达”(Write Through)的存储方式,以64字节为存储单位;而二级缓存采用“写回”的存储方式,以128字节为存储单位。

  Intel 没有给出 Core 微架构的缓存延迟,但是其一级数据缓存的延迟很可能是2个时钟周期,最多为3个时钟周期。并且,Core 微架构中的2个核心的一级数据缓存之间有一条附加的数据通路,使得2个核心可以直接交换一级数据缓存中的数据。Intel 仍然没有给出更多的资料,这种数据交换的发生是否频繁,每次数据交换传输多少数据,一次这种数据交换是否可以替代一次对二级缓存的访问,这些都还没有答案。

  Core 微架构的存储单元还拥有新的预取器设计,协同共享式二级缓存进行工作。每个核心的一级数据缓存各自拥有多个预取器。而共享式二级缓存自然是共用多个预取器,在运行时,这些预取器根据改进的“Round-Robin算法”把带宽动态分配给2个内核。共享的前端总线也采用类似的方法进行仲裁。

  Core 微架构的存储系统还使用了一种新的技术来解决内存混淆问题(Memory Aliasing Problem)。我们将在下面的部分详细介绍关于内存混淆问题和这种新的解决方案。

[上一页] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
 [11] [下一页]

发表评论

爱问(iAsk.com)



评论】【硬件论坛】【收藏此页】【 】【多种方式看新闻】【下载点点通】【打印】【关闭




科技时代意见反馈留言板 电话:010-82628888-5595   欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

Copyright © 1996 - 2006 SINA Corporation, All Rights Reserved

新浪公司 版权所有