第2章计算机指令系统的设计..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文档。上传文档
查看更多
2.3 指令系统的设计和优化 哈夫曼编码并不是唯一的。只要将沿线所经过的“0”或“1”互换一下,就会得到一组新的编码。当有多个相同的最小频度时,由于频度结合的次序不同,树的形状不同,码也不同。但只要采用完全的哈夫曼编码,操作码的平均码长肯定是唯一的,而且是可用二进制位编码的平均码长最短的编码。 操作码的平均码长   位,非常接近于H。这种编码的信息冗余为 2.3 指令系统的设计和优化 哈夫曼编码的优缺点: 比起用三位定长码的信息冗余28%要小得多。全哈夫曼编码是最优化的编码。但这种编码的码长种类太多,7种指令就有4种码长,不便于译码,因而不能实现,不是操作码的最优化编码。 扩展操作码编码 是界于定长二进制编码和全哈夫曼编码之间的一种编码方式,操作码长度不是定长的,但只有有限几种码长(如这里只有两种码长)。利用高概率的用短码、低概率的用长码表示的哈夫曼压缩思想,然后分别用定长码来实现。使操作码平均长度缩短,以降低信息冗余。 2.3 指令系统的设计和优化 指令 频度Pi Op哈夫曼编码 OP长度li 扩展操作码 OP长度li I1 0.40 0 1 00 2 I2 0.30 10 2 01 2 I3 0.15 110 3 10 2 I4 0.05 11100 5 1100 4 I5 0.04 11101 5 1101 4 I6 0.03 11110 5 1110 4 I7 0.03 11111 5 1111 4 表右部分的扩展操作码编码平均码长2.30,这种编码的信息冗余为 5.65%。介于定长码和哈夫曼编码之间。 2.3 指令系统的设计和优化 扩展操作码编码包括两种方法:等长扩展和不等长扩展。 2.3 指令系统的设计和优化 扩展标志不同,还可有其他许多种扩展方案。 选用哪种编码方法取决于指令使用频度pi的分布。若pi值在头15种指令中都比较大,但在30种指令后急剧减少,则宜选15/15/15法;若pi值在头8种指令中较大,之后的64种指令的pi值也不太低时,则宜选8/64/512法。 衡量标准是看哪种编码法能使平均码长∑pili最短。 2.3 指令系统的设计和优化 到了20世纪70年代末,这种CISC设计已不能适应优化编译及VLSI技术的发展,所以又提出了简化和规整指令系统的RISC思想。 然而,单纯的RISC存在某些CISC没有的致命弱点,于是又采用将RISC和CISC两者相结合的思想,以相互取长补短。因此,近年来,RISC和CISC之间的界面越来越模糊了,尽管如此,指令系统的结构与单纯的CISC或RISC毕竟有着明显的不同。 2.3 指令系统的设计和优化 2.3.1 按CISC方向发展和改进指令系统 CISC结构追求的目标 强化指令功能,减少程序的指令条数,以达到提高性能的目的。 增强指令功能主要是从以下3个方面着手: 面向目标程序的优化实现改进 面向高级语言的优化实现改进 面向操作系统的优化实现改进 2.3 指令系统的设计和优化 面向目标程序的优化实现改进 对大量的目标程序及其执行情况进行统计分析,找出那些使用频度高、执行时间长的指令或指令串。 对于使用频度高的指令,用硬件加快其执行;对于使用频度高的指令串,用一条新的指令来替代。 既能减少目标程序的执行时间,也能有效地缩短程序的长度。 可以从以下几个方面来改进: 增强运算型指令的功能 增强数据传送指令的功能 增强程序控制指令的功能 2.3 指令系统的设计和优化 例如:循环在程序中占有相当大的比例,所以在指令上提供专门的支持。 循环控制部分通常用3条指令完成: 一条加法指令 一条比较指令 一条分支指令 设置循环控制指令,用一条指令完成上述3条指令的功能。 一般循环程序的结构 2.3 指令系统的设计和优化 面向高级语言的优化实现改进 尽可能缩短高级语言与机器语言的语义差距,支持高级语言编译,缩短编译程序长度和编译时间。 途径1:通过对源程序中各种高级语言语句的使用频度进行统计来分析改进。对高频语句增设与之语义差距小的新指令。但不同用途的高级语言,其语句使用频度有较大差异,机器指令系统很难做到对各种语言都是优化的。 2.3 指令系统的设计和优化 途径2:如何面向编译,优化代码生成来改进。 由于目前机器上运行的绝大多数目标程序是经编译系统生成的,从优化代码生成上考虑,应当增强系统结构的规整性,尽量减少例外或特殊的情况和用法,让所有运算都对称、均匀地在存储(寄存器)单元间进行,对所有存储(寄存器)单元同等对待,不论是操作数或运算结果都可无约束地存放在任意单元中。这样,为优化管理通用寄存器的使用可以大大减少很多辅助开销。 2.3 指令系统的设计和优化 途径3:设法改进指令系统,使它与各种语言间的语义差距都有同等的缩

文档评论(0)

peain + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档