计算机组成原理 [袁风]chap3.ppt
《计算机组成原理 [袁风]chap3.ppt》由会员分享,可在线阅读,更多相关《计算机组成原理 [袁风]chap3.ppt(64页珍藏版)》请在三一办公上搜索。
1、1,第三章 运算器组织与运算方法,南京大学 计算机系多媒体技术研究所袁春风,南京大学计算机系 多媒体技术研究所 袁春风,2,数据通路(运算器)的概念 运算器的基本功能是进行数据运算。ALU是其核心部件,是数据加工中心,但加工数据需由寄存器供给,加工后的数据要移位,对于双操作数和乘除运算还要提供联合移位功能,数据传送还要有传送线路(即内部总线)等等,因此,CPU 中的运算部件除ALU外,还必须有其他一些部件。这些部件总称为数据通路。数据通路是指计算机的数据信息从一个部件传输到另一个部件所经过的路径,连同路径上的设备。如:寄存器、暂存器、多路选择器、移位器、加工部件等。一个简单数据通路实例 一个四
2、位数据通路芯片-AM2901A现代计算机所用数据通路(流水线/超标量/.),3.1 运算器的基本组成,南京大学计算机系 多媒体技术研究所 袁春风,3,3.2 算术逻辑部件(ALU),ALU(Arithmetic Logic Unit):用来执行各种算术和逻辑运算。位ALU行波进位ALU先行进位ALUALU的核心是加法器,以下围绕加法器介绍,说明:因为资料来源不同,以下的运算符号用了两种不同的表示方式,请不要混淆。特此说明。,南京大学计算机系 多媒体技术研究所 袁春风,4,ALU功能描述,南京大学计算机系 多媒体技术研究所 袁春风,5,全加器逻辑图,Gi=aibi Pi=aibiSi=aibiC
3、i(延迟为6ty)Ci+1=aibi+(aibi)Ci(延迟为5ty),南京大学计算机系 多媒体技术研究所 袁春风,6,一个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 行波进位ALU,南京大学计算机系 多媒体技术研究所 袁春风,7,4位行波进位ALU,和的所有位全部产生的延迟为:(2n+1)ty当n=4时,
4、为9ty;当n=8时,为17ty。,南京大学计算机系 多媒体技术研究所 袁春风,8,3.2.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+P
5、2G1+P2P1G0+P2P1P0C0 C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0 由上式可知:各进位之间无等待,相互独立并同时产生。通常把实现上述逻辑的电路称为4位CLA部件 由此,根据Si=PiCi,可并行求出各位和。通常把实现Si=PiCi的电路称为求和部件CLA加法器由“进位生成/传递部件”、“CLA部件”和“求和部件”构成。,南京大学计算机系 多媒体技术研究所 袁春风,9,8位全先行进位加法器,进位生成/传递部件,A7,A0,B7,B0,P7,P1,P0,G7,G1,G0,8位 CLA部件,C0,求和部件,P7,P1,P0,C0,C1,
6、C7,C8,S7,S0,S1,3ty,2ty,3ty,和的总延迟:3+2+3=8ty;进位C8的延迟:3+2=5ty,南京大学计算机系 多媒体技术研究所 袁春风,10,局部先行进位加法器,所有和数产生的延迟为:5+2+2+5=14ty,南京大学计算机系 多媒体技术研究所 袁春风,11,(3)多级先行进位加法器单级(局部)先行进位加法器的进位生成方式:“组内并行、组间串行”所以,单级先行进位加法器虽然比行波加法器延迟时间短,但高位组进位依赖低位组进位,故仍有较长的时间延迟。通过引入组进位生成/传递函数来实现“组内并行、组间也并行”的进位生成方式。设n=4,则:C1=G0+P0C0 C2=G1+P
7、1C1=G1+P1G0+P1P0C0 C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 G3*=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0 P3*=P3P2P1P0 所以C4=G3*+P3*C0。把实现上述逻辑的电路称为4位BCLA部件。,多级先行进位加法器,南京大学计算机系 多媒体技术研究所 袁春风,12,两级先行进位加法器,南京大学计算机系 多媒体技术研究所 袁春风,13,先行进位ALU,(4)快速先行进位ALU SN74181是国际流行的四位ALU芯片,是中规模集成电路。它在原有先行进位加法器的基础上再附加部分线路,实现了按位逻辑运算,因此具有基本
8、的算术运算和逻辑运算功能。SN74181的逻辑图和功能表SN74182是4位BCLA(成组先行进位)芯片。用4个4位ALU芯片与1个4位BCLA芯片可构成16位ALU 用16个4位ALU芯片与4个4位BCLA芯片可构成64位ALU,南京大学计算机系 多媒体技术研究所 袁春风,14,SN74181的引脚,输入端:Ai和Bi分别为第一和第二操作数,Cn为低位进位,M为功能选择线,Si为操作选择线。输出端:Fi为运算结果,Cn+4、P和G为进位,“A=B”为相等标志,P,输入端,输出端,南京大学计算机系 多媒体技术研究所 袁春风,15,SN74181和SN74182组成16位先行进位加法器,4位AL
9、U,4位ALU,4位ALU,4位ALU,南京大学计算机系 多媒体技术研究所 袁春风,16,3.3 定点加、减运算,计算机内的加减运算一般用补码实现1.补码定点加减法规则假设A、B是带符号的n位二进制定点整数,其补码形式为:A补=an-1 an-2 a0,B 补=bn-1 bn-2 b0,则,A+B补和A-B补的运算表达式为:对于整数:A+B补=(A补+B 补)MOD 2n A-B补=(A补+-B 补)MOD 2n对于小数:A+B补=(A补+B 补)MOD 2 A-B补=(A补+-B 补)MOD 2,南京大学计算机系 多媒体技术研究所 袁春风,17,3.3 定点加减运算,在补码系统内,n位补码加
10、/减法的原则是:加法规则:两个n位数的补码相加,来自最高位的进位可丢掉(取模)。所以可用一个无符号加法器生成各位的和。减法规则:一个数的补码与另一个负数的补码相加,其和数就是这个数减去另一个数的绝对值的补码。即:求两个数差的补码可用第一个数的补码加上另一数负数的补码得到。溢出规则:运算的结果必须考虑是否产生了溢出。若两个同号数相加,其结果的符号与两个加数的符号不同,则发生溢出。通常将“结果大于最大能表示的正数”称为正溢出,而把“结果小于最小能表示的负数”称为负溢出。(书上提的上溢和下溢的概念用于浮点数溢出,特此说明),南京大学计算机系 多媒体技术研究所 袁春风,18,3.3 定点加减运算,2
11、补码加/减法器由上述规则可知,补码加减法器只要在原无符号加法器的基础上增加“求负数补码”的电路和“溢出检查”电路。无符号加法器(可实现补码加法)实现无符号数A和B相加,考虑低位进位C0,生成和 数S和向高位的进位Cn。,前面介绍的行波加法器、先行进位加法器等都是无符号加法器。,南京大学计算机系 多媒体技术研究所 袁春风,19,无符号加法器实现补码加法举例,设:A=11011,B=01001则:A和B的值分别为-0101,+1001 A加B的值为:+0100若用6位无符号加法器实现,则 A:11011 B:01001 A+B:100100 即:和数S=00100,进位C6=1 和数S的值为+01
12、00(同A加B的值),南京大学计算机系 多媒体技术研究所 袁春风,20,3.3 定点加减运算,“求负数补码”电路-B补=?增加取反电路,再加适当控制。设:bi*=bi C0,则 C0=0,则bi*=bi,且做加法;C0=1,则bi*=bi,且做减法。因此,C0有两个作用:功能控制:用于求反操作的启动信号。求负数的补码时,进行加1操作。,B,加法器,A,C0,Cn,和数S,N位补码加/减法器,“求负数补码”的电路,南京大学计算机系 多媒体技术研究所 袁春风,21,3.3 定点加减运算,补码加/减法器判断溢出的方法:方法1:“若两个同号数相加,其结果的符号与两个加数的符号不同,则发生溢出。”OVR
13、=an-1bn-1Sn-1+an-1bn-1Sn-1方法2:采用“变形补码”进行补码运算和溢出检测。其结论为:“当结果的两个符号位不同时,发生溢出”。溢出判断逻辑: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=-011111,00 001001,
14、00 010101,00 011110,11 111010,11 100111,111 100001,+,+,南京大学计算机系 多媒体技术研究所 袁春风,22,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补=1
15、1 011011 x+y补=10 101111(溢出)第一符号是真符。说明和为负数。“10”表示负溢出。(-81-64(11 0000002)),00 101100,00 100101,01 010001,11 011011,11 010100,110 101111,+,+,两符相异,结果溢出,两符相异,结果溢出,南京大学计算机系 多媒体技术研究所 袁春风,23,3.4 定点乘法运算,乘除运算的三种实现方案:采用软件实现乘、除运算在原有数据通路的基础上增加一些硬件逻辑来实现(加法器+移位器)设置专门的乘除法器,可加快运算速度。这里主要讨论计算机实现乘除法运算的基本算法及基本硬件配置。,南京大学
16、计算机系 多媒体技术研究所 袁春风,24,3.4.1 无符号数乘法,+,南京大学计算机系 多媒体技术研究所 袁春风,25,第一种乘法器如何工作,南京大学计算机系 多媒体技术研究所 袁春风,26,用加法部分积右移实现乘法,假定: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
17、-1)Pi被称为部分积展开后,得:P-1=0 P0=2-1(Ab0+P-1)Pn-1=2-1(Abn-1+Pn-2)所以,乘法操作可分解为:加法右移,南京大学计算机系 多媒体技术研究所 袁春风,27,第三种乘法硬件,南京大学计算机系 多媒体技术研究所 袁春风,28,第3种乘法算法,南京大学计算机系 多媒体技术研究所 袁春风,29,3.4.2 有符号数乘法,定点有符号数乘法原码乘法将符号与数值分开处理积符用两个乘数的符号异或得到数值部分用无符号乘法运算补码乘法方法1:两数都变成正数,用无符号乘法运算,最后根 据两个乘数是否异号确定是否对结果取负。方法2:用Booth乘法,其速度更快。(符号位和数
18、值位可一起参加运算),南京大学计算机系 多媒体技术研究所 袁春风,30,1.原码乘法,设:设A和B是两个原码表示,A=asA B=bsB,其中as、bs为数A和B的符号位,A、B为数值则:积符ps=asbs 积的绝对值P=A.B 乘积P=ps P=ps(A.B)求 P=A.B(用无符号乘法),南京大学计算机系 多媒体技术研究所 袁春风,31,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时
19、,A=-a31.231+a30.230+a1.21+a0.20,a30.231-a30.230,南京大学计算机系 多媒体技术研究所 袁春风,32,Booth乘法算法推导,部分积:Pi=2-1(ai-1-ai)b+Pi-1),南京大学计算机系 多媒体技术研究所 袁春风,33,Booth算法要点,南京大学计算机系 多媒体技术研究所 袁春风,34,Booth算法要点,中,南京大学计算机系 多媒体技术研究所 袁春风,35,Booth算法要点,南京大学计算机系 多媒体技术研究所 袁春风,36,Booth算法举例1,南京大学计算机系 多媒体技术研究所 袁春风,37,Booth算法举例2,南京大学计算机系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 袁风 计算机组成原理 袁风chap3 计算机 组成 原理 chap3
链接地址:https://www.31ppt.com/p-2214554.html