




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章第二章计算机指令集结构设计计算机指令集结构设计计算机的指令集结构也称为计算机的指令集结构也称为指令系统指令系统,它是硬件,它是硬件机器所支持的机器所支持的全部指令集合全部指令集合,它是机器语言程序,它是机器语言程序员所看到的机器的最主要的属性之一。员所看到的机器的最主要的属性之一。指令集结构设计的最基本问题是指令集结构设计的最基本问题是软硬件划分软硬件划分。指令集结构设计指令集结构设计包括确定包括确定指令格式指令格式、类型类型、操作操作以及以及操作数的访问方式操作数的访问方式等。等。引言引言2.1 2.1 指令集结构的分类指令集结构的分类2.1.1 指令集结构分类指令集结构分类 根据五个
2、因素对计算机指令集结构进行分类:根据五个因素对计算机指令集结构进行分类: (1) 在在CPU中操作数的存储方法中操作数的存储方法(2) 指令中显式表示的操作数个数指令中显式表示的操作数个数 (3) 操作数的寻址方式操作数的寻址方式 (4) 指令集所提供的操作类型指令集所提供的操作类型 (5) 操作数的类型和大小操作数的类型和大小 CPU中操作数的存储方法,是各种指令集结中操作数的存储方法,是各种指令集结构之间最主要的区别所在。构之间最主要的区别所在。1. CPU中用来存储操作数的存储单元主要有:中用来存储操作数的存储单元主要有:2. 指令中的操作数可以显式给出,也可以隐式指令中的操作数可以显式
3、给出,也可以隐式地给出。地给出。3. CPU对操作数的不同存取方式对操作数的不同存取方式 堆栈堆栈 累加器累加器 寄存器寄存器/存储器存储器 2.1 2.1 指令集结构的分类指令集结构的分类 CPUCPU提供的提供的暂存器暂存器每条每条ALUALU指令显式表示指令显式表示的操作数个数的操作数个数运算结果的运算结果的目的地目的地访问显式操作数访问显式操作数的过程的过程堆栈堆栈0 0堆栈堆栈Push/PopPush/Pop累加器累加器1 1累加器累加器Load/StoreLoad/Store累加累加器器寄存器寄存器/ /存存储器储器2/32/3寄存器或存寄存器或存储器储器Load/StoreLoa
4、d/Store寄存寄存器或存储器器或存储器2.1 2.1 指令集结构的分类指令集结构的分类 4. 根据根据CPU内部存储单元类型进行分类,可以分为:内部存储单元类型进行分类,可以分为: 堆栈型指令集结构堆栈型指令集结构 累加器型指令集结构累加器型指令集结构 通用寄存器型指令集结构通用寄存器型指令集结构 例例 C=A+B表达式在这三种类型指令集结构上的表达式在这三种类型指令集结构上的实现方法。假设实现方法。假设A、B、C均是保存在存储器单元中,均是保存在存储器单元中,且且A和和B的值在运算过程中一直被保持。的值在运算过程中一直被保持。2.1 2.1 指令集结构的分类指令集结构的分类2.1 2.1
5、 指令集结构的分类指令集结构的分类堆栈堆栈累加器累加器寄存器寄存器 (寄存器存储器寄存器存储器)寄存器寄存器(寄存器寄存器)(寄存器寄存器)PUSH ALOAD ALOAD R1,ALOAD R1,APUSH BADD BADD R3,R1,BLOAD R2,BADDSTORE CSTORE R3 , CADD R3,R1,R2POP CSTORE R3,C2.1 2.1 指令集结构的分类指令集结构的分类三种类型指令集结构的优缺点三种类型指令集结构的优缺点 指令集结指令集结构类型构类型优点优点缺点缺点堆栈型堆栈型 是一种表示计算的是一种表示计算的简单模型;指令短小。简单模型;指令短小。 堆栈不
6、能被随机访问,从而很难生堆栈不能被随机访问,从而很难生成有效代码。同时,由于堆栈是瓶颈,成有效代码。同时,由于堆栈是瓶颈,所以很难被高效地实现。所以很难被高效地实现。累加器型累加器型 减小了机器的内部减小了机器的内部状态;指令短小。状态;指令短小。 由于累加器是唯一的暂存器,这种由于累加器是唯一的暂存器,这种机器的存储器通信开销最大。机器的存储器通信开销最大。寄存器型寄存器型 是代码生成最一般是代码生成最一般的模型。的模型。 所有操作数均需命名,且显式表示,所有操作数均需命名,且显式表示,因而指令比较长。因而指令比较长。2.1 2.1 指令集结构的分类指令集结构的分类2.1.2 通用寄存器型指
7、令集结构的分类通用寄存器型指令集结构的分类 早期的计算机中采用堆栈指令集结构和累加器早期的计算机中采用堆栈指令集结构和累加器指令集结构比较多,但现代指令集结构比较多,但现代CPU,通用寄存器型指,通用寄存器型指令集结构已成为指令集结构的主流,原因:令集结构已成为指令集结构的主流,原因:2.1 2.1 指令集结构的分类指令集结构的分类1. 通用寄存器型指令集结构的主要优点通用寄存器型指令集结构的主要优点 (1) 使编译器有效地使用寄存器使编译器有效地使用寄存器; (2) 在表达式求值方面,比其它类型指令集结构在表达式求值方面,比其它类型指令集结构 具有更大的灵活性具有更大的灵活性; (3) 寄存
8、器可以用来存放变量。寄存器可以用来存放变量。 减少存储器的通信量,加快程序的执行速度。减少存储器的通信量,加快程序的执行速度。 (因为寄存器比存储器快)(因为寄存器比存储器快) 可以用更少的地址位来寻址寄存器,从而可可以用更少的地址位来寻址寄存器,从而可 以有效改进程序的目标代码大小。以有效改进程序的目标代码大小。 2.1 2.1 指令集结构的分类指令集结构的分类2. CPU需要设置多少个寄存器呢?需要设置多少个寄存器呢? 主要由编译器使用寄存器的情况来决定主要由编译器使用寄存器的情况来决定 为表达式求值保留一些寄存器为表达式求值保留一些寄存器 为传递参数保留一些寄存器为传递参数保留一些寄存器
9、 用剩下的寄存器来保存变量用剩下的寄存器来保存变量2.1 2.1 指令集结构的分类指令集结构的分类有两个操作数的指令:一个操作数既作为源有两个操作数的指令:一个操作数既作为源操作数,也作为目的操作数操作数,也作为目的操作数 (2) 在在ALU指令中,有多少个操作数可以用存储指令中,有多少个操作数可以用存储器来寻址,也即有多少个存储器操作数?器来寻址,也即有多少个存储器操作数? 一般来说,一般来说,ALU指令有指令有03个存储器操作数。个存储器操作数。3. 两种主要的指令特性能够将通用寄存器指令集结两种主要的指令特性能够将通用寄存器指令集结构(构(GPR)进一步细分)进一步细分 (1) ALU指
10、令到底有两个或是三个操作数?指令到底有两个或是三个操作数? 有三个操作数的指令:两个源操作数一个结有三个操作数的指令:两个源操作数一个结果操作数果操作数2.1 2.1 指令集结构的分类指令集结构的分类ALU指令中,存储器操作数个数和操作数个数的所有可能组指令中,存储器操作数个数和操作数个数的所有可能组合,以及相应的机器实例合,以及相应的机器实例 ALU指令中存储器操指令中存储器操作数个数作数个数ALU指令中操作数的最指令中操作数的最大个数大个数机器实例机器实例02IBM RT-PC3SPARC,MIPS, Alpha12PDP-10,IBM 360,Motorola 68000, x863IB
11、M360的部分指令的部分指令22PDP11,部分,部分IBM360指指令令, VAX333VAX(3) (3) 通用通用寄存器寄存器指令集结构进一步细分为三种类型:指令集结构进一步细分为三种类型:(4) (4) 常见的三种通用寄存器型指令集结构的优缺点常见的三种通用寄存器型指令集结构的优缺点: : 注:表中注:表中 ( m, n ) 代表指令的代表指令的 n 个操作数中有个操作数中有 m 个存储器操作数。个存储器操作数。 寄存器寄存器 - 寄存器型(寄存器型(R-R:register-register) 寄存器寄存器 - 存储器型(存储器型(R-M:register-memory) 存储器存储
12、器 - 存储器型(存储器型(M-M:memory-memory)2.1 2.1 指令集结构的分类指令集结构的分类指令集结构指令集结构类型类型优优 点点缺缺 点点 寄存器寄寄存器寄存器型存器型(0,3)简单,指令字长固定,简单,指令字长固定,是一种简单的代码生成是一种简单的代码生成模型,各种指令的执行模型,各种指令的执行时钟周期数相近。时钟周期数相近。和指令中含有对存储器操作数访问的结和指令中含有对存储器操作数访问的结构相比,指令条数多,因而其目标代码构相比,指令条数多,因而其目标代码较大。较大。 寄存器存寄存器存储器型储器型(1,2)可以直接对存储器操作可以直接对存储器操作数进行访问,容易对指
13、数进行访问,容易对指令进行编码,且其目标令进行编码,且其目标代码较小。代码较小。指令中的操作数类型不同。在一条指令指令中的操作数类型不同。在一条指令中同时对一个寄存器操作数和存储器操中同时对一个寄存器操作数和存储器操作数进行编码,将限制指令所能够表示作数进行编码,将限制指令所能够表示的寄存器个数。由于指令的操作数可以的寄存器个数。由于指令的操作数可以存储在不同类型的存储器单元,所以每存储在不同类型的存储器单元,所以每条指令的执行时钟周期数也不尽相同。条指令的执行时钟周期数也不尽相同。存储器存存储器存储器型储器型(3,3)是一种最紧密的编码方是一种最紧密的编码方式,无需式,无需“浪费浪费”寄存寄
14、存器保存变量。器保存变量。指令字长多种多样。每条指令的执行时指令字长多种多样。每条指令的执行时钟周期数也大不一样,对存储器的频繁钟周期数也大不一样,对存储器的频繁访问将导致存储器访问瓶颈问题。访问将导致存储器访问瓶颈问题。2.2 2.2 寻址技术寻址技术 寻址方式寻址方式是指令对操作数的访问是指令对操作数的访问方式方式.在在一个计算机系统中一个计算机系统中,寻址方式,寻址方式通常有多种通常有多种.1. 在通用寄存器指令集结构中,一般是利用寻在通用寄存器指令集结构中,一般是利用寻址方式指明指令中的操作数是一个常数、一址方式指明指令中的操作数是一个常数、一个寄存器操作数,或是一个存储器操作数。个寄
15、存器操作数,或是一个存储器操作数。2. 当前通用寄存器指令集结构中所使用的一些当前通用寄存器指令集结构中所使用的一些寻址方式寻址方式寻址方式寻址方式指令实例指令实例含含 义义寄存器寻址寄存器寻址Add R4 , R3RegsR4RegsR4RegsR3立即值寻址立即值寻址Add R4 , #3RegsR4RegsR43偏移寻址偏移寻址Add R4 , 100(R1)RegsR4RegsR4Mem100+RegsR1寄存器间接寻址寄存器间接寻址Add R4 , (R1)RegsR4RegsR4MemRegsR1索引寻址索引寻址Add R3 , (R1 + R2)RegsR3RegsR3MemRe
16、gsR1+RegsR2直接寻址或绝对寻直接寻址或绝对寻址址Add R1 , (1001)RegsR1RegsR1Mem1001存储器间接寻址存储器间接寻址Add R1 , (R3)RegsR1RegsR1MemMemRegsR3自增寻址自增寻址Add R1 , (R2)+RegsR1RegsR1MemRegsR2RegsR2RegsR2d自减寻址自减寻址Add R1, -(R2)RegsR2RegsR2dRegsR1RegsR1+MemRegsR2缩放寻址缩放寻址AddR1 , 100(R2)R3RegsR1RegsR1Mem100RegsR2RegsR3*d寄存器寻址:寄存器寻址:变量值在寄
17、存器中。变量值在寄存器中。立即值寻址:立即值寻址:常量访问常量访问偏移寻址:偏移寻址:访问局部变量访问局部变量寄存器间接寻址:寄存器间接寻址:用指针访问变量(指针值在寄用指针访问变量(指针值在寄存器中)存器中)索引寻址:索引寻址:数组访问数组访问直接寻址或绝对寻址:直接寻址或绝对寻址: 静态变量访问静态变量访问2.2 2.2 寻址技术寻址技术 存储器间接寻址:存储器间接寻址:用指针访问变量(指针值在存用指针访问变量(指针值在存储器中)储器中)自增寻址:自增寻址:循环中的递增变量(遍历数循环中的递增变量(遍历数组),有时用于实现栈结构组),有时用于实现栈结构, ,自减寻址:自减寻址:循环中的递减
18、变量(遍历数循环中的递减变量(遍历数组),有时用于实现栈结构,组),有时用于实现栈结构,缩放寻址:缩放寻址:数组访问数组访问2.2 2.2 寻址技术寻址技术 3. 寻址方式使用情况统计结果寻址方式使用情况统计结果(VAX指令集结构的机器:指令集结构的机器:gcc、Spice和和Tex 基准程序)基准程序)1%0%24%43%32%6%16%3%17%55%1%6%11%39%40%0%10%20%30%40%50%60%70%存储器间接寻址缩放寻址寄存器间接寻址立即寻址偏移寻址TexSpicegcc结论:结论:立即值寻址方式和偏移寻址方式的使用频率十分高立即值寻址方式和偏移寻址方式的使用频率十
19、分高。4. 各种偏移量字段大小的使用情况各种偏移量字段大小的使用情况 寄存器寄存器型指令集结构的机器上(寄存器寄存器型指令集结构的机器上(MIPS) 运行运行SPECint92基准程序集基准程序集(compress、espresso、eqntott、gcc、li) 运行运行SPECfp92基准程序集基准程序集(dudoc、ear、hydro2d、mdljdp2、su2cor) 2.2 2.2 寻址技术寻址技术 x x轴的标记是对偏移量大小进行轴的标记是对偏移量大小进行loglog2 2()运算所得,)运算所得,也就是偏移量字段的位数。也就是偏移量字段的位数。 0%5%10%15%20%25%3
20、0%0123456789101112131415SPECint92测量统计结果SPECfp92测量统计结果占偏移寻址方式的百分比结论:结论: 程序所使用的偏移量大小分布十分广泛;程序所使用的偏移量大小分布十分广泛; 较小的偏移量和较大的偏移量均占有相当大的比较小的偏移量和较大的偏移量均占有相当大的比例;例; 将偏移量字段的大小设置为将偏移量字段的大小设置为1216位。这种长度位。这种长度可以支持上述可以支持上述7599基于偏移寻址方式的数据访基于偏移寻址方式的数据访问中偏移量大小的表示。问中偏移量大小的表示。2.2 2.2 寻址技术寻址技术 5. 在一种在一种Load/Store型指令集结构上
21、,一些指令使型指令集结构上,一些指令使用立即值寻址方式的频率。用立即值寻址方式的频率。 结论:结论:比较指令和比较指令和ALU指令使用立即值寻址方式十分指令使用立即值寻址方式十分频繁。频繁。 10%87%58%35%45%77%78%10%0%20%40%60%80%100%Load 指令比较指令ALU指令所有指令整型平均浮点平均6. 不同立即值大小的使用分布情况不同立即值大小的使用分布情况 结论:结论:将立即值的大小设置为将立即值的大小设置为816位,可以覆盖所位,可以覆盖所有使用立即值寻址方式指令的有使用立即值寻址方式指令的5080。 0%10%20%30%40%50%60%0481216
22、20242832表示立即值的位数百分比gccTexspice2.3 2.3 指令集结构的功能设计指令集结构的功能设计 1. 指令集中操作的分类指令集中操作的分类 操作类型操作类型实实 例例算 术 和 逻算 术 和 逻辑运算辑运算整数的算术和逻辑操作:加、减、与、或等。整数的算术和逻辑操作:加、减、与、或等。数据传输数据传输Load/Store (MOV)控制控制分支、跳转、过程调用和返回、自陷等。分支、跳转、过程调用和返回、自陷等。系统系统操作系统调用、虚拟存储器管理等。操作系统调用、虚拟存储器管理等。浮点浮点浮点操作:加、乘等。浮点操作:加、乘等。十进制十进制十进制加、十进制乘、十进制到字符
23、的转换。十进制加、十进制乘、十进制到字符的转换。字符串字符串字符串移动、字符串比较、字符串搜索等。字符串移动、字符串比较、字符串搜索等。图形图形象素操作、压缩象素操作、压缩/解压操作等。解压操作等。2. 一种指令集结构中的指令到底要支持哪些类型的一种指令集结构中的指令到底要支持哪些类型的 操作?操作?这就是指令集结构功能设计的基本问题。这就是指令集结构功能设计的基本问题。两种截然不同的方向:两种截然不同的方向: 复杂指令集计算机(复杂指令集计算机(CISC) 强化指令功能,实现软件功能向硬件功能转移。强化指令功能,实现软件功能向硬件功能转移。 精简指令集计算机(精简指令集计算机(RISC)尽可
24、能地降低指令集结构的复杂性,以达到简化实现,尽可能地降低指令集结构的复杂性,以达到简化实现,提高性能的目的。提高性能的目的。 是当今指令集结构功能设计的一个主要趋势。是当今指令集结构功能设计的一个主要趋势。2.3 2.3 指令集结构的功能设计指令集结构的功能设计 2.3.1 CISC计算机指令集结构的功能设计计算机指令集结构的功能设计 CISC的含义是复杂指令集计算机的含义是复杂指令集计算机(Complex Instruction Set Computer)起源于起源于1964年的年的IBM360系列机系列机以后有以后有DEC公司的公司的PDP-11、VAX11/730、VAX11/750、V
25、AX11/780到九十年代到九十年代IBM390系列机系列机微机方面有微机方面有Intel 80 x86, Motorola 68020等等2.3 2.3 指令集结构的功能设计指令集结构的功能设计 CISC的主要特点:的主要特点: 1) 指令系统复杂,表现在:指令系统复杂,表现在: 指令数多,一般大于指令数多,一般大于100条条 寻址方式多,一般大于寻址方式多,一般大于4种种 指令格式多,一般大于指令格式多,一般大于4种种2) 绝大多数指令需要多个机器时钟周期方可完成绝大多数指令需要多个机器时钟周期方可完成3) 各种指令都可访问内存各种指令都可访问内存4) 采用微程序控制采用微程序控制5) 有
26、专用寄存器有专用寄存器6) 难以进行优化编译难以进行优化编译2.3 2.3 指令集结构的功能设计指令集结构的功能设计 CISC结构追求的目标:结构追求的目标: 强化指令功能,减少程序的指令条数,以达强化指令功能,减少程序的指令条数,以达到提高性能的目的。到提高性能的目的。 增强指令功能主要是从如下几个方面着手增强指令功能主要是从如下几个方面着手: 一、面向目标程序增强指令功能一、面向目标程序增强指令功能 提高运算型指令功能提高运算型指令功能 提高传送指令功能提高传送指令功能 增加程序控制指令功能增加程序控制指令功能2.3 2.3 指令集结构的功能设计指令集结构的功能设计 使得目标程序中多条指令
27、的功能由一条指令完成使得目标程序中多条指令的功能由一条指令完成二、面向高级语言和编译程序改进指令系统二、面向高级语言和编译程序改进指令系统 1增加对高级语言和编译系统支持的指令功能增加对高级语言和编译系统支持的指令功能 对源程序中各种高级语言语句进行使用频度的统对源程序中各种高级语言语句进行使用频度的统计与分析,对于使用频度高的语句,可以设置专门的计与分析,对于使用频度高的语句,可以设置专门的指令或采取措施增加相应指令的功能,以提高其编译指令或采取措施增加相应指令的功能,以提高其编译速度和执行速度。速度和执行速度。从面向编译程序,尤其是从优化代码生成的角度从面向编译程序,尤其是从优化代码生成的
28、角度进行考虑,增加指令集结构的进行考虑,增加指令集结构的规整性规整性来改进指令系统。来改进指令系统。2.3 2.3 指令集结构的功能设计指令集结构的功能设计 规整性:规整性:没有或尽可能减少例外的情况和特殊的应用,没有或尽可能减少例外的情况和特殊的应用,以及所有运算都能对称、均匀地在存储器单元或寄存以及所有运算都能对称、均匀地在存储器单元或寄存器单元之间进行。器单元之间进行。2高级语言计算机指令系统高级语言计算机指令系统 (1) 面向高级语言面向高级语言(HL)的机器的机器 缩小机器语言和高级语言的语义差距缩小机器语言和高级语言的语义差距。 (2) 间接执行型高级语言机器间接执行型高级语言机器
29、 高级语言和机器语言是一一对应的,用汇编的方高级语言和机器语言是一一对应的,用汇编的方法法 (可以用软件实现,也可以用硬件实现可以用软件实现,也可以用硬件实现) 把高级语把高级语言源程序翻译成机器语言程序。言源程序翻译成机器语言程序。2.3 2.3 指令集结构的功能设计指令集结构的功能设计 (3) 直接执行型高级语言机器直接执行型高级语言机器 高级语言就作为机器语言,直接由硬件或固件高级语言就作为机器语言,直接由硬件或固件对高级语言源程序的语句逐条进行解释以执行它。对高级语言源程序的语句逐条进行解释以执行它。三、面向操作系统的优化实现改进指令系统三、面向操作系统的优化实现改进指令系统 操作系统
30、的实现在很大程度上取决于体系结构的操作系统的实现在很大程度上取决于体系结构的支持。支持。 1. 主要表现在对以下方面的支持主要表现在对以下方面的支持 中断处理中断处理 进程管理进程管理 存储管理和保护存储管理和保护 系统工作状态的建立与切换系统工作状态的建立与切换2.3 2.3 指令集结构的功能设计指令集结构的功能设计 设置系统工作状态和访问方式转移的指令设置系统工作状态和访问方式转移的指令设置进程转移的指令设置进程转移的指令设置进程同步和互斥的指令设置进程同步和互斥的指令CISC结构存在的缺点:结构存在的缺点:(1) 在在CISC结构的指令系统中,各种指令的使用频结构的指令系统中,各种指令的
31、使用频 率相差悬殊;率相差悬殊;(2) CISC结构指令系统的复杂性带来了计算机体系结构指令系统的复杂性带来了计算机体系 结构的复杂性,这不仅增加了研制时间和成结构的复杂性,这不仅增加了研制时间和成 本,而且还容易造成设计错误;本,而且还容易造成设计错误;2.3 2.3 指令集结构的功能设计指令集结构的功能设计 (3) CISC结构指令系统的复杂性给结构指令系统的复杂性给VLSI设计增加设计增加 了很大负担,不利于单片集成;了很大负担,不利于单片集成;(4) CISC结构的指令系统中,许多复杂指令需要很结构的指令系统中,许多复杂指令需要很 复杂的操作,因而运行速度慢;复杂的操作,因而运行速度慢
32、;(5) 在在CISC结构的指令系统中,由于各条指令的功结构的指令系统中,由于各条指令的功 能不均衡性,不利于采用先进的计算机体系结能不均衡性,不利于采用先进的计算机体系结 构技术(如流水技术)来提高系统的性能。构技术(如流水技术)来提高系统的性能。例如例如,80 x86处理器支持几百条指令,但常用的指处理器支持几百条指令,但常用的指令只有十条,使用频率占令只有十条,使用频率占96% 2.3 2.3 指令集结构的功能设计指令集结构的功能设计 执行频率排序执行频率排序80X86指令指令指令执行频率(执行指令总数)指令执行频率(执行指令总数)1Load222条件分支条件分支203比较比较164St
33、ore125加加86与与67减减58寄存器寄存器间数据移动寄存器寄存器间数据移动49调用调用110返回返回1合合 计计96Intel 80X86最常用的十条指令最常用的十条指令 2.3.2 RISC计算机指令集功能的设计计算机指令集功能的设计R I S C 的 含 义 是 精 简 指 令 集 计 算 机的 含 义 是 精 简 指 令 集 计 算 机 ( R e d u c e d Instruction Set Computer)l起源于起源于1975 年的年的IBM 801小型计算机小型计算机l1979年由加州大学伯克莱分校年由加州大学伯克莱分校Patterson教授等提出教授等提出RISC
34、这一术语,并研制出这一术语,并研制出RISC-I, RISC-II计算机计算机l随后,斯坦福大学于随后,斯坦福大学于1981年、年、1986年分别推出了年分别推出了MIPS RISC计算机和计算机和MIPS2000 RISC计算机计算机l1987年年SUN公司基于伯克莱分校公司基于伯克莱分校RISC计算机提出的计算机提出的SPARC系列工作站,使得工作站成为高速小型系列工作站,使得工作站成为高速小型/微型微型计算机的代表,计算机的代表,RISC技术在工作站中被普遍采用。技术在工作站中被普遍采用。l1988年年Motorola推出的推出的MC 88000 RISC计算机,计算机,RISC技术已被
35、普遍接受。技术已被普遍接受。2.3 2.3 指令集结构的功能设计指令集结构的功能设计 目的目的 使得计算机体系结构更加简单、更加合理和更加使得计算机体系结构更加简单、更加合理和更加有效,克服有效,克服CISC结构的缺点,使机器速度更快,程结构的缺点,使机器速度更快,程序运行时间缩短,从而提高计算机系统的性能。序运行时间缩短,从而提高计算机系统的性能。 RISC的主要特点:的主要特点:一精简指令系统一精简指令系统1) 指令条数少,一般小于指令条数少,一般小于100条条2) 基本寻址方式少,一般基本寻址方式少,一般2 3种种3) 指令格式少,一般指令格式少,一般2 3种种4) 指令长度一致指令长度
36、一致(32位位)2.3 2.3 指令集结构的功能设计指令集结构的功能设计 二以寄存器二以寄存器-寄存器方式工作,除了寄存器方式工作,除了Load/Store指令指令访问存储器外,其余指令只访问寄存器访问存储器外,其余指令只访问寄存器三除了三除了Load/Store指令访问存储器外,所有指令在指令访问存储器外,所有指令在一个机器时钟周期完成,并采用流水线技术一个机器时钟周期完成,并采用流水线技术四使用较多的通用寄存器,一般至少四使用较多的通用寄存器,一般至少32个,不允许个,不允许有专用寄存器有专用寄存器五大多采用硬联线控制,少用或不用微程序实现五大多采用硬联线控制,少用或不用微程序实现六采用针
37、对体系结构特点的优化编译技术,防止或六采用针对体系结构特点的优化编译技术,防止或减少流水线中出现的相关性,保证流水线畅通。减少流水线中出现的相关性,保证流水线畅通。2.3 2.3 指令集结构的功能设计指令集结构的功能设计 设计原则设计原则 选取使用频率最高的指令,并补充一些最有选取使用频率最高的指令,并补充一些最有 用的指令;用的指令; 每条指令的功能应尽可能简单,并在一个机每条指令的功能应尽可能简单,并在一个机 器周期内完成;器周期内完成; 所有指令长度均相同;所有指令长度均相同; 只有只有Load和和Store操作指令才访问存储器,操作指令才访问存储器, 其它指令操作均在寄存器之间进行;其
38、它指令操作均在寄存器之间进行; 以简单有效的方式支持高级语言。以简单有效的方式支持高级语言。2.3 2.3 指令集结构的功能设计指令集结构的功能设计 2.3.3 控制指令控制指令控制指令:控制指令:是指能够改变计算机控制流,也即被处是指能够改变计算机控制流,也即被处理的指令序列的执行顺序的指令。理的指令序列的执行顺序的指令。控制指令的分类控制指令的分类:1) 条件转移指令条件转移指令2) 无条件转移指令无条件转移指令 3) 过程调用过程调用4) 过程返回过程返回2.3 2.3 指令集结构的功能设计指令集结构的功能设计 转移指令转移指令:1) 无条件转移无条件转移指令:指令: l 跳转跳转(Ju
39、mp)2) 有有条件转移指令:条件转移指令: l 分支分支或条件或条件分支分支 (Branch 或或 Conditional Branch)2.3 2.3 指令集结构的功能设计指令集结构的功能设计 1. 控制指令的使用频率控制指令的使用频率 (一台(一台Load/Store型指令集结构的机器:型指令集结构的机器: SPECint92、SPECfp92基准程序)基准程序)13%6%81%11%4%87%0%20%40%60%80%100%调用/ 返回跳转条件分支整型平均浮点平均结论:结论:改变控制流的大部分指令是条件分支指令。改变控制流的大部分指令是条件分支指令。表示分表示分支条件支条件的技术的
40、技术测试分支条件的方法测试分支条件的方法优优 点点缺缺 点点条件码条件码(CC) 在 程 序 的 控 制 下 , 由在 程 序 的 控 制 下 , 由ALU操作设置特殊的位。操作设置特殊的位。可以自由设置可以自由设置分支条件。分支条件。 CC是额外状态,条件码是额外状态,条件码限制了指令顺序,因为必限制了指令顺序,因为必须从一条指令将分支条件须从一条指令将分支条件信息传送到分支指令。信息传送到分支指令。条件寄条件寄存器存器 根据比较结果测试条件寄根据比较结果测试条件寄存器。存器。 简单简单 占用了一个寄存器。占用了一个寄存器。比较且比较且分支分支 比较操作是分支指令的一比较操作是分支指令的一部
41、分,通常这种比较是受一部分,通常这种比较是受一定限制的。定限制的。 一条指令完成一条指令完成了两条指令的了两条指令的功能。功能。 分支指令的操作增多。分支指令的操作增多。2. 常用的三种表示分支条件的技术及其优缺点常用的三种表示分支条件的技术及其优缺点 3. 分支目标地址的表示分支目标地址的表示 PC相对寻址相对寻址:在指令中提供一个和程序计数:在指令中提供一个和程序计数 器(器(PC)的值相加的偏移量。)的值相加的偏移量。l有效有效地缩短指令中表示目标地址的字段的长度;地缩短指令中表示目标地址的字段的长度;l使得使得代码在执行时与它被载入的位置无关。代码在执行时与它被载入的位置无关。 关键关
42、键问题是:问题是: 通常的转移目标通常的转移目标离当前控制指令的偏移量有多大离当前控制指令的偏移量有多大?2.3 2.3 指令集结构的功能设计指令集结构的功能设计 Most displacement can be encoded in 27 bits 7 bits:93%About 75% of the branches are in the forward direction0%5%10%15%20%25%30%35%40%0123456789101112131415IntegeraverageFloating-pointaverage 寄存器间接跳转:能够动态地指定目标地址寄存器间接跳转:
43、能够动态地指定目标地址l 分支选择语句分支选择语句case或者或者switchl 面向对象语言中的虚拟函数或方法面向对象语言中的虚拟函数或方法l C/C+中的高阶函数或函数指针中的高阶函数或函数指针l 动态共享库动态共享库2.3 2.3 指令集结构的功能设计指令集结构的功能设计 Less than(or equal) branches dominate(占优势占优势) (小于小于等于或小于比较占大部分等于或小于比较占大部分)Comparisons with 0: 50% is “=0”(大部分与大部分与0比较比较) (this leads to third method to specify
44、the branch condition, “compare and branch”)A special branch instruction:not only makes comparisons, but also branches(在一条指令内执行比在一条指令内执行比较并转移较并转移)About 75% of the branches are in the forward direction (displacement = 0)(约(约75%是正向转移)是正向转移)Displace rate of conditional branches = 65% (条件转移成功率条件转移成功率= 65
45、%)Displace rate of backward direction is high, displace rate of loop can be 90% ( (反向转移成功率高,因为反向转移成功率高,因为looploop转移成功率可达转移成功率可达90%)90%)Displace rate of forward direction is low 40% (正向转移成功率低,约正向转移成功率低,约40%) -Important data for compiler optimization4. 过程调用和返回的状态保存过程调用和返回的状态保存 两种方法来保存寄存器的内容:两种方法来保存寄存器
46、的内容:(1) “调用者保存调用者保存”方法方法 在一个调用者调用别的过程时,必须保存调用在一个调用者调用别的过程时,必须保存调用 者所要保存的寄存器,以备调用结束返回后,能够者所要保存的寄存器,以备调用结束返回后,能够再次访问调用者。再次访问调用者。(2) “被调用者保存被调用者保存”方法方法 被调用的过程必须保存它要用的寄存器,保证被调用的过程必须保存它要用的寄存器,保证不会破坏过程调用者的程序执行环境,并在过程调不会破坏过程调用者的程序执行环境,并在过程调用结束返回时,恢复这些寄存器的内容。用结束返回时,恢复这些寄存器的内容。 2.3 2.3 指令集结构的功能设计指令集结构的功能设计 2
47、.4 2.4 操作数的类型、表示和大小操作数的类型、表示和大小操作数类型:操作数类型:机器语言所支持的数据类型机器语言所支持的数据类型操作数类型是软硬件主要界面之一操作数类型是软硬件主要界面之一 常用的操作数类型有:常用的操作数类型有:整数、浮点数、十进制、整数、浮点数、十进制、字符、字符串、向量、堆栈等。字符、字符串、向量、堆栈等。操作数表示:操作数表示:操作数表示是指可以由硬件直接识操作数表示是指可以由硬件直接识别、指令系统可以直接处理的数据类型。别、指令系统可以直接处理的数据类型。操作数表示也是软硬件主要界面之一操作数表示也是软硬件主要界面之一 。目前常用的操作数表示:目前常用的操作数表
48、示:(1) 字符字符: 用用ASCII码表示,为一个字节大小;码表示,为一个字节大小;(2) 整数整数: 用二进制补码表示,其大小可以用二进制补码表示,其大小可以 是是8位、位、16位或位或32位。位。(3) 浮点操作数浮点操作数: 单精度浮点(单精度浮点(32位大小)和双精位大小)和双精 度浮点(度浮点(64位大小)位大小). (4) 字符串字符串: 将字符串中的每个字符当作一个将字符串中的每个字符当作一个 字节来看待。字节来看待。2.4 2.4 操作数的类型、表示和大小操作数的类型、表示和大小(5) 十进制操作数十进制操作数 压缩十进制压缩十进制 用用4位二进制数编码数字位二进制数编码数字
49、09,然后将两个十进制,然后将两个十进制 数字压缩在一个字节中存储。数字压缩在一个字节中存储。 二进制编码十进制二进制编码十进制 将十进制数字直接用字符串来表示将十进制数字直接用字符串来表示2.4 2.4 操作数的类型、表示和大小操作数的类型、表示和大小操作数类型的两种表示方法操作数类型的两种表示方法 (1) 操作数的类型由操作码的编码指定。操作数的类型由操作码的编码指定。 这是最常见的一种方法。这是最常见的一种方法。 (2) 数据可以附上由硬件解释的标记,由这些标记数据可以附上由硬件解释的标记,由这些标记 指定操作数的类型,从而选择适当的运算。指定操作数的类型,从而选择适当的运算。2.4 2
50、.4 操作数的类型、表示和大小操作数的类型、表示和大小操作数大小操作数大小 字节字节 半字(半字(16位)位) 单字(单字(32位)位) 双字(双字(64位)位) 。访问不同操作数大小的频率访问不同操作数大小的频率 测试统计测试统计 SPECint92 基准程序和基准程序和 SPECfp92 基准基准程序对字节、半字、单字和双字四种大小的操作程序对字节、半字、单字和双字四种大小的操作数的访问情况。数的访问情况。2.4 2.4 操作数的类型、表示和大小操作数的类型、表示和大小74%74%19%19%7%7%69%69%31%31%0%0%0%0%0%0%0%0%20%20%40%40%60%60
51、%80%80%双字双字单字单字半字半字字节字节整型平均整型平均浮点平均浮点平均结论:结论:基准程序对单字和双字的数据访问具有较高的基准程序对单字和双字的数据访问具有较高的频率,所以如果选择操作数字段的长度为频率,所以如果选择操作数字段的长度为32位,那么位,那么它可以有效支持它可以有效支持8、16、32位整型操作数,以及位整型操作数,以及32位浮位浮点操作数的表示。当然,如果定义操作数字段长度为点操作数的表示。当然,如果定义操作数字段长度为64位,则更具有一般性。位,则更具有一般性。2.5 2.5 指令集格式的设计指令集格式的设计 指令由操作码和地址码组成。指令由操作码和地址码组成。 指令集格
52、式的设计指令集格式的设计 确定操作码字段和地址码字段的大小及其组合确定操作码字段和地址码字段的大小及其组合 形式,以及各种寻址方式的编码方法。形式,以及各种寻址方式的编码方法。 设计原则设计原则1. 尽可能地增加寄存器数目和寻址方式类型;尽可能地增加寄存器数目和寻址方式类型;2. 充分考虑寄存器字段和寻址方式字段对指令平均字充分考虑寄存器字段和寻址方式字段对指令平均字 长的影响,以及它们对目标代码大小的影响;长的影响,以及它们对目标代码大小的影响;3. 设计出的指令集格式能够在具体实现中容易处理。设计出的指令集格式能够在具体实现中容易处理。 2.5.1 寻址方式的表示方法寻址方式的表示方法 1
53、. 两种表示寻址方式的方法两种表示寻址方式的方法 (1) 将寻址方式编码于操作码中,由操作码在描将寻址方式编码于操作码中,由操作码在描述指令操作的同时,也描述了相应操作的寻址方述指令操作的同时,也描述了相应操作的寻址方式;式; (2) 为每个操作数设置一个地址描述符,由该地为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。址描述符表示相应操作数的寻址方式。 操作码地址描述符 1地址码字段 1地址描述符 n地址码字段 n 利用地址描述符表示寻址方式的方法2.5 2.5 指令集格式的设计指令集格式的设计 2. 选择哪种表示寻址方式的方法?选择哪种表示寻址方式的方法? 由两个因
54、数决定:由两个因数决定: (1) 指令集结构所采用的寻址方式种类及其适用范围指令集结构所采用的寻址方式种类及其适用范围 (2) 操作码与寻址方式之间的独立程度操作码与寻址方式之间的独立程度 2.5.2 指令集格式的选择指令集格式的选择 三种指令集编码格式三种指令集编码格式 : : 变长编码格式变长编码格式 固定长度编码格式固定长度编码格式 混合型编码格式混合型编码格式 2.5 2.5 指令集格式的设计指令集格式的设计 操作码地址描述符 1地址码 1地址描述符 n地址码 n1. 变长编码格式变长编码格式有效减少指令集结构的平均指令长度,降低目有效减少指令集结构的平均指令长度,降低目标代码的长度。
55、标代码的长度。使得各条指令的字长和执行时间大不一样。使得各条指令的字长和执行时间大不一样。多数多数CISC计算机的指令集结构均是采用这种编码计算机的指令集结构均是采用这种编码格式。格式。2. 固定长度编码格式固定长度编码格式 将操作类型和寻址方式组合编码在操作码中,所将操作类型和寻址方式组合编码在操作码中,所有指令的长度是固定唯一的。有指令的长度是固定唯一的。操 作 码 地 址 码 1地 址 码 2地 址 码 3操作码地址描述符地址码操作码地址描述符 1地址描述符 2地址码操作码地址描述符地址码 1地址码 2混合型编码格式3. 混合型编码格式混合型编码格式 通过提供一定类型的指令字长,期望能够
56、兼通过提供一定类型的指令字长,期望能够兼顾降低目标代码长度和降低译码复杂度两个目标。顾降低目标代码长度和降低译码复杂度两个目标。 浮点数表示浮点数表示每个浮点数均由三部分组成:每个浮点数均由三部分组成:符号位符号位S、指数部分、指数部分E和尾数部分和尾数部分M1) 单精度格式单精度格式(32位位):S=1位,位,E=8位,位,M=23位位2) 双精度格式双精度格式(64位位):S=1位,位,E=11位,位,M=52位位2.5 2.5 指令集格式的设计指令集格式的设计 以单精度格式来说明以单精度格式来说明S:取值取值0或或1,表示浮点数值的正或负,表示浮点数值的正或负M: 表示尾数值为表示尾数值
57、为 1.ME:当取值当取值1 254时,时,经移码表示指数经移码表示指数-126 +127 (减(减127)当取值当取值0时,时, 若若M=0,表示,表示 0 若若M 0,表示非规格化数,尾数,表示非规格化数,尾数 值为值为 0.M当取值当取值255时,时,若若M=0,表示,表示 若若M 0,表示非数值,表示非数值2.5 2.5 指令集格式的设计指令集格式的设计 例如:例如:1 01111111 1000S=1,E=127,M=0.5值值=(-1)11 2127-127 1.5=-1.50 10000001 0100S=0,E=129,M=0.25值值=(-1)01 2129-127 1.25
58、=52.5 2.5 指令集格式的设计指令集格式的设计 2.5 2.5 指令集格式的设计指令集格式的设计 在计算机科学中,DLX是DancingLinks的缩写,该算法由DonaldKnuth提出。DLX是一种多元未饱和型指令集结构。称之为多元未饱和型结构,是因为它不仅体现了当今多种机器(AMD29K、DECstation3100、MIPSM/120A、RISCI、SPARCstation1、Sun4/110等)指令集结构的共同特点,而且它还将会体现未来一些机器的指令集结构的特点。2.6 DLX2.6 DLX指令集结构指令集结构DLX指令集结构的设计思想:指令集结构的设计思想: 具有一个简单的具
59、有一个简单的 Load / Store 指令集;指令集; 注重指令流水效率;注重指令流水效率; 简化指令的译码;简化指令的译码; 高效支持编译器。高效支持编译器。 2.6 DLX2.6 DLX指令集结构指令集结构通用寄存器型指令集结构通用寄存器型指令集结构Load / Store 指令集结构指令集结构支持偏移寻址、立即寻址、寄存器间接寻址支持偏移寻址、立即寻址、寄存器间接寻址偏移寻址的偏移量应该在偏移寻址的偏移量应该在 12 至至16 位位立即寻址的立即值大小应该在立即寻址的立即值大小应该在 8 至至16 位位整形操作数支持整形操作数支持 8 位、位、16 位、位、32 位位浮点操作数支持浮点
60、操作数支持32 位、位、64 位位指令长度单一(指令长度单一(32位),格式简单位),格式简单通用寄存器个数大于等于通用寄存器个数大于等于162.6 DLX2.6 DLX指令集结构指令集结构一般要求:一般要求:2.6.1 DLX指令集结构指令集结构 DLX中的寄存器中的寄存器 DLX的数据类型的数据类型 DLX的寻址方式和数据传送的寻址方式和数据传送 DLX的指令格式的指令格式 DLX中的操作中的操作2.6 DLX2.6 DLX指令集结构指令集结构2.6 DLX2.6 DLX指令集结构指令集结构一、一、DLX中的寄存器中的寄存器(1) 32个通用寄存器个通用寄存器 命名:命名:R0、R1、R3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农业用地的租赁合同模板
- 临床营养学理论与实践
- 大医精诚演讲课件
- 酒店餐饮精细化管理体系构建与实施
- 湖北省重点高中智学联盟2024-2025学年高一下学期5月联考生物试题
- 2025年河南省平顶山市鲁山县部分中学九年级4月联考数学试卷
- 护理查房互动环节设计与实施
- 2025年现场急救知识试题
- 北师大4下一双手教学设计配课件
- 腹泻患者健康教育
- 人工流产课件
- 2024房屋外墙保温施工合同范本
- 路基注浆加固施工方案
- 颂钵疗愈师培训
- 律师事务所律师事务所风险管理手册
- 2023中华护理学会团体标准-注射相关感染预防与控制
- DB34∕T 4410-2023 灿型水稻苗期耐热性鉴定技术规程
- 2021年浙江杭州中考满分作文《超常发挥其实很简单》
- DB1331T019-2022 雄安新区岩土基准层划分导则
- 幼儿园小班安全活动《认识消防员》课件
- NB/T 11546-2024煤矿用5G通信系统通用技术条件
评论
0/150
提交评论