第五章-中央处理器
CPU的功能:
- 指令控制:完成取指令、分析指令和执行指令的操作,即程序的顺序控制
- 操作控制:一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生有内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作
- 时间控制:对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号
- 数据加工:对数据进行算术和逻辑运算
- 中断处理:对计算机运行过程中出现的异常情况和特殊请求进行处理
专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路
- 使用多路选择器根据控制信号选择一路输出
- 使用三态门可以控制每一路是否输出
运算器的基本结构
- 算术逻辑单元【用户可见】
- 通用寄存器组【用户可见】
- 暂存寄存器
- 累加寄存器
- 程序状态字寄存器(PSW)【用户可见】
- 移位器
- 计数器
控制器的基本结构
- 程序计数器(PC)【用户可见】
- 指令寄存器(IR)
- 指令译码器(ID)
- 微操作信号发生器
- 时序系统
- 存储器地址寄存器(MAR)
- 存储器数据寄存器(MDR)
指令执行过程
指令周期:CPU从主存中每取出并执行一条指令所需的全部时间
指令周期常常用若干个机器周期来表示,机器周期又叫CPU周期
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)
- 取值周期
- 间址周期
- 执行周期
- 中断周期
指令执行方案
- 单指令周期:所有指令都选用相同的执行时间来完成(串行)
- 多指令周期:对不同类型的指令选用不同的执行步骤来完成(串行)
- 流水线方案:在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行
单总线方式
寄存器之间数据传送
1 | (PC)->Bus PCout有效,PC内容送总线 |
主存与CPU之间的数据传送
1 | (PC)->Bus->MAR PCout和MARin有效,现行指令地址->MAR |
执行算术或逻辑运算
1 | Ad(IR)->Bus->MAR MDRout和MARin有效 |
控制器的功能和工作原理
- 一个节拍内可以并行完成多个“相容的”微操作
- 同一个位操作可能在不同指令的不同阶段使用
- 不同指令的执行周期所需节拍数不相同。为了简化设计,选择定长的机器周期,以可能出现的最大节拍数为准
- 若是及所需节拍数较少,可将微操作安排在机器周期末尾几个节拍进行
在组合逻辑控制器中,微操作控制信号的形成主要与指令译码信号和时钟信号有关
安排微操作时序原则:
- 微操作的先后顺序不得随意更改
- 被控对象不同的微操作,尽量安排在一个节拍内完成
- 占用时间较短的微操作尽量安排在一个节拍内完成并允许有先后顺序
硬布线控制器的特点:
- 指令越多,设计和实现越复杂,因此一般用于RISC
- 如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难
- 由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号有组合逻辑电路即时产生
微指令中可能包含多个微命令,但微命令与微操作一一对应;一个指令对应一个微程序,一个微程序可能包含多个微指令
CM(控制存储器):用于存放各指令对应的微程序,控制寄存器用只读存储器ROM构成。
CMAR(微地址寄存器):接受微地址形成部件送来的微地址,为在CM中读取微指令做准备。
CMDR(微指令寄存器):用于存放从CM中取出的微指令,他的位数同微指令字长相等。
微指令的格式:
- 水平型微指令:一条微指令能定义多个可并行的微命令
- 优点:微程序短,执行速度快
- 缺点:微指令长,编写微程序麻烦
- 垂直型微指令:一条微指令只能定义一个微命令,由微操作码字段规定具体功能
- 优点:微指令短、简单、规整,便于编写微程序
- 缺点:微程序长,执行速度慢,工作效率低
- 混合型微指令:在垂直型的基础上增加一些不太复杂的并行操作。微指令较短,仍便于编写;微程序不长,执行速度加快。
微指令的编码方式:
- 直接编码方式:在微指令的操作控制字段中,每一位代表一个微操作命令,某位为“1”表示该控制信号有效
- 优点:简单、直观,执行速度快,操作并行性好
- 缺点:为指令字长过长,n个微命令就要求微指令的操作字段有n位,造成控存容量极大。
- 字段直接编码方式:将微指令和控制字段分成若干“段”,每段经译码后发出控制信号。微命令字段分段原则:
- 互斥性微命令分在同一段,相容性微命令分在不同段内
- 每个小段中包含的信息为不能太多,否则将增加译码线路的复杂性和译码时间
- 一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此,当某字段的长度为3位时,最多只能表示7个互斥的微命令,通常用000表示不操作。
- 字段间接编码方式:一个字段的某些微命令需由另一个字段中的某些微命令来解释,由于不是靠字段直接译码发出的微命令,故称为字段间接编码,又称隐式编码
- 优点:可进一步缩短微指令字长
- 缺点:削弱了微指令的并行控制能力,故通常作为字段直接编码方式的一种辅助手段。
微指令的地址形成方式:
- 微指令的下地址字段:微指令格式中设置一个下地址字段,有微指令的下地址字段直接指出后继微指令的地址,又称为断定方式
- 根据机器指令的操作码形成:当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。
- 增量计数器法
- 分支转移:转移方式:指明判别条件;转移地址:指明转移成功后的去向
- 通过测试网络
- 由硬件产生微程序入口地址
指令流水线
- 顺序执行方式(串行执行方式):总耗时:T=n*3t=3nt
- 优点:控制简单,硬件代价小
- 执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,个功能不见得利用率很低
- 一次重叠执行方式:总耗时T=3t+(n-1)*2t=(1+2n)t
- 优点:程序的执行时间缩短1/3,个功能部件的利用率明显提高
- 缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂了
- 二次重叠执行方式:总耗时T=3t+(n-1)t=(2+n)t
- 属于一种最理想情况
流水线每一个功能段部件后面都要有一个缓冲寄存器,或称为锁存器,其作用是保存本流水段的执行结果,提供给下一流水段使用。
- 属于一种最理想情况
影响流水线的因素:
- 结构相关(资源冲突):由于多条指令在同一时期争用同一资源而形成的冲突
- 解决办法1:后一相关指令暂停一周期
- 解决办法2:资源重复配置(数据存储器+指令存储器)
- 数据相关(数据冲突):数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。
- 解决办法1:把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插入“NOP”两种方法
- 解决办法2:数据旁路技术。
- 解决办法3:编译优化:通过编译器调整指令顺序来解决数据相关。
- 控制相关(控制冲突):当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。
- 解决办法1:转移指令分支预测。简单预测(永远猜ture或false)、动态预测(根据历史情况动态调整)
- 解决办法2:预取转移成功和不成功两个控制流方向上的目标指令
- 解决办法3:加快和提前形成条件码
- 解决办法4:提高转移方向的猜准率
流水线的分类
- 部件功能级、处理机级和处理机间级流水线
- 单功能流水线和多功能流水线
- 动态流水线和静态流水线
- 线性流水线和非线性流水线
流水线的多发技术:
- 超标量技术:每个时钟周期内可并发多条独立指令、要配置多个功能部件、不能调整指令的执行顺序
- 超流水技术:在一个时钟周期内在分段、在一个时钟周期内一个功能部件使用多次
- 超长指令字:由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条具有多个操作码字段的超长指令字(可达几百位),采用多个处理部件
RISC处理器只有“取数LOAD”和“存数STORE”指令才能访问主存
条件转移指令只需要进行取指-译码-执行-访存四个阶段
无条件转移指令只需要进行取指-译码-执行
- 标题: 第五章-中央处理器
- 作者: XCurry
- 创建于 : 2024-10-02 15:30:00
- 更新于 : 2024-10-05 17:44:28
- 链接: https://github.com/XYXMichael/2024/10/02/计算机组成原理/第五章-中央处理器/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论