导图社区 中央处理器
计算机组成原理第五章中央处理器思维导图,介绍了CPU的功能和基本结构、指令执行过程、数据通路的功能和基本结构、中断系统等的相关内容。
编辑于2022-03-16 15:24:48chp5:中央处理器
5.1 CPU的功能和基本结构
CPU的基本结构
运算器
对数据进行加工的中心
组成
算术逻辑单元(ALU)
暂存寄存器
暂存从主存读到的数据
累加寄存器(ACC)
通用寄存器
用于暂时存放ALU的计算结果
通用寄存器组
位数=机器字长
不能替代指令寄存器
程序状态字寄存器(PSW)
保留状态信息
参与并决定微操作的形成
移位器
计数器
控制乘除运算的操作步数
控制器
负责协调并控制计算机各部件自学程序的指令序列
分类
硬布线控制器
微程序控制器
组成
程序计数器PC
指出下一条指令在主存中的存放位置
PC有自增功能
指令总是根据PC从主存读出
即使是转移指令也要先将目标指令地址传到PC
指令寄存器IR
保存当前正在执行的指令
指令译码器
存储器地址寄存器MAR
存放要访问的主存单元的地址
存储器数据寄存器MDR
存放向主存写入的信息or从主存读出的信息
间址周期
取操作数的有效地址
间址周期结束MDR中存放的是操作数地址
时序系统
微操作信号发生器
标志寄存器
条件转移指令执行时,需要对表值寄存器的内容进行测试,判断是否满足转移条件
工作原理
根据指令操作码、指令的执行步骤(微命令序列)和条件信号形成当前计算机各部件要用到的控制信号。
CPU的功能
指令控制
操作控制
时间控制
数据加工
中断处理
寄存器的可见性与可编程性 (汇编能不能使用)
可编程
PC
程序状态字寄存器
透明(用户不可见)
存储器地址寄存器
存储字数据寄存器
指令寄存器
5.2 指令执行过程
指令周期
从主存取出并执行一条指令的时间
不同指令的指令周期可能不同
常用若干机器周期表示
机器周期又包含若干时钟周期
时钟周期是CPU操作的最基本单位
数据流
取指周期
间址周期
执行周期
中断周期
CPU响应中断的时间是一条指令执行结束
若有中断,则在执行周期后进入中断周期
指令执行方案
单指令周期
不同类型的指令都用相同的执行时间完成
指令之间串行
周期长度取决于执行时间最长的指令
多指令周期
不同类型的指令都用不同的执行步骤完成
指令之间串行
可以选用不同个数的时钟周期完成不同指令的执行过程,需要多少周期就分配多少
不要求所有指令占用相同的执行时间
流水线方案
指令之间并行执行
在每个时钟脉冲周期完成一条指令
在每个时钟周期启动一条指令,让多条指令同时运行,但是各自处于不同执行步骤中
5.3 数据通路的功能和基本结构
数据通路
数据在功能部件之间传送的路径称为数据通路
路径上的部件称为数据通路部件
组成部分
程序计数器PC
逻辑算术运算器ALU
通用寄存器
取指部件
等....
数据通路的基本结构
CPU内部单总线方式
CPU内部三总线方式
专用数据通路方式
总线分类
内部总线
在CPU内部
外部总线
计算机各个部件之间互连
5.4 控制器的功能和工作原理
计算机的硬件系统通过数据总线、地址总线、控制总线连接
控制器的主要功能
从主存取指,并指出下一条指令在主存的位置
对指令进行译码或者测试,生成对应的操作控制信号
指挥控制CPU、主存、IO设备之间的数据流动方向
控制器分类
硬布线控制器
基本原理
根据指令的需要,当前的时序以及外部和内部的状态,按时间顺序发送一系列的微操作控制信号
控制单元CU的输入信号来源
译码器译码产生的指令信息,与时钟配合产生不同的控制信号
时序系统产生的机器周期信号与节拍信号
一个时钟脉冲使控制单元发送一个or一组操作信息
执行单元的反馈信息(标志)
时序系统
时钟周期
机器周期
所有指令执行的基准时间
通常以存取周期为机器周期
若存储字长=指令字长,取指周期可以视为机器周期
指令周期
CPU控制方式
同步控制
异步控制
联合控制
大部分采用同步控制
小部分采用异步控制
微程序控制器
采用存储逻辑实现,即把微操作信号代码化,使得指令转化为微程序存入控制存储器CM中
基本概念
微程序包含若干微指令,一条微指令对应一个或多个微操作命令
微操作是计算机中不可再拆分的操作
微命令之间存在相容性和互斥性
相容性指可以同时产生、共同完成一系列微操作的微命令
互斥性指不允许同时出现的微命令
微指令包含两大部分
操作控制字段
顺序控制字段
微周期
从控制器读取一条微指令并执行的时间
控制存储器CM
用于存放微程序,在CPU内部,用ROM实现
微程序是微指令的有序集合
微程序控制器组成
控制存储器CM
微指令寄存器CMDR/muIR
微地址形成部件
微地址寄存器CMAR
微程序控制器工作过程
执行取微指令公共操作
由机器指令的操作码字段,通过微地址形成部件,产生机器指令对应的为程序的入口地址,并送入CMAR
从CM去除对应微指令并执行
回到第一步,执行下一个机器指令
微指令编码方式
直接编码
字段直接编码
每个字段要留出一个状态,例如000表示不操作
字段间接编码
微指令格式
水平型微指令
微指令字较长但微程序短
可以一次完成多个基本操作
垂直型微指令
微指令较短但微程序较长
一次只能完成一个基本操作
混合型微指令
两类控制器的异同
相同点
PC和IR相同
不同点
确定与表示指令执行步骤的方法以及给出控制各部件运行所需要的控制信号的方案不同
微程序控制器的时序系统较为简单
5.5 指令流水线
基本概念
假设把指令划分为k阶段,指令流水线将取第a+1条指令的第i个阶段提前到第a条指令的第i-1个阶段执行
假设每个阶段耗时t,共有n条指令
总耗时T=(k-1+n)t
相比之下,采用顺序执行的耗时为T=ktn
指令流水线的耗时大约是顺序执行的1/k
所以把指令划分越细,提升越大
流水线方式不能缩短一条指令的执行时间,但是对于整个程序而言,可以大大增加指令执行的吞吐率
流水线设计原则
指令流水段个数以最复杂指令所用的功能段个数为准
流水段的长度以最复杂的操作的耗时为准
流水线指令集的特征
指令长度尽量一致
有利于简化取指和指令译码操作
指令格式应该尽量规整,尽量保证源寄存器的位置相同
采用Load/Store指令,其他指令都不能访问存储器
数据与指令在存储器“对齐”
流水线方式的特点
把一个任务分解,通过多个部件并行提高程序的运行速度
每个功能段部件后都要有一个寄存器,用于缓冲存储执行结果
各个功能段的耗时应该尽量相等
处理的必须是连续的任务
需要有装入时间和排空时间
分类
按使用级别不同分
部件功能级流水线
处理机级流水线
处理机间流水线
按完成的功能分
单功能流水线
多功能流水线
按同一时间内功能段之间的连接方式分
静态流水线
上下段连接固定
动态流水线
按功能段之间是否有反馈信号分
线性流水线
非线性流水线
影响因素
流水线冲突:特殊情况使得流水线无法正常执行后续命令引起阻塞或停顿
分类
资源冲突(结构冒险)
多条指令在同一时间争用同一资源
由于硬件竞争造成的冲突
解决方法
指令访存时,后一条相关指令暂停一个时钟周期
单独设置数据存储器和指令存储器
数据冲突(数据冒险)
下一条指令使用当前指令的计算结果
分类
写后读RAW
读后写WAR
写后写RAR
流水线按序流动一定不会出现WAR和RAR
解决方法
数据相关的指令及其后续指令都暂停一个~几个时钟周期
设置相关的专业通路,即数据旁路技术
编译优化,调整指令顺序
控制冲突(控制冒险)
确定下一条指令位置时,改变PC值时造成断流
解决方法
分支预测,尽早生成转移目标地址
预取转移成功和转移不成功控制流上的指令
加快、提前形成条件码
提高转移方向的猜准率
性能指标
吞吐率
单位时间内完成的任务数量or输出的结果数量
TP = n/T_k = n/((k+n-1)t)
当n趋向无穷大时,TP_max = 1/t
加速比
完成同样的任务,不使用流水线与使用流水线所用时间的比值
S = T_0/T_k = knt/((k+n-1)t) = kn/(k+n-1)
当n趋向无穷大时,S_max = k
效率
设备利用率成为流水线效率
完成n个任务占用的时空区有效面积与n个任务所用时间及k个流水段所围成的时空区总面积的比值
前半部分等于顺序执行所用时间T_0
后半部分等于流水线执行所用时间的k倍:kT_k
E = T_0/kT_k
任务数n趋向无穷大时,E_max = 1
超标量流水线
每个时钟周期可并发执行多条独立指令
即物理并行的基础上加上流水线
超流水线技术
时钟周期内再分段,一个时钟周期内一个功能部件使用多次
与超标量流水线和超流水线技术相比,超长指令字技术对Cache容量的要求更高
5.6 中断系统