第五章运算方法和运算器课件

上传人:痛*** 文档编号:241698610 上传时间:2024-07-16 格式:PPT 页数:106 大小:1.68MB
返回 下载 相关 举报
第五章运算方法和运算器课件_第1页
第1页 / 共106页
第五章运算方法和运算器课件_第2页
第2页 / 共106页
第五章运算方法和运算器课件_第3页
第3页 / 共106页
点击查看更多>>
资源描述
第五章 运算方法和运算器本章着重讨论两个大问题:本章着重讨论两个大问题:运算方法运算方法:即即计算机中数值数据的计算机中数值数据的运算规则运算规则 加减法(定点,浮点)加减法(定点,浮点)(补码为重点)(补码为重点)移位运算移位运算 乘除法(定点,浮点)乘除法(定点,浮点)(难点)(难点)逻辑运算逻辑运算运算器的基本结构和工作原理运算器的基本结构和工作原理:着重讨论运算规则的具体物理实现着重讨论运算规则的具体物理实现(难点)(难点)规则规则第五章 运算方法和运算器5.1 5.1 定点加减运算定点加减运算 5.1.15.1.1原码加减法原码加减法原码加减运算规则原码加减运算规则(P P9494 ):要考虑要考虑符号符号和和数值数值两部分两部分同同号号相相加加和和异异号号相相减减:数数值值部部分分相相加加,结结果果的的符符号号取取被被加加(减减)数符号数符号;异异号号相相加加和和同同号号相相减减:数数值值部部分分相相减减,结结果果的的符符号号取取绝绝对对值值大大的的数数的的符符号号,但但数数值值部部分分相相减减,要要将将减减数数变变补补,变变为为加加法法进行。进行。对对于于定定点点机机,两两数数同同号号相相加加和和异异号号相相减减,结结果果可可能能溢溢出出,须须作作溢溢出出判判断断。一一般般机机器器溢溢出出后后,提提示示溢溢出出信信息息,然后停机。然后停机。原原码码一一般般不不用用来来做做加加减减运运算算,而而多多用用来来做做乘乘除除运运算算,做加减运算时,多用补码。做加减运算时,多用补码。第五章 运算方法和运算器5.1 5.1 定点加减运算定点加减运算 5.1.25.1.2补码加减法运算补码加减法运算(重点重点)引引入入补补码码后后,不不仅仅减减法法能能变变成成加加法法,而而且且符符号号位位能能同同数值位一样参与加运算,这样可以大大简化运算器的结构。数值位一样参与加运算,这样可以大大简化运算器的结构。1 1、补码加减运算规则、补码加减运算规则 参加运算的两个操作数均用补码表示;参加运算的两个操作数均用补码表示;符号位作为数的一部分参加运算;符号位作为数的一部分参加运算;若做加法,则两数直接相加;若做加法,则两数直接相加;X XYY补补=XX补补 YY补补 若做减法,则将被减数与减数的机器负数相加;若做减法,则将被减数与减数的机器负数相加;X XYY补补=XX补补 YY补补 (mod 2,mod 2,一位符号位一位符号位))运算结果用补码表示。运算结果用补码表示。第五章 运算方法和运算器2.2.变补的概念:变补的概念:对所有二进制位对所有二进制位(包括符号位包括符号位)均取反,然后在末尾在加均取反,然后在末尾在加1 1已知已知 YY补补,求,求 YY补补=YY补补 变补变补的方法是:的方法是:对对 YY补补,包括符号位在内,各位取反,末位加,包括符号位在内,各位取反,末位加1 1。-YY补补被称为被称为 YY补补的机器负数,由的机器负数,由 YY补补求求-YY补补的过程称为对的过程称为对 YY补补变补(求补)变补(求补),补码补码:一个负数由原码表示转换成补码表示时一个负数由原码表示转换成补码表示时 符号位是不变的,仅对数值符号位是不变的,仅对数值位的各位变反,末尾加位的各位变反,末尾加“1”1”。变补变补:则不论这个数的真值是正是负则不论这个数的真值是正是负,一律连同符号位一起变反,末尾加一律连同符号位一起变反,末尾加1 1。YY补补表示的真值如果是正数,则变补后表示的真值如果是正数,则变补后-YY补补所表示真值变为负数,反之亦然所表示真值变为负数,反之亦然 。例如:例如:YY补补=1.01101=1.01101 YY补补=0.10011=0.10011 3 3、溢出判断、溢出判断一般用一般用双符号位进行判断双符号位进行判断:符号位符号位00,00,表示正数表示正数,符号位符号位11,11,表示负数表示负数结果的符号位为结果的符号位为0101时,称为上溢;时,称为上溢;结果的符号位为结果的符号位为1010时,称为下溢时,称为下溢 XX补补 0.11010.1101+YY补补 0.10010.1001 X+YX+Y补补 1 1.0110.0110 XX补补 00.110100.1101+YY补补 00.100100.1001 X+YX+Y补补 0 01 1.0110.0110第五章 运算方法和运算器例例1:1:X=0.0101 Y=-0.1001 X=0.0101 Y=-0.1001 求求XY=?XY=?解:解:XX补补=00.0101=00.0101 YY补补=11.0111 -=11.0111 -YY补补=00.1001 =00.1001 两符号位相同,无溢出两符号位相同,无溢出 XX补补 00.010100.0101+YY补补 11.011111.0111 X+YX+Y补补 1111.1100.1100 XX补补 00.010100.0101+-+-YY补补 00.100100.1001 X-YX-Y补补 0000.1110.1110X+Y=-0.0100X+Y=-0.0100X-Y=+0.1110X-Y=+0.1110第五章 运算方法和运算器例例2:2:X=0.1011 Y=0.1001 X=0.1011 Y=0.1001 求求XY=?XY=?解:解:XX补补=00.1011=00.1011 YY补补=00.1001 -=00.1001 -YY补补=11.0111 =11.0111 两符号位相异,正溢出两符号位相异,正溢出第一符号位为正确符号第一符号位为正确符号 XX补补 00.101100.1011+YY补补 00.100100.1001 X+YX+Y补补 0101.0100.0100 XX补补 00.101100.1011+-+-YY补补 11.011111.0111 X-YX-Y补补 100100.0010.0010X+Y=X+Y=溢出溢出X-Y=+0.0010X-Y=+0.0010 两符号位相同,无溢出两符号位相同,无溢出 第五章 运算方法和运算器例例3:3:X=-0.1011 Y=-0.1001 X=-0.1011 Y=-0.1001 求求XY=?XY=?解:解:XX补补=11.0101=11.0101 YY补补=11.0111 -=11.0111 -YY补补=00.1001 =00.1001 两符号位相异,负溢出两符号位相异,负溢出第一符号位为正确符号第一符号位为正确符号 XX补补 11.0101 11.0101+YY补补 11.011111.0111 X+YX+Y补补 1 11010.1100.1100 XX补补 11.010111.0101+-+-YY补补 00.100100.1001 X-YX-Y补补 1111.1110.1110X+Y=X+Y=溢出溢出X-Y=-0.0010X-Y=-0.0010 两符号位相同,无溢出两符号位相同,无溢出 第五章 运算方法和运算器总结:总结:1.1.用模用模4 4补码进行加法运算,结果的两符号位补码进行加法运算,结果的两符号位 相异时,表示溢出;相异时,表示溢出;0101正溢出、正溢出、10 10 负溢出;负溢出;相同时,表示不溢出相同时,表示不溢出2.2.模模4 4补补码码相相加加的的结结果果,不不论论溢溢出出与与否否,第第一一符符号号位位始终指示正确的符号始终指示正确的符号建议:以模建议:以模4 4补码做习题补码做习题!第五章 运算方法和运算器练习:练习:求求XY=?XY=?1.X=0.1001 Y=-0.11001.X=0.1001 Y=-0.1100 X+Y=-0.0011 X-Y X+Y=-0.0011 X-Y 溢出溢出2.2.X=-0.0110 Y=0.1101X=-0.0110 Y=0.1101 X+Y=0.0111 X-Y X+Y=0.0111 X-Y 溢出溢出3.3.X=-0.1010 Y=-0.1001X=-0.1010 Y=-0.1001 X+Y X+Y 溢出溢出 X-Y=-0.0001X-Y=-0.0001 第五章 运算方法和运算器三、反码加减法运算三、反码加减法运算 1 1、反码加减运算规则、反码加减运算规则 参加运算的两个操作数均用反码表示;参加运算的两个操作数均用反码表示;符号位作为数的一部分参加运算;符号位作为数的一部分参加运算;若做加法,则两数直接相加;若做加法,则两数直接相加;X反反+Y反反=X+Y反反 若做减法,则将被减数与连同符号位一起变反后的减数相加;若做减法,则将被减数与连同符号位一起变反后的减数相加;X反反+-Y反反=X-Y反反 运算时如果符号位产生进位运算时如果符号位产生进位,则在末位加则在末位加1,1,成为循环进位成为循环进位;运算结果用补码表示。运算结果用补码表示。对于补码:对于补码:XX补补 00.1101 00.1101+YY补补 11.111011.1110 X+YX+Y补补 100100.1011.1011去掉正确去掉正确第五章 运算方法和运算器三、反码加减法运算三、反码加减法运算 2 2、说明:说明:反反码码加加法法,规规则则同同补补码码加加法法,但但若若符符号号位位有有进进位位,需将此进位加到末位需将此进位加到末位循环进位循环进位 由由 YY反反如何求如何求-YY反反?对对 YY反反,包括符号位,各位求反。,包括符号位,各位求反。第五章 运算方法和运算器例例1 1:X=0.1101 Y=-0.0010 X=0.1101 Y=-0.0010 用反码规则用反码规则求求XY=XY=?解解:XX反反00.1101 00.1101 YY反反11.1101 -11.1101 -YY反反00.001000.0010 XX反反 00.1101 00.1101+YY反反 11.110111.1101 X+YX+Y反反 1 10000.1010.10101 10000.1011.1011 XX反反 00.1101 00.1101+-+-YY反反 00.001000.0010 X-YX-Y反反 0000.1111.1111X+Y=0.1011X+Y=0.1011X-Y=0.1111X-Y=0.1111第五章 运算方法和运算器例例2 2:X=0.1011 Y=-0.0101 X=0.1011 Y=-0.0101 用反码规则求用反码规则求XY=XY=?解解:XX反反00.1011 00.1011 YY反反11.1010 -11.1010 -YY反反00.010100.0101 XX反反 00.1011 00.1011+YY反反 11.101011.1010 X+YX+Y反反 1 10000.0101.01011 10000.0110.0110 XX反反 00.1011 00.1011+-+-YY反反 00.010100.0101 X-YX-Y反反 0101.0000.0000X+Y=0.0110X+Y=0.0110X-Y=X-Y=溢出溢出第五章 运算方法和运算器练习:练习:1 1、X=-0.1100 Y=-0.0010X=-0.1100 Y=-0.0010 用反码规则求用反码规则求XY=XY=?解解:XX反反11.0011 11.0011 YY反反11.1101-11.1101-YY反反00.001000.0010 XX反反 11.0011 11.0011+YY反反 11.110111.11011 11111.0001.0001 XX反反 11.0011 11.0011+-+-YY反反 00.001000.0010 X-YX-Y反反 1111.0101.0101X+Y=-0.1110X+Y=-0.1110X-Y=-0.1010X-Y=-0.1010 X+YX+Y反反 1 11111.0000.0000第五章 运算方法和运算器练习:练习:2 2、X=-0.1101 Y=0.0110 X=-0.1101 Y=0.0110 用反码规则求用反码规则求XY=XY=?解解:XX反反11.0010 11.0010 YY反反00.0110-00.0110-YY反反11.100111.1001 XX反反 11.0010 11.0010+YY反反 00.011000.0110 XX反反 11.0010 11.0010+-+-YY反反 11.100111.1001 X-YX-Y反反 1 11010.1011.1011X+Y=-0.0111X+Y=-0.0111X-Y=X-Y=溢出溢出 X+YX+Y反反 1111.1000.1000第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)。(结果为正)。例例1 1:设:设:X=1011B=11DX=1011B=11D,Y=111B=7D Y=111B=7D 则:则:XX补补=0,1011=0,1011,YY补补=0,0111=0,0111 有:有:0,1 0 1 1 0,1 0 1 1 +0,0 1 1 1+0,0 1 1 1 1,0 0 1 0 1,0 0 1 0 得出结果:得出结果:X+YX+Y补补=1,0010=1,0010,X+Y=-1110B=-14D X+Y=-1110B=-14D 两正数相加结果为两正数相加结果为-14-14D D,显然是错误的。显然是错误的。第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)(结果为正)。例例2 2:设:设:X=-1011B=-11DX=-1011B=-11D,Y=-111B=-7D Y=-111B=-7D 则:则:XX补补=1,0101=1,0101 YY补补=1,1001=1,1001 有:有:1,0 1 0 1 1,0 1 0 1 +1,1 0 0 1+1,1 0 0 1 0,1 1 1 0 0,1 1 1 0 得出结果:得出结果:X+YX+Y补补=0,1110=0,1110,X+Y=1110B=14D X+Y=1110B=14D 两负数相加结果为两负数相加结果为1414D D,显然也是错误的。显然也是错误的。原因:原因:在于两数相加之和的数值已在于两数相加之和的数值已超过了超过了机器允许的表示范围。机器允许的表示范围。F字长为字长为n+1n+1位位的的定点整数定点整数(其中一位为符号位),采用(其中一位为符号位),采用补码补码表示:表示:当运算结果大于当运算结果大于2 2n n-1-1 或小于或小于-2-2n n时,就产生溢出。时,就产生溢出。F设参加运算的两数为设参加运算的两数为X X、Y Y,做加法运算。做加法运算。若若X X、Y Y异号,不会溢出。异号,不会溢出。若若X X、Y Y同号,运算结果为正且大于所能表示的最大正数或运算结果为同号,运算结果为正且大于所能表示的最大正数或运算结果为负且小于所能表示的最小负数负且小于所能表示的最小负数 (绝对值最大的负数)时,产生溢出。(绝对值最大的负数)时,产生溢出。F溢出分为溢出分为2 2种:种:正溢正溢和和负溢负溢。第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法1.1.溢出的产生溢出的产生 在补码加减运算中,有时会遇到这样的情况:在补码加减运算中,有时会遇到这样的情况:两个正数相加,而结果的符号位却为两个正数相加,而结果的符号位却为1 1(结果为负)(结果为负);两个负数相加,而结果的符号位却为两个负数相加,而结果的符号位却为0 0(结果为正)。(结果为正)。第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2.2.溢出检测方法溢出检测方法 采用一个符号位判断采用一个符号位判断采用一个符号位采用一个符号位加法运算加法运算时检测溢出的方法:时检测溢出的方法:两正数相加,结果为负表明产生正溢;即当两正数相加,结果为负表明产生正溢;即当Xs=Xs=YsYs=0=0,Ss=1Ss=1时,产生正溢。时,产生正溢。两负数相加,结果为正表明产生负溢。即当两负数相加,结果为正表明产生负溢。即当Xs=Xs=YsYs=1=1,Ss=0Ss=0时,产生负溢。时,产生负溢。因此可得出加法运算时因此可得出加法运算时溢出的判断条件为:溢出的判断条件为:溢出溢出=XsYsSs+XsYsSsXsYsSs+XsYsSs采用一个符号位采用一个符号位减法运算减法运算时检测溢出的方法:时检测溢出的方法:两数相减,只有两数相减,只有X,YX,Y异号时才可能溢出;异号时才可能溢出;因此可得出减法运算时因此可得出减法运算时溢出的判断条件为:溢出的判断条件为:溢出溢出=XsYsSs+XsYsSsXsYsSs+XsYsSs第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2.2.溢出检测方法溢出检测方法 采用进位位判断采用进位位判断两正数相加,当最高有效位产生进位(两正数相加,当最高有效位产生进位(C C1 1=1=1)而符号位不产生进位而符号位不产生进位(Cs=0Cs=0)时,发生正溢;时,发生正溢;两负数相加,当最高有效位没有进位(两负数相加,当最高有效位没有进位(C C1 1=0=0)而符号位产生进位而符号位产生进位(Cs=1Cs=1)时,发生负溢。时,发生负溢。溢出的判断条件为:溢出的判断条件为:溢出溢出=CsCCsC1 1+CsC+CsC1 1=CsC=CsC1 1 例例1 1:设:设:X=1011B=11DX=1011B=11D,Y=111B=7D Y=111B=7D 则:则:XX补补=0,1011=0,1011,YY补补=0,0111=0,0111 有:有:0,1 0 1 1 0,1 0 1 1 +0,0 1 1 1+0,0 1 1 1 1,0 0 1 0 1,0 0 1 0 C1=1C1=1Cs=0Cs=0例例2 2:设:设:X=-1011B=-11DX=-1011B=-11D,Y=-111B=-7D Y=-111B=-7D 则:则:XX补补=1,0101=1,0101 YY补补=1,1001=1,1001 有:有:1,0 1 0 1 1,0 1 0 1 +1,1 0 0 1+1,1 0 0 1 0,1 1 1 0 0,1 1 1 0 C1=0C1=0Cs=1Cs=1第五章第五章 运算方法和运算器运算方法和运算器5.2 5.2 补码的溢出判断与检测方法补码的溢出判断与检测方法 2.2.溢出检测方法溢出检测方法 采用变形补码采用变形补码(双符号位补码双符号位补码)判断判断变形补码定义:变形补码定义:小数小数“变形补码变形补码”的定义为:的定义为:XX补补 =整数整数“变形补码变形补码”的定义为:的定义为:XX补补 =(设字长为:(设字长为:n+1n+1位)位)变形补码的变形补码的性质:性质:(1)(1)当当-1-1X1X0 x 0)故进行算术移位时,出现的空位均添补故进行算术移位时,出现的空位均添补0 0。正数:左移、右移都补正数:左移、右移都补0 0 xx原原=0.1001 2=0.1001 2xx原原=0.0010=0.0010 xx反反=0.0011 1/2=0.0011 1/2xx反反=0.0001=0.0001 xx补补=0.1001 2=0.1001 2xx补补=0.0010=0.0010第五章 运算方法和运算器 负数负数原码原码除符号位外,原码的数值部分与真值相同,故移位后都补除符号位外,原码的数值部分与真值相同,故移位后都补0 0。xx原原=1.0111 2=1.0111 2xx原原=1.1110 1/2=1.1110 1/2xx原原=1.0011=1.0011反码反码除符号位外除符号位外,反码的数值部分与原码相反反码的数值部分与原码相反,故移位后都补故移位后都补1 1 xx反反=1.0111 2=1.0111 2xx反反=1.1111 1/2=1.1111 1/2xx反反=1.1011=1.1011第五章运算方法和运算器补码补码 xx补补=1.=1.1001001 1 xx原原=1.011=1.0111 1 xx反反=1.=1.1001000 0 xx补补=1.=1.01101110001000 xx原原=1.100=1.10010001000 xx反反=1.=1.01101101110111 xx补补=1.=1.11000110001010 xx原原=1.00111=1.001111010 xx反反=1.=1.1100001100001 1分析发现:分析发现:补码由低位向高位出现第一个补码由低位向高位出现第一个“1”1”的左边各位与反码同,从的左边各位与反码同,从“1”1”开始开始的右边各位与原码同。的右边各位与原码同。补码补码规则规则(负数)(负数):左移:补左移:补0 0,同原码,同原码 右移:补右移:补1 1,同反码,同反码 注意:注意:左移时,当数值最高位为:原码(左移时,当数值最高位为:原码(1 1)、反码和补码()、反码和补码(0 0)时,结果溢出;)时,结果溢出;右移时,当数值最低位为:原码(右移时,当数值最低位为:原码(1 1)和补码()和补码(1 1)、反码()、反码(0 0)时,结果)时,结果不会溢出,但是数值变小;不会溢出,但是数值变小;第五章运算方法和运算器5.3.25.3.2移位功能的实现移位功能的实现注意:上图为第注意:上图为第i i位的一位逻辑电路位的一位逻辑电路左移时,相当于乘以左移时,相当于乘以2,2,控制信号控制信号2 2F FL L有效有效右移时,相当于除以右移时,相当于除以2,2,控制信号控制信号2/2/F FL L有效有效不移位时不移位时,控制信号控制信号F FL L有效有效&1&LiF/2LFL2FLFi+1Fi-1Fi第五章 运算方法和运算器5.3.35.3.3、带符号数的舍入操作、带符号数的舍入操作在在算算术术移移位位时时,由由于于硬硬件件的的限限制制,会会失失去去一一定定的的位位数数,造造成一些误差,为减小误差,就要进行舍入操作。成一些误差,为减小误差,就要进行舍入操作。1.1.恒舍(切断)恒舍(切断):保留保留p p位位 多余多余q q位位全部舍去全部舍去2.2.冯冯 诺依曼舍入法诺依曼舍入法(末位恒置(末位恒置1 1)3.3.0 0舍舍1 1入法入法4.4.ROMROM舍入法舍入法(查表法,(查表法,P104P104)p位 1 1q位p位q位p位1 1 q位p位0 0 q位第五章 运算方法和运算器5.4 5.4 基本运算的实现基本运算的实现 一、一、加法器加法器 计计算算机机中中最最基基本本的的运运算算部部件件是是加加法法器器。通通常常,加加法法器器再再配配以以其其他他必必要要的的逻逻辑电路就可以进行计算机中的一些基本运算。辑电路就可以进行计算机中的一些基本运算。1.1.全加器全加器三个输入量三个输入量:操作数:操作数A Ai i和和B Bi i、低位传来的进低位传来的进 位位C Ci-1i-1,两个输出量两个输出量:本位和:本位和S Si i、向高位的进向高位的进位位C Ci i。A Ai iB Bi iC Ci-1i-1S Si iC Ci i0000000110010100110110010101011100111111全加器的逻辑表达式为全加器的逻辑表达式为:S Si i=A=Ai iBBi iCCi-1i-1 C Ci i=A Ai iB Bi i+(A+(Ai iBBi i)C)Ci-1i-1 第五章 运算方法和运算器5.4 5.4 基本运算的实现基本运算的实现 一、一、加法器加法器 2.2.串行加法器串行加法器在在串串行行加加法法器器中中,只只有有一一个个全全加加器器,数数据据逐逐位位串串行行送送加加法法器器进进行行运运算算。如果操作数长如果操作数长n n 位,加法就要分位,加法就要分n n次进行,每次只能产生一位和。次进行,每次只能产生一位和。串串行行运运算算器器特特点点:所所用用元元器器件件少少(一一位位全全加加器器),但但速速度度极极低低,因因此此,现在用的不多,现在广泛使用的是并行运算器。现在用的不多,现在广泛使用的是并行运算器。第五章 运算方法和运算器5.4 5.4 基本运算的实现基本运算的实现 一、一、加法器加法器 3.3.并行加法器并行加法器其其位位数数的的多多少少取取决决于于机机器器的的字字长,数据的各位同时运算。长,数据的各位同时运算。并并行行加加法法器器特特点点:虽虽然然操操作作数数的的各各位位是是同同时时提提供供的的,但但低低位位运运算算所所产产生生的的进进位位有有可可能能会会影影响响高高位位的的运运算算结结果果。也也可可以以说说并并行行加加法法器器的的最最长长运运算算时时间间主主要要是是由由进进位位信信号号的的传传递递时时间间决决定定的的。提提高高并并行行加加法法器器速速度度的的关关键键是是尽尽量量加加快进位产生和传递的速度快进位产生和传递的速度。补码加减运算器如下图补码加减运算器如下图第五章第五章 运算方法和运算器运算方法和运算器5.4 5.4 基本运算的实现基本运算的实现 二二、并行加法器进位的产生和传递并行加法器进位的产生和传递并行加法器的位数并行加法器的位数:取决于机器的字长取决于机器的字长,和操作数的位数相同和操作数的位数相同;并行加法器的速度:并行加法器的速度:并行加法器的最长运算时间主要是由进位并行加法器的最长运算时间主要是由进位信号的传递时间决定的。提高并行加法器速度的关键是尽量加信号的传递时间决定的。提高并行加法器速度的关键是尽量加快进位产生和传递的速度。快进位产生和传递的速度。进位链:进位链:各级各级进位间存在一个由低位向高位的传递关系进位间存在一个由低位向高位的传递关系,这种,这种进位信号的传递结构进位信号的传递结构进位链进位链。(各级进位信号,逐级串联。(各级进位信号,逐级串联成一条链)成一条链)1).1).全加器的函数表达式全加器的函数表达式 S Si i=A=Ai i B Bi i C Ci-1i-1 C Ci i=A Ai iB Bi i+(A+(Ai i+B+Bi i)C)Ci-1i-1=G=Gi i+P+Pi iC Ci-1i-1 第五章第五章 运算方法和运算器运算方法和运算器 C Ci i=A Ai iB Bi i+(A(Ai i+B+Bi i)C Ci i1 1=G Gi i+P Pi iC Ci-1i-1 G Gi i=A Ai iB Bi i 名称:名称:进位产生函数、本地进位、绝对进位进位产生函数、本地进位、绝对进位含义:含义:只有本位两输入全只有本位两输入全1 1时,才产生向高位的进位。时,才产生向高位的进位。(进位仅与本位有关,与低位无关)(进位仅与本位有关,与低位无关)P Pi i=A=Ai i+B+Bi i 名称:名称:进位传送函数、传送条件、跳跃条件进位传送函数、传送条件、跳跃条件含含义义:只只要要本本位位两两输输入入有有一一个个为为1 1时时,低低位位来来的的进进位位就能传送到高位。就能传送到高位。第五章第五章 运算方法和运算器运算方法和运算器2).2).进位信号的传送进位信号的传送进位链进位链串行进位链(串行进位链(行波进位链行波进位链)进位逐级形成,每一级的进位直接依赖于前一级的进位进位逐级形成,每一级的进位直接依赖于前一级的进位 C C1 1=A=A1 1B B1 1+(A A1 1+B+B1 1)C C0 0 C C2 2=A=A2 2B B2 2+(A A2 2+B+B2 2)C C1 1 C C2 2要等要等C C1 1形成后才能产生形成后才能产生 C Cn n=A An nB Bn n+(A An n+B Bn n)C Cn-1n-1 C Cn n要等要等C Cn-1n-1形成后才能产生形成后才能产生 第五章第五章 运算方法和运算器运算方法和运算器串串行行进进位位并并行行加加法法器器的的特特点点:电电路路较较节节省省,但但严严重影响着加法器的速度;重影响着加法器的速度;进位时间:进位时间:C Ci i=A Ai iB Bi i +(A Ai i+B+Bi i)C Ci-1i-1=G Gi i +P+Pi i C Ci-1i-1若若全全部部用用与与门门和和或或门门来来构构造造加加法法器器,每每级级门门延延迟迟为为1 1tyty,n n位位字字长长,不不考考虑虑G Gi i 、P Pi i的的形形成成时时间间,由由C C0 0产产生生后后到到C Cn n产产生生共共需需2 2ntynty.为为什什么么?因因为为每每一级加法器的进位延迟时间是一级加法器的进位延迟时间是2 2tyty改进改进:1 1)减少门的级数)减少门的级数 2 2)采用高速进位元件)采用高速进位元件 第五章第五章 运算方法和运算器运算方法和运算器 并行进位链并行进位链(理想进位链。理想进位链。)G Gi i=A Ai iB Bi i P Pi i=A=Ai i+B+Bi i C C1 1=G=G1 1+P+P1 1C C0 0 C C2 2=G=G2 2+P+P2 2C C1 1=G=G2 2+P+P2 2G G1 1+P+P2 2P P1 1C C0 0 C C3 3=G=G3 3+P+P3 3C C2 2=G=G3 3+P+P3 3G G2 2+P+P3 3P P2 2G G1 1+P+P3 3P P2 2P P1 1C C0 0 C C4 4=G=G4 4+P+P4 4C C3 3=G=G4 4+P+P4 4G G3 3+P+P4 4P P3 3G G2 2+P+P4 4P P3 3P P2 2G G1 1+P+P4 4P P3 3P P2 2P P1 1C C0 0 上上述述各各式式中中所所有有各各位位的的进进位位均均不不依依赖赖于于低低位位的的进进位位,各位的进位可以同时产生。各位的进位可以同时产生。第五章第五章 运算方法和运算器运算方法和运算器 用与门和或门用与门和或门实现的并行进位链实现的并行进位链(CLA)CLA)电路。每级电路。每级门延迟门延迟1 1tyty,从从C C0 0C Cn n的最长延迟时间的最长延迟时间共需共需2 2tyty。第五章第五章 运算方法和运算器运算方法和运算器C C0 0、G G、P P 形成后,最多只有两级门的延迟即可形形成后,最多只有两级门的延迟即可形成成CnCn,是速度最快的一种进位链。是速度最快的一种进位链。n n位字长位字长,C Cn n产生共需产生共需2 2tyty.但此方案但此方案C Cn n的的逻辑表达逻辑表达式会变得越来越长式会变得越来越长,这使得电路结构变得很复杂这使得电路结构变得很复杂,完全采用并行进位是不现实的,故称为完全采用并行进位是不现实的,故称为理想的进理想的进位链。位链。优点:优点:速度快(速度快(各级进位信号几乎同时产生各级进位信号几乎同时产生)缺点:缺点:位数增多,扇入系数太大,无法完全实现。位数增多,扇入系数太大,无法完全实现。第五章第五章 运算方法和运算器运算方法和运算器分组并行进位方式分组并行进位方式单单级级先先行行进进位位方方式式:将将n n位位加加法法分分组组,组组内内用用并并行行进进位位链链,组组间用串行间用串行进位链。进位链。(组内并行,组间串行)(组内并行,组间串行)例例如如:利利用用4 4位位先先行行进进位位电电路路和和求求和和电电路路可可以以构构成成4 4位位的的先先行行进进位位加加法法器器。则则1616位位加加法法器器,可可分分4 4组组,4 4位位/组组就就可可用用4 4个个4 4位位的的先行进位加法器构成。如图:先行进位加法器构成。如图:P P103103图图5-65-6组内:并行进位,组内:并行进位,组间:串行进位组间:串行进位特特点点:这这种种方方案案,速速度度高高,但但线线路路相相对对串串行行进进位位复复 杂,成本高杂,成本高 。第五章第五章 运算方法和运算器运算方法和运算器分组并行进位方式分组并行进位方式多级先行进位方式:多级先行进位方式:(组内并行,组间并行)(组内并行,组间并行)首先对第一组的最高进位位首先对第一组的最高进位位C C4 4有有:C C4 4=G G4 4+P+P4 4G G3 3+P+P4 4P P3 3G G2 2+P+P4 4P P3 3P P2 2G G1 1+P P4 4P P3 3P P2 2P P1 1C C0 0 =G G*1 1+P P*1 1C C0 0 同同理理:(P104P104 )对对第第二二组组,第第三三组组,第第四四组组的的最最高高进进位位位位C C8 8、C C12 12、C C1616有有:C C8 8=G=G2 2*+P+P2 2*C C4 4=G=G2 2*+P+P2 2*G G1 1*+P+P2 2*P P1 1*C C0 0C C1212=G=G3 3*+P+P3 3*G G2 2+P+P3 3*P P2 2*G G1 1*+P+P3 3*P P2 2*P P1 1*C C0 0C C1616=G=G4 4*+P+P4 4*G G3 3*+P+P4 4*P P3 3*G G2 2*+P+P4 4*P P3 3*P P2 2*G G1 1*+P+P4 4*P P3 3*P P2 2*P P1 1*C C0 0第五章第五章 运算方法和运算器运算方法和运算器G G*i i、T T*i i如何形成?如何形成?G G*1 1=G=G4 4+P+P4 4G G3 3+P+P4 4P P3 3G G2 2+P+P4 4P P3 3P P2 2G G1 1P P*1 1=P=P4 4P P3 3P P2 2P P1 1第五章第五章 运算方法和运算器运算方法和运算器*5.5.补码加减法运算器(补码加减法运算器(P105P105)第五章第五章 运算方法和运算器运算方法和运算器第五章第五章 运算方法和运算器运算方法和运算器补码加法:补码加法:XFXF、YFYF、FXFX、CPCPX XY寄存器寄存器X寄存器寄存器加法器加法器XFYFFXCPXCPX第五章第五章 运算方法和运算器运算方法和运算器补码减法:补码减法:XFXF、YFYF、1F1F、FXFX、CPCPX XY寄存器寄存器X寄存器寄存器加法器加法器FXCPXCPXXFYF1F第五章 运算方法和运算器5.5 5.5 定点乘法运算定点乘法运算乘法运算是计算机中常用的运算,过去的计算机中,乘法运算是计算机中常用的运算,过去的计算机中,没有专门的乘法器。乘法运算要靠软件编程来实现。没有专门的乘法器。乘法运算要靠软件编程来实现。但现在随着但现在随着LSILSI和和VLSIVLSI应用的普及以及价格的下降,应用的普及以及价格的下降,乘法运算已做成了标准部件乘法运算已做成了标准部件乘法器。乘法器。硬件实现:速度快,成本高硬件实现:速度快,成本高 软件实现:速度低,成本低软件实现:速度低,成本低乘法乘法实现原理一样实现原理一样一般来讲,做乘除法运算,用原码比用补码简单,一般来讲,做乘除法运算,用原码比用补码简单,但有的机器,数据是用补码表示的,为避免码制间但有的机器,数据是用补码表示的,为避免码制间的频繁转换,乘除也用补码来做。的频繁转换,乘除也用补码来做。乘法乘法第五章第五章 运算方法和运算器运算方法和运算器重点难点重点难点5.5.15.5.1原码乘法原码乘法一、原码一位乘一、原码一位乘用用原原码码运运算算,数数据据的的符符号号不不能能同同数数值值位位一一同同参参加加运运算算,而而需需单单独独处处理理,两两原原码码表表示示的的数数相相乘乘,其其结结果果的的符符号号是两数符号的是两数符号的异或异或。0.1101(0.1101(-0.1011)=?0.1011)=?Ps=Ps=x xs s y ys s =1=1原码运算符号位要原码运算符号位要单独处理单独处理第五章第五章 运算方法和运算器运算方法和运算器手算乘法:手算乘法:0.1101(0.1101(-0.1011)=-0.10001111 0.1011)=-0.10001111 0.1101 0.1101 0.1011 0.1011 0.1101 0.1101 部分积部分积 0.1101 0.1101 部分积部分积 0.0000 0.0000 部分积部分积 0.1101 0.1101 部分积部分积 0.10001111 0.10001111 乘积乘积于是,想改进上述方法,达到以下目的:于是,想改进上述方法,达到以下目的:n n位乘法,只用位乘法,只用n n位加法器位加法器 n n位乘法,只用位乘法,只用n n位寄存器来存放结果位寄存器来存放结果 可以看出:手算乘法是通过可以看出:手算乘法是通过移移位位和和加法加法来实现的。来实现的。缺点:缺点:n n位乘法,需位乘法,需n n个部分积相个部分积相加得乘积,而加得乘积,而全加器只有三个全加器只有三个输入端输入端,故实现不了。,故实现不了。n n位乘法,乘积位乘法,乘积2 2n n位,要用位,要用2 2n n位的寄存器来存放积位的寄存器来存放积,造成,造成浪费浪费.第五章第五章 运算方法和运算器运算方法和运算器原码一位乘法的规则:原码一位乘法的规则:参加运算的操作数取其绝对值参加运算的操作数取其绝对值;令乘数的最低位为判断位,若为令乘数的最低位为判断位,若为“1”1”,加被乘数,加被乘数,若为若为“0”0”,不加被乘数,不加被乘数(加加0)0);累加后的部分积以及乘数右移一位;累加后的部分积以及乘数右移一位;重复重复n n次次和和操作;(直到乘数位操作;(直到乘数位全部乘完全部乘完为止)为止)符号位单独处理,同号为正,异号为负;符号位单独处理,同号为正,异号为负;乘法运算需要三个寄存器:乘法运算需要三个寄存器:A A寄存器:部分积与最后乘积的高位部分,初值为寄存器:部分积与最后乘积的高位部分,初值为0;0;B B寄存器:被乘数寄存器:被乘数X;X;C C寄存器:乘数寄存器:乘数Y Y,运算后运算后C C寄存器中不再需要保留乘数,寄存器中不再需要保留乘数,改为存放乘积的低位部分;改为存放乘积的低位部分;n n次次加法,加法,n n次次移位移位第五章第五章 运算方法和运算器运算方法和运算器原码一位乘举例原码一位乘举例部分积部分积A 乘数乘数C00.00001011 被乘数被乘数B 0.1101+00.110100.1101101100.01101101+00.110101.0011110100.10011110+00.000000.1001111000.01001111+00.110101.0001111100.10001111A+B2-1(A+B),2-1 C结果:结果:A积的高位积的高位 C积的低位积的低位n位位加法器加法器n位寄存器位寄存器n位数乘法位数乘法xy原原1.10001111xy0.10001111判断判断判断判断判断判断判断判断加法加法右移右移加法加法加法加法加法加法右移右移右移右移右移右移练习:练习:仿照计算机的计算过程,用原码仿照计算机的计算过程,用原码计算计算X=0.1101X=0.1101和和Y=-0.0111Y=-0.0111两两个定点小数的乘积。个定点小数的乘积。练练习习:仿仿照照计计算算机机的的计计算算过过程程,用用原原码码码码计计算算X X=0.11010.1101和和Y Y=-0.0111=-0.0111两两个定点小数的成绩。个定点小数的成绩。部分积部分积A A 乘数乘数C C 被乘数被乘数B 0.1101B 0.1101(乘积的高位部分)乘积的高位部分)(乘积的低位部分)(乘积的低位部分)说明说明 00 0000 0 1 1 00 0000 0 1 1 1 1 起始情况起始情况 +)00 1101 00 1101 乘数最低位为乘数最低位为1 1,加,加X X 00 1101 00 1101 00 0110 1 0 1 00 0110 1 0 1 1 1 1 1(丢失)丢失)右移部分积和乘数右移部分积和乘数 +)00 1101 00 1101 乘数最低位为乘数最低位为1 1,加,加X X 01 0011 01 0011 00 1001 1 1 0 00 1001 1 1 0 1 1 1 1(丢失)丢失)右移部分积和乘数右移部分积和乘数 +)00 1101 00 1101 乘数最低位为乘数最低位为1 1,加,加X X 01 0110 01 0110 00 1011 0 1 1 00 1011 0 1 1 0 0 1 1(丢失)丢失)右移部分积和乘数右移部分积和乘数 +)00 0000 00 0000 乘数最低位为乘数最低位为0 0,加,加0 0 00 1011 00 1011 00 0101 1 0 1 1 0 00 0101 1 0 1 1 0(丢失)(丢失)右移部分积和乘数右移部分积和乘数符号位为负,数值位为符号位为负,数值位为0101101101011011。二、原码一位乘流程图二、原码一位乘流程图三、原码一位乘法运算器框图三、原码一位乘法运算器框图第五章第五章 运算方法和运算器运算方法和运算器5.5.2 5.5.2 补码一位乘补码一位乘用补码做加减运算很方便,做乘法(包括除法)却是原码很方用补码做加减运算很方便,做乘法(包括除法)却是原码很方便,既然这样为何又有补码乘法呢?主要为了避免频繁的码制便,既然这样为何又有补码乘法呢?主要为了避免频繁的码制转换。转换。被乘数被乘数x,xx,x补补x xs s.x.x1 1x xn n 乘数乘数y,yy,y补补y ys s.y.y1 1y yn ny y0 0.y.y1 1y yn n校正法校正法x x任意,任意,y0y0时,时,-同原码乘法同原码乘法,移位按补码规则进行,结果不用校正;移位按补码规则进行,结果不用校正;x x.y y补补 xx补补.yy补补x x任意任意,y0y0时,时,-同原码乘法同原码乘法,移位按补码规则进行,结果需要校正;移位按补码规则进行,结果需要校正;x x.yy补补 xx补补.(0.(0.y y1 1y yn n )+-x+-x补补校正法统一表达式:校正法统一表达式:x.yx.y补补 =xx补补.(0.(0.y y1 1y yn n )+)+y ys s.-x-x补补 P108P108第五章第五章 运算方法和运算器运算方法和运算器举例:X=-0.1101 Y=-0.1011即:X补=11.0011 Y补=11.0101 (-X)补=00.1101求XY补部分积A乘数C00.0000+11.0011010111.001111.1001+00.00001010 1(丢失)11.100111.1100+11.00111101 0(丢失)10.111111.0111+00.00001110 1(丢失)11.011111.1011+00.11011111 0(丢失)00.1000 1111注意!?5.5.2 5.5.2 补码一位乘补码一位乘校正法校正法第五章第五章 运算方法和运算器运算方法和运算器校正5.5.2 5.5.2 补码一位乘补码一位乘比较法(比较法(BoothBooth乘法):乘法):(适用情况:适用情况:x x,y y都任意都任意)算法推导:算法推导:将将校正法统一表达式:校正法统一表达式:x.yx.y补补 =xx补补.(0.(0.y y1 1y yn n )+)+y ys s.-x-x补补展开,得到书展开,得到书中列出的递推关系:中列出的递推关系:Z Z0 0 补补=0=0 Z Z1 1 补补=2=2-1-1Z Z0 0 补补+(+(y yn+1n+1-y-yn n)x)x补补 Z Z2 2 补补=2=2-1-1Z Z1 1 补补+(+(y yn n-y-yn-1n-1)x)x补补 .Z Zn n 补补=2=2-1-1Z Zn-1n-1 补补+(+(y y2 2-y-y1 1)x)x补补 从而得到:从而得到:xyxy补补=Z Zn n 补补+(+(y y1 1-y-ys s).xx补补-补码一位乘比较法补码一位乘比较法 其中:其中:Z Z0 0 补补为部分积,为部分积,Z Z1 1 补补Z Zn n 补补位各次求得的累加并右移之后的部分积。位各次求得的累加并右移之后的部分积。第五章第五章 运算方法和运算器运算方法和运算器补码一位乘补码一位乘注意事项注意事项比较法(比较法(BoothBooth算法):算法):(适用情况适用情况:x x,y y都任意都任意)算法规则:算法规则:相乘时,被乘数取相乘时,被乘数取双双符号位,乘数取符号位,乘数取单单符号位并参加运算。符号位并参加运算。乘法开始前,乘法开始前,部分积置全部分积置全0 0,乘数末位增加附加位乘数末位增加附加位y yn n1 1=0=0。比较比较y yn n 和和y yn n1 1,决定如何运算决定如何运算 y yn n y yn n1 1 (y yi i1-1-y yi i)值值 操作操作 0 0;0 0 0;0 全全0 0,结果右移一位,结果右移一位;0 1;1 0 1;1 xx补补,结果右移一位,结果右移一位;1 0;-1 1 0;-1 -xx补补,结果右移一位,结果右移一位;1 1;0 1 1;0 全全0 0,结果右移一位。,结果右移一位。重复重复 n n1 1 次,最后一次不移位次,最后一次不移位 得乘积得乘积 2 2n n2 2位,其中含两位符号位,其中含两位符号位位 补补码码一一位位乘乘举举例例例:例:x x-0.1011,-0.1011,y y-0.1101-0.1101 求求 xyxy?(?(利用比较利用比较算法算法)解:解:xx补补=11.0101,-xx补补00.1011 00.1011 yy补补1.00111.0011xyxy补补=00.10001111=00.10001111 xy=0.10001111xy=0.10001111 比较比较y yn n 和和y yn n1 1,决定如何运算决定如何运算 y yn n y yn n1 1 0 0;0 0;全全0 0,结果右移一位,结果右移一位;0 1;0 1;xx补补,结果右移一位,结果右移一位;1 0;1 0;-xx补补,结果右移一位,结果右移一位;1 1;1 1;全全0 0,结果右移一位。,结果右移一位。重复重复 n n1 1 次,最后一次不移次,最后一次不移位位 得乘积得乘积 2 2n n2 2位,其中含两位位,其中含两位符号位符号位 00.00001.0011 0+00.101100.10111.0011 0+00.000000.01011 1001 100.01011 1001 100.00101 1100 1+11.010111.011111 100 1 部分积部分积 乘数乘数 附加附加位位11.101111 110 0 +00.000011.101111 110 0 11.110111 111 0 +00.101100.100011 111 0 判断判断判断判断判断判断判断判断加法加法右移右移加法加法加法加法加法加法右移右移右移右移右移右移判断判断加法加法不移位不移位练习:X补=0.1001 Y补=1.1011 求XY补 解:-X补=1.0111补码乘法运算过程如下:所以得 XY补=1.110100113.2.2 3.2.2 补码乘法补码乘法第五章第五章 运算方法和运算器运算方法和运算器3.2.2 3.2.2 补码乘法补码乘法 +)1 1 0 1 1 1+)0 0 1 0 0 1+)1 1 0 1 1
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


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

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


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