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

上传人:子 文档编号:51932147 上传时间:2018-08-17 格式:PPT 页数:64 大小:1.24MB
返回 下载 相关 举报
计算机组成原理 [袁春风]chap3_第1页
第1页 / 共64页
计算机组成原理 [袁春风]chap3_第2页
第2页 / 共64页
计算机组成原理 [袁春风]chap3_第3页
第3页 / 共64页
计算机组成原理 [袁春风]chap3_第4页
第4页 / 共64页
计算机组成原理 [袁春风]chap3_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《计算机组成原理 [袁春风]chap3》由会员分享,可在线阅读,更多相关《计算机组成原理 [袁春风]chap3(64页珍藏版)》请在金锄头文库上搜索。

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

2、代计算机所用数据通路(流水线/超标量 /.)3.1 运算器的基本组成23.2 算术逻辑部件(ALU)ALU(Arithmetic Logic Unit): 用来执行各种算术 和逻辑运算。u位ALUu行波进位ALUu先行进位ALU ALU的核心是 加法器,以下 围绕加法器介绍说明:因为资料来源不同,以下的运算符号用了两种不同的 表示方式,请不要混淆。特此说明。3ALU功能描述4全加器逻辑图Gi=aibi Pi=aibi Si=aibiCi (延迟为6ty) Ci+1=aibi+(aibi)Ci (延迟为5ty)5一个n位ALU可以由n个一位ALU串行构成 。这种ALU称为行波进位行波进位ALUA

3、LU(Ripple-Ripple- Carry ALUCarry ALU)。)。全加逻辑方程:(i=0,1,n)Si=aibiCiCi+1=aibi+(ai+bi)Ci (延迟为2ty)上述进位逻辑与下列逻辑等价。 Ci+1=aibi+(aibi)Ci (延迟为5ty)下面是一个4位行波进位ALU。 3.2.2 行波进位ALU64位行波进位ALU和的所有位 全部产生的 延迟为:(2n+1)ty当n=4时, 为9ty ;当n=8时, 为17ty。73.2.3 先行进位ALU(1)为什么用先行进位方式?行波进位是串行逐级传递的,整个和的生成受到行波进位的影响 。因此,现代计算机采用一种先行进位(C

4、arry 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+P1P0C0C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 C4=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0+P3P2P1P0C0由上式可知由上式可知: :各进位之间无等待,相互独立并同时产生。各进位之间无等待,相互独立并同时产生。通常

5、把实现上述逻辑的电路称为4位CLA部件由此,根据由此,根据S Si i=P=Pi iCCi i,可并行求出各位和。可并行求出各位和。通常把实现Si=PiCi的电路称为求和部件 CLA加法器由“进位生成/传递部件”、“CLA部件”和“求和部件 ”构成。88位全先行进位加法器进位生成/传递部件A7A0B7B0P7P1P0G7G1G08位 CLA部件C0求和部件P7P1P0C0C1C7C8S7S0S13ty2ty3ty和的总延迟:3+2+3=8ty;进位C8的延迟:3+2=5ty9局部先行进位加法器所有和数产生的延迟为:5+2+2+5=14ty10(3) 多级先行进位加法器 单级(局部)先行进位加法

6、器的进位生成方式: “组内并行、组间串行” 所以,单级先行进位加法器虽然比行波加法器延迟时间 短,但高位组进位依赖低位组进位,故仍有较长的时间 延迟。 通过引入组进位生成/传递函数来实现“组内并行、组间 也并行”的进位生成方式。设n=4,则:C1=G0+P0C0 C2=G1+P1C1=G1+P1G0+P1P0C0C3=G2+P2C2=G2+P2G1+P2P1G0+P2P1P0C0 G3*=G3+P3C3=G3+P3G2+P3P2G1+P3P2P1G0P3*=P3P2P1P0所以所以C4 =G3*+P3*C0。把实现上述逻辑的电路称为4位BCLA部件 。多级先行进位加法器11两级先行进位加法器1

7、2先行进位ALU(4) 快速先行进位ALU SN74181是国际流行的四位ALU芯片,是中规模集成电 路。它在原有先行进位加法器的基础上再附加部分线 路,实现了按位逻辑运算,因此具有基本的算术运算 和逻辑运算功能。 SN74181的逻辑图和功能表 SN74182是4位BCLA (成组先行进位)芯片。用4个4位ALU芯片与1个4位BCLA芯片可构成16位ALU 用16个4位ALU芯片与4个4位BCLA芯片可构成64位ALU13SN74181的引脚输入端:Ai和Bi分别为第一和第二操作数,Cn为低位进位,M为 功能选择线,Si为操作选择线。输出端:Fi为运算结果,Cn+4、P和G为进位,“A=B”

8、为相等标志P输入端输出端14SN74181和SN74182组成16位先行进位加法器4位ALU4位ALU4位ALU4位ALU153.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 2163.3 定点加减运算u在补码系

9、统内,n位补码加/减法的原则是: 加法规则:两个n位数的补码相加,来自最高位的进位 可丢掉(取模)。所以可用一个无符号加法器生成各 位的和。 减法规则:一个数的补码与另一个负数的补码相加, 其和数就是这个数减去另一个数的绝对值的补码。即 :求两个数差的补码可用第一个数的补码加上另一数 负数的补码得到。 溢出规则:运算的结果必须考虑是否产生了溢出。若 两个同号数相加,其结果的符号与两个加数的符号不 同,则发生溢出。通常将“结果大于最大能表示的正数 ”称为正溢出,而把“结果小于最小能表示的负数”称为 负溢出。(书上提的上溢和下溢的概念用于浮点数溢出,特此说 明)173.3 定点加减运算 2 补码加

10、/减法器 由上述规则可知,补码加减法器只要在原无 符号加法器的基础上增加 “求负数补码”的电路和“溢出检查”电路 。 无符号加法器(可实现补码加法)实现无符号数A和B相加,考虑低位进位C0,生成和数S和向高位的进位Cn。加法器ABC0Cn和数S前面介绍的行波加法器、先行进 位加法器等都是无符号加法器。18无符号加法器实现补码加法举例设:A=11011,B=01001 则:A和B的值分别为-0101,+1001A加B的值为:+0100 若用6位无符号加法器实现,则A: 11011B: 01001A+B: 100100即: 和数S=00100,进位C6=1和数S的值为+0100(同A加B的 值)加

11、法器ABC0Cn和数S193.3 定点加减运算 “求负数补码”电路-B补=?增加取反电路,再 加适当控制。设:bi*=bi C0 ,则 C0 =0,则bi*=bi ,且做加法 ;C0 =1,则bi*=bi ,且做减法 。 因此, C0有两个作用:u功能控制:用于求反操作的 启动信号。u求负数的补码时,进行加1操 作。B加法器AC0Cn和数SN位补码加/减法器“求负数补码”的电路203.3 定点加减运算v补码加/减法器判断溢出的方法: 方法1:“若两个同号数相加,其结果的符号与两个加数的符号不同 ,则发生溢出。” OVR= an-1bn-1Sn-1+ an-1bn-1Sn-1 方法2:采用“变形

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

13、11111 100001+213.3 定点加减运算举例:采用8位加法器(即:n=8)用变形补码计算。 例3:x=+101100(+44) y=+100101(+37) ,x+y=? 解:x补=00 101100 y补=00 100101x+y补=01 010001 (溢出)第一符号是真符。说明和为正数。“01”表示正溢出。 (+81 +63 (00 1111112) ) 例4:x=-101100 (-44) y=-100101 (-37) ,x+y=? 解:x补=11 010100 -y补=11 011011x+y补= 10 101111 (溢出)第一符号是真符。说明和为负数。“10”表示负溢

14、出。 (-810,则商上“1”,不需恢复余数,即:R Ri i+1+1=2R=2Ri i- -2 2n n|B|B|(由上式可知:“正,减”)省去了恢复余数的过程注意:注意:最后一次上商为“”的话,需要“纠余”处理, 即把试商时被减掉的除数加回去,恢复真正的余数。不恢复余数法也称为加减交替法443.5.3 有符号数除法l有符号数的除法 原码除法 o 商符和商值分开处理。商的数值部分由无 符号数除法求得;商符由被除数和除数的 符号确定:同号为“”,异号为“” 。 o 余数的符号同被除数的符号。 补码除法 o 方法1:先转换为正数,用无符号数除法 ,然后修正商和余数。 o 方法2:直接用补码除法。 45设 x原=1 0010 0110 y原=0 0111 求 x/y原,R原 解:-|y|补=1001 |x|=0010 0110A Q 上商 说明0010 01101001 试商,做减法1011 0110 0 0 不够减,商00111 做加法,恢复余数0010 01100100 1100 0 左移一位1001 试商,做减法 1101 1100 0 0 不够减,商00111 做加法,恢复余数0100 1100 0 1001 100 00 左移一位1001 试商,做减法0010 100 00 1 够减,商10101 00 0

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

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号