计算机系统结构全套课件-第2章-计算机指令集结构.ppt

上传人(卖家):三亚风情 文档编号:2417240 上传时间:2022-04-15 格式:PPT 页数:82 大小:1.23MB
下载 相关 举报
计算机系统结构全套课件-第2章-计算机指令集结构.ppt_第1页
第1页 / 共82页
计算机系统结构全套课件-第2章-计算机指令集结构.ppt_第2页
第2页 / 共82页
计算机系统结构全套课件-第2章-计算机指令集结构.ppt_第3页
第3页 / 共82页
计算机系统结构全套课件-第2章-计算机指令集结构.ppt_第4页
第4页 / 共82页
计算机系统结构全套课件-第2章-计算机指令集结构.ppt_第5页
第5页 / 共82页
点击查看更多>>
资源描述

1、计算机系统结构计算机系统结构全套精品课件全套精品课件2813812.1 指令集结构的分类2.2 寻址技术2.3 指令集结构的功能设计2.4 操作数的类型、表示和大小2.5 指令集格式的设计2.6 DLX指令集结构第二章 计算机指令集结构设计4812.1 指令集结构的分类2.1.1 指令集结构分类根据根据五个因素五个因素对计算机指令集结构进行分类:对计算机指令集结构进行分类: (1)(1) 在在CPUCPU中操作数的存储方法中操作数的存储方法(2) (2) 指令中显式表示的操作数个数指令中显式表示的操作数个数 (3) (3) 操作数的寻址方式操作数的寻址方式 (4) (4) 指令集所提供的操作类

2、型指令集所提供的操作类型 (5) (5) 操作数的类型和大小操作数的类型和大小 第二章 计算机指令集结构设计5811. CPU中用来存储操作数的存储单元主要有:2. 指令中的操作数可以显式给出,也可以隐式地给出。3. CPU对操作数的不同存取方式 l 堆栈堆栈l 累加器累加器l 一组寄存器一组寄存器 CPUCPU中操作数的存储方法,中操作数的存储方法,是各种指令集结构是各种指令集结构之间最主要的区别所在。之间最主要的区别所在。2.1 指令集结构的分类681CPU对操作数的不同存取方式 CPU提供的暂存器每条ALU指令显式表示的操作数个数运算结果的目的地访问显式操作数的过程堆栈堆栈0 0堆栈堆栈

3、Push/PopPush/Pop累加器累加器1 1累加器累加器Load/StoreLoad/Store累加器累加器一组寄存器一组寄存器2/32/3寄存器或存寄存器或存储器储器Load/StoreLoad/Store寄存寄存器或存储器器或存储器781 4. 根据CPU内部存储单元类型进行分类,可以分为l 堆栈型指令集结构堆栈型指令集结构l 累加器型指令集结构累加器型指令集结构l 通用寄存器型指令集结构通用寄存器型指令集结构 例例 C=A+BC=A+B表达式在这三种类型指令集结构上的表达式在这三种类型指令集结构上的实现方法实现方法。假设。假设A A、B B、C C均是保存在存储器单元中,均是保存在

4、存储器单元中,且且A A和和B B的值在运算过程中一直被保持。的值在运算过程中一直被保持。2.1 指令集结构的分类881C=A+B表达式在这三种类型指令集结构上的实现方法 堆栈累加器寄存器 (寄存器存储器)寄存器(寄存器寄存器)PUSH ALOAD ALOAD R1,ALOAD R1,APUSH BADD BADD R1,BLOAD R2,BADDStore CStore C,R1Add R3,R1,R2POP C Store C,R3981三种类型指令集结构的优缺点 指令集结构类型优点缺点堆栈型堆栈型 是一种表示计算的是一种表示计算的简单模型;指令短小。简单模型;指令短小。 堆栈不能被随机访

5、问,从而很难生堆栈不能被随机访问,从而很难生成有效代码。同时,由于堆栈是瓶颈,成有效代码。同时,由于堆栈是瓶颈,所以很难被高效地实现。所以很难被高效地实现。累加器型累加器型 减小了机器的内部减小了机器的内部状态;指令短小。状态;指令短小。 由于累加器是唯一的暂存器,这种由于累加器是唯一的暂存器,这种机器的存储器通信开销最大。机器的存储器通信开销最大。寄存器型寄存器型 是代码生成最一般是代码生成最一般的模型。的模型。 所有操作数均需命名,且显式表示,所有操作数均需命名,且显式表示,因而指令比较长。因而指令比较长。10812.1.2 通用寄存器型指令集结构的分类 1. 通用寄存器型指令集结构的主要

6、优点 使编译器有效地使用寄存器。使编译器有效地使用寄存器。 (1) (1) 在表达式求值方面,比其它类型指令集结构在表达式求值方面,比其它类型指令集结构 具有更大的灵活性具有更大的灵活性; ; (2) (2) 寄存器可以用来存放变量。寄存器可以用来存放变量。 减少存储器的通信量,加快程序的执行速度。减少存储器的通信量,加快程序的执行速度。 (因为寄存器比存储器快)(因为寄存器比存储器快) 可以用更少的地址位来寻址寄存器,从而可可以用更少的地址位来寻址寄存器,从而可 以有效改进程序的目标代码大小。以有效改进程序的目标代码大小。 2.1 指令集结构的分类11813. 两种主要的指令特性能够将通用寄

7、存器指令集结构 (GPR)进一步细分 (1) ALU(1) ALU指令到底有两个或是三个操作数?指令到底有两个或是三个操作数? 有三个操作数的指令:两个源操作数有三个操作数的指令:两个源操作数 一个结果操作数一个结果操作数2. CPU需要设置多少个寄存器呢? 主要由编译器使用寄存器的情况来决定。主要由编译器使用寄存器的情况来决定。l 为表达式求值保留一些寄存器为表达式求值保留一些寄存器l 为传递参数保留一些寄存器为传递参数保留一些寄存器l 用剩下的寄存器来保存变量用剩下的寄存器来保存变量2.1 指令集结构的分类1281 有两个操作数的指令:一个操作数既作为源操有两个操作数的指令:一个操作数既作

8、为源操 作数,也作为目的操作数。作数,也作为目的操作数。(2) (2) 在在ALUALU指令中,有多少个操作数可以用存储器来寻指令中,有多少个操作数可以用存储器来寻 址,也即有多少个存储器操作数?址,也即有多少个存储器操作数? 一般来说,一般来说,ALUALU指令有指令有0 03 3个存储器操作数。个存储器操作数。2.1 指令集结构的分类1381 ALU指令中,存储器操作数个数和操作数个数的 所有可能组合,以及相应的机器实例 ALU指令中存储器操作数个数ALU指令中操作数的最大个数机器实例02IBM RT-PC3SPARC,MIPS12PDP-10,IBM 360,Motorola 68000

9、3IBM360的部分指令的部分指令22PDP11,部分部分IBM360 指令指令3 33VAX1481(3) (3) 通用寄存器指令集结构进一步细分为三种类型:通用寄存器指令集结构进一步细分为三种类型:(4) (4) 常见的三种通用寄存器型指令集结构的常见的三种通用寄存器型指令集结构的优缺点优缺点 注:表中注:表中(m,n)(m,n)的含义是,的含义是, 指令的指令的n n个操作个操作 数中有数中有m m个存储器操作数。个存储器操作数。 l 寄存器寄存器 - - 寄存器型寄存器型(R-R:register-register)R-R:register-register)l 寄存器寄存器 - -

10、存储器型存储器型(R-M:register-memoryR-M:register-memory)l 存储器存储器 - - 存储器型存储器型(M-M:memory-memoryM-M:memory-memory)2.1 指令集结构的分类指令集结构类型优优 点点缺 点 寄存器寄寄存器寄存器型存器型(0,3) 简单,指令字长固简单,指令字长固定,是一种简单的代定,是一种简单的代码生成模型,各种指码生成模型,各种指令的执行时钟周期数令的执行时钟周期数相近。相近。 和指令中含有对存储器操作数访问和指令中含有对存储器操作数访问的结构相比,指令条数多,因而其的结构相比,指令条数多,因而其目标代码较大。目标代

11、码较大。 寄存器存寄存器存储器型储器型(1,2) 可以直接对存储器操可以直接对存储器操作数进行访问,容易作数进行访问,容易对指令进行编码,且对指令进行编码,且其目标代码较小。其目标代码较小。 指令中的操作数类型不同。在一指令中的操作数类型不同。在一条指令中同时对一个寄存器操作数条指令中同时对一个寄存器操作数和存储器操作数进行编码,将限制和存储器操作数进行编码,将限制指令所能够表示的寄存器个数。由指令所能够表示的寄存器个数。由于指令的操作数可以存储在不同类于指令的操作数可以存储在不同类型的存储器单元,所以每条指令的型的存储器单元,所以每条指令的执行时钟周期数也不尽相同。执行时钟周期数也不尽相同。

12、存储器存存储器存储器型储器型(3,3) 是一种最紧密的编是一种最紧密的编码方式,无需码方式,无需“浪费浪费”寄存器保存变量。寄存器保存变量。 指令字长多种多样。每条指令的指令字长多种多样。每条指令的执行时钟周期数也大不一样,对存执行时钟周期数也大不一样,对存储器的频繁访问将导致存储器访问储器的频繁访问将导致存储器访问瓶颈问题。瓶颈问题。16812.2 寻址技术 1. 在通用寄存器指令集结构中,一般是利用寻址方 式指明指令中的操作数是一个常数、一个寄存器 操作数,抑或是一个存储器操作数。 2. 当前指令集结构中所使用的一些操作数寻址方式。 第二章 计算机指令集结构设计寻址方式指令实例含 义寄存器

13、寻址寄存器寻址Add R4 , R3RegsR4RegsR4RegsR3立即值寻址立即值寻址Add R4 , #3RegsR4RegsR43偏移寻址偏移寻址Add R4 , 100(R1)RegsR4RegsR4Mem100+RegsR1寄存器间接寻址寄存器间接寻址Add R4 , (R1)RegsR4RegsR4MemRegsR1索引寻址索引寻址Add R3 , (R1 + R2)RegsR3RegsR3MemRegsR1+RegsR2直接寻址或绝对寻直接寻址或绝对寻址址Add R1 , (1001)RegsR1RegsR1Mem1001存储器间接寻址存储器间接寻址Add R1 , (R3)

14、RegsR1RegsR1MemMemRegsR3自增寻址自增寻址Add R1 , (R2)+RegsR1RegsR1MemRegsR2RegsR2RegsR2d自减寻址自减寻址Add R1, -(R2)RegsR2RegsR2dRegsR1RegsR1+MemRegsR2缩放寻址缩放寻址AddR1 , 100(R2)R3RegsR1RegsR1Mem100RegsR2RegsR3*d18813. 寻址方式使用情况统计结果 (VAXVAX指令集结构的机器:指令集结构的机器:gccgcc、SpiceSpice和和Tex Tex 基准程序)基准程序)1%0%24%43%32%6%16%3%17%55

15、%1%6%11%39%40%0%10%20%30%40%50%60%70%存储器间接寻址缩放寻址寄存器间接寻址立即寻址偏移寻址TexSpicegcc立即值寻址方式立即值寻址方式和和偏移寻址方式偏移寻址方式的使用频率十分高。的使用频率十分高。19814. 各种偏移量字段大小的使用情况 寄存器寄存器型指令集结构的机器上寄存器寄存器型指令集结构的机器上(MIPSMIPS) 运行运行SPECint92SPECint92基准程序集基准程序集 (compresscompress、espressoespresso、eqntotteqntott、gccgcc、lili) 运行运行SPECfp92SPECfp9

16、2基准程序集基准程序集 (dudocdudoc、earear、hydro2dhydro2d、mdljdp2mdljdp2、su2corsu2cor) 2.2 寻址技术2081 x x轴的标记是对偏移量大小进行轴的标记是对偏移量大小进行loglog2 2()运算)运算所得,也就是偏移量字段的位数。所得,也就是偏移量字段的位数。 0%5%10%15%20%25%30%0123456789101112131415SPECint92测量统计结果SPECfp92测量统计结果占偏移寻址方式的百分比2.2 寻址技术2181 程序所使用的偏移量大小分布十分广泛;程序所使用的偏移量大小分布十分广泛; 较小的偏移

17、量和较大的偏移量均占有相当大的比例;较小的偏移量和较大的偏移量均占有相当大的比例; 将偏移量字段的大小设置为将偏移量字段的大小设置为12121616位位。这种长度可。这种长度可 以支持上述以支持上述75759999基于偏移寻址方式的数据访基于偏移寻址方式的数据访 问中偏移量大小的表示。问中偏移量大小的表示。 2.2 寻址技术22815. 在一种Load/Store型指令集结构上,一些指令使用 立即值寻址方式的频率。 比较指令比较指令和和ALUALU指令指令使用立即值寻址方式十分频繁。使用立即值寻址方式十分频繁。 10%87%58%35%45%77%78%10%0%20%40%60%80%100

18、%Load 指令比较指令ALU指令所有指令整型平均浮点平均23816. 不同立即值大小的使用分布情况 将立即值的大小设置为将立即值的大小设置为8 81616位位,可以覆盖所有,可以覆盖所有使用立即值寻址方式指令的使用立即值寻址方式指令的50508080。 0%10%20%30%40%50%60%048121620242832表示立即值的位数百分比gccTexspice2.2 寻址技术24812.3 指令集结构的功能设计 第二章 计算机指令集结构设计操作类型实 例算 术 和 逻算 术 和 逻辑运算辑运算整数的算术和逻辑操作:加、减、与、或等。整数的算术和逻辑操作:加、减、与、或等。数据传输数据传

19、输Load/Store控制控制分支、跳转、过程调用和返回、自陷等。分支、跳转、过程调用和返回、自陷等。系统系统操作系统调用、虚拟存储器管理等。操作系统调用、虚拟存储器管理等。浮点浮点浮点操作:加、乘等。浮点操作:加、乘等。十进制十进制十进制加、十进制乘、十进制到字符的转换。十进制加、十进制乘、十进制到字符的转换。字符串字符串字符串移动、字符串比较、字符串搜索等。字符串移动、字符串比较、字符串搜索等。图形图形象素操作、压缩象素操作、压缩/解压操作等。解压操作等。1. 指令集中操作的分类 26812. 一种指令集结构中的指令到底要支持哪些类型的 操作? ( (指令集结构功能设计问题指令集结构功能设

20、计问题) ) 两种截然不同的方向:两种截然不同的方向: 复杂指令集计算机(复杂指令集计算机(CISCCISC) 强化指令功能,实现软件功能向硬件功能转移。强化指令功能,实现软件功能向硬件功能转移。 精简指令集计算机(精简指令集计算机(RISCRISC) 尽可能地降低指令集结构的复杂性,以达到尽可能地降低指令集结构的复杂性,以达到 简化实现,提高性能的目的。简化实现,提高性能的目的。 当今指令集结构功能设计的一个主要趋势。当今指令集结构功能设计的一个主要趋势。2.3 指令集结构的功能设计27812.3.1 CISC指令集结构的功能设计CISCCISC结构追求的目标:结构追求的目标: 强化指令功能

21、,减少程序的指令条数,以达到强化指令功能,减少程序的指令条数,以达到提高性能的目的。提高性能的目的。增强指令功能主要是从如下几个方面着手:增强指令功能主要是从如下几个方面着手:1. 面向目标程序增强指令功能l 提高运算型指令功能提高运算型指令功能l 提高传送指令功能提高传送指令功能l 增加程序控制指令功能增加程序控制指令功能2.3 指令集结构的功能设计28812.2.面向高级语言和编译程序改进指令系统面向高级语言和编译程序改进指令系统 ( (1) 1) 增加对高级语言和编译系统支持的指令功能增加对高级语言和编译系统支持的指令功能 对源程序中各种高级语言语句进行使用频对源程序中各种高级语言语句进

22、行使用频 度的统计与分析,对于使用频度高的语句,度的统计与分析,对于使用频度高的语句, 可以设置专门的指令或采取措施增加相应可以设置专门的指令或采取措施增加相应 令的功能,以提高其编译速度和执行速度。令的功能,以提高其编译速度和执行速度。 从面向编译程序,尤其是从优化代码生成从面向编译程序,尤其是从优化代码生成 的角度进行考虑,增加指令集结构的规整的角度进行考虑,增加指令集结构的规整 性来改进指令系统。性来改进指令系统。2.3 指令集结构的功能设计2981规整性:规整性:没有或尽可能减少例外的情况和特殊的没有或尽可能减少例外的情况和特殊的 应用,以及所有运算都能对称、均匀地应用,以及所有运算都

23、能对称、均匀地 在存储器单元或寄存器单元之间进行。在存储器单元或寄存器单元之间进行。(2) (2) 高级语言计算机指令系统高级语言计算机指令系统 面向高级语言面向高级语言(HL)(HL)的机器的机器 缩小机器语言和高级语言的语义差距。缩小机器语言和高级语言的语义差距。 间接执行型高级语言机器间接执行型高级语言机器 高级语言和机器语言是一一对应的,用汇高级语言和机器语言是一一对应的,用汇 编的方法编的方法( (可以用软件实现,也可以用硬件实可以用软件实现,也可以用硬件实 现现) )把高级语言源程序翻译成机器语言程序。把高级语言源程序翻译成机器语言程序。2.3 指令集结构的功能设计3081 直接执

24、行型高级语言机器直接执行型高级语言机器 高级语言就作为机器语言,直接由硬件或高级语言就作为机器语言,直接由硬件或 固件对高级语言源程序的语句逐条进行解释以固件对高级语言源程序的语句逐条进行解释以 执行它。执行它。3. 面向操作系统的优化实现改进指令系统 操作系统的实现在很大程度上取决于体系结操作系统的实现在很大程度上取决于体系结 构的支持。构的支持。 (1) (1) 主要表现在对以下方面的支持主要表现在对以下方面的支持2.3 指令集结构的功能设计3181l 中断处理中断处理l 进程管理进程管理l 存储管理和保护存储管理和保护l 系统工作状态的建立与切换系统工作状态的建立与切换 (2) (2)

25、设置指令设置指令l 支持系统工作状态和访问方式转移的指令支持系统工作状态和访问方式转移的指令l 支持进程转移的指令支持进程转移的指令l 支持进程同步和互斥的指令支持进程同步和互斥的指令2.3 指令集结构的功能设计32812.3.2 RISC指令集功能的设计1. CISC结构存在的缺点(1) (1) 在在CISCCISC结构的指令系统中,各种指令的使用频结构的指令系统中,各种指令的使用频 率相差悬殊。率相差悬殊。(2) CISC(2) CISC结构指令系统的复杂性带来了计算机体系结构指令系统的复杂性带来了计算机体系 结构的复杂性,这不仅增加了研制时间和成结构的复杂性,这不仅增加了研制时间和成 本

26、,而且还容易造成设计错误。本,而且还容易造成设计错误。(3) CISC(3) CISC结构指令系统的复杂性给结构指令系统的复杂性给VLSIVLSI设计增加了设计增加了 很大负担,不利于单片集成。很大负担,不利于单片集成。2.3 指令集结构的功能设计3381(4) CISC(4) CISC结构的指令系统中,许多复杂指令需要很结构的指令系统中,许多复杂指令需要很 复杂的操作,因而运行速度慢。复杂的操作,因而运行速度慢。(5) (5) 在在CISCCISC结构的指令系统中,由于各条指令的功结构的指令系统中,由于各条指令的功 能不均衡性,不利于采用先进的计算机体系结能不均衡性,不利于采用先进的计算机体

27、系结 构技术(如流水技术)来提高系统的性能。构技术(如流水技术)来提高系统的性能。 2. RISC计算机 (1) (1) 指令系统只包含那些使用频率很高的指令指令系统只包含那些使用频率很高的指令 和一些必要指令。和一些必要指令。 Intel 80X86Intel 80X86最常用的十条指令最常用的十条指令2.3 指令集结构的功能设计执行频率排序80X86指令指令执行频率(执行指令总数)1Load222条件分支条件分支203比较比较164Store125加加86与与67减减58寄存器寄存器间寄存器寄存器间数据移动数据移动49调用调用110返回返回1合合 计计96Intel 80X86最常用的十条

28、指令 3581(2) (2) 目的目的 使得计算机体系结构更加简单、更加合理和使得计算机体系结构更加简单、更加合理和 更加有效,克服更加有效,克服CISCCISC结构的缺点,使机器速度更结构的缺点,使机器速度更 快,程序运行时间缩短,从而提高计算机系统的快,程序运行时间缩短,从而提高计算机系统的 性能。性能。(3) (3) 设计原则设计原则l 选取使用频率最高的指令,并补充一些最有选取使用频率最高的指令,并补充一些最有 用的指令;用的指令;l 每条指令的功能应尽可能简单,并在一个机每条指令的功能应尽可能简单,并在一个机 器周期内完成;器周期内完成;l 所有指令长度均相同;所有指令长度均相同;2

29、.3 指令集结构的功能设计3681l 只有只有LoadLoad和和StoreStore操作指令才访问存储器操作指令才访问存储器; ;l 其它指令操作均在寄存器之间进行;其它指令操作均在寄存器之间进行;l 以简单有效的方式支持高级语言。以简单有效的方式支持高级语言。2.3.3 控制指令 (1) (1) 跳转跳转: : 当控制指令为无条件改变控制流时,当控制指令为无条件改变控制流时, 称之为称之为“跳转跳转”。 (2) (2) 分支:分支:当控制指令是有条件改变控制流时,当控制指令是有条件改变控制流时, 称之为称之为“分支分支”。2.3 指令集结构的功能设计3781l 条件分支条件分支l 跳转跳转

30、l 过程调用过程调用l 过程返回过程返回 (3) (3) 控制流程的各种改变情况控制流程的各种改变情况2.3 指令集结构的功能设计1. 控制指令的使用频率 (一台(一台Load/StoreLoad/Store型指令集结构的机器:型指令集结构的机器: SPECint92SPECint92、Specfp92Specfp92基准程序)基准程序)13%6%81%11%4%87%0%20%40%60%80%100%调用/ 返回跳转条件分支整型平均浮点平均改变控制流的大部分指令是改变控制流的大部分指令是条件分支指令。条件分支指令。表示分支条件的技术测试分支条件的方法优 点缺 点条件码条件码(CC) 在程序

31、的控制下,由在程序的控制下,由ALU操操作设置特殊的位。作设置特殊的位。 可以自由设置可以自由设置分支条件。分支条件。CC是额外状态,条件码限是额外状态,条件码限制了指令顺序,因为必须从制了指令顺序,因为必须从一条指令将分支条件信息传一条指令将分支条件信息传送到分支指令。送到分支指令。条件寄条件寄存器存器 根据比较结果测试条件寄存根据比较结果测试条件寄存器。器。 简单简单 占用了一个寄存器。占用了一个寄存器。 比较且比较且分支分支比较操作是分支指令的一部比较操作是分支指令的一部分,通常这种比较是受一定分,通常这种比较是受一定限制的。限制的。一条指令完成一条指令完成了两条指令的了两条指令的功能。

32、功能。 分支指令的操作增多。分支指令的操作增多。2. 常用的三种表示分支条件的技术及其优缺点 40813. 分支目标地址的表示 PCPC相对寻址:相对寻址:在指令中提供一个和程序计数在指令中提供一个和程序计数 器(器(PCPC)的值相加的偏移量。)的值相加的偏移量。 (1) (1) 有效地缩短指令中表示目标地址的字段的有效地缩短指令中表示目标地址的字段的 长度;长度; (2) (2) 使得代码在执行时与它被载入的位置无关。使得代码在执行时与它被载入的位置无关。 关键问题是:关键问题是: 转移目标离当前控制指令的偏移量有多大?转移目标离当前控制指令的偏移量有多大? 2.3 指令集结构的功能设计4

33、1814. 过程调用和返回的状态保存 两种方法来保存寄存器的内容:两种方法来保存寄存器的内容: (1) (1) “调用者保存调用者保存”方法方法 在一个调用者调用别的过程时,必须保存调用在一个调用者调用别的过程时,必须保存调用 者所要保存的寄存器,以备调用结束返回后,能够者所要保存的寄存器,以备调用结束返回后,能够 再次访问调用者。再次访问调用者。 (2) “被调用者保存被调用者保存”方法方法 被调用的过程必须保存它要用的寄存器,保证被调用的过程必须保存它要用的寄存器,保证 不会破坏过程调用者的程序执行环境,并在过程调不会破坏过程调用者的程序执行环境,并在过程调 用结束返回时,恢复这些寄存器的

34、内容。用结束返回时,恢复这些寄存器的内容。 2.3 指令集结构的功能设计4281 过程P1 调用 返回 R1 R1 保存状态 过程P2 恢复状态 调用 返回 R1 R1 保存状态 过程P3 恢复状态 执行 R1 R1 保存状态 过程P1 执行 过程P2 恢复状态 调用 返回 (a) 调用者保存 (b) 被调用者保存 图2.6 过程调用中寄存器内容的两种保存策略 2.3 指令集结构的功能设计43812.4 操作数的类型、表示和大小操作数类型和操作数表示是软硬件主要界面之一 。操作数类型:操作数类型:面向应用、面向软件系统所处理的各面向应用、面向软件系统所处理的各 种数据结构种数据结构. .操作数

35、表示:操作数表示:硬件结构能够识别、指令系统可以直硬件结构能够识别、指令系统可以直 接调用的那些结构。接调用的那些结构。确定操作数表示是软硬件取舍折衷的问题。第二章 计算机指令集结构设计4481 1. 操作数的类型l 整数(定点)整数(定点)l 浮点浮点l 十进制十进制l 字符字符2. 操作数类型的两种表示方法 (1) 操作数的类型由操作码的编码指定。操作数的类型由操作码的编码指定。 (最常见的一种方法最常见的一种方法) (2) 数据可以附上由硬件解释的标记,由这些标记数据可以附上由硬件解释的标记,由这些标记 指定操作数的类型,从而选择适当的运算。指定操作数的类型,从而选择适当的运算。l 字符

36、串字符串l 向量向量l 堆栈堆栈2.4 操作数的类型、表示和大小45813. 操作数大小 l 字节字节l 半字(半字(1616位)位)l 单字(单字(3232位)位)l 双字(双字(6464位)位)(1) (1) 字符字符: : 用用ASCIIASCII码表示,为一个字节大小。码表示,为一个字节大小。(2) (2) 整数整数: : 用二进制补码表示,其大小可以是字节、用二进制补码表示,其大小可以是字节、 半字或单字。半字或单字。(3) (3) 浮点操作数浮点操作数: : 单精度浮点(单字大小)和双精单精度浮点(单字大小)和双精 度浮点(双字大小)度浮点(双字大小). . (4) (4) 字符串

37、字符串: : 将字符串中的每个字符当作一个字节将字符串中的每个字符当作一个字节 来看待。来看待。 2.4 操作数的类型、表示和大小4681(5) (5) 十进制操作数十进制操作数 压缩十进制压缩十进制 用用4 4位二进制数编码数字位二进制数编码数字0 09 9,然后将,然后将 两个十进制数字压缩在一个字节中存储。两个十进制数字压缩在一个字节中存储。 二进制编码十进制二进制编码十进制 将十进制数字直接用字符串来表示将十进制数字直接用字符串来表示 。4. 访问不同操作数大小的频率 测试统计测试统计SPECint92SPECint92基准程序和基准程序和SPECfp92SPECfp92基准基准 程序

38、对字节、半字、单字和双字四种大小的操作数程序对字节、半字、单字和双字四种大小的操作数 访问情况。访问情况。2.4 操作数的类型、表示和大小74%19%7%69%31%0%0%0%0%20%40%60%80%双字单字半字字节整型平均浮点平均基准程序对基准程序对单字和双字单字和双字的数据访问具有较高的频率。的数据访问具有较高的频率。 选择操作数字段的长度为选择操作数字段的长度为3232位,可以有效支持位,可以有效支持8 8、1616、 3232位整型操作数,以及位整型操作数,以及3232位浮点操作数的表示。位浮点操作数的表示。 选择操作数字段长度为选择操作数字段长度为6464位,则更具有一般性。位

39、,则更具有一般性。48812.5 指令集格式的设计 指令由指令由操作码操作码和和地址码地址码组成。组成。 指令集格式的设计指令集格式的设计 确定操作码字段和地址码字段的大小及其组合确定操作码字段和地址码字段的大小及其组合 形式,以及各种寻址方式的编码方法。形式,以及各种寻址方式的编码方法。 设计原则设计原则l 尽可能地增加寄存器数目和寻址方式类型;尽可能地增加寄存器数目和寻址方式类型;l 充分考虑寄存器字段和寻址方式字段对指令平均充分考虑寄存器字段和寻址方式字段对指令平均 字长的影响,以及它们对目标代码大小的影响;字长的影响,以及它们对目标代码大小的影响;l 设计出的指令集格式能够在具体实现中

40、容易处理。设计出的指令集格式能够在具体实现中容易处理。第二章 计算机指令集结构设计2.5.1 寻址方式的表示方法 1. 两种表示寻址方式的方法 (1) (1) 将寻址方式编码于操作码中,由操作码在描述指将寻址方式编码于操作码中,由操作码在描述指 令操作的同时,也描述了相应操作的寻址方式;令操作的同时,也描述了相应操作的寻址方式; (2) (2) 为每个操作数设置一个为每个操作数设置一个地址描述符地址描述符,由该地址描,由该地址描 述符表示相应操作数的寻址方式。述符表示相应操作数的寻址方式。 操作码 地址描述符 1 地址码字段 1 地址描述符 n 地址码字段 n 利用地址描述符表示寻址方式的方法

41、 50812.5.1 寻址方式的表示方法 1. 两种表示寻址方式的方法 (1) (1) 将寻址方式编码于操作码中,由操作码在描述指将寻址方式编码于操作码中,由操作码在描述指 令操作的同时,也描述了相应操作的寻址方式;令操作的同时,也描述了相应操作的寻址方式; (2) (2) 为每个操作数设置一个为每个操作数设置一个地址描述符地址描述符,由该地址描,由该地址描 述符表示相应操作数的寻址方式。述符表示相应操作数的寻址方式。 操作码 地址描述符 1 地址码字段 1 地址描述符 n 地址码字段 n 利用地址描述符表示寻址方式的方法 2.5 指令集格式的设计51812. 选择哪种表示寻址方式的方法? 由

42、两个因数决定:由两个因数决定: (1) (1) 指令集结构所采用的寻址方式种类及其适用范围指令集结构所采用的寻址方式种类及其适用范围 (2) (2) 操作码与寻址方式之间的独立程度操作码与寻址方式之间的独立程度 2.5.2 指令集格式的选择 三种指令集编码格式三种指令集编码格式 : :l 变长编码格式变长编码格式l 固定长度编码格式固定长度编码格式l 混合型编码格式混合型编码格式 2.5 指令集格式的设计 操作码 地址描述符 1 地址码 1 地址描述符 n 地址码 n 1. 变长编码格式 有效减少指令集结构的平均指令长度,降低目标代码有效减少指令集结构的平均指令长度,降低目标代码 的长度。的长

43、度。 使得各条指令的字长和执行时间大不一样。使得各条指令的字长和执行时间大不一样。多数多数CISCCISC计算机的指令集结构均是采用这种编码格式。计算机的指令集结构均是采用这种编码格式。2. 固定长度编码格式 将操作类型和寻址方式组合编码在操作码中,所有指将操作类型和寻址方式组合编码在操作码中,所有指 令的长度是固定唯一的。令的长度是固定唯一的。 操作码 地址码 1 地址码 2 地址码 3 5381 操作码 地址描述符 地址码 操作码 地址描述符 1 地址描述符 2 地址码 操作码 地址描述符 地址码 1 地址码 2 混合型编码格式 3. 混合型编码格式 通过提供一定类型的指令字长,期望能够兼

44、通过提供一定类型的指令字长,期望能够兼 顾降低目标代码长度和降低译码复杂度两个目标。顾降低目标代码长度和降低译码复杂度两个目标。 2.5 指令集格式的设计5481 2.6 DLX指令集结构DLXDLX是一种多元未饱和型指令集结构。是一种多元未饱和型指令集结构。DLXDLX指令集结构的指令集结构的设计思想:设计思想:l 具有一个简单的具有一个简单的Load/StoreLoad/Store指令集;指令集;l 注重指令流水效率;注重指令流水效率;l 简化指令的译码;简化指令的译码;l 高效支持编译器。高效支持编译器。 第二章 计算机指令集结构设计55812.6.1 DLX指令集结构1. DLX中的寄

45、存器 (1) 32(1) 32个通用寄存器个通用寄存器 命名:命名:R0R0、R1R1、R31R31 长度:长度:3232位位 寄存器寄存器R0R0的值总是为的值总是为0 0。 (2) 32(2) 32个浮点寄存器个浮点寄存器 命名:命名:F0F0、F1F1、F31F31 长度:长度:3232位位 ( (用来保存用来保存3232位的单精度浮点数位的单精度浮点数 )2.6 DLX指令集结构5681 6464位双精度浮点数位双精度浮点数 相邻两个浮点寄存器奇偶对相邻两个浮点寄存器奇偶对F Fi iF Fi+1i+1 (i = 0,2,4,i = 0,2,4,30,30) 命名命名: : F0 F0

46、、F2F2、F28F28、F30F30 (3) (3) 一些特殊的寄存器一些特殊的寄存器 (比如用来保存浮点操作结果信息的浮点状态寄存器)(比如用来保存浮点操作结果信息的浮点状态寄存器) 可以和通用寄存器相互进行数据传送。可以和通用寄存器相互进行数据传送。2.6 DLX指令集结构57812. DLX的数据类型 DLXDLX提供了多种长度的整型数据和浮点数据。提供了多种长度的整型数据和浮点数据。 (1)(1) 整型数据整型数据 有有8 8位、位、1616位和位和3232位多种长度。位多种长度。 ( (当当8 8位和位和1616位整型数据载入到寄存器中时,位整型数据载入到寄存器中时, 用用0 0或

47、数据的符号位来填充或数据的符号位来填充3232位通用寄存器位通用寄存器 中的剩余位。中的剩余位。) ) (2) (2) 浮点数据浮点数据 有有3232位单精度浮点数和位单精度浮点数和6464位双精度浮点数。位双精度浮点数。 浮点数据表示采用的是浮点数据表示采用的是IEEE 754IEEE 754标准。标准。2.6 DLX指令集结构58813 3. DLX的寻址方式和数据传送 (1)(1) 寻址方式寻址方式l 寄存器寻址寄存器寻址l 立即值寻址立即值寻址l 偏移寻址偏移寻址l 寄存器间接寻址寄存器间接寻址 (2) (2) 寄存器寻址字段的大小为寄存器寻址字段的大小为5 5位位,用来表示,用来表示

48、3232个个 通用寄存器或浮点寄存器。通用寄存器或浮点寄存器。 (3) (3) 存储器地址采用的是高端字节表示顺序,存存储器地址采用的是高端字节表示顺序,存 储器按字节寻址,其地址宽度为储器按字节寻址,其地址宽度为3232位位。2.6 DLX指令集结构59814. DLX的指令格式 寻址方式编码在操作码中。寻址方式编码在操作码中。 指令的字长指令的字长3232位位,其中用,其中用6 6位位表示操作码。表示操作码。(4) (4) 通过寄存器(通用寄存器和浮点寄存器)和存通过寄存器(通用寄存器和浮点寄存器)和存 储器之间的数据传送操作完成对存储器的访问。储器之间的数据传送操作完成对存储器的访问。2

49、.6 DLX指令集结构各种类型指令的格式 I 类型指令 6 5 5 16 操作码 rs1 rd 立即值 字节、半字、字的载入和储存; rdrs1 op 立即值。 R 类型指令 6 5 5 5 11 操作码 rs1 rs2 rd Func 寄存器寄存器 ALU 操作:rdrs1 func rs2; 函数对数据的操作进行编码:加、减、; 对特殊寄存器的读/写和移动。 J 类型指令 6 26 操作码 与 PC 相加的偏移量 跳转,跳转并链接,从异常(exception)处自陷和返回。 图 2.13 DLX 的指令格式布局 61815.DLX中的操作 (1) (1) 四种类型的操作四种类型的操作l L

50、oadLoad和和StoreStore操作操作l ALUALU操作操作l 分支和跳转操作分支和跳转操作l 浮点操作浮点操作 (2) (2) 约定约定 (1) (1) 符号符号“”: : 数据传送操作数据传送操作 其后附带一个下标其后附带一个下标n n,也即,也即“n n” 表示传送表示传送 一个一个n n位数据。位数据。 (2) (2) 符号符号“#”: : 两个域的串联操作两个域的串联操作2.6 DLX指令集结构6281(3) (3) 域的下标:域的下标:表明从该域中选择某一位。表明从该域中选择某一位。l 域中位的标记是从最高位开始标记,并且域中位的标记是从最高位开始标记,并且 起始标记为起

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(计算机系统结构全套课件-第2章-计算机指令集结构.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|