处理器设计谬误_000002.docVIP

  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文档。上传文档
查看更多
处理器设计谬误_000002

处理器设计谬误_000002   摘要:本系列文章深度调查了各种失败的处理器种群。每一篇文章探索了造成一种特殊的处理器种群消亡的重大设计错误。每一种重大的设计错误还用一个或两个以上的例子来进行说明。   关键词:处理器;设计;ISA;HLL微码      本文第一部分讨论了支持特定语言或语言域的高级计算机指令集架构(tSA)的发展,并把那个种群称为Myopisaur。本系列文章将会讨论其它的处理器种群以及跟那个种群相关的设计错误。   在那个年代所采用的一种主要方法就是实砚针对HLL的处理器,正如在本系列文章第一部分所讨论的那样,就是把一个中间ISA裁剪为一种HLL,然后,采用或开发类似的处理器硬件以通过微编程来仿效经定义的ISA。在上世纪50年代,微码首次被剑桥大学在EDSAC项目中由MauriceWilkes实现,人们最初开发它是为计算机控制逻辑而开发一种更为简单的方法。微码由实现中间ISA的基本处理器指令序列组成。它或者由一些简化的中间语言进行编译,或者以汇编形式进行手工编写。微汇编程序然后把汇编代码转换为可执行代码,这些可执行代码随后被存储在片上本地存储器或快速访问、存在低延迟存储器上。在上世纪70年代和80年代,设计工程师把微码存储在由分立存储器芯片或存储器模块实现的外部存储器上。在当今的IC集成水平上,处理器微码几乎总是存储在片上RAM或ROM之上。   微码尽管曾经获得了普及应用,但是,本质上已经从现代的处理器设计消失了,因为片上可用硬件快速增加、硬件成本的关联下降以及广泛的采用逻辑综合来进行芯片设计。所有这些发展使得ISA的直接硬件实现更加容易并且更加在经济上有吸引力。      赞成采用徽码的案例      微码提供的若干优点:   目标码在一个家族之内与其它处理器兼容或与以前一代的处理器兼容;   以各种价格一性能特性能够创建一个家族的待构建的处理器。在该家族中的高端处理器实现中间ISA更为直接或者甚至通过多功能单元而加速它,以开发指令级并行化(n2)。在该家族中的低端处理器把中间ISA映射至更为有限的硬件上,从而使得程序的执行更慢但是也成本更低。   在一个处理器家族中,能够在多个处理器上把经编写的编译器用于中间ISA。从中间ISA至较低端机器的实际指令组的映射――具体包括在微码中―可以独立的层编写,并可能避免采用编译器,或者至少需要非常简单的编译器。进一步说,这样的映射可能很少采用,因为中间ISA不会暴露给用户,并且不必按照HLL可能演化的那种方式演化。一些语言编译器目前采用中间语言形式(例如Pascal的P代码或Java的虚拟机)以及一个两步―或通过解释或两步编译―的过程以产生最终的可执行代码;这个过程可以简化对接并也能够支持针对同一ISA的多个语言一即使不涉及微码。   通过采用多个ISA和多个微码组,由微码编写的处理器能够在运行时间上动态地适应不同的HLL,从而能够针对以不同的语言编写的程序实现更好的执行性能。   对于依赖于解释器的各种语言,对适当的中间ISA的形式开发以及把那个中间ISA的微码映射至目标ISA,能够通过把它们的开发分为更加简单的两级(对于工程设计来说是一流的划分和征服方法)而加快语言的可用性。如上所述,这可能对于在RISC上实现多语言支持也是一个策略,或者,对于把一个语言对接至多个处理器也是一个策略。   正如上面所讨论的,通过把实现一个语言编译器的过程分为两级,就有可能为一种新的目标机提供语言支持,较之于编写特殊的目标编译器更加快。   利用一个中间ISA指令而不是两个或两个以上的目标ISA指令,代码长度可以被减少。此外,通过从主存储器减少指令抓取的数量可能改善性能。在这种情形下,中间ISA可能较之于固有的机器RISCISA而创建一种CISC。   对ISA仅仅部分支持而不是全部支持,可能简化一种语言不常用部分的编译器的编写。对于支持ISA的新型处理器的硬件设计也可能在复杂性、设计努力以及项目风险上被减少,因此,采用经过很好测试的微码实现的执行来实现某些功能,可能较之干直接硬件实现来说是更好的替代方法。   这一技术如果利用更多的现代处理技术的优点可能会更好且时钟速率更快,以提供对较老机器以及在更新的处理器上的指令集―对较老的ISA的一种虚拟化―的后向兼容性。下一步就是在软件上完全执行这个转换,而完全不涉及任何微码,这就需要各种技术改善以提供所需要的性能。这样的改善可能包括较高频率、逻辑、可能的多核以及更多的嵌入式存储器。      反对采用微码的案例      微码还具有若干缺点:   与具有较为简单的ISA的机器相比,低端中间ISA机器的性能常常非常差,因为中间ISA机器的分层常常证明并不是最优化地使用计算资源。   与

文档评论(0)

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

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

1亿VIP精品文档

相关文档