牢科学技术学院 定点运算器定点乘法 手工算法 ●两个n位数相乘,其积为2n位, 则需要2n位长的加法器,这不适 0.1101 用于定点机的形式。 0.1011·机器一次只能进行两个数的相 1101 加,不能进行多个数据的加法。 1101 ●手工计算中,乘数的每一位是0 还是1都可直接看见,而在计算机 0000 中,采用放乘数的寄存器的每 十 1101 位直接决定本次相加数是被乘数 0.10001111 还是0是很不方便的,若采用该寄 存器的最低一位来执行这种判断 就简便了。 2021年2月20日1时6分
2021年2月20日1时6分 26 定点运算器——定点乘法 • 手工算法 0. 1 1 0 1 × 0. 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 + 1 1 0 1 0. 1 0 0 0 1 1 1 1 l 两个n位数相乘,其积为2n位, 则需要2n位长的加法器,这不适 用于定点机的形式。 l 机器一次只能进行两个数的相 加,不能进行多个数据的加法。 l 手工计算中,乘数的每一位是0 还是1都可直接看见,而在计算机 中,采用放乘数的寄存器的每一 位直接决定本次相加数是被乘数 还是0是很不方便的,若采用该寄 存器的最低一位来执行这种判断 就简便了
牢科学技术学院 定点运算器定点乘法 运算法则: 计算机中执行乘法时,积的符号位由被乘数 和乘数的符号位通过一个半加器实现。 数值部分的运算规则是:从最低位Y开始,当 乘数Y为1时,将上次部分积加上被乘数的绝对 值,然后右移一位,得到新的部分积;当Y为0 时,则写下全0。然后再对乘数Y的高一位进行类 似乘法运算。重复“加右移”操作N次,可得 到最后的乘积。 2021年2月20日1时6分 27
2021年2月20日1时6分 27 定点运算器——定点乘法 •运算法则: 计算机中执行乘法时,积的符号位由被乘数 和乘数的符号位通过一个半加器实现。 数值部分的运算规则是:从最低位Y0开始,当 乘数Yi为1时,将上次部分积加上被乘数的绝对 值,然后右移一位,得到新的部分积;当Yi为0 时,则写下全0。然后再对乘数Y的高一位进行类 似乘法运算。重复“加—右移”操作N次,可得 到最后的乘积
牢科学技术学院 定点运算器定点乘法 。例:x=0.101,Y=0.1011,求x*Y=? 解:X=00.101Y=00.1011 部分积 乘 说明 00.0000 Y1011 +00.1101 0=1,+X 00.1101 00.0110 1YF101 右移,得Z +00.1101 01.0011 00.1001 11Y10 右移,得Z +00.0000 Y2=0 00.1001 00.0100 111Y1 右移,得 +00.1101 Y3=1,+ 01.000 00.1000 1111Y 右移,得Z4=X*Y 2021年2月20日1时6分
2021年2月20日1时6分 28 定点运算器——定点乘法 • 例:X=0.1101,Y=0.1011, 求X*Y=? 解: |X|=00.1101 |Y|=00.1011 部分积 乘数 说明 0 0. 0 0 0 0 + 0 0. 1 1 0 1 Yf 1 0 1 1 0 0. 1 1 0 1 0 0. 0 1 1 0 0 0. 1 1 0 1 → + 0 1. 0 0 1 1 0 0. 1 0 0 1 + 0 0. 0 0 0 0 0 0. 1 0 0 1 0 0. 0 1 0 0 0 0. 1 1 0 1 0 1. 0 0 0 1 0 0. 1 0 0 0 → → + → 1 Yf 1 0 1 1 1 Yf 1 0 1 1 1 Yf 1 1 1 1 1 Yf Z0=0 Y0=1, +X Y1=1, +X Y2=0, +0 Y3=1, +X 右移,得Z1 右移,得Z2 右移,得Z3 右移,得Z4=X*Y
牢科学技术学院 定点运算器定点乘法 结果 Ⅹ*Y=0.10001111 计算:X=0.101Y=0.0110,用原码阵列 乘法器求X*Y? Ⅹ*Y=1.01001110 2021年2月20日1时6分
2021年2月20日1时6分 29 定点运算器——定点乘法 • 结果: 计算:X=-0.1101 Y=0.0110,用原码阵列 乘法器求X*Y? X*Y=0.10001111 X*Y=1. 01001110
牢科学技术学院 原码并行乘法 °不带符号的阵列乘法器P38 被乘数 乘数 被加数产生部件 bar-l b m xn 乘法阵列 被加数求和部件 (阵列乘法器) pfI p 乘积 2021年2月
2021年2月20日1时6分 30 原码并行乘法 • 不带符号的阵列乘法器P38