(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-07-26
(54)【発明の名称】アドレス変換を実行するためのアドレス変換回路及び方法
(51)【国際特許分類】
G06F 12/1009 20160101AFI20240719BHJP
【FI】
G06F12/1009
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024504794
(86)(22)【出願日】2022-07-21
(85)【翻訳文提出日】2024-02-08
(86)【国際出願番号】 EP2022070494
(87)【国際公開番号】W WO2023016770
(87)【国際公開日】2023-02-16
(32)【優先日】2021-08-13
(33)【優先権主張国・地域又は機関】EP
(81)【指定国・地域】
(71)【出願人】
【識別番号】500395107
【氏名又は名称】アーム・リミテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】サンドバーグ、アンドレアス ラース
(72)【発明者】
【氏名】ヴイオウカス、イリアス
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205JJ11
5B205RR04
5B205RR05
(57)【要約】
アドレス変換を実行するためのアドレス変換回路及び方法に関する。アドレス変換回路は、第1のアドレスの受信に応答して、所定の最大数の順次ルックアップを実行することによって、第1のアドレスと第2のアドレスとの間のアドレス変換を実行する。アドレス変換回路は、2N個のエントリを含む通常ページテーブルと、2N*M個のエントリを含む大ページテーブルとをサポートするように構成される。アドレス変換回路は、中間ルックアップを実行して、順次に次のルックアップアドレスを示す情報及びページテーブルサイズ情報を取り出し、ページテーブルサイズ情報が、順次に次のルックアップが大ページテーブルのうちの1つに対応することを示し、順次に次のルックアップの実行が所定の最大数の順次ルックアップを超える場合、後続のルックアップを抑制し、順次に次のルックアップアドレスを示す情報に基づいて第2のアドレスを生成するように構成される。
【特許請求の範囲】
【請求項1】
第1のアドレスの受信に応答して、複数のページテーブルレベルにおいて所定の最大数の順次ルックアップを実行することによって、前記第1のアドレスと第2のアドレスとの間のアドレス変換を実行するアドレス変換回路であって、
前記アドレス変換回路は、
2
N個のエントリを含む通常ページテーブルレベルと、2
N*M個のエントリを含む大ページテーブルレベルとをサポートし、通常ページテーブルレベルにおける各順次ルックアップは、前記所定の最大数の順次ルックアップの単一レベルルックアップであると見なされ、大ページテーブルレベルにおける各順次ルックアップは、前記所定の最大数の順次ルックアップのMレベルルックアップであると見なされ、
前記複数のページテーブルレベルのうちの現在の中間ページテーブルレベルから、順次に次のページテーブルレベルの順次に次のルックアップアドレスを示す情報と、前記順次に次のページテーブルレベルのサイズを示すページテーブルレベルサイズ情報と、を取り出し、
前記ページテーブルレベルサイズ情報が、前記順次に次のルックアップが前記大ページテーブルレベルのうちの1つに対応すること、及び前記順次に次のルックアップを実行することが、前記所定の最大数の順次ルックアップを超えることを示すとき、前記順次に次のルックアップアドレスを示す前記情報に基づいて、前記所定の最大数の順次ルックアップの後続のルックアップを抑制し、前記第2のアドレスを生成するために、中間ルックアップを実行する、ように構成されている、アドレス変換回路。
【請求項2】
前記第1のアドレスは、一連のNビットインデックス付け部分を含み、前記アドレス変換回路は、
前記一連のNビットインデックス付け部分のうちの単一のNビットインデックス付け部分を使用して、前記通常ページテーブルレベルのうちの1つにおける各順次ルックアップにインデックス付けし、
前記一連のNビットインデックス付け部分のうちのM個の順次Nビットインデックス付け部分を使用して、前記大ページテーブルレベルのうちの1つにおける各順次ルックアップにインデックス付けする、ように構成されている、請求項1に記載のアドレス変換回路。
【請求項3】
前記ページテーブルレベルサイズ情報が、前記順次に次のルックアップの実行が前記所定の最大数のルックアップ内であることを示すとき、及び前記順次に次のルックアップアドレスが前記現在の中間ページテーブルのアドレスに対応するとき、前記中間ルックアップは、前記現在の中間ページテーブルレベルの現在のサイズとは無関係に、前記所定の最大数の順次ルックアップの単一レベルルックアップであると見なされる、請求項2に記載のアドレス変換回路。
【請求項4】
前記アドレス変換回路は、前記中間エントリが単一レベルルックアップとして扱われることを示す制御ビットに応答して、前記現在の中間ページテーブルレベルの現在のサイズとは無関係に、前記中間ルックアップを、前記所定の最大数の順次ルックアップの前記単一レベルルックアップであると見なすように構成されている、請求項2に記載のアドレス変換回路。
【請求項5】
前記順次に次のルックアップアドレスが前記現在の中間ページテーブルの前記アドレスに対応し、前記現在のルックアップが前記大ページテーブルレベルのうちの1つに対応する場合、
前記現在のルックアップは、前記一連のNビットインデックス付け部分の現在のM個の順次部分を使用してインデックス付けされ、
前記現在のM個の順次インデックス付け部分の最下位M-1個の順次Nビットインデックス付け部分は、前記順次に次のルックアップをインデックス付けするために使用される順次に次のM個の順次インデックス付け部分の最上位M-1個の順次Nビットインデックス付け部分である、請求項3又は4に記載のアドレス変換回路。
【請求項6】
前記大ページテーブルレベルのうちの1つの中のレガシー構成領域を認識し、前記レガシー構成領域は、前記現在の中間ページテーブルレベルの前記アドレスに対応する順次に次のルックアップアドレスを識別する2
N個のエントリを備え、
前記M個の順次Nビットインデックス付け部分が2
N個のエントリの前記レガシー構成領域を指すとき、レガシー構成テーブル障害を生成する、ように更に構成されている、請求項2から5のいずれか一項に記載のアドレス変換回路。
【請求項7】
前記アドレス変換回路は、前記ページテーブルレベルサイズ情報が、前記順次に次のルックアップを実行することが前記所定の最大数の順次ルックアップを1より大きい量だけ超えることを示すとき、無効な変換障害を出力するように構成されている、請求項1から6のいずれか一項に記載のアドレス変換回路。
【請求項8】
前記所定の最大数の順次ルックアップの第1の中間ルックアップに対応する順次に第1のページテーブルレベルアドレスを示す情報と、前記第1のページテーブルレベルのサイズを示す第1のサイズ情報と、を記憶するための記憶回路を更に備える、請求項1から7のいずれか一項に記載のアドレス変換回路。
【請求項9】
前記記憶回路は、複数のページテーブルレベルアドレスを示す情報を記憶し、
前記アドレス変換回路は、前記第1のアドレスの1つ以上の選択ビットに基づいて、前記複数のページテーブルレベルアドレスから前記順次に第1のページテーブルレベルアドレスを選択するように構成されている、
請求項8に記載のアドレス変換回路。
【請求項10】
前記アドレス変換回路は、現在の特権レベルに更に基づいて、前記複数のページテーブルレベルアドレスから前記順次に第1のページテーブルレベルアドレスを選択するように構成されている、
請求項9に記載のアドレス変換回路。
【請求項11】
前記中間ルックアップ中に取り出された中間ルックアップ情報を、前記アドレス変換において既に使用された前記第1のアドレスのビットの対応するサブセットに関連付ける部分変換記憶回路を更に備え、前記中間ルックアップ情報は、前記順次に次のルックアップアドレスを示す情報と、前記順次に次のページテーブルレベルの前記サイズを示す前記情報と、を更に備える、請求項1から10のいずれか一項に記載のアドレス変換回路。
【請求項12】
前記第1のアドレスに基づいて、前記部分変換記憶回路において部分変換ルックアップを実行し、
前記部分変換ルックアップが前記部分変換記憶回路においてヒットするとき、前記順次に次のルックアップアドレスを示す前記情報と、前記順次に次のページテーブルレベルの前記サイズを示す前記情報と、を前記部分変換記憶回路から取り出し、前記アドレス変換において既に使用された前記第1のアドレスのビットの前記対応するサブセットに関連付けられたルックアップを抑制する、
ように更に構成されている、請求項11に記載のアドレス変換回路。
【請求項13】
前記第1のアドレスは、第1のアドレス空間において定義され、前記第2のアドレスは、第2のアドレス空間において定義される、請求項1から12のいずれか一項に記載のアドレス変換回路。
【請求項14】
前記第1のアドレス空間及び前記第2のアドレス空間の各々は、
仮想アドレス空間と、
中間物理アドレス空間と、
物理アドレス空間と、のうちの1つである、請求項13に記載のアドレス変換回路。
【請求項15】
第1のアドレスの受信に応答して、2
N個のエントリを含む通常ページテーブルレベルと、2
N*M個のエントリを含む大ページテーブルレベルとを含む、複数のページテーブルレベルにおいて所定の最大数の順次ルックアップを実行することによって、前記第1のアドレスと第2のアドレスとの間のアドレス変換を実行するための方法であって、通常ページテーブルレベルにおける各順次ルックアップは、前記所定の最大数の順次ルックアップの単一のルックアップであると見なされ、大ページテーブルレベルにおける各順次ルックアップは、前記所定の最大数の順次ルックアップのM個のルックアップであると見なされ、
前記方法は、
前記複数のページテーブルレベルのうちの現在の中間ページテーブルレベルから、順次に次のページテーブルレベルの順次に次のルックアップアドレスを示す情報と、前記順次に次のページテーブルレベルのサイズを示すページテーブルレベルサイズ情報と、を取り出すことと、
前記ページテーブルレベルサイズ情報が、前記順次に次のルックアップが前記大ページテーブルレベルのうちの1つに対応すること、及び前記順次に次のルックアップを実行することが、前記所定の最大数の順次ルックアップを超えることを示すとき、前記順次に次のルックアップアドレスを示す前記情報に基づいて、前記所定の最大数の順次ルックアップの後続のルックアップを抑制し、前記第2のアドレスを生成することと、によって、中間ルックアップを実行することを含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、アドレス変換を実行するためのアドレス変換回路及び方法に関する。
【0002】
アドレス変換回路は、複数のページテーブルレベルにおける所定数の順次ルックアップを使用して、第1のアドレスから第2のアドレスに変換するために使用される。所定数のルックアップの各々を実行することは、時間がかかり、アドレス変換における待ち時間をもたらす可能性がある。
【0003】
いくつかの構成では、第1のアドレスの受信に応答して、複数のページテーブルレベルにおいて所定の最大数の順次ルックアップを実行することによって、第1のアドレスと第2のアドレスとの間のアドレス変換を実行するアドレス変換回路が提供され、
アドレス変換回路は、
2N個のエントリを含む通常ページテーブルレベルと、2N*M個のエントリを含む大ページテーブルレベルとをサポートし、通常ページテーブルレベルにおける各順次ルックアップは、所定の最大数の順次ルックアップの単一レベルルックアップであると見なされ、大ページテーブルレベルにおける各順次ルックアップは、所定の最大数の順次ルックアップのMレベルルックアップであると見なされ、
複数のページテーブルレベルのうちの現在の中間ページテーブルレベルから、順次に次のページテーブルレベルの順次に次のルックアップアドレスを示す情報と、順次に次のページテーブルレベルのサイズを示すページテーブルレベルサイズ情報と、を取り出し、
ページテーブルレベルサイズ情報が、順次に次のルックアップが大ページテーブルレベルのうちの1つに対応すること、及び順次に次のルックアップを実行することが、所定の最大数の順次ルックアップを超えることを示すとき、順次に次のルックアップアドレスを示す情報に基づいて、所定の最大数の順次ルックアップの後続のルックアップを抑制し、第2のアドレスを生成するために、中間ルックアップを実行する、ように構成されている。
【0004】
いくつかの構成では、第1のアドレスの受信に応答して、2N個のエントリを含む通常ページテーブルレベルと、2N*M個のエントリを含む大ページテーブルレベルとを含む、複数のページテーブルレベルにおいて所定の最大数の順次ルックアップを実行することによって、第1のアドレスと第2のアドレスとの間のアドレス変換を実行するための方法が提供され、通常ページテーブルレベルにおける各順次ルックアップは、所定の最大数の順次ルックアップの単一のルックアップであると見なされ、大ページテーブルレベルにおける各順次ルックアップは、所定の最大数の順次ルックアップのM個のルックアップであると見なされ、
方法は、
複数のページテーブルレベルのうちの現在の中間ページテーブルレベルから、順次に次のページテーブルレベルの順次に次のルックアップアドレスを示す情報と、順次に次のページテーブルレベルのサイズを示すページテーブルレベルサイズ情報と、を取り出すことと、
ページテーブルレベルサイズ情報が、順次に次のルックアップが大ページテーブルレベルのうちの1つに対応すること、及び順次に次のルックアップを実行することが、所定の最大数の順次ルックアップを超えることを示すとき、順次に次のルックアップアドレスを示す情報に基づいて、所定の最大数の順次ルックアップの後続のルックアップを抑制し、第2のアドレスを生成することと、によって、中間ルックアップを実行することを含む。
【図面の簡単な説明】
【0005】
添付図面に示されるそれらの実施形態を参照して、あくまで一例として本技術を更に説明する。
【
図1】本技術の様々な構成によるデータ処理装置を概略的に示す図である。
【
図2】本技術の様々な構成によるアドレス変換回路を概略的に示す図である。
【
図3】本技術の様々な構成によるアドレス変換回路の更なる詳細を概略的に示す図である。
【
図4】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図5】本技術の様々な構成による大ページテーブルを使用したアドレス変換を概略的に示す図である。
【
図6】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図7】本技術の様々な構成による再帰を使用したアドレス変換を概略的に示す図である。
【
図8a】本技術の様々な構成による再帰を使用したアドレス変換を概略的に示す図である。
【
図8b】本技術の様々な構成による再帰を使用したアドレス変換を概略的に示す図である。
【
図9a】本技術の様々な構成による再帰を使用したアドレス変換の詳細を概略的に示す図である。
【
図9b】本技術の様々な構成による再帰を使用したアドレス変換の詳細を概略的に示す図である。
【
図9c】本技術の様々な構成による再帰を使用したアドレス変換の詳細を概略的に示す図である。
【
図10a】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図10b】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図10c】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図10d】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図11】本技術の様々な構成による再帰を使用したアドレス変換を概略的に示す図である。
【
図12】本技術の様々な構成によるアドレス変換におけるページウォーカーキャッシュの使用を概略的に示す図である。
【
図13】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図14】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図15a】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図15b】本技術の様々な構成によるアドレス変換を概略的に示す図である。
【
図16】本技術の様々な構成による中間ルックアップを実行するために実行される一連のステップを概略的に示す図である。
【
図17】本技術の様々な構成による中間ルックアップを実行するために実行される一連のステップを概略的に示す図である。
【0006】
いくつかの構成によると、第1のアドレスの受信に応答して、複数のページテーブルレベルにおいて所定の最大数の順次ルックアップを実行することによって、第1のアドレスと第2のアドレスとの間のアドレス変換を実行するアドレス変換回路が提供される。アドレス変換回路は、2N個のエントリを含む通常ページテーブルレベルと、2N*M個のエントリを含む大ページテーブルレベルとをサポートするように構成される。通常ページテーブルレベルにおける各順次ルックアップは、所定の最大数の順次ルックアップの単一レベルルックアップであると見なされ、大ページテーブルレベルにおける各順次ルックアップは、所定の最大数の順次ルックアップのMレベルルックアップであると見なされる。アドレス変換回路は、複数のページテーブルレベルのうちの現在の中間ページテーブルレベルから、順次に次のページテーブルレベルの順次に次のルックアップアドレスを示す情報と、順次に次のページテーブルレベルのサイズを示すページテーブルレベルサイズ情報と、を取り出すために、中間ルックアップを実行するように更に構成されている。アドレス変換回路は、ページテーブルレベルサイズ情報が、順次に次のルックアップが大ページテーブルレベルのうちの1つに対応すること、及び順次に次のルックアップを実行することが、所定の最大数の順次ルックアップを超えることを示すとき、順次に次のルックアップアドレスを示す情報に基づいて、所定の最大数の順次ルックアップの後続のルックアップを抑制し、第2のアドレスを生成するために、中間ルックアップを実行する、ように更に構成されている。
【0007】
アドレス変換回路は、所定の最大数の順次ルックアップを使用して、第1のアドレスと第2のアドレスとの間のアドレス変換を実行する。所定数は、任意の方法で設定することができ、いくつかの構成では、柔軟に定義することができる。しかしながら、いくつかの構成では、所定数はハードウェアで設定され、第1のアドレス内のビット又はビットのサブセクションの数と相関する。所定数のルックアップの各ルックアップは、第1のアドレスのいくつかのインデックス付けビットと、順次に先行するルックアップから取得される情報と、を使用して実行される。所定数のルックアップは、順次に次のルックアップで使用される中間アドレスを生成する中間ルックアップと、第2のアドレスを生成するために使用される最終ルックアップとに分割される。複数のページテーブルの各々は、第1のアドレスのインデックス付け部分のうちの1つによってインデックス付けされる設定数のエントリを含む。順次ルックアップは、ページテーブルウォークを形成する。所定数のルックアップは、実行される必要があるルックアップの数に依存するページテーブルウォークにおける特定の待ち時間をもたらす。本技法の発明者らは、実行されるルックアップの数が、通常ページテーブル及び大ページテーブルの定義を通して低減され得ることを認識した。各通常ページテーブルは、Nが正の(非0)整数である2N個(2のN乗)のエントリを含み、各大ページテーブルは、Mが1より大きい正の整数である2N*M個のエントリ(2のN*M乗)個のエントリを含む。アドレス変換回路は、通常ページテーブル内の各ルックアップを、所定数のルックアップのうちの単一のルックアップであると見なし(すなわち、単一のルックアップとして、通常ページテーブル内の各ルックアップをカウントするか、又はそうでなければ各ルックアップを扱う)、大ページテーブル内の各ルックアップをM個のルックアップであると見なすように構成される。したがって、通常ページテーブルにおけるM個のルックアップと等価である大ページテーブルにおいて単一のルックアップを実行することが可能であり、その結果、実行されるルックアップの数が減少する。
【0008】
アドレス変換回路は、中間ルックアップを実行するときに、現在の中間ページテーブル内のサイズ情報に基づいて、順次に次のルックアップが大ページテーブルに対応するか否かを判定するように構成される。サイズ情報が、順次に次のルックアップが大ページテーブル内のルックアップであることを示す場合、アドレス変換回路は、次のエントリがM個のルックアップと等価になることを決定することができ、したがって、第1のアドレスの適切な数のビット(適切な数のインデックス付け部分に対応する)を使用して次のルックアップを実行することができる。アドレス変換回路は、サイズ情報が、順次に次のルックアップが大テーブルのうちの1つに対応することを示すとき、及び次のルックアップを実行することが所定数の順次ルックアップを超えるとき、所定の最大数の順次ルックアップの後続のルックアップを抑制するように更に構成される。特に、所定数のルックアップが整数Kに等しく、現在の数のルックアップがJである場合、サイズ情報が、次のルックアップが大ページテーブル内にあることを示し、J+M>Kであるとき、所定数のルックアップのうちの残りのK-J個のルックアップが抑制される。この状況では、アドレス変換回路は、最終ルックアップを実行せず、代わりに、現在の中間ページテーブルレベルから取得された、順次に次のルックアップアドレスを示す情報を使用して、第2のアドレス及び第1のアドレスからの情報を生成する。そのような構成では、第2のアドレスは、次のルックアップアドレスから直接生成される。いくつかのそのような構成では、次のルックアップアドレスの上位部分は、第2のアドレスの上位部分を形成し、第2のアドレスの残りの下位部分は、第1のアドレスの最下位部分において示される量だけ次のルックアップアドレスの下位部分をオフセットすることによって生成される。
【0009】
ページテーブルにインデックス付けするために使用されるビット数は、様々に定義することができ、いくつかの構成では、所定数のルックアップにおける各ルックアップごとに異なる。しかしながら、いくつかの構成では、第1のアドレスは、一連のNビットインデックス付け部分を備え、アドレス変換回路は、一連のNビットインデックス付け部分のうちの単一のNビットインデックス付け部分を使用して、通常ページテーブルレベルのうちの1つにおける各順次ルックアップをインデックス付けし、一連のNビットインデックス付け部分のうちのM個の順次Nビットインデックス付け部分を使用して、大ページテーブルレベルのうちの1つにおける各順次ルックアップをインデックス付けするように構成される。一連のNビットインデックス付け部分はまた、第1のアドレスのサブセクションであり、いくつかの構成では、第2のアドレスの最終部分を指定するための情報、又は第1の中間ルックアップの特定の開始アドレスを指定するための情報を含む。通常ページテーブルの各々は、2N個のエントリを含むメモリの連続領域を含み、サイズ2N個のエントリの領域間の境界に位置合わせされ、それにより、各通常ページテーブルアドレスは、2N個のエントリの領域を指定し、特定のエントリは、第1のアドレスからのNビットインデックス付け部分を使用してインデックス付けされ得る。いくつかの構成では、通常ページテーブルベースアドレスの最終N+D(ここで、2Dは、バイト単位のページテーブルエントリのサイズに対応する)ビットは0であり、特定のエントリのアドレスは、通常ページテーブルベースアドレスの最終N+Dビットを、最下位部分としてD個の後続ゼロが付加された第1のアドレスからのNビットインデックス付け部分を使用して生成されたN+Dビットインデックス付け部分で置き換えることによって生成される。同様に、大ページテーブルの各々は、2N*M個のエントリを含むメモリの連続領域を含み(サイズ2N個のエントリのM個の連続領域に等しい)、サイズ2N*M個のエントリの領域間の境界に位置合わせされ、それにより、各大ページテーブルアドレスが2N*M個のエントリの領域を指定し、特定のエントリは、第1のアドレスからのM個の順次Nビットインデックス付け部分を使用してインデックス付けされ得る。いくつかの構成では、通常ページテーブルアドレスの最終M*N+Dビットは0であり、特定のエントリのアドレスは、通常ページテーブルアドレスの最終M*N+Dビットを、最下位部分としてD個の後続ゼロが付加された第1のアドレスからのN*Mビットインデックス付け部分を使用して生成された(M*N+D)ビットインデックス付け部分で置き換えることによって生成される。
【0010】
第1のアドレスを通常ページテーブルレベル又は大ページテーブルレベルのうちの1つのルックアップアドレスにマッピングするための機構を提供すること、すなわち、通常ページテーブルレベル又は大ページテーブルレベルのうちのその1つが記憶されるメモリ空間が第1のアドレスを介してアクセスされ得るようにすることが望ましい。これは、所定の最大数のルックアップのうちの1つ以上として、順次に次のルックアップアドレスが現在の中間ページテーブルのアドレスに対応する再帰的ルックアップを実行することによって達成することができる。しかしながら、本発明者らは、大ページテーブルが存在する場合、このメカニズムは、すべてのページテーブルレベルのルックアップアドレスを第1のアドレスにマッピングするために常に使用できるわけではないことを認識した。例えば、順次に第1のページテーブルレベルのルックアップアドレスをマッピングすることが望ましい場合がある。大ページテーブルが存在しない場合、順次に第1のページテーブルレベルのルックアップアドレスは、順次に第1のページテーブルレベルを繰り返し自己参照することによってマッピングされ得る。次いで、順次に第1のページテーブルレベルは、第1のアドレスの最終インデックス付け部分を使用してインデックス付けされ得る。しかしながら、第1のページテーブルレベルが、所定数のルックアップのうちのM個のルックアップとして扱われる大ページテーブルレベルである場合、大ページテーブル内の各ルックアップは、第1のアドレスのM個の順次Nビット部分を必要とする。このような場合、順次に第1のページテーブルレベルにインデックス付けするのに十分な数のビットが最終インデックス付け部分に常に存在するとは限らず、障害が発生する。したがって、いくつかの構成では、ページテーブルレベルサイズ情報が、順次に次のルックアップの実行が所定の最大数のルックアップ内であることを示すとき、及び順次に次のルックアップアドレスが現在の中間ページテーブルのアドレスに対応するとき、中間ルックアップは、現在の中間ページテーブルレベルの現在のサイズとは無関係に、所定の最大数の順次ルックアップの単一レベルルックアップであると見なされる。アドレス変換回路は、順次に次のルックアップの実行が所定の最大数のルックアップ内である(すなわち、超えない)とき、順次に次の中間ルックアップを実行するか、又は順次ルックアップの実行が所定の最大数のルックアップに等しいルックアップの数をもたらすとき、最終ルックアップのいずれかを実行するように構成される。そのような状況では、現在のルックアップが自己参照(再帰的)ルックアップ、すなわち、現在の中間ルックアップのアドレスである順次に次のルックアップアドレスをもたらすルックアップであるとき、現在のルックアップは、現在のルックアップのサイズとは無関係の単一のルックアップとして扱われる。言い換えれば、現在のルックアップが現在の大ページテーブルレベルにおけるルックアップであり、順次に次のルックアップアドレスが現在の大ページテーブルレベルのアドレスであると判定された場合、現在のルックアップは、非自己参照大ページテーブルルックアップに関連付けられるM個のルックアップではなく、単一のルックアップであると判定される。一方、現在のルックアップが現在の大ページテーブルレベルにおけるルックアップであり、順次に次のルックアップアドレスが現在の大ページテーブルレベルのアドレスと異なると判定された場合、現在のルックアップはM個のルックアップであると判定される。自己参照ルックアップを単一のルックアップとして扱うことによって、所定数のルックアップから生じるページテーブルレベルにインデックス付けすることが常に可能であり、大ページテーブルのルックアップアドレスを第1のアドレスとしてマッピングすることができる。
【0011】
いくつかの構成では、アドレス変換回路は、中間ルックアップが単一レベルルックアップとして扱われることを示す制御ビットに応答して、現在の中間ページテーブルレベルの現在のサイズとは無関係に、中間ルックアップを、所定の最大数の順次ルックアップの単一レベルルックアップであると見なすように構成されている。いくつかの構成では、制御ビットは、前のルックアップで読み取られた先行ページテーブルレベル内の制御ビットとして提供される。代替的に、いくつかの構成では、制御ビットは第1のアドレス内で符号化される。いくつかの代替構成では、アドレス変換回路は、大ページテーブルレベルであるページテーブルレベルを示すルックアップテーブルを記憶するための記憶回路を備え、アドレス変換回路は、現在の中間ページのアドレスに基づいて制御ビットの値を決定するためにルックアップテーブル内でルックアップを実行するように構成される。制御ビットは、アドレス変換回路がページテーブルレベルが自己参照であるか否かを判定する必要性を回避する代替機構を提供し、自己参照は、現在のページテーブルレベルのアドレスと順次に次のページテーブルレベルのアドレスとの比較を必要とする。したがって、ページテーブルレベルが自己参照であるかどうかを示すために制御ビットを使用することによって、この比較を回避することができ、よりコンパクトな実装形態を提供することができる。
【0012】
いくつかの構成では、順次に次のルックアップアドレスが現在の中間ページテーブルのアドレスに対応し、現在のルックアップが大ページテーブルレベルのうちの1つに対応するとき、現在のルックアップは、一連のNビットインデックス付け部分の現在のM個の順次部分を使用してインデックス付けされ、現在のM個の順次インデックス付け部分の最下位のM-1個の順次Nビットインデックス付け部分は、順次に次のルックアップをインデックス付けするために使用される順次に次のM個の順次インデックス付け部分の最上位のM-1個の順次Nビットインデックス付け部分である。各大ルックアップは、一連のNビットインデックス付け部分のM個の順次部分を必要とするので、大ページテーブル内のルックアップが自己参照ルックアップである場合、これらの2つのルックアップ(自己参照であったルックアップと、現在のルックアップが自己参照であるためにやはり大ルックアップでなければならない次のルックアップ)を実行するために、一連のNビットインデックス付け部分の合計2ロットのM個の順次部分が必要とされる。本発明者らは、第1のルックアップが単一のルックアップとして扱われる場合、所定数の順次ルックアップにインデックス付けするために必要なビットの総数が、第1のアドレスで利用可能なビットの総数を超えることに気付いた。したがって、ルックアップが自己参照である場合、自己参照ルックアップにインデックス付けするために使用されるいくつかのビットは、順次に次のルックアップにおいて再使用される。例えば、M=2である場合、大ページテーブルレベルにおけるルックアップは、2つの順次Nビットインデックス付け部分を必要とする。この例では、第1のアドレスは、3つの順次Nビットインデックス付け部分、すなわちNビットインデックス付け部分1、Nビットインデックス付け部分2、及びNビットインデックス付け部分3を含む(Nビットインデックス付け部分1は最上位インデックス付け部分であり、Nビットインデックス付け部分2が続き、その後Nビットインデックス付け部分3が続く)。ルックアップが自己参照である場合、大ページテーブルレベルにおけるルックアップは、単一レベルルックアップとして扱われる。その結果、M=2個の順次インデックス付け部分の最下位部分(M=2であるM-1個の部分)は、順次に次のルックアップにおいて再使用される。この場合、Nビットインデックス付け部分2は、Nビットインデックス付け部分3と組み合わせて2回目に使用され、順次に次のルックアップを大ルックアップレベルにインデックス付けする。この機構を使用し、大ページテーブルレベルにおける再帰的(自己参照)エントリの配置を選択することによって、追加のNビット部分を第1のアドレスに追加する必要なく、適切な数のルックアップを実行することができる。
【0013】
いくつかの実装形態では、アドレス変換回路は、大ページテーブルレベルをサポートしないレガシー構成と同じページテーブルレベルのセットにアクセスする必要がある。そのようなレガシー構成をサポートするために、いくつかの構成では、アドレス変換回路は、大ページテーブルレベルのうちの1つの中のレガシー構成領域を認識し、レガシー構成領域は、現在の中間ページテーブルレベルのアドレスに対応する順次に次のルックアップアドレスを識別する2N個のエントリを含み、M個の順次Nビットインデックス付け部分が2N個のエントリのレガシー構成領域を指すとき、レガシー構成テーブル障害を生成するように更に構成される。そのような構成では、所定の最大数の順次ルックアップのうちのM個に対応する大ページは、各々が2N個のエントリを含む2M個の連続領域のうちの1つとして通常ページテーブルを含む。通常ページテーブルは、レガシー構成によって通常ページテーブルとして扱うことができる大ページテーブル内の異なる2N個の領域を指すエントリを含むレガシー構成領域として予約される。このようにして、レガシー構成は、ページテーブルレベルの各々が通常ページテーブルレベルであるかのようにページテーブルレベルを解釈することができる。しかしながら、アドレス変換回路は、レガシー構成領域にインデックス付けしない限り、大ページテーブルレベルを使用する利点を依然として達成することができる。したがって、第1のアドレスのM個の順次Nビットインデックス付け部分が、アドレス変換回路にレガシー構成領域へのインデックス付けを行わせる場合、障害が発生する。アドレス変換回路は、様々な方法でレガシー構成を認識することができる。いくつかの構成では、レガシー領域を示すためにページテーブルレベル内に追加のビットが提供される。他の代替構成では、大テーブル内のレガシー構成領域の位置は固定され、大ページテーブルの固定領域にインデックス付けする任意の試みがレガシー構成障害をもたらす。
【0014】
いくつかの構成では、第1のアドレスは、所定数のルックアップに等しいインデックス付け部分の数と、第2のアドレスを生成するために順次に次のページテーブルレベルのアドレスと組み合わせて使用される最終部分とを指定する。中間ルックアップがM個のエントリを含む大ページテーブル内のルックアップであり、サイズ情報が、順次に次のルックアップを実行することが所定の最大数のルックアップを1だけ超えることを示す場合、未使用のM-1(Mマイナス1)個のインデックス付け部分が依然として存在する。したがって、第1のアドレスの最終部分は、M-1個の未使用インデックス付け部分及び順次に次のページテーブルレベルのアドレスと組み合わせて使用されて、第2のアドレスを形成する。いくつかの構成では、アドレス変換回路は、ページテーブルレベルサイズ情報が、順次に次のルックアップを実行することが所定の最大数の順次ルックアップを1より大きい量だけ超えることを示すとき、無効な変換障害を出力するように構成されている。これは、順次に次のルックアップを実行すると、所定数のルックアップが1より大きい量だけ超過されることになる場合、第2のアドレスを生成するために第1のアドレス内に不十分な情報しかないためである。したがって、無効な変換障害が出力される。
【0015】
いくつかの構成では、アドレス変換回路は、所定の最大数の順次ルックアップの第1の中間ルックアップに対応する順次に第1のページテーブルレベルアドレスを示す情報と、第1のページテーブルレベルのサイズを示す第1のサイズ情報と、を記憶するための記憶回路を更に備える。いくつかの構成では、記憶回路は特定のメモリ位置である。他の構成では、記憶回路は、順次に第1のページテーブルレベルアドレスを記憶するために使用される1つ以上のレジスタである。1つ以上のレジスタはまた、順次に第1の中間ルックアップが大ページテーブルのうちの1つに対応するように設定され得るように、サイズ情報を記憶する。
【0016】
いくつかの構成では、記憶回路は、複数のページテーブルレベルアドレスを示す情報を記憶し、アドレス変換回路は、第1のアドレスの1つ以上の選択ビットに基づいて、複数のページテーブルレベルアドレスから順次に第1のページテーブルレベルアドレスを選択するように構成されている。いくつかの構成では、1つ以上の選択ビットは、2つの第1のページテーブルレベルアドレスの間で選択するために使用される単一のビットである。他の構成では、選択ビットは、複数の第1のページテーブルレベルアドレスが選択されることを可能にする複数のビットを含む。いくつかの構成では、アドレス変換回路は、1つ以上の選択ビットを第1のアドレスの最上位の1つ以上のビットとして認識するように構成される。他の構成では、アドレス変換回路は、1つ以上の選択ビットを、第1のアドレスの複数の制御ビットに符号化される情報として認識するように構成される。いくつかの構成では、記憶回路に記憶される第1のページテーブルレベルアドレスの各々は、第1のページテーブルレベルアドレスの各々について、その第1のページテーブルレベルが大ページテーブルレベルであるか通常ページテーブルレベルであるかを一意に定義することが可能であるように、それ自体のサイズ情報を含む。他の構成では、第1のページテーブルレベルアドレスのすべてが大ページテーブルレベルのアドレスであるか、又は小ページテーブルレベルのアドレスであるかを決定するために使用されるサイズ情報の単一セットが提供される。
【0017】
いくつかの構成では、アドレス変換回路は、現在の特権レベルに更に基づいて、複数のページテーブルレベルアドレスから順次に第1のページテーブルレベルアドレスを選択するように構成されている。特権レベルは、アドレス変換回路による変換のために第1のアドレスを提供している処理回路の特権レベルである。このようにして、より高い特権レベル及びより低い特権レベルに対して異なる第1のページテーブルレベルアドレスを提供することができる。この手法を使用して、より高い特権レベルで動作するプロセッサ、及びより低い特権レベルで動作するプロセッサによってアクセスされるページテーブルレベル間の分離を維持することが可能である。
【0018】
いくつかの構成では、アドレス変換回路は、中間ルックアップ中に取り出された中間ルックアップ情報を、アドレス変換において既に使用された第1のアドレスのビットの対応するサブセットに関連付ける部分変換記憶回路を更に備え、中間ルックアップ情報は、順次に次のルックアップアドレスを示す情報と、順次に次のページテーブルレベルのサイズを示す情報と、を更に備える。部分変換記憶回路は、所定の最大数の順次ルックアップの順次に第1のサブセットがスキップされることを可能にし、所定の最大数の順次ルックアップの順次に第1サブセットは、変換が既に部分変換キャッシュに記憶されているほど十分に最近に実行されている。各変換は、第1のアドレスに提供されるビットに基づいて完全に定義される。いくつかの構成では、第1のアドレスは、所定の最大数の順次ルックアップの順次ルックアップレベルに関連付けられた一連のインデックス付け部分を備える。部分変換記憶回路は、これらの変換の各々を示す情報を記憶するように構成され、その結果、後続の第1のアドレスが、競合した変換の対応するインデックス付け部分と同じであるいくつかのインデックス付け部分を含む場合、これらの変換の結果は、これらのルックアップを繰り返すのではなく、部分変換記憶回路内のルックアップから決定することができる。
【0019】
いくつかの構成では、アドレス変換回路は、第1のアドレスに基づいて部分変換記憶回路において部分変換ルックアップを実行し、部分変換ルックアップが部分変換記憶回路においてヒットするとき、順次に次のルックアップアドレスを示す情報と、順次に次のページテーブルレベルのサイズを示す情報と、を部分変換記憶回路から取り出し、アドレス変換において既に使用された第1のアドレスのビットの対応するサブセットに関連付けられたルックアップを抑制する、ように更に構成されている。一例として、4つのインデックス付け部分を含む第1のアドレスが変換される場合、ルックアップの各々を示す情報が部分変換記憶回路に記憶される。後続のルックアップがすべての4つのインデックス付け部分を共有する場合、すべての4つのルックアップをスキップすることができ、第2のアドレスは、部分変換記憶回路内のルックアップに基づいて決定することができる。しかしながら、後続のルックアップが2つの最上位インデックス付け部分のみを第1のアドレスと共有する場合、2つの最上位インデックス付け部分に関連付けられたルックアップをスキップすることができ、必要な情報を部分アドレス変換記憶回路から抽出することができる。大ページテーブル及び通常ページテーブルに対応するルックアップをサポートするために、部分変換記憶回路は、順次に次のページテーブルレベルのサイズを示すサイズ情報を記憶するように構成される。したがって、部分アドレス変換記憶回路は、必要なルックアップの総数を低減することができる追加の方法を提供することができる。大ページテーブルレベルと組み合わせて使用されるとき、ルックアップの総数は更に低減され得る。
【0020】
第1のアドレス及び第2のアドレスは、同じアドレス空間内で定義され得る。しかしながら、いくつかの構成では、第1のアドレスは第1のアドレス空間において定義され、第2のアドレスは第2のアドレス空間において定義される。そのような構成では、第2のアドレス空間は、第1のアドレス空間とは異なるアドレス空間である。いくつかの構成では、第1のアドレス空間及び第2のアドレス空間の各々は、仮想アドレス空間、中間物理アドレス空間、物理アドレス空間のうちの1つである。このようにして、アドレス変換回路は、仮想アドレスが中間物理アドレスに変換され、次に物理アドレスに変換される仮想化システムをサポートするように構成することができる。
【0021】
いくつかの構成では、Mは、固定値及びサイズ情報が単一ビットであることと、変数及びMの値がサイズ情報によって示されることとのうちの1つである。Mが固定されるいくつかの構成では、Mの値は、レジスタに記憶される中心値として定義される。Mが固定される他の構成では、Mの値はハードウェアによって設定され、変更することができない。いくつかの構成では、Mは2に等しい。そのような構成は、より単純な実装をもたらす。Mの値が可変である代替構成では、Mの値はサイズ情報によって定義される。例えば、サイズ情報は、4つの値を可能にする2ビットを含むことができる。4つの値を使用して、順次に次のルックアップが通常ルックアップに対応するか、サイズM=2、M=3、又はM=4の大ルックアップに対応するかを示すことができる。この構成は、ページテーブルレベルの特に柔軟な配置を提供することができる。
【0022】
ここで、特定の例について、図を参照して説明する。
【0023】
図1は、本技術の様々な構成によるアドレス変換回路を利用するデータ処理装置2の一例を概略的に示す。データ処理装置2は、フェッチステージ6と、復号ステージ10と、リネームステージ12と、発行ステージ16と、実行ステージ18と、ライトバックステージ20とを含む複数のステージを含む。命令はパイプラインを通ってステージからステージへ移動し、一部の命令がパイプラインの1つのステージにあり、他の命令が別のステージで保留中であり得る。これは可能なパイプライン構成の単なる例であり、他の例は必要に応じて異なるステージ又はステージの組み合わせを有してもよいことが理解されるであろう。
【0024】
フェッチステージ6は、例えば命令キャッシュから命令をフェッチする。分岐予測器4は、分岐命令の結果を予測するために設けることができる。フェッチされた命令は復号ステージ10に渡され、復号ステージ10は命令を復号して、実行ステージ18をトリガして対応する処理動作を実行させるための制御信号を提供することができる復号された命令を生成する。フェッチステージ6によってフェッチされた一部の命令について、復号ステージ10は、パイプラインの後のステージによって見られる「命令」がキャッシュ8からフェッチされた命令とは異なる形態であり得るように、命令を2つ以上の復号された命令にマッピングし得る。復号された命令は、命令によって指定されたアーキテクチャレジスタ指定子を、命令に応答してアクセスされるべき対応する物理レジスタ14を識別する物理レジスタ指定子にマッピングするために、レジスタリネームステージ12に渡される。発行ステージ16は、実行のために発行を待っている命令をキューに入れる。実行ステージ18は、発行ステージ16によって発行された命令を実行し、命令に応答して、算術演算若しくは論理演算、又はデータキャッシュ30若しくは更なるレベルのキャッシュ32若しくはメモリ34へのロード/ストア動作などの様々なデータ処理動作を実行する。実行ユニット18は、いくつかの保留中のロード/ストア動作をキューに入れるためのロードストアユニット26を含むいくつかの実行ユニット22、24、21、25を有することができる。実行ユニットは、1つ以上の命令の投機的実行が可能であってもよく、投機的に実行された命令の実行を追跡するために投機制御ユニット35が設けられてもよい。ライトバックステージ20は、実行ステージ18によって実行された命令の結果を、述語レジスタ44及び条件ステータスレジスタ42を含む物理レジスタファイル14に書き込む。
【0025】
パイプラインはまた、第1のアドレスと第2のアドレスとの間の変換を実行するためのアドレス変換回路40を有する。アドレス変換回路40は、ロード/ストアユニット26及びフェッチステージ6から受信された第1のアドレスの変換を実行し、第1のアドレスが受信されたロード/ストアユニット26又はフェッチステージ6に第2のアドレスを返す。アドレス変換回路40は、L2キャッシュ32又はメモリ34に記憶されたページテーブルレベルにおいて所定の最大数の順次ルックアップを実行することによってアドレス変換を実行する。
【0026】
図2は、いくつかの例示的な構成におけるアドレス変換回路40の詳細を概略的に示す。アドレス変換回路は、第1のアドレス42を受け取り、変換を実行して第2のアドレス44を出力する。アドレス変換回路40は、多数のページテーブルにおいて所定の最大数の順次ルックアップを行うことによって変換を実行する。ページテーブルは、2
N個のエントリを含む通常ページテーブルレベル48と、2
N*M個のエントリを含む大ページテーブルレベルとを含む。通常ページテーブルレベル48のうちの1つにおける各ルックアップは、所定の最大数の順次ルックアップの単一のルックアップである(すなわち、カウントされる)と考えられる。大ページテーブルレベル46のうちの1つにおける各ルックアップは、所定の最大数の順次ルックアップのうちのM個のルックアップであると見なされる。所定の最大数のルックアップの各ルックアップは、先行するルックアップからの情報と第1のアドレスからの情報とを使用する。所定の最大数のルックアップは、順次に次のページテーブルレベルにおける順次に次のルックアップのアドレスと、順次に次のページテーブルレベルのサイズを示すページテーブルレベルサイズ情報とを生成する中間ルックアップを含む。中間ルックアップ中に、所定の最大数のルックアップの順次に次のルックアップが大ルックアップに対応し、順次に次のルックアップを実行することが所定の最大数の順次ルックアップを超えることが決定されると、後続のルックアップは抑制され、第2のアドレス44は、現在の中間ルックアップから決定された順次に次のルックアップアドレス及び第1のアドレス42からの情報に基づいて出力される。
【0027】
アドレス変換回路40は、一連のルックアップにおける順次に最終ルックアップから生成された第2のアドレスを出力する。説明したように、これは、中間ルックアップから取得された出力アドレス(順次に次のルックアップを実行することが所定の最大数のルックアップを超えると決定される場合)、又はそうでなければ、最終ルックアップから取得された出力アドレスであり得る。メモリ内のページテーブル(大又は通常)を指す先行するルックアップからのアドレスとは異なり、出力アドレスは、第2のアドレスのビット数が出力アドレスのビット数と同じになるように第2のアドレスを取得するために直接使用される。特に、出力アドレスは、いくつかのビット、例えば、32ビットアドレス空間で使用される32ビット出力アドレスを含む(他のアドレス空間サイズ、例えば、64ビットアドレス空間も使用できることは当業者には容易に明らかである)。この段階で、出力アドレスはアドレス空間の領域を示し、特定の第2のアドレスを示さない。アドレス変換回路40によって出力される特定の第2のアドレスは、第1のアドレスから最下位ビット数だけ出力アドレスをオフセットすることによって生成される。これは、出力アドレスの上位部分を取り、第1のアドレスの最下位ビットを出力アドレスの上位部分に付加することによって達成される。例えば、第2のアドレスが32ビットアドレスであり、出力アドレスがメモリの通常サイズの領域を示す場合、第2のアドレスは、出力アドレスの最上位20ビットを取り、第1のアドレスの12ビットを最上位20ビットに付加することによって生成される。代替例として、第2のアドレスが32ビットアドレスであり、出力アドレスがメモリの大きなサイズの領域を示す場合、第2のアドレスは、出力アドレスの最上位11ビットを取り、第1のアドレスの21ビットを最上位11ビットに付加することによって生成される。代替的に、第2のアドレスは、出力アドレスと第1のアドレスの最下位部分とを組み合わせる算術演算を実行することによって生成することができる。
【0028】
図3は、いくつかの例示的な構成におけるアドレス変換回路40の更なる詳細を概略的に示す。アドレス変換回路は、以前のアドレス変換に関連する情報をキャッシュする部分変換記憶回路50を含む。アドレス変換回路40はまた、特権ベースレジスタ52と非特権ベースレジスタ54とを備える。特権ベースレジスタ52及び非特権ベースレジスタ54は各々、順次に第1のページテーブルレベルのアドレスと、順次に第1のページテーブルレベルのサイズを示すサイズ情報とを含む。アドレス変換回路40は、第1のアドレス42の選択ビットに格納された情報に基づいて、特権ベースレジスタ52と非特権ベースレジスタ54との間で選択を行う。このようにして、アドレス変換回路40は、特権モードで動作している処理回路によって提供されるアドレスに関連付けられた変換と、非特権モードで動作している処理回路によって提供されるアドレスに関連付けられた変換との間の区別を維持する。アドレス変換回路40には更に、障害出力表示56が与えられる。障害出力表示56は、アドレス変換回路40の動作中に発生する障害の表示を提供する。障害表示56は、アドレス変換障害及び特権レベル障害を示すために使用される。
【0029】
図4は、様々な構成によるアドレス変換回路40によって実行されるアドレス変換の詳細を概略的に示す。アドレス変換回路40は、第1のアドレスを受信する。第1のアドレスは、一連のインデックス付け部分(ビット47から39まで、ビット38から30まで、ビット29から21まで、及びビット20から12まで)を含む48ビットを含む。一連のインデックス付け部分の各インデックス付け部分は、所定の最大数の順次ルックアップのルックアップレベルに対応する(のために使用される)。図示の構成では、所定の最大数のルックアップは4であり、第1のアドレスは、所定の最大数のルックアップの各々について1つのインデックス付け部分を含む。
【0030】
第1のアドレスのビット47から39までは、L0インデックス付けビットであり、これは、L0ルックアップ(所定数のルックアップの順次に第1の中間ルックアップ)中にアクセスされるページテーブルレベルにインデックス付けするために使用される。L0ルックアップは、アドレス変換回路の記憶回路に記憶されたページテーブルアドレス(L0ベースアドレス)においてページテーブルレベルで実行される。記憶回路は、L0ルックアップが通常ページテーブルレベル(次の大:0)におけるルックアップであることを示すサイズ情報を更に含む。L0ベースアドレス及びL0インデックス付けビットに基づいて実行されるルックアップは、順次に次のルックアップに使用されるベースアドレスと、L1ルックアップと、L1ルックアップが通常ページテーブルレベルにおけるルックアップであることを示すサイズ情報とを返す。
【0031】
第1のアドレスのビット38から30までは、L1ルックアップ(所定数のルックアップの順次に第2の中間ルックアップ)中にアクセスされるページテーブルレベルにインデックス付けするために使用されるL1インデックス付けビットである。L1ルックアップは、L0ルックアップ中に取得されたベースアドレス(L1ベースアドレス)においてページテーブルレベルで実行される。L1ベースアドレス及びL1インデックス付けビットに基づいて実行されるルックアップは、順次に次のルックアップ、L2ルックアップ、及びL2ルックアップが通常ページテーブルレベルでのルックアップであることを示すサイズ情報に使用されるベースアドレスを返す。
【0032】
第1のアドレスのビット29から21までは、L2インデックス付けビットであり、これは、L2ルックアップ(所定数のルックアップの順次に第3の中間ルックアップ)中にアクセスされるページテーブルレベルにインデックス付けするために使用される。L2ルックアップは、L1ルックアップ中に取得されたベースアドレス(L2ベースアドレス)においてページテーブルレベルで実行される。L2ベースアドレス及びL2インデックス付けビットに基づいて実行されるルックアップは、順次に次のルックアップ、L3ルックアップ、及びL3ルックアップが通常ページテーブルレベルでのルックアップであることを示すサイズ情報に使用されるベースアドレスを返す。
【0033】
第1のアドレスのビット20から12までは、L3ルックアップ(所定数のルックアップの最終ルックアップ)中にアクセスされるページテーブルレベルにインデックス付けするために使用されるL3インデックス付けビットである。L3ルックアップは、L2ルックアップ中に取得されたベースアドレス(L3ベースアドレス)においてページテーブルレベルで実行される。L3ベースアドレス及びL3インデックス付けビットに基づいて実行されるルックアップは、第2のアドレスを取得するために第1のアドレスのアドレス指定部分(ビット11から0まで)と組み合わされるアドレスを返す。
【0034】
図5は、様々な構成によるアドレス変換回路40によって実行されるアドレス変換の詳細を概略的に示す。
図4と同様に、アドレス変換回路40は第1のアドレスを受信する。第1のアドレスは、一連のインデックス付け部分(ビット47から39まで、ビット38から21まで、及びビット20から12まで)を含む48ビットの第1のアドレスを含む。一連のインデックス付け部分の各インデックス付け部分は、所定の最大数の順次ルックアップのルックアップレベルに対応する(のために使用される)。図示の構成では、所定の最大数のルックアップは4である。しかしながら、第1のアドレスは3つのインデックス付け部分のみを含む。第2のインデックス付け部分(ビット38から21まで)は、M=2個の順次インデックス付け部分(すなわち、ビット38から30までとビット29から21までの組み合わせ)を使用してインデックス付けされる大ルックアップに対応する。第1のアドレスのインデックス付け部分がアドレス変換回路によって正しく解釈されるように、対応するページテーブルレベルは、次のページテーブルレベルが大ページテーブルレベルであるときを示すサイズ情報を記憶する。サイズ情報は、「次の大」インジケータ、すなわち「NL」インジケータが1に設定されることによって図に示され、「次の大」インジケータ、すなわち「NL」インジケータが図に存在しない場合、「次の大」インジケータ、すなわち「NL」インジケータは、次のページテーブルレベルが通常ページテーブルレベルであることを示す0に設定されることを暗示することに留意されたい。
図4と比較すると、L1及びL2ルックアップに関連付けられたインデックス付け部分がマージされていることが分かる。
【0035】
第1のアドレスのビット47から39までは、L0インデックス付けビットであり、これは、L0ルックアップ(所定数のルックアップの順次に第1の中間ルックアップ)中にアクセスされるページテーブルレベルにインデックス付けするために使用される。L0ルックアップは、アドレス変換回路の記憶回路に記憶されたページテーブルアドレス(L0ベースアドレス)においてページテーブルレベルで実行される。記憶回路は、L0ルックアップが通常ページテーブルレベルにおけるルックアップであることを示すサイズ情報を更に含む。L0ベースアドレス及びL0インデックス付けビットに基づいて実行されるルックアップは、順次に次のルックアップに使用されるベースアドレスと、マージされたL1/L2ルックアップと、L1/L2ルックアップが大ページテーブルレベルでのルックアップであることを示すサイズ情報(次の大:1)とを返す。
【0036】
第1のアドレスのビット38から21までは、L1/L2インデックス付けビットであり、これは、L1/L2ルックアップ(大ページテーブル内の単一のルックアップであり、
図4のL1ルックアップ及びL2ルックアップと等価である順次に第2のルックアップ)中にアクセスされる大ページテーブルレベルにインデックス付けするために使用される。L1/L2ルックアップは、L0ルックアップ中に取得されたベースアドレス(L1/L2ベースアドレス)において大ページテーブルレベルで実行される。L1/L2ベースアドレス及びL1/L2インデックス付けビットに基づいて実行されるルックアップは、順次に次のルックアップに使用されるベースアドレス、L3ルックアップ、及びL3ルックアップが通常ページテーブルレベルでのルックアップであることを示すサイズ情報を返す。
【0037】
第1のアドレスのビット20から12までは、L3ルックアップ(所定数のルックアップの最終ルックアップ)中にアクセスされるページテーブルレベルにインデックス付けするために使用されるL3インデックス付けビットである。L3ルックアップは、L1/L2ルックアップ中に取得されたベースアドレス(L3ベースアドレス)においてページテーブルレベルで実行される。L3ベースアドレス及びL3インデックス付けビットに基づいて実行されるルックアップは、第2のアドレスを取得するために第1のアドレスのアドレス指定部分(ビット11から0まで)と組み合わされるアドレスを返す。
【0038】
図示された構成では、L1及びL2ルックアップは、大ページテーブル内の単一のルックアップを形成するために組み合わされた。本明細書で開示される技法に基づいて、任意の順次ページテーブルレベルルックアップを組み合わせることができることは、当業者には容易に明らかになるであろう。更に、図示された構成は、Nビット部分の各々について9ビットが使用されることを示す。しかしながら、代替の構成では、異なる数のビットを提供することができ、各々が異なる数のビットを使用する異なるルックアップレベルを提供することができる。
【0039】
図6は、アドレス変換回路40の記憶回路60に記憶された情報に基づく第1のページテーブルレベルアドレスの定義を概略的に示す。順次に第1のページテーブルレベルアドレス(L0ベースアドレス)は、第1のアドレスからの1つ以上の選択ビットを使用して決定される。アドレス変換回路40は、1つ以上の選択ビットに基づいて、記憶回路60においてルックアップを実行する。1つ以上の選択ビットは、記憶回路に記憶された複数の順次に第1のページテーブルアドレスから順次に第1のページテーブルレベルアドレスを定義する。図示された構成において、第1のアドレスから第2のアドレスへのアドレス変換は、
図4に関連して説明されたように継続する。
【0040】
図7は、再帰的(自己参照)ルックアップの概念を概略的に示す。再帰的ルックアップは、第1のアドレスをページテーブルレベルのアドレスにマッピングするために使用される。図示の実施形態では、アドレス変換回路は、4つの順次ルックアップを実行するように構成される(所定の最大数の順次ルックアップは4である)。大ページテーブルが存在しない場合、(
図4を参照して説明したように)順次ページテーブルレベルL0、L1、L2、及びL3において所定数のルックアップが実行される。再帰的ルックアップが発生すると、同じページテーブルレベルが2回参照される。結果として、ページテーブルルックアップのうちの1つ以上は、2回以上ルックアップされ得る。
【0041】
図7の一番上のルックアップシーケンスでは、順次に第1のページテーブルレベルが、順次に第1の中間ルックアップ70のアドレスを定義する。これは、(L0)ページテーブルにおけるL0ルックアップ70である。表記「L0」は、ルックアップがL0レベルであることを示すために使用され、表記「(L0)」、すなわち括弧内のルックアップレベルは、ルックアップされているページテーブルがL0ルックアップ70からのページテーブルであることを示すために使用される。L0ルックアップ70において、(L0)ページテーブルは、第1のアドレスのL0インデックス付け部分を使用してインデックス付けされる。この場合、L0ルックアップは、(L0)ページテーブルを指す(L0)ページテーブルレベル内のエントリを返す。次に、(L0)ページテーブル、すなわちL0ルックアップ70で使用されたのと同じページテーブル内のL1インデックス付け部分を使用して、L1ルックアップ72が実行される。L1ルックアップ72において、L1インデックス付け部分を使用してインデックス付けされた(L0)ページテーブルは、(L1)ページテーブルレベル、すなわち、自己参照ルックアップがなければ、L1ルックアップ72において参照されたであろうページテーブルレベルのアドレスを返す。したがって、L2ルックアップ74は、第1のアドレスのL2インデックス付け部分を使用して、(L1)ページテーブルにおいて実行され、それは、(L2)ページテーブルレベル、すなわち、自己参照ルックアップがなければ、L2ルックアップ74において参照されたであろうページテーブルレベルのアドレスを返す。したがって、L3ルックアップ76は、第1のアドレスのL3インデックス付け部分を使用して(L2)ページテーブル内で実行され、(L3)ページテーブルのアドレスを返す。ここで4つのルックアップが実行されたので、(L3)ページテーブルのアドレスが出力され、第2のアドレスを生成するために使用される。
【0042】
図7の下のルックアップシーケンスでは、順次に第1のページテーブルレベルが、順次に第1の中間ルックアップ78のアドレスを定義する。これは、(L0)ページテーブルにおけるL0ルックアップ78である。L0ルックアップ78において、(L0)ページテーブルは、第1のアドレスのL0インデックス付け部分を使用してインデックス付けされる。この場合、L0ルックアップは、(L0)ページテーブルを指す(L0)ページテーブルレベル内のエントリを返す。次に、(L0)ページテーブル、すなわちL0ルックアップ78で使用されたのと同じページテーブル内のL1インデックス付け部分を使用して、L1ルックアップ80が実行される。L1ルックアップ80において、L1インデックス付け部分を使用してインデックス付けされた(L0)ページテーブルは、(L0)ページテーブルレベル、すなわち、自己参照ルックアップがなければL0ルックアップ78において参照されたであろうページテーブルレベルのアドレスを再び返す。したがって、L2ルックアップ82は、第1のアドレスのL2インデックス付け部分を使用して、(L0)ページテーブルにおいて実行され、これは、(L1)ページテーブルレベル、すなわち、自己参照ルックアップがなければ、L1ルックアップ80において参照されたであろうページテーブルレベルのアドレスを返す。したがって、L3ルックアップ84は、第1のアドレスのL3インデックス付け部分を使用して、(L1)ページテーブルにおいて実行され、(L2)ページテーブルのアドレスを返す。ここで4つのルックアップが実行されたので、(L2)ページテーブルのアドレスが出力され、第2のアドレスを生成するために使用される。
【0043】
L2ルックアップ82として更なる自己参照ルックアップを使用して、(L1)ページテーブルアドレスに基づいて第2のアドレスを生成するために同じ手法を使用することができる。更に、L2ルックアップ82及びL3ルックアップ84として2つの更なる自己参照ルックアップを使用して、(L0)ページテーブルアドレスに基づいて第2のアドレスを生成するために、同じ手法を使用することができる。このようにして、各ページテーブルレベルのアドレスは、自己参照ルックアップを使用してマッピングすることができる。
【0044】
図8a~
図8bは、大ページテーブルが使用されるときのアドレス変換回路40によるアドレス変換のための再帰の使用を概略的に示す。
図8aは、大ページテーブルのアドレスをマッピングするための再帰の使用を概略的に示す。
図4~
図7と同様に、アドレス変換回路40は、所定の最大数の順次ルックアップとして、ページテーブルにおいて4レベルルックアップを実行するように構成される。第1のアドレスは、3つの9ビット部分を含む48アドレスビットを含む。ビット47から39までは、L0レベルルックアップ中に使用されるインデックスを定義する。ビット38から30までは、L1レベルルックアップ中に使用されるインデックスを定義する。ビット29から21までは、L2レベルルックアップ中に使用されるインデックスを定義する。ビット20から0までの最下位21ビットは、第2のアドレスを形成するためにL2レベルルックアップからの出力と組み合わせて使用される。
【0045】
第1のアドレスの受信に応答して、アドレス変換回路は、順次に第1のページテーブルレベルアドレスを決定する。これは、第1のアドレスの追加ビット(図示せず)から、又は順次に第1のページテーブルレベルアドレスを記憶するレジスタから決定される。次に、第1のアドレスからビット47から39までを使用してインデックス付けされた(L0)ページテーブルを決定するために、順次に第1のページテーブルレベルアドレスを使用してL0レベルルックアップが実行される。L0ルックアップは、通常ページテーブルにおけるルックアップであり、したがって、所定数のルックアップのうちの単一のルックアップとしてカウントされる。この場合、(L0)ページテーブル内のエントリは、(L0)ページテーブルを指す自己参照エントリである。したがって、L1ルックアップは、L1インデックス付けビット(第1のアドレスからビット38から30まで)を使用して(L0)ページテーブルにおいて実行される。L1ルックアップは、通常ページテーブルにおけるルックアップであり、したがって、所定数のルックアップのうちの単一のルックアップとしてカウントされる。L1ルックアップはまた、(L0)ページテーブルを指す自己参照エントリである。したがって、L2ルックアップは、L2インデックス付けビット(第1のアドレスのビット29から21まで)を使用して(L0)ページテーブルにおいて実行される。L2ルックアップは、通常ページテーブルにおけるルックアップであり、したがって、所定数のルックアップのうちの1回のルックアップとしてカウントされる。L0レベルルックアップ及びL1レベルルックアップとは異なり、L2レベルルックアップは自己参照エントリではない。代わりに、L2レベルルックアップは、L1/L2大ページテーブルを指すエントリをもたらす。L2レベルルックアップから決定されるサイズ情報は、アドレス変換回路に対して、次のルックアップが、所定数のルックアップのうちのM=2個のルックアップとしてカウントされる大ルックアップ(NL:1すなわち1に設定された次の大)であることを示す。この時点で、アドレス変換回路40は、3つのルックアップ(L0レベルルックアップ、L1レベルルックアップ、及びL2レベルルックアップ)を実行しており、これらのルックアップの各々は、単一レベルルックアップであると見なされる。したがって、アドレス変換回路は、4つの最大順次ルックアップのうちの3つを実行している。L2レベルルックアップは、次のレベルルックアップが大ルックアップであることを示すので、順次に次のルックアップが実行される場合、実行されるルックアップの数は、4つの最大順次ルックアップよりも大きい。したがって、アドレス変換回路40は、4つの最大順次ルックアップのうちの残りのルックアップを抑制し、(L1/L2)大ページテーブルのベースアドレス(L2レベルルックアップ中に決定された)と、第2のアドレスを生成するための第1のアドレスの最下位21ビットとを使用して第2のアドレスを生成し、したがって、(L1/L2)大ページテーブルのエントリのアドレスを提供する。
【0046】
図8bは、第1のアドレスの受信に応答してアドレス変換回路40によって実行される代替アドレス変換を概略的に示す。
図4~
図7及び
図8aと同様に、アドレス変換回路40は、所定の最大数の順次ルックアップとして、ページテーブルにおいて4レベルルックアップを実行するように構成される。第1のアドレスは、2つの9ビット部分を含む48アドレスビットを含む。ビット47から39までは、L0レベルルックアップ中に使用されるインデックスを定義する。ビット38から30までは、L1レベルルックアップ中に使用されるインデックスを定義する。第1のアドレスは、単一の18ビット部分を更に含む。ビット29から12までは、L2/L3レベルルックアップ中に使用されるインデックスを定義する。第1のアドレスの最下位12ビット、ビット11から0までは、L2/L3レベルルックアップからの出力と組み合わせて使用され、第2のアドレスを形成する。
【0047】
第1のアドレスの受信に応答して、アドレス変換回路は、順次に第1のページテーブルレベルアドレスを決定する。これは、第1のアドレスの追加ビット(図示せず)から、又は順次に第1のページテーブルレベルアドレスを記憶するレジスタから決定される。次に、第1のアドレスからビット47から39までを使用してインデックス付けされた(L0)ページテーブルを決定するために、順次に第1のページテーブルレベルアドレスを使用してL0レベルルックアップが実行される。L0ルックアップは、通常ページテーブルにおけるルックアップであり、したがって、所定数のルックアップのうちの単一のルックアップとしてカウントされる。この場合、(L0)ページテーブル内のエントリは、(L0)ページテーブルを指す自己参照エントリである。したがって、L1ルックアップは、L1インデックス付けビット(第1のアドレスからビット38から30まで)を使用して(L0)ページテーブルにおいて実行される。L1ルックアップは、通常ページテーブルにおけるルックアップであり、したがって、所定数のルックアップのうちの単一のルックアップとしてカウントされる。L0レベルルックアップとは異なり、L1レベルルックアップは自己参照エントリではない。代わりに、L1レベルルックアップは、(L1/L2)大ページテーブルを指すエントリをもたらす。L1レベルルックアップから決定されるサイズ情報は、アドレス変換回路に対して、次のルックアップが、所定数のルックアップのうちのM=2個のルックアップとしてカウントする大ルックアップ(NL:1-1に設定された次の大)であることを示す。この時点で、アドレス変換回路40は、2つのルックアップ(L0レベルルックアップ及びL1レベルルックアップ)を実行しており、その各々は単一レベルルックアップであると見なされる。したがって、アドレス変換回路は、4つの最大順次ルックアップのうちの2つを実行している。L1レベルルックアップは、次のレベルルックアップが大ルックアップであることを示すので、順次に次のルックアップが実行される場合、実行されるルックアップの数は、4つの最大順次ルックアップに等しい。したがって、アドレス変換回路40は、L2/L3インデックス付けビット(第1のアドレスのビット29から12まで)によってインデックス付けされた(L1/L2)大ページテーブルにおいて、L2レベルルックアップ及びL3レベルルックアップを単一のL2/L3レベルルックアップとして実行する。これは、4つの最大ルックアップの最終ルックアップである。したがって、(L1/L2)ページテーブル内のL2/L3ルックアップからの出力は、第1のアドレスの最下位12ビットと組み合わせて使用されて、(L3)ページテーブルのエントリにアクセスするために使用される第2のアドレスを生成する。
【0048】
図9a~
図9cは、現在のレベルルックアップが大ページテーブルにおけるルックアップである場合に、アドレス変換の異なるレベルルックアップにインデックス付けするための第1のアドレスの異なるNビット部分の使用を概略的に示す。
図9aでは、4つのNビット部分90(A)、90(B)、90(C)、及び90(D)を含む第1のアドレス90が提供される。第1のアドレス90はまた、一連のレベルルックアップからの出力に基づいて第2のアドレスを生成するために使用される最下位Hビット部分90(E)を有する。
図4~
図8と同様に、所定の最大数の順次ルックアップは4である。順次に第1のルックアップは、大ページテーブル(M=2)におけるL0/L1ルックアップである。大ページテーブルにおけるL0/L1ルックアップは、第1のアドレス90のNビット部分のM=2を用いてインデックス付けされる。この場合、L0/L1ルックアップは、Nビット部分90(A)及びNビット部分90(B)を使用してインデックス付けされる。
図9aにおいて、L0/L1ルックアップに基づいて、次のレベルルックアップが通常ページテーブルにおけるルックアップであることが決定される。したがって、次のレベルルックアップは、第1のアドレス90の単一のNビット部分90(C)を使用してインデックス付けされるL2レベルルックアップである。L2ルックアップから、順次に次のルックアップも通常ページテーブルにおけるルックアップであることが決定される。したがって、次のレベルルックアップは、第1のアドレス90の単一のNビット部分90(D)を使用してインデックス付けされるL3レベルルックアップである。L3レベルルックアップからの出力は、第1のアドレス90のHビット部分90(E)と組み合わされて、第2のアドレスを生成する。
【0049】
図9bでは、4つのNビット部分92(A)、92(B)、92(C)、及び92(D)を含む第1のアドレス92が提供される。第1のアドレス92はまた、一連のレベルルックアップからの出力に基づいて第2のアドレスを生成するために使用される最下位Hビット部分92(E)を有する。
図4~
図8と同様に、所定の最大数の順次ルックアップは4である。順次に第1のルックアップは、大ページテーブル(M=2)におけるL0/L1ルックアップである。大ページテーブルにおけるL0/L1ルックアップは、第1のアドレス92のNビット部分のM=2を用いてインデックス付けされる。この場合、L0/L1ルックアップは、Nビット部分92(A)及びNビット部分92(B)を使用してインデックス付けされる。
図9bにおいて、L0/L1ルックアップに基づいて、次のレベルルックアップが、L0/L1ルックアップにおいて参照される大ページテーブルとは異なる大ページテーブルにおけるルックアップであることが決定される。したがって、次のレベルルックアップは、第1のアドレス92のM=2個の順次Nビット部分92(C)及び92(D)を使用してインデックス付けされる大ページテーブル(M=2)内のL2/L3レベルルックアップである。L2/L3レベルルックアップからの出力は、第2のアドレスを生成するために、第1のアドレス92のHビット部分92(E)と結合される。
【0050】
図9cでは、4つのNビット部分94(A)、94(B)、94(C)、及び94(D)を含む第1のアドレス94が提供される。第1のアドレス94はまた、一連のレベルルックアップからの出力に基づいて第2のアドレスを生成するために使用される最下位Hビット部分94(E)を有する。
図4~
図8と同様に、所定の最大数の順次ルックアップは4である。順次に第1のルックアップは、大ページテーブル(M=2)におけるL0/L1ルックアップである。大ページテーブルにおけるL0/L1ルックアップは、第1のアドレス94のNビット部分のM=2を用いてインデックス付けされる。この場合、L0/L1ルックアップは、Nビット部分94(A)及びNビット部分94(B)を使用してインデックス付けされる。
図9cにおいて、L0/L1ルックアップに基づいて、次のレベルルックアップが大ページテーブルにおけるルックアップであり、L0/L1ルックアップが(L0/L1)ページテーブルを参照する自己参照ルックアップであることが決定される。L0/L1ルックアップは自己参照ルックアップであるので、L0/L1ルックアップは単一レベルルックアップであると考えられる。したがって、次のレベルルックアップは、(L0/L1)大ページテーブルにおけるL1/L2レベルルックアップである。L1/L2レベルルックアップは、第1のアドレス94のNビット部分のM=2を使用してインデックス付けされる。アドレス変換回路40は、Nビット部分の最上位M-1=1としてL0/L1レベルルックアップにインデックス付けするために使用されたNビット部分94(A)、94(B)の最下位M-1=1を再利用して、(L0/L1)におけるL1/L2レベルルックアップにインデックス付けする。したがって、L1/L2ルックアップは、Nビット部分94(B)及びNビット部分94(C)を使用して実行される。L1/L2ルックアップに基づいて、次のルックアップが通常ページテーブルにおけるルックアップであることが決定される。したがって、次のレベルルックアップは、第1のアドレス90の単一のNビット部分94(D)を使用してインデックス付けされる(L2)ページテーブル内のL3レベルルックアップである。(L2)レベルページテーブル内のL3レベルルックアップからの出力は、第1のアドレス90のHビット部分90(E)と組み合わされて、(L3)レベルページテーブル内の第2のアドレスを生成する。
【0051】
図10a~
図10dは、
図9a~
図9cに示す原理に基づくアドレス変換を概略的に示す。
図10aにおいて、第1のアドレスは、アドレス変換回路40によって第2のアドレスに変換される。所定の最大数の順次ルックアップは4である。アドレス変換回路は、第1のアドレスの最上位ビット(図示せず)に基づいて、順次に第1のページテーブルレベルアドレスを決定する。順次に第1のアドレスは、第1のアドレスのNビット部分のM=2を使用してインデックス付けされる大ページテーブル(M=2)を指す。したがって、第1のルックアップは、第1のアドレスのビット47から30までインデックス付けされた(L0/L1)ページテーブル内のL0/L1レベルルックアップである。L0/L1ルックアップによって出力される順次に次のページテーブルアドレスは、(L0/L1)ページテーブルのアドレスである。L0/L1レベルルックアップから出力されたサイズ情報は、次のレベルページテーブルが大ページテーブル(1に設定されたNL)であることを示す。したがって、次のルックアップは、(L0/L1)ページテーブル内のL1/L2レベルルックアップであると決定され、これは、(L0/L1)ページテーブル内のL1/L2レベルルックアップをインデックス付けするために使用されたNビット部分のうちのM-1=1を、(L0/L1)ページテーブル内のL1/L2レベルルックアップをインデックス付けするために使用される最上位のM-1=1のNビット部分として使用することによってインデックス付けされる。この場合、第1のアドレスのビット38から21までが、L1/L2ルックアップをインデックス付けするために使用される。L1/L2ルックアップは、(L0/L1)ページテーブルレベルとは異なる順次に次のページテーブルのアドレスを返す。L1/L2ルックアップによって返されるサイズ情報は、次のページテーブルが通常ページテーブル(0に設定されたNL)であることを示す。したがって、次のルックアップは、第1のアドレスの順次に次のNビット部分によってインデックス付けされる(L2)ページテーブル内のL3ルックアップである。この場合、(L2)ページテーブル内のL3ルックアップは、第1のアドレスのビット20から12までを使用してインデックス付けされる。L3ルックアップは、順次に次のページテーブル、すなわち、(L3)ページテーブルのアドレスを返す。所定の最大数のルックアップが実行されると(L0/L1自己参照レベルルックアップに対して1つのルックアップ、L1/L2レベルルックアップに対してM=2のルックアップ、及びL3レベルルックアップに対して1つのルックアップ)、L3ページテーブルは、第2のアドレスを生成するために、第1のアドレスの最下位12ビット(ビット11から0まで)と組み合わされる。
【0052】
図10bにおいて、第1のアドレスは、アドレス変換回路40によって第2のアドレスに変換される。所定の最大数の順次ルックアップは4である。アドレス変換回路は、第1のアドレスの最上位ビット(図示せず)に基づいて、順次に第1のページテーブルレベルアドレスを決定する。順次に第1のアドレスは、第1のアドレスのNビット部分のM=2を使用してインデックス付けされる大ページテーブル(M=2)を指す。したがって、第1のルックアップは、第1のアドレスのビット47から30までインデックス付けされた(L0/L1)ページテーブル内のL0/L1レベルルックアップである。L0/L1ルックアップによって出力される順次に次のページテーブルアドレスは、(L0/L1)ページテーブルのアドレスである。L0/L1レベルルックアップから出力されたサイズ情報は、次のレベルページテーブルが大ページテーブル(1に設定されたNL)であることを示す。したがって、次のルックアップは、(L0/L1)ページテーブル内のL1/L2レベルルックアップであると決定され、これは、(L0/L1)ページテーブル内のL1/L2レベルルックアップをインデックス付けするために使用されたNビット部分のうちのM-1=1を、(L0/L1)ページテーブル内のL1/L2レベルルックアップをインデックス付けするために使用される最上位のM-1=1のNビット部分として使用することによってインデックス付けされる。この場合、第1のアドレスのビット38から21までが、L1/L2ルックアップをインデックス付けするために使用される。L1/L2ルックアップは、(L0/L1)ページテーブルレベルとは異なる順次に次のページテーブルのアドレスを返す。L1/L2ルックアップによって返されるサイズ情報は、次のページテーブルが大ページテーブル(NLが1に設定されている)であることを示す。これまで、アドレス変換回路は、3つのレベルルックアップ(L0/L1自己参照レベルルックアップに対して1つのルックアップ、及びL1/L2レベルルックアップに対してM=2)を実行してきた。次のレベルルックアップは大ページテーブル内にあるので、このルックアップを実行すると、ルックアップの数が所定の最大数のルックアップを超えることになる。したがって、更なるルックアップが抑制され、L1/L2ルックアップ中に(L0/L1)ページテーブルから出力される(L2/L3)レベルページテーブルアドレスが、第2のアドレスを生成するために使用される。出力ページテーブルレベルは大ページテーブルであるので、第1のアドレスの残りの21ビットは、第2のアドレスを生成するために必要とされる。
【0053】
図10cでは、第1のアドレスがアドレス変換回路40によって第2のアドレスに変換される。
図10cのアドレス変換では、所定の最大数の順次ルックアップは5である。アドレス変換回路は、第1のアドレスの最上位ビット(図示せず)に基づいて、順次に第1のページテーブルレベルアドレスを決定する。順次に第1のアドレスは、第1のアドレスのNビット部分のM=2を使用してインデックス付けされる大ページテーブル(M=2)を指す。したがって、第1のルックアップは、第1のアドレスのビット56から39までインデックス付けされた(L0/L1)ページテーブル内のL0/L1レベルルックアップである。L0/L1ルックアップによって出力される順次に次のページテーブルアドレスは、(L0/L1)ページテーブルのアドレスである。L0/L1レベルルックアップから出力されたサイズ情報は、次のレベルページテーブルが大ページテーブル(1に設定されたNL)であることを示す。したがって、次のルックアップは、(L0/L1)ページテーブル内のL1/L2レベルルックアップであると決定され、これは、(L0/L1)ページテーブル内のL1/L2レベルルックアップをインデックス付けするために使用されたNビット部分のうちのM-1=1を、(L0/L1)ページテーブル内のL1/L2レベルルックアップをインデックス付けするために使用される最上位のM-1=1のNビット部分として使用することによってインデックス付けされる。この場合、第1のアドレスのビット47から30までが、L1/L2ルックアップをインデックス付けするために使用される。L1/L2ルックアップは、(L0/L1)ページテーブルレベルとは異なる順次に次のページテーブルのアドレスを返す。L1/L2ルックアップによって返されるサイズ情報は、次のページテーブルが大ページテーブル(NLが1に設定されている)であることを示す。これまで、アドレス変換回路は、3つのレベルルックアップ(L0/L1自己参照レベルルックアップに対して1つのルックアップ、及びL1/L2レベルルックアップに対してM=2)を実行してきた。次のレベルルックアップは大ページテーブル内にあるので、このルックアップを実行すると、ルックアップの数が所定の最大数のルックアップ(このアドレス変換では5)に等しくなる。したがって、次のルックアップは、第1のアドレスのビット29からビット12までインデックス付けされた(L2/L3)ページテーブル内のL3/L4レベルルックアップであると決定される。(L2/L3)ページテーブル内のL3/L4レベルルックアップは、(L4)ページテーブルのアドレスを返す。このアドレスは、第1のアドレスの最下位12ビットと組み合わされて、(L4)レベルページテーブル内にある第2のアドレスを生成する。
【0054】
図10dは、現在のページテーブルレベルに記憶された制御ビットが、ルックアップが自己参照ルックアップであるかどうかを示すために使用される代替構成を示す。
図10dにおいて、第1のアドレスは、アドレス変換回路40によって第2のアドレスに変換される。
図10dのアドレス変換では、所定の最大数の順次ルックアップは5である。更に、アドレス変換回路40は、ページテーブルレベルが自己参照ページテーブルレベルであるかどうかを直接判定することによってではなく、制御ビットに基づいて、ページテーブルレベルを単一のルックアップレベルとしてカウントするかどうかを判定するように構成される。アドレス変換回路は、第1のアドレスの最上位ビット(図示せず)に基づいて、順次に第1のページテーブルレベルアドレスを決定する。順次に第1のアドレスは、第1のアドレスのNビット部分のM=2を使用してインデックス付けされる大ページテーブル(M=2)を指す。したがって、第1のルックアップは、第1のアドレスのビット56から39までインデックス付けされた(L0/L1)ページテーブル内のL0/L1レベルルックアップである。L0/L1ルックアップによって出力される順次に次のページテーブルアドレスは、(L0/L1)ページテーブルのアドレスである。しかしながら、L0/L1ルックアップに使用されるアドレスとL0/L1ルックアップから出力されるアドレスとの比較を通じてL0/L1ルックアップが自己参照ルックアップであるかどうかを決定するのではなく、アドレス変換回路40は、制御ビットが設定されているので、L0/L1ルックアップが自己参照ルックアップであると決定する。L0/L1レベルルックアップから出力されたサイズ情報は、次のレベルページテーブルが大ページテーブル(1に設定されたNL)であることを示す。したがって、次のルックアップは、(L0/L1)ページテーブル内のL1/L2レベルルックアップであると決定され、これは、(L0/L1)ページテーブル内のL1/L2レベルルックアップをインデックス付けするために使用されたNビット部分のうちのM-1=1を、(L0/L1)ページテーブル内のL1/L2レベルルックアップをインデックス付けするために使用される最上位のM-1=1のNビット部分として使用することによってインデックス付けされる。この場合、第1のアドレスのビット47から30までが、L1/L2ルックアップをインデックス付けするために使用される。L1/L2ルックアップは、(L0/L1)ページテーブルレベルとは異なる順次に次のページテーブルのアドレスを返す。しかしながら、順次に次のルックアップのアドレスがL1/L2レベルルックアップのアドレスに対応しないと判定するのではなく、アドレス変換回路は、この場合0に設定される制御ビットに基づいて、L1/L2レベルルックアップが自己参照ルックアップではないと判定する。L1/L2ルックアップによって返されるサイズ情報は、次のページテーブルが大ページテーブル(NLが1に設定されている)であることを示す。これまで、アドレス変換回路は、3つのレベルルックアップ(L0/L1自己参照レベルルックアップに対して1つのルックアップ、及びL1/L2レベルルックアップに対してM=2)を実行してきた。次のレベルルックアップは大ページテーブル内にあるので、このルックアップを実行すると、ルックアップの数が所定の最大数のルックアップ(このアドレス変換では5)に等しくなる。したがって、次のルックアップは、第1のアドレスのビット29からビット12までインデックス付けされた(L2/L3)ページテーブル内のL3/L4レベルルックアップであると決定される。(L2/L3)ページテーブル内のL3/L4レベルルックアップは、(L4)ページテーブルのアドレスを返す。このアドレスは、第1のアドレスの最下位12ビットと組み合わされて、(L4)レベルページテーブル内にある第2のアドレスを生成する。
【0055】
図11は、所定数のルックアップのうちの最終ルックアップが、次のレベルルックアップが大ページテーブル(M>1)であることを示すアドレス変換の効果を概略的に示す。アドレス変換回路40は、4に等しい所定の最大数の順次ルックアップで第1のアドレスの変換を実行する。順次に第1~順次に第3のレベルルックアップ(L0レベルルックアップ、L1レベルルックアップ、L2レベルルックアップ)は、自己参照ルックアップではなく、通常ページテーブルにおけるルックアップである。したがって、L3ルックアップは、順次に第4のレベルルックアップである。L3ルックアップでは、サイズ情報(1に設定されたNL)が、アドレス出力が大ページテーブル(M=2)のアドレスに対応することを示すことが決定される。4つのレベルルックアップ(L0からL3の各々は単一レベルルックアップとしてカウントされる)が既にあるので、アドレス変換回路は、バイトアドレス指定のために2つのNビットセグメントを必要とするか、又はビットアドレス指定のために2つのNビットセグメント+3ビットを必要とする大ページテーブルのためのアドレスを生成するのに十分なビットが第1のアドレスに残っていないので、継続することが不可能であると判断する。第1のアドレスに残っているビット数が不十分であるので、アドレス変換回路は障害を出力する。
【0056】
図12は、第1のアドレスとしての仮想アドレス(VA)から第2のアドレスとしての物理アドレス(PA)に変換するときのアドレス変換回路内の記憶回路(ページウォーカーキャッシュ100)の使用を概略的に示す。アドレス変換回路は、仮想アドレスを受け取り、ページウォーカーキャッシュ100内で最初のルックアップを実行する。ページウォーカーキャッシュ100内のルックアップは、仮想アドレス又はその一部がアドレス変換回路によって既に最近変換されたかどうかを判定する。ページウォーカーキャッシュ100内のルックアップは、第1のアドレスの任意の順次最上位部分がキャッシュ内でヒットした場合にヒットをもたらす。したがって、仮想アドレスの最上位Nビット部分がページウォーカーキャッシュ100内でヒットする場合、キャッシュヒットとなる。仮想アドレスの2つの最上位Nビット部分がページウォーカーキャッシュ100内でヒットした場合もヒットとなる。仮想アドレスの3つの最上位Nビット部分がページウォーカーキャッシュ内でヒットした場合もヒットとなる。最後に、仮想アドレスの4つの最上位Nビット部分がページウォーカーキャッシュ内でヒットした場合もヒットとなる。このようにして、ページウォーカーキャッシュは、単一の仮想アドレスに対する複数のヒットを決定することができる。ページウォーカーキャッシュ100内に複数のヒットがある場合、アドレス変換回路は、最も特定の一致、すなわち、仮想アドレスの最もNビットの部分に一致するヒットを使用するように構成される。
【0057】
ページウォーカーキャッシュ100内のルックアップがミスした場合、アドレス変換回路は、ページテーブルレベルで最大所定数の順次ルックアップを実行することによってアドレス変換を実行する。この場合、ページウォーカーキャッシュ100は、物理アドレスを決定するために、L0レベルルックアップ102、L1レベルルックアップ104、L2レベルルックアップ106、及びL3レベルルックアップ108を実行する。
【0058】
ページウォーカーキャッシュ100内の最良ヒットが仮想アドレスの最上位Nビット部分のみと一致する場合、アドレス変換回路は、L0ルックアップの結果をページウォーカーキャッシュから取り出すことができるので、このルックアップを実行する必要はない。したがって、アドレス変換回路は、物理アドレスを決定するために、L1ルックアップ104、L2ルックアップ106、及びL3ルックアップ108を実行する。
【0059】
ページウォーカーキャッシュ100内の最良ヒットが仮想アドレスの2つの最上位Nビット部分に一致する場合、アドレス変換回路は、L0ルックアップ又はL1ルックアップの結果をページウォーカーキャッシュから取り出すことができるので、これらのルックアップを実行する必要はない。したがって、アドレス変換回路は、物理アドレスを決定するために、L2ルックアップ106及びL3ルックアップ108を実行する。
【0060】
ページウォーカーキャッシュ100内の最良ヒットが仮想アドレスの3つの最上位Nビット部分と一致する場合、アドレス変換回路は、L0ルックアップ、L1ルックアップ、又はL2ルックアップを実行する必要はなく、これらのルックアップの結果はページウォーカーキャッシュから取り出すことができる。したがって、アドレス変換回路は、物理アドレスを決定するためにL3ルックアップ108のみを実行する。
【0061】
図13は、アドレス変換を実行するためのページウォーカーキャッシュ100の使用を概略的に示す。アドレス変換回路40は、第2のアドレスに変換される第1のアドレスを受信する。アドレス変換回路は、ページウォーカーキャッシュ100内の第1のアドレスの最初のルックアップを実行する。ページウォーカーキャッシュ100内のルックアップは、第1のアドレスの任意の最上位部分がページウォーカーキャッシュ100のエントリと一致するかどうかを判定する。第1のアドレス102の最上位9ビットは、ページウォーカーキャッシュ100においてヒットすると判定され、ページウォーカーキャッシュエントリ104が返される。したがって、アドレス変換回路40は、L0ルックアップを抑制し、返されたページウォーカーキャッシュエントリ104に基づいて次のレベルルックアップに直接進むことができる。ページウォーカーキャッシュエントリ104は、次のレベルルックアップのためのベースアドレスと、次のレベルルックアップが大ページテーブルのうちの1つにおけるルックアップであることを示すサイズ情報(1に設定されたNL)とを提供する。したがって、アドレス変換回路40は、次のレベルルックアップが(L1/L2)ページテーブルレベルにおけるL1/L2ルックアップであると判定する。アドレス変換回路は、このルックアップを実行し、第1のアドレスの18ビット(ビット38から21まで)に基づいて(L1/L2)ページテーブルレベル内のエントリを決定する。L1/L2レベルルックアップの結果は、L3ルックアップのアドレス、及びL3レベルルックアップが通常ページテーブル内のルックアップであることを示すサイズ情報である。アドレス変換回路40は、第1のアドレスの9ビット(ビット20から12まで)を使用して、(L3)ページテーブルにおいてL3ルックアップを実行する。L3レベルルックアップの結果は、第2のアドレスを生成するために第1のアドレスの最終12ビットと組み合わせて使用される。
【0062】
図14は、レガシー構成による大ページテーブル106の解釈を概略的に示す。大ページテーブル106は、2
M個の連続する通常ページテーブルによって占有される領域メモリである。したがって、レガシー変換回路は、各ページテーブルが通常ページテーブルとして扱われるページテーブルウォークを実行することによって第1のアドレスを第2のアドレスに変換するためにページテーブルウォークを実行するために使用され得る。大ページテーブル106は、メモリ内の2
N*M個のエントリの領域間の境界に位置合わせされる。したがって、大ページテーブルに含まれる連続する通常ページテーブルの各々は、2
Nエントリの領域間の境界に位置合わせされる。その結果、先行ページテーブルレベル108のエントリを使用して、大ページテーブル106の特定の領域を決定することができる。したがって、レガシーアドレス変換は、第1のアドレスの最上位部分に基づいて最初のL0ルックアップを実行し、次のルックアップであるL1ルックアップが通常ページテーブル108であると決定する。レガシーアドレス変換回路は、大ページテーブル106を形成する連続した通常ページテーブルから特定の通常ページテーブルを決定するために、第1のアドレスのインデックスビット38から30までを使用して通常ページテーブル108におけるルックアップを実行する。次いで、大ページテーブル106の特定の通常ページテーブルを使用して、第1のアドレスのビット29から21までに基づいてL2レベルルックアップを実行する。次いで、ページテーブルウォークは、L3ルックアップを実行し続け、この情報に基づいて第2のアドレスを出力し続ける。L1レベルルックアップとL2レベルルックアップを単一のL1/L2レベルルックアップとして組み合わせることによって、本技法によるアドレス変換回路40によって同じ変換を実行することができ、この単一のL1/L2レベルルックアップでは、第1のアドレスのビット38から21までが大ページテーブル106にインデックス付けするのに使用され、それによって、2つのルックアップ(1つのL1レベルルックアップ及び1つのL2レベルルックアップ)ではなく単一のL1/L2レベルルックアップが実行される。そのような構成では、レガシー構成によって使用される(L0)レベルページテーブルエントリとは異なる(L0)レベルページテーブルエントリがキャッシュされることになる。レガシー(L0)レベルページテーブルエントリは、レガシーL1ページテーブルを指す。対照的に、アドレス変換回路40によって使用される(L0)レベルページテーブルエントリは、結合されたL1/L2ページテーブルを指す。したがって、レガシー構成には、アドレス変換回路40への異なる(L0)レベルのページテーブルエントリが提供される。
【0063】
図15a及び
図15bは、大ページテーブルレベル112に、大ページテーブル内に埋め込まれた先行するレガシー構成領域110が設けられている場合の、レガシー構成(
図15a)による、及び本技法(
図15b)によるアドレス変換回路による第1のアドレスの第2のアドレスへの変換を概略的に示す。
図15aにおいて、レガシーアドレス変換回路は、第1のアドレスを受信し、第1のアドレスのL0インデックス部分(ビット47から39まで)に基づいてL0レベルルックアップを実行する。L0レベルルックアップは、大ページテーブル112内に埋め込まれたレガシー構成領域110を指すL1レベルルックアップのためのベースアドレスを返す。レガシーアドレス変換回路は、大ページテーブルを知らず、第1のアドレスのL1インデックス付けビット(ビット38から30まで)を使用して、L1レベルルックアップの一部として、レガシー構成領域が通常ページテーブルであるかのようにレガシー構成領域にアクセスする。レガシー構成領域110におけるL1レベルルックアップは、L2レベルルックアップのために使用される大ページテーブル112の特定の通常ページテーブルサイズ領域のアドレスを返す。L2レベルルックアップは、第1のアドレスのL2インデックス付けビット(ビット29から21まで)を使用して、大ページテーブル112の通常ページテーブルサイズ領域の特定の領域において実行される。L2レベルルックアップは、L3ルックアップを実行するために第1のアドレスのL3インデックス付けビット(ビット20から12まで)と組み合わせて使用される通常ページテーブルのアドレスを返す。L3レベルルックアップの結果は、第2のアドレスを生成するために、第1のアドレスの最下位ビット(ビット11から0まで)と組み合わされる。
【0064】
図15bは、本技術によるアドレス変換回路40の性能を概略的に示す。アドレス変換回路40は、第1のアドレスを受信し、第1のアドレスのL0インデックス部分(ビット47から39まで)に基づいてL0レベルルックアップを実行する。この場合の第1のアドレスは、レガシー構成で使用される第1のアドレスと同じである。L0レベルルックアップの結果は、大ページテーブル112のレガシー構成領域110のベースアドレスと、次のレベルルックアップが大ページテーブル内のルックアップであることを示すサイズ情報(1に設定されたNL)である。大ページテーブルはサイズ2
N*Mの領域間の境界に位置合わせされ、通常ページテーブルはサイズ2
Nの領域間の境界に位置合わせされるので、レガシー構成領域110に対するベースアドレスの最上位部分はまた、大ページテーブル112のベースアドレスである。したがって、(L0)レベルルックアップから決定されたベースアドレスと組み合わせて第1のアドレスのL1/L2インデックス付け部分を使用することによって、アドレス変換回路40は、大ページテーブル112に直接インデックス付けすることができる。したがって、アドレス変換回路は、(L1/L2)ページテーブルレベルの特定のエントリを指す第1のアドレスのL1/L2インデックス付けビット(ビット38から21まで)を使用して、大ページテーブル112において次のレベルルックアップ、L1/L2レベルルックアップを実行する。アドレス変換回路40は、ルックアップの実行に進む前に、L1/L2インデックス付けビットが大ページテーブル112のレガシー構成領域110を指していないことをチェックする。L1/L2レベルルックアップの結果は、L3ルックアップを実行するために第1のアドレスのL3インデックス付けビット(ビット20から12まで)と組み合わせて使用される通常ページテーブルのアドレスと、L3レベルルックアップが通常レベルルックアップであることを示すサイズ情報とを返す。L3レベルルックアップの結果は、第2のアドレスを生成するために、第1のアドレスの最下位ビット(ビット11から0まで)と組み合わされる。
【0065】
図16は、中間ルックアップを実行するときにアドレス変換回路によって実行される一連のステップを概略的に示す。フローはステップS100で開始し、アドレス変換回路は、現在の中間ページテーブルにおける中間ルックアップを開始する。次いで、フローはステップS102に進み、アドレス変換回路は、現在の中間ページテーブルから、順次に次のページテーブルの順次に次のルックアップアドレスを示す情報を取り出す。次に、フローはステップS104に進み、アドレス変換回路は、現在の中間ページテーブルから、順次に次のページテーブルのサイズを示すページテーブルサイズ情報を取り出す。次に、フローはステップS106に進み、ここで、順次に次のルックアップを実行することが、所定の最大数のルックアップを超えるかどうかが判定される。ステップS106において、次のルックアップの実行が所定の最大数のルックアップを超えないと判定された場合、フローはステップS108に進み、現在の中間ルックアップが終了され、その後、次のルックアップ(別の中間レベルルックアップ又は最終レベルルックアップのいずれか)が開始される。ステップS106において、順次に次のルックアップを実行することが所定の最大数のルックアップを超えると判定された場合、フローはステップS110に進み、後続のルックアップが抑制され、アドレス変換回路は、順次に次のルックアップアドレスを示す情報に基づいて第2のアドレスを生成する。
【0066】
図17は、第2のアドレスを生成するために第1のアドレスの受信に応答してアドレス変換回路によって実行される1セットのステップを概略的に示す。フローはステップS200で始まり、アドレス変換回路が第1のアドレス及び第1のサイズ情報の表示を受信する。ステップS200において、アドレス変換回路はまた、カウンタjを1に等しく設定する。次に、フローはステップS202に進み、第jのページテーブルが大ページテーブルであるか否かが判定される。ステップS202において、第jのページテーブルが大ページテーブルではないと判定された場合、フローはステップS212に進み、アドレス変換回路は、第1のアドレスの単一のNビット部分を使用して第jのページテーブル内のエントリを識別する。次いで、フローはステップS206に進む。ステップS202において、第jのページテーブルが大ページテーブルであると判定された場合、フローはステップS204に進む。ステップS204において、アドレス変換回路は、第1のアドレスのM個の順次Nビット部分を使用して、第jのページテーブル内のエントリを識別する。次いで、フローはステップS206に進む。ステップS206において、アドレス変換回路は、第jのページテーブル内のエントリから、第j+1のページテーブルの第j+1のルックアップアドレスを示す情報と、第j+1のページテーブルのサイズを示す第j+1のページテーブルサイズ情報とを取り出す。
【0067】
次に、フローはステップS208に進み、ここで、第j+1のサイズ情報が、次のルックアップによってルックアップの総数が所定数のルックアップを超えることを示すかどうかが判定される。特に、現在のルックアップのサイズは、ステップS202、S204、及びS212から分かる。したがって、順次に次のルックアップを実行するために必要とされるルックアップの総数は、現在の(第jの)ルックアップのサイズに関する情報及び第jのルックアップからサイズ情報として返される情報から決定することができる。ステップS208において、第(j+1)のルックアップを実行することが所定数のルックアップを超えると判定された場合、フローはステップS210に進む。ステップS210において、アドレス変換回路は、後続のルックアップを抑制し、第(j+1)のルックアップアドレスを示す情報に基づいて第2のアドレスを生成する。ステップS208において、第(j+1)のルックアップの実行が所定数のルックアップを超えないと判定された場合、フローはステップS214に進む。
【0068】
ステップS214において、第jのページテーブルが大ページテーブルであるか否かが判定される。ステップS214において、第jのページテーブルが大ページテーブルでないと判定された場合、フローはステップS222に進み、現在のルックアップが単一のルックアップとしてカウントされる(単一のルックアップであると見なされる)。次にフローはステップS224に進み、ここでjが1だけ増分され、その後フローはステップS202に戻る。ステップS214において、第jのページテーブルが大ページテーブルであると判定された場合、フローはステップS216に進む。ステップS216において、アドレス変換回路は、第(j+1)のルックアップアドレスが第jのページテーブルのアドレスに対応するか否かを判定する。ステップS216において、第(j+1)のルックアップアドレスが第jのページテーブルのアドレスに対応すると判定された場合、フローはステップS222に進み、現在のルックアップが単一のルックアップとしてカウントされる(と見なされる)。次にフローはステップS224に進み、ここでjが1だけ増分され、その後フローはステップS202に戻る。ステップS216において、第(j+1)のルックアップアドレスが第jのページテーブルのアドレスに対応しないと判定された場合、フローはステップS218に進み、現在のルックアップがM個のルックアップとしてカウントされる(と見なされる)。次いで、フローはステップS220に進む。ステップS220において、jは、フローがステップS202に戻る前にMだけ増分される。
【0069】
要約すると、アドレス変換を実行するためのアドレス変換回路及び方法に関する。アドレス変換回路は、第1のアドレスの受信に応答して、所定の最大数の順次ルックアップを実行することによって、第1のアドレスと第2のアドレスとの間のアドレス変換を実行する。アドレス変換回路は、2N個のエントリを含む通常ページテーブルと、2N*M個のエントリを含む大ページテーブルとをサポートするように構成される。アドレス変換回路は、中間ルックアップを実行して、順次に次のルックアップアドレスを示す情報及びページテーブルサイズ情報を取り出し、ページテーブルサイズ情報が、順次に次のルックアップが大ページテーブルのうちの1つに対応することを示し、順次に次のルックアップの実行が所定の最大数の順次ルックアップを超える場合、後続のルックアップを抑制し、順次に次のルックアップアドレスを示す情報に基づいて第2のアドレスを生成するように構成される。
【0070】
本出願において、「~ように構成された(configured to...)」という用語は、装置の要素が、定義された動作を実施することが可能である構成を有することを意味するために使用される。この文脈において、「構成」とは、ハードウェア又はソフトウェアの配置又は相互接続の方法を意味する。例えば、装置は、定義された動作を提供する専用ハードウェアを有し得るか、又はプロセッサ若しくは他の処理デバイスが、機能を実行するようにプログラムされ得る。「ように構成された」は、装置要素が、定義された動作を提供するために何らかの変更がなされる必要があることを意味しない。
【0071】
本明細書では例示的な実施形態について添付の図面を参照して詳細に説明してきたが、理解されるように、本発明はそれらと寸分違わない実施形態に制限されるのではなく、添付の特許請求の範囲に定める本発明の範囲及び趣旨から逸脱することなく、当業者は様々な変更、追加、及び修正を行うことができる。例えば、従属請求項の特徴の様々な組み合わせは、本発明の範囲から逸脱することなく、独立請求項の特徴でなされ得る。
【国際調査報告】