JP2020522065A - エミュレーションの選択的加速 - Google Patents

エミュレーションの選択的加速 Download PDF

Info

Publication number
JP2020522065A
JP2020522065A JP2019565381A JP2019565381A JP2020522065A JP 2020522065 A JP2020522065 A JP 2020522065A JP 2019565381 A JP2019565381 A JP 2019565381A JP 2019565381 A JP2019565381 A JP 2019565381A JP 2020522065 A JP2020522065 A JP 2020522065A
Authority
JP
Japan
Prior art keywords
host
output
processing
host system
synchronization
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
JP2019565381A
Other languages
English (en)
Other versions
JP6824446B2 (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 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 claimed from PCT/US2018/029207 external-priority patent/WO2018217377A1/en
Publication of JP2020522065A publication Critical patent/JP2020522065A/ja
Application granted granted Critical
Publication of JP6824446B2 publication Critical patent/JP6824446B2/ja
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/45516Runtime code conversion or optimisation
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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
    • 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
    • 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/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/4302Content synchronisation processes, e.g. decoder synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4437Implementing a Virtual Machine [VM]
    • 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/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5593Details of game data or player data management involving scheduling aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/04Synchronising

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

【解決手段】より最新のコンピュータシステム上での、レガシーコンピュータシステム用に書かれたプログラムのエミュレーションの選択的加速が、開示される。ホストシステムは、ホスト出力と同期されるエミュレートされたプログラムアセットを処理する。エミュレートされたプログラムアセットとホスト出力との間の同期の必要性の低下が検出されるとき、エミュレートされたプログラムアセットの処理とホスト出力との同期が、ロック解除され、ホストシステムは、同期がロック解除された、エミュレートされたプログラムアセットの処理を加速する。【選択図】図1

Description

[優先権の主張]
本出願は、2017年5月26日に出願された米国特許出願番号第15/607,302号の優先権の利益を主張し、その内容全体が参照により本明細書に組み込まれる。
本開示は、レガシープログラムのエミュレーションに関する。より詳細には、本開示は、プログラムのエミュレーション中の加速された処理に関する。
対象システム(例えば、レガシーデバイス)用に書かれたプログラムの、ホストシステム(例えば、異なるシステム、またはより最新版の対象システム)上のエミュレーションでは、しばしば、対象システムがホストシステムよりも高性能でないことがある。対象システムの能力の低下は、より遅いクロック速度またはシステムコンポーネントの応答時間となって現れることがある。対象システム用に書かれたプログラムは、対象システムのより遅い速度に依存することがある。この依存関係に起因して、エミュレートされたプログラムは、ホストシステムの最大ケイパビリティを利用することが出来ない場合がある。
クラウドベースゲーミングシステムでは、処理の大部分が、クラウドベースサーバ上で行われる。これによって、クラウドベースサーバと通信しているクライアントデバイスプラットフォームは、クラウドベースゲームを処理するのにほとんどリソースを使用しないことが可能となる。現在の技術は、ゲームのロードをより高速にするためのインクリメンタルバッファリング、及びサーバとクライアントとの間の並列処理を実施する。しかしながら、この構成の結果として、クライアントデバイスとサーバとの間の通信は、同期されなければならない。クライアントデバイス及びサーバが同期されない場合、それは、異常な、または予期しないデバイスの挙動をもたらし得る。
レガシーゲームのクラウドベースエミュレーションでは、クライアントまたはホストデバイスは、レガシーゲームが動作するようにプログラムされた対象システムよりも、著しく高性能であることが多い。その結果、クライアントデバイスが、ゲームのエミュレーションのために処理を加速し得る場合、エミュレートされたゲームの実行に対する改良が実現され得る。したがって、当技術分野において、エミュレートされたゲームの処理を加速する方法に対する必要性が存在する。
本開示の態様は、添付図面と併せて以下の詳細な説明を考察することによって、容易に理解され得る。
本開示の態様による、エミュレーションの選択的加速の方法のフロー図である。 本開示の態様による、同期の必要性低下の検出、及び再同期の必要性の検出の方法を示すフロー図である。 本開示の態様による、ネットワーク上でのエミュレーションの選択的加速を示すフロー図である。 本開示の態様による、エミュレーションの選択的加速を実施するシステムのブロック図である。
序論
通常、対象システムの能力によって制約される、対象システム用に書かれたプログラムをエミュレートするとき、ホストシステムの出力は、対象システム上のプログラムアセットの処理速度と同期されなければならない。しかしながら、ホストシステム上での対象システム用プログラムアセットのエミュレーション中に、ホストシステムが対象システムの処理速度によって制約されなくてもよい時間が存在し得る。このウィンドウ内に、ホストシステムは、プログラムアセットの処理を加速し得る。同様に、ネットワークを介したエミュレーションは、ゲームが正しく動作するためにクライアントデバイス及びサーバが同期される必要性によって、制約されることがある。この同期の必要性は、ネットワークを介してエミュレートされたレガシーゲームを実行するときに、より高性能なクライアントデバイスが改良された性能を有することを妨げる。したがって、本開示の態様によれば、同期がゲームの性能に影響しないアプリケーション内の特定の時間において、エミュレートされたゲームの処理を加速することによって、ネットワークを介したゲームのエミュレーションの性能が、実現され得る。
以下の詳細な説明は、例示のための多数の具体的詳細を含むが、当業者であれば誰でも、以下の詳細に対する多数の変形及び変更が発明の範囲内にあると理解するであろう。したがって、以下に記載される発明の例示的実施形態は、特許請求された発明に対して一般性を失うことなく、かつ限定を与えることなく、明記される。
本開示の態様によれば、ホストシステムは、ホストシステム100上の対象システム用に書かれたプログラムのエミュレーションを加速するための方式を実施し得る。ホストシステムは、結果となる出力(本明細書においてホスト出力と呼ばれる)を生成及び利用するために、ホストシステムによって処理され得るエミュレートされたプログラムアセットを生成することによって、エミュレーションプロセスを実行し得る。代替的には、ホストシステムが、プログラムアセットまたはホスト出力を生成し、それらを処理及び/または利用のためにネットワークを介してリモートシステムに送信し得る。エミュレーションを実施するホストシステムの場合、対象システムコードは、ホストシステムによって変換されてもよく、次いで、変換されたコードが実行されてもよい。実行中、ホストシステムは、ホストシステムの出力間で同期を維持するために、ホストシステムが命令を処理101する速度を低下させてもよい。例えば、プログラムの音声及び映像は、対象上で同期され得るが、そのプログラムがホストシステムの最高速度でエミュレートされるとき、ホストシステム上では音声が映像よりも早く進行し、元のプログラムがこの差を考慮するように設計されていなかったために、同期が失われることとなる。同様に、ホストシステムの最高速度でホストシステム上において動作するときに、ユーザが予期しないやり方でプログラムに挙動させる対象システムについて、プロセッサ速度がプログラム内の映像または音声の要素に依存することがある。これらの問題は全て、システムがエミュレーションを処理する速度を低下させない限り、ホストシステム上でのエミュレーションの品質を低下させる。したがって、エミュレーションの品質の損失を回避するために、ホストシステムは、エミュレートされた対象システムの速度で、エミュレートされたアセットの処理とホスト出力の生成とを同期させる。この妥協の結果として、ホストシステムは、より新しく、より高性能なデバイスであるにもかかわらず、対象システムプログラムを実行することにおいていかなる明白な改良も、エンドユーザに提供しない場合がある。
ホスト上で対象システムプログラムの改良された性能を実現するために、ホストシステムは、図1に示される処理の選択的加速のための方法を実施する。ホストシステムは、102において示されるように、対象システムのエミュレーションとの、エミュレートされたプログラムアセットの処理の同期の必要性が減少したときに検出し得る。エミュレーションの必要性の低下によって特徴づけられ得る、エミュレーション中のいくつかの状況が存在する。多くのそのような状況の共通特徴は、エミュレートされたプログラムアセットの処理とホスト出力の生成との間の同期のレベルの低下または完全な欠如によって、ユーザエクスペリエンスが影響を受けないか、または拡張すらされるということである。このような状況のいくつかの限定的でない実施例は、音声、映像、または触覚の出力が、エミュレーションの他の態様または互いに同期される必要がない状況を含む。
限定ではなく実施例として、ある実施態様において、102における、エミュレートされたプログラムアセットを処理することとホスト出力との同期の必要性の低下を検出することが、プリロードされた音声成分及び映像成分を有するプリロードされたミニゲームを検出することを含み得る。そのような検出は、ミニゲームのロードの加速をトリガするために使用されてもよい。例えば、ロード画面ミニゲーム(即ち、別のアプリケーションロード時にプレイ可能なミニゲーム)は、見えないアセット準備を示す一意に識別可能な挙動について、エミュレートされたプログラムメモリサブシステムをモニタリングすることによって、識別され得る。ロード画面ミニゲームに特有であり得る挙動の実施例は、大きなアセットを映像メモリ内に、映像サブシステムによる即時使用なしに、ロードすることである。そのような未使用割り当ての反復パターンは、バックグラウンドローディングが発生すること、及びユーザによって観測される挙動がミニゲームまたはアニメ化されたロード画面であることを強く示す。アセット割り当てサイズ、反復パターン、及び即時使用を判断するための発見的基準は、エミュレートされた対象アーキテクチャに従って変化し得る。
同期の必要性の低下が検出される場合に、ホストシステムは、103において示されるように、対象システムのエミュレーションとの同期をロック解除してもよく、104において示されるように、エミュレートされたプログラムアセットの処理を加速してもよい。
ホストシステムが同期をロック解除し得るかどうかを検出するために、ホストは、図2に示されるような出力検出プロセス200を実施し得る。示される実施例において、出力検出プロセスは、音声202の検出と映像201の検出との間で分離され得る。
映像201の検出について、システムは、表示出力が、ブラックまたはブランクであるかどうかを最初に検出203し得る。代替的には、ホストシステムは、エミュレートされたプログラムが、画像を画面に出力するようにホストシステムに要求するかどうかを検出203する。画像出力が検出される場合、システムは、出力をモニタリングして、要求される出力が静止であるどうかを検出204し得る。例えば、ホストシステムは、特定の期間にわたる変化について映像出力をモニタリングしてもよく、変化が見つからない場合、ホストシステムは、画面が静止であると判断204する。代替的には、ホストシステムは、エミュレートされたプログラムが静止画面の出力を必要とするかどうかをモニタリング204し得る。静止画面が検出されない場合、ホストシステムは、エミュレートされたプログラムアセットをモニタリングして、映像出力が既にメモリにロードされているかどうかを判断205してもよい。映像出力がメモリ内にプリロードされていると、ホストシステムが検出する場合、ホストシステムは、映像の任意の追加処理が必要とされるかどうかをさらに判断してもよい。他の実施形態において、ホストシステムが、即時使用されない、システムまたはGPUメモリへの反復した大量のメモリ割り当てを検出する場合、ホストシステムは、映像の処理を加速してもよい。プリロードされた映像は、即時使用される単一の、または反復するメモリ割り当てとして検出されてもよい。大量のメモリ割り当ては、システムにより自動的に、またはアプリケーションに依存してユーザによって定義され得ると理解されるべきである。即時使用についての閾値は、アプリケーション、システムアーキテクチャなどに依存して変化し得る。
上記ステップの間、ホストシステムが、表示出力203、または静止出力204、またはプリロードされた映像シーケンス205がないと判断する場合、システムは、映像アセットを処理することの同期をロック解除103する。映像アセットの同期は、音声と映像との間であってもよい。代替的には、同期は、エミュレートされた対象システムの処理クロック速度と映像アセットの処理との間であってもよい。例えば、エミュレートされたプログラムは、対象システムとは異なるクロック速度で処理されるときに、ユーザが知覚する望ましくない挙動を生成する、プロセッサのクロック速度依存のアセットを含んでもよい。限定ではなく実施例として、ユーザが知覚する望ましくない挙動は、ビデオゲームにおいて、キャラクタが、予想よりもかなり速く画面を横切って移動することであってもよい。別の実施形態において、同期は、ホストシステム上での映像アセットの処理と、リモートシステム上でネットワークを介して動作するエミュレータとの間であってもよい。言い換えると、ホストシステムは、ネットワークを介して動作するサーバから、エミュレートされたプログラムアセットを受信していてもよい。サーバは、ホストシステムに映像アセットを送信するとすぐに、映像アセット上のプロセスを実行し、結果を表示デバイスに出力してもよい。本開示の態様によれば、システムのユーザが、映像データの処理の加速に起因するプログラム挙動の変化を検出しない時間の間に、ホストシステムは、映像アセットの処理の同期をロック解除103する。限定ではなく実施例として、ホストシステムは、同期をロック解除103してもよく、エミュレートされた対象システムの速度よりも速いクロック速度で、エミュレートされた映像アセットを処理することによって、映像アセットの処理を加速104してもよい。別の実施形態において、ホストシステムは、同期をロック解除103してもよく、エミュレートされた音声アセットの再生レートよりも速いレートで、エミュレートされた映像アセットを処理することによって、処理を加速104してもよい。同様に、ホストシステムは、同期をロック解除103し、エミュレートされたアセットをネットワークを介して送信するリモートエミュレータよりも速いレートで、エミュレートされた映像アセットをホストシステム上で処理することによって、エミュレートされた映像アセットの処理を加速104し得る。
ホストシステムがプリロードされた映像シーケンスを検出しない場合、またはプリロードされた映像シーケンスに対してより多くの処理が必要とされる場合、エミュレートされた映像アセットの処理は、対象システム206のエミュレーションと同期されたままである。映像アセットについて論じられたが、用語は、映像に限定されず、本明細書で使用されるように、画面上に表示された画像だけでなく、画像レンダリング用のデータまたはシミュレーション用の物理学データなども指してもよい。
音声202の検出について、ホストシステムは、スピーカに出力される何らかの音が存在するかどうかを最初に検出207してもよい。代替的には、ホストシステムは、エミュレートされた音声アセットをモニタリングして、音声出力が必要であるかどうかを判断してもよい。音声出力が必要である場合、ホストシステムは、音声出力が閾値を下回るどうかを判断208してもよい。音声出力が閾値を下回らない場合、ホストシステムは、エミュレートされた音声アセットをモニタリングして、音声が既にメモリにロードされているかどうかを判断209してもよい。音声がプリロードされているとホストシステムが判断する場合、ホストシステムは、音声に対して何らかの処理が行われる必要があるかどうかを、さらに検出してもよい。他の実施形態において、ホストシステムが、即時使用されない、システムまたはGPUメモリへの反復した大量のメモリ割り当てを検出する場合、ホストシステムは、音声の処理を加速してもよい。プリロードされた音声は、即時使用される単一の、または反復するメモリ割り当てとして検出されてもよい。大量のメモリ割り当ては、システムにより自動的に、またはアプリケーションに依存してユーザによって定義され得ると理解されるべきである。即時使用についての閾値は、アプリケーション、システムアーキテクチャなどに依存して変化し得る。
上記ステップの間、音声が全くない207か、または音声が閾値を下回る208か、または音声がメモリ内にプリロードされている209と判断される場合、ホストシステムは、音声アセットの処理をロック解除103する。映像に関して上述したように、音声処理は、映像のレートにロックされてもよい。映像と同様に、音声アセットは、エミュレートされた対象システムのクロック速度に依存してもよく、対象システムとは異なるクロック速度で処理されるときに、ユーザが知覚する望ましくない挙動をもたらし得る。限定ではなく実施例として、ユーザが知覚する望ましくない音声の挙動は、処理の加速に起因して、高いピッチで音楽が鳴ることであってもよい。別の実施形態において、同期は、ホストシステム上での音声アセットの処理と、リモートシステム上でネットワークを介して動作するエミュレータとの間であってもよい。言い換えると、ホストシステムは、ネットワークを介して動作するサーバから、エミュレートされた音声アセットを受信していてもよい。サーバが、ホストシステムに音声アセットを送信するとすぐに、ホストは、音声アセット上のプロセスを実行し、出力デバイス(例えば、スピーカ)に結果を出力してもよい。本開示の態様によれば、システムのユーザが、音声データの処理の加速に起因するプログラム挙動の変化を検出しない時間の間に、ホストシステムは、音声アセットの処理の同期をロック解除する。限定ではなく実施例として、ホストシステムは、同期をロック解除103してもよく、エミュレートされた対象システムの速度よりも速いクロック速度で、エミュレートされた音声アセットを処理することによって、音声アセットの処理を加速104してもよい。ホストシステムは、同期をロック解除103し、エミュレートされた映像アセットの処理よりも速いレートで、エミュレートされた音声アセットの処理を加速104してもよい。同様に、ホストシステムは、同期をロック解除103し、リモートエミュレータが対象システムをエミュレートし、エミュレートされたアセットをネットワークを介して送信するよりも速いレートで、音声アセットをホストシステム上で処理することによって、エミュレートされた音声アセットの処理を加速104し得る。
ホストシステムがプリロードされた音声を検出しない場合、またはプリロードされた音声206に対してより多くの処理が必要とされる場合、エミュレートされた音声アセットの処理は、対象システムのエミュレーションと同期101されたままである。音声アセットについて論じられたが、用語は、音声ファイルに限定されず、本明細書で使用されるように、音楽、文脈上の音、シミュレートされた環境内の対話からの音などを指してもよい。
本開示の態様によれば、ホストシステムが、処理を加速104している間、システムは、出力をモニタリング210して、処理を再同期105するかどうかを判断し得る。システムは、エミュレートされたプログラムアセットの処理をモニタリングして、エミュレートされたプログラムが外部デバイスに情報を出力することをシステムに要求するかどうかを判断211し得る。いくつかの実施形態において、エミュレートされたプログラムアセットの処理をモニタリングすることは、メモリ割り当てをモニタリングして、プリロードされた音声または映像の出力からの変化を検出するためにこれらのメモリブロックを使用するための大量のメモリブロックの割り当てからの変化を検出することを含み得る。限定ではなく実施例として、システムは、画面に送信される表示データの変化について、またはスピーカに送信される音データの変化について、またはコントローラに送信される色データ、またはネットワークを介して送信される通信データなどの他のデータの変化について、プログラムをモニタリングし得る。変化が全く検出されない場合、システムは、エミュレートされたプログラムアセット103の加速された処理を継続する。出力の変化が必要とされる場合、システムは、以前のレートでの処理に戻り、エミュレートされた対象システムと再同期105する。システムが一旦対象と再同期105すると、システムは、同期されたプログラムアセットの処理101に戻ってもよい。
本開示の態様によれば、同期のロック解除103は、映像及び音声の実施態様に限定されない。出力を検出する開示された方法200、及び処理を加速する開示された方法100は、例えば、ホストシステムに接続されたライトについての色情報、またはロボティックマニピュレータ制御情報などの、他の種類の出力に適用されてもよい。ロボディックマニピュレータ制御情報への実施態様の1つの可能な実施例は、対象システム命令が、旧式のロボティックデバイス用であり、ホストデバイスが、ある利点を提供できるか、または何らかの特定の機械的プロセスを完全に削除した場合である。そのような状況では、エミュレーションは、本明細書に記載された手法を用いて加速され得る。いくつかの状況において、そのような対象コード命令は、即座に削除されてもよい。さらに、命令が、スキップされず、旧式のロボット工学によって確立された実行確定レートに制限されなくてもよいように、本明細書に記載される技術は、対象命令が他の有意義な副作用を有する状況に適用されてもよい。
図3は、本開示の他の態様を示す。ホストシステム301は、ネットワークを介して動作するエミュレータ302と併せて、エミュレーションを加速する方法100を実施し得る。リモートエミュレータ302の場合、ホストシステムは、エミュレートされたプログラムアセット303をリモートエミュレータ302から受信し、エミュレートされたプログラムアセットを即時に処理し、結果106を外部デバイス305に出力し得る。したがって、説明される構成において、ホストシステム301上でのエミュレートされたプログラムアセットの処理が、リモートエミュレータ302上での対象システムのエミュレーションと同期され得る。ホストシステム上でのエミュレートされたプログラムの動作の改良を実現するために、ホストシステム301は、プログラムアセットの加速されたストリーミング107を含む、エミュレーションの加速の方法100を実施し得る。ホストシステム301は、エミュレートされたプログラムアセット101または104の処理についての情報を含む、フィードバック304をリモートエミュレータ302に提供し得る。したがって、エミュレータは、ホストシステム上でのエミュレートされたプログラムアセットの処理について通知されたままであってもよく、ホストシステムがエミュレータ302上での対象システムのエミュレーションと再同期104するときに、この情報を利用してもよい。
他の実施形態において、ホストシステム301が、エミュレートされたプログラムアセットの処理の同期をロック解除103し得ることを検出200するときに、ホストシステムは、フィードバック304を通してリモートエミュレータに通知してもよい。これに応じて、リモートエミュレータは、エミュレートされたプログラムアセットがホストシステム107に送信307されるレートで加速し得る。加速したレートでホストシステム301に送信307されるエミュレートされたプログラムアセットは、さらなる処理のためのホストシステムのバッファを埋めてもよい。代替的には、加速されたレート107で送信307されたプログラムアセットは、ホストシステム301上で行われている加速された処理104に従って、即時に処理されてもよい。このプロセスの間、ホストシステムは、エミュレートされたプログラムアセットが多すぎてホストシステムに送信されず、バッファオーバフロー状態をもたらすことを確実にするように、リモートエミュレータ302にフィードバック304を送信し続けてもよい。同様に、ホストシステム301は、バッファアンダーフローまたはストーリングを防止するために、追加のエミュレートされたプログラムアセットが即時に必要とされることを示す、フィードバック304をリモートエミュレータ302に送信し得る。追加的に、フィードバック報告304は、エミュレートされたプログラムアセットの加速された処理中に、不正検出または他のレート依存プロセスを一時停止するために、リモートエミュレータに通知してもよい。
ホストシステム301が、エミュレートされたプログラムにより出力が必要であると判断すると、ホストシステム301は、エミュレータ上での対象システムのエミュレーションを、ホストシステム301上でのエミュレートされたアセットの処理と再同期105させるために、フィードバック304をリモートエミュレータ302に送信し得る。
図4に示されるブロック図は、概略的に、リモートエミュレーションの特定の状況内の本開示のある態様を示す。この実施例において、エミュレータ407は、ネットワーク460を介してホストシステム402によってアクセスされ得る。ホストシステム402は、ネットワーク460を介して代替リモートエミュレータ407(本明細書においてリモートエミュレータと呼ばれる)にアクセスし得る。エミュレータ407は、互いに同一であってもよく、または、それらは、一意のレガシーゲーム406を含む一意のレガシープログラム406をエミュレートするようにそれぞれがプログラムされてもよい。追加的には、エミュレータ407は、ホストシステム402内に含まれてもよく、内部システムバス450'を介してホストシステムと直接通信してもよい。
代替的には、対象システムのエミュレーションは、全体的にホストシステム402上で行われ得る。この場合、レガシープログラムは、ホストシステム402のメモリ436にロードされてもよく、CPU431は、エミュレーションプログラム433を実行する。
ホストシステム402は、中央処理装置(CPU)431を含み得る。実施例として、CPU431は、1つまたは複数のプロセッサを含んでもよく、1つまたは複数のプロセッサが、例えば、デュアルコア、クアッドコア、マルチコア、またはセルプロセッサアーキテクチャに従って構成されてもよい。ホストシステム402は、メモリ432(例えば、RAM、DRAM、ROMなど)も含んでもよい。CPU431は、プロセス制御プログラム433を実行してもよく、プロセス制御プログラム433の一部が、メモリ432に記憶されてもよい。ホストシステム402は、入力/出力(I/O)回路441、電源(P/S)442、クロック(CLK)443、及びキャッシュ444などの、周知の支援回路440も含んでもよい。ホストシステム402は、任意選択で、プログラム及び/またはデータを記憶するための、ディスクドライブ、CD−ROMドライブ、テープドライブなどの大容量記憶デバイス434を含んでもよい。ホストシステム402は、また、任意選択で、ホストシステム402とホストシステム402への直接アクセスを要求するユーザとの間の対話を容易にするために、表示ユニット437及びユーザインタフェースユニット438を含んでもよい。表示ユニット437は、文字、数字、またはグラフィカルシンボルを表示する陰極線管(CRT)またはフラットパネルスクリーンの形式であってもよい。ユーザインタフェースユニット438は、キーボード、マウス、ジョイスティック、ライトペン、または他のデバイスを含んでもよい。コントローラ445は、I/O回路441を通してホストシステム402に接続されてもよく、または、ホストシステム402に直接統合されてもよい。コントローラ445は、ホストシステム402とユーザとの間の対話を容易にし得る。コントローラ445は、キーボード、マウス、ジョイスティック、ライトペン、手持ちコントローラ、または他のデバイスを含んでもよい。コントローラ445は、また、触覚レスポンス446を生成することが可能であってもよい。限定ではなく実施例として、触覚レスポンス446は、振動、または接触感覚に対応する任意の他のフィードバックであってもよい。ホストシステム402は、Wi−Fi(登録商標)、イーサネット(登録商標)ポート、または他の通信方法の使用を可能にするように構成される、ネットワークインタフェース439を含んでもよい。
ネットワークインタフェース439は、電子通信ネットワーク460を介した通信を容易にするために、適当なハードウェア、ソフトウェア、ファームウェア、またはこれらのうち2つ以上のある組み合わせを組み込み得る。ネットワークインタフェース439は、ローカルエリアネットワーク、及びインターネットなどのワイドエリアネットワークを介して有線または無線通信を実施するように構成され得る。ホストシステム402は、データ及び/またはファイルに対するリクエストを、ネットワーク460を介して1つまたは複数のデータパケットによって送信及び受信し得る。
前述のコンポーネントは、内部システムバス450を介して互いに信号を交換し得る。ホストシステム402は、本明細書に説明されるような本発明の実施形態を実施するコードを実行するときに専用コンピュータになる汎用コンピュータであってもよい。
エミュレータ407は、中央処理装置(CPU)431'を含み得る。実施例として、CPU431'は、1つまたは複数のプロセッサを含んでもよく、1つまたは複数のプロセッサは、例えば、デュアルコア、クアッドコア、マルチコア、またはセルプロセッサアーキテクチャに従って構成されてもよい。エミュレータ407は、メモリ432'(例えば、RAM、DRAM、ROMなど)も含んでもよい。CPU431'は、プロセス制御プログラム433'を実行してもよく、プロセス制御プログラム433'の一部が、メモリ432'に記憶されてもよい。エミュレータ407は、入力/出力(I/O)回路441'、電源(P/S)442'、クロック(CLK)443'、及びキャッシュ444'などの、周知の支援回路440'も含んでもよい。エミュレータ407は、任意選択で、プログラム及び/またはデータを記憶するための、ディスクドライブ、CD−ROMドライブ、テープドライブなどの大容量記憶デバイス434'を含んでもよい。エミュレータ407は、また、任意選択で、エミュレータ407とエミュレータ407への直接アクセスを要求するユーザとの間の対話を容易にするために、表示デバイス437'及びユーザインタフェースユニット438'を含んでもよい。限定ではなく実施例として、ホストシステムまたはエンジニア402は、所望のレガシープログラム406を適切にエミュレートするように、または追加ケイパビリティをレガシープログラム406へ追加するように、エミュレータ407をプログラムするために、エミュレータ407への直接アクセスを必要とし得る。表示デバイス437'は、文字、数字、またはグラフィカルシンボルを表示する陰極線管(CRT)またはフラットパネルスクリーンの形式であってもよい。ユーザインタフェースユニット438'は、キーボード、マウス、ジョイスティック、ライトペン、または他のデバイスを含んでもよい。エミュレータ407は、Wi−Fi(登録商標)、イーサネット(登録商標)ポート、または他の通信方法の使用を可能にするように構成される、ネットワークインタフェース439'を含んでもよい。
ネットワークインタフェース439'は、電子通信ネットワーク460を介した通信を容易にするために、適当なハードウェア、ソフトウェア、ファームウェア、またはこれらのうち2つ以上のある組み合わせを組み込み得る。ネットワークインタフェース439'は、ローカルエリアネットワーク、及びインターネットなどのワイドエリアネットワークを介して有線または無線通信を実施するように構成され得る。エミュレータ407は、データ及び/またはファイルに対するリクエストを、ネットワーク460を介して1つまたは複数のデータパケットによって送信及び受信し得る。
前述のコンポーネントは、内部システムバス450'を介して互いに信号を交換し得る。エミュレータ407は、本明細書に説明されるような本発明の実施形態を実施するコードを実行するときに専用コンピュータになる汎用コンピュータであってもよい。
エミュレータ407は、内部システムバス450'を通したエミュレーションのためにホストシステム402によって選択されているレガシープログラム406にアクセスし得る。エミュレータに記憶される1つより多くのレガシープログラム406が存在してもよい。レガシープログラムは、また、メモリ432'または大容量記憶デバイス434'に記憶されてもよい。追加的には、1つまたは複数のレガシープログラム406は、ネットワーク460を介してエミュレータ407にアクセス可能なリモート位置に記憶されてもよい。各レガシーゲーム406は、ゲームコード408を含む。レガシーゲーム106がエミュレートされるとき、ゲームコード408は、レガシーゲームデータ409を生成する。
実施例として、レガシープログラム406は、対象プラットフォームと互換性がない任意のプログラムであってもよい。限定ではなく実施例として、レガシープログラム406は、Sony Computer EntertainmentのPlayStationコンソール上でプレイされるように設計されていてもよいが、対象プラットフォームは、家庭用コンピュータである。実施例として、レガシーゲーム406は、PlayStation2コンソール上でプレイされるように設計されていてもよいが、対象プラットフォームは、PlayStation3コンソールである。さらに、限定ではなく実施例として、レガシーゲーム406は、PlayStationコンソール上でプレイされるように設計されていてもよいが、対象プラットフォームは、Sony Computer EntertainmentからのPlayStation Vitaなどの手持ちコンソールである。
上記は、本発明の好適な実施形態の完全な説明であるが、多様な代替物、修正物、及び均等物を使用することが可能である。したがって、本発明の範囲は、上記説明を参照することなく判断されるべきであるが、その代わりに、添付の特許請求の範囲を、その均等物の全範囲とともに参照して判断されるべきである。本明細書で説明されたいかなる特徴も、好適か否かに関わらず、本明細書で説明されたいかなる他の特徴とも、好適か否かに関わらず組み合わされてもよい。以下の特許請求の範囲において、不定冠詞「A」または「An」は、そうでないと明示的に述べられている場合を除いて、冠詞に続く品目のうちの1つまたは複数の量をいう。添付の特許請求の範囲は、そのような限定が句「means for」を使用して所与の請求項において明示的に列挙されない限り、ミーンズプラスファンクション限定を含むものとして解釈されるべきでない。

Claims (20)

  1. 対象システムがホストシステムよりも遅く、前記対象システムのための1つまたは複数のエミュレートされたプログラムアセットが、前記ホストシステムの1つまたは複数のホスト出力と同期される、前記ホストシステム上での前記対象システムのためのプログラムの同期エミュレーションにおける、前記ホストシステム上でのエミュレートされたプログラムアセットの処理の選択的加速のための方法であって、前記方法が、
    a)前記ホストシステム上で、前記同期されエミュレートされたプログラムアセットを処理することと、
    b)前記エミュレートされたプログラムアセットとホスト出力との間の同期の必要性の低下を検出することと、
    c)前記1つまたは複数のエミュレートされたプログラムアセット及び前記1つまたは複数のホスト出力の処理の同期をロック解除することと、
    d)同期がロック解除された、前記1つまたは複数のエミュレートされたプログラムアセットの前記ホストシステム上の処理を加速することと、
    を含む、方法。
  2. e)同期されたホスト出力の切迫した必要性を検出することと、
    f)エミュレートされたプログラムアセット及び前記ホスト出力の処理を再同期することと、
    をさらに含む、請求項1に記載の方法。
  3. d)において、エミュレートされたプログラムアセットの前記加速された処理が、加速されたレートで、エミュレートされたプログラムアセットをネットワークを介して受信することをさらに含む、請求項2に記載の方法。
  4. エミュレートされたプログラムアセットを前記ネットワークを介して受信することが、同期をロック解除するために前記ネットワークを介して信号を送信することをさらに含み、f)が、同期されたエミュレーションを再開するために前記ネットワークを介してフィードバックを送信することをさらに含む、請求項3に記載の方法。
  5. b)において、エミュレートされたプログラムアセットを処理することと前記ホスト出力との同期の必要性の低下を検出することが、減少した映像出力を検出することを含む、請求項1に記載の方法。
  6. 前記減少した映像出力が、ブランクまたはブラック画面である、請求項5に記載の方法。
  7. 前記減少した映像出力が、静止画像である、請求項5に記載の方法。
  8. 前記減少した映像出力が、プリロードされた映像シーケンスまたはループである、請求項5に記載の方法。
  9. c)において同期をロック解除することが、映像成分に対してのみ実行され、d)において処理を加速することが、映像成分に対してのみ実行される、請求項5に記載の方法。
  10. b)において、エミュレートされたプログラムアセットを処理することとホスト出力との同期の必要性の低下を検出することが、減少した音声出力を検出することを含む、請求項1に記載の方法。
  11. 減少した音声出力には、音声信号がない、請求項10に記載の方法。
  12. 減少した音声出力が、閾値を下回る音声信号である、請求項10に記載の方法。
  13. 減少した音声出力が、プリロードされた音声シーケンスまたはループである、請求項10に記載の方法。
  14. c)において同期をロック解除することが、音声成分に対してのみ実行され、d)において処理を加速することが、音声成分に対してのみ実行される、請求項10に記載の方法。
  15. b)において、エミュレートされたプログラムアセットを処理することと前記ホスト出力との同期の必要性の低下を検出することが、プリロードされた音声成分及び映像成分を有するプリロードされたミニゲームを検出することを含む、請求項1に記載の方法。
  16. e)において、ホスト出力の切迫した必要性を検出することが、コントローラへの通信出力を検出することを含む、請求項2に記載の方法。
  17. e)において、ホスト出力の切迫した必要性を検出することが、ネットワーク上のサーバとの通信出力を検出することを含む、請求項2に記載の方法。
  18. e)において、ホスト出力の切迫した必要性を検出することが、表示デバイスとの通信出力を検出することを含む、請求項2に記載の方法。
  19. e)において、ホスト出力の切迫した必要性を検出することが、音声出力デバイスへの通信出力を検出することを含む、請求項2に記載の方法。
  20. 実行時に、ホストシステムの1つまたは複数のホスト出力に同期される、エミュレートされた1つまたは複数のプログラムアセットの処理の選択的加速のための方法を、コンピュータシステムに実施させる実行可能命令を含む非一時的コンピュータ可読媒体であって、前記方法が、
    a)前記ホストシステム上で、前記同期されエミュレートされたプログラムアセットを処理することと、
    b)前記1つまたは複数のエミュレートされたプログラムアセットの処理の、ホスト出力との同期の必要性の低下を検出することと、
    c)前記1つまたは複数のエミュレートされたプログラムアセットと前記1つまたは複数のホスト出力との同期をロック解除することと、
    d)同期がロック解除された、前記1つまたは複数のプログラムアセットのうちのエミュレートされたプログラムアセットの前記ホストシステム上での処理を加速することと、
    を含む、非一時的コンピュータ可読媒体。
JP2019565381A 2017-05-26 2018-04-24 エミュレーションの選択的加速 Active JP6824446B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/607,302 2017-05-26
US15/607,302 US10783008B2 (en) 2017-05-26 2017-05-26 Selective acceleration of emulation
PCT/US2018/029207 WO2018217377A1 (en) 2010-12-16 2018-04-24 Selective acceleration of emulation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2021002726A Division JP6992202B2 (ja) 2017-05-26 2021-01-12 エミュレーションの選択的加速

Publications (2)

Publication Number Publication Date
JP2020522065A true JP2020522065A (ja) 2020-07-27
JP6824446B2 JP6824446B2 (ja) 2021-02-03

Family

ID=64401592

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019565381A Active JP6824446B2 (ja) 2017-05-26 2018-04-24 エミュレーションの選択的加速
JP2021002726A Active JP6992202B2 (ja) 2017-05-26 2021-01-12 エミュレーションの選択的加速

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021002726A Active JP6992202B2 (ja) 2017-05-26 2021-01-12 エミュレーションの選択的加速

Country Status (4)

Country Link
US (1) US10783008B2 (ja)
EP (1) EP3630318B1 (ja)
JP (2) JP6824446B2 (ja)
CN (1) CN111656746B (ja)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223141B1 (en) * 1998-07-14 2001-04-24 Nec Usa, Inc. Speeding up levelized compiled code simulation using netlist transformations
AU2001238274A1 (en) 2000-02-14 2001-08-27 Geophoenix, Inc. Methods and apparatus for viewing information in virtual space
US9849372B2 (en) 2012-09-28 2017-12-26 Sony Interactive Entertainment Inc. Method and apparatus for improving efficiency without increasing latency in emulation of a legacy application title
US20050081218A1 (en) 2003-08-26 2005-04-14 Acott Troy Steven Configurable simulation of virtual machine behavior
US7657829B2 (en) * 2005-01-20 2010-02-02 Microsoft Corporation Audio and video buffer synchronization based on actual output feedback
US7685593B2 (en) 2005-05-12 2010-03-23 Microsoft Corporation Systems and methods for supporting multiple gaming console emulation environments
CN101507315B (zh) * 2006-06-26 2012-08-08 高通股份有限公司 用于分析及测试的系统确定仿真器
US9717989B2 (en) 2012-06-29 2017-08-01 Sony Interactive Entertainment Inc. Adding triggers to cloud-based emulated games
US9694276B2 (en) 2012-06-29 2017-07-04 Sony Interactive Entertainment Inc. Pre-loading translated code in cloud based emulated applications
US9248374B2 (en) 2012-06-29 2016-02-02 Sony Computer Entertainment Inc. Replay and resumption of suspended game
US9925468B2 (en) * 2012-06-29 2018-03-27 Sony Interactive Entertainment Inc. Suspending state of cloud-based legacy applications
US20140092087A1 (en) 2012-09-28 2014-04-03 Takayuki Kazama Adaptive load balancing in software emulation of gpu hardware
US9707476B2 (en) 2012-09-28 2017-07-18 Sony Interactive Entertainment Inc. Method for creating a mini-game
RU2514142C1 (ru) * 2012-12-25 2014-04-27 Закрытое акционерное общество "Лаборатория Касперского" Способ повышения эффективности работы аппаратного ускорения эмуляции приложений
US11185783B2 (en) 2013-03-14 2021-11-30 Sony Interactive Entertainment Inc. Controller emulation for cloud gaming
US9536461B2 (en) 2014-07-01 2017-01-03 Sony Interactive Entertainment Inc. Method and system for use in uprendering multimedia content
JP2016073360A (ja) * 2014-10-02 2016-05-12 株式会社サイバーガジェットホールディングス 新タイプのチップセットを旧タイプのテレビゲームカートリッジに使用する、ゲーム装置、ゲームシステムおよび方法
JP6615551B2 (ja) * 2015-09-24 2019-12-04 株式会社東芝 シミュレーション装置とそのモジュール、シミュレーション方法及びプログラム

Also Published As

Publication number Publication date
EP3630318A4 (en) 2021-02-24
CN111656746A (zh) 2020-09-11
JP6824446B2 (ja) 2021-02-03
US20180341531A1 (en) 2018-11-29
US10783008B2 (en) 2020-09-22
EP3630318B1 (en) 2023-10-11
JP2021073568A (ja) 2021-05-13
CN111656746B (zh) 2022-07-26
JP6992202B2 (ja) 2022-01-13
EP3630318A1 (en) 2020-04-08

Similar Documents

Publication Publication Date Title
US10771565B2 (en) Sending application input commands over a network
US9248374B2 (en) Replay and resumption of suspended game
US11724205B2 (en) Suspending state of cloud-based legacy applications
US9717989B2 (en) Adding triggers to cloud-based emulated games
US9656163B2 (en) Haptic enhancements for emulated video game not originally designed with haptic capabilities
US9658776B2 (en) Compression of state information for data transfer over cloud-based networks
US11752426B2 (en) Peer-to-peer multiplayer cloud gaming architecture
US20220001282A1 (en) Information processing program, information processing method, and information processing device
US9497238B1 (en) Application control translation
JP6992202B2 (ja) エミュレーションの選択的加速
WO2018217377A1 (en) Selective acceleration of emulation
WO2021181454A1 (ja) 画像処理システム、プログラムおよび画像処理方法
US9384276B1 (en) Reducing latency for remotely executed applications
US10293250B2 (en) Game device, game system, control method, and control program
KR20150052208A (ko) 디스플레이 제어 방법 및 디바이스
US20240009555A1 (en) Game platform using zero-copy data transfer
Zhuo A Performance Comparison of VMware GPU Virtualization Techniques in Cloud Gaming

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200326

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201118

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210112

R150 Certificate of patent or registration of utility model

Ref document number: 6824446

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250