(57)【要約】      （修正有）【課題】複数の処理ユニットにおいてページテーブルを共有する装置を提供する。【解決手段】コンピューティングデバイス１００において、第１の処理ユニット１１０及び第２の処理ユニット１２０は、第１の処理ユニットと第２の処理ユニットに共通である共通ページテーブル１３２を格納するシステムメモリ１３０にアクセスする。共通ページテーブルは、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納している。共通ページテーブル内のページエントリは、第１の処理ユニットによるメモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、メモリチャンクの物理アドレスを定義する物理アドレスビットとを含む。【選択図】図１
2018041485.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理ユニットと、
第２の処理ユニットと、
前記第１の処理ユニットと前記第２の処理ユニットに共通であり、アプリケーションのジョブによってアクセスされる、メモリ内のメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納する共通ページテーブルと、
前記共通ページテーブル内に、前記第１の処理ユニットおよび前記第２の処理ユニットが、前記メモリチャンクのうちの１つのメモリチャンクにアクセスするために使用するページエントリと、ここにおいて、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリ内の前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える、
を格納する前記メモリと
を備える装置。
【請求項２】
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、請求項１に記載の装置。
【請求項３】
前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備え、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、請求項１に記載の装置。
【請求項４】
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
請求項１に記載の装置。
【請求項５】
前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、請求項１に記載の装置。
【請求項６】
前記第１のセットの属性ビットは、前記第１の処理ユニットが、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有することを定義し、前記第２のセットの属性ビットは、前記第２の処理ユニットが、前記メモリチャンクへの読み取りのみのアクセスを有することを定義する、請求項１に記載の装置。
【請求項７】
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項１に記載の装置。
【請求項８】
第１のメモリ管理ユニット（ＭＭＵ）と、ここにおいて、前記第１の処理ユニットは、前記第１のＭＭＵを備える、
第３の処理ユニットと、
入力／出力ＭＭＵ（ＩＯＭＭＵ）と、ここにおいて、前記ＩＯＭＭＵは、前記第２の処理ユニットと前記第３の処理ユニットによって共有される、
をさらに備え、
ここにおいて、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項１に記載の装置。
【請求項９】
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、請求項１に記載の装置。
【請求項１０】
第１の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、
前記第１の処理ユニットによって、前記物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、
第２の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換することと、
前記第２の処理ユニットによって、前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスすることと
を備え、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットと前記第２の処理ユニットに共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットおよび前記第２の処理ユニットが、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える、方法。
【請求項１１】
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、請求項１０に記載の方法。
【請求項１２】
前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備え、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、請求項１０に記載の方法。
【請求項１３】
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
請求項１０に記載の方法。
【請求項１４】
前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、請求項１０に記載の方法。
【請求項１５】
前記第１のセットの属性に基づいて、前記第１の処理ユニットは、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理ユニットは、前記メモリチャンクへの読み取りのみのアクセスを有する、請求項１０に記載の方法。
【請求項１６】
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項１０に記載の方法。
【請求項１７】
第３の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換することと、
前記第３の処理ユニットによって、前記第２の物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと
をさらに備え、
ここにおいて、前記第２の処理ユニットと前記第３の処理ユニットは、入力／出力ＭＭＵ（ＩＯＭＭＵ）を共有し、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項１０に記載の方法。
【請求項１８】
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、請求項１０に記載の方法。
【請求項１９】
第１の処理手段と、
第２の処理手段と、
メモリと
を備え、
ここにおいて、前記第１の処理手段は、
前記メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換するための第１の手段と、
前記物理メモリアドレスによって識別されるメモリチャンクにアクセスするための第１の手段と、を備え、
ここにおいて、前記第２の処理手段は、
前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換するための第２の手段と、
前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスするための第２の手段と、を備え、
ここにおいて、前記共通ページテーブルは、前記第１の処理手段と前記第２の処理手段に共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理手段および前記第２の処理手段が、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理手段による前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理手段による同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える、装置。
【請求項２０】
前記ページエントリは、前記第１の処理手段と前記第２の処理手段の両方に共通である属性を定義する第３のセットの属性ビットを備える、請求項１９に記載の装置。
【請求項２１】
前記第１の処理手段は、中央処理ユニット（ＣＰＵ）を備え、前記第２の処理手段は、グラフィックス処理ユニット（ＧＰＵ）を備える、請求項１９に記載の装置。
【請求項２２】
前記第１のセットの属性ビットは、前記第１の処理手段が前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理手段が前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理手段が前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理手段が前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
請求項１９に記載の装置。
【請求項２３】
前記第１の処理手段による前記メモリチャンクの前記アクセシビリティは、前記第２の処理手段による前記メモリチャンクの前記アクセシビリティとは異なる、請求項１９に記載の装置。
【請求項２４】
前記第１のセットの属性に基づいて、前記第１の処理手段は、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理手段は、前記メモリチャンクへの読み取りのみのアクセスを有する、請求項１９に記載の装置。
【請求項２５】
前記第１の処理手段は、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理手段は、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項１９に記載の装置。
【請求項２６】
第３の処理手段をさらに備え、
ここにおいて、前記第３の処理手段は、
前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換するための第２の手段と、
前記第２の物理メモリアドレスによって識別される前記メモリチャンクにアクセスするための前記第２の手段と
を備える、請求項１９に記載の装置。
【請求項２７】
前記アプリケーションは、前記第１の処理手段と前記第２の処理手段の両方で実行中である、請求項１９に記載の装置。
【請求項２８】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、第１の処理ユニットおよび第２の処理ユニットに、
前記第１の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、
前記第１の処理ユニットによって、前記物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、
前記第２の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換することと、
前記第２の処理ユニットによって、前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスすることと
を行わせ、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットと前記第２の処理ユニットに共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットおよび前記第２の処理ユニットが、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える、コンピュータ可読記憶媒体。
【請求項２９】
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３０】
前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備え、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３１】
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３２】
前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３３】
前記第１のセットの属性に基づいて、前記第１の処理ユニットは、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理ユニットは、前記メモリチャンクへの読み取りのみのアクセスを有する、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３５】
実行されると、第３の処理ユニットに、
前記第３の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換することと、
前記第３の処理ユニットによって、前記第２の物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと
を行わせるさらなる命令を記憶し、
ここにおいて、前記第２の処理ユニットと前記第３の処理ユニットは、入力／出力ＭＭＵ（ＩＯＭＭＵ）を共有し、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項２８に記載のコンピュータ可読記憶媒体。
【請求項３６】
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、請求項２８に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本開示は、一般的には、コンピューティングに関し、より詳細には、仮想メモリアドレス空間を物理メモリアドレス空間にマッピングするための技法に関する。
【背景技術】
【０００２】
[0002]  典型的なコンピューティングシステムは、物理メモリから読み取ったり、それに書き込んだりする、中央処理ユニット（ＣＰＵ）およびグラフィックス処理ユニット（ＧＰＵ）などの、複数の処理ユニットを含む。デバイスの様々な処理ユニットは、連続した物理メモリ空間を確保しておく（set aside）必要なしに、クライアントにより実行されているアプリケーションが連続した仮想アドレス空間に割り当てられることができるように、仮想アドレス指定スキームをインプリメントすることができる。各処理ユニットは、典型的に、仮想メモリアドレスを物理メモリにおける物理アドレスに変換する（translate）ためのメモリ管理ユニット（ＭＭＵ）を有する。必要とされる仮想アドレスから物理アドレスへのマッピングを実行するために、各ＭＭＵは、システムメモリ中に個別のページテーブルを維持し、これらの個別のページテーブルの各々は、サイズにおいて数メガバイトになりうる。
【発明の概要】
【０００３】
[0003]  一般に、本開示で説明される技法は、仮想アドレスから物理アドレスへのマッピングをインプリメントするコンピューティングデバイスに関する。本開示の技法によると、２つ以上の処理ユニットが、仮想アドレスを物理アドレスにマッピングするための共通ページテーブルを共有しうる。共通ページテーブルのページテーブルエントリは、第１の処理ユニットのための属性セット、第２の処理ユニットのための属性セット、ならびにその他の属性セットなどの、複数のセットの属性フィールドを含みうる。複数のセットの属性フィールドを使用して、２つ以上の処理ユニットのための属性は、個別に管理されうる。例えば、本開示で説明される技法は、１つの処理ユニットのための読み取り／書き込みアクセスが、第２の処理ユニットのための読み取り／書き込みアクセスとは異なりうるように、第１および第２の処理ユニットの読み取り／書き込みアクセスの個別管理を可能にしうる。
【０００４】
[0004]  １つの例によると、装置が、第１の処理ユニット、第２の処理ユニット、およびメモリを含む。メモリは、第１の処理ユニットと第２の処理ユニットに共通であり、ジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納する共通ページテーブルを格納する。メモリはまた、共通ページテーブル内に、第１の処理ユニットおよび第２の処理ユニットが、複数のメモリチャンクのうちの１つのメモリチャンクにアクセスするために使用するページエントリを格納し、ここで、ページエントリは、第１の処理ユニットによるメモリチャンクのアクセシビリティ（accessibility）を定義する第１のセットの属性ビットと、第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える。
【０００５】
[0005]  別の例によると、方法が、第１の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、第１の処理ユニットによって、物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、第２の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、第２の処理ユニットによって、物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、を含む。共通ページテーブルは、第１の処理ユニットと第２の処理ユニットに共通であり、ジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納する。共通ページテーブルは、第１の処理ユニットおよび第２の処理ユニットが、メモリチャンクにアクセスするために使用するページエントリを備え、ページエントリは、第１の処理ユニットによるメモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える。
【０００６】
[0006]  別の例によると、装置が、第１の処理手段、第２の処理手段、およびメモリを含む。第１の処理手段は、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換するための手段と、物理メモリアドレスによって識別されるメモリチャンクにアクセスするための手段とを備え、第２の処理手段は、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換するための手段と、物理メモリアドレスによって識別されるメモリチャンクにアクセスするための手段とを含む。共通ページテーブルは、第１の処理手段と第２の処理手段に共通であり、ジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納する。共通ページテーブルは、第１の処理手段および第２の処理手段が、メモリチャンクにアクセスするために使用するページエントリを備え、ページエントリは、第１の処理手段によるメモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、第２の処理手段による同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える。
【０００７】
[0007]  別の例によると、コンピュータ可読記憶媒体が命令を記憶し、該命令は実行されると、第１の処理ユニットおよび第２の処理ユニットに、第１の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、第１の処理ユニットによって、物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、第２の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、第２の処理ユニットによって、物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、を行わせる。共通ページテーブルは、第１の処理ユニットと第２の処理ユニットに共通であり、ジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納する。
共通ページテーブルは、第１の処理ユニットおよび第２の処理ユニットが、メモリチャンクにアクセスするために使用するページエントリを備える。ページエントリは、第１の処理ユニットによるメモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える。
【図面の簡単な説明】
【０００８】
【図１】図１は、本開示で説明される仮想メモリアドレスから物理メモリアドレスへのマッピング技法をインプリメントするように構成されたコンピューティングデバイスの例を示す。
【図２】図２は、本開示で説明される仮想メモリアドレスから物理メモリアドレスへのマッピング技法をインプリメントするように構成されたコンピューティングデバイスの別の例を示す。
【図３】図３は、本開示で説明される技法による、単一のページテーブルエントリ内に複数のセットの属性フィールドを有する共通ページテーブルの概念図を示す。
【図４】図４は、本開示で説明される仮想メモリアドレスから物理メモリアドレスへのマッピング技法を例示するフロー図を示す。
【発明を実施するための形態】
【０００９】
[0012]  一般に、本開示で説明される技法は、本開示において仮想から物理への（virtual-to-physical）マッピングとも称される、仮想アドレスから物理アドレスへのマッピングをインプリメントするコンピューティングデバイスに関する。より詳細には、本開示で説明される技法は、２つ以上の処理ユニットによって共有されうる共通ページテーブルに向けられる。共通ページテーブルのページテーブルエントリは、第１の処理ユニットのための属性セット、第２の処理ユニットのための属性セット、ならびにその他の属性セットなどの、複数のセットの属性フィールドを含みうる。複数のセットの属性フィールドを使用して、２つ以上の処理ユニットのための属性は、個別に管理されうる。例えば、１つの処理ユニットのための読み取り／書き込みアクセスは、第２の処理ユニットのための読み取り／書き込みアクセスとは異なりうる。
【００１０】
[0013]  中央処理ユニット（ＣＰＵ）およびグラフィックス処理ユニット（ＧＰＵ）などの処理ユニットは、物理メモリにアクセスすること（すなわち、物理メモリからデータを読み取ったり、それにデータを書き込んだりすること）を必要とする。データを読み取るまたは書き込むために、処理ユニットは、メモリ内のロケーションの物理アドレスにより、そこからデータが読み取られ、またはそこにデータが書き込まれる物理メモリ内のロケーションにアクセスする。しかしながら、処理ユニットにとって、すべてのメモリチャンクの物理アドレス（すなわち、そこにデータが書き込まれ、またはそこからデータが読み取られうる物理メモリのロケーション）を管理することは困難でありうる。この困難を克服するために、処理ユニットは、仮想アドレス指定を使用しうる。仮想アドレス指定では、処理ユニットで実行中の（executing on）アプリケーション（すなわち、クライアント）は、連続した仮想メモリアドレスを割り当てられる。アプリケーションは、異なる処理ユニットで実行中の異なるジョブを有する、複数のジョブを備えうる。処理ユニットの各々は、それぞれのメモリ管理ユニット（ＭＭＵ）を含む。処理ユニットの各々のＭＭＵは、仮想メモリアドレスから、物理メモリアドレスとも称される、実メモリアドレスを決定することを課される（tasked with）。
【００１１】
[0014]  例えば、ＭＭＵは、変換索引バッファ（ＴＬＢ）と称されるキャッシュを含む。ＴＬＢは、最近アクセスされたメモリチャンクまたは頻繁にアクセスされたメモリチャンクなどの、選択されたメモリチャンクのための仮想から物理へのマッピングを格納する。メモリチャンクにアクセスするために、処理ユニットは、ＭＭＵにそのメモリチャンクのための仮想メモリアドレスを供給する。ＭＭＵは、順に（in turn）、そのメモリチャンクのための物理メモリアドレスを識別するためにＴＬＢにアクセスする。（ＴＬＢヒットと称される）ＴＬＢにおいてマッピングが利用可能である場合には、ＭＭＵは、物理メモリアドレスを使用してメモリチャンクにアクセスする。代替として、ＭＭＵは、物理メモリアドレスを処理ユニットの異なるユニットまたはモジュールに供給し、それはその後、物理メモリアドレスを使用してメモリチャンクにアクセスする。
【００１２】
[0015]  いくつかのケースでは、ＴＬＢは、仮想メモリアドレスのためのマッピングを含まないことがありうる（ＴＬＢミスと称される）。例えば、処理ユニットは、そのメモリチャンクが、最近アクセスされたメモリチャンクまたは頻繁にアクセスされたメモリチャンクではないので、その物理アドレスが、ＴＬＢによって格納されたページエントリに含まれていないメモリチャンクにアクセスする必要がありうる。これが起こった場合、処理ユニットは、システムメモリに格納されたページテーブルにアクセスする。
【００１３】
[0016]  ページテーブルは、両方が仮想メモリアドレスを物理メモリアドレスにマッピングするページエントリを格納するという点で、ＴＬＢに類似している。ページテーブル中またはＴＬＢ中の１つのページテーブルエントリは、１つの仮想メモリアドレスを１つの物理メモリアドレスにマッピングする。しかしながら、ページテーブルは、処理ユニットのＭＭＵ内にローカルに格納されるＴＬＢとは対照的に、システムメモリに格納される。また、ページテーブルは、ＴＬＢのような限られた数のページエントリの代わりに、処理ユニットのための仮想から物理へのアドレスマッピング全体を格納するので、ページテーブルのサイズは、一般的に、ＴＬＢのサイズよりもはるかに大きい。例えば、ページテーブルのサイズは、数メガバイトの範囲（megabytes range）になりうる。
【００１４】
[0017]  いくつかの技法では、システムメモリは、処理ユニットの各々のための対応するページテーブルを格納する。例えば、システムメモリは、ＣＰＵのためのページテーブルを格納し、かつＧＰＵのための別の個別のページテーブルを格納する。しかしながら、いくつかの事例では、これらの異なるページテーブルは、同一のページテーブルエントリを含む。したがって、ＣＰＵページテーブル中の複数のページテーブルエントリが、ＧＰＵページテーブル中のページテーブルエントリと同一であることが可能でありうる。例えば、ＣＰＵページテーブル中のページテーブルエントリは、１つの仮想メモリアドレスを物理メモリアドレスにマッピングすることができ、また、ＧＰＵページテーブル中のページテーブルエントリは、同じ仮想メモリアドレスを同じ物理メモリアドレスにマッピングすることができる。
【００１５】
[0018]  １つの例として、ＣＰＵで実行中のオペレーティングシステムは、アプリケーションに連続した仮想メモリアドレスを割り当てることを課されうる。アプリケーションは、ＣＰＵで実行中のいくつかのジョブと、ＧＰＵで実行中のいくつかのジョブとを有する、複数のジョブまたはタスクを含みうる。オペレーティングシステムはまた、ページテーブルにおいて、仮想メモリアドレスと物理メモリアドレスとの間のマッピングを格納しうる。オペレーティングシステムは、仮想メモリアドレスを割り当てることと、ＣＰＵとＧＰＵの両方のためにこれら仮想メモリアドレスを物理アドレスにマッピングすることとを課されるので、オペレーティングシステムは、ＣＰＵとＧＰＵの両方のための仮想から物理へのマッピングを格納する共通ページテーブルを作成しうる。
【００１６】
[0019]  ＣＰＵとＧＰＵがこのような共通ページテーブルを共有することにおいて利益が存在しうる。例えば、システムメモリは、重複するページテーブルエントリを格納するのではなく、システムメモリは、ＣＰＵページテーブルとＧＰＵページテーブルにおける同一のページテーブルエントリのために単一のページエントリを格納することができ、これは、メモリの節約をもたらす。さらに、これらの同一のページテーブルエントリについては１つのページエントリが存在するので、２つの同一のページテーブルエントリの代わりに、単一のページテーブルエントリを更新することは、計算的により効率的になりうる。
【００１７】
[0020]  いくつかの従前の技法が、ページテーブル共有を達成するために開発されてきた。これらの技法では、ＣＰＵ ＭＭＵおよびＧＰＵ ＭＭＵは、システムメモリにおける共通ページテーブルのロケーションを指し示すポインタをそれぞれ格納する。ＣＰＵおよびＧＰＵがメモリチャンクにアクセスする場合、それらのそれぞれのＭＭＵは、共有ページテーブルから物理メモリアドレスを取り出すためにそれらのポインタを使用する。しかしながら、ページテーブルを共有するためのこれらの技法は、時に、メモリチャンクについての異なる処理ユニットの異なるアクセス能力を識別していないことから苦しむ（suffer from）ことがありうる。
【００１８】
[0021]  異なるアクセス能力は、異なる処理ユニットと関連づけられうる。例えば、ページエントリは、従来、３２ビットである。最初の１２ビットは、属性ビットとして予約され、残りの２０ビットは、物理メモリアドレスを識別する。これらの属性ビットは、処理ユニットのアクセス能力を識別する。１つの例として、メモリチャンクのうちのいくつかは、読み取り可能および書き込み可能であるとして指定されることができ、他のメモリチャンクは、読み取りのみ可能であるとして指定されることができる。属性ビットのうちの１つまたは複数のビットが、このアクセシビリティの制限を実施する（enforce）。読み取り可能および書き込み可能、または読み取りのみ可能であるとしてメモリチャンクを指定するビットに加えて、属性ビットにおけるビットの他の例が存在する。例えば、属性ビットのうちの１つまたは複数の他のビットは、ある特定のメモリチャンク内のデータが、処理ユニットのＬ２キャッシュのようなキャッシュにも格納されるべきであることを示しうる。このように、ページエントリの属性ビットは、ページエントリにおけるアドレスビットによってアドレス指定されたメモリチャンクを記述しうる。
【００１９】
[0022]  いくつかの事例では、１つの処理ユニットのための属性ビットは、別の処理ユニットのための属性ビットと異なる必要がありうる。例えば、ＣＰＵで実行中のオペレーティングシステムは、いくつかのチャンクを、ＣＰＵによって書き込み可能および読み取り可能であるとして指定し、これらの同じチャンクを、ＧＰＵによって読み取りのみ可能であるとして指定しうる。例えば、ＣＰＵおよびＧＰＵがそれら自体のそれぞれのページテーブルを含む上述された例では、仮想アドレスから物理アドレスへのマッピングは、これらページテーブルの各々において同一でありうるが、属性ビットは、同一でないことがありうる。ＣＰＵおよびＧＰＵが共通ページテーブルを共有する上述された他の例では、属性ビットは、ＣＰＵとＧＰＵの両方によって共有されうる。これは、オペレーティングシステムに、両方ではなく、ＣＰＵまたはＧＰＵのいずれかのために属性ビットを定義するように強制する。
【００２０】
[0023]  例えば、上記例での属性ビットは、ＣＰＵのアクセシビリティを定義する属性ビットであるが、必ずしもＧＰＵのアクセシビリティとは限らない。これは、チャンクの誤った管理を潜在的にもたらしうる。例えば、ＧＰＵにとっては読み取りのみ可能になるように、メモリチャンクのアクセシビリティを制限することが望ましくありうる。しかしながら、このチャンクがＣＰＵによって読み取り可能および書き込み可能であり、属性ビットがＣＰＵとＧＰＵを区別しないので、ポインタが共通ページテーブル内に用いられる（used into）例では、ＧＰＵは、メモリチャンクに不注意に（inadvertently）書き込みうる。
【００２１】
[0024]  本開示の技法は、特に、異なる処理ユニットのために、属性ビットを指定することに向けられる。例えば、ＧＰＵ属性ビットは、ＧＰＵのためのアクセシビリティを定義し、ＣＰＵ属性ビットは、ＣＰＵのためのアクセシビリティを定義する。このように、異なる処理ユニットは、共通ページテーブルを共有することができ、ＧＰＵのための属性ビットは、ＧＰＵのためのメモリチャンクのアクセシビリティを記述し、ＣＰＵのための属性ビットは、ＣＰＵのためのメモリチャンクのアクセシビリティを記述する。これら属性ビットはＣＰＵおよびＧＰＵ用に明確に（specifically）指定されているので、ＧＰＵがメモリチャンクに誤って書き込む可能性が低減されるとともに、ＣＰＵおよびＧＰＵのために異なるページテーブルを必要としないことによって、メモリの節約が達成されうる。
【００２２】
[0025]  異なる処理ユニットのために属性ビットを指定するための様々な技法が存在しうる。例えば、上述されたように、典型的に、ページエントリにおける３２ビットのうちの１２ビットが、属性ビットのために予約されている。これらの１２ビットのうちの多数についての値が、ＧＰＵとＣＰＵの両方について同一でありうる。その値がＣＰＵとＧＰＵについて異なりうる残りのビットについては、オペレーティングシステムは、どのビットがＣＰＵ用であり、どのビットがＧＰＵ用であるかを明確に指定しうる。例えば、１２個の属性ビットのうちの最初の２ビットは、メモリチャンクが、ＣＰＵによって書き込み可能、読み取り可能、または、書き込み可能および読み取り可能であるかどうかを示すために予約されることができ、１２個の属性ビットの次の２ビットは、このメモリチャンクが、ＧＰＵによって書き込み可能、読み取り可能、または、書き込み可能および読み取り可能であるかどうかを示すために予約されることができ、残りの８ビットは、ＧＰＵとＣＰＵの両方に共通であることができる。
【００２３】
[0026]  別の例として、ページエントリは、３２ビットより多く（例えば、４０ビット）を含みうる。この例では、最後の２０ビットは、アドレスマッピングのために予約されることができ、最初の２０ビットは、属性ビットとして予約されることができる。これらの２０ビットのちの最初の１０ビットは、ＣＰＵのために予約されることができ、これら２０ビットのうちの最後の１０ビットは、ＧＰＵのために予約されることができる。代替として、最初の６ビットは、ＣＰＵのために予約されうる。その次の６ビットは、ＧＰＵのために予約されることができ、その次の８ビットは、ＣＰＵとＧＰＵによって共有されることができる。これらビットの割り当ては、例として意図される。本開示の技法は、上記の例に限定されるようには考えられるべきではない。説明の目的のために、本開示のいくつかの技法は、ＣＰＵおよびＧＰＵに関連して説明されているが、本開示のこれらの技法はまた、他のタイプの処理ユニットでインプリメントされうることが理解されるべきである。
【００２４】
[0027]  図１は、本開示の技法をインプリメントしうる、実例的なコンピューティングデバイス、コンピューティングデバイス１００、を示す。コンピューティングデバイス１００の例は、それに限定されるものではないが、モバイル無線電話、携帯情報端末（ＰＤＡ）、ビデオゲーミングコンソール、ハンドヘルドゲーミングユニット、モバイルビデオ会議ユニット、ラップトップコンピュータ、デスクトップコンピュータ、テレビジョンセットトップボックス、デジタルメディアプレーヤ、スマートフォン、タブレットコンピュータ、カメラなどを含む。リソースの限られたデバイスにのみ限定されるものではないが、本開示の技法は、バッテリ式のデバイスを含むリソースの限られたデバイスに特定の利益をもたらしうる。本開示の技法は、例えば、限られたデバイスメモリをより効率的に使用することによってデバイスのパフォーマンス全体を改善することができ、より少ないページテーブルを維持することによって、計算の複雑さを低減させることができ、これは、順に、デバイスの応答性を改善するのみならず、電力消費を低減させることができる。
【００２５】
[0028]  コンピューティングデバイス１００は、第１の処理ユニット１１０、第２の処理ユニット１２０、およびシステムメモリ１３０を含む。第１の処理ユニット１１０は、ＭＭＵ １１２を含み、第２の処理ユニット１２０は、ＭＭＵ １２２を含む。ＭＭＵ １１０は、ＴＬＢ １１４を含むことができ、ＭＭＵ １２２は、ＴＬＢ １２４を含むことができる。第１の処理ユニット１１０は、例えば、デバイス１００のＣＰＵでありうる。
第２の処理ユニット１２０は、例えば、ディスプレイ上での表示（presentation）ためにグラフィックスデータを出力するように動作可能なＧＰＵでありうる。第１の処理ユニット１１０および第２の処理ユニット１２０は、さらに、ＣＰＵまたはＧＰＵのようなプロセッサから信号処理をオフロード（offloads）するディスプレイコントローラ、ネットワーキングデバイス、または任意のタイプのデジタル信号処理（ＤＳＰ）コアを含む様々な周辺デバイスのための処理ユニットのような他のタイプの処理ユニットを表しうる。第１の処理ユニット１１０および第２の処理ユニット１２０の例は、それに限定されるものではないが、デジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等な集積されたまたはディスクリートな論理回路を含みうる。本開示の技法は、概して、２つの処理ユニットに関連して説明されるが、これら技法は、２つよりも多くの処理ユニットでインプリメントされうる。
【００２６】
[0029]  システムメモリ１３０は、コンピュータ可読記憶媒体の例でありうる。システムメモリ１３０は、例えば、ダイナミックＲＡＭ、スタティックＲＡＭ、サイリスタ（thyrisistor）ＲＡＭ、ゼロ−キャパシタ（zero-capacitor）ＲＡＭ、ツイントランジスタＲＡＭのようなランダムアクセスメモリ（ＲＡＭ）のタイプ、または何らかの他のタイプの揮発性メモリでありうる。システムメモリ１３０はまた、フラッシュメモリまたは他のタイプの不揮発性ＲＡＭのような、不揮発性メモリでありうる。システムメモリ１３０は、処理ユニット１１０および処理ユニット１２０に、本開示においてそれぞれに属する（ascribed）機能を実行させる命令を記憶しうる。このように、システムメモリ１３０は、１つまたは複数のプロセッサ、例えば、処理ユニット１１０および処理ユニット１２０に、様々な機能を実行させる命令を備えたコンピュータ可読記憶媒体であると考えられうる。しかしながら、いくつかの例では、このような命令は、システムメモリ１３０以外のメモリ（図１に図示せず）に記憶されうる。
【００２７】
[0030]  第１の処理ユニット１１０および第２の処理ユニット１２０は、システムメモリ１３０からデータを読み取り、また、それにデータを書き込むように構成される。データを読み取るまたは書き込むために、第１の処理ユニット１１０および第２の処理ユニット１２０は、システムメモリ１３０における特定の物理ロケーションにアクセスするように構成される。これらの特定のロケーションは、例えば、４ＫＢのチャンクであることができ、各チャンクは、それ自体の固有の物理アドレスを有しうる。しかしながら、上述されたように、第１の処理ユニット１１０および第２の処理ユニット１２０は、第１の処理ユニット１１０または第２の処理ユニット１２０で実行中のアプリケーションが、連続した仮想メモリアドレスを割り当てられるように、仮想アドレス指定をインプリメントしうる。しかしながら、これらの連続した仮想メモリアドレスに対応する物理メモリアドレスは、断片化され、不連続でありうる。したがって、処理ユニット１１０および処理ユニット１２０は、対応する不連続な物理メモリアドレスではなく、これらの連続した仮想メモリアドレスを使用して、データを処理しうる。処理ユニット１１０および処理ユニット１２０がシステムメモリ１３０にアクセスする（すなわち、システムメモリ１３０から読み取るまたはそれに書き込む）必要がある場合、しかしながら、これらの仮想メモリアドレスは、物理メモリアドレスに変換される必要がある。
【００２８】
[0031]  ＭＭＵ １１２は、第１の処理ユニット１１０のために、仮想メモリアドレスを物理メモリアドレスにマッピングするように構成され、ＭＭＵ １２２は、第２の処理ユニット１２０のために、仮想メモリアドレスを物理メモリアドレスにマッピングするように構成される。フルセット（full set）のページエントリを有する完全なページテーブルが、共通ページテーブル１３２に格納される。ＴＬＢ １１４およびＴＬＢ １２４の各々は、共通ページテーブル１３２に格納されたページエントリのサブセットを格納する。
このサブセットは、例えば、最近アクセスされたページエントリ、頻繁にアクセスされたページエントリ、または何らかの他の基準に基づいて選択されたページエントリでありうる。ＴＬＢ １１４に格納されたページエントリのサブセットは、ＴＬＢ １２４に格納されたページエントリのサブセットとは異なりうる。例えば、ＭＭＵ １１２を介して、第１の処理ユニット１１０によって最近アクセスされたまたは頻繁にアクセスされたページテーブルエントリは、ＭＭＵ １２２を介して、第２の処理ユニット１２０によって最近または頻繁にアクセスされたページテーブルエントリとは異なりうる。したがって、ＴＬＢ １１４は、ＴＬＢ １２４とは異なるページテーブルエントリのサブセットを格納しうる。
【００２９】
[0032]  例えば、第１の処理ユニット１１０が、仮想メモリアドレスを物理メモリアドレスに変換する必要がある場合には、ＭＭＵ １１２は、ＴＬＢ １１４がその仮想メモリアドレスのためのページエントリを格納しているとき、特定の仮想メモリアドレスに対応する物理メモリアドレスを決定するためにＴＬＢ １１４を使用しうる。決定された物理メモリアドレスを使用して、処理ユニット１１０は、システムメモリ１３０の特定の物理ロケーションから読み取るまたはそこに書き込むことができる。同様に、第２の処理ユニット１２０が、仮想メモリアドレスを物理メモリアドレスに変換する必要がある場合には、ＭＭＵ １２２は、ＴＬＢ １２４がその仮想メモリアドレスのためのページエントリを格納しているとき、特定の仮想メモリアドレスに対応する物理メモリアドレスを決定するためにＴＬＢ １２４を使用しうる。決定された物理メモリアドレスを使用して、処理ユニット１２０は、システムメモリ１３０から読み取るまたはそれに書き込むことができる。
【００３０】
[0033]  上述されたように、ＴＬＢ １１４およびＴＬＢ １２４は、仮想メモリアドレスのサブセットのみのために、仮想から物理へのマッピングを格納するキャッシュでありうる。したがって、ＴＬＢ １１４は、処理ユニット１１０のための仮想から物理へのマッピング全体を格納しないことができ、同様に、ＴＬＢ １２４は、処理ユニット１２０のための仮想から物理へのマッピング全体を格納しないことができる。いくつかの事例では、ＭＭＵ １１２は、ＴＬＢ １１４にマッピングが格納されていない仮想メモリアドレスのための対応する物理メモリアドレスを決定する必要がありうる。ＴＬＢ １１４に含まれていない仮想メモリアドレスのためのマッピングを決定するために、第１の処理ユニット１１０は、システムメモリ１３０に格納された共通ページテーブル１３２にアクセスしうる。共通ページテーブル１３２は、処理ユニット１１０のための仮想から物理へのマッピング全体を含み、したがって、ＴＬＢ １１４およびＴＬＢ １２４よりもはるかに大きくなりうる。
【００３１】
[0034]  ＭＭＵ １１２と同様に、いくつかの事例では、ＭＭＵ １２２は、ＴＬＢ １２４にマッピングが格納されていない仮想メモリアドレスのための対応する物理メモリアドレスを決定する必要がありうる。ＴＬＢ １２４に含まれていない仮想メモリアドレスのためのマッピングを決定するために、第２の処理ユニット１２０は、システムメモリ１３０に格納された共通ページテーブル１３２にアクセスする。このように、ＭＭＵ １２２は、ＭＭＵ １１２と実質的に同様の方法で機能しうる。共通ページテーブル１３２は、処理ユニット１２０のためのみならず、処理ユニット１１０のための仮想から物理へのマッピング全体を含む。このように、第１の処理ユニット１１０および第２の処理ユニット１２０は、同じページテーブル（すなわち、図１の例における共通ページテーブル１３２）を共有する。ＭＭＵ １１２およびＭＭＵ １２２が、処理ユニット１１０および処理ユニット１２０のために別々のページテーブルを維持した場合、処理ユニット１１０と処理ユニット１２０によって共有される共通ページテーブル１３２は、２つのページテーブルの組み合わされたサイズよりも小さくなりうる。共通ページテーブル１３２のページテーブルエントリのうちのいくつかは、ＭＭＵ １１２とＭＭＵ １２２の両方によって共有されるので、共通ページテーブル１３２は、２つの個別のページテーブルの組み合わされたサイズよりも小さくなりうる。
【００３２】
[0035]  共通ページテーブル１３２は、仮想メモリアドレスを、メモリチャンクの物理メモリアドレスにマッピングする複数のページエントリを含みうる。メモリチャンクは、その物理メモリアドレスを介して個別にアクセス可能であるシステムメモリ１３０の一部分でありうる。各ページエントリは、第１のセットの属性ビットと第２のセットの属性ビットを含みうる。第１のセットの属性ビットは、第１の処理ユニット１１０のための、許可およびアクセス権などの、制御を設定することができ、一方、第２のセットの属性ビットは、第２の処理ユニット１２０のための制御を設定する。各ページエントリは、第１の処理ユニット１１０と第２の処理ユニット１２０の両方のための共通制御を設定する１セットの属性ビットのような、１つまたは複数の追加のセットの属性ビットをオプションで含みうる。
【００３３】
[0036]  共通ページテーブル１３２のページエントリのための第１のセットの属性ビットおよび第２のセットの属性ビットは、第１の処理ユニット１１０および第２の処理ユニット１２０が、共通ページテーブルを共有しながら、異なる許可およびアクセス権を有することを可能にしうる。１つの例として、第１のセットの属性ビットは、第１の処理ユニット１１０が、システムメモリ１３０の特定のメモリチャンクへの読み取りと書き込みの両方のアクセスを有するように設定されることができ、一方、第２の処理ユニット１２０は、同じ特定のメモリチャンクへの読み取りのみのアクセスを有することができる。当然のことながら、第２の処理ユニット１２０が、読み取りと書き込みの両方のアクセスを有し、一方、第１の処理ユニット１１０は、読み取りのみのアクセスを有する、または、第１の処理ユニット１１０および第２の処理ユニット１２０のうちの一方が、読み取りと書き込みの両方のアクセスを有し、一方、他方は、読み取りアクセスも書き込みアクセスも有していないなどの、他の構成もまた可能である。
【００３４】
[0037]  図２は、本開示の技法をインプリメントしうる、別の実例的なコンピューティングデバイス、コンピューティングデバイス２００、を示す。コンピューティングデバイス２００の例は、それに限定されるものではないが、モバイル無線電話、携帯情報端末（ＰＤＡ）、ビデオゲーミングコンソール、ハンドヘルドゲーミングユニット、モバイルビデオ会議ユニット、ラップトップコンピュータ、デスクトップコンピュータ、テレビジョンセットトップボックス、デジタルメディアプレーヤ、スマートフォン、タブレットコンピュータなどを含む。コンピューティングデバイス２００は、第１の処理ユニット２１０、第２の処理ユニット２２０、第３の処理ユニット２４０、入力／出力メモリ管理ユニット（ＩＯＭＭＵ）２２２、およびシステムメモリ２３０を含む。第１の処理ユニット２１０は、ＭＭＵ ２１２を含む。第２の処理ユニット２２０および第３の処理ユニット２４０は、専用のＭＭＵをそれぞれ有していないが、その代りに、共通のＭＭＵ（すなわち、図２のＩＯＭＭＵ ２２２）を共有する。第１の処理ユニット２１０は、例えば、デバイス２００のＣＰＵでありうる。第２の処理ユニット１２０は、例えば、ディスプレイ上での表示ためにグラフィックスデータを出力するように動作可能なＧＰＵでありうる。第３の処理ユニット２４０は、例えば、周辺デバイスのための処理ユニットのような第３のタイプの処理ユニットでありうる。第１の処理ユニット２１０、第２の処理ユニット２２０、および第３の処理ユニット２４０の例は、それに限定されるものではないが、デジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等な集積されたまたはディスクリートな論理回路を含みうる。
【００３５】
[0038]  システムメモリ２３０は、コンピュータ可読記憶媒体の例でありうる。システムメモリ２３０は、例えば、ダイナミックＲＡＭ、スタティックＲＡＭ、サイリスタＲＡＭ、ゼロ−キャパシタＲＡＭ、ツイントランジスタＲＡＭのようなランダムアクセスメモリ（ＲＡＭ）のタイプ、または何らかの他のタイプの揮発性メモリでありうる。システムメモリ２３０はまた、フラッシュメモリまたは他のタイプの不揮発性ＲＡＭのような、不揮発性メモリでありうる。システムメモリ２３０は、処理ユニット２１０および処理ユニット２２０に、本開示においてそれぞれに属する機能を実行させる命令を記憶しうる。このように、システムメモリ２３０は、１つまたは複数のプロセッサ、例えば、処理ユニット２１０、処理ユニット２２０、および／または処理ユニット２４０に、様々な機能を実行させる命令を備えたコンピュータ可読記憶媒体であると考えられうる。しかしながら、いくつかの例では、このような命令は、システムメモリ２３０以外のメモリ（図２に図示せず）に記憶されうる。
【００３６】
[0039]  第１の処理ユニット２１０、第２の処理ユニット２２０、および第３の処理ユニット２４０は、システムメモリ２３０からデータを読み取り、また、それにデータを書き込むように構成される。データを読み取るまたは書き込むために、第１の処理ユニット２１０、第２の処理ユニット２２０、および第３の処理ユニット２４０は、システムメモリ２３０における特定の物理ロケーションにアクセスするように構成される。これらの特定のロケーションは、例えば、４ＫＢのチャンクであることができ、各チャンクは、それ自体の固有の物理アドレスを有しうる。しかしながら、上述されたように、第１の処理ユニット２１０、第２の処理ユニット２２０、および第３の処理ユニット２４０は、第１の処理ユニット２１０、第２の処理ユニット２２０、および／または第３の処理ユニット２４０で実行中のアプリケーションのジョブが、連続した仮想メモリアドレスを割り当てられるように、仮想アドレス指定をインプリメントしうる。しかしながら、これらの連続した仮想メモリアドレスに対応する物理メモリアドレスは、断片化され、不連続でありうる。したがって、処理ユニット２１０、処理ユニット２２０、および第３の処理ユニット２４０は、対応する不連続な物理メモリアドレスではなく、これらの連続した仮想メモリアドレスを使用して、データを処理しうる。処理ユニット２１０、処理ユニット２２０、および処理ユニット２４０がシステムメモリ２３０にアクセスする（すなわち、システムメモリ２３０から読み取るまたはそれに書き込む）必要がある場合、しかしながら、これらの仮想メモリアドレスは、物理メモリアドレスに変換される必要がある。
【００３７】
[0040]  ＭＭＵ ２１２は、第１の処理ユニット２１０のために、仮想メモリアドレスを物理メモリアドレスにマッピングするように構成される。ＩＯＭＭＵ ２２２は、第２の処理ユニット２２０と第３の処理ユニット２３０の両方のために、仮想メモリアドレスを物理メモリアドレスにマッピングするように構成される。フルセットのページエントリを有する完全なページテーブルが、共通ページテーブル２３２に格納される。ＴＬＢ ２１４およびＴＬＢ ２２４の各々は、共通ページテーブル２３２に格納されたページエントリのサブセットを格納する。このサブセットは、例えば、最近アクセスされたページエントリ、頻繁にアクセスされたページエントリ、または何らかの他の基準に基づいて選択されたページエントリでありうる。
【００３８】
[0041]  例えば、第１の処理ユニット２１０が、仮想メモリアドレスを物理メモリアドレスに変換する必要がある場合には、ＭＭＵ ２１２は、ＴＬＢ ２１４がその仮想メモリアドレスのためのページエントリを格納しているとき、特定の仮想メモリアドレスに対応する物理メモリアドレスを決定するためにＴＬＢ ２１４を使用しうる。決定された物理メモリアドレスを使用して、処理ユニット２１０は、システムメモリ２３０のから読み取るまたはそれに書き込むことができる。同様に、第２の処理ユニット２２０または第３の処理ユニット２４０が、仮想メモリアドレスを物理メモリアドレスに変換する必要がある場合には、ＭＭＵ ２２２は、ＴＬＢ ２２４がその仮想メモリアドレスのためのページエントリを格納しているとき、特定の仮想メモリアドレスに対応する物理メモリアドレスを決定するためにＴＬＢ ２２４を使用しうる。決定された物理メモリアドレスを使用して、第２の処理ユニット２２０および第３の処理ユニット２４０は、システムメモリ２３０から読み取るまたはそれに書き込むことができる。
【００３９】
[0042]  上述されたように、ＴＬＢ ２１４およびＴＬＢ ２２４は、仮想メモリアドレスのサブセットのみのために、仮想から物理へのマッピングを格納するキャッシュでありうる。したがって、ＴＬＢ ２１４は、第１の処理ユニット２１０のための仮想から物理へのマッピング全体を格納しないことができ、同様に、ＴＬＢ ２２４は、第２の処理ユニット２２０および第３の処理ユニット２４０のための仮想から物理へのマッピング全体を格納しないことができる。いくつかの事例では、ＭＭＵ ２１２は、ＴＬＢ ２１４にマッピングが格納されていない仮想メモリアドレスのための対応する物理メモリアドレスを決定する必要がありうる。ＴＬＢ ２１４に含まれていない仮想メモリアドレスのためのマッピングを決定するために、ＭＭＵ ２１２は、システムメモリ２３０に格納された共通ページテーブル２３２にアクセスする。共通ページテーブル２３２は、処理ユニット２１０のための仮想から物理へのマッピング全体を含み、したがって、ＴＬＢ ２１４よりもはるかに大きくなりうる。
【００４０】
[0043]  第１の処理ユニット２１０と同様に、いくつかの事例では、第２の処理ユニット２２０は、ＴＬＢ ２２４にマッピングが格納されていない仮想メモリアドレスのための対応する物理メモリアドレスを決定する必要がありうる。ＴＬＢ ２２４に含まれていない仮想メモリアドレスのためのマッピングを決定するために、ＭＭＵ ２２２は、システムメモリ２３０に格納された共通ページテーブル２３２にアクセスする。共通ページテーブル２３２は、第１の処理ユニット２１０のためのみならず、第２の処理ユニット２２０および第３の処理ユニット２４０のための仮想から物理へのマッピング全体を含む。このように、第１の処理ユニット２１０、第２の処理ユニット２２０、および第３の処理ユニット２４０は、同じページテーブル（すなわち、図２の例における共通ページテーブル２３２）を共有する。
【００４１】
[0044]  共通ページテーブル２３２は、仮想メモリアドレスを、メモリチャンクの物理メモリアドレスにマッピングする複数のページエントリを含みうる。各ページエントリは、第１のセットの属性ビットと第２のセットの属性ビットを含みうる。第１のセットの属性ビットは、第１の処理ユニット２１０のための、許可およびアクセス権などの、制御を設定することができ、一方、第２のセットの属性ビットは、第２の処理ユニット２２０および第３の処理ユニット２４０のための制御を設定する。各ページエントリは、第１の処理ユニット２１０、第２の処理ユニット２２０、および第３の処理ユニット２４０のすべてのための共通制御を設定する１セットの属性ビットのような、１つまたは複数の追加のセットの属性ビットをオプションで含みうる。
【００４２】
[0045]  いくつかの例では、第２のセットの属性は、ＩＯＭＭＵ ２２２を共有するすべての処理ユニットのための制御を設定しうる。したがって、このような例では、第２のセットの属性ビットは、第２の処理ユニット２２０と第３の処理ユニット２４０の両方のための制御を定義する。しかしながら、他の例では、第２の処理ユニット２２０および第３の処理ユニット２４０は、専用のセットの属性ビットをそれぞれ有しうる。このような例では、第２のセットの属性は、第２の処理ユニット２２０のための制御を設定することができ、一方、第３のセットの属性ビットは、第３の処理ユニット２４０のための制御を設定することができる。
【００４３】
[0046]  共通ページテーブル２３２のページエントリのための第１のセットの属性ビットおよび第２のセットの属性ビットは、第１の処理ユニット２１０が、第２の処理ユニット２２０および第３の処理ユニット２４０と共通ページテーブルを共有しながら、第２の処理ユニット２２０および第３の処理ユニット２４０とは異なる許可およびアクセス権を有することを可能にしうる。１つの例として、第１のセットの属性ビットは、第１の処理ユニット２１０が、システムメモリ２３０の特定のメモリチャンクへの読み取りと書き込みの両方のアクセスを有するように設定されることができ、一方、第２の処理ユニット２２０および第３の処理ユニット２４０は、同じ特定のメモリチャンクへの読み取りのみのアクセスを有することができる。当然のことながら、第２の処理ユニット２２０および第３の処理ユニット２４０が、読み取りと書き込みの両方のアクセスを有し、一方、第１の処理ユニット２１０は、読み取りのみのアクセスを有する、または、第２の処理ユニット２２０および第３の処理ユニット２４０が、読み取りと書き込みの両方のアクセスを有し、一方、第１の処理ユニット２１０は、読み取りアクセスも書き込みアクセスも有していないなどの、他の構成もまた可能である。
【００４４】
[0047]  図３は、共通ページテーブル３３２の態様を例示する概念図である。共通ページテーブルは、図１の共通ページテーブル１３２または図２の共通ページテーブル２３２のいずれかを表しうる。図３は、説明の目的のために概念的であることが意図され、実際のデータ構造を表していると解釈されるべきでない。共通ページテーブル３３２は、複数のページエントリを含む。各ページエントリは、第１のセットの属性ビット３５２Ａ−Ｎ、第２のセットの属性ビット３５４Ａ−Ｎ、第３のセットの属性ビット３５６Ａ−Ｎ、および物理メモリアドレスビット３５８Ａ−Ｎを含む。したがって、第１のセットの属性ビット３５２Ａ、第２のセットの属性ビット３５４Ａ、第３のセットの属性ビット３５６Ａ、および物理メモリアドレスビット３５８Ａは、ページエントリＡを集合的に構成する。
第１のセットの属性ビット３５２Ｂ、第２のセットの属性ビット３５４Ｂ、第３のセットの属性ビット３５６Ｂ、および物理メモリアドレスビット３５８Ｂは、ページエントリＢを集合的に構成し、以下同様である。上述されたように、ページエントリ３５６Ａ−Ｎの各々は、３２ビット、４０ビット、または何らかの他のサイズでありうる。物理メモリアドレスビット３５８Ａ−Ｎは、それぞれ２０ビットまたは何らかの他のサイズであることができ、様々なサイズが、第１のセットの属性ビット３５２Ａ−Ｎ、第２のセットの属性ビット３５４Ａ−Ｎ、および第３のセットの属性ビット３５６Ａ−Ｎの各々のために使用されることができる。
【００４５】
[0048]  図３のシステムメモリ３３４は、メモリチャンク１３４Ａ−Ｎを有する物理メモリを表す。システムメモリ３３４は、例えば、図１のシステムメモリ１３０または図２のシステムメモリ２３０に対応しうる。メモリチャンク１３４Ａ−Ｎは、メモリ３３４の不連続なチャンクを表すように意図され、メモリチャンク３３４Ａ−Ｎの物理メモリアドレスが、不連続になりうることを意味する。ページエントリＡ−Ｎの各々は、物理メモリアドレスビット３５８Ａ−Ｎにおいて、メモリチャンク３３４Ａ−Ｎのうちの１つの物理アドレスを含む。
【００４６】
[0049]  ページエントリＡ−Ｎの各々は、仮想メモリアドレスに対応する。図１の第１の処理ユニット１１０または第２の処理ユニット１２０のような処理ユニットが、システムメモリにアクセスする必要がある場合、それは、仮想メモリアドレスのための対応する物理メモリアドレスを見つけるためにページテーブル３３２を使用しうる。例えば、第１の処理ユニット１１０が、特定の仮想メモリアドレスを物理メモリアドレスに変換する必要がある場合には、第１の処理ユニット１１０は、その特定の仮想メモリアドレスに対応するページエントリを読み取る。
【００４７】
[0050]  この例では、ページエントリＡが、特定の仮想メモリアドレスに対応すると仮定する。したがって、第１の処理ユニット１１０は、ページエントリＡを読み取って、対応する物理メモリアドレスを決定することができ、それは、物理メモリアドレスビット３５８Ａに格納されている。図３の例では、エントリＡは、物理メモリチャンク３３４Ｂが格納されている物理メモリアドレスにマッピングする。したがって、物理メモリアドレスビット３５８Ａは、システムメモリ３３４内でメモリチャンク３３４Ｂが位置する場所への物理アドレスを格納する。第１の属性ビット３５２Ａは、物理メモリチャンク３３４Ｂにアクセスするときの第１の処理ユニット１１０のための許可を設定する。例えば、第１のビットは、第１の処理ユニット１１０が、メモリチャンク３３４Ｂについての読み取り特権を有するかどうかを決定しうる。第２のビットは、第１の処理ユニット１１０が、メモリチャンク３３４Ｂについての書き込み特権を有するかどうかを決定しうる。
【００４８】
[0051]  いくつかの事例では、第２の処理ユニット１２０は、第１の処理ユニット１１０によって変換されたのと同じ特定の仮想メモリアドレスを変換する必要がありうる。それを行うには、第２の処理ユニット１２０は、特定の仮想メモリアドレスを変換するときに、第１の処理ユニット１１０が読み取ったその特定の仮想メモリアドレスに対応する同じページエントリを読み取りうる。
【００４９】
[0052]  この例でも、先と同様に、ページエントリＡが、特定の仮想メモリアドレスに対応すると仮定する。したがって、第２の処理ユニット１２０は、ページエントリＡを読み取って、対応する物理メモリアドレスを決定することができ、それは、物理メモリビット３５８Ａに格納されている。図３の例では、エントリＡは、物理メモリチャンク３３４Ｂにマッピングする。したがって、物理メモリアドレスビット３５８Ａは、メモリチャンク３３４Ｂの物理アドレスを格納する。第２の属性ビット３５４Ａは、物理メモリチャンク３３４Ｂにアクセスするときの第２の処理ユニット１２０のための許可を定義する。例えば、第２の属性ビット３５６Ａの第１のビットは、第２の処理ユニット１２０が、メモリチャンク３３４Ｂについての読み取り特権を有するかどうかを決定しうる。第２の属性ビット３５６Ａの第２のビットは、第２の処理ユニット１２０が、メモリチャンク３３４Ｂについての書き込み特権を有するかどうかを決定しうる。このように、第１の処理ユニット１１０および第２の処理ユニット１２０は、仮想メモリアドレスを物理メモリアドレスに変換するために同じページテーブルにおける同じページエントリにアクセスしているにもかかわらず、第１の処理ユニット１１０および第２の処理ユニット１２０は、同じメモリチャンクについての、異なる読み取りおよび書き込みのアクセスのような、異なる特権を有しうる。
【００５０】
[0053]  別の例では、図２の第１の処理ユニット２１０、または第２の処理ユニット２２０または第３の処理ユニット２４０のうちの１つのなどの処理ユニットが、システムメモリにアクセスする必要がある場合、それは、仮想メモリアドレスのための対応する物理メモリアドレスを見つけるためにページテーブル３３２を使用しうる。このような例では、第１の属性ビット３５２Ａ−Ｎは、第１の処理ユニット２１０のための許可を定義することができ、一方、第２の属性ビット３５４Ａ−Ｎは、第２の処理ユニット２２０と第３の処理ユニット２４０の両方のための許可を定義することができる。したがって、第２の処理ユニット２２０が、メモリ３３４の物理メモリチャンクにアクセスする必要がある場合、第２の属性ビット３５４Ａ−Ｎは、第２の処理ユニット２２０のための許可を定義する。同様に、第３の処理ユニット２４０が、メモリ３３４の物理メモリチャンクにアクセスする必要がある場合、第２の属性ビット３５４Ａ−Ｎはまた、第３の処理ユニット２４０のための許可を定義する。
【００５１】
[0054]  図４は、本開示で説明される仮想から物理へのマッピング技法を例示するフロー図を示す。図４の技法は、図１のコンピューティングデバイス１００または図２のコンピューティングデバイス２００のような、２つ以上の処理ユニットを備えたコンピューティングデバイスによって実行されうる。図４の技法は、コンピューティングデバイス１００に関連して説明されるが、図４のこれらの技法は、幅広いコンピューティングデバイスに適用可能であり、コンピューティングデバイス１００として構成されるデバイスのみに限定されないことが理解されるべきである。
【００５２】
[0055]  第１の処理ユニット１１０は、ＭＭＵ １１２を介して、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換する（４１０）。共通ページテーブルは、第１の処理ユニット１１０と第２の処理ユニット１２０に共通であり、アプリケーションによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納する。アプリケーションは、第１の処理ユニット１１０と第２の処理ユニット１２０の両方で実行中でありうる。共通ページテーブルは、第１の処理ユニット１１０および第２の処理ユニット１２０がメモリチャンクにアクセスするために使用するページエントリを含む。ページエントリはまた、メモリチャンクの物理アドレスを定義する物理アドレスビットを含む。
【００５３】
[0056]  第１の処理ユニット１２０は、物理メモリアドレスによって識別されるメモリチャンクにアクセスする（４２０）。ページエントリは、第１の処理ユニットによるメモリチャンクのアクセシビリティを定義する第１のセットの属性ビットを含む。第２の処理ユニット１２０は、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換する（４３０）。このように、第１の処理ユニット１１０および第２の処理ユニット１２０は、仮想メモリアドレスを物理メモリアドレスに変換するときに、同じ共通ページテーブルにアクセスする。第２の処理ユニット１２０は、物理メモリアドレスによって識別されるメモリチャンクにアクセスする（４４０）。ページエントリは、第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットを含む。この例では、第１の処理ユニット１１０および第２の処理ユニット１２０は、特定の仮想メモリアドレスを物理メモリアドレスに変換するとき、同じページエントリにアクセスするが、このページエントリは、第１の処理ユニット１１０および第２の処理ユニット１２０のための個別の属性ビットを有しうる。ページエントリはまた、第１の処理ユニット１１０と第２の処理ユニット１２０の両方に共通である属性を定義する第３のセットの属性ビットを含む。
【００５４】
[0057]  図４の例では、第１の処理ユニット１１０は、ＣＰＵであることができ、第２の処理ユニット１２０は、ＧＰＵであることができる。第１のセットの属性ビットは、第１の処理ユニット１１０がメモリチャンクへの書き込みアクセスを有するかどうかを定義し、また、第１の処理ユニット１１０がメモリチャンクへの読み取りアクセスを有するかどうかを定義しうる。第２のセットの属性ビットは、第２の処理ユニット１２０がメモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ第２の処理ユニット１２０がメモリチャンクへの読み取りアクセスを有するかどうかを定義しうる。第１の処理ユニット１１０によるメモリチャンクのアクセシビリティは、第２の処理ユニット１２０によるメモリチャンクのアクセシビリティとは異なりうる。例えば、第１のセットの属性に基づいて、第１の処理ユニット１１０は、メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有することができ、一方で、第２のセットの属性に基づいて、第２の処理ユニット１２０は、メモリチャンクへの読み取りのみのアクセスを有する。
【００５５】
[0058]  第１の処理ユニット１１０は、第１のＭＭＵ（例えば、ＭＭＵ １１２）を含むことができ、第２の処理ユニット１２０は、第２のＭＭＵ（例えば、ＭＭＵ １２２）を含むことができる。第１のＭＭＵは、共通ページテーブルにアクセスするように構成されることができ、第２のＭＭＵもまた、同じ共通ページテーブルにアクセスするように構成されることができる。
【００５６】
[0059]  システムメモリ２６の例は、それに限定されるものではないが、ランダムアクセスメモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、電気的消去可能プログラマブル読取専用メモリ（ＥＥＰＲＯＭ（登録商標））、ＣＤ−ＲＯＭまたはその他の光ディスク記憶装置、磁気ディスク記憶装置、またはその他の磁気記憶デバイス、フラッシュメモリ、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶または搬送するために使用可能であり、かつコンピュータまたはプロセッサによってアクセスされうるその他任意の媒体を含む。システムメモリ２６は、いくつかの例では、非一時的な記憶媒体とみなされる。「非一時的な」という用語は、記憶媒体が、搬送波または伝播信号で具現化されないことを示しうる。しかしながら、「非一時的な」という用語は、システムメモリ２６が移動不可能な（non-movable）ことを意味するように解釈されるべきではない。１つの例として、システムメモリ２６は、デバイス１０から取り除かれ、別のデバイスへ移動されうる。
別の例として、システムメモリ２６と実質的に同様の記憶デバイスが、デバイス１０に挿入されうる。ある特定の例では、非一時的な記憶媒体は、（例えば、ＲＡＭにおいて）経時的に変化しうるデータを記憶しうる。
【００５７】
[0060]  １つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせでインプリメントされうる。ソフトウェアでインプリメントされる場合、これら機能は、コンピュータ可読媒体上で１つまたは複数の命令またはコードとして記憶または送信され、ハードウェアベースの処理ユニットによって実行されうる。コンピュータ可読媒体は、例えば、通信プロトコルにしたがって、コンピュータプログラムの１つの場所から別の場所への移送を容易にする任意の媒体を含む通信媒体、またはデータ記憶媒体のような有形の媒体に対応するコンピュータ可読記憶媒体を含みうるこのように、コンピュータ可読媒体は一般的に、（１）非一時的である有形のコンピュータ可読記憶媒体、または（２）信号または搬送波のような通信媒体に対応しうる。データ記憶媒体は、本開示で説明された技法のインプリメンテーションのための命令、コード、および／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされうる任意の利用可能な媒体でありうる。コンピュータプログラム製品は、コンピュータ可読媒体を含みうる。
【００５８】
[0061]  限定ではなく例として、このようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたはその他の光ディスク記憶装置、磁気ディスク記憶装置、またはその他の磁気記憶デバイス、フラッシュメモリ、あるいは、データ構造または命令の形式で所望のプログラムコードを記憶するために使用可能であり、かつコンピュータによってアクセスされうるその他任意の媒体を備えうる。また、任意の接続は、厳密にはコンピュータ可読媒体と称される。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、電波、およびマイクロ波のような無線技術を使用して、ウェブサイト、サーバ、またはその他の遠隔ソースから送信される場合には、この同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、電波、およびマイクロ波のような無線技術は、媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないが、代わりとして非一時的な有形の記憶媒体を対象にすることが理解されるべきである。ここで使用される場合、ディスク（disk）およびディスク（disc）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光ディスク、デジタル多目的ディスク（ＤＶＤ）、フロッピー（登録商標）ディスクおよびブルーレイ（登録商標）ディスクを含み、ここで、ディスク（disks）は、通常磁気的にデータを再生し、一方ディスク（discs）は、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【００５９】
[0062]  命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等な集積されたまたはディスクリートな論理回路などの、１つまたは複数のプロセッサによって実行されうる。したがって、ここで使用される場合、「プロセッサ」という用語は、前述の構造、またはここで説明された技法のインプリメンテーションに適したその他任意の構造のいずれを称しうる。これに加えて、いくつかの態様では、ここで説明された機能は、符号化および復号のために構成された専用のハードウェアモジュールおよび／またはソフトウェアモジュール内で提供されることができ、または、組み合わされたコーデックに組み込まれることができる。また、これら技法は、１つまたは複数の回路または論理要素において完全にインプリメントされうる。
【００６０】
[0063]  本開示の技法は、無線ハンドセット、集積回路（ＩＣ）またはＩＣのセット（例えば、チップセット）を含む、幅広い様々なデバイスまたは装置でインプリメントされうる。様々な構成要素、モジュール、またはユニットは、本開示において、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために説明されているが、それらは、異なるハードウェアユニットによる実現を必ずしも必要とするわけではない。むしろ、上述されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わされうるか、または適切なソフトウェアおよび／またはファームウェアと併せて、上述のような１つまたは複数のプロセッサを含む、相互運用ハードウェアユニットの集合によって提供されうる。
【００６１】
[0064]  様々な例が説明された。これらの例および他の例は、以下の特許請求の範囲の範囲内にある。
【図１】
2018041485.tif 000003
【図２】
2018041485.tif 000004
【図３】
2018041485.tif 000005
【図４】
2018041485.tif 000006
【手続補正書】
【提出日】平成29年11月15日(2017.11.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の処理ユニットと、ここにおいて、前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備える、
第２の処理ユニットと、ここにおいて、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、
共通ページテーブル内に、前記第１の処理ユニットおよび前記第２の処理ユニットが、１つのメモリチャンクにアクセスするために使用するページエントリと、ここにおいて、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、メモリ内の前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備え、前記第１のセットの属性ビットによって定義される、前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２のセットの属性ビットによって定義される、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、
を格納するメモリと
を備える装置。
【請求項２】
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、請求項１に記載の装置。
【請求項３】
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
請求項１に記載の装置。
【請求項４】
前記第１のセットの属性ビットは、前記第１の処理ユニットが、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有することを定義し、前記第２のセットの属性ビットは、前記第２の処理ユニットが、前記メモリチャンクへの読み取りのみのアクセスを有することを定義する、請求項１に記載の装置。
【請求項５】
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項１に記載の装置。
【請求項６】
第１のメモリ管理ユニット（ＭＭＵ）と、ここにおいて、前記第１の処理ユニットは、前記第１のＭＭＵを備える、
第３の処理ユニットと、
入力／出力ＭＭＵ（ＩＯＭＭＵ）と、ここにおいて、前記ＩＯＭＭＵは、前記第２の処理ユニットと前記第３の処理ユニットによって共有される、
をさらに備え、
ここにおいて、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項１に記載の装置。
【請求項７】
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、請求項１に記載の装置。
【請求項８】
第１の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、ここにおいて、前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備える、
前記第１の処理ユニットによって、前記物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、
第２の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換することと、ここにおいて、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、
前記第２の処理ユニットによって、前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスすることと
を備え、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットと前記第２の処理ユニットに共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットおよび前記第２の処理ユニットが、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備え、前記第１のセットの属性ビットによって定義される、前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２のセットの属性ビットによって定義される、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、方法。
【請求項９】
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、請求項８に記載の方法。
【請求項１０】
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
請求項８に記載の方法。
【請求項１１】
前記第１のセットの属性に基づいて、前記第１の処理ユニットは、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理ユニットは、前記メモリチャンクへの読み取りのみのアクセスを有する、請求項８に記載の方法。
【請求項１２】
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項８に記載の方法。
【請求項１３】
第３の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換することと、
前記第３の処理ユニットによって、前記第２の物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと
をさらに備え、
ここにおいて、前記第２の処理ユニットと前記第３の処理ユニットは、入力／出力ＭＭＵ（ＩＯＭＭＵ）を共有し、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項８に記載の方法。
【請求項１４】
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、請求項８に記載の方法。
【請求項１５】
第１の処理手段と、
第２の処理手段と、
メモリと
を備え、
ここにおいて、前記第１の処理手段は、
前記メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換するための第１の手段と、
前記物理メモリアドレスによって識別されるメモリチャンクにアクセスするための第１の手段と、を備え、前記第１の処理手段は、中央処理ユニット（ＣＰＵ）を備え、
ここにおいて、前記第２の処理手段は、
前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換するための第２の手段と、
前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスするための第２の手段と、を備え、前記第２の処理手段は、グラフィックス処理ユニット（ＧＰＵ）を備え、
ここにおいて、前記共通ページテーブルは、前記第１の処理手段と前記第２の処理手段に共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理手段および前記第２の処理手段が、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理手段による前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理手段による同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備え、前記第１のセットの属性ビットによって定義される、前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２のセットの属性ビットによって定義される、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、装置。
【請求項１６】
前記ページエントリは、前記第１の処理手段と前記第２の処理手段の両方に共通である属性を定義する第３のセットの属性ビットを備える、請求項１５に記載の装置。
【請求項１７】
前記第１のセットの属性ビットは、前記第１の処理手段が前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理手段が前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理手段が前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理手段が前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
請求項１５に記載の装置。
【請求項１８】
前記第１のセットの属性に基づいて、前記第１の処理手段は、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理手段は、前記メモリチャンクへの読み取りのみのアクセスを有する、請求項１５に記載の装置。
【請求項１９】
前記第１の処理手段は、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理手段は、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項１５に記載の装置。
【請求項２０】
第３の処理手段をさらに備え、
ここにおいて、前記第３の処理手段は、
前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換するための第２の手段と、
前記第２の物理メモリアドレスによって識別される前記メモリチャンクにアクセスするための前記第２の手段と
を備える、請求項１５に記載の装置。
【請求項２１】
前記アプリケーションは、前記第１の処理手段と前記第２の処理手段の両方で実行中である、請求項１５に記載の装置。
【請求項２２】
命令を記憶した非一時的なコンピュータ可読記憶媒体であって、前記命令は、実行されると、第１の処理ユニットおよび第２の処理ユニットに、
前記第１の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、ここにおいて、前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備える、
前記第１の処理ユニットによって、前記物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、
前記第２の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換することと、ここにおいて、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、
前記第２の処理ユニットによって、前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスすることと
を行わせ、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットと前記第２の処理ユニットに共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットおよび前記第２の処理ユニットが、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備え、前記第１のセットの属性ビットによって定義される、前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２のセットの属性ビットによって定義される、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、非一時的なコンピュータ可読記憶媒体。
【請求項２３】
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、請求項２２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２４】
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
請求項２２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２５】
前記第１のセットの属性に基づいて、前記第１の処理ユニットは、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理ユニットは、前記メモリチャンクへの読み取りのみのアクセスを有する、請求項２２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２６】
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項２２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２７】
実行されると、第３の処理ユニットに、
前記第３の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換することと、
前記第３の処理ユニットによって、前記第２の物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと
を行わせるさらなる命令を記憶し、
ここにおいて、前記第２の処理ユニットと前記第３の処理ユニットは、入力／出力ＭＭＵ（ＩＯＭＭＵ）を共有し、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、請求項２２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項２８】
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、請求項２２に記載の非一時的なコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６１
【補正方法】変更
【補正の内容】
【００６１】
[0064]  様々な例が説明された。これらの例および他の例は、以下の特許請求の範囲の範囲内にある。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
第１の処理ユニットと、
第２の処理ユニットと、
前記第１の処理ユニットと前記第２の処理ユニットに共通であり、アプリケーションのジョブによってアクセスされる、メモリ内のメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納する共通ページテーブルと、
前記共通ページテーブル内に、前記第１の処理ユニットおよび前記第２の処理ユニットが、前記メモリチャンクのうちの１つのメモリチャンクにアクセスするために使用するページエントリと、ここにおいて、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリ内の前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える、
を格納する前記メモリと
を備える装置。
［Ｃ２］
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、Ｃ１に記載の装置。
［Ｃ３］
前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備え、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、Ｃ１に記載の装置。
［Ｃ４］
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
Ｃ１に記載の装置。
［Ｃ５］
前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、Ｃ１に記載の装置。
［Ｃ６］
前記第１のセットの属性ビットは、前記第１の処理ユニットが、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有することを定義し、前記第２のセットの属性ビットは、前記第２の処理ユニットが、前記メモリチャンクへの読み取りのみのアクセスを有することを定義する、Ｃ１に記載の装置。
［Ｃ７］
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、Ｃ１に記載の装置。
［Ｃ８］
第１のメモリ管理ユニット（ＭＭＵ）と、ここにおいて、前記第１の処理ユニットは、前記第１のＭＭＵを備える、
第３の処理ユニットと、
入力／出力ＭＭＵ（ＩＯＭＭＵ）と、ここにおいて、前記ＩＯＭＭＵは、前記第２の処理ユニットと前記第３の処理ユニットによって共有される、
をさらに備え、
ここにおいて、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、Ｃ１に記載の装置。
［Ｃ９］
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、Ｃ１に記載の装置。
［Ｃ１０］
第１の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、
前記第１の処理ユニットによって、前記物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、
第２の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換することと、
前記第２の処理ユニットによって、前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスすることと
を備え、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットと前記第２の処理ユニットに共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットおよび前記第２の処理ユニットが、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える、方法。
［Ｃ１１］
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、Ｃ１０に記載の方法。
［Ｃ１２］
前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備え、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、Ｃ１０に記載の方法。
［Ｃ１３］
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
Ｃ１０に記載の方法。
［Ｃ１４］
前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、Ｃ１０に記載の方法。
［Ｃ１５］
前記第１のセットの属性に基づいて、前記第１の処理ユニットは、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理ユニットは、前記メモリチャンクへの読み取りのみのアクセスを有する、Ｃ１０に記載の方法。
［Ｃ１６］
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、Ｃ１０に記載の方法。
［Ｃ１７］
第３の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換することと、
前記第３の処理ユニットによって、前記第２の物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと
をさらに備え、
ここにおいて、前記第２の処理ユニットと前記第３の処理ユニットは、入力／出力ＭＭＵ（ＩＯＭＭＵ）を共有し、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、Ｃ１０に記載の方法。
［Ｃ１８］
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、Ｃ１０に記載の方法。
［Ｃ１９］
第１の処理手段と、
第２の処理手段と、
メモリと
を備え、
ここにおいて、前記第１の処理手段は、
前記メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換するための第１の手段と、
前記物理メモリアドレスによって識別されるメモリチャンクにアクセスするための第１の手段と、を備え、
ここにおいて、前記第２の処理手段は、
前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換するための第２の手段と、
前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスするための第２の手段と、を備え、
ここにおいて、前記共通ページテーブルは、前記第１の処理手段と前記第２の処理手段に共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理手段および前記第２の処理手段が、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理手段による前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理手段による同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える、装置。
［Ｃ２０］
前記ページエントリは、前記第１の処理手段と前記第２の処理手段の両方に共通である属性を定義する第３のセットの属性ビットを備える、Ｃ１９に記載の装置。
［Ｃ２１］
前記第１の処理手段は、中央処理ユニット（ＣＰＵ）を備え、前記第２の処理手段は、グラフィックス処理ユニット（ＧＰＵ）を備える、Ｃ１９に記載の装置。
［Ｃ２２］
前記第１のセットの属性ビットは、前記第１の処理手段が前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理手段が前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理手段が前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理手段が前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
Ｃ１９に記載の装置。
［Ｃ２３］
前記第１の処理手段による前記メモリチャンクの前記アクセシビリティは、前記第２の処理手段による前記メモリチャンクの前記アクセシビリティとは異なる、Ｃ１９に記載の装置。
［Ｃ２４］
前記第１のセットの属性に基づいて、前記第１の処理手段は、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理手段は、前記メモリチャンクへの読み取りのみのアクセスを有する、Ｃ１９に記載の装置。
［Ｃ２５］
前記第１の処理手段は、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理手段は、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、Ｃ１９に記載の装置。
［Ｃ２６］
第３の処理手段をさらに備え、
ここにおいて、前記第３の処理手段は、
前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換するための第２の手段と、
前記第２の物理メモリアドレスによって識別される前記メモリチャンクにアクセスするための前記第２の手段と
を備える、Ｃ１９に記載の装置。
［Ｃ２７］
前記アプリケーションは、前記第１の処理手段と前記第２の処理手段の両方で実行中である、Ｃ１９に記載の装置。
［Ｃ２８］
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されると、第１の処理ユニットおよび第２の処理ユニットに、
前記第１の処理ユニットによって、メモリに格納された共通ページテーブルを使用して、仮想メモリアドレスを物理メモリアドレスに変換することと、
前記第１の処理ユニットによって、前記物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと、
前記第２の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、前記仮想メモリアドレスを前記物理メモリアドレスに変換することと、
前記第２の処理ユニットによって、前記物理メモリアドレスによって識別される前記メモリチャンクにアクセスすることと
を行わせ、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットと前記第２の処理ユニットに共通であり、アプリケーションのジョブによってアクセスされるメモリチャンクのための仮想メモリアドレスから物理メモリアドレスへのマッピングを格納し、
ここにおいて、前記共通ページテーブルは、前記第１の処理ユニットおよび前記第２の処理ユニットが、前記メモリチャンクにアクセスするために使用するページエントリを備え、前記ページエントリは、前記第１の処理ユニットによる前記メモリチャンクのアクセシビリティを定義する第１のセットの属性ビットと、前記第２の処理ユニットによる同じメモリチャンクのアクセシビリティを定義する第２のセットの属性ビットと、前記メモリチャンクの物理アドレスを定義する物理アドレスビットとを備える、コンピュータ可読記憶媒体。
［Ｃ２９］
前記ページエントリは、前記第１の処理ユニットと前記第２の処理ユニットの両方に共通である属性を定義する第３のセットの属性ビットを備える、Ｃ２８に記載のコンピュータ可読記憶媒体。
［Ｃ３０］
前記第１の処理ユニットは、中央処理ユニット（ＣＰＵ）を備え、前記第２の処理ユニットは、グラフィックス処理ユニット（ＧＰＵ）を備える、Ｃ２８に記載のコンピュータ可読記憶媒体。
［Ｃ３１］
前記第１のセットの属性ビットは、前記第１の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第１の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義し、
前記第２のセットの属性ビットは、前記第２の処理ユニットが前記メモリチャンクへの書き込みアクセスを有するかどうかを定義し、かつ前記第２の処理ユニットが前記メモリチャンクへの読み取りアクセスを有するかどうかを定義する、
Ｃ２８に記載のコンピュータ可読記憶媒体。
［Ｃ３２］
前記第１の処理ユニットによる前記メモリチャンクの前記アクセシビリティは、前記第２の処理ユニットによる前記メモリチャンクの前記アクセシビリティとは異なる、Ｃ２８に記載のコンピュータ可読記憶媒体。
［Ｃ３３］
前記第１のセットの属性に基づいて、前記第１の処理ユニットは、前記メモリチャンクへの読み取りアクセスおよび書き込みアクセスを有し、前記第２のセットの属性に基づいて、前記第２の処理ユニットは、前記メモリチャンクへの読み取りのみのアクセスを有する、Ｃ２８に記載のコンピュータ可読記憶媒体。
［Ｃ３４］
前記第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、前記第２の処理ユニットは、第２のＭＭＵを備え、前記第１のＭＭＵは、前記共通ページテーブルにアクセスするように構成され、前記第２のＭＭＵは、前記共通ページテーブルにアクセスするように構成される、Ｃ２８に記載のコンピュータ可読記憶媒体。
［Ｃ３５］
実行されると、第３の処理ユニットに、
前記第３の処理ユニットによって、前記メモリに格納された前記共通ページテーブルを使用して、第２の仮想メモリアドレスを第２の物理メモリアドレスに変換することと、
前記第３の処理ユニットによって、前記第２の物理メモリアドレスによって識別されるメモリチャンクにアクセスすることと
を行わせるさらなる命令を記憶し、
ここにおいて、前記第２の処理ユニットと前記第３の処理ユニットは、入力／出力ＭＭＵ（ＩＯＭＭＵ）を共有し、前記ＩＯＭＭＵは、前記共通ページテーブルにアクセスするように構成される、Ｃ２８に記載のコンピュータ可読記憶媒体。
［Ｃ３６］
前記アプリケーションは、前記第１の処理ユニットと前記第２の処理ユニットの両方で実行中である、Ｃ２８に記載のコンピュータ可読記憶媒体。
【外国語明細書】
2018041485000001.pdf