0%

组成原理-CPU

CPU的组成和功能

cpu=运算器+控制器。

运算器:数据加工。

控制器:

  • 程序控制: 程序中指令执行顺序控制
  • 操作控制: 将机器指令翻译成执行部件所需操作控制信号
  • 时序控制: 控制操作信号的产生时间、持续时间
  • 异常控制: 异常处理,外设交互

控制器

控制器:程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成。

取指令,将机器指令译码并生成执行部件所需的控制信号序列,控制信号送至各执行部件控点,引起逻辑门开闭,建立正确的数据通路,从而完成指令功能。

  • 硬布线控制器 (时序逻辑型) (硬件实现)
  • 微程序控制器 (存储程序型) (软件实现)

指令周期

在指令的执行周期完成后,处理器会判断是否出现中断请求,只有在出现中断请求时才会进入中断周期。

数据通路

执行部件间传送信息的路径(数据流)

  • 共享通路(总线)
  • 专用通路

在总线结构中,可同时进行的数据传输数量取决于总线的数量

单总线结构

总线上可以有多个模块同时接收数据,但是某一时刻只能有一个模块向总线发送数据。因此,接入到总线上的部件需要进行输出控制,以防止总线上的数据冲突。

双总线结构

三总线结构

指令周期与时序(重要)

指令周期

  • 定长指令周期:传统的三级时序—–以最慢的指令周期同步
  • 变长指令周期:指令需要多少时间就给多少时间

取指令、执行指令反复循环

  • 时钟周期(震荡周期、节拍脉冲) ——能完成依次微操作
  • 机器周期(CPU周期)= 多个时钟周期 ——–从主存读出一条指令的最短时间(也就是访问一次内存的最短时间)

指令周期可划分如下阶段

取值周期

取值周期就是按PC内容取出指令,并计算后续指令的地址:
有跳转指令的就计算跳转后的指令的地址;没有就顺序执行。

译码/取操作数周期

识别指令类型,并根据指令地址码字段的值访问相应的寄存器或主存单元。

这部分包括了操作数地址计算和取操作数的阶段。

执行周期

控制器向算术逻辑运算单元和数据通路中的其他部件发送操作控制命令,对前面准备好的操作数进行操作,将操作的状态信息保存在PSW中。如果出现程序转移,则在执行周期内决定转移地址

写回

将运算结果写到寄存器或存储器中。

PS

实际的指令周期还包括了中断周期(完成现行程序与中断程序的切换)、总线周期(完成总线操作与总线控制权的转移)、IO周期(完成输入输出操作)。

指令周期数据流示例

可以分析分析与不同总线的数据通路之间的运行的周期数。

时序

硬布线控制中采用的时序体制是三级时序体制。微程序控制器采用的是两级时序体制。

时序产生器与控制器–同步控制

时序产生器循环产生周期电位、节拍电位,供控制器对信号进行时间调制。简单来说就是对各种信号进行时间同步。

现代时序系统—异步控制

控制方式

  • 同步控制方式—–使用的是定长指令周期
  • 异步控制方式—–使用的是变长指令周期
  • 混合控制方式—–使计算机处于同步和异步交替工作方式

硬布线控制器

基本原理

将控制器看成产生固定时序控制信号的逻辑电路。

单周期硬布线控制器

使用的是同步控制

固定指令周期硬布线控制器设计步骤

1、设计三级时序产生器:所有指令固定机器周期数、节拍数
2、列出所有机器指令的指令周期流程图,明确每个节拍的控制信号
3、找出产生同一微操作控制信号的条件
4、写出各微操作控制信号的布尔表达式
5、化简
6、实现

多周期硬布线控制器

核心是设计时序产生器状态机

使用的是异步控制

  • 一条指令多个时钟周期
  • 一个时钟周期一个状态
  • 一个状态对应一组并发信号

可变周期硬布线控制器设计步骤

1、列出所有机器指令的指令周期流程图,明确每个节拍的控制信号
2、绘制指令执行状态转换图
3、根据状态转换图构建状态机真值表,实现有限状态机组合逻辑
4、实现控制器组合逻辑电路

指令结束阶段可能会进入中断

微程序控制器

使用的是 存储逻辑

  • 将并发信号事先存储为微指令
  • 一条指令对应多条微指令
  • 状态等同与存储器地址

微程序控制器是利用软件方法来设计硬件的技术。将完成指令所需要的控制信号按格式编写成微指令,存放到控制存储器。

  • 一条机器指令对应一段微程序(多条微指令)
  • 指令取指执行—>微程序的执行—–>执行多条微指令—–>依次生成控制信号

微命令和微操作

微程序–>微指令–>微命令

微命令:控制部件向执行部件发出的各种控制命令

微操作:执行部件收到微命令后所进行的操作

微命令是可以在CPU周期内并行执行的,但是微程序是只能串行执行。

操作控制字段是微指令主体,每一位都是一个微指令。

微程序中多条微指令的先后关系由微指令格式中的测试字段下地址字段给出。

微程序设计

微指令格式

分为水平型和垂直型。

水平型微指令

在一个微周期中同时给出多个微命令的微指令。编码方式如下“微指令编码方式”

垂直型微指令

类似汇编语言,把微指令代码化。

基本上淘汰了。

微指令编码方式

直接表示法

将微指令操作控制字段的每一个二进制位定义成一个微命令,用1或者0表示相应的微命令的有无。

缺点:字长太长

解决方法:

  • 改直接表示为编码表示
  • 去掉下址字段,采用PC=PC+1的方式生成微指令
  • 改水平微指令为垂直微指令(牺牲并行性)

此时没有下址字段,故PC的生成方式如下图所示:

字段直接译码法

将微指令格式中的操作控制字段分成诺干组,每组中包含诺干个互斥性微命令,将相容性微命令安排在不同组。(将互斥性微命令编码是因为他们之间是不可能同时出现的)

注意:要预留一个信号表示什么指令都不给

PS

一些名词的含义

指令周期:取指令并执行一条指令所需要的时间,一般由若干个机器周期组成,包括从取指令、分析指令到执行完所需的全部时间。

数据通路:数据在功能部件之间传送的路径。

时钟周期:由CPU时钟定义的定长时间间隔,是CPU工作的最小时间单位,也称节拍脉冲或T周期。

同步控制:选取部件中最长的操作时间作为统一的时间间隔标准,使所有部件都在这个时间间隔内启动并完成操作。

异步控制:系统不设立统一的时间间隔标准(基准时钟除外),各部件按各自的时钟工作,分别实现各自的时序控制,时间衔接通过应答通讯方式(又称握手方式)实现。

联合控制:同步控制与异步控制相结合。对大多数节拍数相近的指令,采用同步控制;而对少数节拍数多不固定的指令,采用异步控制。

单周期处理器:所有指令在一个时钟周期内完成的处理器。

多周期处理器:每条指令的执行分成多个阶段,每个时钟周期完成一个阶段的工作。

微操作:执行部件收到微命令后所进行的操作。

相容性微命令:能同时并行执行的微命令。

互斥性微命令:不能并行执行的微操作。

微指令:由微指令产生的一组实现一定微操作功能的微命令的组合。

微程序:实现一条指令功能的若干条微指令的集合。

微程序控制器:采用微程序设计方法设计的控制器。指令执行过程中所需要的所有控制信号以微指令的方式存在在控制存储器中,指令执行时,逐条读出微指令,以产生执行执行过程中所需要的控制信号。

控制存储器:微程序控制器中用于存放解释所有指令微程序的存储器。

硬布线控制器:又称为组合逻辑控制器,指令执行所需要的控制信号直接由逻辑门电路和触发器等构成的电路产生,与微程序控制器相比,具有结构复杂但速度快的特点。

一些问题

1)中央处理器的基本功能是什么?从实现其功能的角度分析,它应由哪些部件组成?

答:五方面的功能:

指令执行顺序的控制。即控制程序中的指令按事先规定的顺序自动地执行,从而保证程序执行过程中,指令在逻辑上的相互关系不被改变。

指令的操作控制。即产生指令执行过程中所需要的信号,以控制执行部件按指令规定的操作运行。

时间控制,即对每个控制信号进行定时,以便按规定的时间顺序启动各操作。对于任何一条指令而言,如果操作控制信号的时间不正确,则指令的功能也就不能正确实现。

数据加工处理。即对数据进行算术、逻辑运算,或将数据在相关部件之间传送。

异常和中断处理。如处理运算中的异常及处理外部设备的中断服务请求等。

组成:中央处理器主要由控制器和运算器两部分构成。控制器的主要功能包括:取指令、计算下一条指令的地址、对指令译码、产生相应的操作控制信号、控制指令执行的步骤和数据流动的方向。运算器是执行部件,由算术逻辑单元和各种寄存器组成。

2)CPU内部有哪些寄存器?它们的功能分别是什么?

答:**(1)** **指令寄存器(IR)**:IR用于保存指令。从主存储器取出的指令存放在IR中,直到新的指令从主存中取出为止。

(2) 程序计数器(PC) PC保存将要执行的指令地址,故又称指令地址寄存器。CPU取指令时,将PC的内容送到主存地址寄存器,然后修改PC的值形成下一条将要执行的指令地址

(3) **地址寄存器(AR)**:AR用来保存当前CPU所要访问的主存单元地址,无论CPU是取指令还是存取数据,都必须先将要访问的主存单元地址送AR,直到读/写操作完成。

(4)**通用寄存器组(GR)**:通用的含义是指寄存器的功能有多种用途,GR可作为ALU的累加器、变址寄存器、地址指针、指令计数器、数据缓冲器,用于存放操作数(包括源操作数、目的操作数及中间结果)和各种地址信息等。

(5) 数据缓冲寄存器(DR)

DR作为CPU和主存之间的数据缓冲寄存器用于存放操作数、运算结果或中间结果,以减少访问主存的次数;也可存放从主存中读出的数据,或准备写入主存的数据。

(6) 程序状态字寄存器(PSW)

PSW用于保存由算术运算指令、逻辑运算指令、测试结果等建立的各种条件标志。常见的状态信息包括进位标志(C)、溢出标志(V)、结果为负数标志(S)及结果为零标志(Z)等。

**3)**什么是取指周期?取指周期内应完成哪些操作?

答:取指周期就是从开始取指令到取指令完成所需要的时间。取指周期要完成两方面的操作,一是将PC的值送存储器地址寄存器MAR,并完成储单元去取指令;二是如何形成后续指令地址:

·顺序执行指令时,将PC内容加当前指令所占用的主存单元数(以字节为单位);

·当出现转移时,根据寻址方式、转移条件、转移的目标地址等内容计算得到。

**4)**指令有几种执行方式?说明各自的特点。

答:指令的执行方式有顺序执行方式、重叠执行方式和流水执行三种方式。

顺序执行方式:是一种串行执行方式,取出一条指令的操作全部结束后才能开始下一条指令的指令周期,这种方式控制简单,程序的执行速度慢。

重叠执行方式:是一种局部并行方式,通常将当前指令的执行阶段与下一条指令的取指阶段重叠进行,这种方式控制较复杂,但可以提高程序的执行速度;

流水执行方式:是一种并行执行方式,它将指令的执行分多个阶段(每个阶段的任务由特定的功能部件完成),一般而言,在该执行方式下,指令间的并行程度比重叠执行方式要高,控制更为复杂,可以更快地提高程序的执行速度。

**5)**计算机为什么要设置时序系统?说明指令周期、机器周期、和时钟周期的含义。

答:指令执行过程中的所有操作必须按照一定的次序完成,而且这些操作持续的时间也有严格的限制,因此,在计算机系统中需要设置时序系统,对指令执行过程中的所有控制信号进行时间控制,以保证指令功能的正确实现。

通常将一条指令从取出到执行完成所需要的时间称为指令周期,包括取指周期和执行周期,指令周期通过右若干和机器周期组成,所包含的机器周期的数量随指令功能和寻址方式的不同而不同。

机器周期分成若干个节拍电位时间段,通常以CPU完成一次微操作所需要的时间为基础来定义节拍电位的时间;由CPU时钟定义的定长时间间隔,是CPU工作的最小时间单位,也称节拍脉冲或T周期

  1. 组合逻辑控制器与微程序控制器各有什么特点?

答:硬布线控制器又称为组合逻辑控制器,这种控制器中的控制信号直接由各种类型的逻辑门电路和触发器等构成,与微程序控制器相比,具有结构复杂但速度快的特点。

微程序控制器的设计采用了存储技术和程序设计技术,使复杂的控制逻辑得到简化。通过过读出存放在微程序控制器中微指令产生指令执行过程中所需要的控制信号,所以,与硬布线控制器相比,微程序控制器的速度较慢。

  1. 说明程序与微程序,指令与微指令的异同

答:微程序是多条微指令系列的集合,用于实现指令的功能,属于机器指令级别,对用于的透明性不强,存放在CPU内的控制存储器中;程序则是为了完成某一应用功能所编写的指令(包括机器语言指令或高级语言指令)集合,属于高级语言级别,对用户的透明性好,运行时存放在计算机的主存中。

指令是指挥计算机执行某种功能的命令,是构成程序的基本单位,由操作码和地址字段构成;而微指令则用于微程序控制器中产生指令执行过程中所需要的微命令,是构成微程序的基本单位,由操作控制字段、判别测试字段和下地址字段等组成。

**8)**微命令有哪几种编码方法?它们是如何实现的?

答:微指令的微命令有三种编码方法,分别是直接表示方法、字段直接译码法和混合控制法。

直接表示法的基本思想是:将微指令操作控制字段的每个二进制位定义为一个微命令,用“1”或“0”表示相应的微命令的“有”或“无”。

字段直接译码法的基本思想是:将微指令格式中的操作控制字段分成若干组,每组中包含若干个互斥性微命令,将相容性的微命令安排在不同组。

混合控制法:将直接表示法与字段直接译码法混合使用,以便在微指令字长、并行性及执行速度和灵活性等方面进行折衷,发挥它们的共同优点。

9)简述微程序控制器和硬布线控制器的设计方法?

答: 微程序控制器设计方法:

1)分析指令执行的数据通路,列出每条指令在所有寻址方式下的执行操作流程和每一步所需要的控制信号;

2)对指令的操作流程进行细化,将每条指令的每个微操作分配到具体的机器周期的各个时间节拍信号上;

(3)设计微指令格式、微命令编码方法和程序组织方式;

(4)编制每条指令的微程序;并按照所设计的微程序组织方式存放到控存中;

(5)对微命令进行同步控制,并送数据通路的相关控制点。

硬布线控制器设计方法:

1)分析指令执行的数据通路,列出每条指令在所有寻址方式下的执行操作流程和每一步所需要的控制信号;

2)对指令的操作流程进行细化,将每条指令的每个微操作分配到具体的机器周期的各个时间节拍信号上,即对操作控制信号进行同步控制。

3)对每一个控制信号进行逻辑综合,得到每个控制信号的逻辑表达式。

4)最后采用逻辑门或PLA或ROM实现逻辑表达式的功能,各控制信号送数据通路的相关控制点。