【誤訳訂正書】
【提出日】平成28年8月8日(2016.8.8)
【誤訳訂正１】
【訂正対象書類名】特許請求の範囲
【訂正対象項目名】全文
【訂正方法】変更
【訂正の内容】
【特許請求の範囲】
【請求項１】
柔軟なコードアクセラレーションを実行するためのコンピューティングデバイスであって、
複数の命令を格納して有する物理メモリと、
アクセラレータ仮想デバイス、アクセラレータ仮想デバイスオペレーティングシステムドライバ、および仮想マシンを確立するために前記複数の命令を実行するプロセッサとを備え、
前記仮想マシンは、前記アクセラレータ仮想デバイスオペレーティングシステムドライバを用いて、
（ｉ）ソフトウェアコードのアクセラレーションを促すべく、前記アクセラレータ仮想デバイスを初期化すること、および
（ｉｉ）前記アクセラレータ仮想デバイスにアクセスするためのメモリマップＩ／Ｏとして、前記物理メモリの一部分を割り当てること、を行うためのものであり、
アクセラレーションされるべき前記ソフトウェアコードのバイトコードがオペレーティングシステム依存バイトコードでないと決定された場合に、前記アクセラレータ仮想デバイスは、前記バイトコードの実行に係るハードウェアアクセラレーションを実行するものである、コンピューティングデバイス。
【請求項２】
前記仮想マシンは、
（ｉ）前記メモリマップＩ／Ｏのために予約されるべきメモリのサイズを決定すること、および、
（ｉｉ）予約されるメモリの決定済サイズとサイズが一致する一部分である前記メモリマップＩ／Ｏ用の前記物理メモリの一部分を予約することによって、
前記メモリマップＩ／Ｏを割り当てる、請求項１に記載のコンピューティングデバイス。
【請求項３】
前記仮想マシンは、さらに、アクセラレーションされるべき前記ソフトウェアコードにアクセラレータ仮想デバイスコンテキストを割り当てる、請求項２に記載のコンピューティングデバイス。
【請求項４】
前記仮想マシンは、さらに、アクセラレーションされるべき前記ソフトウェアコードのインスタンスに関連した仮想メモリに予約物理メモリをマッピングすることによって、前記アクセラレータ仮想デバイスコンテキストを割り当てる、請求項３に記載のコンピューティングデバイス。
【請求項５】
前記予約物理メモリのアドレスのそれぞれは、互いに異なるアクセラレータ仮想デバイスコンテキストと関連している、請求項４に記載のコンピューティングデバイス。
【請求項６】
前記仮想マシンは、前記ソフトウェアコードの前記インスタンスがどのスレッド上で実行されるかを決定することによって、前記アクセラレータ仮想デバイスコンテキストを割り当てる、請求項４に記載のコンピューティングデバイス。
【請求項７】
前記仮想マシンは、さらに、スレッドの末尾を特定することに応答して前記仮想メモリから前記アクセラレータ仮想デバイスをアンマッピングすることで、前記割り当てられたアクセラレータ仮想デバイスコンテキストを解放する、請求項６に記載のコンピューティングデバイス。
【請求項８】
前記アクセラレータ仮想デバイスは、前記バイトコードがオペレーティングシステム依存バイトコードでないとの決定に応答して前記メモリマップＩ／Ｏを用いることによって、前記バイトコードのハードウェアアクセラレーションを実行するためのものである、請求項４に記載のコンピューティングデバイス。
【請求項９】
前記仮想マシンは、前記メモリマップＩ／Ｏを介して前記ハードウェアアクセラレーションをトリガするために、前記予約物理メモリ内のアドレスに直接分岐するためのものである、請求項８に記載のコンピューティングデバイス。
【請求項１０】
前記アクセラレータ仮想デバイスは、前記予約物理メモリへの呼び出しをインターセプトするための内部動的バイナリ変換モジュールをさらに備え、前記アクセラレータ仮想デバイスは、前記インターセプトに伴って前記ハードウェアアクセラレーションを実行するものであり、前記予約物理メモリ内の各アドレスはリターン命令のみを格納する、請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記仮想マシンは、前記アクセラレータ仮想デバイスを前記アクセラレータ仮想デバイスオペレーティングシステムドライバに関連付けることによって前記アクセラレータ仮想デバイスを初期化する、請求項１に記載のコンピューティングデバイス。
【請求項１２】
前記アクセラレータ仮想デバイスは、前記バイトコードのハードウェアアクセラレーションを実行するべく、内部動的バイナリ変換モジュールを備える、請求項１に記載のコンピューティングデバイス。
【請求項１３】
前記プロセッサは、前記内部動的バイナリ変換モジュールを備える、請求項１２に記載のコンピューティングデバイス。
【請求項１４】
前記仮想マシンは、前記バイトコードがオペレーティングシステム依存バイトコードであると決定することに応答して前記バイトコードのソフトウェアアクセラレーションを、さらに実行する、請求項１に記載のコンピューティングデバイス。
【請求項１５】
前記プロセッサは、複数のオペレーティングシステムサポートを用いて、前記オペレーティングシステム依存バイトコードを実行する、請求項１４に記載のコンピューティングデバイス。
【請求項１６】
前記プロセッサは、前記バイトコードのハードウェアアクセラレーションを実行するべく、バイトコードアクセラレーションサポートを備える、請求項１に記載のコンピューティングデバイス。
【請求項１７】
前記バイトコードのハードウェアアクセラレーションを実行するべく、ハードウェアアクセラレータを、さらに備える、請求項１に記載のコンピューティングデバイス。
【請求項１８】
コンピューティングデバイスにおいて柔軟なコードアクセラレーションを実行するための方法であって、
前記コンピューティングデバイス上で、ソフトウェアコードのアクセラレーションを促すべく、アクセラレータ仮想デバイスを初期化する段階と、
前記アクセラレータ仮想デバイスにアクセスするためのメモリマップＩ／Ｏとして前記コンピューティングデバイスのメモリの一部分を割り当てる段階と、
前記コンピューティングデバイス上で、アクセラレーションされるべき前記ソフトウェアコードのバイトコードがオペレーティングシステム依存バイトコードであるかどうかを決定する段階と、
アクセラレーションされるべき前記ソフトウェアコードの前記バイトコードがオペレーティングシステム依存バイトコードでないと決定された場合に、前記アクセラレータ仮想デバイスに基づいて、前記バイトコードの実行に係るハードウェアアクセラレーションを実行する段階と、を備える、方法。
【請求項１９】
前記メモリマップＩ／Ｏを割り当てる段階は、前記アクセラレータ仮想デバイスをアクセラレータ仮想デバイスランタイムライブラリに関連付ける段階を備える、請求項１８に記載の方法。
【請求項２０】
前記メモリマップＩ／Ｏを割り当てる段階は、
前記コンピューティングデバイス上で、前記メモリマップＩ／Ｏのために予約されるべきメモリのサイズを決定する段階と、
前記コンピューティングデバイス上で、予約されるべきメモリの決定済サイズとサイズが一致する部分である、前記コンピューティングデバイスの物理メモリの一部分を予約する段階とを、備える、請求項１８に記載の方法。
【請求項２１】
アクセラレーションされるべき前記ソフトウェアコードにアクセラレータ仮想デバイスコンテキストを前記コンピューティングデバイス上で、割り当てる段階を、さらに備える、請求項２０に記載の方法。
【請求項２２】
前記アクセラレータ仮想デバイスコンテキストを割り当てる段階は、実行される前記ソフトウェアコードのインスタンスに関連する仮想メモリに前記物理メモリをマッピングする段階を備える、請求項２１に記載の方法。
【請求項２３】
前記物理メモリの各アドレスを異なるアクセラレータ仮想デバイスコンテキストに予約する段階を備える、請求項２２に記載の方法。
【請求項２４】
前記バイトコードが前記オペレーティングシステム依存バイトコードでないとの決定に応答して前記メモリマップＩ／Ｏを用いることによって、前記バイトコードのハードウェアアクセラレーションを実行する段階を、さらに備える、請求項２２に記載の方法。
【請求項２５】
前記バイトコードの前記ハードウェアアクセラレーションを実行する段階は、前記ハードウェアアクセラレーションをトリガするべく、前記メモリマップＩ／Ｏのアドレスに直接分岐する段階を備える、請求項２４に記載の方法。
【請求項２６】
前記アクセラレータ仮想デバイスコンテキストを割り当てる段階は、前記ソフトウェアコードの前記インスタンスがどのスレッド上でアクセラレーションされるかを決定する段階を備える、請求項２２に記載の方法。
【請求項２７】
前記スレッドの末尾を特定することに応答して前記仮想メモリから前記アクセラレータ仮想デバイスをアンマッピングすることで、前記割り当てられたアクセラレータ仮想デバイスコンテキストを解放する段階を、さらに備える、請求項２６に記載の方法。
【請求項２８】
前記アクセラレータ仮想デバイスを初期化する段階は、前記アクセラレータ仮想デバイスを前記アクセラレータ仮想デバイスのオペレーティングシステムドライバに関連付ける段階を備える、請求項１８に記載の方法。
【請求項２９】
前記アクセラレータ仮想デバイスを初期化する段階は、仮想ペリフェラルコンポーネントインターコネクトデバイスとして、前記アクセラレータ仮想デバイスを初期化する段階を備える、請求項１８に記載の方法。
【請求項３０】
前記バイトコードのハードウェアアクセラレーションを実行する段階は、前記バイトコードの動的バイナリ変換を実行する段階を備える、請求項１８に記載の方法。
【請求項３１】
前記コンピューティングデバイス上で、前記アクセラレータ仮想デバイスが前記コンピューティングデバイスによってサポートされるかどうかを決定する段階と、
前記アクセラレータ仮想デバイスが前記コンピューティングデバイスによってサポートされていないとの決定に応答して、前記コンピューティングデバイスの仮想マシン上で前記バイトコードを実行する段階と、をさらに備える、請求項１８に記載の方法。
【請求項３２】
前記コンピューティングデバイス上で、前記バイトコードが前記オペレーティングシステム依存バイトコードであると決定することに応答して前記バイトコードのソフトウェアアクセラレーションを実行する段階を、さらに備える、請求項１８に記載の方法。
【請求項３３】
前記バイトコードのソフトウェアアクセラレーションを実行する段階は、複数のオペレーティングシステムサポートを用いて前記オペレーティングシステム依存バイトコードを実行する段階を備える、請求項３２に記載の方法。
【請求項３４】
プロセッサと、
前記プロセッサによって実行された場合に、コンピューティングデバイスに請求項１８から３３のいずれか一項に記載の方法を実行させる複数の命令が格納されたメモリと、
を備える、コンピューティングデバイス。
【請求項３５】
実行されることに応答して、請求項１８から３３のいずれか一項に記載の方法を実行するコンピューティングデバイスをもたらす複数の命令を備える、プログラム。
【請求項３６】
請求項３５に記載のプログラムを格納する機械可読ストレージ媒体。
【誤訳訂正２】
【訂正対象書類名】明細書
【訂正対象項目名】発明の名称
【訂正方法】変更
【訂正の内容】
【発明の名称】コンピューティングデバイス、方法、プログラム、および機械可読ストレージ媒体
【誤訳訂正３】
【訂正対象書類名】明細書
【訂正対象項目名】００２０
【訂正方法】変更
【訂正の内容】
【００２０】
いくつかの実施形態では、内部動的バイナリ変換モジュール２１０は、例えば、アクセラレータ仮想デバイス２０８と関連したメモリマップドＩ／Ｏ空間への複数のリードおよびライト動作を見つけるべく、メモリフォルトトラップとしてメモリマップドＩ／Ｏを使用可能である。このように、内部動的バイナリ変換モジュール２１０は、メモリマップドＩ／Ｏ空間内のメモリのリードまたはライトのための複数のｘ８６命令（すなわち、アクセラレーションされるもの）と、通常のメモリ空間内のメモリのリードまたはライトのための複数のｘ８６命令（すなわち、アクセラレーションされないもの）との間を識別することができる。これは、一部がＯＳ依存バイトコードを含むすべてのリードおよびライト動作を内部動的バイナリ変換モジュール２１０にインターセプトさせる労力を省き、メモリマップドＩ／Ｏ空間を対象とする動作だけがハードウェアアクセラレーションされる。内部動的バイナリ変換モジュール２１０は、メモリマップドＩ／Ｏ空間への呼び出しをインターセプトし、ハードウェアアクセラレータ１０８および／またはバイトコードアクセラレーションサポート１１４を用いてコードをアクセラレーションする場合がある。いくつかの実施形態では、メモリマップドＩ／Ｏ空間は、単に、リターンコマンドを含み、このリターンコマンドは、コードがアクセラレーションされて、内部動的バイナリ変換モジュール２１０がメモリマップドＩ／Ｏ空間内の呼び出し先アドレスにコードを戻した後に、コードが、それが呼び出されたコード内のポイントにさらに戻されることができるようにする。
【誤訳訂正４】
【訂正対象書類名】明細書
【訂正対象項目名】００６３
【訂正方法】変更
【訂正の内容】
【００６３】
実施例３５は、１または複数の機械可読ストレージ媒体を備える。この機械可読ストレージ媒体は、実行されていることに応答して、実施例１８から３３のいずれかの方法を実行するコンピューティングデバイスをもたらす、それに格納された複数の命令を有する。
本実施形態の例を下記の各項目として示す。
［項目１］
柔軟なコードアクセラレーションを実行するためのコンピューティングデバイスであって、
複数の命令を格納して有する物理メモリと、
アクセラレータ仮想デバイス、アクセラレータ仮想デバイスオペレーティングシステムドライバ、および仮想マシンを確立するために前記複数の命令を実行するプロセッサとを備え、
前記仮想マシンは、前記アクセラレータ仮想デバイスオペレーティングシステムドライバを用いて、
（ｉ）ソフトウェアコードのアクセラレーションを促すべく、前記アクセラレータ仮想デバイスを初期化すること、および
（ｉｉ）前記アクセラレータ仮想デバイスにアクセスするためのメモリマップＩ／Ｏとして、前記物理メモリの一部分を割り当てること、ならびに、
前記アクセラレータ仮想デバイスは、アクセラレーションされるべき前記ソフトウェアコードのバイトコードがオペレーティングシステム依存バイトコードであるかどうかを決定する、コンピューティングデバイス。
［項目２］
前記仮想マシンは、
（ｉ）前記メモリマップＩ／Ｏのために予約されるべきメモリのサイズを決定すること、および、
（ｉｉ）予約されるメモリの決定済サイズとサイズが一致する一部分である前記メモリマップＩ／Ｏ用の前記物理メモリの一部分を予約することによって、
前記メモリマップＩ／Ｏを割り当てる、項目１に記載のコンピューティングデバイス。
［項目３］
前記仮想マシンは、さらに、アクセラレーションされるべき前記ソフトウェアコードにアクセラレータ仮想デバイスコンテキストを割り当てる、項目２に記載のコンピューティングデバイス。
［項目４］
前記仮想マシンは、さらに、アクセラレーションされるべき前記ソフトウェアコードのインスタンスに関連した仮想メモリに予約物理メモリをマッピングすることによって、前記アクセラレータ仮想デバイスコンテキストを割り当てる、項目３に記載のコンピューティングデバイス。
［項目５］
前記予約物理メモリのアドレスは、異なるアクセラレータ仮想デバイスコンテキストと関連している、項目４に記載のコンピューティングデバイス。
［項目６］
前記仮想マシンは、前記ソフトウェアコードの前記インスタンスがどのスレッド上で実行されるかを決定することによって、前記アクセラレータ仮想デバイスコンテキストを割り当てる、項目４に記載のコンピューティングデバイス。
［項目７］
前記仮想マシンは、さらに、スレッドの末尾を特定することに応答して前記仮想メモリから前記アクセラレータ仮想デバイスをアンマッピングすることで、前記割り当てられたアクセラレータ仮想デバイスコンテキストを解放する、項目６に記載のコンピューティングデバイス。
［項目８］
前記アクセラレータ仮想デバイスは、前記バイトコードがオペレーティングシステム依存バイトコードでないとの決定に応答して前記メモリマップＩ／Ｏを用いることによって、前記バイトコードのハードウェアアクセラレーションを実行する段階を、さらに備える。項目４に記載のコンピューティングデバイス。
［項目９］
前記仮想マシンは、前記メモリマップＩ／Ｏを介して前記ハードウェアアクセラレーションをトリガするために、前記予約物理メモリ内でアドレスに直接分岐する、項目８に記載のコンピューティングデバイス。
［項目１０］
前記予約物理メモリへのリードおよびライト呼び出しをインターセプトして、前記ハードウェアアクセラレーションを実行する内部動的バイナリ変換モジュールをさらに備え、前記予約物理メモリ内の各アドレスはリターン命令のみを格納する、項目９に記載のコンピューティングデバイス。
［項目１１］
前記仮想マシンは、前記アクセラレータ仮想デバイスを前記アクセラレータ仮想デバイスオペレーティングシステムドライバに関連付けけることによって前記アクセラレータ仮想デバイスを初期化する、項目１に記載のコンピューティングデバイス。
［項目１２］
前記アクセラレータ仮想デバイスは、前記バイトコードのハードウェアアクセラレーションを実行するべく、内部動的バイナリ変換モジュールを備える、項目１に記載のコンピューティングデバイス。
［項目１３］
前記プロセッサは、前記内部動的バイナリ変換モジュールを備える、項目１２に記載のコンピューティングデバイス。
［項目１４］
前記仮想マシンは、前記バイトコードがオペレーティングシステム依存バイトコードであると決定することに応答して前記バイトコードのソフトウェアアクセラレーションを、さらに実行する、項目１に記載のコンピューティングデバイス。
［項目１５］
前記プロセッサは、複数のオペレーティングシステムサポートを用いて、前記オペレーティングシステム依存バイトコードを実行する、項目１４に記載のコンピューティングデバイス。
［項目１６］
前記プロセッサは、前記バイトコードのハードウェアアクセラレーションを実行するべく、バイトコードアクセラレーションサポートを備える、項目１に記載のコンピューティングデバイス。
［項目１７］
前記バイトコードのハードウェアアクセラレーションを実行するべく、ハードウェアアクセラレータを、さらに備える、項目１に記載のコンピューティングデバイス。
［項目１８］
コンピューティングデバイスにおいて柔軟なコードアクセラレーションを実行するための方法であって、
前記コンピューティングデバイス上で、ソフトウェアコードのアクセラレーションを促すべく、アクセラレータ仮想デバイスを初期化する段階と、
前記アクセラレータ仮想デバイスにアクセスするためのメモリマップＩ／Ｏとして前記コンピューティングデバイスのメモリの一部分を割り当てる段階と、
前記コンピューティングデバイス上で、アクセラレーションされるべき前記ソフトウェアコードのバイトコードがオペレーティングシステム依存バイトコードであるかどうかを決定する段階と、を備える、方法。
［項目１９］
前記メモリマップＩ／Ｏを割り当てる段階は、前記アクセラレータ仮想デバイスをアクセラレータ仮想デバイスランタイムライブラリに関連付けける段階を備える、項目１８に記載の方法。
［項目２０］
前記メモリマップＩ／Ｏを割り当てる段階は、
前記コンピューティングデバイス上で、前記メモリマップＩ／Ｏのために予約されるべきメモリのサイズを決定する段階と、
前記コンピューティングデバイス上で、予約されるべきメモリの決定済サイズとサイズが一致する部分である、前記コンピューティングデバイスの物理メモリの一部分を予約する段階とを、備える、項目１８に記載の方法。
［項目２１］
アクセラレーションされるべき前記ソフトウェアコードにアクセラレータ仮想デバイスコンテキストを前記コンピューティングデバイス上で、割り当てる段階を、さらに備える、項目２０に記載の方法。
［項目２２］
前記アクセラレータ仮想デバイスコンテキストを割り当てる段階は、実行される前記ソフトウェアコードのインスタンスに関連する仮想メモリに前記物理メモリをマッピングする段階を備える、項目２１に記載の方法。
［項目２３］
前記アクセラレータ仮想デバイスコンテキストを割り当てる段階は、前記物理メモリの各アドレスを異なるアクセラレータ仮想デバイスコンテキストに予約する段階を備える、項目２２に記載の方法。
［項目２４］
前記バイトコードが前記オペレーティングシステム依存バイトコードでないとの決定に応答して前記メモリマップＩ／Ｏを用いることによって、前記バイトコードのハードウェアアクセラレーションを実行する段階を、さらに備える、項目２２に記載の方法。
［項目２５］
前記バイトコードの前記ハードウェアアクセラレーションを実行する段階は、前記ハードウェアアクセラレーションをトリガするべく、前記メモリマップＩ／Ｏのアドレスに直接分岐する段階を備える、項目２４に記載の方法。
［項目２６］
前記アクセラレータ仮想デバイスコンテキストを割り当てる段階は、前記ソフトウェアコードの前記インスタンスがどのスレッド上でアクセラレーションされるかを決定する段階を備える、項目２２に記載の方法。
［項目２７］
前記スレッドの末尾を特定することに応答して前記仮想メモリから前記アクセラレータ仮想デバイスをアンマッピングすることで、前記割り当てられたアクセラレータ仮想デバイスコンテキストを解放する段階を、さらに備える、項目２６に記載の方法。
［項目２８］
前記アクセラレータ仮想デバイスを初期化する段階は、前記アクセラレータ仮想デバイスを前記アクセラレータ仮想デバイスのオペレーティングシステムドライバに関連付けける段階を備える、項目１８に記載の方法。
［項目２９］
前記アクセラレータ仮想デバイスを初期化する段階は、仮想ペリフェラルコンポーネントインターコネクトデバイスとして、前記アクセラレータ仮想デバイスを初期化する段階を備える、項目１８に記載の方法。
［項目３０］
前記バイトコードのハードウェアアクセラレーションを実行する段階は、前記バイトコードの動的バイナリ変換を実行する段階を備える、項目１８に記載の方法。
［項目３１］
前記コンピューティングデバイス上で、前記アクセラレータ仮想デバイスが前記コンピューティングデバイスによってサポートされるかどうかを決定する段階と、
前記アクセラレータ仮想デバイスが前記コンピューティングデバイスによってサポートされていないとの決定に応答して、前記コンピューティングデバイスの仮想マシン上で前記バイトコードを実行する段階と、をさらに備える、項目１８に記載の方法。
［項目３２］
前記コンピューティングデバイス上で、前記バイトコードが前記オペレーティングシステム依存バイトコードであると決定することに応答して前記バイトコードのソフトウェアアクセラレーションを実行する段階を、さらに備える、項目１８に記載の方法。
［項目３３］
前記バイトコードのソフトウェアアクセラレーションを実行する段階は、複数のオペレーティングシステムサポートを用いて前記オペレーティングシステム依存バイトコードを実行する段階を備える、項目３２に記載の方法。
［項目３４］
プロセッサと、
前記プロセッサによって実行された場合に、コンピューティングデバイスに項目１８から３３のいずれか一項に記載の方法を実行させる複数の命令が格納されたメモリと、
を備える、コンピューティングデバイス。
［項目３５］
実行されることに応答して、項目１８から３３のいずれか一項に記載の方法を実行するコンピューティングデバイスをもたらす複数の命令を備える、プログラム。