精简指令集计算机.doc

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

CHAPTER 12 REUCED INSTRUCTION SET COMPUTERS (第12章 精简指令集计算机) 对设计RISC计算机,高级语言程序行为的研究成果是有指导意义。程序中赋值 语句占有最大份额,这暗示着简单的数据传送应当优化。程序中还有许多IF和LOOP语句,基础的顺序控制机制需要进行优化,以准许有效地使用流水技术。操作数引用样式的研究表明,在寄存器中保持适当数量的操作数会有助于性能的提高。 RISC机器的关键特征:①有限的指令集并具有固定格式,②大量的寄存器或利用 编译器来优化寄存器的作用,③强调对指令流水线的优化(optimizing)。 RISC的简单指令集自身便利于有效的流水化;RISC指令集自身也有助于实施延 迟转移技术(the delayed branch technique):将转移指令和其他指令重排能提高流水线效率。 下面给出了自计算机诞生以来某些最主要的进步。 Family Concept:以不同的价格/性能特征提供的一级计算机,性能和价格方面的差异在于同样结构的不同实现。 Microprogrammed Control Unit:微编程使控制器的设计和实现变得更容易,并提供了对系列概念的支持。 Cache Memory:极大地改善了系统性能。 Pipelining:将并行性引入机器指令程序顺序本性的一种方式。 Multiple Processors:包含几种不同的组织和目标 RISC:最重要的变革,在语言和行为方面对大多数计算机结构的学识是一个挑战 RISC系统的关键点是: 有限的和简单的指令集并具有固定格式, 大量的寄存器或利用编译器来优化寄存器的作用, 强调指令流水线的优化(optimizing) CP332+EP458表12.1比较了几个RISC和非RISC系统 12.1 INSTRUCTION EXECUTION CHARACTERISTICS 指令执行特征 计算机发展最易见的形式是编程语言;随着硬件成本的下降,软件成本相对上升;通用性的扩展和编程人员的长期缺乏驱使软件成本在绝对意义上上升;软件运行多年后虽经不断修正仍继续出现新的缺欠。因此,一个计算机系统存活期的主要成本是软件而不硬件。 研究人员和工业界对此的响应是,开发出了功能更强、更复杂的高级程序设计语言,高级语言(HLL:high-level language)允许编程人员能更简明地表示算法,更关注细节,并经常支持结构化程序设计。 由此而来的是语义间隙问题(Semantic Gap),即HLL中提供的操作与计算机结构提供的操作间的差异。这种间隙现象(Symptoms of the Semantic Gap)被认为是,包括执行的低效、过长的机器程序和编译器的复杂性。设计者试图以结构的改进来减小这个间隙。关键的做法包括大指令集、若干的寻址方式和硬件实现的各种HLL语句 设计人员寻找新的方法:使支持HLL的结构更简单而不是更复杂。 为了理解主张RISC的理由,先简要地重新审视指令执行的特征: 完成的操作 所用的操作数 执行顺序 下面总结的几个有关高级语言研究的报告中,动态测量是通过收集某些特征已出现或某一具体特性已由该情况下的程序所执行,并统计执行次数来进行的。静态测量只是在源程序文本上进行统计,它们没有加权到每条语句的执行次数。 12.1.1 Operations 操作 CP106+EP146表4.9包括了几个研究的重要结论:赋值语句在程序中很显著,这暗示简单的数据传送非常重要;条件语句亦在程序中占有优势,这表明指令集的顺序控制机制亦是关键。因而应以一种“优化”形式(an optimal fashion)来支持它们。 研究者曾在VAX、PDP-11和Motorola68000上编译Patterson程序,以确定每类语句的平均机器指令数和平均存储器访问数。将这些平均数乘以每类语句的出现频度,就得到了CP334+EP460表12.2。结果表明:过程调用/返回是典型HLL程序中最耗时的操作。 12.1.2 Operands 操作数 Patterson的研究报告查看了各类变量的动态出现频度,详见CP334+EP460表12.3。 Pascal和C程序的结论是一致的:主要使用的简单标量变量,而且80%以上的标量是(过程的)局部变量。 结论:程序中大量访问的是标量,而且它们是高度局部化的。 研究显示,因为操作数存取如此频繁,适用快速存取的结构将起重要作用。Patterson研究提示,优化的主选方向应是对局部标量变量的存储和访问。 12.1.3 Procedure Calls 过程调用 过程调用和返回是HLL程序的一个重要部分。表12.2指出,过程调用和返回是编译后的HLL程序中最耗时的操作。 因此,考虑高

文档评论(0)

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

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

1亿VIP精品文档

相关文档