第2章:计算机指令集结构.ppt

  1. 1、本文档共87页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

区别不同指令集结构的主要因素CPU中用来存储操作数的存储单元的类型CPU中用来存储操作数的存储单元的主要类型堆栈累加器通用寄存器组将指令集结构分为三种类型2.1指令集结构的分类堆栈结构累加器结构通用寄存器结构根据操作数的来源不同,又可进一步分为:寄存器-存储器结构(RM结构)(操作数可以来自存储器)寄存器-寄存器结构(RR结构):load-store结构(所有操作数都是来自通用寄存器组)只有load指令和store指令能够访问存储器。2.1指令集结构的分类对于不同类型的指令集结构,操作数的位置、个数以及操作数的给出方式(显式或隐式)也会不同。显式给出:用指令字中的操作数字段给出隐式给出:使用事先约定好的存储单元4种指令集结构的操作数的位置以及结果的去向2.1指令集结构的分类例:表达式C=A+B在4种类型指令集结构上的代码。假设:A、B、C均保存在存储器单元中,并且不能破坏A和B的值。2.1指令集结构的分类通用寄存器结构现代指令集结构的主流在灵活性和提高性能方面有明显的优势寄存器的访问速度比存储器快。对编译器而言,能更加容易、有效地分配和使用寄存器。寄存器可以用来存放变量。(1)减少对存储器的访问,加快程序的执行速度;(因为寄存器比存储器快)(2)用更少的地址位(相对于存储器地址)来对寄存器进行寻址,从而有效地减少程序的目标代码的大小。2.1指令集结构的分类根据ALU指令的操作数的两个特征对通用寄存器型指令集结构进一步细分ALU指令的操作数个数3个操作数的指令两个源操作数、一个目的操作数2个操作数的指令其中一个操作数既作为源操作数,又作为目的操作数。2.1指令集结构的分类通用寄存器型指令集结构进一步细分为3种类型寄存器-寄存器型(RR型)寄存器-存储器型(RM型)存储器-存储器型(MM型)3种通用寄存器型指令集结构的优缺点表中(m,n)表示指令的n个操作数中有m个存储器操作数。一种指令集结构如何确定所要访问的数据的地址?当前的指令集结构中所采用的一些操作数寻址方式?:赋值操作Mem:存储器Regs:寄存器组方括号:表示内容Mem[]:存储器的内容Regs[]:寄存器的内容Mem[Regs[R1]]:以寄存器R1中的内容作为地址的存储器单元中的内容2.2寻址方式采用多种寻址方式可以显著地减少程序的指令条数,但可能增加计算机的实现复杂度以及指令的CPI。2.2寻址方式2.2寻址方式偏移量的取值范围在load-store结构的机器(Alpha)上运行SPECCPU2000基准程序2.2寻址方式从该图可以看出:程序所使用的偏移量大小分布十分广泛主要是因为在存储器中所保存的数据并不是十分集中,需要使用不同的偏移量才能对其进行访问。较小的偏移量和较大的偏移量均占有相当大的比例2.2寻址方式立即数寻址方式立即数寻址方式的使用频度2.2寻址方式立即数的取值范围2.2寻址方式最常用的是较小的立即数;有时也会用到较大的立即数(主要是用于地址计算)。在指令集结构设计中,至少要将立即数的大小设置为8~16位。在VAX机(支持32位立即数)上做过类似的统计,结果表明20%~25%的立即数超过16位。指令集结构的功能设计确定软、硬件功能分配,即确定哪些基本功能应该由硬件实现,哪些功能由软件实现比较合适。在确定哪些基本功能用硬件来实现时,主要考虑3个因素:速度、成本、灵活性硬件实现的特点速度快、成本高、灵活性差软件实现的特点速度慢、价格便宜、灵活性好2.3指令集结构的功能设计对指令集的基本要求完整性、规整性、高效率、兼容性完整性:在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够用。要求指令集功能齐全、使用方便下表为许多指令集结构都包含的一些指令类型前4类属于通用计算机系统的基本指令对于最后4种类型的操作,不同指令集结构的支持大不相同。2.3指令集结构的功能设计2.3指令集结构的功能设计规整性:主要包括对称性和均匀性。对称性:所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。例如:在存储单元的使用上,所有通用寄存器都要同等对待。在操作码的设置上,如果设置了A-B的指令,就应该也设置B-A的指令。均匀

文档评论(0)

iris + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档