计算机组成原理-中央处理器-笔记

第五章 中央处理器


CPU的功能和组成

CPU功能

CPU(中央处理器):控制程序按照设定的方式执行;CPU的主要功能有指令控制、操作控制、时间控制、数据加工

指令控制:控制程序的执行顺序;(顺序寻址、跳跃寻址)

操作控制:对指令的操作码译码后产生对应的控制信号,发送给各部件

时间控制:控制指令、操作的实施时间和先后顺序,维持各类操作的时序关系

数据加工:对数据进行算术逻辑运算,由ALU完成具体的运算

CPU的基本组成

现代CPU的基本组成:运算器、控制器(、片内Cache)

控制器的主要功能:

  • 从内存中去除一条指令,并指出下一条指令存放的位置;PC、IR
  • 对指令进行译码,产生相应的控制信号;OC(时序产生器和操作控制器)、时序电路、指令译码器
  • 控制CPU、内存和输入输出设备之间的数据流动;

运算器的主要功能:

  • 执行所有的算术逻辑运算,并进行逻辑测试;ALU、通用寄存器组、标志寄存器

CPU中主要的寄存器

  1. 数据缓冲寄存器(DR):暂时存放运算器与外界传送的数据

    作用:作为CPU和内存、外部设备之间信息传送的中转站;补偿CPU和内存、外围设备之间的速度差异;

  2. 指令寄存器(IR):保存当前正在执行的指令,其对应的操作码字段直接作为指令译码器的输入

  3. 程序计数器(PC):始终存放下一条指令的地址,对应于指令Cache的访问;其变化方式由顺序执行:PC = PC + 当前指令所占的空间,以及跳跃执行PC = (指令OPR)

  4. 地址寄存器(AR):保存CPU所访问数据的内存单元地址;

  5. 通用寄存器:暂时存放ALU运算的数据或结果;

  6. 状态条件寄存器(PSW):保存各种状态和条件控制信号;每一个信号由一个触发器保存,从而拼成一个寄存器

操作控制器与时序产生器

数据通路:两个部件之间传送信息的通路

操作控制器(OC):根据指令操作码和时序信号,产生各种操作控制信号;建立正确的数据通路,从而完成指令的执行;

根据设计方法不同,操作控制器可以分为:

  1. 硬布线控制器:采用时序逻辑技术实现
  2. 微程序控制器:采用存储逻辑实现
  3. 前两种方式结合

时序产生器:对各种操作实施时间控制

指令周期

指令周期的基本概念

CPU执行程序是一个”取指令——执行指令“的循环过程。

指令周期:CPU从内存取出一条指令,并执行完毕所需要的时间总和;

CPU周期:又称机器周期,一般为从内存中读取一条指令字的最短时间;一个CPU周期内,可以完成CPU的一个基本操作

时钟周期:也叫节拍脉冲或T周期,是计算机工作的基本时间单位。

指令周期示意图

在计算机组成原理-白中英-第六版中,间址周期被归到执行周期中

不同的指令的指令周期不同(可能含有不同的间址周期、执行周期、中断周期),一条指令可以包含1~多条CPU周期

用方框图语言表示指令周期

方框:代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。

菱形:通常用来表示某种判别或者测试;时间上依附于之前一个方框的CPU周期,而不单独占用一个CPU周期

~:表示一条指令执行完毕,转入公操作;所谓公操作就是一条指令执行完毕后,CPU所开始的一些操作,如处理外围设备请求的处理等。

例子:

时序产生器和控制方式

时序信号的作用:是计算机准确、迅速、有条不紊的工作,相当于CPU的时间表;

CPU通过时序控制来识别指令和数据:

  • 指令的周期第一个CPU周期,一定是取指周期,从存储单元中取出的一定是指令,需要送往IR指令寄存器;
  • 指令周期的其他周期,是执行周期,从存储单元中取出的一定是数据,需要送往运算器或存储单元

时序信号体制:电位-脉冲制,脉冲到达之前,电平信号必须要稳定;

控制器的时序信号

硬布线控制器的时序信号:常采用 主状态周期-节拍电位-节拍脉冲三级体制

微程序控制器的时序信号:一般采用 节拍电位-节拍脉冲二级体制

时序信号产生器:用逻辑电路实现时序的控制;

微程序控制器中时序信号产生器的组成:

  • 时钟源:提供稳定的基本方波脉冲
  • 环形脉冲发生器:产生一组有序的,间隔相等或者不等的脉冲序列;
  • 节拍脉冲和读写时序译码逻辑:环形脉冲与节拍脉冲共同作用产生各控制信号的时序;
  • 启停控制逻辑

控制方式

同步控制方式

在任何情况下,已定的指令在执行时,所需要的机器周期数和时钟周期数都固定不变。

特点:

  1. 以指令周期最长的指令为标准,确定指令执行的节拍数
  2. 控制器产生统一的、顺序固定的、周而复始的节拍电位和工作脉冲;
  3. 简单指令(指令周期短的指令)可空着一部分节拍不用,也就是说不管什么指令,所需要的执行时间都是相同的。

优点:控制电路简单

缺点:CPU由空闲时间,指令整体速度慢。

异步控制方式

每个指令周期包含的机器周其数目由 联络信号 控制,不固定。

特点:

  1. 每条指令需要多少节拍就产生多少节拍
  2. 指令执行完毕发出回答信号
  3. 控制器接收回答信号就开始执行下一条指令

优点:运行速度快

缺点:控制电路复杂

联合控制方式

  1. 大部分操作序列为固定的机器周期,对于某些时间难以确定的操作,则以执行部件的 “回答” 信号作为本次操作的结束
  2. 机器周期节拍脉冲数固定,但各指令的机器周期数不固定。

微程序控制器

原理

微程序技术是利用软件的方法来设计硬件的一门技术;

特点

具有规整性、灵活性、可维护性等一系列优点;逐渐取代了早期的组合逻辑控制器,已被广泛地应用

基本思想

仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放在一个只读存储器里;

当机器运行时操作,一条一条地读取这些微指令,从而产生全机所需要的各种操作控制信号,使部件按规定执行

控制部件与执行部件之间的联系:控制部件向执行部件发出控制信号,执行部件向控制部件返回状态信息;

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

微操作:控制部件接受微指令后所执行的操作;

  • 相容性微操作:在同一个CPU周期可以并行执行的微操作
  • 相斥性微操作:不能在同时或不能在同一个CPU周期内并行执行的微操作

状态测试:执行部件通过反馈线向控制部件反映当前操作状态,以使控制部件决定下一步的微命令

微指令

一个CPU周期中,实现一定操作功能的一组微命令的组合。微命令一般包含 操作控制顺序控制两大部分;所有微指令都存放在控制存储器中,使用微地址访问

  • 操作控制:用于发出管理和指挥全机工作的控制信号;
  • 顺序控制:用于决定产生下一条微指令的地址

微程序

能实现一条机器指令功能的多条微指令序列;

每条机器指令都对应着一段微程序

微指令的基本格式

微程序控制器原理框图

控制存储器(CM)

存放实现指令系统所需的全部微指令,由只读存储器构成,要求速度快,读出周期短

微指令寄存器

存放当前正在执行的一条微指令;

由为地址寄存器和微命令寄存器两部分构成

  • 微地址寄存器:决定将要访问的下一条微指令的地址;
  • 微命令寄存器:保存一条微指令的操作控制字段和判别测试字段

微程序控制器的工作过程

  1. 取指令微指令,是所有指令的公用微指令;
    • 通常存放在控制存储器中的 “0” 地址单元;
    • 所有机器指令的最后一条微指令的直接地址都指向 0 地址单元,用以取下一条微指令
  2. 操作码译码,转入执行周期对应微程序;
    • 对机器指令进行操作码译码,将所要执行的微指令的地址送入到微地址寄存器
  3. 微程序执行过程中,逐条读取微指令执行;
    • 一般要顺序寻址,直接使用下址字段,寻址后续微指令
    • 需要跳跃寻址的,经P2条件测试,修正微指令的下址
  4. 执行完对应于一条机器指令的微程序后,返回到取指(机器指令)微指令,不断重复,直到程序执行完毕。

微程序设计技术

  1. 微指令编码:微指令中操作控制字段的编码表示方式,以及如何把编码翻译成相应的微指令。

    微命令编码主要考虑的问题:

    • 如何有效的缩短微指令字长;
    • 如何有利于缩短微程序,减少所需的控存空间;
    • 如何有利于提高微程序执行的速度

    微命令编码表示方法:直接表示法、编码表示法、混合表示法

    直接表示法:操作控制字段中,每一位代表一个微命令

    优点:简单直观,其输出可直接用于控制,执行速度快

    缺点:微指令字较长,因而控制存储器容量较大

    编码表示法:将微指令操作控制字段划分为若干个子字段,每个子字段的所有微命令进行统一的编码,每个子字段的不同编码表示不同的微命令;

    遵循原则:

    • 把相斥微命令划分在同一个子字段中,相容微命令划分在不同的子字段中;
    • 字段划分应与数据通路结构相适应
    • 每个子字段留出一个空操作状态,即可以选择不发出该子字段对应的所有微命令
    • 每个子字段所定义的微命令不宜太多

    优点:可大大缩短微指令字长

    缺点:需要微命令译码,故执行速度稍稍减慢。

  2. 微地址的形成方法

    微程序入口地址:微程序第一条微指令所在控存单元的地址

    现行微指令:当前正在执行的微指令,现行微指令的地址叫做现行微地址

    后继微指令:现行微指令执行完毕后,下一条要执行的微指令,同理存在后继微地址

    微指令确定后继微地址的方法:计数器方式、多路转移方式

    计数器方式:同CPU中程序计数器产生机器指令地址的方法类似

    优点:微地址顺序控制字段简单,微地址产生机构简单

    缺点:多路并行转移功能较弱,速度慢,灵活性差

    多路转移方式:可根据“判别测试”标志和“状态条件”信息选定某一个候选微地址的方法

    特点:

    • 能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度快
    • 但转移地址逻辑需要用组合电路逻辑方法设计
  3. 微指令格式

    水平型微指令:一次能定义并执行多个并行微操作命令的微指令,有全水平型、字段译码法水平型、直接和译码相混合水平型

    垂直型微指令:微指令中设置微操作码字段,并采用微操作码编译法,由微操作码规定微指令的功能;垂直型微指令的结构类似于机器指令结构

  4. 动态微程序设计

硬连线控制器

了解,比微程序控制快

流水CPU

标准的冯·诺伊曼体系结构,采用的是串行处理,即一个时刻只能进行一个操作。

并行性的两种含义:

同时性:两个以上的事件在同一时刻发生;可以理解为多个CPU,一个CPU有一个进程

并发性:两个以上的事件在同一时间间隔内发生;可以理解为一个CPU,同时跑多个进程,但是某一时刻CPU只运行一个进程

并行性的三种形式:

时间并行:使用流水部件,时间重叠

空间并行:设置重复资源,同时工作

时间并行和空间并行:时间重叠,资源重复综合利用

流水CPU的结构

指令部件:指令部件本身构成一个流水线,由取指令、指令译码、计算操作数地址、取操作数等过程段组成。

指令队列:指令队列是一个先进先出的寄存器栈,用于存放经过译码的指令和取来的操作数。

执行部件:执行部件可以具有多个算术逻辑运算部件,这些部件本身又用流水线方式构成。

主要采用多体交叉存储器,以提高访问速度

流水CPU的加速比

若某CPU指令的执行,可划分为K个阶段,每个阶段1个周期

非流水线CPU处理 n 个任务时,所需时钟周期数:T1 = n × K

一个具有K级过程段的流水CPU处理这个n个任务时,需要的时钟周期数:Tk = K + (n - 1)

K:K个时钟周期用来处理第一个任务

n - 1:K个周期后,流水线被装满,剩余的n - 1个任务只需要 n - 1个周期即可完成

将T1 和 Tk的比率定义为k级线性流水CPU的加速比:Ck = T1/Tk

流水CPU的时空图

image-20220806102301683

流水线的分类

  • 指令流水线
    指令执行的并行处理;
    指令流划分为取指、译码、取操作数、执行、写回等过程;
  • 算术流水线
    运算操作步骤的并行处理;
    现代微机中大多采用流水的算术运算器;
  • 处理机流水线
    程序步骤的并行处理;
    将每一阶段的处理分散在不同的机器上,应用于多机系统中;

流水线中的主要问题

资源相关

  • 多条指令进入流水线后,在同一机器周期内争夺同一个功能部件发生的冲突
  • 解决方案:指令推迟执行,设置重复资源

数据相关

  • 在一个程序中,如果必须等待前一个指令执行完毕后,才能执行后一个指令,这两条指令就是数据相关
  • 解决方案:指令推迟执行,或定向传送技术

控制相关

  • 当执行转移指令时,根据转移条件是否发生来控制指令执行顺序
  • 解决方案:延迟转移法、转移预测法
posted @ 2022-07-31 22:59  伍六柒-  阅读(724)  评论(0编辑  收藏  举报