《指令集结构》PPT课件.ppt

上传人:牧羊曲112 文档编号:5515959 上传时间:2023-07-15 格式:PPT 页数:97 大小:618KB
返回 下载 相关 举报
《指令集结构》PPT课件.ppt_第1页
第1页 / 共97页
《指令集结构》PPT课件.ppt_第2页
第2页 / 共97页
《指令集结构》PPT课件.ppt_第3页
第3页 / 共97页
《指令集结构》PPT课件.ppt_第4页
第4页 / 共97页
《指令集结构》PPT课件.ppt_第5页
第5页 / 共97页
点击查看更多>>
资源描述

《《指令集结构》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《指令集结构》PPT课件.ppt(97页珍藏版)》请在三一办公上搜索。

1、2023/7/15,张功萱修订,1,第 2 章 指令集结构,2023/7/15,2,本章学习内容,指令结构的分类寻址方式设计指令格式的优化实现RISC设计的技术手段,2023/7/15,3,在机器上直接运行的程序是由指令组成的。指令系统是软件与硬件之间的一个主要分界面,也是他们之间互相沟通的一座桥梁。硬件设计人员采用各种手段实现指令系统,而软件设计人员则使用这些指令系统编制系统软件和应用软件,用这些软件来填补指令系统与人们习惯的使用方式之间的语义差距。指令系统设计必须由软件设计人员和硬件设计人员共同来完成。指令系统发展相当缓慢,需要用软件来填补的东西也就越来越多。,2023/7/15,4,有三

2、种类型的指令系统:CISC:复杂指令系统RISC:精简指令系统VLIW:超长指令字(严格讲,属于并行处理技术)指令系统设计包括:指令的格式设计指令系统的功能设计指令系统的性能评价,2023/7/15,5,2.0 指令系统设计的基本概念,2.0.1 指令系统的设计内容指令系统:机器所具有的全部指令的集合。指令系统设计的内容:确定指令的格式、类型、功能及操作、操作数的类型及大小、操作数的访问(寻址)方式。,2023/7/15,6,确定计算机系统中的一些基本操作(包括操作系统和高级语言中的操作),应由硬件实现还是由软件实现;某些复杂操作是由一条专用的指令实现,还是由一串基本指令实现。,指令系统设计的

3、基本思想,2023/7/15,7,2.0.2 指令系统的设计要求,1.完备性(完整性):是指应该具备的基本指令种类2.有效性:指令的执行速度要快,指令的使用频度要高3.兼容性:在同一系列机内,指令系统,包括寻址方式和数据表示等保持基本不变;可以适当增加指令、增加寻址方式,增加数据表示等;但不能减少任何已有的。,2023/7/15,8,4.规整性:对相似的操作数做出相同的规定.5.对称性:所有的寄存器同等对待,操作码的设置等都要对称6.可扩充性7.正交性:互不相干原则8.利于编译,适应高级语言的发展。,2023/7/15,9,2.0.3 指令系统的设计步骤,1.根据未来用途和应用范围,设计一个初

4、步指令系统;2.用本指令系统编制编译程序;3.模拟测试,研究操作码和寻址方式的效能;4.根据结果,将使用频率高的指令串组合成一条指令;5.重复14步骤,直到证明指令系统有高的效能。,2023/7/15,10,1.指令系统分类的准则 在CPU中操作数的存放方法。在每条指令中,显式指明的操作数个数。操作数的寻址方式。指令系统所提供的操作类型。操作数的类型与大小。,2.1 指令系统结构的分类,2023/7/15,11,2.指令系统结构的分类,按在CPU中操作数的存放方法可分为:堆栈型 累加器型 通用寄存器型,2023/7/15,12,对于一条有两个源操作数和一个目的操作数的指令,指令中显式表示的操作

5、数的个数随CPU存取操作数方式的不同而不同。,2023/7/15,13,三种不同的指令系统集结构,2023/7/15,14,设A、B、C均保存在存储器单元中,且在运算过程中不破坏A、B的值,则在三种不同类型的指令系统中实现CAB的指令序列为:,2023/7/15,15,寄存器寄存器型(RR)寄存器存储器型(RM)或(RS)存储器存储器型(MM),3.通用寄存器型指令系统结构的分类,2023/7/15,16,ALU指令中操作数的个数和操作数个数的的所有可能组合及相应的机器实例。,2023/7/15,17,2023/7/15,18,2.2 操作数访问方式,操作数访问方式即操作数的寻址方式。按访问操

6、作数的手段,寻址方式可分为:按地址访问方式事先计算出需访问的操作数的地址。工作方式是串行顺序的。按内容访问方式将给定的访问内容将与存储单元中的内容进行比较。工作方式是并行的。,2023/7/15,19,2.2.1 按地址访问方式,1.能被指令访问的存放操作数的部件通用寄存器、存储器单元、堆栈以及控制寄存器、设备寄存器等专用寄存器。2.计算机中的两种地址概念 逻辑地址程序员在编制程序时所使用的地址(逻辑空间)。物理地址程序在主存内的实际物理地址。,2023/7/15,20,逻辑地址与物理地址的关系,逻辑空间与物理空间一样大 逻辑空间小,物理空间大 逻辑空间大,物理空间小,2023/7/15,21

7、,3.编址方式,编址方式:对各种存储设备进行编码的方法。(1)按各种部件分类编址。(2)统一编址。(3)隐式编址。,2023/7/15,22,4.编址单位,字编址:以访问一次设备所获得的信息量为单位进行编址。字节编址:以字节为单位进行编址。位编址:按二进制位编址。,2023/7/15,23,按字节编址时需解决的问题,多字节数据的存放顺序小端排序:将一个字中的低位字节存放在低地址单元中。大端排序:将一个字中的高位字节存放在低地址单元中。小端排序符合从右向左进位的硬件习惯;大端排序符合程序员从左向右的编程习惯。,2023/7/15,24,编址规定(略,组原介绍过)在按字节编址时,可能出现字节,半字

8、、字、双字混存的情况,会使读写控制复杂。例:,2023/7/15,25,主存宽度:传送信息的最大位数/单位时间解决程序访存越界的方法:规定每个数据都必须从一个存储字开始存放。这种方法避免了访存越界,但会浪费存储空间和地址空间。,2023/7/15,26,折中方法:对数据按其信息量的整数边界编址。即规定:双字数据存储单元的地址末尾为 000B单字数据存储单元的地址末尾为 00B半字数据存储单元的地址末尾为 0B字节数据可以任意存放。5.按地址寻址方式(略,P47)寻址方式的使用频度:R寻址-直接-变址-单字位移-自增-R间址-自减 高-低,2023/7/15,27,2.2.2 按内容访问方式,1

9、.按内容访问方式按照要访问的数据的内容访问内存。2.联想存储器(相联存储器、按内容访问存储器)满足按内容访问方式的存储器。联想存储器的主要特点:以并行方式在存储器中查找所需信息的内容。3.按内容访问的方法通过硬件将要访问的内容与存储单元的内容进行比较,若相同,则进行访问。,2023/7/15,28,联想存储器的基本结构,2023/7/15,29,联想存储器的访问过程(520 X 540),2023/7/15,30,用途,虚存中的快表Pentium的BTB(分支转移目标缓冲器),2023/7/15,31,2.3 指令系统的两种设计风格,*优化指令系统设计的3个阶段:CISC:复杂指令系统 60年

10、代至70年代中期RISC:精简指令系统 70年代后期至现在VLIW:80年代初期至现在关键在软硬件的功能分配,系统的综合性能 时间与空间;执行、编译、编写时间。,从CPU的执行时间入手,加快程序的运行速度.,2023/7/15,32,CPU执行时间的改进策略,Tcpu=In*CPI*Tc在器件工艺限制下,Tc值为一极限值。In的改进 增强指令的功能,增加指令的复杂度 CISCCPI的改进 简化指令系统,减少指令的执行时间 RISC,2023/7/15,33,总体上:Tcpu(risc)-RISC(In*CPI)小于 Tcpu(cisc)-CISC(In*CPI)RISC机器指令的平均周期数少,

11、2023/7/15,34,2.3.1 CISC设计风格,1.CISC(复杂指令系统计算机)的基本思想:计算机性能的提高主要依靠增加指令复杂性及其功能来获取。,2023/7/15,35,(1)方法:用一条指令代替一串指令 增加新的指令 增强指令功能,设置功能复杂的指令 增加寻址方式 增加数据表示方式(2)优化的途径:面向目标代码 面向高级语言 面向操作系统,2023/7/15,36,2.CISC的主要特点,(1)指令系统复杂。指令数多,一般大于100条。寻址方式多,一般大于4种。指令格式多,一般大于4种。(2)绝大多数指令需要多个机器时钟周期方可执行完毕。(3)各种指令都可访问存储器。(4)采用

12、微程序控制。(5)有专用寄存器。(6)难以用优化编译生成高效的目标代码程序。,2023/7/15,37,2.3.2 RISC设计风格,2.3.2.1 RISC的基本思想1.RISC(精简指令系统计算机)的基本思想:指令系统只由使用频率高的和必要的简单指令构成。将不是最频繁使用的指令(功能)由软件实现,以简化硬件,使其执行得更快。提高流水线效率。,2023/7/15,38,2.从CISC 到 RISC,70年代,指令系统已经非常复杂。,2023/7/15,39,1975年,IBM公司率先组织力量开始研究指令系统的合理性问题1979年研制出世界上第一台采用RISC思想的计算机IBM 8011986

13、年,IBM正式推出采用RISC体系结构的工作站IBM RT PCCISC指令系统存在的问题:1979年,美国加洲伯克利分校 David Patterson 提出:,2023/7/15,40,(1)20与80规律,在CISC中,大约20的指令占据了80的处理机执行时间。例如:8088处理机的指令种类大约100种 前11种(11)指令的使用频度已经超过80 前8种(8)指令的运行时间已经超过80 前20种(20)指令:使用频度达到91.1 运行时间达到97.72 其余80的指令:使用频度只有8.9 2.28的处理机运行时间,2023/7/15,41,2023/7/15,42,Intel 80X86

14、最最常用的十条指令,2023/7/15,43,(2)VLSI技术的发展引起的问题,*VLSI工艺要求规整性,RISC正好适应了VLSI工艺的要求。*主存与控存的速度相当,简单指令没有必要用微程序实现,复杂指令用微程序实现与用简单指令组成的子程序实现没有多大区别。*由于VLSI的集成度迅速提高,使得生产单芯片处理机成为可能。,2023/7/15,44,(3)软硬件的功能分配问题,*复杂的指令使指令的执行周期大大加长,CISC处理机的指令平均执行周期都在4以上。在CISC中,增强指令系统功能,简化了软件,硬件复杂了。*1981年,Patterson等人研制了32位的RISC I微处理器,总共31种

15、指令,3种数据类型,两种寻址方式,研制周期10个月,比当时最先进的MC68000和Z8002快3至4倍。*1983年,又研制了RISC II,指令种类扩充到39种,单一变址寻址方式,通用寄存器138个。,2023/7/15,45,2.3.2.2 RISC的主要特点,1简化指令系统。(1)指令条数较少。(2)基本寻址方式少。(3)指令格式少。(4)指令字长度一致。2以寄存器寄存器方式工作。,2023/7/15,46,3除LOADSTORE指令外,所有指令都在一个机器时钟周期内执行完毕,并采用流水技术。4设置大的寄存器组,使用较多的通用寄存器,不允许有专用寄存器。5为提高指令执行速度绝大部分采用硬

16、联线控制实现,不用或少用微程序实现。6通过精简指令系统和优化编译技术,力求能高效地支持高级语言。,2023/7/15,47,*卡内基梅隆(Carnegie Mellon)大学论述RISC的特点(自习),(1)大多数指令在单周期内完成(2)LOAD/STORE结构(3)硬布线控制逻辑(4)减少指令和寻址方式的种类(5)固定的指令格式(6)注重编译的优化,2023/7/15,48,*IEEE的Michael Slater对RISC描述(自习),90年代初给出的描述:(1)RISC为提高流水线效率,应具有下述特征:简单而统一格式的指令译码;大部分指令可以单周期执行完成;只有LOAD和STORE指令可

17、以访问存储器;简单的寻址方式;采用延迟转移技术;采用LOAD延迟技术。(2)为使编译器便于生成优化代码,应具有:三地址指令格式,较多的寄存器,对称的指令格式。,2023/7/15,49,同类问题的程序长度,RISC比CISC长30%40%CPI,RISC比CISC少2倍10倍。RISC的速度要比CISC快3倍左右,关键是 RISC的CPI减小了。,2023/7/15,50,2.3.2.3 RISC设计的主要技术措施,采用硬联逻辑,少数指令用微程序实现。采用简单规整的指令操作及RR操作。采用流水线技术以及超标量、超流水、超长指令字技术。大量寄存器并采用窗口重叠寄存器技术。采用优化延迟转移技术。采

18、用比较转移指令。采用优化编译技术。,2023/7/15,51,1.窗口重叠寄存器技术,寄存器窗口:由若干寄存器组成的寄存器组。窗口重叠寄存器技术:每当有过程调用时,就分配一个未被使用的寄存器窗口,这样就可减少保存和恢复现场的开销。在每个寄存器窗口中,分成大小固定的高区、本地区和低区三个区段。本地:用来存放局部变量。高区:在被调用时用来保存调用过程送来的参数,在返回主调用过程时,存放返回结果。低区:在调用时存放需送往被调用过程的参数,在被调用过程返回时用来存放返回结果。,2023/7/15,52,例:RISC机共有138个32位物理寄存器。第0号到第9号作为全局寄存器,为所有过程公用。其余128

19、个寄存器分为8个寄存器窗口,每个窗口中有22个逻辑寄存器,其中6个为高区(26号3l号),用于存放输入参数;10个为本地寄存器(16号25号),用于存放本过程中所用的局部变量;6个为低区(10号15号),存放输出参数。例:过程A调用过程B,过程B又调用过程C时寄存器窗口的使用情况。,2023/7/15,53,2023/7/15,54,8个寄存器窗口以环形缓冲器结构组成,最后一个窗口与第一个窗口相重叠。窗口之间的转换是通过改变硬件指针内容实现的。上溢:所需的寄存器窗口超过8个。发生上溢时,需将一个窗口中内容传送到主存,以腾出一个空窗口。下溢:所需的内容在寄存器窗口找不到。发生下溢时,要将内存中存

20、放的内容送回窗口。,2023/7/15,55,2023/7/15,56,窗口重叠寄存器技术的优缺点,优点:使处理器与存储器之间的传送大为减少。缺点:因寄存器窗口的大小和所划分的高区、低区和本地区都是固定的,所以利用率往往不高。,2023/7/15,57,2.采用优化延迟转移技术,转移延迟槽:在转移指令后,需延迟到后继指令进入流水线的时间段。为了减小转移延迟槽的长度,常用的方法有:采用预取两个分支方法来防止断流。利用软件手段,采用优化延迟转移技术。,2023/7/15,58,优化延迟转移:转移指令在准备将控制转向目标指令的同时,执行紧随在转移指令之后的指令,即在转移延迟槽内安排有用的指令,将转移

21、指令后转移延迟槽内的指令执行完毕后,才发生真正转移。,2023/7/15,59,例:延迟转移技术和优化延迟转移技术的说明。,2023/7/15,60,3.采用比较转移指令,比较转移指令:将比较和转移两条指令合并成一条指令,使其同时具有比较和转移这两个功能。,2023/7/15,61,4采用优化编译技术,优化编译技术中要解决的重点问题:选择寄存器,对寄存器堆中的寄存器进行最佳分配,提高寄存器的使用效率,减少对存储器的访问次数。进行数据控制相关性分析,设法对程序中的指令序列在保持原来语义基础上进行重新排序和调度,配合硬件实现指令的优化延迟和取消。,2023/7/15,62,例:对指令序列进行重新调

22、度的方法。设要执行如下的表达式:abc def设完成LOAD指令需两个周期,重新调度的方法是:,2023/7/15,63,5.流水线结构为RISC机器的主要技术,流水线执行和相关性,2023/7/15,64,2.3.2.4 RISC技术的特点,1.优点 可提高处理器的运算速度。适合VLSI技术的实现。控制器简单、规整,方便了VLSI的设计与验证。降低了设计成本,提高了处理器的可靠性和可测试性。能与编译程序较好匹配,有效地支持高级语言的实现,易于实现优化编译。2.存在问题目标代码长,对编译器要求高。,2023/7/15,65,2.4 操作数 的类型和大小(数据表示),数据表示:计算机硬件能够直接

23、识别、指令集可以直接调用的数据类型。浮点数据表示向量数据表示自定义数据表示(见“补充数据表示.ppt”),2023/7/15,66,2.5 指令格式及其优化,2.5.1 指令格式的设计准则1.尽可能采用短指令格式2.留有足够长的操作码3.正确选择地址个数和地址长度4.字长、指令长、数据长与字符长应相匹配5.适应高级语言的发展,利于编译。,2023/7/15,67,2.5.2 指令格式的优化,指令格式优化的主要任务:使指令中操作码和操作数两者之间有最佳配合,以尽量减少指令字中冗余信息以及用最少信息位来表 示所需的操作信息和地址信息。指令的长度 定长指令格式:指令字长固定。变长指令格式:指令字长可

24、变。,2023/7/15,68,2.5.2.1 操作码的优化,1霍夫曼压缩概念(理论依据)当事件出现概率不均匀时,将出现频率高的事件用短的编码位数表示(或短的时间进行处理),将出现频率低的事件用长的编码位数表示(或长的时间进行处理),就可以使平均编码位数(或平均处理时间)大大缩短。,2023/7/15,69,依据:熵1952年由Huffman首先提出 操作码的最短平均长度可通过如下公式计算:(优化Huffman公式)pi表示第i种操作码在程序中出现的概率,2023/7/15,70,固定长编码相对于Huffman编码的信息冗余量:必须知道每种操作码在程序中出现的概率,2023/7/15,71,2

25、.霍夫曼编码方法,(1)将要编码的指令按出现频率的次序排列,每一条指令是一个结点,频率相等的指令可任意排列。(2)把出现频率最小的两个结点合并,并将其频率相加,其和作为新结点的频率,按新的频率次序重新排序。(3)继续过程(2),直至只剩下两个频率的结点。此后便以相反过程进行编码。(4)对每个结点分支分别指定代码0和1(或1和0),直至所有指令获得代码。(5)从根结点沿线到某一指令的代码组合即为该指令的操作码。,2023/7/15,72,例:对模型机7条指令的编码。,2023/7/15,73,1.00,0.55,0.25,0.1,0.05,0.02,0.01,0.01,0.03,0.05,0.1

26、5,0.30,0.45,1,0,1,0,1,0,1,0,1,0,1,0,2023/7/15,74,2023/7/15,75,3.霍夫曼编码的平均长度,Pi:编码出现的概率,Li:编码的长度n:指令条数,2023/7/15,76,采用Huffman编码法的操作码平均长度为:0.4510.3020.153 0.0540.0350.0160.016 1.97(位),2023/7/15,77,而 操作码的最短平均长度为:0.451.1520.301.737 0.152.7370.054.322 0.035.0590.016.644 0.016.6441.95(位),2023/7/15,78,采用3位固

27、定长操作码的信息冗余量为:Huffman编码法的信息冗余量仅为:与3位固定长操作码的信息冗余量35相比要小得多,2023/7/15,79,4.扩展的霍夫曼编码,Huffman操作码的主要缺点:操作码长度很不规整,硬件译码困难 与地址码共同组成固定长的指令比较困难扩展编码法:由固定长操作码与Huffman编码法相结合形成.即,在霍夫曼编码的基础上对编码长度加以限制。一般进行规整化处理,便于译码。频率相近的指令长度相近(或相同,为一组),2023/7/15,80,例:将上例改为1-2-3-5扩展编码法,操作码最短平均长度为:H0.4510.3020.153(0.050.030.010.01)52.

28、00 信息冗余量为:,2023/7/15,81,若改为2-4等长扩展编码法,操作码最短平均长度为:H(0.450.300.15)2(0.050.030.010.01)4 2.202-4等长扩展编码法信息冗余量为:,2023/7/15,82,2023/7/15,83,2023/7/15,84,2.5.2.2 地址码的优化,地址码优化时应注意的问题:(1)地址码宽度应随不同指令而变化。(2)通过改变指令字中的地址数和地址码的长度,以使单地址,双地址甚至三地址都可以在指令中使用。(3)设法利用空白处存放立即操作数或常数。(4)采用间接寻址、变址寻址方式缩短地址码的长度。,2023/7/15,85,1

29、.地址码个数的选择,地址码个数通常有3个、2个、1个及个等4种情况评价指令中地址码个数应该取多少的标准主要有两个:程序存储容量,包括操作码和地址码程序执行速度,以程序执行过程中访问主存的信息量代表,2023/7/15,86,2.一个典型例子分析,计算一个典型的算术表达式:,2023/7/15,87,(1)用三地址指令编写的程序,MUL X,A,B;X(A)(B)ADD X,X,C;X(X)(C)SUB X,X,D;分子的计算结果在X中 ADD Y,E,F;计算分母,存入Y DIV X,X,Y;最后结果在X单元中,2023/7/15,88,(2)用普通二地址指令编写的程序,MOVE X,A;复制

30、临时变量到X中 MUL X,B ADD X,C SUB X,D;X中存放分子运算结果 MOVE Y,E;复制临时变量到Y中 ADD Y,F;Y中存放分母运算结果 DIV X,Y;最后结果在X单元中,2023/7/15,89,(3)用多寄存器结构的二地址指令编写程序,MOVE R1,A;操作数a取到寄存器R1中 MUL R1,B ADD R1,C SUB R1,D;R1中存放分子运算结果 MOVE R2,E ADD R2,F;R2中存放分母运算结果 DIV R1,R2;最后结果在R1中 MOVE X,R1;最后结果存入X中,2023/7/15,90,(4)用一地址指令编写的程序,LOAD E;先

31、计算分母,;取一个操作数到累加器中 ADD F;分母运算结果在累加器中 STORE X;保存分母运算结果到X中 LOAD A;开始计算分子 MUL B ADD C SUB D;累加器中是分子运算结果 DIV X;最后运算结果在累加器中 STORE X;保存最后运算结果到X中,2023/7/15,91,(5)用0地址指令编写程序(ab*c+d-ef+/),PUSH A;操作数a压入堆栈 PUSH B;操作数b压入堆栈 MUL;栈顶两数相乘,结果压回堆顶 PUSH C ADD PUSH D SUB;栈顶是分子运算的结果 PUSH E PUSH F ADD DIV;栈顶是最后运算的结果 POP X;

32、保存最后运算结果,2023/7/15,92,2023/7/15,93,2023/7/15,94,3.关于地址码个数结论,(1)对于一般商用处理机,采用多寄存器结构的二地址指令是最理想的。(2)如果强调硬件结构简单,并且以连续运算(如求累加和等)为主,宜采用一地址结构。(3)对于以向量、矩阵运算为主的处理机,最好采用三地址结构。部分RISC处理机也采用三地址指令。(4)对于解决递归问题为主的处理机,宜采用零地址结构。编程容易、节省程序存储量。,2023/7/15,95,4.缩短地址码长度的方法,用一个短地址码表示一个大地址空间(1)用间址寻址方式缩短地址码长度 方法:在主存储器的低端开辟一个专门存放间接地址的区域(2)用变址寻址方式缩短地址码长度 变址寻址方式中的地址偏移量比较短,(3)用寄存器间接寻址方式缩短地址码长度 例如:16个间址寄存器,用4位地址码就能表示很长的逻辑地址空间。,2023/7/15,96,2.6 MIPS 指令集结构(略),2023/7/15,97,2.7 RISC技术的发展趋向,使用的主频越来越高。芯片上的功能部件越来越多,芯片集成度越来越高。芯片运算性能越来越高。芯片上指令Cache和数据的容量越来越大。每个机器周期能同时启动的指令数逐步增加。普遍采用采用超标量、超长指令字、超流水技术。越来越多地采用动态转移猜测技术等。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号