第2章 加法器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▲
并行进位的概念可用于16位加法器;进一步提高16 位加法器的运算速度。
Cm=Gm+PmC0
Cm表示4位加法器的进位输出,Pm表示4位加法器的 进位传递输出,Gm表示4位加法器的进位产生输出。 Pm 和Gm分别为: Pm= P4P3P2P1 Gm= G4 +P4 G3 + P4P3G2 +P4P3P2G1
• 输入信号Ai、Bi、C0是同时提供的,所有 的进位延迟时间都是2.5ty,因为进位信号 同时产生,所以称为同时进位或并行进位 CLA(Carry Look Ahead)。 • 把这种进位信号由逻辑线路产生,再送去 求和而构成的加法器,称为先行进位加法 器。
C4
C3
C2
C1
C0
பைடு நூலகம்
G4
P4 G3 P3 G2 先行进位产生电路
3.4 十进制加法器 • 在计算机中,处理十进制数有两种常用的 方法: • 一种是先将输入的十进制数转换为二进制 数,在计算机中进行二进制运算,再将运 算结果转换为十进制数。这种方法适用于 数据不太多而计算量大的场合。 • 另一种方法是采用BCD码进行十进制运算, 这种方法适用数据量多而计算较简单的场 合。目前许多通用计算机都采用第二种处 理方法。
• 3)专用寄存器 • 为了记录程序执行过程中的重要状态,还 要设置一些专用寄存器, • 如程序状态字PSW(Program Status Word); • 堆栈指针SP(Stack Pointer)等。 • 有些专业寄存器对程序员是透明的,用户 是不能访问的,如循环计数器。有些是对 程序员开放的,程序员可以通过指令使用 它。
P2 G1 P1
先行进位线路 F4 C4 G4 P4 FA C3
G3
F3 FA
P3
C2
G2 P2
F2 FA C1
G1 P1
F1 FA A1 B1
C0
A4 B4
A3 B3
A2 B2
4位先行进位加法器
• 理论上讲,这种先行进位加法器可以扩充到 n位字长,但是,当加法器位数增加时,进 位函数Ci+1会变得越来越复杂(n位字长的加 法器,最高进位位需要一个n+1位输入的或 门和n+1位输入的与门电路实现),这给电路 的实现带来了困难。
集成多功能算术/逻辑运算器 • 74181是一个四位的ALU中规模的集成电 路。图3-25是74181的逻辑符号图,表3-3 是在正逻辑下的功能表。 • 它能够对两个4位二进制代码A3A2A1A0 和B3B2B1B0进行16种算术运算(当M为 低电平时)和16种逻辑运算(当M为高电 平时),产生结果F3F2F1F0。这两类各 16种运算操作分别由S3S2S1S0四位输入 控制端来选择。 • /Cn是ALU的最低位进位输入,低电平有 效,即/Cn=L表示有进位输入。/Cn+4是 ALU进位输出信号。
A8 A7A6A5 B8B7B6B5
A4 A3A2A1B4B3B2B1
16位行波进位加法器
• 在这种结构中,由于组间进位C4、C8、 C12、C16仍然是串行产生的,最高进位 的产生时间为4×(2.5ty)=10ty。 • 采用这种结构,在大大地缩短了进位延迟 时间的同时兼顾了电路设计的复杂性。 • 如果还需要进一步提高速度,可以采用两 级先行进位结构。
3.5 定点运算器的组成 1)定点运算器的基本结构 • 不同的计算机其运算器的组成结构是不同的, 但一般都包含以下几部分。 1.算术逻辑运算单元ALU • 在计算机中,通常具体实现算术运算和逻辑 运算的部件称为算术逻辑运算单元 (Arithmetic and Logic Unit),简称ALU, 它是加法器、乘法器和逻辑运算器的集成, 是运算器的核心。ALU通常表示为两个输入 端,一个输出端和多个功能控制信号端的一 个逻辑符号。加法器是ALU的核心,是决定 ALU运算速度的主要因素。
• C1=G1+P1C0 • C2=G2+P2C1 = G2+P2(G1+P1C0) • C3= G3+P3C2 =G3+P3(G2+P2(G1+P1C0)) • C4=G4+P4C3 =G4+P4(G3+P3(G2+P2(G1+P1C0)))
展开整理得: C1=G1+P1C0 C2= G2+P2G1+ P2P1C0 C3= G3+P3G2+ P3P2G1+ P3P2P1C0 C4 =G4+P4G3+ P4P3G2+ P4P3P2G1+ P4P3P2P1C0 由以上公式可知,四个进位输出信号仅由进 位产生函数Gi、进位传递Pi、和最低进位C0 决定,与各自低位进位位无关。
• 2) 通用寄存器组 • 为了避免频繁地访问存储器,运算器中提 供了暂时存放参加运算的数据和中间结果 的单元,为此,在运算器内部设定若干通 用寄存器,构成通用寄存器组。通用寄存 器越多对提高运算器的性能和程序执行速 度越有利。通用寄存器组对用户是开放的, 用户可以通过指令去使用它。 • 在运算器中,用来提供一个操作数并存放 运算结果的通用寄存器称为累加器Acc (Accumulator)。累加器可以是一个, 也可以有多个。
• 在行波进位加法器中,进位信号的逻辑表 达式为: Ci= Gi+Pi Ci-1 • C1=G1+P1C0 • C2=G2+P2C1 • C3=G3+P3C2 • ………… • Cn=Gn+PnCn-1 可见,后一级的进位直接依赖前一级,进 位是逐级形成的,最长进位延迟时间为 2.5nty,与n成正比。可见,行波进位加法 器的加法速度比较低。
F16 F15 F14 F13 F12 F11 F10 F9 F8 F7 F6 F5 F4 F3 F2 F1
C16
4位CLA加法器
C12
4位CLA加法器
C8
4位CLA加法器
C4
4位CLA加法器
C0
A13B16 B13 A12 A11 A16 A15A14 B15 B14 A10A9 B10B9 B11 B12
移位寄存器A 移位寄存器B
Ai Bi Ci-1 Q D触发器 CLK D
FA
Si Ci
移位脉冲CP
图1 串行加法器框图
• 串行加法器每产生一位和串行地送入结 果寄存器中(通常用累加器,在图1中的 移位寄存器),进位信号则用一位D触发 器寄存并参与下一位运算。 • 由于要完成两个n位数的加法运算需要进 行n步的一位加法和n次的移位,速度太 慢,现代计算机几乎不再采用。
• 通常CPU工作的周期是以ALU的工作时间 为依据,加法器的延迟时间越长,CPU的 工作速度就越低,设法提高加法器的速度 就有着重要的意义。
(3)先行进位加法器 提高加法器的运算速度的关键是消除行波进位中的 进位逐位串行传播,让各位进位独立地同时形成。 下面以四位加法器为例,将进位信号用Gi、Pi表示 成以下形式:
应用于四个4位先行进位加法器,则有:
Cm1=Gm1+Pm1C0 Cm2=Gm2+Pm2Cm1 = Gm2+ Pm2Gm1 + Pm2 Pm1C0
Cm3=Gm3+Pm3Cm2 = Gm3+ Pm3Gm2 + Pm3Pm2Gm1+ Pm3 Pm2 Pm1C0
Cm4=Gm4+Pm4Cm3 = Gm4+ Pm4Gm3 + Pm4Pm3Gm2+ Pm4Pm3Pm2 Gm1+ Pm4Pm3Pm2P m1C0
组间由先行进位链构成的16位加法器
▲
可将并行进位的概念用于更大位数的加法器上,随 着加法器位数的增加,加法电路变得越来越复杂。
实现补码加减运算的逻辑电路
N位加法器FA FA→A A→FA B→FA
1→C0 B→FA
A
B
实现补码加减运算的逻辑电路
• 图中的FA代表加法器,A,B代表两个寄存 器,其功能是存放参加运算的数据的(补 码)。A寄存器还用来保存运算结果。 • A→FA、B→FA、/B→FA以及FA→A分别 表示送加法器两个输入端及运算结果回送A 的控制信号。 • 1→C0为加法器的最低进位信号。 • 假设参加运算的数已送到A、B寄存器。
• 4)附加的控制线路 运算器要求运算速度快,运算精度高。为 了达到这一目的,通常还在运算器中附加 一些控制线路。 i -i • 如:运算器中的乘2 或乘2 运算和某些逻 辑运算是通过移位操作来实现的。这通常 是在ALU的输出端设置移位线路来实现。 移位包括左移,右移和直送。移位线路也 是一个多路选择器。 • 定点运算器的组成
• C4 =G4+P4G3+ P4P3G2+ P4P3P2G1+ P4P3P2P1C0
• 通常的做法是在保证进位的快速性同时,
减少电路的复杂性,如以四位先行进位加法 器为一组,在组间分别采用串行进位或并行 进位。
(4)组间行波进位加法器 • 把4个先行进位加法器的组间按照图那样串 联起来,组成一个16位的行波进位加法器。 • 在各加法单元之间,进位信号是串行传送的, 而在加法单元内,进位信号是并行传送的
(1)串行进位加法器 • 将n个全加器的进位按照串行串联方法,从 低到高逐位依次连接起来就可以得到n位串 行进位加法器。 • 用这种方法组成的加法器,从最低位来的 进位信号是一位一位逐位串行向高位传播 的,所以又称为行波进位加法器。
n位串行进位加法器
(2)进位公式分析 Ci=AiBi+(Ai+Bi)Ci-1 令: Gi= AiBi Pi= Ai+Bi 其中Gi(Carry Generate Function)称为 全加器第i位的进位产生函数,其含义是若本位 两个输入均为1时,必向高位产生进位,与低 位进位无关,所以又称本位进位。 • Pi称为全加器第i位的进位传递函数 (Carry Propagate Function)。其含义是当 Pi=1时,若低位有进位,本位将产生进位, 也就说,Pi=1时,低位传送过来的进位能越 过本位向更高位传送。Pi又称进位传送条件。 • PiCi-1称为传送进位。
假设一级与非门(或非门)的延迟时间是1ty,与或非 门的延迟时间为1.5ty,产生进位Ci延时时间2.5ty。
与非门、或非门的功能完全性
(1)许多电路中常使用反相信号,因此,用 与非门实现比用与门实现更方便。 (2)当需要对反相信号操作时,使用与非 门或或非门仅需要一个门即可实现,而使用 与门或或门实现时,还需要再有一个非门。 (3)可用多输入与非门来实现多输入的与、 或、非运算;也可用或非门来实现与、或、 非门运算
第2 章 加法器
• 计算机要对各种信息进行加工和处理。 • 如对数值数据进行加、减、乘、除的数 值运算,对非数值数据进行与、或、非 的逻辑运算。 • 在计算机中必须有对数据进行处理的部 件,这个部件就是运算器。 • 目前,大多数计算机都将运算器和控制 器集成在一个芯片上,也就是我们常说 的CPU。
二进制加法器 1.半加器 • 两个一位二进制数相加(不考虑低位的进 位),称为半加。实现半加操作的电路称 为半加器。 • 半加器的真值表、逻辑图和逻辑符号。 2.全加器 • 在实现多位二进制数相加时,不仅考虑本 位,还要考虑低位来的进位,这种考虑低 位的进位加法运算就是全加运算, • 实现全加运算的电路称为全加器。
• 则当实现加法运算时,给出A→FA及B→FA 两个控制命令,则将[A]补和[B]补送到加法 器 FA 的两个输入端, FA 完成 [A] 补+ [B] 补 的加法过程,然后通过FA→A命令将加法运 算结果存入A寄存器。 • 如果实现减法运算,给出 A→FA 及 /B→FA 以及1→C0控制命令,则将[A]补和[-B]补送 到加法器FA的两个输入端,FA完成[A]补+ [-B]补的加法过程,然后通过 FA→A命令将 减法运算结果存入A寄存器。
3.2 并行加法器 • 并行加法器的全加器个数和操作数位数相同, 能同时对所有位求和。 • 下面讨论组成n位并行加法器的几种方法, 主要讨论并行加法器采用的几种进位结构和 不同的进位结构对运算速度的影响。 • 在这些结构中,最基本的是串行进位和并行 进位。在此基础上可将整个加法器分组、分 级,对组内、组间、级间分别采用串行和并 行进位。
• 全加器真值表、逻辑图和逻辑符号 • 一位全加器只能实现一位二进制数的加法, 另外门电路都有延迟,这个延迟影响了整 个加法器的运算速度。
3.加法器 • 一位全加器只能实现一位二进制数的加法,要 实现n位数相加就要组成加法器,最基本的就 是串行加法器和并行加法器。 3.1 串行加法器 • 如果n位字长的加法器仅有一位全加器,使用 移位寄存器从低位到高位串行地提供操作数, 分n步进行相加,叫串行加法器。