用于向后兼容性的欺骗CPUID制造技术

技术编号:19561638 阅读:26 留言:0更新日期:2018-11-25 00:25
为了有助于向后兼容性,计算装置可以通过返回关于与所述计算装置上的处理器不同的处理器的信息来对来自应用程序的对关于所述计算装置上的所述处理器的信息的调用作出响应。

Deceptive CPUID for backward compatibility

In order to facilitate backward compatibility, the computing device can respond to an application's call to information about the processor on the computing device by returning information about a processor different from the processor on the computing device.

【技术实现步骤摘要】
【国外来华专利技术】用于向后兼容性的欺骗CPUID优先权声明本申请要求提交于2016年1月22日的在共同转让之前的美国临时专利申请号62/286,280的权益,该专利申请的全部内容以引用的方式并入本文。
技术介绍
当新版本计算机系统(“新的装置”)发布时,希望为该系统的先前版本(“遗留装置”)编写的应用程序在新的装置上完美地运行。这种能力通常被称为相当于“遗留应用程序”的“向后兼容性”。即使新的装置能够执行为遗留装置创建的遗留应用程序,新的装置在运行那些应用程序时仍可能会无法向后兼容。新的装置和遗留装置的硬件部件的性能差异可能导致新的装置上的同步错误。这种性能差异可能源于例如新的装置的中央处理单元(CPU)相对于遗留装置的能力差异。例如,如果新的装置上的CPU比遗留装置上的CPU快,那么新的装置的另一部件仍在使用的数据可能过早地被CPU重写。附图说明本公开的教义可以通过考虑以下结合附图的详细描述容易地理解,其中:图1是示出根据本公开的方面的用于实现向后兼容性的方法的流程图。图2是示出中央处理单元(CPU)的方框图,其中用于执行图1的方法的可执行软件实现在只读存储器(ROM)中。图3是包括图2中所示的类型的CPU的装置的方框图。
技术实现思路
与现有技术相关联的缺点通过本公开的方面克服,本公开的方面涉及一种方法,其中计算装置通过返回关于与所述计算装置上的处理器不同的处理器的信息来对来自应用程序的对关于所述计算装置上的所述处理器的信息的调用作出响应。具体实施方式虽然以下详细描述出于说明目的而含有许多特定细节,但是本领域的任何普通技术人员将了解,对以下细节的许多变化和更改在本专利技术的范围内。因此,以下描述的本专利技术的示例性实施方案在不失去一般性且未暗示要求保护的本专利技术的限制的情况下进行阐述。引言为了解决因CPU行为相对于遗留装置的差异造成的问题,新的装置可以在运行遗留应用程序时模仿遗留装置CPU的某些功能。模仿遗留装置的能力的关键特征是骗遗留应用程序来像其在遗留装置上运行那样作用。由于许多应用程序被设计为在不同的处理器上运行,因此现代处理器通常实现操作码或寄存器以允许软件应用程序发现处理器的细节。为了有助于向后兼容性,新的装置上的处理器可以执行操作码或供应寄存器值,以此方式响应于来自遗留应用程序的调用而返回不同的处理器信息。不同信息在本文中被称为“欺骗的处理器ID”。欺骗的处理器ID将选择性地将新的装置的某些特征标识为与实际上所支持的特征是不同的或完全不受支持而事实上受支持的。方法图1中所示的流程图中示出的方法100示出了这将如何工作的实例。具体地讲,在装置上运行的请求应用程序101从运行应用程序的处理器请求处理器ID,如102处所示。处理器在104处确定请求应用程序101是否是遗留应用程序,即,最初为早期版本的装置编写的应用程序。处理器可以通过多种方式确定应用程序是为新的装置还是为遗留装置编写的。一种方式将是,如果为新的装置编写的所有应用程序在加载时向处理器报告了信息,那么将应用程序识别为是为新的装置编写的。此类信息的报告将会将应用程序识别为是为新的装置编写的,并且未能报告此类信息将会将应用程序识别为遗留应用程序。由处理器返回到请求应用程序101的信息将会基于应用程序101是遗留应用程序还是新的应用程序(即,被编写来在装置上运行的应用程序)而有所不同。如果请求应用程序101是新的应用程序,那么处理器返回真实处理器信息,例如,运行应用程序的装置上的处理器的正确的处理器ID103,如106处指示。如果请求应用程序101是遗留应用程序,那么处理器返回欺骗的处理器信息,例如,欺骗的处理器ID105,如108处指示。被返回的信息可以将处理器事实上所支持的某些特征识别为是不受支持的,或指明运行应用程序的处理器是遗留处理器。作为实例而非限制,欺骗的处理器ID105可能会被经修改的CPUID指令返回,经修改的CPUID指令是受x86架构支持的操作码。通过使用CPUID操作码,软件可以确定处理器类型以及诸如各种SSE指令集架构的实现方式的特征的存在。在x86架构上,CPUID操作码是字节0Fh和A2h,并且EAX寄存器以及在某些情况下ECX寄存器中的值指定要返回的信息。在汇编语言中,CPUID指令不带参数,而替代地隐式使用EAX寄存器来确定被返回的信息的主要类别,这通常被称为CPUID叶。在EAX=0的情况下调用CPUID的应用程序将在EAX寄存器中接收在返回时CPU支持的最高EAX调用参数(叶),并且其它寄存器含有标识CPU制造商的供应商ID。为了获得扩展功能信息,可以在EAX设置的最高有效位的情况下调用CPUID。为了确定最高扩展功能调用参数,可以在EAX=80000000h的情况下调用CPUID。一些叶也有子叶,在调用CPUID之前经由ECX寄存器选择子叶。在EAX=1的情况下调用CPUID返回关于EAX中的CPU的步进模型、型号和系列信息(也被称为CPU的签名)、EDX和ECX中的特征标志以及EBX中的附加的特征信息的信息。在EAX=2的情况下调用CPUID返回指示EAX、EBX、ECX和EDX寄存器中的高速缓存和转换旁视缓冲器(TLB)功能的描述符列表。其它EAX值返回诸如处理器序列号、线程/核心和高速缓存拓扑、扩展特征、处理器品牌、L1高速缓存和TLB标识符、经扩展的L2高速缓存特征、电源管理特征标识符以及虚拟和物理地址大小的信息。图1中所示的类型的程序可以在遗留应用程序进行查询的情况下返回对于这些值的任何或全部的正确值不同的值。CPU图1中所示的处理器ID欺骗功能可以通过多种不同方式中的任一种实现在新的装置上。例如,新的装置可以包括ROM或RAM中的特殊微码,其响应于来自遗留应用程序的查询而返回欺骗的处理器ID信息。图2示出了CPU200的一种可能实现方式,其中微码在作为CPU核心202的一部分的ROM中实现。CPU可以包括一个或多个这样的核心。CPU核心202可以共用公共2级高速缓存204和总线接口206。每个核心202可以含有用于加载、存储、调度、解码和执行指令的逻辑单元208以及寄存器210、高速缓存212和用于指令和数据的转换旁视缓冲器(TLB)214。在图2中所示的特定实现方式中,CPUID指令是由存储在ROM218中的微码实现216,微码含有一个处理器ID程序和两个不同的处理器ID数据集。一个数据集(ID1)用于新的装置应用程序,并且另一个数据集(ID2)用于遗留装置应用程序。在替代实现方式中,可能存在两个不同的处理器ID程序,一个用于遗留应用程序,并且另一个用于新的装置应用程序。在此类实现方式中,CPU200可以在执行CPUID指令时选择性地运行一个程序或另一个程序,这取决于它正在运行的应用程序是遗留应用程序还是新的装置应用程序。在其它替代实施方式中,处理器ID程序可以通过特殊专用硬件实现,例如,返回处理器ID信息的某些方面可以通过硬件逻辑而不是存储在ROM218中的微码来实现。在其它替代实施方式中,微码可以存储在随机存取存储器(RAM)中而不是ROM中。系统图2中所示的类型的CPU可以结合到新的装置中。如图3可见,新的装置300可以包括具有多个核心202的CPU200和具有多个计算单元(CU)304的GPU302本文档来自技高网...

【技术保护点】
1.一种方法,所述方法包括:在计算装置中,通过返回关于与所述计算装置上的处理器不同的处理器的信息来对来自应用程序的对关于所述计算装置上的所述处理器的信息的调用作出响应。

【技术特征摘要】
【国外来华专利技术】2016.01.22 US 62/286,2801.一种方法,所述方法包括:在计算装置中,通过返回关于与所述计算装置上的处理器不同的处理器的信息来对来自应用程序的对关于所述计算装置上的所述处理器的信息的调用作出响应。2.如权利要求1所述的方法,其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为与所述计算装置实际上所支持的特征是不同的。3.如权利要求1所述的方法,其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为完全不受所述计算装置上的所述处理器支持,而事实上所述某些特征是受所述计算装置上的所述处理器支持的。4.如权利要求1所述的方法,其中所述应用程序是为遗留计算装置编写的遗留应用程序。5.如权利要求1所述的方法,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为与所述计算装置实际上所支持的特征是不同的。6.如权利要求1所述的方法,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为完全不受所述计算装置上的所述处理器支持,而事实上所述某些特征是受所述计算装置上的所述处理器支持的。7.如权利要求1所述的方法,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息识别所述遗留装置上的处理器。8.如权利要求1所述的方法,其中返回关于所述不同的处理器的所述信息包括使用受所述计算装置上的所述处理器的架构支持的操作码。9.如权利要求1所述的方法,其中返回关于所述不同的处理器的所述信息包括使用受x86架构支持的操作码。10.如权利要求1所述的方法,其中返回关于所述不同的处理器的所述信息包括使用CPUID指令。11.如权利要求1所述的方法,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的ROM或RAM中的微码。12.如权利要求1所述的方法,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的ROM或RAM中的微码和两个不同的处理器ID数据集,其中一个数据集是用于新的装置应用程序,并且另一个数据集是用于遗留装置应用程序。13.如权利要求1所述的方法,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的ROM或RAM中的微码,并且所述微码逻辑返回处理器ID数据,所述处理器ID数据取决于查询程序是新的装置应用程序还是遗留装置应用程序而在某些细节上有所不同。14.如权利要求1所述的方法,其中返回关于所述不同的处理器的所述信息包括将一个ID程序用于遗留应用程序并将另一个ID程序用于新的装置应用程序。15.如权利要求1所述的方法,其中返回关于所述不同的处理器的所述信息包括使用专用硬件。16.一种计算装置,所述计算装置包括:处理器,所述处理器被配置成通过返回关于不同的处理器的信息来对来自应用程序的对关于所述处理器的信息的调用作出响应。17.如权利要求16所述的计算装置,其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为与所述计算装置实际上所支持的特征是不同的。18.如权利要求16所述的计算装置,其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为完全不受所述计算装置上的所述处理器支持,而事实上所述某些特征是受所述计算装置上的所述处理器支持的。19.如权利要求16所述的计算装置,其中所述应用程序是为遗留计算装置编写的遗留应用程序。20.如权利要求16所述的计算装置,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为与所述计算装置实际上所支持的特征是不同的。21.如权利要求16所述的计算装置,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为完全不受所述计算装置上的所述处理器支持,而事实上所述某些特征是受所述计算装置上的所述处理器支持的。22.如权利要求16所述的计算装置,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息识别所述遗留装置上的处理器。23.如权利要求16所述的计算装置,其中返回关于所述不同的处理器的所述信息包括使用受所述计算装置上的所述处理器的架构支持的操作码。24.如权利要求16所述的计算装置,其中返回关于所述不同的处理器的所述信息包括使用受x86架构支持的操作码。25.如权利要求16所述的计算装置,...

【专利技术属性】
技术研发人员:ME塞尔尼S皮尔格里姆
申请(专利权)人:索尼互动娱乐股份有限公司
类型:发明
国别省市:日本,JP

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

1