还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
计算机组成原理第八章定点运算器的组成和结构
1.算术逻辑单元(简称ALU)• 针对每一种算术运算,都必须有一个相对应的基本硬件配置,其核心部件是加法器和寄存器当需完成逻辑运算时,势必需要配置相应的逻辑电路,而ALU电路是既能完成算术运算又能完成逻辑运算的部件
一、ALU电路 下图是ALU框图图中Ai和Bi为输入变量;Ki为控制信号,Ki的不同取值可决定该电路作哪一种算术运算或哪一种逻辑运算;Fi是输出函数 现在ALU电路已制成集成电路芯片,如74181是能完成四位二进制代码的算逻运算部件ALU是一种功能较强的组合逻辑电路它能进行多种算术运算和逻辑运算ALU的基本逻辑结构是超前进位加法器,它通过改变加法器的进位产生函数G和进位传递函数P来获得多种运算能力
二、快速进位链随着操作数位数的增加,电路中进位的速度对运算时间的影响也越大,为了提高运算速度,本节将通过对进位过程的分析设计快速进位链引例简单串行级联的4位全加器如下图所示将4个全加器相连可得4位加法器(图
2.7但其加法时间长这是因为其位间进位是串行传送的本位全加和Fi必须等低位进位Ci-1来到后才能进行,加法时间与位数有关只有改变进位逐位传送的路径,才能提高加法器工作速度解决办法之一是采用“超前进位产生电路”来同时形成各位进位,从而实行快速加法我们称这种加法器为超前进位加法器根据各位进位的形成条件,可分别写出Ci的逻辑表达式C1=X1Y1+X1+Y1C0=G1+P1C0其中:Gi=Xi·Yi称为进位产生函数Pi=Xi+Yi称为进位传递函数Gi的意义是当XiYi均为“1”时定会产生向高位的进位Pi的意义是当Xi和Yi中有一个为“1”时,若同时低位有进位输入则本位也将向高位传送进位写成通用式为C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P1C0=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0当全加器的输入均取反码时,它的输出也均取反码(应用反演律采用与非、或非、与或非表示)将上式改写成如下根据上式可画得“超前进位产生电路”及四位超前进位加法器的逻辑图如下图
2.8基本思想----------由全加器扩展开来:Fi=Ai⊕Bi⊕CiCi+1=AiBi+BiCi+CiAi加入控制参数s0~s3对输入进行控制.此时全加器的输入变为XiYi一位全加器FA的逻辑表达式为
1.逻辑表达式下图为控制参数s0~s3与输入量的关系:S0S1YiS2S3Xi00~Ai00101~AiBi01~Ai+~Bi10~Ai~Bi10~Ai+Bi11011~Ai由上表可得XiYi的逻辑表达式化简后为Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1Bi故:XiYi=Yi代入进位表达式简化为:Cn+i+1=Yi+XiCn+i综上所述:ALU的某一位逻辑表达式可写为:Xi=S3AiBi+S2AiBiYi=Ai+S0Bi+S1BiFi=Yi⊕Xi⊕Cn+ICn+i+1=Yi+XiCn+I4位之间采用先行进位则由上式每一位的进位公式可递推如下:第0位向第一位的进位:Cn+1=Y0+X0Cn第1位向第2位的进位:Cn+2=Y1+X1Cn+1=Y1+Y0X1+X0X1Cn第2位向第3位的进位:Cn+3=Y2+X2Cn+2=Y2+Y1X1+Y0X1X2+X0X1X2Cn第3位向第4位的进位:Cn+4=Y3+Y2X3+Y1X2X3+Y0X1X2X3+X0X1X2X3Cn设:G=Y3+Y2X3+Y1X2X3+Y0X1X2X3P=X0X1X2X3故:Cn+4=G+PCn这样对一片ALU来说可有三个进位输也其中G称为进位发生输出P称为进位传送输出.在电路中多加这两个进位输出的目的是为了便于实现多片ALU之间的先行进位.第0位的进位输入Cn可以直接传到最高位上去从而实高速运算.下面通过介绍SN74181型四位ALU中规模集成电路了介绍ALU的原理•它能执行16种算术运算和16种逻辑运算,M是状态控制端,M=H执行逻辑运算;M=L执行算术运算S0~S3是运算选择端,它决定电路执行哪种算术运算或逻辑运算以正逻辑为例,B3~B0和A3~A0是两个操作数,F3~F0为输出结果C-l表示最低位的外来进位,Cn+4是7418l向高位的进位;P、G可供先行进位使用M用于区别算术运算还是逻辑运算;S3~S0的不同取值可实现不同的运算例如,当M=1,S3~S0=0110时,74181作逻辑运算A⊕B;当M=0,S3~S0=0110时,74181作算术运算由上表可见,在正逻辑条件下,M=0,S3~S0=0110,且C-l=1时,完成A减B减1的操作若想完成A减B运算,可使C-l=0需注意,74181算术运算是用补码实现的,其中减数的反码是由内部电路形成的,而末位加“1”,则通过C-l=0来体现尤其要注意的是,ALU为组合逻辑电路,因此实际应用ALU时,其输入端口A和B必须与锁存器相连,而且在运算的过程中锁存器的内容是不变的其输出也必须送至寄存器中保存其引脚图如下:74181ALU设置了P和G两个本组先行进位输出端如果将四片74181的PG端送到74181先行进位部件CLA又可实现第二级的先行进即组与组间的先行进位.假设4片74181的先行进位输出依次为P0G0P1G1P2G2P3G3那么先行进位部件74182CLA所提供的进位逻辑关系如下:Cn+1=G0+P0CnCn+2=G1+P1Cn+1=G1+G0P1+P0P1CnCn+3=G2+P2Cn+2=G2+G1P2+G0P1P2+P0P1P2CnCn+4=G3+P3Cn+3=G3+G2P3+G1P1P2+G0P1P2P3+P0P1P2P3Cn其中:P*=P0P1P2P3G*=G3+G2P3+G1P1P2+G0P1P2P3由上述表达式用TTL器件实现的成组先行进位部件74182的逻辑电路图如下:下面介绍如何用若干74181ALU位片与74182先行进位部件CLA一起构与一个全字长16位的ALU:用两个16位全先行进位部件
(74182)和八个74181可级连组成的32位ALU电路用四个16位全先行进位部件
(74182)和十六个74181可级连组成的64位ALU电路由于集成器件的集成度的提高,允许更多位的ALU集成在一个芯片内例如AMD公司的AM29332为32位ALU而在Intel公司的Pentium处理器中,32位ALU仅是芯片内的一部分电路尽管器件不同,但基本电路原理还是相似的
2、定点运算器的基本结构内部总线------CPU内部各部件间的连线外部总线------即系统总线CPU与存储器I/O系统之间的连线.运算器:包括ALU阵列乘法器寄存器多路开关三态缓冲器数据总线等逻辑部件.计算机的运算器大体有以下三种结构:单总线结构比较双总线结构三总线结构
3、算术逻辑单元(补充)快速进位链 1.并行加法器 并行加法器由若干个全加器组成,如下图所示n+1个全加器级联,就组成了一个n+1位的并行加法器 由于每位全加器的进位输出是高一位全加器的进位输入,因此当全加器有进位时,这种一级一级传递进位的过程,将会大大影响运算速度 由全加器的逻辑表达式可知和进位 可见,Ci进位有两部分组成本地进位AiBi,可记作di,与低位无关;传递进位,与低位有关;可称为传递条件,记作ti则 由Ci的组成可以将逐级传递进位的结构,转换为以进位链的方式实现快速进位目前进位链通常采用串行和并行两种 2.串行进位链 串行进位链是指并行加法器中的进位信号采用串行传递 以四位并行加法器为例,每一位的进位表达式可示为 由上式可见,采用与非逻辑电路可方便地实现进位传递,如下图所示 若设与非门的级延迟时间为ty,那么当di、ti形成后,共需8ty使可产生最高位的进位实际上每增加一位全加器,进位时间就会增加2tyn位全加器的最长进位时间为2nty 3.并行进位链 并行进位链是指并行加法器中的进位信号是同时产生的,又称先行进位、跳跃进位等理想的并行进位链是n位全加器的n位进位同时产生,但实际实现有困难;通常并行进位链有单重分组和双重分组两种实现方案 1单重分组跳跃进位单重分组跳跃进位就是将M位全加器分成若干小组,小组内的进位同时产生,小组与小组之间采用串行进位,这种进位又有组内并行、组间串行之称 以四位并行加法器为例,对其进位表示式稍作变换,便可获得并行进位表达式 可得与其对应的逻辑图如下图所示 设与或非门的级延迟时间为
1.5ty,如与非门的级延迟时间仍为1ty,则di、ti形成后,只需
2.5ty就可产生全部进位 如果将16位的全加器按四位一组分组,便可得单重分组跳跃进位链框图,如下图所示 不难理解在di、ti形成后,经
2.5ty可产生C
3、C
2、C
3、C3四个进位信息,经10ty就可产生全部进位,而n=16的串行进位链的全部进位时间为32ty,可见单重分组方案进位时间仅为串行进位链的三分之一 但随着n的增大,其优势便很快减弱,如当n=64时,按4位分组,共为16组,组间有16位串行进位,在di、ti形成后,还需经40ty才能产生全部进位,显然进位时间太长如果能使组间进位也同时产生,必然会更大地提高进位速度,这就是组内、组间均为并行进位的方案 2双重分组跳跃进位双重分组跳跃进位就是将n位全加器分成几个大组,每个大组又包含几个小组,而每个大组内所包含的各个小组的最高位进位是同时形成的,大组与大组间采用串行进位因各小组最高位进位是同时形成的,小组内的其他进位也是同时形成的(注意两小组内的其他进位与小组的最高位进位并不是同时产生的),故又有组小组内并行、组小组间并行之称下图是一个32位并行加法器双重分组跳跃进位链的框图 图中共分两大组,每个大组内包含4个小组,第一大组内的4个小组的最高位进位C
31、C
27、C
23、C19是同时产生的;第二大组内4个小组的最高位进位C
15、C
11、C
7、C3也是同时产生的,而第二大组向第一大组的进位C15采用串行进位方式 以第二大组为例,分析各进位的逻辑关系 例写出第八小组的最高位进位表达式 式中仅与本小组内的di、ti有关,不依赖外来进C-l,故称D8为第八小组的本地进位是将低位进位C-1传到高位小组的条件,故称T8为第八小组的传送条件 同理可写出第
五、
六、七小组的最高位进位表达式 第七小组 第六小组 第五小组 进一步展开又得 可得大组跳跃进位链,如下图所示 由图可见,当Di、Tii=5~8及外来进位C-1形成后,再经过
2.5ty便可同时产生Cl
5、C11,C
7、C3至于Di和Ti它们都是由小组产生的,按其逻辑表达式可画出相应的电路如下图所示 可见,每小组可产生本小组的本地进位Di和传送条件Ti以及组内的各低位进位,但不能产生组内最高位进位,即 第五组形成D
5、T
5、C
14、C
13、C12,不产生C15; 第六组形成D
6、T
6、C
10、C
9、C8,不产生C11; 第七组形成D
7、T
7、C
6、C
5、C4,不产生C7; 第八组形成D
8、T
8、C
2、C
1、C0不产生C3 用上两种类型的线路可构成16位加法器的双重分组跳跃进位链框图,如下图所示 由此可计算出从Di、Ti、及C-1外来进位形成后开始,经
2.5Ty形成C
2、C
1、C0和全部Di、Ti;再经
2.5Ty形成大组内的四个进位Cl
5、Cl
1、C
7、C3;再经过
2.5Ty形成第
五、
六、七小组的其余进位Cl
4、C
13、C
12、C
10、C
9、C
8、C
6、C
5、C4,可见,按双重分组设计n=16的进位链,最长进位时间为
7.5Ty,比单重分组进位链又省了
2.5Ty随着n的增大,双重分组的优越性显得格外突出 机器究竟采用哪种方案,每个小组内应包含几位,应根据运算速度指标及所选元件等诸方面团素综合考虑 由上述分析可知,Di和Ti均是由小组进位链产生的,它们与低位进位无关而Di和Ti又是大组进位链的输入,因此,引入Di和Ti可采用双重分组进位链,大大提高了运算速度 74181芯片是4位ALU电路,其四位进位是同时产生的,多片74181级联就犹如本节介绍的单重分组跳跃进位,即组内74181片内并行,组间74181片间串行74181芯片的G、P输出就如本节介绍的D、T当需要进一步提高进位速度时,将74181与74182芯片配合,就可组成双重分组跳跃进位链,如下图所示 图中74182为先行进位部件,两片74182和8片74181组成32位ALU电路,该电路采用双重分组先行进位方案,在此图中74182还提供了大组的本地进位G和大组的传送条件P。