操作微处理器的方法【专利说明】[0001]本案是申请日为2012年4月9日、申请号为201210104287.3、发明名称为"可执行x86指令集及ARM指令集指令的微处理器及其运作方法"的发明专利申请的分案申请。
技术领域:
[0002]本发明涉及一种微处理器,特别是涉及一种关于多重指令集架构的支持。【
背景技术:
】[0003]由美国加州圣克拉拉的Intel公司所独创地开发的x86处理器架构,以及由英国剑桥的ARM公司所独创地开发的进阶精简指令集机器(AdvancedRISCMachines,ARM)架构,皆是计算机
技术领域:
所熟知。许多计算机系统包括ARM处理器或x86处理器,而对它们的需求也迅速地增加。目前,ARM架构处理核心的需求在计算机市场中的低功率及低成本部分似乎占有主要的地位,例如手机、个人数字助理(PDA)、平板计算机(tabletPCs)、网络路由器及集线器以及机顶盒(例如苹果公司的iPhone以及iPad的主要处理能力是由ARM架构处理器核心所提供)。而x86架构处理器在讲求高效能及需要高成本的部分计算机市场中似乎占有主要的地位,例如笔记型计算机、桌上型计算机及伺服器。然而,随着ARM核心的效能增加以及x86处理器的某种模型的消耗功率及成本减少,不同市场的界线已明显消失,且两个架构即将互相对抗,一如移动计算机市场如智能手机般,而两个架构很可能即将在笔记型计算机、桌上型计算机及伺服器的市场上更频繁地对抗。[0004]这种情况造成计算机元件制造商及消费者对于两个架构中何者占有优势而处于两难,特别是两个架构软件开发者为此将开发更多的软件。举例来说,一些企业用户每个月或每年购买非常大量的计算机系统,这些企业用户因为大量购买相同系统以及简化系统维持及维修的成本效益,将非常积极地购买相同组态的系统。然而,这些大企业用户的使用者对单一设置的计算机具有不同的计算需求。更具体地来说,一些有计算需求的使用者想要在一ARM架构处理器上执行软件,而另一些有计算需求的使用者想要在X86架构处理器上执行软件,甚至还有一些想要在两者架构处理器上执行软件。更进一步地来说,新的先前未预料到对一个架构或另一个架构的计算需求也可能出现。在这些情况下,这些大企业用户所做的庞大的投资的一部份可能已经浪废掉。举另一个例子来说,一特定的使用者可能有一重要的应用程序,该运用只能在x86架构上执行,因此该使用者购买x86架构系统,但是其后应用程序的版本是为ARM架构而开发,其优于x86的版本(反之亦然),因此使用者想要切换版本,但不幸的是,使用者已经对他不偏好的架构投入金钱。更进一步地来说,一个特定的使用者已经对应用软件投资,该应用软件仅能在ARM架构上执行,然而使用者欲将应用软件使用于其他已经为x86开发的领域,该领域并未存在ARM架构的应用、或是有优于为ARM架构所开发的软件(反之亦然)。值得注意的是,尽管小企业用户或个人使用者对应用软件的投资可能没有大企业用户在数量级上来得多,然而,浪费的投资相对地可能要来得多。许多投资的浪费的其他类似的例子,在多变的计算机元件市场中从占有优势的市场切换至另一市场时可能存在或出现,例如从x86架构切换到ARM架构,反之亦然。最后,计算机元件制造商,例如原始设备制造商(OriginalEquipmentManufacture,OEM)在新产品上投入大量的资源。制造商亦将陷入两难,且如果他们开发并制造了大量的围绕x86或ARM架构的系统,将可能浪费掉一些他们宝贵的开发资源,然后使用者的需求突然地相对地改变。[0005]对计算机元件的制造商及消费者来说,可以不在乎两个架构中的哪一个盛行而保有他们的投资资源是有益的。因此,一种解决方案是有必要的,其允许系统制造商开发一种计算机元件,该计算机元件可以让使用者执行X86架构及ARM架构的程序。[0006]一种可执行一种以上指令集的程序的系统的需求已长久存在,主要是因为顾客可能作出重要的投资在一种软件上,该软件只能在旧的硬件上执行,其指令集不同于新的硬件的指令集。举例来说,IBMSystem/360Model30包含一个IBMSystem1401相容性特征,可减缓转换至高效能及功能增强的system/360的痛苦。Model30包含System/360以及System/1401只读存储器(ReadOnlyStorage,R0S)控制器,如果辅助存储器(AuxiliaryStorage)预先载入需要的信息,其可用于1401模式。此外,在开发高阶语言的软件时,硬件开发者对该软件在旧硬件上编译可能有很少或是无法控制,且软件开发者可能没有动机为了新的硬件去重新编译原始码,特别是如果软件开发者与硬件开发者不是属于同一个企业用户时。Silberman以及Ebcioglu提出一种增进现行的(〃基底(base)")复杂指令集计算机(ComplexInstructionSetComputer,CISC)架构(例如IBMS/390)的软件技术,其藉由将该软件执行于一个精简指令集计算机(ReducedInstructionSetComputer,RISC)、超纯量、以及超长指令字(VeryLongInstructionWord,VLIW)架构("原生(native)")的系统上,并藉由包含一个执行原生码(nativecode)的原生引擎以及一个执行基底目标码(objectcode)的迀移引擎(migrantengine),其取决于将目标码译为原始码的译码软件的有效性,而视需要切换于多种编码之间,可参考「"AnArchitecturalFrameworkforSupportHeterogeneousInstruction-SetArchitecture,"SibermanandEbciogluComputer,June1993,No.6.VanDykeetal.」,其掲亦一种具有执行管线(executionpipeline)的处理器,以执行原生RISC程序指令且亦通过硬件转译及软件转译的结合将x86程序指令译为原生RISC指令,此技术亦掲示于2006/5/16所公告的U.S.patentNo.7,047,394之中。Nakada等人提出一种异质同步多执行绪处理器(SimultaneousMulti-threadingProcessor,SMT),其具有针对不规则程序(例如0S)的进阶RISC机器(AdvancedRISCMachine,ARM)架构前端管线(front-endpipeline),以及针对多媒体应用程序的FujitsuFR-VVLIW架构前端管线,其提供具有附加VLIW队列(queue)的FR-VVLIW后端管线(back-endpipeline),以保持来自前端管线的指令,可参考「''0R0CHI:AMultipleInstructionSetSMTProcessor,''ProceedingoftheFirstInternationalWorkshoponNewFrontiersinHigh-performanceandHardware-awareComputing(HipHaC'08),LakeComo,Italy,November2008(InconjunctionwithMICRO-41),BuchtyandWeib,eds,UniversitatsverlagKarlsruhe,ISBN978-3-86644-298-6」。其所提出的方法是为了减少在异质系统芯片(SystemonChip,SOC)装置上的总系统覆盖区(totalsystemfootprint),例如TexasInstrumentsOMAP包括一个ARM处理器核心加上一个或一个以上的协处理器(co-processor,例如TMS320、各式各样的数字讯号处理器或是各式各样的GPUs),它们并不会共享指令执行资源,而是实质上以不同的处理核心整合于一个单一的芯片上。[0007]软件转译器(Softwaretranslator),亦或是软件仿真器(Softwareemulator)、软件模拟器(Softwaresimulator)、动态二进制码转译器及其类似者,亦可用来在不同架构的处理器上的执行另一架构的程序。一个众所周知的商业实作范例为Motorola68K-to_PowerPC仿真器,其伴随在AppleMacintosh计算机中,以允许68K程序在具有PowerPC处理器的Macintosh执行,且之后开发的PowerPC-to_x86仿真器可允许PowerPC程序在具有x86处理器的Macintosh执行。加州圣克拉拉的Transmeta公司将VLIW核心硬件親接于一个以软件为基底的指令转译器(参照"CodeMorphingSoftware"),其动态地编译或仿真x86编码序列以执行x86编码。亦可参考1998/11/3核准由Kelly所申请的U.S.PatentNo.5,832,205。来自Yorktown的IBM动态架构指令集(DynamicArchitectedInstructionSet,DAISY)系统包括VLIW机器及动态二进制码软件转译器,用以提供100%软件相容仿真给旧的架构。DAISY包含一个虚拟机器监视器(VirtualMachineMonitor当前第1页1 2 3 4 5