导图社区 中央处理器
本篇思维导图详细梳理了计算机组成原理--中央处理器这一章节的知识结构,正在学习计算机的小伙伴可以多多了解。
编辑于2022-04-24 23:00:11中央处理器
CPU功能和基本结构
功能
指令控制
操作控制
时间控制
数据加工
数据处理
结构
运算器
对数据进行加工
ALU:算术逻辑单元
ACC:累加寄存器
暂存寄存器
通用寄存器
PSW(程序状态字寄存器)
移位器
计数器
控制器
取、分析、执行指令
PC计数器
IR:指令寄存器
MAR、MDR
指令译码器(对指令操作码部分进行译码)
时序系统、微操作信号发生器
指令执行过程
指令周期
定义:执行一条指令所用的时间
组成:
取指周期
机器周期
T1
时钟周期
PC->BUS
一条微指令
BUS->MAR
T2
1->R(CUP发出读指令)
MEM(MAR)->MDR
PC+1
T3
MDR->BUS->IR
T4
指令译码:OP(IR)->CU
间指周期
T5
Ad(IR)->BUS->MAR (或直接从MDR将地址码送到MAR)
T6
1->R(CUP发出读指令)
MEM(MAR)->MDR
T7
MDR->Y(暂存器,暂存操作数)
执行周期
T8
(ACC)+(Y)->Z
T9
Z->MDR(或ACC)
T10
MDR/ACC->MEM(MAR)
1->W(CPU发出写指令)
中断周期
数据的传送过程(以单总线为例)
指令执行方案
单指令周期
所有指令都选用相同的执行时间
指令间串行执行:一条指令执行完毕后再执行下一条指令
多指令周期
对不同指令采用不同的执行步骤
指令需要几个周期就给它几个周期
指令流水线
在每个时钟周期启动一条指令
宏观上指令间并行执行
数据通路(内部总线)
数据在各个功能部件之间传送的路径
功能
描述了数据从什么地方开始,经过那个寄存器或多路开关,最后送到哪个部件
实现CPU内部的运算器与寄存器及寄存器之间的数据交换
基本结构
内部单总线结构
所有的寄存器的输入输出端都连接在一条公共通路上
内部三总线结构
内部有多条公共通路
专用数据通路
根据指令的执行过程中的数据和地址的流动方向安排线路‘
各部件之间的数据传送
寄存器之间
主存与CPU之间
算数逻辑运算:
寄存器与算术逻辑单元
控制器
计算机系统的指挥控制中心
功能
从主存中取指令,并指出下一条指令的主存地址
对指令进行译码和测试,产生相应的控制信号
指挥并控制CPU、主存、输入输出设备之间的数据流动方向
两种不同的控制器
硬布线控制器(组合逻辑控制器)
原理
根据指令要求、当前的时序以及外部和内部的状态,按时间的顺序发送一系列控制信号
由组合逻辑门电路和一些触发器构成
根据微操作命令的操作时间表,列出某条指令的逻辑表达式,根据逻辑表达式设计电路
指令集越大,电路设计越复杂
CU的输入信号
经指令译码器产生的译码信号(通过该信号来判断要执行什么微操作)
指令周期信号(FE\IND\EX\INT)【判断当前处于哪一个指令周期)
节拍信号(发出控制信号的节奏)
一个节拍发出一组微操作
那些微操作可以在一个节拍内执行?
被控目标(对象)不同【数据传输没有冲突】
占用时间短的操作(比如寄存器之间的数据操作)
访存操作用时最长,单独占用一个时钟周期
前提是多总线结构
执行单元的反馈信号
系统总成(中断请求、DMA请求)
微程序控制器
只需要根据节拍取相应的微程序执行既可
思想
1条微指令(机器指令) 对应 1个微程序
1个微程序 对应 1个微命令
1个微命令 对应 若干微指令
1个微指令 对应 1个或多个微操作命令
微程序控制器的基本结构
CM控制存储器(用于存放微程序)
微指令寄存器(用于存放从控制存储器中取出的微指令)
微地址形成部件(产生微程序的初始位地址和后继微地址)
CMAR微地址寄存器(接受微地址形成部件送来的微地址,为在CM中读取微指令做准备)
微指令的设计
编码方式(如何对微指令的控制字段进行编码)
直接编码
控制字段的每一位代表一个微命令
不需要译码
字段直接编码
控制字段的若干位组成一组(小字段)
每个字段的编码代表一个微命令
每个字段独立译码
分段原则
互斥性的微命令放在同一组
相容性的微命令放在不同组
每个小字段包含的信息位不能太多
每个小段预留出一种状态表示空操作【一般全0表示空操作】
字段间接编码(隐式编码)
一个字段的某些微命令需要另一个字段的某些微命令来解释
指令格式
水平型
直接编码
字段直接编码
字段间接编码
混合编码
一条微指令可定义多个微命令
【操作控制字段;下地址】
垂直型
采用类似机器指令操作码的方式
一条微指令定义一个微命令
【操作码;目的地址;源地址】
混合型
垂直型的基础上增加一些并行操作
微指令地址的形成方式
根据机器指令操作码OP(IR)确定下一条微指令的首地址
通过此方法找到当前取出的机器指令所对应的微程序入口地址
断定法
下地址法
根据下地址找到下一条微指令
计数器法
μPC+1顺序找到下一条指令
由专门硬件指明取值/中断周期的微程序首地址
工作过程
除了第一条微指令,其余指令前都要加一个将微指令下地址字段送至CMAR 的微操作
T0: PC->MAR , 1->R
T1: Ad(CMDR)->CMAR
T2: M(MAR)->MDR , PC+1
T3: Ad(CMDR)->CMAR
T2: MDR->IR ,
T3: OP(IR)->微地址形成部件->CMAR
异常和中断机制
指令流水线
基本概念
时间上的并行技术
将一个任务分解为几个不同的子阶段,各子阶段可在不同的功能部件上并行运行
一般分为5个阶段
取指IF
译码/读寄存器ID
执行/计算地址EX
访存MEM
写回WB
指令流水线的标识方法
普通图
时空图
性能指标
吞吐率
单位时间内流水线完成的任务数量
加速比
不适用流水线比使用流水线所用的时长比
子主题
效率
时空图中的指令执行面积除以总面积
影响指令流水线的因素
流水线的冒险
可能遇到一些情况,时的流水线无法正确执行后续指令而引起流水线阻塞或停顿
结构相关
多条指令争用统一资源
措施
暂停相关指令
资源重复配置
数据相关
后续的指令要用到前面指令的执行结果
分类
写后读RAW
读后写WAR
写后写WAW
措施
暂停相关指令
数据旁路技术
编译优化,调整指令顺序
控制相关
遇到修改PC的指令
措施
分支预测
预取两个方向的指令
加快和提前形成条件码
提高转移方向的猜准率
几种指令的执行过程
LOAD(取数)
5个阶段全有
STORE(存数)
WB阶段位空段
条件转移
WB阶段位空段
无条件转移
WB阶段位空段
M段位空段
算法类指令
加法、右移等
M段为空段
高级流水线技术
超标量流水线
每个时钟周期内可以并发多条独立指令
不能调整指令执行顺序
通过编译优化技术,把可并行的指令搭配起来
超长指令字技术
编译程序挖掘出指令间潜在的并行性
将多条能并行执行的指令组合成一条具有多个操作码的超长指令字
需要采用多个处理部件,对cache容量要求大
超流水线技术
将指令的执行划分为更多的功能段
通过提高流水线主频的方式来提升流水线性能
多处理器概念
基于指令流的数量和数据流的数量将计算机体系结构分类
SISD
单指令、单数据流
一个处理器,一个存储器
一段时间内只执行一条指令,串行执行指令流
SIMD
单指令、多存储器9(数据级并行技术)
一个指令控制部件,多个处理单元
不同处理单元分别执行同一条指令所处理的不同数据
MISD
多指令、单数据流
MIMD
所指令、多数据流
多计算机系统(消息传递MIMD)
各计算机节点都有自己的私有存储器
有独立的主存地址空间,只能用消息传递的方式进行各个节点中的数据传送
多处理器系统(共享MIMD)
有共享的单一地址空间,通过存取指令来访问系统中的所有存储器
硬件多线程技术
CPU为每个线程提供单独的通用寄存器组、程序寄存器
三种实现方式
细粒度多线程
多个线程之间轮流较差执行指令
粗粒度多线程
仅在一个线程出现较大开销的阻塞时,才切换进程
时间多线程
同一个时钟周期,发射多个不同线程中的多条指令
超线程技术
在一个单处理器中,设置两套线程状态部件、共享高速缓存、功能部件
需要芯片组、OS、和应用软件的支持,才能发挥其技术优势
多核处理器
多个处理单元继承到单个CPU中
各个处理单元可以有自己的cache,也可以共用cache
必须用多进程(多线程)执行指令,才能发挥性能
共享内存多处理器
具有共享的单一物理地址空间
处理器通过存储器中的共享变量相互通信
2种方式
UMA(统一存储访问多处理器)
NUMA(非统一存储访问多处理器)
找到微程序入口地址