不同层次程序员看到的运算及ALU.pptVIP

  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文档。上传文档
查看更多
浮点数加减的有关问题(2) 问题:IEEE754 SP格式的偏置常数是127,这会不会影响阶码运算电路的复杂度? 对计算[E1–E2]补 (mod 2n) 没有影响 [?E]补= 256+E1–E2=256+127+E1– (127+E2) = 256 + [E1]移 – [E2]移 = [E1]移+[–[E2]移]补 (mod 256) 但[E1+E2]移和 [E1–E2]移的计算会变复杂! 浮点乘除运算涉及之。 问题:IEEE754加减时,尾数加法器最多需要多少位? 1+1+23+3 浮点数加减的有关问题(3) 问题:为何IEEE 754 加减运算右规时最多只需一次? 因为即使是两个最大的尾数相加,得到的和的尾数也不会达到4,故尾数的整数部分最多有两位,保留一个隐含的“1”后,最多只有一位被右移到小数部分。例如:1.11+1.11 = 11.10 问题:在?E为何值时无法根据[?E]补来判断阶差? 溢出时! 例子? 例如,4位移码,E1=7,E2=-7, 则[?E]补=1111+1111=1110,?E0,错! 浮点数乘/除法基本要点 浮点数乘法:A*B =(Ma * Mb).2 Ea+Eb 浮点数除法:A/B =(Ma / Mb).2 Ea-Eb 浮点数乘 / 除法步骤 求阶: Ea + Eb + 127 尾数相乘除: Ma */Mb (两个形为1.xxx的数,原码乘/除) (3) 两数符号相同,结果为正;两数符号相异,结果为负; (4) 当尾数高位为0,需左规;当尾数最高位有进位,需右规。 (5) 如果尾数比规定的长,则需考虑舍入。 若尾数是0,则需要将阶码也置0。 阶码溢出判断 问题1:乘法运算结果最多左规几次?最多右规几次? 不需左规!最多右规1次! 问题2:除法呢? 左规次数不定!不需右规! 溢出判断 以下情况下,可能会导致阶码溢出 左规(阶码 - 1)时 先判断阶码是否为全0, 若是,则直接置阶码下溢; 否则,阶码减1后判断阶码是否为全0,若是,则下溢。 右规(阶码 +1)时 先判断阶码是否为全1, 若是,则直接置阶码上溢; 否则,阶码加1后判断阶码是否为全1,若是,则上溢。 问题:机器内部如何减1? +[-1]补 = + 11…1 若运算后尾数为全0,也算作下溢(结果为0) 举例 例:若Eb = 0000 0001,则左规一次后,结果的阶码 Eb = ? 解:Eb = Eb+[-1]补 = 0000 0001 + 1111 1111 = 0000 0000 阶码下溢! 例:若Ex=1111 1110,Ey=1000 0000,则乘法运算时,结果的阶码 Eb=? 解:Eb = Ex+Ey+129 = 1111 1110 + 1000 0000 + 1000 0001 = 1111 1111 阶码上溢! 以下情况下,可能会导致阶码溢出 乘法运算求阶码的和时 若Ex和Ey最高位皆1,而Eb最高位是0或Eb为全1,则阶码上溢 若Ex和Ey最高位皆0,而Eb最高位是1或Eb为全0,则阶码下溢 除法运算求阶码的差时 若Ex的最高位是1,Ey的最高位是0,Eb的最高位是0或Eb为全1,则阶码上溢。 若Ex的最高位是0,Ey的最高位是1,Eb的最高位是1或Eb为全0,则阶码下溢。 左规或右规结束后再作最终判定! 第三讲小结 浮点运算指令( 以MIPS为参考 ) 浮点数的表示(IEEE754标准) 单精度SP(float)和双精度DP(double) 浮点数加减运算 对阶、尾数加减、规格化(上溢/下溢处理)、舍入 浮点数乘除运算 浮点数的精度问题 中间结果加保护位、舍入位、粘位 最终进行舍入 本章总结 算术逻辑单元ALU的实现 ALU:实现基本的加减运算和逻辑运算。 加法运算是所有定点和浮点运算(加/减/乘/除)的基础,加法速度至关重要 并行进位方式能加快加法速度 定点数运算:ALU + 移位器 经典的乘除算法 浮点数运算:多个ALU + 移位器实现 *思考:不同ISA中的运算和指令 问题:IA-32指令如何区分无符号数加减法和带符号数加减法? 例如,若 (AH)=A0H, (BH)=7EH, 则ADD AH, BH的值为多少? 无符:160+126=30(不正确);带符:-96+126=30(正确) 问题:IA-32指令如何区分装入 / 存储?如何区分传送不同宽度数据? 问题:IA-32中浮点数寄存器是80位,这会给float和double类型变量的运算带来什么隐患? 感受不同ISA的不同做法,以比较各自的优缺点! 如果你来设计一台机器时,你也可以有你的做法!

文档评论(0)

小玉儿 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档