=00,01,10,11),因此积的符号可按“异或”(按位加)运算得到。数值部分的运算方法与普通的十进制小数乘法相类似,不过对于用二进制表达的数来说,其乘法规则更为简单一些:从乘法y的最低位开始,若这一位为“1”,则将被乘数x写下;若这一位为“0”,则写下全0。然后再对乘数y的高一位进行的乘法运算,其规则同上,不过这一位乘数的权与最低位乘数的权不一样,因此被乘数x要左移一位。依次类推,直到乘数各位乘完为止,最后将它们统统加起来,便得到最后乘积z。设x=0.1011,y=0.1101,让我们先用习惯方法求其乘积,其过程如下:0.×0.10+0.110100001111011111(z)101000101111(x)(y)[y]原=yf.y0y1y2…yn1.2.计算机组成原理(第八讲)地点多媒体授课班级任课教师陈平人数掌握原码一位乘法规则了解原码一位乘法逻辑结构原理原码一位乘法规则原码一位乘法逻辑结构运算过程2节教学方法讲授法、演示法、实践操作法教学手段多媒体教学如果被乘数和乘数用定点整数表示,我们也会得到同样的结果。但是,但是人们习惯的算法对机器并不完全适用。原因之一,机器通常只有n位长,两个n位数相乘,乘积可能为2n位。原因之二,只有两个操作数相加的加法器,难以胜任将n个位积一次相加起来的运算。为了简化结构,机器通常只有n位长,并且只有两个操作数相加的加法器。为此,必须修改上述乘法的实现方法,将x·y改写成适于如下定点机的形式:一般而言,设被乘数x、乘数y都是小于1的n位定点正数:x=0.x1x2…xn其乘积为;y=0.y1y2…yn1x·y=x·(0.y1y2…yn)=x·(y12-1+y22-2
+…+yn2-n)=2-1(y1x+2-1(y2x+2-1(…+2-1(yn-1x+)…))令zi表示第i次部分积,则上式可写成如下递推公式:z0=0z1=2-1(ynx+z0)…zi=2-1(yn-i+1x+zi-1)…(2.3.2)zn=x·y=2-1(y1x+zn-1)显然,欲求x·y,则需设置一个保存部分积的累加器。乘法开始时,令部分积的初值z0=0,然后求加上ynx,右移1位得第1个部分积,又将加上yn-1x,再右移1位得第2个部分积。依此类推,直到求得y1x加上zn-1并右移1位得最后部分积,即得x·y。显然,两个n位数相乘,需重复进行n次“加”及“右移”操作,才能得到最后乘积。这就是实现原码一位乘法的规则。【例】x=0.1101,y=0.1011,用原码一位乘法计算x·y=?[解:]求解过程如下:Flash演示部分积00.0000+00.110100.1101→00.0110+00.110101.0011→00.1001+00.000000.1001→00.0100+00.110101.0001→00.1000所以1111yf
右移,得z3=x111yf1右移,得z3
11yf10右移,得z2
1yf101右移,得z1
乘数说明yf1011z0=0y4=1,+xY3=1,+xY2=0,+0Y1=1,+xyx·y=0.10001111图2-7为实现原码一位乘法的硬件逻辑原理图。这里有三个寄存器,其中R0存放部分积z,在乘法开始R0前应清“0”,保证z0=0,R1寄存器存放乘数y,R2寄存器存放被乘数x。由于乘法开始时先从乘数的最低位yn开始,以后则使用yn-1,yn-2,…,y1,因此乘数寄存器R1应当是具有右移功能的移位寄存器。假定加法器不具备右移功能,那么由于部分积需要右移,R0也应当是具有右移功能的移位寄存器。2图2-7原码一位乘法逻辑结构原理图除了三个寄存器R0,R1,R2外,还需一个加法器和一个计数器,前者完成部分积与位积的累加,后者对移位的次数进行计数,以便判断乘法运算是否结束。乘法开始时,“启动”信号使控制触发器Cx置“1”,于是开启时序脉冲T。当乘数寄存器R0最末位为“1”时,部分积z和被乘数x在加法器中相加,其结果输出至R0的输入端,一旦打入控制脉冲T,控制信号LDR0使部分积右移1位,与此同时,乘数寄存器R1也在控制信号LDR1作用下右移一位,且计数器i计数1次。当计数器i=n时,计数器i的溢出信号使控制触发器Cx置“0”,关闭时序脉冲T,乘法操作结束。如果将R0和R1连接起来,乘法结束时乘积的高n位部分在R0,低n位部分在R1,R1中原来的乘数y由于右移而全部丢失,乘积为2n+1位,其中包括1位符号位。P70作业第7题教学反馈3
因篇幅问题不能全部显示,请点此查看更多更全内容