新萤火虫论坛

 找回密码
 注册
查看: 2176|回复: 1

缺失SEE4指令集 奔腾双核E5200性能暴降

[复制链接]
发表于 2008-9-19 06:56:27 | 显示全部楼层 |阅读模式
此文仅供参考

  测试前言:近期Intel奔腾E5200可谓风光无限,这款超频悍将一上市就受到了玩家们的追捧,视为千元内最具购买价值的产品,超频后性能更是直追老大哥E7200。与Intel E7200相比,E5200缺失的是1M的二级缓存,0.03G的主频差距以及SEE4.1指令集的支持。就应用而言,主频的差距体现到性能上几乎可以忽略不计,1M二级缓存的差距也是微乎其微,而对于很多普通的用户而言,缺失SEE4.1指令集到底意味着什么呢?貌似在主流的应用中,SEE4.1指令集的作用并不明显。那么,SEE4.1指令集到底是不是可有可无的鸡肋呢?SEE4.1指令集是什么,缺失了SEE4.1指令集,对于E5200的性能发挥有着什么样的影响?为此,我们IT世界网CPU/存储频道特别组织了本次评测,力求在实际的应用中,为大家证明SEE4.1指令集的实用意义所在。
Intel挥刀自宫,奔腾双核E5200独缺SSE4.1
  在广大玩家的热切期盼下,Intel终于发布了定位主流的45nm双核处理器,型号为奔腾双核E5200。与中高端的E8200、E7200一样,奔腾双核E5200基于45nm Wolfdale核心,主频高达2.5GHz,外频和倍频分别为200MHz和12.5X。二级缓存从E7200的3MB削减至2MB,核心内部晶体管数量则保持不变。

奔腾双核E5200高调上市,然而距离热卖还有相当距离
  奔腾双核E5200伴随阉割诞生,这符合Intel削减硬件规格达到区分产品档次的习惯。然而让玩家没有想到的是,与往常削减二级缓存不同,奔腾双核E5200没有集成SSE4.1指令集。这种剥夺某种属性的做法,让人想起了被夺去了二级缓存的第一代赛扬。
  按照Intel的Tick-Tock策略,45nm Prenyn架构改良自65nm Conroe架构。其中45nm工艺使晶体管数量达到4.1亿个、High-K金属栅极减少了晶体管间的漏电现象、16位除法器的增加以及加强多媒体性能SSE4.1指令集,是45nm Prenyn架构明显区别于65nm Conroe架构的主要特点。
SSE4.1指令集被阉割,奔腾双核E5200命途坎坷
  不少玩家反映,奔腾双核E5200并不是严格意义上的45nm Prenyn架构处理器。那么SSE4.1指令集的缺失,会给奔腾双核E5200带来多大的性能损失,消费者有没有必要为这个指令集掏更多的腰包呢?下面,就让笔者带领大家探访一下神奇的指令集世界。

比缓存更重要,指令集的发展
  处理器的运作是通过指令完成的,通过程序员编写的各式指令,处理器可以完成各种任务,因此高效的指令是提高微处理器性能的最有效途径之一。在计算机早期的发展过程中,各种程序需要相配合的指令都集成到CPU中。但是随着技术的发展,处理器集成的指令越来越多,其架构亦越发臃肿。而技术人员在研究过程中发现,约有80%的程序只用到了20%的指令。为了避免冗余的指令影响到了处理器的工作效率,精简指令集的概念诞生了。
MMX指令集的诞生,让世界进入了精彩的多媒体世界
  精简指令集RISC是(Reduced Instruction Set Computing)的缩写,RISC指令集的指令数目少,而且每条指令采用相同的字节长度,一般长度为4个字节,并且在字边界上对齐,字段位置固定,特别是操作码的位置。另外,RISC指令集采用寄存器到寄存器的操作方式,只以简单的Load(读取)和Sotre(存储)操作访问内存地址。因此,每条指令中访问的内存地址不会超过1个,指令访问内存的操作不会与算术操作混在一起。精简指令集可以大大简化处理器的控制器和其他功能单元的设计。
3DNow!指令集让计算机游戏性能大幅度提高
  现在的桌面处理器都基于X86指令集,为了让处理器拥有更强的性能,Intel和AMD都为其产品开发扩展指令集。MMX、SSE、SSE2、SSE3、SSSE3、3DNow!等都是我们熟悉的扩展指令集,增强了处理器在多媒体、图形图象和网络等应用的处理能力。为了方便记忆,我们通常将这些都统称为处理器的指令集。
  有了这些指令集,程序员在编写软件的过程中可以直接调用相关的指令,精简了大量的语句,极大地提高了处理器的工作效率。相信熟悉处理器发展的资深玩家都记得,当年MMX指令集的采用,让奔腾处理器拥有了流畅解码VCD和MP3的能力。
术业有专攻,SSE4.1增强多媒体性能
  而此次讨论的主角SSE4.1,是SSE4(Streaming SIMD Extension 4)指令集的第一个版本,Intel宣称是2001年以来最重要的媒体指令集架构的改进。除扩展Intel 64指令集架构外,还加入有关图形、视频编码及处理、三维成像及游戏应用等指令,令涉及音频、图像和数据编码算法的应用程序大幅受益。
  Intel指出,加入的SSE4指令集让45nm Penryn处理器增加了2个不同的32Bit向量整数乘法运算单元,并加入8位无符号(Unsigned)最小值及最大值运算,以及16Bit及32Bit有符号 (Signed) 运算。在面对支持SSE4指令集的软件时,可以有效的改善编译器效率及提高向量化整数及单精度代码的运算能力。同时,SSE4改良插入、提取、寻找、离散、跨步负载及存储等动作,令向量运算进一步专门化。
  SSE4还计入了六条浮点运算指令,支持单精度、双精度浮点运算及浮点产生操作,可立即转换其路径模式,大大减少延误,这些支持将会在3D游戏及对浮点运算能力非常敏感的领域起到积极的效果。
  此外,SSE4指令集还加入了串流式负载指令,能够提升帧缓冲区的读取数据频宽,理论上可获取完整的快取缓存行,即每次读取64Bit而非8Bit,并可以将其保存在临时缓冲区内,让支持SSE4指令集的读取频宽效能提升最高至8倍。
Intel认为SSE4.1指令集能为处理器带来强大动力
  SSE4指令集进一步强讯编码效果,例如可同时处理8个4-byte宽度的SAD(Sums of Absolute Differences)运算,常用于新一代高清影像编码如VC.1及H.264等规格中,令视频编码速度进一步提升。这是Intel宣称双核处理器软解高清视频,同样可以获得流畅、高质量播放效果的原因。

  SSE4到底有多高效,下面这个例子可以告诉你
  据了解,在进行视频编码时需要进行动态预测(Motion Estimation)及差分编码方式去除相邻2张影像之相关性,这是一个非常复杂的运算动作。在没有SSE4指令集时,完成一个步骤需要以下指令语句。
for (int moveblock=0;moveblock<16;moveblock++)
for(int line=0; line<16; line++) // Does the 16 pixels large in 4 iteration
{
int i=0;
sum0+=abs( pBlock1[j]-pBlock2)+abs(pBlock1[j+1]-pBlock2[i+1])+abs(pBlock1[j+2]-pBlock2[i+2])+abs(pBlock1[j+3]-pBlock2[i+3]); // Compare with 0 pixel offset
sum1+=abs(pBlock1[j+1]-pBlock2)+abs(pBlock1[j+2]-pBlock2[i+1])+abs(pBlock1[j+3]-pBlock2[i+2])+abs(pBlock1[j+4]-pBlock2[i+3]); // Compare with 1 pixel offset
sum2+=abs(pBlock1[j+2]-pBlock2)+abs(pBlock1[j+3]-pBlock2[i+1])+abs(pBlock1[j+4]-pBlock2[i+2])+abs(pBlock1[j+5]-pBlock2[i+3]); // Compare with 2 pixel offset
sum3+=abs(pBlock1[j+3]-pBlock2)+abs(pBlock1[j+4]-pBlock2[i+1])+abs(pBlock1[j+5]-pBlock2[i+2])+abs(pBlock1[j+6]-pBlock2[i+3]); // Compare with 3 pixel offset
sum4+=abs(pBlock1[j+4]-pBlock2)+abs(pBlock1[j+5]-pBlock2[i+1])+abs(pBlock1[j+6]-pBlock2[i+2])+abs(pBlock1[j+7]-pBlock2[i+3]); // Compare with 4 pixel offset
sum5+=abs(pBlock1[j+5]-pBlock2)+abs(pBlock1[j+6]-pBlock2[i+1])+abs(pBlock1[j+7]-pBlock2[i+2])+abs(pBlock1[j+8]-pBlock2[i+3]); // Compare with 5 pixel offset
sum6+=abs(pBlock1[j+6]-pBlock2)+abs(pBlock1[j+7]-pBlock2[i+1])+abs(pBlock1[j+8]-pBlock2[i+2])+abs(pBlock1[j+9]-pBlock2[i+3]); // Compare with 6 pixel offset
sum7+=abs(pBlock1[j+7]-pBlock2)+abs(pBlock1[j+8]-pBlock2[i+1])+abs(pBlock1[j+9]-pBlock2[i+2])+abs(pBlock1[j+10]-pBlock2[i+3]); // Compare with 7 pixel offset
i=4;
j=moveblock+4;

… }
}
   一大串的指令极度浪费处理器资源,而在支持SSE4指令集的处理器上,只需要采用4 SAD运算指令:
MPSADBW xmm0,xmm1,0
  便完全代替了以上繁复的指令串,大幅提升动态预测(Motion Estimation)及差分编码的运算速度。
  可以看到,SSE4指令集可以大大提高处理器的工作效率。而对于程序员来说,编写基于SSE4指令集的软件不但节省精力,而且可以获得更为高效的软件产品。那么SSE4.1的缺阵,会给奔腾双核E5200带来怎样的性能影响呢?


[ 本帖最后由 共相语 于 2008-9-19 06:59 编辑 ]
 楼主| 发表于 2008-9-19 06:58:24 | 显示全部楼层
测试平台和测试说明
硬件测试平台
CPUIntel Pentium Dual-Core E5200(2.5GHz,200MHz,2MB L2)
Intel Pentium Dual-Core E7200(2.53GHz,266MHz,3MB L2)
内存威刚 红色威龙 DDR2-800 2GB×2(5-5-5-18)
硬盘西数 Caviar Black WD1001FALS 1TB 32MB
主板微星 P45 Platinum
显卡Nvidia 8800GT 512MB
电源TT 700W
软件测试平台
操作系统English Windows Vista SP1 (DirectX 10 Ready)
主板驱动Intel Chipset Device Software 9.0.0.1011
显卡驱动NVIDIA Geforce 179.16 For Vista 32bit WHQL
测试项目
系统性能测试 PCMark Vantage
高清视频编码VirtualDubMod
  为了测试SSE4.1指令集被阉割,对奔腾双核E5200带来的影响,笔者选择了拥有SSE4.1指令集的Core 2 Duo E7200作为对比。由于Core 2 Duo E7200的二级缓存只有3MB,仅比奔腾双核E5200多出1MB,这可以减少二级缓存带来的误差。同时为了减少前端总线带来的误差,笔者将奔腾双核E5200超频至2.53GHz(266MHz×9.5),此时主频比默认提高30MHz。
  为了彻底除去二级缓存带来的误差,笔者首先用PCMark Vantage,以上测试内容均不支持SSE4.1指令集。随后,笔者通过视频编码软件VirtualDubMod,将指定时间长度的1080P高清视频压缩。在此使用了Divx 6.8编码器,它是第一款支持SSE4.1指令集的编码器。

系统性能测试——二级缓存影响甚微
  PCMark Vantage完全基于Vista操作系统,更加全面地衡量PC的综合性能,其中处理器测试基于数据加密、解密、压缩、解压缩、图形处理、音频和视频解码、文本编辑、网页渲染、邮件功能、处理器人工智能游戏测试、联系人创建与搜索,将日常遇到的应用都考虑在内;另外图形测试得到了增强,高清视频播放成为重点考虑对象,并加入了3DMark的一些游戏测试项目。
  在不支持SSE4.1指令集的测试中,1MB二级缓存差异,并没有使主频相同的E5200与E7200出现较大差距。即使是差距最大的游戏子项中,奔腾双核E5200亦仅落后4%。笔者可以相信,奔腾双核E5200削减SSE4.1指令集,是为了拉大其与中高端处理器的性能差距。

高清视频编码——奔腾双核E5200成绩暴跌14%
  SSE4.1指令集着重于改善处理器在多媒体应用中的表现,特别是高清视频的软解码以及编码能力。而最新的Divx 6.8编码器除了加入多线程支持外,同时加入了SSE4.1指令集的支持。
  在测试中笔者将5分钟的1080P高清片段,压缩为分辨率640×480的视频。在Divx 6.8编码器的设置中,Core 2 Duo E7200可以激活设置中的SSE4.1选项。首先笔者测试了关闭SSE4.1指令集下,两款处理器编码视频的耗时,可以看到Core 2 Duo E7200获得了7秒的优势。
  而当笔者激活Core 2 Duo E7200的SSE4.1指令集后,整个编码耗时比奔腾双核E5200减少了53秒之多。也就是说,如果用户编码1小时左右的高清视频,将可以节省10分钟左右的时间(按之前测试的5分钟视频可节省1分钟。

测试总结和购买建议——E5200非唯一选择
  从测试成绩看到,一方面奔腾双核E5200凭借45nm工艺,获得了较高的主频。但在明显区别于已有奔腾双核外,与中高端产品相差无几的表现,让Intel显得相当尴尬。也就是说,仅仅阉割二级缓存,已经不能在奔腾双核E5200身上起到划分市场定位的目的。
  由于软件的全面支持需要一段时间,因此SSE4.1指令集被阉割后,奔腾双核E5200还能维持一段时间的性价比。而当奔腾双核E5200在应用中出现不足后,又可以驱使主流消费者再次投资。从笔者掌握的测试数据来看,在未来SSE4.1指令集被普遍支持的软件环境下,奔腾双核E5200将落后20%—25%左右。因为在实际使用中,还要算上二级缓存以及前端总线等带来的性能差异。
  对于打算体验45nm工艺的用户来说,目前报价635元的奔腾双核E5200性价比明显不高。因此,笔者建议直接购买散装Core 2 Duo E7200,目前售价仅750元,却拥有更为纯正的45mn Prenyn血统,从日后主流的应用来说,拥有SSE4.1指令集的E7200依然有相对于E5200的绝对优势,当然,如果你只想买一个玩游戏的CPU的话,那么选择E5200也无可厚非。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|萤火虫

GMT++8, 2024-11-24 00:40 , Processed in 0.291168 second(s), 5 queries , File On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表