计算机组成原理 [袁春风]chap3.ppt

上传人:s****8 文档编号:66867338 上传时间:2022-12-21 格式:PPT 页数:64 大小:1.24MB
返回 下载 相关 举报
计算机组成原理 [袁春风]chap3.ppt_第1页
第1页 / 共64页
计算机组成原理 [袁春风]chap3.ppt_第2页
第2页 / 共64页
点击查看更多>>
资源描述

《计算机组成原理 [袁春风]chap3.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理 [袁春风]chap3.ppt(64页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第三章 运算器组织与运算方法南京大学 计算机系多媒体技术研究所袁春风1u数据通路(运算器)的概念 运算器的基本功能是进行数据运算。ALU是其核心部件,是数据加工中心,但加工数据需由寄存器供给,加工后的数据要移位,对于双操作数和乘除运算还要提供联合移位功能,数据传送还要有传送线路(即内部总线)等等,因此,CPU 中的运算部件除ALU外,还必须有其他一些部件。这些部件总称为数据通路。数据通路是指计算机的数据信息从一个部件传输到另一个部件所经过的路径,连同路径上的设备。如:寄存器、暂存器、多路选择器、移位器、加工部件等。u一个简单数据通路实例 一个四位数据通路芯片-AM2901Au现代计算机所用数据

2、通路(流水线/超标量/.)3.1 运算器的基本组成2南京大学计算机系 多媒体技术研究所 袁春风3.2 算术逻辑部件(ALU)ALU(Arithmetic Logic Unit):用来执行各种算术和逻辑运算。u位ALUu行波进位ALUu先行进位ALUALU的核心是加法器,以下围绕加法器介绍说明:因为资料来源不同,以下的运算符号用了两种不同的表示方式,请不要混淆。特此说明。3南京大学计算机系 多媒体技术研究所 袁春风ALU功能描述4南京大学计算机系 多媒体技术研究所 袁春风全加器逻辑图Gi=aibi Pi=aibiSi=aibiCi(延迟为6ty)Ci+1=aibi+(aibi)Ci(延迟为5ty

3、)5南京大学计算机系 多媒体技术研究所 袁春风一个n位ALU可以由n个一位ALU串行构成。这种ALU称为行波进位ALU(Ripple-Carry ALU)。全加逻辑方程:(i=0,1,n)Si=aibiCi Ci+1=aibi+(ai+bi)Ci(延迟为2ty)上述进位逻辑与下列逻辑等价。Ci+1=aibi+(aibi)Ci(延迟为5ty)下面是一个4位行波进位ALU。3.2.2 行波进位ALU6南京大学计算机系 多媒体技术研究所 袁春风4位行波进位ALU和的所有位全部产生的延迟为:(2n+1)ty当n=4时,为9ty;当n=8时,为17ty。7南京大学计算机系 多媒体技术研究所 袁春风3.2

4、.3 先行进位ALU(1)为什么用先行进位方式?行波进位是串行逐级传递的,整个和的生成受到行波进位的影响。因此,现代计算机采用一种先行进位(Carry look ahead)方式。(2)如何产生先行进位?定义两个辅助函数:Gi=aibi进位生成 Pi=aibi进位传递 通常把实现上述逻辑的电路称为进位生成/传递部件 全加逻辑方程:Si=PiCi Ci+1=Gi+PiCi(i=0,1,n)设n=4,则:C1=G0+P0C0 C2=G1+P1C1=G1+P1G0+P1P0C0 C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 C4=G3+P3C3=G3+P3G2+P3P2G1+

5、P3P2P1G0+P3P2P1P0C0 由上式可知由上式可知:各进位之间无等待,相互独立并同时产生。各进位之间无等待,相互独立并同时产生。通常把实现上述逻辑的电路称为4位CLA部件 由此,根据由此,根据S Si i=P=Pi iCCi i ,可并行求出各位和。可并行求出各位和。通常把实现Si=PiCi的电路称为求和部件CLA加法器由“进位生成/传递部件”、“CLA部件”和“求和部件”构成。8南京大学计算机系 多媒体技术研究所 袁春风8位全先行进位加法器进位生成/传递部件A7A0B7B0P7P1P0G7G1G08位 CLA部件C0求和部件P7P1P0C0C1C7C8S7S0S13ty2ty3ty

6、和的总延迟:3+2+3=8ty;进位C8的延迟:3+2=5ty9南京大学计算机系 多媒体技术研究所 袁春风局部先行进位加法器所有和数产生的延迟为:所有和数产生的延迟为:5+2+2+5=14ty10南京大学计算机系 多媒体技术研究所 袁春风(3)多级先行进位加法器单级(局部)先行进位加法器的进位生成方式:“组内并行、组间串行”所以,单级先行进位加法器虽然比行波加法器延迟时间短,但高位组进位依赖低位组进位,故仍有较长的时间延迟。通过引入组进位生成/传递函数来实现“组内并行、组间也并行”的进位生成方式。设n=4,则:C1=G0+P0C0 C2=G1+P1C1=G1+P1G0+P1P0C0 C3=G2

7、+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 G3*=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0 P3*=P3P2P1P0 所以所以C4=G3*+P3*C0。把实现上述逻辑的电路称为4位BCLA部件。多级先行进位加法器11南京大学计算机系 多媒体技术研究所 袁春风两级先行进位加法器12南京大学计算机系 多媒体技术研究所 袁春风先行进位ALU(4)快速先行进位ALU SN74181是国际流行的四位ALU芯片,是中规模集成电路。它在原有先行进位加法器的基础上再附加部分线路,实现了按位逻辑运算,因此具有基本的算术运算和逻辑运算功能。SN74181的逻辑图和功能表SN

8、74182是4位BCLA(成组先行进位)芯片。用4个4位ALU芯片与1个4位BCLA芯片可构成16位ALU 用16个4位ALU芯片与4个4位BCLA芯片可构成64位ALU13南京大学计算机系 多媒体技术研究所 袁春风SN74181的引脚输入端:Ai和Bi分别为第一和第二操作数,Cn为低位进位,M为功能选择线,Si为操作选择线。输出端:Fi为运算结果,Cn+4、P和G为进位,“A=B”为相等标志P输入端输出端14南京大学计算机系 多媒体技术研究所 袁春风SN74181和SN74182组成16位先行进位加法器4位ALU4位ALU4位ALU4位ALU15南京大学计算机系 多媒体技术研究所 袁春风3.

9、3 定点加、减运算计算机内的加减运算一般用补码实现1.补码定点加减法规则假设A、B是带符号的n位二进制定点整数,其补码形式为:A补=an-1 an-2 a0,B 补=bn-1 bn-2 b0,则,A+B补和A-B补的运算表达式为:u对于整数:A+B补=(A补+B 补)MOD 2n A-B补=(A补+-B 补)MOD 2nu对于小数:A+B补=(A补+B 补)MOD 2 A-B补=(A补+-B 补)MOD 216南京大学计算机系 多媒体技术研究所 袁春风3.3 定点加减运算u在补码系统内,n位补码加/减法的原则是:加法规则:两个n位数的补码相加,来自最高位的进位可丢掉(取模)。所以可用一个无符号

10、加法器生成各位的和。减法规则:一个数的补码与另一个负数的补码相加,其和数就是这个数减去另一个数的绝对值的补码。即:求两个数差的补码可用第一个数的补码加上另一数负数的补码得到。溢出规则:运算的结果必须考虑是否产生了溢出。若两个同号数相加,其结果的符号与两个加数的符号不同,则发生溢出。通常将“结果大于最大能表示的正数”称为正溢出,而把“结果小于最小能表示的负数”称为负溢出。(书上提的上溢和下溢的概念用于浮点数溢出,特此说明)17南京大学计算机系 多媒体技术研究所 袁春风3.3 定点加减运算2 补码加/减法器由上述规则可知,补码加减法器只要在原无符号加法器的基础上增加“求负数补码”的电路和“溢出检查

11、”电路。无符号加法器(可实现补码加法)实现无符号数A和B相加,考虑低位进位C0,生成和 数S和向高位的进位Cn。加法器ABC0Cn和数S前面介绍的行波加法器、先行进位加法器等都是无符号加法器。18南京大学计算机系 多媒体技术研究所 袁春风无符号加法器实现补码加法举例设:A=11011,B=01001则:A和B的值分别为-0101,+1001 A加B的值为:+0100若用6位无符号加法器实现,则 A:11011 B:01001 A+B:100100 即:和数S=00100,进位C6=1 和数S的值为+0100(同A加B的值)加法器ABC0Cn和数S19南京大学计算机系 多媒体技术研究所 袁春风3

12、.3 定点加减运算“求负数补码”电路 -B补=?增加取反电路,再加适当控制。设:bi*=bi C0 ,则 C0=0,则bi*=bi,且做加法;C0=1,则bi*=bi,且做减法。因此,C0有两个作用:u功能控制:用于求反操作的启动信号。u求负数的补码时,进行加1操作。B加法器AC0Cn和数SN位补码加/减法器“求负数补码”的电路20南京大学计算机系 多媒体技术研究所 袁春风3.3 定点加减运算v补码加/减法器判断溢出的方法:方法1:“若两个同号数相加,其结果的符号与两个加数的符号不同,则发生溢出。”OVR=an-1bn-1Sn-1+an-1bn-1Sn-1方法2:采用“变形补码”进行补码运算和

13、溢出检测。其结论为:“当结果的两个符号位不同时,发生溢出”。溢出判断逻辑:OVR=Sn-1 Sn举例:采用8位加法器(即:n=8)用变形补码计算。例1:x=+010101 y=+001001,x+y=?解:x补=00 010101 y补=00 001001 x+y补=00 011110 所以 x+y=+011110 例2:x=-011001 y=+000110,x-y=?解:x补=11 100111 -y补=11 111010 x-y补=11 100001 所以 x-y=-01111100 00100100 01010100 01111011 11101011 100111111 100001

14、+21南京大学计算机系 多媒体技术研究所 袁春风3.3 定点加减运算举例:采用8位加法器(即:n=8)用变形补码计算。例3:x=+101100(+44)y=+100101(+37),x+y=?解:x补=00 101100 y补=00 100101 x+y补=01 010001 (溢出)第一符号是真符。说明和为正数。“01”表示正溢出。(+81+63(00 1111112))例4:x=-101100(-44)y=-100101(-37),x+y=?解:x补=11 010100 -y补=11 011011 x+y补=10 101111 (溢出)第一符号是真符。说明和为负数。“10”表示负溢出。(-

15、81-64(11 0000002))00 10110000 10010101 01000111 01101111 010100110 101111+两符相异,结果溢出两符相异,结果溢出22南京大学计算机系 多媒体技术研究所 袁春风3.4 定点乘法运算u乘除运算的三种实现方案:采用软件实现乘、除运算在原有数据通路的基础上增加一些硬件逻辑来实现(加法器+移位器)设置专门的乘除法器,可加快运算速度。这里主要讨论计算机实现乘除法运算的基本算法及基本硬件配置。23南京大学计算机系 多媒体技术研究所 袁春风3.4.1 无符号数乘法+24南京大学计算机系 多媒体技术研究所 袁春风第一种乘法器如何工作25南京

16、大学计算机系 多媒体技术研究所 袁春风用加法部分积右移实现乘法假定:A=an-1an-2 a1a0 B=bn-1bn-2 b1b0对乘数B作位移函数(B向右移n位),得:B.2n=bn-1.2-1+bn-2.2-2+b1.2-(n-1)+b0.2-nAB.2n=Abn-1.2-1+A bn-2.2-2+A b1.2-(n-1)+A b0.2-n =2-1(Abn-1+2-1(A bn-2+2-1(A b0+0)即:Pi=2-1(Abi+Pi-1)Pi被称为部分积展开后,得:P-1=0 P0=2-1(Ab0+P-1)Pn-1=2-1(Abn-1+Pn-2)所以,乘法操作可分解为:加法右移26南京

17、大学计算机系 多媒体技术研究所 袁春风第三种乘法硬件27南京大学计算机系 多媒体技术研究所 袁春风第3种乘法算法28南京大学计算机系 多媒体技术研究所 袁春风3.4.2 有符号数乘法u定点有符号数乘法原码乘法将符号与数值分开处理积符用两个乘数的符号异或得到数值部分用无符号乘法运算补码乘法方法1:两数都变成正数,用无符号乘法运算,最后根 据两个乘数是否异号确定是否对结果取负。方法2:用Booth乘法,其速度更快。(符号位和数值位可一起参加运算)29南京大学计算机系 多媒体技术研究所 袁春风1.原码乘法设:设A和B是两个原码表示,A=asA B=bsB,其中as、bs为数A和B的符号位,A、B为数

18、值则:积符ps=asbs 积的绝对值P=A.B 乘积P=ps P=ps(A.B)求 P=A.B (用无符号乘法)30南京大学计算机系 多媒体技术研究所 袁春风2.补码乘法假定:A补=an-1an-2 a1a0 B补=bn-1bn-2 b1b0求:A B补=?Booth算法基于以下补码性质:令:A补=an-1an-2 a1a0,则:A=-an-1.2n-1+an-2.2n-2+a1.21+a0.20当n=32时,A=-a31.231+a30.230+a1.21+a0.20a30.231-a30.23031南京大学计算机系 多媒体技术研究所 袁春风Booth乘法算法推导部分积:部分积:P Pi i

19、=2=2-1-1(a ai i-1-1-a ai i)b+Pb+Pi-1i-1)32南京大学计算机系 多媒体技术研究所 袁春风Booth算法要点33南京大学计算机系 多媒体技术研究所 袁春风Booth算法要点中中34南京大学计算机系 多媒体技术研究所 袁春风Booth算法要点35南京大学计算机系 多媒体技术研究所 袁春风Booth算法举例136南京大学计算机系 多媒体技术研究所 袁春风Booth算法举例237南京大学计算机系 多媒体技术研究所 袁春风3.5 定点除法运算u计算机中的除法运算过程一般分为三个部分:操作数的预置/商符和商值的确定/余数的确定u设A和B分别为被除数和除数,令:A=a2

20、n-1a2n-2 anan-1 a1a0 (A为2n位。若为n位,则可用扩展操作将位数扩展成2n位)B=bn-1bn-2 b1b0 (B为n位)u做除法之前,先要判断 A=0(商为0)?、B=0(除数为0)?、2 2n n|B|=|A|B|=|A|(溢出)溢出)?u无符号数的除法恢复余数法和不恢复余数法u有符号数的除法原码除法和补码除法38南京大学计算机系 多媒体技术研究所 袁春风3.5.1 恢复余数除法算法思想:类似于手工除法计算,通过做减法来试商l若余数为正,则表示够减,商,下次继续做减法;l若余数为负,则表示不够减,商,下次做加法,恢复余数;39南京大学计算机系 多媒体技术研究所 袁春风

21、第三种除法算法40南京大学计算机系 多媒体技术研究所 袁春风第三种除法算法举例41南京大学计算机系 多媒体技术研究所 袁春风第三种除法算法42南京大学计算机系 多媒体技术研究所 袁春风第三种除法算法的启示43南京大学计算机系 多媒体技术研究所 袁春风3.5.2 不恢复余数除法(加减交替法)基本思想:根据恢复余数法(设B为除数,Ri为第i次中间余数),有:l若Ri0,则商上“1”,不需恢复余数,即:R Ri i+1+1=2R=2Ri i-2 2n n|B|B|(由上式可知:“正,减”)省去了恢复余数的过程 注意:注意:最后一次上商为“”的话,需要“纠余”处理,即把试商时被减掉的除数加回去,恢复真

22、正的余数。不恢复余数法也称为加减交替法44南京大学计算机系 多媒体技术研究所 袁春风3.5.3 有符号数除法l有符号数的除法原码除法o商符和商值分开处理。商的数值部分由无符号数除法求得;商符由被除数和除数的符号确定:同号为“”,异号为“”。o余数的符号同被除数的符号。补码除法o方法1:先转换为正数,用无符号数除法,然后修正商和余数。o方法2:直接用补码除法。45南京大学计算机系 多媒体技术研究所 袁春风设 x原=1 0010 0110 y原=0 0111 求 x/y原,R原解:-|y|补=1001|x|=0010 0110 A Q 上商 说明 0010 0110 1001 试商,做减法 101

23、1 0110 0 0 不够减,商0 0111 做加法,恢复余数 0010 0110 0100 1100 0 左移一位 1001 试商,做减法 1101 1100 0 0 不够减,商0 0111 做加法,恢复余数 0100 1100 0 1001 100 00 左移一位 1001 试商,做减法 0010 100 00 1 够减,商1 0101 00 001 左移一位 1001 试商,做减法 1110 00 001 0 不够减,商0 0111 做加法,恢复余数 0101 00 001 1010 0 0010 左移一位 1001 试商,做减法 0011 0 0010 1 够减,商1 例1:恢复余数法

24、x/y原=1 0101 R原=1 0011 x/y=-5 余数R=-3验证:-38=(-5)x(+7)+(-3)若事先判断出不溢出,则第一次可以不试商而直接左移。46南京大学计算机系 多媒体技术研究所 袁春风设 x原=1 0010 0110 y原=0 0111 求 x/y原,R原解:-|y|补=1001|x|=0010 0110 A Q 上商 说明 0010 0110 1001 试商,做减法 1011 0110 0 0 负,0,加 0110 1100 0 左移一位 0111 做加法 1101 1100 0 0 负,0,加 1011 100 00 左移一位 0111 做加法 0010 100 0

25、0 1 正,1,减 0101 00 001 左移一位 1001 做减法 1110 00 001 0 负,0,加 1100 0 0010 左移一位 0111 做加法 0011 0 0010 1 正,1,减(最后一步)运算结果同前面的恢复余数法例2:不恢复余数法最后一次上商为“1”,故不需恢复余数。第一次上的商不是真正的商,只是用来判断是否溢出,故最终的商应是Q和Q-1一起左移一位后在Q中的数。即:商的数值为0101。47南京大学计算机系 多媒体技术研究所 袁春风举例:7/3=?(-7)/3=?被除数:0000 0111 除数 0011 A Q M=0011 0000 0111 0000 1110

26、 1101 减 1101 1111101 1110 0011 恢复(加)商0 0 0000 1110 0 0001 110 00 1101 减 1110 111110 110 00 0011 恢复(加)商0 0 0001 110000 0011 100000 1101 减 0000 10000 1001 001 符同商1 1 0001 0010010 1101 减 1110 1110 0010010 0011 恢复(加)商0 0 0001 00100010+余:0001/商:0010被除数:1111 1001 除数 0011 A Q M=0011 1111 1001 1111 0010 001

27、1 加 0010 0010010 0010 1101 恢复(减)商0 0 1111 0010 0 1110 010 00 0011 加 0001 010 00 1101 恢复(减)商0 0 1110 011110 010000 1100 100000 0011 加 1111 11111 1001 001 符同商1 1 1111 0010010 0011 加 00100010 0010010 1101 恢复(减)商0 0 1111 00100010+余:1111/商:111048南京大学计算机系 多媒体技术研究所 袁春风3.6 浮点运算u浮点数运算及结果u浮点数的加减运算u浮点数的乘除运算u精度

28、考虑uIEEE754中几个特殊值的含义u浮点运算部件的设置49南京大学计算机系 多媒体技术研究所 袁春风3.6.1 浮点数运算及结果设两个规格化浮点数分别为 A=Ma.2Ea B=Mb.2Eb ,则:A+B=Ma+Mb.2-(Ea-Eb).2Ea (假设Ea=Eb)A*B=(Ma*Mb).2 Ea+EbA/B=(Ma/Mb).2 Ea-Eb上述运算结果可能出现以下几种情况:阶码上溢:一个正指数超过了最大允许值=+/-/溢出阶码下溢:一个负指数超过了最小允许值=+0/-0尾数上溢:最高有效位有进位=右规尾数下溢:左规或对阶时,右段有效位丢失=尾数舍入 IEEE建议实现时为每种异常情况提供一个自陷

29、允许位。当具有允许自陷处理程序的一个异常情况发生时,就调用一个用户自陷处理程序执行。50南京大学计算机系 多媒体技术研究所 袁春风3.6.2 浮点数的加减运算步骤:A+B=Ma+Mb.2-(Ea-Eb).2Ea (假设Ea=Eb)(1)查0:一个数为0,结果为另一个数(2)对阶:小阶向大阶看齐,小阶码增大,相应尾数右移 直到两数阶码相等(循环增量/移位)(实现对阶时也可直接计算Ea-Eb补)Ea-Eb补=Ea移+Eb移补=Ea补+-Eb补(3)尾数相加减:对阶后,进行尾数求和/差(4)规格化:结果出现尾数上溢时,进行右规 结果出现尾数高位有非有效数时,进行左规(在对阶和右规时,要考虑保留附加位

30、 在左规和确定最终结果时,要考虑舍入方式)(5)阶码溢出判断:阶码上溢,则置“溢出”;阶码下溢,则置“0”51南京大学计算机系 多媒体技术研究所 袁春风浮点数加减运算-举例例1:x=0.5 y=-0.4375 求x+y=?解1:假定尾数用2+4位变形补码表示,阶码用3位移码表示 x=0.5=1/2=(0.1000)2=(0.1000)2x20 y=-0.4325=(-0.0111)2=(-0.1110)2x2-1 x浮=100,00.1000 y浮=011,11.0010 对阶:Ex-Ey补=100+011补=100+101=001 故Ex-Ey=1 对y进行对阶,y浮=100,11.1001

31、 尾数相加:00.1000+11.1001=00.0001 x+y浮=100,00.0001 规格化(左规):x+y浮=001,00.1000 x+y=(0.1)2x2-3=0.5x1/8=0.0625 (e=(001)2-(100)2=-3)52南京大学计算机系 多媒体技术研究所 袁春风x=0.5 y=-0.4375 求x+y=?解2:假定用IEEE754标准单精度格式表示 x=0.5=1/2=(0.100.0)2=(1.00.0)2x2-1 y=-0.4325=(-0.01110.0)2=(-1.110.0)2x2-2 x浮=0 01111110,000 y浮=1 01111101,110

32、0 对阶:E补=0111 1110+1000 0011=0000 0001 E=1 故对y进行对阶y浮=1 0111 1110 11100(高位补隐藏位)尾数相加:01.0000.0+(10.1110.0)=00.001000(原码加法)左规:+(0.001000)2x2-1=+(1.000)2x2-4(阶码减3)x+y浮=0 0111 1011 000 x+y=(1.0)2x2-4=1/16=0.0625 浮点数加减运算-举例53南京大学计算机系 多媒体技术研究所 袁春风3.6.3 浮点数的乘除运算A*B=(Ma*Mb).2 Ea+EbA/B=(Ma/Mb).2 Ea-Ebl结果的阶码计算

33、移码:Ea+Eb移=Ea移+Eb移-偏置常数 Ea-Eb移=Ea移-Eb移+偏置常数 补码:Ea+Eb补=Ea补+Eb补 Ea-Eb补=Ea补+-Eb补l结果的尾数计算 定点整数的乘除法运算(补码原码)书中有流程图,自学54南京大学计算机系 多媒体技术研究所 袁春风3.6.4 浮点运算的精度考虑u保护位(附加位,又称警戒位)的增设 为了使数据有效位在右移时最大限度地保证不丢失,一般在运算中间值后面增加若干数据位,这些位用来保存右移后的有效数据。例如:可用一个32位寄存器保存IEEE754单精度的尾数部分,此时,保护位数为32-25=7位 (IEEE754单精度的尾数部分装入寄存器时,符号位和隐

34、含的最高位被同时装入,故数据位数为1+1+23=25位)u舍入方式的选择 增设保护位,在较长的寄存器中运行后,最终必须将结果的保护位去掉,以得到格式规定的浮点数,此时要考虑舍入。55南京大学计算机系 多媒体技术研究所 袁春风1.保护位(附加位)的增设56南京大学计算机系 多媒体技术研究所 袁春风 影响精度的另一个因素是舍入策略 原则:(1)尽量使误差范围对称,使得平均误差为0 即:有舍有入,以防误差积累。(2)要简单,以加快速度 方法:(1)截取-快,但有误差积累 (2)恒1法-快,平均误差小 (3)0舍1入-慢,但精度高 2.舍入方式的选择57南京大学计算机系 多媒体技术研究所 袁春风8.9

35、 十进制数的加减运算u有的机器有十进制加减法指令,用于对二进制编码的十进制数进行加减运算。所以这些机器中必须要有相应的十进制加减运算逻辑。u以NBCD码(8421码)为例,讨论十进制整数的加减运算。u一般规定数符在最高位 1100:正,1101:负 或 0:正,1:负 例如:+2039 1100 0010 0000 0011 1001 或 0 0010 0000 0011 1001 -1265 1101 0001 0010 0110 0101 1 0001 0010 0110 010158南京大学计算机系 多媒体技术研究所 袁春风8.9.1 十进制加法运算例1 25+31=56 例2 25+3

36、9=64 0010 0101 0010 0101 +0011 0001 +0011 1001 0101 0110 0101 1110 0110例3 27+39=66 0110 0100 0010 0111 +0011 1001 0101 0000 1 0110 0110 0110 (1110)29需“+6”校正1低位有进位,则进到高位,同时该低位“+6”校正59南京大学计算机系 多媒体技术研究所 袁春风十进制加法运算要点u当运算结果的各位9时,该位需“+6”校正u当某位向高位有进位时,需将进位进到高位,同时该位“+6”校正u当最高位有进位时,发生溢出综上所述,当某位运算结果在1019之间时,需

37、进行校正。(最大可能:2x9+1=19)即:1x1x或11xx或有进位(C4*=1)校正逻辑表达式:C4=C4*+S3*S1*+S3*S2*60南京大学计算机系 多媒体技术研究所 袁春风n位十进制加法器 un个一位十进制加法器=一个n位十进制串行加法器 61南京大学计算机系 多媒体技术研究所 袁春风8.9.2 十进制减法运算u方法:“加补码”:N1-N2=N1+(10n-N2)(mod 10n)u十进制数的补码求法:每位求反,末位加“1”u一位十进制数(NBCD码)求反的方法,有:对各二进位求反,再“+10”先“+6”,再各位求反直接用求反电路u只要在加法器基础上增加求补逻辑和最终结果的修正逻

38、辑。62南京大学计算机系 多媒体技术研究所 袁春风十进制减法运算举例例1 309-125=184 例2 125-309=-184加补码:309+875=184 125+691=-184(mod 103)0011 0000 1001 0001 0010 0101+1000 0111 0101 +0110 1001 0001 1011 0111 1110 0111 1011 0110 0110 0110 011010001 1000 0100 1000 0001 0110进位为1,表示被减数大于减数,结果为正无进位,表示差值为负数,故应将结果取补取补-0001 1000 010063南京大学计算机系 多媒体技术研究所 袁春风总结v补码定点数的加减法器:在无符号数加减运算基础上加“溢出检测”和“求负”电路。v定点数的乘法用加法+右移实现。v定点数的除法用加法+左移实现。v浮点数运算用定点数的加减乘除运算实现。为保证精度,浮点运算时要增加“保护位”和考虑“舍入”问题。vBCD码的运算要进行“+6”修正。v所有运算都在ALU上运行。v可以看出:在机器内部的所有运算是基于“加法器”的,所以“算术逻辑部件ALU”的核心是“加法器”。而加法器大多采用“先行进位”方式。64南京大学计算机系 多媒体技术研究所 袁春风

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁