第6章计算机组成原理_第1页
第6章计算机组成原理_第2页
第6章计算机组成原理_第3页
第6章计算机组成原理_第4页
第6章计算机组成原理_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章

CPU的功能与结构本章导读本章对CPU的情况进行整体说明,首先介绍CPU的功能和基本组成结构,其中包括CPU的内部结构框图,内部寄存器结构,中断情况和CPU内的数据通路结构。然后对CPU的外部特性进行介绍,并举例说明CPU的引脚情况与功能定义。本章要点CPU的功能CPU的基本结构数据通路的功能数据通路的基本结构6.1CPU的功能中央处理器(CPU)是计算机系统的核心组成部件,它包括运算器和控制器两大部分。在早期的计算机中,器件集成度低,运算器与控制器是两个相对独立的部分。随着大规模、超大规模集成电路技术的发展,逐渐趋向于将CPU作为一个整体。在微型计算机中,已将CPU集成为一块芯片,称为微处理器。计算机能自动执行存放在主存中的程序。程序是指令的有序集合,计算机每执行一段程序,就可完成一定的功能。具体执行过程是:计算机从主存中取出一条指令,按指令操作码及指令中的其他有关信息执行以实现指令所要求的功能,然后按顺序递增或转移指令要求的目的地址,从主存中取出下一条指令……重复上述过程,直至停机指令为止。中央处理器就是专门用于完成上述功能的计算机部件。CPU在计算机系统的运行中起着重要的作用,它具有如下四个方面的基本功能。(1)指令控制,即控制指令的执行顺序。CPU必须对指令的执行顺序进行控制,正确产生下一条指令在内存中的地址,以保证指令序列正确执行。(2)操作控制,即指令内操作信号的控制。一条指令的功能一般需要若干个操作信号的组合来实现,因此,CPU必须管理并产生由内存取出的每条指令所要求的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。(3)时间控制,计算机中各指令的操作信号均受时间的严格定时,一条指令的整个执行过程也受到时间限制。而CPU对各种操作实施时间上的定时,就称为时间控制。(4)数据加工,即对数据进行算术和逻辑运算,完成加工处理,这是CPU的根本任务。另外,CPU通常还要求能实现异常处理,如运算中的溢出等错误情况处理,以及处理外部设备的服务请求等。这些功能归纳起来实质上只有两个:一是执行程序,完成某一任务;二是对异常的处理。执行程序即一条条执行指令。异常处理由中断机构完成,最终也要执行指令,所以处理指令和中断是中央处理机的最本质特点。6.2CPU的基本结构6.2.1CPU的结构框图6.2.2CPU的寄存器结构6.2.3控制单元与中断系统6.2.4CPU内部数据通路6.2.1CPU的结构框图根据CPU的功能不难设想,要处理指令,CPU内就要有一个寄存器存放指令的地址以找到指令并实现取指令,还要有控制部件能分析指令的功能并发出指令需要的操作控制信号,还要有相应的算术逻辑运算部件ALU完成具体的运算。要处理异常情况和特殊请求,就必须有中断系统。可见,CPU可由四大部分组成。图6-1CPU内部结构框图在图6-1中,考虑到CPU内部各部件间有数据信息的传送,所以也画出了内部的数据总线。其中ALU部分的内容已在第3章作了详细说明,在此,我们用图6-2来表示基本的运算器部件结构。图6-2基本的运算部件结构基本运算部件包括ALU、多路选择器和移位器。沿数据流向,大致分为三级:第一级为多路选择器,决定哪一种数据送往ALU;第二级为ALU,由功能选择命令选择ALU完成的运算功能;第三级是移位器,由输出选择对输出结果进行移位控制。6.2.2CPU的寄存器结构CPU中的寄存器大致可分两类:一类属用户可见寄存器,用户可对这类寄存器编程使用,或通过优化使CPU因使用这类寄存器而减少对主存的访问次数;另一类属控制和状态寄存器,用户不可对这类寄存器编程,它们被控制部件使用,以控制CPU的操作,也可被带有特权的操作系统程序使用,从而控制程序的执行。1、用户可见寄存器通常CPU执行机器语言访问的寄存器为用户可见寄存器,按其特征又可分为以下几类:(1)通用寄存器通用寄存器可由程序设计者指定许多功能,可用于存放操作数,也可作为满足某种寻址方式所需的寄存器。(2)数据寄存器数据寄存器用于存放操作数,其位数应满足多数数据类型的数值范围,有些机器允许使用两个连续的寄存器存放双倍字长的值。还有些机器的数据寄存器只能用于保存数据,不能用于操作数地址的计算。(3)地址寄存器地址寄存器用于存放地址,其本身可以具有通用性,也可用于特殊的寻址方式。地址寄存器的位数必须足够长,以满足足够大的寻址范围。(4)条件代码寄存器这类寄存器中存放条件码,它们对用户来说是部分透明的。条件码是CPU根据运算结果由硬件设置的位,常用的有N、Z、V、C等。条件码可被测试,作为分支运算的依据。此外,有些条件码可被直接置位或复位。2、控制和状态寄存器CPU中还有一类寄存器用于控制CPU的操作或运算。在一些机器里,大部分这类寄存器对应用程序员是透明的。如以下四种寄存器在指令执行过程中起重要作用。MAR:存储器地址寄存器,用于存放将被访问的存储单元的地址。MDR:存储器数据寄存器,用于存放欲存入存储器中的数据或最近从存储器中读出的数据。PC:程序计数器,存放欲执行的指令的地址,通常具有计数功能。当遇到转移类指令时,PC的值可被修改。IR:指令寄存器,存放当前欲执行的指令。通过这四个寄存器,CPU可以和主存交换信息。例如,将下一条指令的地址从PC送至MAR,启动存储器作读操作,存储器就可将指定地址单元内的指令读至MDR,再由MDR送至IR。3、寄存器结构举例(1)8086的寄存器组织8086是Intel公司的16位微处理器,它内部包含有4组16位寄存器,它们是通用寄存器组、指针和变址寄存器组、段寄存器组、指令指针及标志位寄存器。如图6-3所示。图6-38086CPU的寄存器组通用寄存器组是AX,BX,CX和DX,用以存放16位数据或地址。也可分成8个8位寄存器来使用,低8位是AL,BL,CL和DL,高8位是AH,BH,CH和DH,此时只能存放8位数据,不能存放地址。为了缩短指令代码的长度,在8086中,某些通用寄存器用作专门用途。如AX作累加器,CX在串指令中作计数寄存器等。指针和变址寄存器包括基址指针寄存器BP,堆栈指针寄存器SP,源变址寄存器SI,目的变址寄存器DI。这组寄存器存放的内容通常是某一段内地址偏移量,用来形成操作数地址,主要在堆栈操作和变址运算中使用。8086CPU可直接寻址1MB的存储器空间,直接寻址需要20位地址码,而所有内部寄存器都是16位的,只能直接寻址64KB,因此对存储器采用分段技术来解决此问题。系统将1MB的存储空间分成若干逻辑段,每段最长64KB,然后设置了4个16位的段寄存器,由它们给出相应逻辑段的首地址(高16位),称为“段基址”,与段内偏移地址组合形成20位物理地址。这些段寄存器是代码段寄存器CS,数据段寄存器DS,堆栈段寄存器SS和附加段寄存器ES。指令指针寄存器IP用来存放将要执行的下一条指令在现行代码段中的偏移地址。在程序运行时,能自动修改,使其始终指向下一条将要执行的指令的地址。8086程序不能直接访问IP,但可以通过某些指令修改IP的内容。如中断或子程序调用指令。标志寄存器PSW用来存放运算结果的特征,常用作后继条件转移指令的转移控制条件。(2)Pentium机的寄存器组织Pentium微处理器配备的寄存器种类和数量非常多,按其类型可分为如下几类。①、基本体系结构寄存器。包括通用寄存器、指令指针寄存器、标志寄存器和段寄存器。②、系统级寄存器。包括系统寄存器和系统地址寄存器。③、调试和测试寄存器。④、浮点寄存器。包括数据寄存器、状态字寄存器、指令和数据指针寄存器、控制字寄存器和标记字寄存器。图6-4给出了16个应用程序员可用的寄存器。图6-4Pentium应用寄存器组从图中可以看出,通用寄存器共有8个,全部是32位寄存器,它们是EAX,EBX,ECX,EDX,ESP,EBP,ESI和EDI。它们又含有与8086兼容的8个16位寄存器及8个8位寄存器。指令指针寄存器也为32位,称为EIP,指向要执行的下一条指令的偏移地址。标志寄存器EFLAGS为32位,包含若干状态标志和控制标志,状态标志由微处理器执行某种操作后自动设置,其低位部分与8086兼容。段寄存器除了原有的CS,DS,SS和ES外,又增加了两个新的段寄存器FS和GS,它们也是附加数据段寄存器,都仍为16位寄存器。(3)MC68000的寄存器组织MotorolaMC68000的寄存器设计方案是将它的寄存器分成了8个数据寄存器(D0~D7)和9个地址寄存器(A0~A7、A7`),它们都是32位的,如图6-5所示。图6-5MC68000的寄存器其中8个数据寄存器主要用于数据存储管理,在寻址方式中仅用作变址寄存器。寄存器允许8位、16位和32位的数据格式运算,这些都可以由操作码确定。在地址寄存器中存放着32位的地址,其中两个寄存器(A7和A7`)也用作堆栈指针。但它们一个用于操作系统,一个用于用户,具体的选择取决于当前的执行模式。不过在某一时刻这两个寄存器只能使用一个。MC68000还包括一个32位程序计数器PC和一个16位的状态寄存器。6.2.3控制单元与中断系统控制单元CU产生CPU所需要的全部微操作控制信号。所谓微操作,即计算机中最简单的、不能再分解的操作,如打开某一个控制门或寄存器的清除脉冲等。复杂操作是通过执行一系列微操作实现的。控制单元CU根据指令译码器产生的操作控制信号、时序部件产生的时序信号以及其他控制条件可以产生整个机器所需要的全部操作控制信号。这些控制信号引向计算机各个部件,以控制各部件执行指令所要求的功能。该控制单元部件可由硬布线方式或微程序方式实现,这将在后面章节详细介绍。中断是现代计算机中非常重要的处理机制,在本书第10章中会对I/O中断作较详细的讨论,实际上I/O中断只是CPU众多中断中的一种。引起中断的因素很多,为了处理各种中断,CPU内通常设有处理中断的机构——中断系统,以解决各种中断的共性问题。对中断系统来说,主要需要解决以下几个问题:(1)各中断源如何向CPU提出中断请求;(2)当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断源的请求;(3)CPU在什么条件、什么时候、以什么方式来响应中断;(4)CPU响应中断后如何保护现场;(5)CPU响应中断后,如何停止原程序的执行而转入中断服务程序的入口地址;(6)中断处理结束后,CPU如何恢复现场,如何返回到原程序的间断处;(7)若在中断处理过程中又出现了新的中断请求,CPU该如何处理。对这些问题的解决,只有在中断系统中配置相应的硬件和软件,才能完成整个中断处理任务。但在有些计算机中,把部分相应的功能分散在了各接口电路中实现。下面以Pentium微处理器的中断处理为例,来了解中断系统的特点。(1)中断和异常有两类事件能引起Pentium挂起当前指令流的执行并响应事件:中断和异常。两种情况下处理器都要保存当前进程的上下文,并将转至一个预先定义的子程序来执行特殊的服务。中断(Interrupt)通常是由硬件信号产生的,并可出现在程序执行期间内的任何时刻。异常(Exception)是由软件产生的,是由执行指令所引发的。Pentium有两类中断源和两类异常源。中断包括可屏蔽中断和不可屏蔽中断。可屏蔽中断由处理器的INTR引脚接收信号。除非中断允许标志(IF)被置位,否则处理器不承认可屏蔽中断。不可屏蔽中断由处理器的NMI引脚接收信号。这类中断的认可不能被阻止。异常包括处理器确定的异常和程序异常。处理器确定的异常是当试图执行一条指令而处理器遇到一个错误时此异常发生。程序异常是由一些指令(INTO、INT、BOUND等)引起的。(2)中断类型表Pentium的中断处理使用了中断向量表(interruptvectortable)。每一类中断都被指派了一个中断类型号,此类型号用于对中断向量表的索引。该表容纳有256个32位的中断向量,它们存储着中断服务程序的地址(段地址和偏移地址)。表6-1表示了中断类型号的指派情况(见教材)。若不止一个异常或中断同时要求处理,则处理器以一个预先指定的顺序为它们服务。向量号在表中的位置不反映它们的优先权。异常和中断的优先权组成5类。以降序排列的5类优先权是:类1:先前指令上的中断(向量号1);类2:外部中断(2,32~255);类3:取下一指令的故障(3,14);类4:下一指令的译码故障(6,7);类5:执行指令的故障(0,4,5,8,10~14,16,17)。(3)处理中断和子程序调用相似,一个到中断处理子程序的控制传递,需要使用系统堆栈保存处理器的状态。当一个中断出现并被处理器识别时,如下事件序列发生了。①、若转换涉及到特权级改变,则当前堆栈段寄存器和当前扩展的栈指针(ESP)寄存器的内容被压入堆栈。②、EFLAGS寄存器的当前值被压入堆栈。③、中断(IF)和自陷(TF)两个标志被清除。这就禁止了INTR中断、软中断或单步特征。④、当前代码段(CS)寄存器和当前指令指针(IP或EIP)的内容被压入堆栈。⑤、若中断伴随有错误代码,则错误代码也要压入堆栈。⑥、取中断向量内容并装入CS和IP(或EIP)寄存器。找到中断服务子程序继续执行。为实现从中断的返回,中断服务子程序执行一条IRET指令。这使得所有保存在堆栈上的值被取回,并由中断点恢复执行。6.2.4CPU内部数据通路CPU内部可以分为数据部分和控制部分。数据部分即数据通路,包括寄存器、ALU以及数据在它们之间传送的路径。数据通路能对数据项执行某些操作,如数据从什么地方开始,中间经过哪些寄存器或多路开关,最后传送到哪个寄存器保存等。数据通路功能的实现需要控制部分加以控制,也即需要控制器向数据通路发出控制信号来完成数据在通路内的一系列传送。CPU内部的数据通路的典型组织形式是内部总线,它通常在寄存器和ALU之间传送数据,提供操作数和保存运算结果。当然,在数据传输频繁的两个部件之间也可以采用专用数据通路。常见的总线组织形式大体有三种结构。(1)单总线结构单总线结构的运算器如图6-6所示。由于所有部件都接到同一总线上,所以数据可以在任何两个寄存器之间,或者在任一个寄存器和ALU之间传送。如果具有阵列乘法器或除法器,那么它们所处的位置应与ALU相当。图6-6单总线结构对这种结构的运算器来说,在同一时间内,只能有一个操作数放在单总线上。为了把两个操作数输入到ALU,需要分两次来做,而且还需要A,B两个缓冲器。例如执行一个加法操作时,第一个操作数先放在A缓冲寄存器,然后再把第二个操作数放入B缓冲寄存器。只有两个操作数同时出现在ALU的两个输入端,ALU才执行加法。当加法结果出现在单总线上时,由于输入数已保存在缓冲寄存器中,它并不会打扰输入数。然后,再做第三个传送动作,以便把加法的“和”选通到目的寄存器中。由此可见,这种结构的主要缺点是总线分时使用,操作速度较慢。虽然在这种结构中输入数据和保存操作结果需要三次串行的选通操作,但它不会对每种指令都增加很多执行时间。只有在对全都是CPU寄存器中的两个操作数进行操作时,单总线结构的运算器才会造成一定的时间损失。但是由于它只需控制一条总线,故控制电路比较简单。(2)双总线结构双总线结构的运算器如图6-7所示。在这种结构中,两个操作数可同时送到ALU进行运算,只需要一次操作控制,而且马上就可以得到运算结果。图中两条总线各自把其操作数据送至ALU的输入端。图6-7双总线结构

特殊寄存器分成两组,它们分别与一条总线交换数据。这样,通用寄存器中的数就可以进入到任一组特殊寄存器中去,从而使数据传送更为灵活。ALU的输出不能直接加到总线上去。这是因为,当形成操作结果的输出时,两条总线都被输入数占据,因而必须在ALU输出端设置缓冲寄存器。为此,操作的控制要分两步来完成:第一步,在ALU的两个输入端输入操作数,形成结果并送入缓冲寄存器;第二步,把结果送入目的寄存器。假如在总线1、2和ALU输入端之间再各加一个输入缓冲寄存器,并把两个输入数先放至这两个缓冲寄存器,那么,ALU输出端就可以直接把操作结果送至总线1或总线2上去。(3)三总线结构三总线结构的运算器如图6-8所示。在三总线结构中,ALU的两个输入端分别由两条总线提供数据,而ALU的输出则与第三条总线相连。这样,算术逻辑操作就可以在一步的控制之内完成。图6-8三总线结构由于ALU本身有时间延迟,所以输出结果打入的选通脉冲必须考虑到包括这个延迟。另外,设置了一个总线旁路器。如果一个操作数不需要修改,而直接从总线2传送到总线3,那么可以通过控制总线旁路器把数据传出;如果一个操作数需要修改,那么就借助于ALU。显然,三总线结构的运算器的特点是操作时间快,但它的总线控制相对复杂。6.3CPU的外部特性6.3.18086的引脚定义6.3.280386的引脚定义CPU完成程序执行和数据处理,但程序和数据都需要由CPU外部送入。同时CPU还要能对各种外部设备进行管理和控制,这些信号都需要通过CPU的各个引脚来进行传送。不同的CPU其引脚数目和功能定义不同,但这些引脚的主要功能种类是相似的。6.3.18086的引脚定义Intel8086CPU是16位微处理器,外型为双列直插式,有40个引脚,直接寻址空间为1MB。图6-9给出了8086CPU外部引脚图。图6-98086CPU的外部引脚(1)AD15~AD0,A19/S6~A16/S3:8086应包括20条地址线和16条数据线,由于制造工艺的限制,部分引脚采用了分时复用方式,其中AD15~AD0是16条地址/数据总线,A19/S6~A16/S3是地址/状态线。(2)BHE#/S7:高8位数据总线允许/状态信号,用BHE#和AD0分别表示16位数据高、低字节的有效与否。(3)MN/MX#:最小/最大工作模式选择信号。8086工作在最小模式时,CPU组成一个单处理器系统;最大模式时,构成多处理器系统。在此介绍的引脚是最小模式时的定义。(4)ALE,M/IO#,RD#,WR#,DEN#,DT/R#:ALE是地址锁存允许信号,因为8086的地址、数据引脚是分时复用的,需要把地址锁存起来以便在传送数据时仍有固定的地址信息可用。M/IO#是存储器或I/O端口控制信号,来区别访问的是存储器还是I/O设备。RD#是读选通信号。WR#是写选通信号。DEN#是数据允许信号,允许数据在总线上的传送。DT/R#是数据发送/接收控制信号,控制总线上数据传送的方向。(5)READY,RESET,TEST#,CLK:READY是准备就绪信号,表示外部设备已准备好可进行数据传送了。RESET是CPU的复位信号。TEST#是测试信号,实现从空转状态的返回控制。CLK是时钟信号,供CPU内部操作定时使用。(6)NMI,INTR,INTA#:NMI是不可屏蔽中断请求信号。INTR是可屏蔽中断请求信号。INTA#是中断响应信号。(7)HOLD,HLDA:HOLD是总线保持请求信号,表示其他共享总线的部件向CPU请求使用总线。HLDA是总线保持响应信号,表示CPU允许让出总线控制权。(8)VCC,GND:电源信号。VCC接+5V,两条GND接地。6.3.280386的引脚定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论