第2章 计算机指令系统设计_第1页
第2章 计算机指令系统设计_第2页
第2章 计算机指令系统设计_第3页
第2章 计算机指令系统设计_第4页
第2章 计算机指令系统设计_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机系统结构计算机系统结构n第第2章章 计算机指令系统的设计计算机指令系统的设计n2.1 指令集结构的分类指令集结构的分类n2.2 寻址方式寻址方式n2.3 指令系统的设计和优化指令系统的设计和优化n2.3.1 按按CISC方向发展和改进指令系统方向发展和改进指令系统n2.3.2 按按RISC方向发展和改进指令系统方向发展和改进指令系统n2.3.3 指令操作码的优化指令操作码的优化n2.3.4 指令字格式的优化指令字格式的优化n2.4 MIPS指令系统结构指令系统结构计算机系统结构计算机系统结构第第2章章 计算机指令系统的设计计算机指令系统的设计 计算机指令集结构的设计是计算机体系结构设计的

2、核心问题计算机指令集结构的设计是计算机体系结构设计的核心问题之一,是软、硬件功能分配最主要的界面,它历来是计算机体系之一,是软、硬件功能分配最主要的界面,它历来是计算机体系结构设计者、系统软件设计者和硬件设计者所共同关注的问题。结构设计者、系统软件设计者和硬件设计者所共同关注的问题。n2.1 指令集结构的分类指令集结构的分类一般来说,可以从以下一般来说,可以从以下5个因素考虑对计算机的指令个因素考虑对计算机的指令集结构进行分类:集结构进行分类:nCPU中操作数的存储方法中操作数的存储方法n指令中显式表示的操作数个数指令中显式表示的操作数个数n操作数的寻址方式操作数的寻址方式n指令集所提供的操作

3、类型指令集所提供的操作类型1.操作数的类型和大小操作数的类型和大小2.1 指令集结构的分类指令集结构的分类n其中,其中,CPU中操作数的存储方法,即在中操作数的存储方法,即在CPU中用来存中用来存储操作数的存储单元的类型,是各种指令集结构之间储操作数的存储单元的类型,是各种指令集结构之间的最主要区别所在。的最主要区别所在。nCPU中用来存储操作数的存储单元中用来存储操作数的存储单元n堆栈堆栈n累加器累加器n通用寄存器组通用寄存器组2.1 指令集结构的分类指令集结构的分类n将指令系统的结构分为三种类型将指令系统的结构分为三种类型n堆栈结构堆栈结构n累加器结构累加器结构n通用寄存器结构通用寄存器结

4、构根据操作数的来源不同,又可进一步分为根据操作数的来源不同,又可进一步分为:n寄存器寄存器- -存储器结构存储器结构(RMRM结构)结构) ( (操作数可以来自存储器操作数可以来自存储器 ) )n寄存器寄存器- -寄存器结构寄存器结构(RRRR结构)结构) ( (所有操作数都是来自通用寄存器组所有操作数都是来自通用寄存器组) ) 也称为也称为load-storeload-store结构,这个名称强调结构,这个名称强调:只有:只有loadload指令和指令和storestore指令能够访问存储器。指令能够访问存储器。2.1 指令集结构的分类指令集结构的分类n对于不同类型的结构,操作数的位置、个数

5、对于不同类型的结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会以及操作数的给出方式(显式或隐式)也会不同。不同。n显式给出:用指令字中的操作数字段给出显式给出:用指令字中的操作数字段给出n隐式给出:使用事先约定好的单元隐式给出:使用事先约定好的单元 2.1 指令集结构的分类指令集结构的分类 例例: 表达式表达式C C=A+B=A+B在在4 4种类型指令系统结构上的代码。种类型指令系统结构上的代码。 假设:假设:A A、B B、C C均保存在存储器单元中,并且不能均保存在存储器单元中,并且不能 破坏破坏A A和和B B的值。的值。2.1 指令集结构的分类指令集结构的分类n通用寄存器

6、型结构通用寄存器型结构n现代指令系统结构的主流现代指令系统结构的主流n在灵活性和提高性能方面有明显的优势在灵活性和提高性能方面有明显的优势n跟其它的跟其它的CPUCPU内部存储单元一样,寄存器的访问内部存储单元一样,寄存器的访问 速度比存储器快。速度比存储器快。n对编译器而言,能更加容易、有效地分配和使用对编译器而言,能更加容易、有效地分配和使用 寄存器。寄存器。n寄存器可以用来存放变量。寄存器可以用来存放变量。 (1 1)减少对存储器的访问,加快程序的执行速度;减少对存储器的访问,加快程序的执行速度; (因为寄存器比存储器快)(因为寄存器比存储器快)(2 2)用更少的地址位(相对于存储器地址

7、来说)来对寄用更少的地址位(相对于存储器地址来说)来对寄 存器进行寻址,从而有效地减少程序的目标代码的存器进行寻址,从而有效地减少程序的目标代码的 大小。大小。 2.1 指令集结构的分类指令集结构的分类n根据根据ALUALU指令的操作数的两个特征对通用寄存器型结指令的操作数的两个特征对通用寄存器型结 构进一步细分构进一步细分nALU指令的操作数个数指令的操作数个数n3 3个操作数的指令个操作数的指令 两个源操作数、一个目的操作数两个源操作数、一个目的操作数n2 2个操作数的指令个操作数的指令 其中一个操作数既作为源操作数,又作为目的其中一个操作数既作为源操作数,又作为目的操作数。操作数。nAL

8、UALU指令中存储器操作数的个数指令中存储器操作数的个数 可以是可以是0 0中的某一个,为中的某一个,为0 0表示没有存储器操表示没有存储器操作数。作数。2.1 指令集结构的分类指令集结构的分类ALU指令中操作数个数和存储器操作数个数的典型组合2.1 指令集结构的分类指令集结构的分类n通用寄存器型结构进一步细分为通用寄存器型结构进一步细分为3 3种类型种类型n寄存器寄存器型(寄存器寄存器型(RRRR型)型)n寄存器存储器型(寄存器存储器型(RMRM型)型)n存储器存储器型(存储器存储器型(MMMM型型)n 3 3种通用寄存器型结构的优缺点种通用寄存器型结构的优缺点下表中下表中(m(m,n)n)

9、表示指令的表示指令的n n个操作数中有个操作数中有m m个存个存储器操作数。储器操作数。2.1 指令集结构的分类指令集结构的分类第第2章章 计算机指令系统的设计计算机指令系统的设计n2.2 寻址方式寻址方式n寻址方式寻址方式:指令系统中如何形成所要访:指令系统中如何形成所要访问的数据的地址。问的数据的地址。 n寻址方式可以指明指令中的操作数是一个寻址方式可以指明指令中的操作数是一个常数、一个寄存器操作数或者是一个存储常数、一个寄存器操作数或者是一个存储器操作数。器操作数。n对于存储器操作数来说,由寻址方式确定对于存储器操作数来说,由寻址方式确定的存储器地址称为的存储器地址称为有效地址有效地址。

10、 2.2 寻址方式寻址方式n一些操作数寻址方式一些操作数寻址方式n:赋值操作赋值操作nMemMem:存储器存储器nRegsRegs:寄存器组寄存器组n方括号:方括号:表示内容表示内容nMem Mem :存储器的内容:存储器的内容nRegs Regs :寄存器的内容:寄存器的内容nMemRegsR1MemRegsR1:以寄存器:以寄存器R1R1中的内容作为地址中的内容作为地址的存储器单元中的内容的存储器单元中的内容2.2 寻址方式寻址方式寻址方式寻址方式指令实例指令实例含含 义义寄存器寻址ADD R1 , R2RegsR1RegsR1RegsR2立即值寻址ADD R3 , #6RegsR3Reg

11、sR36偏移寻址ADD R3 , 120(R2)RegsR3RegsR3Mem120+RegsR2寄存器间接寻址ADD R4 , (R2)RegsR4RegsR4MemRegsR2索引寻址ADD R4 , (R2 + R3)RegsR4RegsR4MemRegsR2+RegsR3直接寻址或绝对寻址ADD R4 , (1010)RegsR4RegsR4Mem1010存储器间接寻址ADD R2 , (R4)RegsR2RegsR2MemMemRegsR4自增寻址ADD R1 , (R2)+RegsR1RegsR1MemRegsR2RegsR2RegsR2d自减寻址ADD R1, -(R2)Regs

12、R2RegsR2dRegsR1RegsR1+MemRegsR2缩放寻址ADDR1 , 80(R2)R3RegsR1RegsR1Mem80RegsR2RegsR3*d2.2 寻址方式寻址方式 采用多种寻址方式可以显著地减少程序的采用多种寻址方式可以显著地减少程序的指令条数,但可能增加计算机的实现复杂度指令条数,但可能增加计算机的实现复杂度以及指令的以及指令的CPICPI。2.2 寻址方式寻址方式n各种寻址方式的使用情况统计结果各种寻址方式的使用情况统计结果在在VAXVAX机器上运行机器上运行gccgcc、SpiceSpice和和Tex Tex 基准程序基准程序 1% 0% 24% 43% 32%

13、 6% 16% 3% 17% 55% 1% 6% 11% 39% 40% 0% 10% 20% 30% 40% 50% 60% 70% 存存储储器器间间接接寻寻址址 缩缩放放寻寻址址 寄寄存存器器间间接接寻寻址址 立立即即数数寻寻址址 偏偏移移寻寻址址 Tex Spice gcc 立即数寻址方式立即数寻址方式和和偏移寻址方式偏移寻址方式的使用频度最高。的使用频度最高。 2.2 寻址方式寻址方式n偏移寻址偏移寻址n偏移量的取值范围偏移量的取值范围n在在load-store结构的机器(结构的机器(Alpha)上运行)上运行SPEC CPU2000基准程序基准程序2.2 寻址方式寻址方式n位移量字段

14、的大小直接影响到指令的长度。位移量字段的大小直接影响到指令的长度。n从图中可以看出:从图中可以看出:n程序所使用的偏移量大小分布十分广泛程序所使用的偏移量大小分布十分广泛n主要是由于在存储器中所保存的数据并不是十分集中主要是由于在存储器中所保存的数据并不是十分集中,需要使用不同的偏移量对其进行访问。,需要使用不同的偏移量对其进行访问。n较小的偏移量和较大的偏移量均占有相当大的比较小的偏移量和较大的偏移量均占有相当大的比例。例。2.2 寻址方式寻址方式n立即数寻址方式立即数寻址方式n立即数寻址方式的使用频度立即数寻址方式的使用频度 大约1/4的load指令和ALU指令采用了立即数寻址。 2.2

15、寻址方式寻址方式n立即数的取值范围立即数的取值范围2.2 寻址方式寻址方式n立即数取值的大小也影响到指令长度立即数取值的大小也影响到指令长度n最常用的是较小的立即数最常用的是较小的立即数n有时也会用到较大的立即数(主要用于地址有时也会用到较大的立即数(主要用于地址计算)计算)n测试表明,测试表明,16位的长度覆盖大约位的长度覆盖大约80%,8位位可以覆盖大约可以覆盖大约50%。2.2 寻址方式寻址方式n两种表示寻址方式的方法两种表示寻址方式的方法n将寻址方式编码于操作码中,由操作码描述相应操作的寻将寻址方式编码于操作码中,由操作码描述相应操作的寻址方式。址方式。适合适合:处理机采用:处理机采用

16、load-store结构,寻址方式只有很少几种。结构,寻址方式只有很少几种。n在指令字中设置专门的寻址字段,用以直接指出寻址方式。在指令字中设置专门的寻址字段,用以直接指出寻址方式。n灵活,操作码短,但需要设置专门的寻址方式字段,而灵活,操作码短,但需要设置专门的寻址方式字段,而且操作码和寻址方式字段合起来所需要的总位数可能会且操作码和寻址方式字段合起来所需要的总位数可能会比隐含方法的总位数多。比隐含方法的总位数多。 适合适合:处理机具有多种寻址方式,且指令有多个操作数。:处理机具有多种寻址方式,且指令有多个操作数。第第2章章 计算机指令系统的设计计算机指令系统的设计n2.3 2.3 指令系统

17、的设计和优化指令系统的设计和优化n指令系统的设计指令系统的设计n首先考虑所应实现的基本功能,确定哪些基本功首先考虑所应实现的基本功能,确定哪些基本功能应该由硬件实现,哪些功能由软件实现比较合能应该由硬件实现,哪些功能由软件实现比较合适。适。n包括包括n指令的功能设计指令的功能设计n指令格式的设计指令格式的设计n在确定哪些基本功能用硬件来实现时,主要考虑在确定哪些基本功能用硬件来实现时,主要考虑3个个因素:因素:速度、成本、灵活性。速度、成本、灵活性。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n在设计新的指令系统时,一般按以下步骤反复多次地在设计新的指令系统时,一般按以下步骤反复多

18、次地进行,直至指令系统的效能达到很高为止。进行,直至指令系统的效能达到很高为止。n根据应用,初拟出指令的分类和具体的指令。根据应用,初拟出指令的分类和具体的指令。n试编出用该指令系统设计的各种高级语言的编译试编出用该指令系统设计的各种高级语言的编译程序。程序。n对各种算法编写大量测试程序并进行模拟测试,对各种算法编写大量测试程序并进行模拟测试,看指令系统的操作码和寻址方式效能是否都比较看指令系统的操作码和寻址方式效能是否都比较高。高。1.将程序中高频出现的指令串复合,将其改成一条将程序中高频出现的指令串复合,将其改成一条强功能新指令,即改用硬件方式实现,而将出现强功能新指令,即改用硬件方式实现

19、,而将出现频度很低的指令的操作改成用基本指令组成的指频度很低的指令的操作改成用基本指令组成的指令串来完成,即用软件方式实现。令串来完成,即用软件方式实现。n对指令系统的基本要求对指令系统的基本要求 完整性、规整性、正交性、高效率、兼容性完整性、规整性、正交性、高效率、兼容性 n完整性:完整性:在一个有限可用的存储空间内,对在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令于任何可解的问题,编制计算程序时,指令系统所提供的指令足够使用。系统所提供的指令足够使用。n要求指令系统功能齐全、使用方便要求指令系统功能齐全、使用方便n下表为许多指令系统结构都包含的一些指令类型下表为许多指

20、令系统结构都包含的一些指令类型 n前前4 4类类属于通用计算机系统的基本指令属于通用计算机系统的基本指令n对于最后对于最后4 4种类型的操作,不同指令系统结构种类型的操作,不同指令系统结构的支持大不相同的支持大不相同 。 2.3 指令系统的设计和优化2.3 2.3 指令系统的设计和优化指令系统的设计和优化2.3 2.3 指令系统的设计和优化指令系统的设计和优化n规整性:规整性:主要包括对称性和均匀性。主要包括对称性和均匀性。n对称性:对称性:所有与指令系统有关的存储单元的使用、所有与指令系统有关的存储单元的使用、 操作码的设置等都是对称的。操作码的设置等都是对称的。例如:例如:在存储单元的使用

21、上,所有通用寄存器都要同在存储单元的使用上,所有通用寄存器都要同等对待。在操作码的设置上,如果设置了等对待。在操作码的设置上,如果设置了A AB BA A的指令,就应该也设置的指令,就应该也设置A AB B B B的指令。的指令。 n均匀性:均匀性:指对于各种不同的操作数类型、字长、操指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。作种类和数据存储单元,指令的设置都要同等对待。例如:例如:如果某机器有如果某机器有5 5种数据表示,种数据表示,4 4种字长,两种存种字长,两种存储单元,则要设置储单元,则要设置5 54 42=402=40种同一操作的指令。种同一操

22、作的指令。 2.3 2.3 指令系统的设计和优化指令系统的设计和优化n正交性:正交性:在指令中各个不同含义的字在指令中各个不同含义的字段,如操作类型、数据类型、寻址方段,如操作类型、数据类型、寻址方式字段等,在编码时应互不相关、相式字段等,在编码时应互不相关、相互独立。互独立。 n高效率:高效率:指指令的执行速度快、使用指指令的执行速度快、使用频度高。频度高。n兼容性:兼容性:主要是要实现向后兼容,指主要是要实现向后兼容,指令系统可以增加新指令,但不能删除令系统可以增加新指令,但不能删除指令或更改指令的功能。指令或更改指令的功能。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n在设计

23、指令系统时,有两种截然不同的在设计指令系统时,有两种截然不同的设计策略。设计策略。 (产生了两类不同的计算机系统(产生了两类不同的计算机系统 )nCISC(复杂指令系统计算机)(复杂指令系统计算机)Complex Instruction Set Computern增强指令功能,把越来越多的功能交由硬件来实增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。现,并且指令的数量也是越来越多。nRISC(精简指令系统计算机)(精简指令系统计算机)Reduced Instruction Set Computern尽可能地把指令系统简化,不仅指令的条数少,尽可能地把指令系统简化,不

24、仅指令的条数少,而且指令的功能也比较简单。而且指令的功能也比较简单。 2.3 2.3 指令系统的设计和优化指令系统的设计和优化n20世纪世纪50年代,由于硬件价格高、体积大、可靠性低,因此年代,由于硬件价格高、体积大、可靠性低,因此计算机的指令系统比较简单。随着半导体技术和微电子技术计算机的指令系统比较简单。随着半导体技术和微电子技术的发展,为增强系统功能和提高速度就不断增加指令系统的的发展,为增强系统功能和提高速度就不断增加指令系统的复杂度。大致有以下几个原因:复杂度。大致有以下几个原因:n当高级语言(如当高级语言(如C语言)取代汇编语言后,就不断增加新语言)取代汇编语言后,就不断增加新的复

25、杂指令来支持高级语言程序的高效实现。的复杂指令来支持高级语言程序的高效实现。n由于访主存的速度显著低于访由于访主存的速度显著低于访CPU寄存器的速度,因此寄存器的速度,因此在功能相同时,不断增加用一条功能复杂的新指令来取在功能相同时,不断增加用一条功能复杂的新指令来取代原先需一连串指令完成的功能,将程序软件固化或硬代原先需一连串指令完成的功能,将程序软件固化或硬化。化。n系列机软件要求向上兼容和向后兼容,使得指令系统不系列机软件要求向上兼容和向后兼容,使得指令系统不断扩大和增加,而原有指令又不能取消,特别是采用微断扩大和增加,而原有指令又不能取消,特别是采用微程序控制后,有人就开始滥用控制存储

26、器,导致指令条程序控制后,有人就开始滥用控制存储器,导致指令条数、功能、寻址方式和指令的格式都越来越复杂。数、功能、寻址方式和指令的格式都越来越复杂。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n到了到了20世纪世纪70年代末,这种年代末,这种CISC设计已不能适应优化编设计已不能适应优化编译及译及VLSI技术的发展,所以又提出了简化和规整指令系技术的发展,所以又提出了简化和规整指令系统的统的RISC思想。思想。n然而,单纯的然而,单纯的RISC存在某些存在某些CISC没有的致命弱点,于没有的致命弱点,于是又采用将是又采用将RISC和和CISC两者相结合的思想,以相互取两者相结合的

27、思想,以相互取长补短。因此,近年来,长补短。因此,近年来,RISC和和CISC之间的界面越来之间的界面越来越模糊了,尽管如此,指令系统的结构与单纯的越模糊了,尽管如此,指令系统的结构与单纯的CISC或或RISC毕竟有着明显的不同。毕竟有着明显的不同。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n2.3.1 按按CISC方向发展和改进指令系统方向发展和改进指令系统nCISC结构追求的目标结构追求的目标n强化指令功能,减少程序的指令条数,以达到提强化指令功能,减少程序的指令条数,以达到提高性能的目的。高性能的目的。n增强指令功能主要是从以下增强指令功能主要是从以下3个方面着手:个方面着

28、手: 面向目标程序的优化实现改进面向目标程序的优化实现改进 面向高级语言的优化实现改进面向高级语言的优化实现改进 面向操作系统的优化实现改进面向操作系统的优化实现改进2.3 2.3 指令系统的设计和优化指令系统的设计和优化n面向目标程序的优化实现改进面向目标程序的优化实现改进n对大量的目标程序及其执行情况进行统计分析,找对大量的目标程序及其执行情况进行统计分析,找出那些使用频度高、执行时间长的指令或指令串。出那些使用频度高、执行时间长的指令或指令串。n对于使用频度高的指令,用硬件加快其执行;对于对于使用频度高的指令,用硬件加快其执行;对于使用频度高的指令串,用一条新的指令来替代。使用频度高的指

29、令串,用一条新的指令来替代。n既能减少目标程序的执行时间,也能有效地缩短程既能减少目标程序的执行时间,也能有效地缩短程序的长度。序的长度。n可以从以下几个方面来改进:可以从以下几个方面来改进: n增强运算型指令的功能增强运算型指令的功能n增强数据传送指令的功能增强数据传送指令的功能n增强程序控制指令的功能增强程序控制指令的功能2.3 2.3 指令系统的设计和优化指令系统的设计和优化例如:例如:循环在程序中占有相当大的循环在程序中占有相当大的比例,所以在指令上提供专门的比例,所以在指令上提供专门的支持。支持。n循环控制部分通常用循环控制部分通常用3 3条指条指令完成:令完成:n一条加法指令一条加

30、法指令n一条比较指令一条比较指令n一条分支指令一条分支指令n设置循环控制指令,用一条设置循环控制指令,用一条指令完成上述指令完成上述3 3条条指令的功指令的功能。能。 I = m1 I=I+m3 循环体循环体 Im2 N Y 一般循环程序的结构一般循环程序的结构2.3 2.3 指令系统的设计和优化指令系统的设计和优化n面向高级语言的优化实现改进面向高级语言的优化实现改进 尽可能缩短高级语言与机器语言的语义差尽可能缩短高级语言与机器语言的语义差距,支持高级语言编译,缩短编译程序长距,支持高级语言编译,缩短编译程序长度和编译时间。度和编译时间。途径途径1 1:通过对源程序中各种高级语言语句的使用频

31、通过对源程序中各种高级语言语句的使用频度进行统计来分析改进度进行统计来分析改进。对高频语句增设与之语。对高频语句增设与之语义差距小的新指令。但不同用途的高级语言,其义差距小的新指令。但不同用途的高级语言,其语句使用频度有较大差异,机器指令系统很难做语句使用频度有较大差异,机器指令系统很难做到对各种语言都是优化的。到对各种语言都是优化的。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n途径途径2:如何面向编译,优化代码生成来改进。如何面向编译,优化代码生成来改进。n由于目前机器上运行的绝大多数目标程序是经编译系由于目前机器上运行的绝大多数目标程序是经编译系统生成的,从优化代码生成上考虑

32、,应当增强系统结统生成的,从优化代码生成上考虑,应当增强系统结构的规整性,尽量减少例外或特殊的情况和用法,让构的规整性,尽量减少例外或特殊的情况和用法,让所有运算都对称、均匀地在存储(寄存器)单元间进所有运算都对称、均匀地在存储(寄存器)单元间进行,对所有存储(寄存器)单元同等对待,不论是操行,对所有存储(寄存器)单元同等对待,不论是操作数或运算结果都可无约束地存放在任意单元中。这作数或运算结果都可无约束地存放在任意单元中。这样,为优化管理通用寄存器的使用可以大大减少很多样,为优化管理通用寄存器的使用可以大大减少很多辅助开销。辅助开销。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n

33、途径途径3 3:设法改进指令系统,使它与各种语言间的语义设法改进指令系统,使它与各种语言间的语义差距都有同等的缩小。差距都有同等的缩小。如图所示,可以把系统结构点如图所示,可以把系统结构点向右移,使得它与各种语言间的路长都得到缩短。向右移,使得它与各种语言间的路长都得到缩短。各种语言与传统机器指令系统结构的语义差距 2.3 2.3 指令系统的设计和优化指令系统的设计和优化n途径途径4 4:机器具有分别面向各种高级语言的多种指令系机器具有分别面向各种高级语言的多种指令系统、多种系统结构。统、多种系统结构。n 工作前由操作系统根据所用高级语言切换控制存储工作前由操作系统根据所用高级语言切换控制存储

34、器中所存相应的微程序,如图所示,让系统结构是动器中所存相应的微程序,如图所示,让系统结构是动态的,而不是静态的。由态的,而不是静态的。由“以指令系统为主,高级语言以指令系统为主,高级语言为从为从”的方式演变成的方式演变成“以高级语言为主,指令系统为从以高级语言为主,指令系统为从”的方式。的方式。 B-1700具有多种系统结构(1972年) 2.3 2.3 指令系统的设计和优化指令系统的设计和优化n途径途径5 5:发展高级语言计算机发展高级语言计算机(或称高级语言机器或称高级语言机器)。n编译主要采用的是翻译技术,在微程序控制的机器上,编译主要采用的是翻译技术,在微程序控制的机器上,机器语言是用

35、解释实现的。面向编译通过缩小语义差距机器语言是用解释实现的。面向编译通过缩小语义差距改进指令系统的思路实际上意味着增大解释的比重,减改进指令系统的思路实际上意味着增大解释的比重,减少翻译的比重。少翻译的比重。各种语言的语义差距 2.3 2.3 指令系统的设计和优化指令系统的设计和优化n面向操作系统的优化实现改进面向操作系统的优化实现改进n途径途径1 1:通过对操作系统中常用指令和指令串的使用通过对操作系统中常用指令和指令串的使用频度进行统计分析来改进频度进行统计分析来改进。但是,这种改进的效果很。但是,这种改进的效果很有限。有限。n途径途径2 2:考虑如何:考虑如何增设专用于操作系统的新指令增

36、设专用于操作系统的新指令。 例如,例如,IBMIBM公司最初在公司最初在IBM360IBM360系统上并未对多个进程系统上并未对多个进程使用公用区的管理提供专门指令,而是给公用区设置使用公用区的管理提供专门指令,而是给公用区设置标志位标志位( (信号灯信号灯) ),结果在多道程序分时系统情况下经,结果在多道程序分时系统情况下经常发生公用区的使用混乱,于是很快增加了一条常发生公用区的使用混乱,于是很快增加了一条“测测试与置定试与置定”指令,但实践中又发现常发生系统指令,但实践中又发现常发生系统“死锁死锁”的现象。为此的现象。为此增设了增设了“比较与交换比较与交换”指令。指令。2.3 2.3 指令

37、系统的设计和优化指令系统的设计和优化n途径途径3 3:是把操作系统中频繁使用的,对速度影响大的是把操作系统中频繁使用的,对速度影响大的机构型软件子程序硬化或固化,改为直接用硬件或微机构型软件子程序硬化或固化,改为直接用硬件或微程序解释实现程序解释实现。n途径途径4:发展让操作系统由专门的处理机来执行的功能发展让操作系统由专门的处理机来执行的功能分布处理系统结构。分布处理系统结构。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n2.3.2 按按RISC方向发展和改进指令系统方向发展和改进指令系统1.CISC1.CISC指令系统结构存在的问题指令系统结构存在的问题 (19791979年开

38、始,年开始,PattersonPatterson等人的研究)等人的研究)n各种指令的使用频度相差悬殊,许多指令很少用。各种指令的使用频度相差悬殊,许多指令很少用。 n据统计:只有据统计:只有2020的指令使用频度比较高,的指令使用频度比较高,占运行时间的占运行时间的8080。而其余。而其余8080的指令只的指令只在在2020的运行时间内才会用到。的运行时间内才会用到。n使用频度高的指令也是最简单的指令。使用频度高的指令也是最简单的指令。2.3 2.3 指令系统的设计和优化指令系统的设计和优化Intel 80 x86最常用的10条指令2.3 2.3 指令系统的设计和优化指令系统的设计和优化n指令

39、系统庞大,指令条数很多,许多指令的功能又很指令系统庞大,指令条数很多,许多指令的功能又很复杂,使得控制器硬件非常复杂。复杂,使得控制器硬件非常复杂。 导致的问题:导致的问题:n占用了大量的芯片面积(如占用占用了大量的芯片面积(如占用CPUCPU芯片总面积的一半芯片总面积的一半以上),给以上),给VLSIVLSI设计造成很大的困难;设计造成很大的困难;n增加了研制时间和成本,容易造成设计错误。增加了研制时间和成本,容易造成设计错误。n许多指令由于操作繁杂,许多指令由于操作繁杂,其其CPICPI值值比较大,执行速度慢。比较大,执行速度慢。采用这些复杂指令有可能使整个程序的采用这些复杂指令有可能使整

40、个程序的 执行时间反而执行时间反而增加。增加。n由于指令功能复杂,规整性不好,不利于采用流水技由于指令功能复杂,规整性不好,不利于采用流水技术来提高性能。术来提高性能。 2.3 2.3 指令系统的设计和优化指令系统的设计和优化2.设计设计RISC的基本原则的基本原则n(1)(1)确定指令系统时,只选择使用频度很高的那些确定指令系统时,只选择使用频度很高的那些指令,再增加少量能有效支持操作系统、高级语言指令,再增加少量能有效支持操作系统、高级语言实现及其他功能的指令,大大减少指令条数,使之实现及其他功能的指令,大大减少指令条数,使之一般不超过一般不超过100100条。条。n(2)(2)减少指令系

41、统所用寻址方式种类,一般不超过减少指令系统所用寻址方式种类,一般不超过两种。简化指令的格式限制在两种之内,并让全部两种。简化指令的格式限制在两种之内,并让全部指令都是相同长度。指令都是相同长度。n(3)让所有指令都在一个机器周期内完成。让所有指令都在一个机器周期内完成。 2.3 2.3 指令系统的设计和优化指令系统的设计和优化n(4)(4)扩大通用寄存器数,一般不少于扩大通用寄存器数,一般不少于3232个,尽量减个,尽量减少访存,所有指令只有存少访存,所有指令只有存(STORE)(STORE)、取、取(LOAD)(LOAD)指令指令访存,其他指令一律只对寄存器操作。访存,其他指令一律只对寄存器

42、操作。n(5)(5)为提高指令执行速度,大多数指令都用硬联控为提高指令执行速度,大多数指令都用硬联控制实现,少数指令才用微程序实现。制实现,少数指令才用微程序实现。n(6)通过精简指令和优化设计编译程序,简单有效地通过精简指令和优化设计编译程序,简单有效地支持高级语言的实现。支持高级语言的实现。2.3 2.3 指令系统的设计和优化指令系统的设计和优化3.设计设计RISC结构采用的基本技术结构采用的基本技术n(1)(1)按设计按设计RISCRISC的一般原则来设计。的一般原则来设计。n 确定指令系统时,通过指令使用频度的统计,确定指令系统时,通过指令使用频度的统计,选取其中选取其中常用的基本指令

43、常用的基本指令,并,并增设增设一些对操作系统一些对操作系统、高级语言、应用环境等支持、高级语言、应用环境等支持最有用的指令,最有用的指令,使指使指令数精简。在指令的功能、格式和编码设计上尽可令数精简。在指令的功能、格式和编码设计上尽可能简化规整。所有能简化规整。所有指令尽可能等长,寻址方式尽量指令尽可能等长,寻址方式尽量统一成统一成12种,指令的执行尽量能安排在一个机器种,指令的执行尽量能安排在一个机器周期内完成周期内完成。 2.3 2.3 指令系统的设计和优化指令系统的设计和优化n(2)(2)逻辑实现采用硬联和微程序相结合逻辑实现采用硬联和微程序相结合。让大。让大多数多数简单指令用硬联方式实

44、现简单指令用硬联方式实现,功能较复杂的指令允许功能较复杂的指令允许用微程序解释实现用微程序解释实现,是比较适宜的,可以免去或减,是比较适宜的,可以免去或减少微指令的译码时间,直接控制通路操作,加快解少微指令的译码时间,直接控制通路操作,加快解释和便于微指令流水。释和便于微指令流水。 n(3)在在CPU中设置大量工作寄存器并采用重叠寄存器中设置大量工作寄存器并采用重叠寄存器窗口。窗口。为为减少访存减少访存,尽量让指令的操作在寄存器之,尽量让指令的操作在寄存器之间进行以提高执行速度,缩短指令周期,简化寻址间进行以提高执行速度,缩短指令周期,简化寻址方式和指令格式;为更简单有效地支持高级语言中方式和

45、指令格式;为更简单有效地支持高级语言中大量出现的过程调用。大量出现的过程调用。 RSIC的重叠寄存器窗口的重叠寄存器窗口 2.3 2.3 指令系统的设计和优化指令系统的设计和优化n(4)指令用流水和延迟转移。指令用流水和延迟转移。n(5)采用高速缓冲存储器采用高速缓冲存储器Cache,设置指令设置指令Cache和数和数据据Cache分别存放指令和数据。这样,可以保证向分别存放指令和数据。这样,可以保证向指令流水线不间断地输送指令和存取数据,来提高指令流水线不间断地输送指令和存取数据,来提高流水的效率。流水的效率。n(6)优化设计编译系统。优化设计编译系统。RISC机器由于使用了大量机器由于使用

46、了大量寄存器,寄存器,简化局部变量和工作变量的中间传递简化局部变量和工作变量的中间传递。另。另外,还应优化外,还应优化调整指令的执行顺序调整指令的执行顺序,以尽量减少机,以尽量减少机器的空闲等。上述器的空闲等。上述延迟转移延迟转移也可以看成是一个调整也可以看成是一个调整指令执行顺序的典型例子。指令执行顺序的典型例子。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n4.RISC技术的发展技术的发展采用采用RISCRISC结构后可以带来如下好处:结构后可以带来如下好处:n(1)(1)简化指令系统设计,适合简化指令系统设计,适合VLSIVLSI实现。实现。n (2)提高机器的执行速度和效率

47、。提高机器的执行速度和效率。n (3)降低了设计成本,提高了系统的可靠性。降低了设计成本,提高了系统的可靠性。n(4)可直接支持高级语言的实现,简化编译程序的设可直接支持高级语言的实现,简化编译程序的设计。因此,精简指令系统在计算机结构设计中已成计。因此,精简指令系统在计算机结构设计中已成为一种非常重要的思路。为一种非常重要的思路。 2.3 2.3 指令系统的设计和优化指令系统的设计和优化RISCRISC也存在某些问题和不足:也存在某些问题和不足:n(1)(1)由于指令少,使原在由于指令少,使原在CISCCISC上由单一指令完成的上由单一指令完成的某些复杂功能现在要用多条某些复杂功能现在要用多

48、条RISCRISC指令才能完成,加指令才能完成,加重了汇编语言程序设计的负担,增加了机器语言程重了汇编语言程序设计的负担,增加了机器语言程序的长度,占用存储空间多,加大了指令的信息流序的长度,占用存储空间多,加大了指令的信息流量。量。n(2)(2)对浮点运算执行和虚拟存储器的支持虽有很大对浮点运算执行和虚拟存储器的支持虽有很大加强,但仍显得不足。加强,但仍显得不足。n(3)RISC机器的编译程序比机器的编译程序比CISC的难写。的难写。 2.3 2.3 指令系统的设计和优化指令系统的设计和优化RISC的发展方向的发展方向n1 1)由于由于RISCRISC也存在不足和问题,使得在也存在不足和问题

49、,使得在设计设计CPUCPU时时,向着,向着RISCRISC和和CISCCISC结合,取长补短的方向发展结合,取长补短的方向发展。例例如,如,MC68030MC68030虽然是虽然是CISCCISC结构,但也引进了某些结构,但也引进了某些RISCRISC的结构特点。的结构特点。n2)随着芯片面积的增大及集成度的提高,多数微随着芯片面积的增大及集成度的提高,多数微型芯片设计开始加入了如下的功能:型芯片设计开始加入了如下的功能:n(1)进一步增大工作寄存器数量,并修改进一步增大工作寄存器数量,并修改CPU部部分结构,以满足多媒体应用;分结构,以满足多媒体应用;n(2)增加并增大在片增加并增大在片C

50、ache的容量,并使其工作时的容量,并使其工作时钟能与钟能与CPU一致;一致;n(3)增设不少高速增设不少高速CISC类型的指令;类型的指令;2.3 2.3 指令系统的设计和优化指令系统的设计和优化n(4)(4)采用附加功能部件执行超标量或采用附加功能部件执行超标量或VLIW(VLIW(超长指超长指令字令字) );n(5)(5)在片加速浮点数操作;在片加速浮点数操作;n(6)(6)增大流水线深度或增大分段流水段间的缓冲能增大流水线深度或增大分段流水段间的缓冲能力;力; n(7)(7)在前端增加对硬件代码转换的支持;在前端增加对硬件代码转换的支持;n(8)(8)在转移之前就开始用猜测方式执行;在

51、转移之前就开始用猜测方式执行;n(9)(9)使用自适应转移预测和恢复;使用自适应转移预测和恢复;n(10)(10)改用数据驱动,让程序动态非顺序地执行;改用数据驱动,让程序动态非顺序地执行;2.3 2.3 指令系统的设计和优化指令系统的设计和优化n2.3.3 指令操作码的优化指令操作码的优化n指令由两部分组成:指令由两部分组成:操作码、地址码操作码、地址码n指令格式的设计指令格式的设计 确定指令字的编码方式,包括操作码字段和地确定指令字的编码方式,包括操作码字段和地址码字段的编码和表示方式。址码字段的编码和表示方式。n指令格式的优化指令格式的优化:如何用最短的位数来表:如何用最短的位数来表示指

52、令的操作信息和地址信息,使程序中示指令的操作信息和地址信息,使程序中指令的平均字长最短。指令的平均字长最短。2.3 2.3 指令系统的设计和优化指令系统的设计和优化基本方法有:基本方法有:1、定长编码、定长编码指令长度固定,编码简单但冗余量大。指令长度固定,编码简单但冗余量大。2、Huffman(哈夫曼)编码(哈夫曼)编码考虑指令出现的概率,指令长度不固定。考虑指令出现的概率,指令长度不固定。3、扩展操作码编码、扩展操作码编码长度不固定,但只有有限几种码长。长度不固定,但只有有限几种码长。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n例:现假设某模型机共有例:现假设某模型机共有n(

53、n=7)条指令,使)条指令,使用频度如图所示:用频度如图所示:2.3 2.3 指令系统的设计和优化指令系统的设计和优化n 按信息论观点当各种指令的出现是相互独立时按信息论观点当各种指令的出现是相互独立时(实际并实际并不都是如此不都是如此),操作码的,操作码的信息熵信息熵(信息源所含平均信息量信息源所含平均信息量) 说明表示这说明表示这7种指令的操作码平均只需种指令的操作码平均只需2.17位即可位即可n 用用定长编码定长编码表示需表示需log2n= 3位,信息冗余为位,信息冗余为 17. 2log712iiippH%28317. 23实际平均码长实际平均码长H2.3 2.3 指令系统的设计和优化

54、指令系统的设计和优化n哈夫曼编码哈夫曼编码 n基本思想基本思想:当各种事件发生的概率不均等时,可:当各种事件发生的概率不均等时,可以对发生概率最高的事件用最短的位数(时间)以对发生概率最高的事件用最短的位数(时间)来表示(处理),而对于出现概率较低的事件,来表示(处理),而对于出现概率较低的事件,则可以用较长的位数(时间)来表示(处理),则可以用较长的位数(时间)来表示(处理),从而使总的平均位数(时间)缩短。从而使总的平均位数(时间)缩短。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n哈夫曼编码方法:哈夫曼编码方法:n利用哈夫曼算法,构造哈夫曼树。将所有指令的利用哈夫曼算法,构造

55、哈夫曼树。将所有指令的使用频度由小到大排序,每次选择其中最小的两使用频度由小到大排序,每次选择其中最小的两个频度合并成一个频度,使它们二者之和成为一个频度合并成一个频度,使它们二者之和成为一个新节点。再按该频度大小插到余下未参与结合个新节点。再按该频度大小插到余下未参与结合的频度值中。如此继续进行,直到全部频度结合的频度值中。如此继续进行,直到全部频度结合完毕形成根结点为止。之后,对每个节点向下延完毕形成根结点为止。之后,对每个节点向下延伸,分出两个分支,分别用一位代码的伸,分出两个分支,分别用一位代码的“0”或或“1”来表示。这样从根结点开始,沿线到达各频度指来表示。这样从根结点开始,沿线到

56、达各频度指令所经过的代码序列就构成该频度指令的哈夫曼令所经过的代码序列就构成该频度指令的哈夫曼编码。编码。n由于哈夫曼编码中的断码不可能是长码的前缀,由于哈夫曼编码中的断码不可能是长码的前缀,从而保证了解码的唯一性和实时性。从而保证了解码的唯一性和实时性。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n构造哈夫曼树构造哈夫曼树2.3 2.3 指令系统的设计和优化指令系统的设计和优化n写出哈夫曼编码写出哈夫曼编码2.3 2.3 指令系统的设计和优化指令系统的设计和优化n哈夫曼编码并不是唯一的。只要将沿线所经过的哈夫曼编码并不是唯一的。只要将沿线所经过的“0”或或“1”互换一下,就会得到

57、一组新的编码。当有多个相同互换一下,就会得到一组新的编码。当有多个相同的最小频度时,由于频度结合的次序不同,树的形状不的最小频度时,由于频度结合的次序不同,树的形状不同,码也不同。但只要采用完全的哈夫曼编码,操作码同,码也不同。但只要采用完全的哈夫曼编码,操作码的平均码长肯定是唯一的,而且是可用二进制位编码的的平均码长肯定是唯一的,而且是可用二进制位编码的平均码长最短的编码。平均码长最短的编码。n操作码的平均码长操作码的平均码长位,非常接近于位,非常接近于H。这种编码的。这种编码的信息冗余为信息冗余为20. 271iiilp%36. 120. 217. 220. 22.3 2.3 指令系统的设

58、计和优化指令系统的设计和优化n哈夫曼编码的优缺点:哈夫曼编码的优缺点:n比起用三位定长码的信息冗余比起用三位定长码的信息冗余28%28%要小得多。全哈要小得多。全哈夫曼编码是夫曼编码是最优化的编码最优化的编码。但这种编码的码长种类。但这种编码的码长种类太多,太多,7 7种指令就有种指令就有4 4种码长,种码长,不便于译码不便于译码,因而不,因而不能实现,不是操作码的最优化编码。能实现,不是操作码的最优化编码。n扩展操作码编码扩展操作码编码n是界于定长二进制编码和全哈夫曼编码之间的一种是界于定长二进制编码和全哈夫曼编码之间的一种编码方式,操作码长度不是定长的,但只有有限几编码方式,操作码长度不是

59、定长的,但只有有限几种码长种码长( (如这里只有两种码长如这里只有两种码长) )。利用高概率的用短。利用高概率的用短码、低概率的用长码表示的哈夫曼压缩思想,然后码、低概率的用长码表示的哈夫曼压缩思想,然后分别用定长码来实现。使操作码平均长度缩短,以分别用定长码来实现。使操作码平均长度缩短,以降低信息冗余。降低信息冗余。2.3 2.3 指令系统的设计和优化指令系统的设计和优化表右部分的扩展操作码编码平均码长表右部分的扩展操作码编码平均码长2.30,这种编码的信息冗余为这种编码的信息冗余为 5.65%。介于定长码。介于定长码和哈夫曼编码之间。和哈夫曼编码之间。2.3 2.3 指令系统的设计和优化指

60、令系统的设计和优化n扩展操作码编码扩展操作码编码包括两种方法:等长扩展和不等长扩展。包括两种方法:等长扩展和不等长扩展。2.3 2.3 指令系统的设计和优化指令系统的设计和优化n扩展标志不同,还可有其他许多种扩展方案。扩展标志不同,还可有其他许多种扩展方案。 n 选用哪种编码方法取决于指令使用频度选用哪种编码方法取决于指令使用频度pi的分布。若的分布。若pi值在头值在头15种指令中都比较大,但在种指令中都比较大,但在30种指令后急剧种指令后急剧减少,则宜选减少,则宜选15/15/15法;若法;若pi值在头值在头8种指令中较大种指令中较大,之后的,之后的64种指令的种指令的pi值也不太低时,则宜

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论