执行模式备份寄存器的模拟制造技术

技术编号:7842933 阅读:211 留言:0更新日期:2012-10-13 01:23
一种执行模式备份寄存器的模拟。一种包含处理模式的微处理器,处理模式包含使用者模式与多个意外事件模式。执行单元在特定于程序指令的操作数上执行算数运算。第一存储元件组具有第一操作数子集,并供第一操作数子集给其耦接的执行单元。第二存储元件组关联于各处理模式,并具有第二操作数子集,且第二存储元件组无法直接提供第二操作数子集给执行单元。在自当前的模式进入新的模式时,逻辑将第一存储元件组中的第一操作数子集,存储至关联于当前处理模式的第二存储元件组,并将关联于新处理模式的第二存储元件组中的第二操作数子集恢复至第一存储元件组。

【技术实现步骤摘要】

本专利技术是关于微处理器的
,特别是关于在指令集中具有条件指令的微处理器。
技术介绍
由 Intel Corporation of Santa Clara, California 开发出来的 x86 处理器架构以及由ARM Ltd. of Cambridge, UK开发出来的先进精简指令集机器(ad vanced risemachines, 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架构的程序的运算装置。使系统能够执行多个指令集程序的需求由来已久,这些需求主要是因为消费者会投入相当成本在旧硬件上执行的软件程序,而其指令集往往不兼容于新硬件。举例来说,IBM 360系统Model 30即具有兼容于IBM 1401系统的特征来缓和使用者由1401系统转换至较高效能与改良特征的360系统的痛苦。Model 30具有360系统与1401系统的只读存储控制(Read Only Storage, ROS)),使其在辅助存储空间预先存入所需信息的情况下能够使用于1401系统。此外,在软件程序以高阶语言开发的情况下,新的硬件开发商几乎没有办法控制为旧硬件所编译的软件程序,软件开发商也欠缺动力为新硬件重新编译(re-compile)源码,此情形尤其发生在软件开发商与硬件开发商是不同个体的情况。请参照 Siberman 与 Ebcioglu 于 Computer, June 1993, No. 6 提出的文章 “An ArchitecturalFramework for Supporting Heterogeneous Instruction-Set Architectures,,。Silberman与Ebcioglu提出的系统内含有执行原生码的原生引擎(native engine)与执 行目的码的迁移引擎(migrant engine),可依据转译软件将目的码(object bode)转译为原生码(native code)的转译效果,在这两种编码间视需要进行转换,以使既存复杂指令集(CISC)架构(下称基础架构,例如IBMS/390)的软件程序执行于精简指令集(RISC)、超纯量架构(superscalar)与超长指令字(VLIW)架构(下称原生架构)系统,藉以改善软件程序的效能。请参照2006年5月16日公开的美国专利第7,047,394号专利案,Van Dyke等公开一处理器,具有用以执行原生精简指令集(Tapestry)的程序指令的执行管线,并利用硬件转译与软件转译的结合,将x86程序指令转译为原生精简指令集的指令。Nakada等提出具有ARM架构的前端管线与Fujitsu FR-V(超长指令字)架构的前端管线的异质多线程处理器(heterogeneous SMT processor)。ARM架构前端管线是用于非规则软件程序(如操作系统),Fujitsu FR-V(超长指令字)架构的前端管线是用于多介质应用程序以将一增加的超长指令字队列汇入FR-V超长指令字的后端管线以维持来自前端管线的指令。请参照 Buchty 与 Weib, eds, Universitatsverlag Karlsruhe 于 2008 年11月在 First International Workshop on New Frontiers in High-performance andHardware-aware Computing(HipHaC,08), Lake Como, Italy,(配合 MICRO-41)发表的论文集(ISBN 978-3-86644-298-6)的文章 “0R0CHI:A Multiple Instruction Set SMTProcessor^文中提出的方法是用以降低整个系统在异质系统单晶片(SOC)装置,如德州仪器OMAP应用处理器,内所占据的空间。此异质系统单晶片装置具有一个ARM处理器核心加上一个或多个协处理器(co-processors)(例如TMS320、多种数字信号处理器、或是多种图形处理单元(GPUs))。这些协处理器并不分享指令执行资源,而只是整合于同一晶片上的不同处理核心。软件转译器(softwaretranslator)、或称软件模拟器(software emulator,software simulator本文档来自技高网...

【技术保护点】

【技术特征摘要】
2011.04.07 US 61/473,067;2011.04.07 US 61/473,069;1.ー种微处理器,包含 多个处理模式,包含一使用者模式与多个意外事件模式; 至少ー执行単元,用以在程序指令指定的操作数上执行多个算数运算; 一第一存储元件组,耦接于该执行単元,其中,该第一存储元件组包含一第一操作数子集,并提供该第一操作数子集给该执行単元; 一第二存储元件组,关联于各处理模式,其中,该第二存储元件组包含一第二操作数子集,其中,该第二存储元件组无法直接提供该第二操作数子集给该执行単元;以及 ー逻辑,其中,当从该些处理模式中的一当前处理模式进入一新处理模式时,该逻辑将该第一存储元件组中的该第一操作数子集存储至关联于该当前处理模式的第二存储元件组,并将关联于该新处理模式的该第二存储元件组中的该第二操作数子集恢复至该第一存储元件组。2.如权利要求I所述的微处理器,还包含 一第三存储元件组,其耦接于该执行単元,其中,该第三存储元件组包含一第三操作数子集,并提供该第三操作数子集至该执行単元; 其中该新处理模式是该些意外事件模式中的一第一意外事件模式; 一第四存储元件组,其关联于该第一意外事件模式,其中该第四存储元件组包含一第四操作数子集,其中该第四存储元件组无法直接提供该第四操作数子集至该执行単元;以及 一第五存储元件组,其关联于除了该第一意外事件模式的外的所有该些处理模式,其中,该第五存储元件组包含一第五操作数子集,其中该第五存储元件组无法直接提供该第五操作数子集至该执行単元; 其中,当从该当前处理模式进入该新处理模式或该第一意外事件模式时,该逻辑额外将该第三存储单元组的该第三操作数子集存储至该第五存储单元,并将该第四存储元件组中的该第四操作数子集恢复至该第三存储元件组; 其中,当从该第一意外事件模式进入该些意外事件模式的一第二意外事件模式时,该逻辑将该第三存储单元组的该第四操作数子集存储至该第四存储单元,并将关联于该新处理模式的该第五存储元件组中的该第三操作数子集恢复至该第三存储元件组。3.如权利要求2所述的微处理器, 其中,该微处理器利用该第一存储元件组的ー第一存储元件以保存该ARM ISA的ー堆迭式指示符寄存器操作数,并利用该第一存储元件组的ー第二存储元件以保存该ARM ISA的ー连结寄存器操作数,以在该ARM ISA的该连结寄存器操作数上的执行单元执行该些算数运算; 其中,各第二存储元件组包含一第一存储元件以保存一 ARM ISA堆迭式指示符寄存器操作数,以及ー第二存储元件以保存用以关联处理模式的一 ARM ISA连结寄存器操作数;其中,该微处理器利用该第三存储元件组以保存ARM ISA R8-R12通用寄存器的操作数,以在该ARM ISA R8-R12通用寄存器的操作数上的执行单元执行该些算数运算; 其中,该第四存储元件组包含多个用以保存ARM ISAR8-R12通用寄存器操作数的存储元件,以对应ARM ISA FIQ意外事件模式; 其中,该第五存储元件组包含多个用以保存ARM ISAR8-R12通用寄存器操作数的存储元件,以对应除了 ARM ISA FIQ意外事件模式的外全域的ARM ISA处理模式。4.如权利要求I所述的微处理器,其中该微处理器利用该第一存储元件组的该第一存储元件以保存该ARM ISA的一堆迭式指示符寄存器操作数,以及利用该第一存储元件组的该第二存储元件以保存该ARM ISA的ー连结寄存器操作数,以在该ARM ISA的该连结寄存器操作数上的执行单元执行该些算数运算。5.如权利要求I所述的微处理器,其中该第一存储元件组包含多个硬件寄存器,其中该第二存储元件组包含一随机存取存储器(RAM)。6.如权利要求5所述的微处理器, 其中,该随机存取存储器可通过该微处理器的微码进行载入或写入; 其中,该随机存取存储器不可通过ISA机器语言程序指令进行载入或写入。7.如权利要求I所述的微处理器,还包含 一超纯量乱序执行管线,包含 至少ー执行単元;以及 一载入单元(load unit),其偶接于该第一存储元件组,其中该第二存储元件组提供该第二操作数子集至该载入単元,其中该载入単元提供该第二操作数子集至该执行単元。8.如权利要求I所述的微处理器,其中该些意外事件模式包含该ARMISA意外事件模式。9.如权利要求I所述的微处理器,其中该逻辑包含该微处理器的微码。10.如权利要求I所述的微处理器,其中该逻辑包含一硬件组合逻辑。11.如权利要求I所述的微处理器,还包含 一指令转译器,用以将该ARM ISA机器语言的指令转译至多个微指令,其中至少ー ARMISA指令命令该微处理器自该当前处理模式进入至该新处理模式;以及 ー执行管线,用以执行该些微指令以将该第一存储元件组的该第一操作数子集存储至关联于该当前处理模式的该第二存储元件组,以及恢复关联于该新处理模式的该第二存储元件组的该第二操作数子集至该第一存储元件组。12.如权利要求11所述的微处理器,其中该指令转译器还将X86ISA机器语言指令的指令转译为多个微指令,其中该些微指令是以不同于X86ISA指令集的指令的编码方式进行编码,其中该执行管线还执行该些微指令以产生由X86ISA指令所定义的結果。13.—种操作一微处理器的方法,该微处理器包含多个处理模式,该些处理模式具有一使用者模式以及多个意外事件模式,其中该微处理器还包含至少ー执行単元,该执行単元通过特定程序指令在操作数上执行多个算数运算,该方法包含 当该微处理器在该些处理模式中的一当前处理模式运行吋,自ー第一存储元件组中提供一第一操作数子集至该执行単元以执行该些算数运算; 自该当前处理模式进入该些处理模式的一新处理模式时,包含以下步骤 将该第一存储元件组的该第一操作数子集存储至关联于该当前处理模式的一第二存储单元组; 将该关联于该新处理模式的一第三存储元件组的ー第二操作数子集恢复至该第一存储元件组;以及 当该微处理器于该新处理模式中运行吋,自该第一存储元件组提供该第二操作数子集至该执行単元以执行该些算数运算。14.如权利要求13所述的方法,还包含 当该微处理器于该当前处理模式下运行吋,自ー第四存储元件组提供一第三操作数子集至该执行単元以执行该些算数运算; 其中当自该当前处理模式进入该新处理模式时,还包含 将该第四存储元件组的该第三操作数子集存储至关联于该新处理模式的一第五存储元件组;以及 将ー第六存储元件组的ー第四操作数子集恢复至该第四存储元件组,且该第六存储元件组关联于除该第一意外事件模式的外的该些处理模式; 当该微处理器于该新处理模式下运行吋,自该第四存储元件组提供该第四操作数子集至该执行単元以执行该些算数运算; 自该新处理模式进入该些处理模式的一第三处理模式时,包含 自该第四存储元件组的第四操作数子集存储至该第六存储元件组;以及将该第五存储元件组的该第三操作数子集恢复至该第四存储元件组以及当该微处理器于该第三处理模式下运行吋,自该第四存储元件组提供该第三操作数子集至该执行単元以执行该些算数运算。15.如权利要求14所述的方法,其中该第一存储元件组的ー第一存储元件具有一ARMISA的堆迭式寄存器操作数以及该第一存储元件组的ー第二存储元件具有一 ARM ISA的连结寄存器操作数,以在该ARM ISA的该连结寄存器操作数上的执行单元执行该些算数运算; 其中,该第二存储元件组与该第三存储元件组各包含具有一 ARM ISA堆迭式指示符寄存器操作数的一第一存储元件以及ー关联于该些处理模式并具有一ARM ISA连结寄存器操作数的一第二存储元件; 其中,该第四存储元件组具有ARM ISA R8-R12通用寄存器,以在该ARM ISA R8-R12通用寄存器上的执行单元执行该些算数运算; 其中,该第五存储元件组具有ARM ISA R8-R12通用寄存器操作数的存储元件,以对应该ARM ISAFIQ意外事件模式; 其中,该第六存储元件组包含具有ARM ISA R8-R12通用寄存器操作数的存储元件,以对应该除了该ARM ISAFIQ意外事件模式外所有的该些ARMISA处理模式。16.如权利要求13所述的方法,其中该第一存储元件组的ー第一存储元件具有该ARMISA的一堆迭式指示符寄存器操作数,以及该第一存储元件组的该第二存储元件具有该ARMISA的ー连结寄存器操作数,执行单元以在该ARM ISA的ー连结寄存器操作数上执行该些算数运算。17.如权利要求13所述的方法,其中该些意外事件模式包含该ARMISA意外事件模式。18.如权利要求13所述的方法,还包含 将ARM ISA机器指令语言的指令转译至多个微指令,其中至少ー ARMISA的指令命令该微处理器自该当前处理模式进入该新处理模式;以及 执行该些微指令以将该第一存储元件组的该第一操作数子集存储至关联于该当前处理模式的该第二存储元件组,以及将关联于该新处理模式的该第二存储元件组的该第二操作数子集恢复至该第一存储元件组。19.如权利要求18所述的方法,还包含 将X86ISA机器指令语言的指令转译至该些微指令,其中该些微指令是以不同于X86ISA指令集的指令的编码方式进行编码。20.一种电脑程序产品,编码于至少ー电脑可读取存储介质,以使用于ー运算装置,该电脑程序产品包括 适用于该介质的电脑可读取程序码,用以特定于ー微处理器,包含 一第一程序码,用以特定于多个处理模式,该些处理模式包含一使用者模式与多个意外事件模式; 一第二程序码,用以特定于至少一执行单元,该执行単元通过特定程序指令在操作数上执行多个算数运算; 一第三程序码,用以特定于ー第一存储元件组,该第一存储元件组耦接于该执行単元,其中该第一存储元件组具有一第一操作数子集,并提供该第一操作数子集至该执行単元; 一第四程序码,用以特定关联于该些处理模式的一第二存储元件组;其中该第二存储元件组具有一第二操作数子集,其中该第二操作数不可直接提供该第二操作数子集至该执行単元;以及 一第五程序码,用以特定ー逻辑,其中当自ー当前处理模式进入该些处理模式的一新处理模式吋,该逻辑存储该第一存储元件组的第一操作数子集至关联于该当前处理模式的该第二存储元件组,并恢复关联于该新处理模式的该第二存储元件组的该第二操作数子集至该第一存储元件组。21.如权利要求20所述的电脑程序产品,其中,该至少一电脑可读取存储介质是选自由碟片、磁带、或是其他磁性、光学或电子的存储介质以及网路、缆线、无线或其他通信介质所构成的一群组。22.—种微处理器,其支持一 ISA,该ISA特定多个处理模式以及特定多个架构寄存器,且该些架构寄存器关联于各处理模式,以及特定ー载入多重指令,该载入多重指令指令该微处理器自存储器内载入数据,并传入特定于该载入多重指令ー个或多个架构寄存器,该微处理器包含 一直接存储器,具有关联于该些架构寄存器的一第一部分的数据,并耦接于该处理器的至少ー执行単元,以提供该数据给该执行単元; ー间接存储器,具有关联于该些架构寄存器的一第二部分的数据,其中该间接存储器无法直接提供关联于该架构寄存器的该第二部分的数据至该执行单元; 其中,该些架构寄存器依据该些处理模式中的一当前处理模式,动态地分布于该架构寄存器的该第一部分与该架构寄存器的该第二部分;以及 其中,各架构寄存器特定于该载入多重指令 若当该架构寄存器位于该第一部分,该微处理器自存储器内载入数据,并传入至该直接存储器;以及 若当该架构暂存既位于该第二部分,该微处理器自存储器内载入数据,并传入至该直接存储器,而后将该直接存储器的数据转至该间接存储器。23.如权利要求22所述的微处理器,其中该微处理器所支持的该ISA包含ARMISA,其中,特定于ISA的该些处理模式包含ARM ISA使用者、系统、管理者、终止、未定、IRQ以及FIQ处理模式,其中,特定于该ISA的该架构寄存器包含关联于该使用者处理模式的ARMISA R0-R14寄存器,以及关联于该管理者、终止、未定、IRQ与FIQ处理模式的备份寄存器,其中特定于该ISA的该载入多重指令包含ARM ISA载入多重指令。24.如权利要求22所述的微处理器,还包含 一指令转译器,用以将该载入多重指令转译为该微处理器可执行的多个微指令,其中,各架构寄存器特定于该载入多重指令 若当该架构寄存器位于该第一部分,该指令转译器发送ー微指令,以自该存储器载入数据转入至该直接存储器; 若当该架构寄存器位于该第二部分,该指令转译器发送ー第一微指令,以自该存储器载入数据转入至该直接存储器,并且发送一第二微指令以将该直接存储器的数据转至该间接存储器。25.如权利要求24所述的微处理器,其中该指令转译器包含 一第一部分,发送该微指令以自存储器内载入数据,并送入该直接存储器,以及发送该第一微指令以自存储器内载入数据,并送入该直接存储器,其...

【专利技术属性】
技术研发人员:G葛兰亨利泰瑞派克斯罗德尼E虎克
申请(专利权)人:威盛电子股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1