特許第6987185号(P6987185)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社ソニー・コンピュータエンタテインメントの特許一覧

特許6987185下位互換性のためのレガシーバス動作のシミュレーション
<>
  • 特許6987185-下位互換性のためのレガシーバス動作のシミュレーション 図000004
  • 特許6987185-下位互換性のためのレガシーバス動作のシミュレーション 図000005
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6987185
(24)【登録日】2021年12月2日
(45)【発行日】2021年12月22日
(54)【発明の名称】下位互換性のためのレガシーバス動作のシミュレーション
(51)【国際特許分類】
   G06F 13/14 20060101AFI20211213BHJP
   G06F 13/36 20060101ALI20211213BHJP
   G06F 9/455 20060101ALN20211213BHJP
【FI】
   G06F13/14 330A
   G06F13/36 520Z
   !G06F9/455
【請求項の数】22
【全頁数】9
(21)【出願番号】特願2020-114122(P2020-114122)
(22)【出願日】2020年7月1日
(62)【分割の表示】特願2018-538550(P2018-538550)の分割
【原出願日】2017年1月20日
(65)【公開番号】特開2020-170541(P2020-170541A)
(43)【公開日】2020年10月15日
【審査請求日】2020年7月31日
(31)【優先権主張番号】62/286,284
(32)【優先日】2016年1月22日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】310021766
【氏名又は名称】株式会社ソニー・インタラクティブエンタテインメント
(74)【代理人】
【識別番号】100105924
【弁理士】
【氏名又は名称】森下 賢樹
(72)【発明者】
【氏名】サーニー、マーク エヴァン
(72)【発明者】
【氏名】シンプソン、デイヴィッド
【審査官】 吉田 歩
(56)【参考文献】
【文献】 特開2006−190280(JP,A)
【文献】 特開2010−188008(JP,A)
【文献】 特開2007−004719(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/14
G06F 13/36
G06F 9/455
(57)【特許請求の範囲】
【請求項1】
非レガシーデバイス上でレガシーアプリケーションを実行しているときのバス動作におけるタイミング及びデータ転送速度に関する違いによって発生する問題に対処するための方法であって、
前記レガシーアプリケーションを実行しているときに、レガシーデバイスによって割り当てられた帯域幅と少なくとも同量の帯域幅であるがレガシーアプリケーションの実行時に同期エラーが発生するほど大きくはない帯域幅を割り当てることによって前記非レガシーデバイス上で同期を維持する方法で、前記非レガシーデバイスのバスパフォーマンスを調整する、方法。
【請求項2】
前記非レガシーデバイス上のバスパフォーマンスを調整することが、前記レガシーデバイスのバス動作から決定される推定された帯域幅の割り当てに基づいている、請求項1に記載の方法。
【請求項3】
前記非レガシーデバイス上のバスパフォーマンスを調整することが、前記レガシーデバイスのバス動作から推定される量に従って、特定のバストランザクションに割り当てられる利用可能なバス帯域幅の量を制限することを含む、請求項1に記載の方法。
【請求項4】
前記非レガシーデバイス上のバスパフォーマンスを調整することが、前記非レガシーデバイス上でレガシーアプリケーションを実行している間に前記バスパフォーマンスを調整し、追加の帯域幅の割り当てによって実行に問題が生じる量を決定することを含む、請求項1に記載の方法。
【請求項5】
前記非レガシーデバイスが、メモリまたは構成可能なハードウェアレジスタに格納されたルックアップテーブルを使用して、異なるバストラフィック条件下で前記非レガシーデバイスのノード間に帯域幅を割り当てる、請求項1に記載の方法。
【請求項6】
前記非レガシーデバイス上のバスパフォーマンスを調整することが、帯域幅の割り当てを決定するために前記レガシーデバイスのバス動作のコンピュータモデルを使用することを含む、請求項1に記載の方法。
【請求項7】
前記非レガシーデバイスが、メモリまたは構成可能なハードウェアレジスタに格納された1つまたは複数の比率を使用して、異なるバストラフィック条件下で前記非レガシーデバイスのノード間に帯域幅を割り当てる、請求項1に記載の方法。
【請求項8】
非レガシーデバイスであって、
1つまたは複数のプロセッサと、
1つまたは複数のバスによって前記1つまたは複数のプロセッサに動作可能に結合されたメモリと、を備え、
前記メモリに記憶され、前記プロセッサによって実行可能な実行可能命令が、実行されると、前記プロセッサに、前記非レガシーデバイスでレガシーアプリケーションを実行しているときに、バス動作におけるタイミング及びデータ転送速度に関する違いによって発生する問題に対処する方法を実装させ、前記方法が、
前記レガシーアプリケーションを実行しているときに、レガシーデバイスによって割り当てられた帯域幅と少なくとも同量の帯域幅であるがレガシーアプリケーションの実行時に同期エラーが発生するほど大きくはない帯域幅を割り当てることによって前記非レガシーデバイス上で同期を維持する方法で、前記1つまたは複数のバス上のバスパフォーマンスを調整することを含む、非レガシーデバイス。
【請求項9】
前記1つまたは複数のバス上のバスパフォーマンスを調整することが、前記レガシーデバイスのバス動作から決定される推定された帯域幅の割り当てに基づいている、請求項に記載の非レガシーデバイス。
【請求項10】
前記1つまたは複数のバス上のバスパフォーマンスを調整することが、前記レガシーデバイスのバス動作から推定される量に従って、特定のバストランザクションに割り当てられる利用可能なバス帯域幅の量を制限することを含む、請求項に記載の非レガシーデバイス。
【請求項11】
前記1つまたは複数のバス上のバスパフォーマンスを調整することが、前記非レガシーデバイス上でレガシーアプリケーションを実行している間に前記バスパフォーマンスを調整し、追加の帯域幅の割り当てによって実行に問題が生じる量を決定することを含む、請求項に記載の非レガシーデバイス。
【請求項12】
前記1つまたは複数のバス上のバスパフォーマンスを調整することが、異なるバストラフィック条件下で前記非レガシーデバイスのノード間に帯域幅を割り当てるために、メモリまたは構成可能なハードウェアレジスタに格納されたルックアップテーブルを使用することを含む、請求項に記載の非レガシーデバイス。
【請求項13】
前記1つまたは複数のバス上のバスパフォーマンスを調整することが、帯域幅の割り当てを決定するために前記レガシーデバイスのバス動作のコンピュータモデルを使用することを含む、請求項に記載の非レガシーデバイス。
【請求項14】
前記1つまたは複数のバス上のバスパフォーマンスを調整することが、異なるバストラフィック条件下で前記非レガシーデバイスのノード間に帯域幅を割り当てるために、メモリまたは構成可能なハードウェアレジスタに格納された1つまたは複数の比率を使用することを含む、請求項に記載の非レガシーデバイス。
【請求項15】
前記1つまたは複数のプロセッサが、1つまたは複数の中央プロセッサユニットを含む、請求項に記載の非レガシーデバイス。
【請求項16】
コンピューティングデバイスに、非レガシーデバイス上でレガシーアプリケーションを実行しているときのバス動作におけるタイミング及びデータ転送速度に関する違いによって発生する問題に対処する方法を実装させるように構成された実行可能命令を媒体中に具体化した非一時的なコンピュータ可読媒体であって、前記方法が、
前記レガシーアプリケーションを実行しているときに、レガシーデバイスによって割り当てられた帯域幅と少なくとも同量の帯域幅であるがレガシーアプリケーションの実行時に同期エラーが発生するほど大きくはない帯域幅を割り当てることによって前記非レガシーデバイス上で同期を維持する方法で、前記非レガシーデバイス上のバスパフォーマンスを調整することを含む、前記非一時的なコンピュータ可読媒体。
【請求項17】
前記非レガシーデバイス上のバスパフォーマンスを調整することが、前記レガシーデバイスのバス動作から決定される推定された帯域幅の割り当てに基づいている、請求項1に記載の非一時的なコンピュータ可読媒体。
【請求項18】
前記非レガシーデバイス上のバスパフォーマンスを調整することが、前記レガシーデバイスのバス動作から推定される量に従って、特定のバストランザクションに割り当てられる利用可能なバス帯域幅の量を制限することを含む、請求項1に記載の非一時的なコンピュータ可読媒体。
【請求項19】
前記非レガシーデバイス上のバスパフォーマンスを調整することが、前記非レガシーデバイス上でレガシーアプリケーションを実行している間に前記バスパフォーマンスを調整し、追加の帯域幅の割り当てによって実行に問題が生じる量を決定することを含む、請求項1に記載の非一時的なコンピュータ可読媒体。
【請求項20】
前記非レガシーデバイスが、メモリまたは構成可能なハードウェアレジスタに格納されたルックアップテーブルを使用して、異なるバストラフィック条件下で前記非レガシーデバイスのノード間に帯域幅を割り当てる、請求項1に記載の非一時的なコンピュータ可読媒体。
【請求項21】
前記非レガシーデバイス上のバスパフォーマンスを調整することが、帯域幅の割り当てを決定するために前記レガシーデバイスのバス動作のコンピュータモデルを使用することを含む、請求項1に記載の非一時的なコンピュータ可読媒体。
【請求項22】
前記非レガシーデバイスが、メモリまたは構成可能なハードウェアレジスタに格納された1つまたは複数の比率を使用して、異なるバストラフィック条件下で前記非レガシーデバイスのノード間に帯域幅を割り当てる、請求項1に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、本発明の譲受人に譲渡され、2016年1月22日に出願された米国仮出願第62/284号の利益を主張するものであり、この内容全体が、参照により本明細書に援用される。
【背景技術】
【0002】
新しいコンピュータアーキテクチャがリリースされると、以前のバージョンのアーキテクチャ用に作成されたアプリケーションは、新しいアーキテクチャで完璧に実行することが望まれる。この機能は、しばしば「下位互換性」と呼ばれる。下位互換性を実装することは、新しいアーキテクチャがレガシー用に作成されたプログラムの命令を実行できるように、新しいホストアーキテクチャ上のターゲットレガシーデバイスをエミュレートすることを含む。コンピュータアーキテクチャは、時間の経過と共にバスの技術的進歩、クロック速度、プロセッサアーキテクチャ、キャッシング、標準規格などを利用するように変化する。1つのコンピュータアーキテクチャが新しいアーキテクチャに置き換えられると、古いアーキテクチャはいわゆるレガシーアーキテクチャになる。ネットワークプロトコル、ユーザーインターフェース、オーディオ処理、デバイスドライバ、グラフィックス処理、メッセージング、ワードプロセッサ、スプレッドシート、データベースプログラム、ゲーム、その他のアプリケーションなどのソフトウェアアプリケーションは、その開発過程では、レガシーアーキテクチャ向けに作成されている。そのようなレガシーソフトウェアは、新しいアーキテクチャにアップグレードしても、ユーザーにとって価値があるものである。したがって、新しいアーキテクチャでレガシーソフトウェアを実行できるようにする必要がある。
【0003】
新しいデバイス及びレガシーデバイスのハードウェアコンポーネントのパフォーマンスの違いにより、新しいデバイスの同期のエラーが発生し、新しいデバイスアーキテクチャで実行しているときに、レガシーアプリケーションがクラッシュし得る。このようなパフォーマンスの差は、例えば、新しいデバイスとレガシーデバイスとの間のバスアーキテクチャの違いから生じる可能性がある。バスアーキテクチャは、異なるデバイスコンポーネント間で複数のデータパスを提供する。レガシーデバイス及び新しいデバイスは、デバイスコンポーネント間のタイミング及びデータ転送速度の制約が異なるため、デバイスコンポーネント間で異なるバスパスを持つことができる。例えば、新しいデバイスの2つのコンポーネント間のバスパスが、レガシーデバイスのこれらのコンポーネント間で対応するバスパスよりも高速である場合、あるコンポーネントによって引き続き使用されているデータは、別のコンポーネントによって早い段階で上書きされ得る。
【発明の概要】
【0004】
新しいデバイスでレガシーアプリケーションを実行しているときのバス動作の違いによって発生する問題に対処するために、新しいデバイスは、レガシーデバイスのバス動作をエミュレートする方法で、レガシーアプリケーションを実行しているときにバスパフォーマンスを調整し得る。
【0005】
新しいシステムのバススロットルは、レガシーバス動作から決定される推定帯域幅の割り当てに基づき得る。バストラフィックは、レガシーバス動作から推定された量に従って、特定のバストランザクションに割り当てられた利用可能なバス帯域幅の量を制限することによって調整し得る。バストラフィックは、新しいデバイスがレガシーシステムによって割り当てられていた帯域幅と少なくとも同量の帯域幅を割り当てるように調整されるが、レガシーアプリケーションの実行時に同期エラーが発生することはそれほど多くはない。新しいデバイスでレガシーアプリケーションを実行している間にスロットルを調整して、追加の帯域幅の割り当てによって実行に問題が生じる量を決定できる。
【0006】
本開示の教示は、添付の図面と併せて以下の詳細な説明を考慮することによって容易に理解することができる。
【図面の簡単な説明】
【0007】
図1】本開示の態様による新しいデバイスとレガシーデバイスとの間のバスアーキテクチャの違いを説明するように構成されたデバイスを示すブロック図である。
図2】本開示の態様による新しいデバイスとレガシーデバイスとの間のバスアーキテクチャの違いを考慮して帯域幅の割り当てを決定するヒューリスティックアプローチを示すフロー図である。
【発明を実施するための形態】
【0008】
以下の詳細な説明は、例示の目的で多くの特定の詳細を含むが、当業者であれば、以下の詳細に対する多くの変形及び変更が特許請求された発明の範囲内にあることを理解するであろう。したがって、以下に記載される本発明の例示的な実施形態は、一般性を失うことなく、かつ制限を課すことなく、特許請求された発明に記載されている。
【0009】
図1は、レガシーデバイス用に作成されたアプリケーションを実行しているときに、レガシーデバイスと新しいデバイスとの間のバスアーキテクチャの違いを説明するように構成された新しいデバイスの例を示す。この例では、新しいデバイスは、共通メモリ106及びI/Oアクセスコントローラ108に結合されたマルチコアCPU及びマルチコアGPUを含み得る。各CPUまたはGPUコアは、バックサイドバス(BSB1、BSB2)を介して、レベル2キャッシュ110及びバスインターフェースユニット112に結合される。レベル2のキャッシュ110は、フロントサイドバス(FSB)によってメモリ106及びI/Oアクセスコントローラ108に結合される。追加のメモリ(図示せず)、周辺機器114、ビデオ116、及びデータ記憶デバイス118は、様々なバスによってアクセスコントローラを介してCPU及びGPUとインターフェースする。CPU及びGPUは、データ及び/または命令の一時的な記憶のための構成可能なレジスタ105を含み得る。図1のデバイスのレガシーバージョンは、例えば、CPU及びGPUのための別個のバスがあるアーキテクチャや、メモリ及びI/Oアクセスのための別個のコントローラがあるアーキテクチャなどの、異なるアーキテクチャを有することができる。
【0010】
図1に示す例では、アクセスコントローラ108は、例えば、メモリ106に格納されたコード命令103を実行することによって、バスパフォーマンスを調整してレガシーバス動作をエミュレートし、レガシーアプリケーションを実行しているときに同期を維持する。アクセスコントローラは、レガシーデバイスのバス動作をエミュレートする方法で利用可能なバス帯域幅を割り当てることにより、様々なバスBSB1、BSB2、FSBのバストラフィックを調整する(108)。スロットルには、レガシーデバイスのバスパフォーマンスデータによって通知される。このデータを生成するために、レガシーアプリケーションの実行中にレガシーデバイスがテストされ得る。異なるバスクライアントのバス帯域幅の割り当ては、異なる条件で測定される。特定のバストランザクションに割り当てられる帯域幅に影響を及ぼす要因には、バスにアクセスしている特定のバスクライアント(例えば、CPU102またはGPU104)、バスを介して送信されるデータの送信元または宛先(例えば、メモリ106)、データが読み書きされているかどうか、トランザクションの優先順位が高いか低いか、要求された帯域幅の量、他のバスクライアントがバス帯域幅に対して競合しているか、などが含まれる。これらの要因のすべては、バス帯域幅の割り当てと共にレガシーデバイスのテスト中に記録され得る。
【0011】
レガシーバス動作をエミュレートするには、テーブル駆動型アプローチ、比率駆動型アプローチ、ヒューリスティックアプローチの少なくとも3つのアプローチがある。3つのアプローチはすべて、レガシーデバイスが異なる状況下で異なるクライアントに実際に割り当てる帯域幅を調べ、同一または類似の状況下で新しいデバイスで帯域幅の割り当てを複製する。テスト段階では、特定のクライアントと特定のリソースとの間(または特定のクライアントとの間)の古いハードウェア上の帯域幅の割り当てが、異なる状況下で測定される。測定された帯域幅の割り当て値は、新しいハードウェアのテーブルまたは比率またはヒューリスティックに入れられる。
【0012】
テーブル駆動型アプローチ
テーブル駆動型アプローチでは、新しいデバイスは、メモリ106または構成可能レジスタ105に格納されたルックアップテーブルを使用して、異なるバストラフィック条件下でノード間に帯域幅を割り当てる。簡単な例として、メモリトランザクション用に30MB/sの利用可能なバス帯域幅で競合する2つのバスクライアントAとBがあると仮定する。以下の表1は、レガシーデバイスの測定されたパフォーマンス(すなわち、バス帯域幅の割り当て)に基づいて、クライアントAとBとの間に割り当てられた帯域幅を示す。
【表1】
【0013】
表1では、所与の要求された帯域幅に割り当てられた帯域幅はA/Bで示され、ここで、AはクライアントAに割り当てられた帯域幅であり、BはクライアントBに割り当てられた帯域幅である。表1の値は、レガシーアプリケーションによる通常動作中のレガシーデバイスのバス帯域幅の割り当てを監視することによって決定され得る。要求された帯域幅以外のいくつかの要因は、例えば、帯域幅が読み出しまたは書き込み動作のために要求されているかどうか、A及びBの要求の相対的な優先順位など、帯域幅の割り当てに影響を及ぼし得る。テーブルには、これらの要因を考慮に入れ得る。
【0014】
比率アプローチ
比率アプローチは、メモリ106または構成可能レジスタ105に格納されたテーブルが比率によって帯域幅の割り当てを指定することを除いて、テーブル駆動アプローチと同様である。例えば、表2は、利用可能な最大バス帯域幅の割合による帯域幅の要求及び割り当てを示す。
【表2】
【0015】
上記では2次元の例を示したが、テーブルまたは比率アプローチは、3つ、4つまたはそれ以上の異なるバスクライアントに対応するために、3つ、4つまたはそれ以上の次元に拡張し得る。また、クライアントの異なるグループにサービスを提供する複数の異なるバスがある場合、テーブルまたは比率はこのことを考慮に入れ得る。
【0016】
ヒューリスティックアプローチ
ヒューリスティックアプローチは、レガシーバス動作のコンピュータモデル201を使用して、帯域幅の割り当てを決定する。図2に一例を示す。クライアントAとBとの間の所与のバストランザクションの場合、ヒューリスティックは、現在のバストラフィック、要求された帯域幅、帯域幅を要求するクライアント(複数可)、トラフィックの宛先などに関する入力を受信する。図2では、入力は、それぞれクライアントA及びクライアントBからの帯域幅要求202、204である。ヒューリスティックは、クライアントAとBとの間のバスパスの動作、バス調停206など、同じまたは類似の状況下でのレガシーバス動作に関するデータ208を使用してモデル化する。レガシーバス動作データは、ヒューリスティックによる迅速なアクセスのためにローカルメモリに格納され得る。モデリングでは、帯域幅要求、現在のバスの条件、及びレガシーバスデータを考慮して、クライアントA及びクライアントBの推定バス帯域幅の割り当てを決定する。バスコントローラ、例えば、バスインターフェース112は、これらの割り当てを使用してバストラフィックを調整することができる。
【0017】
テーブル、比率、及びヒューリスティックアプローチでは、原因よりも、所与の状況下でレガシーバス帯域幅がどのように割り当てられるかが考慮される。レガシーバス帯域幅の調停は、データがクライアントから読み取られているか、クライアントに書き込まれているか、トランザクションの優先順位が高いか低いか、要求された帯域幅の量などによって異なる。レガシーバス帯域幅の割り当てが十分に予測可能である場合、それらはテーブル、比率またはヒューリスティックアプローチを使用して複製できる。
【0018】
ウィジェットは、メモリ106及びI/Oコントローラ108によって実装する必要はない。代替的な実施態様では、バスクライアントA、Bは自己スロットルすることができる。具体的には、各バスクライアントは、バストラフィックを調べて、レガシーシステムに処理可能な帯域幅よりも多くの帯域幅を要求しているかどうかを判断し、十分な帯域幅が利用可能であると判断するまで要求を保持するウィジェット109を含むことができる。これらの各ウィジェットは、構成可能レジスタ111に格納されたテーブル、比率、またはヒューリスティックにアクセスすることができる。
【0019】
上記は、本発明の好適な実施形態の完全な説明であるが、様々な代替、変更、及び等価物を使用することが可能である。したがって、本発明の範囲は、上記の説明を参照せずに判断されるべきであり、代わりに、添付の特許請求の範囲を参照して、等価物の全範囲と共に判断されるべきである。好適であろうとなかろうと、任意の特徴は、好適であろうとなかろうと、他の特徴と組み合わせることができる。以下の特許請求の範囲において、不定冠詞「A」または「An」は、別段特に述べられていない場合を除いて、その冠詞に続く事項の1つまたは複数の量のことを言う。添付の特許請求の範囲は、「〜するための手段」という言い回しを使用して所与の特許請求の範囲においてそのような限定が明示的に記載されていない限り、ミーンズ・プラス・ファンクションの限定を含むものとして解釈されない。指定された機能を実行「するための手段」を明示的に記載していない特許請求の範囲内の要素は、米国特許法112条(f)項に規定されている「手段」または「ステップ」句として解釈されない。
図1
図2