(57)【要約】  本発明は、コンピュータ技術の分野に関連し、物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式ＴＬＢを使用し得るとともに電力消費を削減し得る、物理アドレスを判定するための方法及び装置を開示する。本開示によれば、ページサイズは線形アドレスの上位Ｎビットに従って獲得され、Ｎは０より大きくかつ線形アドレスのビットの量より小さく、トランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号はページサイズに従って獲得され、マスクはページサイズ及びサポートされた最小のページサイズに従って獲得され、ＴＬＢのラベルはマスクに従って獲得され、線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットはインデックス番号及びラベルに従ってＴＬＢを検索することにより獲得され、物理アドレスはマスク、サポートされた最小のページ、及び物理アドレスの上位ＭＡＣ１ビットに従って獲得される。物理アドレスが線形アドレスを使用することにより判定される場合に、本開示を使用することは適切である。
2016522503.tif 000002
【特許請求の範囲】
【請求項１】
メモリアドレスを物理アドレスに変換するために使用される、前記物理アドレスを判定するための方法であって、
線形アドレスの上位Ｎビットに従ってページサイズを獲得するステップであって、Ｎが０より大きくかつ前記線形アドレスのビットの量より小さい、ステップと、
前記ページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得するステップと、
前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するステップと、
前記マスクに従って前記ＴＬＢのラベルを獲得するステップと、
前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するステップと、
前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得するステップであって、前記物理アドレスがメモリアクセスのために使用される、ステップとを含む、方法。
【請求項２】
線形アドレスの上位Ｎビットに従ってページサイズを獲得する前記ステップが、
前記サポートされた最小のページサイズに従って前記最小のページサイズのページオフセットビットの量を獲得するステップと、
前記線形アドレスの前記ビットから前記最小のページサイズの前記ページオフセットビットを差し引くことにより第１のページ番号を獲得するステップと、
前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得するステップとを含む、請求項１に記載の方法。
【請求項３】
前記第１のプリセットテーブルが、ページサイズの開始アドレス、ページサイズの終了アドレス、及び前記ページサイズを含み、
前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得する前記ステップが、
前記第１のページ番号の前記値が第１のページサイズの開始アドレスより大きく、かつ前記第１のページ番号の前記値が前記第１のページサイズの終了アドレスより小さい場合に、前記ページサイズが前記第１のページサイズであると判定するステップを含む、請求項２に記載の方法。
【請求項４】
線形アドレスの上位Ｎビットに従ってページサイズを獲得する前記ステップが、
前記線形アドレスの上位Ｎビットをデコーダに入力することによりゲート信号を獲得するステップであって、前記ゲート信号がレジスタグループの中からレジスタを選択するために使用される、ステップと、
前記ゲート信号に従って前記レジスタグループにおける第１のレジスタを判定するステップと、
前記ページサイズが前記第１のレジスタにより記録されるページサイズであることを判定するステップとを含み、
前記レジスタグループにおける各レジスタにより記録されるページサイズが、各メモリ領域において、前記線形アドレスが前記線形アドレスの上位Ｎビットに従って２Ｎ個のメモリ領域に等しく分割されたあとで記録されるページサイズである、請求項１に記載の方法。
【請求項５】
前記ページサイズに従ってＴＬＢのインデックス番号を獲得する前記ステップが、
前記ＴＬＢに記憶されるレコードの列に従って前記ＴＬＢの列数を表すビットを判定するステップと、
前記ページサイズに従って前記ページサイズのページオフセットビットの量を判定するステップと、
前記線形アドレスの前記ビットから前記ページサイズの前記ページオフセットビットを差し引いたあとで、前記ＴＬＢの列数を表すとともに前記線形アドレスの残りの部分である下位ビットが前記ＴＬＢの前記インデックス番号であることを判定するステップとを含む、請求項１から請求項４のいずれか一項に記載の方法。
【請求項６】
前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得する前記ステップが、
Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って前記マスクのビットの量を獲得するステップであって、Ｍ１が前記マスクの前記ビットの量を表し、ＬＡが前記線形アドレスの前記ビットの量を表し、Ｐ１が前記サポートされた最小のページサイズを表す、ステップと、
Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従って前記マスクにおける“１”の量を獲得するステップであって、Ｍ２が獲得された前記マスクにおける“１”の量を表し、Ｐ２が前記ページサイズを表す、ステップと、
前記Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、前記Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、前記マスクを獲得するステップとを含む、請求項１から請求項５のいずれか一項に記載の方法。
【請求項７】
前記マスクに従って前記ＴＬＢのラベルを獲得する前記ステップが、
前記線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより第２のアドレスを獲得するステップと、
前記マスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記ＴＬＢの前記ラベルを獲得するステップとを含む、請求項６に記載の方法。
【請求項８】
前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスを獲得する前記ステップが、
前記ＴＬＢの前記インデックス番号に従って前記ＴＬＢを検索することにより前記ＴＬＢにおける第１のレコードを獲得するステップであって、前記ＴＬＢが少なくとも１列のレコードを含み、各列のレコードが少なくとも一組のデータを含み、前記データの各組が前記ラベルに対応するラベル及び物理アドレスを含む、ステップと、
前記ＴＬＢの前記ラベルを前記第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較するステップであって、前記ＴＬＢの前記ラベルが前記第１のレコードに含まれる第１のラベルと同じである場合に、前記第１のラベルに対応するとともに前記第１のレコードに存在する物理アドレスが前記線形アドレスに対応する前記物理アドレスの上位ＭＡＣ１ビットである、ステップとを含む、請求項１から請求項７のいずれか一項に記載の方法。
【請求項９】
前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得する前記ステップが、
前記マスクをネゲートするとともに前記のネゲートされたマスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記物理アドレスの中位ＭＡＣ２ビットを獲得するステップと、
前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得するステップであって、Ｐ１が前記サポートされた最小のページサイズを表す、ステップと、
前記物理アドレスの上位ＭＡＣ１ビット、前記物理アドレスの中位ＭＡＣ２ビット、及び前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより前記物理アドレスを獲得するステップとを含む、請求項１から請求項８のいずれか一項に記載の方法。
【請求項１０】
メモリアドレスを物理アドレスに変換するように構成される、前記物理アドレスを判定するための装置であって、
線形アドレスの上位Ｎビットに従ってページサイズを獲得するように構成されるページサイズデコーダであって、Ｎが０より大きくかつ前記線形アドレスのビットの量より小さい、前記ページサイズデコーダと、
前記ページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得するように構成されるインデックスプロセッサと、
前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するように構成されるマスクデコーダと、
前記マスクに従って前記ＴＬＢのラベルを獲得するように構成されるラベルプロセッサと、
前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するように構成される物理アドレス判定ユニットとを備え、
前記物理アドレス判定ユニットが、前記マスク、前記サポートされた最小のページ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得し、前記物理アドレスがメモリアクセスのために使用される、ように更に構成される、装置。
【請求項１１】
前記ページサイズデコーダが、
前記サポートされた最小のページサイズに従って前記最小のページサイズのページオフセットビットの量を獲得するように構成される計算モジュールであって、前記線形アドレスの前記ビットから前記最小のページサイズの前記ページオフセットビットを差し引くことにより第１のページ番号を獲得するように更に構成される、前記計算モジュールと、
前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得するように構成されるページサイズ獲得モジュールとを備える、請求項１０に記載の装置。
【請求項１２】
前記第１のプリセットテーブルが、ページサイズの開始アドレス、ページサイズの終了アドレス、及び前記ページサイズを含み、
前記ページサイズ獲得モジュールが、
前記第１のページ番号の前記値が第１のページサイズの開始アドレスより大きく、かつ前記第１のページ番号の前記値が前記第１のページサイズの終了アドレスより小さい場合に、前記ページサイズが前記第１のページサイズであると判定するように構成される、請求項１１に記載の装置。
【請求項１３】
前記ページサイズデコーダが、
前記線形アドレスの上位Ｎビットをデコーダに入力することによりゲート信号を獲得し、前記ゲート信号がレジスタグループの中からレジスタを選択するために使用される、ように構成される前記デコーダと、
前記ゲート信号に従って前記レジスタグループにおける第１のレジスタを判定するように構成される前記レジスタであって、前記ページサイズが前記第１のレジスタにより記録されるページサイズであることを判定するように更に構成される、前記レジスタとを備え、
前記レジスタグループにおける各レジスタにより記録されるページサイズが、各メモリ領域において、前記線形アドレスが前記線形アドレスの上位Ｎビットに従って２Ｎ個のメモリ領域に等しく分割されたあとで記録されるページサイズである、請求項１０に記載の装置。
【請求項１４】
前記インデックスプロセッサが、
前記ＴＬＢに記憶されるレコードの列の量に従って前記ＴＬＢの列数を表すビットの量を判定するように構成されるインデックスデコーダであって、前記ページサイズに従って前記ページサイズのページオフセットビットの量を判定するように更に構成される、前記インデックスデコーダと、
前記線形アドレスの前記ビットから前記ページサイズの前記ページオフセットビットを差し引いたあとで、前記ＴＬＢの列数を表すとともに前記線形アドレスの残りの部分である下位ビットが前記ＴＬＢの前記インデックス番号であることを判定するように構成されるマルチプレクサＭＵＸとを備える、請求項１０から請求項１３のいずれか一項に記載の装置。
【請求項１５】
前記マスクデコーダが、
Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って前記マスクのビットの量を獲得し、Ｍ１が前記マスクの前記ビットの量を表し、ＬＡが前記線形アドレスの前記ビットの量を表し、Ｐ１が前記サポートされた最小のページサイズを表す、ように構成され、
Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従って前記マスクにおける“１”の量を獲得し、Ｍ２が獲得された前記マスクにおける“１”の量を表し、Ｐ２が前記ページサイズを表す、ように構成されるとともに、
前記Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、前記Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、前記マスクを獲得するように構成される、請求項１０から請求項１４のいずれか一項に記載の装置。
【請求項１６】
前記ラベルプロセッサが、
前記線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより第２のアドレスを獲得するように構成されるとともに、
前記マスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記ＴＬＢの前記ラベルを獲得するように構成される、請求項１５に記載の装置。
【請求項１７】
前記物理アドレス判定ユニットが、
前記ＴＬＢの前記インデックス番号に従って前記ＴＬＢを検索することにより前記ＴＬＢにおける第１のレコードを獲得し、前記ＴＬＢが少なくとも１列のレコードを含み、各列のレコードが少なくとも一組のデータを含み、前記データの各組が前記ラベルに対応するラベル及び物理アドレスを含む、ように構成される第１のレコード判定モジュールと、
前記ＴＬＢの前記ラベルを前記第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較し、前記ＴＬＢの前記ラベルが前記第１のレコードに含まれる第１のラベルと同じである場合に、前記第１のラベルに対応するとともに前記第１のレコードに存在する物理アドレスが前記線形アドレスに対応する前記物理アドレスの上位ＭＡＣ１ビットである、ように構成される物理アドレス判定モジュールとを備える、請求項１６に記載の装置。
【請求項１８】
前記物理アドレス判定ユニットが、
前記マスクをネゲートするとともに前記のネゲートされたマスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記物理アドレスの中位ＭＡＣ２ビットを獲得するように構成される計算モジュールであって、前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得し、Ｐ１が前記サポートされた最小のページサイズを表す、ように更に構成される、前記計算モジュールと、
前記物理アドレスの上位ＭＡＣ１ビット、前記物理アドレスの中位ＭＡＣ２ビット、及び前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより前記物理アドレスを獲得するように構成される結合モジュールとを備える、請求項１７に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、コンピュータ技術の分野に関し、具体的には、物理アドレスを判定するための方法及び装置に関する。
【背景技術】
【０００２】
コンピュータメモリがアクセスされるためには、メモリユニットの物理アドレスが提供される必要がある。一般に、中央演算処理装置（Central  Processing  Unit、ＣＰＵ）は、ページングメモリ管理をサポートする。ページングメモリ管理の状況下において、ＣＰＵにより生成されるアドレスは、線形アドレス又は仮想アドレスと呼ばれ、コンピュータメモリは、ＴＬＢに記憶されるページテーブルを使用することにより線形アドレスが物理アドレスに変換されたあとでのみ、アクセスされることができる。
【０００３】
セットアソシアティブ方式トランスレーション・ルックアサイド・バッファ（Translation  lookaside  buffer、ＴＬＢ）構造を使用することによりコンピュータメモリがアクセスされる場合に、異なるＴＬＢが、線形アドレスの異なる部分に従って同時にインデックスを付けられる可能性がある。例えば、４Ｋページが記憶される線形アドレスから物理アドレスへの変換、及び２Ｍページが記憶される線形アドレスから物理アドレスへの変換に関して、各ＴＬＢは、セットアソシアティブグループを判定することができ、異なるインデックス付きグループにおいて、線形アドレスに適合するグループにおけるＴＬＢテーブルエントリが判定されるとともに、線形アドレスがＴＬＢテーブルエントリに従って物理アドレスに変換される。使用される種類のページサイズの量がＴＬＢの量と同じであり、したがって、アドレス変換が実行される場合に、全てのＴＬＢが同時に照会される必要がある、という点に注意が必要である。
【０００４】
さらに、プロセスが１種類のページだけを使用する場合に、セットアソシアティブ方式ＴＬＢにインデックスを付けるために線形アドレスのどのビットが使用されるべきであるかは、動作中のプロセスにより使用されるページサイズに従って選択され、セットアソシアティブ方式ＴＬＢのグループにおけるＴＬＢテーブルエントリが判定されるとともに、線形アドレスが、ＴＬＢテーブルエントリに従って物理アドレスに変換される。
【０００５】
しかしながら、物理アドレスが従来技術を使用することにより獲得される場合に、複数のＴＬＢが同時に照会される必要があり、それは比較的高い電力消費をもたらすか、又は、各プロセスが１種類のページだけを使用することに制限されることが要求され、それは非柔軟性につながる。
【発明の概要】
【０００６】
本開示の実施例は、物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式ＴＬＢを使用し得るとともに電力消費を削減し得る、物理アドレスを判定するための方法及び装置を提供する。
【０００７】
第１の態様によれば、メモリアドレスを物理アドレスに変換するために使用される、前記物理アドレスを判定するための方法であって、線形アドレスの上位Ｎビットに従ってページサイズを獲得するステップであって、Ｎが０より大きくかつ前記線形アドレスのビットの量より小さい、ステップと、前記ページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得するステップと、前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するステップと、前記マスクに従って前記ＴＬＢのラベルを獲得するステップと、前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するステップと、前記マスク、前記サポートされた最小のページ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得するステップであって、前記物理アドレスがメモリアクセスのために使用される、ステップとを含む、前記物理アドレスを判定するための方法が提供される。
【０００８】
第１の態様に関連して、第１の態様の第１の実施方法において、線形アドレスの上位Ｎビットに従ってページサイズを獲得する前記ステップは、前記サポートされた最小のページサイズに従って前記最小のページサイズのページオフセットビットの量を獲得するステップと、前記線形アドレスの前記ビットから前記最小のページサイズの前記ページオフセットビットを差し引くことにより第１のページ番号を獲得するステップと、前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得するステップとを含む。
【０００９】
第１の態様の第１の実施方法に関連して、第１の態様の第２の実施方法において、前記第１のプリセットテーブルは、ページサイズの開始アドレス、ページサイズの終了アドレス、及び前記ページサイズを含み、前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得する前記ステップは、前記第１のページ番号の前記値が第１のページサイズの開始アドレスより大きく、かつ前記第１のページ番号の前記値が前記第１のページサイズの終了アドレスより小さい場合に、前記ページサイズが前記第１のページサイズであると判定するステップを含む。
【００１０】
第１の態様に関連して、第１の態様の第３の実施方法において、線形アドレスの上位Ｎビットに従ってページサイズを獲得する前記ステップは、前記線形アドレスの上位Ｎビットをデコーダに入力することによりゲート信号を獲得するステップであって、前記ゲート信号がレジスタグループの中からレジスタを選択するために使用される、ステップと、前記ゲート信号に従って前記レジスタグループにおける第１のレジスタを判定するステップと、前記ページサイズが前記第１のレジスタにより記録されるページサイズであることを判定するステップとを含み、前記レジスタグループにおける各レジスタにより記録されるページサイズは、各メモリ領域において、前記線形アドレスが前記線形アドレスの上位Ｎビットに従って２Ｎ個のメモリ領域に等しく分割されたあとで記録されるページサイズである。
【００１１】
第１の態様の前述の実施方法のうちのいずれか１つに関連して、第１の態様の第４の実施方法において、前記ページサイズに従ってＴＬＢのインデックス番号を獲得する前記ステップは、前記ＴＬＢに記憶されるレコードの列の量に従って前記ＴＬＢの列数を表すビットの量を判定するステップと、前記ページサイズに従って前記ページサイズのページオフセットビットの量を判定するステップと、前記線形アドレスの前記ビットから前記ページサイズの前記ページオフセットビットを差し引いたあとで、前記ＴＬＢの列数を表すとともに前記線形アドレスの残りの部分である下位ビットが前記ＴＬＢの前記インデックス番号であることを判定するステップとを含む。
【００１２】
第１の態様の前述の実施方法のうちのいずれか１つに関連して、第１の態様の第５の実施方法において、前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得する前記ステップは、Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って前記マスクのビットの量を獲得するステップであって、Ｍ１が前記マスクの前記ビットの量を表し、ＬＡが前記線形アドレスの前記ビットの量を表し、Ｐ１が前記サポートされた最小のページサイズを表す、ステップと、Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従って前記Ｍａｓｋにおける“１”の量を獲得するステップであって、Ｍ２が獲得された前記Ｍａｓｋにおける“１”の量を表し、Ｐ２が前記ページサイズを表す、ステップと、前記Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、前記Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、前記マスクを獲得するステップとを含む。
【００１３】
第１の態様の第５の実施方法に関連して、第１の態様の第６の実施方法において、前記マスクに従って前記ＴＬＢのラベルを獲得する前記ステップは、前記線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより第２のアドレスを獲得するステップと、前記マスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記ＴＬＢの前記ラベルを獲得するステップとを含む。
【００１４】
第１の態様の前述の実施方法のうちのいずれか１つに関連して、第１の態様の第７の実施方法において、前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスを獲得する前記ステップは、前記ＴＬＢの前記インデックス番号に従って前記ＴＬＢを検索することにより前記ＴＬＢにおける第１のレコードを獲得するステップであって、前記ＴＬＢが少なくとも１列のレコードを含み、各列のレコードが少なくとも一組のデータを含み、前記データの各組が前記ラベルに対応するラベル及び物理アドレスを含む、ステップと、前記ＴＬＢの前記ラベルを前記第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較するステップであって、前記ＴＬＢの前記ラベルが前記第１のレコードに含まれる第１のラベルと同じである場合に、前記第１のラベルに対応するとともに前記第１のレコードに存在する物理アドレスが前記線形アドレスに対応する前記物理アドレスの上位ＭＡＣ１ビットである、ステップとを含む。
【００１５】
第１の態様の前述の実施方法のうちのいずれか１つに関連して、第１の態様の第８の実施方法において、前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得する前記ステップは、前記マスクをネゲートするとともに前記のネゲートされたＭａｓｋと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記物理アドレスの中位ＭＡＣ２ビットを獲得するステップと、前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得するステップであって、Ｐ１が前記サポートされた最小のページサイズを表す、ステップと、前記物理アドレスの上位ＭＡＣ１ビット、前記物理アドレスの中位ＭＡＣ２ビット、及び前記物理アドレスの下位ＭＡＣ３ビットを順序通りに結合することにより前記物理アドレスを獲得するステップとを含む。
【００１６】
第２の態様によれば、メモリアドレスを物理アドレスに変換するように構成される、前記物理アドレスを判定するための装置であって、線形アドレスの上位Ｎビットに従ってページサイズを獲得するように構成されるページサイズデコーダであって、Ｎが０より大きくかつ前記線形アドレスのビットの量より小さい、前記ページサイズデコーダと、前記ページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得するように構成されるインデックスプロセッサと、前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するように構成されるマスクデコーダと、前記マスクに従って前記ＴＬＢのラベルを獲得するように構成されるラベルプロセッサと、前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するように構成される物理アドレス判定ユニットとを含み、前記物理アドレス判定ユニットが、前記マスク、前記サポートされた最小のページ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得し、前記物理アドレスがメモリアクセスのために使用される、ように更に構成される、前記物理アドレスを判定するための装置が提供される。
【００１７】
第２の態様に関連して、第２の態様の第１の実施方法において、前記ページサイズデコーダは、前記サポートされた最小のページサイズに従って前記最小のページサイズのページオフセットビットの量を獲得するように構成される計算モジュールであって、前記線形アドレスの前記ビットから前記最小のページサイズの前記ページオフセットビットを差し引くことにより第１のページ番号を獲得するように更に構成される、前記計算モジュールと、前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得するように構成されるページサイズ獲得モジュールとを含む。
【００１８】
第２の態様の第１の実施方法に関連して、第２の態様の第２の実施方法において、前記第１のプリセットテーブルは、ページサイズの開始アドレス、ページサイズの終了アドレス、及び前記ページサイズを含み、前記ページサイズ獲得モジュールは、前記第１のページ番号の前記値が第１のページサイズの開始アドレスより大きく、かつ前記第１のページ番号の前記値が前記第１のページサイズの終了アドレスより小さい場合に、前記ページサイズが前記第１のページサイズであると判定するように構成される。
【００１９】
第２の態様に関連して、第２の態様の第３の実施方法において、前記ページサイズデコーダは、前記線形アドレスの上位Ｎビットをデコーダに入力することによりゲート信号を獲得し、前記ゲート信号がレジスタグループの中からレジスタを選択するために使用される、ように構成される前記デコーダと、前記ゲート信号に従って前記レジスタグループにおける第１のレジスタを判定するように構成される前記レジスタであって、前記ページサイズが前記第１のレジスタにより記録されるページサイズであることを判定するように更に構成される、前記レジスタとを含み、前記レジスタグループにおける各レジスタにより記録されるページサイズは、各メモリ領域において、前記線形アドレスが前記線形アドレスの上位Ｎビットに従って２Ｎ個のメモリ領域に等しく分割されたあとで記録されるページサイズである。
【００２０】
第２の態様の前述の実施方法のうちのいずれか１つに関連して、第２の態様の第４の実施方法において、前記インデックスプロセッサは、前記ＴＬＢに記憶されるレコードの列の量に従って前記ＴＬＢの列数を表すビットの量を判定するように構成されるインデックスデコーダであって、前記ページサイズに従って前記ページサイズのページオフセットビットの量を判定するように更に構成される、前記インデックスデコーダと、前記線形アドレスの前記ビットから前記ページサイズの前記ページオフセットビットを差し引いたあとで、前記ＴＬＢの列数を表すとともに前記線形アドレスの残りの部分である下位ビットが前記ＴＬＢの前記インデックス番号であることを判定するように構成されるマルチプレクサＭＵＸとを含む。
【００２１】
第２の態様の前述の実施方法のうちのいずれか１つに関連して、第２の態様の第５の実施方法において、前記マスクデコーダは、Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って前記マスクのビットの量を獲得し、Ｍ１が前記マスクの前記ビットの量を表し、ＬＡが前記線形アドレスの前記ビットの量を表し、Ｐ１が前記サポートされた最小のページサイズを表す、ように構成され、Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従って前記マスクにおける“１”の量を獲得し、Ｍ２が獲得された前記マスクにおける“１”の量を表し、Ｐ２が前記ページサイズを表す、ように構成されるとともに、前記Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、前記Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、前記マスクを獲得するように構成される。
【００２２】
第２の態様の前述の第５の実施方法に関連して、第２の態様の第６の実施方法において、前記ラベルプロセッサは、前記線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより第２のアドレスを獲得するように構成されるとともに、前記マスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記ＴＬＢの前記ラベルを獲得するように構成される。
【００２３】
第２の態様の前述の第６の実施方法に関連して、第２の態様の第７の実施方法において、前記物理アドレス判定ユニットは、前記ＴＬＢの前記インデックス番号に従って前記ＴＬＢを検索することにより前記ＴＬＢにおける第１のレコードを獲得し、前記ＴＬＢが少なくとも１列のレコードを含み、各列のレコードが少なくとも一組のデータを含み、前記データの各組が前記ラベルに対応するラベル及び物理アドレスを含む、ように構成される第１のレコード判定モジュールと、前記ＴＬＢの前記ラベルを前記第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較し、前記ＴＬＢの前記ラベルが前記第１のレコードに含まれる第１のラベルと同じである場合に、前記第１のラベルに対応するとともに前記第１のレコードに存在する物理アドレスが前記線形アドレスに対応する前記物理アドレスの上位ＭＡＣ１ビットである、ように構成される物理アドレス判定モジュールとを含む。
【００２４】
第２の態様の前述の第７の実施方法に関連して、第２の態様の第８の実施方法において、前記物理アドレス判定ユニットは、前記マスクをネゲートするとともに前記のネゲートされたマスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記物理アドレスの中位ＭＡＣ２ビットを獲得するように構成される計算モジュールであって、前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得し、Ｐ１が前記サポートされた最小のページサイズを表す、ように更に構成される、前記計算モジュールと、前記物理アドレスの上位ＭＡＣ１ビット、前記物理アドレスの中位ＭＡＣ２ビット、及び前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより前記物理アドレスを獲得するように構成される結合モジュールとを含む。
【００２５】
本発明の実施例は、物理アドレスを判定するための方法及び装置を提供する。複数のＴＬＢが同時に照会される必要があり、それが比較的高い電力消費をもたらすか、又は、各プロセスが１種類のページだけを使用することに制限されることが要求され、それが非柔軟性につながる従来技術と比較すると、本発明の実施例では、物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式ＴＬＢが使用されることができ、したがって、プロセスは異なる線形アドレス領域において異なるページサイズを使用するとともに、電力消費が削減される。
【００２６】
本発明の実施例におけるか又は従来技術における技術的解決法をより明確に説明するために、下記は、実施例又は従来技術を説明するために必要とされる添付図面を簡単に説明する。明らかに、下記の説明における添付図面は本発明の単にいくつかの実施例を表すとともに、当業者は、創造的な努力なしでこれらの添付図面からさらに他の図面を導き出し得る。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施例による物理アドレスを判定するための方法のフローチャートである。
【図２】本発明の一実施例による物理アドレスを判定するための別の方法のフローチャートである。
【図３】本発明の一実施例による物理アドレスを判定するための方法の概略図である。
【図４】本発明の一実施例による物理アドレスを判定するための別の方法の概略図である。
【図５】本発明の一実施例による物理アドレスを判定するための別の方法の概略図である。
【図６】本発明の一実施例による物理アドレスを判定するための装置の構成図である。
【図７】本発明の一実施例による物理アドレスを判定するための別の装置の構成図である。
【図８】本発明の一実施例によるページサイズデコーダの構成図である。
【発明を実施するための形態】
【００２８】
下記は、本発明の実施例における添付図面を参照して本発明の実施例における技術的解決法を明確かつ十分に説明する。明らかに、説明される実施例は本発明の実施例の全てではなく単なる一部である。創作的な努力なしで本発明の実施例に基づいて当業者により獲得される他の全ての実施例は、本発明の保護範囲に含まれるものとする。
【００２９】
本発明の実施例は、物理アドレスを判定するための方法を提供し、ここで、方法は、ＣＰＵにより実行されるとともに、メモリアドレスを物理アドレスに変換するために使用される。方法は下記を含む。
【００３０】
ステップ１０１：線形アドレスの上位Ｎビットに従ってページサイズを獲得し、ここで、Ｎは０より大きくかつ線形アドレスのビットの量より小さい。
【００３１】
線形アドレスは、ＣＰＵにより生成されるアドレスであり、同様に、仮想アドレス又は論理アドレスと呼ばれ得る。線形アドレスは、ページテーブルを使用することにより物理アドレスに変換されたあとでのみ、メモリアクセスのために使用されることができ、すなわち、ページテーブルは線形アドレスを物理アドレスに変換するために使用される。ページテーブルはメモリに記憶され得る。線形アドレスから物理アドレスへの変換が実行される場合に、メモリにおけるページテーブルがアクセスされる必要があり、それにより、線形アドレスから物理アドレスへの比較的低い速度の変換をもたらす。ＣＰＵにおけるＴＬＢは、同様に、ページテーブルを記憶し得る。もしページテーブルがＴＬＢに記憶される場合に、線形アドレスから物理アドレスへの変換は、ＣＰＵにおいて実行され得るとともに、メモリにアクセスする必要がなく、それは線形アドレスから物理アドレスへの変換の速度を加速する。
【００３２】
セットアソシアティブ方式プロセスにおける異なるページサイズにより使用されるインデックスは、線形アドレスの異なる位置にあるので、線形アドレスから物理アドレスへの変換の間、線形アドレスのどの部分がＴＬＢにインデックスを付けるためのインデックスとして使用されるかを知ることが必要である。任意に、線形アドレスの上位Ｎビットが、ページサイズを獲得し得るページサイズデコーダの入力として使用される。Ｎは０より大きくかつ線形アドレスのビットの量より小さい。すなわち、線形アドレスが３２ビットを有する場合に、ページサイズを獲得するために、線形アドレスの上位７ビットがページサイズデコーダの入力として使用され得る。
【００３３】
ステップ１０２：ページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得する。
【００３４】
任意に、ページサイズが獲得されたあとで、ページサイズは、マルチプレクサ（multiplexer、ＭＵＸ）の選択信号を獲得し得るインデックスデコーダの入力として使用され、それにより、インデックス番号ｉｎｄｅｘを獲得する。ＭＵＸは、全てのページサイズに対応するインデックスを選択するマルチプレクサを表す。
【００３５】
例えば、ＴＬＢのエントリ数を表すビットの量は、ＴＬＢのエントリの量に従って判定され、すなわち、ＴＬＢが５１２個のエントリを含むか、又はＴＬＢが５１２列のレコードを記憶する場合に、インデックスを表すのに７ビットが必要とされる。
【００３６】
ページサイズのページオフセットビットの量は、ページサイズに従って判定される。ページサイズが４Ｍである場合に、ページサイズのページオフセットビットは２２ビットである。
【００３７】
線形アドレスのビットからページサイズのページオフセットビットが差し引かれたあとで、ＴＬＢのエントリ数を表すとともに線形アドレスの残りの部分である下位ビットがＴＬＢのインデックス番号として判定される。線形アドレスが３２ビットを有する場合に、線形アドレスのビットからページサイズのページオフセットビットが差し引かれたあとで、１０ビットが獲得されるとともに、１０ビットの下位７ビットがＴＬＢのインデックス番号として判定され、すなわち、ＭＵＸは、インデックスとして、線形アドレスの２２〜２８ビットを選択する。
【００３８】
ステップ１０３：ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得する。
【００３９】
任意に、ページサイズが獲得されたあとで、ページサイズは、マスクデコーダの入力として使用され、それによりマスクを獲得する。
【００４０】
例えば、マスクのビットの量は、Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って獲得され、ここで、Ｍ１はマスクのビットの量を表し、ＬＡは線形アドレスのビットの量を表し、Ｐ１はサポートされた最小のページサイズを表し、マスクにおける“１”の量は、Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従って獲得され、ここで、Ｍ２は獲得されたマスクにおける“１”の量を表し、Ｐ２はページサイズを表すとともに、マスクは、Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより獲得される。
【００４１】
ステップ１０４：マスクに従ってＴＬＢのラベルを獲得する。
【００４２】
ＴＬＢのラベルは、マスクと、線形アドレスから最小のページのページオフセットビットが差し引かれた線形アドレスの残りの部分に対して、ビット単位のＡＮＤ演算を実行することにより獲得される。
【００４３】
任意に、第２のアドレスは、線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより獲得されるとともに、ＴＬＢのラベルは、マスクと第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより獲得される。
【００４４】
ステップ１０５：インデックス番号及びラベルに従ってＴＬＢを検索することにより、線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得する。
【００４５】
この実施例では、ＴＬＢは、マスクフィールドをもはや必要とせず、ラベルフィールド及び物理アドレスフィールドだけを含む。ＴＬＢは少なくとも１列のレコードを含み、各列のレコードは少なくとも一組のデータを含み、データの各組はラベルに対応するラベル及び物理アドレスを含む。任意に、ＴＬＢにおける第１のレコードは、ＴＬＢのインデックス番号に従ってＴＬＢを検索することにより獲得される。
【００４６】
ラベルは、第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較される。ラベルが第１のレコードに含まれる第１のラベルと同じである場合に、第１のラベルに対応するとともに第１のレコードに存在する物理アドレスは、線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットである。
【００４７】
ステップ１０６：マスク、サポートされた最小のページ、及び物理アドレスの上位ＭＡＣ１ビットに従って物理アドレスを獲得し、ここで、物理アドレスはメモリアクセスのために使用される。
【００４８】
マスク、サポートされた最小のページサイズ、及び物理アドレスの上位ＭＡＣ１ビットに従って物理アドレスを獲得するステップは、マスクをネゲートするとともにネゲートされたマスクと第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより物理アドレスの中位ＭＡＣ２ビットを獲得するステップと、物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得するステップであって、Ｐ１がサポートされた最小のページサイズを表す、ステップと、物理アドレスの上位ＭＡＣ１ビット、物理アドレスの中位ＭＡＣ２ビット、及び物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより物理アドレスを獲得するステップとを含む。
【００４９】
ＴＬＢにおけるラベルフィールドの長さは最小のページのラベルの長さに固定されるとともに、大きなページのラベルの下位ビットは０に設定される必要がある、という点に注意が必要である。例えば、線形アドレスが３２ビットを有し、最小のページが４Ｋであり、最小のページのページオフセットビットの量が１２であるとともに、ＴＬＢにおけるラベルフィールドの長さが２０ビットに固定され、もし大きなページが４Ｍであるとともに、ページのページオフセットビットの量が２２であるならば、大きなページのラベルにおける有効なラベルビットは１０ビットであり、ＴＬＢにおけるラベルフィールドの長さは２０ビットに固定され、したがって、下位１０ビットは０に設定される必要がある。
【００５０】
本発明のこの実施例は、物理アドレスを判定するための方法であって、ページサイズが線形アドレスの上位Ｎビットに従って獲得され、Ｎが０より大きくかつ線形アドレスのビットの量より小さく、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号がページサイズに従って獲得され、ＴＬＢのラベルがページサイズに従って獲得され、線形アドレスに対応する物理アドレスがインデックス番号及びラベルに従ってＴＬＢを検索することにより獲得される、物理アドレスを判定するための方法を提供する。物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式ＴＬＢが使用されることができ、したがって、プロセスは異なる線形アドレス領域において異なるページサイズを使用するとともに、電力消費が削減される。
【００５１】
本発明の実施例は、メモリアドレスを物理アドレスに変換するために使用される、物理アドレスを判定するための別の方法を提供する。図２において示されたように、方法は下記を含む。
【００５２】
ステップ２０１：線形アドレスの上位Ｎビットに従ってページサイズを獲得し、ここで、Ｎは０より大きくかつ線形アドレスのビットの量より小さい。
【００５３】
任意に、図３において示されたように、ページサイズは、ページサイズデコーダを使用することにより獲得され、ここで、ページサイズデコーダは、線形アドレスの上位ビットに従ってページサイズを獲得する論理モジュールを表す。
【００５４】
この実施例では、ページサイズデコーダは、下記の２つの様式において実施され得る。
【００５５】
様式１：図４において示されたように、ページサイズデコーダは、プリセットテーブルを使用することにより実施され、ここで、プリセットテーブルは、ページサイズの開始アドレスＳｔａｒｔ、ページサイズの終了アドレスＥｎｄ、及びページサイズＰａｇｅ−ｓｉｚｅにより形成されるとともに、プリセットテーブルは、オペレーティングシステムにより書き込まれるとともに修正される。
【００５６】
任意に、最小のページサイズのページオフセットビットの量は、サポートされた最小のページサイズに従って最初に獲得される。
【００５７】
例えば、システムがサポートし得る最小のページサイズは４ＫＢであり、ｌｏｇ２（４Ｋ）＝１２を使用することによる計算によって、ページサイズのページオフセットビットの量は１２である、ということが獲得される。したがって、Ｐａｇｅ−ｓｉｚｅにより指定され、Ｓｔａｒｔ及びＥｎｄにより記録されるページサイズのメモリ領域は、４ＫＢの測定ステップの開始アドレス及び終了アドレスになり得る。
【００５８】
第１のページ番号は、線形アドレスのビットから最小のページサイズのページオフセットビットを差し引くことにより獲得される。
【００５９】
例えば、線形アドレスは４８ビットを有し、その場合に、第１のページ番号は（４８−１２）ビットであり、すなわち第１のページ番号は多くても３６ビットである。
【００６０】
ページサイズは、判定された第１のページ番号の値に従って第１のプリセットテーブルに照会することにより獲得される。
【００６１】
第１のページ番号は、２進法を使用して表される。２進数は１０進数に変換されるとともに、１０進数はページ番号の値を表し得る。
【００６２】
任意に、第１のページ番号の値が第１のページサイズの開始アドレスより大きく、かつ第１のページ番号の値が第１のページサイズの終了アドレスより小さい場合に、ページサイズは第１のページサイズであると判定される。
【００６３】
３６ビットの線形アドレスと、プリセットテーブルにおける各エントリのＳｔａｒｔ及びＥｎｄとの間で、同時比較が実行される必要があるので、ページサイズを検索する時間を増やすために、プリセットテーブルに設定される必要がある列の量は比較的小さい、という点に注意が必要である。例えば、７つのエントリがプリセットテーブルに設定され得るとともに、その場合に、線形アドレスは７つのメモリ領域に分割される必要があり、ここで、各メモリ領域のページサイズは、４ＫＢ、８ＫＢ、１６ＫＢ、３２ＫＢ、６４ＫＢ、１２８ＫＢ、・・・、３２Ｇ、６４Ｇ、１２８Ｇ、２５６Ｇ、及び５１２Ｇのうちのいずれか１つであり得る。
【００６４】
様式２：図５において示されたように、ページサイズデコーダは、７−１２８デコーダとページサイズレジスタグループの組み合わせを使用することにより実施されるとともに、オペレーティングシステムにより書き込まれるとともに修正される。
【００６５】
例えば、レジスタグループにおける各レジスタにより記録されるページサイズは、各メモリ領域において、線形アドレスが線形アドレスの上位Ｎビットに従って２Ｎ個のメモリ領域に等しく分割されたあとで記録されるページサイズである。
【００６６】
線形アドレスは４８ビットを有し、線形アドレスは、線形アドレスの上位Ｎビットを使用することにより、数個の２ＴＢのメモリ領域に等しく分割される。例えば、線形アドレスは、線形アドレスの上位７ビットを使用することにより、１２８個の２ＴＢのメモリ領域に等しく分割され、ここで、各メモリ領域のページサイズは、４ＫＢ、８ＫＢ、１６ＫＢ、３２ＫＢ、６４ＫＢ、１２８ＫＢ、・・・、３２Ｇ、６４Ｇ、１２８Ｇ、２５６Ｇ、及び５１２Ｇのうちのいずれか１つであり得る。
【００６７】
任意に、線形アドレスの上位Ｎビットをデコーダに入力することによりゲート信号が獲得され、ここで、ゲート信号はレジスタグループの中からレジスタを選択するために使用される。例えば、ゲート信号は、線形アドレスの上位７ビットをデコーダに入力することにより獲得される。
【００６８】
ゲート信号に従ってレジスタグループにおける第１のレジスタが判定される。任意に、レジスタは、デコーダの出力に従ってレジスタグループから発見される。例えば、レジスタグループにおいて０〜３の番号を付けられた４つのレジスタがあり、ゲート信号が２である場合に、選択されるレジスタはレジスタ２である。“第１のレジスタ”における“第１の”は、順序付けのためではなく、説明の簡単化のためのものである、という点に注意が必要である。ここでの第１のレジスタは、レジスタグループにおけるあらゆるレジスタのことを指し得る。例えば、ゲート信号が２である場合に、第１のレジスタはレジスタ２であり得るとともに、ゲート信号が０である場合に、第１のレジスタはレジスタ０である。
【００６９】
ページサイズは第１のレジスタにより記録されるページサイズである、ということが判定される。
【００７０】
ステップ２０２：ページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得する。
【００７１】
任意に、図３において示されたように、ＴＬＢのインデックス番号ｉｎｄｅｘは、インデックスデコーダ及びＭＵＸを使用することにより獲得される。
【００７２】
任意に、ＴＬＢの列数を表すビットの量は、ＴＬＢに記憶されるレコードの列の量に従って判定される。少なくとも１列のレコードがＴＬＢに記憶される。例えば、５１２個のエントリがＴＬＢに記憶される場合に、すなわち、５１２列のレコードがＴＬＢに記憶され、［ｌｏｇ２（５１２）＝７］ビットがインデックスを表すのに必要とされ、すなわち、インデックスは、７ビットの２進数により形成される。
【００７３】
ページサイズに従ってページサイズのページオフセットビットの量が判定される。例えば、ページサイズが４Ｍである場合に、ページサイズのページオフセットビットは２２ビットである。
【００７４】
線形アドレスのビットからページサイズのページオフセットビットが差し引かれたあとで、ＴＬＢのエントリ数を表すとともに線形アドレスの残りの部分である下位ビットがＴＬＢのインデックス番号として判定される。線形アドレスが３２ビットを有する場合に、線形アドレスのビットからページサイズのページオフセットビットが差し引かれたあとで、１０ビットが獲得されるとともに、１０ビットの７個の下位ビットがＴＬＢのインデックス番号として判定され、すなわち、ＭＵＸは、出力するべきインデックスとして、線形アドレスの２２〜２８ビットを選択する。
【００７５】
ステップ２０３：ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得する。
【００７６】
任意に、図３において示されたように、マスクは、マスクデコーダを使用することにより獲得される。
【００７７】
マスクのビットの量は、Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って獲得され、ここで、Ｍ１はマスクのビットの量を表し、ＬＡは線形アドレスのビットの量を表し、Ｐ１はサポートされた最小のページサイズを表す。
【００７８】
例えば、線形アドレスは４８ビットを有し、サポートされた最小のページサイズは４Ｋであり、その場合に、マスクのビットの量は［４８−ｌｏｇ２（４Ｋ）＝３６］である。これらの３６ビットにおいて、上位ビットは“１”であり、下位ビットは“０”である。
【００７９】
マスクにおける“１”の量はＭ２＝ＬＡ−ｌｏｇ２Ｐ２に従って獲得され、ここで、Ｍ２は獲得されたマスクにおける“１”の量を表し、Ｐ２はページサイズを表す。
【００８０】
ページサイズが４Ｍである場合に、マスクにおける“１”の量は［４８−ｌｏｇ２（４Ｍ）＝２６］である。
【００８１】
Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、マスクが獲得される。
【００８２】
例えば、マスクにおける上位２６ビットは“１”であり、そしてマスクにおける下位（３６−２６＝１０）ビットは“０”であり、例えば、マスクは“１１１１１１１１１１１１１１１１１１１１１１１１１１００００００００００”である。
【００８３】
ステップ２０４：マスクに従ってＴＬＢのラベルを獲得する。
【００８４】
第２のアドレスは、線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより獲得される。例えば、第２のアドレスは、線形アドレスの上位［４８−ｌｏｇ２（４Ｋ）＝３６］ビットであり得る。
【００８５】
ＴＬＢのラベルは、マスクと第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより獲得される。
【００８６】
ステップ２０５：ＴＬＢのインデックス番号に従ってＴＬＢを検索することによりＴＬＢにおける第１のレコードを獲得する。
【００８７】
ＴＬＢは少なくとも１列のレコードを含み、各列のレコードは少なくとも一組のデータを含み、データの各組はラベルに対応するラベル及び物理アドレスを含む。ＴＬＢは、マスク値をもはや含まず、したがって、ＴＬＢの設定がより簡単になるとともに、物理アドレスを照会することがより速くなる。
【００８８】
例えば、ＴＬＢの獲得されたインデックス番号は７ビットにより示されるとともに、ＴＬＢは５１２列のレコードを有し、その場合に、ＴＬＢにおける１列のレコードはインデックス番号の値に従って獲得される。例えば、７ビットのインデックス番号が３１８の値を表すとともに、その場合に、ＴＬＢにおける第３１８番目の列におけるレコードが第１のレコードである、ということが判定され得る。
【００８９】
ステップ２０６：ＴＬＢのラベルを第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較し、ここで、ＴＬＢのラベルが第１のレコードに含まれる第１のラベルと同じである場合に、第１のラベルに対応するとともに第１のレコードに存在する物理アドレスは線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットである。
【００９０】
ＴＬＢの獲得されたラベルを第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較するステップは、ＴＬＢのラベルを第１のレコードに含まれる少なくとも一組のデータにおけるラベルと一つずつ連続的に比較するステップを含む。ＴＬＢのラベルがあらゆる組のデータにおけるラベルと比較される場合に、任意に、ＴＬＢのラベルを表す２進数が、ラベルを表すとともにあらゆる組のデータに存在する２進数と比較されるか、又は、ＴＬＢのラベルの値が、あらゆる組のデータにおけるラベルの値と比較される。
【００９１】
ＴＬＢのラベルが第１のレコードに含まれる第１のラベルと異なる場合に、ＴＬＢのラベルは、第１のレコードに含まれる別のラベルと更に比較される。
【００９２】
ステップ２０７：マスク、サポートされた最小のページサイズ、及び物理アドレスの上位ＭＡＣ１ビットに従って物理アドレスを獲得し、ここで、物理アドレスはメモリアクセスのために使用される。
【００９３】
物理アドレスの中位ＭＡＣ２ビットは、マスクをネゲートするとともにネゲートされたマスクと第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより獲得され、例えば、マスクをネゲートすることにより“００００００００００１１１１１１１１１１１１１１１１１１１１１１１１１１”が獲得されるとともに、その場合に、ネゲートされたマスクと第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより“００００００００００ｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘ”が獲得され、ここで、“ｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘｘ”は、物理アドレスの中位ＭＡＣ２ビットを表す。
【００９４】
物理アドレスの下位（ｌｏｇ２Ｐ１）ビットは、サポートされた最小のページサイズに従って獲得され、ここで、Ｐ１はサポートされた最小のページサイズを表す。例えば、サポートされた最小のページサイズは４Ｋであるとともに、その場合にｌｏｇ２（４Ｋ）＝１２であり、すなわち、最小のページサイズのページオフセットビットは物理アドレスの下位１２ビットであり、すなわちビット０〜１１である。
【００９５】
物理アドレスは、ＴＬＢにより照会することにより獲得される上位ＭＡＣ１ビット、物理アドレスの中位ＭＡＣ２ビット、及び物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより獲得される。このステップでは、線形アドレスに対応する物理アドレスが獲得されたあとで、それに続く動作が実行されるように、ＣＰＵのピンが物理アドレスを記憶システムに送信する。
【００９６】
本発明のこの実施例は、物理アドレスを判定するための方法であって、ページサイズが線形アドレスの上位Ｎビットに従って獲得され、Ｎが０より大きくかつ線形アドレスのビットの量より小さく、トランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号がページサイズに従って獲得され、ＴＬＢのラベルがページサイズに従って獲得され、線形アドレスに対応する物理アドレスがインデックス番号及びラベルに従ってＴＬＢを検索することにより獲得される、物理アドレスを判定するための方法を提供する。物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式ＴＬＢが使用されることができ、したがって、プロセスは異なる線形アドレス領域において異なるページサイズを使用するとともに、電力消費が削減される。
【００９７】
本発明の実施例は、物理アドレスを判定するための装置を提供し、ここで、装置は、ＣＰＵであり得るとともに、メモリアドレスを物理アドレスに変換するように構成される。図６において示されたように、装置は、ページサイズデコーダ６０１と、インデックスプロセッサ６０２と、マスクデコーダ６０３と、ラベルプロセッサ６０４と、物理アドレス判定ユニット６０５とを含む。
【００９８】
ページサイズデコーダ６０１は、線形アドレスの上位Ｎビットに従ってページサイズを獲得するように構成され、ここで、Ｎは０より大きくかつ線形アドレスのビットの量より小さいとともに、異なる線形アドレス領域は、異なるページサイズを使用し得る。
【００９９】
インデックスプロセッサ６０２は、ページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得するように構成される。
【０１００】
マスクデコーダ６０３は、ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するように構成される。
【０１０１】
さらに任意に、マスクデコーダ６０３は、Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従ってマスクのビットの量を獲得し、Ｍ１がマスクのビットの量を表し、ＬＡが線形アドレスのビットの量を表し、Ｐ１がサポートされた最小のページサイズを表す、ように構成される。
【０１０２】
マスクデコーダ６０３は、Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従ってマスクにおける“１”の量を獲得し、Ｍ２が獲得されたマスクにおける“１”の量を表し、Ｐ２がページサイズを表す、ように更に構成される。
【０１０３】
マスクデコーダ６０３は、Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、マスクを獲得するように更に構成される。
【０１０４】
ラベルプロセッサ６０４は、マスクに従ってＴＬＢのラベルを獲得するように構成される。
【０１０５】
さらに任意に、ラベルプロセッサ６０４は、線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより第２のアドレスを獲得するように構成される。
【０１０６】
ラベルプロセッサ６０４は、マスクと第２のアドレスに対してビット単位のＡＮＤ演算を実行することによりＴＬＢのラベルを獲得するように更に構成される。
【０１０７】
物理アドレス判定ユニット６０５は、インデックス番号及びラベルに従ってＴＬＢを検索することにより、線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するように構成される。
【０１０８】
物理アドレス判定ユニット６０５は、マスク、サポートされた最小のページサイズ、及び物理アドレスの上位ＭＡＣ１ビットに従って物理アドレスを獲得し、物理アドレスがメモリアクセスのために使用される、ように更に構成される。
【０１０９】
さらに任意に、図７において示されたように、ページサイズデコーダ６０１は、計算モジュール６０１１と、ページサイズ獲得モジュール６０１２とを含む。
【０１１０】
計算モジュール６０１１は、サポートされた最小のページサイズに従って最小のページサイズのページオフセットビットの量を獲得するように構成される。
【０１１１】
計算モジュール６０１１は、線形アドレスのビットから最小のページサイズのページオフセットビットを差し引くことにより第１のページ番号を獲得するように更に構成される。例えば、システムがサポートし得る最小のページサイズは４ＫＢであり、ｌｏｇ２（４Ｋ）＝１２を使用することによる計算によって、ページサイズのページオフセットビットの量は１２である、ということが獲得される。したがって、Ｐａｇｅ−ｓｉｚｅにより指定され、Ｓｔａｒｔ及びＥｎｄにより記録されるページサイズのメモリ領域は、４ＫＢの測定ステップの開始アドレス及び終了アドレスになり得る。
【０１１２】
ページサイズ獲得モジュール６０１２は、第１のページ番号の値に従って第１のプリセットテーブルに照会することによりページサイズを獲得するように構成される。
【０１１３】
さらに、第１のプリセットテーブルは、ページサイズの開始アドレスＳｔａｒｔ、ページサイズの終了アドレスＥｎｄ、及びページサイズＰａｇｅ−ｓｉｚｅを含むとともに、プリセットテーブルは、オペレーティングシステムにより書き込まれるとともに修正される。
【０１１４】
ページサイズ獲得モジュール６０１２は、第１のページ番号の値が第１のページサイズの開始アドレスより大きく、かつ第１のページ番号の値が第１のページサイズの終了アドレスより小さい場合に、ページサイズが第１のページサイズであると判定するように構成される。
【０１１５】
３６ビットの線形アドレスと、プリセットテーブルにおける各エントリのＳｔａｒｔ及びＥｎｄとの間で、同時比較が実行される必要があるので、ページサイズを検索する時間を増やす減らすために、プリセットテーブルに設定される必要がある列の量は比較的小さい、という点に注意が必要である。例えば、７つのエントリがプリセットテーブルに設定され得るとともに、その場合に、線形アドレスは７つのメモリ領域に分割される必要があり、ここで、各メモリ領域のページサイズは、４ＫＢ、８ＫＢ、１６ＫＢ、３２ＫＢ、６４ＫＢ、１２８ＫＢ、・・・、３２Ｇ、６４Ｇ、１２８Ｇ、２５６Ｇ、及び５１２Ｇのうちのいずれか１つであり得る。
【０１１６】
さらに任意に、図８において示されたように、ページサイズデコーダ６０１は、デコーダ６０１３と、レジスタ６０１４とを含む。
【０１１７】
デコーダ６０１３は、線形アドレスの上位Ｎビットをデコーダに入力することによりゲート信号を獲得し、ゲート信号がレジスタグループの中からレジスタを選択するために使用される、ように構成される。
【０１１８】
レジスタ６０１４は、ゲート信号に従ってレジスタグループにおける第１のレジスタを判定するように構成される。
【０１１９】
レジスタ６０１４は、ページサイズが第１のレジスタにより記録されるページサイズであることを判定するように更に構成される。
【０１２０】
レジスタグループにおける各レジスタにより記録されるページサイズは、各メモリ領域において、線形アドレスが線形アドレスの上位Ｎビットに従って２Ｎ個のメモリ領域に等しく分割されたあとで記録されるページサイズである。例えば、線形アドレスは４８ビットを有し、線形アドレスは、線形アドレスの上位Ｎビットを使用することにより、数個の２ＴＢのメモリ領域に等しく分割される。例えば、線形アドレスは、線形アドレスの上位７ビットを使用することにより、１２８個の２ＴＢのメモリ領域に等しく分割され、ここで、各メモリ領域のページサイズは、４ＫＢ、８ＫＢ、１６ＫＢ、３２ＫＢ、６４ＫＢ、１２８ＫＢ、・・・、３２Ｇ、６４Ｇ、１２８Ｇ、２５６Ｇ、及び５１２Ｇのうちのいずれか１つであり得る。
【０１２１】
さらに任意に、図７において示されたように、インデックスプロセッサ６０２が、ページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得する場合に、インデックスプロセッサ６０２は、インデックスデコーダ６０２１と、マルチプレクサＭＵＸ６０２２とを含む。
【０１２２】
インデックスデコーダ６０２１は、ＴＬＢに記憶されるレコードの列の量に従ってＴＬＢの列数を表すビットの量を判定するように構成され、例えば、５１２個のエントリがＴＬＢに記憶される場合に、すなわち、５１２列のレコードがＴＬＢに記憶され、［ｌｏｇ２（５１２）＝７］ビットがインデックスを表すのに必要とされ、すなわち、インデックスは、７ビットの２進数により形成される。
【０１２３】
インデックスデコーダ６０２１は、ページサイズに従ってページサイズのページオフセットビットの量を判定するように更に構成され、例えば、ページサイズが４Ｍである場合に、ページサイズのページオフセットビットは２２ビットである。
【０１２４】
マルチプレクサＭＵＸ６０２２は、線形アドレスのビットからページサイズのページオフセットビットを差し引いたあとで、ＴＬＢの列数を表すとともに線形アドレスの残りの部分である下位ビットがＴＬＢのインデックス番号であることを判定するように構成される。線形アドレスが３２ビットを有する場合に、線形アドレスのビットからページサイズのページオフセットビットが差し引かれたあとで、１０ビットが獲得されるとともに、１０ビットの７個の下位ビットがＴＬＢのインデックス番号として判定され、すなわち、ＭＵＸは、出力するべきインデックスとして、線形アドレスの２２〜２８ビットを選択する。
【０１２５】
さらに任意に、図７において示されたように、物理アドレス判定ユニット６０５は、第１のレコード判定モジュール６０５１と、物理アドレス判定モジュール６０５２と、計算モジュール６０５３と、結合モジュール６０５４とを含む。
【０１２６】
第１のレコード判定モジュール６０５１は、ＴＬＢのインデックス番号に従ってＴＬＢを検索することによりＴＬＢにおける第１のレコードを獲得し、ＴＬＢが少なくとも１列のレコードを含み、各列のレコードが少なくとも一組のデータを含み、データの各組がラベルに対応するラベル及び物理アドレスを含む、ように構成される。例えば、ＴＬＢの獲得されたインデックス番号は７ビットにより示されるとともに、ＴＬＢは５１２列のレコードを有し、その場合に、ＴＬＢにおける１列のレコードはインデックス番号の値に従って獲得される。例えば、７ビットのインデックス番号が３１８の値を表すとともに、その場合に、ＴＬＢにおける第３１８番目の列におけるレコードが第１のレコードである、ということが判定され得る。
【０１２７】
物理アドレス判定モジュール６０５２は、ＴＬＢのラベルを第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較し、ＴＬＢのラベルが第１のレコードに含まれる第１のラベルと同じである場合に、第１のラベルに対応するとともに第１のレコードに存在する物理アドレスが線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットである、ように構成される。
【０１２８】
ＴＬＢのラベルが第１のレコードに含まれる第１のラベルと異なる場合に、ＴＬＢのラベルは、第１のレコードに含まれる別のラベルと更に比較される。
【０１２９】
計算モジュール６０５３は、マスクをネゲートするとともにネゲートされたマスクと第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより物理アドレスの中位ＭＡＣ２ビットを獲得するように構成される。
【０１３０】
計算モジュール６０５３は、物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得し、Ｐ１がサポートされた最小のページサイズを表す、ように更に構成される。
【０１３１】
結合モジュール６０５４は、物理アドレスの上位ＭＡＣ１ビット、物理アドレスの中位ＭＡＣ２ビット、及び物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより物理アドレスを獲得するように構成される。
【０１３２】
図６又は図７において示された装置における様々なモジュールの特定の実施プロセス及び様々なモジュールの間の情報交換のような内容は、本発明の実施例として同じ発明概念に基づいているので、方法の実施例に対して参照が行われ得るとともに、繰り返しの説明はここでは行われない、という点に注意が必要である。
【０１３３】
本発明のこの実施例は、物理アドレスを判定するための装置であって、ページサイズデコーダが線形アドレスの上位Ｎビットに従ってページサイズを獲得し、Ｎが０より大きくかつ線形アドレスのビットの量より小さく、インデックスプロセッサがページサイズに従ってトランスレーション・ルックアサイド・バッファＴＬＢのインデックス番号を獲得し、ラベルプロセッサがページサイズに従ってＴＬＢのラベルを獲得し、物理アドレス判定ユニットがインデックス番号及びラベルに従ってＴＬＢを検索することにより、線形アドレスに対応する物理アドレスを獲得する、物理アドレスを判定するための装置を提供する。物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式ＴＬＢが使用されることができ、したがって、プロセスは異なる線形アドレス領域において異なるページサイズを使用するとともに、電力消費が削減される。
【０１３４】
説明された装置の実施例は、単に代表的である、という点に注意が必要である。別個の部品として説明されるユニットは、物理的に分離しているかもしれないし、又は物理的に分離していないかもしれないとともに、ユニットとして表示される部品は、物理的なユニットであるかもしれないし、又は物理的なユニットでないかもしれず、そして、１つの位置に位置付けられるかもしれないし、又は複数のネットワークユニットに対して分散されるかもしれない。いくつか又は全てのモジュールは、実施例の解決法の目的を達成するために、実際のニーズに従って選択され得る。当業者は、創造的な努力なしで本発明の実施例を理解して、実施し得る。
【０１３５】
前述の実施方法の説明に基づくと、当業者は、本発明は、必須の汎用のハードウェアに加えたソフトウェアにより、又は、専用の集積回路、専用のＣＰＵ、専用のメモリ、専用のコンポーネントなどを含む専用のハードウェアにより実施され得る、ということを明らかに理解し得る。大部分の状況において、前者が好ましい実施方法である。そのような理解に基づくと、本発明の技術的解決法は本質的に、又は、従来技術に貢献する部分は、ソフトウェア製品の形式で実施され得る。ソフトウェア製品は、コンピュータのフロッピーディスク、ＵＳＢフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ（ＲＯＭ、Read-Only  Memory）、ランダムアクセスメモリ（ＲＡＭ、Random  Access  Memory）、磁気ディスク、又は光ディスクのような、読み取り可能な記憶媒体に記憶されるとともに、コンピュータ装置（それはパーソナルコンピュータ、サーバ、ネットワーク装置などであり得る）に、本発明の実施例において説明された方法を実行するように指示するためのいくらかの命令を含む。
【０１３６】
この明細書における実施例は、全て革新的な方法で説明され、実施例における同じ又は同様の部分については、これらの実施例に対して参照が行われ、各実施例は、他の実施例との差異に焦点を合わせる。特に、装置及びシステムの実施例は、基本的に方法の実施例と同様であり、したがって、簡潔に説明され、関連する部分については、方法の実施例における部分的な説明に対して参照が行われる。
【０１３７】
前述の説明は、本発明の単なる具体的な実施方法にすぎず、しかし本発明の保護範囲を限定することを意図していない。本発明において開示された技術的な範囲内の当業者によって容易に判断されるあらゆる変形又は置換は、本発明の保護範囲に含まれるものとする。したがって、本発明の保護範囲は、請求項の保護範囲に支配されるものとする。
【図１】
2016522503.tif 000003
【図２】
2016522503.tif 000004
【図３】
2016522503.tif 000005
【図４】
2016522503.tif 000006
【図５】
2016522503.tif 000007
【図６】
2016522503.tif 000008
【図７】
2016522503.tif 000009
【図８】
2016522503.tif 000010
【手続補正書】
【提出日】平成28年1月7日(2016.1.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
線形アドレスを物理アドレスに変換するために使用される、前記物理アドレスを判定するための方法であって、
前記線形アドレスの上位Ｎビットに従ってページサイズを獲得するステップであって、Ｎが０より大きくかつ前記線形アドレスのビットの量より小さい、ステップと、
前記ページサイズに従ってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号を獲得するステップと、
前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するステップと、
前記マスクに従って前記ＴＬＢのラベルを獲得するステップと、
前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するステップと、
前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得するステップであって、前記物理アドレスがメモリアクセスのために使用される、ステップとを含む、方法。
【請求項２】
線形アドレスの上位Ｎビットに従ってページサイズを獲得する前記ステップが、
前記サポートされた最小のページサイズに従って前記最小のページサイズのページオフセットビットの量を獲得するステップと、
前記線形アドレスの前記ビットから前記最小のページサイズの前記ページオフセットビットを差し引くことにより第１のページ番号を獲得するステップと、
前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得するステップとを含む、請求項１に記載の方法。
【請求項３】
前記第１のプリセットテーブルが、ページサイズの開始アドレス、ページサイズの終了アドレス、及び前記ページサイズを含み、
前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得する前記ステップが、
前記第１のページ番号の前記値が第１のページサイズの開始アドレスより大きく、かつ前記第１のページ番号の前記値が前記第１のページサイズの終了アドレスより小さい場合に、前記ページサイズが前記第１のページサイズであると判定するステップを含む、請求項２に記載の方法。
【請求項４】
線形アドレスの上位Ｎビットに従ってページサイズを獲得する前記ステップが、
前記線形アドレスの上位Ｎビットをデコーダに入力することによりゲート信号を獲得するステップであって、前記ゲート信号がレジスタグループの中からレジスタを選択するために使用される、ステップと、
前記ゲート信号に従って前記レジスタグループにおける第１のレジスタを判定するステップと、
前記ページサイズが前記第１のレジスタにより記録されるページサイズであることを判定するステップとを含み、
前記レジスタグループにおける各レジスタにより記録されるページサイズが、各メモリ領域において、前記線形アドレスが前記線形アドレスの上位Ｎビットに従って２Ｎ個のメモリ領域に等しく分割されたあとで記録されるページサイズである、請求項１に記載の方法。
【請求項５】
前記ページサイズに従ってＴＬＢのインデックス番号を獲得する前記ステップが、
前記ＴＬＢに記憶されるレコードの列の量に従って前記ＴＬＢの列数を表すビットの量を判定するステップと、
前記ページサイズに従って前記ページサイズのページオフセットビットの量を判定するステップと、
前記線形アドレスの前記ビットから前記ページサイズの前記ページオフセットビットを差し引いたあとで、前記ＴＬＢの列数を表すとともに前記線形アドレスの残りの部分である下位ビットが前記ＴＬＢの前記インデックス番号であることを判定するステップとを含む、請求項１から請求項４のいずれか一項に記載の方法。
【請求項６】
前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得する前記ステップが、
Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って前記マスクのビットの量を獲得するステップであって、Ｍ１が前記マスクの前記ビットの量を表し、ＬＡが前記線形アドレスの前記ビットの量を表し、Ｐ１が前記サポートされた最小のページサイズを表す、ステップと、
Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従って前記マスクにおける“１”の量を獲得するステップであって、Ｍ２が獲得された前記マスクにおける“１”の量を表し、Ｐ２が前記ページサイズを表す、ステップと、
前記Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、前記Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、前記マスクを獲得するステップとを含む、請求項１から請求項５のいずれか一項に記載の方法。
【請求項７】
前記マスクに従って前記ＴＬＢのラベルを獲得する前記ステップが、
前記線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより第２のアドレスを獲得するステップと、
前記マスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記ＴＬＢの前記ラベルを獲得するステップとを含む、請求項６に記載の方法。
【請求項８】
前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得する前記ステップが、
前記ＴＬＢの前記インデックス番号に従って前記ＴＬＢを検索することにより前記ＴＬＢにおける第１のレコードを獲得するステップであって、前記ＴＬＢが少なくとも１列のレコードを含み、各列のレコードが少なくとも一組のデータを含み、前記データの各組が前記ラベルに対応するラベル及び物理アドレスを含む、ステップと、
前記ＴＬＢの前記ラベルを前記第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較するステップであって、前記ＴＬＢの前記ラベルが前記第１のレコードに含まれる第１のラベルと同じである場合に、前記第１のラベルに対応するとともに前記第１のレコードに存在する物理アドレスが前記線形アドレスに対応する前記物理アドレスの上位ＭＡＣ１ビットである、ステップとを含む、請求項７に記載の方法。
【請求項９】
前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得する前記ステップが、
前記マスクをネゲートするとともに前記のネゲートされたマスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記物理アドレスの中位ＭＡＣ２ビットを獲得するステップと、
前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得するステップであって、Ｐ１が前記サポートされた最小のページサイズを表す、ステップと、
前記物理アドレスの上位ＭＡＣ１ビット、前記物理アドレスの中位ＭＡＣ２ビット、及び前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより前記物理アドレスを獲得するステップとを含む、請求項７又は請求項８に記載の方法。
【請求項１０】
線形アドレスを物理アドレスに変換するように構成される、前記物理アドレスを判定するための装置であって、
前記線形アドレスの上位Ｎビットに従ってページサイズを獲得するように構成されるページサイズデコーダであって、Ｎが０より大きくかつ前記線形アドレスのビットの量より小さい、前記ページサイズデコーダと、
前記ページサイズに従ってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号を獲得するように構成されるインデックスプロセッサと、
前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するように構成されるマスクデコーダと、
前記マスクに従って前記ＴＬＢのラベルを獲得するように構成されるラベルプロセッサと、
前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するように構成される物理アドレス判定ユニットとを備え、
前記物理アドレス判定ユニットが、前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得し、前記物理アドレスがメモリアクセスのために使用される、ように更に構成される、装置。
【請求項１１】
前記ページサイズデコーダが、
前記サポートされた最小のページサイズに従って前記最小のページサイズのページオフセットビットの量を獲得するように構成される計算モジュールであって、前記線形アドレスの前記ビットから前記最小のページサイズの前記ページオフセットビットを差し引くことにより第１のページ番号を獲得するように更に構成される、前記計算モジュールと、
前記第１のページ番号の値に従って第１のプリセットテーブルに照会することにより前記ページサイズを獲得するように構成されるページサイズ獲得モジュールとを備える、請求項１０に記載の装置。
【請求項１２】
前記第１のプリセットテーブルが、ページサイズの開始アドレス、ページサイズの終了アドレス、及び前記ページサイズを含み、
前記ページサイズ獲得モジュールが、
前記第１のページ番号の前記値が第１のページサイズの開始アドレスより大きく、かつ前記第１のページ番号の前記値が前記第１のページサイズの終了アドレスより小さい場合に、前記ページサイズが前記第１のページサイズであると判定するように構成される、請求項１１に記載の装置。
【請求項１３】
前記ページサイズデコーダが、
前記線形アドレスの上位Ｎビットをデコーダに入力することによりゲート信号を獲得し、前記ゲート信号がレジスタグループの中からレジスタを選択するために使用される、ように構成される前記デコーダと、
前記ゲート信号に従って前記レジスタグループにおける第１のレジスタを判定するように構成される前記レジスタであって、前記ページサイズが前記第１のレジスタにより記録されるページサイズであることを判定するように更に構成される、前記レジスタとを備え、
前記レジスタグループにおける各レジスタにより記録されるページサイズが、各メモリ領域において、前記線形アドレスが前記線形アドレスの上位Ｎビットに従って２Ｎ個のメモリ領域に等しく分割されたあとで記録されるページサイズである、請求項１０に記載の装置。
【請求項１４】
前記インデックスプロセッサが、
前記ＴＬＢに記憶されるレコードの列の量に従って前記ＴＬＢの列数を表すビットの量を判定するように構成されるインデックスデコーダであって、前記ページサイズに従って前記ページサイズのページオフセットビットの量を判定するように更に構成される、前記インデックスデコーダと、
前記線形アドレスの前記ビットから前記ページサイズの前記ページオフセットビットを差し引いたあとで、前記ＴＬＢの列数を表すとともに前記線形アドレスの残りの部分である下位ビットが前記ＴＬＢの前記インデックス番号であることを判定するように構成されるマルチプレクサ（ＭＵＸ）とを備える、請求項１０から請求項１３のいずれか一項に記載の装置。
【請求項１５】
前記マスクデコーダが、
Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って前記マスクのビットの量を獲得し、Ｍ１が前記マスクの前記ビットの量を表し、ＬＡが前記線形アドレスの前記ビットの量を表し、Ｐ１が前記サポートされた最小のページサイズを表す、ように構成され、
Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従って前記マスクにおける“１”の量を獲得し、Ｍ２が獲得された前記マスクにおける“１”の量を表し、Ｐ２が前記ページサイズを表す、ように構成されるとともに、
前記Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、前記Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、前記マスクを獲得するように構成される、請求項１０から請求項１４のいずれか一項に記載の装置。
【請求項１６】
前記ラベルプロセッサが、
前記線形アドレスから下位（ｌｏｇ２Ｐ１）ビットを差し引くことにより第２のアドレスを獲得するように構成されるとともに、
前記マスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記ＴＬＢの前記ラベルを獲得するように構成される、請求項１５に記載の装置。
【請求項１７】
前記物理アドレス判定ユニットが、
前記ＴＬＢの前記インデックス番号に従って前記ＴＬＢを検索することにより前記ＴＬＢにおける第１のレコードを獲得し、前記ＴＬＢが少なくとも１列のレコードを含み、各列のレコードが少なくとも一組のデータを含み、前記データの各組が前記ラベルに対応するラベル及び物理アドレスを含む、ように構成される第１のレコード判定モジュールと、
前記ＴＬＢの前記ラベルを前記第１のレコードに含まれる少なくとも一組のデータにおける各ラベルと比較し、前記ＴＬＢの前記ラベルが前記第１のレコードに含まれる第１のラベルと同じである場合に、前記第１のラベルに対応するとともに前記第１のレコードに存在する物理アドレスが前記線形アドレスに対応する前記物理アドレスの上位ＭＡＣ１ビットである、ように構成される物理アドレス判定モジュールとを備える、請求項１６に記載の装置。
【請求項１８】
前記物理アドレス判定ユニットが、
前記マスクをネゲートするとともに前記のネゲートされたマスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記物理アドレスの中位ＭＡＣ２ビットを獲得するように構成される計算モジュールであって、前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得し、Ｐ１が前記サポートされた最小のページサイズを表す、ように更に構成される、前記計算モジュールと、
前記物理アドレスの上位ＭＡＣ１ビット、前記物理アドレスの中位ＭＡＣ２ビット、及び前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより前記物理アドレスを獲得するように構成される結合モジュールとを備える、請求項１７に記載の装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
第１の態様によれば、メモリアドレスを物理アドレスに変換するために使用される、前記物理アドレスを判定するための方法であって、線形アドレスの上位Ｎビットに従ってページサイズを獲得するステップであって、Ｎが０より大きくかつ前記線形アドレスのビットの量より小さい、ステップと、前記ページサイズに従ってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号を獲得するステップと、前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するステップと、前記マスクに従って前記ＴＬＢのラベルを獲得するステップと、前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するステップと、前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得するステップであって、前記物理アドレスがメモリアクセスのために使用される、ステップとを含む、前記物理アドレスを判定するための方法が提供される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
第１の態様の前述の実施方法のうちのいずれか１つに関連して、第１の態様の第５の実施方法において、前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得する前記ステップは、Ｍ１＝ＬＡ−ｌｏｇ２Ｐ１に従って前記マスクのビットの量を獲得するステップであって、Ｍ１が前記マスクの前記ビットの量を表し、ＬＡが前記線形アドレスの前記ビットの量を表し、Ｐ１が前記サポートされた最小のページサイズを表す、ステップと、Ｍ２＝ＬＡ−ｌｏｇ２Ｐ２に従って前記マスクにおける“１”の量を獲得するステップであって、Ｍ２が獲得された前記マスクにおける“１”の量を表し、Ｐ２が前記ページサイズを表す、ステップと、前記Ｍ１ビットにおける上位Ｍ２ビットを“１”に設定し、前記Ｍ１ビットにおける下位（Ｍ１−Ｍ２）ビットを“０”に設定することにより、前記マスクを獲得するステップとを含む。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
第１の態様の前述の実施方法のうちのいずれか１つに関連して、第１の態様の第８の実施方法において、前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得する前記ステップは、前記マスクをネゲートするとともに前記のネゲートされたマスクと前記第２のアドレスに対してビット単位のＡＮＤ演算を実行することにより前記物理アドレスの中位ＭＡＣ２ビットを獲得するステップと、前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを獲得するステップであって、Ｐ１が前記サポートされた最小のページサイズを表す、ステップと、前記物理アドレスの上位ＭＡＣ１ビット、前記物理アドレスの中位ＭＡＣ２ビット、及び前記物理アドレスの下位（ｌｏｇ２Ｐ１）ビットを順序通りに結合することにより前記物理アドレスを獲得するステップとを含む。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
第２の態様によれば、メモリアドレスを物理アドレスに変換するように構成される、前記物理アドレスを判定するための装置であって、線形アドレスの上位Ｎビットに従ってページサイズを獲得するように構成されるページサイズデコーダであって、Ｎが０より大きくかつ前記線形アドレスのビットの量より小さい、前記ページサイズデコーダと、前記ページサイズに従ってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号を獲得するように構成されるインデックスプロセッサと、前記ページサイズ及びサポートされた最小のページサイズに従ってマスクを獲得するように構成されるマスクデコーダと、前記マスクに従って前記ＴＬＢのラベルを獲得するように構成されるラベルプロセッサと、前記インデックス番号及び前記ラベルに従って前記ＴＬＢを検索することにより、前記線形アドレスに対応する物理アドレスの上位ＭＡＣ１ビットを獲得するように構成される物理アドレス判定ユニットとを含み、前記物理アドレス判定ユニットが、前記マスク、前記サポートされた最小のページサイズ、及び前記物理アドレスの上位ＭＡＣ１ビットに従って前記物理アドレスを獲得し、前記物理アドレスがメモリアクセスのために使用される、ように更に構成される、前記物理アドレスを判定するための装置が提供される。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
第２の態様の前述の実施方法のうちのいずれか１つに関連して、第２の態様の第４の実施方法において、前記インデックスプロセッサは、前記ＴＬＢに記憶されるレコードの列の量に従って前記ＴＬＢの列数を表すビットの量を判定するように構成されるインデックスデコーダであって、前記ページサイズに従って前記ページサイズのページオフセットビットの量を判定するように更に構成される、前記インデックスデコーダと、前記線形アドレスの前記ビットから前記ページサイズの前記ページオフセットビットを差し引いたあとで、前記ＴＬＢの列数を表すとともに前記線形アドレスの残りの部分である下位ビットが前記ＴＬＢの前記インデックス番号であることを判定するように構成されるマルチプレクサ（ＭＵＸ）とを含む。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
本発明の実施例における技術的解決法をより明確に説明するために、下記は、実施例を説明するために必要とされる添付図面を簡単に説明する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
下記は、本発明の実施例における添付図面を参照して本発明の実施例における技術的解決法を明確に説明する。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
任意に、ページサイズが獲得されたあとで、ページサイズは、マルチプレクサ（ＭＵＸ）の選択信号を獲得し得るインデックスデコーダの入力として使用され、それにより、インデックス番号を獲得する。ＭＵＸは、全てのページサイズに対応するインデックスを選択するマルチプレクサを表す。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
例えば、ＴＬＢのエントリ数を表すビットの量は、ＴＬＢのエントリの量に従って判定され、すなわち、ＴＬＢが５１２個のエントリを含むか、又はＴＬＢが５１２列のレコードを記憶する場合に、インデックスを表すのに９ビットが必要とされる。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００４２
【補正方法】変更
【補正の内容】
【００４２】
ＴＬＢのラベルは、マスクと、線形アドレスから最小のページサイズのページオフセットビットが差し引かれた線形アドレスの残りの部分に対して、ビット単位のＡＮＤ演算を実行することにより獲得される。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
ステップ１０６：マスク、サポートされた最小のページサイズ、及び物理アドレスの上位ＭＡＣ１ビットに従って物理アドレスを獲得し、ここで、物理アドレスはメモリアクセスのために使用される。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００４９
【補正方法】変更
【補正の内容】
【００４９】
ＴＬＢにおけるラベルフィールドの長さは最小のページのラベルの長さに固定されるとともに、大きなページのラベルの下位ビットは０に設定される必要がある、という点に注意が必要である。例えば、線形アドレスが３２ビットを有し、最小のページサイズが４Ｋであり、最小のページサイズのページオフセットビットの量が１２であるとともに、ＴＬＢにおけるラベルフィールドの長さが２０ビットに固定され、もし大きなページサイズが４Ｍであるとともに、ページサイズのページオフセットビットの量が２２であるならば、大きなページのラベルにおける有効なラベルビットは１０ビットであり、ＴＬＢにおけるラベルフィールドの長さは２０ビットに固定され、したがって、下位１０ビットは０に設定される必要がある。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
例えば、システムがサポートし得る最小のページサイズは４ＫＢであり、ｌｏｇ２（４Ｋ）＝１２を使用することによる計算によって、最小のページサイズのページオフセットビットの量は１２である、ということが獲得される。したがって、Ｐａｇｅ−ｓｉｚｅにより指定され、Ｓｔａｒｔ及びＥｎｄにより記録されるページサイズのメモリ領域は、４ＫＢの測定ステップの開始アドレス及び終了アドレスになり得る。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
３６ビットの線形アドレスと、プリセットテーブルにおける各エントリのＳｔａｒｔ及びＥｎｄとの間で、同時比較が実行される必要があるので、ページサイズを検索する時間を減らすために、プリセットテーブルに設定される必要がある列の量は比較的小さい、という点に注意が必要である。例えば、７つのエントリがプリセットテーブルに設定され得るとともに、その場合に、線形アドレスは７つのメモリ領域に分割される必要があり、ここで、各メモリ領域のページサイズは、４ＫＢ、８ＫＢ、１６ＫＢ、３２ＫＢ、６４ＫＢ、１２８ＫＢ、・・・、３２Ｇ、６４Ｇ、１２８Ｇ、２５６Ｇ、及び５１２Ｇのうちのいずれか１つであり得る。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
様式２：図５において示されたように、ページサイズデコーダは、７ビット−１２８ビットデコーダとページサイズレジスタグループの組み合わせを使用することにより実施されるとともに、オペレーティングシステムにより書き込まれるとともに修正される。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
ステップ２０２：ページサイズに従ってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号を獲得する。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００７１
【補正方法】変更
【補正の内容】
【００７１】
任意に、図３において示されたように、ＴＬＢのインデックス番号は、インデックスデコーダ及びＭＵＸを使用することにより獲得される。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
任意に、ＴＬＢの列数を表すビットの量は、ＴＬＢに記憶されるレコードの列の量に従って判定される。少なくとも１列のレコードがＴＬＢに記憶される。例えば、５１２個のエントリがＴＬＢに記憶される場合に、すなわち、５１２列のレコードがＴＬＢに記憶され、［ｌｏｇ２（５１２）＝９］ビットがインデックスを表すのに必要とされ、すなわち、インデックスは、９ビットの２進数により形成される。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００８８
【補正方法】変更
【補正の内容】
【００８８】
例えば、ＴＬＢの獲得されたインデックス番号は９ビットにより示されるとともに、ＴＬＢは５１２列のレコードを有し、その場合に、ＴＬＢにおける１列のレコードはインデックス番号の値に従って獲得される。例えば、９ビットのインデックス番号が３１８の値を表すとともに、その場合に、ＴＬＢにおける第３１８番目の列におけるレコードが第１のレコードである、ということが判定され得る。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
本発明のこの実施例は、物理アドレスを判定するための方法であって、ページサイズが線形アドレスの上位Ｎビットに従って獲得され、Ｎが０より大きくかつ線形アドレスのビットの量より小さく、トランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号がページサイズに従って獲得され、ＴＬＢのラベルがページサイズに従って獲得され、線形アドレスに対応する物理アドレスがインデックス番号及びラベルに従ってＴＬＢを検索することにより獲得される、物理アドレスを判定するための方法を提供する。物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式ＴＬＢが使用されることができ、したがって、プロセスは異なる線形アドレス領域において異なるページサイズを使用するとともに、電力消費が削減される。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
インデックスプロセッサ６０２は、ページサイズに従ってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号を獲得するように構成される。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】０１１１
【補正方法】変更
【補正の内容】
【０１１１】
計算モジュール６０１１は、線形アドレスのビットから最小のページサイズのページオフセットビットを差し引くことにより第１のページ番号を獲得するように更に構成される。例えば、システムがサポートし得る最小のページサイズは４ＫＢであり、ｌｏｇ２（４Ｋ）＝１２を使用することによる計算によって、最小のページサイズのページオフセットビットの量は１２である、ということが獲得される。したがって、Ｐａｇｅ−ｓｉｚｅにより指定され、Ｓｔａｒｔ及びＥｎｄにより記録されるページサイズのメモリ領域は、４ＫＢの測定ステップの開始アドレス及び終了アドレスになり得る。
【手続補正２４】
【補正対象書類名】明細書
【補正対象項目名】０１１５
【補正方法】変更
【補正の内容】
【０１１５】
３６ビットの線形アドレスと、プリセットテーブルにおける各エントリのＳｔａｒｔ及びＥｎｄとの間で、同時比較が実行される必要があるので、ページサイズを検索する時間を減らすために、プリセットテーブルに設定される必要がある列の量は比較的小さい、という点に注意が必要である。例えば、７つのエントリがプリセットテーブルに設定され得るとともに、その場合に、線形アドレスは７つのメモリ領域に分割される必要があり、ここで、各メモリ領域のページサイズは、４ＫＢ、８ＫＢ、１６ＫＢ、３２ＫＢ、６４ＫＢ、１２８ＫＢ、・・・、３２Ｇ、６４Ｇ、１２８Ｇ、２５６Ｇ、及び５１２Ｇのうちのいずれか１つであり得る。
【手続補正２５】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
さらに任意に、図７において示されたように、インデックスプロセッサ６０２が、ページサイズに従ってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号を獲得する場合に、インデックスプロセッサ６０２は、インデックスデコーダ６０２１と、マルチプレクサＭＵＸ６０２２とを含む。
【手続補正２６】
【補正対象書類名】明細書
【補正対象項目名】０１２２
【補正方法】変更
【補正の内容】
【０１２２】
インデックスデコーダ６０２１は、ＴＬＢに記憶されるレコードの列の量に従ってＴＬＢの列数を表すビットの量を判定するように構成され、例えば、５１２個のエントリがＴＬＢに記憶される場合に、すなわち、５１２列のレコードがＴＬＢに記憶され、［ｌｏｇ２（５１２）＝９］ビットがインデックスを表すのに必要とされ、すなわち、インデックスは、９ビットの２進数により形成される。
【手続補正２７】
【補正対象書類名】明細書
【補正対象項目名】０１２６
【補正方法】変更
【補正の内容】
【０１２６】
第１のレコード判定モジュール６０５１は、ＴＬＢのインデックス番号に従ってＴＬＢを検索することによりＴＬＢにおける第１のレコードを獲得し、ＴＬＢが少なくとも１列のレコードを含み、各列のレコードが少なくとも一組のデータを含み、データの各組がラベルに対応するラベル及び物理アドレスを含む、ように構成される。例えば、ＴＬＢの獲得されたインデックス番号は９ビットにより示されるとともに、ＴＬＢは５１２列のレコードを有し、その場合に、ＴＬＢにおける１列のレコードはインデックス番号の値に従って獲得される。例えば、９ビットのインデックス番号が３１８の値を表すとともに、その場合に、ＴＬＢにおける第３１８番目の列におけるレコードが第１のレコードである、ということが判定され得る。
【手続補正２８】
【補正対象書類名】明細書
【補正対象項目名】０１３３
【補正方法】変更
【補正の内容】
【０１３３】
本発明のこの実施例は、物理アドレスを判定するための装置であって、ページサイズデコーダが線形アドレスの上位Ｎビットに従ってページサイズを獲得し、Ｎが０より大きくかつ線形アドレスのビットの量より小さく、インデックスプロセッサがページサイズに従ってトランスレーション・ルックアサイド・バッファ（ＴＬＢ）のインデックス番号を獲得し、ラベルプロセッサがページサイズに従ってＴＬＢのラベルを獲得し、物理アドレス判定ユニットがインデックス番号及びラベルに従ってＴＬＢを検索することにより、線形アドレスに対応する物理アドレスを獲得する、物理アドレスを判定するための装置を提供する。物理アドレスを獲得するために複数のページサイズをサポートするセットアソシアティブ方式ＴＬＢが使用されることができ、したがって、プロセスは異なる線形アドレス領域において異なるページサイズを使用するとともに、電力消費が削減される。
【手続補正２９】
【補正対象書類名】図面
【補正対象項目名】図７
【補正方法】変更
【補正の内容】
【図７】
2016522503.tif 000011
【国際調査報告】
2016522503.tif 000012
2016522503.tif 000013
2016522503.tif 000014
2016522503.tif 000015