- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 通过对传统的CISC指令系统进行测试表明,各种指令的使用频度相差很悬殊。最常使用的是一些比较简单的指令,这类指令的数量仅占指令总数的20%,但在各种程序中出现的频度却占80%;其余大多数指令是功能复杂的指令,这类指令的数量占指令总数的80%,但其使用频度很低,仅占20%。因此,人们把这种情况称为“20%-80%律”。1975年IBM公司的John Cocke提出了精简指令系统的想法,各种精简指令系统计算机RISC(Reduced Instruction Set Computer)随之诞生。 3.5.2 从复杂指令系统到精简指令系统(续) * 1.VLIW和EPIC概念 VLIW中文含义是“超长指令字”,即一种非常长的指令组合,它把许多条指令连在一起,增加了运算的速度。在这种指令系统中,编译器把许多简单、独立的指令组合到一条指令字中。当这些指令字从主存中取出放到处理器中时,它们被容易地分解成几条简单的指令,这些简单的指令被分派到一些独立的执行单元去执行。 EPIC中文含义是“显式并行指令代码”。 EPIC是从VLIW中衍生出来的,通过将多条指令放入一个指令字,有效的提高了CPU各个计算功能部件的利用效率,提高了程序的性能。 3.5.3 VLIW和EPIC * IA-64彻底突破IA-32的架构,最大限度地开发了指令级并行操作。 Intel公司反对将IA-64划归到RISC或CISC的类别中,因为他们认为这是EPIC架构,是一种基于超长指令字的设计,它合并了RISC和VLIW技术方面的优势。最早采用这种技术的处理器是Itanium。 2.Intel的IA-64 2010.9 重庆文理学院 某微机指令格式如下所示: 2010.9 重庆文理学院 人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。 * * 3.3 堆栈与堆栈操作 堆栈是一种按特定顺序进行存取的存储区,这种特定顺序可归结为“后进先出”(LIFO)或“先进后出”(FILO)。 * 3.3.1 堆栈结构 1.寄存器堆栈 用一组专门的寄存器构成寄存器堆栈,又称为硬堆栈。这种堆栈的栈顶是固定的,寄存器组中各寄存器是相互连接的,它们之间具有对应位自动推移的功能,即可将一个寄存器的内容推移到相邻的另一个寄存器中去。 * 寄存器堆栈 图3-14 寄存器堆栈结构 * 2.存储器堆栈 从主存中划出一段区域来作堆栈,这种堆栈又称为软堆栈,堆栈的大小可变,栈底固定,栈顶浮动,故需要一个专门的硬件寄存器作为堆栈栈顶指针SP,简称栈指针。栈指针所指定的主存单元,就是堆栈的栈顶。 图3-15 存储器堆栈结构 高地址 低地址 堆栈区 * 自底向上生成堆栈的进栈 堆栈的栈底地址大于栈顶地址,通常栈指针始终指向栈顶的满单元。进栈时,SP的内容需要先自动减1,然后再将数据压入堆栈。 2000 1FFF (SP)-1→SP 修改栈指针 (A)→(SP) 将A中的数据压入堆栈 SP 2000 A 2000 原栈顶 单元 现栈顶 单元 1FFF * 自底向上生成堆栈的出栈 出栈时,需要先将堆栈中的数据弹出,然后SP的内容再自动加1。 2000 ((SP))→A 将栈顶内容弹出,送入A中 (SP)+1→SP 修改栈指针 SP 1FFF A 1FFF 原栈顶 单元 现栈顶 单元 1FFF 2000 * 3.2.2 堆栈操作 堆栈操作既不是在堆栈中移动它所存储的内容,也不是把已存储在栈中的内容从栈中抹掉,而是通过调整堆栈指针而给出新的栈顶位置,以便对位于栈顶位置的数据进行操作。 在一般计算机中,堆栈主要用来暂存中断断点、子程序调用时的返回地址、状态标志及现场信息等,也可用于子程序调用时参数的传递,所以用于访问堆栈的指令只有进栈(压入)和出栈(弹出)两种。 * 在堆栈计算机中,堆栈是保存操作数和运算结果的唯一场所。此时的算术逻辑类指令中没有地址码字段,故称为零地址指令。参加运算的两个操作数隐含地从堆栈顶部弹出,送到运算器中进行运算,运算
文档评论(0)