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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

19
南京大学计算机系 多媒体技术研究所 袁春风
3.3 定点加减运算
② “求负数补码”电路
[-B] 补 =?增加取反电路,再 加适当控制。 设:bi*=bi ⊕C0 ,则 C0 =0,则bi*=bi ,且做加法; Cn C0 =1,则bi*=bi ,且做减法。 因此, C0有两个作用: 功能控制:用于求反操作的启 动信号。 求负数的补码时,进行加1操作。
一个简单数据通路实例
一个四位数据通路芯片-AM2901A
现代计算机所用数据通路(流水线/超标量/...)
南京大学计算机系 多媒体技术研究所 袁春风
2
3.2 算术逻辑部件(ALU)
ALU(Arithmetic Logic Unit):
用来执行各种算术 和逻辑运算。 1位ALU 行波进位ALU 先行进位ALU ALU的核心是 加法器,以下 围绕加法器介绍
局部先行进位加法器
所有和数产生的延迟为:5+2+2+5=14ty
10
南京大学计算机系 多媒体技术研究所 袁春风
多级先行进位加法器
(3) 多级先行进位加法器
– 单级(局部)先行进位加法器的进位生成方式: “组内并行、组间串行” – 所以,单级先行进位加法器虽然比行波加法器延迟时间短, 但高位组进位依赖低位组进位,故仍有较长的时间延迟。 – 通过引入组进位生成/传递函数来实现“组内并行、组间也 并行”的进位生成方式。 设n=4,则:C1=G0+P0C0 C2=G1+P1C1=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部件。
11
南京大学计算机系 多媒体技术研究所 袁春风
两级先行进位加法器
12
南京大学计算机系 多媒体技术研究所 袁春风
先行进位ALU
(4) 快速先行进位ALU
–SN74181是国际流行的四位ALU芯片,是中规模集成电路。 它在原有先行进位加法器的基础上再附加部分线路,实 现了按位逻辑运算,因此具有基本的算术运算和逻辑运 算功能。 –SN74181的逻辑图和功能表 –SN74182是4位BCLA (成组先行进位)芯片。 用4个4位ALU芯片与1个4位BCLA芯片可构成16位ALU 用16个4位ALU芯片与4个4位BCLA芯片可构成64位ALU
8位全先行进位加法器
A7 A0 B7 B0 进位生成/传递部件 P7 P1 P0 G7 G1 G0
3ty
8位 CLA部件
C0
P1 C1 P0 C0
2ty
C8
P7 C7 求和部件 S7 S1 S0 和的总延迟:3+2+3=8ty;进位C8的延迟:3+2=5ty
9
3ty
南京大学计算机系 多媒体技术研究所 袁春风
南京大学计算机系 多媒体技术研究所 袁春风
16
3.3 定点加减运算
在补码系统内,n位补码加/减法的原则是: – 加法规则:两个n位数的补码相加,来自最高位的进位可 丢掉(取模)。所以可用一个无符号加法器生成各位的 和。 – 减法规则:一个数的补码与另一个负数的补码相加,其 和数就是这个数减去另一个数的绝对值的补码。即:求 两个数差的补码可用第一个数的补码加上另一数负数的 补码得到。 – 溢出规则:运算的结果必须考虑是否产生了溢出。若两 个同号数相加,其结果的符号与两个加数的符号不同, 则发生溢出。通常将“结果大于最大能表示的正数”称 为正溢出,而把“结果小于最小能表示的负数”称为负 溢出。
南京大学计算机系多媒体技术研究所袁春风33booth算法要点南京大学计算机系多媒体技术研究所袁春风34booth算法要点南京大学计算机系多媒体技术研究所袁春风35booth算法要点南京大学计算机系多媒体技术研究所袁春风36booth算法举例1南京大学计算机系多媒体技术研究所袁春风37booth算法举例2南京大学计算机系多媒体技术研究所袁春风3835定点除法运算计算机中的除法运算过程一般分为三个部分
N位补码加/减法器
和数S
C0
加法器
A
⊕ ⊕ ⊕
“求负数补码”的电 路20源自B南京大学计算机系 多媒体技术研究所 袁春风
3.3 定点加减运算
补码加/减法器判断溢出的方法:
方法1:“若两个同号数相加,其结果的符号与两个加数的符号不同, 则发生溢出。” OVR= an-1bn-1Sn-1+ an-1bn-1Sn-1 方法2:采用“变形补码”进行补码运算和溢出检测。 其结论为:“当结果的两个符号位不同时,发生溢出”。 溢出判断逻辑:OVR=Sn-1 ⊕ Sn 举例:采用8位加法器(即:n=8)用变形补码计算。 例1:x=+010101 y=+001001 ,x+y=? 00 010101 解:[x]补=00 010101 [y]补=00 001001 + 00 001001 [x+y]补=00 011110 00 011110 所以 x+y=+011110 例2:x=-011001 y=+000110 ,x-y=? 11 100111 解:[x]补=11 100111 [-y]补=11 111010 +11 111010 [x-y]补=11 100001 111 100001 所以 x-y=-011111
3.4.1 无符号数乘法
+
24
南京大学计算机系 多媒体技术研究所 袁春风
第一种乘法器如何工作
25
南京大学计算机系 多媒体技术研究所 袁春风
用加法+部分积右移实现乘法
假定: 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-n AB.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)
5
南京大学计算机系 多媒体技术研究所 袁春风
3.2.2 行波进位ALU
一个n位ALU可以由n个一位ALU串行构成。 这种ALU称为行波进位ALU(Ripple-Carry ALU)。
全加逻辑方程:(i=0,1,…n)
Si=ai⊕bi⊕Ci Ci+1=aibi+(ai+bi)Ci (延迟为2ty) 上述进位逻辑与下列逻辑等价。 Ci+1=aibi+(ai⊕bi)Ci (延迟为5ty) 下面是一个4位行波进位ALU。
13
南京大学计算机系 多媒体技术研究所 袁春风
SN74181的引脚
输入端 输出端
P
输入端:Ai和Bi分别为第一和第二操作数,Cn为低位进位,M为 功能选择线,Si为操作选择线。 输出端:Fi为运算结果,Cn+4、P和G为进位,“A=B”为相等标 志 14 南京大学计算机系 多媒体技术研究所 袁春风
第三章 运算器组织与运算方法
南京大学 计算机系 多媒体技术研究所 袁春风
1
3.1 运算器的基本组成
数据通路(运算器)的概念
运算器的基本功能是进行数据运算。ALU是其核心部件,是数据 加工中心,但加工数据需由寄存器供给,加工后的数据要移位, 对于双操作数和乘除运算还要提供联合移位功能,数据传送还要 有传送线路(即内部总线)等等,因此,CPU 中的运算部件除ALU 外,还必须有其他一些部件。这些部件总称为数据通路。 数据通路是指计算机的数据信息从一个部件传输到另一个部件所 经过的路径,连同路径上的设备。如:寄存器、暂存器、多路选 择器、移位器、加工部件等。
说明:因为资料来源不同,以下的运算符号用了两种不同的 表示方式,请不要混淆。特此说明。
3
南京大学计算机系 多媒体技术研究所 袁春风
ALU功能描述
4
南京大学计算机系 多媒体技术研究所 袁春风
全加器逻辑图
Gi=aibi Pi=ai⊕bi Si=ai⊕bi⊕Ci (延迟为6ty) Ci+1=aibi+(ai⊕bi)Ci (延迟为5ty)
SN74181和SN74182组成16位先行进位加法器
4位ALU
4位ALU
4位ALU
4位ALU
15
南京大学计算机系 多媒体技术研究所 袁春风
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
21
南京大学计算机系 多媒体技术研究所 袁春风
3.3 定点加减运算
举例:采用8位加法器(即:n=8)用变形补码计算。 例3:x=+101100(+44) y=+100101(+37) ,x+y=? 解:[x]补=00 101100 [y]补=00 100101 00 101100 [x+y]补=01 010001 (溢出) + 00 100101 第一符号是真符。说明和为正数。 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 (溢出) 11 010100 第一符号是真符。说明和为负数。 +11 011011 110 101111 “10”表示负溢出。 (-81< -64 (11 0000002) ) 两符相异,结果溢出
22
南京大学计算机系 多媒体技术研究所 袁春风
3.4 定点乘法运算
乘除运算的三种实现方案: – 采用软件实现乘、除运算 – 在原有数据通路的基础上增加一些硬件逻辑来 实现(加法器+移位器) – 设置专门的乘除法器,可加快运算速度。
这里主要讨论计算机实现乘除法运算的基本算 法及基本硬件配置。
23
南京大学计算机系 多媒体技术研究所 袁春风
6
南京大学计算机系 多媒体技术研究所 袁春风
4位行波进位ALU
和的所有位 全部产生的 延迟为:
(2n+1)ty
当n=4时, 为9ty ; 当n=8时, 为17ty。
7
南京大学计算机系 多媒体技术研究所 袁春风
3.2.3 先行进位ALU
(1)为什么用先行进位方式? 行波进位是串行逐级传递的,整个和的生成受到行波进位的影响。 因此,现代计算机采用一种先行进位(Carry look ahead)方式。 (2)如何产生先行进位? 定义两个辅助函数:Gi=aibi…进位生成 Pi=ai⊕bi…进位传递 通常把实现上述逻辑的电路称为进位生成/传递部件 全加逻辑方程:Si=Pi⊕Ci 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+P3P2P1G0+P3P2P1P0C0 由上式可知:各进位之间无等待,相互独立并同时产生。 通常把实现上述逻辑的电路称为4位CLA部件 由此,根据Si=Pi⊕Ci ,可并行求出各位和。 通常把实现Si=Pi⊕Ci的电路称为求和部件 CLA加法器由“进位生成/传递部件”、“CLA部件”和“求和部件” 构成。 8 南京大学计算机系 多媒体技术研究所 袁春风
(书上提的上溢和下溢的概念用于浮点数溢出,特此说明)
17
南京大学计算机系 多媒体技术研究所 袁春风
3.3 定点加减运算
2 补码加/减法器 由上述规则可知,补码加减法器只要在原无符 号加法器的基础上增加 “求负数补码”的电路和“溢出检查”电路。 ① 无符号加法器(可实现补码加法) 实现无符号数A和B相加, 和数S 考虑低位进位C0,生成和 Cn C0 数S和向高位的进位Cn。 加法器
前面介绍的行波加法器、先行进 位加法器等都是无符号加法器。
18
A
B
南京大学计算机系 多媒体技术研究所 袁春风
无符号加法器实现补码加法举例
设:A=11011,B=01001 则:A和B的值分别为-0101,+1001 A加B的值为:+0100 和数S 若用6位无符号加法器实现,则 A: 11011 Cn C0 加法器 B: 01001 A+B: 100100 A 即: 和数S=00100,进位C6=1 B 和数S的值为+0100(同A加B的值)
相关文档
最新文档