一、流水线
1.1.基本概念
- 流水线技术是指在程序执行时,多条指令重叠进行操作的一种任务分解技术。把一个任务分解为若干顺序执行的子任务,不同的子任务由不同的执行机构来负责执行,而这些执行机构可以同时并行工作
1.2.计算执行时间
-
假定有某种类型的任务,可以分成N个子任务,每个子任务需要时间t,则完成该任务所需的时间为N x t
- 若以传统的方式,完成k个任务所需的时间时kNt
- 使用流水线技术,花费的时间是Nt+(k-1)t
-
注意:如果每个子任务所需的时间不同,其时间取决于执行顺序中最慢的那一个
1.3.流水线的吞吐率
- 指在单位时间内流水线所完成任务数量或输出的结果数量TP=n/Tk
- n为任务数,Tk是处理完成n个任务所用的时间
1.4.加速比
- 指不采用流水线的执行时间/采用流水线的执行时间。用来衡量并行系统或程序并行化的性能和效果
1.5.影响流水线的主要因素
- 转移指令:因为前面的转移指令还没有完成,流水线无法确定下一条指令的地址,因此也就无法向流水线中添加这条指令
- 共享资源访问的冲突:后一条指令需要使用的数据,与前一条指令发生冲突,或者相邻的指令使用了相同的寄存器
- 响应中断:当有中断请求时,流水线也会停止。对于这种情况有两种响应方式:
- 精确断点法:立即停止,这种方法能够立即响应中断
- 不精确断点法:流水线中的指令继续执行,不再新增指令到流水线
二、指令系统
2.1.基本概念
-
指计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力
-
一条指令包括:
- 操作码
- 地址码
-
根据地址码代表的地址类型,指令系统可以分为:
- 立即寻址
- 直接寻址
- 间接寻址
- 寄存器寻址
- 寄存器间接寻址
三、RISC与CISC
3.1.基本概念
- 为提高操作系统的效率,人们最初选择向指令系统中添加更多、更复杂的指令来实现,导致指令集越来越大。这种类型的计算机称为复杂指令集计算机(CISC)
- 对指令数据和寻址方式做精简,指令的指令周期相同,采用流水线技术,指令并行执行程度更好,这类是精简指令集计算机(RISC)
3.2.复杂指令系统计算机(RISC)的主要特点
- 指令数量多:指令系统拥有大量的指令,有100-250条
- 指令使用频率相差悬殊:最常使用的是一些比较简单的指令,80%的时候使用的是20%的指令
- 支持很多种寻址方式:通常为5-20种
- 变长的指令:指令长度不是固定的,变长的指令增加指令译码电路的复杂性
- 指令可以对存储器单元中数据直接进行处理:典型的CISC处理器通常都有指令能够直接对内存单元中的数据进行处理,其执行速度较慢
3.3.精简指令系统计算机(RISC)的主要特点
-
指令数量少:优先选取使用频率最高的一些简单指令以及一些常用指令,避免使用复杂指令
-
指令的寻址方式少:通常只支持寄存器寻址方式、立即数寻址方式以及相对寻址方式
-
指令长度固定,指令格式种类少:因为RISC指令数量少,格式相对简单,其指令长度固定,指令之间各字段的划分比较一致,译码相对容易
-
只提供了Load/Store指令访问存储器:只提供了从存储器读数Load和把数据写入存储器Store两条指令,其余所有的操作都在CPU的寄存器间进行
-
以硬布线逻辑控制为主:为了提高操作的执行速度,通常采用硬布线逻辑来构建控制器
-
单周期指令执行:因为简化了指令系统,很容易利用流水线技术使得大部分指令在一个机器周期内完成
-
优化的编译器:RISC精简指令集使编译工作简单化