计算机组成原理 [袁春风]chap3.ppt
《计算机组成原理 [袁春风]chap3.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理 [袁春风]chap3.ppt(64页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 袁春风 计算机组成原理 袁春风chap3 计算机 组成 原理 春风 chap3
限制150内