文章目录
欢迎到我的个人博客查看本篇 https://sunmengxin.cn/CSCC/08-structure-function/
思维导图:
![](https://i.loli.net/2020/03/17/poirAxNSCqwWzb9.png)
一、CPU的结构
1.CPU的功能
控制器的功能
- 取指令:指令控制
- 分析指令:操作控制
- 执行指令,发出各种操作命令控制程序输入及结果的输出:时间控制
- 总线管理:处理中断
- 处理异常情况和特殊请求:数据加工
运算器的功能
实现算术运算和逻辑运算
2.CPU的结构框图
![](https://i.loli.net/2020/03/17/JNbBoWmZifDGP74.png)
3.CPU的寄存器
用户可见寄存器
- 通用寄存器
- 存放操作数
- 可作某种寻址方式所需的专用寄存器
- 数据寄存器
- 存放操作数(满足各种数据类型)
- 两个寄存器拼接存放双倍字长数据
- 地址寄存器
- 存放地址,其位数应满足最大的地址范围
- 用于特殊的寻址方式 段基值 栈指针
- 条件码寄存器
- 存放条件码,可作程序分支的依据
- 如 正、负、零、溢出、进位等
控制和状态寄存器
控制寄存器
PC
->MAR
->M
->MDR
->IR
控制CPU操作:
MAR、MDR、IR : 用户不可见
PC : 用户可见
状态寄存器
状态寄存器:存放条件码
PSW寄存器:存放程序状态字
4.控制单元和中断系统
5.ALU
二、指令周期
1.指令周期的基本概念
指令周期
![](https://i.loli.net/2020/03/17/wXsdo1CnFTt5vgB.png)
每条指令的指令周期不同
![](https://i.loli.net/2020/03/17/cu2jdMath5791O3.png)
具有间接寻址的指令周期
![](https://i.loli.net/2020/03/17/eAIK7YXazVPjOoN.png)
带有中断周期的指令周期
![](https://i.loli.net/2020/03/17/1rK9HaPBkITD5t7.png)
指令周期流程
![](https://i.loli.net/2020/03/17/CJj1mzeU2LXoNyO.png)
CPU 工作周期的标志
![](https://i.loli.net/2020/03/17/NdFcwmorftenpUj.png)
2.指令周期的数据流
取指周期数据流
![](https://i.loli.net/2020/03/17/WiZPUFHlmI7Kfuy.png)
间址周期数据流
![](https://i.loli.net/2020/03/17/rHE2dkJfsNaoWDj.png)
执行周期数据流
不同指令的执行周期数据流不同
中断周期数据流
![](https://i.loli.net/2020/03/17/dt2LebN4oqSD39G.png)
三、指令流水
1.如何提高机器速度
1.提高访存速度
高速芯片 Cache 多体并行
2.提高 I/O 和主机之间的传送速度
中断 DMA 通道 I/O 处理机 多总线
3.提高运算器速度
高速芯片 改进算法 快速进位链
4.提高整机处理能力
高速器件 改进系统结构 ,开发系统的并行性
2.系统的并行性
并行的概念
并发:两个或两个以上事件在 同一时刻 发生
同时:两个或两个以上事件在 同一时间段 发生
并行性的等级
过程级(程序、进程) 粗粒度 软件实现
指令级(指令之间) 细粒度 硬件实现
3.指令流水原理
指令串行
![](https://i.loli.net/2020/03/17/V78IQUPsNoTKMSL.png)
指令二级流水
![](https://i.loli.net/2020/03/17/3tRfmrdZPzEh9qx.png)
影响指令流水效率加倍的因素
![](https://i.loli.net/2020/03/17/RI7P4anAGBFOzVk.png)
指令的六级流水
![](https://i.loli.net/2020/03/17/MLz3QGwb9OYKlv2.png)
4.影响流水线性能的因素
结构相关:不同指令争用同一功能部件产生资源冲突
数据相关:不同指令因重叠操作,可能改变操作数的 读/写 访问顺序
![](https://i.loli.net/2020/03/17/LNpq1s6H7vMhOmP.png)
控制相关:由转移指令引起
![](https://i.loli.net/2020/03/17/YMK7pcuNPUz5I1q.png)
5.流水线性能
吞吐率:单位时间内 流水线所完成指令 或 输出结果 的 数量
加速比 Sp:m 段的 流水线的速度 与等功能的 非流水线的速度 之比
效率:流水线中各功能段的 利用率
6.流水线中的多发技术
超标量技术
![](https://i.loli.net/2020/03/17/cdNZ8MCRrHaYQFE.png)
超流水线技术
![](https://i.loli.net/2020/03/17/ItYi2RUuFLb6CaQ.png)
超长指令字技术
![](https://i.loli.net/2020/03/17/rcK38NQRaGJPo2p.png)
7.流水线结构
指令流水线结构
![](https://i.loli.net/2020/03/17/nS1xH9wlFoPyacM.png)
运算流水线
![](https://i.loli.net/2020/03/17/HoQbsKJanmP6ZMW.png)
四、中断系统
1.概述
引起中断的各种因素
(1) 人为设置的中断 :如 转管指令
(2) 程序性事故:溢出、操作码不能识别、除法非法
(3) 硬件故障
(5) 外部事件
(4) I/O设备:用键盘中断现行程序
中断系统需解决的问题
(1) 各中断源向CPU提出请求
(2) 各中断源同时提出请求怎么办 ?
(3) CPU什么条件、什么时间、 以什么方式,响应中断 ?
(4) 如何保护现场 ?
(5) 如何寻找入口地址 ?
(6) 如何恢复现场,如何 返回 ?
(7) 处理中断的过程中又出现新的中断怎么办 ?
2.中断请求标记和中断判优逻辑
中断请求标记INTR
![](https://i.loli.net/2020/03/17/gnlE6wB98itFWy2.png)
中断判优逻辑
-
硬件实现(排队器)
-
软件实现(程序查询)
3.中断服务程序入口地址寻找
硬件向量法
![](https://i.loli.net/2020/03/17/Mp3UoxyGHfiAu2J.png)
软件查询法
![](https://i.loli.net/2020/03/17/qyRHPjd6DlCmLWb.png)
4.中断响应
响应中断的条件
允许中断触发器 EINT = 1
响应中断的时间
![](https://i.loli.net/2020/03/17/9ij6LoHNISmdYeW.png)
中断隐指令
![](https://i.loli.net/2020/03/17/tJeif4q3OFhkNd9.png)
5.保护现场和恢复现场
保护现场
断点: 中断隐指令完成
寄存器内容: 中断服务程序完成
恢复现场
![](https://i.loli.net/2020/03/17/yGifrdmNqcu1ga8.png)
6.多重中断
多重中断的概念
![](https://i.loli.net/2020/03/17/rLJGbnEM917Cvy5.png)
实现多重中断的条件
![](https://i.loli.net/2020/03/17/FGIsvNhiUJ1n8Rw.png)
屏蔽技术
-
屏蔽触发器的作用
-
屏蔽字
-
屏蔽技术可改变处理优先等级
多重中断的断点保护
-
断点进栈(中断隐指令)
-
断点存入“ 0 ” 地址(中断隐指令)
-
程序断点存入 “ 0 ” 地址的断点保护
注:本文章除思维导图,其他图片来源于课程PPT。
👇您的赏识是我前进的动力!٩(๑•̀ω•́๑)۶😜