1 / 34

第 6 章 中央处理器 ( 上 )

第 4 章 数值的机器运算. 第 6 章 中央处理器 ( 上 ). 本章引言. 中央处理器( CPU )是整个计算机的核心,它包括运算器和控制器。本章着重讨论 控制器 的功能和组成, 并且在详细分析指令执行流程的基础上讲解控制器的工作原理和实现方法,具体介绍微程序控制原理,和组合逻辑控制器基本控制单元的设计. 计算机硬件结构框图. 6.1 控制器的功能概述. 冯 . 诺依曼结构的计算机 “ 存储程序 ” 计算机,在程序运行之前将程序调入内存,然后执行程序。 计算机的功能是执行程序 程序是依次排列起来的指令序列 计算机执行程序的基本过程

Download Presentation

第 6 章 中央处理器 ( 上 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第4章数值的机器运算 第6章 中央处理器(上)

  2. 本章引言 中央处理器(CPU)是整个计算机的核心,它包括运算器和控制器。本章着重讨论控制器的功能和组成,并且在详细分析指令执行流程的基础上讲解控制器的工作原理和实现方法,具体介绍微程序控制原理,和组合逻辑控制器基本控制单元的设计. 计算机硬件结构框图

  3. 6.1 控制器的功能概述 冯. 诺依曼结构的计算机 “存储程序”计算机,在程序运行之前将程序调入内存,然后执行程序。 计算机的功能是执行程序 程序是依次排列起来的指令序列 计算机执行程序的基本过程 从程序首地址开始执行第一条指令; 并形成下一条待执行指令地址; 自动地连续执行指令,直到程序的最后一条指令 问题: CPU总是在执行指令吗?会不会停下来什么都不做? • 答案:CPU不可能不在执行指令。 • 有时我们会说,CPU停止或CPU正在等待,什么事情也不做。事实上,CPU还是在执行指令的,只不过可能处于以下几种类似的情况: • 在执行指令过程中,正在等待主存内部恢复或I/O就绪; • (2) 正在执行一连串的空指令(NOP); • (3)可能正在执行一个循环(循环内只是不断地取状态、判断、不满足时继续循环),直到满足某个条件(如:查询外设有没有完成任务);等等。

  4. 控制器的核心是控制信号产生部件: 节拍信号发生器 控制信号产生部件 控制器是计算机系统的指挥中心,它把运算器、存储器、输入/输出设备等部件组成一个有机的整体,然后根据指令的要求发出控制信号指挥全机的工作。 图6-1 计算机硬件结构图

  5. 6.1.2 CPU中的主要寄存器 1. 通用寄存器 通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。现代计算机中为了减少访问存储器的次数,提高运算速度,往往在CPU中设置大量的通用寄存器,少则几个,多则几十个,甚至上百个。 各种CPU的寄存器可能有所差异,但不论计算机的型号如何,CPU都应设置一定数量的寄存器。 CPU中的寄存器分为用户可访问寄存器和用户不可见寄存器。一般把用户在程序中可访问寄存器称为通用寄存器(GPR)。CPU中有一些寄存器是用户不可见的,没有编号、不能通过程序直接访问,称为专用寄存器。

  6. ⑴程序计数器(PC) 程序计数器又称指令指针寄存器,用来将存放将要执行的下条指令的地址。 其内容分两种情况: ① 若顺序执行时: PC的值应自动修正,加一个增量(增量值为指令的长度)。 PC+△→PC ②若跳转执行时: 将目标地址→ PC。 2.专用寄存器 6.1.2 CPU中的主要寄存器(续) 问题: 1. 执行转移指令时,PC的值一定按后者更新吗? 2. 若转移指令采用的是直接寻址,如何更新PC ? 若采用的相对寻址,如何更新PC? 答案: 1.不一定 2. 若分支转移指令的寻址方式是直接寻址,即将转移指令中绝对转移地址送给PC; 当相对寻址时,将PC+位移量的计算结果送PC,

  7. (2) 存储器数据寄存器(MDR) 存储器数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字;反之,当向主存写入一条指令或一个数据字时,也暂时将它们存放在存储器数据寄存器中。 2.专用寄存器(续) (3)地址寄存器(MAR) 地址寄存器用来保存当前CPU所要访问的主存单元或I/O端口的地址。 问题: • 为什么需要专用的寄存器保存访存的地址呢? 答案:当CPU要对存放在主存或外部设备的信息进行存取时,就是通过CPU将地址信息传送到地址总线上,再由地址译码电路实现。在对主存或I/O端口内的信息存取过程中,地址信号必须是稳定的。因此地址信息要由一个寄存器来保存,这个寄存器就是地址寄存器。 用PC来代替MAR可以吗?为什么呢? • 如果MAR 具有自行计数的功能, 它能代替PC吗?

  8. (4)指令寄存器(IR) 指令寄存器用来存放从存储器中取出的指令。当指令从主存取出暂存于指令寄存器之后,在执行指令的过程中,指令寄存器的内容不允许发生变化,以保证实现指令的全部功能。 2.专用寄存器(续) 为了执行指令,必须先确定该指令的操作性质,即先要对指令中的操作码进行译码。译码的任务由指令译码器完成。 因此,指令寄存器的入口是数据寄存器,其操作码部分的出口是指令译码器,地址码部分的出口是程序计数器PC或地址寄存器MAR。

  9. ⑸状态标志寄存器(PSWR) 状态标志寄存器用来存放程序状态字(PSW)。程序状态字的各位表征程序和机器运行的状态,是参与控制程序执行的重要依据之一。 状态标志寄存器的位数往往等于机器字长,各类机器的状态标志寄存器的位数和设置位置不尽相同。 2.专用寄存器(续) 15 0 OF DF IF TF SF ZF AF PF CF 问题: 如果计算机系统没有设置状态寄存器,行不行? 会出现什么情况?

  10. (6) 累加寄存器(AC)    累加寄存器简称累加器。累加器为算术逻辑单元(ALU)提供一个操作数,并用来保存操作的结果。算术逻辑单元最基本的操作是加法,这就是累加器名称的由来。显然,在一个算术逻辑单元中,至少有一个累加器。 2.专用寄存器(续) 从硬件设计的角度: 地址寄存器和数据寄存器、指令寄存器都是一样的,采用单纯的寄存器结构。

  11. 图6-2 CPU的模型 6.1.3 CPU的组成 其中CU(控制单元)是控制器中最复杂最重要的部分

  12. 6.2 控制器的组成和实现方法 6.2.1 控制器的基本组成

  13. 1. 指令部件 指令部件的主要任务是完成取指令并分析指令。指令部件包括: ⑴ 程序计数器 ⑵ 指令寄存器 ⑶ 指令译码器:指令译码器又称操作码译码器或指令功能分析解释器。暂存在指令寄存器中的指令只有在其操作码部分经过译码之后才能识别出这是一条什么样的指令,并产生相应的控制信号提供给微操作信号发生器。 ⑷ 地址形成部件:根据指令的不同寻址方式,用来形成操作数的有效地址,在微、小型机中,一般不设专门的地址形成部件,而是利用运算器来进行有效地址的计算。 6.2.1 控制器的基本组成

  14. 2.时序部件 时序部件能产生一定的时序信号,以保证机器的各功能部件有节奏地进行信息传送、加工及信息存储。包括: ⑴ 脉冲源 产生具有一定频率和宽度的时钟脉冲信号,为整个机器提供时间基准信号。 脉冲源 节拍信号发生器 启停逻辑 6.2.1 控制器的基本组成 图6-4 时序系统 ⑵启停控制逻辑 启停控制逻辑的作用是根据计算机的需要,可靠地开放或封锁脉冲,控制时序信号的发生或停止,实现对整个机器的正确启动或停止。

  15. (2) 节拍信号发生器    脉冲源产生的脉冲信号,经过节拍信号发生器后产生出各个机器周期中的节拍信号,用以控制计算机完成每一步微操作。 6-5 节拍信号发生器逻辑电路 6.2.1 控制器的基本组成

  16. 时钟周期 时钟周期、节拍电位信号 CLK T0 T1 T2 T3 图6-6 时钟周期与节拍信号

  17. 一条指令的取出和执行可以分解成很多最基本的操作,这种最基本的不可再分割的操作称为微操作。微操作信号发生器也称为控制单元(CU)。不同的机器指令具有不同的微操作序列。它是控制器最核心的部件,也是设计难度最高、技术要求最高的部件。一条指令的取出和执行可以分解成很多最基本的操作,这种最基本的不可再分割的操作称为微操作。微操作信号发生器也称为控制单元(CU)。不同的机器指令具有不同的微操作序列。它是控制器最核心的部件,也是设计难度最高、技术要求最高的部件。 3. 微操作信号发生器(控制信号发生器) 微操作控制信号 …… 控制信号发生器 (CU) 时序信号 各部件状态 反馈信号 操作码译码输出 6.2.1 控制器的基本组成 • 根据产生微操作控制信号的方式不同,控制器可分为2种: • 组合逻辑控制器:由硬件电路产生控制信号。 • 微程序控制器:由编码和编程的方法产生控制信号。

  18. 指令周期 CPU每进行一种操作,都需要时间的开销。因此,CPU取指令、译码、执行需要一定的时间,这一系列操作的时间称为指令周期 。由于各种指令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期不尽相同。 机器周期(又称CPU周期) 通常把一个指令周期划分为若干个机器周期,每个机器周期完成一个基本操作。一般机器的CPU周期有取指周期、取数周期、执行周期、中断周期等。由于CPU内部的操作速度快,CPU访问内存操作速度慢,因此通常用从主存中取出一条指令的最短时间来规定CPU周期。 所以有:指令周期=i×机器周期 6.3.1 三级时序系统 6.3 指令执行过程的分析 1.指令周期和机器周期

  19. 指令周期举例:  图6-9 非访存指令的指令周期划分成2个机器周期

  20. 3.节拍 一个机器周期分为若干个相等的时间段,每一个时间段对应一个电位信号,称为节拍电位信号,这是最小的时间定义。 节拍的宽度为一个时钟周期。 节拍的宽度取决于CPU完成一次基本操作的时间。

  21. 时钟周期 T0 T1 T2 T3 T0 T1 T2 T3 机器周期 机器周期 指令周期 三级时序系统关系 时钟周期(节拍电位信号)、机器周期、指令周期 CLK T0 T1 T2 T3

  22. —读取指令 将指令地址送入主存地址寄存器 读主存,读出内容送入指令寄存器 —分析指令 根据指令操作码,指明指令的执行步骤 —按指令规定内容执行指令 不同指令的操作步骤数, 和具体操作内容差异很大 检查有无中断请求 若有,则响应中断并转中断处理 若无,则转入下一条指令的执行过程 形成下一条指令地址 6.3.3 指令运行的基本过程 公共操作 可执行一个或多个步骤 公共操作

  23. CPU 主存储器 5 … R AC 6 I/O 设 备 2 7 3 8 IR ALU 1 PC MAR MDR X 4 运算器 控制器 9 以取数LDA M 指令为例说明指令周期的流程: CU 控制 单元 图6-12 指令周期的工作流程

  24. 存储器 5 … R AC 6 I/O 设 备 2 7 3 9 IR ALU 1 PC MAR MDR X 4 运算器 控制器 8 以存数STA M 指令为例说明指令流程 CPU CU 控制 单元 图6-13 指令周期的工作流程

  25. 以教学计算机举例说明指令执行(相比较更细化一些):以教学计算机举例说明指令执行(相比较更细化一些): 典型指令的执行过程举例: 2000 0001 ADD R0, R1 2001 0790 MVRR R9, R0 2002 8800 MVRD R0, 2007 2007 8309 STRR [R0], R9 (写内存) 8280 IN 80 (读串行口) 2006 8F00 RET

  26. 运算器 控制器 主振 脉冲 4275 C Z V S 微程序定序器 ALU + 控制 存储器 PC 3041 4275 2000 操作数 地址 映射 2001 1234 乘商寄存器 6688 寄存器组 0001 微指令寄存器 指令寄存器 R9 MAR 操作码 IR . 地址寄存器 2000 下地址字段内容 用于运算器 数据总线 控制总线 地址总线 ADD R0, R1 2000 0001 0001 0790 MAR PC 8800 接口 2007 PC  PC+1 8309 输入/出设备 读内存,IR读出内容 8280 8F00 2007 R0 R0 + R1 xxxx 主存储器

  27. 运算器 控制器 4275 主振 脉冲 C Z V S 微程序定序器 + ALU 控制 存储器 0 PC 4725 2001 操作数 地址 映射 2002 1234 乘商寄存器 6688 寄存器组 0790 微指令寄存器 指令寄存器 R9 4275 MAR 操作码 IR . 2001 地址寄存器 下地址字段内容 用于运算器 数据总线 控制总线 地址总线 MVRR R9, R0 2000 0001 0790 0790 MAR PC 8800 接口 2007 PC  PC+1 8309 输入/出设备 8280 读内存,IR 读出内容 8F00 2007 R9  R0 + 0 xxxx 主存储器

  28. 运算器 控制器 主振 脉冲 2007 C Z V S 微程序定序器 ALU + 控制 存储器 0 PC 4725 2007 802 操作数 地址 映射 2003 1234 2004 乘商寄存器 6688 寄存器组 8800 微指令寄存器 指令寄存器 R9 4275 MAR 操作码 IR . 地址寄存器 2002 2003 下地址字段内容 用于运算器 数据总线 控制总线 地址总线 2000 MVRD R0, 2007 0001 0790 MARPC, PC  PC+1 8800 接口 2007 读内存,IR读出内容 8309 输入设备 ARPC,PC  PC+1 8280 8F00 2007 读内存,R0  D+0 xxxx 主存储器

  29. 运算器 控制器 主振 脉冲 2007 4275 C Z V S 微程序定序器 ALU + 控制 存储器 0 PC 2007 802 操作数 地址 映射 2005 1234 乘商寄存器 6688 寄存器组 8309 微指令寄存器 指令寄存器 R9 4275 MAR 操作码 IR . 地址寄存器 2007 2004 下地址字段内容 用于运算器 数据总线 控制总线 地址总线 2000 STRR [R0], R9 0 001 0790 MARPC, PC  PC+1 8800 接口 2007 读内存,IR读出内容 8309 输入设备 ARR0+0 8280 8F00 写内存,总线 R9+0 2007 xxxx 4275 主存储器

  30. 运算器 控制器 主振 脉冲 C Z V S 微程序定序器 ALU 控制 存储器 PC 2007 A 2006 操作数 地址 映射 1234 乘商寄存器 6688 寄存器组 8280 微指令寄存器 指令寄存器 R9 MAR 操作码 IR . 2005 80 地址寄存器 下地址字段内容 用于运算器 数据总线 控制总线 地址总线 IN 80 2000 0001 MARPC PC  PC+1 0790 8800 接口 读内存,IR读出内容 2007 8309 MARI/O port 输入/出设备 8280 读设备,R0读出内容 8F00 2007 4275 主存储器

  31. 运算器 控制器 主振 脉冲 C Z V S 微程序定序器 ALU 控制 存储器 PC A A00 807 806 操作数 地址 映射 1234 乘商寄存器 6688 FF0 FF1 寄存器组 微指令寄存器 指令寄存器 AC00 R9 MAR 操作码 IR . 806 FF0 地址寄存器 下地址字段内容 用于运算器 数据总线 控制总线 地址总线 RET 800 0 412 MARPC 2090 PC  PC+1 3409 接口 0807 读内存,IR 读出内容 A480 输入/出设备 MARSP 98FB SP SP+1 AC00 807 读内存,PCMEM 78BD 堆栈FF0单元存的是A00

  32. 控制信号 发生器 练习:CPU结构如图所示,其中一个累加寄存器AC,一个状态条件寄存器和其它四个寄存器,各部分之间的连线表示数据通路,箭头表示信息传送方向。 (1)标明图中a、b、c、d四个部件的名称。 (2)描述取指操作的数据通路; (3)描述完成指令ADD X的数据 通路(X为内存地址,ADD的 功能为(AC)+(X)->AC))。

  33. 控制器在实现一条指令的功能时,总要把每条指令分解成为一系列时间上先后有序的最基本、最简单的微操作,即微操作序列。微操作序列是与CPU的内部数据通路密切相关的,不同的数据通路就有不同的微操作序列。控制器在实现一条指令的功能时,总要把每条指令分解成为一系列时间上先后有序的最基本、最简单的微操作,即微操作序列。微操作序列是与CPU的内部数据通路密切相关的,不同的数据通路就有不同的微操作序列。 6.3.4 指令的微操作序列

  34. CU 时钟 指令译码器 Ad IR R out 0 in OP IR out IR R 0 IR R in 0 out PC … R in n - 1 in PC + 1 Rn PC R out n - 1 out MAR in Y MAR in Y 地址线 MDR in ALU in MDR 数据线 MDR ALU … out Z Z out 指令ADD [R0],R1 的执行过程: ⑴ 取指周期 ①(PC)→MAR; PCout 、MARin ②M(MAR)→MDR; MARout 、Read 、 MDRin ③(MDR)→IR。 MDRout 、IRin ④ (PC)+1→PC。 ⑵ 取数周期 ①(R0)→MAR; R0out 、MARin ②M(MAR)→MDR; MARout 、Read 、MDRin ③ MDR→Y; MDROUT 、 Yin ⑶ 执行周期 ①(R1)+Y→Z; ②(Z)→MDR。 ③Write。 图 6-10 单总线结构CPU的数据通路

More Related