CN101221514A - 选择处理器似乎遵循的架构级别的方法、处理器及系统 - Google Patents
选择处理器似乎遵循的架构级别的方法、处理器及系统 Download PDFInfo
- Publication number
- CN101221514A CN101221514A CNA2008100017721A CN200810001772A CN101221514A CN 101221514 A CN101221514 A CN 101221514A CN A2008100017721 A CNA2008100017721 A CN A2008100017721A CN 200810001772 A CN200810001772 A CN 200810001772A CN 101221514 A CN101221514 A CN 101221514A
- Authority
- CN
- China
- Prior art keywords
- processor
- logic
- privileged mode
- compatible
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明涉及一种选择处理器似乎遵循的架构级别的方法和系统,具体地说,涉及一种当执行特定逻辑分区或程序并在不同的处理器架构级别之间执行迁移时,在计算环境中选择处理器似乎遵循的架构级别的方法和系统。所述方法利用控制处理器要支持的架构级别的“处理器兼容性寄存器”(PCR)。在一个实施例中,所述PCR只能由超级特权软件来访问。所述超级特权软件设置所述PCR中指定处理器要支持的架构级别的位,以便当程序在处理器上运行时,所述处理器根据程序设计所针对的架构级别来运行。
Description
技术领域
本发明一般地涉及处理器,具体地说,涉及配置处理器架构以与软件兼容的方法。
背景技术
现今的计算设备能够执行多种任务。传统计算设备可以执行各种类型的软件产品,并且包括执行设计为在早期硬件(如早期中央处理单元(CPU))上运行的软件的能力。计算设备由计算设备上运行的操作系统(O/S)管理并通过操作系统执行软件产品。O/S管理系统的硬件和软件资源并为应用提供了与计算设备的硬件进行交互的稳定一致的方式。
通常,当针对给定处理器架构级别编写的程序在遵循定义更多指令或其他功能的更高架构级别的处理器上运行时,可能会因为无意中使用新的指令或功能而出错。例如,针对处理器A编写并且遵循架构A的程序包含诸如没有按照架构的要求将指令中的保留字段设置为“0”之类的潜在“缺陷”。当程序在处理器A上运行时,由于处理器忽略这些字段,因此可能不会出错。如果接着开发了架构B并且该架构定义了这些先前保留的字段,则处理器B(遵循架构B)不再忽略这些字段,当程序在处理器B上执行时,可能出现严重错误。
不幸的是,在本领域的目前状态下,解决此问题的唯一方法是在遵循较新的架构级别的处理器上测试程序以发现任何隐藏的错误。然后可以更正这些错误并将程序重新分发给所有用户。在多数情况下,这是极其昂贵的,并且如果程序由于缺乏支持或源代码不可用而无法被修改,则有时这是不可能的。
此外,当针对处理器B编写新程序时可能发生问题。例如,所述程序将利用处理器B的新功能,但是需要确保所述程序在没有新功能的处理器A上正确执行。目前,确保没有任何可导致程序在处理器A上异常运行的潜在缺陷的唯一方法是在处理器A上测试程序。此方法需要处理器A可用,并且如果程序被设计为在只遵循两种架构级别的处理器上运行,则此方法可能不会呈现问题。但是,当程序被设计为在若干先前的架构级别上运行时,满足获得遵循每种早期架构级别的处理器样本的要求会非常麻烦。
在要将正在执行的程序迁移到一组处理器(每个处理器可能遵循不同的架构级别)的情况下会产生另一个问题。在此上下文中的迁移意味着当程序仍在运行时,将程序的执行状态从一个处理器转移到另一个处理器。一种形式的程序迁移是逻辑分区迁移,其是在单个计算机的资源由一组独立逻辑分区共享的情况下的迁移。每个分区被配置为在给定架构级别的架构功能上运行。在分区迁移期间,其中将正在执行的逻辑分区从源计算机系统迁移到目标计算机系统,源计算机系统和目标计算机系统的处理器可能遵循不同的处理器架构级别。由于程序可能针对特定架构级别而设计,因此可进行迁移的处理器组限于那些遵循程序设计所针对的架构级别的处理器。此限定可以限制迁移的可能性并相应地限制程序迁移的多样性。
直到目前为止,如果出现上述问题,则显然本领域的技术人员不了解选择处理器似乎遵循的架构级别的适当方法。由于对于程序而言,可以在处理器架构的增强(或更新或不同)级别上执行非常重要,因此需要一种机制来确保如果程序在遵循某一架构级别的处理器上正确执行,则程序无需被修改便可在遵循所有后续架构级别的处理器上运行,即使程序包含上述的潜在缺陷。此外,需要一种机制来确保程序能够在早期处理器上正确执行而无需早期处理器物理地可用于程序测试。此外,需要一种允许程序在所有处理器之间迁移而与该组处理器支持的架构级别无关的方案。此类方案还将允许程序在具有遵循不同架构级别的处理器的两个计算机系统之间进行运行中的迁移。
发明内容
本发明披露了一种在计算环境中选择处理器似乎(appear)遵循的架构级别以允许高效的程序执行并在不同的处理器架构级别之间进行迁移的方法和系统。简言之,所述方法利用可控制处理器要支持的架构级别的“处理器兼容性寄存器”(PCR)。在一个实施例中,所述PCR只能由超级特权软件来访问。所述超级特权软件设置PCR中指定处理器要支持的架构级别的位,以便当程序在处理器上运行时,处理器根据程序设计所针对的架构级别来运行。
与处理器关联的处理器兼容性寄存器(PCR)由计算机系统的设计者定义。在开始执行程序或逻辑分区期间,在处理器处从诸如系统管理程序之类的超级特权软件程序来接收指令。所述指令通过设置与执行程序或逻辑分区所需的架构级别对应的适当级别位(多个)来修改所述处理器兼容性寄存器。所述方法还包括根据所述处理器兼容性寄存器的内容来配置处理器以便根据遵循指定架构级别的处理器的要求运行。
所述PCR包括一个或多个标识处理器似乎遵循的架构级别的位。所述一个或多个PCR位由仅当处理器处于超级特权状态时才能执行的指令来设置。所述处理器还包括用于以下操作的逻辑:在处理器处接收指令,其中所述指令修改所述处理器兼容性寄存器;根据所述指令实施对所述处理器兼容性寄存器的修改;以及根据所述处理器兼容性寄存器的内容来选择所述处理器的架构级别。
在下面的详细书面说明中,本发明的上述内容以及其他目标、功能和优点将变得显而易见。
附图说明
当结合附图阅读时,通过参考以下对示例性实施例的详细说明,可以最佳地理解发明本身及其优选使用方式、进一步的目的和优点,这些附图是:
图1A是示出了其中特别适合实现本发明的计算设备的功能方块图;
图1B是示出了其中特别适合实现本发明的处理器及其组件的功能方块图;
图2A-2C是示出了根据本发明的不同实施例的在实例处理器兼容性寄存器(PCR)内指定的“级别”位的功能方块图;
图3A-3B是示出了根据本发明的另一实施例的允许溢出级别值绕回的不同实例PCR的功能方块图;
图4是示出了根据本发明的实施例的系统管理程序根据其确定将PCR设置到的架构级别的过程的操作流程图;以及
图5是示出了根据本发明的实施例的用于设置PCR位以标识处理器似乎遵循的架构级别的过程的操作流程图。
具体实施方式
本发明提供了一种在计算环境中选择处理器似乎遵循的架构级别的方法以及实现所述方法的装置。所述方法利用“处理器兼容性寄存器”(PCR),其是一个控制处理器要支持的架构级别的n位寄存器。在一个所描述的实施例中,PCR只能由超级特权软件来访问。在计算架构中,将超级特权软件的一个实例称为“系统管理程序”。术语系统管理程序和超级特权软件将在此可互换地使用。系统管理程序设置PCR中指定处理器要支持的架构级别的位,以便当程序在处理器上运行时,所述程序就像在遵循指定架构级别的处理器上执行那样地运行。所述PCR由此通过使针对一种架构级别设计的程序能够在遵循某些其他架构级别的处理器上运行而扩展了程序的有效寿命和适用性。
在PCR中,一个或多个定义的“级别”位控制特定处理器指令、功能、函数、诸如专用寄存器(SPR)之类的寄存器,以及其他相关功能是否可用于问题状态(即,在用户级应用/程序的执行期间)。PCR位还可以确定如何解释指令字段值,或可以定义其他处理器行为。每个级别位控制对应的处理器架构级别中的新增功能的可用性。
此外,在遵循某些架构级别的处理器不可用的情况下,PCR允许程序设计员在多种处理器架构级别中测试代码。对于无法承担获得多个处理器级别的小型企业和/或存在相对大量的处理器级别的情况,此优点十分重要。在处理器上执行的程序可以是设计为在特定的遗留处理器架构级别上执行的遗留程序。进而,当正在执行的程序在一组处理器中进行迁移的情况下(每个处理器遵循与编写程序所针对的级别不同/更高的架构级别),利用PCR来提供无缝的迁移工具,以便程序要迁移到其的所有处理器都似乎遵循同一架构级别,即编写程序所针对的特定架构级别。在没有PCR的情况下,可向其进行迁移的处理器组将限于那些实际遵循此同一架构级别的处理器。此类限制将严格限制迁移的可能性并相应地限制程序迁移的多样性。
在下面对本发明的示例性实施例的详细说明中,将充分详细地描述可以在其中实现本发明的特定示例性实施例,以便使本领域的技术人员能够实现本发明,并且将理解,可以使用其他实施例并在不偏离本发明的精神或范围的情况下做出逻辑、架构、编程、机械、电子和其他方面的更改。因此,不应以限制的意义来理解以下详细说明,并且本发明的范围仅由所附权利要求来限定。
还将理解,使用特定参数名称只是为了举例,并非旨在暗示对本发明的任何限制。因此,可以使用用于描述上述参数的不同命名/术语来实现本发明而没有任何限制。
现在参考附图,图1A是总体示出其中特别适合实现本发明的计算设备100的功能性方块图。计算设备100可以是任何计算设备,例如服务器、个人计算机、膝上型计算机等。尽管此处在计算设备的上下文中进行描述,但是应当理解,本发明的实现在使用具有变化的架构的处理器执行程序代码的其他设备中也具有等同的适用性。
在此实例中,计算设备100包括处理器单元105、存储器110、输入/输出控制器120以及存储介质125,它们都通过系统互连101相互连接。计算设备100还可以包括其他与本讨论无关的组件。处理器单元105有利地包括微处理器或诸如数字信号处理器(DSP)之类的专用处理器,但是备选地,可以是任何传统形式的处理器、控制器、微控制器或状态机。处理器单元105还包括PCR 130,后者由本发明提供并按照此处所述的方式使用。
存储器110包括多个级别的由处理器单元105执行的软件程序/代码。在此实施例中,存储器110中存储的软件程序包括一个或多个用户级问题代码(应用116、118)、特权级代码(操作系统OS 114),以及超级特权级代码(系统管理程序112)。在此处描述的一个实施例中,系统管理程序112检索与被分配/执行的逻辑分区或程序有关的架构信息并设置PCR130中的位以实现本发明的功能,如下面参考图2-5所述。
可以将存储介质125实现为任何非易失性存储器,例如ROM存储器、闪速存储器或磁盘驱动器等。还可以将存储介质125实现为上述或其他技术的任意组合,例如带有高速缓存(RAM)存储器的磁盘驱动器等。在一个实施例中,存储介质125用于在计算设备100可能断电或无电源期间存储数据(同时用于特权代码和超级特权代码)。
图1B是总体示出了用于提供本发明的实现的处理器单元105的内部组件的功能性方块图。可以在单个芯片上制造处理器105,并且处理器105可以包括其上提供了执行单元155(如加载/存储单元和/或浮点单元或定点单元)和指令定序单元(ISU)160的小片。指令定序单元160按适当的方式将指令分配到执行单元155。
处理器105还包括一系列寄存器165,其中示出了寄存器A 131、寄存器B 132和处理器兼容性寄存器(PCR)130。在一个实施例中,将处理器小片实现为半导体集成电路。在另一个实施例中,处理器小片包括安装在单个小片上的多个处理器核心,并且每个处理器核心都包含一个安装在其上的PCR(130)。
在处理器105的执行期间,诸如PCR 130之类的特定寄存器只能由超级特权软件(系统管理程序112)来访问,而诸如寄存器B 132之类的其他寄存器可以由特权软件和超级特权软件来访问。诸如寄存器A 131之类的其他寄存器可以由用户级软件、特权软件和超级特权软件来访问。在一个实例中,PCR 130是一个n位寄存器,其中n是大于1的整数。
应当理解,图1A和1B旨在以高级别示出计算机系统100的代表性主要组件,并且单个组件可以比图中示出的组件更复杂。还可以理解,可以提供图1A和1B中示出的组件之外或与其不同的组件,并且此类组件的数量、类型和配置可以有所变化。例如,尽管示为具有单个处理器,但是可以构想在多处理器计算机系统中实现本发明的功能。此外,在一个实施例中,每个处理器都可以包括PCR,所述PCR可在一个或多个系统管理程序的控制下被单独修改以适应同时在数据处理系统上运行的多个架构级别。因此,仅通过实例的方式示出了图1A和1B,并且其并非旨在暗示任何有关本发明的限制。
图2A-2C是示出了处理器兼容性寄存器(PCR)的三个备选实施方式(即PCR 200、201和202)的功能性方块图。具体参考PCR 200(图2A)描述了此三个备选实施方式的功能,并且将理解,所述描述适用于每个提供的PCR。在一个实施例中,PCR 200只能由超级特权软件(系统管理程序)来访问,问题状态程序(如用户应用)以及特权代码(如操作系统)无法读取或写入PCR 200。但是,也提供了其中PCR 200可以由操作系统来访问的备选实施例。PCR 200是一个64位寄存器,该寄存器包括PCR的三个低位220、230和240(分别是位61、62和63)。此外,PCR 200包括一组61个保留位210(0-60)。
三个低位220、230和240用于定义在处于问题状态时处理器要支持的架构级别,这通过控制诸如专用寄存器(SPR)之类的特定功能和其他相关功能是否可用于该状态来完成。PCR 200中的剩余位被保留以用于将来的架构级别。在备选实施方式中,将PCR 201(图2B)的高位或PCR 202(图2C)的中间位用于定义架构级别,并且剩余位被再次保留以用于将来的级别。
由于PCR 200中的每个已定义位(220、230、240)仅在处理器处于问题状态时才控制处理器要支持的架构级别,所以当处理器未处于问题状态时,所述位对功能没有任何影响。当处理器处于问题状态时,将PCR未提供的功能视为以下项:(a)将指令视为非法指令;(b)将SPR视为好像它们未针对实施方式进行定义;以及(c)将指令中的字段视为好像字段为0。
在一个实施例中,为了使PCR能够在开发新的处理器之后被更新,每个已定义位在被设置为1时,将禁用给定架构级别(即,在该架构级别,但未在前一个级别)中的新增功能。参考图2A-2C,位v1 240禁用架构的v1中的新增功能。此外,位v2 230禁用架构的v2中的新增功能。进而,位v3 220禁用架构的v3中的新增功能。如果PCR的给定已定义(即,未保留)低位被设置为1,则所有已定义高位也被设置为1。换言之,如果禁用v1中的新增功能,则同样必须禁用后续架构级别(即,v2和v3)中的所有新增功能。以这种方式定义位允许PCR被用于使处理器就像遵循每种架构级别那样运行。
例如,如果将所有级别位(例如v1-v3)设置为“1”,则处理器遵循架构的级别v0并且禁用v1、v2和/或v3中定义的所有新功能。在另一个实例中,如果将级别位v1 240设置为“0”并且将级别位v2 230和v3 220设置为“1”,则仅禁用v2和v3中定义的新功能。在这种情况下,处理器似乎遵循架构级别v1。在再一个实例中,如果将级别位v1 240和v2 230设置为“0”并且将级别位v3 220设置为“1”,则仅禁用v3中定义的新功能,并且处理器似乎遵循架构级别v2。最后,如果将所有级别位(例如v1-v3)都设置为“0”,则不禁用任何功能,并且处理器似乎遵循架构级别v3。当定义下一个更高的架构时,下一个更高的未定义(即,首先保留)位可用于禁用该下一个更高架构级别的功能。
对于PCR 200、201和202,未指定给(或被用于标识)架构级别的位被“保留”并称为保留位。此外,在一个实施例中,PCR 130除级别位以外还可以包含“功能位”。例如,功能位可以禁用处理器的特定功能(例如,一组向量指令)而与架构级别无关。PCR中的一组位(例如高位)可用于功能位。此实施方式的一种应用是允许随对软件不可见的给定功能一起发送设计,并且设计以后可被现场升级以包括/显示/实施该功能。
在多数实施方式中,PCR中的位要远多于架构级别。在架构级别多于可用PCR位的实施方式(例如,图2A的PCR 200的实例中存在65个以上的架构级别)中,将保留与不再受支持的架构级别对应的PCR的低位。在此实施方式中,当已将PCR的最高有效位指定给某个架构级别并且要定义新的架构级别时,可以将与新的架构级别对应的位定义为PCR的最低有效位。在此情况下,已定义的PCR位被称为“绕回”。虽然对于64位PCR而言不太可能出现绕回,但是如果PCR的长度如要描述的图3A-3B所示的那样仅为8位,则可能性会变大。
图3A-3B是示出其中发生已定义架构级别的绕回的8位宽PCR 300的功能性方块图。在该实例中,当开发级别v9时发生绕回,并且将级别v9定义为PCR的最低有效位。进而,在其中已定义了12个架构级别(即v0-v11)的图3B示出的实施例中,仅支持最后五个级别(v7-v11)并且位1-4被“保留”以便以后进行再次分配。
PCR的若干变型是可能的,例如在处理器支持多个特权级别/状态(即问题状态、特权状态、超级特权状态等)的实施方式中。在此类情况下,PCR可供特权代码以及超级特权代码使用。在操作系统需要为用户级应用指定处理器架构级别的情况下需要这种实施方式。
可以将PCR实现为仅影响特定的特权级别或多个特权级别。例如,可以将PCR实现为仅影响问题状态代码,从而使超级特权代码和特权代码(例如操作系统)能够访问与每个代码的关联特权级别对应的所有处理器功能。备选地,可以将PCR实现为影响问题代码和特权代码,例如当操作系统被设计为针对特定架构级别时或操作系统未被设计为使用PCR时。此外,还可以对PCR所影响的特权状态进行编程。
如果需要PCR影响多个特权级别,则可以提供多个PCR,并且不同的PCR适用于每个特权级别。例如,在具有三个状态(包括问题状态、特权状态和超级特权状态)的实施方式中,将PCR分别指定给每个状态,但是只有处于更高特权状态时才可以设置用于特定状态的PCR。在此实例中,与问题状态关联的PCR(PCR问题)将只影响问题状态代码并且可在特权状态和超级特权(系统管理程序)状态中访问所述PCR。与特权状态关联的PCR(PCR特权)将只影响特权状态代码并且可在超级特权状态中访问所述PCR。与超级特权状态关联的PCR(PCR系统管理程序)将只影响超级特权状态代码并且仅可在初始扫描输入期间访问所述PCR。因此,在此实施方式中,只能从比PCR所影响的特权状态(多个)具有更高特权的特权状态来访问PCR。参考图1B,例如,寄存器RegA 131和RegB 132也可以是PCR,并且可以将每个寄存器(RegA 131、RegB 132和PCR 130)指定给所支持状态中的特定状态。每个寄存器还可以具有不同的大小、布局和位定义。
当如上所述提供了多个PCR时,系统管理程序在分配分区时将PCR问题和PCR特权初始化为初始级别,并且在分区的生命周期期间,操作系统能够在需要时修改PCR问题。通常,操作系统只是忽略或不注意PCR问题。现在将描述的图4提供了系统管理程序根据其确定应将PCR位设置到的值的过程。
图4和5是总体示出了系统管理程序(图4)和处理器(图5)在分配分区期间更新PCR而执行的过程的操作流程图。所述过程使用图1-3的组件、数据和/或示例性操作环境来实现。尽管可以参考图1-3中示出的组件描述所述过程,但是应当理解,这只是为了方便并且可以采用替代组件。
优选地,所述过程的一个或多个步骤体现在包含计算机可读代码的计算机可读介质中,以便当计算机可读代码在计算设备上执行时执行一系列步骤。在某些实施方式中,在不偏离所述过程及其等同物的范围的情况下,特定的过程步骤可以被组合、同时执行或以不同顺序执行,或可以被忽略。
参考启用了系统管理程序的过程,图4的过程从方块401处开始并继续到方块403,在方块403,触发系统管理程序以在处理器上分配分区。启动分区执行的控制程序调用系统管理程序以通知系统管理程序将处理器资源分配给分区。在方块405,系统管理程序检索(或接收)与分区关联的各种配置参数,所述参数包括与分区要在其上执行的处理器架构级别有关的数据。根据所检索的架构级别参数,系统管理程序标识与分区遵循的级别对应的架构级别,如方块407所示。系统管理程序然后生成指令以将PCR的对应位设置为用于已标识的架构级别的设置,如方块409所示。系统管理程序然后启动分区的执行,如方块411所示。过程然后在方块413结束。
参考图5示出的处理器级别过程,所述过程从方块501处开始并继续到方块503,在方块503,处理器接收修改PCR的指令。在方块505,处理器判定当前的处理器特权状态是否允许对PCR执行所请求的修改。在一个实施例中,此判定包含检查是否在处理器处于超级特权(系统管理程序)状态时接收到指令。在当前处理器特权状态不允许请求的PCR修改(例如,处理器未处于超级特权状态)时,访问PCR被拒绝,如方块507所示。如果当前的处理器特权状态确实允许请求的PCR修改(例如,处理器处于超级特权状态),则处理器根据接收的指令修改PCR,如方块509所示。过程然后在方块511结束。
因此,本发明的上述实施例提供了一种(在数据处理系统的处理器内)选择处理器似乎遵循的架构级别的方法。所述方法包括:(a)设置处理器内的处理器兼容性寄存器(PCR)中的一个或多个位的值,所述值对应于在逻辑分区或程序的后续执行期间处理器似乎遵循的架构级别;以及(b)根据PCR中的一个或多个位的值,自动地将处理器配置为似乎遵循特定架构级别。
应当理解,本发明的至少某些方面可以备选地在包含程序产品的计算机可用介质中实现。定义有关本发明的功能的程序可以通过各种信号承载介质被传输到数据存储系统或计算机系统,所述信号承载介质包括但不限于非可写存储介质(例如CD-ROM)、可写存储介质(例如硬盘驱动器、读/写CD-ROM,光介质),以及通信介质,例如包括以太网、因特网、无线网络以及类似网络系统的计算机和电话网络。因此,应当理解,此类信号承载介质在承载或编码有控制本发明的方法功能的计算机可读指令时,代表本发明的备选实施例。进而,将理解本发明可以由具有形式为此处所述的硬件、软件或软件和硬件组合的装置及其等同物的系统来实现。
虽然参考优选实施例具体示出和描述了本发明,但是本领域的技术人员将理解,在不偏离本发明的精神和范围的情况下,可以在其中做出形式和细节上的各种更改。
Claims (19)
1.一种选择处理器似乎遵循的架构级别的方法,所述方法包括:
设置所述处理器内的处理器兼容性寄存器中的一个或多个位的值,所述值对应于在逻辑分区或程序的后续执行期间所述处理器似乎遵循的架构级别;以及
根据所述处理器兼容性寄存器中的所述一个或多个位的值,自动地将所述处理器配置为似乎遵循特定架构级别。
2.根据权利要求1的方法,还包括:
接收修改所述处理器兼容性寄存器的指令;
根据与所述接收的指令内包含的期望架构级别有关的信息,动态地修改所述处理器兼容性寄存器中的所述一个或多个位的值;以及
根据所述处理器兼容性寄存器中的所述一个或多个位的值,从多个可能的架构级别中选择所述处理器似乎遵循的所述特定架构级别。
3.根据权利要求2的方法,其中:
当只有在所述处理器处于超级特权状态下才能修改所述处理器兼容性寄存器时,所述动态地修改进一步包括:仅在处理器工作在所述超级特权状态的期间接收到所述指令时才修改所述一个或多个位的值;以及
当在所述处理器处于超级特权状态和特权状态之一的情况下可以修改所述处理器兼容性寄存器时,所述动态地修改进一步包括:仅在处理器工作在所述超级特权状态和所述特权状态之一的期间接收到所述指令时才修改所述一个或多个位的值。
4.根据权利要求2的方法,其中所述处理器兼容性寄存器是所述处理器内的多个处理器兼容性寄存器中的一个处理器兼容性寄存器,其中所述多个处理器兼容性寄存器在所述处理器分别处于超级特权状态、特权状态或问题状态时影响处理器工作,所述方法还包括:
在所述处理器处接收到所述指令时,从超级特权状态、特权状态和问题状态中确定系统的工作状态;
当所述工作状态是所述超级特权状态时,所述动态地修改进一步包括:修改在所述特权状态和所述问题状态中影响系统工作的所有处理器兼容性寄存器的所述一个或多个位的值;
当所述工作状态是所述特权状态时,所述动态地修改进一步包括:仅修改在所述问题状态中影响系统工作的处理器兼容性寄存器的所述一个或多个位的值;以及
当所述工作状态是所述问题状态时,阻止修改所述处理器兼容性寄存器的所述一个或多个位。
5.根据权利要求1的方法,还包括:
在所述处理器似乎遵循由所述处理器兼容性寄存器中的所述一个或多个位的值标识的所述架构级别的情况下,在所述处理器上后续地执行程序;
其中由超级特权或特权软件来确定当前架构级别,所述软件在分配所述逻辑分区或程序时为所述程序检索与所述特定架构级别有关的信息;以及
其中所述处理器能够支持由所述处理器兼容性寄存器的所述一个或多个位的不同值分别选择的多个处理器架构级别。
6.根据权利要求1的方法,还包括:
定义所述处理器兼容性寄存器中禁用所述处理器的特定功能的功能位;以及
在将功能位设置为禁用所述处理器的第一功能时,禁用所述第一功能而与所述处理器似乎遵循的所述架构级别无关。
7.一种处理器,所述处理器包括:
至少一个执行单元;
处理器兼容性寄存器,其指定在特定程序的执行期间所述处理器似乎遵循的架构级别;
逻辑,其选择所述处理器似乎遵循的当前架构级别,所述逻辑包括用于以下操作的逻辑:
设置所述处理器内的处理器兼容性寄存器中的一个或多个位的值,所述值对应于在逻辑分区或程序的后续执行期间所述处理器似乎遵循的架构级别;以及
根据所述处理器兼容性寄存器中的所述一个或多个位的值,自动地将所述处理器配置为似乎遵循特定架构级别。
8.根据权利要求7的处理器,还包括用于以下操作的逻辑:
接收修改所述处理器兼容性寄存器的指令;
根据与所述接收的指令内包含的期望架构级别有关的信息,动态地修改所述处理器兼容性寄存器中的所述一个或多个位的值;以及
根据所述处理器兼容性寄存器中的所述一个或多个位的值,从多个可能的架构级别中选择所述处理器似乎遵循的所述特定架构级别。
9.根据权利要求8的处理器,其中:
当只有在所述处理器处于超级特权状态下才能修改所述处理器兼容性寄存器时,所述用于动态地修改的逻辑进一步包括用于以下操作的逻辑:仅在处理器工作在所述超级特权状态的期间接收到所述指令时才修改所述一个或多个位的值;以及
当在所述处理器处于超级特权状态和特权状态之一的情况下可以修改所述处理器兼容性寄存器时,所述用于动态地修改的逻辑进一步包括用于以下操作的逻辑:仅在处理器工作在所述超级特权状态和所述特权状态之一的期间接收到所述指令时才修改所述一个或多个位的值。
10.根据权利要求8的处理器,其中所述处理器兼容性寄存器是所述处理器内的多个处理器兼容性寄存器中的一个处理器兼容性寄存器,其中所述多个处理器兼容性寄存器在所述处理器分别处于超级特权状态、特权状态或问题状态时影响处理器工作,所述处理器还包括:
在所述处理器处接收到所述指令时,用于从超级特权状态、特权状态和问题状态中确定系统的工作状态的逻辑;
当所述工作状态是所述超级特权状态时,所述用于动态地修改的逻辑进一步包括用于以下操作的逻辑:修改在所述特权状态和所述问题状态中影响系统工作的所有处理器兼容性寄存器的所述一个或多个位的值;
当所述工作状态是所述特权状态时,所述用于动态地修改的逻辑进一步包括用于以下操作的逻辑:仅修改在所述问题状态中影响系统工作的处理器兼容性寄存器的所述一个或多个位的值;以及
当所述工作状态是所述问题状态时,用于阻止修改所述处理器兼容性寄存器的所述一个或多个位的逻辑。
11.根据权利要求7的处理器,还包括:
用于在所述处理器似乎遵循由所述处理器兼容性寄存器中的所述一个或多个位的值标识的所述架构级别的情况下,在所述处理器上后续地执行程序的逻辑;
其中由超级特权或特权软件来确定当前架构级别,所述软件在分配所述逻辑分区或程序时为所述程序检索与所述特定架构级别有关的信息;以及
其中所述处理器能够支持由所述处理器兼容性寄存器的所述一个或多个位的不同值分别选择的多个处理器架构级别。
12.根据权利要求7的处理器,其中所述处理器兼容性寄存器还包括一个或多个功能位,并且所述处理器还包括:
用于定义所述处理器兼容性寄存器中禁用所述处理器的特定功能的功能位的逻辑;以及
在将功能位设置为禁用所述处理器的第一功能时,用于禁用所述第一功能而与所述处理器似乎遵循的所述架构级别无关的逻辑。
13.一种数据处理系统,所述数据处理系统包括:
存储器,其中具有用于在操作的超级特权状态期间执行超级特权客户端的代码;
处理器,其通过互连连接到所述存储器,所述处理器具有:
至少一个执行单元;
处理器兼容性寄存器,其指定在特定程序的执行期间所述处理器似乎遵循的架构级别;
逻辑,其用于选择所述处理器似乎遵循的当前架构级别,所述逻辑包括用于以下操作的逻辑:
设置所述处理器内的处理器兼容性寄存器中的一个或多个位的值,所述值对应于在逻辑分区或程序的后续执行期间所述处理器似乎遵循的架构级别;以及
根据所述处理器兼容性寄存器中的所述一个或多个位的值,自动地将所述处理器配置为似乎遵循特定架构级别。
14.根据权利要求13的数据处理系统,所述处理器还包括:
用于接收修改所述处理器兼容性寄存器的指令的逻辑;
用于根据与所述接收的指令内包含的期望架构级别有关的信息,动态地修改所述处理器兼容性寄存器中的所述一个或多个位的值的逻辑;以及
用于根据所述处理器兼容性寄存器中的所述一个或多个位的值,从多个可能的架构级别中选择所述处理器似乎遵循的所述特定架构级别的逻辑。
15.根据权利要求14的数据处理系统,其中:
当只有在所述处理器处于超级特权状态下才能修改所述处理器兼容性寄存器时,所述用于动态地修改的逻辑进一步包括用于以下操作的逻辑:仅在处理器工作在所述超级特权状态的期间接收到所述指令时才修改所述一个或多个位的值;以及
当在所述处理器处于超级特权状态和特权状态之一的情况下可以修改所述处理器兼容性寄存器时,所述用于动态地修改的逻辑进一步包括用于以下操作的逻辑:仅在处理器工作在所述超级特权状态和所述特权状态之一的期间接收到所述指令时才修改所述一个或多个位的值。
16.根据权利要求13的数据处理系统,其中所述处理器兼容性寄存器是所述处理器内的多个处理器兼容性寄存器中的一个处理器兼容性寄存器,其中所述多个处理器兼容性寄存器在所述处理器分别处于超级特权状态、特权状态或问题状态时影响处理器工作,所述处理器还包括:
在所述处理器处接收到所述指令时,用于从超级特权状态、特权状态和问题状态中确定系统的工作状态的逻辑;
当所述工作状态是所述超级特权状态时,所述用于动态地修改的逻辑进一步包括用于以下操作的逻辑:修改在所述特权状态和所述问题状态中影响系统工作的所有处理器兼容性寄存器的所述一个或多个位的值;
当所述工作状态是所述特权状态时,所述用于动态地修改的逻辑进一步包括用于以下操作的逻辑:仅修改在所述问题状态中影响系统工作的处理器兼容性寄存器的所述一个或多个位的值;以及
当所述工作状态是所述问题状态时,用于阻止修改所述处理器兼容性寄存器的所述一个或多个位的逻辑。
17.根据权利要求13的数据处理系统,还包括:
用于在所述处理器似乎遵循由所述处理器兼容性寄存器中的所述一个或多个位的值标识的所述架构级别的情况下,在所述处理器上后续地执行程序的逻辑;
其中由超级特权或特权软件来确定当前架构级别,所述软件在分配所述逻辑分区或程序时为所述程序检索与所述特定架构级别有关的信息;以及
其中所述处理器能够支持由所述处理器兼容性寄存器的所述一个或多个位的不同值分别选择的多个处理器架构级别。
18.根据权利要求13的数据处理系统,其中所述处理器兼容性寄存器还包括一个或多个功能位,并且所述处理器还包括:
用于定义所述处理器兼容性寄存器中禁用所述处理器的特定功能的功能位的逻辑;以及
在将功能位设置为禁用所述处理器的第一功能时,用于禁用所述第一功能而与所述处理器似乎遵循的所述架构级别无关的逻辑。
19.根据权利要求13的数据处理系统,还包括:
多个处理器,其中每个处理器包括一个或多个处理器兼容性寄存器,可在一个或多个系统管理程序的控制下独立地修改所述处理器兼容性寄存器以适应同时在所述数据处理系统上运行的多个架构级别。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/621,393 US7802252B2 (en) | 2007-01-09 | 2007-01-09 | Method and apparatus for selecting the architecture level to which a processor appears to conform |
US11/621,393 | 2007-01-09 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101221514A true CN101221514A (zh) | 2008-07-16 |
CN101221514B CN101221514B (zh) | 2011-08-17 |
Family
ID=39595275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008100017721A Active CN101221514B (zh) | 2007-01-09 | 2008-01-08 | 选择处理器对程序而言遵循的架构级别的方法、处理器及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7802252B2 (zh) |
JP (1) | JP5255285B2 (zh) |
CN (1) | CN101221514B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2447154B (en) * | 2005-10-04 | 2009-05-27 | Nec Corp | Information processing device, information processing method, and program |
US8127296B2 (en) * | 2007-09-06 | 2012-02-28 | Dell Products L.P. | Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration |
GB2474666B (en) * | 2009-10-21 | 2015-07-15 | Advanced Risc Mach Ltd | Hardware resource management within a data processing system |
US8972961B2 (en) | 2010-05-19 | 2015-03-03 | International Business Machines Corporation | Instruction scheduling approach to improve processor performance |
US9851969B2 (en) | 2010-06-24 | 2017-12-26 | International Business Machines Corporation | Function virtualization facility for function query of a processor |
US10521231B2 (en) | 2010-06-24 | 2019-12-31 | International Business Machines Corporation | Function virtualization facility for blocking instruction function of a multi-function instruction of a virtual processor |
US8583891B1 (en) * | 2011-07-25 | 2013-11-12 | Google Inc. | Associating partitions in a computing device |
US8578378B2 (en) | 2011-07-28 | 2013-11-05 | Intel Corporation | Facilitating compatible interaction, at least in part |
US9558006B2 (en) * | 2012-12-20 | 2017-01-31 | Intel Corporation | Continuous automatic tuning of code regions |
US10063569B2 (en) * | 2015-03-24 | 2018-08-28 | Intel Corporation | Custom protection against side channel attacks |
US9785783B2 (en) * | 2015-07-23 | 2017-10-10 | Ca, Inc. | Executing privileged code in a process |
JP6788017B2 (ja) * | 2016-01-22 | 2020-11-18 | 株式会社ソニー・インタラクティブエンタテインメント | 後方互換性のためのなりすましcpuid |
GB2563580B (en) | 2017-06-15 | 2019-09-25 | Advanced Risc Mach Ltd | An apparatus and method for controlling a change in instruction set |
US11226839B2 (en) | 2019-02-27 | 2022-01-18 | International Business Machines Corporation | Maintaining compatibility for complex functions over multiple machine generations |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0778730B2 (ja) * | 1984-04-23 | 1995-08-23 | 日本電気株式会社 | 情報処理装置 |
JPS6133546A (ja) * | 1984-07-25 | 1986-02-17 | Nec Corp | 情報処理装置 |
JPS6191726A (ja) * | 1984-10-11 | 1986-05-09 | Ascii Corp | 複合マイクロプロセツサ |
JPS6273333A (ja) * | 1985-09-26 | 1987-04-04 | Nec Corp | エミュレーション制御装置 |
JP2826309B2 (ja) * | 1985-11-20 | 1998-11-18 | 日本電気株式会社 | 情報処理装置 |
JPS62151938A (ja) * | 1985-12-25 | 1987-07-06 | Nec Corp | 命令処理方式 |
JPH0527967A (ja) * | 1991-07-24 | 1993-02-05 | Toshiba Corp | 計算機システム |
JPH0683615A (ja) * | 1992-09-02 | 1994-03-25 | Fujitsu Ltd | 命令セットエミュレーションを行う計算機 |
CA2162033A1 (en) | 1993-05-05 | 1994-11-10 | Alan W. Lillich | Method and apparatus for verifying compatibility between modular components in a computer system |
JP3105110B2 (ja) * | 1993-05-20 | 2000-10-30 | 株式会社東芝 | 演算装置 |
GB2289354B (en) * | 1994-05-03 | 1997-08-27 | Advanced Risc Mach Ltd | Multiple instruction set mapping |
US5555414A (en) * | 1994-12-14 | 1996-09-10 | International Business Machines Corporation | Multiprocessing system including gating of host I/O and external enablement to guest enablement at polling intervals |
JP3451595B2 (ja) * | 1995-06-07 | 2003-09-29 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 二つの別個の命令セット・アーキテクチャへの拡張をサポートすることができるアーキテクチャ・モード制御を備えたマイクロプロセッサ |
JPH1091429A (ja) * | 1996-07-26 | 1998-04-10 | Hitachi Ltd | 情報処理装置 |
US6973562B1 (en) * | 2000-01-14 | 2005-12-06 | Advanced Micro Devices, Inc. | Establishing an operating mode in a processor |
JP3513122B2 (ja) * | 2000-07-21 | 2004-03-31 | 津田駒工業株式会社 | タックイン装置 |
US20020078262A1 (en) | 2000-12-14 | 2002-06-20 | Curl Corporation | System and methods for providing compatibility across multiple versions of a software system |
US7191439B2 (en) | 2001-02-28 | 2007-03-13 | Palmsource, Inc. | Verification of software application attributes for optimal compatibility with a software system |
US7251811B2 (en) | 2002-01-02 | 2007-07-31 | Intel Corporation | Controlling compatibility levels of binary translations between instruction set architectures |
US7331040B2 (en) | 2002-02-06 | 2008-02-12 | Transitive Limted | Condition code flag emulation for program code conversion |
EP1447742A1 (en) * | 2003-02-11 | 2004-08-18 | STMicroelectronics S.r.l. | Method and apparatus for translating instructions of an ARM-type processor into instructions for a LX-type processor |
US7594219B2 (en) | 2003-07-24 | 2009-09-22 | International Business Machines Corporation | Method and apparatus for monitoring compatibility of software combinations |
US7146482B2 (en) * | 2003-11-25 | 2006-12-05 | International Business Machines Corporation | Memory mapped input/output emulation |
US7260702B2 (en) * | 2004-06-30 | 2007-08-21 | Microsoft Corporation | Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor |
US7308571B2 (en) * | 2004-10-06 | 2007-12-11 | Intel Corporation | Overriding processor configuration settings |
-
2007
- 2007-01-09 US US11/621,393 patent/US7802252B2/en active Active
-
2008
- 2008-01-08 JP JP2008001409A patent/JP5255285B2/ja active Active
- 2008-01-08 CN CN2008100017721A patent/CN101221514B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
JP2008171428A (ja) | 2008-07-24 |
US7802252B2 (en) | 2010-09-21 |
CN101221514B (zh) | 2011-08-17 |
JP5255285B2 (ja) | 2013-08-07 |
US20080168258A1 (en) | 2008-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101221514B (zh) | 选择处理器对程序而言遵循的架构级别的方法、处理器及系统 | |
CN102483718B (zh) | 虚拟化环境中的高速缓存分区 | |
US10255118B2 (en) | Processing system including a plurality of cores and method of operating the same | |
US9459850B2 (en) | Adaptive cloud aware just-in-time (JIT) compilation | |
CN101211289B (zh) | 恢复操作管理系统和方法 | |
US8671418B2 (en) | Environment modification in a hybrid node computing environment | |
CN101313286B (zh) | 多线程处理器中的性能优先化 | |
US7596687B2 (en) | System and method for information handling system interoperable firmware storage | |
CN102200921A (zh) | 智能引导设备选择和恢复 | |
JP2008033933A (ja) | 同時物理プロセッサ再割り当て方法、システム、およびプログラム | |
CN104636202A (zh) | 计算机系统及其排程方法 | |
CN103294557A (zh) | 具有活动和非活动执行核心的多核处理器 | |
CN104781795A (zh) | 存储层的动态选择 | |
US8612973B2 (en) | Method and system for handling interrupts within computer system during hardware resource migration | |
CN101159596B (zh) | 用于布置服务器的方法和设备 | |
CN103782276A (zh) | 从原始虚拟机到目的地虚拟机的操作转移 | |
CN102725734A (zh) | 带隔离的批调度 | |
CN104516769A (zh) | 动态逻辑分区的验证 | |
US20170371641A1 (en) | Multi-tenant upgrading | |
CN105094937A (zh) | 用于可编程逻辑控制器的程序管理的装置 | |
CN1979408A (zh) | 管理设备访问的方法和系统 | |
CN100583064C (zh) | 用于从别名地址池中移除别名地址的方法和设备 | |
WO2009039566A1 (en) | Reconfigurable numeric accelerator | |
CN101320335A (zh) | 信息处理系统中的协同式多任务处理方法及信息处理系统 | |
EP3729269B1 (en) | Pseudo-random logical to physical core assignment at boot for age averaging |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |