- 指令周期(Instruction Cycle): Fetch - Decode - Execute
- 执行路径:指令(存储器)- PC 寄存器和指令寄存器 取出指令(控制器)-指令译码(控制器) - 指令执行(算术逻辑单元(ALU),或者说是运算器)
- Machine Cycle,机器周期或者 CPU 周期:从内存中读取指令的最短时间
- Clock Cycle,时钟周期
- 处理器单元 组成:操作原件与状态原件
- CPU的4种基本电路:ALU 组合逻辑电路、用来存储数据的锁存器和 D 触发器电路、用来实现 PC 寄存器的计数器电路,解码和寻址的译码器电路
- 时序逻辑电路(Sequential Logic Circuit)-- 如何去让程序自动执行下去?并且中间的结果还有存储功能,各个模块按照顺序执行下去
- 时钟信号(晶体震荡)
- D 触发器实现存储功能 - 数电里面的内容 😃
- 单指令周期处理器, 严重速度限制的,一个周期里面包括取指令译码到执行的部分
- 程序性能:指令数×CPI×时钟周期
- 指令流水线(Instruction Pipeline)
- 五级流水线:取指令 - 指令译码 - ALU 计算(指令执行)- 内存访问 - 数据写回
- 流水线 - 提高CPU的吞吐率
- 流水线的成本:流水线寄存器(Pipeline Register),以及其消耗的时间,还有晶体管的数量,以及带来的功耗
- Hazard: 结构,控制,还有数据,并不一定可以按照流水线理想地运行着,比如资源上用到同一资源(结构),控制上有跳转这些,数据上有数据依赖
- 结构冒险(Structural Hazard)(1)哈弗结构:存放指令的程序内存和存放数据的数据内存 (2)冯·诺依曼体系结构 两块内存是一起地,动态分配 (3)目前,高速缓存分成了指令缓存(Instruction Cache)和数据缓存(Data Cache) – 增加相关资源,来减少资源地竞争!
- 结构冒险的解决方式之一:有些指令只占据整个环节地部分环节,NOP 操作和指令对齐
- 数据冒险(Data Hazard):解决方式:操作数前推,就是通过在硬件层面制造一条旁路,让一条指令的计算结果,可以直接传输给下一条指令,而不再需要指令写回寄存器的过程
- data hazard:另一个解决方式,乱序执行,指令取出译码的阶段依然是可以顺序进行的,指令执行的阶段,有很多并行的fu的单元,相当于线程池,只要达到数据要求即可执行,执行结束,再在结束处,顺序下一步
- 控制冒险(Control Hazard) - 分支预测,可以分为静态预测,和动态预测。动态预测,有寄存器保存之前的预测结果,之后无脑根据之前的结果先进行执行步骤,假设不是,就废弃该执行
计算机组成原理 - CPU (学习笔记)
最新推荐文章于 2022-11-01 18:18:13 发布