- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MMX整数指令64位SSE 整数指令 64 位SSE2整数指令128 位规则使用当前的编译器可以产生一个优化的应用程序。这将帮助你从一开始能产生好的代码。避免部分寄存器的阻塞. 参见第3.2.4节。注意分支预测算法(参见第3.2.5节)。这是动态执行(P6-系列)处理器最为重要的优化方法。由于提高了分支预测能力,你的代码将耗费很少的周期来读取指令。对代码进行调度,使其达到最大的配对可能。参见第3.3节。确定所有的数据都已对齐。参见第4.6节。安排好代码,使其未命中的高速缓存指令最少,并优化预取。参见第3.5节。不要混用MMX?指令和浮点指令。参见第4.3.1节。避免使用除前缀为0F以外的操作码。参见第3.2.3节。对同一个内存区域,避免在大数据量存贮数据后进行小数据量读取。或小数据量存贮后进行大数据量的读取。对于同一个内存区域,读取和存贮数据应使用同样大小的数据量;并且地址要对齐。参见第3.6.1节。在任何时候,都要尽可能地使用OP,REG和MEM格式。这些格式可以帮助你减少占用寄存器,减少循环,避免产生不必要的读取操作。参见第3.4.1节。EMMS必须放在MMX?指令的尾部。参见第4.4节。优化高速缓存中的数据的带宽,以符合MMX?寄存器的大小。参见第3.6节。建议调整代码,一般情况下不使用向前条件分支,通常使用向后的条件分支。按16字节边界条件对齐频繁执行的分支目标。将循环展开来调度指令。使用软件方式来安排流水线以调度迟延和功能单元。必须成对使用CALL和 RET(return)指令。避免使用自修改代码。避免把数据放在代码段。尽可能快地计算出存贮地址。应避免使用包含三个或三个以上微操作代码或指令长度超过7个字节的指令。如果可能,使用只有一个微操作的指令。不要使用两个8位读取指令来进行16位的读取。在调用被调用保存(callee—save)过程前,先清除部分寄存器的内容。解决阻塞条件,如存贮地址,尽可能地避免可能引起阻塞的读取。一般情况下,一个可以直接由处理器支持的N-字节的数据(8位的字节,16值的字,32位的双字,32位、64位及80位浮点数)应该对齐在下一个最高的2的乘方边界处,避免未对齐的数据。——按任意边界对齐8位数据。——在已对齐的4-字节字数据内对齐16位数据。——以4的任意倍数为边界,对齐32位数据。——以8的任意倍数为边界,对齐64位数据。——以128位为边界(即16字节的倍数),对齐80位数据。小寄存器大寄存器AL AH AX EAX BL BH BX EBX CL CH CX ECX DL DH DX EDXAH/AL分别是AX寄存器的高、低八位,AX是EAX的低16位由于乘法指令执行时用三个时钟周期,所以乘法指令后的结果只能被安排在三个时钟周期后的指令使用。考虑这一因素,避免在乘法指令后的两个指令对内调度一条与之相关的指令在很多情况下,“MOVQ reg,reg”和“OP reg,mem”可被“MOVQ reg,mem”和“OP reg,reg”代替。由于它在动态执行处理器上节约一个微操作,因此在可以使用的地方尽量使用。MOVQ代替32位存贮指令(如MOVD)向内存回存数据,将使每个内存填写周期减少一半的存贮次数。对某些基于奔腾处理器的系统,使用64位存贮指令代替32位存贮指令将提高30%带宽。另外,对于动态执行处理器,在同时具有用 MOVQ指令进行取和存的操作时,避免了对部分内存访问性能测试工具:Inter的VTune。可用于把计算集中的代码分离出来。一旦将这些代码找到,将判断当前算法和修改后的代码哪一个具有最佳性能。MMX,SSEX,SSE2优缺点:MMX的缺点:由于MMX的运算指令必须在数据配对整齐的时候才能使用,所以使用MMX指令要比普通的汇编指令多余许多分组配对的指令,如果运算不是特别的整齐的话,就要浪费大量的时间在数据的配对上,所以说MMX指令也不是万能的,也有其很大的缺陷。同时MMX指令在处理16位数据的时候才能发挥最大的作用,处理8位数据要有一点技巧。而处理32位数据,MMX指令几乎没有什么加速能力。(考虑分组耗时的话)寄存器组说明:AX:算术累加器BX(Base):通用寄存器,基址CX(Count):通用寄存器,LOOP计数器DX(Data):通用寄存器,一般与AX组合存放双字长数。DX高位指针及变址寄存器SP:堆栈指针寄存器BP:基址指针寄存器SI(Source Index):源变址寄存器DI(Destination Index):目的变址寄存器段寄存器:CS,DS,SS,ESMMX指令:PMADDWD向量点乘运算(word)PCMPEQ[B,W,D]串等于比较(byte,word,dword)PCMPGT[B,W,D]串大于比较(byte,word,dword
您可能关注的文档
- Linux中查找文件技术大全.doc
- linux中的signal机制.docx
- Linux中编译动态库.docx
- linux内核中打开文件.docx
- Linux命令中的常用符号解释.docx
- Linux命令行下的最佳文本编辑器[Linux培训教程].docx
- Linux安装Discuz详细步骤.doc
- linux开机启动脚本的顺序.doc
- Linux必学的系统安全命令4.docx
- linux文件系统误删除数据恢复.docx
- 护理应急预案试题及答案.pptx
- 2025年小学一年级语文下册拼音易错题专项专题训练 .pdf
- 2025年小学一年级语文下册《我多想去看看》教学设计及教学反思.pdf
- 2025年小学一年级语文下册《吃水不忘挖井人》教案及教学反思.pdf
- 2025年小学三年级上学期数学疑难易错题集(人教版) .pdf
- 2025年小学三年级上学期数学疑难易错题集(人教版) .pdf
- 2025年小学三年级上册语文教学工作总结(必威体育精装版) .pdf
- 2025年小学三年级上册语文教学工作总结(必威体育精装版) .pdf
- 制造业数字化转型的挑战与机遇.docx
- 2025年小学三年级上册语文教学工作总结(必威体育精装版) .pdf
文档评论(0)