CPU指令集,的诞生,发展,分类及对处理器性能提升的作用

原创

导读:比如要实现xmm10=xmm9+xmm1的功能,以前需要两个指令执行:movappsxmm10。xmm9将xmm9寄存器数据copy到xmm10addpdxmm10。xmm1将,xmm1和xmm10寄存器数据,相加,并存放到xmm10应用AVX指令集,新的3操作数方式,★可以☆ kě yǐ★,直接,由,一条指令就能完成:vaddpdxmm10。xmm9。xmm1显然AVX三操作数,能带来更少的寄存器复制,并且,代码也,更精简。,

带词字的成语,出花园,3.2.2,梦见蟑螂,工厂管理制度,ol图片,抚顺晚报电子版,蓝燕与唐季礼,梁广大,。

SNB平台的掌上明珠, 最新AVX指令集,AVX(Advanced Vectot Extensions,高级矢量扩展)指令集借鉴了★一些☆some★,AMD SSE5的设计思路,进行,扩展和,加强,★★形成☆formed★☆caused★一套新一代的完整SIMD指令集规范。 在今年,4月的IDF2010上,英特尔演示,了AVX的,应用,在,两个不同平,台上动态跟踪,刘翔运行服上的五星红旗,结果显示,★支持☆support★AVX的,系统视频跟踪的用时为14秒,比不★支持☆support★AVX的系统快了21秒,性能提升了60%,以上。    有兴趣的,读者★可以☆can★点击观看AVX应用主题演讲视频,时间大概在第33分钟左右,。 CPU指令集的诞生,发展,分类,及对,处理器性能提升的作用的,图片,11.jpg

英特尔AVX的新特性

英特尔AVX指令集主,要在以下几个方面得到扩充和,加强:  支持256位矢量计算,浮点性能,★最大☆largest★,提升,2倍,  增强的数据,重排,更★有效☆valid★,存取数据,  支持3操作数和4操作数,在,矢量,和标量,代码中能更好使用,寄存器,  支持,灵活的,不对齐内存地址★访问☆visit★  ,支持灵,活的扩展性强的VEX编码方式,可减少代码支持256位矢量计算    自1999年,SSE将矢量处理能力从64位提升到128位后,SSE系列指令都★只能☆can only★使用128位XMM寄存器,这次AVX,将★所有☆all★16个128位,XMM寄存器,扩充为256位的,YMM寄存器,从而支持256位,的矢量计算。 CPU指令集的诞生,发展,分类及,对处理器性能提升的作,用的图片22.jpg

128位,的XMM,寄存器,扩展到256位的YMM寄存器,

    这,意味着★可以☆can★,同时,处理8个32bit的浮点或是一个256bit的浮点,在写程序时可以,忽略SSE 128bit的,限制,直接写入一个可以进行,多组操作,能够充分,利用,256bit数据位宽的代码,理想,状态,下,浮点性能,最高能达到前代,的2倍,水平。    当然有时并不是能,★完全☆completely★能利用这256位,在★大多数☆most★情况下,★这些☆These★寄存器的高128位,是设为0或者是“LEFT, unchanged”,同时★所有☆all★的SSE/SSE2/SSE3/SSSE3/SSE4指令是,被AVX全面,兼容,的(AVX不兼容MMX,),★因此☆therefore★,实际操作,的是YMM,寄存器的低128位,在这一点上与原来的SSE系列指令,集无异,。 CPU指令集的,诞生,发展,分类及对处理器,性能提升的作,用的图片33.jpg

Sandy Bridge最,突出的部分

    为了,★满足☆meet★,指令集带来的改进,Load载入,单元也要适应★一次☆Once★,载入256Bit的能力,所以增加了一组载入,单元完成载入,操作,并不是单纯的,将,带宽扩展一倍。★这样☆then★可以在,一个时钟周,期内实现256位,的,乘,加和Shuffle运算。    使用新的256位寄存器来提升数据I/O效率,更,好的标记,传播,载入的数据,动态的改变,数据,序列,以此来,组织,★访问☆visit★和载入运算所需的数据,速★度☆attitudes★更快,效率更高。 CPU指令集的,诞生,发展,分类及对处理器性能提升的作,用的,图片,44.jpg

AVX,增加了很多新的浮点,运算,指令,

    AVX,还引入了,很多新的浮点,运算指令,浮点,运算能力加强,不光提,升了,3D游戏,还可以,更★有效☆valid★的支持如复杂的flash显示,更快的SVG,(可伸缩,矢量图形),支持,更好的HTML5效果等等,相比用GPU,计算来讲功耗更小,体积,更小,★成本☆cost★也小,对GPU计算是个,不大不小的冲击。AVX是SNB最★重要☆important★改进支持3操,作数,和,4操作数通常一条,计算机指令,★包括☆included★有操作,码和操作数(operands),操作码决定要完成的操作,操作数指参加运算的数据,及,其所在的单元地址。比如movaps xmm1。xmm0就是,一个双操作数,SSE指令movaps为,操作码,其功能是将,xmm0寄存器的内容复制,给xmm1。CPU指令集的,诞生,发展,分类,及对处理器,性能提升的作用的图片55.jpg

新的3操作数和4操作数格式

AVX指令集改进和加强,了,原有的在,3个,操作数指令的,编码和语法,使之更灵活。比如要实现 xmm10 = xmm9 +, xmm1 的功能,以前需要两个指令执行:    movapps xmm10。xmm9 将xmm9寄存器数据copy到,xmm10    addpd xmm10。,xmm1 将xmm1和,xmm10寄存器数据相加,并存放到,xmm10应用AVX,指令集新的3操作数方式,可以直接由一条,指令就能完成:    vaddpd xmm10。xmm9。,xmm1显然AVX三,操,作数能,带来更少的寄存器复制,并且代码也,更精简。4操作数虽然是AMD在SSE5中首先提出的,但英特尔的,AVX也能支持这一方式,其最终收益是对AVX 128和,AVX, 256使用,非破坏性语法,减少寄存器间的,拷贝,精简,代码,增加load/op fusion的,★机会☆offer★。    movaps xmm0。,xmm4movaps xmm1。xmm2blendvps xmm1。,m128比如上面的,三条,指令,利用4操作数,可以不需要使用隐含的xmm0,直接由,下面一条指令完成:    vblendvps xmm1。xmm2。m128。,xmm4支持灵活的不对齐内存地址,访问CPU在★工作☆work★,时★只能☆can only★按照,内部数据位,宽,长★度☆attitudes★,(比如说,32bit),的整倍数为边界进行内存操作,即只能,从,地址0,32,64,96...处,进行,存取,而不能从27,58,83等非,边界,地址处进行。如果一,定要取★这些☆These★非边界地址处的,内容,则必须用若干个操作,将其,凑,出来,因而,大大,★影响☆effect★,存取,效率。,一个结构体的设计长度却并,不一定是32的,倍数,例如,一个六个,字符的,结构,其,长度为48位,如果多个★这样☆then★,的结构在,内存中顺着摆放,则★许多☆many★,结构,的,起始地址将不在边界处,★因此☆therefore★编译程序总是会将,每个结构的,尾部都,加入★一些☆some★必要的空白,将其凑成32的,整数倍,这,就是,边界,对齐的基本道理。 CPU,指令,集的诞生,发展,分类及对,处理器,性能提升的,作用的,图片66.jpg

传统的,指令,中,当访问不对齐内存(,unaligned memory access),时,需要相当大的访问周期,甚至会有惩罚性延时,极,大地降低速度。

而在AVX,指令,集中,以,VEX前缀编码的算术,指令和内存访问指令,在访问内存时更灵活,既可访问,对齐的,内存地址,也可访问未对齐的数据。当然,访问未,对齐数据,多少都会有,损失,但相对,传统的指令,来说,所承受的惩罚要小得多。革新的,VEX指令,编码方式英特尔在,2008年春天的IDF,上介绍,AVX的★时候☆When★就表示AVX,的重点在于,采用了称为,“,VEX (Vectot Extension)”,革新的指令编码方式。 CPU指令,集的诞生,发展,分类,及对处理器,性能提升的作用的图片77.jpg

VEX,编码指令★解决☆settle★方案

x86指令集容易扩张,★但是☆But★每次对于新指令和新数据类型的增加,都会在,操作码,(opcode),之前增,加了一个字节,的,前缀(prefix),从而实现对扩展的支持,。,这样的就带来,指令,集的复杂化和,★命令☆orders★长度增加,从而导致二进制的冗余,和增加CPU★命令☆orders★解码硬件的复杂性。VEX编码方式★解决☆settle★了,这个★问题☆foul-ups★,VEX的构想,就是压缩,prefix中,包含的信息,在,1个,字节的,payload中★全部☆all★,★包括☆included★了prefix的内容,这样,缩短指令,长度,从而极大地降低了,无谓,的,code size浪费。并且在今后导入的新的,寄存器中,128bits或更长的256bits的数据,也,将在payload中压缩。 CPU指令,集,的诞生,发展,分类及对,处理器性能,提升的作用的图片88.jpg

Intel AVX, vs., AMD XOP(图片来源,后藤弘茂,)

VEX prefix分为,2个字节,和3个字节的版本,即前缀,部分,使用C4h和,C5h。,AMD,的,XOP指令集采用了类似的方式,XOP前缀字节改成了8Fh,虽然前缀不同,★但是☆But★payload部分的格式与VEX是相同的。AVX的VEX,的编码,系统,也反应,了英特尔处理器今后的进化,趋势,它解决了x86系列CPU在,解码能力,上的,不足。AVX,是Sandy Bridge最★重要☆important★的,改进 CPU,指令集的诞生,发展,分类,及对处理器,性能提升的作用的图片99.jpg

AVX相对SSE带来的处理速度提升

英特尔AVX指令集,将矢量,处理能力提升到,256bit,理论上,可以让CPU,的,浮点性能★最大☆largest★,提升两倍,★而且☆but★革新的VEX编码方式也突破x86在解码方面的瓶颈,非常值得,期待。★由于☆Meanwhile★AMD的SSE5和AVX,指令集功能,类似,并且AVX包含更多的优秀特性,虽然SSE5是要早于AVX宣布,的,但在去年AMD还是决定支持,AVX,避免让,★开发☆developing★者徒增,★开发☆developing★难度。,同时AMD改写SSE5,重定义为XOP,CVT16和FMA4指令集。AMD有关人员甚至暗示,★由于☆Meanwhile★受到了AVX指令集,★影响☆effect★,Bulldozet的★计划☆plan★从2010年延迟到了2011年。

CPU指令集,的诞生,发展,分类及对处理器性能提升的作用
评论:

Ag亚游网址人造巨乳爆炸,。CPU指令集,的诞生,发展,分类及对处理器性能提升的作用

阆中游百病,521人体艺术,性感妖艳美女,广州办证,liu xiaobo,党员联系群众制度,重庆论坛吧,st18i论坛,。黄冈二手房,盗墓笔记 小说,亚字牌,超能建筑师,新抚二手房,解救吾先生迅雷下载,秘诀的意思,广州地铁一号线故障,。

CPU指令集,的诞生,发展,分类及对处理器性能提升的作用
评论:

Ag官方网址红牛v5,。CPU指令集,的诞生,发展,分类及对处理器性能提升的作用

昆古尼尔,陈怡星,中国三大球,今题网,考研祝福语,牙齿美白偏方,2008年农历表,温州鬼村,xp主题包下载,洪磊喊麦词,。黑丝美腿,测试爱,桌面美女图片,安卓刷机,枪狗社区,攀枝花社区,江总书记,奇米影院,3月21日世界睡眠日,田代沙耶香,。

CPU指令集,的诞生,发展,分类及对处理器性能提升的作用
评论:

Ag亚游官方网址经典英文句子,。CPU指令集,的诞生,发展,分类及对处理器性能提升的作用

塔罗牌免费占卜,90后小女孩,高洪波宣布辞职,尤果网三美,混在修真界,。饿木命,顾小白手机铃声下载,xplore破解版,美女人体小说,马英九女婿,兔年春联,摩托罗拉defy,。