第三讲运算功能和其硬件实现.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文档。上传文档
查看更多
第一单元 运算器部件 第三讲 运算功能及其硬件实现 复习 计算机组成原理 单台计算机完整的硬件系统的基本原理与内部运行机制 计算机的层次结构 理解计算机系统和结构的钥匙 计算机的发展历史 以史为鉴,可知兴替,可明得失。 原 反 补码表示复习 正数的 原码,反码,补码表示均相同, 符号位为 0,数值位同数的真值。 零的原码和反码均有2个编码,补码只一个码 负数的 原码,反码,补码表示均不同, 符号位为 1,数值位:原码为数的绝对值; 反码为每一位均取反码; 补码为反码再在最低位+1; 由[X]补求[-X]补:每一位取反后再在最低位+1; 由[X]补求X的真值:X= -1 + ? Xi * 2-i 内容提要 ALU需要实现的功能 一位ALU设计 加法的实现和加法器设计 减法的实现 4位ALU设计 乘法实现 除法实现 运算器基本功能 完成算术、逻辑运算 +、—、?、?、?、?、?。 取得操作数 寄存器组、立即数 输出、存放运算结果 寄存器组、数据总线 暂存运算的中间结果 Q寄存器、移位寄存器 运算器基本功能 获得运算结果的状态 C、Z、V、S 理解、响应控制信号 1位 ALU 全加器电路 加法器设计过程 输入条件: 根据输入条件,得到真值表,并写出逻辑表达式; 根据逻辑表达式实现逻辑电路。 如何实现4位的加法器呢? 4位加法器设计 思路1: 同1位加法器设计,写真值表,逻辑表达式,实现逻辑电路。 思路2: 用1位加法器串联起来,得到4位的加法器。 原码乘法 从一个简单的例子开始: 二进制乘法算法描述 基本算法: 若乘数的当前位 == 1, 将被乘数和部分积求和。 若乘数的当前位== 0,则跳过。 将部分积移位。 所有位都完成后,部分积即为最终结果。 N 位乘数 * M 位被乘数 = N+M 位的积 乘法显然比加法更复杂… 但比10进制乘法要简单 乘法算法实现 (一) 原码乘法的实现 (一) 64-位被乘数寄存器, 64-位 ALU, 64-位 部分积寄存器, 32-位乘数寄存器 32-位被乘数寄存器,32 -位 ALU, 64-位 部分积寄存器, 32-位乘数寄存器 实现(二)与(一)比较 实现(一)的不足: 被乘数的一半存储的只是0,浪费存储空间 每次加法实际上只有一半的位有效,浪费了计算能力 实现(二)的改进: 只在部分积左边进行加法。 在减少加法器位数的同时,并没有减低积的位数。 乘法算法实现 (二) 32-位被乘数寄存器, 32 -位ALU, 64-位部分积寄存器 (0-位乘数寄存器) 实现(三)的优点 实现(二)解决了对加法器位数的浪费 需要注意的是,乘数寄存器也存在浪费的情况: 我们把已经完成的乘数位移出,移入的是0 解决这个浪费,可以把乘数和部分积的低位结合起来。 补码乘法 方案一: 将补码转换为原码绝对值,进行原码的正数乘法 最后,根据以下原则得到符号位,并转换回补码表示: 同号为正 异号为负 方案二:补码直接乘 布斯算法 补码乘法运算 补码乘法的实现算法,先复习几个概念: X补  [X/2]补 =XsXsX1X2…Xn [X+Y]补 = [X]补+ [Y]补 [X-Y]补 = [X]补- [Y]补 = [X]补+ [-Y]补 [X]补   X = -X0 + ? Xi * 2-i 补码乘法 [X]补 =X0 X1 X2 ……. Xn [Y]补 =Y0 Y1 Y2 ……. Yn 补码乘法运算 补码乘法运算 用Y的值乘[X]补,达到[X]补乘[Y]补,求出[X*Y]补,不必区分符号与数值位。乘数最低一位之后要补初值为0的一位附加线路,并且每次乘运算需要看附加位和最低位两位取值的不同情况决定如何计算部分积,其规则是: 00  +0   01   +被乘数    10   -被乘数    11   + 0 布斯算法 布斯算法原理: 虽然乘法是加法的重复,但也可以将它理解成加法和减法的组合。 例如:十进制乘法 6 x 99….. 6x99 = 6x100 – 6x1=600 – 6 = 594 布斯算法 二进制举例: 0111 x 0011 = ? Booth’s Implementation overview 乘法:小结 在加法器上增加硬件: Q寄存器 控制部分 实现上可以进行一些优化 只介绍了基本原理,还有许多技术可以提高乘法性能 除法运

文档评论(0)

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

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

1亿VIP精品文档

相关文档