运算方法和运算部件.ppt

上传人:zhu****ei 文档编号:5407991 上传时间:2020-01-28 格式:PPT 页数:57 大小:1.53MB
返回 下载 相关 举报
运算方法和运算部件.ppt_第1页
第1页 / 共57页
运算方法和运算部件.ppt_第2页
第2页 / 共57页
运算方法和运算部件.ppt_第3页
第3页 / 共57页
点击查看更多>>
资源描述
第1页共43页 第3章运算方法和运算部件 内容提要算术逻辑运算基础算术逻辑运算单元 ALU 定点数乘法运算定点除法运算浮点数运算 第2页共43页 3 1算术逻辑运算基础 内容提要定点数的加减法运算溢出及其判别方法移位十进制数的运算逻辑运算 第3页共43页 3 1 1定点数的加减法运算 补码加法运算补码减法运算 第4页共43页 1 补码加法运算 两个参与相加的数无论是正数还是负数 在进行相加运算时 只要将两个数表示成对应的补码形式 再将这两个补码直接按二进制运算规则相加 所得的结果就是和的补码形式 即两个数补码的和等于两个数和的补码 可用如下关系式描述 X 补 Y 补 X Y 补 第5页共43页 补码加法运算举例1 例1 X 0 1011Y 0 1010求 X 补 Y 补 解 X 补 0 1011 Y 补 1 0110 第6页共43页 补码加法运算举例2 例2 X 0 1010Y 0 0101求 X 补 Y 补 解 X 补 1 0110 Y 补 1 1011 第7页共43页 2 补码减法运算 两个异号数的相加是利用它们的补码将减法变成了加法来做 减法运算当然也可以转化成加法来完成 之所以使用这种方法而不用直接减法 是因为这样可以和常规的加法运算使用同一加法器电路 从而简化了计算机硬件电路的设计 根据上式可得 X Y 补 X Y 补 X 补 Y 补 X 补 Y 补 第8页共43页 补码减法 运算公式为 X 补 Y 补 X Y 补通过 Y 补求得 Y 补可以将减法运算转化为补码的加法运算 已知 Y 补求 Y 补的法则是 对 Y 补各位 包括符号位 取反 末位加1 就可以得到 Y 补例 Y 补 1 1011则 Y 补 0 0101 Y 补 0 1011则 Y 补 1 0101 第9页共43页 补码减法运算举例1 例1 X 0 1100Y 0 0110求 X 补 Y 补 解 X 补 0 1100 Y 补 0 0110 Y 补 1 1010 X 补 Y 补 X 补 Y 补 第10页共43页 补码减法运算举例2 例2 X 0 1100Y 0 0110求 X 补 Y 补 解 X 补 1 0100 Y 补 1 1010 Y 补 0 0110 则 X 补 Y 补 X 补 Y 补 第11页共43页 补码加减法小结 由此得到 补码加减法运算法则如下 1 参加运算操作的数都用补码表示 2 数据的符号与数据一样参加运算 3 求差时将负减数求补 用求和代替求差 将减法运算转化为补码的加法运算 4 运算结果为补码 如果符号位为0 表明运算结果为正 如果符号位为1 则表明结果为负 5 符号位的进位为模值 应该去掉 第12页共43页 3 1 2溢出及其判别方法 由于CPU的字长是一定的 在确定了运算字长和数据的表示方法后 所能表示的数的范围也就相应确定了 当运算结果超出了机器数所能表示的范围 就会产生溢出 两个异号数相加或两个同号数相减其运算结果是不会产生溢出的 只有两个同号数相加或两个异号数相减才可能发生溢出 运算结果为正且大于所能表示的最大正数 称为 正溢 运算结果为负且小于所能表示的最小负数 称为 负溢 下面我们可以通过以下几个例子来推导出发生溢出的条件 设字长为8位 用补码表示 则表示数的范围为 128 127 如果运算结果超出此范围则发生了溢出 第13页共43页 3 1 2溢出及其判别方法 第14页共43页 3 1 2溢出及其判别方法 第15页共43页 1 根据符号位判断 从上述例子 b d 可以看出 两个正数相加 结果却为负数 则表明发生了溢出 两个负数相加 结果却为正数 则也表明发生了溢出 分别用Xn Yn Sn表示两个操作数的符号和运算结果的符号 则发生溢出的条件为 溢出 XnYnSn XnYnSn 第16页共43页 2 根据进位位判断 设数值位向符号位发生的进位为Cn 1 而符号位向更高位发生的进位为Cn 则发生溢出的条件为 第17页共43页 3 根据双符号位判断 由于用一位二进制数来表示符号只能表示出正负两种情况 当产生溢出时 会使符号位的含义产生混乱 因此可将符号位扩充为两位 这样既能表示出符号的正负 又能反映出是否发生溢出和所发生溢出的类型 双符号位的编码含义如下 00结果为正 没有溢出01结果溢出 为正溢出10结果溢出 为负溢出11结果为负 没有溢出 第18页共43页 3 1 3移位 逻辑移位循环移位算术移位 第19页共43页 3 1 4十进制数的运算 计算机内采用二进制数表示信息和运算虽然具有许多优点 但是人们习惯于十进制 因此在某些场合 希望机器也能直接运算十进制数 为此 经常采取借用二进制方式来表示一个十进制数 由于十进制数须10个状态 所以借用4位二进制数的16个状态组合的其中10个状态来表示十进制数的0 9 这就是二 十进制码的基本方法 用英文字母表示为BCD码 BinaryCodedDecimal 第20页共43页 3 1 5逻辑运算 1 逻辑 与 运算逻辑 与 运算通常也称为 逻辑乘法 用符号 或 表示 可用逻辑 与 门电路实现 2 逻辑 或 运算逻辑 或 运算通常也称为 逻辑加法 用符号 或 表示 可用逻辑 或 门实现 3 逻辑 非 运算逻辑 非 运算通常也称为 求反运算 在逻辑变量上加一短线表示该变量的 非 求反操作可用反向器 非门 实现 4 逻辑 异或 运算逻辑 异或 运算就是通常所说的 不带进位的加法 运算 即 半加 用符 表示 可用 异或门 电路实现 第21页共43页 3 2算术逻辑运算单元 ALU 加法单元电路串行加法器和并行加法器并行加法器的进位链ALU举例 第22页共43页 3 2 1加法单元电路 在ALU中 一位加法单元电路通常都采用全加器 全加器的框图和功能表如图所示 第23页共43页 3 2 1加法单元电路 第24页共43页 3 2 1加法单元电路 根据功能表可写出全加器的和Fi及进位Ci 1的逻辑表达式 第25页共43页 3 2 2串行加法器和并行加法器 串行加法器并行加法器 第26页共43页 1 串行加法器 第27页共43页 2 并行加法器 在并行加法器中 加法单元电路的位数与操作数的位数相同 可以同时对操作数的各位进行相加 并行加法器中的操作数各位也是同时提供的 但由于进位是逐位形成的 从而使各位的和也不能同时得到 第28页共43页 3 2 3并行加法器的进位链 进位函数串行进位采用串行进位的并行加法器的结构如图示 第29页共43页 3 2 3并行加法器的进位链 并行进位4位并行加法器逻辑电路图 如图所示 4位并行加法器 第30页共43页 3 2 3并行加法器的进位链 组内并行 组间串行的进位链 组内并行 组间串行的16位加法器 第31页共43页 3 2 3并行加法器的进位链 组内并行 组间并行的进位链 组内并行 组间并行的16位加法器 第32页共43页 3 2 4ALU举例 SN74181的外部结构 SN74181外部结构图 第33页共43页 3 2 4ALU举例 SN74181内部结构 一位ALU内部结构 第34页共43页 3 2 4ALU举例 由负逻辑操作数表示的74181ALU逻辑电路图 SN74181ALU逻辑电路图 第35页共43页 3 2 4ALU举例 SN74181的功能表 第36页共43页 3 2 4ALU举例 用SN74181构成多位的ALU 16位并行进位ALU结构 第37页共43页 3 3定点数乘法运算 无符号数一位乘法带符号数一位乘法 第38页共43页 3 3 1无符号数一位乘法 若要在计算机内实现上述二进制数乘法的运算 应解决以下几个问题 因为加法单元电路只有两个输入端 因此在机器内多个数据一般不能同时相加 一次加法操作只能求出两数之和 因此每求得一个相加数 就应与上次部分积相加 人工计算时 相加数逐次向左偏移一位 由于最后的乘积位数是乘数 或被乘数 的两倍 如按此法在机器中运算 加法器的位数也需增到两倍 观察计算过程很容易发现 在求本次部分积时 前一次部分积的最低位就不再参与运算了 因此可将其右移一位 相加数可直送而不必偏移 于是用N位加法器就可实现两个N位数相乘 部分积右移时 乘数寄存器的内容也同时右移一位 这样可以用乘数寄存器的最低位来控制相加数 取被乘数或零 同时乘数寄存器的最高位可接收部分积右移出来的一位 因此 完成乘法运算后 寄存器中保存乘积的高位部分 乘数寄存器中保存乘积的低位部分 第39页共43页 3 3 2带符号数一位乘法 定点原码一位乘法定点补码一位乘法 第40页共43页 1 定点原码一位乘法 两个用原码表示的数相乘 其乘积的符号为相乘两数的异或值 而数值则为两数绝对值之积 第41页共43页 2 定点补码一位乘法 补码与真值的关系补码的右移补码一位乘法 校正法 补码一位乘法 比较法 第42页共43页 3 4定点除法运算 无符号数一位除法带符号数一位除法 第43页共43页 3 4 1无符号数一位除法 恢复余数法不够减的情况 加上补码后 结果的符号位为11 负 则表明不够减 商0 恢复 加除数 左移 再重复操作 够减的情况 加上补码后 结果为符号位为00 正 则表明够减 商1 再重复以上的 步骤 加减交替法 不恢复余数法 第44页共43页 3 4 2带符号数一位除法 在被除数的绝对值小于除数的绝对值 即商不溢出 的情况下 补码一位除法的运算规则如下 如果被除数与除数同号 用被除数减去除数 若两数异号 用被除数加上除数 如果所得余数与除数同号上商l 若余数与除数异号 上商0 该商即为结果的符号位 求商的数值部分 如果上次上商l 将余数左移一位后减去除数 如果上次上商0 将余数左移一位后加上除数 然后判断本次操作后的余数 如果余数与除数同号上商l 若余数与除数异号上商0 如此重复执行n 1次 设数值部分有n位 商的最后一位一般采用恒置l的办法 并省略了最低位 l的操作 此时最大误差为 2 n 如果对商的精度要求较高 则可按规则 2 再进行一次操作 以求得商的第n位 当除不尽时 若商为负 要在商的最低一位加l 使商从反码值转变成补码值 若商为正 最低位不需要加l 第45页共43页 3 5浮点数运算 浮点数的表示形式 以2为底 N M 2E浮点数的加减法运算浮点数的乘除法运算浮点数运算器 第46页共43页 3 5 1浮点数的加减法运算 对阶 操作尾数的加 减运算规格化操作舍入处理检查阶码是否溢出 第47页共43页 浮点数的表示 机器中任何一个浮点数可写成 x为浮点数的尾数 一般为绝对值小于1的规格化数 补码表示时允许为 1 机器中可用原码或补码表示 jx为浮点数的阶码 一般为整数 机器中大多用补码或移码表示 r为浮点数的基数 常用2 4 8或16表示 以下以基数为2进行讨论 第48页共43页 浮点加减运算 设两个浮点数尾数的加减运算规则与定点数完全相同 当两浮点数阶码不等时 因两尾数小数点的实际位置不一样 尾数部分无法直接进行加减运算 第49页共43页 浮点加减运算的步骤 对阶 使两数的小数点位置对齐 尾数求和 将对阶后的两尾数按定点加减运算规则求和 差 规格化 为增加有效数字的位数 提高运算精度 必须将求和 差 后的尾数规格化 舍入 为提高精度 要考虑尾数右移时丢失的数值位 判断结果 即判断结果是否溢出 第50页共43页 1 对阶 这一步操作是将两个加数的小数点对齐 小阶向大阶看齐 阶码较小的数 其尾数向右移 每右移一位 阶码加 1 直到两数阶码相同为止 尾数右移时可能会发生数码丢失 影响精度 第51页共43页 例 两浮点数x 0 1101 201 y 0 1010 211 求x y 1 首先写出x y在计算机中的补码表示 x 补 00 01 00 1101 y 补 00 11 11 0110 2 在进行加法前 必须先对阶 故先求阶差 j 补 ix 补 jy 补 00 01 11 01 11 10即 j 2 表示x的阶码比y的阶码小 再按小阶向大阶看齐的原则 将x的尾数右移两位 其阶码加2 得 x 补 00 11 00 0011此时 j 0 表示对阶完毕 第52页共43页 2 尾数求和 将对阶后的两个尾数按定点加 减 运算规则进行运算 注意 并不考虑溢出 溢出由阶码决定接上例 两数对阶后得 x 补 00 11 00 0011 y 补 00 11 11 0110则 Sx Sy 补 00 0011 11 0110 11 1001即 x y 补 00 11 11 1001 第53页共43页 3 规格化 尾数S的规格化是指尾数满足条件 如果采用双符号位的补码 则当S 0时 其补码规格化形式为 S 补 00 1 当S 0时 其补码规格化形式为 S 补 11 0 但对S 0时 有两种情况需特殊处理 S 1 2 则 S 补 11 100 0 对于补码而言 它不满足于上面的规格化表示式 为了便于硬件判断 特规定 1 2是规格化的数 对补码而言 S 1 则 S 补 11 000 0 因小数补码允许表示 1 故 1视为规格化的数 第54页共43页 规格化又分左规和右规两种 左规 当尾数出现00 0 或11 1 时 需左规 左规时尾数左移一位 阶码减1 直到符合补码规格化表示式为止 右规 当尾数出现01 或10 时 表示尾数溢出 这在定点加减运算中是不允许的 但在浮点运算中这不算溢出 可通过右规处理 右规时尾数右移一位 阶码加1 接上例 求和结果为 x y 补 00 11 11 1001尾数的第一数值位与符号位相同 需左规 即将其左移一位 同时阶码减1 得 x y 补 00 10 11 0010 第55页共43页 3 5 2浮点数的乘除法运算 两浮点数相乘 其乘积的阶码为相乘两数阶码之和 其尾数应为相乘两数的尾数之积 两浮点数相除 商的阶码为被除数的阶码减去除数的阶码得到的差 尾数为被除数的尾数除以除数的尾数所得的商 参加运算的两个数都为规格化浮点数 乘除运算都可能出现结果不满足规格化要求的问题 因此也必须进行规格化 舍入和判断溢出等操作 规格化时要修改阶码 第56页共43页 3 5 3浮点数运算器 在微型计算机中 可将浮点运算器置于主CPU之外 也可嵌入到主CPU之内 由于它们的算术运算是配合80X86CPU进行的 所以又称为协处理器 浮点部件可支持IEEE754标准的单精度和双精度各式的浮点数 另外还使用了一种称为临时实数的80位浮点数 对于浮点数的取数 加法 乘法的操作 都采用了新的算法并用硬件来实现 其执行速度是80486的10倍多 第57页共43页 练习 1 什么是规格化 什么是左规 什么是右规 原码规格化数的表示与补码规格化数的表示有什么不同 2 什么叫浮点数溢出 如何判断浮点数的溢出 3 什么叫定点数溢出 说明判断定点数溢出的方法 4 什么叫先行进位 说明先行进位加法器的基本原理 5 什么是舍入处理 说明舍入处理的一般方法
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!