INTEL 体系结构 MMX技术开发者手册.docx
《INTEL 体系结构 MMX技术开发者手册.docx》由会员分享,可在线阅读,更多相关《INTEL 体系结构 MMX技术开发者手册.docx(103页珍藏版)》请在课桌文档上搜索。
1、TBASEINTE1.体系结构MMXTM技术开发者手册IntelArchitectureMMXTechnologyDevelopersManual返回 目录 第一章手册简介 第二章处理器体系结构和流水线简介 第三章MMXTM代码开发规则 第四章MMXTM代码开发策略 第五章MMXTM的编码技术 第六章MMXTM性能监测扩展 附录AMMXTM指令集 附录BMMXTM命令和操作数限制返回AllrightreservedbyFanYipeng.TBASEINTE1.体系结构MMX技术开发者手册IntelArchitectureMMXTechnologyDevelopersManual第一章1.11.
2、2第二章手册简介关于本手册参考文献处理器体系结构和流水线简介2.1超标量(奔腾系列)的流水线和动态执行(P6系歹IJ)体系结构2.1.1超标量(奔腾系列)的流水线2.1.22.22.3动态执行(P6系列)流水线高速缓存(CaChe)分支目标缓存2.3.12.4第三章3.1.相连分支写缓存CaCheMMX-代码开发规则规则列表及建议3.1.1规则3.1.23.2建议常规的优化方案3.2.1寻址方式3.2.2对齐3.2.2.1代码3.2.2.2数据3.2.3有前缀的操作码3.2.4动态执行(P6系列)处理器中的部分寄存器阻塞3.2.5有关分支预测的信息3.2.5.1动态分支预测3.2.5.2在动态
3、执行(P6系列)处理器上的静态预测3.3调度3.3.1通用配对规则3.3.2整数配对规则3.3.2.1配对指令集3.3.2.2由于寄存器相关而不能配对的指令3.3.2.3特定配对3.3.2.4配对执行的限制3.3.3MMXTM指令配对准则3.3.3.1两个MMXTM指令的配对U管道的整数指令与V管道中的MMXTM指令配3.3.3.2对U管道的MMXTM指令与V管道中的整数指令配3.3.3.33.3.3.4调度规则3.4指令选择3.4.1使用访问内存的指令3.4.2指令长度3.5高速缓存优化3.5.1线读入顺序(命令)3.5.2在高速缓存线中的数据对齐3.5.3与分配效果3.5.3.1优化方法1
4、:布尔3.5.3.2优化方法2:写前检查3.6内存优化3.6.1对部分内部访问3.6.2增加内存填充和视频填充的带宽3.6.2.13.6.2.2第四章4.14.24.34.3.14.44.54.64.6.14.74.8第五章5.15.25.35.45.55.65.75.85.95.105.115.12第六章6.16.1.16.26.36.3.1附录A附录B内存填充视频填充MMXTM代码开发策略制订计划哪部分代码可使用MMXTM技术改进代码是浮点型还是整型混用浮点和MMXTM代码EMMS准则CPUID的检测MMXTM技术的用法数据对齐堆栈对齐数据安排应用程序最后的调节MMXTM的编码技术无符号分
5、组有符号分组饱和模式下的交错成组非饱和模式下的交错成组非交错分组含有一个常数的复数乘法无符号数差值的绝对值有符号数差值的绝对值绝对值有符号数截取到任意有符号区域旧GH,1.OW无符号数截取到任意无符号区域旧GH,1.OW常数生成MMXTM性能监测扩展超标量(奔腾系列)性能监测事件MMXTM指令事件说明动态执行(P6系歹IJ)性能监测事件RDPMC指令指令规则MMXTM指令集MMXTM命令和操作数限制AllrightreservedbyFanYipeng.TBASEINTE1.体系结构MMXTM技术开发者手册IntelArchitectureMMXTechnologyDevelopersManu
6、al返回附录AMMXTM指令集下表为MMXTM指令集一览表。下列指令助记符是助记符基本集。大多数指令都有多种形式(如PCKED-BYTE,-WoRD和-DWORD形式)。在uInteI体系结构MMXTM技术程序员参考手册”(序列码为243007)中可以找到MMXTM指令的全部信息。表A-IIntel体系结构MMXTM指令集成组算术环绕方式有符号饱和模式无符号饱和模式AdditionPADDPADDSPADDUSSubtractionPSUBPSUBSPSUBUSMultiplicationPMU1.1./HMultiply&addPMADDShiftrightArithmeticPSRACom
7、parePCMPcC转换常规有符号饱和模式无符号饱和模式PackPACKSSPACKUSUnpackPUNPCK1./H逻辑操作成组全64位IAndPANDIAndnot|PANDNPORExclusiveorPXORIShiftIeftPS1.1.PS1.1.ShiftrightPSR1.PSR1.转移及内存操作32位64位Register-registermoveMOVDMOVQ1.oadfrommemoryMOVDMOVQrdStoretomemoryMOVDMOVQII其它EmptymultimediastateEMMS返回AllrightreservedbyFanYipeng.TBA
8、SEINTE1.体系结构MMXTM技术开发者手册IntelArchitectureMMXTechnologyDevelopersManual返回附录BMMXTM命令和操作数限制在此要特别感谢震源工作室(战国风云)的好朋友易春华,他在百忙之中(正在开发“孙子兵法”),热心补充了以下一段MMXTM命令和操作数限制,使本手册变得更加完整。返回AllrightreservedbyFanYipeng.TBASEINTE1.体系结构MMXTM技术开发者手册IntelArchitectureMMXTechnologyDevelopersManual返回第一章手册简介Imel的MMXTM技术是对Intel体系
9、结构(IA)指令集的扩展。该技术使用了单指令多数据技术(SlMD)技术,以并行方式处理多个数据元素,从而提高了多媒体和通讯软件的运行速度。MMXTM指令集增加了57条新的操作码和一个新的64位四字数据类型。这种新的64位数据保持了可供MMXTM指令操作的成组数据值,如下图(图I-I)所示。图1-1新的数据类型另外,增加了八个新的64位MMXTM寄存器,每个寄存器可按名称MMO-MM7直接访问。图1-2显示了这八个新的64位MMXn”寄存器的布局。图12MMXTM寄存器集MMXTM技术对操作系统完全透明,并且与现有的、基于Imel体系结构的软件百分之百兼容。所有应用软件可继续在具有MMXTM技术
10、的处理器上正常运行。有关MMXTM、数据类型和寄存器的其它信息和细节可详见INTE1.体系结构MMXTM技术程序员参考手册(IntelArChiteCtllreMMXTMTeChnOlogyDevelopersManUal)C)MMXTM技术提高了很多应用程序的执行性能,例如活动图像、视频会议、二维图形和三维图形。几乎每一个具有重复性和顺序性整数计算的应用程序都可以从MMXTM技术中受益。对于8位、16位和32位数据元素的处理,改善了程序的性能。一个MMXTM指令可一次操作8个字节,且在一个时钟周期内完成两条指令,也就是说,可在一个时钟周期内处理16个数据元素。另外,为增强性能,MMXTM技术
11、为其它功能释放了额外的处理器周期。以前需要其它硬件支持的应用程序,现在仅需软件就能运行。更小的处理器占用率给更高程度的并发技术提供了条件,在当今众多的操作系统中这些并发技术得到了利用。在基于Imel的分析系统中,某些功能的性能提高了50转到400%。这种数量级的性能扩展可以在新一代处理器中得到体现。在软件内核中,其速度得到更大的提高,其幅度为原有速度的三至五倍。1.11.1关于本手册本手册面向那些熟悉Intel体系结构的软件模型和汇编语言编程的读者。本手册描述了基于IAMMXTM技术的软件编程的优化方案和使用策略。另外,它还包含了帮助你开始编写应用程序的编码技术和示例。本手册分为六章和一个附录
12、:第一章一INTE1.体系结构MMXTM技术开发者手册介绍。第二章处理器体系结构和流水线简介。本章对奔腾处理器和动态(P6系列)处理器的体系结构和流水线进行了简要介绍。第三章一MMXTM代码开发原则。本章为帮助你开发出快速、高效的代码,提供了相关的原则和指导。另外,它还介绍了常规优化方法、指令调度和选择方案以及高速缓存和内存优化方法。第四章一MMXTM代码开发策略。本章回顾了在应用程序中创建MMXTM例程的步骤。第五章MMXTM的编码技术。本章的编码示例可以帮助你开始编写MMXTM例程。第六章一MMXTM性能监测计数器。本章详细说明了性能监测计数器和它们的功能。附录AMMXTM指令集。附录汇总
13、了全部MMXTM指令。1.2 1.2参考文献参阅下列文档可获得有关Intel体系结构和本手册所涉及的专用技术的更多的内容: INTE1.体系结构MMXTM技术程序员参考手册IntelArchitectureMMXTechnologyProgrammersReferenceManual,IntelCorporation,OrderNumber243007. 奔腾系列处理器开发者手册PentiumProcessorFamilyDevelopersManual:Volume1,2,and3,IntelCorporation,OrderNumber2414281241429,and241430. 高能
14、奔腾处理器开发者手册PentiumProProcessorFamilyDevelopersManual:Volume1,2,and3,OrderNumber242690,242691,and242692. INTE1.的32位处理器优化方案OptimizationsforIntels32-bitProcessors,ApplicationNoteAP-526,OrderNumber242816返回AllrightreservedbyFanYipeng.TBASEINTE1.体系结构MMXTM技术开发者手册IntelArchitectureMMXTechnologyDevelopersManua
15、l返回第二章处理器体系结构和流水线简介本节简要介绍了具有MMXTM技术的奔腾处理器和动态执行(P6系列)处理器的流水线及其结构特征。在了解了代码在处理器总线上的执行过程之后,你将会了解为什么这种优化方法能够提高代码的运行速度。另外,它将帮助你调度和优化你的应用程序,以获得更高的运行效率。1.3 2.1超标量(奔腾系列)的流水线和动态执行(P6系列)体系结构1.3.1.12.1.1超标(奔腾系列)的流水线奔腾处理器是一个高级的超标量处理器。它是建筑在两个通用的整型流水线和一个可流水作业的浮点单元上的,这使处理器能够同时执行两条整型指令。一个对软件透明的动态分支预测机制能够使分支的流水线阻塞达到最
16、小化。具有MMXTM技术的奔腾处理器将为流水线增加新的处理阶段。MMXTM流水线与整型流水线的集成方法非常相似。奔腾处理器可以在一个时钟周期内完成两条指令,一个流水线完成一条指令。第一个逻辑管道称之为“U”管道,第二个称之为“V”管道。在任何一条给定的指令译码期间,它安排的后面两条指令将被检查。并且,如果有可能,第一条指令被安排到管道执行,第二条指令被安排到“V”管道执行。如果不能,则第一条指令被安排到管道执行,“V”管道中不安排指令运行。指令在两个管道中运行与它们顺序执行所产生的效果是完全一样的。当发生管道阻塞时,后继的指令无法通过被阻塞的指令所在的任一管道中。图2-1说明了这种调度的流水线
17、结构。图2-1MMXTM流水线结构具有MMXTM技术的奔腾处理器为整型流水线增加了一个额外的处理阶段。指令从代码的高速缓冲区中预取出来,被送入到“预取”(PF)阶段,并且在“提取”(F)阶段中进行指令的语法分析。另外,全部的前缀译码都在F阶段中进行。指令在先进先出(FIFO)的指令缓冲区中将语法分析与指令译码分开,这个缓冲区位于F阶段与译码I(Dl)阶段之间。FIFO缓冲区的空间能够将被处理的指令上升到四条指令。FIFo缓冲区是透明的,当它为空时,不增加额外的迟延。在每个时钟周期内,可将两条指令压到指令的FIFO缓冲区中(根据有效的代码字节,以及其它因素,如前缀)。然后,再将成对的指令从FIF
18、O缓冲区中弹出来,送到Dl阶段中Q由于指令的平均执行效率为每个时钟周期内不超过两条指令,所以FIFO通常是满的。只要FIFo是满的,就可以防止在指令提取和进行语法分析时产生的阻塞。如果发生了这样的阻塞,FIFO也可以使阻塞不在管道的执行阶段上发生。但如果FIFo空,由于流水线中无指令运行,则可能会导致一个执行阻塞。较长的指令或前缀可能会在FIFo入口处产生阻塞(参见323节和3.4,2节)。下面的图表详细说明了超标量处理器中的MMXTM流水线以及流水线中发生阻塞的条件。图2-2在具有MMXTM技术的奔腾处理器中的MMXTM指令流表2-1详细说明了每类MMXTM指令的功能单元、迟延、吞吐量和执行
19、管道。表2-1MMXTM指令和执行单元 算术逻辑单元(AW)用于执行算术和逻辑操作(即加、减、异或、与)。 乘法器单元执行全部的乘法操作。乘法要求三个时钟周期,但通过流水线安排,可在每个时钟周期内完成一条乘法操作。处理器仅有一个乘法器单元,也就是说,不能同时运行两条乘法指令。但是,乘法指令可以同其它类型的指令配对而同时运行。它们可以在U管道或V管道中运行。 移位单元执行全部的移位、成组或分组操作。由于同一时间只有一个移位器可以有效地进行移位、成组或分组操作,所以不能与其它移位单元的指令进行配对。但移位单元的指令可以和其它类型的指令配对运行。它们可以在U管道或V管道中运行。MMXTM指令只能在U
20、管道中执行访问内存或整型寄存器,且不能与非MMXTM指令配对运行。当对一个MMXTM寄存器修改后,需经过两个时钟周期后,才能将MMXTM寄存器移到内存或整型寄存器中。有关指令配对的信息请见3.3节。其它信息和指令格式请见INTE1.体系结构MMXTM技术程序员参考手册(IntelArChiteCt1.IreMMXTMTeChrlolOgyDeVeIoPerSManual)。1.3.1.22.1.2动态执行(P6系列)流水线P6系列处理器使用动态执行结构。该结构通过硬件寄存器重命名和分支预测的方法,将乱序执行和推测执行合成在一起。这些处理器有一个有序进入的流水线,它将Intel386TM的宏指令
21、支解成简单的微操作(或Ue)P)和一个可以处理这些微操作的乱序的超标量处理器内核。这个乱序的处理器内核包含了几条流水线,连接了整型、跳转、浮点和内存执行单元。几种不同的执行单元可以集成在同一条流水线上。例如:一个整型地址逻辑单元和浮点执行单元(加法器、乘法器和除法器)同享一个流水线。数据高速缓冲区由一个专用的读取端口和其它的存储端口交错而成。大多数简单操作(整型A1.U,浮点加法,甚至浮点乘法)可以按每时钟周期完成一至两个操作的吞吐量进行流水作业。浮点除法不可以进入流水线,长迟延操作可以和短迟延操作并行处理。P6系列的流水线由三部分构成:有序组织的前端(In-OrderIssueFrOnt-e
22、nd)单元,乱序内核(Out-of-OrderCOre)单元和有序的退出(In-OrderRetiremerlt)单元。下面将详细介绍有序组织的前端单J-rO图2-3乱序内核与退出流水线由于动态执行处理器按乱序的方式执行指令,所以产生了数量充足的、可供执行的微操作,并使大多数有关性能调节方面的考虑得以实现。正确的分支预测和快速的译码是有序前端单元提高性能的核心、。有关分支预测和分支目标缓冲区的详细内容见2.3节,下面讨论译码部分。在每个时钟周期内,IDl管道阶段可以对多达3条的Intel体系结构宏指令进行译码。但是,如果指令复杂或指令长度超过了7个字节,译码器的译码指令数将有所下降。译码器可以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- INTEL 体系结构 MMX技术开发者手册 MMX 技术 开发者 手册
链接地址:https://www.desk33.com/p-1414797.html