文章目录
摸鱼的时侯干点什么:学学指令系统和流水线的概念
0. Preface
每年都会有期末考试,每年都会有软考,每年都会有摸鱼的时候…
那么摸鱼的时候干什么呢?不如来学一下组成原理,本篇介绍CISC与RISC指令系统类型的异同,以及集流水线的概念。
下面开始!
学习目标
- 了解指令系统类型与流水线的概念
- 简单学学,让脑子里有这些概念,能应付软考
1. 指令系统
本节主要介绍 指令集的一些概念,纯理论。
1.1 指令集
指令集包括一系列操作码以及由特定处理器运行的基本命令。
51CTO-指令集-参考博文:https://blog.51cto.com/u_15064638/4677598
1.2 CISC 与 RISC
CISC 和 RISC 是指令集发展的两个途径。
CISC
Complex Instruction Set Computer, 复杂指令集计算机
- 基本思想:进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件的硬化。
RISC
Reduced Instruction Set Computer, 精简指令计算机
- 基本思想: 通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译,提高指令执行速度,采用硬线控制逻辑,优化编译程序。
异同
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 优点 |
---|---|---|---|---|
CISC | 指令数量多,使用频率差异大,可变长格式 | 支持多种 | 微程序控制技术(微码) | 对特定的使用场景执行效率高 |
RISC | 指令数量少,使用频率接近,格式定长,大部分为单周期指令,操作寄存器,只有Load/Store 操作内存 | 支持方式较少 | 增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线 | 优化编译,有效支持高级语言 |
发展现状
CISC 与 RISC 严格区分的年代已经过去,现在CISC 与 RISC正逐步走向融合。
2. Pipeline 流水线
2.1 指令控制方式
指令的控制方式主要有以下几种:
-
顺序方式,即一条一条指令顺序执行,控制简单,效率低,不考虑并行问题
-
重叠方式,指在解释第K条指令的操作完成之前,就可以开始解释第K+1条指令,通常采用的是一次重叠。速度有所提高,控制也不复杂,但容易产生冲突、转移等问题。
-
流水方式,模仿工业生产过程的流水线而提出的一种指令控制方式。流水技术把并行或并发任务嵌入到计算机,将重复的顺序处理过程分解为若干子过程。在概念上,流水方式是重叠方式的延申,将多个任务分解为多个子过程。
2.2 流水方式相关计算
2.2.1 流水周期及执行时间计算
例题
若指令流水线把一条指令分为取指,分析和执行三部分,且三部分的时间分别为 取指2ns,分析2ns,执行1ns,求流水线周期,以及100条指令全部执行完毕需要的时间是多少?
解题思路
- 流水线周期:执行时间最长的一段
上面的例题执行时间最长的为取指和分析都为2ns,取其中一个,即周期2ns; - 理论执行时长:第1条指令执行完毕总时长+剩余指令数乘以执行周期
即:(2+2+1)+99*2 = 203(ns)
- 将每个段都看成是一个流水线周期的时长:这种方式直接将段数乘以周期+剩余指令乘以执行周期数
即:(2*3)+99*2 = 204(ns)
2.2.2 流水线吞吐率计算
例题
若指令流水线把一条指令分为取指,分析和执行三部分,且三部分的时间分别为 取指2ns,分析2ns,执行1ns,求流水线吞吐率是多少?
解题思路
- 吞吐率 = 指令条数 / 流水线执行时间
即:100 / 203
2.2.3 流水线加速比计算
例题
若指令流水线把一条指令分为取指,分析和执行三部分,且三部分的时间分别为 取指2ns,分析2ns,执行1ns,求流水线加速比?
解题思路
- 加速比 = 顺序执行的总时间 / 流水线执行时间
即:5*100 / 203