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

1. 基本概念与分类

1.1 概念

指令系统(Instruction Set Architecture, ISA)是一台计算机能够直接识别并执行的机器指令的集合。
ISA是软、硬件的分界面与接口:定义了软、硬件交互的协约;提供了一种软件告诉硬件该执行什么操作的机制。
在这里插入图片描述

1.2 分类

CISC、RISC

计算机系统结构可根据ISA的不同进行分类,x86指令系统、MIPS指令系统等。但是使用同一指令系统的计算机硬件实现可以不同。使用相同指令系统的机器,软件是兼容的。

根据操作数的存储位置对指令进行分类:主存型结构、累加器型结构、堆栈型结构、通用寄存器结构 (寄存器-存储器,寄存器-寄存器)

1.3 指令系统设计

  1. 设计原则
    (1)可编程性(Programmability)——软件
    简单、高效的编程
    (2)可实现性(Implementability)——硬件
    容易设计出高性能、低功耗、高可靠、低成本的计算机
    (3)兼容性(Compatibility)——用户
    兼容性包括向上(向前)兼容与向下(向后)兼容
  2. 设计要素
    (1)指令格式 (指令长度、编码): 定长的指令规整,控制操作简单,但可能浪费一定的指令存储空间,变长指令节省空间,但控制复杂。
    (2)操作数存储位置 (寄存器、主存、累加器、堆栈等)、类型 (整形、浮点)、长度 (字节、字、双字等)、个数。
    (3)寻址方式:寄存器寻址,立即数寻址,偏移寻址,寄存器间接寻址,索引寻址
    (4)操作类型:add、sub、mul、move、compare

2. MIPS指令系统

load-store结构 (寄存器-寄存器)

2.1 寄存器

  1. 32个64位通用寄存器 (整数寄存器)(R0, R1, …R31)R0的值永远是0。
  2. 32个64位浮点数寄存器 (F0, F1,…F31),用来存放32个单精度浮点数 (32位),也可以用来存放32个双精度浮点数 (64位)。存储单精度浮点数时,只用到寄存器的一半。

2.2 数据表示

  1. 整数:字节 (8位), 半字 (16位),字 (32位),双字 (64位)。
  2. 浮点数: 单精度浮点数 (32位),双精度浮点数 (64位)。
  3. 字节、半字或者字在装入64位寄存器时,用零扩展或者用符号位扩展来填充该寄存器的剩余部分。装入以后,对它们将按照64位整数的方式进行运算。

2.3 数据寻址方式

  1. 立即数寻址与偏移量寻址:立即数字段和偏移量字段都是16位的。
  2. 寄存器间接寻址是通过把0作为偏移量来实现的。
  3. 16位绝对寻址是通过把R0(其值永远为0)作为基址寄存器来完成的。
  4. MIPS的存储器是按字节寻址的,地址为64位。

2.4 指令格式

寻址方式编码到操作码中,所有指令都是32位的,操作码占6位
3种指令格式:R、I、J,同名字段的位置不变。

  1. R型指令
    (1)ALU指令
    (2)专用寄存器读/写指令
    (3)MOVE指令等
  2. J类指令
    (1)跳转指令
    (2)跳转并链接指令
    (3)自陷指令
    (4)异常返回指令
    在这类指令中,指令字的低26位是偏移量,它与PC值相加形成跳转的地址
  3. I型指令
    (1)load和store指令
    (2)立即数指令
    (3)分支指令
    (4)寄存器跳转指令
    (5)寄存器链接跳转指令。
    立即数字段为16位,用于提供立即数或偏移量。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章