CN108885552B - 用于向后兼容性的欺骗cpuid - Google Patents

用于向后兼容性的欺骗cpuid Download PDF

Info

Publication number
CN108885552B
CN108885552B CN201780007665.7A CN201780007665A CN108885552B CN 108885552 B CN108885552 B CN 108885552B CN 201780007665 A CN201780007665 A CN 201780007665A CN 108885552 B CN108885552 B CN 108885552B
Authority
CN
China
Prior art keywords
processor
computing device
application
information
different
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.)
Active
Application number
CN201780007665.7A
Other languages
English (en)
Other versions
CN108885552A (zh
Inventor
M.E.塞尔尼
S.皮尔格里姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Interactive Entertainment Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Interactive Entertainment Inc filed Critical Sony Interactive Entertainment Inc
Priority to CN202310197565.2A priority Critical patent/CN116340022A/zh
Publication of CN108885552A publication Critical patent/CN108885552A/zh
Application granted granted Critical
Publication of CN108885552B publication Critical patent/CN108885552B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine

Abstract

为了有助于向后兼容性,计算装置可以通过返回关于与所述计算装置上的处理器不同的处理器的信息来对来自应用程序的对关于所述计算装置上的所述处理器的信息的调用作出响应。

Description

用于向后兼容性的欺骗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示出了CPU 200的一种可能实现方式,其中微码在作为CPU核心202的一部分的ROM中实现。CPU可以包括一个或多个这样的核心。CPU核心202可以共用公共2级高速缓存204和总线接口206。每个核心202可以含有用于加载、存储、调度、解码和执行指令的逻辑单元208以及寄存器210、高速缓存212和用于指令和数据的转换旁视缓冲器(TLB)214。
在图2中所示的特定实现方式中,CPUID指令是由存储在ROM 218中的微码实现216,微码含有一个处理器ID程序和两个不同的处理器ID数据集。一个数据集(ID1)用于新的装置应用程序,并且另一个数据集(ID2)用于遗留装置应用程序。
在替代实现方式中,可能存在两个不同的处理器ID程序,一个用于遗留应用程序,并且另一个用于新的装置应用程序。在此类实现方式中,CPU 200可以在执行CPUID指令时选择性地运行一个程序或另一个程序,这取决于它正在运行的应用程序是遗留应用程序还是新的装置应用程序。在其它替代实施方式中,处理器ID程序可以通过特殊专用硬件实现,例如,返回处理器ID信息的某些方面可以通过硬件逻辑而不是存储在ROM 218中的微码来实现。在其它替代实施方式中,微码可以存储在随机存取存储器(RAM)中而不是ROM中。
系统
图2中所示的类型的CPU可以结合到新的装置中。如图3可见,新的装置300可以包括具有多个核心202的CPU 200和具有多个计算单元(CU)304的GPU 302。CPU和GPU可以经由L2高速缓存204、304、总线接口206、306和前侧总线308彼此通信并与存储器和I/O控制器310通信。存储器和I/O控制器310管理经由适当地配置的总线322往来于CPU 200和GPU 302与存储器312(例如,RAM)、存储装置314(例如,磁盘驱动器或闪存存储器)、视频卡316、外围装置318和网络320之间的数据传送。
装置300通过在CPU 200和GPU 302上执行其指令来运行应用程序101。应用程序101的部分可以加载到存储器312中。在一个特定实现方式中,CPUID指令由含有处理器ID程序和两个不同的处理器ID数据集的微码来实现,例如,如以上关于图2所讨论。
如上指出,在替代实现方式中,可能存在两个不同的处理器ID程序,一个用于遗留应用程序,并且另一个用于新的装置应用程序。在此类实现方式中,CPU 200可以在执行CPUID指令时选择性地运行一个程序或另一个程序,这取决于它正在运行的应用程序是遗留应用程序还是新的装置应用程序。在其它替代实现方式中,单个处理器ID程序可以返回处理器ID数据,处理器ID数据在一些细节上不同,这取决于查询程序是遗留应用程序还是新的装置应用程序。在其它替代实现方式中,处理器ID码216可以通过特殊专用硬件实现,例如返回处理器ID信息的某些方面可以通过硬件逻辑而不是存储在CPU核心202的ROM 218中的微码来实现。在其它替代实现方式中,微码可以存储在随机存取存储器(RAM)312(例如,主存储器)中而不是ROM中。
通过阻止应用程序利用即使受到支持也可能会导致定时问题的特征(如果遗留应用程序试图使用它们的话),返回欺骗的处理器特征信息可以有助于解决向后兼容性问题。
虽然以上是本发明的优选实施方案的完整描述,但是使用各种替代、修改和等效物是可能的。因此,本发明的范围不应参考以上描述进行确定,而是应替代地参考随附权利要求书以及其整个等效物范围进行确定。任何特征(不论是否是优选的)可与任何其它特征组合(不论是否是优选的)。在随附权利要求书中,除非另有明确表述,否则不定冠词“一个” 或“一种”是指接在冠词之后的项中的一个或多个的数量。随附权利要求书不应被解释为包括构件加功能限制,除非这种限制在给定权利要中使用短语“用于……的构件”来明确地陈述。权利要求中没有明确表述“用于”执行指定功能的“构件”的任何元件不应被解释为35USC§112(f)中制定的“构件”或“步骤”子句。

Claims (45)

1.一种方法,所述方法包括:
在计算装置中,通过返回关于与所述计算装置上的处理器不同的处理器的信息来对来自应用程序的对关于所述计算装置上的所述处理器的信息的调用作出响应, 其中对来自所述应用程序的调用作出响应包括使用存储在所述处理器核心中的存储器上的微码,
其中,所述微码返回处理器ID数据,所述处理器ID数据包括以下数据中的至少一项:处理器型号、处理器系列、缓存能力、转换旁视缓冲器能力、处理器序列号、处理器品牌、处理器制造商、线程/核心拓扑、高速缓存拓扑、扩展特征、虚拟地址大小、或物理地址大小,所述处理器ID数据取决于所述处理器确定所述应用程序是新装置应用程序还是遗留装置应用程序而不同。
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.一种计算装置,所述计算装置包括:
处理器,所述处理器被配置成通过返回关于不同的处理器的信息来对来自应用程序的对关于所述处理器的信息的调用作出响应, 其中对来自所述应用程序的调用作出响应包括使用存储在所述处理器核心中的存储器上的微码,
其中,所述微码返回处理器ID数据,所述处理器ID数据包括以下数据中的至少一项:处理器型号、处理器系列、缓存能力、转换旁视缓冲器能力、处理器序列号、处理器品牌、处理器制造商、线程/核心拓扑、高速缓存拓扑、扩展特征、虚拟地址大小、或物理地址大小,所述处理器ID数据取决于所述处理器确定所述应用程序是新装置应用程序还是遗留装置应用程序而不同。
17.如权利要求16所述的计算装置,其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为与所述计算装置实际上所支持的特征是不同的。
18.如权利要求16所述的计算装置,其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为完全不受所述计算装置上的所述处理器支持,而事实上所述某些特征是受所述计算装置上的所述处理器支持的。
19.如权利要求16所述的计算装置,其中所述应用程序是为遗留计算装置编写的遗留应用程序。
20.如权利要求16所述的计算装置,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为与所述计算装置实际上所支持的特征是不同的。
21.如权利要求16所述的计算装置,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为完全不受所述计算装置上的所述处理器支持,而事实上所述某些特征是受所述计算装置上的所述处理器支持的。
22.如权利要求16所述的计算装置,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息识别所述遗留计算装置上的处理器。
23.如权利要求16所述的计算装置,其中返回关于所述不同的处理器的所述信息包括使用受所述计算装置上的所述处理器的架构支持的操作码。
24.如权利要求16所述的计算装置,其中返回关于所述不同的处理器的所述信息包括使用受x86架构支持的操作码。
25.如权利要求16所述的计算装置,其中返回关于所述不同的处理器的所述信息包括使用CPUID指令。
26.如权利要求16所述的计算装置,所述计算装置还包括与所述计算装置上的所述处理器相关联的ROM或RAM,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的所述ROM或所述RAM中的微码。
27.如权利要求16所述的计算装置,所述计算装置还包括与所述计算装置上的所述处理器相关联的ROM或RAM,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的所述ROM或所述RAM中的微码和两个不同的处理器ID数据集,其中一个数据集是用于新的装置应用程序,并且另一个数据集是用于遗留装置应用程序。
28.如权利要求16所述的计算装置,所述计算装置还包括与所述计算装置上的所述处理器相关联的ROM或RAM,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的ROM或RAM中的微码,并且所述微码返回所述处理器ID数据,所述处理器ID数据取决于查询程序是新的装置应用程序还是遗留装置应用程序而在某些细节上有所不同。
29.如权利要求16所述的计算装置,其中返回关于所述不同的处理器的所述信息包括将一个ID程序用于遗留应用程序并将另一个ID程序用于新的装置应用程序。
30.如权利要求16所述的计算装置,所述计算装置还包括专用硬件,所述专用硬件被配置成返回关于所述不同的处理器的所述信息,所述返回包括使用专用硬件。
31.一种非瞬时计算机可读介质,所述非瞬时计算机可读介质具有体现在其中的可执行指令,所述可执行指令被配置成当执行时致使计算装置通过返回关于与所述计算装置上的处理器不同的处理器的信息来对来自应用程序的对关于所述计算装置上的所述处理器的信息的调用作出响应, 其中对来自所述应用程序的调用作出响应包括使用存储在所述处理器核心中的存储器上的微码,
其中,所述微码返回处理器ID数据,所述处理器ID数据包括以下数据中的至少一项:处理器型号、处理器系列、缓存能力、转换旁视缓冲器能力、处理器序列号、处理器品牌、处理器制造商、线程/核心拓扑、高速缓存拓扑、扩展特征、虚拟地址大小、或物理地址大小,所述处理器ID数据取决于所述处理器确定所述应用程序是新装置应用程序还是遗留装置应用程序而不同。
32.如权利要求31所述的非瞬时计算机可读介质,其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为与所述计算装置实际上所支持的特征是不同的。
33.如权利要求31所述的非瞬时计算机可读介质,其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为完全不受所述计算装置上的所述处理器支持,而事实上所述某些特征是受所述计算装置上的所述处理器支持的。
34.如权利要求31所述的非瞬时计算机可读介质,其中所述应用程序是为遗留计算装置编写的遗留应用程序。
35.如权利要求31所述的非瞬时计算机可读介质,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为与所述计算装置实际上所支持的特征是不同的。
36.如权利要求31所述的非瞬时计算机可读介质,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息将所述计算装置上的所述处理器的某些特征识别为完全不受所述计算装置上的所述处理器支持,而事实上所述某些特征是受所述计算装置上的所述处理器支持的。
37.如权利要求31所述的非瞬时计算机可读介质,其中所述应用程序是为遗留计算装置编写的遗留应用程序,并且其中关于所述不同的处理器的所述信息识别所述遗留计算装置上的处理器。
38.如权利要求31所述的非瞬时计算机可读介质,其中返回关于所述不同的处理器的所述信息包括使用受所述计算装置上的所述处理器的架构支持的操作码。
39.如权利要求31所述的非瞬时计算机可读介质,其中返回关于所述不同的处理器的所述信息包括使用受x86架构支持的操作码。
40.如权利要求31所述的非瞬时计算机可读介质,其中返回关于所述不同的处理器的所述信息包括使用CPUID指令。
41.如权利要求31所述的非瞬时计算机可读介质,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的ROM或RAM中的微码。
42.如权利要求31所述的非瞬时计算机可读介质,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的ROM或RAM中的微码和两个不同的处理器ID数据集,其中一个数据集是用于新的装置应用程序,并且另一数据集是用于遗留装置应用程序。
43.如权利要求31所述的非瞬时计算机可读介质,其中返回关于所述不同的处理器的所述信息包括使用存储在与所述计算装置上的所述处理器相关联的ROM或RAM中的微码,并且所述微码返回所述处理器ID数据,所述处理器ID数据取决于查询程序是新的装置应用程序还是遗留装置应用程序而在某些细节上有所不同。
44.如权利要求31所述的非瞬时计算机可读介质,其中返回关于所述不同的处理器的所述信息包括将一个ID程序用于遗留应用程序并将另一个ID程序用于新的装置应用程序。
45.如权利要求31所述的非瞬时计算机可读介质,其中返回关于所述不同的处理器的所述信息包括使用专用硬件。
CN201780007665.7A 2016-01-22 2017-01-20 用于向后兼容性的欺骗cpuid Active CN108885552B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310197565.2A CN116340022A (zh) 2016-01-22 2017-01-20 用于向后兼容性的欺骗cpuid

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662286280P 2016-01-22 2016-01-22
US62/286,280 2016-01-22
PCT/US2017/014262 WO2017127631A1 (en) 2016-01-22 2017-01-20 Spoofing cpuid for backwards compatibility

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310197565.2A Division CN116340022A (zh) 2016-01-22 2017-01-20 用于向后兼容性的欺骗cpuid

Publications (2)

Publication Number Publication Date
CN108885552A CN108885552A (zh) 2018-11-23
CN108885552B true CN108885552B (zh) 2023-03-14

Family

ID=59360501

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780007665.7A Active CN108885552B (zh) 2016-01-22 2017-01-20 用于向后兼容性的欺骗cpuid
CN202310197565.2A Pending CN116340022A (zh) 2016-01-22 2017-01-20 用于向后兼容性的欺骗cpuid

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310197565.2A Pending CN116340022A (zh) 2016-01-22 2017-01-20 用于向后兼容性的欺骗cpuid

Country Status (6)

Country Link
US (2) US11068291B2 (zh)
EP (1) EP3405864A4 (zh)
JP (2) JP6788017B2 (zh)
KR (2) KR102455675B1 (zh)
CN (2) CN108885552B (zh)
WO (1) WO2017127631A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102455675B1 (ko) 2016-01-22 2022-10-17 주식회사 소니 인터랙티브 엔터테인먼트 하위 호환성을 위한 cpuid 스푸핑
US11222082B2 (en) 2018-03-30 2022-01-11 Intel Corporation Identification of a computer processing unit
US10877751B2 (en) 2018-09-29 2020-12-29 Intel Corporation Spoofing a processor identification instruction
US11055094B2 (en) 2019-06-26 2021-07-06 Intel Corporation Heterogeneous CPUID spoofing for remote processors

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101036118A (zh) * 2004-10-15 2007-09-12 英特尔公司 由外部代理启动cpu数据预取的方法和设备
CN102906694A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 用于与适配器进行通信的加载指令
CN103562870A (zh) * 2011-05-11 2014-02-05 超威半导体公司 异构核心的自动加载平衡
CN104903867A (zh) * 2012-09-28 2015-09-09 英特尔公司 用于执行冲突检测并将寄存器的内容广播到另一个寄存器的数据元素位置的系统、装置和方法

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5155809A (en) * 1989-05-17 1992-10-13 International Business Machines Corp. Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware
US5790834A (en) * 1992-08-31 1998-08-04 Intel Corporation Apparatus and method using an ID instruction to identify a computer microprocessor
US6252900B1 (en) * 1997-06-30 2001-06-26 Integrated Telecom Express, Inc. Forward compatible and expandable high speed communications system and method of operation
US6879266B1 (en) * 1997-08-08 2005-04-12 Quickshift, Inc. Memory module including scalable embedded parallel data compression and decompression engines
US7113902B2 (en) * 2000-03-02 2006-09-26 Texas Instruments Incorporated Data processing condition detector with table lookup
US6691235B1 (en) * 2000-07-27 2004-02-10 International Business Machines Corporation Automatic voltage regulation for processors having different voltage requirements and unified or split voltage planes
US20020147962A1 (en) 2001-02-12 2002-10-10 International Business Machines Corporation Method and system for incorporating legacy applications into a distributed data processing environment
US20020112145A1 (en) 2001-02-14 2002-08-15 Bigbee Bryant E. Method and apparatus for providing software compatibility in a processor architecture
AU2002335799A1 (en) 2001-10-10 2003-04-22 Sony Computer Entertainment America Inc. System and method for environment mapping
US7081893B2 (en) 2001-10-10 2006-07-25 Sony Computer Entertainment America Inc. System and method for point pushing to render polygons in environments with changing levels of detail
US8015567B2 (en) * 2002-10-08 2011-09-06 Netlogic Microsystems, Inc. Advanced processor with mechanism for packet distribution at high line rate
US7698539B1 (en) * 2003-07-16 2010-04-13 Banning John P System and method of instruction modification
US7458078B2 (en) * 2003-11-06 2008-11-25 International Business Machines Corporation Apparatus and method for autonomic hardware assisted thread stack tracking
US7895473B2 (en) * 2004-04-29 2011-02-22 International Business Machines Corporation Method and apparatus for identifying access states for variables
US8429418B2 (en) * 2006-02-15 2013-04-23 Intel Corporation Technique for providing secure firmware
US7950020B2 (en) * 2006-03-16 2011-05-24 Ntt Docomo, Inc. Secure operating system switching
US20080028033A1 (en) * 2006-07-28 2008-01-31 Kestrelink Corporation Network directory file stream cache and id lookup
US20080071502A1 (en) * 2006-09-15 2008-03-20 International Business Machines Corporation Method and system of recording time of day clock
WO2008044423A1 (fr) 2006-10-13 2008-04-17 Nec Corporation Processeur d'informations et procédé de couverture de panne
US8149242B2 (en) 2006-11-10 2012-04-03 Sony Computer Entertainment Inc. Graphics processing apparatus, graphics library module and graphics processing method
US7802252B2 (en) * 2007-01-09 2010-09-21 International Business Machines Corporation Method and apparatus for selecting the architecture level to which a processor appears to conform
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
US8949713B1 (en) 2008-06-30 2015-02-03 Amazon Technologies, Inc. Version-specific request processing
EP2297627B8 (en) * 2008-07-03 2015-12-30 Qulsar Sweden AB Electronic timer system including look-up table based synchronization
US8627284B2 (en) * 2009-06-19 2014-01-07 Microsoft Corporation Managed system extensibility
US9626206B2 (en) * 2010-03-18 2017-04-18 Microsoft Technology Licensing, Llc Virtual machine homogenization to enable migration across heterogeneous computers
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
US10176621B2 (en) 2013-06-10 2019-01-08 Sony Interactive Entertainment Inc. Using compute shaders as front end for vertex shaders
US10134102B2 (en) 2013-06-10 2018-11-20 Sony Interactive Entertainment Inc. Graphics processing hardware for using compute shaders as front end for vertex shaders
US10096079B2 (en) 2013-06-10 2018-10-09 Sony Interactive Entertainment Inc. Fragment shaders perform vertex shader computations
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US10438312B2 (en) 2014-04-05 2019-10-08 Sony Interactive Entertainment LLC Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US9582381B2 (en) * 2014-06-12 2017-02-28 Unisys Corporation Multi-threaded server control automation for disaster recovery
US9760113B2 (en) 2015-02-20 2017-09-12 Sony Interactive Entertainment America Llc Backward compatibility through use of spoof clock and fine grain frequency control
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US10409613B2 (en) * 2015-12-23 2019-09-10 Intel Corporation Processing devices to perform a key value lookup instruction
KR102455675B1 (ko) 2016-01-22 2022-10-17 주식회사 소니 인터랙티브 엔터테인먼트 하위 호환성을 위한 cpuid 스푸핑

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101036118A (zh) * 2004-10-15 2007-09-12 英特尔公司 由外部代理启动cpu数据预取的方法和设备
CN102906694A (zh) * 2010-06-23 2013-01-30 国际商业机器公司 用于与适配器进行通信的加载指令
CN103562870A (zh) * 2011-05-11 2014-02-05 超威半导体公司 异构核心的自动加载平衡
CN104903867A (zh) * 2012-09-28 2015-09-09 英特尔公司 用于执行冲突检测并将寄存器的内容广播到另一个寄存器的数据元素位置的系统、装置和方法

Also Published As

Publication number Publication date
JP6960511B2 (ja) 2021-11-05
US20210365282A1 (en) 2021-11-25
EP3405864A1 (en) 2018-11-28
JP2019503013A (ja) 2019-01-31
US20170212774A1 (en) 2017-07-27
US11068291B2 (en) 2021-07-20
JP2021022399A (ja) 2021-02-18
US11847476B2 (en) 2023-12-19
EP3405864A4 (en) 2019-08-21
CN108885552A (zh) 2018-11-23
WO2017127631A1 (en) 2017-07-27
JP6788017B2 (ja) 2020-11-18
KR20200129196A (ko) 2020-11-17
CN116340022A (zh) 2023-06-27
KR102455675B1 (ko) 2022-10-17
KR102179237B1 (ko) 2020-11-16
KR20180101574A (ko) 2018-09-12

Similar Documents

Publication Publication Date Title
US11074180B2 (en) Creating a dynamic address translation with translation exception qualifiers
US11847476B2 (en) Spoofing CPUID for backwards compatibility
EP1914627A2 (en) Invalidating storage, clearing buffer entries
US9760374B2 (en) Stack pointer and memory access alignment control
US11630687B2 (en) Compacted context state management
CN105989758B (zh) 地址翻译方法和装置
US9383935B1 (en) Secondary CPU MMU initialization using page fault exception
US11144329B2 (en) Processor microcode with embedded jump table
CN115640047B (zh) 指令操作方法及装置、电子装置及存储介质
US9208112B1 (en) Permanent allocation of a large host memory
EP4020237B1 (en) 64-bit virtual addresses having metadata bit(s) and canonicality check that does not fail due to non-canonical values of metadata bit(s)

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant