计算机组成原理-中央处理器-笔记
第五章 中央处理器
CPU的功能和组成
CPU功能
CPU(中央处理器):控制程序按照设定的方式执行;CPU的主要功能有指令控制、操作控制、时间控制、数据加工
指令控制:控制程序的执行顺序;(顺序寻址、跳跃寻址)
操作控制:对指令的操作码译码后产生对应的控制信号,发送给各部件
时间控制:控制指令、操作的实施时间和先后顺序,维持各类操作的时序关系
数据加工:对数据进行算术逻辑运算,由ALU完成具体的运算
CPU的基本组成
现代CPU的基本组成:运算器、控制器(、片内Cache)
控制器的主要功能:
- 从内存中去除一条指令,并指出下一条指令存放的位置;PC、IR
- 对指令进行译码,产生相应的控制信号;OC(时序产生器和操作控制器)、时序电路、指令译码器
- 控制CPU、内存和输入输出设备之间的数据流动;
运算器的主要功能:
- 执行所有的算术逻辑运算,并进行逻辑测试;ALU、通用寄存器组、标志寄存器
CPU中主要的寄存器
-
数据缓冲寄存器(DR):暂时存放运算器与外界传送的数据
作用:作为CPU和内存、外部设备之间信息传送的中转站;补偿CPU和内存、外围设备之间的速度差异;
-
指令寄存器(IR):保存当前正在执行的指令,其对应的操作码字段直接作为指令译码器的输入
-
程序计数器(PC):始终存放下一条指令的地址,对应于指令Cache的访问;其变化方式由顺序执行:PC = PC + 当前指令所占的空间,以及跳跃执行PC = (指令OPR)
-
地址寄存器(AR):保存CPU所访问数据的内存单元地址;
-
通用寄存器:暂时存放ALU运算的数据或结果;
-
状态条件寄存器(PSW):保存各种状态和条件控制信号;每一个信号由一个触发器保存,从而拼成一个寄存器
操作控制器与时序产生器
数据通路:两个部件之间传送信息的通路
操作控制器(OC):根据指令操作码和时序信号,产生各种操作控制信号;建立正确的数据通路,从而完成指令的执行;
根据设计方法不同,操作控制器可以分为:
- 硬布线控制器:采用时序逻辑技术实现
- 微程序控制器:采用存储逻辑实现
- 前两种方式结合
时序产生器:对各种操作实施时间控制
指令周期
指令周期的基本概念
CPU执行程序是一个”取指令——执行指令“的循环过程。
指令周期:CPU从内存取出一条指令,并执行完毕所需要的时间总和;
CPU周期:又称机器周期,一般为从内存中读取一条指令字的最短时间;一个CPU周期内,可以完成CPU的一个基本操作
时钟周期:也叫节拍脉冲或T周期,是计算机工作的基本时间单位。
指令周期示意图
在计算机组成原理-白中英-第六版中,间址周期被归到执行周期中
不同的指令的指令周期不同(可能含有不同的间址周期、执行周期、中断周期),一条指令可以包含1~多条CPU周期
用方框图语言表示指令周期
方框:代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作。
菱形:通常用来表示某种判别或者测试;时间上依附于之前一个方框的CPU周期,而不单独占用一个CPU周期
~:表示一条指令执行完毕,转入公操作;所谓公操作就是一条指令执行完毕后,CPU所开始的一些操作,如处理外围设备请求的处理等。
例子:
时序产生器和控制方式
时序信号的作用:是计算机准确、迅速、有条不紊的工作,相当于CPU的时间表;
CPU通过时序控制来识别指令和数据:
- 指令的周期第一个CPU周期,一定是取指周期,从存储单元中取出的一定是指令,需要送往IR指令寄存器;
- 指令周期的其他周期,是执行周期,从存储单元中取出的一定是数据,需要送往运算器或存储单元
时序信号体制:电位-脉冲制,脉冲到达之前,电平信号必须要稳定;
控制器的时序信号
硬布线控制器的时序信号:常采用 主状态周期-节拍电位-节拍脉冲三级体制
微程序控制器的时序信号:一般采用 节拍电位-节拍脉冲二级体制
时序信号产生器:用逻辑电路实现时序的控制;
微程序控制器中时序信号产生器的组成:
- 时钟源:提供稳定的基本方波脉冲
- 环形脉冲发生器:产生一组有序的,间隔相等或者不等的脉冲序列;
- 节拍脉冲和读写时序译码逻辑:环形脉冲与节拍脉冲共同作用产生各控制信号的时序;
- 启停控制逻辑
控制方式
同步控制方式
在任何情况下,已定的指令在执行时,所需要的机器周期数和时钟周期数都固定不变。
特点:
- 以指令周期最长的指令为标准,确定指令执行的节拍数
- 控制器产生统一的、顺序固定的、周而复始的节拍电位和工作脉冲;
- 简单指令(指令周期短的指令)可空着一部分节拍不用,也就是说不管什么指令,所需要的执行时间都是相同的。
优点:控制电路简单
缺点:CPU由空闲时间,指令整体速度慢。
异步控制方式
每个指令周期包含的机器周其数目由 联络信号 控制,不固定。
特点:
- 每条指令需要多少节拍就产生多少节拍
- 指令执行完毕发出回答信号
- 控制器接收回答信号就开始执行下一条指令
优点:运行速度快
缺点:控制电路复杂
联合控制方式
- 大部分操作序列为固定的机器周期,对于某些时间难以确定的操作,则以执行部件的 “回答” 信号作为本次操作的结束
- 机器周期节拍脉冲数固定,但各指令的机器周期数不固定。
微程序控制器
原理
微程序技术是利用软件的方法来设计硬件的一门技术;
特点
具有规整性、灵活性、可维护性等一系列优点;逐渐取代了早期的组合逻辑控制器,已被广泛地应用
基本思想
仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放在一个只读存储器里;
当机器运行时操作,一条一条地读取这些微指令,从而产生全机所需要的各种操作控制信号,使部件按规定执行
控制部件与执行部件之间的联系:控制部件向执行部件发出控制信号,执行部件向控制部件返回状态信息;
微命令:控制部件通过控制线向执行部件发出的各种控制命令
微操作:控制部件接受微指令后所执行的操作;
- 相容性微操作:在同一个CPU周期可以并行执行的微操作
- 相斥性微操作:不能在同时或不能在同一个CPU周期内并行执行的微操作
状态测试:执行部件通过反馈线向控制部件反映当前操作状态,以使控制部件决定下一步的微命令
微指令
一个CPU周期中,实现一定操作功能的一组微命令的组合。微命令一般包含 操作控制和 顺序控制两大部分;所有微指令都存放在控制存储器中,使用微地址访问
- 操作控制:用于发出管理和指挥全机工作的控制信号;
- 顺序控制:用于决定产生下一条微指令的地址
微程序
能实现一条机器指令功能的多条微指令序列;
每条机器指令都对应着一段微程序
微指令的基本格式
微程序控制器原理框图
控制存储器(CM)
存放实现指令系统所需的全部微指令,由只读存储器构成,要求速度快,读出周期短
微指令寄存器
存放当前正在执行的一条微指令;
由为地址寄存器和微命令寄存器两部分构成
- 微地址寄存器:决定将要访问的下一条微指令的地址;
- 微命令寄存器:保存一条微指令的操作控制字段和判别测试字段
微程序控制器的工作过程
- 取指令微指令,是所有指令的公用微指令;
- 通常存放在控制存储器中的 “0” 地址单元;
- 所有机器指令的最后一条微指令的直接地址都指向 0 地址单元,用以取下一条微指令
- 操作码译码,转入执行周期对应微程序;
- 对机器指令进行操作码译码,将所要执行的微指令的地址送入到微地址寄存器
- 微程序执行过程中,逐条读取微指令执行;
- 一般要顺序寻址,直接使用下址字段,寻址后续微指令
- 需要跳跃寻址的,经P2条件测试,修正微指令的下址
- 执行完对应于一条机器指令的微程序后,返回到取指(机器指令)微指令,不断重复,直到程序执行完毕。
微程序设计技术
-
微指令编码:微指令中操作控制字段的编码表示方式,以及如何把编码翻译成相应的微指令。
微命令编码主要考虑的问题:
- 如何有效的缩短微指令字长;
- 如何有利于缩短微程序,减少所需的控存空间;
- 如何有利于提高微程序执行的速度
微命令编码表示方法:直接表示法、编码表示法、混合表示法
直接表示法:操作控制字段中,每一位代表一个微命令
优点:简单直观,其输出可直接用于控制,执行速度快
缺点:微指令字较长,因而控制存储器容量较大
编码表示法:将微指令操作控制字段划分为若干个子字段,每个子字段的所有微命令进行统一的编码,每个子字段的不同编码表示不同的微命令;
遵循原则:
- 把相斥微命令划分在同一个子字段中,相容微命令划分在不同的子字段中;
- 字段划分应与数据通路结构相适应
- 每个子字段留出一个空操作状态,即可以选择不发出该子字段对应的所有微命令
- 每个子字段所定义的微命令不宜太多
优点:可大大缩短微指令字长
缺点:需要微命令译码,故执行速度稍稍减慢。
-
微地址的形成方法
微程序入口地址:微程序第一条微指令所在控存单元的地址
现行微指令:当前正在执行的微指令,现行微指令的地址叫做现行微地址
后继微指令:现行微指令执行完毕后,下一条要执行的微指令,同理存在后继微地址
微指令确定后继微地址的方法:计数器方式、多路转移方式
计数器方式:同CPU中程序计数器产生机器指令地址的方法类似
优点:微地址顺序控制字段简单,微地址产生机构简单
缺点:多路并行转移功能较弱,速度慢,灵活性差
多路转移方式:可根据“判别测试”标志和“状态条件”信息选定某一个候选微地址的方法
特点:
- 能以较短的顺序控制字段配合,实现多路并行转移,灵活性好,速度快
- 但转移地址逻辑需要用组合电路逻辑方法设计
-
微指令格式
水平型微指令:一次能定义并执行多个并行微操作命令的微指令,有全水平型、字段译码法水平型、直接和译码相混合水平型
垂直型微指令:微指令中设置微操作码字段,并采用微操作码编译法,由微操作码规定微指令的功能;垂直型微指令的结构类似于机器指令结构
-
动态微程序设计
硬连线控制器
了解,比微程序控制快
流水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的时空图
流水线的分类
- 指令流水线
指令执行的并行处理;
指令流划分为取指、译码、取操作数、执行、写回等过程; - 算术流水线
运算操作步骤的并行处理;
现代微机中大多采用流水的算术运算器; - 处理机流水线
程序步骤的并行处理;
将每一阶段的处理分散在不同的机器上,应用于多机系统中;
流水线中的主要问题
资源相关
- 多条指令进入流水线后,在同一机器周期内争夺同一个功能部件发生的冲突
- 解决方案:指令推迟执行,设置重复资源
数据相关
- 在一个程序中,如果必须等待前一个指令执行完毕后,才能执行后一个指令,这两条指令就是数据相关
- 解决方案:指令推迟执行,或定向传送技术
控制相关
- 当执行转移指令时,根据转移条件是否发生来控制指令执行顺序
- 解决方案:延迟转移法、转移预测法