鄒第二章计算机指令集结构设计 计算机的指令集结构也称为指令系统,它是硬件 体机器所支持的全部指令集合,它是机器语言程员 条所看到的机器的最主要的属性之一 指令集结构设计的最基本问题是软硬件划分 指令集结构设计包括确定指令格式、类型、操作 以及操作数的访问方式等
第二章 计算机指令集结构设计 计算机的指令集结构也称为指令系统,它是硬件 机器所支持的全部指令集合,它是机器语言程员 所看到的机器的最主要的属性之一。 指令集结构设计的最基本问题是软硬件划分。 指令集结构设计包括确定指令格式、类型、操作 以及操作数的访问方式等
2.1指令集结构的分类 2.1.1指令集结构分类 根据五个因素对计算机指令集结构进行分类: (1)在cPU中操作数的存储方法 (2)指令中显式表示的操作数个数 (3)操作数的寻址方式 (4)指令集所提供的操作类型 (5)操作数的类型和大小 cPU中操作数的存储方法,是各种指令集结构 之间最主要的区别所在
2.1 指令集结构的分类 2.1.1 指令集结构分类 根据五个因素对计算机指令集结构进行分类: (1) 在CPU中操作数的存储方法 (2) 指令中显式表示的操作数个数 (3) 操作数的寻址方式 (4) 指令集所提供的操作类型 (5) 操作数的类型和大小 CPU中操作数的存储方法,是各种指令集结构 之间最主要的区别所在
1.CPU中用来存储操作数的存储单元主要有 °堆栈 °累加器 寄存器存储器 2.指令中的操作数可以显式给出,也可以隐式地给出。 3.cPU对操作数的不同存取方式
1. CPU中用来存储操作数的存储单元主要有: 2. 指令中的操作数可以显式给出,也可以隐式地给出。 3. CPU对操作数的不同存取方式 • 堆栈 • 累加器 • 寄存器/存储器
cPU对操作数的不同存取方式 cPU提供的每条ALU指令显式表示运算结果的访问显式操作数的 暂存器 的操作数个数 目的地 过程 堆栈 堆栈 Push/Pop 累加器 累加器Load/ Store累加 寄得器/作 2/3 寄存器或存Load/ Store寄存 储器 储器器或存储器
CPU对操作数的不同存取方式 CPU提供的 暂存器 每条ALU指令显式表示 的操作数个数 运算结果的 目的地 访问显式操作数的 过程 堆栈 0 堆栈 Push/Pop 累加器 1 累加器 Load/Store累加 器 寄存器/存 储器 2/3 寄存器或存 储器 Load/Store 寄 存 器或存储器
4.根据CPU内部存储单元类型进行分类,可以分为 °堆栈型指令集结构 °累加器型指令集结构 °通用寄存器型指令集结构 例C=A+B表达式在这三种类型指令集结构上的 实现方法。假设A、B、C均是保存在存储器单元中 且A和B的值在运算过程中一直被保持
4. 根据CPU内部存储单元类型进行分类,可以分为: • 堆栈型指令集结构 • 累加器型指令集结构 • 通用寄存器型指令集结构 例 C=A+B表达式在这三种类型指令集结构上的 实现方法。假设A、B、C均是保存在存储器单元中, 且A和B的值在运算过程中一直被保持
C=A+B表达式在这三种类型指令集结构上的实现方 法 堆栈 累加器 寄存器 寄存器 (寄存器-存储器) (寄存器-寄存) PUSHA LOADA LOAD RI.A LOAD RIA PUSH B add B ADD RIB LOAD R2, B ADD Store C Store CRI Add r3 r1r2 POP C Store C, R3
C=A+B表达式在这三种类型指令集结构上的实现方 法 堆栈 累加器 寄存器 (寄存器-存储器) 寄存器 (寄存器-寄存器) PUSH A LOAD A LOAD R1,A LOAD R1,A PUSH B ADD B ADD R1,B LOAD R2,B ADD Store C Store C,R1 Add R3,R1,R2 POP C Store C,R3
三种类型指令集结构的优缺点 指令集结 优点 缺点 构类型 堆栈型是一种表示计算的堆栈不能被随机访问,从而很难生 简单模型;指令短小。成有效代码。同时,由于堆栈是瓶颈 所以很难被高效地实现 累加器型减小了机器的内部由于累加器是唯一的暂存器,这种 状态;指令短小 机器的存储器通信开销最大。 寄存器型是代码生成最一般所有操作数均需命名,且显式表示 的模型 因而指令比较长
三种类型指令集结构的优缺点 指令集结 构类型 优点 缺点 堆栈型 是一种表示计算的 简单模型;指令短小。 堆栈不能被随机访问,从而很难生 成有效代码。同时,由于堆栈是瓶颈, 所以很难被高效地实现。 累加器型 减小了机器的内部 状态;指令短小。 由于累加器是唯一的暂存器,这种 机器的存储器通信开销最大。 寄存器型 是代码生成最一般 的模型。 所有操作数均需命名,且显式表示, 因而指令比较长
2.1.2通用寄存器型指令集结构的分类 条早期的计算机中采用堆栈指令集结构和累加器指 令集结构比较多,但现代CPU,通用寄存器型指令 集结构已成为指令集结构的主流,原因:
2.1.2 通用寄存器型指令集结构的分类 早期的计算机中采用堆栈指令集结构和累加器指 令集结构比较多,但现代CPU,通用寄存器型指令 集结构已成为指令集结构的主流,原因:
1.通用寄存器型指令集结构的主要优点 (1)使编译器有效地使用寄存 (2)在表达式求值方面,比其它类型指令集结构 具有更大的灵活性; (3)寄存器可以用来存放变量。 ◆减少存储器的通信量,加快程序的执行速度。 (因为寄存器比存储器快) ◆可以用更少的地址位来寻址寄存器,从而可 以有效改进程序的目标代码大小
1. 通用寄存器型指令集结构的主要优点 (1) 使编译器有效地使用寄存器; (2) 在表达式求值方面,比其它类型指令集结构 具有更大的灵活性; (3) 寄存器可以用来存放变量。 ◆ 减少存储器的通信量,加快程序的执行速度。 (因为寄存器比存储器快) ◆ 可以用更少的地址位来寻址寄存器,从而可 以有效改进程序的目标代码大小
篑 2.CPU需要设置多少个寄存器呢? 主要由编译器使用寄存器的情况来决定 体 为表达式求值保留一些寄存器 为传递参数保留一些寄存器 °用剩下的寄存器来保存变量 狗3.两种主要的指令特性能够将通用寄存器指令集结构 (GPR)进一步细分 (1)ALU指令到底有两个或是三个操作数? ◆有三个操作数的指令:两个源操作数 一个结果操作数
3. 两种主要的指令特性能够将通用寄存器指令集结构 (GPR)进一步细分 (1) ALU指令到底有两个或是三个操作数? ◆ 有三个操作数的指令:两个源操作数 一个结果操作数 2. CPU需要设置多少个寄存器呢? 主要由编译器使用寄存器的情况来决定 • 为表达式求值保留一些寄存器 • 为传递参数保留一些寄存器 • 用剩下的寄存器来保存变量