2020年3月13日9时15分1LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分第五章中央处理器2020年3月13日9时15分2LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分第五章中央处理器•CPU的功能和组成(掌握)•指令周期(掌握)•时序产生器和控制方式(理解)•微程序控制器(掌握)•微程序设计技术(掌握)•硬布线控制器(理解)•CPU的新技术(理解)教学要求•课堂上注意听讲、重要的是理解•课堂外一定要看书复习或预习、完成作业2020年3月13日9时15分3LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分5.1CPU的功能和组成•什么是CPU?所谓中央处理器是控制计算机来自动完成取出指令和执行指令任务的部件。它是计算机的核心部件,通常简称为CPU。•CPU的基本组成中央处理器由两个主要部分——控制器和运算器组成。2020年3月13日9时15分4LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分•控制器由程序计数器(PC)、指令寄存器(IR)、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。控制器的主要功能有:1.从内存中取出一条指令,并指出下一条指令在内存中的位置。2.对指令进行译码或测试,并产生相应的控制信号。3.输出相应的控制信号,指挥并控制CPU,内存和I/O之间的数据流动的方向。2020年3月13日9时15分5LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分•运算器由算术逻辑单位(ALU)、累加寄存器(AC)、数据缓冲寄存器(DR)和状态条件寄存器(PSW)组成,它是数据加工处理部件。相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。运算器的主要功能:1.执行所有的算术运算。2.执行所有的逻辑运算,并进行逻辑测试。算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC存储器I/OCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制ccccc缓冲寄存器DR2020年3月13日9时15分7LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分CPU的功能和组成•CPU的主要寄存器1.累加寄存器AC累加寄存器AC通常简称为累加器,它的功能是:当运算器的算术逻辑单元(ALU)执行全部算术和逻辑运算时,为ALU提供一个工作区。累加寄存器是暂时存放ALU运算的结果信息。显然,运算器中至少要有一个累加寄存器。2.指令寄存器IR指令寄存器用来保存当前正在执行的一条指令。存放从内存中取出的指令;其中指令的操作码送到指令译码器,译码后输出控制信号。2020年3月13日9时15分8LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分3.程序计数器PC程序计数器中存放的是下一条指令在内存中的地址。若程序顺序执行:PCPC+1;若程序有跳转:PCPC+偏移地址。4.状态条件寄存器PSW状态条件寄存器保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,同时状态条件寄存器还保存中断和系统工作状态等信息,以便使CPU和系统能及时了解机器运行状态和程序运行状态。因此,状态条件寄存器是一个由各种状态条件标志拼凑而成的寄存器。O溢出D方向I中断允许T追踪S符号Z零A辅助进位P奇偶C进位ODITSZAPC2020年3月13日9时15分9LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分CPU的功能和组成5.地址寄存器AR地址寄存器用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之间存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。6.缓冲寄存器DR缓冲寄存器用来暂时存放由内存储器读出的一条指令或一个数据字;反之,当向内存存入一条指令或一个数据字时,也暂时将它们存放在缓冲寄存器中。2020年3月13日9时15分10LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分CPU的功能(4)数据加工:对数据进行算术运算和逻辑运算处理。完成数据的加工处理,这是CPU的根本的任务。(1)指令控制:程序是指令的有序集合,保证机器按规定的顺序执行程序。(2)操作控制:CPU管理并产生由内存取出的每条指令的操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。(3)时间控制:对各种操作实施时间上的控制,计算机中各种指令的操作信号均受到时间的严格控制。2020年3月13日9时15分11LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分5.2指令周期•程序的执行过程:冯.诺依曼结构的计算机执行程序的顺序:1.从程序首地址开始。2.分步执行每一条指令,并形成下条待执行指令的地址。3.自动地连续执行指令,直到程序的最后一条指令。2020年3月13日9时15分12LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分指令周期—读取指令指令地址送入主存地址寄存器读主存,读出内容送入指定的寄存器—分析指令—按指令规定内容执行指令不同指令的操作步骤数和具体操作内容差异很大—检查有无中断请求若无,则转入下一条指令的执行过程形成下一条指令地址•指令的执行过程2020年3月13日9时15分13LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分•指令周期的基本概念1.指令周期:CPU每取出并执行一条指令,都要完成一系列的操作,这一系列操作所需用的时间通常叫做一个指令周期。2.机器周期:机器周期也称为CPU周期。通常用内存中读取一个指令字的最短时间来规定CPU周期。指令周期常常用若干个CPU周期数来表示,3.时钟周期:一个CPU周期时间又包含有若干个时钟周期(通常称为节拍脉冲或T周期,它是处理操作的最基本单位)。这些时钟周期的总和则规定了一个CPU周期的时间宽度。2020年3月13日9时15分14LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分指令周期指令周期T周期CPU周期CPU周期T1T2T3T4(取指令)(执行指令)取指令执行指令2020年3月13日9时15分15LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分指令周期•下面以一个简单的程序来具体认识每一条指令的指令周期和执行过程。内存地址内存内容助记符所完成的操作020250000CLA将累加器的内容请零021030030ADD30(Ac)+(30)Ac022021040STA40(Ac)(40)023000000NOP024140021JMP2121→PC030000006031040存和数单元2020年3月13日9时15分16LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分•CLA指令的指令周期非访内指令需要两个CPU周期。在第一个CPU周期,即取指令阶段,CPU完成三件事:(1)从内存取出指令;(2)对程序计数器PC加1,以便为取下一条指令做好准备;(3)对指令操作码进行译码或测试,以便确定进行什么操作。在第二个CPU周期,即执行指令阶段,将累加器Ac的内容清零。一个CPU周期一个CPU周期取指令阶段执行指令阶段开始取指令PC+1对指令译码执行指令取下条指令PC+12020年3月13日9时15分17LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分指令周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+10000202021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA0000212020年3月13日9时15分18LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分指令周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000020CLACLA0000212020年3月13日9时15分19LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分指令周期•ADD指令的指令周期ADD指令的指令周期由三个CPU周期组成。第一个CPU周期为取指令阶段。和CLA指令相同。第二个CPU周期中将操作数的地址送往地址寄存器并完成地址译码。在第三个CPU周期中从内存取出操作数并执行相加的操作。2020年3月13日9时15分20LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分指令周期一个CPU周期一个CPU周期取指令阶段执行指令阶段开始取指令PC+1对指令译码送操作数地址取下条指令PC+1取出操作数执行加操作一个CPU周期指令周期算术逻辑单元状态条件寄存器程序计数器PC地址寄存器AR地址总线ABUS数据总线DBUS累加器AC缓冲寄存器DRCPUALU指令寄存器IR指令译码器操作控制器时序产生器时钟状态反馈取指控制执行控制cccc+12021222324303140CLAADD30STA40NOPJMP21000006000021ADDADD300000210000220000300000060+6=60000062020年3月13日9时15分22LiuJing,HenanPolytechnicUniversity.liujing@hpu.edu.cn2020年3月13日9时15分指令周期•STA指令的指令周期STA指令的指令周期由三个CPU周期组成。其中第一个CPU周期仍然是取指令阶段,其过程和CLA指令、ADD指令完全一样,不同的是此阶段中程序计数器加1后变为023,因而为取第四条指令做好了准备。我们假定,第一个CPU周期后结束,“STA40”指令已放入指令寄存器并完成译码测试。第二个CPU周期是送操作数地址。第三个CPU周期是累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单