CPU的基本功能
- 程序控制
- 操作控制
- 时间控制
- 数据加工
本部分还是建议看书, 笔记仅作补充
CPU中的六类寄存器:
-
指令寄存器 IR
保存当前正在执行的一条指令
-
程序计数器 PC
用来之处下一条指令在主存中的地址
-
地址寄存器 AR
保存CPU当期访问的主存单元的地址
-
数据寄存器 DR
数据缓冲寄存器:
-
累加寄存器 AC
通用寄存器之一, 暂存ALU的操作数或计算结果
-
程序状态字寄存器 PSW
存放各种状态标志位
控制器 & 运算器:
CPU中的部件大致可以分为这两类
运算器基本上对用户可见, 控制器中除了PSW之外基本上对用户不可见
CPU的工作过程
指令的执行过程:
通常都是访问主存的过程占用一个CPU周期, 其余由于CPU计算速度很快, 所以基本上可以忽略
- 取指令
将一 条指令从主存中取到IR的过程
占用一个CPU周期
- 指令译码
不占用CPU周期, 通常与取指令在同一个CPU周期中
- 指令执行
占用一个CPU周期
- 访存
占用一个CPU周期
- 结果写回
占用一个CPU周期
把执行指令阶段的运行结果数据 “写回” 到某种存储形式
指令周期:
CPU取出一条指令并执行该指令所需的时间
指令周期常用若干机器周期(CPU周期)来表示, 一个机器周期又包含若干时钟周期
指令周期的分析
分析指令的每个机器周期与机器周期中执行的操作
MD这种B题分析个P, 直接背
指令周期的流程图表示
同样是B题, 分析个P
时序发生器:
发个¿¿¿¿, 基本都没讲, 应该不会考
控制方式:
本部分也略
操作控制器:
本部分只有最后一个比较部分有用
组合逻辑控制器:
硬连线控制器:
掌握其思想即可
由复杂的组合门电路和一些触发器组成, 又称为组合逻辑控制器
其基本原理是根据指令要求, 当前时序以及外部和内部的状态, 按时间的顺序发送一系列微操作控制信号
后头俩略
微程序控制器:
略
组合逻辑控制器与微程序控制器的比较
本部分还是看书来的香
- 硬布线控制器的特点
- 优点是速度取决于电路延时, 所以速度很快
- 缺点是使用最少元件达成最高速度, 所以基本不可能做后期修改
- 微程序控制器的特点
- 与组合逻辑控制器相比, 微程序控制器具有规整性, 灵活性, 可维护性等优点
- 缺点是微程序控制器采用了储存程序原理, 导致每条指令都要访问存储器, 速度较慢
书里还有个表格推荐看下
CPU新(jiu)技术:
本部分书中只有一个流水线技术, 同样也是上课精讲的部分, 推荐看书
并行处理技术:
本部分接高性能计算
时间并行:
就是使用流水线技术
空间并行:
就是堆配置
时空并行:
就是俩都用, 没啥好说的
流水线技术
流水线方式的特点:
- 将一个计算任务细分成若干个子任务,每个子任务都由专门的功能部件进行处理
- 每个部件后头都要有一个缓冲区
- 每个功能段的时间应该尽量相等, 否则将引起阻塞, 断流
- 只有连续不断的输入才能发挥流水线的效率
- 流水线需要装入&排空时间
流水线分级:
逐渐宏观
-
算数流水线
部件级流水, 是对运算操作的并行
-
指令流水线
处理机级流水, 将一个指令拆分成多个部分执行
-
处理机流水线
宏流水, 是程序步骤的并行, 由多个串联的处理机组成流水线
流水线的组成:
基本按照这个图来记忆, 后头的解释都是废话
流水线的时空图:
本部分重点掌握最后一个标量流水的工作图
指令相关性:
本部分有个题, 但感觉不会考, 几个玩意掌握以下定义就好
-
数据相关:
下一条指令会用到这一条指令的计算结果, 此时发生数据冒险(数据竞争)
-
资源冲突
多条指令在同一机器周期中争用同一个功能部件, 此时发生资源竞争
-
控制冲突
一条指令要确定下一条指令的位置, 从而造成断流, 此时引发控制冒险
SIMD技术:
这个是真没啥印象, DVD真的不是跳过了?
MMX:
除了这个后头的俩都TM是啥???
CISC & RISC 指令集
本部分重点啊
RISC的特征:
内容挺多, 这里统计一下关键点
- 指令格式基本一致
- 基本使用寄存器操作, 只有存取数据时访问存储器, 顶多出现RS指令, 绝不会出现类似于存储器间接寻址的SS指令
- 内部基本上使用硬连线方式实现指令操作, 并非常适合流水线, 所以在简化结构的同时, 还能获得很好的并行性与执行速度
- 优化编译程序较难, 所以开发周期比CISC要长
RISC & CISC的比较
超线程&多核技术
总的来说, 超线程技术就是用来提升混合模式下CPU的利用率的, 但对于计算密集型作业, 超线程基本没有优势, 甚至是劣势
一次执行操作仅会利用CPU中计算单元的一部分(如浮点单元&整数单元), 超线程的作用就是使两个不同类型的任务能并行执行而不用等待, 从而提升核心的利用率
动态执行技术:
不知道这部分重不重要, 暂时仅做定义了解, 但后头的流水线是肯定要的
指令调度:
保证程序正确性的前提下, 适当调整指令顺序
乱序执行技术:
分支预测:
多重指令启动:
超标量技术:
超流水线技术:
多种流水线技术的比较
静态多重指令启动:
低功耗管理:
了解个标题即可
CPU实例:
本部分感觉也就Pentium部分有点用, 其他一点蓝字都没有