1、“821.2016T1(1)”,表示821真题,2016年的题,T1是 选择题/填空题/大题 的第一题,其他类似标记也是相通
2、个人小白总结自用,不一定适用于其他人,请自行甄别
3、有任何疑问,欢迎私信探讨,看到后会及时回复
选择题
- 控制器中没有“地址译码器“它在主存中,将二进制数地址,指向对应的物理空间
- 在微程序控制器中
执行指令微程序的首条微指令地址:指令操作码映射(指令=操作码+地址码)
垂直型微指令的特点:采用微操作编码(821.16.T11)
控制序列的最小单位:微命令(821.12.T7)
- 关于数据冒险和转发技术:
①并不是所有的数据冒险都能通过转发解决(比如load-use,从主存load后,要在访存结束之后才能使用数据)
②可以通过,调整指令顺序和加入nop指令,消除所有数据冒险
③五段流水中Load-Use数据冒险会引起一个时钟周期的阻塞
④前面的分支指令和后面的ALU运算指令肯定不会发生数据冒险(因为前面的分支指令,不会产生数据给后面的ALU使用)
填空题
- 4个MUX多路选择器
2个执行
1个访存
1个写回
- 相容微操作,同时进行的操作;相容微命令,在不同的段
- 控制器,从主存取指令,对操作码译码,生产控制信号
- 数据通路 = 控制元件 + 数据元件
- 流水线冒险:
资源冲突、数据冒险、控制冒险
- 流水线
超流水线技术:增加流水线级数,使更多指令同时在流水线中重叠执行
超标量流水线技术:同时启动多条指令独立运行(有多个相同部件)
- 并行性:
同时性:多个事件同一时刻发生
并发性:多个事件同一个时间间隔内发生(只要发生执行就行,不分先后次序,所以可能有很多个不同的执行顺序)
- 北桥芯片:CPU与内存、显卡连接;南桥芯片:与IO设备通信
简答题(无)
大题(无)
补充知识点
控制器的实现方式
2种 | 硬连线路控制器/组合逻辑控制器 | 微程序控制器 |
解释 | 用组合逻辑电路和状态寄存器实现 | 用微程序设计方式实现 |
优点 | 速度快 | 规整性、灵活性、可维护性 |
缺点 | 不规整性、不灵活、 实现困难 | 速度慢 |
微程序控制器
微操作和微命令,一一对应
名词 | 程序 | 指令/机器指令 | 微操作 | 微命令 | 微指令 | 微程序 | |
解释 | 由一堆指令构成 | 对程序步骤的描述 若干个指令构成一个程序 是对微指令功能的封装 | 具体做什么 | 控制数据通路的执行 完成微操作所需的控制信号集 |
| 是一个微指令序列 一堆微指令构成一个微程序 | |
联系 | 1、指令:微程序=1:1,一种指令对应一个微程序 2、微程序:微指令=1:n 3、微指令:微命令/微命令 = 1 :n,一条微指令可以并行的完成多个微操作/微命令(一个微指令包含若干位微命令) 4、控制器存储器里面存放的是,所有指令的微程序、以及微指令 5、每个微指令中,是一组微操作,不同的微指令,可能执行同一个微操作 |
微指令格式
大类 | 水平型微指令 | 垂直型微指令 | ||
小类 | 不译法/直接控制/直接编码法 | 字段直接编(译)码法 | 字段间接编码法/隐式编码 | 最小(或最短、垂直)编码(译)法 |
解释 | 1bit 控制1个微命令,与相关的部件直接连接 | 能同时执行的微命令,尽量多的安排在一条微指令中,每个段有1个译码器,译码出本段发出的微命令 | 不止一层译码器,第一层的译码器译码出的内容,还不是最终的控制信号,还得继续传到第二层的译码器继续译码…最终得到控制信号 | 一条微指令只控制一两个微命令 |
优点 | 简单、直观,执行速度快 | 微程序短 微命令并行性高 适合较高速度的场合 | 进一步缩短微指令字长 | 微指令短 编码效率高 格式和机器指令类似 |
缺点 | 指令字长过长,n个微命令,微指令的操作字段就需要n位,造成控制存储器的巨大浪费 | 微指令长 编码空间利用率低 编制造较为困难 | 削弱了微指令的并行控制能力 | 微程序长 无并行,速度慢,一条微指令只控制一两个微命令 |
备注 | 1、例如,由原来的1bit 1个微命令,变为2bit为1个段,1个段可以控制22=4个微命令 2、每个段,要预留1个微命令,表示该段不发出任务微命令(即本段不做任何微操作) 3、可以同时执行的微命令放在不同的段中(相容性的微命令放在不同的段中,互斥性的微命令放在同一个段中) |
不译法/直接控制/直接编码法
字段直接编(译)码法
字段间接编码法/隐式编码
微指令执行顺序
5种 | 断定法/下址字段法+C43C44:F45 | 根据(机器)指令的操作码形成 | 顺序-转移法/增量法/计数器法 | 分支转移 | 由硬件产生微程序入口地址 |
解释 | 由硬件产生微程序入口地址+C44:F45 | 机器指令取到指令寄存器后,微指令的地址由操作码经过CU控制单元中的地址形成部件,得到该机器指令的第一个微指令的地址 | (uPC) + 1 -> uPC 等于:(CMAR) + 1 -> CMAR uPC = CMAR,同一个东西的2种叫法 | 先用”判别方式“的判断是否满足判断条件,满足则跳转到”转移地址“ | 用专门的硬件记录,比如每个指令都需要取指微程序,那么就可以直接将取值微程序的首地址直接记录在硬件中,每次用的时候调用硬件就可以啦 |
中断&异常
中断&异常 | 内部异常 | |||
1个中断3个异常 | 外部请求中断/IO中断 | 故障/失效 | 自陷/自愿中断 | 终止 |
解释 | 程序执行过程中,外设完成任务或发生某些特殊事件,向CPU发出中断请求,要求CPU对这些情况进行处理,处理完后,回到被中断程序的断点处继续执行 | 由正在执行的指令产生 | 1、放管指令(访问管理程序)或自陷指令(自动掉入陷阱) 2、由人为设定的事件,发生后,CPU进入操作系统内核程序执行 3、可以主动执行,不一定非要在某种异常情况下才会执行(袁春风.解析.T22) | 既不是外部设备发出,也不是指令本身产生,而是执行过程中的硬件故障 |
举例 | 打印纸缺页 定时采样计时时间到 键盘缓冲满 | 程序在主存,缺页 溢出 除数为0 非法操作码 | ”INT n“ | 电源掉电 线路故障 |
单周期/多周期处理器
单周期处理器 | 多周期处理器 |
CPI=1 | CPI≥1 |
以执行时间最长的指令作为基准,一般是Load指令 | 以最长耗时部件作为CPU的时钟周期,一般是存储器操作时间 |