(57)【要約】  メモリへのアクセスを管理するためのシステム及び方法を提供する。メモリ管理ユニット（ＭＭＵ）及び変換索引バッファ（ＴＬＢ）を用いる。ＴＬＢは、最近アクセスしたページのアドレスを格納する。ＭＭＵは、論理アドレスにリンクされたメモリ・ページの物理アドレスを格納するＭＭＵテーブルの仮想マップを含む。仮想マップは線形アドレス空間に格納され、ＭＭＵは、ＴＬＢに格納されるアドレスを、ＭＭＵテーブルで行われたメモリ・アクセスに応答して、更新することができる。ＭＭＵテーブルは、少なくとの第１及び第２レベルのテーブル・エントリを含む。第１レベルのテーブル・エントリは、論理アドレスを第２レベルのテーブル・エントリにマッピングするためのデータを格納する。第２レベルのテーブル・エントリは、論理アドレスをメモリの物理アドレスにマッピングするためのデータを格納する。
2008507019.tif 000002
【特許請求の範囲】
【請求項１】
メモリ管理ユニット（ＭＭＵ）及び最近アクセスしたページがキャッシュされる変換索引バッファ（ＴＬＢ）を含むメモリへのアクセスを管理するためのシステムであって、前記ＭＭＵは、論理アドレスにリンクされたメモリ・ページの物理アドレスを格納するＭＭＵテーブルの仮想マップを含み、前記仮想マップは線形アドレス空間に格納され、前記ＭＭＵは、ＭＭＵテーブルで行われたメモリ・アクセスに応答して、前記ＴＬＢに格納されたアドレスを更新することができるようにしたことを特徴とするシステム。
【請求項２】
前記ＭＭＵテーブルは、前記線形アドレス空間に固定位置を有する少なくとも第１及び第２レベルのテーブル・エントリを含むようにしたことを特徴とする請求項１に記載のシステム。
【請求項３】
前記第１レベルのテーブル・エントリは、それらを前記第２レベルのテーブル・エントリの物理アドレスにマッピングするデータを含む請求項２に記載のシステム。
【請求項４】
前記第２レベルのエントリは、データ格納のための物理アドレスにマッピングを提供する請求項３に記載のシステム。
【請求項５】
マッピング・デバイスをよって、前記第２レベルのテーブル・エントリに第１レベルのエントリをマッピングすることが実行され、かつ、同じマッピング・デバイスによって、データ格納のための物理アドレスに前記第２レベルのテーブル・エントリをマッピングすることが実行される請求項４に記載のシステム。
【請求項６】
前記第１及び第２レベルのテーブル・エントリは、論理アドレス空間として編成されるＭＭＵテーブル領域に格納される請求項２又は請求項３のいずれかに記載のシステム。
【請求項７】
前記ＭＭＵテーブル領域のルート・アドレスは、プログラム可能なレジスタに格納される請求項６に記載のシステム。
【請求項８】
前記第１レベルのテーブル・エントリは、メモリの連続部分に格納される請求項２から請求項７のいずれかに記載のシステム。
【請求項９】
マイクロプロセッサ・システムに含まれる請求項１から請求項８のいずれかに記載のシステム。
【請求項１０】
ＭＭＵを含むメモリへのアクセスを管理するためのシステムであって、前記ＭＭＵは、論理アドレスをメモリの物理アドレスにマッピングするためのＭＭＵテーブルの仮想マップを含み、前記ＭＭＵテーブルは、線形アドレス空間に格納され、少なくとも論理アドレスを第２レベルのテーブル・エントリにマッピングするためにデータを格納する第１レベルのテーブル・エントリと、論理アドレスをメモリの物理アドレスにマッピングするためにデータを格納する前記第２レベルのテーブル・エントリとを含み、ａ）前記ＭＭＵテーブルから１つの第１レベルのテーブル・エントリを検索し、ｂ）該第１レベルのテーブル・エントリを用いて１つの第２レベルのテーブル・エントリを検索し、かつ、ｃ）該第２レベルのテーブル・エントリを用いて物理メモリ位置をアクセスするというメモリ・アクセス要求に応答して動作可能とするシステム。
【請求項１１】
前記メモリは、複数の実行スレッドにアクセス可能であり、実行中のスレッドの全てからアクセス可能なグローバル区域と、それぞれの実行中のスレッドに各々からアクセス可能な複数のローカル区域とに細分化される請求項１から請求項１０のいずれかに記載のシステム。
【請求項１２】
ローカル区域の各々の前記アドレスは、それぞれの前記スレッドに固有のデータからアクセスされる請求項１１に記載のシステム。
【請求項１３】
グローバル区域の前記アドレスは、前記スレッドの全てに利用できるデータからアクセスされる請求項１１又は請求項１２のいずれかに記載のシステム。
【請求項１４】
線形アドレス空間に格納される、論理アドレスにリンクされたメモリ・ページの物理アドレスを含むメモリ管理ユニット（ＭＭＵテーブル）の仮想マップを格納するステップと、前記ＭＭＵテーブルに対して行われたメモリ・アクセスに応答して最近アクセスしたページについて、変換索引バッファ（ＴＬＢ）に格納されるアドレスを更新するステップとを含む、メモリへのアクセスを管理するための方法。
【請求項１５】
前記ＭＭＵテーブルは、前記線形アドレス空間に固定位置を有する少なくとも第１及び第２レベルのテーブル・エントリを含む請求項１４に記載の方法。
【請求項１６】
前記第１レベルのテーブル・エントリは、前記第２レベルのテーブル・エントリの物理アドレスにマッピングするデータを含む請求項１５に記載の方法。
【請求項１７】
前記第２レベルのテーブル・エントリは、データ格納のための物理アドレスにマッピングを提供する請求項１６に記載の方法。
【請求項１８】
マッピング・デバイスによって、前記第２レベルのテーブル・エントリに前記第１レベルのエントリをマッピングするステップと、同じマッピング・デバイスによって、データ格納のための物理アドレスに前記第２レベルのエントリをマッピングするステップを含む請求項１７に記載の方法。
【請求項１９】
論理アドレス空間として編成されてきたＭＭＵテーブル領域に前記第１及び第２レベルのテーブル・エントリを格納するステップを含む請求項１５又は請求項１６のいずれかに記載の方法。
【請求項２０】
プログラム可能なレジスタに前記ＭＭＵテーブルのルート・アドレスを格納するステップを含む請求項１９に記載の方法。
【請求項２１】
メモリの連続部分に前記第１レベルのテーブル・エントリを格納するステップを含む請求項１４から請求項１９のいずれかに記載の方法。
【請求項２２】
マイクロプロセッサ・システムで実行可能な請求項１４から請求項２１のいずれかに記載の方法。
【請求項２３】
前記メモリは、複数の実行スレッドにアクセス可能であり、実行中のスレッドの全てからアクセス可能なグローバル区域にアクセスを提供するとともに、それぞれの実行中のスレッドにのみ各々からアクセス可能な複数のローカル区域にアクセスを提供する請求項１４から請求項２２のいずれかに記載の方法。
【請求項２４】
そのローカル区域のそれぞれのスレッドに固有のデータを用いて、ローカル区域の各々のアドレスにアクセスを提供するステップを含む請求項２３に記載の方法。
【請求項２５】
スレッドの全てに利用できるデータを用いて、グローバル区域にアクセスを提供するステップが実行される請求項２３又は請求項２４のいずれかに記載の方法。
【請求項２６】
メモリの物理アドレスに論理アドレスをマッピングするためのＭＭＵテーブルの仮想マップを格納するステップを含むＭＭＵからなるメモリへのアクセスを管理するための方法であって、前記ＭＭＵテーブルは、線形アドレス空間に格納され、少なくとも第１及び第２レベルのテーブル・エントリを含み、前記第２レベルのテーブル・エントリに論理アドレスをマッピングするために、前記第１レベルのテーブル・エントリにデータを格納するステップと、メモリの物理アドレスに論理アドレスをマッピングするために、前記第２レベルのテーブル・エントリにデータを格納するステップと、メモリ・アクセスに応答して前記ＭＭＵテーブルから１つの第１レベルのテーブル・エントリを検索するステップと、物理メモリ位置にアクセスするために、前記第１レベルのテーブル・エントリを用いて、１つの第２レベルのテーブル・エントリを検索するステップとを含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサ内で高頻度に用いられる型のメモリ管理システムに関する。
【背景技術】
【０００２】
メモリ管理システムは、メモリ管理ユニット（ＭＭＵ）を含む。これは、一般的には、メモリ・トランザクションを処理するマイクロプロセッサに内蔵されるハードウェア装置である。それは、仮想アドレスの物理アドレスへの変換、メモリ保護、及びキャッシュの制御などの機能を実行するように構成される。
【０００３】
ＭＭＵのほとんどは、メモリを、例えば各々が４キロバイトの定型サイズのページの一群とみなす。ＭＭＵテーブルは、仮想メモリ・アドレスの物理ページへのマッピングを定義する物理メモリに内包される。このテーブルはまた、メモリ保護及びキャッシュ制御のために用いられるフラグも含む。大きな仮想アドレス空間を伴うために、このテーブルは通常はごくわずかしか存在しない。こうした理由から、一般的には、それは、ある種の階層メモリ構造か又は一群のリンク・リストに内包される。物理メモリのテーブルにアクセスすることは本質的に時間がかかるため、ＭＭＵは、一般的には、最近アドレス指定に成功したページのキャッシュを内包する。このキャッシュは、変換索引バッファ（translation lookaside buffer:ＴＬＢ）として知られている。
【０００４】
ＴＬＢの構造及び動作を示すブロック図が、図１に示される。ＴＬＢへの入力は、仮想ページ番号とオフセットとの２つの部分に分割することができる仮想アドレスである。仮想アドレスの先頭ビットは、連想メモリ４（ＣＡＭ）への入力を形成する仮想ページ番号２を表わす。この連想メモリは、仮想ページ６の番号を取得し、それを仮想ページ番号のリストと一致させるようにする。一致が見つかった場合、次に、対応する物理ページ番号は、メモリにアクセスするために用いることができる物理アドレス８を生成する出力を形成する。アドレスの末端ビット（オフセット８）は変換によって変更されることはなく、それらは、したがって、１０で、物理アドレスの末端ビットを形成する。ＣＡＭで一致が見つからなかった場合、変換を実行するために、適切なテーブル・ウォーク・アルゴリズムを介して物理メモリのページ・テーブルにアクセスしなければならない。フェッチされたページ・テーブル・エントリは、次に、将来の使用のためにＴＬＢにキャッシュされることになる。
【０００５】
ＭＭＵテーブルの更新は、一般的には、物理メモリへのダイレクト・アクセスにより行われる。このことは、プログラマに多くの課題を提起する。第１に、ソフトウェアは、物理メモリのテーブルに対して行われたいかなる変更も、ＴＬＢに保持されたキャッシュされたバージョンにも反映されるということを確実にする必要がある。これは、典型的には、ＴＬＢからそのエントリをフラッシュすることを伴うことになる。しかしながら、一貫性を維持する問題は、例えば、別のスレッドが更新を試みている間に、１つのスレッドがページ・テーブル・エントリを用いていることができるようにする場合、リアル・タイムのマルチ・スレッド・システムにおいては、とりわけ困難である。
【発明の開示】
【０００６】
本発明の好ましい実施形態は、ＭＭＵテーブルの仮想マップが実装されるメモリ管理ユニットを提供する。テーブルの線形アドレス空間の固定領域への読取及び書込を用いて、ＭＭＵテーブルへの更新を形成する。これらのトランザクションがＭＭＵによって処理され、その結果、物理メモリのテーブルへの更新を実行すると同時に、そのＴＬＢを最新に保たれるようにすることができる。さらに、ＭＭＵは、テーブル・エントリについての物理テーブル・アドレスのマッピングを自動的に実行する。これを実行するソフトウェアを全く必要としない。
【０００７】
本発明の第１の態様によると、メモリ管理ユニット（ＭＭＵ）及び最近アクセスしたページがキャッシュされる変換索引バッファ（ＴＬＢ）を含むメモリへのアクセスを管理するためのシステムであって、ＭＭＵは、論理アドレスにリンクされたメモリ・ページの物理アドレスを格納するＭＭＵテーブルの仮想マップを含み、該仮想マップは線形アドレス空間に格納され、前記ＭＭＵは、ＭＭＵテーブルで行われたメモリ・アクセスに応答して前記ＴＬＢに格納されたアドレスを更新することができるようにしたシステムが、提供される。
【０００８】
本発明の第２の態様によると、ＭＭＵを含むメモリへのアクセスを管理するためのシステムであって、ＭＭＵは、論理アドレスをメモリの物理アドレスにマッピングするためのＭＭＵテーブルの仮想マップを含み、前記ＭＭＵテーブルは、線形アドレス空間に格納され、少なくとも論理アドレスを第２レベルのテーブル・エントリにマッピングするためにデータを格納する第１レベルのテーブル・エントリと、論理アドレスをメモリの物理アドレスにマッピングするためにデータを格納する前記第２レベルのテーブル・エントリとを含み、ａ）前記ＭＭＵテーブルから１つの第１レベルのテーブル・エントリを検索し、ｂ）該第１レベルのテーブル・エントリを用いて１つの第２レベルのテーブル・エントリを検索し、かつ、ｃ）該第２レベルのテーブル・エントリを用いて物理メモリ位置をアクセスするというメモリ・アクセス要求に応答して動作可能とするシステムが、提供される。
【発明を実施するための最良の形態】
【０００９】
本発明の好ましい実施形態が、添付図面を参照しながら例示を通して、ここで詳細に説明されるであろう。
【００１０】
実施形態と従来技術との間の主な相違は、物理アドレス空間１６が、ＭＭＵテーブル領域１２を介して編成されることである。これとＭＭＵマップ領域１４とは、物理アドレス空間１６に配置されるが、仮想線形アドレス空間１０として編成される。ＭＭＵテーブル領域は、物理メモリの編成を判定する第１及び第２レベルのテーブル・エントリを含む。第１及び第２レベルのテーブル・エントリは、線形アドレス空間内に固定位置を有する。第１レベルのエントリは、第２レベルのエントリについての物理アドレスへのマッピングを提供する。第２レベルのエントリは、ＭＭＵマップ領域１４のアドレスについての物理アドレスへのマッピングを提供する。
【００１１】
物理メモリにおけるＭＭＵテーブル領域のルートの位置は、ＭＭＵが用いられる前に必ずプログラムされるレジスタに格納される。このレジスタの値は、ＭＭＵ＿ＴＡＢＬＥ＿ＰＨＹＳ＿ＡＤＤＲと定義される。このルート・アドレスが判定されると、ＭＭＵテーブルが設定され、次に、制御されているメモリの物理アドレスにアクセスするのに用いられるＭＭＵマップ領域のアドレスを定義することができる。
【００１２】
ＭＭＵテーブルの更新の全ては、線形アドレス空間のＭＭＵテーブル領域を介して行われる。これは、ＭＭＵにキャッシュ中のＭＭＵテーブルのデータが、通常のシステム動作中に維持されるようにする。この詳細例においては、ＭＭＵテーブルは、第１及び第２レベルのＭＭＵページ・テーブル・エントリを有する階層形態で、実装される。ページは４Ｋバイトであり、３２ビットのアドレスを用いる。しかしながら、テーブルは、より多くのレベル階層を持つことができ、或いは、単一層になる可能性があり、かつ、ページのサイズ及びアドレスの長さは、効力を変えることなく変更することができる。
【００１３】
物理アドレス空間において、レジスタに格納されたＭＭＵテーブルのルート・アドレスで、第１レベルのテーブルを見出すことができる。この第１レベルのテーブル・エントリは、種々な第２レベルのテーブル・エントリにアクセスすることができ、さらにまた、メモリの至る所に不規則に散在させることができるＭＭＵマップ・ページにアクセスすることができる。
【００１４】
４Ｋバイトの物理メモリを割当てるためには、ユーザは、まずＭＭＵテーブルを初期化しなくてはならない。これは、ＭＭＵ＿ＴＡＢＬＥ＿ＰＨＹＳ＿ＡＤＤＲレジスタに物理ベース・テーブル・アドレスを入力することによって、行われる。次に、ＭＭＵテーブルのこの第１レベルのテーブル・エントリは、割当てられる４Ｋバイトのページの物理ベース・アドレスで満たされる。これは、各々が４Ｋバイトのページにマッピングされる１０２４の第２レベルのテーブル・エントリを、アクティブ化する。したがって、第１テーブル・エントリ・アドレスの各々は、マッピングされるべき４Ｍバイト以下のメモリと関連付けられる。
【００１５】
ＭＭＵテーブル自体の有効領域に対応する第１レベル・テーブルのＭＭＵテーブル・エントリのみが、物理ＲＡＭの単一の連続領域を介して支援される必要がある。これには、数Ｋバイトの物理ＲＡＭのみが、ＭＭＵのルート・テーブルを支援するように事前割り当てされることが必要である。システムのテーブルをマッピングする完全な線形アドレスを構築することが求められるときに、付加的な４Ｋページが第２レベルのエントリの格納のために付加される。
【００１６】
本発明を具体化するシステムのブロック図が、図３に示される。これは、プロセッサからメモリ・アクセス要求を受信する領域インタプリタ２０を含む。これらの要求は、物理アドレスをメモリ・インタフェース２６に送信する前に、変換索引バッファ２４にアクセスするＴＬＢコントローラ２２に与えられる。ＴＬＢに対応するアドレスがない場合、ＴＬＢコントローラ２２及びメモリ・インタフェース２６を経由させて、アドレスが生成される。エントリは、分離経路でプロセッサに返還され、また、ＴＬＢ２４を更新するために同一経路を経由させてＴＬＢコントローラ２２にも与えられる。
【００１７】
領域インタプリタ２０は、プロセッサが行っているトランザクションの型を判定する。これは、通常のメモリの読取又は書込になるか、ＭＭＵテーブルの第１又は第２レベルの読取又は書込になるか、或いは「予約」トランザクションになることができる。さらにまた、この情報は、後述される図４及び図５に示された機能をＴＬＢ２４の援助によって実行するＴＬＢコントローラに与えられる。
【００１８】
図４は、通常のメモリ・トランザクションのためのＴＬＢコントローラの機能性を示す。それは、ＴＬＢがキャッシュされたページへのダイレクト・アクセスを提供することができる時に何が起こるのかを示し、また、キャッシュされたページがない場合には、新たなＴＬＢエントリをフェッチするようにＭＭＵテーブルを通り抜けるために取られるステップを示す。
【００１９】
通常のメモリ動作においては、メモリ・アクセスが必要とされる時に、３０で、第２レベルのＭＭＵテーブル・エントリがＴＬＢにあるかどうかについて、判定がなされる。それがある場合、次に３２で、第２レベルのテーブル・エントリが、ＴＬＢからフェッチされ、用いられ、３４で物理アドレスを用いてメモリ読取及び書込を実行する前に、論理線形を（仮想アドレスをこの物理アドレスへ）変換する。第２レベルのテーブル・エントリがない場合、次に３６で、対応する第１レベルのテーブル・エントリがあるかどうかについて、判定がなされる。本システムにおいて、第１及び第２レベルのテーブル・エントリの論理アドレス間に簡単なマッピングがあるため、対応する第１レベルのエントリがあるかどうかを判定することは、比較的簡単である。ＴＬＢに対応する第１レベルのテーブル・エントリがない場合、次に３８で、これは、４０でそれが有効であるかどうかについて判定がなされる前に、物理メモリのＭＭＵテーブルからフェッチされる。それが有効でない場合、４２で、プロセッサにエラー報告が送信される。それが有効である場合、４４で、ＴＬＢ内に配置され、次に４６で、それが用いられ、第２レベルのアドレスを判定する。次に４８で、第２レベルのテーブル・アドレスは、５０でそれが有効であるかどうかについて判定がなされる前に、フェッチされる。それが有効である場合、次に５２で、第２レベルのテーブル・エントリがＴＬＢに配置され、それが用いられて、論理線形アドレスを物理アドレスに変換する。３６で、対応する第１レベルのテーブル・エントリがＴＬＢにある場合、次に、プロセスは、第１レベルのテーブル・エントリが用いられるステップ４６にすぐに進み、第２レベルのアドレスを判定する。
【００２０】
図５は、どのようにＭＭＵテーブル動作が実行されるかを示す。必要に応じ、データを、ＴＬＢテーブル及び外部メモリから簡単にフェッチすることができるか又はＴＬＢテーブル及び外部メモリに書込むことができるかという点で、第１レベルのテーブル操作は、簡易になり得る。第２レベルのエントリの物理メモリがどこに格納されるかを判定するために、対応する第１レベルのエントリを必要とする点で、第２レベルの操作は、もう少し複雑である。
【００２１】
６０で、第１レベルのテーブル・アクセスがなされるべきかどうかについて、判定がなされる。なされる場合、次に６２で、読取又は書込であるかどうかについて、判定がなされる。読取である場合、次に６４で、第１レベルのテーブル・エントリがＴＬＢにあるかどうかについて、判定がなされる。ある場合、次に６６で、それはＴＬＢからフェッチされ、プロセッサに戻される。ない場合、次に６８で、それは物理メモリからフェッチされ、プロセッサに戻される。動作が書込である場合、次に７０で、第１レベルのテーブル・エントリがＴＬＢにあるかどうかについて、判定がなされる。ある場合、次に７２で、新たな第１レベルのテーブル・エントリが、ＴＬＢと物理メモリの両方に書込まれる。ない場合、次に７４で、新たな第１レベルのテーブル・エントリが物理メモリだけに書込まれる。
【００２２】
要求されているものが第１レベルのテーブル・アクセスではないという６０での判定がある場合、次に７６で、対応する第１レベルのテーブル・エントリがＴＬＢにあるかどうかついて、判定がなされる。ない場合は、次に７８で、これは物理メモリからフェッチされる。ある場合、次に７８で、読取又は書込であるかどうかについて、判定がなされる。読取りである場合、次に８０で、第２レベルのエントリがＴＬＢにあるかどうかについて、判定がなされる。ある場合、次に８２で、それはＴＬＢからフェッチされ、プロセッサに戻される。ない場合、次に８４で、それはメモリからフェッチされ、プロセッサに戻される。
【００２３】
動作が書込である場合、次に８６で、同じ判定、すなわち、第２レベルのテーブル・エントリがＴＬＢにあるかどうかについて、判定がなされる。ある場合、次に８８で、第２レベルのテーブル・エントリが、物理メモリとＴＬＢの両方に書込まれる。ない場合、次に９０で、第２レベルのテーブル・エントリが物理メモリだけに書込まれる。上記の説明は、ＭＭＵページ・テーブル及び物理メモリについての２次元階層のデータ構造の使用を前提とする。しかしながら、テーブルにアクセスするために、ハードウェアへの適切な変更によっては、いずれの代替的なデータ構造も用いることができる。例えば、階層レベルの数は、より大きなアドレス空間のマッピングを許容する任意の数に増加することができ、或いは、簡単なシステムのために、階層は、ただ１層のレベルに減らすこともできる。
【００２４】
本発明はまた、マルチ処理スレッドが同じプロセッサを用いるマルチ・スレッド・システムにおいて具体化されてもよく、かつ、そのシステムに特に適している。こうした状況において、ＭＭＵに入力する付加的な信号は、その時点で用いられているスレッドを示す。この付加的なデータ信号は、どのように論理アドレスが物理アドレスに変換されるかを判定する際に、付加的なパラメータとして用いることができる。異なるマッピングがスレッドの各々に適用され得る。便宜上、スレッドの各々に適用されるマッピングは、メモリにアクセスするための共有グローバル・メモリの専用部分にアクセスするローカル・メモリ・アクセスと定義され、また、スレッド数に関係なく同一マッピングを実行する共有グローバル区域にアクセスするローカル・メモリ・アクセスとも定義される。
【００２５】
こうした配置は図６に示される。線形アドレス空間（仮想アドレス）が１００で示される。これは、ＭＭＵテーブル領域１０２及びＭＭＵマップ領域１０４を含む。ＭＭＵマップ領域（データ格納領域）は、ローカル・メモリ１０６とグローバル・メモリ・アドレス１０８の２つの部分に分割される。図に示すように、ローカル・メモリ・アドレスは、４つのスレッドＴ０からＴ３で用いるＴ０、Ｔ１、Ｔ２及びＴ３と標識される。ローカルのＭＭＵマップ領域のアドレスは、スレッドに固有のデータを用いるＭＭＵによってマッピングされる。この領域においてフェッチされキャッシュされるデータは、他のスレッドには利用することができない。グローバルのＭＭＵマップ領域におけるアドレスは、スレッドの全てにグローバルなデータを用いるＭＭＵによってマッピングされる。この領域における位置を、キャッシュの共有部分においてキャッシュすることができ、かつ、スレッドの全てが用いることができる。
【００２６】
ＭＭＵテーブル領域は、共有グローバル・エントリと特定スレッドのためのローカル・エントリとを有する第１及び第２レベルのテーブル・エントリと共に上記されたものと同様の方法で、構築されるのが好ましい。代替的には、幾つかのシステムにおいて、１つのスレッドが別のスレッドのテーブルへのアクセスを設定することができるならば、好都合である。これは、図７に示すように、スレッドのローカルＭＭＵテーブルの各々が次々に構築されるようにすることを可能にする。これは、１１２におけるスレッドの第２レベルのテーブル・エントリと、１１４におけるグローバルの第２レベルのテーブル・エントリとに連続的につながる、１１０における第１レベルのスレッド・エントリを示しており、本発明における実施形態と従来技術のシステムとの間の１つの相違は、ＭＭＵテーブル領域として知られるメモリ領域が蓄えられる統一された論理アドレス空間の提供にある。この領域は、具体的にはＭＭＵテーブル・エントリを更新するために用いられる。ＭＭＵテーブル・エントリが通常の論理メモリ要求と同じパイプラインを通過するので、ＭＭＵ、ＴＬＢコントローラ及び関連付けられた論理メモリ・システムは、ＭＭＵテーブル・エントリへの完全アクセスを有する。このため、ＴＬＢコントローラ及び他のいかなるハードウェアも、これらのトランザクションに一貫性をもって応答することができる。
【００２７】
通常のメモリ・アクセス要求のために用いられるのと同じパイプラインがテーブル操作のために用いられるということ、及びＴＬＢコントローラがこれらを直接扱うということが、理解されるであろう。このため、ＴＬＢコントローラが通常のメモリ・アクセス要求の流れを保留することなく、必要に応じ、自動的にＭＭＵテーブルを更新することは、比較的容易である。従来技術のシステムにおいては、通常のメモリ・アクセス要求の流れを一時的に保留することなく、これを実現することはできない。これは、更新される際に他のスレッドの全てを保留するか又は複雑なスレッドの相互通信とＭＭＵテーブルとを提供する必要がある従来技術におけるマルチ・スレッド・システムにおいて、より一層の顕著な効果を有する。これは、かならずしも本発明において記載された実施形態による必要はない。
【図面の簡単な説明】
【００２８】
【図１】上述された変換索引バッファ（ＴＬＢ）のブロック図である。
【図２】ＭＭＵメモリ・マップを概略的に示す。
【図３】ＭＭＵのブロック図を示す。
【図４】通常のメモリ・トランザクションのためのＴＬＢコントローラの機能性の概略図を示す。
【図５】ＭＭＵテーブルの動作のためのＴＬＢコントローラの機能性の概略図を示す。
【図６】マルチ・スレッド化のＭＭＵプロセッサのためのメモリ・マップを示す。
【図７】本発明を具体化する、マルチ・スレッド化のＭＭＵテーブル領域配置の例を示す。
【図８】ＭＭＵテーブルの従来の更新方法のブロック図を示す。
【図９】ＭＭＵテーブルの新規な更新方法のブロック図を示す。
【図１】
2008507019.tif 000003
【図２】
2008507019.tif 000004
【図３】
2008507019.tif 000005
【図４】
2008507019.tif 000006
【図５】
2008507019.tif 000007
【図６】
2008507019.tif 000008
【図７】
2008507019.tif 000009
【図８】
2008507019.tif 000010
【図９】
2008507019.tif 000011
【国際調査報告】
2008507019.tif 000012
2008507019.tif 000013