计算机指令集结构设计

计算机指令集结构设计

ID:44151103

大小:1.27 MB

页数:89页

时间:2019-10-19

计算机指令集结构设计_第1页
计算机指令集结构设计_第2页
计算机指令集结构设计_第3页
计算机指令集结构设计_第4页
计算机指令集结构设计_第5页
资源描述:

《计算机指令集结构设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第二章计算机指令集结构设计计算机的指令集结构也称为指令系统,是硬件机器所支持的全部指令集合,是机器语言程序员所看到的机器的最主要的属性之一。指令集结构设计的最基本问题是软硬件划分。指令集结构设计包括确定指令类型、格式、操作以及操作数的访问方式等。一条指令应包含如下信息:进行何种操作:即操作性质;体现在指令中被称为操作码。操作的对象:数据来源以及如何寻找操作数;体现在指令中被称为地址码。操作的结果:结果存放在何处。下一条指令又如何寻找。2.1指令集结构的分类根据五个因素对计算机指令集结构进行分类:(

2、1)在CPU中操作数的存储方法(2)指令中显式表示的操作数个数(3)操作数的寻址方式(4)指令集所提供的操作类型(5)操作数的类型和大小CPU中操作数的存储方法是各种指令集结构之间最主要的区别所在。1.CPU中用来存储操作数的存储单元主要有:2.指令中的操作数可以显式给出,也可以隐式地给出。3.CPU对操作数的不同存取方式(见下表):堆栈累加器寄存器/存储器CPU提供的暂存器每条ALU指令显式表示的操作数个数运算结果的目的地访问显式操作数的过程堆栈0堆栈Push/Pop累加器1累加器Load/St

3、ore累加器寄存器/存储器2/3寄存器或存储器Load/Store寄存器或存储器4.根据CPU内部存储单元类型进行分类,可以分为:堆栈型指令集结构累加器型指令集结构通用寄存器型指令集结构例C=A+B表达式在这三种类型指令集结构上的实现方法。假设A、B、C均是保存在存储器单元中,且A和B的值在运算过程中一直被保持。C=A+B表达式在这三种类型指令集结构上的实现方法堆栈累加器寄存器(寄存器-存储器)寄存器(寄存器-寄存器)PUSHALOADALOADR1,ALOADR1,APUSHBADDBADDR1

4、,BLOADR2,BADDStoreCStoreC,R1AddR3,R1,R2POPCStoreC,R3三种类型指令集结构的优缺点指令集结构类型优点缺点堆栈型是一种表示计算的简单模型;指令短小。堆栈不能被随机访问,从而很难生成有效代码。同时,由于堆栈是瓶颈,所以很难被高效地实现。累加器型减小了机器的内部状态;指令短小。由于累加器是唯一的暂存器,这种机器的存储器通信开销最大。寄存器型是代码生成最一般的模型。所有操作数均需命名,且显式表示,因而指令比较长。通用寄存器型指令集结构的分类早期的计算机中采用

5、堆栈型指令集结构和累加器型指令集结构比较多,但对现代CPU,通用寄存器型指令集结构已成为指令集结构的主流。1.通用寄存器型指令集结构的主要优点:(1)使编译器有效地使用寄存器;(2)在表达式求值方面,比其它类型指令集结构具有更大的灵活性;(3)寄存器可以用来存放变量。◆减少存储器的通信量,加快程序的执行速度(因为寄存器比存储器快)。◆可以用更少的地址位来寻址寄存器,从而可以有效改进程序的目标代码大小。3.两种主要的指令特性能够将通用寄存器型指令集结构(GPR)进一步细分。2.CPU需要设置多少个寄

6、存器呢?主要由编译器使用寄存器的情况来决定为表达式求值保留一些寄存器为传递参数保留一些寄存器用剩下的寄存器来保存变量(1)ALU指令到底有两个或是三个操作数?◆有三个操作数的指令:两个源操作数,一个结果操作数。◆有两个操作数的指令:一个操作数既作为源操作数,又作为目的操作数。(2)在ALU指令中,有多少个操作数可以用存储器来寻址,也即有多少个存储器操作数?一般来说,ALU指令有0~3个存储器操作数。ALU指令中,存储器操作数个数和操作数个数的 所有可能组合,以及相应的机器实例ALU指令中存储器操作

7、数个数ALU指令中操作数的最大个数机器实例02IBMRT-PC3SPARC,MIPS12PDP-10,IBM360,Motorola680003IBM360的部分指令22PDP-11,部分IBM360指令333VAX(3)通用寄存器型指令集结构进一步细分为三种类型:(4)常见的三种通用寄存器型指令集结构的优缺点(见下表):注:表中(m.n)的含义是,指令的n个操作数中有m个存储器操作数。寄存器---寄存器型(R-R:Register-Register)寄存器---存储器型(R-M:Register

8、-Memory)存储器---存储器型(M-M:Memory-Memory)指令集结构类型优点缺点寄存器-寄存器型(0,3)简单,指令字长固定,是一种简单的代码生成模型,各种指令的执行时钟周期数相近。和指令中含有对存储器操作数访问的结构相比,指令条数多,因而其目标代码较大。寄存器-存储器型(1,2)可以直接对存储器操作数进行访问,容易对指令进行编码,且其目标代码较小。指令中的操作数类型不同。在一条指令中同时对一个寄存器操作数和存储器操作数进行编码,将限制指令所能够表示的寄存器个数。由

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。