首 页   新闻 | 行情 | 评测 | 调研 | 数码导购 | DIY | 专题 | 报价 | 论坛 | 二手 | 下载 | 博客 | 商城 | 拍卖 | 网址 | 分类
消费数码 手机 数码相机 MP3 MP4 数字家庭 硬 件 CPU 内存/硬盘 主板 显卡 音箱 机箱/散热器 光磁 显示器 游戏库 电影 音乐 小游戏
电 脑 笔记本 电脑 服务器 办公外设 打印机/耗材 键盘/鼠标/摄像头 投影机 企 业 中小企业 网络设备 方案 安全 克丽发现
产 品 价格查询 产品大全 排行榜 术语 产品论坛 图搜 厂商 经销商 商家库 商情快报 商城 活 动 PC采购攻略 模拟攒机 DELL直销店
中关村在线 - 大中华区 最具商业价值的IT专业网站 - The most valuable and professinal IT business website in Great China
ZOL首页 > 评测中心 > 技术评测       查看全部技术评测文章

挑战全新极限-P4EE 3.4G完全对比测试

类型:编译 作者:【中关村在线 新人类】 日期:2004-02-04 14:39:00




内容导航

 

    Prescott 的杀手锏:改进的分支预测

    我们之前曾经说过:如果你想构建更长的管线或者增加更多的执行单元,你需要更强有力的分支预测。精确的分支预测,通过CPU的命中率,决定了完成任务所需要的操作数。Intel 把基本的整数管线增加了11层,因此它们需要相应地增加Prescott 分支预测的精确度,否则性能的损失将是无法避免的。

    Intel 强调,Prescott 大部分的分支预测单元都没有改变,不过为了帮助平衡性能,作了一些关键的修改。

    对于不熟识术语的人来说,分支预测究竟意味着什么,可能很难理解,其实CPU 分支预测充当的角色就是预报将要执行代码的路径。如果你了解一定的编程技术,那么可以明白分支预测能够预知条件声明语句(if-then,loops,etc...)的哪个部分将要执行。分支预测工作的原则非常简单;如果分支在过去曾经执行过一定的代码,很可能在将来也同样被执行。因此分支预测的目的是保持CPU将要执行代码的轨迹,并且用计算器统计特殊地址被执行的数目。假设有足够的空间储藏数据,那么一旦这些计算器累计了足够的数据,分支预测将能够以相当高的精确度预测那些分支将要被接纳。

    提高分支预测性能的办法之一,也许你已经猜到了,那就是为已经执行/没有执行的分支提供足够的储存空间。AMD 在它的Opteron 处理器里面,也通过提高分支数据的储存空间来获得更精确的分支预测。Intel 的Prescott 没有选择相同的办法,Prescott 的分支目标缓冲仍旧是4K,Intel 也没有增加全局历史计数器的大小。Intel 的办法是,通过使用更少内核空间消费的方法来协调分支预测器的效率。

    在程序代码中,循环是非常普遍的,而这对于数据结构的清零,打印字母或者作为大运算的一部分非常简单。在每次循环开始或者重复执行循环的时候,你需要判定是否继续执行该循环。幸运的是,这些类型的分支非常好预测,你通常会假设是否该分支满足你获得的结果(称为向后分支)。

    不过并非所有向后分支都会被执行 - 它们并非所有都是循环的终点。在有些情况下,由于错误的结果,向后分支并非是分支循环的终点;但如果应用程序没有错误产生,那么该预测将不被执行。


代码片段 A

Line 10: while (i < 10) do
Line 11: A;
Line 12: B;
Line 13: increment i;
Line 14: if i is still < 10, then go back to Line 11

代码片段 B

Line 10: A;
Line 11: B;
Line 12: C;
...
Line 80: if (error) then go back to Line 11

Line 14 是循环的终点,也就是向后分支 - 应该被接受
Line 80 是向后分支,却不是循环的终点 - 不应该被接受

两种类型向后分支的例子

    Prescott 包括了新的运算法则,能够从实际分支指令中,预测分支目标的距离,从而决定是否接受该分支。这些增强是相对于静态分支预测而言的,因为它们都有特定的情节。Prescott 还包括了对动态分支预测的改进。

    典型的分支有两个选项:不接受该分支,或者去到目标指令开始执行那里的代码:

典型分支A

...
Line 24: if (a = b)
Line 25: execute this code;
Line 26: otherwise
Line 27: go to line 406;
 

    不过还有第三类型的分支 - 叫做间接分支 - 把预测复杂化了一点。普通情况下,如果分支被接受,那么就会告诉CPU 应该怎么走,而间接分支则会告诉CPU,看看CPU 将要走向那里 - 分支指令的寄存器/主内存的地址。目前使用间接分支预测器的处理器,有Pentium M(Banias)和Prescott 。

   

间接分支

...
Line 113: if (z < 2)
Line 114: execute this code;
Line 115: otherwise
Line 116: go to memory location F and retreive the address of where to start executing
...

    间接分支预测在很多情况下都可以获得很好的性能,不过也并非一概而论。Prescott 的分支预测器有特别的算法来处理这些情况,这些算法的细节并没有向公众公开。事实上,Prescott 团队借鉴了Pentium M 团队提高处理器效率的方法,后者是Intel 家族中最优秀的设计之一。

    Prescott 的间接分支预测使得它在253.perlbmk SPEC CPU2000 测试中,有55%的性能增益。以下表格的是Prescott 与Northwood 相比错误分支预测减少的性能(越高越好)。

164.gzip
1.94%
175.vpr
8.33%
176.gcc
17.65%
181.mcf
9.63%
186.crafty
4.17%
197.parser
17.92%
252.eon
11.36%
253.perlbmk
54.84%
254.gap
27.27%
255.vortex
-12.50%
256.bzip2
5.88%
300.twolf
6.82%
Overall
12.78%

     性能的增益似乎并不糟糕,因为Prescott 有55% 更长的管线。获得最大性能的地方(可以减少>10% 的错误分支预测),有176.gcc, 197.parser, 252.eon, 253.perlbmk 和 254.gap 。176.gcc 是一个编译器测试,不过Pentium 4 在该项测试的性能明显地落后于Athlon64 。197.parser 是一项字处理测试,由于整数代码的分歧,Pentium 4 在该测试的表现糟糕。252.eon 是光线描绘工具;改进254.gap 性能对于Prescott 在HPC 应用中意义重大,因为它模拟的是精深的分布式数据计算。

    分支预测的改进,使得当前的软件无须重新编译或者封装,就能够获得更理想的性能。

 




内容导航:
第4页: Prescott 的杀手锏:改进的分支预测
第15页: OpenGL 性能
第17页: 全 文 总 结


文章字数:2258
 
相关文章
挑战全新极限-P4EE 3.4G完全对比测试 (2004-02-04)
新春第一弹!478针Prescott P4E国内首测 (2004-02-04)
650流明!梦想家钻石珑X650黄金版评测 (2004-02-03)
重返NV总部---技嘉三款A/N主流显卡测试 (2004-02-03)
全格式DVD刻录发飙!LG4081B新春提速 (2004-02-03)
新年新气象--似火车头的技嘉天鼎机箱 (2004-02-03)
新多媒体标准---微星5200 NPC深度测试 (2004-02-02)

短信中心
[图片] [铃声] [短语] [自写短信]
圣诞老人来了
圣诞夜歌
平安夜圣诞歌
朋友(臧天朔)
I love you
First love
世界杯主题曲
谁让你流泪
精品/专题

七款主流FX5700横测

今冬nVIDIA显卡急速性能体验

微软新银光鲨使用手记

微星杯DVD刻录机采购专题
当前栏目最新文章
挑战全新极限-P4EE 3.4G完全对比测试
新春第一弹!478针Prescott P4E国内首测
650流明!梦想家钻石珑X650黄金版评测
两大阵营,8款Athlon 64主板大比拼!
四强争霸:A64平台专题测试之芯片组篇
2003年度风云产品推荐—键盘,鼠标,套装
2003年度风云产品推荐—电源
2003年度风云产品推荐—准系统

ZOL简介 | 用户注册 | 广告服务 | 人员招聘(月) | ZOL历程 | 互动营销中心 | 站点地图 | 联系方式 | 欢迎投稿 | RSS订阅 | 友情链接
北京海淀区知春路113号银网中心A座9F 传真:010-62529275 反馈留言板 欢迎批评指正
Copyright © 1999 - ZOL. All rights reserved. 中关村在线 版权所有. 京ICP证010391号