CPU论文.docx
- 文档编号:9039611
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:10
- 大小:24KB
CPU论文.docx
《CPU论文.docx》由会员分享,可在线阅读,更多相关《CPU论文.docx(10页珍藏版)》请在冰豆网上搜索。
CPU论文
CPU指令集论文
学生姓名:
岳皓 学号:
2013XXXXX
计算机学院 计算机科学专业
指导教师:
XXX 职称:
XXX
摘 要:
CPU扩展指令集指的是CPU增加的多媒体或者是3D处理指令,这些扩展指令可以提高CPU处理多媒体和3D图形的能力。
著名的有MMX(多媒体扩展指令)、SSE(因特网数据流单指令扩展)和3DNow!
指令集。
CPU依靠指令来计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。
指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。
从主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分。
通常会把CPU的扩展指令集称为"CPU的指令集"。
SSE3指令集也是规模最小的指令集,此前MMX包含有57条命令,SSE包含有50条命令,SSE2包含有144条命令,SSE3包含有13条命令。
关键词:
CPU;Inter;AMD;SSE3;SSE2;
Abstract:
CPUinstructionsetextensionreferstotheincreaseofmultimediaCPUor3Dprocessinginstruction,abilityoftheseextendedinstructioncanimprovetheCPUprocessingofmultimediaandgraphics3D.ThefamousMMX(multimediaextensioninstruction),SSE(Internetstreamingsingleinstructionand3DNowinstructionsetextension).
CPUreliesontheinstructiontocalculateandcontrolthesystem,eachCPUdefinesaseriesofinstructionsystemmatchedwithhardwarecircuitinthedesign.AnimportantindicatorofthestrengthoftheinstructionisCPU,instructionsetisoneofthemosteffectivetoolstoimprovetheefficiencyofmicroprocessor.Fromthemainstreamarchitecture,instructionsetcanbedividedintoasetofcomplexinstructionsandreducedinstructionsetoftwoparts.UsuallytheCPUinstructionsetextensionscalled"theCPUinstructionset".DirectiveSSE3instructionsetisthesmallestset,beforethisMMXcontains57orders,SSEcontains50orders,SSE2contains144orders,SSE3contains13orders.
Key Words:
CPU;Inter;AMD;SSE3;SSE2;
引言
中央处理器(英文Central Processing Unit,CPU)是一台计算机的运算核心和控制核心。
CPU、内部存储器和输入/输出设备是电子计算机三大核心部件。
其功能主要是解释计算机指令以及处理计算机软件中的数据。
CPU由运算器、控制器和寄存器及实现它们之间联系的数据、控制及状态的总线构成。
差不多所有的CPU的运作原理可分为四个阶段:
提取(Fetch)、解码(Decode)、执行(Execute)和写回(Writeback)。
CPU从存储器或高速缓冲存储器中取出指令,放入指令寄存器,并对指令译码,并执行指令。
所谓的计算机的可编程性主要是指对CPU的编程。
1、CPU诞生、发展
1.1CPU诞生
CPU最基本的运算就是“加减乘除”,但实际上计算机只能用加法器来完成整数以及固定小数点位置(整点)的算术运算,而不能处理小数点可以浮动的数值(浮点)。
对于小数多采用的是二进制的科学计数法、也就是浮点数表示法:
尾数、阶数符号位各占一位,然后再对其余数位尾数、阶数的有效数位合理分配。
在CPU运算时,浮点数的运算量远比整数复杂,因为不仅尾数要参与运算,阶数也要参与,并且需要对尾数和阶数的符号位都进行处理,所以,最早的CPU并没有能力进行浮点运算(8088/8086,80286,80386SX),需要浮点运算时,由CPU通过软件模拟来实现,所以,进行浮点运算时就会慢很多。
8086是当今CPU的鼻祖,所谓X86架构也就是指8086处理器所开创的指令集体系。
为了弥补8086在进行浮点运算时的不足,Intel与1980年设计了8087数学协处理器,并且为X86体系推出了第一个浮点格式IEE754。
8087提供两个基本的32/64bit浮点资料形态和额外的扩展80bit内部支援来改进复杂运算之精度。
除此之外,8087还提供一个80/17bit封装BCD(二进制编码之十进制)格式以及16/32/64bit整数资料形态。
X87协处理器新增约60个指令给程序员,所有的指令都是以“F”开头跟其他的标准8086整数运算指令有所区别,举例来说,相对于ADD/MUL,8087提供FADD/FMUL。
8087是于1980年发布,然后被80287、80387DX/SX和487SX所取代。
1.2CPU发展
以往,协处理器都是可选配件,在主板上X86处理器旁边一般都会为X87设计一个空的插槽,只有当用户确实有需要时才会专门购买相应的X87协处理器插进去,来加速浮点运算。
随着时代的发展,越来越多的程序要求使用更高精度的浮点运算,X87协处理器几乎成为必备品。
于是在制造工艺日趋成熟之后,Intel在486一代将X86和X87整合在了一起,浮点运算成为了CPU的一项基本功能,而且重要性越来越大。
Intel486DX、Pentium之后的CPU都内含了协处理器,AMDK5、K6之后的CPU都内建了协处理器,所以此后就很少有人会提及协处理器的概念了。
所谓X86架构的处理器就是采用了IntelX86指令集的处理器,X86指令集是Intel公司为其第一块16位处理器i8086所专门开发的。
而IBM在1981年所推出的第一台PC机上所使用的处理器i8088(i8086的简化版)也是使用的X86指令集,但是为了增强计算机的浮点运算能力,增加了X87数学协助处理器并引入了X87指令集,于是就将采用了X86指令集和X87指令集的处理器统称为X86架构的处理器。
X86基本指令集包括了:
数据传输、算术运算、逻辑运算、串指令、程序转移、伪指令、寄存器、位操作、控制指令和浮点运算指令等十大类无数条。
而Intel和AMD桌面级处理器在X86指令集的基础上,为了提升处理器各方面的性能,所以又各自开发新的指令集,它们被称为处理器扩展指令集。
扩展指令集能够大幅提高CPU在某些特定应用下的性能,如多媒体、3D、浮点运算等,其设计初衷与协处理器是异曲同工的,但协处理器需要增加额外的运算单元,而扩展指令集只需要加入新的指令和算法即可,无需设计新的运算单元,但必须要软件支持才能发挥功效。
2、分类及提升
2.1MMX指令集
MMX(MultiMediaeXtension多媒体扩展指令)指令集是Intel公司在1996年为旗下的Pentium系列处理器所开发的一项多媒体指令增强技术。
MMX指令集中包括了57条多媒体指令,通过这些指令可以一次性处理多个数据,在处理结果超过实际处理能力的时候仍能够进行正常处理,如果在软件的配合下,可以得到更强的处理性能。
MMX指令集非常成功,在之后生产的各型CPU都包括这些指令集。
据当年Tom'sHardware测试,即使最慢的PentiumMMX166MHz也比Pentium200MHz普通版要快。
但是,MMX指令集的问题也是比较明显的,MMX指令集不能与X86的浮点运算指令同时执行,必须做密集式的交错切换才可以正常执行,但是这样一来,就会造成整个系统运行速度的下降
2.23DNow!
指令集
3DNow!
指令集最由AMD公司所推出的,该指令集应该是在SSE指令之前推出的,被广泛运用于AMD的K6、K6-2和K7系列处理器上,拥有21条扩展指令集。
在整体上3DNow!
的SSE非常相相似,它们都拥有8个新的寄存器,但是3DNow!
是64位的,而SSE是128位。
所以3DNow!
它只能存储两个浮点数据,而不是四个。
但是它和SSE的侧重点有所不同,3DNow!
指令集主要针对三维建模、坐标变换和效果渲染等3D数据的处理,在相应的软件配合下,可以大幅度提高处理器的3D处理性能。
AMD公司后来又在Athlon系列处理器上开发了新的Enhanced3DNow!
指令集,新的增强指令数达了52个,以致目前最为流行的Athlon64系列处理器还是支持3DNow!
指令的。
2.3SSE指令集
SSE是StreamingSIMDExtension(SIMD扩展指令集)的缩写,而其中SIMD的为含意为SingleIstructionMultipleData(单指令多数据),所以SSE指令集也叫单指令多数据流扩展。
该指令集最先运用于Intel的PentiumIII系列处理器,其实在PentiumIII推出之前,Intel方面就已经泄漏过关于KNI(KatmaiNewInstruction)指令集的消息。
这个KNI指令集也就是SSE指令集的前身,当时也有不少的媒体将该指令集称之为MMX2指令集,但是Intel方面却从没有发布有关MMX2指令集的消息。
最后在Intel推出PentiumIII处理器的时候,SSE指令集也终于水落石出。
SSE指令集是为提高处理器浮点性能而开发的扩展指令集,它共有70条指令,其中包含提高3D图形运算效率的50条SIMD浮点运算指令、12条MMX整数运算增强指令、8条优化内存中的连续数据块传输指令。
理论上这些指令对当时流行的图像处理、浮点运算、3D运算、多媒体处理等众多多媒体的应用能力起到全面提升的作用。
SSE指令与AMD公司的3DNow!
指令彼此互不兼容,但SSE包含了3DNow!
中的绝大部分功能,只是实现的方法不同而已。
SSE也向下兼容MMX指令,它可以通过SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。
2.4SSE2指令集
在PentiumIII发布的时候,SSE指令集就已经集成在了处理器的内部,但因为各种原因一直没有得到充分的发展。
直到Pentium4发布之后,开发人员看到使用SSE指令之后,程序执行性能将得到极大的提升,于是Intel又在SSE的基础上推出了更先进的SSE2指令集。
SSE2包含了144条指令,由两个部分组:
SSE部分和MMX部分。
SSE部分主要负责处理浮点数,而MMX部分则专门计算整数。
SSE2的寄存器容量是MMX寄存器的两倍,寄存器存储数据也增加了两倍。
在指令处理速度保持不变的情况下,通过SSE2优化后的程序和软件运行速度也能够提高两倍。
由于SSE2指令集与MMX指令集相兼容,因此被MMX优化过的程序很容易被SSE2再进行更深层次的优化,达到更好的运行效果。
SSE2对于处理器的性能的提升是十分明显的,虽然在同频率的情况下,Pentium4和性能不如AthlonXP,但由于AthlonXP不支持SSE2,所以经过SSE2优化后的程序Pentium4的运行速度要明显高于AthlonXP。
而AMD方面也注意到了这一情况,在随后的K-8系列处理器中,都加入SSE2指令集。
2.5SSE3指令集
SSE3指令是目前规模最小的指令集,它只有13条指令。
它共划分为五个应运层,分别为数据传输命令、数据处理命令、特殊处理命令、优化命令、超线程性能增强五个部分,其中超线程性能增强是一种全新的指令集,它可以提升处理器的超线程的处理能力,大大简化了超线程的数据处理过程,使处理器能够更加快速的进行并行数据处理。
SSE3中13个新指令的主要目的是改进线程同步和特定应用程序领域,例如媒体和游戏。
这些新增指令强化了处理器在浮点转换至整数、复杂算法、视频编码、SIMD浮点寄存器操作以及线程同步等五个方面的表现,最终达到提升多媒体和游戏性能的目的。
Intel是从Prescott核心的Pentium4开始支持SSE3指令集的,而AMD则是从2005年下半年Troy核心的Opteron开始才支持SSE3的。
但是需要注意的是,AMD所支持的SSE3与Intel的SSE3并不完全相同,主要是删除了针对Intel超线程技术优化的部分指令。
2.6SSSE3(SSE3S)指令集
SSSE3(SupplementalStreamingSIMDExtensions3)是Intel命名的SSE3指令集的扩充,不使用新的号码是因为SSSE3比较像是加强版的SSE3,以至于推出SSSE3之前,SSE4的定义容易被混淆。
在公开Intel的Core微架构之时,SSSE3出现在Xeon5100与IntelCore2移动版与桌面型处理器上。
SSSE3包含了16个新的不同于SSE3的指令。
每一个都能够运作于64位的MMX寄存器或是128位XMM寄存器之中。
因此,有些Intel的文件表示有32个新指令。
SSSE3指令集增强了CPU的多媒体、图形图象处理、多媒体编码、整数运算和Internet等方面的处理能力。
2.7SSE4.1指令集
SSE4.1指令集被认为是2001年以来Intel最重要的指令集扩展,包含54条指令。
Intel在Penryn处理器中加入了对SSE4.1的支持,共增加了47条新指令,令处理器的多媒体处理能力得到最大70%的提升。
SSE4加入了6条浮点型点积运算指令,支持单精度、双精度浮点运算及浮点产生操作,且IEEE754指令(Nearest,-Inf,+Inf,andTruncate)可立即转换其路径模式,大大减少延误,这些改变将对游戏及3D内容制作应用有重要意义。
此外,SSE4加入串流式负载指令,可提高以图形帧缓冲区的读取数据频宽,理论上可获取完整的快取缓存行,即每次读取64Bit而非8Bit,并可保持在临时缓冲区内,让指令最多可带来8倍的读取频宽效能提升,对于视讯处理、成像以及GPU与CPU之间的共享数据应用,有着明显的效能提升。
SSE4指令集让45nmPenryn处理器增加了2个不同的32Bit向量整数乘法运算单元,并加入8位无符号(Unsigned)最小值及最大值运算,以及16Bit及32Bit有符号(Signed)运算。
在面对支持SSE4指令集的软件时,可以有效的改善编译器效率及提高向量化整数及单精度代码的运算能力。
同时,SSE4改良插入、提取、寻找、离散、跨步负载及存储等动作,令向量运算进一步专门。
2.8SSE4.2指令集
在Nehalem架构的Corei7处理器中,SSE4.2指令集被引入,加入了STTNI(字符串文本新指令)和ATA(面向应用的加速器)两大优化指令。
STTNI包含了四条具体的指令。
STTNI指令可以对两个16位的数据进行匹配操作,以加速在XML分析方面的性能。
Intel表示,新指令可以在XML分析方面取得3.8倍的性能提升。
ATA包括冗余校验的CRC32指令、计算源操作数中非0位个数的POPCNT指令,以及对于打包的64位算术运算的SIMD指令。
CRC32指令可以取代上层数据协议中经常用到的循环冗余校验,Intel表示其加速比可以达到6.5~18.6倍;POPCNT用于提高在DNA基因配对、声音识别等包含大数据集中进行模式识别和搜索等操作的应用程序性能。
3、最新CPU指令集
3.1AVX指令集
IntelAVX指令集,在SIMD计算性能增强的同时也沿用了的MMX/SSE指令集。
不过和MMX/SSE的不同点在于增强的AVX指令,从指令的格式上就发生了很大的变化。
x86(IA-32/Intel64)架构的基础上增加了prefix(Prefix),所以实现了新的命令,也实现了更加复杂的指令得以实现,从而提升了x86CPU的性能。
AVX并不是x86CPU的扩展指令集,而是可以实现更高的效率,同时也和CPU硬件兼容性也更好,并且也有着足够的扩展空间,这都和其全新的命令格式系统有关。
更加流畅的架构就是AVX发展的方向,换言之,就是摆脱传统x86的不足,在SSE指令的基础上AVX也使SSE指令接口更加易用。
针对AVX的最新的命令编码系统,Intel也给出了更加详细的介绍,其中包括了大幅度扩充指令集的可能性。
比如SandyBridge所带来的融合了乘法的双指令支持。
从而可以更加容易地实现512bits和1024bits的扩展。
而在2008年末到2009年推出的meniikoaCPU“Larrabee(LARAB)”处理器,就会采用AVX指令集。
从地位上来看AVX也开始了Intel处理器指令集的新篇章。
3.2FMA4指令集
FMA指令是AVX指令集的一个分支,因此FMA指令使用的是与AVX指令同样的编码设计规则。
事实上,Intel的FMA指令集也吸取了AMD提出的SSE5指令集的精髓,FMA指令的fused-multiply-add(融合乘加)与SSE5中的multiply-add/subtract运算如出一辙。
当前FMA指令已分为2个版本,其中FMA4是AMD制定的版本。
FMA4指令可以允许a、b、c、d处于四种不同的寄存器状态,FMA3指令则要求d必须与a、b、c其中之一处于相同的寄存器状态。
前者可以提供更好的编程弹性,后者则可以缩短代码长度,硬件支持也稍微简单一些。
四、CPU指令集发展趋势
2012年4月英特尔在北京天文馆正式发布了IVB处理器,具有22nmIvyBridge会将执行单元的数量提升翻倍,在技术上继续采用了3D晶体管,在CPU的制作上依然是根据摩尔定律来设计的,与此同时ARM构架的CPU也将提升晶体管的技术,转变成28nm,这无疑是计算机世界新的变革,在计算机和移动终端上的使用性能都会有很大的提升。
以后CPU可能发展的趋势有以下三个方面:
(1)减小晶体管体积
所有的芯片都是由很多的晶体管组成的,在英特尔最新发布的32nm制程的SandyBridge中的处理器接近有十亿个晶体管组成其系统的内部构造,在芯片上晶体管的数量越多,体积越小,就可以提升其自身的使用性能,但是目前的技术依然停留在32nm上,所以在以后要突破这个技术难关,创造出新的晶体管结构。
(2)降低功耗
英特尔在2013年推出一款新的3D晶体管技术,会在电脑和手机终端上进行优化和操作,但是由于英特尔Atom的处理器在使用的过程中会比ARM更加的费电,所以在很多的移动设备终端上不会使用Atom处理器,虽然ARM的CPU构造更加简单集成,在移动终端上能够减少功耗,但是随着CPU技术的不断进步,在新的晶体管内使用的Atom处理器中会减少最大负荷时释放的热量,提高系统的使用性能。
(3)提升移动终端的使用性能
在智能手机上已经推出了40nm的四个处理器,运行的速度非常的快。
微软在发出WIN8的ARM构架处理器设计的同时,英伟达也发布了八核心的ARM处理器的生产计划,所以未来CPU的发展趋势不仅可以满足功耗低的功能要求,而且还能生产出ARM构架的超轻薄笔记本电脑,为用户带来高速的科技体验。
由前面的分析可知,未来几年CPU的发展主要将从以下几个方面采取措施来提高处理器的性能:
1、采用多模核心(multi-core)+超线程(HyperThreading)技术;
2、增加高速缓存;
3、提高集成度;
4、改进安全技术、无线通信技术、总线结构、接口技术、指令集等。
但是,一味地提升CPU的性能,而没有相匹配的软件运行在上面,那么CPU性能提升也无法体现其效果和意义。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPU 论文