CPU结构和功能
CPU结构
1. CPU的功能
控制器的功能
- 取指令
- 分析指令
- 执行指令,发出各种操作命令
- 控制程序输入及结果的输出
- 总线管理
- 处理异常情况和特殊请求
运算器的功能
实现算术运算和逻辑运算
2. CPU的结构框图
![image-20200616163844686](/Users/liz/Library/Application%20Support/typora-user-images/image-20200616163844686.png)
3. CPU的寄存器
(1) 用户可见寄存器
(2) 控制和状态寄存器
-
控制寄存器
P C → M A R → M → M D R → I R PC \to MAR \to M \to MDR \to IR PC→MAR→M→MDR→IR
控制CPU操作
其中MAR, MDR, IR 用户不可见
PC 用户可见
-
状态寄存器
状态寄存器 存放条件码
PSW 寄存器 存放状态字
4. 控制单元CU和中断系统
-
CU 产生全部指令的微操作命令序列
- 组合逻辑设计 硬连接逻辑
- 微程序设计 存储逻辑
-
中断系统
无
指令周期
1. 指令周期的基本概念
(1) 指令周期
取出并执行一条执行指令的所需的全部时间
完成一条指令
- 取指, 分析 取指周期
- 执行 执行周期
(2) 每条指令的指令周期不同
(3) 具有间接寻址的指令周期
寻找有效地址的
(4) 带有中断周期的指令周期
查询是否有中断,
(5)指令周期流程
![image-20200406105937767](https://tva1.sinaimg.cn/large/00831rSTly1gdjv4kfeggj30nw0pa0xm.jpg)
(6) CPU 工作周期的标志
CPU访存有四种性质
- 取指令 取指周期
- 取地址 间址周期
- 取操作数 执行周期
- 存程序断点 中断周期
2. 指令周期的数据流
(1) 取指周期的数据流
(2) 间址周期的数据流
(3) 执行周期的数据流
不同指令的执行周期数据流不同
(4) 中断周期的数据流
指令流水
(1) 如何提高机器速度
-
提高访存速度
高速芯片 Cache 多体并行
-
提高I/O和主机之间的传送速度
中断 DMA 通道 I/O处理机
-
提高运算器速度
高速芯片 改进算法 快速进位链
-
提高整机处理能力
高速器件 改进系统结构, 开发系统的并行性
(2)系统并行性
- 并行的概念
- 并发: 两个或两个以上事件在同一时间段发生
- 同时: 两个或两个以上事件在同一时刻发生
- 并行性的等级
- 过程级(程序, 进程) 粗粒度 软件实现
- 指令级 细粒度 硬件实现
- 指令之间
- 指令内部
1. 指令流水原理
(1) 指令的串行执行
取指令 取指令部件 完成, 总有一个部件空闲
执行指令 执行指令部件 完成
(2) 指令的二级流水
指令预取
若指令和执行阶段时间上完全重叠
指令周期减半, 速度提高1倍.
![image-20200406115120851](https://tva1.sinaimg.cn/large/00831rSTly1gdjwmdrr2ej30qk07ago9.jpg)
(3) 影响指令流水效率加倍的因素
(4) 指令的六级流水
完成一条指令分为6个时间单位
如果需要执行9条指令, 串行执行需要6×9=54个时间单位; 六级流水需要14个时间单位.
2. 影响流水线性能的因素
(1) 结构相关
不同指令争用同一功能部件产生资源冲突
- 停顿
-
指令存储器和数据存储器分开
-
指令预取技术(适用于访存周期短的情况)
(2) 数据相关
不同指令因重叠操作, 可能改变操作数的 读/写 访问顺序
-
写后读相关(RAW)
先写后读变成了先读后写
-
读后写相关(WAR)
先读后写变成了先写后读
-
写后写相关(WAW)
前后两条写法指令顺序被调换了
解决办法
- 后推法
- 采用旁路技术
(3) 控制相关
由转移指令引起
![image-20200409171614744](https://tva1.sinaimg.cn/large/00831rSTly1gdnmw3g91sj30s90hcqbo.jpg)
3. 流水线性能
(1) 吞吐率
单位时间内, 流水线所完成指令或输出结果的数量
设 m 段的流水线隔断时间为Δt
-
最大吞吐率
最大吞吐率是指流水线在连续流动达到稳定状态后所得的吞吐率.