英特尔新一代处理器Core 2 Duo架构分析(5)

2019-04-21 15:14

上面这个列表是Conroe和Yonah的指令延迟周期数和指令发射间隔周期(吞吐量),这个结果是来自我们(PCINLIFE)运行程序侦测出来的,因此并不代表官方的数字(官

方尚未发布这方面的细节)。

从这个列表来看的话,Conroe的x86指令性能普遍要比Yonah提升,例如ADD r32, r32的 吞吐能力比Yonah提升了50%,Conroe可以每个周期执行3条ADD r32, r32指令,而Yonah只能做到两条;IMUL r32(立即数乘法指令)的 吞吐能力一样,但是延迟时间降低33%。

特别值的关注的是,SSE的ADDPS(4D 32bit共128bit,单精度加法)、MULPS(4D 32bit共128bit,单精度乘法)和SSE2的ADDPD(2D 64bit共128bit,双精度加法)、MULPD(2D 64bit共128bit,双精度乘法),这四条重要SSE算术指令的吞吐周期都降低到1个周期,真正做到了英特尔宣称的每个周期执行一条128位向量加法指令和一条128位向量乘法指令的能力,和Yonah相比Conroe双精度乘法的吞吐能力更加是提升了三倍,毫无疑问,Conroe的向量单元已经全面引入了流水线化的设计。

Conroe的Memory Disambiguation——内存投机资料装载消歧机制

英特尔在Pentium Pro就引入了乱序内存操作,其关键的部件就是MOB(Memory re-Order Buffer,内存重排序缓存),概念类似于I-ROB,可以让多个load和store操作同时处于运作中。不过要实现OoO内存操作,就需要消除出现内存地址重叠造成

的冲突问题,即所谓的Memory Disambiguation。

上图的上半和下半分别代表了没有/有采用内存投机装载消歧技术

不具备内存投机装载消歧的CPU需确保指令1执行后才作新装载动作,否则必须等待 内存投机装载消歧技术的Conore可以在指令1还在执行的时候装载地址C的数据

具备内存投机装载消歧技术可以有效提升内存装载动作的效率 如果遇到前一条指令会改写地址C,那么指令二就会再执行一次装载动作

例如指令a=b+c和指令d=b+e,b在这里被使用两次,理论上它只需要被装载到寄存器一次,然后就可以使用两次了。但是实际上不能这样做,因为加入a指向的内存地址和b是一样的话,就会出现地址重叠产生很大的问题,故此编译器还是会生成两次b

的load操作。

在P6上的OoO内存操作规则是相当保守的,它发现如果有一条store指令包含了未

定的内存地址,那么所有的load操作都会被延后,不能作提前执行。 不过按照RWT David Kanter所提供的资料,即使是同时具有512条运作指令的EV6+处理器,其中97%的load、store指令地址都不会出现重叠(指针指向同一个

内存地址),而对于只有96个同时运作指令的Conroe来说,load、store地址重叠

的现象应该更少,因此会假设所有的load和store不存在重叠问题: Conroe虽然看到b需要两次load操作,但是它先load b一次,然后在引退(retirement)之前如果发现b和a的地址撞车的时候才会再load一次b。整个预测、检查操作对程序和操作系统来说都是透明的。当然这是需要增加晶体管来实现的。 采用了这样激进的规则后,所有的load操作都能够和算术、Store指令一起执行(Conroe有三个算术单元和一个load单元以及两个store单元),比以往有时候必须等待算术指令、Store指令执行完后才跑load显然要快得多,内存读取得延迟相对更短了,有些类似于对内存读操作作分支预测。

由于是猜测性的,所以还是会出现猜错的机会,不过英特尔并没有透露猜错时候的性能损失,更多的是强调命中的机会非常高。

Conroe的高速缓存、预拾取、外部总线、主内存系统

Conore的两个内核各拥有32KB两路相连L1指令高速缓存、32KB两路相连L1数据高速缓存,其中两个内核的L1数据缓存具备一致性总线来实现cache一致性,而两个内核都共享一个16路相连CPU全速运作的4MB L2 cache。 L1数据cache-L2 cache的连接带宽提升为256位(之前的Yonah、Dothan为128位),而Coppermine PIII时代所说的256bit L2 cache总线其实只是指DIB界面和L2 cache的连接带宽为256位。在Pentium 4上,L1 D-cache和L2 cache的位宽为256位。

Conroe的L1/L2 cache都是write back方式,L1-D和L2 cache的cache line长度为64个字节,即每次拾取(fetch)动作都会抓64个字节。相比之下,Pentium 4的L1 cache是write back、64字节;L2 cache是write through 128字节。 cache line越长意味着每次拾取能抓更多的数据,但是这是双刃剑,因为cache line越长也可能意味着被覆盖替换的资料越多造成拾取的动作可能更多。

英特尔宣称Conroe L1D和L1D之间有直通的连接,但是其作用并没有透露。

Conroe的每个内核都有三个独立的预取器(Pre-fetcher),它们分别位于指令拾取、load单元、store单元,此外在共享的L2 cache上也有两个预取器。预取器的作用是在处理器发出请求之前,提前把数据装进更高一级的内存里,你可以在我们的L2 cache延迟测试中看到一些效果。

Conroe的系统总线为AGTL+,和Pentium 4一样,但是频率就提升到1066MHz和1333MHz(Conroe的eXtreme版),作为64位处理器,Conroe可能拥有和Pentium D一样的40位物理内存定制能力,但是未来应该会作进一步的扩充(AMD已经有着方面的计划)。

由于没有集成内存控制器,因此Conroe的内存系统交给了芯片组,我们现在已经看到了来自英特尔、NVIDIA、ATI等厂商推出的全新或者修订的北桥来支持JEDEC协会制定的DDR2-800内存条规格。

Conroe的电力控制——控制粒度更细化

Conroe在Yonah的基础上引入了粒度更细的电力控制观念,即使在高性能运转模式底下,还是有很多电路会被关掉(shut off),例如指令拾取/预解码单元、微代码ROM

(把复杂x86指令拆解成多条微操作的单元)、三个浮点单元都能在高速运转但是并

不需要使用的情况下关闭以节省电力但同时又不会影响性能。

图中左面没有智能电力管理

右面具备智能电力管理,可以看到圈圈中的单元被关掉以节省电力

此外,Conroe的许多总线都被设计成能一次传输128位数据(以适合15个字节长的x86指令),例如ALU的写回总线。但是在某些情况下,这些总线的利用率只有一半,另一半会被关闭掉以节省电力,类似的概念在不少笔记本电脑GPU上也有使用,例如PCIE 16X的总线在低负荷的情况下会变成PCIE 1X模式运作。 我们预计Conore以及它的笔记本版本Merom都属于单处理器,因此它们外部总线的多处理支持部分会被关闭掉,而在服务器/工作站版本的WoodCrest上这部分的电路就会释放出来以支持双处理器。。

Conroe引入了数码化热传感器(DTS),处理器内的所有“热点”都分布有DTS并且有专门的电路对这些DTS作扫描、衡量任何时间点管芯的最高温度。

Conroe上市时程、产品规格、价格、制造成本


英特尔新一代处理器Core 2 Duo架构分析(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2 土木水利类

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: