李建廷jianting.li@gmail.com西安财经学院计算机科学系计算机组成原理ConstitutionPrincipleofComputer5.1CPU的功能与组成5.2指令周期5.3时序产生器和控制方式5.4微程序控制器5.5流水CPUCh.5中央处理器本章内容计算机程序是一个指令序列,把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。负责完成此项工作的计算机部件称为中央处理器,通常简称CPU。一、CPU的基本功能指令控制:程序的顺序控制称为指令控制。程序是一个指令序列,指操作控制:一条指令的功能往往是由若干个操作信号的组合来实现的,CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送时间控制:对各种操作实施时间上的定时称为时间控制。在计算机中,各种指令的操作信号以及一条指令的整个执行过程都受到时间的严格数据加工:对数据进行算术运算和逻辑运算。5.1CPU的功能与组成二、CPU基本组成1、控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。控制器的功能取指令、分析指令-------指令控制执行指令,发出各种操作命令-------操作控制控制程序输入及结果的输出--------时间控制总线管理-------内部数据传输控制处理异常情况和特殊请求-------处理中断5.1CPU的功能与组成、运算器由算术逻辑单元(ALU)、累加寄存器、数据缓冲寄存器和状态条件寄存器组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器的功能实现算术运算和逻辑运算-------数据加工5.1CPU的功能与组成、CPU与系统总线指令控制:PC、IR操作控制时间控制数据加工:ALU寄存器处理中断:中断系统5.1CPU的功能与组成寄存器ALU中断系统CUCPU控制总线数据总线地址总线CU、时序电路、CPU的内部结构算术和布尔逻辑取反移位状态标志内部数据总线寄存器CU中断系统ALU控制信号…CPU、CPU内部的寄存器在CPU中至少要有六类寄存器。寄存器用来暂存一个计算机字。根据需要,可以扩充其数目。(1)数据缓冲寄存器---DR数据缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在数据缓冲寄存器中。两个寄存器拼接存放双倍字长数据缓冲寄存器的作用是作为CPU补偿CPU和内存、外围设备之间在操作速度上的差别;的功能与组成(2)指令寄存器---IR指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从指令cache中取到缓冲寄存器中,然后再传送至指令寄存器。指令划分为操作码和地址码字段,由二进制数字组成。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一的功能与组成(3)程序计数器---PC程序开始执行前,将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,PC的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。当遇到转移指令如JMP指令时,那么后继指令的地址(即PC的内容)必须从指令的地址段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,而不是像通常一样按顺序来取得。因此程序计数器的功能与组成(4)地址寄存器---AR地址寄存器用来保存当前CPU所访问的数据cache单元的地址。地址寄存器也可用来保存当前CPU所访问的内存单元的地址。地址在内存和CPU之间存在操作速度上的差别,必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。当CPU和内存进行信息交换,即CPU与内存相互存/取数据时,都要使用地址寄存器和数据缓冲寄存器。同样,当CPU和外围设备交换信息时,同样需要使用对应设备的地址寄存器和数据缓冲寄存器。地址寄存器的结构和数据缓冲寄存器、指令寄存器一样,通常使用单纯的寄存器结构。信息的存入一般采用电位-脉冲方式,即电位输入端对应数据信息位,脉冲输入端对应控制信号,在控制信号作用下,瞬时地将信息打入寄存器。的功能与组成(5)通用寄存器---R0…Rn当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区。累加寄存器暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。累加寄存器(AC)通常简称为累加器,它也是一个通用寄存器。目前CPU中的通用寄存器,多达64个,甚至更多。当使用多个通用寄存器时,就变成通用寄存器堆结构,其中任何一个可存放源操作数,也可存放结果操作数。在这种情况下,需要在指令格式中对寄存器号加以编址。的功能与组成(6)状态条件寄存器---PSW状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,如运算结果进位标志(C),运算结果溢出标志(V),运算结果为零标志(Z),运算结果为负标志(N)等等。这些标志位通常分别由1位触发器保存。状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的特殊寄存器。、操作控制器与时序产生器操作控制器:在各寄存器之间建立数据传输通路,实现信息的传输控制。操作控制器的功能的实现:根据指令操作码和时序信号(时序产生器),产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。根据设计方法不同,操作控制器可分为时序逻辑型、存储逻辑型、时序逻辑与存储逻辑结合型三种。硬布线控制器:采用时序逻辑技术实现;微程序控制器:采用存储逻辑实现;前两种方式的组合指令周期一、基本概念计算机能自动地工作,是因为CPU从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令……,除非遇到停机指令,否则这个循环将一直继续下去。那么,如何描述程序的执行时间?指令周期:CPU从内存取出一条指令并执行这条指令的时间总和。CPU周期:又称机器周期,定义为CPU访问一次内存读取一条指令字的最短时间。时钟周期:通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期。、指令周期取出并执行一条指令所需的全部时间完成一条指令执行取指、分析取指阶段取指周期执行阶段执行周期(取指、分析)(执行指令)指令周期取指周期执行周期、每条指令的指令周期不同取指周期指令周期例如:无条件转移指令“JMPX”,执行阶段不需要访问内存,操作简单,完全可以在取指阶段的后期将转移地址送至PC,即不需要执行周期取指周期执行周期指令周期例如:加法指令“ADDX”,执行阶段需要从内存单元X中取出操作数,然后和ACC的内容相加,结果保存至ACC,指令周期在取指和执行阶段各访问一次内存,需要两个存取周期。指令周期例如:乘法指令“MULX”,指令周期在取指和执行阶段各访问一次内存,需要两个存取周期。但其执行阶段的操作复杂度要比加法大很多,一个周期执行不完,可能需要多个执行周期。例如:间接寻址指令,指令中给出的是操作数地址的地址,为了获得操作数,需要先访问一次内存获得操作数地址,在根据获得的地址再次访问内存取出有效操作数。取指周期执行周期指令周期…取指周期间址周期指令周期执行周期指令周期例如:当CPU采用中断方式与I/O外设交换数据时,在每条指令执行结束前,都要发出中断查询信号,检测是否有设备提出的中断请求,如果有中断请求,则进行中断响应,需要将程序的断点保存至内存中,需要一个“中断周期”。总之,各个周期都有访存操作,只是访存的目的不同。取指周期访存为了取指令;间址周期访存为了取操作数的有效地址;执行周期访存为了取操作数以及执行具体的操作;中断周期访存为了保存程序断点;取指周期间址周期指令周期执行周期中断周期指令周期指令周期流程:取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否二、指令周期的数据流1、取指周期数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+15.2指令周期、间址周期数据流MDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDR5.2指令周期、执行周期数据流不同指令的执行周期数据流不同4、中断周期数据流MDRCUMARCPU地址总线数据总线控制总线PC存储器5.2指令周期二、用方框图语言表示指令周期在进行计算机设计时,可以采用方框图语言来表示一条指令的指令周期。方框:代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。菱形:通常用来表示某种判别或测试,不过时间上它依附于紧接它的前面一个方框的CPU周期,而不单独占用一个CPU周期。5.2指令周期IR为指令寄存器PC为程序计数器(具有自增功能)M为主存(受R/W信号控制)AR为地址寄存器DR为数据缓冲寄存器一、作用CPU中一个类似“作息时间”的东西,称为“时序信号”。机器一旦被启动,即CPU开始取指令并执行指令时,操作控制器就利用定时脉冲的顺序和不同的脉冲间隔,有条理、有节奏地指挥机器的动作,规定在这个脉冲到来时做什么,在那个脉冲到来时又做什么,给计算机各部分提供工作所需的时间标志。二进制码表示的指令和数据都放在内存里,CPU是怎样识别出它们呢?从时间上来说,取指令事件发生在指令周期的第一个CPU周期中,即发生在“取指令”阶段,而取数据事件发生在指令周期的后面几个CPU周期中,即发生在“执行指令”阶段。从空间上来说,如果取出的代码是指令,那么一定送往指令寄存器,如果取出的代码是数据,那么一定送往运算器。由此可见,时间控制对计算机来说是太重要了。总之,计算机的协调动作需要时间标志,而时间标志则是用时序信号来体现的。5.3时序产生器和控制方式硬布线控制