null第二章 运算方法和运算器**第二章 运算方法和运算器返回2.1数据与文字的表示
2.2定点加法、减法运算P45
2.3定点运算器的组成
2.4定点乘法运算
2.5定点除法运算
2.6浮点运算与浮点运算器2.4定点乘法运算**2.4定点乘法运算2.4.1 定点原码乘法
2.4.2 定点补码乘法
2.4.3 不带符号位的阵列乘法器
2.4.4 带符号位的阵列乘法器
补充:移位操作**移位操作
逻辑移位:数码位置变化
原码算术移位:数码位置变化,符号位不变1 0 0 0 1 1 1 1逻辑右移:0 0 0 1 1 1 111 0 0 0 1 1 1 1循环左移:1 0 0 0 1 1 10移掉补 01 0 0 1 1 1 1算术左移:1 0 1 1 1 1 01 0 0 1 1 1 1算术右移:1 0 0 0 1 1 1-15 -30-15 -7(有误差)补充:移位操作补充:移位操作**移位操作
补码算术左移:
单符号位: 符号位不变; 双符号位: 第一符号位不变
空位补0
1 0 1 1 1左移:1 1 1 1 00 0 0 1 1 1左移:0 0 1 1 1 01)单符号位2)双符号位1 1 1 0 0左移:0 1 1 1 0 0左移:错误补充:移位操作补充:移位操作**移位操作
补码算术右移:
单符号位:符号位不变; 双符号位:第一符号位不变
移空位置位补与符号位相同的代码
1 1 0 1 0右移:1 1 1 0 10 1 1 1 0 0右移:0 0 1 1 1 01)单符号位2)双符号位1 1 1 1 0右移:0 0 0 1 1 1右移:误 差补充:移位操作补充:移位操作**移位操作
舍入方法:
2. 恒舍0 00100原 1 00101原 1 11011补 4. 查表舍入法0 00100原 1 11011补 1 00101原 0 0010原 1 0011原 1 1110补 0 0011原 1 0011原 1 1101补 例. 保留4位尾数: 例. 保留4位尾数: 1. 0舍1入法3. 末位恒置1补充:移位操作1、定点乘法运算**1、定点乘法运算乘法运算是计算机中常用的运算,过去的计算机没有专门的乘法器。乘法运算要靠软件编程来实现,但现在随着LSI和VLSI应用的普及以及价格的下降,乘法运算已做成了标准部件———乘法器。
软件实现:速度低,成本低
乘法 原理一样
硬件实现:速度快,成本高1、定点乘法运算**1、定点乘法运算
一位乘
源码
二位乘
乘法
一位乘
补码
二位乘
一般来讲,做乘除法运算,用原码比用补码简单,但有的机器,数据是用补码表示的,为避免码制间的频繁转换,乘除也用补码来做。1、定点原码乘法原理**1、定点原码乘法原理[x]原=xf.xn-1…x1x0 [y]原=yf.yn-1…y1y0
[x.y]原=(xf ⊕ yf)+(0. xn-1…x1x0).(0. yn-1…y1y0)
尾数乘法如下:
设x=0.1101,y=0.1011
0.1 1 0 1 (x) × 0.1 0 1 1 (y) 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 (z)
1、定点原码乘法原理**1、定点原码乘法原理1)Y4=1+X+ 11011101011011012)Y3=1+ 11010011100111103)Y2=0+ 00001001010011114)Y1=1+ 1101000110001111X原 · Y原 =1.10001111+X+0+X01000010X原 =0.1101
Y原 =1.1011xf ⊕ yf = 11、定点原码乘法原理**1、定点原码乘法原理 设x=0.1101,y=0.1011 求x*y
部分积 乘数 部分积初始化为0
0. 0 0 0 0 0 1 0 1 1 部分积右移,前面补0
+X 0. 1 1 0 1 乘数最低位为1,加上被乘数
------------------------------------------
0 1 1 0 1 0 1 0 1 1 部分积右移,前面补0
0. 0 1 1 0 1 0 1 0 1 乘数最低位为1,加上被乘数
+X 0 1 1 0 1
------------------------------------------
1 0 0 1 1 1 0 1 0 1 部分积右移,前面补0
0 1 0 0 1 1 1 0 1 0 乘数最低位为0,加上0
+0 0 0 0 0 0
------------------------------------------
0 1 0 0 1 1 1 0 1 0 部分积右移,前面补0
0 0 1 0 0 1 1 1 0 1 乘数最低位为1,加上被乘数
+X 0 1 1 0 1
------------------------------------------
1 0 0 0 1 1 1 1 0 1 部分积右移,前面补0
0. 1 0 0 0 1 1 1 1 0 运算四次结束,数值部分运算1、定点原码乘法原理**原码一位乘法算法:
1.乘积的符号单独按两数符号模2相加得到;
2.以乘数最低位作为乘法判别位,若判别位为1,则在前次部分积上加被乘数,然后连同乘数一起右移一位;若判别位为0,则在前次部分积上加0,然后连同乘数一起右移一位;
3.重复第2步,直到n次为止1、定点原码乘法原理1、定点原码乘法原理**原码一位乘法原理框图:
寄存器A:存放部分积,初始值为0;
寄存器B:存放被乘数;
寄存器C:存放乘数加法器A C C0控制
逻辑
计数器
CTR右移一位CfB加B/不加AfXfYf1、定点原码乘法原理1、定点原码乘法原理原码一位乘法流程图描述:
1)初始化,|被乘数|->B,|乘数|->C,0->A,n->CTR.
2)Cn=1,A+B->A.Cn=0时,A+0->A。
3)A、C联合右移一位。
4)CTR-1->CTR,若CTR≠0,按2) 3) 4)步循环直至CTR=0为止。
5)乘积为2n位,高位在A,低位在C。符号由“异或”门决定并冠在乘积最高位之前。1、定点原码乘法原理2、定点补码乘法原理**补码一位乘法算法:
1.参加运算的数用补码表示;
2.符号位参加运算,且部分积与被乘数采用双符号位;
3.乘数末位增设附加位Yn+1,其初值为0;
4.以YnYn+1作为乘法判别位,其值决定了每次应执行的操作;
5.部分积右移时,移位按补码右移
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
进行;
6.重复步骤4、5,共做n+1次,最后一次不移位。
7.得乘积2n+2位,其中含两位符号位。2、定点补码乘法原理2、定点补码乘法原理**补码一位乘法算法:
判断位Yn Yn+1 操 作
0 0 原部分积右移一位
0 1 原部分积加[X]补后右移一位
1 0 原部分积加[-X]补后右移一位
1 1 原部分积右移一位
2、定点补码乘法原理2、定点补码乘法原理**补码一位乘法举例:
1)Y4=10+[-X]补+ 00.110100.110100.0110110112)Y3=11+ 00.000000.011000.0011011013)Y2=01+ 11.001111.011011.1011001104)Y1=10+ 00.110100.100000.010000011[X · Y]补 =1.01110001 X · Y = -0.10001111+0+X补 +[-X]补X= -0.1101
Y= 0.1011X补 =11.0011
Y补 =0.1011
[-X]补 =00.11015)Y1=01+X补+ 11.001111.01112、定点补码乘法原理2、定点补码乘法原理**补码一位乘法举例:
1)Y4=10+[-X]补+ 00.110100.110100.0110110112)Y3=11+ 00.000000.011000.0011011013)Y2=01+ 11.001111.011011.1011001104)Y1=10+ 00.110100.100000.010000011[X · Y]补 =1.01110001 X · Y = -0.10001111+0+X补 +[-X]补X= -0.1101
Y= 0.1011X补 =11.0011
Y补 =0.1011
[-X]补 =00.11015)Y1=01+X补+ 11.001111.01112、定点补码乘法原理2、定点补码乘法原理**补码一位乘法流程图:
2、定点补码乘法原理2、定点补码乘法原理**补码一位乘法流程图描述:
1)初始化,|被乘数|->B,|乘数|->C,并增加一位附加位,初值为0,0->A,0->CTR.
2)CnCn+1=00或11时,A+0->A;
CnCn+1=01时,A+B->A;
CnCn+1=10时,A-B->A;
3) CTR+1->CTR,若CTR≠n+1,继续;若CTR=n+1,结束。
4)A、C联合右移一位,转步骤2。
5)最后乘积高位在A,低位在C(甩掉最后两位)。
2、定点补码乘法原理2、定点补码乘法原理**补码一位乘法
此算法优点是当遇到代码为连续“1”或连续“0”时,只需连续移位,为实现加速乘法创造了条件。缺点是乘数要增加一个附加位,n+1步不移位,而且乘法结束时,乘积低位在寄存器中的位置不符合要求(需丢掉最后两位)
2、定点补码乘法原理null**设x=0.1101,y=0.1011
0.1 1 0 1 (x) × 0.1 0 1 1 (y)
步骤一:M*N个与门并行产生每个部分乘积项
步骤二:( M-1)*(N)个全加器形成的被加数矩阵完成最终结果 1 1 0 1(a0b0) 1 1 0 1 0 0 0 0 + 1 1 0 1 0. 1 0 0 0 1 1 1 1 (z)3、不带符号位的阵列乘法器3、不带符号位的阵列乘法器**3、不带符号位的阵列乘法器3、不带符号位的阵列乘法器**3、不带符号位的阵列乘法器不带符号阵列乘法器逻辑图4、带符号位的阵列乘法器**4、带符号位的阵列乘法器求补电路
原理:算前求补-乘法器-算后求补,见下图
=0=14、带符号的阵列乘法器**4、带符号的阵列乘法器求补电路小结
E=0时,输入和输出相等
E=1时,则从数最右端往左边扫描,直到第一个1的时候,该位和右边各位保持不变0⊕A=A,左边各数值位按位取反1⊕A=乛A
可以用符号作为E 的输入
原:1.11110 补:1.00010
时间延迟分析:转换n+1位带符号的时间延迟为t=n*2T+5T,其中n*2T为或门延迟时间,5T为最高位与门和异或门的时延。不变,左边数值位取反4、带符号的阵列乘法器(间接法) **4、带符号的阵列乘法器(间接法) 原码/补码举例(P36)**举例(P36)例20用带求补器原码乘法器(输入/出:为原码)
Y=(+15)*(-13)
例21用带求补器补码乘法器(输入/出:为补码)
Y=(-15)*(-13)作业**作业书本第64页,7
补充:
1、设下列数据长8位,包括一位符号位,采用补码表示,分别写出每个数据右移两位以及左移两位之后的结果
1) X= 0.1100100, 2) X= -0.0011001
2、用原码乘法计算X*Y。
1) X= 0.11011, Y= -0.11111