(57)【要約】  デバイスは、第１のページテーブルエントリを含む第１のページテーブルを記憶するメモリを含み、ここにおいて、第１のページテーブルエントリは、物理アドレス、ページテーブルエントリに関連付けられる代替の場所、および物理アドレスに関連付けられるメモリの物理ページをさらに含む。第１の処理ユニットは、第１のページテーブルエントリを読み取り、および第１のページテーブルエントリから物理アドレスを決定するように構成される。第２の処理ユニットは、第１のページテーブルエントリから物理アドレスを読み取り、代替の場所から第２のページ属性データを決定し、ここにおいて、第２のページ属性データは、前記第２の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、および１つまたは複数のアクセス可能性にしたがって、物理アドレスに関連付けられるメモリの物理ページにアクセスするように構成される。
2016517992.tif 000002
【特許請求の範囲】
【請求項１】
第１の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、
前記第１の処理ユニットを用いて、前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、前記第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２の処理ユニットを用いて、前記第１のページテーブル内の前記第１のページテーブルエントリから前記物理アドレスを読み取ることと、
前記第２の処理ユニットを用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、
前記第２の処理ユニットを用いて、前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を備える、メモリにアクセスする方法。
【請求項２】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定することは、
前記第２の処理ユニットを用いて、前記第１のページテーブルエントリを読み取ることと並行して、前記第２のページテーブルエントリから前記第２のページ属性データを決定することをさらに備える、請求項１に記載の方法。
【請求項３】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記方法は、
前記第２の処理ユニットを用いて、前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取ることをさらに備え、
ここにおいて、前記第２のページ属性データを決定することは、
前記第２の処理ユニットを用いて、前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別することをさらに備える、請求項１に記載の方法。
【請求項４】
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、請求項３に記載の方法。
【請求項５】
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項１に記載の方法。
【請求項６】
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、請求項５に記載の方法。
【請求項７】
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第２の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせることをさらに備え、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、請求項１に記載の方法。
【請求項８】
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、請求項７に記載の方法。
【請求項９】
前記第１の処理ユニットを用いて、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取ることをさらに備え、
ここにおいて、前記第２のページ属性データを決定することは、前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２の処理ユニットを用いて、前記第２のページ属性データを決定することをさらに備える、請求項１に記載の方法。
【請求項１０】
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、請求項１に記載の方法。
【請求項１１】
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項１に記載の方法。
【請求項１２】
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、請求項１に記載の方法。
【請求項１３】
前記第１の処理ユニットは第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理ユニットは第２のＭＭＵを備え、ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成され、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成される、請求項１２に記載の方法。
【請求項１４】
第１のページテーブルエントリを含む第１のページテーブルと、ここにおいて、前記第１のページテーブルエントリは物理アドレスをさらに含み、
前記第１のページテーブルエントリに関連付けられる代替の場所と、
前記物理アドレスに関連付けられるメモリの物理ページと、
を記憶するための手段と、
第１の処理をするための手段と、ここにおいて、前記第１の処理をするための手段は、
前記物理アドレスを前記第１のページテーブルエントリから読み取るための手段と、
前記第１のページテーブルエントリから第１のページ属性データを決定するための手段と、ここにおいて、前記第１のページ属性データは、前記第１の処理をするための手段に関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスを用いてメモリの物理ページにアクセスするための手段と、
を備え、
第２の処理をするための手段と、ここにおいて、前記第２の処理をするための手段は、
前記第１のページテーブルエントリを前記第１のページテーブルから読み取るための手段と、
前記第１のページテーブルエントリから前記物理アドレスを決定するための手段と、
前記代替の場所から第２のページ属性データを決定するための手段と、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理をするための手段に関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスするための手段と、
を備え、
を備える装置。
【請求項１５】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第１のページ属性データを決定するための前記手段と並行して、前記第２のページテーブルエントリから前記第２のページ属性データを決定するための手段をさらに備える、請求項１４に記載の装置。
【請求項１６】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記第２の処理をするための手段は、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取るための手段をさらに備え、
ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別するための手段をさらに備える、請求項１４に記載の装置。
【請求項１７】
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、請求項１６に記載の装置。
【請求項１８】
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項１４に記載の装置。
【請求項１９】
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、請求項１８に記載の装置。
【請求項２０】
前記第２の処理をするための手段は、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせるための手段をさらに備え、
ここにおいて、前記第２の処理をするための手段が、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、請求項１４に記載の装置。
【請求項２１】
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、請求項２０に記載の装置。
【請求項２２】
前記第１の処理をするための手段は、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取るための手段をさらに備え、
ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定するための手段をさらに備える、請求項１４に記載の装置。
【請求項２３】
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、請求項１４に記載の装置。
【請求項２４】
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項１４に記載の装置。
【請求項２５】
前記第１の処理をするための手段はＣＰＵであり、ならびに前記第２の処理をするための手段はＧＰＵである、請求項１４に記載の装置。
【請求項２６】
前記第１の処理をするための手段は第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理をするための手段は第２のＭＭＵを備え、
ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするために構成された手段を備え、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするための手段を備える、請求項２５に記載の装置。
【請求項２７】
第１のページテーブルエントリを含む第１のページテーブルと、ここにおいて、前記第１のページテーブルエントリは物理アドレスをさらに含み、
前記第１のページテーブルエントリに関連付けられる代替の場所と、
前記物理アドレスに関連付けられるメモリの物理ページと、
を記憶するメモリと、
前記物理アドレスを前記第１のページテーブルから読み取ることと、
前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行うように構成された前記第１の処理ユニットと、
前記第１のページテーブルエントリを前記第１のページテーブルから読み取ることと、
前記第１のページテーブルエントリから前記物理アドレスを決定することと、
前記代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行うように構成された前記第２の処理ユニットと、
を備える、装置。
【請求項２８】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、前記第２のページテーブルエントリから前記第２のページ属性データを決定することと前記第１のページテーブルエントリを読み取ることを並行して行うようにさらに構成される、請求項２７に記載の装置。
【請求項２９】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記第２の処理ユニットは、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取るようにさらに構成され、
ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別するようにさらに構成される、請求項２７に記載の装置。
【請求項３０】
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、請求項２９に記載の装置。
【請求項３１】
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項２７に記載の装置。
【請求項３２】
前記ポインタ値は、仮想アドレスおよび物理アドレスのうちの少なくとも１つを備える、請求項３１に記載の装置。
【請求項３３】
前記第２の処理ユニットは、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせるようにさらに構成され、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、請求項２７に記載の装置。
【請求項３４】
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、請求項３３に記載の装置。
【請求項３５】
前記第１の処理ユニットは、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取るようにさらに構成され、
ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定するようにさらに構成される、請求項２７に記載の装置。
【請求項３６】
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、請求項２７に記載の装置。
【請求項３７】
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項２７に記載の装置。
【請求項３８】
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、請求項２７に記載の装置。
【請求項３９】
前記第１の処理をするための手段は、第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理をするための手段は第２のＭＭＵを備え、
ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするために構成された手段を備え、および
前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするための手段を備える、請求項３８に記載の装置。
【請求項４０】
命令を記憶した非一時的なコンピュータ可読記憶媒体であって、実行されると、第１の処理ユニットと第２の処理ユニットに、
第１の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、
前記第１の処理ユニットを用いて、前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、前記第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２の処理ユニットを用いて、前記第１のページテーブル内の前記第１のページテーブルエントリから前記物理アドレスを読み取ることと、
前記第２の処理ユニットを用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、
前記第２の処理ユニットを用いて、前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行わせる、非一時的なコンピュータ可読記憶媒体。
【請求項４１】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２の処理ユニットに前記第２のページ属性データを決定させる命令は、実行されると、前記第２の処理ユニットに、
前記第２のページテーブルエントリから前記第２のページ属性データを決定することと前記第１のページテーブルエントリを読み取ることを並行して行わせる命令をさらに備える、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４２】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、
実行されると、前記第２の処理ユニットに、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取らせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットに、前記第２のページ属性データを決定させる命令は、実行されると、前記第２の処理ユニットに、
前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別させる命令をさらに備える、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４３】
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、請求項４２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４４】
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４５】
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、請求項４４に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４６】
実行されると、前記第２の処理ユニットに、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせること行わせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４７】
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、請求項４６に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４８】
実行されると、前記第１の処理ユニットに、
前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取らせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットに前記第２のページ属性データを決定することを行わせる命令は、実行されると、前記第２の処理ユニットに、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定させる命令をさらに備える、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４９】
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５０】
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５１】
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５２】
前記第１の処理ユニットは第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理ユニットは第２のＭＭＵを備え、ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成され、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成される、請求項５１に記載の非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]本願は、２０１２年８月２日に出願された米国特許出願番号１３／５６５，４３４に関連し、その全体の内容はここで参照により組み込まれる。
【０００２】
[0002]本開示は一般的に演算（computing）に関し、さらに具体的には仮想メモリアドレス空間を物理メモリアドレス空間にマッピングするための技術に関する。
【背景技術】
【０００３】
[0003]典型的な演算システムは、中央処理ユニット（ＣＰＵ）およびグラフィックス処理ユニット（ＧＰＵ）のような複数の処理ユニットを含み、それらは物理メモリからの読み取りおよび物理メモリへの書き込みを行う。デバイスの様々な処理ユニットは、クライアントによって実行されるアプリケーションが、連続した（contiguous）物理メモリ空間を確保する（set aside）必要なく連続した仮想アドレス空間を割り当てられ得るといった仮想アドレス方式を実行し得る。各処理ユニットは、典型的に、仮想メモリアドレスを物理メモリ内の物理アドレスに変換するためのメモリ管理ユニット（ＭＭＵ）を有する物理アドレスに対して要求された仮想アドレスマッピングを実行するために、各ＭＭＵは、システムメモリに別個のページテーブルを保持し、これら別個のページテーブルの各々は数メガバイトのサイズであり得る。
【発明の概要】
【０００４】
[0004]一般的に、本開示で説明される技術は、仮想アドレスの物理アドレスへのマッピングを実施する演算デバイスに関する。本開示の技術にしたがって、２つ以上の処理ユニットが仮想アドレスを物理アドレスにマッピングするために共通のページテーブルを共有し得る。第１の処理ユニットは、仮想アドレスを物理アドレスにマッピングするために第１のページテーブルエントリを読み取り得る。第２の処理ユニットは、仮想アドレスから物理アドレスにマッピングするときに第１のページテーブルエントリと追加の第２のページテーブルエントリを読み取り得る。単一の第１のテーブルエントリは、第１の処理ユニットに関する物理メモリアドレスに関連付けられるメモリページの属性を含み得る。第２のページテーブルエントリは、第２の処理ユニットに関する同じ物理メモリアドレスの属性に対応する追加の属性セットを含み得る。さらに、第１のページテーブルエントリは、追加のページテーブルエントリを含む第２の処理ユニットに関する第２のページテーブルエントリを識別するデータを含み得る。属性フィールドの複数のセットを用いて、第１および第２の処理ユニットに関するメモリページの許可を備え得る属性が個々に管理され得る。例えば、本開示で説明される技術は、第１および第２の処理ユニットに関するメモリのページの読み取り／書き込み、実行、キャッシング（caching）、および他の属性および／または許可の個々の管理を可能にし得る。
【０００５】
[0005]一例にしたがって、装置は、第１のページテーブルエントリを含む第１のページテーブルを記憶するメモリを含み、ここにおいて、第１のページテーブルエントリは、物理アドレスと、第１のページテーブルエントリに関連付けられる代替の場所と、物理アドレスに関連付けられるメモリの物理ページとをさらに含む。第１の処理ユニットは、物理アドレスを第１のページテーブルから読み取ることと、第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、第１のページ属性データは、第１の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、および第１のページ属性データの１つまたは複数のアクセス可能性属性にしたがって、物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、を行うように構成される。第２の処理ユニットは、第１のページテーブルエントリを第１のページテーブルから読み取ることと、第１のページテーブルエントリから物理アドレスを決定することと、代替の場所から第２のページ属性データを決定することと、ここにおいて、代替の場所は、第１のページテーブルエントリに関連付けられ、第２のページ属性データは、第２の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、および第２のページ属性データの１つまたは複数のアクセス可能性属性にしたがって、物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、を行うように構成される。
【０００６】
[0006]別の例にしたがって、メモリにアクセスする方法は、第１の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、第１の処理ユニットを用いて、第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、第１のページ属性データは、第１の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、第２の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、第２の処理ユニットを用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、代替の場所は、第１のページテーブルエントリに関連付けられ、第２のページ属性データは、第２の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、第１の処理ユニットを用いて、第１のページ属性データの１つまたは複数のアクセス可能性属性にしたがって物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、および第２の処理ユニットを用いて、第２のページ属性データの１つまたは複数のアクセス可能性属性にしたがって物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、を含む。
【０００７】
[0007]別の例にしたがって、装置は、第１のページテーブルエントリを含む第１のページテーブルを記憶するための手段を含み、ここにおいて、第１のページテーブルエントリは、第１のページテーブルエントリに関連付けられる代替の場所の物理アドレスと物理アドレスに関連付けられるメモリの物理ページとをさらに含む。装置は、第１の処理をするための手段を含み、ここにおいて、第１の処理をするための手段は、第１のページテーブルエントリから物理アドレスを読み取るための手段と、第１のページテーブルエントリから第１のページ属性データを決定するための手段と、ここにおいて、第１のページ属性データは、第１の処理をするための手段に関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、第１のページ属性データの１つまたは複数のアクセス可能性属性にしたがって物理アドレスを用いてメモリの物理ページにアクセスするための手段と、を備える。装置は、第２の処理をするための手段を含み、ここにおいて、第２の処理をするための手段は、第１のページテーブルエントリを第１のページテーブルから読み取るための手段と、第１のページテーブルエントリから物理アドレスを決定するための手段と、代替の場所から第２のページ属性データを決定するための手段と、ここにおいて、代替の場所は、第１のページテーブルエントリに関連付けられ、第２のページ属性データは、第２の処理をするための手段に関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、第２のページ属性データの１つまたは複数のアクセス可能性属性にしたがって物理アドレスに関連付けられるメモリの物理ページにアクセスするための手段と、を備える。
【０００８】
[0008]別の例にしたがって、非一時的なコンピュータ可読記憶媒体は、実行されると、第１の処理ユニットと第２の処理ユニットに、第１の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、第１の処理ユニットを用いて、第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、第１のページ属性データは、第１の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、第２の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、第２の処理ユニットを用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、代替の場所は第１のページテーブルエントリに関連付けられ、および第２のページ属性データは、第２の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、第１の処理ユニットを用いて、第１のページ属性データの１つまたは複数のアクセス可能性属性にしたがって物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、および第２の処理ユニットを用いて、第２のページ属性データの１つまたは複数のアクセス可能性属性にしたがって物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、を行わせる命令を記憶する。
【図面の簡単な説明】
【０００９】
【図１】[0009]図１は、本開示の技術にしたがって、仮想メモリアドレスを物理メモリアドレスにマッピングする技術を実施するように構成された演算デバイスを示す概念図である。
【図２】[0010]図２は、本開示の技術にしたがって、仮想メモリアドレスを物理メモリアドレスにマッピングするための技術の例を示す概念図である。
【図３】[0011]図３は、本開示の技術にしたがって、仮想メモリアドレスを物理メモリアドレスにマッピングするための技術の例を示す概念図である。
【図４】[0012]図４は、本開示の技術にしたがって、仮想メモリアドレスを物理メモリアドレスにマッピングするための技術の例を示す概念図である。
【図５】[0013]図５は、本開示の技術にしたがって説明された仮想メモリアドレスを物理メモリアドレスにマッピングする技術を示すフロー図である。
【詳細な説明】
【００１０】
[0014]一般的に、本開示において説明される技術は、物理アドレスへの仮想アドレスのマッピングを実施する演算デバイスに関し、本開示では、仮想−物理マッピングとも称される。さらに具体的には、本開示で説明される技術は、２つ以上の処理ユニットに関する複数の属性セットをサポートする仮想メモリアーキテクチャを対象としている。いくつかの例において、共通のページテーブルの第１のページテーブルエントリは、第１の属性データのセット、例えば、第１の処理ユニット（例えばＣＰＵ）に関する属性データのセットを含み得る。第１のページテーブルエントリはまた、代替の場所に関連付けられるデータをも含み得、および代替の場所は、他の属性データと同様に、第２の処理ユニット（例えばＧＰＵ）に関する属性データを含み得る。属性データの複数のセットを使用して、２つ以上の処理ユニットに関するメモリページのアクセス可能性は別個に管理され得る。例えば、本開示で説明される技術は、第１および第２の処理ユニットに関するメモリのページの読み取り／書き込み、実行、キャッシング、および他のアクセス可能性属性の個別の管理を可能にし得る。
【００１１】
[0015]中央処理装置（ＣＰＵ）およびグラフィックス処理ユニット（ＧＰＵ）のような処理ユニットは、システムメモリにアクセス（例えば、システムメモリからの読み取りおよびシステムメモリへの書き込み）し得る。システムにアクセスするために、処理ユニットは、データがメモリ内の場所に関連付けられる物理アドレスを使用して、読み取りまたは書き込みが行われるべきシステムメモリ内の場所にアクセスする。しかし、処理ユニットにとって、メモリページ（すなわちデータが書き込みまたは読み取られるべき物理メモリの場所）の全てに関する物理アドレスを管理することは困難であり得る。この困難を克服するために、処理ユニットは仮想アドレス指定を使用し得る。仮想アドレス指定の際に、処理ユニット（すなわちクライアントアプリケーション）で実行する。アプリケーションは、連続した仮想メモリアドレスが割り当てられる。アプリケーションは、異なる処理ユニットで実行する異なるジョブを有する複数のジョブを備え得る。各処理ユニットは、それぞれメモリ管理ユニット（ＭＭＵ）を含み得る。処理ユニットの各々のＭＭＵは、仮想メモリアドレスから物理メモリアドレスとも呼ばれる実際のメモリアドレスを決定する役割を担っている。
【００１２】
[0016]例えば、ＭＭＵは、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）と呼ばれるキャッシュを含む。ＴＬＢは、最近アクセスされたメモリチャンク（memory chunks）または頻繁にアクセスされたメモリチャンクのような選択されたメモリチャンクに関する仮想−物理アドレスマッピングを記憶する。メモリの「ページ」と呼ばれるメモリチャンクにアクセスするために、処理ユニットは、そのメモリページに関する仮想メモリアドレスをＭＭＵに供給する。代わりに、ＭＭＵはそのメモリページに関する物理メモリアドレスを識別するために、ＴＬＢにアクセスする。マッピングが（ＴＬＢヒットと呼ばれる）ＴＬＢにおいて使用可能な場合、ＭＭＵは次に物理メモリアドレスを使用してメモリページにアクセスする。あるいはＭＭＵは、物理メモリアドレスを使用してメモリページに次にアクセスする処理ユニットの異なるユニットまたはモジュールに物理メモリアドレスを供給する。
【００１３】
[0017]いくつかの場合において、ＴＬＢは仮想メモリアドレス（ＴＬＢ  ｍｉｓｓと呼ばれる）に関するマッピングすることを含まなくても良い。例えば、メモリページが最近アクセスされたメモリページではないか、または頻繁にアクセスされたメモリページではないという理由で、処理ユニットは、物理アドレスがＴＬＢによって記憶されたページエントリに含まれていないメモリページにアクセスする必要があり得る。このことが生じる場合、処理ユニットはシステムメモリに記憶されたページテーブルにアクセスする。
【００１４】
[0018]両方が、仮想メモリアドレスの物理メモリアドレスへのページエントリマッピングを記憶するという点で、ページテーブルはＴＬＢに類似する。ページテーブルまたはＴＬＢにおいて、１つのページテーブルエントリは、１つの仮想メモリアドレスを１つの物理メモリアドレスにマッピングする。しかし、処理ユニットのＭＭＵ内にローカルに記憶されるＴＬＢとは対照的に、ページテーブルはシステムメモリに記憶される。同様に、ページテーブルは、ＴＬＢのように限定的された数のページエントリではなく処理ユニットに関する仮想−物理アドレスマッピング全体を記憶するため、ページテーブルのサイズは、ＴＬＢのサイズより一般的にかなり大きい。例えば、ページテーブルのサイズはメガバイトのサイズであり得る。
【００１５】
[0019]いくつかの技術において、システムメモリは、処理ユニットの各々に関する対応するページテーブルを記憶する。例えば、システムメモリは、ＣＰＵに関するページテーブルを記憶し、かつＧＰＵに関する別の別個のページテーブルを記憶する。しかし、いくつかの例において、これらの異なるページテーブルは、同一のページテーブルエントリを含む。したがって、ＣＰＵページテーブル内の複数のページテーブルエントリは、ＧＰＵページテーブル内のページテーブルエントリに等しい可能性があり得る。例えば、ＣＰＵページテーブル内のページテーブルエントリは、１つの仮想メモリアドレスを物理メモリアドレスにマッピングし得、およびＧＰＵページテーブル内のページテーブルエントリが同じ仮想メモリアドレスを同じ物理メモリアドレスにマッピングすることもあり得る。
【００１６】
[0020]一例として、ＣＰＵで実行するオペレーティングシステムは、連続した仮想メモリアドレスをアプリケーションに割り当てる役割を担い得る。アプリケーションは、ＣＰＵで実行するいくつかのジョブとＧＰＵで実行するいくつかのジョブと共に複数のジョブまたはタスクを含み得る。オペレーティングシステムはまた、ページテーブル内の仮想メモリアドレスと物理メモリアドレスの間のマッピングを記憶し得る。オペレーティングシステムは、仮想メモリアドレスの割り当てとこれらの仮想メモリアドレスをＣＰＵとＧＰＵの両方に関する物理アドレスにマッピングする役割を担っているため、オペレーティングシステムは、ＣＰＵとＧＰＵの両方に共通する仮想−物理マッピングを記憶する共通のページテーブルを作成し得る。
【００１７】
[0021]ＣＰＵおよびＧＰＵが、共通の仮想−物理マッピングを共有する点で利点があり得る。例えば、システムメモリが複数の重複する（duplicate）ページテーブルエントリを記憶するのではなく、システムメモリは、ＣＰＵのページテーブルとＧＰＵのページテーブル内の同一のページテーブルエントリに関する単一のページエントリを記憶することができ、その結果メモリを節約できる。さらに、これら複数の同一のページテーブルエントリに関する１つのページエントリが存在するので、２つの同一のページテーブルエントリの代わりに単一のページテーブルエントリを更新することは、コンピュータ的により効率的であり得る。
【００１８】
[0022]いくつかの先行技術がページテーブルの共有を実現するために開発されてきたこれらの技術において、ＣＰＵ  ＭＭＵおよびＧＰＵ  ＭＭＵはそれぞれ、システムメモリに共通のページテーブルの場所を指すポインタを記憶する。ＣＰＵおよびＧＰＵがメモリページにアクセスするとき、それらの各ＭＭＵは、共有されたページテーブルから物理メモリアドレスを検出するためにそれらのポインタを使用する。しかし、ページテーブルを共有するためのこれらの技術は、時々、メモリページに関する異なる処理ユニットのアクセス機能および／または許可を特定できないことに悩まされる（suffer from）。
【００１９】
[0023]異なるアクセス機能は異なる処理ユニットに関連付けられ得る。例えば、ページエントリは処理ユニットのワードサイズに依存して、従来３２ビットまたは６４ビットである。処理ユニットのアーキテクチャに依存して、ビットの数がメモリのページの物理アドレスを特定し、および残りのビットが属性データのためにリザーブされ得る。属性データは、その特定のメモリのページに関する１つまたは複数の処理ユニットのアクセス機能および／または許可を特定し得る。一例として、メモリページのうちのいくつかは、読み取り可能および書き込み可能になるように設計され得、および他のメモリページは読み取り可能にのみなるように設計され得る。同様に、属性データは、メモリページがキャッシュ可能、（ＴＬＢのように、キャッシュからメインメモリに書き戻される必要がある）ダーティ、または１つまたは複数の処理ユニットによって実行可能であるかどうかを示し得る。１つまたは複数のビットを備え得る、属性データの１つまたは複数のフィールドは、これらのアクセス可能性の制限および／または許可を実施（enforce）および示す。
【００２０】
[0024]メモリページを読み取り可能および書き込み可能、または読み取り可能のみと指定するフィールドに加えて、属性フィールドの他の例が存在し得る。例えば、属性データの１つまたは複数の他のフィールドは、あるメモリページ内のデータが非実行可能、内部キャッシュ可能、外部キャッシュ可能、共有可能、バッファ可能、ダーティ、および／または１つまたは複数のスーパーバイザまたはハイパーバイザによってアクセス可能であることを示し得る。ページが非実行可能である場合、１つまたは複数のプロセッサは、メモリページのコンテンツを実行し得ない。非実行可能な属性許可は、例えば悪意のあるコードがメモリページのコンテンツを実行するのを防ぐのに有益であり得る。
【００２１】
[0025]いくつかの例において、ページテーブルエントリの属性データは、メモリページのコンテンツが内部キャッシュ可能または外部キャッシュ可能であることを示し得る。内部キャッシュ可能と示されたメモリページのコンテンツは、１つまたは複数の「内部」キャッシュ（例えばＬ１キャッシュまたは処理ユニットに比較的より近いキャッシュ）に記憶されるのみであり得る。一方で、外部キャッシュ可能とマークされたページは、一例として、１つまたは複数の外部キャッシュ、すなわち、例えばＬ１キャッシュではなく、Ｌ２キャッシュまたはＬ３キャッシュによってキャッシュされ得るのみである。
【００２２】
[0026]ページテーブルエントリはまた、メモリページが共有可能であることを示し得る。メモリのページは、２つ以上の処理がメモリのページへのアクセスを共有し得る場合、共有可能であり得、それは、共有されたライブラリのように、共通で使用されるメモリページに関するメモリ消費量を低減するために有益であり得る。ページテーブルエントリ属性データはまたメモリページをダーティとマークし得る。ページテーブルエントリの属性データがページを「ダーティ」とマークする場合、メモリページのコンテンツが変わってしまうことがあり、第１の処理ユニット１１０または第２の処理ユニット１２０のような処理ユニットは、メモリページをシステムメモリ、例えば外部レベルキャッシュまたはシステムメモリ１３０に書き戻す必要があり得る。
【００２３】
[0027]属性データはまた、メモリページがスーパーバイザまたはハイパーバイザの許可を有しているかどうかを示し得る。メモリページがハイパーバイザ許可を有する場合、そのページ内で実行するコードは、スーパーバイザ許可またはユーザレベル許可といったより低い許可レベルを有するコードを、例えば、修正または管理し得る。ハイパーバイザ許可は、例えば仮想化されたオペレーティングシステム（「ゲストオペレーティングシステム」とも呼ばれる）または他の仮想化されたリソースを管理するために有益であり得る。同様に、スーパーバイザ許可は、管理アプリケーション、例えば１つまたは複数のオペレーティングシステムで実行するアプリケーションといったオペレーティングシステム（ＯＳ）レベルのタスクを実行するために有益であり得る。
【００２４】
[0028]ページテーブルエントリはまた、ページが「ライトバック」であるかまたは「ライトスルー」であるかを示す属性データを含み得る。メモリの「ライトバック」ページは、システムメモリ、例えばシステムメモリ１３０のより高いレベルまたはキャッシュのより高い（例えば外部または「バッキングストア」）レベルおよび内部キャッシュに同時に書き戻されなくてはならない。それとは対照的に、ページテーブル属性データがページを「ライトバック」とマークする場合、処理ユニットは、始めにメモリページをキャッシュに書き込み得るが、メモリページを含むキャッシュブロックが、新しいデータを用いて修正されるおよび／またはと交換されようとするまで、変更されたコンテンツをキャッシュのより高い（例えば外部またはバッキングストア）レベルに書き戻すのを延期し得る。
【００２５】
[0029]ページテーブルエントリの属性データはまた、メモリページがバッファ可能であるかどうかを示し得る。属性データが、ページがバッファ可能であることを示す場合、処理ユニットは、システムの性能を向上させるために、メモリページのコンテンツを書き込みバッファに書き込み得る。いくつかの例において、処理ユニットは、システムメモリ１３０の特定の領域をバッファ可能であるとマークし得、およびＩ／Ｏメモリスペース（例えばメモリマップされたＩ／Ｏ専用のメモリスペース）のような他の領域をバッファ可能ではないとマークし得る。
【００２６】
[0030]さらに別の例において、１つまたは複数のページテーブル属性データフィールドは、メモリページに関するメモリオーダリング（例えばストロングオーダリング、ウィークオーダリング、リラックスオーダリング）を示し得る。ページテーブルエントリの属性データが、メモリのページが強く順序付けられていることを示す場合、そのページと相互に作用する全ての機械命令は、取得および解放セマンティクスを暗黙的に備える（comes implicitly with acquire and release semantics）。その結果、１つの処理ユニットが一連の書き込みを実行するとき、他の全ての処理ユニットは、それらが書き込まれたのと同じ順序でそれらの値が変化することを理解する。ページテーブルエントリの属性データが、メモリページが弱く順序付けられていることを示す場合、書き込みおよび読み取りは、明白なメモリ障壁によってのみ限定されたリオーダリングによって任意に再度順序付けされ得る。
【００２７】
[0031]上述した属性データの任意の組み合わせは、ページテーブルエントリに含まれ得る。上述された属性データの具体例は、単にいくつかの非限定的な例である。属性データの他のタイプおよび組み合わせはまた、ページテーブルエントリに含まれ得る。上述した非限定的な具体例に記載された方法において、ページテーブルエントリの属性データフィールド値は本開示の技術にしたがって、処理ユニットに関する物理メモリページのアクセス可能性および／または許可を示し得る。
【００２８】
[0032]いくつかの例において、１つの処理ユニットは、メモリの同じページに関する別の処理ユニットとは異なるアクセス可能性許可（accessibility permissions）を必要とすることがある。例えば、ＣＰＵで実行するオペレーティングシステムは、メモリのいくつかのページをＣＰＵによって書き込みおよび読み取り可能であると指定し、ならびにこれらの同じページをＧＰＵによって読み取りのみ可能であると指定する。異なる処理ユニットに関する異なる許可を示すために、各処理ユニットは、その処理ユニットに関するメモリページのアクセス可能性許可に対応する属性データのセットに関連付けられ得る。例えば、ＣＰＵおよびＧＰＵがそれらの各ページテーブルを含む上述の例において、物理アドレスのマッピングに対する仮想アドレスは、ページテーブルのそれぞれにおいて同一であり得るが、属性データフィールドは同一ではあり得ない。ＣＰＵおよびＧＰＵが共通のページテーブルを共有する上述した他の例において、属性データフィールドは、ＣＰＵとＧＰＵの両方によって共有され得る。属性データフィールドが共有される場合、オペレーティングシステムは、両方ではなく、ＣＰＵあるいはＧＰＵのいずれかに関する属性データを定義するように強要される。
【００２９】
[0033]例えば、上述の例において、属性データフィールドは、ＣＰＵのアクセス可能性を定義するが、必ずしもＧＰＵのアクセス可能性を定義しない値を含む。これは、潜在的にメモリページの誤った管理の原因となる可能性があり得る。例えば、ＧＰＵにとって読み取り可能のみであるべき（書き込み可能ではない）メモリページのアクセス可能性を制限することが望ましくあり得る。しかし、このページはＣＰＵによって読み取り可能および書き込み可能であり、かつ属性データフィールドの値はＣＰＵとＧＰＵの間で差別化されないため、ＧＰＵは、ポインタが共通のページテーブル内に使用される例において、メモリページに不注意に書き込み得る。
【００３０】
[0034]本開示の技術は、特に異なる処理ユニットに関するページ属性データを指定することに関する。例えば、ＧＰＵのページ属性データは、ＧＰＵに関するメモリページのアクセス可能性を定義し、およびＣＰＵのページ属性データは、ＣＰＵへのアクセス可能性を定義する。本開示の技術にしたがって、第１の処理ユニットは、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取り、第１のページテーブルエントリから第１のページ属性データを決定し得、ここにおいて、第１のページ属性データは、第１の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義する。第２の処理ユニットは第１のページ内の第１のページテーブルエントリから物理アドレスを読み取り、代替の場所から第２のページ属性データを決定し得、ここにおいて、代替の場所は、第１のページテーブルエントリに関連付けられ、および第２のページ属性データは、第２の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義する。第１の処理ユニットは、第１のページ属性データの１つまたは複数のアクセス可能性属性にしたがって、物理アドレスに関連付けられるメモリの物理ページにアクセスし得、および第２の処理ユニットは、第２のページ属性データの１つまたは複数のアクセス可能性属性にしたがって、物理アドレスに関連付けられるメモリの物理ページにアクセスし得る。
【００３１】
[0035]図１は、本開示の技術を実施し得る演算デバイス、すなわち演算デバイス１００の例を示す。演算デバイス１００の例は、モバイル無線電話、個人情報端末（ＰＤＡ）、ビデオゲームコンソール、ハンドヘルドゲームユニット、モバイルビデオ会議ユニット、ラップトップコンピュータ、デスクトップコンピュータ、テレビジョンセット−トップボックス、デジタルメディアプレーヤー、スマート電話、タブレットコンピュータ、カメラなどを含むが、それらに限定されることはない。必ずしもリソースが限定されたデバイスのみに限定されるわけではないが、本開示の技術は、バッテリ駆動デバイスを含むリソースが限定されたデバイスに特に利点がある。
【００３２】
[0036]演算デバイス１００は、第１の処理ユニット１１０、第２の処理ユニット１２０、およびシステムメモリ１３０を含む。第１の処理ユニット１１０はＭＭＵ１１２を含み、ならびに第２の処理ユニット１２０はＭＭＵ１２２を含む。ＭＭＵ１１０は、ＴＬＢ１１４を含み得、ならびにＭＭＵ１２２はＴＬＢ１２４を含み得る。第１の処理ユニット１１０は、レジスタ１１６を含み、ならびに第２の処理ユニット１２０はレジスタ１２６を含む。第１の処理ユニット１１０は、例えば、デバイス１００のＣＰＵであり得る。第２の処理ユニット１２０は、例えば、ディスプレイ上に提示するためのグラフィックスデータを出力するために動作可能なＧＰＵであり得る。第１の処理ユニット１１０と第２の処理ユニット１２０は、例えば、ディスプレイコントローラを含む様々な周辺デバイス、ネットワークデバイス、またはＣＰＵまたはＧＰＵのようなプロセッサからの信号処理をオフロードする任意のタイプのデジタル信号処理（ＤＳＰ）コアの任意のタイプに関する処理ユニットのような、他のタイプの処理ユニットをさらに表し得る。第１の処理ユニット１１０と第２の処理ユニット１２０の例は、デジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価の集積またはディスクリート論理回路を含み得るがそれらに限定されるものではない。本開示の技術は、一般的に、２つの処理ユニットに関して説明されることになるが、この技術は、３つ以上の処理ユニットを用いて実施されても良い。
【００３３】
[0037]レジスタ１１６とレジスタ１２６は、第１の処理ユニット１１０または第２の処理ユニット１２０がその上で動作するデータ（例えばオペランド（operands））を含み得る。いくつかの例において、レジスタ１１６とレジスタ１２６は、汎用レジスタ、メモリアドレス間接レジスタ、割り込みレジスタ、ＳＩＭＤレジスタ、またはいずれ他のタイプのレジスタであり得る。いくつかの例において、レジスタ１１６および１２６は、本開示の技術にしたがって、第１の処理ユニット１１０および／または第２の処理ユニット１２０に関するページ属性データを記憶するように構成され得る。
【００３４】
[0038]システムメモリ１３０はコンピュータ可読記憶媒体の例であっても良い。システムメモリ１３０は、例えば、ダイナミックＲＡＭ、スタティックＲＡＭ、サイリスタＲＡＭ、ゼロキャパシタＲＡＭ、ツイントランジスタＲＡＭ、またはいずれ他のタイプの揮発性メモリのようなランダムアクセスメモリ（ＲＡＭ）のタイプであっても良い。システムメモリ１３０はまた、フラッシュメモリまたは他のタイプの不揮発性ＲＡＭのような不揮発性メモリであっても良い。システムメモリ１３０は、第１の処理ユニット１１０と処理ユニット１２０に本開示内のそれぞれに属する機能を実行させる命令を記憶し得る。このように、システムメモリ１３０は、例えば第１の処理ユニット１１０と処理ユニット１２０のような１つまたは複数のプロセッサに様々な機能を実行させる命令を備えるコンピュータ可読記憶媒体であると考えられ得る。しかし、いくつかの例において、こういった命令は、システムメモリ１３０以外のメモリ（図１には不図示）に記憶され得る。
【００３５】
[0039]第１の処理ユニット１１０と第２の処理ユニット１２０は、システムメモリ１３０からデータを読み取りおよびシステムメモリ１３０にデータを書き込むように構成される。データの読み取りまたは書き込みのために、第１の処理ユニット１１０と第２の処理ユニット１２０は、システムメモリ１３０内の特定の物理的な場所にアクセスするように構成される。これらの特定の場所は、例えば、４キロバイト（ＫＢ）、２メガバイト（ＭＢ）、またはいずれか他のサイズのページであり得る。各メモリのページは、関連付けられる物理アドレスを有し得る。しかし、上で紹介されたように、第１の処理ユニット１１０と第２の処理ユニット１２０は、第１の処理ユニット１１０または第２の処理ユニット１２０で実行するアプリケーションが連続した仮想メモリアドレスを割り当てられるように仮想アドレスの指定を実施し得る。しかし、これらの連続した仮想メモリアドレスに対応する物理メモリアドレスはフラグメントされおよび非連続であり得る。したがって、第１の処理ユニット１１０と第２の処理ユニット１２０は、対応する非連続物理メモリアドレスではなくこれらの連続した仮想メモリアドレスを用いてデータを処理し得る。しかし、第１の処理ユニット１１０と第２の処理ユニット１２０がシステムメモリ１３０にアクセスする（すなわちシステムメモリ１３０から読み取りまたはシステムメモリ１３０に書き込みを行う）場合、第１の処理ユニット１１０と第２の処理ユニット１２０はこれらの仮想メモリアドレスを対応する物理メモリアドレスに変換する。
【００３６】
[0040]ＭＭＵ１１２は、第１の処理ユニット１１０に関する仮想メモリアドレスを物理メモリアドレスにマッピングするように構成され、およびＭＭＵ１２２は、第２の処理ユニット１２０に関する仮想メモリアドレスを物理メモリアドレスにマッピングするように構成される。ページエントリのフルセットを有する完全なページテーブルは、ページテーブル１３２に記憶される。いくつかの例において、ページテーブル１３２はまた、複数の並行するページテーブルを備え得る。他の例において、ページテーブル１３２は、単一のページテーブルを備え得る。ＴＬＢ１１４とＴＬＢ１２４の各々は、ページテーブル１３２に記憶されたページテーブルエントリのサブセットを記憶する。サブセットは、例えば、最近アクセスされたページテーブルエントリ、頻繁にアクセスされたページテーブルエントリ、またはいくつかの他の基準に基づいて選択されたページテーブルエントリであり得る。ＴＬＢ１１４に記憶されたページテーブルエントリのサブセットは、ＴＬＢ１２４に記憶されたページエントリのサブセットとは異なっても良い。例えば、ＭＭＵ１１２を介して第１の処理ユニット１１０によって最近アクセスされたまたは頻繁にアクセスされたページテーブルエントリは、ＭＭＵ１２２を介して第２の処理ユニット１２０によって最近または頻繁にアクセスされたページテーブルエントリとは異なり得る。したがって、ＴＬＢ１１４は、ＴＬＢ１２４とは異なるページテーブルエントリのサブセットを記憶し得る。
【００３７】
[0041]例えば、第１の処理ユニット１１０が仮想メモリアドレスを物理メモリアドレスに変換する必要がある場合、ＭＭＵ１１２は、ＴＬＢ１１４が当該仮想メモリアドレスに関するページエントリを記憶する時に特定の仮想メモリアドレスに対応する物理メモリアドレスを決定するために、ＴＬＢ１１４を使用し得る。決定された物理メモリアドレスを使用して、第１の処理ユニット１１０は、システムメモリ１３０の特定の物理的な場所からの読み取りまたは物理的な場所への書き込みを可能にする。同様に、第２の処理ユニット１２０が仮想メモリアドレスを物理メモリアドレスに変換する必要がある場合、ＭＭＵ１２２は、ＴＬＢ１２４が当該仮想メモリアドレスに関するページエントリを記憶する時に特定の仮想メモリアドレスに対応する物理メモリアドレスを決定するために、ＴＬＢ１２４を使用し得る。決定された物理メモリアドレスを使用して、第２の処理ユニット１２０はシステムメモリ１３０からの読み取りまたはシステムメモリ１３０への書き込みを可能にする。
【００３８】
[0042]上で紹介されたように、ＴＬＢ１１４およびＴＬＢ１２４は、仮想メモリアドレスのサブセットのみに関する仮想−物理マッピングを記憶するキャッシュであり得る。そのため、ＴＬＢ１１４は、処理ユニット１１０に関する仮想−物理マッピング全体を記憶し得、同様に、ＴＬＢ１２４は、第２の処理ユニット１２０に関する仮想−物理マッピング全体を記憶し得ない。いくつかの例において、ＭＭＵ１１２は、ＴＬＢ１１４に記憶されたマッピングを持たない仮想メモリアドレスに関する対応する物理メモリアドレスを決定する必要があり得る。ＴＬＢ１１４に含まれない仮想メモリアドレスに関するマッピングを決定するために、第１の処理ユニット１１０は、システムメモリ１３０に記憶されたページテーブル１３２にアクセスし得る。ページテーブル１３２は、処理ユニット１１０と処理ユニット１２０に関する仮想−物理マッピング全体を含むため、ＴＬＢ１１４およびＴＬＢ１２４よりもかなり大きい可能性がある。
【００３９】
[0043]ＭＭＵ１１２と同様に、いくつかの例において、ＭＭＵ１２２は、ＴＬＢ１２４に記憶されたマッピングを持たない仮想メモリアドレスに関する対応する物理メモリアドレスを決定する必要があり得る。ＴＬＢ１２４に含まれない仮想メモリアドレスに関するマッピングを決定するために、第２の処理ユニット１２０は、システムメモリ１３０に記憶されたページテーブル１３２にアクセスする。この方法において、ＭＭＵ１２２は、実質的にＭＭＵ１１２と類似の方法で機能し得る。ページテーブル１３２は、処理ユニット１１０および第２の処理ユニット１２０に関する仮想−物理マッピング全体を含む。この方法において、第１の処理ユニット１１０と第２の処理ユニット１２０は、同じページテーブル（例えば、図１の例におけるページテーブル１３２のうちの１つ）を共有する。
【００４０】
[0044]様々な例において、ページテーブル１３２は、単一ページテーブルであっても良い。ページテーブル１３２はまた、複数の並行するページテーブルであり得る。ページテーブル１３２が単一ページテーブルである場合において、物理アドレスからメモリページに関する仮想アドレスに変換するために、第１の処理ユニット１１０と処理ユニット１２０は、第１のページテーブルエントリをページテーブル１３２から読み取り得る。第１のページテーブルエントリは、第１の処理ユニット、例えば第１の処理ユニット１１０に関する物理メモリページの属性データを含む。属性データに加えて、第１のページテーブルエントリは、同じページテーブルの第２のページテーブルエントリに関連付けられるデータをも含む。様々に、第２のページテーブルエントリに関連付けられるデータは、仮想アドレスおよび／または物理アドレスを備え得るポインタであり得る。
【００４１】
[0045]第２の処理ユニットに関するページ属性データを決定するために、第２の処理ユニット１２０は、第１のページテーブルエントリから第２のページテーブルエントリに関連付けられるデータを読み取る。第２の処理ユニット１２０は、ページテーブルエントリ１３２から第２のページテーブルエントリを読み取るために、第２のページテーブルエントリに関連付けられるデータを使用する。第２のページテーブルエントリは、第２の処理ユニット１２０に関するメモリページのアクセス可能性を定義する第２の処理ユニット１２０に関する属性データを含む。いくつかの例において、ポインタは、処理ユニット１１０または第２の処理ユニット１２０のいずれかのレジスタファイルのレジスタを指し得る。レジスタファイルのレジスタは、第２の処理ユニット１２０に関するページエントリの属性データを含み得る。
【００４２】
[0046]ページテーブル１３２が複数のページテーブルを備える例において、物理アドレスからメモリページに関する仮想アドレスに変換するために、第１の処理ユニット１１０と第２の処理ユニット１２０は、特定の仮想アドレスにおいて、ページテーブル１３２から第１のページテーブルエントリを読み取り得る。第１のページテーブルエントリは、第１の処理ユニット、例えば第１の処理ユニット１１０に関する仮想アドレスに関連付けられる物理メモリページの属性データを含む。第２の処理ユニット１２０は、第１のページテーブルエントリを読み取り得、および仮想アドレスに基づいて、ページテーブル１３２のうちの異なるページテーブルから第２のページテーブルエントリをも読み取り得る。第２のページテーブルエントリは、第２の処理ユニット１２０に関する属性データを含む。いくつかの例において、第２の処理ユニット１２０は、第２のページテーブルエントリを読み取る前に第１のページテーブルエントリの読み取りが完了するのを待つことを回避するために、第１のページテーブルエントリと第２のページテーブルエントリを並行して読み取り得る。
【００４３】
[0047]ページテーブル１３２が、複数のページテーブルを備える別の例において、物理アドレスからメモリページに関する仮想アドレスに変換するために、第１の処理ユニット１１０と第２の処理ユニット１２０は、特定の仮想アドレスにおいてページテーブル１３２から第１のページテーブルエントリを読み取り得る。第１のページテーブルエントリは、第１の処理ユニット、例えば第１の処理ユニット１１０に関する物理メモリページの属性データを含む。第１のページテーブルエントリはまた、第２のページエントリに関連付けられるデータを含む。第２のページテーブルエントリは、第２の処理ユニット１２０に関する属性データを含む。第２の処理ユニット１２０は、第２のページテーブルエントリに関連付けられるデータを読み取り、およびそのデータに基づいて、第２の処理ユニット１２０に関するページテーブル属性データを有する第２のページテーブルエントリを含む異なるページテーブルを識別する。次に第２の処理ユニット１２０は、仮想アドレスに基づいて第２のページテーブルから第２のページテーブルエントリを読み取り、および第２のページテーブルエントリの属性データを用いてメモリの物理ページにアクセスする。
【００４４】
[0048]ページテーブル１３２はそれぞれ、仮想メモリアドレスをメモリページの物理メモリアドレスにマッピングする複数のページエントリを含み得る。メモリページは、メモリページの物理メモリアドレスを介して個別にアクセス可能なシステムメモリ１３０の一部であり得る。各ページテーブルエントリは、属性データの１つまたは複数のセットを含み得る。属性データの各セットは、１つまたは複数の処理ユニットのために、例えば許可およびアクセス権などの制御を設定し得る。各ページテーブルエントリは、属性データの１つまたは複数の追加のセット、例えば第１の処理ユニット１１０と第２の処理ユニット１２０の両方のために共通の制御を設定する属性データのセットなどを任意に含み得る。
【００４５】
[0049]本開示の技術にしたがって、第１の処理ユニット１１０と第２の処理ユニット１２０は、第１の処理ユニット１１０を用いて第１のページテーブル内の第１のページテーブルエントリから読み取ることと、第１の処理ユニット１１０を用いて、第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、第１のページ属性データは、第１の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、第２の処理ユニット１２０を用いて第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、第２の処理ユニット１２０を用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、代替の場所は第１のページテーブルエントリに関連付けられ、およびここにおいて、第２のページ属性データは、第２の処理ユニット１２０に関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、第１の処理ユニット１１０を用いて、第１のページ属性データの１つまたは複数のアクセス可能性属性にしたがって物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、および第２の処理ユニット１２０を用いて、第２のページ属性データの１つまたは複数のアクセス可能性属性にしたがって物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、を行うように構成され得る。
【００４６】
[0050]ページテーブル１３２のページエントリに関する属性データの第１のセットと属性データの第２のセットは、共通のページテーブルを共有する一方で、異なる許可および／またはアクセス権を持つことを第１の処理ユニット１１０と第２の処理ユニット１２０に可能にし得る。一例として、属性データの第１のセットは、第１の処理ユニット１１０がシステムメモリ１３０の特定のメモリページに読み取りおよび書き込み両方のアクセスを行うように設定され得る一方で、第２の処理ユニット１２０は、同じ特定のメモリページに読み取りアクセスのみ行い得る。もちろん、第２の処理ユニット１２０が読み取りおよび書き込み両方のアクセスを行なう一方で、第１の処理ユニット１１０が読み取りアクセスのみを行う、または第１の処理ユニット１１０と第２の処理ユニット１２０のうちの１つが読み取りおよび書き込み両方のアクセスを行う一方で、もう１つは読み取りアクセスも書き込みアクセスも行わないという他の構成もまた可能である。
【００４７】
[0051]図２は、本開示の技術にしたがって、仮想メモリアドレスを物理メモリアドレスにマッピングするための技術の例を示す概念図である。図２は、第１のページテーブルエントリ１４０、第２のページテーブルエントリ１４２および第３のページテーブルエントリ１４４を示す。第１のページテーブルエントリ１４０、第２のページテーブルエントリ１４２、および第３のページテーブルエントリ１４４はそれぞれ、ページテーブル１３２の異なるページテーブル内のページテーブルエントリであり得る。
【００４８】
[0052]第１の処理ユニット１１０または第２の処理ユニット１２０でのアプリケーションの実行は、仮想メモリアドレスに関連付けられる物理メモリのページにアクセス（読み取りまたは書き込み）することを試み得る。処理ユニットのメモリ管理ユニット（ＭＭＵ）は、仮想アドレスを物理アドレスに変換し、物理アドレスに関連付けられるメモリの物理ページの任意の読み取りまたはそれへの書き込みのいずれかを操作する。トランスレーション・ルックアサイド・バッファ（ＴＬＢ）は、ページテーブルからの検索待ち時間を短縮するために、メモリのページの仮想アドレスに基づいて、頻繁に使用されたメモリのページをキャッシュし得る。
【００４９】
[0053]図２の例において、特定の仮想アドレスにアクセスすることを試みる第１の処理ユニット１１０上のアプリケーションは、第１のＭＭＵ１１２にＴＬＢ１１４を使用して検索を行わせる。ＴＬＢ１１４が要求されたページテーブルエントリ（「第１のページテーブルエントリ」と呼ばれる）のキャッシュされたコピーを有する場合、ＴＬＢ１１４は、要求された第１のページテーブルエントリをＭＭＵ１１２に返す。ＴＬＢ１１４が第１のページテーブルエントリのキャッシュされたコピーを有さない場合、ＭＭＵ１１２は、ページテーブル１３２から要求された第１のページテーブルエントリを検出する。
【００５０】
[0054]ＭＭＵ１１２は、第１の処理ユニット１１０に関連付けられるページテーブルエントリを含む特定のページテーブルからページテーブルエントリ１４０を検出し得る。要求されたページテーブルエントリを検出するために、ＭＭＵ１１２またはＴＬＢ１１４は、ページテーブルへのインデックスとして要求中のアプリケーションの仮想アドレスを使用し、およびその仮想アドレスに関連付けられる要求されたページテーブルエントリを検出する。
【００５１】
[0055]ＭＭＵ１１２がページテーブルエントリを検出した後、ＭＭＵ１１２は、仮想アドレスを物理アドレスに変換する。ＭＭＵ１１２はまた、ページテーブルエントリから属性データを決定する。属性データは第１の処理ユニット１１０へのアクセス可能性許可を定義する。アクセス可能性許可とメモリの物理ページの仮想アドレスに関連付けられる物理アドレスを決定した後、ＭＭＵ１１２は、現在実行しているアプリケーションによって要求されたメモリアクセスを行う。
【００５２】
[0056]第１のページテーブルエントリ１４０は、物理アドレス１４６、属性データ１４８、および有効ビット１５０を含む。物理アドレス１４６は、物理メモリページ１５２の物理アドレスを示す。ＭＭＵ１１２は、物理アドレス１４６に基づいて物理メモリページ１５２に対して任意の読み取りまたは書き込みのいずれかを行う。この例において、属性データ１４８は、「Ｒ」（読み取り可能）、「Ｗ」（書き込み可能）、「Ｘ」（実行可能）および「Ｃ」（キャッシュ可能）と表された４つのフィールドを含む。各フィールドは、処理ユニット１１０と処理ユニット１２０のアーキテクチャに依存する１つまたは複数のビットのサイズである。可読フィールド値と書き込み可能フィールド値は、処理ユニット１１０が物理メモリページ１５２からの読み取りまたはそれへの書き込みが可能かどうかを示す。実行可能フィールド値は、処理ユニット１１０が物理メモリページ１５２のコンテンツを実行できるかどうかを示す。キャッシュ可能フィールド値は、処理ユニット１１０が例えばＬ１またはＬ２キャッシュにおいて、物理メモリページ１５２のコンテンツをキャッシュし得るかどうかを示す。
【００５３】
[0057]ＭＭＵ１１２がページテーブルエントリ１４０を読み取ると、ＭＭＵ１１２は、ページテーブルエントリの仮想アドレスを物理アドレス１４６に変換し、ＭＭＵ１１２は、物理アドレス１４６に基づいて物理メモリページ１４２にアクセスし得る。ＭＭＵ１１２は、例えば読み取り、書き込み、または実行などのアクセスのタイプが属性データ１４８のフィールド値に基づいて許可されることを確実にする。ＭＭＵ１１２はまた、キャッシュできないように設計されたメモリページが第１の処理ユニット１１０によってキャッシュされないことを確実にする役割を担っている。属性データフィールドの値が要求されたアクセスタイプが許可されないことを示す場合、ＭＭＵ１１２は、オペレーティングシステムまたはクライアントアプリケーションのいずれかが操作し得る例外をスローし得る。
【００５４】
[0058]読み取り可能、書き込み可能、実行可能、およびキャッシュ可能フィールドは、第１のページテーブルエントリ１４０が含み得るフィールド値の単なるいくつかの例である。ページテーブルエントリ１４０は、属性データフィールドの任意の組み合わせおよび数を含み得る。第１のページテーブルエントリ１４０はまた、１つまたは複数の追加の値を含み得る。前述のフィールドに加えて、第１のページテーブルエントリ１４０はまた、１つまたは複数の有効ビットを含み得る。各有効ビットは、例えば第２の処理ユニット１２０のように追加の処理ユニットに関する属性データを含む追加のページテーブルエントリが有効であるかどうかを示す。有効ビットが、追加のページテーブルエントリが有効であることを示す場合、第２の処理ユニット１２０は、有効ビットに関連付けられるページテーブルエントリの属性データを読み取り得る。有効ビットが、追加のページテーブルエントリが有効でないことを示す場合、第２の処理ユニット１２０は、いくつかの例において、追加のページテーブルエントリを読み取らない可能性がある。代わりに、第２の処理ユニット１２０は、第１のページテーブルエントリ１４０の属性データを使用し得る。
【００５５】
[0059]第１の処理ユニット１１０で実行する同じアプリケーションはまた、第２の処理ユニット１２０で実行し得、および同じ仮想メモリアドレスにアクセスすることを試み得る。しかし、アクセス可能性値の異なるセットに物理メモリページを割り当てることが望ましくあり得る。例えば、第１の処理ユニット１１０は、実行するために第２の処理ユニット１２０に関するＧＰＵコマンドを用いて、ＧＰＵ、例えば第２の処理ユニット１２０のコマンドバッファを満たすＣＰＵであり得る。ＧＰＵコマンドは、第１の処理ユニット１１０によって実行可能で無いはずだが、第２の処理ユニット１２０によって実行可能であるはずである。
【００５６】
[0060]第１の処理ユニット１１０および１１２に関する属性データの異なるセットを適用するために、第２の処理ユニット１２０に関する物理メモリページ１４２の追加の属性データを含み得る１つまたは複数の代替の場所が存在し得る。システムメモリ１３０は、追加の処理ユニットに関する属性情報を含む追加のページテーブルを含み得る。例えば、第１のページテーブルエントリ１４０は、第１のページテーブルに属し得る。第２のページテーブルエントリ１４２は、第２のページテーブルに属し得、および第３のページテーブルエントリ１４４は、第３のページテーブルに属し得る。
【００５７】
[0061]本開示の技術にしたがってメモリのページにアクセスしているときに、第２の処理ユニット１２０のＭＭＵ１２２は、第１の処理ユニット１１０に関して上で説明した方法で、第１のページテーブルエントリ１４０にアクセスする。第１のページテーブルエントリ１４０は、処理ユニット１１０に関する属性データ１４８と同じく、仮想アドレスから物理メモリページ１５２の物理アドレス１４６へのマッピングを含む。いくつかの例において、第１のページテーブルエントリ１４０はまた、有効ビット１５０を含み得る。ＭＭＵ１２２はまた、例えば、第２のページテーブルエントリまたは第２の処理ユニット１２０に関する追加の属性情報を含むレジスタなどの代替の場所にアクセスする。
【００５８】
[0062]１つの例において、第２の処理ユニット１２０が、第２の処理ユニット１２０に関する属性データを決定するためにアクセスする代替の場所は、ページテーブルエントリ１４２であり得る。ＭＭＵ１２２は、ページテーブルエントリ１４０を記憶するページテーブルではなくページテーブルエントリ１３２の第２の異なるページテーブルからページテーブルエントリ１４２を読み取る。ＭＭＵ１２２は、ページテーブルエントリ１４０のページテーブルに索引を付けるのに用いられたのと同じ仮想アドレスを使って、代替の場所、すなわち第２のページテーブルに索引を付ける。ページテーブルエントリ１４２は、第２の属性データ１５４を含む。属性データは、第２の処理ユニット１２０が物理メモリページ１５２を読み取り、書き込み、実行、およびキャッシュし得るかどうかを示すフィールド値を含み得る。いくつかの例において、処理ユニットは、並行してページテーブルエントリ１４０とページテーブルエントリ１４２を読み取る。並行して２つのページテーブルエントリを読み取ることは、ページテーブルエントリ１４２を読み取る前に、ページテーブルエントリ１４０の読み取りが完了するのを待つことによって生じる待ち時間を回避する。
【００５９】
[0063]別の例において、代替の場所は、ページテーブルエントリ１４４であり得る。この例において、第２の処理ユニット１２０のＭＭＵ１２２は、第２の処理ユニット１２０に関する物理メモリページ１５２の第２の属性データを決定するために、ページテーブルエントリ１４４を読み取り得る。ページテーブルエントリ１４４は、例えば２つの異なる処理ユニットに関する属性データの２つのセットを含む。属性データの一方のセットは、第２の処理ユニット１２０に関するものであり得、および属性データのもう一方のセットは第３の処理ユニットに関するものであり得る。ＭＭＵ１２２は、ページテーブルエントリ１４０を記憶するページテーブルとは異なるページテーブルエントリ１３２のページテーブルからページテーブルエントリ１４４を読み取る。ＭＭＵ１２２は、ページテーブルエントリ１４０を含むページテーブルに索引を付けるために使用された同じ仮想アドレスを用いてページテーブル１３２の異なるページテーブルに索引を付ける。ページテーブルエントリ１４４の属性データに基づいて、ＭＭＵ１２２は、第２の処理ユニット１２０に関する物理メモリページ１５２のアクセス可能性許可を決定する。
【００６０】
[0064]ページテーブルエントリ１４０、１４２、および１４４は、同じ属性フィールドを持つように示されているが、ページテーブルエントリの各々は、異なる数またはタイプの属性フィールドを有し得る。一例として、ページテーブルエントリ１４２は、単一の実行可能属性フィールドを含むのみであり得る。ページテーブルエントリ１４２は、全ての属性フィールドに関する値を含まないので、ＭＭＵ１２２は、第２の処理ユニット１２０に関する物理メモリページ１５２のアクセス可能性許可を決定するために、ページテーブルエントリ１４２の属性フィールド値を用いて、ページテーブルエントリ１４０からの属性フィールド値を引き継ぐか、または組み合わせ得る。例えば、ＭＭＵ１２２は、物理メモリページ１５２に関する第２の処理ユニット１２０の最後の許可を決定するために、ページテーブルエントリ１４０からの読み取り可能、書き込み可能、およびキャッシュ可能な属性フィールド値およびページテーブルエントリ１４２からの実行可能な属性フィールド値を使用し得る。
【００６１】
[0065]図３は、本開示の技術にしたがって、仮想メモリアドレスを物理メモリアドレスにマッピングする技術の例を示す概念図である。図３は、第１のページテーブルエントリ１６０、第２のページテーブルエントリ１６２および第３のページテーブルエントリ１６４を示す。第１のページテーブルエントリ１６０、第２のページテーブルエントリ１６２、および第３のページテーブルエントリ１６４はそれぞれ、ページテーブル１３２の異なるページテーブルにおけるページテーブルエントリであり得る。
【００６２】
[0066]第１の処理ユニット１１０または第２の処理ユニット１２０でのアプリケーションの実行は、仮想メモリアドレスに関連付けられる物理メモリのページにアクセスすることを試み得る。処理ユニットのメモリ管理ユニット（ＭＭＵ）は、仮想アドレスを物理アドレスに変換し、物理アドレスに関連付けられるメモリの物理ページに対する任意の読み取りまたはそれへの書き込みのいずれかを操作する。トランスレーション・ルックアサイド・バッファ（ＴＬＢ）は、ページテーブルから検索待ち時間を短縮するために、それらの仮想アドレスに基づいて頻繁に使用されたメモリのページをキャッシュし得る。
【００６３】
[0067]図３の例において、特定の仮想アドレスにアクセスすることを試みる第１の処理ユニット１１０上のアプリケーションは、ＴＬＢ１１４を使用して、第１のＭＭＵ１１２に検索を行わせる。ＴＬＢ１１４が要求されたページテーブルエントリのキャッシュされたコピーを有する場合、ＴＬＢ１１４は、要求されたページテーブルエントリをＭＭＵ１１２に返す。ＴＬＢ１１４が第１のページテーブルエントリのキャッシュされたコピーを有さない場合、ＭＭＵ１１２は、第１の処理ユニットに関連付けられるページテーブル１３２のうちの１つのページテーブルから要求されたページテーブルエントリを検出する。
【００６４】
[0068]ＭＭＵ１１２は、第１の処理ユニット１１０に関連付けられるページテーブルエントリを含む特定のページテーブルからページテーブルエントリ１６０を検出し得る。要求されたページテーブルエントリを検出するために、ＭＭＵ１１２またはＴＬＢ１１４は、第１の処理ユニットに関連付けられるページテーブルへのインデックスとして要求中のアプリケーションの仮想アドレスを使用し、およびその仮想アドレスに関連付けられる要求されたページテーブルエントリを検出する。
【００６５】
[0069]ページテーブルエントリ１６０は、物理アドレス１６６、属性データ１６８、および識別子１７０を含む。物理アドレス１６６は、物理メモリページ１７２の物理アドレスを示す。ＭＭＵ１１２は、物理アドレス１６６に基づいて物理メモリページ１７２に対して任意の読み取りまたはそれへの書き込みのいずれかを行う。この例において、属性データ１６８は、「Ｒ」（読み取り可能）、「Ｗ」（書き込み可能）、「Ｘ」（実行可能）および「Ｃ」（キャッシュ可能）と表された４つのフィールドを含む。各フィールドは、処理ユニット１１０と処理ユニット１２０のアーキテクチャに依存する１つまたは複数のビットのサイズである。可読フィールド値と書き込み可能フィールド値は、処理ユニット１１０が物理メモリページ１７２からの読み取りまたは物理メモリページ１７２への書き込みが可能かどうかを示す。実行可能フィールド値は、処理ユニット１１０が物理メモリページ１７２のコンテンツを実行可能かどうか示す。キャッシュ可能フィールド値は、処理ユニット１１０が例えばＬ１またはＬ２キャッシュにおいて、物理メモリページ１７２のコンテンツをキャッシュし得るかどうかを示す。
【００６６】
[0070]ＭＭＵ１１２がページテーブルエントリ１６０を読み取ると、ＭＭＵ１１２は、仮想アドレスを物理アドレス１６６に変換し、ＭＭＵ１１２は、物理アドレス１６６に基づいて物理メモリページ１７２にアクセスし得る。ＭＭＵ１１２は、アクセスのタイプが属性データ１６８のフィールド値に基づいて許可されることを確実にする。ＭＭＵ１１２はまた、キャッシュできないように設計されたメモリページが、第１の処理ユニット１１０によってキャッシュされないことを確実にする役割を担っている。属性データフィールドの値が要求されたアクセスタイプが許可されないことを示す場合、ＭＭＵ１１２は、オペレーティングシステムまたはクライアントアプリケーションのいずれかが操作し得る例外をスローし得る。
【００６７】
[0071]読み取り可能、書き込み可能、実行可能、およびキャッシュ可能フィールドは第１のページテーブルエントリ１６０が含み得るいくつかのフィールド値の単なる例である。第１のページテーブルエントリ１６０はまた、１つまたは複数の追加の値および／または追加の値の組み合わせを含み得る。前述のフィールドに加えて、ページテーブルエントリ１６０はまた、１つまたは複数の有効ビットを含み得る。各有効ビットは、異なる処理ユニットに関する属性データを含む特定のページテーブルエントリが有効であるかどうかを示す。
【００６８】
[0072]第１の処理ユニット１１０で実行する同じアプリケーションのいくつかまたは全ての部分はまた、処理ユニット１２０で実行し得、および同じ物理および仮想メモリアドレスにおいて同じ物理メモリページ１７２にアクセスすることを試み得る。しかし、いくつかの環境においては、物理メモリページ１７２をアクセス可能性データ、例えば物理メモリページ１７２への異なる許可の異なるセットに割り当てることが望ましくあり得る。例えば、第１の処理ユニット１１０は、実行するために、第２の処理ユニット１２０に関するＧＰＵコマンドを用いて、ＧＰＵ、例えば第２の処理ユニット１２０のコマンドバッファを満たすＣＰＵであっても良い。ＧＰＵコマンドは、第１の処理ユニット１１０によって実行可能では無いはずであるが、第２の処理ユニット１２０によっては実行可能であるはずである。したがって、実行可能な属性フィールド値は、処理ユニット１１０と処理ユニット１２０では異なるはずである。
【００６９】
[0073]第１の処理ユニット１１０および１１２に異なる属性データのセットを適用するために、第２の処理ユニットのＭＭＵ１１４は、代替の場所からページ属性データの第２のセットを読み取り得る。図３の例において、システムメモリ１３０は、追加の処理ユニットに関する属性情報を含む追加のページテーブルを含み得、それは、代替の場所を備え得る。例えば、第１のページテーブルエントリ１６０は、第１のページテーブルに属し得る。第２のページテーブルエントリ１６２は、第２のページテーブルに属し得、および第３のページテーブルエントリ１６４は、第３のページテーブルに属し得る。
【００７０】
[0074]本開示の技術にしたがってメモリのページにアクセスしているときに、第２の処理ユニット１２０は、第１の処理ユニット１１０に関して上で説明された方法において、第１のページテーブルエントリ１６０にアクセスする。ページテーブルエントリ１６０は、処理ユニット１１０に関する属性データ１６８と同様に、物理メモリページ１７２の物理アドレス１６６と識別子（ＩＤ）１７０を含む。識別子１７０は、代替の場所に関連付けられても良く、図３の例において、それは、複数の並行するページテーブル内の第２のページテーブルエントリであり得る。いくつかの例において、第１のページテーブルエントリ１６０はまた、１つまたは複数の追加のページテーブルエントリに対応する１つまたは複数の有効ビットを含み得る。第２の処理ユニット１２０はまた、代替の場所にアクセスし、図３の例において、それは、第２の処理ユニット１２０に関する属性データを含む追加のページテーブルエントリである。
【００７１】
[0075]図３の例において、第２の処理ユニット１２０は、ページテーブルエントリ１６０のＩＤ１７０に基づいて、追加のページテーブルエントリ、例えばページテーブルエントリ１６２を決定する。ＭＭＵ１２２がＩＤ１７０を決定すると、第２の処理ユニット１２０は、ＩＤ１７０に基づいて、追加のページテーブルエントリ、すなわちページテーブルエントリ１６２を読み取る。いくつかの例において、ＩＤ１７０の値は、ページテーブルエントリ１６２を含むページテーブル１３２の特定のページテーブルを示すか、あるいは識別し得る。ＭＭＵ１２２は、ページテーブルエントリ１６６を読み取るために使用された同じ仮想アドレスに基づくだけでなく、ＩＤ１７０によって示されたページテーブルからもページテーブルエントリ１６２を読み取る。
【００７２】
[0076]ページテーブルエントリ１６２は、第２の処理ユニット１２０に関するページ属性データを含む。ページテーブルエントリ１６２のページ属性データは、第２の処理ユニット１２０が、物理メモリページ１７２を読み取り、書き込み、実行、およびキャッシュし得るかどうかを示すフィールド値を含み得る。いくつかの例において、ページテーブルエントリ１６２の属性データは、ページテーブルエントリ１６０より少ない属性フィールドを含み得る。この場合、ＭＭＵ１２２は、ページテーブルエントリ１６２が対応する属性フィールド値を含むときにページテーブルエントリ１６０から属性フィールド値を決定し得る。
【００７３】
[0077]いくつかの例において、ページテーブルエントリ１６０のＩＤ１７０は２つ以上の識別子値を含み得る。例として、３つのプロセッサを有するシステムにおいて、ＩＤ１７０は、２つの値を備え得る。第１の値は、第２の処理ユニット１２０に関するページテーブルを示し、ならびに第２の値は、第３の処理ユニットに関する属性データを有するページテーブルを示す。ＩＤ１７０によって示された第１のおよび第２のページテーブルの両方は、ページテーブル１３２に含まれ得る。
【００７４】
[0078]図４は、本開示の技術にしたがって、仮想メモリアドレスを物理メモリアドレスにマッピングするための技術の例を示す概念図である。図４は、第１のページテーブルエントリ１８０と第２のページテーブルエントリ１８２を含む。第１のページテーブルエントリ１８０と第２のページテーブルエントリ１８２はそれぞれ、ページテーブルエントリ１３２の単一ページテーブル内のページテーブルエントリであり得る。図４の例において、ページテーブルエントリ１３２は単一ページテーブルを備え得る。
【００７５】
[0079]図４の例において、第１の処理ユニット１１０または第２の処理ユニット１２０で実行するアプリケーションは、仮想メモリアドレスに関連付けられる物理メモリのページにアクセスすることを試み得る。処理ユニットのＭＭＵは、仮想アドレスを物理アドレスに変換し、物理アドレスに関連付けられるメモリの物理ページの任意の読み取りまたはそれへの書き込みのいずれかを操作する。ＴＬＢは、ページテーブルからの検索待ち時間を短縮するために、それらの仮想アドレスに基づいて、頻繁に使用されたメモリのページをキャッシュし得る。
【００７６】
[0080]図４の例において、特定の仮想アドレスにアクセスすることを試みる第１の処理ユニット１１０で実行するアプリケーションは、第１のＭＭＵ１１２にＴＬＢ１１４を使用して検索を行わせる。ＴＬＢ１１４が要求されたページテーブルエントリ（「第１のページテーブルエントリ」と呼ばれる）のキャッシュされたコピーを有する場合、ＴＬＢ１１４は、要求されたページテーブルエントリをＭＭＵ１１２に返す。ＴＬＢ１１４が第１のページテーブルエントリのキャッシュされたコピーを有さない場合、ＭＭＵ１１２は、ページテーブルから要求されたページテーブルエントリを検出する。
【００７７】
[0081]ＭＭＵ１１２は、第１の処理ユニット１１０に関連付けられるページテーブルエントリを含む特定のページテーブルからページテーブルエントリ１８０を検出し得る。要求されたページテーブルエントリを検出するために、ＭＭＵ１１２またはＴＬＢ１１４は、ページテーブルへのインデックスとして要求中のアプリケーションの仮想アドレスを使用し、仮想アドレスに関連付けられる要求されたページテーブルエントリ、すなわち、この例においてはページテーブルエントリ１８０、を検出する。
【００７８】
[0082]ページテーブルエントリ１８０は、物理アドレス１８４、属性データ１８６、およびポインタ１８８を含む。物理アドレス１８４は、物理メモリページ１９０の物理アドレスを示す。ＭＭＵ１１２は、物理アドレス１８４に基づいて物理メモリページ１９０に対して任意の読み取りまたはそれへの書き込みのいずれかを行う。この例において、属性データ１８８は、「Ｒ」（読み取り可能）、「Ｗ」（書き込み可能）、「Ｘ」（実行可能）および「Ｃ」（キャッシュ可能）と表された４つのフィールドを含む。各フィールドは、第１の処理ユニット１１０と第２の処理ユニット１２０のアーキテクチャに依存する１つまたは複数のビットのサイズである。可読フィールド値と書き込み可能フィールド値は、処理ユニット１１０が物理メモリページ１９０に対する読み取り、または物理メモリページ１９０への書き込みが可能かどうかを示す。実行可能フィールド値は、処理ユニット１１０が物理メモリページ１９０のコンテンツを実行できるかどうかを示す。キャッシュ可能フィールド値は、処理ユニット１１０が例えばＬ１またはＬ２キャッシュにおいて、物理メモリページ１９０のコンテンツをキャッシュし得るかどうかを示す。
【００７９】
[0083]ＭＭＵ１１２がページテーブルエントリ１８０を読み取ると、ＭＭＵ１１２は、仮想アドレスを物理アドレス１８４に変換し、ＭＭＵ１１２は、物理アドレス１８４に基づいて物理メモリページ１９０にアクセスし得る。ＭＭＵ１１２は、例えば読み取り、書き込み、または実行などのアクセスのタイプが属性データ１８６のフィールド値に基づいて許可されることを確実にする。ＭＭＵ１１２はまた、キャッシュできないように設計されたメモリページが第１の処理ユニット１１０によってキャッシュされないことを確実にする役割を担っている。属性データフィールドの値が要求されたアクセスタイプが許可されないことを示す場合、ＭＭＵ１１２は、オペレーティングシステムまたはクライアントアプリケーションのいずれかが操作し得る例外をスローし得る。
【００８０】
[0084]読み取り可能、書き込み可能、実行可能、およびキャッシュ可能なフィールドは、ページテーブルエントリ１８０が含み得るフィールド値の単なるいくつかの例である。第１のページテーブルエントリ１８０はまた、１つまたは複数の追加の値を含み得る。前述のフィールドに加えて、ページテーブルエントリ１８０はまた、１つまたは複数の有効ビットを含み得る。各有効ビットは、異なる処理ユニットに関する属性データを含む特定のページテーブルエントリが有効であるかどうかを示す。
【００８１】
[0085]第１の処理ユニット１１０で実行する同じアプリケーションのいくつかまたは全ての部分は第２の処理ユニット１２０でも実行し得、かつ同じ物理および仮想メモリアドレスにおける同じ物理メモリページ１９０にアクセスしようとも試み得る。しかし、物理メモリページ１９０を、例えば、読み取り、書き込み、キャッシュ可能などの許可、および実行許可などのページ属性データの異なるセットに割り当てることが望ましいかもしれない。例えば、第１の処理ユニット１１０は、実行するために第２の処理ユニット１２０に関するＧＰＵコマンドを用いて、ＧＰＵ、例えば第２の処理ユニット１２０のコマンドバッファを満たすＣＰＵであり得る。ＧＰＵコマンドは、第１の処理ユニット１１０によって実行可能で無いはずだが、第２の処理ユニット１２０によって実行可能であるはずである。したがって、実行可能な属性フィールド値は、処理ユニット１１０と処理ユニット１２０では異なるはずである。
【００８２】
[0086]処理ユニット１１０と１１２に異なる属性データのセットを適用するために、追加の処理ユニットに関する追加の属性データを含むシステムメモリ１３０のような代替の場所が存在し得る。本開示の技術にしたがって、メモリのページにアクセスしているときに、第２の処理ユニット１２０のＭＭＵ１２２は、第１の処理ユニット１１０に関して上で説明した方法で、ページテーブルエントリ１８０にアクセスする。ページテーブルエントリ１８０は、処理ユニット１１０に関する属性データ１６８と同様に、物理メモリページ１９０の物理アドレス１８４とポインタ１８８を含む。いくつかの例において、ページテーブルエントリ１８０は、１つまたは複数の追加のページテーブルエントリに対応する１つまたは複数の有効ビットを含み得る。本開示の技術にしたがって、第２の処理ユニット１２０はまた、代替の場所、すなわち第２の処理ユニット１２０に関する追加の属性データを含むページテーブルエントリにアクセスする。
【００８３】
[0087]図４の例において、第２の処理ユニット１２０は、ポインタ１８８の値に基づいて、例えばページテーブルエントリ１８２のような代替の場所を決定する。ＭＭＵ１２２がポインタ１８８を決定すると、第２の処理ユニット１２０は、ポインタ１８８の値に基づいて、例えばページテーブルエントリ１８２のような追加のページテーブルエントリを読み取る。いくつかの例において、ポインタ１８８の値は、ページテーブルエントリ１８４と同じページテーブル内の例えば特定のページテーブルのような代替の場所の仮想アドレスおよび／または物理アドレスを示し得る。ポインタ１８８が仮想アドレスを含む場合、ＭＭＵ１１２またはＭＭＵ１１２のようなＭＭＵは、仮想アドレスから物理アドレスへの第２の変換を実行し得る。
【００８４】
[0088]ページテーブルエントリ１８２は、第２の処理ユニット１２０に関連する属性データを含む。ページテーブルエントリ１８２の属性データは、第２の処理ユニット１２０が物理メモリページ１９０を読み取り、書き込み、実行、およびキャッシュし得るかどうかを示すフィールド値を含み得る。いくつかの例において、ページテーブルエントリ１８２の属性データは、ページテーブルエントリ１８０より少ない属性フィールドを含み得る。この場合、ＭＭＵ１２２は、ページテーブルエントリ１８２が対応する属性フィールド値を含む場合、ページテーブルエントリ１８０から属性フィールド値を決定し得る。
【００８５】
[0089]いくつかの例において、ページテーブルエントリ１８０のポインタ１８８は２つ以上の値を含み得る。例として、３つのプロセッサを有するシステムにおいて、ポインタ１８８は、２つの値（例えば、仮想アドレスおよび／または物理アドレス）を備え得る。第１の値は、第２の処理ユニット１２０に関するページテーブルを示し、ならびに第２の値は、第３の処理ユニットに関する属性データを有するページテーブルを示す。ポインタ１８８によって示された第１のおよび第２のページテーブルの両方は、ページテーブル１８０と同じページテーブルに含まれ得る。さらに、ポインタの値１８８は、２つ以上の処理ユニットに関する属性データを含む例えばページテーブルエントリなどの単一の代替の場所の値を示し得る単一の値を備え得る。いくつかの例において、複数のプロセッサに関する属性データを特定するために単一のページテーブルエントリを使用することで、ページテーブルに関するメモリの必要性が低くなり得る。
【００８６】
[0090]別の例において、ポインタ１８８は、別個のページテーブルエントリを示すのではなく、例えば、処理ユニット１２０のような第２の処理ユニットに関する追加のページ属性データを含む図１のレジスタ１１６またはレジスタ１２６のうちの１つのようなレジスタを備える代替の場所を示し得る。ポインタ１８８の値が、第２の処理ユニット１２０に関する属性データが例えば複数のレジスタ１１６または複数のレジスタ１２６内の１つのレジスタのようなレジスタファイルに記憶されることを示す場合、ＭＭＵ１２２は、レジスタファイルの特定のレジスタから属性データを読み取り得る。第１の処理ユニット１１０または第２の処理ユニット１２０がＡＲＭアーキテクチャに準拠する場合の例において、ポインタが指し示すレジスタは、属性メモリ間接レジスタ(Memory Attribute Indirection Registers)（「ＭＡＩＲｎレジスタ」）であり得る。他の例において、演算デバイス１１０の任意の処理ユニット（例えば第１の処理ユニット１１０または第２の処理ユニット１２０）の任意のレジスタは、１つまたは複数のプロセッサに関する属性データを記憶するために使用され得る。
【００８７】
[0091]図５は、本開示の技術にしたがって説明された仮想メモリアドレスを物理メモリアドレスにマッピングする技術を示すフロー図である。図５の技術は、図１の演算デバイス１００のような２つ以上の処理ユニットを有する演算デバイスによって実行され得る。図５の技術は、演算デバイス１００に関連して説明されるが、図５の技術は、広いアレイの演算デバイスに適用可能であり、および演算デバイス１００として構成されたデバイスのみに限定されるものではないことが理解されるべきである。図５の例において、第１の処理ユニット１１０はＣＰＵであっても良くならびに第２の処理ユニット１２０はＧＰＵであっても良い。様々な例において、第１の処理ユニット１１０および／または第２の処理ユニット１２０は、演算デバイス１００に含まれ得るビデオまたは静止カメラ、ネットワークカード、デジタル信号プロセッサ（ＤＳＰ）、Ｉ／Ｏプロセッサまたはコントローラ、または任意の他の処理ユニットのような任意のＩＯデバイスを備え得る。
【００８８】
[0092]第１の処理ユニット１１０は、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取る（４１０）。第１の処理ユニット１１０は、第１のページテーブルエントリから第１のページ属性データを決定し、ここにおいて、第１のページ属性データが第１の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義する（４２０）。第２の処理ユニット１２０はまた、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取る（４３０）。いくつかの例において、第２の処理ユニット１２０は、第１のページテーブルエントリを読み取るのと並行して第２のページテーブルから第２のページテーブルエントリを読み取り得る。
【００８９】
[0093]第２の処理ユニット１２０は、代替の場所から第２のページ属性データを決定し、ここにおいて、代替の場所は、第１のページテーブルエントリに関連付けられ、および第２のページ属性データは、第２の処理ユニットに関するメモリの物理ページの１つまたは複数のアクセス可能性属性を定義する（４４０）。次に、第１の処理ユニット１１０は第１のページ属性データの１つまたは複数アクセス可能性の属性にしたがって、物理アドレスに関連付けられるメモリの物理ページにアクセスし（４５０）、および第２のページ属性データの１つまたは複数のアクセス可能性属性にしたがって、物理アドレスに関連付けられるメモリの物理ページにアクセスする（４６０）。いくつかの例において、第１および第２のページ属性データは、メモリのページが読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する。いくつかの例において、第２のページテーブルエントリは、第１のページテーブルの第２のページテーブルエントリを備え、およびページテーブルエントリを読み取るために、第２の処理ユニット１２０は、第１のページテーブルエントリのポインタ値に基づいて、第１のページテーブルから第２のページテーブルエントリを読み取る。いくつかの例において、ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備え得る。他の例において、代替の場所はレジスタを備え得、ここにおいて、レジスタは、第１のページテーブルエントリにおけるポインタ値に基づいて第１のページテーブルエントリに関連付けられる。
【００９０】
[0094]一例において、第１の処理ユニットは、第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに第２の処理ユニットは第２のＭＭＵを備え得、ここにおいて、第１のＭＭＵは、第１のページテーブルおよび代替の場所のうちの少なくとも１つにアクセスするように構成され、および第２のＭＭＵは、第１のページテーブルおよび代替の場所のうちの少なくとも１つにアクセスするように構成される。
【００９１】
[0095]一例において、代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり得、および第２の処理ユニット１２０は第１のページテーブルエントリから第２のページテーブルに関連付けられるデータを読み取り得る。第２の処理ユニット１２０は、第１のページテーブルエントリから第２のページテーブルに関連付けられるデータを読み取り得る。第２のページ属性データを読み取ることは、第２のページテーブルに関連付けられるデータに基づいて、第２のページテーブルを第２の処理ユニット１２０を用いて識別することを備え得る。いくつかの例において、第２のページテーブルに関連付けられるデータは、複数の並行するページテーブルから第２のページテーブルを識別する識別子を備える。
【００９２】
[0096]図５に示されたプロセスは、第２の処理ユニット１２０を用いて、第１のページ属性データを第２のページ属性データと結合し、結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成することをさらに含み得る。第２の処理ユニット１２０は、結合されたページ属性データの１つまたは複数の属性にしたがって、物理アドレスに関連付けられるメモリの物理ページにアクセスする。いくつかの例において、第２のページ属性データは、第１のページ属性データの１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む。
【００９３】
[0097]図５のプロセスは、第１の処理ユニット１１０を用いて、第２のページ属性データが有効であるかどうかを示す第１のページテーブルエントリから有効データを読み取ることをさらに含み得る。第２のページ属性データを決定するために、第１のページテーブルエントリからの有効データが、第２のページ属性データが有効であることを示す場合、第２の処理ユニット１２０は第２のページ属性データを決定し得る。
【００９４】
[0098]システムメモリ１３０の例は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的に消去可能なプログラム可能な読み取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、ＣＤ−ＲＯＭまたは他の光学ディスクストレージ、磁気ディスクストレージ、または他の磁気記憶デバイス、フラッシュメモリ、または命令またはデータ構造の形式で所望のプログラムコードを搬送または記憶するために用いられ得るおよびコンピュータまたはプロセッサによってアクセスされ得る任意の他の媒体を含むが、それらに限定されることはない。システムメモリ１３０は、いくつかの例において、非一時的な記憶媒体として考えられ得る。用語「非一時的な」は、記憶媒体が、搬送波または伝播信号に組み込まれないことを示し得る。しかし、用語「非一時的な」は、システムメモリ１３０が非可動であることを意味すると解釈されるべきではない。一例として、システムメモリ１３０は、デバイス１００から取り除かれ、および別のデバイスへと移動され得る。別の例として、実質的にシステムメモリ１３０に類似する記憶デバイスは、デバイス１００に挿入され得る。特定の例において、非一時的な記憶媒体は、（例えばＲＡＭにおいて）経時的に変化することが可能なデータを記憶し得る。
【００９５】
[0099]１つまたは複数の例において、説明された機能は、ハードウェア、ソフトウェア、ファ−ムウェア、またはそれらの任意の組み合わせにおいて実装され得る。ソフトウェアで実装される場合、この機能は、１つまた複数の命令またはコードとして、コンピュータ可読媒体に記憶されるかまたはコンピュータ可読媒体を介して送信され、およびハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体、または、例えば通信プロトコルにしたがって、ある場所から別の場所へコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体などの実体のある媒体に対応するコンピュータ可読記憶媒体を含み得る。この方法において、コンピュータ可読媒体は一般的に、（１）非一時的な実体のあるコンピュータ可読記憶媒体、または（２）信号または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技術の実施のための命令、コード、および／またはデータ構造を検出するために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得るいずれかの使用可能な媒体であり得る。コンピュータ・プログラム・プロダクトは、コンピュータ可読媒体を含み得る。
【００９６】
[0100]限定ではなく例として、こういったコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光学ディスクストレージ、磁気ディスクストレージまたは他の磁気記憶デバイス、フラッシュメモリ、または命令またはデータ構造の形式で所望のプログラムコードを記憶するように用いられ得るおよびコンピュータによってアクセスされ得る任意の他の媒体を備えることが可能である。同様に、任意の接続は、コンピュータ可読媒体と適切に呼ばれ得る。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線（ＤＳＬ）、または赤外線、無線およびマイクロ波のような無線技術を用いるウェブサイト、サーバ、または他の遠隔ソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線およびマイクロ波のような無線技術が、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まないが、代わりに非一時的な実体のある記憶媒体を対象にしていることが理解されるべきである。ここで用いられたようなディスク（ｄｉｓｋ）およびディスク（ｄｉｓｃ）は、コンパクトディスク（ＣＤ）、レーザーディスク（登録商標）、光学ディスク、（ＣＤ）、デジタル多用途ディスク（ＤＶＤ）、フロッピー（登録商標）ディスク、およびＢｌｕ−ｒａｙ（登録商標）ディスクを含み、ここにおいて、ディスク（ｄｉｓｋ）が通常データを磁気的に再生する一方で、ディスク（ｄｉｓｃ）はレーザを使用して光学的にデータを再生する。上記の組み合わせはまた、コンピュータ可読媒体の範囲に含まれるべきである。
【００９７】
[0101]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の等価の集積またはディスクリート論理回路のような１つまたは複数のプロセッサによって実行可能であり得る。したがって、ここで用いられる用語「プロセッサ」は、ここで説明された技術の実施に適した前述の構造または任意の他の構造のいずれかを指し得る。さらに、いくつかの態様において、ここに記載された機能は、符号化および復号のために構成された専用のハードウェアおよび／またはソフトウェアモジュール内に提供されるか、または一体化されたコーデックに組み込まれ得る。同様に、この技術は、１つまたは複数の回路または論理要素において十分に実施され得る。
【００９８】
[0102]本開示の技術は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（例えばチップセット）を含む多種多様なデバイスまたは装置において実施され得る種々の構成要素、モジュール、またはユニットは、開示された技術を実行するように構成されたデバイスの機能的態様を強調するように本開示において説明されてきたが、必ずしも異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述されたように、様々なユニットがコーデックハードウェアユニットに組み合わされ得るか、あるいは適切なソフトウェアおよび／またはファームウェアと共に、上に記載した１つまたは複数のプロセッサを含む相互に動作可能なハードウェアユニットの集合によって提供され得る。
【００９９】
[0103]様々な例が説明されてきた。これらおよび他の例は、下記の請求項の範囲内である。
【図１】
2016517992.tif 000003
【図２】
2016517992.tif 000004
【図３】
2016517992.tif 000005
【図４】
2016517992.tif 000006
【図５】
2016517992.tif 000007
【手続補正書】
【提出日】平成28年1月26日(2016.1.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、
前記第１の処理ユニットを用いて、前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、前記第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
第２の処理ユニットを用いて、前記第１のページテーブル内の前記第１のページテーブルエントリから前記物理アドレスを読み取ることと、
前記第２の処理ユニットを用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、
前記第２の処理ユニットを用いて、前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を備える、メモリにアクセスする方法。
【請求項２】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定することは、
前記第２の処理ユニットを用いて、前記第１のページテーブルエントリを読み取ることと並行して、前記第２のページテーブルエントリから前記第２のページ属性データを決定することをさらに備える、請求項１に記載の方法。
【請求項３】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記方法は、
前記第２の処理ユニットを用いて、前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取ることをさらに備え、
ここにおいて、前記第２のページ属性データを決定することは、
前記第２の処理ユニットを用いて、前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別することをさらに備える、請求項１に記載の方法。
【請求項４】
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、請求項３に記載の方法。
【請求項５】
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項１に記載の方法。
【請求項６】
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、請求項５に記載の方法。
【請求項７】
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第２の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせることをさらに備え、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、請求項１に記載の方法。
【請求項８】
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、請求項７に記載の方法。
【請求項９】
前記第１の処理ユニットを用いて、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取ることをさらに備え、
ここにおいて、前記第２のページ属性データを決定することは、前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２の処理ユニットを用いて、前記第２のページ属性データを決定することをさらに備える、請求項１に記載の方法。
【請求項１０】
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、請求項１に記載の方法。
【請求項１１】
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項１に記載の方法。
【請求項１２】
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、請求項１に記載の方法。
【請求項１３】
前記第１の処理ユニットは第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理ユニットは第２のＭＭＵを備え、ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成され、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成される、請求項１２に記載の方法。
【請求項１４】
第１のページテーブルエントリを含む第１のページテーブルと、ここにおいて、前記第１のページテーブルエントリは物理アドレスをさらに含み、
前記第１のページテーブルエントリに関連付けられる代替の場所と、
前記物理アドレスに関連付けられるメモリの物理ページと、
を記憶するための手段と、
第１の処理をするための手段と、ここにおいて、前記第１の処理をするための手段は、
前記物理アドレスを前記第１のページテーブルエントリから読み取るための手段と、
前記第１のページテーブルエントリから第１のページ属性データを決定するための手段と、ここにおいて、前記第１のページ属性データは、前記第１の処理をするための手段に関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスを用いてメモリの物理ページにアクセスするための手段と、
を備え、
第２の処理をするための手段と、ここにおいて、前記第２の処理をするための手段は、
前記第１のページテーブルエントリを前記第１のページテーブルから読み取るための手段と、
前記第１のページテーブルエントリから前記物理アドレスを決定するための手段と、
前記代替の場所から第２のページ属性データを決定するための手段と、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理をするための手段に関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスするための手段と、
を備え、
を備える装置。
【請求項１５】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第１のページ属性データを決定するための前記手段と並行して、前記第２のページテーブルエントリから前記第２のページ属性データを決定するための手段をさらに備える、請求項１４に記載の装置。
【請求項１６】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記第２の処理をするための手段は、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取るための手段をさらに備え、
ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別するための手段をさらに備える、請求項１４に記載の装置。
【請求項１７】
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、請求項１６に記載の装置。
【請求項１８】
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項１４に記載の装置。
【請求項１９】
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、請求項１８に記載の装置。
【請求項２０】
前記第２の処理をするための手段は、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせるための手段をさらに備え、
ここにおいて、前記第２の処理をするための手段が、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、請求項１４に記載の装置。
【請求項２１】
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、請求項２０に記載の装置。
【請求項２２】
前記第１の処理をするための手段は、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取るための手段をさらに備え、
ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定するための手段をさらに備える、請求項１４に記載の装置。
【請求項２３】
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、請求項１４に記載の装置。
【請求項２４】
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項１４に記載の装置。
【請求項２５】
前記第１の処理をするための手段はＣＰＵであり、ならびに前記第２の処理をするための手段はＧＰＵである、請求項１４に記載の装置。
【請求項２６】
前記第１の処理をするための手段は第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理をするための手段は第２のＭＭＵを備え、
ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするために構成された手段を備え、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするための手段を備える、請求項２５に記載の装置。
【請求項２７】
第１のページテーブルエントリを含む第１のページテーブルと、ここにおいて、前記第１のページテーブルエントリは物理アドレスをさらに含み、
前記第１のページテーブルエントリに関連付けられる代替の場所と、
前記物理アドレスに関連付けられるメモリの物理ページと、
を記憶するメモリと、
前記物理アドレスを前記第１のページテーブルから読み取ることと、
前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行うように構成された前記第１の処理ユニットと、
前記第１のページテーブルエントリを前記第１のページテーブルから読み取ることと、
前記第１のページテーブルエントリから前記物理アドレスを決定することと、
前記代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行うように構成された前記第２の処理ユニットと、
を備える、装置。
【請求項２８】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、前記第２のページテーブルエントリから前記第２のページ属性データを決定することと前記第１のページテーブルエントリを読み取ることを並行して行うようにさらに構成される、請求項２７に記載の装置。
【請求項２９】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記第２の処理ユニットは、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取るようにさらに構成され、
ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別するようにさらに構成される、請求項２７に記載の装置。
【請求項３０】
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、請求項２９に記載の装置。
【請求項３１】
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項２７に記載の装置。
【請求項３２】
前記ポインタ値は、仮想アドレスおよび物理アドレスのうちの少なくとも１つを備える、請求項３１に記載の装置。
【請求項３３】
前記第２の処理ユニットは、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせるようにさらに構成され、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、請求項２７に記載の装置。
【請求項３４】
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、請求項３３に記載の装置。
【請求項３５】
前記第１の処理ユニットは、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取るようにさらに構成され、
ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定するようにさらに構成される、請求項２７に記載の装置。
【請求項３６】
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、請求項２７に記載の装置。
【請求項３７】
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項２７に記載の装置。
【請求項３８】
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、請求項２７に記載の装置。
【請求項３９】
前記第１の処理をするための手段は、第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理をするための手段は第２のＭＭＵを備え、
ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするために構成された手段を備え、および
前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするための手段を備える、請求項３８に記載の装置。
【請求項４０】
命令を記憶した非一時的なコンピュータ可読記憶媒体であって、実行されると、第１の処理ユニットと第２の処理ユニットに、
第１の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、
前記第１の処理ユニットを用いて、前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、前記第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２の処理ユニットを用いて、前記第１のページテーブル内の前記第１のページテーブルエントリから前記物理アドレスを読み取ることと、
前記第２の処理ユニットを用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、
前記第２の処理ユニットを用いて、前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行わせる、非一時的なコンピュータ可読記憶媒体。
【請求項４１】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２の処理ユニットに前記第２のページ属性データを決定させる命令は、実行されると、前記第２の処理ユニットに、
前記第２のページテーブルエントリから前記第２のページ属性データを決定することと前記第１のページテーブルエントリを読み取ることを並行して行わせる命令をさらに備える、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４２】
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、
実行されると、前記第２の処理ユニットに、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取らせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットに、前記第２のページ属性データを決定させる命令は、実行されると、前記第２の処理ユニットに、
前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別させる命令をさらに備える、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４３】
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、請求項４２に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４４】
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４５】
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、請求項４４に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４６】
実行されると、前記第２の処理ユニットに、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせること行わせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４７】
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、請求項４６に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４８】
実行されると、前記第１の処理ユニットに、
前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取らせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットに前記第２のページ属性データを決定することを行わせる命令は、実行されると、前記第２の処理ユニットに、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定させる命令をさらに備える、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項４９】
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５０】
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５１】
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、請求項４０に記載の非一時的なコンピュータ可読記憶媒体。
【請求項５２】
前記第１の処理ユニットは第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理ユニットは第２のＭＭＵを備え、ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成され、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成される、請求項５１に記載の非一時的なコンピュータ可読記憶媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
[0103]様々な例が説明されてきた。これらおよび他の例は、下記の請求項の範囲内である。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[Ｃ１]
第１の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、
前記第１の処理ユニットを用いて、前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、前記第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２の処理ユニットを用いて、前記第１のページテーブル内の前記第１のページテーブルエントリから前記物理アドレスを読み取ることと、
前記第２の処理ユニットを用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、
前記第２の処理ユニットを用いて、前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を備える、メモリにアクセスする方法。
[Ｃ２]
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定することは、
前記第２の処理ユニットを用いて、前記第１のページテーブルエントリを読み取ることと並行して、前記第２のページテーブルエントリから前記第２のページ属性データを決定することをさらに備える、Ｃ１に記載の方法。
[Ｃ３]
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記方法は、
前記第２の処理ユニットを用いて、前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取ることをさらに備え、
ここにおいて、前記第２のページ属性データを決定することは、
前記第２の処理ユニットを用いて、前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別することをさらに備える、Ｃ１に記載の方法。
[Ｃ４]
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、Ｃ３に記載の方法。
[Ｃ５]
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、Ｃ１に記載の方法。
[Ｃ６]
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、Ｃ５に記載の方法。
[Ｃ７]
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第２の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせることをさらに備え、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、Ｃ１に記載の方法。
[Ｃ８]
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、Ｃ７に記載の方法。
[Ｃ９]
前記第１の処理ユニットを用いて、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取ることをさらに備え、
ここにおいて、前記第２のページ属性データを決定することは、前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２の処理ユニットを用いて、前記第２のページ属性データを決定することをさらに備える、Ｃ１に記載の方法。
[Ｃ１０]
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、Ｃ１に記載の方法。
[Ｃ１１]
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、Ｃ１に記載の方法。
[Ｃ１２]
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、Ｃ１に記載の方法。
[Ｃ１３]
前記第１の処理ユニットは第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理ユニットは第２のＭＭＵを備え、ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成され、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成される、Ｃ１２に記載の方法。
[Ｃ１４]
第１のページテーブルエントリを含む第１のページテーブルと、ここにおいて、前記第１のページテーブルエントリは物理アドレスをさらに含み、
前記第１のページテーブルエントリに関連付けられる代替の場所と、
前記物理アドレスに関連付けられるメモリの物理ページと、
を記憶するための手段と、
第１の処理をするための手段と、ここにおいて、前記第１の処理をするための手段は、
前記物理アドレスを前記第１のページテーブルエントリから読み取るための手段と、
前記第１のページテーブルエントリから第１のページ属性データを決定するための手段と、ここにおいて、前記第１のページ属性データは、前記第１の処理をするための手段に関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスを用いてメモリの物理ページにアクセスするための手段と、
を備え、
第２の処理をするための手段と、ここにおいて、前記第２の処理をするための手段は、
前記第１のページテーブルエントリを前記第１のページテーブルから読み取るための手段と、
前記第１のページテーブルエントリから前記物理アドレスを決定するための手段と、
前記代替の場所から第２のページ属性データを決定するための手段と、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理をするための手段に関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスするための手段と、
を備え、
を備える装置。
[Ｃ１５]
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第１のページ属性データを決定するための前記手段と並行して、前記第２のページテーブルエントリから前記第２のページ属性データを決定するための手段をさらに備える、Ｃ１４に記載の装置。
[Ｃ１６]
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記第２の処理をするための手段は、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取るための手段をさらに備え、
ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別するための手段をさらに備える、Ｃ１４に記載の装置。
[Ｃ１７]
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、Ｃ１６に記載の装置。
[Ｃ１８]
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、Ｃ１４に記載の装置。
[Ｃ１９]
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、Ｃ１８に記載の装置。
[Ｃ２０]
前記第２の処理をするための手段は、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせるための手段をさらに備え、
ここにおいて、前記第２の処理をするための手段が、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、Ｃ１４に記載の装置。
[Ｃ２１]
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、Ｃ２０に記載の装置。
[Ｃ２２]
前記第１の処理をするための手段は、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取るための手段をさらに備え、
ここにおいて、前記第２のページ属性データを決定するための前記手段は、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定するための手段をさらに備える、Ｃ１４に記載の装置。
[Ｃ２３]
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、Ｃ１４に記載の装置。
[Ｃ２４]
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、Ｃ１４に記載の装置。
[Ｃ２５]
前記第１の処理をするための手段はＣＰＵであり、ならびに前記第２の処理をするための手段はＧＰＵである、Ｃ１４に記載の装置。
[Ｃ２６]
前記第１の処理をするための手段は第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理をするための手段は第２のＭＭＵを備え、
ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするために構成された手段を備え、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするための手段を備える、Ｃ２５に記載の装置。
[Ｃ２７]
第１のページテーブルエントリを含む第１のページテーブルと、ここにおいて、前記第１のページテーブルエントリは物理アドレスをさらに含み、
前記第１のページテーブルエントリに関連付けられる代替の場所と、
前記物理アドレスに関連付けられるメモリの物理ページと、
を記憶するメモリと、
前記物理アドレスを前記第１のページテーブルから読み取ることと、
前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行うように構成された前記第１の処理ユニットと、
前記第１のページテーブルエントリを前記第１のページテーブルから読み取ることと、
前記第１のページテーブルエントリから前記物理アドレスを決定することと、
前記代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行うように構成された前記第２の処理ユニットと、
を備える、装置。
[Ｃ２８]
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、前記第２のページテーブルエントリから前記第２のページ属性データを決定することと前記第１のページテーブルエントリを読み取ることを並行して行うようにさらに構成される、Ｃ２７に記載の装置。
[Ｃ２９]
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、前記第２の処理ユニットは、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取るようにさらに構成され、
ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別するようにさらに構成される、Ｃ２７に記載の装置。
[Ｃ３０]
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、Ｃ２９に記載の装置。
[Ｃ３１]
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、Ｃ２７に記載の装置。
[Ｃ３２]
前記ポインタ値は、仮想アドレスおよび物理アドレスのうちの少なくとも１つを備える、Ｃ３１に記載の装置。
[Ｃ３３]
前記第２の処理ユニットは、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせるようにさらに構成され、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、Ｃ２７に記載の装置。
[Ｃ３４]
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、Ｃ３３に記載の装置。
[Ｃ３５]
前記第１の処理ユニットは、前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取るようにさらに構成され、
ここにおいて、前記第２のページ属性データを決定するために、前記第２の処理ユニットは、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定するようにさらに構成される、Ｃ２７に記載の装置。
[Ｃ３６]
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、Ｃ２７に記載の装置。
[Ｃ３７]
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、Ｃ２７に記載の装置。
[Ｃ３８]
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、Ｃ２７に記載の装置。
[Ｃ３９]
前記第１の処理をするための手段は、第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理をするための手段は第２のＭＭＵを備え、
ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするために構成された手段を備え、および
前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするための手段を備える、Ｃ３８に記載の装置。
[Ｃ４０]
命令を記憶した非一時的なコンピュータ可読記憶媒体であって、実行されると、第１の処理ユニットと第２の処理ユニットに、
第１の処理ユニットを用いて、第１のページテーブル内の第１のページテーブルエントリから物理アドレスを読み取ることと、
前記第１の処理ユニットを用いて、前記第１のページテーブルエントリから第１のページ属性データを決定することと、ここにおいて、前記第１のページ属性データは、前記第１の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第２の処理ユニットを用いて、前記第１のページテーブル内の前記第１のページテーブルエントリから前記物理アドレスを読み取ることと、
前記第２の処理ユニットを用いて、代替の場所から第２のページ属性データを決定することと、ここにおいて、前記代替の場所は、前記第１のページテーブルエントリに関連付けられ、前記第２のページ属性データは、前記第２の処理ユニットに関する前記メモリの物理ページの１つまたは複数のアクセス可能性属性を定義し、
前記第１の処理ユニットを用いて、前記第１のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられるメモリの物理ページにアクセスすることと、
前記第２の処理ユニットを用いて、前記第２のページ属性データの前記１つまたは複数のアクセス可能性属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスすることと、
を行わせる、非一時的なコンピュータ可読記憶媒体。
[Ｃ４１]
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリを備え、ここにおいて、前記第２の処理ユニットに前記第２のページ属性データを決定させる命令は、実行されると、前記第２の処理ユニットに、
前記第２のページテーブルエントリから前記第２のページ属性データを決定することと前記第１のページテーブルエントリを読み取ることを並行して行わせる命令をさらに備える、Ｃ４０に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ４２]
前記代替の場所は、第２のページテーブル内の第２のページテーブルエントリであり、
実行されると、前記第２の処理ユニットに、
前記第１のページテーブルエントリから前記第２のページテーブルに関連付けられるデータを読み取らせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットに、前記第２のページ属性データを決定させる命令は、実行されると、前記第２の処理ユニットに、
前記第２のページテーブルに関連付けられる前記データに基づいて、前記第２のページテーブルを識別させる命令をさらに備える、Ｃ４０に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ４３]
前記第２のページテーブルに関連付けられる前記データは、複数の並行するページテーブルから前記第２のページテーブルを識別する識別子を備える、Ｃ４２に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ４４]
前記代替の場所は、前記第１のページテーブル内の第２のページテーブルエントリを備え、
ここにおいて、前記第１のページテーブル内の前記第２のページテーブルエントリは、前記第１のページテーブルエントリのポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、Ｃ４０に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ４５]
前記ポインタ値は、仮想アドレスと物理アドレスのうちの少なくとも１つを備える、Ｃ４４に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ４６]
実行されると、前記第２の処理ユニットに、
結合されたページ属性データの１つまたは複数のアクセス可能性属性を形成するために、前記第１のページ属性データの前記１つまたは複数の属性と前記第２のページ属性データの１つまたは複数の属性を組み合わせること行わせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットは、前記結合されたページ属性データの前記１つまたは複数の属性にしたがって、前記物理アドレスに関連付けられる前記メモリの物理ページにアクセスする、Ｃ４０に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ４７]
前記第２のページ属性データは、前記第１のページ属性データの前記１つまたは複数の属性値とは異なる１つまたは複数の属性値を含む、Ｃ４６に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ４８]
実行されると、前記第１の処理ユニットに、
前記第２のページ属性データが有効であるかどうかを示す前記第１のページテーブルエントリから有効データを読み取らせる命令をさらに備え、
ここにおいて、前記第２の処理ユニットに前記第２のページ属性データを決定することを行わせる命令は、実行されると、前記第２の処理ユニットに、
前記第１のページテーブルエントリからの前記有効データが、前記第２のページ属性データが有効であることを示す場合、前記第２のページ属性データを決定させる命令をさらに備える、Ｃ４０に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ４９]
前記第１のページ属性データと前記第２のページ属性データは、前記メモリのページが、読み取り可能、書き込み可能、キャッシュ可能、実行可能、およびダーティのうちの少なくとも１つであるかどうかを定義する、Ｃ４０に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ５０]
前記代替の場所はレジスタを備え、
ここにおいて、前記レジスタは、前記第１のページテーブルエントリ内のポインタ値に基づいて、前記第１のページテーブルエントリに関連付けられる、Ｃ４０に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ５１]
前記第１の処理ユニットはＣＰＵであり、ならびに前記第２の処理ユニットはＧＰＵである、Ｃ４０に記載の非一時的なコンピュータ可読記憶媒体。
[Ｃ５２]
前記第１の処理ユニットは第１のメモリ管理ユニット（ＭＭＵ）を備え、ならびに前記第２の処理ユニットは第２のＭＭＵを備え、ここにおいて、前記第１のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成され、および前記第２のＭＭＵは、前記第１のページテーブルおよび前記代替の場所のうちの少なくとも１つにアクセスするように構成される、Ｃ５１に記載の非一時的なコンピュータ可読記憶媒体。
【国際調査報告】
2016517992.tif 000008
2016517992.tif 000009