Intel MMX: MMX: 是MultiMedia eXtensions(多媒体扩展)的缩写,是第六代CPU芯片的重要特点。MMX技术是在CPU中加入了特地为视频信号(Video Signal),音频信号(Audio Signal)以及图像处理(Graphical Manipulation)而设计的57条指令,因此,MMX CPU极大地提高了电脑的多媒体(如立体声、视频、三维动画等)处理功能。 除了指令集中增加MMX指令(多媒体增强指令集)外,还将CPU芯片内的L1缓存由原来的16KB增加到32KB(16K指令+16K数据),因此MMX CPU比普通CPU在运行含有MMX指令的程序时,处理多媒体的能力上提高了60%左右。目前CPU基本都具备MMX技术,除P55C和Pentium ⅡCPU还有K6、K6 3D、MII等。 还有一个MMX的含意:(Matrix Math eXtensions)矩阵数学扩展。 罗马数字中“MMX”表示“2010” SSE:
SSE是指令集的简称,它包括70条指令,其中包含单指令多数据浮点计算、以及额外的SIMD整数和高速缓存控制指令。其优势包括:更高分辨率的图像浏览和处理、高质量音频、MPEG2视频、同时MPEG2加解密;语音识别占用更少CPU资源;更高精度和更快响应速度。
SSE(Streaming SIMD Extensions)是英特尔在AMD的3D Now!发布一年之后,在其
计算机芯片Pentium III中引入的指令集,是MMX的超集。AMD后来在Athlon XP中加入了对这个指令集的支持。这个指令集增加了对8个128位寄存器XMM0-XMM7的支持,每个寄存器可以存储4个单精度浮点数。使用这些寄存器的程序必须使用FXSAVE和FXRSTR指令来保持和恢复状态。但是在Pentium III对SSE的实现中,浮点数寄存器又一次被新的指令集占用了,但是这一次切换运算模式不是必要的了,只是SSE和浮点数指令不能同时进入CPU的处理线而已。
SSE2是Intel在P4的最初版本中引入的,但是AMD后来在Opteron 和Athlon 64中也加入了对它的支持。这个指令集添加了对64位双精度浮点数的支持,以及对整型数据的支持,也就是说这个指令集中所有的MMX指令都是多余的了,同时也避免了占用浮点数寄存器。这个指令集还增加了对CPU的缓存的控制指令。AMD对它的扩展增加了8个XMM寄存器,但是需要切换到64位模式(AMD64)才可以使用这些寄存器。Intel后来在其EM64T架构中也增加了对AMD64的支持。 SSE3是Intel在P4的Prescott版中引入的指令集,AMD在Athlon 64的第五个版本中也添加了对它的支持。这个指令集扩展的指令包含寄存器的局部位之间的运算,例如高位和低位之间的加减运算;浮点数到整数的转换,以及对超线程技术的支持。
SSE4指令集将给英特尔下一代平台带来“相当大的视频性能提升”。,其它视频增强技术还包括CVT(明晰视频技术)--英特尔对ATI Avivo的回应--和对UDI的支持。上述两项技术基于英特尔965芯片组。其它英特尔官方文件把CVT技术定义为:支持高级解码、拥有预处理和增强型3D处理能力。 SSE4指令集是Conroe架构所引入的新指令集。这项原本计划应用于NetBurst微架构Tejas核心处理器之上的全新技术也随着它的夭折最终没能实现,这不能不说是个遗憾,但是SSE4指令集出现在了Conroe上又让我们看到了希望。
SSE4指令集共包括16条指令,不过虽然扣肉处理器推出已经有一些时日,但目前英特尔仍没有公布SSE4指令集的具体资料。这相当令人感到纳闷。也许英特尔是基于特殊的考虑,仅让少数合作软件厂商取得数据,只是这种作法实在很没有说服力就是了,天底下没有哪家处理器厂商,希望自己新增的指令越少人用越好。
不过,从Intel Core微架构针对SSE指令所作出的修改被称之为“Intel Advanced Digital Media Boost”技术来看,未来SSE4将更注重针对视频方面的优化,我们认为SSE4主要改进之处可能将针对英特尔的Clear Video高清视频技术及UDI接口规范提供强有力的支持。这两项技术基于965芯片组,Intel的官方把Clear Video技术定义为:支持高级解码、拥有预处理和增强型3D处理能力。值得一提的是,在SSE4中另一个重要的改进就是提供完整128位宽的SSE执行单元,一个频率周期内可执行一个128位SSE指令。Conroe中SSE的ADDPS(4D 32bit共128bit,单精度加法)、MULPS(4D 32bit共128bit,单精度乘法)和SSE2的ADDPD(2D 64bit共128bit,双精度加法)、MULPD(2D 64bit共128bit,双精度乘法),这四条重要SSE算术指令的吞吐周期都降低到1个周期,真正做到了英特尔宣称的每个周期执行一条128位向量加法指令和一条128位向量乘法指令的能力。
可以说 Conroe的向量单元已经全面引入了流水线化的设计。而支持SSE3的NetBurst微处理器架构虽然提供128位宽执行单元,但仅有一组,性能孰高孰低一目了然。更为重要的是,目前已经有相当多的软件针对SSE指令集进行了优化,其中包括2D制图、3D制图、视频播放、音频播放、文件压缩等方面,可见其应用范围相当广泛。
配合完整的128位SSE执行单元,以及庞大的执行单元数目,Conroe处理器可在一个频率周期内,同时执行128位乘法、128位加法、128位数据加载与128位数据回存,或着是4个32位单倍浮点精确度乘法与4个32位单倍浮点精确度加法运算,这将使其更利于多媒体应用。因此,SSE4指令集能够有效带来系统性能上的提升,这一代在众多测试中早已被证实。虽然其不会像当
年SSE2指令集出现时那样带来巨大的性能提升,但是其在某些特殊方面的应用还是让我们对它充满了期待。
编辑本段后续版本 SSE2
SSE2是Intel在Pentium 4处理器的最初版本中引入的,但是AMD后来在Opteron 和Athlon 64处理器中也加入了SSE2的支持。SSE2指令集添加了对64位双精度浮点数的支持,以及对整型数据的支持,也就是说这个指令集中所有的MMX指令都是多余的了,同时也避免了占用浮点数寄存器。这个指令集还增加了对CPU快取的控制指令。AMD对它的扩展增加了8个XMM寄存器,但是需要切换到64位模式(AMD64)才可以使用这些寄存器。Intel后来在其EM64T架构中也增加了对AMD64的支持。 SSE3
SSE3是Intel在Pentium 4处理器的 Prescott 核心中引入的第三代SIMD指令集,AMD在Athlon 64的第五个版本,Venice核心中也加入了SSE3的支持。这个指令集扩展的指令包含寄存器的局部位之间的运算,例如高位和低位之间的加减运算;浮点数到整数的转换,以及对超执行绪技术的支持。 SSSE3
SSSE3是Intel针对SSE3指令集的一次额外扩充,最早内建于Core 2 Duo处理器中。 SSE4
SSE4是Intel在Penryn核心的Core 2 Duo与Core 2 Solo处理器时,新增的47条新多媒体指令集,并且现在更新至SSE4.2。AMD也开发了属于自己的SSE4a多媒体指令集,并内建在Phenom与Opteron等K10架构处理器中,不过无法与Intel的SSE4系列指令集相容。 SSE5
SSE5]是AMD为了打破Intel垄断在处理器指令集的独霸地位所提出的,SSE5初期规划将加入超过100条新指令,其中最引人注目的就是三算子指令(3-Operand Instructions)及熔合乘法累积(Fused Multiply Accumulate)。其中,三算子指令让处理器可将一个数学或逻辑函式库,套用到算子或输入资料。借由增加算子的数量,一个 x86 指令能处理二至三笔资料, SSE5 允许将多个简单指令汇整成一个指令,达到更有效率的指令处理模式。提升为三运算指令的运算能力,是少数 RISC 架构的水平。熔合乘法累积让允许建立新的指令,有效率地执行各种复杂的运算。熔合乘法累积可结合乘法与加法运算,透过单一指令执行多笔重复计算。透过简化程式码,让系统能迅速执行绘图着色、快速相片着色、音场音效,以及复杂向量演算等效能密集的应用作业。SSE5最快将内建于AMD下一代Bulldozer核心。 AVX
AVX是Intel的SSE延伸架构,如IA16至IA32般的把暂存器XMM 128bit提升至YMM 256bit,以增加一倍的运算效率。此架构支持了三运算指令(3-Operand Instructions),减少在编码上需要先复制才能运算的动作。在微码部分使用了LES LDS这两少用的指令作为延伸指令Prefix。 FMA
FMA是Intel的AVX扩充指令集,如名称上熔合乘法累积(Fused Multiply Accumulate)的意思一样。
intel的EM64T内存扩展技术
EM64T本质上和AMD64一样都是IA-32的增强版本,Xeon借助于EM64T可实现高达1TB(40bit)的物理内存寻址和256TB(48bit)的虚拟内存寻址,并且良好地支持现有32位x86代码的执行,这一点跟AMD64无异,同时也是Intel开发EM64T的出发点—让现有的x86指令集能够执行64位代码,而继续保持对32位代码的良好兼容。但由于多方面的限制,无论是EM64T还是AMD64均只能实现比32位指令集更大内存空间的寻址,而无法真正做到纯64位指令集的1PB(50bit)和16EB(64bit)的物理内存和虚拟内存寻址(IA-64就能做到这一点),其关键在于EM64T和AMD64本质上仍是基于32位的x86指令集,只是Intel和AMD分别采用不同的技术手段对x86指令集进行扩展,从而实现对64位的支持。
VT-x
VT-x是intel运用Virtualization虚拟化技术中的一个指令集。
VT-x有助于提高基于软件的虚拟化解决方案的灵活性与稳定性。通过按照纯软件虚拟化的要求消除虚拟机监视器(VMM)代表客户操作系统来听取、中断与执行特定指令的需要,不仅能够有效减少 VMM 干预,还为 VMM 与客户操作系统之间的传输平台控制提供了有力的硬件支持,这样在需要 VMM干预时,将实现更加快速、可靠和安全的切换。
此外,英特尔VT-x 具备的虚拟机迁移特性还可为您的 IT 投资提供有力保护,并进一步提高故障切换、负载均衡、灾难恢复和维护的灵活性。
AVX
2倍浮点运算性能
Intel全新的发展战略也表明,从2010年开始软件和新指令也将有更好的兼容,而SIMD浮点运算并非决定因素,所以CPU的性能就变得更加困难。而性能增强的同时,SIMD浮点运算在已有编码的基础上也必须会有更大的提升空间,特别是scalar整数运算部分。目前单线程整数运算性能的提升也遇到了瓶颈,本次IDF展会上,确定了这一CPU开发方向的同时也表明了技术的进化趋势。
AMD 3DNOW
由AMD公司提出的3Dnow!指令集应该说出现在SSE指令集之前,并被AMD广泛应用于其k6-2 、k6-3以及Athlon(k7)处理器上。3Dnow!指令集技术其实就是21条机器码的扩展指令集。 3Dnow似乎与MMX同出一辙,但是两者的用途不完全相同。MMX侧重于整数运算,因而主要用于图形绘描.数据压缩.音频处理等应用场合。而 3Dnow侧重于浮点运算,因而主要针对三维建模.坐标变换.效果渲染.等三维应用场合。 3Dnow指令不但以SIMD方式运行,而且可以再两个暂存器的执行通道内以一个时钟周期同时执行两个 3Dnow指令的方式运行,即每个时钟周期可执行四个浮点运算。这是AMD能大幅度提高3D处理性能的原因。
与Intel公司的MMX技术侧重于整数运算有所不同,3Dnow!指令集主要针对三维建模、坐标变换 和效果渲染等三维应用场合,在软件的配合下,可以大幅度提高3d处理性能。后来在Athlon上开发了Enhanced 3Dnow!。这些AMD标准的Simd指令和Intel的sse具有相同效能。因为受到intel在商业上以及Pentium iii成功的影响,软件在支持SSE上比起3Dnow!更为普遍。Enhanced 3Dnow!AMD公司继续增加至52个指令,包含了一些SSE码,因而在针对SSE做最佳化的软件中能获得更好的效能。
X86-64
X86-64可在同一时间内处理64位的整数运算,并兼容X86-32架构。其中支持64位逻辑定址,同时提供转换为32位定址选项;但数据操作指令默认为32位和8位,提供转换成64位和16位的选项;支持常规用途寄存器,如果是32位运算操作,就要将结果扩展成完整的64位。这样,指令中有“直接执行”和“转换执行”的区别,其指令字段是8位或32位,可避免字段过长。x86处理器的32bit寻址空间限制在4GB内存,而IA-64的处理器又不能兼容x86。AMD考虑顾客需求,加强x86指令集的功能,使这套指令集可同时支持64位的运算模式,因此AMD把它们的结构称之为x86-64。 AMD-V
计算机操作系统运行时,是完全占用全部的硬件资源的。因此,一台计算机本来只能够装载一个OS。所谓的计算机虚拟化技术,是指把一台计算机在逻辑上分割成几个虚拟机,每个虚拟机均分配有独立的硬件资源,从而在各自的虚拟机上能够分别独立运行各自OS,从而实现在一台计算机上同时运行不同OS的技术。
过去计算机的虚拟化,是使用纯软件方式进行的,X86架构的计算机在设计的时候没有考虑到虚拟化。因而进行完全虚拟化会遇到很多难题。VMware等厂商通过在计算机上加入名为虚拟机监视器(vritual machine monitor,VMM),解决了这些难题,但是这个办法却会带来额外的开销,占用计算机的资源。使得虚拟机的性能下降。
为了让虚拟化能够更好的进行,AMD公司推出了支持虚拟化的硬件辅助技术,AMD-V。具备AMD-V功能的处理器中,有一套新的指令,用于帮助VMM进行虚拟化,从而有效降低了虚拟化的开销,提高性能。作为竞争对手的Intel公司也在其CPU产品中装载了被称为「Intel Virtualization Technology」(VT)的虚拟化技术。
Intel Pentium E6500是Pentium E6000系列的第二款产品,与Pentium E5000系列相比,最大的改进是外频从200MHz提高到266MHz,前端总线也相应提高到1066MHz,因此CPU带宽也随之增加,性能进一步提升。另外,与E5000系列部分支持VT虚拟化技术不同,Pentium E6000系列将全部支持该技术,为Windows 7的XP模式做好准备。
Intel Pentium E6500采用45nm工艺制造,基于Wolfdale核心架构,采用LGA775接口,主频为2.93GHz,外频为266MHz,倍频为11X,每个核心共有64KB的一级缓存,双核心共享2MB的二级缓存,TDP热功耗设计为65W,支持MMX、SSE、SSE2、SSE3、SSSE3多媒体指令集,具备EM64T 64位运算指令集、EIST节能技术、VT虚拟化技术。