计算机指令系统

组成

计算机指令的组成: 一条指令由操作码和操作数两部分组成, 操作码决定要
完 成的操作, 操作数指参加运算的数据及其所在的单元地址 。

执行过程:
取指令——分析指令——执行指令三个步骤, 首先将
程 序计数器PC中的指令地址取出, 送入地址总线, CPU依据指令地址去内存
中 取出指令内容存入指令寄存器IR; 而后由指令译码器进行分析, 分析指
令操作 码; 最后执行指令, 取出指令执行所需的源操作数

指令寻址方式,找到下一条指令

顺序寻址方式

当执行一段程序时,根据PC(程序计数器) 中指令,是一条指令接着一条指 令地顺序执行

跳跃寻址方式

指下一条指令的地址码不是由程序计数器给出, 而是由本条指令直接给出 。
程 序跳跃后, 按新的指令地址开始顺序执行 。因此, 程序计数器的内容也必须相应改变, 以便及
时跟 踪新的指令地址 ,可以实现程序的无条件转移和有条件转移。

指令寻址方式,找到操作数

立即寻址方式

指令的地址码字段指出的不是地址, 而是操作数本身 。

直接寻址方式

在指令的地址字段中直接指出操作数在主存中的地址 。

间接寻址方式

指令地址码字段所指向的存储单元中存储的是操作数的地址 。

寄存器寻址方式

指令中的地址码是寄存器的编号 。

基址寻址方式

将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址, 其优
点 是可以扩大寻址能力 。

变址寻址方式

变址寻址方式计算有效地址的方法与基址寻址方式很相似, 它是将变址寄存
器 的内容加上指令中的形式地址而形成操作数的有效地址 。

指令系统

CISC是复杂指令系统

兼容性强, 指令繁多 、长度可变, 由微程序实现;

RISC是精简指令系统

指令少,使用频率接近, 主要依靠硬件实现(通用寄存器 、硬布线逻辑控制) 。

指令系统类型 指令 寻址方式 实现方式 其他 代表
CISC是复杂指令系统 兼容性强, 指令繁多 、长度可变,使用频率差别大 支持多种 微程序,也可以采用流水线技术,但不适合 研制周期长 x86
RISC是精简指令系统 指令少,使用频率接近,定长格式,大部分单周期指令 支持较少 增加了通用寄存器,硬布线逻辑控制为主,更适合采用流水线 优化编译,有效支持高级语言 ARM,RISC-V

指令流水线

取指 -> 分析 -> 执行
将指令分成不同段, 每段 由不同的部分去处理, 因此可以产生叠加的 效果, 所有的部件去处理指令的不同段

流水线是指程序在执行多条指令重叠操作的一种准并行处理实现技术

流水线技术

( 1)超流水线( Super Pipe Line)技术 。 它通过细化流水 、增加级数和提高主频,使 得在每个机器周期内能完成一个甚至两个浮 点操作 。其实质是以时间换取空间 。
( 2)超标量( Super Scalar)技术 。它通 过内装多条流水线来同时执行多个处理, 其 时钟频率虽然与一般流水接近, 却有更小的 CPI 。其实质是以空间换取时间 。
( 3)超长指令字( Very Long Instruction
Word,VLIW)技术 。 VLIW和超标量都是 20世纪80年代出现的概念, 其共同点是要同 时执行多条指令, 其不同在于超标量依靠硬 件来实现并行处理的调度,VLIW则充分发挥 软件的作用, 而使硬件简化, 性能提高

流水线周期

  1. 流水线周期: 指令分成不同执行段, 其中执行时间最长的段为流水线周期 。

  2. 流水线执行时间:

    理论公式:1条指令总执行时间+(总指令条数-1)*流水线周期 。

    实践公式:执行阶段数x流水线周期 + (总指令条数-1)*流水线周期

  3. 流水线吞吐率计算: 吞吐率即单位时间内执行的指令条数 。
    公式: 指令条数/流水线执行时间 。

  4. 流水线的加速比计算: 加速比即使用流水线后的效率提升度, 即比不使用流水线快了多少倍, 越高表明流水线效率越高,
    公式: 不使用流水线执行时间/使用流水线执行时间 。

Flynn分类法

体系结构 说明
单指令单数据流(SISD) 传统的串行计算机,冯诺依曼架构
单指令多数据流(SIMD) 单核计算机,GPU(显卡)
多指令单数据流(MISD) 理论模型,没有实际到应用中
多指令多数据流(MIMD) 主流计算机,intel,amd等多核处理器