具有条件指令的微处理器及其处理方法

文档序号:6367891阅读:408来源:国知局

专利名称::具有条件指令的微处理器及其处理方法
技术领域
:本发明是关于微处理器的
技术领域
,特别是关于在指令集中具有条件指令的微处理器。
背景技术
:由IntelCorporationofSantaClara,California开发出来的x86处理器架构以及由ARMLtd.ofCambridge,UK开发出来的进阶精简指令集机器(advancedrisemachines,ARM)架构是计算机领域中两种广为人知的处理器架构。许多使用ARM或x86处理器的计算机系统已经出现,并且,对于此计算机系统的需求正在快速成长。现今,ARM架构处理核心是主宰低功耗、低价段的计算机市场的需求,例如手机、手持式电子产品、平板计算机、网络路由器与集线器、机上盒等。举例来说,苹果iPhone与iPad主要的处理能力即是由ARM架构的处理核心提供。另一方面,x86架构处理器则是主宰需要高效能的高价段市场的需求,例如膝上计算机、桌上型计算机与服务器等。然而,随着ARM核心效能的提升,以及某些x86处理器在功耗与成本的改善,前述低价段与高价段市场的界线逐渐模糊。在移动运算市场,如智能型手机,这两种架构已经开始激烈竞争。在膝上计算机、桌上型计算机与服务器市场,可以预期这两种架构将会有更频繁的竞争。前述竞争态势使得计算机装置制造业者与消费者陷入两难,而无从判断哪一个架构将会主宰市场。更精确来说,哪一种架构的软件开发商将会开发更多软件。举例来说,一些每月或每年会定期购买大量计算机系统的消费个体,基于成本效率的考虑,例如大量采购的价格优惠与系统维修的简化等,会倾向于购买具有相同系统配置设定的计算机系统。然而,这些大型消费个体中的使用者群体,对于这些具有相同系统配置设定的计算机系统,往往有各种各样的运算需求。具体来说,部分使用者的需求是希望能够在ARM架构的处理器上执行程序,其它部分使用者的需求是希望能够在x86架构的处理器上执行程序,甚至有部分使用者希望能够同时在两种架构上执行程序。此外,新的、预期外的运算需求也可能出现而需要使用另一种架构。在这些情况下,这些大型个体所投入的部分资金就变成浪费。在另一个例子中,使用者具有一个重要的应用程序,只能在x86架构上执行,因而他购买了x86架构的计算机系统。不过,这个应用程序的后续版本改为针对ARM架构开发,并且优于原本的x86版本。使用者会希望转换架构来执行新版本的应用程序,但不幸地,他已经对于不倾向使用的架构投入相当成本,反之亦然。同样地,使用者原本投资于只能在ARM架构上执行的应用程序,但是后来也希望能够使用针对x86架构开发而未见于ARM架构的应用程序或是优于以ARM架构开发的应用程序,亦会遭遇这样的问题,反之亦然。值得注意的是,虽然小实体或是个人投入的金额较小,然而投资损失比例可能更高。其它类似的投资损失的例子可能出现在各种不同的运算市场中,例如由x86架构转换至ARM架构或是由ARM架构转换至x86架构的情况。最后,投资大量资源来开发新产品的运算装置制造业者,例如OEM厂商,也会陷入此架构选择的困境。若是制造业者基于x86或ARM架构研发制造大量产品,而使用者的需求突然改变,则会导致许多有价值的研发资源的浪费。对于运算装置的制造业者与消费者,能够保有其投资免于受到二种架构中何者胜出的影响是有帮助的,因而有必要提出一种解决方法让系统制造业者发展出可让使用者同时执行x86架构与ARM架构的程序的运算装置。使系统能够执行多个指令集程序的需求由来已久,这些需求主要是因为消费者会投入相当成本在旧硬件上执行的软件程序,而其指令集往往不兼容于新硬件。举例来说,IBM360系统Model30即具有兼容于IBM1401系统的特征,来缓和使用者由1401系统转换至较高效能与改良特征的360系统的痛苦。Model30具有360系统与1401系统的只读储存控制(ReadOnlyStorage,ROS),使其在辅助储存空间预先存入所需信息的情况下能够使用于1401系统。此外,在软件程序以高级语言开发的情况下,新的硬件开发商几乎没有办法控制为旧硬件所编译的软件程序,软件开发商也欠缺动力为新硬件重新编译(re-compile)源码,此情形尤其发生在软件开发商与硬件开发商是不同个体的情况。请参照Siberman与Ebcioglu于Computer,June1993,No.6提出的文章“AnArchitecturalFrameworkforSupportingHeterogeneousInstruction-SetArchitectures'Silberman与Ebcioglu提出的系统内含有执行原生码的原生引擎(nativeengine)与执行目的码的迁移引擎(migrantengine),可依据转译软件将目的码(objectbode)转译为原生码(nativecode)的转译效果,在这两种编码间视需要进行转换,以使既存复杂指令集(CISC)架构(下称基础架构,例如IBMS/390)的软件程序执行于精简指令集(RISC)、超纯量架构(superscalar)与超长指令字(VLIW)架构(下称原生架构)系统,藉以改善软件程序的效能。请参照2006年5月16日公告的美国专利第7,047,394号专利案,VanDykeetal.揭露一处理器,具有用以执行原生精简指令集(Tapestry)的程序指令的执行管线,并利用硬件转译与软件转译的结合,将x86程序指令转译为原生精简指令集的指令。Nakadaetal.提出具有ARM架构的前端管线与FujitsuFR-V(超长指令字)架构的前端管线的异质多线程处理器(heterogeneousSMTprocessor)。ARM架构前端管线用于非规则软件程序(如操作系统),FujitsuFR-V(超长指令字)架构的前端管线用于多媒体应用程序以将一增加的超长指令字队列汇入FR-V超长指令字的后端管线以维持来自前端管线的指令。请参照Buchty与Weib,eds,UniversitatsverlagKarlsruhe于2008年11月在FirstInternationalfforkshoponNewFrontiersinHigh-performanceandHardware-awareComputing(HipHaC,08),LakeComo,Italy,(配合MICRO-41)发表的论文集(ISBN978-3-86644-298-6)的文章“OROCHI:AMultipleInstructionSetSMTProccssor^文中提出的方法用以降低整个系统在异质系统单芯片(SOC)装置,如德州仪器OMAP应用处理器内所占据的空间。此异质系统单芯片装置具有一个ARM处理器核心加上一个或多个协处理器(co-processors)(例如TMS320、多种数字信号处理器、或是多种图形处理单元(GPUs))。这些协处理器并不分享指令执行资源,而只是集成于同一芯片上的不同处理核心。软件转译器(softwaretranslator)、或称软件仿真器(softwareemulator,softwaresimulator)、动态二进制码转译器等,亦被用于支持将软件程序在与此软件程序架构不同的处理器上执行的能力。其中受欢迎的产品如搭配苹果麦金塔(Macintosh)计算机的Motorola68K-to_PowerPC仿真器,以及后续研发出来的PowerPC-to_x86仿真器,Motorola68K-to-PowerPC仿真器可在具有PowerPC处理器的麦金塔计算机上执行68K程序,PowerPC-to-x86仿真器可在具有x86处理器的麦金塔计算机上执行68K程序。位于加州圣塔克拉拉(SantaClara,California)的全美达公司,结合超长指令字(VLIW)的核心硬件与“纯粹软件指令的转译器(亦即程序码转译软件(CodeMorphingSoftware))以动态地编译或仿真(emUlate)X86程序码序列”以执行x86程序码,请参照2011年维基百科针对全美达(Transmeta)的说明<http://en.wikipedia.org/wiki/Transmeta>。另外,参照1998年11月3日由Kellyetal.提出的美国专利第5,832,205号公告案。IBM的DAISY(来自Yorktown的动态体系结构指令集)系统具有超长指令字(VLIW)机器与动态二进制软件转译,可完全通过软件方式仿真旧有体系结构。DAISY具有位于只读存储器内的虚拟机器观测器(VirtualMachineMonitor),以并行处理(parallelize)与储存超长指令字原始码(VLIWprimitives)至未见于旧有系统架构的部分主要存储器内,期能避免这些旧有体系架构的程序码碎片在后续程序被重新编译(re-translation)。DAISY具有高速编译器优化算法(fastcompileroptimizationalgorithms)以提升效能。QEMU是一具有软件动态转译器的机器仿真器(machineemulator)。QEMU可在多种主系统(host),如x86、PowerPC、ARM、SPARC、Alpha与MIPS,模拟多种中央处理器,如x86、PowerPC、ARM与SPARC。请参照QEMU,aFastandPortableDynamicTranslator,FabriceBellard,USENIXAssociation,FREENIXTrack2005USENIXAnnualTechnicalConference,如同其开发者所称“动态转译器对于目标处理器指令执行规律转换,将其转换至主系统指令集。产生的二进制码是储存于一转译快取以利重复取用。..·QEMU[较之其它动态转译器]远为简单,因为它只串接至GNCC编译器于离线(offline)时产生的机器码片段”。同时可参照2009年6月19日Adelaide大学LeeWangHao的学位论文“ARMInstructionSetSimulationonMulti-corex86Hardware”。虽然软件转译的解决方案所提供的处理效能可以满足多个运算需求的子集合的情况,但是不大能够满足多个使用者的情况。静态(static)二进制制转译是另一种具有高效能潜力的技术。不过,二进制制转译技术的使用存在技术上的问题(例如自修改程序码(self-modifyingcode)、只在执行时(run-time)可知的间接分支(indirectbranches)数值)以及商业与法律上的障碍(例如此技术可能需要硬件开发商配合开发散布新程序所需的管道;对原程序散布者存在潜在的授权或是著作权侵害的风险)。ARM指令集架构(ISA)具有条件指令执行的特色。如ARM架构参考手册(ARMArchitectureReferenceManual)第A4-3页所述“大部分ARM指令可被有条件地执行(conditionallyexecuted)。意谓若是APSR中的N、Z、C与V旗标满足指令所特定的条件,他们才会在程序者的模式操作、存储器与协处理器发挥正常的效果。若是这些旗标不满足条件,指令就会如同一个不操作(NOP)机器指令,此指令执行至下一个正常指令,包括对于例外事件(exception)实行的所有相关的确认操作,但不会有其它效果。”条件执行有利于缩小指令码的尺寸,并能通过缩减分支指令的数量以及减少指令错误预测伴随而来的效能减损,来提升效能。因此,如何有效率地执行条件指令,尤其在支持高微处理器频率的情况,是亟待解决的问题。
发明内容本发明的一实施例提供一微处理器。此微处理器具有多个架构条件旗标并且执行一架构指令。此架构指令指示微处理器对于第一与第二源操作数执行一操作以产生一结果,并且只在这些架构条件旗标满足架构指令所特定的一条件的情况下,将此结果写入一目的寄存器。此微处理器具有一硬件指令转译器,接收架构指令并相对应地将此架构指令转译为第一与第二微指令。微处理器并具有一执行管线执行由硬件指令转译器接收的微指令。相应于第一微指令,执行管线对于这些源操作数执行前述操作以产生前述结果。相应于第二微指令,执行管线在这些架构条件旗标满足条件的情况下,将第一微指令所产生的前述结果写入目的寄存器,并且在这些架构条件旗标不满足条件的情况下,将目的寄存器当前的值写入目的寄存器。本发明的另一实施例提供一具有多个架构条件旗标的微处理器。此微处理器执行一架构指令。此架构指令指示微处理器对于一第一源操作数执行一移位操作以产生一第一结果,对于第一结果与一第二操作数执行一第二操作以产生一第二结果,并且只在这些架构条件旗标满足架构指令所特定的一条件下,将前述第二结果写入目的寄存器。微处理器具有一硬件指令转译器接收架构指令并相对应地将架构指令转译为至少第一与第二微指令。微处理器并具有一执行管线执行由硬件指令转译器所接收的微指令。相应于第一微指令,执行管线对第一源操作数执行前述移位操作以产生前述第一结果。相应于第二微指令,执行管线在这些架构条件旗标满足条件的情况下,将第二结果写入目的寄存器,而在这些架构条件旗标不满足条件的情况下,将将目的寄存器当前的值写入目的寄存器。本发明的又一实施例提供用于一微处理器的处理方法。此微处理器具有多个架构条件旗标并执行一架构指令。此架构指令指示微处理器对于第一与第二源操作数执行一操作以产生一结果,并且只在这些架构条件旗标满足架构指令所特定的一条件的情况下,将此结果写入一目的寄存器。此方法包括将架构指令转译为第一与第二微指令,其中,此转译步骤是由微处理器的一硬件指令转译器进行。此方法并包括执行由硬件指令转译器所接收的微指令,此执行步骤是由微处理器的一执行管线进行。执行第一微指令的步骤包括对源操作数执行前述操作以产生前述结果。执行第二微指令的步骤包括,在架构条件旗标满足条件的情况下,将第一微指令产生的结果写入目的寄存器,以及在架构条件旗标不满足条件的情况下,将目的寄存器当前的值写入目的寄存器。本发明的又一实施例提供用于一微处理器的处理方法。此微处理器具有多个架构条件旗标并执行一架构指令。此架构指令指示微处理器对第一源操作数执行一移位操作以产生一第一结果,对第一结果与第二操作数执行一第二操作以产生一第二结果,并且只在架构条件旗标满足架构指令所特定的条件的情况下,将第二结果写入一目的寄存器。此方法包括将架构指令转译为至少第一与第二微指令,其中,此转译步骤是由微处理器的一硬件指令转译器进行。此方法包括执行此由硬件指令转译器接收的微指令,其中,此执行步骤是由微处理器的一执行管线进行。执行第一微指令的步骤包括对第一源操作数执行前述移位操作以产生前述第一结果。执行第二微指令的步骤包括,在架构条件旗标满足条件的情况下,将第二结果写入目的寄存器,而在架构条件旗标不满足条件的情况下,将目的寄存器当前的值写入目的寄存器。本发明的又一实施例提供一计算机程序产品。此计算机程序产品编码于至少一计算机可读取储存媒介以使用于一运算装置。此计算机程序产品具有适用于前述媒介的计算机可读取程序码,以特定一微处理器。此微处理器具有多个架构条件旗标并执行一架构指令。此架构指令指示微处理器对第一与第二源操作数执行一操作以产生一结果,并于架构条件旗标满足架构指令所特定的条件的情况下,将此结果写入一目的寄存器。此计算机可读取程序码具有第一程序码以特定一硬件指令转译器。此硬件指令转译器接收架构指令并相对应地将架构指令转译为第一与第二微指令。此计算机可读取程序码并具有第二程序码以特定一执行管线。此执行管线执行由硬件指令转译器接收的微指令。相应于第一微指令,执行管线对源操作数执行前述操作以产生前述结果。相应于第二微指令,执行管线在架构条件旗标满足条件的情况下,将第一微指令所产生的结果写入目的寄存器,而在架构条件旗标不满足条件的情况下,将目的寄存器当前的值写入目的寄存器。再者,本发明的又一实施例提供一微处理器。此微处理器具有多个架构条件旗标并且执行一架构指令。此架构指令指示微处理器对于第一与第二源操作数执行一操作以产生一结果,并且只在这些架构条件旗标满足架构指令所特定的一条件的情况下,将此结果写入一目的寄存器。此微处理器具有一寄存器,其具有储存空间以储存该些架构条件旗标以及储存一非架构指针,该微处理器还包括一硬件指令转译器,接收架构指令并相对应地将此架构指令转译为第一与第二微指令。微处理器并具有一执行管线执行由硬件指令转译器接收的微指令。相应于第一微指令,执行管线对于这些源操作数执行前述操作以产生前述结果,决定是否该些架构条件旗标满足该条件;以及更新该非架构指针以标示该些架构条件旗标是否满足该条件。相应于第二微指令,执行管线在这些架构条件旗标满足条件的情况下,如果该非架构指针被该第一微指令更新后,则将第一微指令所产生的前述结果更新至目的寄存器,并且标示这些架构条件旗标满足架构指令该条件。又,相应于第二微指令,如果经过该第一微指令更新后的非架构指针指示这些架构条件旗标是不满足该条件的情况下,则将目的寄存器当前的值更新至目的寄存器。本发明的又一实施例提供用于一微处理器的处理方法。此微处理器具有多个架构条件旗标并执行一架构指令。此架构指令指示微处理器对于第一与第二源操作数执行一操作以产生一结果,并且只在这些架构条件旗标满足架构指令所特定的一条件的情况下,将此结果写入一目的寄存器。此方法包括将架构指令转译为第一与第二微指令,其中,此转译步骤是由微处理器的一硬件指令转译器进行。此方法并包括执行由硬件指令转译器所接收的微指令,此执行步骤是由微处理器的一执行管线进行。执行第一微指令的步骤包括对源操作数执行前述操作以产生前述结果,决定是否该些架构条件旗标满足该条件;以及更新一非架构指针以标示该些架构条件旗标是否满足该条件;执行第二微指令的步骤包括如果该非架构指针经过该第一微指令的更新之后,其所标示的该些架构条件旗标满足该条件的情况下,则将更新的结果写入该目的寄存器;以及,如果该非架构指针经过该第一微指令的更新之后,其所标示的该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。本发明的又一实施例提供一计算机程序产品。此计算机程序产品编码于至少一计算机可读取储存媒介以使用于一运算装置。此计算机程序产品具有适用于前述媒介的计算机可读取程序码,以特定一微处理器。此微处理器具有多个架构条件旗标并执行一架构指令。此架构指令指示微处理器对第一与第二源操作数执行一操作以产生一结果,并于架构条件旗标满足架构指令所特定的条件的情况下,将此结果写入一目的寄存器。此计算机可读取程序码具有第一程序码以特定一寄存器,该寄存器具有储存空间以储存该些架构条件旗标以及储存一非架构指针,此计算机可读取程序码并具有第二程序码以特定一硬件指令转译器。此硬件指令转译器接收架构指令并相对应地将架构指令转译为第一与第二微指令。此计算机可读取程序码并具有第三程序码以特定一执行管线。此执行管线执行由硬件指令转译器接收的微指令。相应于第一微指令,执行管线对源操作数执行前述操作以产生前述结果。决定是否该些架构条件旗标满足该条件;以及更新该非架构指针以标示该些架构条件旗标是否满足该条件;相应于第二微指令,如果该非架构指针经过该第一微指令的更新之后,其所标示的在该些架构条件旗标满足该条件的情况下,执行管线将把该第一微指令产生的该结果更新至该目的寄存器;又,相应于第二微指令,如果该非架构指针经过该第一微指令的更新之后,其所标示的在该些架构条件旗标不满足该条件的情况下,执行管线将把该目的寄存器当前的值写入该目的寄存器。又再者,本发明的一实施例提供一微处理器。此微处理器具有多个架构条件旗标并包括一架构进位旗标和其它架构条件旗标,其中该微处理器执行一架构指令。此架构指令指示微处理器对于一第一源操作数执行一移位操作以产生一第一结果,对于第一结果与一第二源操作数执行一第二操作以产生一第二结果,并且只在这些架构条件旗标满足架构指令所特定的一条件下,将前述第二结果写入目的寄存器并更新该条件旗标。微处理器包括一寄存器具有储存空间以储存该些架构条件旗标以及储存一非架构旗标,并且包括一硬件指令转译器接收架构指令并相对应地将架构指令转译为至少第一与第二微指令。微处理器并具有一执行管线执行由硬件指令转译器所接收的微指令。相应于第一微指令,执行管线对第一源操作数执行前述移位操作以产生前述第一结果和一进位旗标值,并且利用该进位旗标值更新该非架构进位旗标。相应于该第二微指令,执行管线对该第一结果和第二源操作数执行该第二操作以产生该第二结果,并依据该第二结果产生新的条件旗标值,再者,在该些架构条件旗标满足该条件的情况下,执行管线还利用该非架构进位旗标值更新该架构进位旗标,并且利用所产生的新的条件旗标值更新至少一个相对应的其它架构条件旗标;以及在该些架构条件旗标不满足该条件的情况下,执行管线则是利用该架构条件旗标当前的值更新该架构条件旗标。本发明的又一实施例提供用于一微处理器的处理方法。此微处理器具有多个架构条件旗标并包括一架构进位旗标和一其它架构条件旗标并执行一架构指令。此架构指令指示微处理器对第一源操作数执行一移位操作以产生一第一结果,对第一结果与第二源操作数执行一第二操作以产生一第二结果,并且只在架构条件旗标满足架构指令所特定的条件的情况下,将第二结果写入一目的寄存器和更新该些条件旗标。此方法包括将架构指令转译为第一与第二微指令,其中,此转译步骤是由微处理器的一硬件指令转译器进行。此方法包括执行此由硬件指令转译器接收的第一和第二微指令,其中,此执行步骤是由微处理器的一执行管线进行。执行第一微指令的步骤包括对第一源操作数执行前述移位操作以产生前述第一结果和一进位旗标值,并且利用该进位旗标值更新该非架构进位旗标。执行第二微指令的步骤包括对该第一结果和第二源操作数执行该第二操作以产生该第二结果,并依据该第二结果产生新的条件旗标值;此外,在该些架构条件旗标满足该条件的情况下,利用该非架构进位旗标值更新该架构进位旗标,并且利用所产生的新的条件旗标值更新至少一个相对应的其它架构条件旗标;以及在该些架构条件旗标不满足该条件的情况下,利用该架构条件旗标当前的值更新该架构条件旗标。本发明的又一实施例提供一计算机程序产品。此计算机程序产品编码于至少一计算机可读取储存媒介以使用于一运算装置。此计算机程序产品具有适用于前述媒介的计算机可读取程序码,以特定一微处理器。此微处理器具有多个架构条件旗标并且包括一架构进位旗标以及其它架构条件旗标,其中微处理器执行一架构指令。此架构指令指示微处理器对第一源操作数执行一移位操作以产生一第一结果,对第一结果与第二源操作数执行一第二操作以产生一第二结果,并且只在架构条件旗标满足架构指令所特定的条件的情况下,将第二结果写入一目的寄存器和更新该些条件旗标。此计算机可读取程序码具有第一程序码以特定一寄存器,该寄存器具有储存空间以储存该些架构条件旗标以及储存一非架构指针,此计算机可读取程序码并具有第二程序码以特定一硬件指令转译器。此硬件指令转译器接收架构指令并相对应地将架构指令转译为第一与第二微指令。此计算机可读取程序码并具有第三程序码以特定一执行管线。此执行管线执行由硬件指令转译器接收的微指令。相应于第一微指令,执行管线对第一源操作数执行移位操作,以产生第一结果和一进位旗标值,并利用该进位旗标值更新该非架构进位旗标。相应于第二微指令,执行管线对第一结果和第二源操作数执行该第二操作以产生第二结果,并依据该第二结果产生新的条件旗标值。此外,相应于第二微指令,在该些架构条件旗标满足该条件的情况下,执行管路还利用该非架构进位旗标值更新该架构进位旗标,并且利用所产生的新的条件旗标值更新至少一个相对应的其它架构条件旗标;然而在该些架构条件旗标不满足该条件的情况下,执行管路则是利用该架构条件旗标当前的值更新该架构条件旗标。关于本发明的优点与精神可以通过以下的发明详述及所附图式得到进一步的了解。图I是本发明执行x86程序集架构与ARM程序集架构机器语言程序的微处理器一实施例的方块图。图2是一方块图,详细显示图I的硬件指令转译器。图3是一方块图,详细显示图2的指令格式化程序(instructionformatter)。图4是一方块图,详细显示图I的执行管线。图5是一方块图,详细显示图I的寄存器文件。图6A和图6B是一流程图,显示图I的微处理器的操作步骤。图7是本发明一双核心微处理器的方块图。图8是本发明执行X86ISA与ARMISA机器语言程序的微处理器另一实施例的方块图。图9是一方块图,详细显示部分图I的微处理器。图IOA和图IOB是一流程图,显示图I的硬件指令转译器转译条件ALU指令的操作步骤。图11是一流程图,显示图4的执行单元执行一移位微指令的操作步骤。图12A和图12B是一流程图,显示图4的执行单元执行一条件ALU微指令的操作步骤。图13是一流程图,显示图4的执行单元执行一条件移动微指令(conditionalmovemicroinstruction)的操作步骤。图14至20是方块图,显示图I的执行管线112执行依据图10A和图10B的转译操作所转译的各种形式的条件ALU指令的操作步骤。图21A和图21B是一流程图,显示图I的硬件指令转译器转译条件ALU指令,以指出(specify)来源寄存器(sourceregister)的其中之一与目的寄存器为同一的操作步骤。图22至28是方块图,显示图I的执行管线112执行依据图21的转译操作所转译的各种形式的条件ALU指令的操作步骤。[主要元件标号说明]微处理器(处理核心)100指令快取102硬件指令转译器104寄存器文件106存储器子系统108执行管线112指令撷取单元与分支预测器114ARM程序计数器(PC)寄存器116x86指令指针(IP)寄存器118配置寄存器(configurationregister)122ISA指令124微指令126结果128指令模式指针(instructionmodeindicator)132撷取地址134环境模式指针(environmentmodeindicator)136指令格式化程序202简单指令转译器(SIT)204复杂指令转译器(CIT)206多工器(mux)212x86简单指令转译器222ARM简单指令转译器224微程序计数器(micro-programcounter,micro-PC)232微码只读存储器234微程序器(microsequencer)236指令间接寄存器(instructionindirectionregister,HR)235微转译器(microtranslator)237格式化ISA指令242实行微指令(implementingmicroinstructions)244实行微指令246只读存储器指令247选择输248微码地址252只读存储器地址254ISA指令信息255预解码器(pre-decoder)302指令字节队列(IBQ)304长度解码器(lengthdecoders)与链波逻辑门(ripplelogic)306多工器队列(muxqueue,MQ)308多工器312格式化指令队列(formattedinstructionqueue,FIQ)314ARM指令集状态322微指令队列401寄存器配置表(registerallocationtable,RAT)402指令调度器(instructiondispatcher)404保留站(reservationstation)406指令发送单兀(instructionissueunit)408整数/分支(integer/branch)单兀412媒体单兀(mediaunit)414加载/储存(load/store)单元416浮点(floatingpoint)单兀418重排缓冲器(reorderbuffer,ROB)422执行单元424ARM特定寄存器502x86特定寄存器504共享寄存器506双核心微处理器700微指令快取892条件旗标寄存器926多工器922旗标总线928条件旗标数值928/924ISA条件旗标902条件满足(SAT)位904预移位进位(PSC)位906使用移位进位(USE)位908具体实施例方式名词定义指令集,是定义二进制制编码值(binaryencodedvalue)的集合(即机器语言指令)与微处理器所执行的操作间的对应关系(mapping)。机器语言程序基本上是以二进制制进行编码,不过亦可使用其它进位制的系统,如部分早期IBM计算机的机器语言程序,虽然最终亦是以电压高低呈现二进制值的物理信号来表现,不过却是以十进制制进行编码。机器语言指令指示微处理器执行的操作如将寄存器I内的操作数与寄存器2内的操作数相加并将结果写入寄存器3、将存储器地址0x12345678的操作数减掉指令所特定的立即操作数(immediateoperand)并将结果写入寄存器5、依据寄存器7所特定的位数移动寄存器6内的数值、若是零旗标被设定,在指令后方分割出36个字节给这个指令、将存储器地址OxABCDOOOO的数值加载寄存器8。因此,指令集是定义各个机器语言指令使微处理器执行所欲执行的操作的二进制编码值。需要了解的是,指令集定义二进制值与微处理器操作间的对应关系,并不意味着单一个二进制值就会对应至单一个微处理器操作。具体来说,在部分指令集中,多个二进制值可能会对应至同一个微处理器操作。指令集架构(ISA),从微处理器家族的脉络来看,包含⑴指令集;(2)指令集的指令所能存取的资源集(例如存储器寻址所需的寄存器与模式);以及(3)微处理器响应指令集的指令执行所产生的例外事件集(setofexceptions)(例如除以零、分页错误(pagefault)、存储器保护违反等)。程序者,如组译器(assembler)与编译器(compiler)的撰写者,想要作出机器语言程序在一微处理器家族执行,就需要此微处理器家族的ISA定义。微处理器家族的制造者通常会将ISA定义于程序员操作手册。举例来说,2009年3月公布的Intel64与IA-32架构软件开发者手册(Intel64andIA_32ArchitecturesSoftwareDeveloper’sManual)即定义Intel64与IA-32处理器架构的ISA。此软件开发者手册包含有五个章节,第一章是基本架构;第二A章是指令集参考A至M;第二B章是指令集参考N至Z;第二A章是系统编程指南;第二B章是系统编程指南第二部分。此手册系列为参考文件。此种处理器架构通常被称为x86架构,本文中则是以x86、x86ISA、x86ISA家族、x86家族或是相似用语来说明。在另一个例子中,2010年公布的ARM架构参考手册,ARMv7-A与ARMv7-R版本Erratamarkup,定义ARM处理器架构的ISA。此参考手册系列为参考文件。此ARM处理器架构的ISA在此亦被称为ARM、ARMISA、ARMISA家族、ARM家族或是相似用语。其它众所周知的ISA家族还有IBMSystem/360/370/390与z/Architecture>DECVAX、Motorola68k、MIPS、SPARC、PowerPC与DECAlpha等等。ISA的定义会涵盖处理器家族,因为处理器家族的发展中,制造者会通过在指令集中增加新指令、在寄存器组中增加新的寄存器等方式来改进原始处理器的ISA。举例来说,随着x86程序集架构的发展,其于IntelPentiumIII处理器家族导入一组128位的多媒体扩展指令集(MultiMediaextension,MMX)寄存器作为单指令多重数据流扩展(SSE)指令集的一部分,而虽然X86ISA机器语言程序并不使用单指令多重数据流扩展指令集的XMM寄存器,X86ISA机器语言程序已经开发来利用XMM寄存器以提升效能。此外,其它制造商亦设计且制造出可执行x86ISA机器语言程序的微处理器。例如,超微半导体(AdvancedMicroDevices,AMD)与威盛电子(VIATechnologies)即在x86ISA增加新技术特征,如超微半导体的3DN0W!单指令多重数据流(SMD)向量(vector)处理指令以及威盛电子的Padlock安全引擎随机数产生器(randomnumbergenerator)与先进解码引擎(advancedcryptographyengine)的技术,前述技术都是采用x86ISA的机器语言程序,但却非由现有的Intel微处理器实现。以另一个实例来说明,ARMISA原本定义ARM指令集状态(state)具有4字节的指令。然而,随着ARMISA的发展而增加其它指令集状态,如具有2字节指令以提升编码密度的Thumb指令集状态以及用以加速Java字节码(bytecode)程序的Jazelle指令集状态。ARMISA机器语言程序已被发展来使用部分或所有其它ARMISA指令集状态,即使ARMISA机器语言程序产生之初并非采用其它ARMISA指令集状态。指令集架构(ISA)机器语言程序,包含ISA指令序列,即ISA指令集对应至程序者要程序执行的操作序列的二进制编码值序列。因此,X86ISA机器语言程序包含X86ISA指令序列,ARMISA机器语言程序则包含ARMISA指令序列。机器语言程序指令是存放于存储器内,且由微处理器撷取并执行。硬件指令转译器,包含多个晶体管的配置,用以接收ISA机器语言指令(例如X86ISA或是ARMISA机器语言指令)作为输入,并相对应地输出一个或多个微指令至微处理器的执行管线(pipeline)。执行管线执行微指令的执行结果是由ISA指令所定义。因此,执行管线通过对这些微指令的集体执行(collectiveexecution)来“实现(implement)”ISA指令。也就是说,执行管线通过对于硬件指令转译器输出的实行微指令(implementingmicroinstruction)的集体执行,实现ISA指令所特定的操作于ISA指令所特定的输入,以产生此ISA指令定义的结果。因此,硬件指令转译器可视为是将ISA指令“转译(translate)”为一个或多个微指令。本实施例所描述的微处理器具有硬件指令转译器以将X86ISA指令与ARMISA指令转译为微指令。不过,需要理解的是,硬件指令转译器并非必然可对x86程序员操作手册或是ARM程序员操作手册所定义的整个指令集进行转译,而往往只能转译这些指令中一个子集合(subset),如同绝大多数x86ISA与ARMISA处理器只支持其相对应的程序员操作手册所定义的一个指令子集合。具体来说,x86程序员操作手册定义而由硬件指令转译器转译的指令子集合,不必然就对应至所有既有的X86ISA处理器,ARM程序员操作手册定义而由硬件指令转译器转译的指令子集合,不必然就对应至所有既有的ARMISA处理器。执行管线(pipeline),是一多层序列(sequenceofstages)。此多层序列的各层分别具有硬件逻辑与一硬件寄存器。硬件寄存器抓取硬件逻辑的输出信号,并依据微处理器的时钟信号,将此输出信号提供至多层序列的下一层。执行管线可以具有多个多层序列,例多重执行管线(multiplepipelines)。执行管线接收微指令作为输入信号,并相应地执行微指令所特定的操作以输出执行结果。微指令所特定,而由执行管线的硬件逻辑所执行的操作包括但不限于算数(arithmetic)、逻辑(logical)、存储器加载/储存(memoryload/store)、比较(compare)、测试(test)、与分支解析(branchresolution),对进行操作的数据格式包括但不限于整数、浮点数、字母、二进编码十进数(BCD)、与紧缩格式(packcdformat)。执行管线执行微指令以实现ISA指令(如x86与ARM),藉以产生ISA指令所定义的结果。执行管线不同于硬件指令转译器。具体来说,硬件指令转译器产生微指令,执行管线则是执行这些指令,但不产生这些微指令。指令快取,是微处理器内的一个随机存取存储装置,微处理器将ISA机器语言程序的指令(例如X86ISA与ARMISA的机器语言指令)放置其中。这些指令是撷取自系统存储器并由微处理器依据ISA机器语言程序的执行流程(coursc)来执行。具体来说,ISA定义一指令地址寄存器以抓取下一个待执行的ISA指令的存储器地址(举例来说,在X86ISA被定义为指令指针(instructionpointer,IP)而在ARMISA被定义为程序计数器(programcounter,PC)),而在微处理器执行机器语言程序以控制程序流程时,微处理器会更新指令地址寄存器的内容。ISA指令被快取来供后续撷取之用。依据指令寄存器的内容抓取指令快取所呈现的ISA指令的存储器地址,即可更快速地取得ISA指令,而非在机器语言程序的下一次流程中由系统存储器存取。尤其是,此程序是基于指令地址寄存器(如指令指针(IP)或是程序计数器(PC))的存储器地址向指令快取取得数据,而非仅仅基于一加载或储存指令所特定的存储器地址。因此,将指令集架构的指令视为数据(例如采用软件转译的系统的硬件部分所呈现的数据)来抓取的专用数据快取,仅是基于一加载/储存地址来存取,而非基于指令地址寄存器的数值,就不是此处所称的指令快取。此外,会取得指令与数据的混合式快取,是基于指令地址寄存器的数值以及基于加载/储存地址,而非仅仅基于加载/储存地址,在本说明内容则被涵盖在指令快取的定义内。在本说明内容中,加载(load)指令是指将数据由存储器读取至微处理器的指令,储存(store)指令是指将数据由微处理器写入存储器的指令。微指令集,是微处理器的执行管线能够执行的指令(微指令)的集合。实施例说明本发明的实施例揭露的微处理器可通过硬件将其相对应的X86ISA与ARMISA指令转译为由微处理器的执行管线直接执行的微指令,以达到可在X86ISA与ARMISA机器语言程序执行的目的。此微指令是由微处理器的微架构的微指令集所定义,并且会因采用X86ISA与ARMISA而有不同。由于本文所述的微处理器需要执行x86与ARM机器语言程序,微处理器的硬件指令转译器会将x86与ARM指令转译为微指令,并将这些微指令提供至微处理器的执行管线。微处理器执行这些微指令以实现前述x86与ARM指令。由于这些实行微指令(implementingmicroinstruction)是直接由硬件指令转译器提供至执行管线来执行,而不同于采用软件转译器的系统需于执行管线执行指令前,预先储存本机(host)指令至存储器,因此,前揭微处理器具有潜力能够以较快的执行速度执行x86与ARM机器语言程序。图I是一方块图显示本发明能够执行X86ISA与ARMISA的机器语言程序的微处理器100的一实施例。此微处理器100具有一指令快取102;—硬件指令转译器104,用以由指令快取102接收X86ISA指令与ARMISA指令124并将其转译为微指令126执行管线112,执行由硬件指令转译器104接收的微指令126以产生微指令结果128,该结果是以操作数的型式回传至执行管线112;—寄存器文件106与一存储器子系统108,分别提供操作数至执行管线112并由执行管线112接收微指令结果128;—指令撷取单元与分支预测器114,提供一撷取地址134至指令快取102;-ARMISA定义的程序计数器(PC)寄存器116与一X86ISA定义的指令指针(IP)寄存器118,依据微指令结果128进行更新,并且,其内容被提供至指令撷取单元与分支预测器114;以及多个配置寄存器(configurationregister)122,提供一指令模式指针(instructionmodeindicator)132与一环境模式指针(environmentmodeindicator)136至硬件指令转译器104与指令掘取单兀与分支预测器114,并且是基于微指令结果128进行更新。由于微处理器100可执行x86ISA与ARMISA机器语言指令,微处理器100依据程序流程由系统存储器(未图标)撷取指令至微处理器100。微处理器100存取最近撷取的X86ISA与ARMISA的机器语言指令至指令快取102。指令撷取单元114依据由系统存储器撷取的x86或ARM指令字节区段,产生一撷取地址134。若是命中指令快取102,指令快取102将位于撷取地址134的x86或ARM指令字节区段提供至硬件指令转译器104,否则就是由系统存储器中撷取指令集架构的指令124。指令撷取单元114基于ARM程序计数器(PC)116与x86指令指针(IP)118的值产生撷取地址134。具体来说,指令撷取单元114会在一撷取地址寄存器中维持一撷取地址。任何时候指令撷取单元114撷取到新的ISA指令字节区段,它就会依据此区段的尺寸更新撷取地址,并依据既有方式依序进行,直到出现一控制流程事件(controlflowevent)。控制流程事件包含例外事件(exception)的产生、分支预测器114的预测显示撷取区段内有一被占用的分支、以及执行管线112响应一非分支预测器114所预测的被占用执行分支指令而对ARM程序计数器116与x86指令指针118的更新。指令撷取单元114将撷取地址相应地更新为例外处理程序地址(exceptionhandleraddress)、预测目标地址(predictedtargetaddress)或是执行目标地址(executedtargetaddress)以响应一控制流程事件。在一实施例中,指令快取102是一混合快取,以存取ISA指令124与数据。值得注意的是,在此混合快取的实施例中,虽然混合快取可基于一加载/储存地址将数据写入快取或由快取读取数据,在微处理器100是由混合快取撷取指令集架构的指令124的情况下,混合快取是基于ARM程序计数器116与x86指令指针118的数值来存取,而非基于加载/储存地址。指令快取102可以为一随机存取存储器(RAM)装置。指令模式指针132是一状态指示微处理器100当前是否正在撷取(fetching)、格式化(formatting)/解码(decoding)、以及将x86ISA或ARMISA指令124转译为微指令126。此外,执行管线112与存储器子系统108接收此指令模式指针132,此指令模式指针132会影响微指令126的执行方式,尽管只是微指令集内的一个小集合。x86指令指针寄存器118抓取下一个待执行的X86ISA指令124的存储器地址,ARM程序计数器寄存器116抓取下一个待执行的ARMISA指令124的存储器地址。为了控制程序流程,微处理器100在其执行x86与ARM机器语言程序时,分别更新x86指令指针寄存器118与ARM程序计数器寄存器116,至下一个指令、分支指令的目标地址或是例外处理程序地址。在微处理器100执行x86与ARMISA的机器语言程序的指令时,微处理器100由系统存储器撷取机器语言程序的指令集架构的指令,并将其置入指令快取102以取代最近较不被撷取与执行的指令。此指令撷取单元114基于x86指令指针寄存器118或是ARM程序计数器寄存器116的数值,并依据指令模式指针132指示微处理器100正在撷取的ISA指令124是x86或是ARM模式来产生撷取地址134。在一实施例中,x86指令指针寄存器118与ARM程序计数器寄存器116是一共享的硬件指令地址寄存器,提供其内容至指令撷取单元与分支预测器114并由执行管线112依据x86或ARM的语意(semantics),并基于指令模式指针132指示的模式是x86或ARM,来进行更新。环境模式指针136是一状态指示微处理器100是使用x86或ARMISA的语意于此微处理器100操作的多种执行环境,例如虚拟存储器(virtualmemory)、例外事件(exception)、快取控制(cachecontrol)、与全域执行时间保护(globalexecution-timeprotection)。因此,指令模式指针132与环境模式指针136共同产生多个执行模式。在第一种模式中,指令模式指针132与环境模式指针136都指向X86ISA,微处理器100是作为一般的X86ISA处理器。在第二种模式中,指令模式指针132与环境模式指针136都指向ARMISA,微处理器100是作为一般的ARMISA处理器。在第三种模式中,指令模式指针132指向X86ISA,不过环境模式指针136则是指向ARMISA,此模式有利于在ARM操作系统或是超管理器(hypervisor)的控制下执行使用者模式x86机器语言程序;相反地,在第四种模式中,指令模式指针132是指向ARMISA,不过环境模式指针136则是指向x86ISA,此模式有利于在x86操作系统或超管理器的控制下执行使用者模式ARM机器语言程序。指令模式指针132与环境模式指针136的数值在重置(reset)之初就已确定。在一实施例中,此初始值被视为微码常数(microcodeconstants)进行编码,不过可通过熔断配置熔丝(configurationfuse)与/或使用微码补丁(microcodepatch)进行修改。在另一实施例中,此初始值则是由一外部输入提供至微处理器100。在一实施例中,环境模式指针136只在由一重置至ARM(reset-to-ARM)指令124或是一重置至x86(reset-to_x86)指令124执行重置后才会改变(请参照下述图6);亦即,在微处理器100正常运作而未由一般重置、重置至x86或重置至ARM指令124执行重置时,环境模式指针136并不会改变。硬件指令转译器104接收X86与ARMISA的机器语言指令124作为输入信号,相应地提供一个或多个微指令126作为输出信号以实现x86或ARMISA指令124。执行管线112执行前揭一个或多个微指令126,其集体执行的结果实现x86或ARMISA指令124。也就是说,这些微指令126的集体执行可在x86或ARMISA指令124所特定的输入端执行x86或是ARMISA指令124所特定的操作,以产生x86或ARMISA指令124所定义的结果。因此,硬件指令转译器104将x86或ARMISA指令124转译为一个或多个微指令126。硬件指令转译器104包含一组晶体管,以一预设方式进行配置来将X86ISA与ARMISA的机器语言指令124转译为微指令126。硬件指令转译器104并具有布尔逻辑(Booleanlogic)门以产生微指令126(如图2所示的简单指令转译器204)。在一实施例中,硬件指令转译器104并具有一微码只读存储器(如图2中复杂指令转译器206的元件234)。硬件指令转译器104利用此微码只读存储器,并依据复杂ISA指令124产生微指令126。这在图2的说明内容会有进一步的说明。就一较佳实施例而言,硬件指令转译器104不必然要能转译x86程序员操作手册或是ARM程序员操作手册所定义的整个ISA指令124集,而只要能够转译这些指令的一个子集合(subset)即可。具体来说,由x86程序员操作手册定义且由硬件指令转译器104转译的ISA指令124的子集合,并不必然对应至任何Intel开发的既有x86ISA处理器,而由ARM程序员操作手册定义且由硬件指令转译器104转译的ISA指令124的子集合并不必然对应至任何由ARMLtd.开发的既有的ISA处理器。前揭一个或多个用以实现x86或ARMISA指令124的微指令126,可由硬件指令转译器104—次全部提供至执行管线112或是依序提供。本实施例的优点在于,硬件指令转译器104可将实行微指令126直接提供至执行管线112执行,而不需要将这些微指令126储存于设置其间的存储器。在图I的微处理器100的实施例中,当微处理器100执行x86或是ARM机器语言程序时,微处理器100每一次执行x86或是ARM指令124,硬件指令转译器104就会将x86或ARM机器语言指令124转译为一个或多个微指令126。不过,图8的实施例则是利用一微指令快取以避免微处理器100每次执行x86或ARMISA指令124所会遭遇到的重复转译的问题。硬件指令转译器104的实施例在图2会有更详细的说明。执行管线112执行由硬件指令转译器104提供的微指令126。基本上,执行管线112是一通用高速微指令处理器。虽然本文所描述的功能是由具有X86/ARM特定特征的执行管线112执行,不过,大多数X86/ARM特定功能其实是由此微处理器100的其它部分,如硬件指令转译器104,来执行。在一实施例中,执行管线112执行由硬件指令转译器104接收到的微指令126的寄存器重命名(registerrenaming)、超纯量技术(superscalarissue)、与脱序执行(out-of-orderexecution)。执行管线112在图4会有更详细的说明。微处理器100的微架构包含(I)微指令集;(2)微指令集的微指令126所能取用的资源集,此资源集是x86与ARMISA的资源的超集(superset);以及(3)微处理器100相应于微指令126的执行所定义的微例外事件(micro-exception)集,此微例外事件集是X86ISA与ARMISA的例外事件的超集。此微架构不同于x86ISA与ARMISA。具体来说,此微指令集在许多面向是不同于X86ISA与ARMISA的指令集。第一点,微指令集的微指令指示执行管线112执行的操作与X86ISA与ARMISA的指令集的指令指示微处理器执行的操作并非一对一对应。虽然其中许多操作相同,不过,仍有一些微指令集特定的操作并非X86ISA与/或ARMISA指令集所特定。相反地,有一些x86ISA与/或ARMISA指令集特定的操作并非微指令集所特定。第二点,微指令集的微指令是以不同于X86ISA与ARMISA指令集的指令的编码方式进行编码。也就是说,虽然有许多相同的操作(如相加(add)、偏移(shift)、加载(load)、返回(return))在微指令集以及x86与ARMISA指令集中都有特定,微指令集与x86或ARMISA指令集的二进制操作码值对应表(binaryopcodevalue-to-operationmapping)并没有一对一对应。微指令集与x86或ARMISA指令集的二进制操作码值对应表相同通常是巧合,其间仍不具有一对一的对应关系。第三点,微指令集的微指令的字段(field)与x86或是ARMISA指令集的指令的字段也不是一对一对应。整体而言,微处理器100可执行X86ISA与ARMISA机器语言程序指令。然而,执行管线112本身无法执行x86或ARMISA机器语言指令;而是执行由x86ISA与ARMISA指令转译成的微处理器100微架构的微指令集的微指令126。然而,虽然此微架构与X86ISA以及ARMISA不同,本发明亦提出其它实施例将微指令集与其它微架构特定的资源是开放给使用者。在这些实施例中,此微架构可有效地作为在X86ISA与ARMISA外的一个具有微处理器所能执行的机器语言程序的第三ISA。下表(表I)描述本发明微处理器100的一实施例的微指令集的微指令126的一些字段。权利要求1.ー种微处理器,具有多个架构条件旗标且执行ー架构指令,只有在该架构条件旗标满足该架构指令所特定的一条件,该架构指令指示该微处理器对第一与第二源操作数执行一操作以产生一结果并将该结果写入一目的寄存器,该微处理器包括一硬件指令转译器,接收该架构指令并相对应地转译该架构指令为第一与第二微指令;以及ー执行管线,执行由该硬件指令转译器所接收到的该些微指令;其中,相应于该第一微指令,该执行管线对该些源操作数执行该操作以产生该结果;其中,相应于该第二微指令,该执行管线在该些架构条件旗标满足该条件的情况下,将由该第一微指令所产生的该结果写入该目的寄存器;以及在该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。2.根据权利要求I所述的微处理器,还包括一寄存器文件,将该些源操作数提供给该执行管线以执行该些微指令,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数;其中,该架构指令特定该目的寄存器与该寄存器文件中提供该第一与第二源操作数的寄存器,是该寄存器文件中的不同的寄存器。3.根据权利要求I所述的微处理器,还包括其中,该架构指令指示该微处理器勿依据该操作的该结果更新该些架构条件旗标;其中,相应于该第二微指令,该执行管线确认该些架构条件旗标是否满足该条件。4.根据权利要求I所述的微处理器,还包括其中,该架构指令指示该微处理器只在该些架构条件旗标满足该条件的情况下,依据该操作的该结果更新该架构条件旗标;其中,相应于该第一微指令,该执行管线确认该些架构条件旗标是否满足该条件;以及依据确认結果,向该第二微指令提供一指针。5.根据权利要求4所述的微处理器,还包括ー寄存器,具有储存空间以储存该些架构条件旗标以及该指针。6.根据权利要求5所述的微处理器,其中,该寄存器是被该微处理器的一重命名単元重命名。7.根据权利要求I所述的微处理器,其中,该架构指令是ーARMISA条件执行指令。8.—种微处理器,具有多个架构条件旗标,其中该微处理器执行ー架构指令,该架构指令指示该微处理器对一第一源操作数执行ー移位操作以产生一第一结果,对该第一结果与一第二源操作数执行ー第二操作以产生一第二结果,并且只在该些架构条件旗标满足该架构指令特定的一条件下,将该第二结果写入一目的寄存器,该微处理器包括一硬件指令转译器,接收该架构指令并相对应地转译该架构指令为至少第一与第二微指令;以及ー执行管线,执行由该硬件指令转译器接收的该些微指令;其中,相应于该第一微指令,该执行管线对该第一源操作数执行该移位操作以产生该第一结果;其中,相应于该第二微指令,该执行管线在该些架构条件旗标满足该条件的情况下,将该第二结果写入该目的寄存器;以及在该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。9.根据权利要求8所述的微处理器,还包括一寄存器文件,将该些源操作数提供给该执行管线以执行该些微指令,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数;其中,该架构指令特定该目的寄存器与该寄存器文件中提供该第一源操作数的寄存器为该寄存器文件的同一个寄存器;其中,相应于该第二微指令,该执行管线对该第一结果与该第二操作数执行该第二操作以产生该第二結果。10.根据权利要求8所述的微处理器,还包括其中,相应于该第二微指令,该执行管线确认该些架构条件旗标是否满足该条件。11.根据权利要求8所述的微处理器,还包括其中,该架构指令指示该微处理器只在该些架构条件旗标满足该条件的情况下,更新该些架构条件旗标;其中,相应于该第二微指令,该执行管线若是该些架构条件旗标不满足该条件以当前的该些架构条件旗标的值,更新该些架构条件旗标;以及若是该些架构条件旗标满足该条件依据该第二结果更新至少部分该些架构条件旗标。12.根据权利要求11所述的微处理器,还包括其中,相应于该第二微指令,该执行管线若是该些架构条件旗标满足该条件若是该第二操作是ー进位旗标更新操作依据该第二结果更新一架构进位旗标;以及若是该第二操作是ー非进位旗标更新操作依据该第一结果更新该架构进位旗标。13.根据权利要求8所述的微处理器,还包括一寄存器文件,将该些源操作数提供给该执行管线以执行该些微指令,其中,该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数;其中,该架构指令特定该目的寄存器与该寄存器文件中提供该第一与第二源操作数的寄存器,是该寄存器文件中的不同的寄存器;其中,该硬件指令转译器还将该架构指令转译为一第三微指令插入该第一与第二微指令间;其中,相应于该第三微指令,该执行管线对该第一结果与该第二操作数执行该第二操作,以产生该第二結果。14.根据权利要求13所述的微处理器,还包括其中,该架构指令指示该微处理器只在该些架构条件旗标满足该条件的情况下,更新该些架构条件旗标;其中,相应于该第三微指令,该执行管线若是该些架构条件旗标不满足该条件以当前的该些架构条件旗标的值,更新该些架构条件旗标;以及若是该些架构条件旗标满足该条件依据该第二结果更新至少部分该些架构条件旗标。15.根据权利要求14所述的微处理器,还包括其中,相应于该第三微指令,该执行管线若是该些架构条件旗标满足该条件若是该第二操作是ー进位旗标更新操作依据该第二结果更新一架构进位旗标;以及若是该第二操作是ー非进位旗标更新操作依据该第一结果更新该架构进位旗标。16.根据权利要求8所述的微处理器,其中,该架构指令是ーARMISA条件执行指令。17.—种微处理器的处理方法,该微处理器具有多个架构条件旗标,以执行一架构指令,该架构指令指示该微处理器执行对第一与第二源操作数执行ー操作以产生ー结果,并且只在该些架构条件旗标满足该架构指令特定的一条件的情况下,将该结果写入一目的寄存器,该方法包括将该架构指令转译为第一与第二微指令,其中,该转译步骤是由该微处理器的一硬件指令转译器进行;以及执行由该硬件指令转译器接收的该些微指令,其中该执行步骤是由该微处理器的ー执行管线进行;其中,执行该第一微指令的步骤包括对该些源操作数执行该操作以产生该结果;其中,执行该第二微指令的步骤包括在该些架构条件旗标满足该条件的情况下,将由该第一微指令产生的该结果写入该目的寄存器;以及在该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。18.根据权利要求17所述的方法,其中,该微处理器具有一寄存器文件,该寄存器文件将该些源操作数提供给该执行管线以执行该些微指令,其中,该寄存器文件被设定为可同时为该些微指令提供至多ニ个源操作数;其中,该架构指令特定该目的寄存器与该寄存器文件中提供该第一与第二源操作数的寄存器,是该寄存器文件中的不同的寄存器。19.根据权利要求17所述的方法,其中,该架构指令指示该微处理器勿依据该操作的该结果更新该些架构条件旗标,该方法还包括其中,执行该第二微指令的步骤包括确认该些架构条件旗标是否满足该条件。20.根据权利要求17所述的方法,其中,该架构指令指示该微处理器只在该些架构条件旗标满足该条件的情况下,依据该操作的该结果更新该些架构条件旗标,该方法还包括其中,执行该第一微指令的步骤包括确认该些架构条件旗标是否满足该条件;以及依据确认結果,向该第二微指令提供一指针。21.根据权利要求20所述的方法,其中,该微处理器具有ー寄存器,该寄存器具有储存空间以储存该些架构条件旗标以及该指针。22.根据权利要求21所述的方法,还包括对该寄存器重命名,其中该重命名步骤是由该微处理器的一重命名单元进行。23.根据权利要求17所述的方法,其中该架构指令是ーARMISA条件执行指令。24.—种微处理器的处理方法,该微处理器具有多个架构条件旗标,以执行一架构指令,该架构指令指示该微处理器对一第一源操作数执行ー移位操作以产生一第一结果,对该第一结果与一第二操作数执行ー第二操作,以产生一第二結果,并且只在该些架构条件旗标满足该架构指令特定的一条件的情况下,将该第二结果写入一目的寄存器,该方法包括将该架构指令转译为至少第一与第二微指令,其中,该转译步骤是由该微处理器的一硬件指令转译器进行;以及执行由该硬件指令转译器接收的该些微指令,其中,该执行步骤是由该微处理器的一执行管线进行;其中,执行该第一微指令的步骤包括对该第一源操作数执行该移位操作以产生该第一结果;其中,执行该第二微指令的步骤包括在该些架构条件旗标满足该条件的情况下,将该第二结果写入该目的寄存器;以及在该些架构条件旗标满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。25.根据权利要求24所述的方法,其中,该微处理器具有一寄存器文件,该寄存器文件将该些源操作数提供给该执行管线以执行该些微指令,其中,该寄存器文件被设定为可同时为该些微指令提供至多ニ个源操作数;其中,该架构指令特定该目的寄存器与该寄存器文件中提供该第一源操作数的寄存器为该寄存器文件的同一个寄存器;其中,执行该第二微指令的步骤包括对该第一结果与该第二操作数执行该第二操作,以产生该第二結果。26.根据权利要求24所述的方法,还包括其中,执行该第二微指令的步骤包括确认该些架构条件旗标是否满足该条件。27.根据权利要求26所述的方法,其中,该架构指令指示该微处理器只在该些架构条件旗标满足该条件的情况下,更新该些架构条件旗标,该方法还包括其中,执行该第二微指令的步骤包括若是该些架构条件旗标不满足该条件依据该些架构条件旗标当前的值,更新该些架构条件旗标;以及若是该些架构条件旗标满足该条件依据该第二结果更新至少部分该些架构条件旗标。28.根据权利要求27所述的方法,还包括其中,执行该第二微指令的步骤包括若是该些架构条件旗标满足该条件若是该第二操作是ー进位旗标更新操作依据该第二结果更新一架构进位旗标;以及若是该第二操作是ー非进位旗标更新操作依据该第一结果更新该架构进位旗标。29.根据权利要求24所述的方法,其中,该微处理器具有一寄存器文件,该寄存器文件将该些源操作数提供给该执行管线以执行该些微指令,其中,该寄存器文件被设定为可同时为该些微指令提供至多ニ个源操作数;其中,该架构指令特定该目的寄存器与该寄存器文件中提供该第一与第二源操作数的寄存器,是该寄存器文件中的不同的寄存器,该方法还包括将该架构指令转译出一第三微指令插入该第一与第二微指令间;其中,执行该第三微指令的步骤包括对该第一结果与该第二操作数执行该第二操作,以产生该第二結果。30.根据权利要求29所述的方法,其中,该架构指令指示该微处理器只在该些架构条件旗标满足该条件的情况下,更新该些架构条件旗标,该方法还包括其中,执行该第三微指令的步骤包括若是该些架构条件旗标不满足该条件依据该些架构条件旗标当前的值,更新该些架构条件旗标;以及若是该些架构条件旗标满足该条件依据该第二结果更新至少部分该些架构条件旗标。31.根据权利要求30所述的方法,还包括其中,执行该第三微指令的步骤包括若是该些架构条件旗标满足该条件若是该第二操作是ー进位旗标更新操作依据该第二结果更新一架构进位旗标;以及若是该第二操作是ー非进位旗标更新操作依据该第一结果更新该架构进位旗标。32.根据权利要求24所述的方法,其中,该架构指令是ーARMISA条件执行指令。33.一种计算机程序产品,编码于至少ー计算机可读取储存媒介,以使用于ー运算装置,该计算机程序产品包括适用于该媒介的计算机可读取程序码,用以特定一微处理器,该微处理器具有多个架构条件旗标且执行ー架构指令,该架构指令指示该微处理器对第一与第二源操作数执行ー操作以产生ー结果,并且只在该些架构条件旗标满足该架构指令特定的一条件的情况下,将该结果写入一目的寄存器,该计算机可读取程序码包括第一程序码,用以特定一硬件指令转译器,该硬件指令转译器接收该架构指令,并且相对应地将该架构指令转译为第一与第二微指令;以及第二程序码,用以特定ー执行管线,该执行管线执行由该硬件指令转译器接收的该些微指令;其中,相应于该第一微指令,该执行管线对该些源操作数执行该操作,以产生该结果;其中,相应于该第二微指令,该执行管线在该些架构条件旗标满足该条件的情况下,将由该第一微指令产生的该结果写入该目的寄存器;以及在该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。34.根据权利要求33所述的计算机程序产品,其中,该至少ー计算机可读取储存媒介是选自由盘片、磁带、或是其它磁性、光学或电子的储存媒介以及网络、缆线、无线或其它通讯媒介所构成的一群组。35.ー种微处理器,具有多个架构条件旗标且执行ー架构指令,只有在该架构条件旗标满足该架构指令所特定的一条件,该架构指令指示该微处理器对第一与第二源操作数执行一操作以产生一结果并将该结果写入一目的寄存器,该微处理器包括ー寄存器,具有储存空间以储存该些架构条件旗标以及储存ー非架构指针;一硬件指令转译器,接收该架构指令并相对应地转译该架构指令为第一与第二微指令·M及ー执行管线,执行由该硬件指令转译器所接收到的该些微指令;其中,相应于该第一微指令,该执行管线对该些源操作数执行该操作以产生该结果;决定是否该些架构条件旗标满足该条件;以及更新该非架构指针以标示该些架构条件旗标是否满足该条件;其中,相应于该第二微指令,该执行管线如果该非架构指针经过该第一微指令的更新之后,其所标示的该些架构条件旗标满足该条件的情况下,则将更新的结果写入该目的寄存器;以及如果该非架构指针经过该第一微指令的更新之后,其所标示的该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。36.根据权利要求35所述的微处理器,其中,相应于该第一微指令,该执行管线如果该些架构条件旗标满足该条件,则依据确认結果,更新至少ー个该些架构条件旗标;以及如果该些架构条件旗标不满足该条件,则依据该些架构条件旗标的当前的值,更新该些架构条件旗标。37.根据权利要求36所述的微处理器,其中该些架构条件旗标包括一架构进位旗标和其它架构条件旗标;其中,该架构指令也指示该微处理器对一第三源操作数执行ー移位操作以产生一(该)第二源操作数;其中,一(该)硬件指令转译器,更转译该架构指令为ー第三微指令优先于第一与第二微指令;其中,相应于该第三微指令,该执行管线对该第三源操作数执行该移位操作以产生该第二源操作数以及依据该第二源操作数产生ー进位旗标值。38.根据权利要求37所述的微处理器,其中,该寄存器也具有储存空间以储存一非架构进位旗标;其中,相应于该第三微指令,该执行管线依据该第二源操作数所产生的进位旗标值对该ー非架构进位旗标进行更新;其中,相应于该第一微指令,该执行管线如果该些架构条件旗标满足该条件如果该运算的类型不是该架构进位旗标的更新,而是通过第三微指令以该非架构进位旗标对该架构进位旗标的更新;且如果该运算的类型是该架构进位旗标依据该结果的更新。39.根据权利要求35所述的微处理器,其中,该寄存器是利用该微处理器的重命名单元进行重命名。40.根据权利要求35所述的微处理器,其还包括一寄存器文件,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数;其中,该第一和第二源操作数是由该寄存器文件的第一和第二寄存器分别提供,其中,该目的寄存器也是由该寄存器文件提供,其中该目的寄存器与该第一和第二寄存器不同。41.根据权利要求35所述的微处理器,其还包括一寄存器文件,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数;其中,该第一和第二源操作数是由该寄存器文件的第一和第二寄存器分别提供,其中,该目的寄存器也是由该寄存器文件提供;其中,如果该硬件指令转译器判断该架构指令所指定的该目的寄存器等同于该寄存器文件的第一寄存器,该硬件指令转译器将会转译该架构指令至该第一和第二微指令,而不会转译该架构指令至该第三微指令;其中,该第三微指令以架构指令所指定的该目的寄存器做为其所指定的该目的寄存器;指定该寄存器文件的该第一寄存器以提供该第三微指令的第一源操作数,其中该第一寄存器为该架构指令所指定的目的寄存器;以及指定该寄存器文件的该第二寄存器以提供该第三微指令的第二源操作数;其中,相应于第三微指令,该执行管线对该些源操作数执行该操作以产生该结果;决定是否该些架构条件旗标满足该条件;如果该些架构条件旗标满足该条件的情况下,则将更新的结果写入该目的寄存器;以及如果该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。42.根据权利要求35所述的微处理器,其中该架构指令是ーARMISA条件执行指令。43.根据权利要求35所述的微处理器,其还包括一附属信息产生单元,用以产生该第二微指令的ー执行附属信息在该结果以及该第一微指令所产生的该非架构指针。44.根据权利要求35所述的微处理器,还包括一重排缓冲器,包括多个项目,其中每ー个项目包括储存空间用以储存ー个未解除微指令的ー结果,该结果是经由该微处理器处理,其中,每ー个重排缓冲项目被设定为可以从储存在该些项目的结果中,同时为该微指令提供至多ニ个源操作数。45.根据权利要求35所述的微处理器,还包括一前传总线,用以发送经由该执行管路的多个执行単元彼此执行该些微指令所产生的该些结果,其中,该前传总线被设定为可以从该些执行単元所执行的该些微指令的该些结果中,同时为该微指令提供至多ニ个源操作数。46.—种微处理器的处理方法,该微处理器具有多个架构条件旗标,以执行一架构指令,该架构指令指示该微处理器执行对第一与第二源操作数执行ー操作以产生ー结果,并且只在该些架构条件旗标满足该架构指令特定的一条件的情况下,将该结果写入一目的寄存器,该方法包括将该架构指令转译为第一与第二微指令,其中,该转译步骤是由该微处理器的一硬件指令转译器进行;以及执行由该硬件指令转译器接收的该些微指令,其中该执行步骤是由该微处理器的ー执行管线进行;其中,执行该第一微指令的步骤包括对该些源操作数执行该操作以产生该结果;决定是否该些架构条件旗标满足该条件;以及更新ー该非架构指针以标示该些架构条件旗标是否满足该条件;其中,执行该第二微指令的步骤包括如果该非架构指针经过该第一微指令的更新之后,其所标示的在该些架构条件旗标满足该条件的情况下,将由该第一微指令产生的该结果写入该目的寄存器;以及如果该非架构指针经过该第一微指令的更新之后,其所标示的在该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。47.根据权利要求46所述的方法,其中,该执行第一微指令的步骤包括如果该架构条件旗标满足该条件,依据该结果更新至少ー该些架构条件旗标;以及如果该架构条件旗标不满足该条件,依据该些架构条件旗标当前的值更新该些架构条件旗标。48.根据权利要求46所述的方法,其中,该架构条件旗标包括一架构进位旗标以及其它架构条件旗标;其中,该架构指令也指示该微处理器对一第三源操作数执行ー移位操作以产生该第二源操作数;进ー步转译该架构指令至一第三微指令,其中该第三微指令优先于第一和第二微指令;其中,执行该第三微指令的步骤包括对该第三源操作数执行该移位操作以产生该第二源操作数并依据该第二源操作数产生一进位旗标值。49.根据权利要求48所述的方法,其中,执行该第三微指令的步骤进一歩包括根据该第二源操作数所产生的进位旗标值对一非架构进位旗标进行更新;其中,执行该第一微指令的步骤包括如果该些架构条件旗标满足该条件如果该运算的类型不是该架构进位旗标的更新,而是通过第三微指令以该非架构进位旗标对该架构进位旗标的更新;且如果该运算的类型是该架构进位旗标依据该结果的更新。50.根据权利要求46所述的方法,其中,该微处理器具有ー寄存器,该寄存器具有储存空间以储存该些架构条件旗标以及储存ー非架构指针,该方法进ー步包括对该寄存器重命名,其中该重命名步骤是由该微处理器的一重命名单元进行。51.根据权利要求46所述的方法,其中该微处理器包括一寄存器文件,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数,该方法还包括由该寄存器文件的第一和第二寄存器分别提供该第一和第二源操作数至该执行管线;其中,该目的寄存器也是由该寄存器文件提供,其中该目的寄存器与该第一和第二寄存器不同。52.根据权利要求46所述的方法,其中该微处理器包括一寄存器文件,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数,该方法还包括由该寄存器文件的第一和第二寄存器分别提供该第一和第二源操作数至该执行管线;其中,该目的寄存器也是由该寄存器文件提供;如果该架构指令所指定的该目的寄存器等同于该寄存器文件的第一寄存器;转译该架构指令至一第三微指令,而不会转译该架构指令至该第一和第二微指令;其中,该第三微指令以架构指令所指定的该目的寄存器做为其所指定的该目的寄存器;指定该寄存器文件的该第一寄存器以提供该第三微指令的第一源操作数,其中该第一寄存器为该架构指令所指定的目的寄存器;以及指定该寄存器文件的该第二寄存器以提供该第三微指令的第二源操作数;执行该第三微指令的步骤还包括对该些源操作数执行该操作以产生该结果;决定是否该些架构条件旗标满足该条件;如果该些架构条件旗标满足该条件的情况下,则将更新的结果写入该目的寄存器;以及如果该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。53.根据权利要求46所述的方法,其中该架构指令是ーARMISA条件执行指令。54.根据权利要求46所述的方法,还包括在该结果中以及在该第一微指令所产生的该非架构指针中产生该第二微指令的ー执行附属指令。55.根据权利要求46所述的方法,其中,该微处理器包括多个项目,其中姆ー个项目包括储存空间用以储存ー个未解除微指令的ー结果,该结果是经由该微处理器处理,其中,每一个重排缓冲项目被设定为可以从储存在该些项目的结果中,同时为该微指令提供至多ニ个源操作数。56.根据权利要求46所述的方法,其中该微处理器包括一前传总线,用以发送经由该执行管路的多个执行単元彼此执行该些微指令所产生的该些结果,其中,该前传总线被设定为可以从该些执行単元所执行的该些微指令的该些结果中,同时为该微指令提供至多ニ个源操作数。57.一种计算机程序产品,编码于至少ー计算机可读取储存媒介,以使用于ー运算装置,该计算机程序产品包括适用于该媒介的计算机可读取程序码,用以特定一微处理器,该微处理器具有多个架构条件旗标且执行ー架构指令,该架构指令指示该微处理器对第一与第二源操作数执行ー操作以产生ー结果,并且只在该些架构条件旗标满足该架构指令特定的一条件的情况下,将该结果写入一目的寄存器,该计算机可读取程序码包括第一程序码,用以特定ー寄存器,该寄存器具有储存空间以储存该些架构条件旗标以及储存ー非架构指针;第二程序码,用以特定一硬件指令转译器,该硬件指令转译器接收该架构指令,并且相对应地将该架构指令转译为第一与第二微指令;以及第三程序码,用以特定ー执行管线,该执行管线执行由该硬件指令转译器接收的该些微指令;其中,相应于该第一微指令,该执行管线对该些源操作数执行该操作,以产生该结果;决定是否该些架构条件旗标满足该条件;以及更新该非架构指针以标示该些架构条件旗标是否满足该条件;其中,相应于该第二微指令,该执行管线如果该非架构指针经过该第一微指令的更新之后,其所标示的在该些架构条件旗标满足该条件的情况下,将由该第一微指令产生的该结果写入该目的寄存器;以及如果该非架构指针经过该第一微指令的更新之后,其所标示的在该些架构条件旗标不满足该条件的情况下,将该目的寄存器当前的值写入该目的寄存器。58.根据权利要求57所述的计算机程序产品,其中,该至少ー计算机可读取储存媒介是选自由盘片、磁带、或是其它磁性、光学或电子的储存媒介以及网络、缆线、无线或其它通讯媒介所构成的一群组。59.—种微处理器,具有多个架构条件旗标,该些架构条件旗标包括一架构进位旗标和其它架构条件旗标,其中该微处理器执行ー架构指令,只有在该架构条件旗标满足该架构指令所特定的一条件,该架构指令指示该微处理器对一第一源操作数执行ー移位操作以产生一第一結果,并对该第一结果和一第二源操作数执行ー第二操作以产生一第二结果,并将该第二结果写入一目的寄存器,如果该些架构条件旗标满足该架构指示所指定的一条件则更新该些条件旗标,该微处理器包括ー寄存器,具有储存空间以储存该些架构条件旗标以及储存ー非架构旗标;一硬件指令转译器,接收该架构指令并相对应地转译该架构指令为第一与第二微指令;以及ー执行管线,执行由该硬件指令转译器所接收到的该些微指令;其中,相应于该第一微指令,该执行管线对该第一源操作数执行该移位操作以产生该第一结果和一进位旗标值;以及利用该进位旗标值更新该非架构进位旗标;其中,相应于该第二微指令,该执行管线对该第一结果和第二源操作数执行该第二操作以产生该第二结果,并依据该第二结果产生新的条件旗标值;在该些架构条件旗标满足该条件的情况下,利用该非架构进位旗标值更新该架构进位旗标,并且利用所产生的新的条件旗标值更新至少ー个相对应的其它架构条件旗标;以及在该些架构条件旗标不满足该条件的情况下,利用该架构条件旗标当前的值更新该架构条件旗标。60.根据权利要求59所述的微处理器,其中,该寄存器也具有储存空间以储存ー非架构指针;其中,该硬件指令转译器也相对应地转译该架构指令至一第三微指令用以接续该第一与第二微指令;其中,相应于该第二微指令,该执行管线确认该些架构条件旗标是否满足该条件并同时更新该非架构指示器;其中,相应于该第三微指令,该执行管线如果该些非架构寄存器指示该些架构条件旗标满足该条件吋,则利用该第二结果更新该目的寄存器以及;以及如果该些非架构寄存器指示该些架构条件旗标不满足该条件吋,则利用该目的寄存器前的值更新该目的寄存器。61.根据权利要求60所述的微处理器,还包括一寄存器文件,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数;其中,该第一和第二源操作数是由该寄存器文件的ニ个源寄存器提供,其中,该目的寄存器也是由该寄存器文件提供并且与上述ニ个源寄存器不同。62.根据权利要求59所述的微处理器,其中,相应于该第二微指令,该执行管线如果该些架构条件旗标满足该条件时,利用该第二结果更新该目的寄存器;以及如果该些架构条件旗标不满足该条件时,利用该目的寄存器当前的值更新该目的寄存器。63.根据权利要求62所述的微处理器,还包括一寄存器文件,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数;其中,该第一和第二源操作数是由该寄存器文件的ニ个源寄存器提供,其中,该目的寄存器也是由该寄存器文件提供并且是上述ニ个源寄存器之一。64.根据权利要求59所述的微处理器,其中,相应于该第一微指令,该执行管线利用该些架构条件旗标当前的值更新该些架构条件旗标。65.根据权利要求59所述的微处理器,其中该寄存器是利用该微处理器的一重命名单元进行重命名。66.根据权利要求59所述的微处理器,其中该第一源操作数是ー个定值,该定值是标示在该架构指令的一立即字段中。67.根据权利要求59所述的微处理器,其中该第一源操作数是ー个值,储存在该微处理器的一个架构寄存器中。68.根据权利要求59所述的微处理器,其中该第一源操作数是移位一数量,该数量是标示在该架构指令的一立即字段中。69.根据权利要求59所述的微处理器,其中该第一源操作数是移位一数量,该数量是标不在该微处理器的一架构寄存器中。70.根据权利要求59所述的微处理器,其中,该些架构条件旗标包括一架构溢位旗标;其中,该依据该第二结果产生的新的条件旗标值包含一溢位旗标值;其中,相应于该第二微指令,该执行管线如果该架构条件旗标满如该条件如果该架构指令所标示的第二操作是ー种非用于更新该架构溢位旗标的操作型态时,则利用该架构溢位旗标的当前的值更新该架构溢位旗标;以及如果该架构指令所标示的第二操作是ー种用于更新该架构溢位旗标的操作型态时,则利用所产生的新的溢位旗标值更新该架构溢位旗标。71.根据权利要求59所述的微处理器,其中该至少一其它架构条件旗标是通过该执行管线进行更新,而该执行管线则是相应于该第二微指令,其并且包含ー负条件旗标和ー零条件旗标。72.根据权利要求59所述的微处理器,其中,该架构指令是ーARMISA指令。73.—种微处理器的处理方法,该微处理器具有多个架构条件旗标,该些架构条件旗标包括一个架构进位旗标以及其它架构条件旗标,以执行ー架构指令,该架构指令指示该微处理器对ー第一源操作数执行ー移位操作以产生一第一结果,并且对该第一结果和一第ニ源操作数执行ー第二操作以产生一第二结果,并且只在该些架构条件旗标满足该架构指令特定的一条件的情况下,将该第二结果写入一目的寄存器并更新该条件旗标,该方法包括将该架构指令转译为第一与第二微指令,其中,该转译步骤是由该微处理器的一硬件指令转译器进行;以及执行由该硬件指令转译器接收的该些第一和第二微指令,其中该执行步骤是由该微处理器的一执行管线进行;其中,执行该第一微指令的步骤包括对该第一源操作数执行该移位操作以产生该第一结果和一进位旗标值;以及利用所产生的进位旗标值对一非架构进位旗标进行更新;其中,执行该第二微指令的步骤包括对该第一结果和第二源操作数执行该第二操作以产生该第二结果,并依据该第二结果产生新的条件旗标值;在该些架构条件旗标满足该条件的情况下,利用该非架构进位旗标值更新该架构进位旗标,并且利用所产生的新的条件旗标值更新至少ー个相对应的其它架构条件旗标;以及在该些架构条件旗标不满足该条件的情况下,利用该架构条件旗标当前的值更新该架构条件旗标。74.根据权利要求73所述的方法,其步骤还包括转译该架构指令至一第三微指令用以接续该第一与第二微指令;其中,执行该第二微指令的步骤包括确认该些架构条件旗标是否满足该条件并同时更新该非架构指示器;其中,执行该第三微指令的步骤包括如果该些非架构寄存器指示该些架构条件旗标满足该条件吋,则利用该第二结果更新该目的寄存器;以及如果该些非架构寄存器指示该些架构条件旗标不满足该条件吋,则利用该目的寄存器前的值更新该目的寄存器。75.根据权利要求74所述的方法,其中,该微处理器并包括一寄存器文件,其中该寄存器文件被设定为,可同时为该些微指令提供至多ニ个源操作数,其步骤还包括从该寄存器文件的ニ个源寄存器中提供该第一和第二源操作数;其中,该目的寄存器也是由该寄存器文件提供并且与上述ニ个源寄存器不同。76.根据权利要求73所述的方法,其中,执行该第二微指令的步骤包括如果该些架构条件旗标满足该条件吋,利用该第二结果更新该目的寄存器;以及如果该些架构条件旗标不满足该条件时,利用该目的寄存器当前的值更新该目的寄存器。77.根据权利要求76所述的方法,其中,该微处理器并包含一寄存器文件并被设定为,可同时为该些微指令提供至多ニ个源操作数,其步骤还包括从该寄存器文件的ニ个源寄存器中提供该第一和第二源操作数至该执行管路;其中,该目的寄存器也是由该寄存器文件提供并且是上述ニ个源寄存器之一。78.根据权利要求73所述的方法,其中,执行该第一微指令的步骤还包括利用该些架构条件旗标当前的值更新该些架构条件旗标。79.根据权利要求73所述的方法,其中,其中,该些架构条件旗标包括一架构溢位旗标;其中,该依据该第二结果产生的新的条件旗标值包含一溢位旗标值;其中,执行该第二微指令的步骤还包括如果该架构条件旗标满如该条件如果该架构指令所标示的第二操作是ー种非用于更新该架构溢位旗标的操作型态时,则利用该架构溢位旗标的当前的值更新该架构溢位旗标;以及如果该架构指令所标示的第二操作是ー种用于更新该架构溢位旗标的操作型态时,则利用所产生的新的溢位旗标值更新该架构溢位旗标。80.根据权利要求73所述的方法,其中,该至少一其它架构条件旗标是通过该执行管线进行更新,而该执行管线则是相应于该第二微指令,其并且包含ー负条件旗标和ー零条件旗标。81.根据权利要求73所述的方法,其中该架构指令是ーARMISA指令。82.—种计算机程序产品,编码于至少ー计算机可读取储存媒介,以使用于ー运算装置,该计算机程序产品包括适用于该媒介的计算机可读取程序码,用以特定一微处理器,该微处理器具有多个架构条件旗标,该些架构条件旗标包括一架构进位旗标以及其它架构条件旗标,其中该微处理器执行ー架构指令,该架构指令指示该微处理器对第一源操作数执行ー移位操作以产生一第一結果,并对该第一结果和一第二源操作数执行ー第二操作以产生一第二结果,并且只在该些架构条件旗标满足该架构指令特定的一条件的情况下,将该第二结果写入一目的寄存器并更心该条件旗标,该计算机可读取程序码包括第一程序码,用以特定ー寄存器,该具有储存空间以储存该些架构条件旗标以及储存一非架构旗标;第二程序码,用以特定一硬件指令转译器,该硬件指令转译器接收该架构指令,并且相对应地将该架构指令转译为第一与第二微指令;以及第三程序码,用以特定ー执行管线,该执行管线执行由该硬件指令转译器接收的该些微指令;其中,相应于该第一微指令,该执行管线对该第一源操作数执行该移位操作,以产生该第一结果和一进位旗标值;以及利用该进位旗标值更新该非架构进位旗标;其中,相应于该第二微指令,该执行管线对该第一结果和第二源操作数执行该第二操作以产生该第二结果,并依据该第二结果产生新的条件旗标值;在该些架构条件旗标满足该条件的情况下,利用该非架构进位旗标值更新该架构进位旗标,并且利用所产生的新的条件旗标值更新至少ー个相对应的其它架构条件旗标;以及在该些架构条件旗标不满足该条件的情况下,利用该架构条件旗标当前的值更新该架构条件旗标。83.根据权利要求82所述的计算机程序产品,其中,该至少ー计算机可读取储存媒介是选自由盘片、磁带、或是其它磁性、光学或电子的储存媒介以及网络、缆线、无线或其它通讯媒介所构成的一群组。全文摘要微处理器执行一架构指令指示其去执行一操作于第一与第二源操作数以产生一结果,并在其架构条件旗标满足架构指令所预设的条件时,将此结果写入一目的寄存器。硬件指令转译器将此指令转译为第一与第二微指令。就第一微指令而言,执行管线执行操作于源操作数以产生此结果。就第二微指令而言,执行管线在架构条件旗标满足条件,将第一微指令所产生的结果写入目的寄存器,而在架构条件旗标不满足条件时,将目的寄存器当前的数值写入目的寄存器。文档编号G06F9/30GK102707927SQ20121010431公开日2012年10月3日申请日期2012年4月9日优先权日2011年4月7日发明者G·葛兰·亨利,吉拉德·M·卡尔,泰瑞·派克斯,罗德尼·E·虎克申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1