计算机算法和算法逻辑实现-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《计算机算法和算法逻辑实现-课件.ppt》由用户(ziliao2023)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 算法 逻辑 实现 课件
- 资源描述:
-
1、第六-八讲计算机算法和算法逻辑实现计算机算法和算法逻辑实现 1 1、定点数加减法运算及电路实现、定点数加减法运算及电路实现补码的加减法运算,全加器,溢出,快速加法补码的加减法运算,全加器,溢出,快速加法运算(进位链),运算(进位链),74181ALU74181ALU2 2、定点数乘除运算和电路实现、定点数乘除运算和电路实现原码、补码,布斯算法,原码恢复余数、不恢原码、补码,布斯算法,原码恢复余数、不恢复余数复余数3 3、快速乘除法运算技术和电路实现、快速乘除法运算技术和电路实现布斯高基乘法,阵列乘法器,阵列除法器布斯高基乘法,阵列乘法器,阵列除法器4 4、浮点数四则运算以及实现、浮点数四则运算
2、以及实现加减乘除加减乘除掌握计算机算法。掌握计算机算法。加减乘除运算方法和运算器的构成,加减乘除运算方法和运算器的构成,原码和补码的加减乘除四则运算,原码和补码的加减乘除四则运算,浮点数的四则运算。浮点数的四则运算。补码加、减法补码加、减法溢出概念与检测方法溢出概念与检测方法基本的二进制加法基本的二进制加法/减法器减法器十进制加法器十进制加法器加法规则:加法规则:先判符号位,若相同,绝对值相加,结果符号不变先判符号位,若相同,绝对值相加,结果符号不变;若不若不同,则作减法,同,则作减法,|大大|-|-|小小|,结果符号与,结果符号与|大大|相同。相同。减法规则:减法规则:两个原码表示的数相减,
3、首先将减数符号取反,然后将被减两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。数与符号取反后的减数按原码加法进行运算。补码加法补码加法1.1.原码加原码加/减法运算减法运算补码加法的公式补码加法的公式:x x 补补 y y 补补 x xy y 补补 (mod 2)(mod 2)在模在模2 2意义下意义下,任意两数的补码之和等于该两数之和的补码任意两数的补码之和等于该两数之和的补码。这是补码加法的理论基础。这是补码加法的理论基础。2.2.补码加法运算补码加法运算特点:特点:不需要事先判断符号,符号位与码值位一起参加运算。不需要事先判断符号,符号位与码值
4、位一起参加运算。符号位相加后若有进位,则舍去该进位数字。符号位相加后若有进位,则舍去该进位数字。假设采用定点小数表示假设采用定点小数表示,因此证明的先决条件是因此证明的先决条件是:x1,y1,xy1。(1)x0,y0,则则xy0。相加两数都是正数相加两数都是正数,故其和也一定是正数。正数的补码和原码故其和也一定是正数。正数的补码和原码是一样的是一样的,可得:可得:x 补补y 补补xyxy 补补(mod2)公式证明公式证明:(2)x0,y0,则则xy0或或xy0时时,2+(x+y)2,进位进位2必丢失必丢失,又因又因(x+y)0,故故x补补y补补xyxy补补(mod2)当当xy0时时,2(xy)
5、2,又因又因(x+y)0,故故x补补y补补2(xy)xy补补(mod2)(3)x0,则则xy0或或xy0。同同(2),把把x 和和y 的位置对调即可。的位置对调即可。(4)x0,y0,则则xy0。相加两数都是负数相加两数都是负数,则其和也一定是负数。则其和也一定是负数。x补补2x,y补补2yx补补y补补2x2y2(2xy)因为因为|xy|1,1(2xy)2,2(2xy)进位进位2必丢失,又因必丢失,又因x+y0故故x补补y补补2(xy)xy补补(mod2)至此证明了在模至此证明了在模2 2意义下,任意两数的补码之和等于该两数意义下,任意两数的补码之和等于该两数之和的补码。之和的补码。其结论也适
6、用于定点整数。其结论也适用于定点整数。补码加法的特点:补码加法的特点:(1 1)符号位要作为数的一部分一起参加运算;)符号位要作为数的一部分一起参加运算;(2 2)在模)在模2 2的意义下相加,即大于的意义下相加,即大于2 2的进位要丢掉。的进位要丢掉。结论:结论:例例:x0.1001,y0.0101,求求xy。解解:x补补0.1001,y补补0.0101x补补0.1001y补补0.0101xy 补补0.1110所以所以xy0.1110例例:x0.1011,y0.0101,求求xy。所以所以xy0.0110解解:x补补0.1011,y补补1.1011x补补0.1011y补补1.1011xy补补
7、10.0110补码减法补码减法减法运算要设法化为加法完成减法运算要设法化为加法完成 补码减法运算的公式:补码减法运算的公式:xy 补补x 补补y 补补x 补补y 补补公式证明:公式证明:只要证明只要证明y补补y补补,上式即得证。上式即得证。xy补补x补补y补补(mod2)令令y=x0补补x补补+x补补故故x补补x补补 (mod2)证明:证明:例例:x0.1101,y0.0110,求求xy。解解:x补补0.1101y补补0.0110,y补补1.1010 x补补0.1101y补补1.1010 xy补补10.0111xy0.0111解解:x补补=1.0011y补补=1.1010-y补补=0.0110
8、 x补补1.0011+-y补补0.0110 x-y补补1.1001例例:x=-0.1101,y=-0.0110,求,求x-y=?x-y=-0.0111 溢出及与检测方法溢出及与检测方法 在定点小数机器中在定点小数机器中,数的表示范围为数的表示范围为|1|1。在运算过程中。在运算过程中如出现大于如出现大于1 1的现象的现象,称为称为 “溢出溢出”。机器定点小数表示机器定点小数表示上溢上溢下溢下溢1.1.概念概念解解:x补补=0.1011y补补=0.1001x补补0.1011+y补补0.1001x+y补补1.0100两个正数相加的结果成为负数,这显然是错误的。两个正数相加的结果成为负数,这显然是错
9、误的。例例:x=+0.1011,y=+0.1001,求求x+y。例例:x=-0.1101,y=-0.1011,求求x+y。解解:x补补=1.0011y补补=1.0101x补补1.0011+y补补1.0101x+y补补0.1000两个负数相加的结果成为正数,这同样是错误的。两个负数相加的结果成为正数,这同样是错误的。发生错误的原因,是因为运算结果产生了溢出。发生错误的原因,是因为运算结果产生了溢出。两个正数相加两个正数相加:结果大于机器所能表示的最大正数,称为上溢;结果大于机器所能表示的最大正数,称为上溢;两个负数相加:结果小于机器所能表示的最小负数,称为下溢。两个负数相加:结果小于机器所能表示
10、的最小负数,称为下溢。机器定点小数表示机器定点小数表示上溢上溢下溢下溢 分析分析 :2.2.溢出的检测方法溢出的检测方法x补补0.1011+y补补0.1001x+y补补1.0100 x补补1.0011+y补补1.0101x+y补补0.1000溢出逻辑表达式为:溢出逻辑表达式为:VS1S2Sc+S1S2Sc(1)单符号位法单符号位法F AVz0y0 x0判 断电 路判断电路判断电路一个符号位只能表示正、负两种情况,当产生溢出时,符号一个符号位只能表示正、负两种情况,当产生溢出时,符号位的含义就会发生混乱。如果将符号位扩充为两位位的含义就会发生混乱。如果将符号位扩充为两位(Sf1、Sf2),其所能
11、表示的信息量将随之扩大,既能判别是否溢出,又能指其所能表示的信息量将随之扩大,既能判别是否溢出,又能指出结果的符号。出结果的符号。(2)双符号位法双符号位法双符号位法双符号位法也称为也称为“变形补码变形补码”或或“模模4补码补码”。变形补码定义:变形补码定义:x补补=x 0 x24+x -2 x0(mod4)任何小于任何小于1的正数:的正数:两个符号位都是两个符号位都是“0”,即,即00.x1x2.xn;任何大于任何大于-1的负数:两个符号位都是的负数:两个符号位都是“1”,即,即11.x1x2xn两数变形补码之和等于两数和的变形补码两数变形补码之和等于两数和的变形补码,要求:,要求:两个符号
12、位都看做数码一样参加运算;两个符号位都看做数码一样参加运算;两数进行以两数进行以4为模的加法,即最高符号位上产生的进位要丢掉为模的加法,即最高符号位上产生的进位要丢掉模模4补码加法公式:补码加法公式:x补补+y补补=x+y补补(mod4)采用变形补码后数的表示:采用变形补码后数的表示:Sf1Sf200结果为正数,无溢出结果为正数,无溢出01结果正溢结果正溢10结果负溢结果负溢11结果为负数,无溢出结果为负数,无溢出即:即:结果的两个符号位的代码不一致时,表示溢出结果的两个符号位的代码不一致时,表示溢出;两个符号位的代码一致时,表示没有溢出。两个符号位的代码一致时,表示没有溢出。不管溢出与否,最
13、高符号位永远表示结果的正确符号。不管溢出与否,最高符号位永远表示结果的正确符号。溢出逻辑表达式为:溢出逻辑表达式为:VSf1Sf2中中Sf1和和Sf2分别为最高符号位和第二符号位,此逻辑表达式分别为最高符号位和第二符号位,此逻辑表达式可用异或门实现。可用异或门实现。双符号位的含义如下:双符号位的含义如下:解解:x补补=00.1100y补补=00.1000 x补补00.1100+y补补00.100001.0100符号位出现符号位出现“01”,表示已溢出,正溢。即结果大于,表示已溢出,正溢。即结果大于+1例例x=+0.1100,y=+0.1000,求求x+y。解解:x补补=11.0100y补补=1
14、1.1000 x补补11.0100+y补补11.100010.1100符号位出现符号位出现“10”,表示已溢出,负溢出。即结果小于,表示已溢出,负溢出。即结果小于-1例例x=-0.1100,y=-0.1000,求求x+y。从上面例中看到:从上面例中看到:当最高有效位有进位而符号位无进位时当最高有效位有进位而符号位无进位时,产生上溢;产生上溢;当最高有效位无进位而符号位有进位时当最高有效位无进位而符号位有进位时,产生下溢。产生下溢。(简单地说是正数相加为负数或负数相加为正数则产生溢出)(简单地说是正数相加为负数或负数相加为正数则产生溢出)故溢出逻辑表达式为:故溢出逻辑表达式为:VCfCo 其中其
15、中Cf为符号位产生的进位为符号位产生的进位,Co为最高有效位产生的进位。为最高有效位产生的进位。此逻辑表达式也可用异或门实现。此逻辑表达式也可用异或门实现。(3)(3)利用进位值的判别法利用进位值的判别法x补补00.1100+y补补00.100001.1000 x补补11.0100+y补补11.100010.1100FAFAz1z0Vc1c0y1x1y0 x0FAFAVz1c0c1z0 x1y1y0 x0VC1Co VSf1Sf2判断电路判断电路基本的二进制加法基本的二进制加法/减法器减法器加法运算:加法运算:Ai+Bi+Ci=Si(Ci+1)加数加数进位输入进位输入和和进位输出进位输出一位全
16、加器真值表一位全加器真值表输入输入输出输出AiBiCiSiCi10000000110010100110110010101011100111111逻辑方程逻辑方程SiAi Bi CiCi1AiBiBiCiCiAi1.1.一位全加器一位全加器逻辑方程逻辑方程SiAi Bi CiCi1=AiBiBiCiCiAiCi=AiBi+(Ai Bi)Ci-1逻辑电路(一位全加器)逻辑电路(一位全加器)常用的全加器逻辑电路常用的全加器逻辑电路F AC i+1C iS iA iB i逻辑符号逻辑符号2.n2.n位的行波进位加减器位的行波进位加减器 n个个1位的全加器位的全加器(FA)可级联可级联成一个成一个n位的
17、行波进位加减器。位的行波进位加减器。T被定被定义为相应义为相应于单级逻于单级逻辑电路的辑电路的单位门延单位门延迟。迟。T通常通常采用一个采用一个“与非与非”门或一个门或一个“或非或非”门的时间门的时间延迟来作延迟来作为度量单为度量单位。位。3TXNOR异或非异或非3TXOT异或异或2TOR或或2TAND与与TNOT非非TNOR或非或非TNAND与非与非时间延迟时间延迟逻辑符号(正逻辑)逻辑符号(正逻辑)门的功能门的功能门的名称门的名称典型门电路的逻辑符号和延迟时间典型门电路的逻辑符号和延迟时间接线逻辑接线逻辑(与或非与或非)AOIT+TRC3.n3.n位的行波进位加法器的问题位的行波进位加法器
18、的问题时间延迟时间延迟(1)(1)对对一位全加器一位全加器(FA)来说来说,Si的时间延迟为的时间延迟为6T(每级每级 异或门延迟异或门延迟3T);Ci1的时间延迟为的时间延迟为5T。3T3TTT(2)n位行波进位加法器位行波进位加法器的延迟时间的延迟时间ta为为:9T为为最低位上的两极最低位上的两极“异或异或”门再加上溢出门再加上溢出“异或异或”门的总时门的总时间;间;2T为每级进位链的延迟时间。为每级进位链的延迟时间。tan n2 2T T9 9T T(2(2n n9)9)T T考虑溢出检测时,有:考虑溢出检测时,有:当不考虑溢出检测时,有:当不考虑溢出检测时,有:ta(n-1)n-1)2
19、 2T T9 9T T ta ta为在加法器的输入端输入加数和被加数后为在加法器的输入端输入加数和被加数后,在最坏的情况在最坏的情况下加法器输出端得到稳定的求和输出所需要的最长时间。下加法器输出端得到稳定的求和输出所需要的最长时间。tata越小越好。越小越好。缺点缺点:(1)(1)串行进位串行进位,它的运算时间长;它的运算时间长;(2)(2)只能完成加法和减法两种操作而不能完成逻辑操作。只能完成加法和减法两种操作而不能完成逻辑操作。多功能算术多功能算术/逻辑运算单元逻辑运算单元(ALU):(ALU):不仅不仅具有多种算术运算和逻辑运算具有多种算术运算和逻辑运算的功能;的功能;而且具有而且具有先
20、行进位先行进位逻辑。逻辑。从而能实现高速运算。从而能实现高速运算。由一位全加器由一位全加器(FA)(FA)构成的行波进位加法器构成的行波进位加法器:1.1.基本思想基本思想SiAi Bi Ci一位全加器一位全加器(FA)(FA)的逻辑表达式为的逻辑表达式为:(1)(1)将将A Ai i和和B Bi i先组合成由控制参数先组合成由控制参数S S0 0,S,S1 1,S,S2 2,S,S3 3控制的组合函数控制的组合函数X Xi i和和Y Yi i;(2)(2)然后再将然后再将X Xi i,Y,Yi i和下一位进位数通过全加器进行全加。和下一位进位数通过全加器进行全加。这样这样,不同的控制参数可以
21、得到不同的组合函数不同的控制参数可以得到不同的组合函数,因而能够实现多种因而能够实现多种算术运算和逻辑运算。算术运算和逻辑运算。解决方案:解决方案:多功能算术多功能算术/逻辑运算单元逻辑运算单元(ALU)(ALU)将全加器的功能扩展以完成多种算术逻辑运算。将全加器的功能扩展以完成多种算术逻辑运算。Ci1=AiBi(Ci(Ai Bi)=AiBiBiCiCiAiS0S1S2S3X0Y0 参数参数S0,S1,S2,S3分别控制输入分别控制输入Ai和和Bi,产生产生Y和和X的函数。其中:的函数。其中:Yi是受是受S0,S1控制的控制的Ai和和Bi的组合函数;的组合函数;Xi是受是受S2,S3控制的控制
22、的Ai和和Bi组合函数。组合函数。函数关系如表所示。函数关系如表所示。XiS2S3S2S3(AiBi)S2S3(AiBi)S2S3AiYiS0S1AiS0S1AiBiS0S1AiBi 核心部分是由两个半加器组成的全加器核心部分是由两个半加器组成的全加器。由由M控制第二级半加器选择逻辑运算或控制第二级半加器选择逻辑运算或 算术运算(所需的低位进位算术运算(所需的低位进位Cn n)。一位一位ALU基本逻辑电路基本逻辑电路S0S1YiS2S3Xi00011011AiAiBiAiBi0000110111AiBiAiBiAi 进一步化简进一步化简:Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S
23、1BiAi+S0Bi+S1BiS3AiBi+S2AiBiXiYi=YiFiYi Xi Cn+iCni1YiXiCni综上所述,综上所述,ALU的的一位逻辑一位逻辑表达式为:表达式为:Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1BiFiYi Xi Cn+iCni1YiXiCni 4 4位之间采用先行进位(并行进位)公式。位之间采用先行进位(并行进位)公式。根据根据 Cni1YiXiCni ,每一位的进位公式可每一位的进位公式可递推递推如下:如下:第第0 0位向第位向第1 1位的进位公式为位的进位公式为:Cn1Y0X0Cn (其中其中C Cn n是向第是向第0 0位(末位)的进位位(
24、末位)的进位)第第1 1位向第位向第2 2位的进位公式为位的进位公式为:Cn2Y1X1Cn1Y1Y0X1X0X1Cn 第第2 2位向第位向第3 3位的进位公式为位的进位公式为:Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn 第第3 3位的进位输出(即整个位的进位输出(即整个4 4位运算进位输出)公式为位运算进位输出)公式为:Cn4=Y3+X3Cn3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn4位位ALU的进位关系及逻辑电路的进位关系及逻辑电路Cn1Y0X0CnCn2Y1X1Cn1Y1Y0X1X0X1CnCn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1
25、X2CnCn4=Y3+X3Cn3=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn Cn+4是最后进位输出。是最后进位输出。逻辑表达式表明逻辑表达式表明,这是一个先行进位逻辑。换句话说这是一个先行进位逻辑。换句话说,第第0位位的进位输入的进位输入Cn可以直接传送到最高位上去可以直接传送到最高位上去,因而可以实现高速因而可以实现高速运算。运算。下图为用上述原始推导公式实现的下图为用上述原始推导公式实现的4 4位算术位算术/逻辑运算单元逻辑运算单元(ALU)(ALU)74181ALU从进位关系上看从进位关系上看X0Y0X1Y1X2Y2X3Y3正逻辑表示的正逻辑表示的74181
展开阅读全文