计算机指令集结构设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3指令集结构的功能设计
指令集结构的功能设计 一种指令集结构中的指令到底要支持哪些类型 的操作呢?这就是所谓的指令集结构的功能设 计问题。 指令集结构的功能设计的两个方向: CISC:尽量多地支持各种类型的操作,实现软 件功能向硬件功能的转移。 RISC:只支持使用频率比较高的操作,优化这 些操作的实现以提高性能。
Reg[R4] ← Reg[R4]+Mem[Reg[R1]]
Reg[R3] ← Reg[R3]+Mem[Reg[R1]+Reg[R2] Reg[R1] ← Reg[R1]+Mem[1001] Reg[R1] ← Reg[R1]+Mem[Mem[Reg[R3]]] Reg[R1] ← Reg[R1]+Mem[Reg[R2]] Reg[R2] ← Reg[R2]+d Reg[R2] ← Reg[R2]-d Reg[R1] ← Reg[R1]+Mem[Reg[R2]] Reg[R1] ← Reg[R1]+Mem[100+Reg[R2]+Reg[R3]*d]
2.1指令集结构的分类
按CPU中操作数的存储方法分为: 堆栈型指令集结构; 累加器型指令集结构; 通用寄存器型指令集结构RM及RR。
2.1指令集结构的分类
CPU对操作数的不同存取方式
CPU提供的 暂存器 ALU指令显式表示的 操作数个数 运算结果的目的 地 访问显式操作数 的方法
堆栈
0
堆栈
PUSH/POP
Reg[R4] ← Reg[R4]+3 Reg[R4] ← Reg[R4]+Mem[100+Reg[R1]
寄存器间接寻址
索引寻址 直接寻址 存储器间接寻址 自增寻址 自减寻址 缩放寻址
ADD R4,(R1)
ADD R3,(R1+R2) ADD R1,(1001) ADD R1,@(R3) ADD R1,(R2)+ ADD R1,-(R2) ADD R1,100(R2)[R3]
2.2 寻址技术
指令集结构中选择那些寻址方式? 在指令集结构中采用多种寻址方式可以显 著地减少程序的指令条数,但同时可能增加实现 的复杂度和使用这些寻址方式的指令的执行时钟 周期数(CPI)。所以应该选择使用频率比较高 的寻址方式。 统计表明,立即值寻址方式和偏移寻址方 式的使用频率非常高。
2.2 寻址技术
寄存器型
是代码生成的最一般模 型
所有操作数均需命名,且要显 示表示,因而指令比较长
2.1指令集结构的分类
2.1.2 通用寄存器型指令集结构分类 利用寄存器的优势: (1)在表达式求值方面,具有更大的灵活性; (2)利用寄存器存放变量,不但能够减少存储 器的通信量,加快程序的执行速度,而且和存 储器相比; (3)还可以用更少的地址位来寻址寄存器,从 而能够有效改进程序的目标代码大小。
指令集格式的设计 指令集中的每条指令由操作码和地址码组成, 指令集格式的设计就是要确定操作码字段和 地址码字段的大小及其组合形式,以及各种 寻址方式的编码方法。 格式优化设计的目标有两个:(1)节省程序 的存储空间;(2)指令格式要尽量规整,以 减少硬件译码的复杂度。
第二章 计算机指令集结构设计
主要介绍计算机指令集结构的分类,寻 址技术,计算机指令集结构的功能设计, Huffman编码法。 n 重点是CISC计算机指令集和RISC计算 机指令集的设计思想、设计原则、结构特 点、改进思路和改进方法等。
n
2.1指令集结构的分类
2.1.1指令集结构的分类
指令集是软硬件功能分配最主要的界面 指令集结构的分类 分类所考虑的因素如下: (1)在CPU中操作数的存储方法; (2)指令中显式表示的操作数个数; (3)操作数的寻址方式; (4)指令集所提供的操作类型; (5)操作数的类型和大小。
2.4 操作数类型、表示和大小
对指令所处理的操作数类型的表示方法有两种: (1)操作数的类型由指令操作码的编码指定。 这是最常见的方法; (2)数据可以附上由硬件解释的标记,由这些 标记指定操作数的类型,从而选择适当的运算。 一般的操作数类型大小选择主要有:字节、半字、 单字和双字。
2.5 指令集格式的设计
ADD POP C
STORE C
STORE C,R1
ADD R3,R1,R2 STORE C,R3
2.1指令集结构的分类
三类指令集结构的优缺点
类型 堆栈型 优点 表示计算的简单模型; 指令短小 缺点 不能随机访问堆栈,从而很难 生成有效代码;堆栈是瓶颈, 很难被高效地实现
累加器型
减小了机器的内部状态; 由于累加器是唯一的暂存器, 指令短小 这种机器的存储器通信开销很 大
2.1指令集的结构分类
ALU指令中操作数个数和存储器操作数个数
ALU指令中存储 ALU指令中操作 器操作数个数 数的最大个数 0 1 2 3 2 机器实例 IBM RT-PC
3
2 3 2 3 3
SPARC,MIPS
PDP-10,IBM 360,Motorola 68000 IBM 360的部分指令 PDP-11,部分IBM 360指令 VAX
面向目标程序增强指令功能: 用一条新的指令代替使用频率较高的指令 串,或优化使用频率较高的指令。 主要方法: (1)提高运算型指令功能; (2)提高传送指令功能; (3)增加程序控制指令功能。
2.3.1 CISC指令集结构的功能设计
面向高级语言和编译程序改进指令系统: 编译程序形成的目标程序比直接用机器 语言编写的程序要长; 编译程序运行时间在总的运行时间中占较 大的比例; 编译通过,目标程序运行时没通过时,查 找错误很困难。
决定指令字长度的主要因素有哪些? (1)指令集中指令的条数; (2)CPU中通用寄存器的数目; (3)所支持存储器容量的大小; (4)偏移寻址中所支持的偏移量大小; (5)立即值寻址中所支持的立即值大小。 统计表明75%~99%的偏移量大小可用 12~16位表示;50%~80%的立即值大小可 用8~16位表示。
2.3.2 RISC指令集结构的功能设计
进行RISC计算机指令集结构功能设计时必须遵循 如下原则: (1)选择使用频率最高的指令,并补充一些最有 用的指令; (2)每条指令的功能应尽可能简单,并在一个机 器周期内完成; (3)所有指令长度均相同; (4)只有Load和Store才访问存储器,其他指令 操作均在寄存器之间进行; (5)以简单有效方式支持高级语言。
2.3.2 RISC指令集结构的功能设计(补)
RISC的重叠寄存器窗口技术 (1)在处理器中设置数量比较大的寄存器堆,并把它们 划分成很多个窗口。 (2)其中一个窗口为公共窗口,用来存放全局变量。 (3)每个过程使用三个相邻的窗口和公共窗口。 (4)本过程所使用的三个窗口中,有一个高区窗口,一 个本区窗口和一个低区窗口。 (5)被调用过程的高区窗口与调用过程的低区窗口重叠, 用于调用过程向被调用过程传递参数,或用于被调用 过程向调用过程传送结果。故称作为重叠寄存器窗口。
2.3.1 CISC指令集结构的功能设计
改进方法: (1)增加对高级语言和编译系统支持的指令功能。 (a)对使用频度高的高级语言语句,设置专门 的机器指令或增加相应指令的功能,以提高编译 速度和执行速度; (b)增加指令结构的规整性来改进指令系统。 (2)高级语言计算机指令系统。
2.3.1 CISC指令集结构的功能设计
面向操作系统的优化改进指令系统: 对中断处理、进程管理、存储管理和保护、 系统工作状态的建立和切换等提供支持。通 过设置支持系统工作状态和访问方式转换的 指令、支持进程切换的指令、支持进程同步 和互斥的指令等达到优化实现操作系统的目 的。
2.3.1 CISC指令集结构的功能设计
CISC结构的缺点: (1)指令的使用频率相差悬殊; (2)体系结构复杂,增加研制时间和成本,容 易出现设计错误; (3)VLSI设计困难,不利于单片集成; (4)复杂指令运行速度慢; (5)指令功能不均衡,不利于流水。
2.3.3 控制指令
对于过程调用和返回指令来说,如何保存机 器状态? 机器状态:各个寄存器的值和返回地址,一 般保存在内存的特定区域,例如堆栈。 指令集结构是否提供保存指令? 保存寄存器内容的方法有两种:“调用者保 存”策略;“被调用者保存”策略。
2.4 操作数类型、表示和大小
操作数类型、表示和大小 数据类型是面向应用、面向软件系统所处理 的各种数据结构; 数据表示是硬件结构能够识别、指令系统可 以直接调用的数据结构。 数据表示所表征的那些操作数类型是应用软 件和系统软件所处理的操作数类型的子集。
条件码(CC) 在程序的控制下,由ALU操 可以自由设 作设置特殊的位 置分支条件
条件寄存器
根据比较结果测试条件寄 存器
简单
比较且分支
比较操作是分支指令的一 部分,通常这种比较是受 一定限制的
一条指令完 成了两条指 令的功能
分支指令中的操作增多
2.3.3 控制指令
如何指出目标地址? 除返回指令外,都在控制指令中给出目标地址。一般方 法是在指令中提供一个和程序计数器PC的相加的偏移量。 这种寻址方式称为PC相对寻址。 使用PC相对寻址的好处: (1)控制转移的目标一般和当前指令比较近,可以缩短控 制指令中目标地址字段的长度; (2)使用PC相对寻址,可以使代码在执行时与它被载入 的地址无关。 如何确定控制指令中目标地址字段的长度?根据控制指令 中偏移量大小的分布情况确定。
2.2 寻址技术
通用寄存器型指令集结构可分为三类: 寄存器—寄存器型(R-R); 寄存器—存储器型(R-M); 存储器—存储器型(M-M)。
2.2 寻址技术
寻址方式 指令实例 含义
寄存器寻址
立即值寻址 偏移寻址
ADD R4,R3
ADD R4,#3 ADD R4,100(R1)
Reg[R4] ← Reg[R4] + Reg[R3]
2.3.2 RISC指令集结构的功能设计(补)
RISC Ⅱ的重叠寄存器窗口
R137 …… R132 R131 …… R122 R121 …… R116 R115 …… R106 R105 …… R100 …… R9 …… R0
高区 本区 低区
重叠窗口,用于传递参数和结果
高区 本区 低区
全局变量 A过程的窗口
2.3指令集结构的功能设计
指令集结构中操作的分类:
操作类型 算术逻辑运算 数据传输 实例 整数的算术和逻辑操作:加、减、乘、除、与、或等 Load/Store
控制
系统 浮点 十进制 字符串 图形
分支、跳转、过程调用和返回、自陷等
操作系统调用、虚拟存储器管理等 浮点操作:加、减、乘、除等 十进制加、减、乘、除、十进制到字符的转换等 字符串移动、比较、搜索等 像素操作、压缩、解压操作等
累加器
1
累加器
LOAD/STORE累 加器 LOAD/STORE寄 存器或存储器
一组寄存器
2/3
寄存器或存储器
2.1指令集结构的分类
C=A+B在三种类型指令集结构上的实现 堆栈 PUSH A PUSH B 累加器 LOAD A ADD B 寄存器(寄存 寄存器(寄存 器—存储器) 器—寄存器) LOAD R1,A LOAD R1,A ADD R1,B LOAD R2,B
全局变量 B过程的窗口
2.3.3 控制指令
控制指令 在本书中,当控制指令为无条件改变控制 流时,称为“跳转”;当控制指令有条件 改变控制流时,称为“分支”。 有四类控制指令:条件分支、跳转、过程 调用、过程返回,改变控制流的大部分指 令是条件分支指令。
2.3.2 控制指令
每次CALL/RETURN的开销
计算机 执行时间(ns) 执行指令的 条数 26 5 22 19 2 19 9 6 访问存储器 的次数 19 15 12 0.2
VAX-11
PDP-11 MC 68000 RISC Ⅰ
2.3.3 控制指令
如何表示分支条件?
表示分支条 件的技术 测试分支条件的方法 优点 缺点 因为必须从一条指令将分支 条件信息传送到分支指令, 所以CC是额外的状态,条件 码限制了指令顺序 占用了一个寄存器
2.3.1 CISC指令集结构的功能设计
CISC计算机指令集结构的功能设计 CISC计算机提高性能的途径:强化指令功 能,减少程序指令的条数。 增强机器指令功能的方法: 1.面向目标程序增强指令功能; 2.面向高级语言和编译程序改进指令系统; 3.面向操作系统的优化改进指令系统。
2.3.1 CISC指令集结构的功能设计