第14章 算术协处理器、MMX和SIMD技术.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章 算术协处理器、MMX和SIMD技术.pptx

第14章 算术协处理器、MMX和SIMD技术 罗文坚中国科大 计算机学院/~wjluo/mcps//~wjluo/mcps/ 概述Intel系列的算术协处理器包括8087、80187、80287、80387SX、80387DX、80487SX。80486DX~Core2微处理器均有内置的算术协处理器。但是,某些兼容的80486 CPU(由IBM和Cyrix生产)内部并不包含算术协处理器。对于各种协处理器,指令系统和编程几乎完全相同,主要区别是每种协处理器被设计成与Intel不同型号的微处理器共同工作。概述80X87协处理器可以实现乘法、除法、加法、减法、求平方根、部分正切、部分反正切和对数运算。数据类型包括:16位、32位和64为带符号整数;18位BCD数据;32位、64位和80位浮点数。应用80X87执行的操作,通常比使用微处理器常用指令系统写出的最有效程序来执行同等的操作快许多倍。概述使用改进的Pentium协处理器,其运算速度比同等时钟频率下80486微处理器执行速度快5倍。Pentium微处理器常常可以同时执行一条协处理器指令和两条整数指令。Pentium Pro ~ Pentium 4协处理器与Pentium协处理器的操作类似,但增加了两条新的指令,即FMOV和FCOMI。概述多媒体扩展(MMX)与算术协处理器共享寄存器。MMX扩展是一种特殊的内部处理器,设计用于为外部多媒体设备高速执行指令。SSE(Streaming SIMD Extensions):“与MMX指令类似,但作用于浮点数(而不是整数);SSE并不使用协处理器的寄存器空间”。SSE系列是MMX的超集,直到SSE2才跟MMX有本质的区别,添加了对64位双精度浮点数的支持,以及对整型数据的支持,也就是说这个指令集中所有的MMX指令都是多余的了,同时也避免了占用浮点数寄存器。本章内容算术协处理器的数据格式80X87的结构指令系统算术协处理器编程MMX技术简介SSE技术概述算术协处理器的数据格式算术协处理器支持的数据类型包括:带符号整数BCD数浮点数注意:针对协处理器进行汇编语言编程常常局限于修改诸如C/C++高级语言生成的代码。带符号整数带符号整数:以补码形式存储。字(16位)、双字(32位)、四字(64位)。带符号整数数据定义:采用汇编伪指令DD,DW和DQ。例:DATA1 DW 2DATA2 DW -34DATA3 DD 1234DATA4 DD -100DATA5 DQ 23456DATA6 DQ -122BCD数BCD数:以原码形成存储,而不是以10的补码形式存储的。一个BCD数需要80位的内存,占用10个字节。每个BCD数有18个数位,以压缩整数形式存储,每个字节有2个数位,共占用9个字节。第10个字节只包含带符号的18为BCD数的符号位。BCD数数据定义:使用汇编伪指令DT。例:0000 00000000000000000200 DATA1 DT 200000A 80000000000000000010 DATA2 DT -100014 00000000000000010020 DATA3 DT 10020浮点数浮点数通常称为实数,因为它们支持带符号整数、分数和混合数。一个浮点数包括3个部分:符号位、阶码、有效数字。浮点数通过科学二进制计数法来表示的。Intel系列算术协处理器支持三种类型的浮点数:短浮点数(32位),即单精度浮点数长浮点数(64位),即双精度浮点数临时浮点数(80位),即扩展精度浮点数浮点数浮点数格式以及算术协处理器对它们的操作都遵循IEEE-754标准。浮点数有效数字是带有隐含位1(整数部分)的数字。以扩展精度存储时,整数部分的1是可见的。表示规则:零:指数部分为0,小数部分为0。无穷大/无穷小:指数部分为2e-1,小数部分为0。NaN:指数部分为2e-1,小数部分非零。规约形式:指数部分1~2e-2,小数部分为任意值。非规约形式:指数部分为0,小数部分非0。在非规约形式下整数部份默认为0,其他情况下一律默认为1。浮点数在Visual C++2008或Express版中,采用了float,double,Decimal三种数据类型。float:32位;double:64位;Decimal:Visual Studio的特殊类型。用于要求浮点数非常精确的领域,如银行。decimal变量是Visual Studio 2005之后才有的。浮点数将一个十进制数转换为浮点数形式的步骤:将十进制数转换为二进制数。规格化二进制数。计算出阶码。以浮点数格式存储该数。例,将十进制数100.25转换为单精度浮点数。步骤1:100.25 = 1100100.01步骤2:1100100.01 = 1× 26步骤

文档评论(0)

t9s25ccvm + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档