0%

计算机系统结构-指令系统

基本概念和分类

ISA(指令系统)定义了软硬件交互的协约。

指令系统设计原则

  • 可编程性
  • 可实现性
  • 兼容性

指令系统设计要素

  • 指令格式:包括了指令长度(定长或者是变长)以及编码方式

  • 操作数存储位置(寄存器、主存、累加器、堆栈)、类型(整型、浮点)、长度(字节、字、双字)和个数(1,2,3,多操作数)

  • 寻址方式

  • 支持的操作类型:加减、比较

指令系统结构分类

根据操作数的存储位置对指令进行分类:

  • 主存型结构:主存
  • 累加器型结构:累加器
  • 堆栈型结构:堆栈
  • 通用寄存器结构:通用寄存器组

指令系统中操作数给出方式:

  • 显式给出:用指令字中的操作数字段给出
  • 隐式给出:隐式给出则是使用实现约定好的单元

指令系统的发展和改进

由性能公式:CPU时间=指令条数IC*CPI *周期时间

复杂指令系统CISC

改进方法:

  • 减少指令条数,使用复杂的指令
  • 对于使用频率高的指令串,用一条新的指令来代替

问题:

  • 设计周期长,准确性难以保证
  • 需要大量的硬件支持
  • 很多复杂指令使用频率低,造成资源浪费
  • 许多指令由于操作复杂,其CPI值比较大,执行速度慢
  • 规整性不好,不利于采用流水线技术来提高性能

精简指令系统RISC

RISC遵循的原则:

  • 指令条数少,功能简单
    【只选取使用频率很高的指令,再补充一些其他最有用的指令】
  • 指令格式简单、规整、并减少寻址方式
  • 指令的执行在单个周期内完成(采用流水线机制)
  • 只有load和store指令才能访问存储器,其他指令的操作都是在寄存器之间进行(load-store结构)
  • 大多数指令都采用硬连逻辑来实现
  • 强调优化编译器的作用,为高级语言程序生成优化的代码
  • 充分利用流水线技术来提高性能

改进方法:

  • 减少CPI,使用大量单周期指令
  • 增加指令条数,复杂的指令使用频率很低,实际程序的指令条数并不太多
  • 减少时钟周期时间