- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第三讲微处理器指令集设计
微处理器指令集设计垂直指令格式指令类型及其使用频度CISC指令集特点RISC指令集特点指令集设计的发展
处理器设计的艺术就是定义一个指令集1在软件方面,支持对程序员有用的功能2在硬件实现方面,的实现要尽可能有效率3具有较长的生命周期,最好是这个指令集还应使以后更复杂的实现也有同样的效率4微处理器指令集设计的基本要求
正交指令格式如果构造一条指令的每一种选择都独立于其他的选择,那么指令集就是正交的
01正交指令格式
4地址指令02基本指令格式可用如图2-1所示的二进制格式表示。在这种格式中,每条指令需要4n+f位。其中每个操作数需要n位,指定操作码需要f位。
正交指令格式
3地址指令减少每条指令所需位数的首要方法是把下一条指令的地址变为隐含的(除非是转移指令,其作用就是明确地修改指令的顺序)。若假定下一条指令的默认地址可以由指令的大小加上PC值得到,则指令变为3地址格式。这种指令的二进制表示如图2-2所示:
正交指令格式
2地址指令若目的与一个源操作数共用一个寄存器,则可以进一步节省存储一条指令所需的位数。这种指令的二进制表示压缩为如图2-3所示:
正交指令格式
■1地址指令如果目的寄存器是隐含的,则通常称之为累加器。指令只需要指定一个操作数,即ADDs1;accumulator:=accumulator十s1这种指令的二进制表示则进一步简化为如图2-4所示
0504020301正交指令格式0地址指令最后,可以采用求值堆栈式(evaluationstack)的体系结构,从而使全部操作数为隐含的。ADD;top_of_stack:=top_of_stack十next_on_stack这种指令的二进制表示如图2—5所示。
正交指令格式
寻址模式当数据处理或数据传送指令访问操作数时,有几种标准的方法用于指定所需数据的位置。多数处理器支持这些寻址模式中的几种(但是很少会支持所有模式)。
正交指令格式
寻址模式030201立即寻址:指令中给出所需的数值(二进制形式)。绝对寻址:指令中包含所需数据在存储器中的全部地址(二进制)。间接寻址:指令中包含一个存储器位置的二进制地址。在该位置存有所需数据的二进制地址。
正交指令格式
寻址模式寄存器寻址:所需数据在一个寄存器中,指令包含这个寄存器的编号。寄存器间接寻址:指令中包含寄存器的编号,而该寄存器的内容是数据在存储器中的地址。基址偏移寻址:指令指定寄存器(基址)和二进制偏移量。偏移量和基址相加得到存储器地址。010302
正交指令格式
寻址模式基址变址寻址:指令指定基址寄存器和另外一个寄存器(变址)。变址和基址相加得到存储器地址。基址比例变址寻址:类似前一种方式,但变址在与基址相加之前要乘以一个常数(通常为数据顶的长度,通常是2的幂)。
正交指令格式
寻址模式堆栈寻址:—个隐含或指定的寄存器(堆栈指针)指向存储器中某处(堆栈),数据项以后进先出的原则写入(压入)或读出(弹出)
正交指令格式
寻址模式对这些寻址模式,不同的处理器厂商采用的名称可能有所不同。寻址模式几乎可以无限地扩充。例如,增加更多的间接层次,增加基址变址加偏移等。以上所列举的模式涵盖了大多数通常使用的寻址模式。
数据处理指令。例如加、减和乘;数据传送指令。这类指令把数据从存储器甲一个地方复制到另一个地方,或者从存储器复制到处理器的寄存器等;流控制指令。这类指令把程序的执行从一部分切换到另一部分。切换有可能取决于数据的值;控制处理器执行状态的特殊指令。例如,切换到特权模式以执行操作系统功能;指令类型一个通用的指令集应包括以下几类指令:
例如,“减1,如果非0则转移”这条在控制程序循环时是很有用的指令,它既对循环变量进行某些数据处理,又完成流控制功能;与此类似,从存储器某地址读取操作数并把结果送到寄存器的数据处理指令,可以看作是进行数据传送功能。指令类型有时一条指令属于一个以上的类别。
有一个普遍的误解,就是认为计算机花费时间在进行计算,也就是说,它在对用户的数据进行算术操作。实际上,它只用很少的时间进行这个意义上的“计算”。尽管它进行相当数量的算术运算,但是,这些运算多数需要寻址,以便找到相关数据与程序的位置。找到用户的数据后,多数的工作是把它们移来移去,而不是进行转换意义上的处理。指令使用频度
在指令集的级别上,可以测量各个不同指令的使用频率。01重要的是获得动态测量值,就是测量被执行的指令的频率,而不是由各类型二进制指令的计数得到的静态频率。02一个典型的统计如表2_1所列。该统计是通过在ARM指令仿真器上运行打印预览程序来提取的,对其
文档评论(0)