【手続補正書】
【提出日】平成27年8月24日(2015.8.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
サーバ・デバイスの外部にあるデバイスに存在するグラフィック処理ユニット（ＧＰＵ）によって実行されるべきアプリケーションを、前記サーバ・デバイスによって受信することと、
前記アプリケーションが前記ＧＰＵにおいて非効率的に動作するであろうことを前記サーバ・デバイスによって判定することと、
前記アプリケーションが前記ＧＰＵにおいて非効率的に動作するであろうことを判定することに基づいて、前記サーバ・デバイスによって、前記ＧＰＵにおいて、前記受信したアプリケーションよりもむしろ効率的に動作するであろう、修正されたバージョンのアプリケーションを生成することと、
前記サーバ・デバイスにおける前記修正されたバージョンのアプリケーションの実行中における前記修正されたバージョンのアプリケーションの分析を前記サーバ・デバイスによって実行することと、
前記分析を実行することは、
仮想ＧＰＵモデルを実行することと、
前記仮想ＧＰＵモデルにおいて前記修正されたバージョンのアプリケーションを実行することと、
前記仮想ＧＰＵモデルにおける前記修正されたバージョンのアプリケーションの実行中、前記仮想ＧＰＵモデルの機能をモニタすることと、を備え、
前記分析に基づいて、前記修正されたバージョンのアプリケーションが、１または複数のパフォーマンス基準を満足しているか否かを判定することと、
前記アプリケーションが、前記１または複数のパフォーマンス基準を満足しているのであれば、前記アプリケーションの前記修正されたコードと前記アプリケーションの検証とを前記デバイスへ送信することと、
を備える方法。
【請求項２】
前記パフォーマンス基準は、前記アプリケーションが、悪意のあるコードではないとの判定と、前記アプリケーションが、エラーのある傾向にないとの判定とのうちの少なくとも１つを備える、請求項１に記載の方法。
【請求項３】
前記パフォーマンス基準は、前記アプリケーションのコードが、既知のウィルスのコードを含んでいないとの判定と、前記アプリケーションのコードのコンパイル中にエラーが発見されないと判定されたとの判定と、前記アプリケーションの実行中にアウト・オブ・バウンズのメモリ・アクセスがないと判定されたとの判定と、前記アプリケーションの実行中に前記デバイスのシステム・バスがオーバロードしていないと判定されたとの判定と、前記アプリケーションのタスクがしきい実行時間内に実行を完了したとの判定と、前記アプリケーションのタスクが少なくともしきい実行レートで実行しているとの判定と、のうちの１または複数を含む、請求項１に記載の方法。
【請求項４】
少なくとも、前記アプリケーションのコードを既知のウィルスのコードと比較することと、前記アプリケーションのコードのコンパイル中に何らかのエラーが発見されたか否かを判定することとによって、コンパイル前およびコンパイル中に、前記アプリケーションの分析を実行することをさらに備える、請求項１に記載の方法。
【請求項５】
仮想デバイス・モデルを実行することと、
前記デバイス・ＧＰＵモデルにおける前記アプリケーションの実行中、前記仮想デバイス・モデルの機能をモニタすることと、
をさらに備える請求項１に記載の方法。
【請求項６】
前記仮想ＧＰＵモデルにおいて前記アプリケーションを実行することは、
前記仮想ＧＰＵモデルにおいて実行しているアプリケーションに、ＧＰＵ入力を入力すること
を備える、請求項１に記載の方法。
【請求項７】
前記実行されたアプリケーションによって実行される機能をモニタすること、をさらに備える請求項１に記載の方法。
【請求項８】
前記機能をモニタすることは、
前記実行されたアプリケーションによるメモリ・アクセスをモニタすることと、
実行のレートをモニタすることと、
実行時間をモニタすることと、
のうちの１または複数を備える、請求項７に記載の方法。
【請求項９】
前記アプリケーションを受信することはさらに、前記サーバ・デバイスの外部にある前記デバイスに存在するＧＰＵの識別情報を受信することを備え、方法はさらに、
前記ＧＰＵの前記受信された識別情報に基づいて、複数の仮想ＧＰＵモデルのうちの特定の仮想ＧＰＵモデルを識別することを備え、前記仮想ＧＰＵモデルを実行することは、前記識別された特定の仮想ＧＰＵモデルを実行することを備え、前記仮想ＧＰＵモデルにおいて、前記修正されたバージョンのアプリケーションを実行することは、前記識別された特定の仮想ＧＰＵモデルにおいて、前記修正されたバージョンのアプリケーションを実行することを備える請求項１に記載の方法。
【請求項１０】
前記修正されたバージョンのアプリケーションを生成することは、前記ＧＰＵの受信された識別情報に基づいて、前記アプリケーションのコードを修正することをさらに備える、請求項９に記載の方法。
【請求項１１】
前記アプリケーションをハードウェア・エミュレーション・ボードにおいて実行することと、
前記実行中に、前記ハードウェア・エミュレーション・ボードの機能をモニタすることと
をさらに備え、
前記アプリケーションが、１または複数のパフォーマンス基準を満足するか否かを判定することは、前記アプリケーションが、前記モニタすることのうちの少なくとも１つに基づいて、１または複数のパフォーマンス基準を満足するか否かを判定することを備える、請求項１に記載の方法。
【請求項１２】
前記アプリケーションを受信することは、前記アプリケーションのソース・コードおよび中間コードのうちの少なくとも１つを受信することを備え、
前記方法はさらに、
前記アプリケーションのオブジェクト・コードを生成するために、前記アプリケーションのソース・コードおよび中間コードのうちの少なくとも１つをコンパイルすることと、
前記アプリケーションのオブジェクト・コードを前記デバイスへ送信することと、
を備える請求項１に記載の方法。
【請求項１３】
装置であって、
メモリと、
エミュレータ・ユニットとを備え、
前記エミュレータ・ユニットは、
前記装置の外部にあるデバイスに存在するグラフィック処理ユニット（ＧＰＵ）によって実行されるべきアプリケーションを受信し、
前記アプリケーションが前記ＧＰＵにおいて非効率的に動作するであろうことを判定し、
前記アプリケーションが前記ＧＰＵにおいて非効率的に動作するであろうことを判定することに基づいて、前記ＧＰＵにおいて、前記受信したアプリケーションよりも効率的に動作するであろう、修正されたバージョンのアプリケーションを生成し、
前記装置における前記修正されたバージョンのアプリケーションの実行中における前記修正されたバージョンのアプリケーションの分析を実行し、
実行中における前記修正されたバージョンのアプリケーションの分析を実行することにおいて、
前記メモリに格納された仮想ＧＰＵモデルを実行することと、
前記仮想ＧＰＵモデルにおいて前記修正されたバージョンのアプリケーションを実行することと、
前記仮想ＧＰＵモデルにおける前記修正されたバージョンのアプリケーションを実行する中、前記仮想ＧＰＵモデルの機能モニタすることと、を備え、
前記分析に基づいて、前記修正されたバージョンのアプリケーションが、１または複数のパフォーマンス基準を満足しているか否かを判定し、
前記アプリケーションが、前記１または複数のパフォーマンス基準を満足しているのであれば、前記アプリケーションの前記修正されたコードと前記アプリケーションの検証とを前記デバイスへ送信する、
ように構成された、装置。
【請求項１４】
前記パフォーマンス基準は、前記アプリケーションが、悪意のあるコードではないとの判定と、前記アプリケーションが、エラーのある傾向にないとの判定とのうちの少なくとも１つを備える、請求項１３に記載の装置。
【請求項１５】
前記パフォーマンス基準は、前記アプリケーションのコードが、既知のウィルスのコードを含んでいないとの判定と、前記アプリケーションのコードのコンパイル中にエラーが発見されないと判定されたとの判定と、前記アプリケーションの実行中にアウト・オブ・バウンズのメモリ・アクセスがないと判定されたとの判定と、前記アプリケーションの実行中に前記デバイスのシステム・バスがオーバロードしていないと判定されたとの判定と、前記アプリケーションのタスクがしきい実行時間内に実行を完了したとの判定と、前記アプリケーションのタスクが少なくともしきい実行レートで実行しているとの判定と、のうちの１または複数を含む、請求項１３に記載の装置。
【請求項１６】
前記エミュレータ・ユニットは、少なくとも、前記アプリケーションのコードを既知のウィルスのコードと比較することと、前記アプリケーションのコードのコンパイル中に何らかのエラーが発見されたか否かを判定することとによって、コンパイル前およびコンパイル中に、前記アプリケーションの分析を実行するように構成された、請求項１３に記載の装置。
【請求項１７】
前記エミュレータ・ユニットはさらに、
前記メモリに格納された仮想デバイス・モデルを実行し、
前記仮想ＧＰＵモデルにおけるアプリケーションの実行中に、前記仮想デバイス・モデルの機能をモニタする
ように構成された、請求項１３に記載の装置。
【請求項１８】
前記エミュレータ・ユニットは、前記仮想ＧＰＵモデルにおける前記修正されたバージョンのアプリケーションの実行中、前記仮想ＧＰＵモデルにおいて実行している前記修正されたバージョンのアプリケーションへ、前記メモリに格納されたＧＰＵ入力を入力する、請求項１３に記載の装置。
【請求項１９】
前記エミュレータ・ユニットはさらに、前記実行された修正されたバージョンのアプリケーションによって実行される機能をモニタするように構成された、請求項１３に記載の装置。
【請求項２０】
前記エミュレータ・ユニットは、前記実行された修正されたバージョンのアプリケーションによるメモリ・アクセス、実行のレート、および実行時間のうちの１または複数をモニタするように構成された、請求項１９に記載の装置。
【請求項２１】
前記エミュレータ・ユニットはさらに、
サーバ・デバイスの外部にある前記デバイスに存在するＧＰＵの識別情報を受信し、
前記ＧＰＵの前記受信された識別情報に基づいて、複数の仮想ＧＰＵモデルのうちの特定の仮想ＧＰＵモデルを識別するように構成され、
前記エミュレータ・ユニットは、前記識別された特定の仮想ＧＰＵモデルを少なくとも実行することによって、前記仮想ＧＰＵモデルを実行するように構成され、
前記エミュレータ・ユニットは、前記識別された特定の仮想ＧＰＵモデルにおいて、前記修正されたバージョンのアプリケーションを少なくとも実行することによって、前記仮想ＧＰＵモデルにおいて、前記修正されたバージョンのアプリケーションを実行する
ように構成された、請求項１３に記載の装置。
【請求項２２】
前記エミュレータ・ユニットはさらに、
前記ＧＰＵの前記受信された識別に基づいて、前記アプリケーションのコードを少なくとも修正することによって、前記修正されたバージョンのアプリケーションを生成する
ように構成された、請求項２１に記載の装置。
【請求項２３】
前記エミュレータ・ユニットは、ハードウェア・エミュレーション・ボードを備え、前記ハードウェア・エミュレーション・ボードは、
前記修正されたバージョンのアプリケーションの実行中に、前記アプリケーションの分析を実行するために、前記修正されたバージョンのアプリケーションを実行する、請求項１３に記載の装置。
【請求項２４】
前記エミュレータ・ユニットは、前記アプリケーションのソース・コードおよび中間コードのうちの少なくとも１つを受信し、
前記エミュレータ・ユニットはさらに、
前記修正されたバージョンのアプリケーションのオブジェクト・コードを生成するために、前記アプリケーションのソース・コードおよび中間コードのうちの少なくとも１つをコンパイルし、
前記修正されたバージョンのアプリケーションのオブジェクト・コードを前記デバイスへ送信する
ように構成された、請求項１３に記載の装置。
【請求項２５】
サーバ・デバイスであって、
メモリと、
前記サーバ・デバイスの外部にあるデバイスに存在するグラフィック処理ユニット（ＧＰＵ）によって実行されるべきアプリケーションを受信する手段と、
前記アプリケーションが前記ＧＰＵにおいて非効率的に動作するであろうことを判定する手段と、
前記アプリケーションが前記ＧＰＵにおいて非効率的に動作するであろうことを判定することに基づいて、前記ＧＰＵにおいて、前記受信したアプリケーションよりも効率的に動作するであろう、修正されたバージョンのアプリケーションを生成する手段と、
前記サーバ・デバイスにおける前記修正されたバージョンのアプリケーションの実行中における前記修正されたバージョンのアプリケーションの分析を実行する手段と、
前記分析を実行する前記手段は、
前記メモリにおいて仮想ＧＰＵモデルを実行する手段と、
前記仮想ＧＰＵモデルにおいて前記修正されたバージョンのアプリケーションを実行する手段と、
前記仮想ＧＰＵモデルにおける前記修正されたバージョンのアプリケーションの実行中、前記仮想ＧＰＵモデルの機能をモニタする手段と、を備え、
前記分析に基づいて、前記修正されたバージョンのアプリケーションが、１または複数のパフォーマンス基準を満足しているか否かを判定する手段と、
前記アプリケーションが、前記１または複数のパフォーマンス基準を満足しているのであれば、前記アプリケーションの前記修正されたコードと前記アプリケーションの検証とを前記デバイスへ送信する手段と、
を備えるサーバ・デバイス。
【請求項２６】
１または複数のプロセッサに対して、
サーバ・デバイスの外部にあるデバイスに存在するグラフィック処理ユニット（ＧＰＵ）によって実行されるべきアプリケーションを、前記サーバ・デバイスによって受信することと、
前記アプリケーションが前記ＧＰＵにおいて非効率的に動作するであろうことを前記サーバ・デバイスによって判定することと、
前記アプリケーションが前記ＧＰＵにおいて非効率的に動作するであろうことを判定することに基づいて、前記サーバ・デバイスによって、前記ＧＰＵにおいて、前記受信したアプリケーションよりもむしろ効率的に動作するであろう、修正されたバージョンのアプリケーションを生成することと、
前記サーバ・デバイスにおける前記修正されたバージョンのアプリケーションの実行中における前記修正されたバージョンのアプリケーションの分析を、前記サーバ・デバイスによって実行することと、前記分析を実行させる命令群は、前記１または複数のプロセッサに対して、
仮想ＧＰＵモデルを実行させ、
前記仮想ＧＰＵモデルにおいて前記修正されたバージョンのアプリケーションを実行させ、
前記仮想ＧＰＵモデルにおける前記修正されたバージョンのアプリケーションの実行中、前記仮想ＧＰＵモデルの機能をモニタさせ、
前記分析のうちの少なくとも１つに基づいて、前記修正されたバージョンのアプリケーションが、１または複数のパフォーマンス基準を満足しているか否かを判定することと、
前記アプリケーションが、前記１または複数のパフォーマンス基準を満足しているのであれば、前記アプリケーションの前記修正されたコードと前記アプリケーションの検証とを前記デバイスへ送信することと、
をさせる命令群を備えた非一時的なコンピュータ読取可能な記憶媒体。
【請求項２７】
方法であって、
デバイスのグラフィック処理ユニット（ＧＰＵ）によって実行されるべきアプリケーションを受信することと、
前記デバイスの識別されたＧＰＵと関連付けられた仮想ＧＰＵモデルにおける前記アプリケーションの検証のために、前記デバイスの外部にあるサーバ・デバイスへ、前記アプリケーションおよび前記ＧＰＵの識別情報を送信することと、
前記ＧＰＵにおいてより効率的に実行するであろう、修正されたバージョンの前記アプリケーションを、前記サーバ・デバイスから受信することと、
前記修正されたバージョンのアプリケーションが、前記ＧＰＵにおける実行のための１または複数の基準を満足していることを示す検証を、前記サーバ・デバイスから受信することと、
を備える方法。
【請求項２８】
前記受信した検証に基づいて、前記ＧＰＵにおいて前記修正されたバージョンのアプリケーションを実行すること、をさらに備える請求項２７に記載の方法。
【請求項２９】
前記修正されたバージョンのアプリケーションを受信することは、前記修正されたバージョンのアプリケーションのソース・コード、前記修正されたバージョンのアプリケーションの中間コード、および、前記修正されたバージョンのアプリケーションのコンパイルされたコードのうちの少なくとも１つを受信することを備え、
前記アプリケーションを送信することは、前記アプリケーションのソース・コード、前記アプリケーションの中間コード、および、前記アプリケーションのコンパイルされたコードのうちの少なくとも１つを送信することを備える、
請求項２７に記載の方法。
【請求項３０】
前記修正されたバージョンのアプリケーションを前記ＧＰＵにおいて実行すること
をさらに備える請求項２７に記載の方法。
【請求項３１】
前記アプリケーションを送信することは、前記アプリケーションのソース・コードおよび前記アプリケーションの中間コードのうちの少なくとも１つを送信することを備え、
前記修正されたバージョンのアプリケーションを受信することは、前記サーバ・デバイスからの前記修正されたバージョンのアプリケーションの、コンパイルされたオブジェクト・コードを受信することを備え、
前記方法はさらに、
前記修正されたバージョンのアプリケーションの、コンパイルされたオブジェクト・コードを、前記ＧＰＵにおいて実行すること
を備える、請求項２７に記載の方法。
【請求項３２】
前記サーバ・デバイスへ前記アプリケーションを送信することは、前記アプリーションを一度だけ前記サーバ・デバイスへ送信することを備え、
前記サーバ・デバイスから前記検証を受信することは、前記検証を、前記サーバ・デバイスから、一度だけ受信することを備える、請求項２７に記載の方法。
【請求項３３】
装置であって、
グラフィック処理ユニット（ＧＰＵ）と、
前記ＧＰＵによって実行されるべきアプリケーションを格納するように動作可能なデバイス・メモリと、
前記デバイスの識別されたＧＰＵと関連付けられた仮想ＧＰＵモデルにおける前記アプリケーションの検証のために、前記装置の外部にあるサーバ・デバイスへ前記アプリケーションおよび前記ＧＰＵの識別情報を送信し、
前記ＧＰＵにおいてより効率的に動作するであろう、修正されたバージョンのアプリケーションを、前記サーバ・デバイスから受信し、
前記修正されたバージョンのアプリケーションが、前記ＧＰＵにおける実行のための１または複数の基準を満足していることを示す検証を、前記サーバ・デバイスから受信する
ように構成されたプロセッサと、
を備える装置。
【請求項３４】
前記プロセッサはさらに、前記受信された検証に基づいて、前記修正されたバージョンのアプリケーションを実行するように前記ＧＰＵに対して指示するように構成され、
前記ＧＰＵは、前記プロセッサからの指示に応じて、前記アプリケーションを実行する
ように動作可能な、請求項３３に記載の装置。
【請求項３５】
前記プロセッサは、前記修正されたバージョンのアプリケーションのソース・コード、前記修正されたバージョンのアプリケーションの中間コード、および、前記修正されたバージョンのアプリケーションのコンパイルされたコードのうちの少なくとも１つを受信し、
前記プロセッサは、前記アプリケーションのソース・コード、前記アプリケーションの中間コード、および、前記アプリケーションのコンパイルされたコードのうちの少なくとも１つを送信する、請求項３３に記載の装置。
【請求項３６】
前記ＧＰＵは、前記修正されたバージョンのアプリケーションを実行するように構成された、請求項３３に記載の装置。
【請求項３７】
前記プロセッサは、前記アプリケーションのソース・コードおよび前記アプリケーションの中間コードのうちの少なくとも１つを送信し、
前記プロセッサは、前記サーバ・デバイスから、前記修正されたバージョンのアプリケーションの、コンパイルされたオブジェクト・コードを少なくとも受信することによって、前記修正されたバージョンのアプリケーションを受信するように構成され、
前記ＧＰＵは、前記修正されたバージョンのアプリケーションのコンパイルされたオブジェクト・コードを実行するように構成された、
請求項３３に記載の装置。
【請求項３８】
前記プロセッサは、前記アプリーションを一度だけ前記サーバ・デバイスへ送信し、前記プロセッサは、前記検証を、前記サーバ・デバイスから、一度だけ受信する、請求項３３に記載の装置。
【請求項３９】
デバイスであって、
グラフィック処理ユニット（ＧＰＵ）と、
前記ＧＰＵによって実行されるべきアプリケーションを受信する手段と、
前記デバイスの識別されたＧＰＵと関連付けられた仮想ＧＰＵモデルにおける前記アプリケーションの検証のために、前記デバイスの外部にあるサーバ・デバイスへ、前記アプリケーションおよび前記ＧＰＵの識別情報を送信する手段と、
前記ＧＰＵにおいてより効率的に動作するであろう、修正されたバージョンの前記アプリケーションを、前記サーバ・デバイスから受信する手段と、
前記修正されたバージョンのアプリケーションが、前記ＧＰＵにおける実行のための１または複数の基準を満足していることを示す検証を、前記サーバ・デバイスから受信する手段と、
を備えるデバイス。
【請求項４０】
１または複数のプロセッサに対して、
デバイスのグラフィック処理ユニット（ＧＰＵ）によって実行されるべきアプリケーションを受信することと、
前記デバイスの識別されたＧＰＵと関連付けられた仮想ＧＰＵモデルにおける前記アプリケーションおよび前記ＧＰＵの識別情報の検証のために、前記デバイスの外部にあるサーバ・デバイスへ、前記アプリケーションの送信することと、
前記ＧＰＵにおいてより効率的に動作するであろう、修正されたバージョンの前記アプリケーションを、前記サーバ・デバイスから受信することと、
前記修正されたバージョンのアプリケーションが、前記ＧＰＵにおける実行のための１または複数の基準を満足していることを示す検証を、前記サーバ・デバイスから受信することと、
を実行させる命令群を備えた非一時的なコンピュータ読取可能な記憶媒体。