Molaters Lv5

[[CA-NotesView]]

指令系统主要内容


存取方式

Push / Pop 堆栈

Load / Store 累加器 (1个操作数)

Load / Store 寄存器或者存储器 (2/3操作数)


通用寄存器型结构

R-R R-M M-M


寻址方式

Untitled

为了保证访问速度现在的计算机一般都是按整数边界存储信息。


指令系统设计的基本原则

完整性 规整性 正交性 高效率和兼容性

正交性

编码的时候互不相关互相独立


定义: 指令是无条件改变控制流的时候称之为跳转指令,控制指令是有条件改变控制流的时候称之为分支指令。

指令操作码的优化

指的是用最短的位数来表示指令的操作信息和地址信息

哈夫曼树设计思想

选用哪种编码取决于使用频率的分析

当代计算机:RISC 使用定长操作码


沿CISC方向发展和改进指令系统

  1. 面向目标程序增强指令性能

    1. 增强运算行指令的功能

    2. 增强数据传送指令的功能

    3. 增强程序控制指令的功能

  2. 面向高级语言的优化实现来改进指令系统

  3. 面向操作系统的优化实现改进指令系统

    1. 处理机工作状态和访问方式的切换

    2. 进程的管理和切换

    3. 存储管理和信息保护

    4. 进程的同步和互斥,信号灯的处理等

沿RISC方向发展和改进指令系统

💡 CISC 出现的问题

  1. 指令的使用频度存在悬殊

  2. 指令系统庞大,指令条数太多,指令的功能太复杂

    1. 占用芯片面积,增加制造成本

    2. 增加研制时间和成本,还容易造成设计错误

  3. 许多指令因为操作繁杂,使得CPI比较大

  4. 由于指令功能复杂,规整性不好,不利于采用流水技术来提高性能

RISC 机器的设计

  1. 指令条数少,指令功能简单

  2. 采用简单而又统一的指令格式,并减少寻址方式

  3. 功能部件流水化,指令的执行能够在单周期完成

  4. 采用load-store 结构,只有这两个指令可以方寸

  5. 大多数指令都采用硬件逻辑来实现

  6. 优化编译器,为高级语言生成高效的代码

  7. 充分利用流水技术来提高性能


操作数的类型和大小

表示操作数类型的方法

  1. 指定操作数的类型

  2. 给数据加上标识


MIPS指令系统结构

寄存器

32个54位寄存器:R0 ~ R31 其中保持R0 = 0

32个单精度浮点寄存器:F1 ~ F31 存储32位单精度浮点数和64位双精度浮点数

MIPS数据表示

整数:字节 半字 字

浮点数: 单精度浮点数 双精度浮点数

字节或者半字装入的时候使用零扩展的方式来进行

MIPS寻址方式

只提供:立即数寻址和偏移量寻址

间接寻址:当偏移量为0的时候就是寄存器间接寻址

绝对寻址:当使用R0作为基址的时候就是16位绝对寻址

👿👿 MIPS指令格式

三种指令格式

I类指令

Untitled

包括 load store 寄存器-立即数型ALU指令 分支指令的转移目标地址 寄存器跳转并链接的转移目标地址

R类指令

Untitled

R类型指令包括寄存器-寄存器型的ALU指令 专用寄存器读/写指令 move 指令等

func 为具体的运算操作编码

J类指令

Untitled

这类指令包括跳转指令/跳转并链接指令/自陷指令/异常返回指令。

跳转类型是两个


MIPS浮点操作

用后缀S标识操作数是单精度浮点数,D标识是双精度浮点数

例如 MOVD MOVS


某机的指令字长为 16 位,设有单地址指令和两地址指令。若每个地址字段均为6 位,且两地址指令有 A 条,问单地址指令最多可以有多少条?

单地址段的设计:由于地址字段为6位,所以功能字段为10位,不考虑两个地址指令,那么单地址指令就有$2^{16-6} = 2 ^{10}$ 条。
两地址段的设计:由于此时只能用四位来作为功能码,由于有A条的两地址指令,所以单地址指令就有:$2^{10} - A \times 2 ^6$ 条。

某处理机的指令系统要求有三地址指令 4 条、单地址指令 255 条、零地址指令16 条。设指令字长为 12 位,每个地址码长度为 3 位。问能否用扩展编码为其操作码编码?如果要求单地址指令为 254 条能否对其操作码扩展编码? 说明理由。

但地址指令是255条,采用扩展编码的话操作码位数就是8位,地址码使用3位,指令字长是12位所以就剩下1位来标识其他类型的操作码,能表示零地址的指令只能表示2条,三地址的指令0条。

  • 标题:
  • 作者: Molaters
  • 创建于 : 2023-11-24 11:30:49
  • 更新于 : 2023-11-18 21:17:22
  • 链接: https://molaters.github.io/2023/11/24/计算机体系结构/CA-RW-CH2/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
 评论