POPPUR爱换

标题: 吐血推荐阅读文章 NetBurst: A Processor with Replay System [打印本页]

作者: HeavenPR    时间: 2005-6-3 14:54
标题: 吐血推荐阅读文章 NetBurst: A Processor with Replay System
xbitlabs 经过数月的研究写成的报告

Prescott: The Last of the Mohicans? (Pentium 4: from Willamette to Prescott)

里面介绍了 P4 NetBurst 鲜为人知的架构秘密: Replay Queue

前两天用了 5 个小时慢慢的看了上下两篇文章,看完以后让人心里发毛....

P4 L1 miss 以后竟然会执行出错误计算结果,然后指令进入 Replay Queue 被重新执行一遍

这就是 P4 架构效率低下的主要原因


简介(我对文章分析的理解):

P4 NetBurst 因为为了提高频率,采用了超长流水线,从而导致了 Decoder 和实际的 Execution Unit 相隔了很多个时钟周期

这个时候如果执行两条 Dependent Instructions 的话,就会出现麻烦:例如

mov eax, [ecx]
add ebx, eax

这个时候 [ecx] 所指向的数据不知道在 L1/L2 还是 RAM,甚至 Page File 中。如果等第一条指令的结果出来以后

Decoder 再发送第二条指令到流水线,那么第二条指令就要用十几个时钟周期才能传输到 Execution Unit,这将造成严重的流水线

气泡,使效率降低一大截,是不可取得方案。而 Intel Netburst 设计团队想出了让人觉得不可思议的处理方法:

注意仔细阅读...........

首先记住 P4 Northwood 的 L1 Cache 延迟为 2 Clks,L2 延迟为 7 Clks

当遇到上述的 Dependent Instruction Chain 的时候,Netburst 会在发送 mov 指令的两个周期之后发送 add 指令,假设数据在 L1 中。

如果数据确实在 L1 中,那么两个 Clk 之后,数据就会到达 register,这个时候两条指令以 100% 效率运行,很不错的设计 呵呵

但是:当数据不在 L1 的时候,也就是 mov 产生了 L1-Miss,这个时候 add 已经离两个 clk 就要到达 Execution Unit

但是 L2 Cache 里去取数据的话需要 7 Clk。由于流水线里的指令不能后退,而把整个流水线停止来等待数据也是很不可取得方法

这个时候,add 指令就会被 错误的执行。而相关的电路监测到了这个情况,就会在指令结果被写回的时候

把指令废除,而进入一个称为 Replay Queue 的执行单元,顾名思义,Replay = 重放,也就 add 指令要在

7 clk 之后被再次送回流水线执行。因为 L2 延迟为 7 Clk,所以如果数据在 L2 中,7 clk 之后正好到达 L1/Register,从而得出正确的结果。


但是,事实远比这个复杂。如果数据不在 L2 中,会发生生么???

add 指令 7 clk 后仍然被 错误执行,所以还会被 第二次送入 Replay Queue重新执行第三次

这种状况将一直持续下去,直到数据到达 Register。结果是,如果 [ecx] 的数据在 RAM 中,这条指令将被重复执行数十次,直到得出正确的结果


这不是天方夜谭,大家可以细细的看完整的文章来研究

相关链接:
http://www.xbitlabs.com/articles/cpu/display/netburst-1.html
http://www.xbitlabs.com/articles/cpu/display/netburst-2.html


注意,次贴仅供 Netburst 超长流水线的学术研究,禁止进来起哄的。谢谢合作!
作者: Christopher    时间: 2005-6-3 15:21
基本上……
看不懂……
::>
作者: Edison    时间: 2005-6-3 16:45
对于有1MB/2MB L2的P4来说,这似乎不是大问题。
作者: leekit    时间: 2005-6-3 16:50
Originally posted by Christopher at 2005-6-3 15:21
基本上……
看不懂……
::>

:sweatingbullets:
作者: Christopher    时间: 2005-6-3 17:07
Originally posted by HECATE at 2005-6-3 17:06



那P4 3.0E为什么实测效能与3.0C差不多呢

延迟高了
:charles:
作者: Christopher    时间: 2005-6-3 17:35
访问缓存的延迟高了……
缓存容量增大,搜索缓存中的数据需要的时间就多
作者: Christopher    时间: 2005-6-3 17:48
Originally posted by HECATE at 2005-6-3 17:39


访问SRAM会拖慢性能?..那么P4应该比同频塞羊慢的多才对...

赛扬的缓存延迟好像是被人为的限制了
但这不是主要问题,你自己想想,缓存小了为什么还慢
作者: 嘉蓝    时间: 2005-6-3 17:50
慢慢看,觉得xbitlabs废话n多......居然有几十页
作者: zbing    时间: 2005-6-3 18:01
Originally posted by HeavenPR at 2005-6-3 14:54
xbitlabs 经过数月的研究写成的报告

Prescott: The Last of the Mohicans? (Pentium 4: from Willamette to Prescott)

里面介绍了 P4 NetBurst 鲜为人知的架构秘密: Replay Queue

前两天用了 5 个小时慢 ...


归根到底还是超长的流水线造成的效率低下~~~

我不觉得这种处理方法是不可接受的,因为,
超长的流水线使得常见的 forwarding 等技术都无能为力了~~

而且,更重要的是,有人能想到更好的方法来避免重复计算带来的损失吗?

Netburst 的低效是毋庸置疑的。但是超长流水线带来的高频率也是毋庸置疑的

如果不是随之而来的意料之外的高功耗,Netburst 这个架构究竟是成功还是失败还很难说~~~
作者: ayanamei    时间: 2005-6-3 18:03
Originally posted by Christopher at 2005-6-3 17:35
访问缓存的延迟高了……
缓存容量增大,搜索缓存中的数据需要的时间就多

SRAM是有固定的延迟时间的,而不会像DRAM那样
地址是固定的,响应速度也是固定的
作者: HeavenPR    时间: 2005-6-3 18:17
Celeron 之所以速度慢,是因为 L2 不仅容量小,而且 Associativity 减小到了 1/4

Associativity 是 Cache 很重要的指标,减小了 1/4,效率会严重降低
作者: HeavenPR    时间: 2005-6-3 18:20
发热高是必然的,因为用到了大量的 LVS 电路 (Low Voltage Swing) 有兴趣的自己查一下资料吧
作者: zbing    时间: 2005-6-3 18:32
Originally posted by HECATE at 2005-6-3 18:12
这么复杂的结构自然要用更多的电晶体,怎么能说功耗是"意料之外"的呢...Netburst如果找预定的跑在10G上那么将是一颗了不起的CPU,但这似乎有些违反物理法则了..


抱歉,糊涂了~~~我是指 Prescott 的高功耗

而且目前的说法是,这个主要是因为90nm带来的漏电流~~

长流水自然带来更多的电路,因此增加发热。

不过从 Northwood 的情况看,这个增加的功耗并不是那么严重~~
作者: zbing    时间: 2005-6-3 18:36
Originally posted by zbing at 2005-6-3 18:32


抱歉,糊涂了~~~我是指 Prescott 的高功耗

而且目前的说法是,这个主要是因为90nm带来的漏电流~~

长流水自然带来更多的电路,因此增加发热。

不过从 Northwood 的情况看,这个增加的功耗并不是那么严 ...


跑题了~~呵呵

重申一下我的观点,文章里Netburst这种处理方法并不一定不合理

对于20甚至31级流水线的cpu来说,部分时钟周期的损失是必然的


对于10多级的cpu,比如 dothan 和 A64,也会有时钟周期的损失,只不过损失相对较小罢了
作者: ayanamei    时间: 2005-6-3 18:43
Originally posted by HeavenPR at 2005-6-3 18:17
Celeron 之所以速度慢,是因为 L2 不仅容量小,而且 Associativity 减小到了 1/4

Associativity 是 Cache 很重要的指标,减小了 1/4,效率会严重降低


类似减少TLB出口的结果?
作者: zbing    时间: 2005-6-3 19:04
Originally posted by HeavenPR at 2005-6-3 18:17
Celeron 之所以速度慢,是因为 L2 不仅容量小,而且 Associativity 减小到了 1/4

Associativity 是 Cache 很重要的指标,减小了 1/4,效率会严重降低


就我看到的,celeron 并非减小 L2 的 Associativity~~应该是减小了每路的 line 数目
至少 Tualatin 核心的 Celeron 与 Pentium,L2 是相同的8way associativity,见图

[ Last edited by zbing on 2005-6-3 at 20:55 ]
作者: ayanamei    时间: 2005-6-3 19:33
Originally posted by zbing at 2005-6-3 19:04


就我看到的,celeron 并非减小 L2 的 Associativity~~应该是减小了每路的 line size

至少 Tualatin 核心的 Celeron 与 Pentium,L2 是相同的8way associativity,见图


P4 Celeron呢?
作者: HeavenPR    时间: 2005-6-3 20:29
Northwood Celeron 是 128KB, 2-way 的

相对于 Northwood P4, 512KB, 8-way
作者: zqy    时间: 2005-6-3 20:49
Originally posted by zbing at 2005-6-3 18:32


抱歉,糊涂了~~~我是指 Prescott 的高功耗

而且目前的说法是,这个主要是因为90nm带来的漏电流~~

长流水自然带来更多的电路,因此增加发热。

不过从 Northwood 的情况看,这个增加的功耗并不是那么严 ...

參照90nm的Pentium M Dothan核心的產品,

發熱量很小,所以Prescott核心發熱量大不是90納米的問題!
作者: zbing    时间: 2005-6-3 20:49
Originally posted by HeavenPR at 2005-6-3 20:29
Northwood Celeron 是 128KB, 2-way 的

相对于 Northwood P4, 512KB, 8-way


呵呵,怪不得 Northwood Celeron 这么低能~~~
作者: earmoon    时间: 2005-6-3 21:31
其实可以追溯到2年以前的,这和Chip Architect说的是同一实质内容。 不过是当时谈到K8对付L1/L2 miss问题时,采用了和P4/Alpha EV6 不同的方法--从调度器中先删除掉相关的指令,可能这是因为整数调度器虽然有24-entrys,其实是分成3块,每块只有8-entrys,调度空间太小了,K8只好一删除方法保留调度空间。
一般不同于K8的,不是去删除,而是采用再次发射,P4很出色的地方在于采用了倍速ALU(P4 3G可以6G速度计算)承受再次发射执行的压力。他们还具有和K8所不具备的data-speculation能力--乱序猜测读写能力

最后评价是方法不同但K8一样能有效率的处理L1/L2 miss问题。
作者: earmoon    时间: 2005-6-3 21:33
HPR我写给你的HT短消息。你看到没有?短消息功能还是不是正常的?
作者: HeavenPR    时间: 2005-6-3 21:44
短信看到了,那个 div 时钟周期我是现编的,嘿嘿

还有 Prescott 的 Rapid Exec Engine 用了发热量超高的 LVS 低压浮动电路,所以导致功耗狂增

本来准备借 LVS 再次提高频率,可是却被功耗给卡主了
作者: earmoon    时间: 2005-6-3 21:52
可是我确实是的不停的连续做,开两个和开一个线程都一样的,平均26个时钟,去掉扣一个时钟(mov xor的开销),就是划到25啊?
mov
xor
div

mov
xor
div

mov
xor
div
作者: earmoon    时间: 2005-6-3 21:58
我确实做了xx M个div平均的。确实只有26
void div_int(void)
{
        int n =        N1M,k=1900000000,j=119311219,p=75456637;

        _asm
        {
                mov ecx,n;
                mov edi,k;
                mov eax,edi;
                xor edx,edx;
                mov ebx,j;
                mov esi,p;
                mov edx,esi;
L1:
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;

                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
////////////////////////////////16
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;

                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
////////////////////////////////32
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;

                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
////////////////////////////////48
                                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;

                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;

                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
////////////////////////////////64
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;

                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
                mov eax,edi;
                mov edx,esi;
                div ebx;
/////////////////////////72
                dec ecx;
                jnz L1;
        }
}
作者: 李炜江    时间: 2005-6-3 23:25
相当强的文章 前几天看完就全盘保存了
作者: 下弦月    时间: 2005-6-4 00:13
超长流水线为intel 带来主频的飞跃
也造就了他的高频低能
作者: 单晶硅传奇    时间: 2005-6-4 00:17
NetBurst 架构,高主频的商业价值大于实用价值
作者: Prescott    时间: 2005-6-4 02:44
Originally posted by HeavenPR at 2005-6-3 14:54
xbitlabs 经过数月的研究写成的报告

Prescott: The Last of the Mohicans? (Pentium 4: from Willamette to Prescott)

里面介绍了 P4 NetBurst 鲜为人知的架构秘密: Replay Queue

前两天用了 5 个小时慢 ...


不就是个Speculation吗?有什么心里发毛的?
:p
作者: G70    时间: 2005-6-4 02:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: xxxyyy    时间: 2005-6-4 02:51
提示: 作者被禁止或删除 内容自动屏蔽
作者: jaguard    时间: 2005-6-4 02:51
Originally posted by G70 at 2005-6-4 02:46

被扁为垃圾的P4E,结果还不是...=.=市场全胜.

恩,因为很多人迷信
作者: G70    时间: 2005-6-4 03:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: Asuka    时间: 2005-6-4 04:30
Originally posted by G70 at 2005-6-4 03:02

完全是迷信么?可能是有人看不出其价值吧.


选择性失明的人太多了 -_-
作者: earmoon    时间: 2005-6-4 10:53
标题: 回复 #38 jaguard 的帖子
A64更快才是迷信。这个要看实际情况的,就算P4杀败了A64也不希奇。前两天不是EM64T在SM2.0中用XMM寄存器挫了x86-64的锐气?我是要看实际的,不听人乱说的。
作者: ayanamei    时间: 2005-6-4 10:55
要看跑什么类型的软件
没有绝对哪个比哪个更快。。
作者: 99999999    时间: 2005-6-4 14:08
..........
作者: wenmind    时间: 2005-6-4 14:39
各位别吵,此贴就事论事,别把amd给扯进来
作者: earmoon    时间: 2005-6-4 19:53
标题: 回复 #45 wenmind 的帖子
是啊,我要求删除我的那几句无关的话。
作者: tigea    时间: 2006-5-4 12:13
现在还讨论是否有点迟?就连intel自己都承认NetBurst是失败的,将要推出Conroe纠正这个过失。
不管它好不好,都是被淘汰的东西,不要在意。
作者: potomac    时间: 2006-5-4 12:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: laoli06    时间: 2006-5-7 19:15
标题: 回复 #48 potomac 的帖子
失败就在于,人家不**引入不**极致发挥不**应用照样把你打败。
作者: ultraghost    时间: 2006-5-8 01:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: Edison    时间: 2006-5-8 10:49
不是亚,Replay这个动作在优化指南里是有专门提到的。
作者: yonghuming    时间: 2006-5-10 14:49
Willamette核心的P4又如何呢?有没有人做过分析?
作者: 蛙青    时间: 2006-5-10 20:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: HeavenPR    时间: 2006-5-11 14:39
Northwood 2G 肯定比 P3 1.4 好,P3 的内存带宽拖后腿拖的太厉害了
作者: smartcub    时间: 2006-5-21 13:41
是啊,普通应用还不容易看出来,测试内存子系统、玩一些比较吃内存的软件的时候,Northwood 2G的优势就非常明显了。但是,PIII尤其是图拉丁PIII@1.4G的时候速度确实也不慢,效能比K7伯仲之间,可惜就可惜在前端总线和不支持DDR上了,但这还是要"归功于"Intel的策略。
作者: X-ECUTION    时间: 2006-5-23 03:28
原帖由 不老牛奶 于 2005-6-4 14:28 发表
有些A饭就喜欢选择性失明:P4的指令预测错误是有一定几率的,不是每周期必然出错。况且指令预测错误不光是P4有,A64也有,只是超长流水线让P4损失过大而以。你让AMD现在出来一款32Pipe的CPU,他敢保证做的比Presc ...


这话说的不太对吧(我不是AMD的fans,哪个系列cpu强,就用哪个)
我想,AMD不会傻到去做一个32Pipe的CPU

多级的Pipe是能带来高频,但多级Pipe同时也带来了许多效率的低下(多由指令所引发的),除了LZ所说的  REPLAY QUEUE  之外,还有很多

举个其他例子:clean queue (清除队列)

clean queue多数发生在数据跳转时,每当数据发生跳转,当前指令后边的指令都会被clean掉,再重新载入相关指令

而P4长达32级的Pipe,一旦发生jump,每次clean掉的是32条的指令,再重新载入,从32~1,32步;如果下条指令也是jump,又得clean掉32条指令。而AMD的K8只有15级的Pipe,每次clean,也只有15条指令。即使使用了“内部前推”技术,32级的刷新还是比不过15级的

因为P4每次需clean掉32条指令,所以必须需要大容量的cache来保持其命中,所以P4有高达1M、2M的L2;而AMD在这方面就不需要,其512K的L2就可保持其高命中。静态RAM成本是比较贵的,P4用到如此大量的cache,而不减少L2来降低成本,原因在于要保持其性能来于AMD竞争.......

当然,32级Pipe的P4,在处理指令跳转不多的时候,如文档、PS、压缩等方面,因指令的时间性与空间性,其执行的效率会比较高。但当jump的发生频率极高,如在游戏方面(触发),其32级Pipe反而成为了其失败的原因........所以,游戏方面一直是AMD的强项


还有,多谢Intel的以色列开发团队,为我们带来了P3架构,还有今天的conroe.......美国开发团的P4~~~~bye bye!!
作者: FENG950    时间: 2006-5-24 01:10
楼上的,哪有你这样说的,只要跳转就砍掉?那分支预测干什么用?只有转移成功并且分支预测失败才会发生上述情况,而且也是要看实际情况的,转移的目标并不一定很远,可能就在队列中,这样是用不着全盘清除的。而Netburst引入了TC,重溯的uop就可以更进一步减少损失。
作者: popwangyuII    时间: 2006-5-25 07:56
楼主是个绝对的I饭,她的话俺还是信的。
作者: Woodcrest    时间: 2006-5-25 16:04
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2006-5-26 22:30
标题: 回复 #59 Woodcrest 的帖子
这样说又有惹口水战的嫌疑了。不过HT贼好用!Conroe最大的遗憾就是不支持这个,希望以后能尽快添加。当然,也希望到时的Vista对四核支持要足够好,否则有HT的双核优势也不大。
作者: laolaomao    时间: 2006-6-2 22:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: sataneyes    时间: 2006-6-3 21:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: didi_wc    时间: 2006-7-7 04:37
抱着学习的心态 拜读此帖
作者: kril    时间: 2006-7-10 00:50
P3的价构才是intel最成功的设计.
连P M和其后续,如扣肉,都是P3的基础上修改出来的(这一点得到P M的设计师的承认),修改的地方只是提升工艺和把P4的一些技术加进去,如EM64T.
作者: superfu1979    时间: 2006-7-10 09:02
P4里还是觉得3.4C最好,可惜价格也太高了.现在用的是3.2C未超频,温度控制\性能都不错.
作者: slycool    时间: 2006-7-16 04:36
其他什么都不说,NetBurst架构的开发就是Intel为了骗钱是不用怀疑的。NetBurst之前的架构,使人们一直认为高频率=高性能,以至于让NetBurst为Intel蒙了不少钱。发展到现在不管NetBurst对于消费者来说是否成功,对于Intel来说是绝对成功了,恭喜您上当了。
作者: MoMoBZ    时间: 2006-8-17 15:03
完全没看懂 太深了 整个幼稚园文化看的啊
作者: bk1018    时间: 2006-8-18 20:20
楼主是I FAN人人都知,但楼主是用事实和数据说明,不像某些人随口而出。

支持楼主的技术性文章。
作者: RacingPHT    时间: 2006-8-20 14:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: sc_bj    时间: 2006-8-21 23:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: hopetoknow2    时间: 2006-8-29 00:25
简介(我对文章分析的理解):

P4 NetBurst 因为为了提高频率,采用了超长流水线,从而导致了 Decoder 和实际的 Execution Unit 相隔了很多个时钟周期

这个时候如果执行两条 Dependent Instructions 的话,就会出现麻烦:例如

mov eax, [ecx]
add ebx, eax

这个时候 [ecx] 所指向的数据不知道在 L1/L2 还是 RAM,甚至 Page File 中。如果等第一条指令的结果出来以后

Decoder 再发送第二条指令到流水线,那么第二条指令就要用十几个时钟周期才能传输到 Execution Unit,这将造成严重的流水线

气泡,使效率降低一大截,是不可取得方案。而 Intel Netburst 设计团队想出了让人觉得不可思议的处理方法:


决定以PCI里对NetBurst最高专业水准, 教育一下I粉丝MM HeavenPR,纯学术教育:
P4 NetBurst采用Trace Cache, 从Trace Cache到Exec级,没有Decoder的。

谈谈L1 miss的情况

而是调度器和 Execution Unit之间的存在时钟间距,POWER4和POWER5和APHLA21264也都是有的。所以POWER4和POWER5和APHLA21264以及Netburst,都不会说是等到前一条相关指令真正写回结果后,才开始从调度器向Execution Unit发送下一指令。而是提前根据具体的指令延迟,预先猜测性的wake up下一条指令了, 例如:不管是否L1miss,随后2或3时钟就猜测发射。

POWER4和POWER5、APHLA21264他们为了避免理想猜测和实际不一致,猜测指令发射后,不会从保留站RS(/调度器/发射队列)删除,而是继续留在保留站RS(/发射队列)中, 直到有确认信息返回,如果出现异常(L1 miss等等),可从保留站RS重新发射。 这种方法的代价是,会导致已经发射的指令占用保留站RS,影响其他指令使用保留站RS资源。

NetBurst相当天才的一招是,猜测指令发射后,就离开了调度器,没有再继续占用调度器。如果出现异常,例如L1 miss,有staging replay机制来处理,而不是从调度器发射。

更深更激进的猜测,可能带来更大的功耗, 这点是对的。 不过呢,加强猜测,是提升性能的有效手段。
AMD的下下代处理器,必然是有replay的。

还是那句老话,我们不能因为刘翔跑不到100米短跑的世界前八, 就说刘翔的敏捷性和协调性不好。

[ 本帖最后由 hopetoknow2 于 2006-8-29 00:28 编辑 ]
作者: ernme64    时间: 2006-10-12 22:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: hufeifeix    时间: 2007-1-10 18:02
Originally posted by Christopher at 2005-6-3 15:21
基本上……
看不懂……
::>
作者: yvlong    时间: 2007-1-20 09:33
学习学习!!!!!
作者: dare2do    时间: 2007-1-20 10:39
虽然看不大懂,但是技术文章是要支持的w00t)
作者: mgsolid    时间: 2007-1-25 16:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 天使之鹰    时间: 2007-2-1 18:14
崇拜楼主中....
作者: lunping.com论评    时间: 2007-2-15 23:22
那篇图形加速的文章太迷人了
作者: andy9    时间: 2007-3-13 11:21
不懂:loveliness:
作者: 自然之道    时间: 2007-3-17 13:15
我认为netburst是很成功的设计,只是太过前卫了,制程,工艺,材料都跟不上。相信若干年后intel再次祭出netburst的时候将会势不可挡。

如果没有材料,工艺方面的限制的话,我们现在用的可能就不是3G的C2D而是10G的P4E了:lol: :lol:
作者: dijiuyishu    时间: 2007-3-24 11:33
看不懂。。。。。。。
作者: 2804326    时间: 2007-3-28 23:16
P4果然牛:loveliness: :loveliness:
作者: anesthetic    时间: 2007-4-2 11:32
cool!!!!
作者: 漠路狂徒    时间: 2007-4-27 02:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: sarsqlg    时间: 2009-8-25 17:30
又是一部天书呵呵
作者: zhangcono    时间: 2010-5-8 23:15
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4