140 likes | 278 Views
计算机组成原理第三章. 知识点二:定点数乘法运算. 主讲教师:秦磊华. 问题引入. 乘法运算是计算机中最基本的运算类型之一,如何实现乘法?如何提高乘法运算的速度?. 学习建议. 系统观: 与数据表示的知识关联,选择合适的数据表示方法 , 便于乘法运算方法和运算器设计的简化 ; 在理解乘法过程的基础上,思考如何优化包含乘法运算的程序。 构造观: 乘法器的设计与实现方法。. 1. 机器数的移位操作. 移位是乘 / 除法运算的基本操作,分为逻辑移位与算术移位,每种移位操作又可分为左移和右移. 2. 原码一位乘法. 1) 二进制手工乘法过程.
E N D
计算机组成原理第三章 知识点二:定点数乘法运算 主讲教师:秦磊华
问题引入 乘法运算是计算机中最基本的运算类型之一,如何实现乘法?如何提高乘法运算的速度? 学习建议 系统观:与数据表示的知识关联,选择合适的数据表示方法,便于乘法运算方法和运算器设计的简化; 在理解乘法过程的基础上,思考如何优化包含乘法运算的程序。 构造观:乘法器的设计与实现方法。
1.机器数的移位操作 移位是乘/除法运算的基本操作,分为逻辑移位与算术移位,每种移位操作又可分为左移和右移.
2.原码一位乘法 1)二进制手工乘法过程 a. 说明乘法可由加法实现 b. 存在的问题: •需要长度为2n的积寄存器; •每步运算中被乘数左移次数不同,不便于控制; •需要多输入端的FA。
循环累加代替手工算法中的一次集中加,可利用FA实现乘法;循环累加代替手工算法中的一次集中加,可利用FA实现乘法; 每次右移部分积,克服手工算法中需要多次左移被乘数的问题。
例1: 已知 X = 0.110 Y= - 0.101 计算[X]原 · [Y]原 解: [X]原= 0.110 [Y]原= 1.101 , 仅取数值部分参加运算 部分积 乘数 / 判断位 说明 00.000 Y0.101Y3=1 部分积 + |X| + 00.110 00.110 每次运算结果右移1位 00.011 0 Y0.10 Y3 =0 部分积 + 0 + 00.000 00.011 00.001 10Y0.1 Y3=1 部分积 + |X| + 00.110 00.111 [X]原·[Y]原 = X0Y0.011110 =1.011110 00.011 110 Y0
R0存放部分积,初值为0,R2存放X的绝对值; R1开始存放Y,运算中还保存部分积; yn位作为部分积累加数据的判断条件;
3.补码一位乘法 设[X]补=X0X1X2…Xn,[Y]补=Y0Y1Y2…Yn,补码一位乘法的运算规则如下: (1)被乘数一般取双符号位、乘数取单符号位参加运算; (2)乘数末位增设附加位y n十1,且初值为0; (3)利用y n十1 yn的值决定对部分积的下次操作控制:
R1末端增设附加yn+1且其初值为0, R2存放[X]补; y n+1-yn的值决定每步累加的值是0、[X]补还是[-X]补; R2与ALU的通路上取反电路实现求[-x]补的功能。
4.阵列乘法器 设A= 0.a3a2a1a0, B=0.b3b2b1b0 0.a3 a2 a1 a0 0.b3 b2 b1 b0 a3b0 a2b0 a1b0 a0b0 A3b1 a2b1 a1b1 a0b1 A3b2 a2b2 a1b2 a0b2 A3b3 a2b3 a1b3 a0b3
思考与讨论 设计A为 整数,如何才能快速实现2×A ?
知识点二 回顾 算术移位与逻辑移位操作; 原码乘法运算方法与乘法电路; 补码乘法运算方法与乘法电路; 阵列乘法器— 通过加法阵列提高乘法速度。