21指令格式的优化.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二章 指令系统 指令系统是指计算机所有机器指令的集合。程序员用各种语言编写的程序都要翻译成(编译或解释)以机器指令形式表示的机器语言后才能运行,所以它反映了计算机的基本功能,是硬件设计人员和程序员都能见到的机器的主要属性。 本章将主要讲述指令格式的优化方法以及两种指令系统:RISC和CISC指令系统的特点和区别。 指令系统的优化 早期计算机的指令系统很简单,一些比较复杂的操作由子程序实现,因此计算机的处理速度比较慢。 随着硬件价格的下降,指令系统逐步扩充,指令的功能也逐步增强。指令系统的改进是围绕着缩小与高级语言的语义差异以及有利于操作系统的优化而进行的。 例如,高级语言中的实数计算是通过浮点运算进行的,对应在指令系统中设置浮点运算指令能明显地提高速度 。 指令系统的优化 例如,在高级语言程序中经常用到IF语句、DO语句等,为此在指令系统中设置功能较强的“条件转移”指令是有益的。 例如,为了便于实现程序嵌套,设置了Call及Ret指令…… 上述这些措施都是针对高级语言的优化进行的,使生成的目标程序短而且运行速度快,同时也便于编译。 指令系统的优化 例如,为操作系统的实现或优化而设置的特殊指令,除了各种控制系统状态的指令外,还有为多道程序公用数据管理和多处理机系统信息管理用的“测试与置定”、“比较与交换”等指令。 总之,指令系统的优化和改进,就是围绕如何能使编译系统高效、简易地将源程序翻译成目标代码以及有利于操作系统的优化而进行的。 2.1 指令格式的优化 指令格式:包括指令字中的操作码长度、地址数、地址码的长度以及整个指令字的长度等。 指令格式的优化:是指如何用最短的位数来表示指令的操作信息和地址信息,使程序中指令的平均字长最短。因此指令格式的优化包括操作码的优化和地址码的优化两部分。 2.1.1 操作码的优化 操作码的表示通常有3种: 等长操作码、Huffman编码和扩展操作码。 从压缩代码的观点出发,希望常用的指令的操作码短些,这样最后使程序的长度也短些。使用哈夫曼(Huffman)编码法和扩展操作码方法,可以达到操作码优化的目的。 1. 等长操作码 指令系统中所有指令的操作码长度固定。若指令系统中共有N条不同功能的指令,则需要有 (log2N向上取整)位操作码。 优点:操作码长度规整,有利于简化硬件设计,减少指令译码时间。 缺点:操作码长度固定,增加指令字长。 2. 哈夫曼(Huffman)编码 哈夫曼编码(哈氏压缩法)的基本思路是:出现概率最大的事件用最少的位(或最短的时间)来表示(或处理),而概率较小的事件用较多的位(或较长的时间)来表示(或处理),以达到平均位数(或时间)缩短的目的。 哈夫曼压缩法是一种频率相关的编码方法,即在编码之前,必须先知道待编码信息(这里就是指令)的使用频度。 举 例-使用频度 设某计算机有7条指令(I1—I7),经过典型程序的统计,其使用频度Pi为(使用频度表) I1 0.40 000(固定长度) I2 0.30 001 I3 0.15 010 I4 0.05 011 I5 0.04 100 I6 0.03 101 I7 0.03 110 举 例-信息源熵(最少使用位数) 信息源熵(即信息源所包含的平均信息量) H公式计算 : H = -∑Pi× log2Pi 则本例中的信息源熵H为: H=0.40×1.32+0.30×1.74+0.15×2.74+ 0.05×4.32+0.04×4.64+0.03×5.06+ 0.03×5.06 =2.17 因此平均只需2.17位(平均码长,又名最少使用位数)即可表示 7条指令。 举 例-信息冗余量 信息冗余量(R):表示实际使用位数与最少使用位数的冗余程度。 信息冗余量R = 1-H/∑Pi×li 本例中采用固定操作码时,信息冗余量为: R=1-2.17/3=28%。 Huffman编码的实现过程 按Huffman算法,构造Huffman 树。 Huffman 树的所有左分支用一位代码的“1”表示,右分支用一位代码的“0”表示(也可

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档