文章目录
中央处理器
CPU的功能和组成
CPU的功能
- 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
- 操作控制:一条指令由若干条操作信号实现
- 时间控制:指令各个操作实施时间的定时
- 数据加工:算数运算和逻辑运算
- 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理
CPU的基本组成
运算器
组成:算数逻辑运算单元(ALU)、通用寄存器、数据缓冲寄存器(DR)
主要负责对程序所执行指令进行分析,并协调计算机各个部件进行工作
主要功能:
- 执行所有的算数运算
- 执行所有的逻辑运算,并进行相应的逻辑测试
控制器
组成:程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器
负责对数据进行逻辑运算和算数运算操作
功能:
- 从cache中取出一条指令,并指出下一条指令在cache中的位置
- 对指令进行译码或者测试,并产生相应的操作控制信号
- 指挥并控制CPU、cache和输入输出设备之间数据流动的方向
寄存器
存储中间数据处理结束
内部缓存
用来暂存CPU运行时的数据和指令
CPU中的主要寄存器
-
数据缓冲寄存器(DR):用来暂时存放ALU的运算结果
作用:
- 作为ALU和运算结果和通用寄存器之间进行数据传输时的时间上的缓冲
- 补偿CPU和内存、外围设备之间在操作速度上的差别
-
指令寄存器(IR):仅仅保存当前正在执行的一条指令
-
程序计数器(PC):用于指出下一条指令在主存中的存放地址,CPU就是根据PC中的内容去主存中取指令的。由于程序中的指令通常是顺序执行的,所以PC有自增的功能
-
数据地址寄存器(AR):用来保存当前CPU所访问的数据存储器的单元的地址
-
通用寄存器:当算数逻辑单元(ALU)执行算数或者逻辑操作的时候,为ALU提供一个工作区
-
程序状态字寄存器(PSWR):保存不同运算或者测试结果建立的各种代码
操作控制器与时序产生
数据通路:将寄存器之间传送信息的通路
操作控制器:为数据通路的建立提供各种操作信号
- 时序逻辑型(硬布线控制器):采用时序逻辑电路实现的
- 存储逻辑型(微程序控制器):采用存储逻辑技术实现的
时序产生器:提供定时和时序信号
其他部件:中断系统、总线接口
指令周期
定义:取出一条指令并执行的时间
指令的执行过程:
指令周期通常由若干个CPU周期数来表示,每个CPU周期完成一个基本操作
相关定义:
- 机器周期:CPU周期
- CPU周期:主存的工作周期为基础来规定CPU的执行周期
- 时钟周期:在一个CPU周期内,要完成若干个微操作,CPU主频的倒数
- T周期(节拍脉冲):把一个CPU周期分为若干个时间段,每一个时间段称为一个节拍脉冲
- 单周期:CPU在一个时钟周期内完成从取指令到得到结果
- 多周期:把指令的执行分为多个阶段,每个阶段在一个时钟周期内完成,故而不同指令的周期数可以不同
时钟周期不等于T周期
MOV指令的指令周期
MOV是一条RR型指令
它需要两个CPU周期,取指令和执行指令各需要一个CPU周期
执行操作:
- 从指存中取出指令
- 对程序计数器PC加1,以便为取一条指令做好准备
- 对指令操作码进行译码或者测试
取指周期:
- PC–>ABUS–>指令Cache,译码并启动
- 指令Cache–>IR
- PC–>PC+1,为取一条指令做好准备
- IR中的操作码被译码或者测试,CPU识别指令
指令执行阶段:
- R1–>ALU,R1中的数据通过ALU传输
- ALU–>DBUS–>DR–>R0
LAD指令的指令周期
计算机的性能指标
- 主频/时钟周期
- 主时钟的频率:CPU的主频(f)
- 主频的倒数称为CPU的时钟周期(T),T=1/f
- CPI:执行一条指令所需要的平均时钟周期数
- MIPS:每秒执行百万条指令,即单位时间内执行指令的周期数
时序产生器和控制方式
时序信号的作用和体质
作用:
- 指挥机器的工作
- CPU可以用时序信号/周期信息来辨认我们取出的是数据还是指令
- 一个CPU周期中时钟脉冲对CPU的动作有严格的约束
- 操作控制器发出的各种信号是时间(时序信号)和空间(部件操作信号)的函数
时序信号产生器
用逻辑电路实现时序的控制
微程序控制器中时序信号产生器的组成
- 时钟源:提供稳定的基本方波时钟信号
- 环形脉冲发生器:产生一组有序时间间隔相等或不等的脉冲序列
- 节拍脉冲和存储器读写时序译码逻辑:环形脉冲与节拍脉冲共同作用产生各个控制信号的时序
控制方式
- 同步控制方式:指令的机器周期和时钟周期数不变
- 完全统一机器周期执行各种不同的指令
- 采用不定长机器周期
- 中央控制器与局部控制的结合
- 异步控制方式:每条指令的执行需要多长时间就占多少时间
- 联合控制方式
- 大部分指令在固定的周期内完成,少数难以确定的操作采取异步的方式
- 机器周期的节拍脉冲固定,但是各个指令的机器周期数不固定
体制
时序信号的基本体制是电位——脉冲制
脉冲信号到达之前,电平信号必须平稳
微程序控制器
时序信号
微程序控制原理
- 微程序设计技术
利用软件技术来设计硬件的一种技术
具有:规整性、灵活性、可维护性等一系列优点
- 基本思想:
将操作控制信号编为微指令存放到存储器中,运行的时候一条一条的读出这些微指令,从而产生需要的各种操作信号
- 微程序控制器的基本组成部件:
控制存储器、微指令寄存器、地址转移逻辑
地址转移逻辑:用于跳跃寻址微指令的时候,承担完成自动修改微地址的任务
微指令寄存器(MIR):存放由控制存储器中读出的一条微指令信息
微地址寄存器( μ A R \mu AR μAR):决定要访问的下一条微指令的地址
微命令寄存器:保存一条微指令的操作控制字段和判别测试字段的信息
控制存储器(CM):存放实现全部指令系统的微指令;由ROM构成,要求速度快,读写周期短;所有的微指令都存放在控制存储器,使用地址访问
CM的字长就是微指令的字长,CM是控制器的一部分
微操作和微命令
控制线:控制部件与执行部件的连接线
微操作:执行部件接受微命令后执行的操作
微命令:控制部件通过控制线向执行部件发送各种控制命令,是构成控制序列的最基本操作
状态测试:执行部件通过反馈部件反应当前的操作状态,来决定控制部件下一步的微命令
微操作是微命令的执行过程;微程序由一系列的微指令排列组合而成,通常存储在ROM中
- 相容性微命令:可以同时产生、同时完成某一些微操作的微命令,在同一个CPU周期内可以并行执行的
- 互斥性微命令:在机器中不允许同时出现的微命令,在同一个CPU周期内不可以并行执行的
微指令和微程序
- 微指令
一个CPU周期内,能够实现一定操作功能的的微命令的组合,微指令的组成:操作控制和顺序控制
操作控制:用于发出管理和指挥全机工作的控制信号
顺序控制:用于决定产生下一条微指令的地址
- 微程序
能够实现一条机器指令功能的多条微指令序列
操作控制字段中的每一位都代表一个微命令
微命令信号都是节拍电位信号
优点:简单直观,便于控制,执行速度快
缺点:微指令字长较长
微程序设计技术
微命令编码
直接表示法/编码表示法/混合表示法
- 直接表示法
操作控制字段中的各位可以直接控制计算计,不需要进行译码
- 编码表示法
将操作控制字段分为若干个小段,每段内采用的是最短编码法,段与段之间采用直接控制法
编码的特点:可以避免互斥,使得指令字大大缩短,但是由于增加了译码电路,使得微程序执行速度减慢
- 混合表示法
将前两种结合在一起,兼顾两者特点,一个字段的某些编码不能够独立的定义某些微命令,而需要与其他字段的编码来联合定义
微地址的形成方法
- 计数器方式
类似于CPU中的PC产生机器指令地址
优点:微程序的顺序控制字段较短,微地址产生简单
缺点:多路并行转移功能较弱,速度较慢,灵活性较差
- 多路转移方式
根据条件转移
特点:能够以较短的顺序控制字段配合,并实现多路并行转移,灵活性好,速度较快
微指令格式
- 水平型微指令
是指一次能定义并能够并行执行的多个微命令的微指令
- 垂直型微指令(采用编码的方式)
设置微操作控制字段时,一次只能够执行一到两个命令
水平型微指令和垂直型微指令的比较
水平型微指令 | 垂直型微指令 | |
---|---|---|
并行操作 | 强 | 弱 |
效率 | 强 | 弱 |
灵活性 | 强 | 弱 |
执行时间 | 较短 | 较长 |
指令字的字长 | 较长 | 较短 |
微程序的长度 | 较短 | 较长 |
难易 | 较难 | 较易 |
动态微程序设计
采用EPROM作为控制存储器,通过改变微指令和微程序来改变机器的指令系统
硬布线控制器
时序信号:
硬布线是一种由门电路和触发器构成的复杂树型网络,相比于微程序其速度更快
输入信号来源
- 操作译码器( I m I_m Im):不同的指令操作码和寻址方式决定执行操作
- 执行部件的反馈( B j B_j Bj):受条件码影响,在不同的条件状态产生不同的执行结果
- 节拍电位信号M和节拍脉冲信号T:使得微操作信号按照时序要求产生
指令的执行流程
微操作控制信号的产生
- 微程序控制器中
微操作控制信号由微指令产生,并且可以重复利用
- 硬布线控制器中
微操作控制信号由布尔代数表达式描述产生的输出函数产生
流水CPU
并行处理技术
并行的含义:
- 同时性:两个以上的事件在同一个时刻发生
- 并发性:两个以上的事件在同一个时间间隔内发生
并行方式:
-
时间并行
让多个处理过程在时间上相互错开,轮流使用同一套硬件设备的各个部件,采用流水线处理部件
-
空间并行(资源重复):以数量取胜
-
时间+空间并行
微指令的执行方式
串行执行
并法执行
流水CPU的结构
指令部件、指令队列、执行部件
- 指令部件
指令部件本身构成一个流水线,取指令、指令译码、计算操作数地址、取操作数等过程段组成
- 指令队列
是一个先进先出的寄存器栈,用于存放经过译码的指令和取来的操作数
- 执行部件
可以具有多个ALU部件,这些部件由流水线的方式被构成
主存采用多体交叉存储器,来提高访问速度
流水CPU的时空图
-
顺序方式的串行指令执行方式
-
并发指令的执行方式
流水线分类
- 指令流水线:指令执行的并行处理
- 算数流水线:运算操作步骤的并行处理
- 处理机流水线:程序步骤的并行处理
指令流水线有:取值(IF)、译码(ID)、执行(EX)、访存(MEM)、写回寄存器(WB)
流水线中的主要问题
资源相关
由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关
解决方案:
- 后一相关指令暂停1周期
- 资源重复配置:数据存储器+指令存储器
数据相关
解决方案:
- 将遇到数据相关的指令及其后续指令都暂存一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞"stall"和软件插入"NOP"两种方法
- 数据旁路技术,直接采用运算器的结果
- 编译优化:通过编译器调整指令顺序来解决数据冲突
RAW:写后读,出现在按序发射,按序完成
WAR:读后写,后面的指令覆盖前面的指令的读取单元,一般出现在乱序发射的情况
WAW:写后写,前后两个操作都是对同一个对象进行操作,在存在多个功能部件的时候,后一条指令可能比前一条指令先完成
控制相关
当流水线遇到转移指令和其他改变PC值的指令而造成断流的时候,会引起控制相关
解决方案:
- 尽早判断转移是否发生,尽早生成转移目标地址
- 预取转移成功和不成功两个控制流方向上的目标指令
- 加快和提前形成条件码
- 提高转移方向的猜测率
RISC CPU
基本要素
- 一个有限的简单指令集
- CPU配备有大量的通用寄存器
- 强调流水线的优化