
…というわけで、PS4次世代機?において後方互換性を持たせてくる可能性は結構ありそうです。
スポンサーリンク
[J-PlatPat: 特表2019-503013 後方互換性のためのなりすましCPUID
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2019-503013(P2019-503013A)
(43)【公表日】平成31年1月31日(2019.1.31)
(54)【発明の名称】後方互換性のためのなりすましCPUID
(71)【出願人】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(72)【発明者】
【氏名】サーニー、マーク エヴァン
(72)【発明者】
【氏名】ピルグリム、シモン
出願人は株SIEなのですが、発明者にPS4のアーキテクトを務め、PS4/PSVitaの開発を進める立場にあったサーニー氏が名を連ねています。
その要約はというと、
【要約】
【解決手段】後方互換性を容易にするために、コンピューティングデバイスは、コンピューティングデバイス上のプロセッサに関する情報に対するアプリケーションからの呼び出しに、コンピューティングデバイス上のプロセッサとは異なるプロセッサに関する情報を返すことによって応答してもよい。
これだけだとよく分からないかもしれませんが、背景を見ると…
【0002】
コンピュータシステムの新しいバージョン(「新デバイス」)がリリースされる時には、以前のバージョンのシステム(「レガシーデバイス」)のために書かれたアプリケーションが、新デバイス上で完璧に動くことが望ましい。この能力は、しばしば、「レガシーアプリケーション」に対する後方互換性と呼ばれる。新デバイスが、レガシーデバイスのために作られたレガシーアプリケーションを実行することができたとしても、新デバイスは、それでも、それらのアプリケーションを実行した時に後方互換できないかもしれない。新デバイスとレガシーデバイスとのハードウェア構成要素の性能の違いが、新デバイスでの同期エラーの原因となることがある。そのような性能の違いは、たとえば、レガシーデバイスに対する新デバイスの中央処理装置(CPU)の能力の違いから起こることがある。たとえば、新デバイスのCPUがレガシーデバイスのCPUよりも早い場合、新デバイスの別の構成要素によってまだ使用されているデータを、CPUが時期尚早に上書きする場合がある。
厳密な互換の維持は同じ命令セットを持っていても難しい部分があるという話ですね。
なので、
【0003】
先行技術に関連した弱点は、コンピューティングデバイスが、コンピューティングデバイス上のプロセッサに関する情報に対するアプリケーションからの呼び出しに、コンピューティングデバイス上のプロセッサとは異なるプロセッサに関する情報を返すことによって、応答する方法に関連した本開示の態様によって克服される。
…克服されるんだ?
【図1】本開示の態様による、後方互換性を実装するための方法を示したフロー図である。
【図2】図1の方法を実行するための実行可能ソフトウェアをリードオンリーメモリ(ROM)に実装した中央処理装置(CPU)を図示したブロック図である。
【図3】図2に示した種類のCPUを含むデバイスのブロック図である。
そして、
【0007】
導入
レガシーデバイスに対するCPUの動作の違いから起こる問題に対応するために、新デバイスは、レガシーアプリケーションを実行する時に、レガシーデバイスCPUの特定の能力を模倣する場合がある。レガシーデバイスを模倣する能力の重要な機能は、レガシーアプリケーションがあたかもレガシーデバイス上で動いているかのように動作するよう、レガシーアプリケーションをだますことである。多くのアプリケーションが異なるプロセッサ上で実行されるように設計されているため、現代のプロセッサは、しばしば、ソフトウェアアプリケーションがプロセッサの詳細を発見することを可能にするオペコードまたはレジスタを実装している。後方互換性を容易にするために、新デバイス上のプロセッサは、異なるプロセッサの情報が、レガシーアプリケーションからの呼び出しに応答して返されるような方法で、オペコードを実行することができる、またはレジスタ値を提供することができる。異なる情報は、本明細書では、「なりすましプロセッサID」と呼ばれる。なりすましプロセッサIDは、新デバイスの特定の機能を、実際にサポートされているものとは異なる、または実際にサポートされている時にはまったくサポートされていない、のいずれかに選択的に識別する。
【0008】
方法
図1に示すフロー図で図示する方法100は、これがどのように行われるかの一実施例を示している。具体的には、102で示す通り、デバイス上で動いている要求アプリケーション101が、プロセッサIDを、アプリケーションを実行しているプロセッサに要求する。104において、プロセッサは、要求アプリケーション101がレガシーアプリケーションであるかどうか、つまり、もともと以前のバージョンのデバイスのために書かれたものかどうかを判断する。アプリケーションが新デバイスのためまたはレガシーデバイスのために書かれたかどうかをプロセッサが判断することができる、多くの方法がある。1つの方法は、新デバイスのために書かれたすべてのアプリケーションが、ロードした際に、アプリケーションが新デバイスのために書かれたものと識別した情報を、プロセッサに報告するかどうかである。そのような情報が報告されることは、アプリケーションが新デバイスのために書かれたとして識別し、そのような情報が報告されないことは、アプリケーションをレガシーアプリケーションとして識別する。
ふむふむ(よく分からないので中略)
【0019】
なりすましプロセッサ機能情報を返すことは、サポートされていたとしても、レガシーアプリケーションがそれらを使用しようと試みた場合にタイミング問題を引き起こすかもしれない機能をアプリケーションが利用することを防ぐことによって、後方互換性問題の解決を容易にすることができる。
タイミング問題が発生しないようにある意味ではCPUとレガシーアプリケーションとの間を調停するような役割も担っているという事になるんですかね。
CPU周りの厳密な互換性の維持とか言われても困ってしまいますが、まあXb1(旧世代版)とXb1Xの間でも問題起こる場合があるぐらいですしね。
別にアーキテクチャや実装形態を限定するものではないと何度も書かれていますが、本文中で複数回「x86」との文字が出てくる事から、これはPS5向けを想定して発明された技術ではありそうです。
図2にもありますが、L2キャッシュの前にこのなりすまし機能が実装される想定となっている辺り、PS5ではPS4以上のレベルでカスタマイズが行われていそうでもありますね。

・PS4 4/26 Days Gone 【早期購入特典】 バイクアップグレードパック /ドリフタークロスボウ早期アンロック をダウンロード出来るプロダクトコード (封入) (Amazon)
.
今更互換させるとは思えんし