(57)【要約】  プロセッサは、データを複数のページに記憶するように構成されているメモリと、ＴＬＢと、ＴＬＢ制御装置とを含んでいる。ＴＬＢは、仮想アドレスをもつ命令によってアクセスされたときに、仮想アドレスを複数のページの中の１ページの物理アドレスに変換することを可能にするアドレス変換情報をサーチし、アドレス変換情報がＴＬＢ内で見付かったときは、アドレス変換情報を与えるように構成されている。ＴＬＢ制御装置は、現在の命令および後の命令が複数のページの中の同じページへのアクセスを求めているかどうかを判断し、求めているときは、後の命令によるＴＬＢアクセスを防ぎ、前の命令のＴＬＢアクセスの結果を、現在の命令に対して使用するように構成されている。【選択図】      図２
2008545199.tif 000002
【特許請求の範囲】
【請求項１】
データを複数のページに記憶するように構成されているメモリと、
仮想アドレスをもつ命令によってアクセスされたときに、仮想アドレスを複数のページの中の１ページの物理アドレスに変換することを可能にするアドレス変換情報をサーチし、アドレス変換情報がＴＬＢ内で見付かったときは、アドレス変換情報を与えるように構成されている変換ルックアサイド緩衝器(translation lookaside buffer, TLB)と、
現在の命令および後の命令が複数のページの中の同じページへのアクセスを求めているかどうかを判断し、求めているときは、後の命令によるＴＬＢアクセスを防ぐように構成されているＴＬＢ制御装置とを含むプロセッサ。
【請求項２】
現在の命令は、後の命令に関する情報を含んでおり、ＴＬＢ制御装置は、現在の命令および後の命令が複数のページの中の同じページへのアクセスを求めているかどうかを判断するために、現在の命令に含まれている情報を使用するようにさらに構成されている請求項１記載のプロセッサ。
【請求項３】
ＴＬＢ制御装置は、現在の命令および後の命令が複数のページの中の同じページへのアクセスを求めているかどうかを判断するために、現在の命令に対して生成された仮想アドレスを、後の命令に対して生成された仮想アドレスと比較するようにさらに構成されている請求項１記載のプロセッサ。
【請求項４】
ＴＬＢ制御装置は、現在の命令に対して生成された仮想アドレスと、後の命令に対して生成された仮想アドレスとが、複数のページの中の同じページの物理アドレスに変換されるかどうかを判断するようにさらに構成されている請求項３記載のプロセッサ。
【請求項５】
メモリアクセス制御装置が、現在の命令および後の命令が複数のページの中の同じページからのデータアクセスを求めていると判断すると、ＴＬＢ制御装置は、ＴＬＢによって現在の命令に既に与えられたアドレス変換情報を、後の命令に対して使用するようにさらに構成されている請求項２記載のプロセッサ。
【請求項６】
現在の命令は、反復動作のための命令を含んでいる請求項１記載のプロセッサ。
【請求項７】
現在の命令および後の命令は、１つの複合命令の連続する部分を構成する請求項１記載のプロセッサ。
【請求項８】
ＴＬＢは、複数のＴＬＢエントリを記憶するように構成されており、複数のＴＬＢエントリの各々は、仮想アドレス、メモリ内の複数のページの中の１ページの物理アドレス、および仮想アドレスを物理アドレスに変換するアドレス変換情報を含み、ＴＬＢは、仮想アドレスを含んでいる命令によってアクセスされたときに、複数のＴＬＢエントリ内でアドレス変換情報をサーチするようにさらに構成されている請求項１記載のプロセッサ。
【請求項９】
ＴＬＢ制御装置は、後の命令のＴＬＢアクセスポイントの前に、現在の命令および後の命令が複数のページの中の同じページへのアクセスを求めているかどうかを判断するようにさらに構成されている請求項１記載のプロセッサ。
【請求項１０】
現在の命令および後の命令は、メモリへの順次のアクセスを求める連続する命令を含んでいる請求項１記載のプロセッサ。
【請求項１１】
プロセッサは、多段パイプラインプロセッサを含む請求項１記載のプロセッサ。
【請求項１２】
多段パイプラインプロセッサは、フェッチステージ、デコードステージ、実行ステージ、メモリアクセス ステージ、およびライトバック ステージの少なくとも１つを含む請求項１１記載のプロセッサ。
【請求項１３】
命令レジスタから１つ以上の命令をフェッチするように構成されている少なくとも１つのフェッチユニットと、
フェッチユニットによってフェッチされた１つ以上の命令をデコードするように構成されている少なくとも１つのデコードユニットと、
デコードユニットによってデコードされた１つ以上の命令を実行するように構成されている少なくとも１つの実行ユニットとをさらに含む請求項１２記載のプロセッサ。
【請求項１４】
データを複数のページに記憶するように構成されているメモリと、
仮想アドレスをもつ命令によってアクセスされたときに、仮想アドレスを物理アドレスに変換することを可能にするＴＬＢ内のアドレス変換情報をサーチし、アドレス変換情報がＴＬＢ内で見付かったときは、アドレス変換情報を与えるように構成されているＴＬＢと、
現在の命令および複数の後の命令が複数のページの中の同じページへのアクセスを求めているかどうかを判断し、求めているときは、複数の後の命令の１つ以上によるＴＬＢアクセスを防ぐように構成されているＴＬＢ制御装置とを含むプロセッサ。
【請求項１５】
データを複数のページに記憶するように構成されているメモリと、
仮想アドレスを含んでいる命令によってアクセスされたときに、仮想アドレスを物理アドレスに変換することを可能にするアドレス変換情報をサーチし、アドレス変換情報がＴＬＢ内で見付かったときは、アドレス変換情報を与えるように構成されているＴＬＢと、
現在の命令および後の命令がメモリ内の複数のページの中の同じページからのデータアクセスを求めているかどうかを判断する手段と、
現在の命令および後の命令がメモリ内の複数のページの中の同じページからのデータアクセスを求めているときは、後の命令によるＴＬＢアクセスを防ぐ手段とを含むプロセッサ。
【請求項１６】
プロセッサ内のＴＬＢへのアクセスを制御する方法であって、
現在の命令および後の命令を受信することと、
現在の命令および後の命令がメモリ内の複数のページの中の同じページへのアクセスを求めていると判断することと、
後の命令によるＴＬＢへのアクセスを防ぐこととを含む方法。
【請求項１７】
現在の命令は、後の命令に関する情報を含んでおり、現在の命令に含まれている情報を使用して、現在の命令および後の命令が複数のページの中の同じページへのアクセスを求めていると判断することをさらに含む請求項１６記載の方法。
【請求項１８】
現在の命令および後の命令がメモリ中の同じページへのアクセスを求めていると判断する行為は、現在の命令に対する第１の仮想アドレスと後の命令に対する第２の仮想アドレスとを生成することと、第１の仮想アドレスと第２の仮想アドレスとを比較することとを含む請求項１６記載の方法。
【請求項１９】
第１の仮想アドレスと第２の仮想アドレスとを比較する行為は、第１の仮想アドレスと第２の仮想アドレスとが、複数のページの中の同じページを示す物理アドレスに変換されるかどうかを判断することを含む請求項１８記載の方法。
【請求項２０】
現在の命令および後の命令が複数のページの中の同じページからのデータアクセスを求めていると判断した後で、ＴＬＢによって現在の命令に既に与えられたアドレス変換情報を、後の命令に対して使用することをさらに含む請求項１６記載の方法。
【請求項２１】
命令を複数のページに記憶するように構成されているメモリをさらに含む請求項１記載のプロセッサ。
【請求項２２】
ＴＬＢ制御装置は、前の命令のＴＬＢアクセスの結果を、現在の命令に対して使用するようにさらに構成されている請求項１記載のプロセッサ。
【請求項２３】
プロセッサは、複数のレベルのＴＬＢを含んでいる請求項１記載のプロセッサ。
【発明の詳細な説明】
【発明の分野】
【０００１】
本発明は、変換ルックアサイド緩衝器(translation look-aside buffer)に関する。
【発明の背景】
【０００２】
ページに分けられた仮想メモリを支援するプロセッサにおいて、データは、プロセッサの仮想アドレス空間を占有している仮想(または、“論理”)アドレスを使用して指定され得る。仮想アドレス空間は、通常、システム内の実際の物理メモリの量よりも大きい。これらのプロセッサ内のオペレーティングシステムは、ページと呼ばれる固定サイズブロックで物理メモリを管理し得る。
【０００３】
仮想ページアドレスを物理ページアドレスに変換するために、プロセッサは、システムメモリに記憶されているページテーブルをサーチし得る。ページテーブルは、必要なアドレス変換情報を含み得る。これらのサーチ(または、“ページ テーブル ウォーク(page table walk)”)はメモリアクセスにかかわり得るので、ページテーブルのデータがデータキャッシュ内になければ、これらのサーチは時間がかかり得る。
【０００４】
したがって、プロセッサは、１つ以上のＴＬＢ(変換ルックアサイド緩衝器)を使用して、アドレス変換を行い得る。ＴＬＢは、アドレス変換キャッシュ、すなわち、仮想アドレスから物理アドレスへの最近のマッピングを記憶する小さいキャッシュである。プロセッサは、ページテーブルのサーチおよびアドレス変換を行った後で、物理アドレスをＴＬＢにキャッシュし得る。ＴＬＢは、通常、最もよく参照される仮想ページアドレスと、それと関連付けられる物理ページアドレスとを含み得る。命令アドレスのためのＴＬＢ(命令ＴＬＢ（instruction-TLB）またはＩ−ＴＬＢ)と、データアドレスのためのＴＬＢ(データＴＬＢ（data-TLB）またはＤ−ＴＬＢ)とが別々にあり得る。
【０００５】
ＴＬＢにアクセスし、命令の物理アドレス、または命令の１つ以上の部分（piece）の物理アドレスを判断し得る。通常、仮想アドレスは、命令、または命令の部分に対して生成され得る。ＴＬＢは、そのエントリをサーチし、仮想アドレスに対するアドレス変換情報がそのエントリの何れかに含まれているかどうかを確かめ得る。
【０００６】
多数の後の命令、または命令の多数の部分のアドレス変換情報を得るために、ＴＬＢは、各個々の命令、または命令の多数の部分の各々にアクセスされ得る。しかしながら、各ＴＬＢアクセスは幾らかの電力消費を要求するので、このプロセスは幾らかの電力を必要とし得る。
【発明の概要】
【０００７】
本発明の１つの実施形態において、プロセッサは、メモリ、ＴＬＢ、およびＴＬＢ制御装置を含み得る。メモリは、データを複数のページに記憶するように構成され得る。ＴＬＢは、仮想アドレスをもつ命令によってアクセスされたときに、仮想アドレスを複数のページの中の１ページの物理アドレスに変換することを可能にするアドレス変換情報をサーチし、アドレス変換情報がＴＬＢ内で見付かったときは、アドレス変換情報を与えるように構成され得る。ＴＬＢ制御装置は、現在の命令および後の命令が複数のページの中の同じページへのアクセスを求めているかどうかを判断し、求めているときは、後の命令によるＴＬＢアクセスを防ぐように構成され得る。ＴＬＢ制御装置は、現在の命令のＴＬＢアクセスの結果を、後の命令に対して使用するようにさらに構成され得る。
【０００８】
本発明の別の実施形態において、プロセッサは、メモリ、ＴＬＢ、およびＴＬＢ制御装置を含み得る。メモリは、データを複数のページに記憶するように構成され得る。ＴＬＢは、仮想アドレスをもつ命令によってアクセスされたときに、仮想アドレスを物理アドレスに変換することを可能にするＴＬＢ内のアドレス変換情報をサーチし、アドレス変換情報がＴＬＢ内で見付かったときは、アドレス変換情報を与えるように構成され得る。ＴＬＢ制御装置は、現在の命令および複数の後の命令が複数のページの中の同じページへのアクセスを求めているかどうかを判断し、求めているときは、複数の後の命令の１つ以上によるＴＬＢアクセスを防ぐように構成され得る。ＴＬＢ制御装置は、現在の命令のＴＬＢアクセスの結果を、複数の後の命令の１つ以上に対して使用するようにさらに構成され得る。
【０００９】
本発明の別の実施形態において、プロセッサは、メモリと、ＴＬＢ制御装置とを含み得る。メモリは、データを複数のページに記憶するように構成され得る。ＴＬＢは、仮想アドレスを含んでいる命令によってアクセスされたときに、仮想アドレスを物理アドレスに変換することを可能にするアドレス変換情報をサーチし、アドレス変換情報がＴＬＢ内で見付かったときは、アドレス変換情報を与えるように構成され得る。プロセッサは、現在の命令および後の命令がメモリ内の複数のページの中の同じページからのデータアクセスを求めているかどうかを判断する手段をさらに含み得る。現在の命令および後の命令がメモリ内の複数のページの中の同じページからのデータアクセスを求めているときは、プロセッサは、後の命令によるＴＬＢアクセスを防ぐ手段をさらに含み得る。プロセッサは、現在の命令のＴＬＢアクセスの結果を、後の命令に対して使用する手段をさらに含み得る。
【００１０】
本発明のさらに別の実施形態において、プロセッサ内のＴＬＢへのアクセスを制御する方法は、現在の命令および後の命令を受信することを含み得る。方法は、現在の命令および後の命令がメモリ内の複数のページの中の同じページへのアクセスを求めていると判断することを含み得る。方法は、後の命令によるＴＬＢへのアクセスを防ぐことを含み得る。方法は、現在の命令のＴＬＢアクセスの結果を、後の命令に対して使用することを含み得る。
【００１１】
本発明の別の実施形態において、プロセッサは、メモリ、ＴＬＢ、およびＴＬＢ制御装置を含み得る。メモリは、データを複数のページに記憶するように構成され得る。ＴＬＢは、仮想アドレスをもつ命令によってアクセスされたときに、仮想アドレスを物理アドレスに変換することを可能にするＴＬＢ内のアドレス変換情報をサーチし、アドレス変換情報がＴＬＢ内で見付かったときは、アドレス変換情報を与えるように構成され得る。ＴＬＢ制御装置は、現在の複合命令（compound instruction）と、その複合命令の後の部分(piece)の幾つかとが、複数のページの中の同じページへのアクセスを求めているかどうかを判断し、求めているときは、複合命令の複数の後の部分の１つ以上によるＴＬＢアクセスを防ぐように構成され得る。ＴＬＢ制御装置は、複合命令の第１の部分のＴＬＢアクセスの結果を、その命令の複数の後の部分に対して使用するように構成され得る。
【好ましい実施形態の詳細な説明】
【００１２】
添付の図面に関連して後述される詳細な説明は、本発明の種々の実施形態を説明することを意図しているが、本発明が実行され得る唯一の実施形態を表わすことは意図していない。詳細な説明は、本発明を完全に理解させるために、具体的な詳細を含んでいる。しかしながら、当業者には、本発明が、これらの具体的な詳細がなくても実行され得ることが分かるはずである。幾つかの例において、本発明の概念をより明らかに示すために、周知の構造および構成要素がブロック図の形で示されている。
【００１３】
図１は、仮想メモリシステムにおいて動作する従来のＴＬＢを概略的に示している。技術的に知られているように、仮想メモリシステムにおいて、マッピング(または、変換)は、通常、仮想(または、“線形”)アドレス空間と物理アドレス空間との間で行われ得る。仮想アドレス空間は、通常、プロセッサによって生成された全ての仮想アドレス22のセットを指す。物理アドレス空間は、通常、物理メモリ30に存在するデータに対する全ての物理アドレスのセット、すなわち、物理メモリ30内の特定の位置へ書き込むか、またはそこから読み出すためにメモリバスに与えられるアドレスを指す。
【００１４】
ページに分けられた仮想メモリシステムにおいて、データは、一般にページと呼ばれている固定長の単位31から構成されていると仮定され得る。仮想アドレス空間および物理アドレス空間は、連続するページアドレスのブロックに分割され得る。各仮想ページアドレスは仮想ページ番号を与え、各物理ページアドレスは、メモリ30内のデータの特定のページ31の位置を示し得る。典型的なページサイズは、例えば、約４キロバイトであり得るが、異なるページサイズも使用され得る。物理メモリ30内のページテーブル20は、仮想メモリシステムの仮想ページアドレスの全てに対応する物理ページアドレスを含み得る、すなわち、仮想アドレス空間内の全ての仮想ページアドレスに対する対応する物理ページアドレスと仮想ページアドレスとの間のマッピングを含み得る。通常、ページテーブル20は、複数のページテーブル エントリ(page table entry, PTE)21を含み得る。各ＰＴＥ21は、特定の仮想アドレスに対応する物理メモリ30内のページ31を示す。
【００１５】
物理メモリ30内のページテーブル20に記憶されているＰＴＥ21にアクセスするには、一般に、メモリバスのトランザクションを必要とし得る。これは、プロセッサのサイクル時間および電力消費の点でコストがかかり得る。メモリバスのトランザクションの数は、物理メモリ30ではなく、ＴＬＢ10にアクセスすることによって低減され得る。既に説明したように、ＴＬＢ10は、仮想アドレスと物理アドレスとの間の最近のマッピングを記憶するアドレス変換キャッシュである。ＴＬＢ10は、通常、ページテーブル20に記憶されている仮想対物理アドレスのマッピングのサブセットを含んでいる。ＴＬＢ10は、通常、複数のＴＬＢエントリ12を含み得る。各ＴＬＢエントリ12は、タグフィールド14とデータフィールド16とをもち得る。タグフィールド14は、仮想ページアドレスの上位ビットの幾つかをタグとして含み得る。データフィールド16は、タグを付けられた仮想ページアドレスに対応する物理ページアドレスを示し得る。
【００１６】
命令がプログラムの実行中に対応する物理アドレスに変換される必要がある仮想アドレス22をもっているとき、ＴＬＢ10に記憶されているＴＬＢエントリ12の中で仮想アドレス22を調べるために、ＴＬＢ10にアクセスし得る。仮想アドレス22は、通常、仮想ページ番号を含んでおり、仮想ページ番号をＴＬＢ10において使用して、対応する物理ページアドレスを調べることができる。
【００１７】
ＴＬＢ10が、そのＴＬＢエントリ中に、ＴＬＢに提示された仮想アドレス22に含まれている仮想ページ番号に対応する特定の物理ページアドレスを含んでいるときは、ＴＬＢ“ヒット”になり、物理ページアドレスをＴＬＢ10から検索することができる。ＴＬＢ10が、ＴＬＢに提示された仮想アドレス22内の仮想ページ番号に対応する特定の物理ページアドレスを含んでいないときは、ＴＬＢ“ミス”になり、物理メモリ30内のページテーブル20を調べなければならなくなり得る。物理ページアドレスがページテーブル20から判断されると、仮想ページアドレスに対応する物理ページアドレスが、ＴＬＢ10にロードされ、その仮想ページアドレス22を使用して、ＴＬＢ10に再度アクセスすることができる。希望の物理ページアドレスは、現在、ＴＬＢ10にロードされているので、ＴＬＢアクセスは、今度はＴＬＢ“ヒット”になり、最近ロードされた物理ページアドレスが、ＴＬＢ10の出力において生成され得る。
【００１８】
上述のページに分けられた仮想メモリシステムは、多段パイプライン（multistage pipeline）をもつパイプラインプロセッサ（pipelined processor）において使用され得る。技術的に知られているように、パイプライン方式（pipelining）は、２つ以上の動作を同時に行うことができるようにハードウェアを構成することによって、プロセッサの性能を高めることができる。このようにして、任意の所与の動作を完了するのに必要な時間量は同じままであり得るにもかかわらず、単位時間当たり行われる動作数を増加することができる。パイプラインプロセッサでは、プロセッサ内の一連の動作は、多数のセグメントまたはステージに分割され、各ステージは命令または動作の異なる部分を並行して行い得る。多数のステージは接続されて、パイプを形成しているように見える。通常、パイプラインの各ステージは、１クロックサイクルでその動作を完了すると予想され得る。一般に、中間記憶緩衝器（intermediate storage buffer）を使用して、１つのステージから次のステージへ送られる情報を保持し得る。例えば、３ステージのパイプラインプロセッサは、次に示すステージ、すなわち、命令フェッチ、デコード、および実行を含み得る。４ステージのパイプラインは、さらにライトバック ステージを含み得る。
【００１９】
パイプライン方式は、通常、一連の命令のストリーム内の命令間で並列処理を利用し得る。命令の一連のストリーム、または１つの複合命令の多数の部分の一連のストリームは、パイプラインのステージを移動するので、命令は、パイプライン内のＴＬＢアクセスポイントにおいてＴＬＢにアクセスし得る。命令によって要求されるメモリ データ アクセスを行うのに必要な仮想対物理アドレス変換を調べるために、各命令はＴＬＢに順番にアクセスし得る。一連の命令のストリーム(または、命令の多数の部分の一連のストリーム)の仮想アドレスが、ＴＬＢ内のＴＬＢエントリの中に含まれているかどうかを判断するために、一般的に行われることは、ストリーム内の各命令ごとに順番に、または命令の各部分ごとに順番に、ＴＬＢにアクセスすることであり得る。しかしながら、各ＴＬＢアクセスは電力を消耗するので、これは相当な電力の犠牲（penalty）を伴い得る。
【００２０】
アドレス変換システムの１つの実施形態において、パイプラインにおけるＴＬＢアクセスポイントの前に、多数の後の命令、または命令の多数の部分に対して、ページ境界を越えるかが判断され得る。ページ境界を越えないと判断されると、多数の後の命令(または、命令の部分)は、ＴＬＢアクセスを行わないようにされ、それによって、電力を節約し、効率を高め得る。
【００２１】
図２は、多段パイプラインをもつパイプラインプロセッサにおいて使用されるアドレス変換システム100を示す機能図である。概して、アドレス変換システム100は、ＴＬＢ120と、ＴＬＢ120へのアクセスを含むＴＬＢ120の動作を制御するＴＬＢ制御装置140とを含む。示されている実施形態において、ＴＬＢ120は、データＴＬＢ(data-TLB, DTLB)であり得る。ＴＬＢ120への後のアクセスが、メモリ内の同じページからのデータを求めていると判断されると、ＴＬＢ制御装置140は、ＴＬＢ120への後のアクセスを防ぐように構成されている。ＴＬＢ制御装置140は、プロセッサ内の中央処理ユニット(central processing unit, CPU)の一部であり得る。その代わりに、ＴＬＢ制御装置140は、プロセッサのコア内またはプロセッサのＣＰＵの近く、あるいはこの両者に位置し得る。
【００２２】
アドレス変換システム100は、物理メモリ130に接続され得る。物理メモリ130は、ページテーブル120を含み、ページテーブル120は、プロセッサによって生成され得る仮想ページアドレスに対応する物理ページアドレスを記憶している。メインメモリに記憶されているデータのサブセットへの高速アクセスを行うデータキャッシュ117も与えられ得る。１つ以上の命令レジスタが、１つ以上の命令を記憶するために与えられ得る。
【００２３】
パイプラインステージの典型的な順序200が、図２に示されている。図２に示されているステージの順序200は、フェッチステージ210、デコードステージ220、実行ステージ230、メモリアクセス ステージ240、およびライトバック ステージ250を含んでいる。図２の典型的な順序は、例示の目的で示されており、より少数または多数のパイプラインステージをもつ多くの他の代わり順序が可能である。ハードウェアは、命令メモリから１つ以上の命令をフェッチするように構成されている少なくとも１つのフェッチユニット211、フェッチユニット211によってフェッチされた１つ以上の命令をデコードするように構成されている少なくとも１つのデコードユニット221、デコードユニット221によってデコードされた１つ以上の命令を実行するように構成されている少なくとも１つの実行ユニット231、メモリ130にアクセスするように構成されている少なくとも１つのメモリアクセス ユニット241、およびメモリ130から検索されたデータをライトバックするように構成されている少なくとも１つのライトバックユニット251を含み得る。パイプラインは、ＴＬＢアクセスポイント119を含み、１つ以上の命令は、ここでＴＬＢ120にアクセスし、アドレス変換情報をサーチし得る。
【００２４】
図２は、現在の命令112と後の命令114とが、パイプラインの適切なステージにおいて受信されることを示している。現在の命令112と後の命令114とは、データアクセス命令であり得る。アドレス変換システム100は、命令112の仮想アドレスと命令114の仮想アドレスとを生成するアドレス生成器(図示されない)を含み得る。命令112および命令114は、ＴＬＢ120内の連続する位置、または同じページ内に存在する位置を求める連続する命令であり得る。その代わりに、命令112および114は、１つの複合命令の多数の部分で得る。
【００２５】
１つ以上の後の命令、または命令の後の部分が、メモリ130内の同じページからのデータアクセスを求めていると判断されると、後の命令(または、命令の部分)によるＴＬＢアクセスは、ＴＬＢ制御装置140によって妨げられ得る。既に説明したように、必要なアドレス変換情報をＴＬＢ120内で見付けることができるかどうかを判断するために、各々全ての命令に対してＴＬＢ120にＴＬＢアクセスを行うのと比較して、このアプローチは、電力を節約し、効率を高め得る。
【００２６】
示されている実施形態において、ＴＬＢ制御装置140は、現在の命令112と後の命令114とが、メモリ130内の同じページからのデータへのアクセスを求めているかどうかを判断するように構成されている。例えば、１つ以上の後の命令(例えば、図２の命令114)によって求められる後のデータアクセスに関する情報は、ＴＬＢ制御装置140によって現在の命令(例えば、図２の命令112)から得られ得る。１つの実施形態において、ＴＬＢ制御装置140は、単に、現在の命令自体を調べ、現在の命令112に続く後の命令によって求められるデータアクセスに関する情報をそこから抽出することによって、現在の命令に続く１つ以上の後の命令の後のデータアクセスが何であるかを明らかにするように構成され得る。
【００２７】
後のデータアクセスに関する情報は、現在の命令112のタイプによって与えられ得る。例えば、現在の命令112の命令のタイプは、次に示すタイプ、すなわち、“ロード”、“記憶”、または“キャッシュ操作”の中の１つであり得る。命令の幾つかのタイプは、ＣＰＵがデータキャッシュ117に行くことが必要であるか、またはメインメモリ130に行くことが必要であるかを定め得る。１つの実施形態において、現在の命令112は、データアクセスが物理メモリ130内のページの最後にまだ達していない反復動作のための命令であり得る。
【００２８】
１つの実施形態において、ＴＬＢ制御装置140は、パイプラインに沿ってＴＬＢアクセスポイント119より上にある時間点で、(命令112に続く)後の命令114の仮想アドレスを判断するように構成され得る。命令114の仮想アドレスが、命令112の仮想アドレスによって求められているページと比較して、同じページへのアクセスを求めているかどうかを判断するために、ＴＬＢ制御装置140は、命令114の仮想アドレスを命令112の仮想アドレスと比較するように構成され得る。言い換えると、命令112によってアクセスが求められているメモリ内のページが、命令114によってアクセスが求められているメモリ内のページの物理ページアドレスと比較して、同じ物理ページアドレスをもっているかどうかを判断するために、ＴＬＢ制御装置140は仮想アドレスを比較し得る。
【００２９】
ＴＬＢ制御装置140は、ＴＬＢアクセスポイント119より上にあるパイプライン内のポイントにおいて、命令112に続く複数の後の命令114の仮想アドレスを判断するように構成され得る。複数の後の命令の仮想アドレス全てが、命令112の仮想アドレスによって求められているページと比較して、同じページ（すなわち、同じ物理ページアドレスをもつメモリ内のページ）へのアクセスを求めているかどうかを判断するために、ＴＬＢ制御装置140は、複数の後の命令の仮想アドレスを、命令112の仮想アドレスと比較するようにさらに構成され得る。
【００３０】
ＴＬＢ制御装置140が、現在の命令112と１つ以上の後の命令とが、メモリ130内の同じページからのデータへのアクセスを求めていると判断すると、ＴＬＢ制御装置140は、次の幾つかのＴＬＢアクセス全てがメモリ130内の同じページにヒットすることが前もって分かっているので、ＴＬＢ制御装置140は、１つ以上の後の命令によるＴＬＢアクセスを防ぎ得る。言い換えると、ＴＬＢ制御装置140は、ＴＬＢアクセスポイント119の前に、後の命令(または、命令の後の部分)に対して、ページ境界を越えるかどうかを判断し、ページ境界を越えないときは、ＴＬＢアクセスが行われるのを防ぐ。ＴＬＢアクセスポイント119の前に、全てのこれらのＴＬＢアクセスが物理メモリ130内の同じページのみにヒットし、すなわち、同じ情報のみを与えることを見付けることによって、その度に、繰り返しの冗長情報のみを生成し得るＴＬＢアクセスを防ぐことによって、多くの電力が節約され得る。
【００３１】
ＴＬＢ制御装置140は、後の命令および現在の命令112がメモリ130内の同じページからのデータアクセスを求めていると判断すると、ＴＬＢ制御装置140は、ＴＬＢ120によって現在の命令112に以前に与えられたアドレス変換情報を、現在の命令112に続く１つ以上の後の命令に対して使用するように構成され得る。
【００３２】
１つの実施形態において、ＴＬＢ制御装置140は、命令のタイプと、命令のその特定のタイプがどのように働くかを認識することによって、命令112の仮想アドレスと、命令112に続く複数の後の命令の各々の仮想アドレスとの間の関係を判断するように構成され得る。一例として、ＴＬＢ制御装置140は、現在の命令の命令のタイプに基づいて、複数の後の命令の各々が順次にコード化され、例えば、所定数（例えば、４個）の追加のバイトによって特徴付けられるアドレスを求めるであろうと判断することができ得る。
【００３３】
開示された実施形態のこれまでの説明は、当業者が本発明を作成または使用できるようにするために与えられている。これらの実施形態に対する種々の変更は、当業者に容易に明らかになり、本明細書に定義されている一般的な原理は、本発明の意図または範囲から逸脱することなく、他の実施形態に適用され得る。したがって、本発明は、本明細書に示されている実施形態に制限されることを意図されず、請求項に一致する全範囲にしたがい、要素を単数形で記載していることは、“１つおよび１つのみ”と具体的に記載されていないならば、“１つおよび１つのみ”を意味するのではなく、むしろ“１つ以上”を意味することを意図している。当業者に知られている、または知られることになる本開示の全体を通して説明されている種々の実施形態の要素に対して構造上および機能上に同等のもの全ては、参照によって本明細書に明示的に取り入れられ、請求項に含まれることを意図されている。さらに加えて、本明細書に開示されていることは、そのような開示が請求項に明示的に記載されているかどうかに関わらず、公に供されることを意図されていない。請求項の要素は、その要素が“〜のための手段（means for）”という語句を使用して、または方法の請求項の場合は、“〜のためのステップ（step for）”という語句を使用して明示的に記載されていないならば、米国特許法第１１２条第６項の条項のもとで解釈されない。
【図面の簡単な説明】
【００３４】
【図１】仮想アドレスのアドレス変換情報を与える、技術的に知られている変換ルックアサイド緩衝器(ＴＬＢ)の概略図。
【図２】メモリ内の同じページへの多数のＴＬＢアクセスを防ぐように構成されているＴＬＢ制御装置をもつ多段パイプラインプロセッサの図。
【符号の説明】
【００３５】
100・・・アドレス変換システム。
【図１】
2008545199.tif 000003
【図２】
2008545199.tif 000004
【国際調査報告】
2008545199.tif 000005
2008545199.tif 000006