JP2021022399A - 後方互換性のためのなりすましcpuid - Google Patents

後方互換性のためのなりすましcpuid Download PDF

Info

Publication number
JP2021022399A
JP2021022399A JP2020181308A JP2020181308A JP2021022399A JP 2021022399 A JP2021022399 A JP 2021022399A JP 2020181308 A JP2020181308 A JP 2020181308A JP 2020181308 A JP2020181308 A JP 2020181308A JP 2021022399 A JP2021022399 A JP 2021022399A
Authority
JP
Japan
Prior art keywords
computing device
processor
information
cpu
application
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
Application number
JP2020181308A
Other languages
English (en)
Other versions
JP6960511B2 (ja
Inventor
エヴァン サーニー、マーク
Evan Cerny Mark
エヴァン サーニー、マーク
ピルグリム、シモン
Pilgrim Simon
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 LLC
Original Assignee
Sony Interactive Entertainment LLC
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 LLC filed Critical Sony Interactive Entertainment LLC
Publication of JP2021022399A publication Critical patent/JP2021022399A/ja
Application granted granted Critical
Publication of JP6960511B2 publication Critical patent/JP6960511B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/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/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

【課題】新デバイスとレガシーデバイスに対するCPUの動作の違いから起こる問題を解決する方法を提供する。【解決手段】後方互換性を容易にするために、新コンピューティングデバイス上のプロセッサは、異なるプロセッサの情報が、レガシーアプリケーションからの呼び出しに応答して返されるような方法で、オペコードを実行するかまたはレジスタ値を提供する。異なる情報は、「なりすましプロセッサID」と呼ばれ、なりすましプロセッサIDは、新デバイスの特定の機能を、実際にサポートされているものとは異なるかまたは実際にサポートされている時にはまったくサポートされていない、のいずれかに選択的に識別する。【選択図】図1

Description

優先権の主張
本出願は、2016年1月22日に出願された、同一出願人の、米国仮出願番号第62/286,280号の優先権の利益を主張し、その内容全体が参照により本明細書に組み込まれる。
コンピュータシステムの新しいバージョン(「新デバイス」)がリリースされる時には、以前のバージョンのシステム(「レガシーデバイス」)のために書かれたアプリケーションが、新デバイス上で完璧に動くことが望ましい。この能力は、しばしば、「レガシーアプリケーション」に対する後方互換性と呼ばれる。新デバイスが、レガシーデバイスのために作られたレガシーアプリケーションを実行することができたとしても、新デバイスは、それでも、それらのアプリケーションを実行した時に後方互換できないかもしれない。新デバイスとレガシーデバイスとのハードウェア構成要素の性能の違いが、新デバイスでの同期エラーの原因となることがある。そのような性能の違いは、たとえば、レガシーデバイスに対する新デバイスの中央処理装置(CPU)の能力の違いから起こることがある。たとえば、新デバイスのCPUがレガシーデバイスのCPUよりも早い場合、新デバイスの別の構成要素によってまだ使用されているデータを、CPUが時期尚早に上書きする場合がある。
先行技術に関連した弱点は、コンピューティングデバイスが、コンピューティングデバイス上のプロセッサに関する情報に対するアプリケーションからの呼び出しに、コンピューティングデバイス上のプロセッサとは異なるプロセッサに関する情報を返すことによって、応答する方法に関連した本開示の態様によって克服される。
本開示の教示は、以下の詳細な説明を、添付図面と併せて考慮することによって、容易に理解することができる。
本開示の態様による、後方互換性を実装するための方法を示したフロー図である。 図1の方法を実行するための実行可能ソフトウェアをリードオンリーメモリ(ROM)に実装した中央処理装置(CPU)を図示したブロック図である。 図2に示した種類のCPUを含むデバイスのブロック図である。
以下の詳細な説明は、説明目的のための多くの具体的な詳細を含んでいるが、当業者の誰もが、以下の詳細の多くの変形物と変化物とが本特許請求の発明の範囲に含まれることを理解する。したがって、以下で説明する本発明の例示的な実施形態は、特許請求の発明に対して、一般性を失わずに、制限を課さずに、記載される。
導入
レガシーデバイスに対するCPUの動作の違いから起こる問題に対応するために、新デバイスは、レガシーアプリケーションを実行する時に、レガシーデバイスCPUの特定の能力を模倣する場合がある。レガシーデバイスを模倣する能力の重要な機能は、レガシーアプリケーションがあたかもレガシーデバイス上で動いているかのように動作するよう、レガシーアプリケーションをだますことである。多くのアプリケーションが異なるプロセッサ上で実行されるように設計されているため、現代のプロセッサは、しばしば、ソフトウェアアプリケーションがプロセッサの詳細を発見することを可能にするオペコードまたはレジスタを実装している。後方互換性を容易にするために、新デバイス上のプロセッサは、異なるプロセッサの情報が、レガシーアプリケーションからの呼び出しに応答して返されるような方法で、オペコードを実行することができる、またはレジスタ値を提供することができる。異なる情報は、本明細書では、「なりすましプロセッサID」と呼ばれる。なりすましプロセッサIDは、新デバイスの特定の機能を、実際にサポートされているものとは異なる、または実際にサポートされている時にはまったくサポートされていない、のいずれかに選択的に識別する。
方法
図1に示すフロー図で図示する方法100は、これがどのように行われるかの一実施例を示している。具体的には、102で示す通り、デバイス上で動いている要求アプリケーション101が、プロセッサIDを、アプリケーションを実行しているプロセッサに要求する。104において、プロセッサは、要求アプリケーション101がレガシーアプリケーションであるかどうか、つまり、もともと以前のバージョンのデバイスのために書かれたものかどうかを判断する。アプリケーションが新デバイスのためまたはレガシーデバイスのために書かれたかどうかをプロセッサが判断することができる、多くの方法がある。1つの方法は、新デバイスのために書かれたすべてのアプリケーションが、ロードした際に、アプリケーションが新デバイスのために書かれたものと識別した情報を、プロセッサに報告するかどうかである。そのような情報が報告されることは、アプリケーションが新デバイスのために書かれたとして識別し、そのような情報が報告されないことは、アプリケーションをレガシーアプリケーションとして識別する。
プロセッサによって要求アプリケーション101に戻される情報は、アプリケーション101がレガシーアプリケーションであるかどうか、または新しいアプリケーションかどうか、つまり、デバイス上で動くように書かれたものかどうかに基づいて変化する。要求アプリケーション101が新しいアプリケーションである場合、プロセッサは、106で示す通り、真のプロセッサ情報、たとえば、アプリケーションを実行しているデバイス上のプロセッサに対する正しいプロセッサID103を返す。要求アプリケーション101がレガシーアプリケーションである場合、プロセッサは、108で示す通り、なりすましプロセッサ情報、たとえば、なりすましプロセッサID105を返す。返された情報は、実際はプロセッサによってサポートされている特定の機能がサポートされていないと識別し、またはアプリケーションを実行しているプロセッサがレガシープロセッサであると特定し得る。
限定としてではなく一例として、なりすましプロセッサID105を、x86アーキテクチャによってサポートされているオペコードである、変更CPUID命令によって返し得る。CPUIDオペコードを使用することによって、ソフトウェアは、プロセッサの種類と、さまざまなSSE命令セットアーキテクチャの実装などの機能の存在とを判断することができる。x86アーキテクチャでは、CPUIDオペコードは、0FhとA2hとのバイトであり、EAXレジスタ内の、いくつかの場合ではECXレジスタ内の値が、どの情報を返すかを指定する。
アセンブリ言語では、CPUID命令はパラメータを使用せず、代わりに、黙示的にEAXレジスタを使用して、一般的にCPUIDリーフと呼ばれる、返される情報の主要カテゴリを判断する。CPUIDをEAX=0を用いて呼び出すアプリケーションは、EAXレジスタにおいて、返答として、CPUがサポートする最大EAX呼び出しパラメータ(リーフ)を受け取り、他のレジスタは、CPUの製造業者を特定するベンダーIDを含む。拡張機能情報を取得するために、CPUIDを、EAXセットのうちの最上位ビットを用いて呼び出してもよい。パラメータを呼び出している最大拡張機能を判断するために、CPUIDを、EAX=80000000hを用いて呼び出してもよい。リーフは、また、サブリーフを有し、それらは、CPUIDを呼び出す前に、ECXレジスタを介して選択される。
CPUIDをEAX=1を用いて呼び出すと、CPUのステッピングモデルとモデルとの情報とファミリー情報とをEAXに(CPUのシグネチャとも呼ばれる)、機能フラグをEDXとECXとに、追加機能情報をEBXに、返す。CPUIDをEAX=2を用いて呼び出すと、キャッシュと変換索引バッファ(TLB)との能力を示した記述子のリストを、EAXレジスタとEBXレジスタとECXレジスタとEDXレジスタとに返す。他のEAX値は、プロセッサのシリアル番号、スレッド/コア及びキャッシュトポロジー、拡張機能、プロセッサブランド、L1キャッシュ及びTLB識別子、拡張L2キャッシュ機能、消費電力管理機能識別子、及び仮想アドレスサイズ及び物理アドレスサイズ、などの情報を返す。図1に示した種類のプログラムは、レガシーアプリケーションによって問い合わされた場合、それらのうちの任意またはすべての正しい値に対して異なる値を返してもよい。
CPU
図1に示すプロセッサIDなりすまし能力を、新デバイス上で、多くの異なる方法で実装することができる。たとえば、新デバイスは、レガシーアプリケーションからの問い合わせに応答して、なりすましプロセッサID情報を返す特別なマイクロコードを、ROMまたはRAM内に含んでもよい。図2は、マイクロコードがCPUコア202の一部であるROM内に実装されている、CPU200の1つの可能な実装形態を示している。CPUは、1つまたは複数のそのようなコアを含んでもよい。CPUコア202は、共通のレベル2キャッシュ204とバスインターフェース206とを共有してもよい。各コア202は、命令をロードし、格納し、スケジュールし、復号し、実行するための論理ユニット208を、レジスタ210、キャッシュ212、及び命令とデータとのための変換索引バッファ(TLB)214と、共に含んでもよい。
図2に示す特定の実施態様では、CPUID命令は、プロセッサIDプログラムと2つの異なるセットのプロセッサIDデータとを含むROM218に格納されたマイクロコード216によって実装されている。データの1つのセット(ID1)は、新デバイスアプリケーションのためであり、他方のセット(ID2)は、レガシーデバイスアプリケーションのためである。
代替的な実施態様では、2つの異なるプロセッサIDプログラムがあり得、1つはレガシーアプリケーションのためであり、1つは新デバイスアプリケーションのためである。そのような実施態様では、CPU200は、CPUID命令を実行する時に、それが実行しているアプリケーションがレガシーアプリケーションまたは新デバイスアプリケーションかにより、1つのプログラムまたは他方を選択的に実行してもよい。他の代替的な実施態様では、プロセッサIDプログラムを、特別な専用ハードウェアによって実装してもよく、たとえば、プロセッサID情報を返すことの特定の態様を、ROM218に格納されたマイクロコードではなく、ハードウェア論理によって実装してもよい。他の代替的な実施態様では、マイクロコードを、ROMではなく、ランダムアクセスメモリ(RAM)に格納してもよい。
システム
図2に示した種類のCPUを、新デバイスに組み込んでもよい。図3で見られる通り、新デバイス300は、複数のコア202を有するCPU200と、複数の計算ユニット(CU)304を有するGPU302とを含んでもよい。CPU及びGPUは、互いと、またメモリ及びI/Oコントローラ310と、L2キャッシュ204、304と、バスインターフェース206、306、及びフロントサイドバス308とを介して通信してもよい。メモリ及びI/Oコントローラ310は、CPU200と、GPU302と、メモリ312(たとえば、RAM)と、ストレージデバイス314(たとえば、ディスクドライブまたはフラッシュメモリ)と、ビデオカード316と、周辺機器318と、ネットワーク320と、への及びそれらからのデータ転送を、適切に構成されたバス322を介して管理する。
デバイス300は、アプリケーション101を、その命令をCPU200とGPU302とで実行することによって実行する。アプリケーション101の一部を、メモリ312にロードしてもよい。1つの特定の実施態様では、CPUID命令は、たとえば、図2に関して上記で説明した通り、プロセッサIDプログラムと2つの異なるセットのプロセッサIDデータとを含むマイクロコードによって実装される。
上述した通り、代替的な実施態様では、2つの異なるプロセッサIDプログラムがある場合があり、1つはレガシーアプリケーションのため、1つは新デバイスアプリケーションのためである。そのような実施態様では、CPU200は、CPUID命令を実行する時に、それが実行しているアプリケーションがレガシーアプリケーションまたは新デバイスアプリケーションかにより、1つのプログラムまたは他方を選択的に実行してもよい。他の代替的な実施態様では、シングルプロセッサIDプログラムは、問い合わせをしているプログラムがレガシーアプリケーションまたは新デバイスアプリケーションかにより、いくつかの詳細において異なるプロセッサIDデータを返してもよい。他の代替的な実施態様では、プロセッサIDコード216を、特別な専用ハードウェアによって実装してもよく、たとえば、プロセッサID情報を返すことの特定の態様を、CPUコア202のROM218に格納されたマイクロコードではなく、ハードウェア論理によって実装してもよい。他の代替的な実施態様では、マイクロコードを、ランダムアクセスメモリ(RAM)、たとえばROM内ではなくメインメモリ312内に格納してもよい。
なりすましプロセッサ機能情報を返すことは、サポートされていたとしても、レガシーアプリケーションがそれらを使用しようと試みた場合にタイミング問題を引き起こすかもしれない機能をアプリケーションが利用することを防ぐことによって、後方互換性問題の解決を容易にすることができる。
上記が本発明の好適な実施形態の完全な説明であるが、さまざまな代替物と変更物と同等物とを使用することが可能である。したがって、本発明の範囲は、上記の説明を参照して決定されるべきでなく、代わりに、添付の特許請求の範囲を、それらの同等物の全範囲と共に参照して決定すべきである。好適であろうとなかろうと、任意の特徴を、好適であろうとなかろうと、任意の他の特徴と、組み合わせてもよい。後続の特許請求の範囲では、不定冠詞「A」または「An」は、特段に明示的に述べない限り、冠詞の後の項目の1つまたは複数の数を述べている。添付の特許請求の範囲は、ミーンズプラスファンクションの限定を含むとして解釈されるものでないが、そのような限定が、「ための手段」という言葉を使用した所与の請求項において明示的に列挙されている場合はその限りでない。具体的な機能を実行する「ための手段」を明示的に述べない請求項内の任意の要素は、35USC§112(f)に述べる「手段」条項または「ステップ」条項として解釈されるものでない。

Claims (21)

  1. 複数のプロセッサを備えるコンピューティングデバイスであって、
    前記複数のプロセッサは、前記コンピューティングデバイス上の特定のプロセッサに関する情報に対するアプリケーションからの呼び出しに、前記アプリケーションが新デバイスのために書かれたものと識別した情報を前記アプリケーションに基づいて報告することが行われない場合に前記コンピューティングデバイス上の前記特定のプロセッサとは異なるプロセッサに関する情報を返すことによって応答するように構成されたプロセッサを含む、コンピューティングデバイス。
  2. 前記異なるプロセッサに関する前記情報が、前記コンピューティングデバイス上の前記特定のプロセッサの特定の機能を、前記コンピューティングデバイスによって実際にサポートされているものとは異なる、と識別する、請求項1に記載のコンピューティングデバイス。
  3. 前記異なるプロセッサに関する前記情報が、前記コンピューティングデバイス上の前記特定のプロセッサの特定の機能を、実際に前記特定の機能が前記コンピューティングデバイス上の前記プロセッサによってサポートされている時に、前記コンピューティングデバイス上の前記プロセッサによってまったくサポートされていない、と識別する、請求項1に記載のコンピューティングデバイス。
  4. 前記複数のプロセッサは、複数のコアを有する中央処理装置(CPU)を含み、前記コンピューティングデバイス上の前記特定のプロセッサは、前記CPUの特定のコアである、請求項1に記載のコンピューティングデバイス。
  5. 前記複数のプロセッサは、キャッシュおよびバスインターフェースに結合された複数のコアを有する中央処理装置(CPU)を含む、請求項1に記載のコンピューティングデバイス。
  6. 前記複数のプロセッサは、キャッシュおよびバスインターフェースに結合された複数の計算ユニットを有するグラフィックス処理装置(GPU)を含む、請求項1に記載のコンピューティングデバイス。
  7. 前記複数のプロセッサは、複数の計算ユニットを有するグラフィックス処理装置(GPU)を含み、前記コンピューティングデバイス上の前記特定のプロセッサは、前記GPUの特定の計算ユニットである、請求項1に記載のコンピューティングデバイス。
  8. 前記複数のプロセッサは、中央処理装置(CPU)およびグラフィックス処理装置(GPU)を含み、前記コンピューティングデバイス上の前記特定のプロセッサは、前記CPUである、請求項1に記載のコンピューティングデバイス。
  9. 前記複数のプロセッサは、中央処理装置(CPU)およびグラフィックス処理装置(GPU)を含み、前記コンピューティングデバイス上の前記特定のプロセッサは、前記GPUである、請求項1に記載のコンピューティングデバイス。
  10. 前記複数のプロセッサは、中央処理装置(CPU)およびグラフィックス処理装置(GPU)を含む、請求項1に記載のコンピューティングデバイス。
  11. 前記複数のプロセッサは、中央処理装置(CPU)、およびデータバスを介して前記CPUに結合されたグラフィックス処理装置(GPU)を含む、請求項1に記載のコンピューティングデバイス。
  12. 前記複数のプロセッサに結合されたメモリをさらに含む、請求項1に記載のコンピューティングデバイス。
  13. 前記異なるプロセッサに関する前記情報が、レガシーデバイス上のプロセッサを識別する、請求項1に記載のコンピューティングデバイス。
  14. 前記異なるプロセッサに関する前記情報を返すことが、前記コンピューティングデバイス上の前記プロセッサのアーキテクチャによってサポートされているオペコードの使用を含む、請求項1に記載のコンピューティングデバイス。
  15. 前記異なるプロセッサに関する前記情報を返すことが、x86アーキテクチャによってサポートされているオペコードの使用を含む、請求項1に記載のコンピューティングデバイス。
  16. 前記異なるプロセッサに関する前記情報を返すことが、CPUID命令の使用を含む、請求項1に記載のコンピューティングデバイス。
  17. 前記コンピューティングデバイス上の前記プロセッサに関連付けられたROMまたはRAMをさらに備え、前記異なるプロセッサに関する前記情報を返すことが、前記コンピューティングデバイス上の前記プロセッサに関連付けられた前記ROMまたはRAMに格納されたマイクロコードの使用を含む、請求項1に記載のコンピューティングデバイス。
  18. 前記コンピューティングデバイスは、前記プロセッサに関連付けられたROMまたはRAMを有するものであり、
    前記ROMまたはRAMは、マイクロコードと、プロセッサIDデータの互いに異なる2つのセットを格納するものであり、
    前記プロセッサIDデータの第1のセットは、新デバイスアプリケーションのためのものであり、
    前記プロセッサIDデータの第2のセットは、レガシーデバイスアプリケーションのためのものであり、
    前記異なるプロセッサに関する前記情報を返すことが、前記マイクロコードと、前記プロセッサIDデータの第2のセットを使用することを含む、請求項1に記載のコンピューティングデバイス。
  19. 前記コンピューティングデバイスは、前記プロセッサに関連付けられたROMまたはRAMを有するものであり、
    前記ROMまたはRAMは、マイクロコードを格納するものであり、
    前記マイクロコードを実行することにより実装される論理は、前記呼び出しの元となるアプリケーションが新デバイスアプリケーションであるか、または、レガシーデバイスアプリケーションであるかにより、いくつかの詳細において異なるような、プロセッサIDデータを返すものであり、
    前記異なるプロセッサに関する前記情報を返すことが、前記呼び出しの元となるアプリケーションがレガシーデバイスアプリケーションである場合に、前記マイクロコードを実行することにより、プロセッサIDデータを返すことを含む、請求項1に記載のコンピューティングデバイス。
  20. 前記コンピューティングデバイスは、レガシーデバイスアプリケーションのための1つのIDプログラムと新デバイスアプリケーションのための別のIDプログラムを有するものであり、
    前記異なるプロセッサに関する前記情報を返すことが、レガシーデバイスアプリケーションのための1つのIDプログラムを使用することを含む、請求項1に記載のコンピューティングデバイス。
  21. 前記異なるプロセッサに関する前記情報を返すように構成された専用ハードウェアをさらに備える、請求項1に記載のコンピューティングデバイス。
JP2020181308A 2016-01-22 2020-10-29 後方互換性のためのなりすましcpuid Active JP6960511B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662286280P 2016-01-22 2016-01-22
US62/286,280 2016-01-22
JP2018538543A JP6788017B2 (ja) 2016-01-22 2017-01-20 後方互換性のためのなりすましcpuid

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018538543A Division JP6788017B2 (ja) 2016-01-22 2017-01-20 後方互換性のためのなりすましcpuid

Publications (2)

Publication Number Publication Date
JP2021022399A true JP2021022399A (ja) 2021-02-18
JP6960511B2 JP6960511B2 (ja) 2021-11-05

Family

ID=59360501

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018538543A Active JP6788017B2 (ja) 2016-01-22 2017-01-20 後方互換性のためのなりすましcpuid
JP2020181308A Active JP6960511B2 (ja) 2016-01-22 2020-10-29 後方互換性のためのなりすましcpuid

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2018538543A Active JP6788017B2 (ja) 2016-01-22 2017-01-20 後方互換性のためのなりすましcpuid

Country Status (6)

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

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108885552B (zh) 2016-01-22 2023-03-14 索尼互动娱乐股份有限公司 用于向后兼容性的欺骗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

Family Cites Families (45)

* 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
US6859897B2 (en) * 2000-03-02 2005-02-22 Texas Instruments Incorporated Range based detection of memory access
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
EP1442390B1 (en) 2001-10-10 2017-09-13 Sony Computer Entertainment America LLC 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
US7360027B2 (en) * 2004-10-15 2008-04-15 Intel Corporation Method and apparatus for initiating CPU data prefetches by an external agent
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
US8108719B2 (en) 2006-10-13 2012-01-31 Nec Corporation Information processing device and failure concealing method therefor
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
US8402302B2 (en) * 2008-07-03 2013-03-19 Imsys Ab Timer system for maintaining the accuracy of a real time clock when synchronization source is not available
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
US8566480B2 (en) * 2010-06-23 2013-10-22 International Business Machines Corporation Load instruction for communicating with adapters
US8782645B2 (en) * 2011-05-11 2014-07-15 Advanced Micro Devices, Inc. Automatic load balancing for heterogeneous cores
US9665368B2 (en) * 2012-09-28 2017-05-30 Intel Corporation Systems, apparatuses, and methods for performing conflict detection and broadcasting contents of a register to data element positions of another register
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
US10102603B2 (en) 2013-06-10 2018-10-16 Sony Interactive Entertainment Inc. Scheme for compressing vertex shader output parameters
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
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
WO2015154004A1 (en) 2014-04-05 2015-10-08 Sony Computer Entertainment America Llc Method for efficient re-rendering objects to vary viewports and under varying rendering and 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
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
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
US10235219B2 (en) 2015-07-27 2019-03-19 Sony Interactive Entertainment America Llc Backward compatibility by algorithm matching, disabling features, or throttling performance
US11403099B2 (en) 2015-07-27 2022-08-02 Sony Interactive Entertainment LLC Backward compatibility by restriction of hardware resources
US10409613B2 (en) * 2015-12-23 2019-09-10 Intel Corporation Processing devices to perform a key value lookup instruction
CN108885552B (zh) 2016-01-22 2023-03-14 索尼互动娱乐股份有限公司 用于向后兼容性的欺骗cpuid

Also Published As

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

Similar Documents

Publication Publication Date Title
JP6960511B2 (ja) 後方互換性のためのなりすましcpuid
US20170315910A1 (en) Creating a dynamic address translation with translation exception qualifiers
TWI722071B (zh) 虛擬機器之間的中斷
US20060020940A1 (en) Soft-partitioning systems and methods
JP2014029702A (ja) 割り込み通信装置、方法、およびシステム
JP2017513128A (ja) マルチスレッド・ゲスト仮想マシン(vm)をディスパッチするためのシステム、方法およびコンピュータ・プログラム製品
US11630687B2 (en) Compacted context state management
US20090006791A1 (en) Data movement and initialization aggregation
US20160048458A1 (en) Computer Security Systems and Methods Using Hardware-Accelerated Access To Guest Memory From Below The Operating System
BR102020019663A2 (pt) algoritmo de remoção de linha de cache à base de prioridade de tecnologia de alocação de cache flexível
US11683310B2 (en) Protecting supervisor mode information
CN105989758B (zh) 地址翻译方法和装置
US11144329B2 (en) Processor microcode with embedded jump table
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)
CN110795231A (zh) 一种虚拟cpu的处理方法及装置
US20220261263A1 (en) Heteromorphic i/o discovery and handshake
US9208112B1 (en) Permanent allocation of a large host memory
US20210240644A1 (en) Paravirtualized cluster mode for legacy apics
US20150186140A1 (en) Opcode trapping

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201130

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210921

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211011

R150 Certificate of patent or registration of utility model

Ref document number: 6960511

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150