微处理器及其操作方法

文档序号:6509752阅读:343来源:国知局
微处理器及其操作方法【专利摘要】微处理器及其操作方法。该微处理器包含引用IA-32架构的EDX与EAX通用寄存器的寄存器及引用Intel64架构的R8至R15通用寄存器的硬件寄存器。对于R8至R15各该通用寄存器分别关联相对应的唯一特定模式寄存器地址。因应特定的该相对应的唯一MSR地址的IA-32架构读取特定模式寄存器指令,将引用R8至R15中特定的通用寄存器的寄存器的内容读入引用EDX:EAX寄存器的寄存器。因应特定R8至R15其中之一的唯一MSR地址的IA-32架构写入MSR指令,将引用EDX:EAX寄存器的寄存器的内容写入引用R8至R15中特定的通用寄存器的寄存器。此微处理器即使在非64位模式下亦如此运作。【专利说明】微处理器及其操作方法【
技术领域
】[0001]本发明涉及微处理器的【
技术领域
】,特别涉及微处理器多重指令集架构的支持。【
背景技术
】[0002]由IntelCorporationofSantaClara,California开发出来的x86处理器架构以及由ARMLtd.0fCambridge,UK开发出来的进阶精简指令集机器(advancedrisemachines,ARM)架构是计算机领域中两种广为人知的处理器架构。许多使用ARM或x86处理器的计算机系统已经出现,并且,对于此计算机系统的需求正在快速成长。现今,ARM架构处理内核主宰低功耗、低价位的计算机市场,例如手机、手持式电子产品、平板计算机、网络路由器与集线器、机顶盒等。举例来说,苹果iPhone与iPad主要的处理能力即是由ARM架构的处理内核提供。另一方面,x86架构处理器则是主宰需要高效能的高价位市场,例如膝上计算机、桌上型计算机与服务器等。然而,随着ARM内核效能的提升,以及某些x86处理器在功耗与成本的改善,前述低价位与高价位市场的界线逐渐模糊。在移动运算市场,如智能手机,这两种架构已经开始激烈竞争。在膝上计算机、桌上型计算机与服务器市场,可以预期这两种架构将会有更频繁的竞争。[0003]前述竞争态势使得计算机装置制造业者与消费者陷入两难,因无从判断哪一个架构将会主宰市场,更精确来说,无法判定哪一种架构的软件开发商将会开发更多软件。举例来说,一些每月或每年会定期购买大量计算机系统的消费个体,基于成本效率的考虑,例如大量采购的价格优惠与系统维修的简化等,会倾向于购买具有相同系统配置设定的计算机系统。然而,这些大型消费个体中的使用者群体,对于这些具有相同系统配置设定的计算机系统,往往有各种各样的运算需求。具体来说,部分使用者的需求是希望能够在ARM架构处理器上执行程序,其他部分使用者的需求是希望能够在x86架构处理器上执行程序,甚至有部分使用者希望能够同时在两种架构上执行程序。此外,新的、预期外的运算需求也可能出现而需要使用另一种架构。在这些情况下,这些大型个体所投入的部分资金就变成浪费。在另一个例子中,使用者具有一个重要的应用程序只能在x86架构上执行,因而他购买了x86架构的计算机系统(反之亦然)。不过,这个应用程序的后续版本改为针对ARM架构开发,并且优于原本的x86版本。使用者会希望转换架构来执行新版本的应用程序,但不幸地,他已经对于不倾向使用的架构投入相当成本。同样地,使用者原本投资于只能在ARM架构上执行的应用程序,但是后来也希望能够使用针对x86架构开发而未见于ARM架构的应用程序或是优于以ARM架构开发的应用程序,亦会遭遇这样的问题,反之亦然。值得注意的是,虽然小实体或是个人投入的金额较大实体为小,然而投资损失比例可能更高。其他类似的投资损失的例子可能出现在各种不同的运算市场中,例如由x86架构转换至ARM架构或是由ARM架构转换至x86架构的情况。最后,投资大量资源来开发新产品的运算装置制造业者,例如OEM厂商,也会陷入此架构选择的困境。如果是制造业者基于x86或ARM架构研发制造大量产品,而使用者的需求突然改变,则会导致许多有价值的研发资源的浪费。[0004]对于运算装置的制造业者与消费者,能够保有其投资免于受到二种架构中何者胜出的影响是有帮助的,因而有必要提出一种解决方法让系统制造业者发展出可让使用者同时执行x86架构与ARM架构的程序的运算装置。[0005]使系统能够执行多个指令集程序的需求由来已久,这些需求主要是因为消费者会投入相当成本在旧硬件上执行的软件程序,而其指令集往往不相容于新硬件。举例来说,IBM360系统Model30即具有相容于IBM1401系统的特征来缓和使用者由1401系统转换至较高效能与改良特征的360系统的痛苦。Model30具有360系统与1401系统的只读存储控制(ReadOnlyStorage,ROS)),使其在辅助存储空间预先存入所需信息的情况下能够使用于1401系统。此外,在软件程序以高阶语言开发的情况下,新的硬件开发商几乎没有办法控制为旧硬件所编译的软件程序,而软件开发商也欠缺动力为新硬件重新编译(re-compile)源代码,此情形尤其发生在软件开发商与硬件开发商是不同个体的情况。Siberman与Ebcioglu于Computer,Junel993,N0.6提出的文章“AnArchitecturalFrameworkforSupportingHeterogeneousInstruction-SetArchitectures,,中公开一种利用执行于精简指令集(RISC)、超标量架构(superscalar)与超长指令字(VLIW)架构(下称原生架构)的系统来改善既存复杂指令集(CISC)架构(例如IBMS/390)执行效率的技术,其所公开的系统包含执行原生代码的原生引擎(nativeengine)与执行目的代码的迁移引擎(migrantengine),并可依据转译软件将目的代码(objectcode)转译为原生代码(nativecode)的转译效果,在这两种编码间视需要进行转换。请参照2006年5月16日公告的美国专利第7,047,394号专利案,VanDykeetal.公开一处理器,具有用以执行原生精简指令集(Tapestry)的程序指令的执行管线,并利用硬件转译与软件转译的结合,将x86程序指令转译为原生精简指令集的指令。Nakadaetal.提出具有ARM架构的前端管线与FujitsuFR-V(超长指令字)架构的前端管线的异质多线程处理器(heterogeneousSMTprocessor),ARM架构前端管线用于非规则(irregular)软件程序(如操作系统),而FujitsuFR-V(超长指令字)架构的前端管线用于多媒体应用程序,其将一增加的超长指令字队列提供给FR-V超长指令字的后端管线以维持来自前端管线的指令。请参照Buchty与Weib,eds,UniversitatsverlagKarlsruhe于2008年11月在FirstInternat`ionalWorkshoponNewFrontiersinHigh-performanceandHardware-awareComputing(HipHaC,08),LakeComo,Italy,(配合MICRO-41)发表的论文集(ISBN978-3-86644-298-6)的文章“0R0CH1:AMultipleInstructionSetSMTProcessor^文中提出的方法用以降低整个系统在异质系统单芯片(SOC)装置(如德州仪器OMAP应用处理器)内所占据的空间,此异质系统单芯片装置具有一个ARM处理器内核加上一个或多个协同处理器(co-processors)(例如TMS320、多种数字信号处理器、或是多种图形处理单元(GPUs))。这些协同处理器并不分享指令执行资源,只是整合于同一芯片上的不同处理内核。[0006]软件转译器(softwaretranslator)、或称软件模拟器(softwareemulator,softwaresimulator)、动态二进制码转译器等,亦被用于支持将软件程序在与此软件程序架构不同的处理器上执行的能力。其中受欢迎的商用实例如搭配苹果麦金塔(Macintosh)计算机的Motorola68K-to-PowerPC模拟器,其可在具有PowerPC处理器的麦金塔计算机上执行68K程序,以及后续研发出来的PoWerPC-to-X86模拟器,其可在具有χ86处理器的麦金塔计算机上执行68Κ程序。位于加州圣塔克拉拉(SantaClara,California)的全美达公司,结合超长指令字(VLIW)的内核硬件与“纯粹软件指令的转译器(亦即程序代码转译软件(CodeMorphingSoftware))以动态地编译或模拟(emulate)x86程序代码序列”以执行x86程序代码,请参照2011年维基百科针对全美达(Transmeta)的说明〈http://en.wikipedia.0rg/wiki/Transmeta>。另外,参照1998年11月3日由Kellyetal.提出的美国专利第5,832,205号公告案。IBM的DAISY(DynamicArchitectureInstructionSetfromYorktown)系统具有超长指令字(VLIW)机器与动态二进制软件转译,可提供100%的旧架构软件相容模拟。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,FREENIXTrack:2005USENIXAnnualTechnicalConference,如同其开发者所称“动态转译器对目标处理器指令执行时的转换(runtimeconversion),将其转换至主系统指令集,所产生的二进制码存储于一转译快取以利重复取用。…QEMU[较的其他动态转译器]远为简单,因为它只连接GNCC编译器于离线(offline)时所产生的机器码片段”。同时可参照2009年6月19日Adelaide大学LeeWangHao的学位论文“ARMInstructionSetSimulationonMult1-corex86Hardware”。虽然以软件转译为基础的解决方案所提供的处理效能可以满足多个运算需求的一部分,但是不大能够满足多个使用者的情况。[0007]静态(static)二进制转译是另一种具有高效能潜力的技术。不过,二进制转译技术的使用存在技术上的问题(例如自我修改程序代码(self-modifyingcode)、只在执行时(run-time)可知的间接分支(indirectbranches)数值)以及商业与法律上的障碍(例如:此技术可能需要硬件开发商配合开发散布新程序所需的管道;对原程序散布者存在潜在的授权或是著作权侵害的风险)。`【
发明内容】[0008]本发明的一实施例提供一微处理器。此微处理器包含多个引用(instantiate)IA-32架构的EDX与EAX通用寄存器(GPR)的硬件寄存器以及多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器。此微处理器对于R8至R15各该通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址。回应一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的读取特定模式寄存器(RDMSR)指令,此微处理器将引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用该EDX=EAX寄存器的该硬件寄存器。[0009]本发明的一实施例提供一种微处理器的操作方法。此微处理器包含多个引用(instantiate)IA-32架构的EDX与EAX通用寄存器(GPR)的硬件寄存器以及多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器。此方法包含:利用该微处理器对于R8至R15各该通用寄存器中的每一个都关联(associating)—相对应的唯一(unique)特定模式寄存器(MSR)地址。此方法并包含:该微处理器遭遇一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的RDMSR指令。此方法还包含:利用该微处理器将引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用该EDX:EAX寄存器的该硬件寄存器。[0010]本发明的一实施例提供一种微处理器。此微处理器包含多个引用(instantiate)IA-32架构的EDX与EAX通用寄存器(GPR)的硬件寄存器以及多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器。此微处理器对于R8至R15各该通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址。回应一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的写入特定模式寄存器(WRMSR)指令,此微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器。[0011]本发明的一实施例提供一种微处理器的操作方法。此微处理器包含多个引用(instantiate)IA-32架构的EDX与EAX通用寄存器(GPR)的硬件寄存器以及多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器。此方法包含:利用该微处理器对于R8至R15各该通用寄存器中的每一个都关联(associating)—相对应的唯一(unique)特定模式寄存器(MSR)地址。此方法并包含:该微处理器遭遇一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的WRMSR指令。此方法还包含:利用该微处理器将引用该EDX:EAX寄存器的该硬件寄存器的内容写入引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器。[0012]本发明的一实施例提供一种微处理器。此微处理器包含多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器。此微处理器对于R8至R15各该通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址。此微处理器并包含多个引用(instantiate)进阶精简指令集机器(ARM)架构的通用寄存器(GPR)的硬件寄存器。回应一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的ARM架构的MRRC指令,此微处理器将引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用这些ARM架构通用寄存器其中之二的该硬件寄存器。[0013]本发明的一实施例提供一种微处理器。此微处理器包含多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器。此微处理器对于R8至R15各该通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址。此微处理器并包含多个引用(instantiate)进阶精简指令集机器(ARM)架构的通用寄存器(GPR)的硬件寄存器。回应一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的ARM架构的MCRR指令,此微处理器将引用这些ARM架构通用寄存器其中之二的该硬件寄存器的内容写入引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器。[0014]本发明的一实施例提供一种方法。此方法包含:当一处理器处于一IA-32架构的非64位操作模式时,运作于该处理器的一第一程序,将一数据值写入Intel64架构64位通用寄存器的其中之一。此方法并包含:由该第一程序,使该处理器由运作于该IA-32架构的非64位操作模式切换至运作于一ARM架构操作模式。此方法还包含:当该处理器处于该ARM架构操作模式时,运作于该处理器的一第二程序,由该Intel64架构64位通用寄存器的该其中之一读取至少部分由该第一程序写入的该数据值。[0015]本发明的一实施例提供一种方法。此方法包含:当处于一ARM架构操作模式时,运作于一处理器的一第一程序,将一数据值写入Intel64架构64位通用寄存器的其中之一的至少一部分。此方法亦包含:由该第一程序,使该处理器由运作于该ARM架构操作模式切换至运作于一IA-32架构操作模式。此方法还包含:当处于该IA-32架构操作模式时,运作于该处理器的一第二程序,由该Intel64架构64位通用寄存器的该其中之一读取至少部分由该第一程序写入的该数据值。【专利附图】【附图说明】[0016]图1是本发明执行x86程序集架构与ARM程序集架构机器语言程序的微处理器一实施例的方块图。[0017]图2是一方块图,详细显示图1的硬件指令转译器。[0018]图3是一方块图,详细显示图2的指令格式化程序(instructionformatter)。[0019]图4是一方块图,详细显示图1的执行管线。[0020]图5是一方块图,详细显不图1的寄存器档案。[0021]图6A是一流程图,显示图1的微处理器的操作步骤。[0022]图6B是一流程图,显示图1的微处理器的操作步骤。[0023]图7是本发明一双内核微处理器的方块图。[0024]图8是本发明执行X86ISA与ARMISA机器语言程序的微处理器另一实施例的方块图。[0025]图9是一方块图,详细显示微处理器通过启动X86ISA及ARMISA程序来存取图1的微处理器的特定模式寄存器。[0026]图10是一流程图,显示图1的微处理器执行存取特定模式寄存器的指令。[0027]图11是微代码的虚拟代码处理存取特定模式寄存器的指令示意图。[0028]图12是一方块图,显示传统x86指令集架构的ΑΧ、EAX、与RAX寄存器。[0029]图13是一方块图,显不传统Intel64架构的十六个64位通用寄存器。[0030]图14是一方块图,显示本发明图1的微处理器中,引用Intel64架构所定义的RAX至R15十六个64位通用寄存器的十六个64位硬件寄存器的一实施例。[0031]图15是一方块图,显不传统Intel64架构处理器的一特定模式寄存器地址空间。[0032]图16是一方块图,显示本发明图1的微处理器的特定模式寄存器地址空间的一实施例。[0033]图17是一流程图,显示图1的微处理器执行x86的RDMSR指令,藉以在微处理器的特定模式寄存器地址空间内,特定一64位通用寄存器的一实施例。[0034]图18是一方块图,显示图1的微处理器依据图17的流程所进行的操作的一实施例。[0035]图19是一流程图显示图1的微处理器执行x86的WRMSR指令,藉以在微处理器的特定模式寄存器地址空间内,特定一64位通用寄存器的一实施例。[0036]图20是一方块图,显示图1的微处理器依据图19的流程所进行的操作的一实施例。[0037]图21是一流程图显示图1的微处理器执行x86的RDMSR指令,藉以在微处理器的特定模式寄存器地址空间内,特定一64位通用寄存器的另一实施例。[0038]图22是一方块图,显示图1的微处理器依据图21的流程所进行的操作的一实施例。[0039]图23是一流程图用以显示图1的微处理器执行x86的WRMSR指令,藉以在微处理器的特定模式寄存器地址空间内,特定一64位通用寄存器的另一实施例。[0040]图24是一方块图,显示图1的微处理器依据图23的流程所进行的操作的一实施例。[0041]图25是一方块图,显示图1的微处理器的特定模式寄存器地址空间的另一实施例。[0042]图26是一流程图,显示本发明图1的微处理器在非64位操作模式下,通过特定模式寄存器地址空间取用RAX至R15这十六个x8664位通用寄存器,来提供程序除错能力。[0043]图27是一流程图,显示本发明图1的微处理器在非64位操作模式下,通过特定模式寄存器地址空间取用RAX至R15这十六个x8664位通用寄存器,来执行对于微处理器和/或包含此微处理器的系统的诊断。[0044]图28是一方块图显示本发明图1的微处理器中,引用Intel64架构所定义的RAX至R15十六个64位通用寄存器的十六个64位硬件寄存器的一实施例,而这十六个硬件寄存器亦引用ARM指令集架构的RO至R15十六个32位通用寄存器。[0045]图29是一流程图显示本发明图1的微处理器执行ARM指令集架构MRRC指令,此MRRC指令特定微处理器的特定模式寄存器地址空间内的X8664位通用寄存器的一实施例。[0046]图30是一方块图,显示图1的微处理器依据图29的流程所进行的操作的一实施例。[0047]图31是一流程图显示本发明图1的微处理器执行ARM指令集架构MCRR指令,此MCRR指令特定微处理器的特定模式寄存器地址空间内的X8664位通用寄存器的一实施例。[0048]图32是一方块图,显示图1的微处理器依据图31的流程所进行的操作的一实施例。[0049]图33是一流程图用以显示本发明图1的微处理器,使用特定模式寄存器地址空间所提供的通用寄存器,将参数从一个执行于非64位操作模式的x86指令集架构开机载入程序传递至ARM指令集架构操作系统。[0050]图34是一流程图用以显示本发明图1的微处理器,使用特定模式寄存器地址空间所提供的通用寄存器,将参数从一个执行于非64位操作模式的x86指令集架构开机载入程序传递至ARM指令集架构操作系统的另一实施例。[0051]图35是一流程图用以显示本发明图1的微处理器,使用特定模式寄存器地址空间所提供的通用寄存器,将参数从一个ARM指令集架构开机载入程序传递至x86指令集架构操作系统的一实施例。[0052]图36是一流程图用以显示本发明图1的微处理器,使用特定模式寄存器地址空间所提供的通用寄存器,将参数从一个ARM指令集架构开机载入程序传递至x86指令集架构操作系统的另一实施例。[0053]【符号说明】[0054]微处理器(处理内核)100[0055]指令快取102[0056]硬件指令转译器104[0057]寄存器档案106[0058]存储器子系统108[0059]执行管线112[0060]指令提取单元与分支预测器114[0061]ARM程序计数器(PC)寄存器116[0062]x86指令指标(IP)寄存器118[0063]配置寄存器(configurationregister)122[0064]ISA指令124[0065]微指令126[0066]结果128[0067]指令模式指标(instructionmodeindicator)132[0068]提取地址134[0069]环境模式指标(environmentmodeindicator)136[0070]指令格式化程序202[0071]简单指令转译器(SIT)204[0072]复杂指令转译器(CIT)206[0073]多工器(mux)212[0074]x86简单指令转译器222[0075]ARM简单指令转译器224[0076]微程序计数器(micro-programcounter,micro-PC)232[0077]微代码只读存储器234[0078]微程序器(microsequencer)236[0079]指令间接寄存器(instructionindirectionregister,HR)235[0080]微转译器(microtranslator)237[0081]格式化ISA指令242[0082]实行微指令(implementingmicroinstructions)244[0083]实行微指令246[0084]选择输入248[0085]微代码地址252[0086]只读存储器地址254[0087]ISA指令信息255[0088]预解码器(pre-decoder)302[0089]指令字节队列(IBQ)304[0090]长度解码器(lengthdecoders)与纹波逻辑门(ripplelogic)306[0091]多工器队列(muxqueue,MQ)308[0092]多工器312[0093]格式化指令队列(formattedinstructionqueue,FIQ)314[0094]ARM指令集状态322[0095]微指令队列401[0096]寄存器配置表(registerallocationtable,RAT)402[0097]指令调度器(instructiondispatcher)404[0098]保留站(reservationstation)406[0099]指令发送单兀(instructionissueunit)408[0100]整数/分支(integer/branch)单兀412[0101]媒体单兀(mediaunit)414[0102]载入/存储(load/store)单元416[0103]浮点(floatingpoint)单兀418[0104]重排缓冲器(reorderbuffer,ROB)422[0105]执行单元424[0106]ARM特定寄存器502[0107]x86特定寄存器504[0108]共享寄存器506[0109]MSR地址空间1502[0110]MSR地址空间1602[0111]GPRMSR子地址空间2202【具体实施方式】[0112]名词定义[0113]指令集,是定义二进制编码值的集合(即机器语言指令)与微处理器所执行操作间的对应关系。机器语言程序基本上以二进制进行编码,不过也可使用其他进位制的系统,如部分早期IBM计算机的机器语言程序,虽然最终亦是以电压高低呈现二进位值的物理信号来表现,不过却是以十进位制进行编码。机器语言指令指示微处理器执行的操作如:将寄存器I内的运算元与寄存器2内的运算元相加并将结果写入寄存器3、将存储器地址0x12345678的运算元减掉指令所指定的立即运算元并将结果写入寄存器5、依据寄存器7所指定的位数移动寄存器6内的数值、若是零标志被设定时,分支到指令后方的36个字节、将存储器地址OxAB⑶0000的数值载入寄存器8。因此,指令集是定义各个机器语言指令使微处理器执行所欲执行的操作的二进位编码值。需了解的是,指令集定义二进位值与微处理器操作间的对应关系,并不意味着单一个二进位值就会对应至单一个微处理器操作。具体来说,在部分指令集中,多个二进位值可能会对应至同一个微处理器操作。[0114]指令集架构(ISA),从微处理器家族的脉络来看包含(I)指令集;(2)指令集的指令所能存取的资源集(例如:存储器定址所需的寄存器与模式);以及(3)微处理器回应指令集的指令执行所产生的例外事件集(例如:除以零、分页错误、存储器保护违反等)。因为程序撰写者,如组译器与编译器的撰写者,想要作出机器语言程序在一微处理器家族执行时,就需要此微处理器家族的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位的多媒体扩展指令集(MMX)寄存器作为单指令多重数据流扩展(SSE)指令集的一部分,而X86ISA机器语言程序已经开发来利用XMM寄存器以提升效能,虽然现存的X86ISA机器语言程序并不使用单指令多重数据流扩展指令集的XMM寄存器。此外,其他制造商亦设计且制造出可执行X86ISA机器语言程序的微处理器。例如,超微半导体(AMD)与威盛电子(VIATechnologies)即在x86ISA增加新技术特征,如超微半导体的3DN0W!单指令多重数据流(SMD)向量处理指令,以及威盛电子的Padlock安全引擎随机数产生器(randomnumbergenerator)与先进译石马弓丨擎(advancedcryptographyengine)的技术,前述技术都是采用X86ISA的机器语言程序,但却非由现有的Intel微处理器实现。以另一个实例来说明,ARMISA原本定义ARM指令集状态具有4字节的指令。然而,随着ARMISA的发展而增加其他指令集状态,如具有2字节指令以提升编码密度的Thumb指令集状态以及用以加速Java字节代码程序的Jazelle指令集状态,而ARMISA机器语言程序已被发展来使用部分或所有其他ARMISA指令集状态,即使现存的ARMISA机器语言程序并非采用这些其他ARMISA指令集状态。[0115]指令集架构(ISA)机器语言程序,包含ISA指令序列,即ISA指令集对应至程序撰写者要程序执行的操作序列的二进位编码值序列。因此,X86ISA机器语言程序包含X86ISA指令序列,ARMISA机器语言程序则包含ARMISA指令序列。机器语言程序指令存放于存储器内,且由微处理器提取并执行。[0116]硬件指令转译器,包含多个晶体管的配置,用以接收ISA机器语言指令(例如X86ISA或是ARMISA机器语言指令)作为输入,并对应地输出一个或多个微指令至微处理器的执行管线。执行管线执行微指令的执行结果由ISA指令所定义。因此,执行管线通过对这些微指令的集体执行来“实现”ISA指令。也就是说,执行管线通过对于硬件指令转译器输出的实行微指令的集体执行,实现所输入ISA指令所指定的操作,以产生此ISA指令定义的结果。因此,硬件指令转译器可视为是将ISA指令“转译(translate)”为一个或多个实行微指令。本实施例所描述的微处理器具有硬件指令转译器以将X86ISA指令与ARMISA指令转译为微指令。不过,需理解的是,硬件指令转译器并非必然可对x86使用者操作手册或是ARM使用者操作手册所定义的整个指令集进行转译,而往往只能转译这些指令中一个子集合,如同绝大多数X86ISA与ARMISA处理器只支持其对应的使用者操作手册所定义的一个指令子集合。具体来说,x86使用者操作手册定义由硬件指令转译器转译的指令子集合,不必然就对应至所有现存的X86ISA处理器,ARM使用者操作手册定义由硬件指令转译器转译的指令子集合,不必然就对应至所有现存的ARMISA处理器。[0117]执行管线,是一多层级序列(sequenceofstages)。此多层级序列的各个层级分别具有硬件逻辑与一硬件寄存器。硬件寄存器保持硬件逻辑的输出信号,并依据微处理器的时钟信号,将此输出信号提供至多层级序列的下一层级。执行管线可以具有多个多层级序列,例多重执行管线。执行管线接收微指令作为输入信号,并相应地执行微指令所指定的操作以输出执行结果。微指令所指定且由执行管线的硬件逻辑所执行的操作包括但不限于算数、逻辑、存储器载入/存储、比较、测试、与分支解析,对进行操作的数据格式包括但不限于整数、浮点数、字元、二进编码十进数(BCD)、与压缩格式(packedformat)。执行管线执行微指令以实现ISA指令(如x86与ARM),藉以产生ISA指令所定义的结果。执行管线不同于硬件指令转译器。具体来说,硬件指令转译器产生实行微指令,执行管线则是执行这些指令,但不产生这些实行微指令。[0118]指令快取,是微处理器内的一个随机存取存储器装置,微处理器将ISA机器语言程序的指令(例如X86ISA与ARMISA的机器语言指令)放置其中,这些指令提取自系统存储器并由微处理器依据ISA机器语言程序的执行流程来执行。具体来说,ISA定义一指令地址寄存器以持有下一个待执行ISA指令的存储器地址(举例来说,在X86ISA被定义为指令指标(IP)而在ARMISA被定义为程序计数器(PC)),而在微处理器执行机器语言程序以控制程序流程时,微处理器会更新指令地址寄存器的内容。ISA指令被快取来供后续提取之用。当该寄存器所包含的下一个机器语言程序的ISA指令地址位于目前的指令快取中,可依据指令寄存器的内容快速地从指令快取提取ISA指令由系统存储器中取出该ISA指令。尤其是,此程序基于指令地址寄存器(如指令指标(IP)或是程序计数器(PC))的存储器地址向指令快取取得数据,而非特地运用一载入或存储指令所指定的存储器地址来进行数据提取。因此,将指令集架构的指令视为数据(例如采用软件转译的系统的硬件部分所呈现的数据)的专用数据快取,特地运用一载入/存储地址,而非基于指令地址寄存器的数值做存取的,就不是此处所称的指令快取。此外,可取得指令与数据的混合式快取,是基于指令地址寄存器的数值以及基于载入/存储地址,而非仅仅基于载入/存储地址,亦被涵盖在本说明对指令快取的定义内。在本说明内容中,载入指令是指将数据由存储器读取至微处理器的指令,存储指令是指将数据由微处理器写入存储器的指令。[0119]微指令集,是微处理器的执行管线能够执行的指令(微指令)的集合。[0120]实施例说明[0121]本发明实施例公开的微处理器可通过硬件将其对应的X86ISA与ARMISA指令转译为由微处理器执行管线直接执行的微指令,以达到可执行X86ISA与ARMISA机器语言程序的目的。此微指令由不同于x861SA与ARMISA的微处理器微架构(microarchitecture)的微指令集所定义。由于本文所述的微处理器需要执行x86与ARM机器语言程序,微处理器的硬件指令转译器会将x86与ARM指令转译为微指令,并将这些微指令提供至微处理器的执行管线,由微处理器执行这些微指令以实现前述x86与ARM指令。由于这些实行微指令直接由硬件指令转译器提供至执行管线来执行,而不同于采用软件转译器的系统需于执行管线执行指令前,将预先存储本机(host)指令至存储器,因此,前述微处理器具有潜力能够以较快的执行速度执行x86与ARM机器语言程序。[0122]图1是一方块图显示本发明执行X86ISA与ARMISA机器语言程序的微处理器100的实施例。此微处理器100具有一指令快取102;—硬件指令转译器104,用以由指令快取102接收X86ISA指令与ARMISA指令124并将其转译为微指令126;—执行管线112,执行由硬件指令转译器104接收的微指令126以产生微指令结果128,该结果以运算元的形式回传至执行管线112;—寄存器档案106与一存储器子系统108,分别提供运算元至执行管线112并由执行管线112接收微指令结果128指令提取单元与分支预测器114,提供一提取地址134至指令快取102ARMISA定义的程序计数器寄存器116与一x86ISA定义的指令指标寄存器118,其依据微指令结果128进行更新,且提供其内容至指令提取单元与分支预测器114;以及多个配置寄存器122,提供一指令模式指标132与一环境模式指标136至硬件指令转译器104与指令提取单元与分支预测器114,并基于微指令结果128进行更新。[0123]由于微处理器100可执行x86ISA与ARMISA机器语言指令,微处理器100依据程序流程由系统存储器(未图示)提取指令至微处理器100。微处理器100存取最近提取的X86ISA与ARMISA的机器语言指令至指令快取102。指令提取单元114将依据由系统存储器提取的x86或ARM指令字节区段,产生一提取地址134。如果是命中指令快取102,指令快取102将位于提取地址134的x86或ARM指令字节区段提供至硬件指令转译器104,否则由系统存储器中提取指令集架构的指令124。指令提取单元114基于ARM程序计数器116与x86指令指标118的值产生提取地址134。具体来说,指令提取单元114会在一提取地址寄存器中维持一提取地址。任何时候指令提取单元114提取到新的ISA指令字节区段,它就会依据此区段的大小更新提取地址,并依据既有方式依序进行,直到出现一控制流程事件。控制流程事件包含例外事件的产生、分支预测器114的预测显示提取区段内有一将发生的分支(takenbranch)、以及由执行管线112回应一非由分支预测器114所预测的将发生分支指令的执行结果,而对ARM程序计数器116与x86指令指标118进行的更新。指令提取单元114将提取地址相应地更新为例外处理程序地址、预测目标地址或是执行目标地址以回应一控制流程事件。在一实施例中,指令快取102是一混合快取,以存取ISA指令124与数据。值得注意的是,在此混合快取的实施例中,虽然混合快取可基于一载入/存储地址将数据写入快取或由快取读取数据,在微处理器100由混合快取提取指令集架构的指令124的情况下,混合快取基于ARM程序计数器116与x86指令指标118的数值来存取,而非基于载入/存储地址。指令快取102可以是一随机存取存储器装置。[0124]指令模式指标132是一状态指示微处理器100当前是否正在提取、格式化(formatting)/解码、以及将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依据指令模式指标132指示的模式是x86或ARM与x86或ARM的语意(semantics)来进行更新。[0125]环境模式指标136是一状态指示微处理器100是使用x86或ARMISA的语意在此微处理器100所操作的多种执行环境,例如虚拟存储器、例外事件、快取控制、与全局执行时间保护。因此,指令模式指标132与环境模式指标136共同产生多个执行模式。在第一种模式中,指令模式指标132与环境模式指标136都指向x86ISA,微处理器100作为一般的X86ISA处理器。在第二种模式中,指令模式指标132与环境模式指标136都指向ARMISA,微处理器100作为一般的ARMISA处理器。在第三种模式中,指令模式指标132指向X86ISA,不过环境模式指标136则是指向ARMISA,此模式有利于在ARM操作系统或是超管理器的控制下执行使用者模式x86机器语言程序;相反地,在第四种模式中,指令模式指标132是指向ARMISA,不过环境模式指标136则是指向x86ISA,此模式有利于在x86操作系统或超管理器的控制下执行使用者模式ARM机器语言程序。指令模式指标132与环境模式指标136的数值在重置(reset)之初就已确定。在一实施例中,此初始值被视为微代码常数进行编码,不过可通过熔断配置熔丝和/或使用微代码修补进行修改。在另一实施例中,此初始值则是由一外部输入提供至微处理器100。在一实施例中,环境模式指标136只在由一重置至ARM(reset-to-ARM)指令124或是一重置至x86(reset-to_x86)指令124执行重置后才会改变(请参照下述图6A及图6B);亦即,在微处理器100正常运作而未由一般重置、重置至x86或重置至ARM指令124执行重置时,环境模式指标136并不会改变。[0126]硬件指令转译器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并具有布林逻辑门以产生实行微指令126(如图2所示的简单指令转译器204)。在一实施例中,硬件指令转译器104并具有一微代码只读存储器(如图2中复杂指令转译器206的元件234),硬件指令转译器104利用此微代码只读存储器,并依据复杂ISA指令124产生实行微指令126,这部分将在图2的说明内容会有进一步的说明。就一优选实施例而言,硬件指令转译器104不必然要能转译x86使用者操作手册或是ARM使用者操作手册所定义的整个ISA指令124集,而只要能够转译这些指令的一个子集合即可。具体来说,由χ86使用者操作手册定义且由硬件指令转译器104转译的ISA指令124的子集合,并不必然对应至任何Intel开发的既有x86ISA处理器,而由ARM使用者操作手册定义且由硬件指令转译器104转译的ISA指令124的子集合并不必然对应至任何由ARMLtd.开发的既有的ISA处理器。前述一个或多个用以实现x86或ARMISA指令124的实行微指令126,可由硬件指令转译器104—次全部提供至执行管线112或是依序提供。本实施例的优点在于,硬件指令转译器104可将实行微指令126直接提供至执行管线112执行,而不需要将这些微指令126存储于设置两者间的存储器。在图1的微处理器100的实施例中,当微处理器100执行x86或是ARM机器语言程序时,微处理器100每一次执行x86或是ARM指令124时,硬件指令转译器104就会将x86或ARM机器语言指令124转译为一个或多个微指令126。不过,图8的实施例则是利用一微指令快取以避免微处理器100每次执行x86或ARMISA指令124所会遭遇到的重复转译的问题。硬件指令转译器104的实施例在图2会有更详细的说明。[0127]执行管线112执行由硬件指令转译器104提供的实行微指令126。基本上,执行管线112是一通用高速微指令处理器。虽然本文所描述的功能由具有X86/ARM特定特征的执行管线112执行,但大多数X86/ARM特定功能其实是由此微处理器100的其他部分,如硬件指令转译器104,来执行。在一实施例中,执行管线112执行由硬件指令转译器104接收到的实行微指令126的寄存器重命名、超标量发布、与非循序执行。执行管线112在图4会有更详细的说明。[0128]微处理器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指令集的指令的编码方式进行编码。亦即,虽然有许多相同的操作(如:相加、偏移、载入、返回)在微指令集以及x86与ARMISA指令集中都有指定,微指令集与x86或ARMISA指令集的二进制操作码值对应表并没有一对一对应。微指令集与x86或ARMISA指令集的二进制操作码值对应表相同通常是巧合,其间仍不具有一对一的对应关系。第三,微指令集的微指令位栏与x86或是ARMISA指令集的指令位栏也不是一对一对应。[0129]整体而言,微处理器100可执行X86ISA与ARMISA机器语言程序指令。然而,执行管线112本身无法执行x86或ARMISA机器语言指令;而是执行由x861SA与ARMISA指令转译成的微处理器100微架构的微指令集的实行微指令126。然而,虽然此微架构与X86ISA以及ARMISA不同,本发明亦提出其他实施例将微指令集与其他微架构特定的资源开放给使用者。在这些实施例中,此微架构可有效地作为在X86ISA与ARMISA外之一个具有微处理器所能执行的机器语言程序的第三ISA。[0130]下表(表I)描述本发明微处理器100的一实施例的微指令集的微指令126的一些位栏。[0131]【权利要求】1.一种微处理器,包含:多个引用(instantiate)IA-32架构的EDX与EAX通用寄存器(GPR)的硬件寄存器;以及多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器;其中,该微处理器对于R8至R15各该通用寄存器关联一相对应的唯一(unique)的特定模式寄存器(MSR)地址;其中,回应一特定R8至R15这些通用寄存器其中之一的该相对应的唯一的特定模式寄存器地址的IA-32架构的读取特定模式寄存器(RDMSR)指令,该微处理器将引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用该EDX=EAX寄存器的该硬件寄存器。2.如权利要求1所述的微处理器,其中,该微处理器可编程执行于多个操作模式(operatingmodes),这些操作模式包含一Intel64架构64位操作模式与多个非64位操作模式;其中,回应该RDMSR指令,该微处理器将引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用该EDX:EAX寄存器的该硬件寄存器,即使该微处理器执行于该非64位操作模式。3.如权利要求2所述的微处理器,其中,R8至R15这些通用寄存器仅在该微处理器执行于该Intel64架构64位操作模式下,可被该Intel64架构的四倍字移动(MOVQ)指令取用。4.如权利要求1所述的微处理器,其中,关联于R8至R15各该通用寄存器其中之一的该相对应的唯一特定模式寄存器地址是该微处理器定义的一特定模式寄存器地址空间内的一相对应唯一值;其中,该微处理器由该IA-32架构的ECX通用寄存器中,取得R8至R15这些通用寄存器的该相对应`的唯一特定模式寄存器地址。5.如权利要求1所述的微处理器,其中,该微处理器在一特定模式寄存器地址空间内定义一唯一GPRMSR地址,其中该唯一GPRMSR地址全局(globally)关联于该微处理器的一组通用寄存器,该组通用寄存器包含R8至R15这些通用寄存器;其中,关联于R8至R15各该通用寄存器的该相对应的唯一特定模式寄存器地址是该微处理器定义的一GPRMSR子地址空间内的一相对应唯一值;其中,当该IA-32架构ECX通用寄存器包含该全局关联的唯一特定模式寄存器地址,该微处理器由该IA-32架构EAX、EBX、EDX、EBP、ESP、ESI与EDI通用寄存器中预设的一个,取得R8至R15这些通用寄存器的该相对应的唯一特定模式寄存器地址。6.如权利要求1所述的微处理器,还包含:多个硬件寄存器,用以引用该Intel64架构的PAX-RSP通用寄存器;其中,该微处理器将PAX-RSP各该通用寄存器关联至一相对应的唯一特定模式寄存器地址;其中,回应一特定PAX-RSP这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的RDMSR指令,该微处理器将引用RAX-RSP这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用该EDX:EAX寄存器的该硬件寄存器。7.如权利要求1所述的微处理器,还包含:多个引用数据流单指令多数据扩展指令集(StreamingSIMDExtensions,SSE)XMM寄存器的硬件寄存器;其中,该微处理器对于这些XMM寄存器的每一个半部分都关联有一相对应唯一特定模式寄存器地址,该半部分是64位;其中,回应一特定这些XMM寄存器其中一个半部分的该相对应唯一特定模式寄存器地址的IA-32架构的RDMSR指令,该微处理器将引用这些XMM寄存器中特定的该半部分的该硬件寄存器的内容读入引用该EDX=EAX寄存器的该硬件寄存器。8.如权利要求7所述的微处理器,回应该RDMSR指令,该微处理器将引用这些XMM寄存器中特定的该半部分的该硬件寄存器的内容读入引用该EDX=EAX寄存器的该硬件寄存器,即使该微处理器并未开启支持SSE的功能。9.如权利要求1所述的微处理器,还包含:多个引用先进向量扩充指令集(AdvancedVectorExtensions,AVX)YMM寄存器的硬件寄存器;其中,该微处理器对于这些YMM寄存器中每一个四分之一部分都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址,该四分之一部分是64位;其中,回应一特定这些YMM寄存器其中一个四分之一部分的该相对应唯一特定模式寄存器地址的IA-32架构的RDMSR指令,该微处理器将引用这些YMM寄存器中特定的该四分之一部分的该硬件寄存器的内容读入引用该EDX:EAX寄存器的该硬件寄存器。10.如权利要求9所述的微处理器,回应该RDMSR指令,该微处理器将引用这些YMM寄存器中特定的该四分之一部分的该硬件寄存器的内容读入引用该EDX:EAX寄存器的该硬件寄存器,即使该微处理器并未开启支持YMM的功能。11.如权利要求1所述的微处理器,其中,回应一特定R8至R15这些通用寄存器的其中之一的该相对应的唯一特定模式寄存器地址的IA-32架构性能监控计数器(RDPMC)指令,该微处理器将引用该被特定的R8至R15通用寄存器的该硬件寄存器的内容读入引用该EDXiEAX寄存器的硬件寄存器。12.一种微处理器的操作方法,该微处理器包含多个引用(instantiate)IA-32架构的EDX与EAX通用寄存器(GPR)的硬件寄存器以及多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器,该方法包含:该微处理器对于R8至R15各该通用寄存器中的每一个都关联(associating)—相对应的唯一(unique)特定模式寄存器(MSR)地址;该微处理器面临一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的RDMSR指令;以及该微处理器将引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用该EDX=EAX寄存器的该硬件寄存器。13.如权利要求12所述的方法,其中,该微处理器可编程执行于多个操作模式(operatingmodes),这些操作模式包含一Intel64架构64位操作模式与多个非64位操作模式;其中,该微处理器将引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用该EDX=EAX寄存器的该硬件寄存器,即使该微处理器执行于该非64位操作模式。14.如权利要求12所述的方法,其中,关联于R8至R15各该通用寄存器其中之一的该相对应的唯一特定模式寄存器地址由该微处理器定义的一特定模式寄存器地址空间内的一相对应唯一值;该方法还包含:该微处理器由该IA-32架构的ECX通用寄存器中,取得R8至R15这些通用寄存器的该相对应的唯一特定模式寄存器地址。15.如权利要求12所述的方法,其中,该微处理器在一特定模式寄存器地址空间内定义一唯一的GPRMSR地址,其中,该唯一的GPRMSR地址全局(globally)关联于该微处理器的一组通用寄存器,该组通用寄存器包含R8至R15这些通用寄存器;其中,关联于R8至R15各该通用寄存器的该相对应的唯一特定模式寄存器地址由该微处理器定义的一GPRMSR子地址空间内的一相对应唯一值;该方法还包含:当该IA-32架构ECX通用寄存器包含该全局关联的唯一特定模式寄存器地址,该微处理器由该IA-32架构EAX、EBX、EDX、EBP、ESP、ESI与EDI通用寄存器中预设的一个,取得R8至R15这些通用寄存器的该相对应的唯一特定模式寄存器地址。16.如权利要求12所述的方法,其中,该微处理器包含多个引用该Intel64架构的PAX-RSP通用寄存器的硬件寄存器;其中,该微处理器将各该PAX-RSP通用寄存器关联至一相对应的唯一特定模式寄存器地址;该方法还包含:回应一特定PAX-RSP这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的RDMSR指令,该微处理器将引用RAX-RSP这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用该EDXiEAX寄存器的该硬件寄存器。17.如权利要求12所述的方法,该微处理器包含多个引用数据流单指令多数据扩展指令集(SSE)XMM寄存器的硬件寄存器;其中,该微处理器对于这些XMM寄存器中每一个半部分都关联有一相对应唯一特定模式寄存器地址,该半部分是64位;该方法还包含:回应一特定这些XMM寄存器其中一个半部分的该相对应唯一特定模式寄存器地址的IA-32架构的RDMSR指令,该微处理器将引用这些XMM寄存器中特定的该半部分的该硬件寄存器的内容读入引用该EDX=EAX寄存器的该硬件寄存器。18.如权利要求12所述的方法,其中,该微处理器包含多个引用先进向量扩充指令集(AVX)YMM寄存器的硬件寄存器;其中,该微处理器对于这些YMM寄存器中每一个四分之一部分都关联有一相对应唯一特定模式寄存器地址,该四分之一部分是64位;该方法还包含:回应一特定这些YMM寄存器其中一个四分之一部分的该相对应唯一特定模式寄存器地址的IA-32架构的RDMSR指令,该微处理器将引用这些YMM寄存器中特定的该四分之一部分的该硬件寄存器的内容`读入引用该EDX=EAX寄存器的该硬件寄存器。19.一种微处理器,包含:多个引用(instantiate)IA-32架构的EDX与EAX通用寄存器(GPR)的硬件寄存器;以及多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器;其中,该微处理器对于R8至R15各该通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址;其中,回应一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的写入特定模式寄存器(WRMSR)指令,该微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器。20.如权利要求19所述的微处理器,其中,该微处理器可编程执行于多个操作模式(operatingmodes),这些操作模式包含一Intel64架构64位操作模式与多个非64位操作模式;其中,回应该WRMSR指令,该微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器,即使该微处理器执行于该非64位操作模式。21.如权利要求20所述的微处理器,其中,R8至R15这些通用寄存器仅在该微处理器执行于该Intel64架构64位操作模式下,可被该Intel64架构的四倍字移动(MOVQ)指令取用。22.如权利要求19所述的微处理器,其中,关联于R8至R15各该通用寄存器其中之一的该相对应的唯一特定模式寄存器地址由该微处理器定义的一特定模式寄存器地址空间内的一相对应唯一值;其中,该微处理器由该IA-32架构的ECX通用寄存器中,取得R8至Rl5这些通用寄存器的该相对应的唯一特定模式寄存器地址。23.如权利要求19所述的微处理器,其中,该微处理器在一特定模式寄存器地址空间内定义一唯一的GPRMSR地址,其中该唯一的GPRMSR地址全局(globally)关联于该微处理器的一组通用寄存器,该组通用寄存器包含R8至R15这些通用寄存器;其中,关联于R8至R15各该通用寄存器的该相对应的唯一特定模式寄存器地址由该微处理器定义的一GPRMSR子地址空间内的一相对应唯一值;其中,当该IA-32架构ECX通用寄存器包含该全局关联的唯一特定模式寄存器地址,该微处理器由该IA-32架构EAX、EBX、EDX、EBP、ESP、ESI与EDI通用寄存器中预设的一个,取得R8至R15这些通用寄存器的该相对应的唯一特定模式寄存器地址。24.如权利要求19所述的微处理器,还包含:多个引用该Intel64架构的PAX-RSP通用寄存器的硬件寄存器;其中,该微处理器将各该PAX-RSP通用寄存器关联至一相对应的唯一特定模式寄存器地址;其中,回应一特定PAX-RSP这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的WRMSR指令,该微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用RAX-RSP这些通用寄存器中特定的该通用寄存器的该硬件寄存器。25.如权利要求19所述的微处理器,还包含:多个引用数据流单指令多数据扩展指令集(SSE)XMM寄存器的硬件寄存器;其中,该微处理器对于这些XMM寄存器中每一个半部分都关联有一相对应唯一特定模式寄存器地址,该半部分是64位;其中,回应一特定这些XMM寄存器其中一个半部分的该相对应唯一特定模式寄存器地址的IA-32架构的WRMSR指令,该微处理器将引用该EDX:EAX寄存器的该硬件寄存器的内容写入引用这些XMM寄存器中特定的该半部分的该硬件寄存器。26.如权利要求25所述的微处理器,回应该WRMSR指令,该微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用这些XMM寄存器中特定的该半部分的该硬件寄存器,即使该微处理器并未开启支持SSE的功能。27.如权利要求19所述的微处理器,还包含:多个引用先进向量扩充指令集(AVX)YMM寄存器的硬件寄存器;其中,该微处理器对于这些YMM寄存器中每一个四分之一部分都关联有一相对应唯一特定模式寄存器地址,该四分之一部分是64位;其中,回应一特定这些YMM寄存器其中一个四分之一部分的该相对应唯一特定模式寄存器地址的IA-32架构的WRMSR指令,该微处理器将引用该EDX:EAX寄存器的该硬件寄存器的内容写入引用这些YMM寄存器中特定的该四分之一部分的该硬件寄存器。28.如权利要求27所述的微处理器,回应该WRMSR指令,该微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用这些YMM寄存器中特定的该四分之一部分的该硬件寄存器,即使该微处理器并未开启支持YMM的功能。29.一种微处理器的操作方法,该微处理器包含多个引用(instantiate)IA-32架构的EDX与EAX通用寄存器(GPR)的硬件寄存器以及多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器,该方法包含:该微处理器对于R8至R15各该通用寄存器中的每一个都关联(associating)—相对应的唯一(unique)特定模式寄存器(MSR)地址;该微处理器遭遇一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的WRMSR指令;以及该微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器。30.如权利要求29所述的方法,其中,该微处理器可编程执行于多个操作模式(operatingmodes),这些操作模式包含一Intel64架构64位操作模式与多个非64位操作模式;其中,该微处理器将引用该EDX:EAX寄存器的该硬件寄存器的内容写入引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器,即使该微处理器执行于该非64位操作模式。31.如权利要求29所述的方法,其中,关联于R8至R15各该通用寄存器其中之一的该相对应的唯一特定模式寄存器地址由该微处理器定义的一特定模式寄存器地址空间内的一相对应唯一值;该方法还包含:该微处理器由该IA-32架构的ECX通用寄存器中,取得R8至R15这些通用寄存器的该相对应的唯一特定模式寄存器地址。32.如权利要求29所述的方法,其中,该微处理器在一特定模式寄存器地址空间内定义一唯一的GPRMSR地址,其中,该唯一的GPRMSR地址全局(globally)关联于该微处理器的一组通用寄存器,该组通用寄存器包含R8至R15这些通用寄存器;其中,关联于R8至R15各该通用寄存器的该相对应的唯一特定模式寄存器地址由该微处理器定义的一GPRMSR子地址空间内的一相对应唯一值;该方法还包含:当该IA-32架构ECX通用寄存器包含该全局关联的唯一特定模式寄存器地址,该微处理器由该IA-32架构EAX、EBX、EDX、EBP、ESP、ESI与EDI通用寄存器中预设的一个,取得R8至R15这些通用寄存器的该相对应的唯一特定模式寄存器地址。33.如权利要求29所述的方法,其中,该微处理器包含多个引用该Intel64架构的PAX-RSP通用寄存器的硬件寄存器;其中,该微处理器将各该PAX-RSP通用寄存器关联至一相对应的唯一特定模式寄存器地址;该方法还包含:回应一特定PAX-RSP这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的IA-32架构的WRMSR指令,该微处理器将引用该EDX:EAX寄存器的该硬件寄存器的内容写入引用RAX-RSP这些通用寄存器中特定的该通用寄存器的该硬件寄存器。34.如权利要求29所述的方法,该微处理器包含多个引用数据流单指令多数据扩展指令集(SSE)XMM寄存器的硬件寄存器;其中,该微处理器对于这些XMM寄存器中每一个半部分都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址,该半部分是64位;该方法还包含:回应一特定这些XMM寄存器其中一个半部分的该相对应唯一特定模式寄存器地址的IA-32架构的WRMSR指令,该微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用这些XMM寄存器中特定的该半部分的该硬件寄存器。35.如权利要求29所述的方法,其中,该微处理器包含多个引用先进向量扩充指令集(AVX)YMM寄存器的硬件寄存器;其中,该微处理器对于这些YMM寄存器中每一个四分之一部分都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址,该四分之一部分是64位;该方法还包含:回应一特定这些YMM寄存器其中一个四分之一部分的该相对应唯一特定模式寄存器地址的IA-32架构的WRMSR指令,该微处理器将引用该EDX=EAX寄存器的该硬件寄存器的内容写入引用这些YMM寄存器中特定的该四分之一部分的该硬件寄存器。36.如权利要求29所述的方法,其中,该WRMSR指令包含于该微处理器处于一Intel64架构非64位操作模式所执行的一程序内,其中,该WRMSR指令写入除错数据至引用这些R8至R15通用寄存器其中之一的该硬件寄存器内,以对该程序进行除错。37.一种微处理器,包含:多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器,其中,该微处理器对于R8至R15各该通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址;多个引用(instantiate)进阶精简指令集机器(ARM)架构的通用寄存器(GPR)的硬件寄存器;以及其中,回应一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的ARM架构的MRRC指令,该微处理器将引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器的内容读入引用这些ARM架构通用寄存器其中之二的该硬件寄存器。38.如权利要求37所述的微处理器,其中,这些ARM架构通用寄存器的该其中之二预设为该ARM架构R2:RO通用寄存器。39.如权利要求37所述的微处理器,其中,这些ARM架构通用寄存器的该其中之二由该MRRC指令所特定。`40.如权利要求37所述的微处理器,其中,关联于R8至R15各该通用寄存器的该相对应的唯一特定模式寄存器地址由该微处理器定义的一特定模式寄存器地址空间内的一相对应唯一值;其中,该微处理器由该ARM架构Rl通用寄存器取得R8至R15这些通用寄存器其中之一的该相对应的唯一特定模式寄存器地址。41.如权利要求37所述的微处理器,其中,该微处理器在一特定模式寄存器地址空间内定义一唯一的GPRMSR地址,其中该唯一的GPRMSR地址全局(globally)关联于该微处理器的一组通用寄存器,该组通用寄存器包含R8至R15这些通用寄存器;其中,关联于R8至R15各该通用寄存器的该相对应的唯一特定模式寄存器地址由该微处理器定义的一GPRMSR子地址空间内的一相对应唯一值;其中,当该ARM架构Rl通用寄存器包含该全局关联的唯一特定模式寄存器地址,该微处理器由该ARM架构Rl通用寄存器以外的其他通用寄存器中预设的一个,取得R8至R15这些通用寄存器的该相对应的唯一特定模式寄存器地址。42.如权利要求37所述的微处理器,其中,引用该ARM架构R8至R14通用寄存器的这些硬件寄存器与引用该Intel64架构R8D至R14D通用寄存器的这些硬件寄存器是相同部分的硬件寄存器。43.一种微处理器,包含:多个引用Intel64架构的R8至R15通用寄存器的硬件寄存器,其中,该微处理器对于R8至R15各该通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址;多个引用(instantiate)进阶精简指令集机器(ARM)架构的通用寄存器(GPR)的硬件寄存器;以及其中,回应一特定R8至R15这些通用寄存器其中之一的该相对应唯一特定模式寄存器地址的ARM架构的MCRR指令,该微处理器将引用这些ARM架构通用寄存器其中之二的该硬件寄存器的内容写入引用R8至R15这些通用寄存器中特定的该通用寄存器的该硬件寄存器。44.如权利要求43所述的微处理器,其中,这些ARM架构通用寄存器的该其中之二预设为该ARM架构R2:RO通用寄存器。45.如权利要求43所述的微处理器,其中,这些ARM架构通用寄存器的该其中之二由该MCRR指令所特定。46.如权利要求43所述的微处理器,其中,关联于R8至R15各该通用寄存器的该相对应的唯一特定模式寄存器地址由该微处理器定义的一特定模式寄存器地址空间内的一相对应唯一值;其中,该微处理器由该ARM架构Rl通用寄存器取得R8至R15这些通用寄存器其中之一的该相对应的唯一特定模式寄存器地址。47.如权利要求43所述的微处理器,其中,该微处理器在一特定模式寄存器地址空间内定义一唯一的GPRMSR地址,其中该唯一的GPRMSR地址全局(globally)关联于该微处理器的一组通用寄存器,该组通用寄存器包含R8至R15这些通用寄存器;其中,关联于R8至R15各该通用寄存器的该相对应的唯一特定模式寄存器地址由该微处理器定义的一GPRMSR子地址空间内的一相对应唯一值;其中,当该ARM架构Rl通用寄存器包含该全局关联的唯一特定模式寄存器地址,该微处理器由该ARM架构Rl通用寄存器以外的其他通用寄存器中预设的一个,取得R8至R15这些通用寄存器的该相对应的唯一特定模式寄存器地址。48.如权利要求43所述的微处理器,其中,引用该ARM架构R8至R14通用寄存器的这些硬件寄存器与引用该Intel64架构R8D至R14D通用寄存器的这些硬件寄存器是相同部分的硬件寄存器。49.一种方法,包含:当一处理器处于一IA-32架构的非64位操作模式时,运作于该处理器的一第一程序,将一数据值写入Intel64架构64位通用寄存器的其中之一;由该第一程序,使该处理器由运作于该IA-32架构的非64位操作模式切换至运作于一ARM架构操作模式;以及当该处理器处于该ARM架构操作模式时,运作于该处理器的一第二程序由该Intel64架构64位通用寄存器的该其中之一读取至少部分由该第一程序写入的该数据值。50.如权利要求49所述的方法,其中,该微处理器对于该Intel64架构64位通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址。51.如权利要求49所述的方法,其中,将一数据值写入Intel64架构64位通用寄存器的该其中之一的步骤包括:处于一IA-32架构的非64位操作模式时,运作于该处理器的该第一程序,使用一IA-32架构WRMSR指令将该数据值写入Intel64架构64位通用寄存器的该其中之一。52.如权利要求49所述的方法,其中,由该Intel64架构64位通用寄存器的该其中之一读取至少部分由该第一程序写入的该数据值的步骤包括:使用一ARM架构MRRC指令由该Intel64架构64位通用寄存器的该其中之一读取至少部分由该第一程序写入的该数据值。53.如权利要求49所述的方法,其中,该处理器包含多个硬件寄存器,由该ARM架构与引用该ARM架构的RO至R14通用寄存器与相对应的该Intel64架构32位EAX-R14D通用寄存器的该Intel64架构共享。54.如权利要求53所述的方法,其中,使该处理器由运作于该IA-32架构的非64位操作模式切换至运作于一ARM架构操作模式的步骤包含:使该处理器重置;以及该处理器避免因应该重置对于这些共享的硬件寄存器的调整。55.如权利要求53所述的方法,其中,由该Intel64架构64位通用寄存器的该其中之一读取至少部分由该第一程序写入的该数据值的步骤包括:使用一ARM架构指令由对应于该Intel64架构64位通用寄存器的该其中之一的ARM架构RO至R14通用寄存器的读取由该第一程序写入的该数据值的下部分32位。56.如权利要求49所述的方法,其中,该第一程序包含一开机载入程序(bootloaderprogram),该第二程序包含一操作系统,其中,该至少部分数据值包含一个或多个由该开机载入程序传递至该操作系统的参数。57.一种方法,包含:当处于一ARM架构操作模式时,运作于一处理器的一第一程序,将一数据值写入Intel64架构64位通用寄存器的其中之一的至少一部分;由该第一程序,使该处`理器由运作于该ARM架构操作模式切换至运作于一IA-32架构操作模式;以及当处于该IA-32架构操作模式时,运作于该处理器的一第二程序,由该Intel64架构64位通用寄存器的该其中之一读取至少部分由该第一程序写入的该数据值。58.如权利要求57所述的方法,其中,该微处理器对于该Intel64架构64位通用寄存器中的每一个都关联有一相对应唯一(unique)特定模式寄存器(MSR)地址。59.如权利要求57所述的方法,其中,将一数据值写入Intel64架构64位通用寄存器的该其中之一的至少一部分的步骤包括:处于一ARM架构操作模式时,运作于该处理器的该第一程序,使用一ARM架构MCRR指令将该数据值写入Intel64架构64位通用寄存器的该其中之一的至少一部分。60.如权利要求57所述的方法,其中,该处理器包含多个硬件寄存器,由该ARM架构与引用该ARM架构的RO至R14通用寄存器与相对应的该Intel64架构32位EAX-R14D通用寄存器的该Intel64架构共享。61.如权利要求60所述的方法,其中,使该处理器由运作于该ARM架构操作模式切换至运作于一IA-32架构操作模式的步骤包含:使该处理器重置;以及该处理器避免因应该重置对于这些共享的硬件寄存器的调整。62.如权利要求57所述的方法,其中,该第一程序包含一开机载入程序(bootloaderprogram),该第二程序包含一操作系统,其中,该至少部分数据值包含一个或多个由该开机载入程序传递至该操作系统的参数。【文档编号】G06F9/30GK103530089SQ201310390517【公开日】2014年1月22日申请日期:2013年8月30日优先权日:2012年8月31日【发明者】马克.J.埃伯索尔申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1