JP7277592B2 - 家庭用ゲームコンソール及びクラウドゲーム用のスケーラブルなゲームコンソールcpu/gpu設計 - Google Patents

家庭用ゲームコンソール及びクラウドゲーム用のスケーラブルなゲームコンソールcpu/gpu設計 Download PDF

Info

Publication number
JP7277592B2
JP7277592B2 JP2021544244A JP2021544244A JP7277592B2 JP 7277592 B2 JP7277592 B2 JP 7277592B2 JP 2021544244 A JP2021544244 A JP 2021544244A JP 2021544244 A JP2021544244 A JP 2021544244A JP 7277592 B2 JP7277592 B2 JP 7277592B2
Authority
JP
Japan
Prior art keywords
gpu
video
lines
buffer
frame
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
JP2021544244A
Other languages
English (en)
Other versions
JP2022521455A (ja
Inventor
ロデリック コーレンブランデル、ロエロフ
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 JP2022521455A publication Critical patent/JP2022521455A/ja
Application granted granted Critical
Publication of JP7277592B2 publication Critical patent/JP7277592B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/203Image generating hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)

Description

本出願は一般的に、家庭用ゲームコンソール及びクラウドゲーム用のスケーラブルなゲームコンソールCPU/GPU設計に関する。
コンピュータゲームコンソールなどのシミュレーションコンソールは、通常、中央処理装置(CPU)及びグラフィックス処理ユニット(GPU)を含む「システムオンチップ」(SoC)と呼ばれる単一のチップを使用する。半導体のスケーリングの問題と歩留まりの問題により、複数の小さなチップを高速コヒーレントバスでリンクして大きなチップを形成することができる。このようなスケーリングソリューションは、巨大なモノリシックチップを構築する場合に比べて性能がやや劣るが、コストは低くなる。
本明細書で理解されるように、SoC技術は、ゲームコンソールなどのビデオシミュレーションコンソールに適用することができ、詳細には、単一のSoCは、コンソールの「軽量」バージョンに提供されてよく、複数のSoCは、「軽量」バージョンよりも優れた処理能力とストレージ機能を備えた「ハイエンド」バージョンのコンソールを提供するために使用されてよい。「ハイエンド」システムは、ランダムアクセスメモリ(RAM)やその他の機能など、より多くのメモリを含むことができ、同じゲームコンソールチップを使用して、より性能の高いクラウド最適化バージョンにも使用されてよい。
ただし、本明細書でさらに理解されるように、そのような「ハイエンド」の複数のSoC設計は、ソフトウェアとシミュレーション(ゲーム)の設計に課題をもたらし、従ってスケーリングが必要になる。例として、不均一メモリアクセス(NUMA)及びスレッド管理に関連する課題と、ハードウェアを最適な方法で使用するためのヒントをソフトウェアに提供することに関する課題が生じる。協調して動作するGPUの場合、フレームバッファの管理と高解像度マルチメディア(HDMI(登録商標))出力の制御に対処し得る。他の課題にも本明細書で対処し得る。
従って、装置は、少なくとも第1のグラフィックス処理ユニット(GPU)と、第1のGPUに通信可能に結合された少なくとも第2のGPUとを備える。GPUは、第1のGPUがビデオの第1の部分をレンダリングし、第2のGPUがビデオの第2の部分をレンダリングし、第1の部分と第2の部分は互いに異なるように、ビデオの各部分をレンダリングするようにプログラムされる。
言い換えると、第1のGPUは、ビデオの第1のフレームをレンダリングして第1の出力を提供するようにプログラムされてよく、第2のGPUは、ビデオの全てのフレームではなく一部のフレームをレンダリングして第2の出力を提供するようにプログラムされる。第2のGPUによってレンダリングされるフレームは、第1のGPUによってレンダリングされるフレームとは異なる。第1の出力及び第2の出力を組み合わせて、ビデオをレンダリングしてよい。さらに、または代替として、第1のGPUは、ビデオのフレームの全てのラインではなく一部のラインの全てをレンダリングして第1のライン出力を提供するようにプログラムされてよく、第2のGPUは、ビデオのフレームの全てのラインではなく一部のラインをレンダリングして第2のライン出力を提供するようにプログラムされてよい。第2のGPUによってレンダリングされるラインは、第1のGPUによってレンダリングされるラインとは異なる。第1のライン出力と第2のライン出力を組み合わせて、フレームをレンダリングすることができる。
ある実施形態では、第1のGPU及び第2のGPUは、共通のダイ上に実装される。他の実施形態では、第1のGPU及び第2のGPUは、それぞれ、第1のダイ及び第2のダイ上に実装される。第1のGPUは、第1の中央処理装置(CPU)に関連付けられてよく、第2のGPUは、第2のCPUに関連付けられてよい。
ある実施態様では、第1のメモリコントローラ及び第1のメモリは第1のGPUに関連付けられ、第2のメモリコントローラ及び第2のメモリは第2のGPUに関連付けられる。他の実施態様では、GPUは共通メモリを制御する共通メモリコントローラを共有する。
ある例では、各GPUは、他のGPUによってレンダリングされるビデオのフレームとは異なるビデオの全てのフレームではなく一部のフレームの全てをレンダリングして、各出力を提供するようにプログラムされる。GPUの出力を組み合わせて、ビデオをレンダリングすることができる。他の例では、あるGPUによってレンダリングされるビデオのフレームのラインは、他のGPUによってレンダリングされるフレームのラインとは異なるように、各GPUは、ビデオのフレームの全てのラインではなく一部のラインの全てをレンダリングして、各出力を提供するようにプログラムされる。GPUの出力を組み合わせて、ビデオをレンダリングすることができる。
例示的な技術では、第1のGPUは、第2のGPUによって管理される少なくとも1つのバッファを指す少なくとも1つのスキャンアウトユニットを備える。第1のGPUは、バッファを循環してビデオのフレームの完全なシーケンスを出力するようにプログラムすることができる。別の例では、第1のGPUは、第1のGPUによって管理されるバッファのみを指す少なくとも1つのスキャンアウトユニットを備え、ダイレクトメモリアクセス(DMA)を介して第2のGPUからビデオのフレームを受信して、ビデオのフレームの完全なシーケンスを出力するようにプログラムされる。
さらに別の例示的な技術では、第1のGPUは、少なくとも第1のGPUによって管理される第1のバッファと第2のGPUによって管理される第2のバッファとを指す少なくとも1つのスキャンアウトユニットを備える。この技術では、第1のGPUは、バッファを循環して、第1のバッファに関連付けられる1~Nラインと第2のバッファに関連付けられる(N+1)~Mラインを使用したビデオのフレームの完全なシーケンスを出力するようにプログラムされる。1~Nラインは、同じフレームの、(N+1)~Mラインに関連付けられた異なるラインである。
さらに、第1のGPUは、第1のGPUによって管理される少なくとも第1のバッファを指し、第2のGPUによって管理される第2のバッファを指さない少なくとも1つのスキャンアウトユニットを備えることができる。この実施態様では、第1のGPUは、バッファを循環して、第1のバッファに関連付けられた1~Nラインと、第2のバッファに関連付けられ、ダイレクトメモリアクセス(DMA)を介して第1のGPUによって受信された(N+1)~Mラインを使用してビデオのフレームの完全なシーケンスを出力するようにプログラムされてよい。1~Nラインと(N+1)~Mラインは、ビデオのフレームの異なるラインである。
さらに別の技術では、第1のGPUは、共通メモリコントローラと通信する少なくとも第1のバッファを指す少なくとも1つのスキャンアウトユニットを備える。第2のGPUは、共通メモリコントローラと通信する第2のバッファを備える。第1のGPUは、第1のバッファに関連付けられた1~Nラインをレンダリングするようにプログラムされ、第2のGPUは、第2のバッファに関連付けられた(N+1)~Mラインをレンダリングするようにプログラムされる。
ある例では、第1のGPUが第1のGPU及び第2のGPUからのビデオデータ出力を管理する。これは、HDMI(登録商標)ポートを第1のGPUに物理的に接続することによって影響を受ける場合がある。他の例では、GPUは、マルチプレクサにビデオデータを出力し、マルチプレクサは、各GPUからのフレーム及び/またはラインを一緒に多重化してビデオを出力する。
別の態様では、マルチグラフィックス処理ユニット(GPU)シミュレーション環境において、方法は、複数のGPUに、ビデオの各フレームをレンダリングさせること、ビデオの各フレームの各部分をレンダリングさせること、または、ビデオの各フレーム及びビデオのフレームの各部分の両方をレンダリングさせることを含む。方法は、GPUのうちの第1のGPUが他のGPU(複数可)の少なくとも1つからフレーム情報を受信することを使用して、または、GPUの出力を一緒に多重化して、または、GPUのうちの第1のGPUが他のGPU(複数可)の少なくとも1つからフレーム情報を受信し、且つGPUの出力を一緒に多重化することの両方を使用して、フレーム出力を制御することを含む。
別の態様では、コンピュータシミュレーション装置は、シミュレーションビデオの各第1の部分をレンダリングするようにプログラムされた少なくとも第1のグラフィックス処理ユニット(GPU)と、シミュレーションビデオの各第2の部分をレンダリングするようにプログラムされた少なくとも第2のGPUとを備える。少なくとも第1のGPUは、第1の部分と第2の部分を結合し、完全なシミュレーションビデオを確立する出力をレンダリングするようにプログラムされる。
本出願の詳細は、その構造と動作との両方について、添付図面を参照すると最もよく理解でき、図面中、類似の参照番号は、類似の部分を指す。
本原理に従った例を含む例示的なシステムのブロック図である。 クラウドベースゲームシステムの概略図である。 1つのファブリック上に2つのAPUが示されている例示的な非均一メモリアクセス(NUMA)アーキテクチャのブロック図である。NUMAアーキテクチャは、別個のファブリック上のAPUによって実装されてもよく、3つ以上のAPUが実装されてもよいことは理解されよう。 2つのAPUが示され、各プロセッサがそれぞれのダイに実装されている共有メモリアーキテクチャのブロック図である。アーキテクチャはより少ないダイまたは1つのダイに実装されてもよく、3つ以上のAPUが実装されてもよいことは理解されよう。 2つのAPUが示され、各APUはそれぞれのファブリックに実装され、共有メモリコントローラがファブリックの1つに実装されている共有メモリアーキテクチャのブロック図である。アーキテクチャは1つのファブリック上に実装されてもよく、3つ以上のAPUが1つまたは複数のダイに実装されてもよいことは理解されよう。 スキャンアウトユニットを備えた例示的なGPUのブロック図である。 各GPUが同じビデオの他のGPUとは異なるフレームをレンダリングし、GPUの1つが他のGPU(複数可)のバッファを指すレジスタを有する、各GPUが完全なフレームをレンダリングするNUMA実施形態の例示的な論理のフローチャートである。 各GPUが同じビデオの他のGPUとは異なるフレームをレンダリングし、GPUの1つが他のGPU(複数可)からDMAを介してフレームを受信する、各GPUが完全なフレームをレンダリングするNUMA実施形態の例示的な論理のフローチャートである。 各GPUが同じフレームの他のGPUとは異なる部分をレンダリングする、各GPUがフレームの一部(例えば、ライン)をレンダリングするNUMA実施形態の例示的な論理のフローチャートである。 各GPUが同じフレームの他のGPUとは異なる部分をレンダリングし、GPUの1つが他のGPU(複数可)からDMAを介してラインを受信する、各GPUがフレームの一部(例えば、ライン)をレンダリングするNUMA実施形態の例示的な論理のフローチャートである。 各GPUが同じフレームの他のGPUとは異なる部分をレンダリングする、各GPUがフレームの一部(例えば、ライン)をレンダリングする共有メモリの実施形態の例示的な論理のフローチャートである。 HDMI(登録商標)ポートに接続された単一のGPUを使用してビデオ出力を制御するための例示的な論理のフローチャートである。 マルチプレクサを使用してビデオ出力を制御するための例示的な論理のフローチャートである。 図13に関連付けられたブロック図である。
本開示は一般的に、限定ではないが、分散コンピュータゲームネットワーク、ビデオブロードキャスティング、コンテンツ配信ネットワーク、仮想マシン、及び機械学習アプリケーションなどの消費者電子(CE)デバイスネットワークの態様を含むコンピュータエコシステムに関する。本明細書のシステムは、クライアントコンポーネントとサーバコンポーネントとの間でデータが交換され得るように、ネットワークを介して接続されたサーバコンポーネント及びクライアントコンポーネントを備えてよい。クライアントコンポーネントは、Sony PlayStation(登録商標)などのゲームコンソール、関連するマザーボード、ポータブルテレビ(例えば、スマートテレビ、インターネット対応テレビ)、ラップトップコンピュータ及びタブレットコンピュータなどのポータブルコンピュータ、並びにスマートフォン及び以下で検討する追加の例を含む他のモバイルデバイスを含む、1つまたは複数のコンピューティングデバイスを含み得る。これらのクライアントデバイスは、様々な動作環境で動作してよい。例えば、クライアントコンピュータの一部は、例として、OrbisもしくはLinux(登録商標)オペレーティングシステム、Microsoft製のオペレーティングシステム、またはUnix(登録商標)オペレーティングシステム、またはApple ComputerもしくはGoogleによって製造されたオペレーティングシステムを採用してよい。これらの動作環境は、MicrosoftもしくはGoogleもしくはMozillaによって作成されたブラウザ、または下記に説明されるインターネットサーバによってホストされるウェブサイトにアクセスできる他のブラウザプログラム等、1つまたは複数の閲覧プログラムを実行するために使用されてよい。また、本原理に従った動作環境は、1つまたは複数のコンピュータゲームプログラムを実行するために使用されてよい。
サーバ及び/またはゲートウェイは、インターネット等のネットワークを介してデータを受信及び送信するサーバを構成する命令を実行する1つまたは複数のプロセッサを備えてよい。または、クライアント及びサーバは、ローカルイントラネットまたは仮想プライベートネットワークを介して接続することができる。サーバまたはコントローラは、Sony PlayStation(登録商標)などのゲームコンソール及び/またはその1つまたは複数のマザーボード、パーソナルコンピュータなどによってインスタンス化されてよい。
情報は、クライアントとサーバの間でネットワークを介して交換されてよい。この目的のために、及びセキュリティのために、サーバ及び/またはクライアントは、ファイアウォール、ロードバランサ、一時的ストレージ、及びプロキシ、並びに信頼性及びセキュリティのための他のネットワークインフラストラクチャを備えてよい。1つまたは複数のサーバは、ネットワークメンバーにオンラインソーシャルウェブサイト等のセキュアコミュニティを提供する方法を実施する装置を形成してよい。
本明細書で使用される場合、命令は、システムにおいて情報を処理するためにコンピュータにより実施されるステップを指す。命令は、ソフトウェア、ファームウェア、またはハードウェアにおいて実施することができ、システムのコンポーネントが実施する任意のタイプのプログラムされたステップを含むことができる。
プロセッサは、アドレスライン、データライン及び制御ラインなどの様々なライン、並びにレジスタ及びシフトレジスタによって論理を実行することができる従来の任意の汎用シングルチッププロセッサまたはマルチチッププロセッサであってよい。
本明細書でフローチャート及びユーザインタフェースによって説明されるソフトウェアモジュールは、様々なサブルーチン、手順等を含み得る。本開示を限定することなく、特定のモジュールによって実行されるように規定される論理は、他のソフトウェアモジュールに再分配できる、及び/または単一のモジュールに一緒に組み合わされることができる、及び/または共有可能ライブラリにおいて利用可能にできる。
本明細書に説明される本原理は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組み合わせとして実装することができる。従って、実例となるコンポーネント、ブロック、モジュール、回路、及びステップは、それらの機能の観点から説明される。
さらに上記に指摘したものについて、下記に説明される論理ブロック、モジュール、及び回路は、汎用プロセッサ、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)もしくは特定用途向け集積回路(ASIC)等の他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェアコンポーネント、または本明細書に説明される機能を行うように設計されたそれらのいずれかの組み合わせによって実装できるまたは行うことができる。プロセッサは、コントローラもしくは状態機械、またはコンピューティングデバイスの組み合わせによって実装することができる。
以下で説明される機能及び方法は、ソフトウェアにおいて実装されるとき、限定ではないが、Java(登録商標)、C#、またはC++等の適切な言語において記述することができ、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、コンパクトディスクリードオンリメモリ(CD-ROM)、またはデジタル多用途ディスク(DVD)等の他の光ディスクストレージ、磁気ディスクストレージもしくは着脱可能サムドライブ等を含む他の磁気記憶装置等のコンピュータ可読記憶媒体に記憶することができ、またはそれらを通して伝送することができる。接続は、コンピュータ可読媒体を確立し得る。このような接続は、例として、光ファイバ、同軸ワイヤ、デジタル加入者回線(DSL)、及びツイストペアワイヤを含む有線ケーブルを含み得る。このような接続は、赤外線及び無線を含む無線通信接続を含み得る。
一実施形態に含まれるコンポーネントは、他の実施形態では、任意の適切な組み合わせで使用することができる。例えば、本明細書で説明される、及び/または図で示される様々なコンポーネントの任意のコンポーネントが、組み合わされてよい、交換されてよい、または他の実施形態から排除されてよい。
「A、B及びCのうちの少なくとも1つを有するシステム」(同様に「A、BまたはCのうちの少なくとも1つを有するシステム」及び「A、B、Cのうちの少なくとも1つを有するシステム」)は、A単独、B単独、C単独、A及びBを一緒に、A及びCを一緒に、B及びCを一緒に、及び/またはA、B及びCを一緒に有するシステムなどを含む。
ここで、具体的に図1を参照すると、本原理による、上記で言及され、以下でさらに説明される例示的なデバイスのうちの1つまたは複数を含み得る例示的なシステム10が示されている。システム10に含まれる例示的なデバイスのうちの第1のデバイスは、限定ではないが、テレビチューナ(同等に、テレビを制御するセットトップボックス)を備えたインターネット対応テレビなどのオーディオビデオデバイス(AVD)12などの消費者電子(CE)デバイスである。しかし、AVD12は、代わりに、電気器具または家庭用品、例えば、コンピュータ制御でインターネット対応の冷蔵庫、洗濯機、または乾燥機であってよい。代わりに、AVD12は、また、コンピュータ制御型インターネット対応(「スマート」)電話、タブレットコンピュータ、ノートブックコンピュータ、例えば、コンピュータ制御型インターネット対応時計、コンピュータ制御型インターネット対応ブレスレット、他のコンピュータ制御型インターネット対応デバイス等のウェアラブルコンピュータ制御デバイス、コンピュータ制御型インターネット対応ミュージックプレイヤ、コンピュータ制御型インターネット対応ヘッドフォン、インプラント可能な皮膚用デバイス等のコンピュータ制御型でインターネット対応のインプラント可能なデバイス等であってよい。それにも関わらず、AVD12は、本原理を実施する(例えば、本原理を実施するように他のCEデバイスと通信し、本明細書に説明される論理を実行し、本明細書に説明されるいずれかの他の機能及び/または動作を行う)ように構成されることを理解されたい。
従って、このような原理を実施するために、AVD12は、図1に示されるコンポーネントの一部または全てによって確立できる。例えば、AVD12は、1つまたは複数のディスプレイ14を備えてよく、ディスプレイ14は、高解像度または「4K」もしくはそれ以上の超高解像度のフラットスクリーンによって実装されてよく、ディスプレイのタッチによりユーザ入力信号を受信するためにタッチ対応であってよい。AVD12は、本原理に従って音声を出力するための1つまたは複数のスピーカ16と、例えば、可聴コマンドをAVD12に入力して、AVD12を制御するための、例えば、音声受信機/マイクロホン等の少なくとも1つの追加の入力デバイス18とを備えてよい。例示的なAVD12はまた、1つまたは複数の中央処理装置(CPU)、グラフィックス処理ユニット(GPU)、及びそれらの組み合わせ等の1つまたは複数のプロセッサ24の制御下で、インターネット、WAN、LANなどの少なくとも1つのネットワーク22を介して通信するための1つまたは複数のネットワークインタフェース20を備えてよい。中央処理装置(CPU)及びグラフィックス処理ユニット(GPU)として機能する単一のダイ上の処理チップは、本明細書では加速処理装置(APU)と呼ばれてよいことに留意されたい。
インタフェース20は、限定ではないが、Wi-Fi送受信機であってよく、Wi-Fi送受信機は、限定ではないが、メッシュネットワーク送受信機などの無線コンピュータネットワークインタフェースの例である。プロセッサ24は、例えば、画像を提示するようにディスプレイ14を制御することや、ディスプレイ14から入力を受信すること等の本明細書に説明されるAVD12の他の要素を含むAVD12が本原理を実施するように制御することが理解されよう。さらに、ネットワークインタフェース20は、例えば、有線もしくは無線のモデムもしくはルータ、または、例えば、無線テレフォニ送受信機もしくは上述したWi-Fi送受信機等の他の適切なインタフェースであってよいことに留意されたい。
上記のものに加えて、AVD12はまた、例えば、別のCEデバイスに(例えば、有線接続を使用して)物理的に接続する高解像度マルチメディアインタフェース(HDMI(登録商標))ポートもしくはUSBポート、及び/またはヘッドフォンを通してAVD12からユーザに音声を提供するためにAVD12にヘッドフォンを接続するヘッドフォンポート等の1つまたは複数の入力ポート26を備えてよい。例えば、入力ポート26は、オーディオビデオコンテンツのケーブルまたは衛星ソース26aに有線でまたは無線で接続されてよい。よって、ソース26aは、例えば、別個のもしくは統合されたセットトップボックス、または衛星受信機であってよい。または、ソース26aは、以下でさらに説明されるチャネル割り当て目的でユーザが好みと見なし得るコンテンツを含むゲームコンソールまたはディスクプレイヤであってよい。ソース26aは、ゲームコンソールとして実装されるとき、CEデバイス44に関連して以下で説明されるコンポーネントの一部または全てを備えてよい。
AVD12は、さらに、一時的信号ではない、ディスクベースストレージまたはソリッドステートストレージ等の1つまたは複数のコンピュータメモリ28を備えてよく、これらのストレージは、場合によっては、スタンドアロンデバイスとしてAVDのシャーシ内で、またはAVプログラムを再生するためにAVDのシャーシの内部もしくは外部のいずれかでパーソナルビデオ録画デバイス(PVR)もしくはビデオディスクプレイヤとして、または取り外し可能メモリ媒体として具現化されてよい。また、ある実施形態では、AVD12は、限定ではないが、携帯電話受信機、GPS受信機、及び/または高度計30等の位置または場所の受信機を備えることができ、位置または場所の受信機は、例えば、少なくとも1つの衛星タワーもしくは携帯電話タワーから地理的位置情報を受信し、その情報をプロセッサ24に提供し、及び/またはAVD12がプロセッサ24と併せて配置されている高度を決定するように構成される。しかしながら、携帯電話受信機、GPS受信機、及び/または高度計以外の別の適切な位置受信機が、本原理に従って、例えば、3つの次元全てにおいてAVD12の位置を決定するために使用されてよいことは理解されたい。
AVD12の説明を続けると、ある実施形態では、AVD12は、1つまたは複数のカメラ32を備えてよく、1つまたは複数のカメラ32は、例えば、サーマルイメージングカメラ、ウェブカメラなどのデジタルカメラ、及び/またはAVD12に統合され、本原理に従って写真/画像及び/またはビデオを収集するようプロセッサ24によって制御可能なカメラであってよい。また、AVD12に含まれるのは、Bluetooth(登録商標)及び/または近距離無線通信(NFC)技術を各々使用して、他のデバイスと通信するためのBluetooth(登録商標)送受信機34及び他のNFC要素36であってよい。例示的なNFC要素は、無線周波数識別(RFID)要素であってよい。
さらにまた、AVD12は、プロセッサ24に入力を提供する1つまたは複数の補助センサ37(例えば、加速度計、ジャイロスコープ、サイクロメータなどの動きセンサ、または磁気センサ、赤外線(IR)センサ、光学センサ、速度及び/またはケイデンスセンサ、(例えば、ジェスチャコマンドを検知するための)ジェスチャセンサなど)を備えてよい。AVD12は、プロセッサ24に入力を提供する無線テレビ放送を受信するためのOTHテレビブロードキャストポート38を備えてよい。上述したものに加え、AVD12は、赤外線(IR)送信機及び/またはIR受信機及び/または赤外線データアソシエーション(IRDA)デバイスなどのIR送受信機42も備えてよいことに留意されよう。AVD12に給電するためのバッテリ(図示せず)が備えられてよい。
さらに図1を参照して、AVD12に加えて、システム10は、1つまたは複数の他のCEデバイスタイプを含んでもよい。一例では、以下に説明されるサーバを通して送信されたコマンドを介してディスプレイを制御するために第1のCEデバイス44が使用されてよく、第2のCEデバイス46は、第1のCEデバイス44と同様のコンポーネントを備えてよく、よって、詳細には説明しない。図示の例では、2つのCEデバイス44、46のみが示されるが、より少ないまたはより多くのデバイスが使用されてよいことは理解されよう。上記に示唆したように、CEデバイス44/46及び/またはソース26aは、ゲームコンソールによって実装されてよい。または、CEデバイス44/46のうちの1つまたは複数は、Google Chromecast、Roku、Amazon FireTVの商標で販売されるデバイスによって実装されてよい。
図示の例では、本原理を示すために、3つのデバイス12、44、46は全て、例えば家庭のエンターテインメントネットワークのメンバーであること、または少なくとも、住宅等の場所において相互に近接して存在していることが想定される。しかしながら、本原理について、他に明示的に主張されない限り、破線48によって示されるように、特定の場所に限定されない。
例示の非限定的な第1のCEデバイス44は、上述のデバイス、例えば、ポータブル無線ラップトップコンピュータまたはノートブックコンピュータまたはゲームコントローラ(「コンソール」とも称される)のいずれか1つによって確立されてよく、従って、以下で説明されるコンポーネントの1つまたは複数を有してよい。第2のCEデバイス46は、限定ではないが、Blu-ray(登録商標)プレイヤなどのビデオディスクプレイヤ及びゲームコンソールなどによって確立されてよい。第1のCEデバイス44は、例えば、AVD12にAV再生及び一時停止コマンドを発するためのリモートコントロール(RC)であってよい、または、第1のCEデバイス44は、第2のCEデバイス46によって実装されたゲームコンソールと有線もしくは無線リンクを介して通信し、AVD12、パーソナルコンピュータ、無線電話上などへのビデオゲームの提示を制御するタブレットコンピュータ、ゲームコントローラなどのより洗練されたデバイスであってよい。
従って、第1のCEデバイス44は、ディスプレイをタッチしてユーザ入力信号を受信するためにタッチ対応であってよい1つまたは複数のディスプレイ50を備えてよい。第1のCEデバイス44は、本原理に従って音声を出力するための1つまたは複数のスピーカ52と、例えば、デバイス44を制御するために可聴コマンドを第1のCEデバイス44に入力するための、例えば、音声受信機/マイクロホン等の少なくとも1つの追加の入力デバイス54とを備えてよい。例示的な第1のCEデバイス44はまた、1つまたは複数のCPU、GPU、及びそれらの組み合わせなどの1つまたは複数のCEデバイスプロセッサ58の制御の下、ネットワーク22を介した通信ための1つまたは複数のネットワークインタフェース56を備えてよい。従って、インタフェース56は、限定ではないが、Wi-Fi送受信機であってよく、Wi-Fi送受信機は、メッシュネットワークインタフェースを含む無線コンピュータネットワークインタフェースの例である。プロセッサ58は、例えば、画像を提示するようにディスプレイ50を制御すること、及びそこから入力を受信すること等、本明細書に説明される第1のCEデバイス44の他の要素を含む、第1のCEデバイス44が本原理を実施するように制御することが理解されよう。さらに、ネットワークインタフェース56は、例えば、有線もしくは無線のモデムもしくはルータ、または、例えば、無線テレフォニ送受信機もしくは上述したWi-Fi送受信機等の他の適切なインタフェースであってよいことに留意されたい。
上記に加えて、第1のCEデバイス44はまた、例えば、別のCEデバイスに(例えば、有線接続を使用して)物理的に接続するHDMI(登録商標)ポートもしくはUSBポート、及び/またはヘッドフォンを経由して第1のCEデバイス44からユーザに音声を提供するために第1のCEデバイス44にヘッドフォンを接続するためのヘッドフォンポート等の1つまたは複数の入力ポート60を備えてよい。第1のCEデバイス44は、さらに、ディスクベースストレージまたはソリッドステートストレージ等の1つまたは複数の有形コンピュータ可読記憶媒体62を備えてよい。また、ある実施形態では、第1のCEデバイス44は、限定ではないが、携帯電話及び/またはGPS受信機及び/または高度計64など、位置または場所の受信機を備えることができ、位置または場所の受信機は、例えば、三角測量を使用して、少なくとも1つの衛星タワー及び/または携帯電話タワーから地理的位置情報を受信し、その情報をCEデバイスプロセッサ58に提供し、及び/または第1のCEデバイス44がCEデバイスプロセッサ58と共に配置される高度を決定するように構成される。しかしながら、本原理に従って、例えば、全ての3つの次元において第1のCEデバイス44の位置を決定するために、携帯電話及び/またはGPS受信機及び/または高度計以外の他の適切な位置受信機が使用されてもよいことを理解されたい。
第1のCEデバイス44の説明を続けると、ある実施形態では、第1のCEデバイス44は、1つまたは複数のカメラ66を備えてよく、1つまたは複数のカメラ66は、例えば、サーマルイメージングカメラ、ウェブカメラなどのデジタルカメラ、及び/または第1のCEデバイス44に統合され、本原理に従って写真/画像及び/またはビデオを収集するようにCEデバイスプロセッサ58によって制御可能であるカメラであってよい。また、第1のCEデバイス44に含まれるのは、Bluetooth(登録商標)及び/または近距離無線通信(NFC)技術を各々使用して、他のデバイスと通信するためのBluetooth(登録商標)送受信機68及び他のNFC要素70であってよい。例示的なNFC要素は、無線周波数識別(RFID)要素であってよい。
さらにまた、第1のCEデバイス44は、CEデバイスプロセッサ58に対する入力を提供する1つまたは複数の補助センサ72(例えば、加速度計、ジャイロスコープ、サイクロメータ等の運動センサ、または磁気センサ、赤外線(IR)センサ、光学センサ、速度及び/またはケイデンスセンサ、(例えば、ジェスチャコマンドを検知するための)ジェスチャセンサ等)を備えてよい。第1のCEデバイス44は、CEデバイスプロセッサ58に対する入力を提供する、例えば、1つまたは複数の気候センサ74(例えば、気圧計、湿度センサ、風力センサ、光センサ、温度センサ等)及び/または1つまたは複数の生体センサ76等のさらに他のセンサを備えてよい。上述のものに加え、ある実施形態では、第1のCEデバイス44は、赤外線(IR)送信機及び/またはIR受信機、及び/または赤外線データアソシエーション(IRDA)デバイス等のIR送受信機78も含んでもよいことに留意されたい。第1のCEデバイス44に給電するためにバッテリ(図示せず)が備えられてよい。CEデバイス44は、上記で説明された通信モード及び関連コンポーネントの任意のものを通してAVD12と通信してよい。
第2のCEデバイス46は、CEデバイス44に関して示されたコンポーネントの一部または全てを含み得る。いずれか1つまたは両方のCEデバイスは、1つまたは複数のバッテリによって給電されてよい。
ここで、上記の少なくとも1つのサーバ80を参照すると、このサーバは、少なくとも1つのサーバプロセッサ82と、ディスクベースストレージまたはソリッドステートストレージなどの、少なくとも1つの有形コンピュータ可読記憶媒体84とを備える。ある実施態様では、媒体84は、1つまたは複数のSSDを含む。サーバはまた、少なくとも1つのネットワークインタフェース86を備え、少なくとも1つのネットワークインタフェース86は、ネットワーク22を介した図1の他のデバイスとの通信を可能にし、実際には、本原理に従ってサーバとクライアントデバイスとの間の通信を促進し得る。ネットワークインタフェース86は、例えば、有線もしくは無線モデムもしくはルータ、Wi-Fi送受信機、または、例えば、無線テレフォニ送受信機などの他の適切なインタフェースであってよいことに留意されたい。ネットワークインタフェース86は、サーバプロセッサ82を通過することなく、いわゆる「ファブリック」などのネットワークに媒体84を直接接続するリモートダイレクトメモリアクセス(RDMA)インタフェースであってよい。ネットワークは、イーサネット(登録商標)ネットワーク及び/またはファイバチャネルネットワーク及び/またはInfiniBandネットワークを含み得る。典型的には、サーバ80は、物理サーバ「スタック」に配列され得る「ブレード」と称される複数のコンピュータにおいて複数のプロセッサを備える。
従って、ある実施形態では、サーバ80は、インターネットサーバまたは「サーバファーム」全体であってよく、「クラウド」機能を含んでよく、「クラウド」機能を行ってよく、それにより、システム10のデバイスは、例えば、ネットワークゲームアプリケーションに関する例示的な実施形態ではサーバ80を介して「クラウド」環境にアクセスし得る。または、サーバ80は、1つまたは複数のゲームコンソール、または図1に示される他のデバイスと同じ部屋にもしくはその近くにある他のコンピュータによって実装されてよい。
本明細書における方法は、プロセッサ、適切に構成された特定用途向け集積回路(ASIC)もしくはフィールドプログラマブルゲートアレイ(FPGA)モジュール、または当業者によって認識される任意の他の便利な方式によって実行されるソフトウェア命令として実装されてよい。採用される場合、ソフトウェア命令は、CD ROMまたはフラッシュドライブ等の非一時的デバイスで具体化されてよい。代わりに、ソフトウェアコード命令は、無線信号もしくは光信号などの一時的構成で、またはインターネットを通したダウンロードを介して具体化されてよい。
図2は、Sony PlayStation(登録商標)、Microsoft Xboxes(登録商標)などの1つまたは複数のクライアントゲームコンソール200(「ゲームシステム」、「ゲームデバイス」とも呼ばれる)が有線及び/または無線リンクを介して、クラウドベースのゲーム管理サーバ202、典型的にはインターネットサーバと通信するクラウドコンピュータゲーム環境の形式の例示的なアプリケーションを示す。次に、管理サーバ202は、限定ではないが、フラッシュや3D Xpointなどのソリッドステートメモリを使用するNVMe対応SSDを含むランダムアクセスメモリ(RAM)などの1つまたは複数のソリッドステートメモリ206を備える第1のゲームサーバ204(複数のサーバ「ブレード」によって具体化されてよい)と通信する。管理サーバ202は、1つまたは複数のソリッドステートメモリ214を備えるN番目のゲームサーバ212を含む、最大「N」個のそのようなサーバと通信する。
アーキテクチャ例
図3は、単一のファブリック300が単一のダイまたは各ダイ上に2つのAPU302、304を保持する例示の非均一メモリアクセス(NUMA)アーキテクチャを示す。NUMAアーキテクチャは、3つ以上のAPUによって実装されてよいことは理解されよう。同じファブリック300上の各ダイチップに実装される場合、一般的に「バス」と呼ばれ得る通信経路は、ファブリックのビア層によって確立されてよい。
図に示すように、各APUは、1つまたは複数のCPU304及び1つまたは複数のGPU306、通常、APUごとに1つのCPU及び1つのGPUを備えてよい。各APU302は、ランダムアクセスメモリ(RAM)などのメモリ310へのアクセスを制御する各APU302自体のメモリコントローラ308に関連付けられてよい。APU間の通信は、本明細書では便宜上「バス」と呼ぶ1つまたは複数の通信経路312の影響を受ける場合がある。
従って、各APU(または個々のGPU)は、それ自体のメモリコントローラを有し、従って、RAMなどのそれ自体の専用メモリを有する。GPU間に(キャッシュコヒーレントな)共有バスが存在し得るため、1つのGPUが他のGPUのメモリにアクセスできる。
図4は、CPU400とGPU402をそれぞれ含み、各CPU及び各GPUがそれ自体の各ダイに実装されている2つのAPUが示されている共有メモリアーキテクチャのブロック図である。アーキテクチャはより少ないダイまたは1つのダイに実装されてもよいことと、3つ以上のAPUが実装されてもよいことは理解されよう。APUは、メモリ406を制御する共通のメモリコントローラ404を共有し、APUは、各通信経路を介して互いに通信してよく、メモリコントローラと通信してよい。
図5は、各APUがそれ自体の各ダイ500上に実装され、共有メモリコントローラ506がダイ500のうちの1つに実装されている2つのAPU(それぞれCPU502及びGPU504を含む)が示された共有メモリアーキテクチャのブロック図である。アーキテクチャは1つのダイに実装されてもよく、3つ以上のAPUが実装されてよいことは理解されよう。共有メモリコントローラ506は、メモリ508へのアクセスを制御し、APUは、1つまたは複数の通信経路510を介して互いに通信してよく、且つ、メモリコントローラ506と通信してよい。
図6は、スキャンアウトユニット602を備えた例示的なGPU600のブロック図である。スキャンアウトユニット602は、各メモリバッファ(または同等に、バッファID)606を指す複数のレジスタ604を備えることができる。ビデオエンコーダ608は、スキャンアウトユニット602と通信してよい。ビデオエンコーダ608は、HDMI(登録商標)上で通常出力され得るのと同じ画像の符号化を可能にするクラウドゲームのシナリオに特に適用可能である。
スキャンアウトユニット602は、ビデオの各フレームのピクセルをラインごとに、例えばHDMI(登録商標)に出力することを担当している。以下でさらに詳しく説明するように、スキャンアウトユニットは正しいビデオフレームを読み取るようにプログラムできる。これは、このためにレジスタ604のセットを維持し、各レジスタは異なるバッファ606を指し、スキャンアウトユニットはバッファを循環する。
フレームバッファ管理
ここでさらに詳しく説明するように、複数のGPUがフレームバッファを管理するためにどのように連携するかについては、複数のアプローチがある。各GPUは、他のGPUとは異なるビデオフレームをレンダリングしてよい。または、各GPUは同じフレームの異なる部分をレンダリングしてよい。例えば、フレームの上の1からNラインは第1のGPUによってレンダリングされてよく、同じフレームの下のN+1からMラインは第2のGPUによってレンダリングされてよい。GPU間の他のパターン/部分が使用されてよい。
図7は、各GPUが同じビデオの他のGPUとは異なるフレームをレンダリングし、GPUの1つが他のGPU(複数可)のバッファを指すレジスタを有する、各GPUが完全なフレームをレンダリングするNUMA実施形態の例示的な論理のフローチャートである。ブロック700で開始して、オペレーティングシステム及び/またはGPUドライバは、フレームバッファとして使用されるメモリ領域を割り当てる。通常、フレームバッファは少なくとも2つのバッファで構成される(さらにレイテンシが追加される)。1つのバッファは、HDMI(登録商標)などを介して出力される現在表示されているフレームに使用され、第2のバッファは次のフレームのレンダリングに使用することができる。必要に応じて、追加の深度バッファやその他のバッファが存在し得る。
図7では、GPUドライバ及び/またはシミュレーションプログラム(例えば、コンピュータゲーム)がレンダリングコマンドを送信して、GPUを交互に切り替える。GPUドライバまたはゲームは、全ての奇数番号のフレームをレンダリングするように第1のGPUに命令し、全ての偶数番号のフレームをレンダリングするように第2のGPUに命令することでこれを管理する。
このような実装では、論理はブロック702に移動し、スキャンアウトユニットのレジスタを、各レジスタが異なるGPUによって管理されるメモリバッファを指すようにプログラムしてよい。ブロック704に進むと、GPUは、それが管理するバッファと、サイクリングGPUのレジスタが指す他のGPUによって管理されるバッファとを循環して、HDMI(登録商標)に存在し得るビデオの全てのフレームを出力する。3つ以上のGPUが使用される場合、各GPUによってレンダリングされるフレームの数はそれに応じて減少する可能性がある、例えば、N個のGPUのそれぞれがビデオの1/Nのフレームをレンダリングし、各GPUは他のGPUがレンダリングするのとは異なるフレームをレンダリングすることを理解されたい。
図8は、スキャンアウトユニットが「ローカル」GPUのメモリからのフレームのみをスキャンアウトする代替アプローチを示す。図7の場合と同様に、図8のブロック800において、オペレーティングシステム及び/またはGPUドライバは、フレームバッファとして使用されるメモリ領域を割り当てる。ただし、ブロック802に移動すると、第1のGPUのレジスタは、そのGPUにローカルなバッファのみを指すようにプログラムされ、第2のGPUからのフレームは、フレームのレンダリングの完了時にブロック804で、直接メモリアクセス(DMA)を介して第1のGPUにコピーされる。「第1の」GPUは、第2のGPUからの(フレーム完了を通知するための)割り込みに基づいてフレームをコピーする第1のGPUによって確立されてよいことに留意されたい。ブロック806に進み、第1のGPUは、第1のGPUが管理するバッファと、ブロック804で第2のGPUからDMAを介して受信したフレームとを循環して、HDMI(登録商標)に存在し得るビデオの全てのフレームを出力する。
図4及び5に示すような共有メモリコントローラアーキテクチャでは、スキャンアウトユニットがデータを読み取ることについて問題がないため、フレームをコピーする必要がないことに留意されたい。どのGPUがレンダリングしても、タイミングは同じである。
図9は、各GPUが同じフレームの他のGPUとは異なる部分をレンダリングする、各GPUがフレームの一部(例えば、ライン)をレンダリングするNUMA実施形態の例示的な論理のフローチャートである。ブロック900で開始して、第1のGPUは、第1のNライン(ライン1からN)などのフレームの第1の部分をレンダリングし、ブロック902で、第2のGPUは、同じフレームの異なる部分、例えば、ラインN+1からM(最後のライン)をレンダリングする。3つ以上のGPUが使用される場合、各GPUによってレンダリングされるフレームの部分はそれに応じて削減されることを理解されたい。いずれにせよ、ブロック904では、完全なフレーム(ライン1からM)が第1のGPUによって出力される。
上記に影響を与えるために、スキャンアウトユニットは、それぞれ異なるGPUによって管理される複数のバッファからフレームごとに読み取るように変更することができる。従って、スキャンアウトユニットは、第1の「N」ラインを第1のバッファ(それ自体の内部レンダリング用であってよい)から生成し、次のNラインを第2のGPUに関連付けられ得る第2のバッファから生成するようにプログラムされてよい。
図10は、第2のGPUのDMAのメモリが第1のGPUのビデオバッファの一部に渡されることを除いて、図9と同様の別の代替アプローチを示す。従って、ブロック1000で開始して、第1のGPUは、第1のNライン(ライン1からN)などのフレームの第1の部分をレンダリングし、ブロック1002で、第1のGPUは、同じフレームの異なる部分、例えば、ラインN+1からM(最後のライン)を第2のGPUから受信する。ブロック1004では、完全なフレーム(ライン1からM)が第1のGPUによって出力される。
図11は、各GPUが同じフレームの他のGPUとは異なる部分をレンダリングする、各GPUがフレームの一部(例えば、ライン)をレンダリングする共有メモリの実施形態の例示的な論理のフローチャートである。従って、ブロック1100において、第1のGPUは、フレームの第1の部分をバッファにレンダリングし、ブロック1102において、第2のGPUは、同じフレームの第2の部分を同じバッファにレンダリングする。ブロック1104で、完全なフレーム(ライン1からM)が共有バッファによって出力される。
HDMI(登録商標)出力を制御するGPUの決定
図12は、どのGPUが出力を管理するかを決定するための第1のアプローチが、ブロック1200において、製造時にHDMI(登録商標)(またはディスプレイポート)出力を特定のGPUに単に物理的に接続することを含むことを示す。従って、マッピングは製造時に制御される。
図13及び14は、別のアプローチにおいて、図13のブロック1300において、それ自体の各ビデオ出力を伴う各GPU1400(図14に示される)が実装されることを示す。GPU1400の出力は、ブロック1302において、両方のGPU出力ポート間で切り替わる1つまたは複数のマルチプレクサ1402によって多重化される。
信号が暗号化されることが多いことを認識して、マルチプレクサ1402の出力を受信して暗号化に対処する暗号化チップ1404が備えられてよい。基本的に、多重化出力は、暗号化チップ1404によってHDMI(登録商標)に変換されるDisplayPort信号を確立してよい。
ビデオ構成
本明細書で理解されるように、ユーザ体験(UX)グラフィックス及びシミュレーション(例えば、ゲーム)ビデオは、両方とも異なるGPUでレンダリングすることができる。UXレンダリングは通常、要求が高くないため、UXをレンダリングする必要があるのは1つのGPUだけ、典型的には、前のセクションでHDMI(登録商標)出力を処理するために選択されたGPUである。このGPUは、UXとゲームとを含む最終的なフレームバッファ画像を構成する。ゲーム、ゲームのフレームバッファは、フレームに依存し得る。合成エンジンは、各GPUのメモリまたは共有メモリコントローラからメモリを直接読み取ってよい。
電力管理
電力管理技術を実施して、電力消費を制限することによって熱負荷を下げてよい。消費電力が周波数に対して直線的に、電圧の二乗として変化することを認識して、ビデオゲームなどのコンピュータシミュレーションプログラムは、周波数/電圧/電力のしきい値に近づくと、周波数及び/または電圧を自動的に低減することにより、電力消費を所定のしきい値内に維持するようにプログラムされてよい。これを行うには、1つまたは複数のGPUなどのハードウェアからのレジスタを読み取って現在の使用量の割り当てを決定し、必要に応じてパーティクルエフェクトなどの特定のエフェクトをスロットリングしてよい。同じ原理が携帯電話にも当てはまる。スロットリングはオーバークロック技術によって実施されてよく、GPUはアーキテクチャ内のCPUとは独立してスロットリングされてよい。ビデオの解像度は、消費電力関連のしきい値内にとどまりながらも、シミュレーションの実行を維持するために低減されてよい。電力消費関連のしきい値に近づくと、音声及び/または視覚的な警告(LEDの作動など)が提示されてよい。
ユーザは、追加の熱予算のために追加料金を支払うことが許可されてよい。同様に、追加料金を支払うことで、ユーザはクラウドサーバ上でより多くのダイ(従って、より多くのAPU)を割り当てられてよく、低料金を支払うユーザには1つのダイのみが割り当てられる。これは、システムメトリックを呼び出してスレッドを生成し、メトリックに基づいてサービスの品質を決定するようにAPIをプログラミングすることによって、アプリケーションが開始するときに実行されてよい。システムメトリックは、より少ないダイを割り当てられている低料金を支払うユーザをフィルタリングすることができる。同時処理を伴うマルチスレッドゲームの利点を望む高料金を支払うユーザには、低料金を支払うユーザよりも多くのダイを割り当てることができる。
いくつかの例示的な実施形態を参照して本原理を説明したが、これらは限定することを意図しておらず、各種の代替的な構成が本明細書で特許請求される主題を実施するために使用されてよいことは理解されよう。

Claims (19)

  1. 少なくとも第1のグラフィックス処理ユニット(GPU)と、
    前記第1のGPUに通信可能に結合された少なくとも第2のGPUと、
    を備える装置であって、
    前記GPUは、
    前記第1のGPUがビデオの第1の部分をレンダリングし、前記第2のGPUが前記ビデオの第2の部分をレンダリングし、前記第1の部分と前記第2の部分は互いに異なるように、前記ビデオの各部分をレンダリングするようにプログラムされ
    前記第1のGPUは、前記第2のGPUによって管理される少なくとも1つのバッファを指す少なくとも1つのスキャンアウトユニットを備え、前記第1のGPUは、バッファを循環して前記ビデオのフレームの完全なシーケンスを出力するようにプログラムされる、
    装置。
  2. 前記第1のGPU及び前記第2のGPUは、共通のダイ上に実装される、請求項1に記載の装置。
  3. 前記第1のGPU及び前記第2のGPUは、それぞれ、第1のダイ及び第2のダイ上に実装される、請求項1に記載の装置。
  4. 前記第1のGPUは、第1の中央処理装置(CPU)に関連付けられ、前記第2のGPUは、第2のCPUに関連付けられている、請求項1に記載の装置。
  5. 前記第1のGPUに関連付けられた第1のメモリコントローラ及び第1のメモリと、前記第2のGPUに関連付けられた第2のメモリコントローラ及び第2のメモリとを備える、請求項1に記載の装置。
  6. 前記GPUは、共通メモリを制御する共通メモリコントローラを共有する、請求項1に記載の装置。
  7. 各GPUは、他のGPUによってレンダリングされるビデオのフレームとは異なる前記ビデオの全てのフレームではなく一部のフレームの全てをレンダリングして、各出力を提供するようにプログラムされ、前記GPUの前記出力は、前記ビデオをレンダリングするために結合される、請求項1に記載の装置。
  8. 各GPUは、あるGPUによってレンダリングされるビデオのフレームのラインは、他のGPUによってレンダリングされる前記フレームのラインとは異なるように、ビデオのフレームの全てのラインではなく一部のラインの全てをレンダリングして、各出力を提供するようにプログラムされ、前記GPUの前記出力は、前記ビデオをレンダリングするために結合される、請求項1に記載の装置。
  9. 前記第1のGPUは、前記第1のGPUによって管理されるバッファのみを指す少なくとも1つのスキャンアウトユニットを備え、前記第1のGPUは、ダイレクトメモリアクセス(DMA)を介して前記第2のGPUから前記ビデオのフレームを受信し、前記ビデオのフレームの完全なシーケンスを出力するようにプログラムされる、請求項に記載の装置。
  10. 前記第1のGPUは、少なくとも前記第1のGPUによって管理される第1のバッファと前記第2のGPUによって管理される第2のバッファとを指す少なくとも1つのスキャンアウトユニットを備え、前記第1のGPUは、バッファを循環して、前記第1のバッファに関連付けられた1~Nラインと、前記第2のバッファに関連付けられた(N+1)~Mラインを使用するビデオのフレームの完全なシーケンスを出力するようにプログラムされ、前記1~Nラインと前記(N+1)~Mラインはビデオの前記フレームの異なるラインである、請求項1に記載の装置。
  11. 前記第1のGPUは、前記第1のGPUによって管理される少なくとも第1のバッファを指し、前記第2のGPUによって管理される第2のバッファを指さない少なくとも1つのスキャンアウトユニットを備え、前記第1のGPUは、バッファを循環して、前記第1のバッファに関連付けられた1~Nラインと、前記第2のバッファに関連付けられ、直接メモリアクセス(DMA)を介して前記第1のGPUによって受信された(N+1)~Mラインとを使用するビデオのフレームの完全なシーケンスを出力するようにプログラムされ、前記1~Nラインと前記(N+1)~Mラインはビデオの前記フレームの異なるラインである、請求項1に記載の装置。
  12. 前記第1のGPUは、前記共通メモリコントローラと通信する少なくとも第1のバッファを指す少なくとも1つのスキャンアウトユニットを備え、前記第2のGPUは、前記共通メモリコントローラと通信する第2のバッファを備え、前記第1のGPUは、前記第1のバッファに関連付けられた1~Nラインをレンダリングし、前記第2のGPUは、前記第2のバッファに関連付けられた(N+1)~Mラインをレンダリングし、前記1~Nラインと前記(N+1)~Mラインは、ビデオのフレームの異なるラインである、請求項6に記載の装置。
  13. 前記第1のGPUは、前記第1のGPU及び前記第2のGPUから出力されたビデオデータを管理する、請求項1に記載の装置。
  14. 前記GPUは、各GPUからのフレーム及び/またはラインを一緒に多重化してビデオを出力するマルチプレクサにビデオデータを出力する、請求項1に記載の装置。
  15. マルチグラフィックス処理ユニット(GPU)シミュレーション環境において、
    複数のGPUに、ビデオの各フレームをレンダリングさせること、ビデオの各フレームの各部分をレンダリングさせること、またはビデオの各フレーム及びビデオのフレームの各部分をレンダリングさせることと、
    前記GPUのうちの第1のGPUが前記GPU(複数可)の少なくとも他の1つからフレーム情報を受信することを使用して、または前記GPUの出力を一緒に多重化して、または前記GPUのうちの第1のGPUが前記GPU(複数可)の少なくとも他の1つからフレーム情報を受信することと前記GPUの出力を一緒に多重化することとの両方を使用して、フレーム出力を制御することと、
    を含み、
    前記第1のGPUは、少なくとも前記第1のGPUによって管理される第1のバッファと第2のGPUによって管理される第2のバッファとを指す少なくとも1つのスキャンアウトユニットを備え、前記第1のGPUは、バッファを循環して、前記第1のバッファに関連付けられた1~Nラインと、前記第2のバッファに関連付けられた(N+1)~Mラインを使用するビデオのフレームの完全なシーケンスを出力するようにプログラムされ、前記1~Nラインと前記(N+1)~Mラインはビデオの前記フレームの異なるラインである、方法。
  16. 複数のGPUにビデオの各フレームをレンダリングさせることを含む、請求項15に記載の方法。
  17. 複数のGPUにビデオの各フレームの各部分をレンダリングさせることを含む、請求項15に記載の方法。
  18. 前記GPUのうちの第1のGPUが前記GPU(複数可)のうちの少なくとも他の1つのGPUからフレーム情報を受信することを使用して、フレーム出力を制御することを含む、請求項15に記載の方法。
  19. シミュレーションビデオの各第1の部分をレンダリングするようにプログラムされた少なくとも第1のグラフィックス処理ユニット(GPU)と、
    シミュレーションビデオの各第2の部分をレンダリングするようにプログラムされた少なくとも第2のGPUと、
    を備えるコンピュータシミュレーション装置であって、
    少なくとも前記第1のGPUは、前記第1の部分と前記第2の部分とを結合し、完全なシミュレーションビデオを確立する出力をレンダリングするようにプログラムされ
    前記第1のGPUは、前記第1のGPUによって管理される少なくとも第1のバッファを指し、前記第2のGPUによって管理される第2のバッファを指さない少なくとも1つのスキャンアウトユニットを備え、前記第1のGPUは、バッファを循環して、前記第1のバッファに関連付けられた1~Nラインと、前記第2のバッファに関連付けられ、直接メモリアクセス(DMA)を介して前記第1のGPUによって受信された(N+1)~Mラインとを使用するビデオのフレームの完全なシーケンスを出力するようにプログラムされ、前記1~Nラインと前記(N+1)~Mラインはビデオの前記フレームの異なるラインである、
    コンピュータシミュレーション装置。
JP2021544244A 2019-01-30 2020-01-15 家庭用ゲームコンソール及びクラウドゲーム用のスケーラブルなゲームコンソールcpu/gpu設計 Active JP7277592B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/261,986 US11074666B2 (en) 2019-01-30 2019-01-30 Scalable game console CPU/GPU design for home console and cloud gaming
US16/261,986 2019-01-30
PCT/US2020/013721 WO2020159710A1 (en) 2019-01-30 2020-01-15 Scalable game console cpu / gpu design for home console and cloud gaming

Publications (2)

Publication Number Publication Date
JP2022521455A JP2022521455A (ja) 2022-04-08
JP7277592B2 true JP7277592B2 (ja) 2023-05-19

Family

ID=71731484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021544244A Active JP7277592B2 (ja) 2019-01-30 2020-01-15 家庭用ゲームコンソール及びクラウドゲーム用のスケーラブルなゲームコンソールcpu/gpu設計

Country Status (6)

Country Link
US (1) US11074666B2 (ja)
EP (1) EP3918567A4 (ja)
JP (1) JP7277592B2 (ja)
KR (1) KR102610097B1 (ja)
CN (1) CN113490962A (ja)
WO (1) WO2020159710A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9795879B2 (en) * 2014-12-31 2017-10-24 Sony Interactive Entertainment America Llc Game state save, transfer and resume for cloud gaming
CN115375530A (zh) * 2022-07-13 2022-11-22 北京松应科技有限公司 一种多gpu协同渲染方法、系统、装置及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007503059A (ja) 2003-08-18 2007-02-15 エヌビディア・コーポレーション マルチプロセッサ・グラフィックス処理システムの適応型負荷分散
JP2007215156A (ja) 2005-11-04 2007-08-23 Nvidia Corp 複数のグラフィックス処理装置を用いたビデオ処理
JP2015197805A (ja) 2014-04-01 2015-11-09 株式会社ソニー・コンピュータエンタテインメント プロセッシングシステムおよびマルチプロセッシングシステム
JP2016502815A (ja) 2012-11-29 2016-01-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated スケーラブルビデオ符号化空間モードの帯域幅節約アーキテクチャ

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7015915B1 (en) * 2003-08-12 2006-03-21 Nvidia Corporation Programming multiple chips from a command buffer
US6956579B1 (en) * 2003-08-18 2005-10-18 Nvidia Corporation Private addressing in a multi-processor graphics processing system
US7941645B1 (en) * 2004-07-28 2011-05-10 Nvidia Corporation Isochronous pipelined processor with deterministic control
US7786998B2 (en) * 2004-11-12 2010-08-31 Ati Technologies Ulc Methods and apparatus for controlling video playback
US7633505B1 (en) * 2004-11-17 2009-12-15 Nvidia Corporation Apparatus, system, and method for joint processing in graphics processing units
US7522167B1 (en) * 2004-12-16 2009-04-21 Nvidia Corporation Coherence of displayed images for split-frame rendering in multi-processor graphics system
US20080143731A1 (en) * 2005-05-24 2008-06-19 Jeffrey Cheng Video rendering across a high speed peripheral interconnect bus
US7456833B1 (en) * 2005-06-15 2008-11-25 Nvidia Corporation Graphical representation of load balancing and overlap
JP4327175B2 (ja) * 2005-07-12 2009-09-09 株式会社ソニー・コンピュータエンタテインメント マルチグラフィックプロセッサシステム、グラフィックプロセッサおよび描画処理方法
US7961192B2 (en) * 2006-08-01 2011-06-14 Nvidia Corporation Multi-graphics processor system and method for processing content communicated over a network for display purposes
US20080030510A1 (en) 2006-08-02 2008-02-07 Xgi Technology Inc. Multi-GPU rendering system
US9336028B2 (en) * 2009-06-25 2016-05-10 Apple Inc. Virtual graphics device driver
US20120001925A1 (en) 2010-06-30 2012-01-05 Ati Technologies, Ulc Dynamic Feedback Load Balancing
CN103810124A (zh) * 2012-11-09 2014-05-21 辉达公司 用于数据传输的系统及方法
US9330433B2 (en) * 2014-06-30 2016-05-03 Intel Corporation Data distribution fabric in scalable GPUs
US20160188351A1 (en) * 2014-12-24 2016-06-30 Bull Hn Information Systems, Inc. Process for providing increased power on demand in a computer processing system with submodeling
US10467138B2 (en) * 2015-12-28 2019-11-05 Advanced Micro Devices, Inc. Caching policies for processing units on multiple sockets
US10304154B2 (en) 2017-04-24 2019-05-28 Intel Corporation Coordination and increased utilization of graphics processors during inference
US10761592B2 (en) * 2018-02-23 2020-09-01 Dell Products L.P. Power subsystem-monitoring-based graphics processing system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007503059A (ja) 2003-08-18 2007-02-15 エヌビディア・コーポレーション マルチプロセッサ・グラフィックス処理システムの適応型負荷分散
JP2007215156A (ja) 2005-11-04 2007-08-23 Nvidia Corp 複数のグラフィックス処理装置を用いたビデオ処理
JP2016502815A (ja) 2012-11-29 2016-01-28 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated スケーラブルビデオ符号化空間モードの帯域幅節約アーキテクチャ
JP2015197805A (ja) 2014-04-01 2015-11-09 株式会社ソニー・コンピュータエンタテインメント プロセッシングシステムおよびマルチプロセッシングシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A.Balatsos et al.,A bridge for a multiprocessor graphics system,Proceedings of the 2002 IEEE Canadian Conference on Eletctrical & Computer Engineering,2002年08月07日,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=1013017

Also Published As

Publication number Publication date
WO2020159710A1 (en) 2020-08-06
KR102610097B1 (ko) 2023-12-04
US11074666B2 (en) 2021-07-27
EP3918567A4 (en) 2023-03-15
CN113490962A (zh) 2021-10-08
US20200242723A1 (en) 2020-07-30
KR20220021444A (ko) 2022-02-22
EP3918567A1 (en) 2021-12-08
JP2022521455A (ja) 2022-04-08

Similar Documents

Publication Publication Date Title
US9906713B2 (en) Camera command set host command translation
US9686460B2 (en) Enabling a metadata storage subsystem
JP7277592B2 (ja) 家庭用ゲームコンソール及びクラウドゲーム用のスケーラブルなゲームコンソールcpu/gpu設計
US11736741B2 (en) Ultra high-speed low-latency network storage
CN107026834B (zh) 用于改进云中的游戏流式传输性能的方法
US20170092321A1 (en) Perceptual computing input to determine post-production effects
US11134114B2 (en) User input based adaptive streaming
US9600296B2 (en) Executing a command within a transport mechanism based on a get and set architecture
US11890538B2 (en) Scalable game console CPU / GPU design for home console and cloud gaming
JP2021511574A (ja) 変位による背面パッチのカリング
JP7125389B2 (ja) エミュレーションによるリマスタリング
US20210113928A1 (en) Post-launch crowd-sourced game qa via tool enhanced spectator system
US10373358B2 (en) Edge user interface for augmenting camera viewfinder with information

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220920

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221124

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: 20230404

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230508

R150 Certificate of patent or registration of utility model

Ref document number: 7277592

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150