(57)【要約】      （修正有）【課題】仮想アドレスを受け取り物理アドレスへ変換するアドレス変換技術を提供する。【解決手段】メモリ管理ユニットは、仮想アドレスを受け取り、対応する物理アドレスを提供する。メモリ管理ユニットは、仮想アドレスから物理アドレスへ生成された変換を格納する。仮想アドレスから物理アドレスへの変換が特定の仮想アドレスに対して利用可能な場合、メモリ管理ユニットは、対応する物理アドレスを取り出す。変換が利用可能でない場合、メモリ管理ユニットは、仮想アドレスから対応する物理アドレスを生成する。メモリ管理ユニットは、プロセス識別子を使用して、仮想アドレスを修正仮想アドレスに変換し、次に、その修正仮想アドレスを使用して、ページ・テーブル・ウォークを行ない、物理アドレスを生成する。【選択図】図３
2010134956.tif 000002
【特許請求の範囲】
【請求項１】
仮想アドレスを受け取り、かつ対応する物理アドレスを提供するために形成されたメモリ管理ユニットにおいて、前記メモリ管理ユニットは、
仮想アドレスから物理アドレスへの１またはそれ以上の変換を含むストレージであって、予め定められた値に等しい１またはそれ以上のビットを有する仮想アドレス部を具備し、プロセス識別子への更新で前記ストレージに格納された仮想アドレスから物理アドレスへの変換のみが無効にされる、ストレージと、
前記仮想アドレスから修正仮想アドレスを生成する変換ロジックと、
前記修正仮想アドレスを前記対応する物理アドレスに変換するために形成されたページ・テーブル・ウォーク・ユニットと、
を含むことを特徴とするメモリ管理ユニット。
【請求項２】
前記変換ロジックは、前記仮想アドレスの１またはそれ以上のビットが予め定める値を含む場合、前記仮想アドレスの前記１またはそれ以上のビットをプロセス識別子に置き換えるために形成されることを特徴とする請求項１記載のメモリ管理ユニット。
【請求項３】
前記予め定める値は、０であることを特徴とする請求項２記載のメモリ管理ユニット。
【請求項４】
前記メモリ管理ユニットは、算術論理演算ユニットから前記仮想アドレスを受け取るために形成されることを特徴とする請求項１記載のメモリ管理ユニット。
【請求項５】
前記メモリ管理ユニットは、インクリメンタから前記仮想アドレスを受け取るために形成されることを特徴とする請求項１記載のメモリ管理ユニット。
【請求項６】
前記仮想アドレスは、データ・アドレスを含むことを特徴とする請求項１記載のメモリ管理ユニット。
【請求項７】
前記仮想アドレスは、命令アドレスを含むことを特徴とする請求項１記載のメモリ管理ユニット。
【請求項８】
仮想アドレスから物理アドレスへの前記１またはそれ以上の変換は、プロセス識別子への更新で無効にされることを特徴とする請求項１記載のメモリ管理ユニット。
【請求項９】
前記ストレージは、仮想アドレスから物理アドレスへの１またはそれ以上の直近に生成された変換を格納するために形成されることを特徴とする請求項１記載のメモリ管理ユニット。
【請求項１０】
アンテナと、
メモリと、
前記アンテナおよび前記メモリに結合されたプロセッサと、を含むシステムにおいて、前記プロセッサは、
アドレス生成ユニット、および、
前記アドレス生成ユニットから仮想アドレスを受け取り、かつ対応する物理アドレスを提供するために形成されたメモリ管理ユニット、を含み、
前記メモリ管理ユニットは、
仮想アドレスから物理アドレスへの１またはそれ以上の変換を含むストレージであって、予め定められた値に等しい１またはそれ以上のビットを有する仮想アドレス部を具備し、プロセス識別子への更新で前記ストレージに格納された仮想アドレスから物理アドレスへの変換のみが無効にされる、ストレージと、
前記仮想アドレスから修正仮想アドレスを生成する変換ロジック、および、
前記修正仮想アドレスを前記対応する物理アドレスに変換するために形成されたページ・テーブル・ウォーク・ユニット、
を含むことを特著とするシステム。
【請求項１１】
前記変換ロジックは、前記仮想アドレスの１またはそれ以上のビットが予め定める値を含む場合、前記仮想アドレスの前記１またはそれ以上のビットをプロセス識別子に置き換えるために形成されることを特徴とする請求項１０記載のシステム。
【請求項１２】
前記アドレス生成ユニットは、算術論理演算ユニットを含むことを特徴とする請求項１０記載のシステム。
【請求項１３】
前記アドレス生成ユニットは、インクリメンタを含むことを特徴とする請求項１０記載のシステム。
【請求項１４】
仮想アドレスから物理アドレスへの前記１またはそれ以上の変換は、プロセス識別子への更新で無効にされることを特徴とする請求項１０記載のシステム。
【請求項１５】
仮想アドレスを受け取る段階と、
前記仮想アドレスがストレージに物理アドレスに対する変換を有しているかどうか判断する段階と、
そうでない場合、前記仮想アドレスから修正仮想アドレスを生成する段階と、
前記修正仮想アドレスを物理アドレスに変換する段階であって、前記修正仮想アドレスを変換する段階は、ページ・テーブル・ウォークを実行する段階を含み、予め定められた値に等しい１またはそれ以上のビットを有する仮想アドレス部を具備し、プロセス識別子への更新で前記ストレージに格納された仮想アドレスから物理アドレスへの変換のみが無効にされる、段階と、
を含むことを特徴とする方法。
【請求項１６】
前記修正仮想アドレスを生成する段階は、前記仮想アドレスの１またはそれ以上のビットが予め定める値に等しい場合、前記仮想アドレスの前記１またはそれ以上のビットをプロセス識別子に置き換える段階を含むことを特徴とする請求項１５記載の方法。
【請求項１７】
予め定める値と等しい１またはそれ以上のビットからなる仮想アドレス部分を有する前記ストレージ中の変換だけを無効にする段階をさらに含むことを特徴とする請求項１５記載の方法。
【請求項１８】
生成されたあらゆる変換を前記ストレージに置く段階をさらに含むことを特徴とする請求項１５記載の方法。
【請求項１９】
前記仮想アドレスは、データ・アドレスであることを特徴とする請求項１５記載の方法。
【請求項２０】
前記仮想アドレスは、命令アドレスであることを特徴とする請求項１５記載の方法。  
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、状況切換え環境中におけるアドレス変換技術に関する。
【背景技術】
【０００２】
関連技術の説明
計算機システムにおけるプロセッサは、仮想アドレスを物理アドレスにマップ（写像）するためにメモリ・マッピングを使用する。例えば、プロセッサの実行ユニットによって生成されるアドレス空間は、仮想アドレス空間と呼ばれる。システムで利用可能なハードウェアのメモリ位置に対応するアドレスは、物理アドレスと呼ばれる。
【０００３】
プロセッサは、プロセスまたは状況（コンテキスト）切換えのための付加的なレベルのアドレス再マッピングを実行する。状況に関連したプロセス識別子がアドレスを再マッピングするために使用されてもよい。プロセス識別子および再マッピングの使用は、プロセス・スイッチ上のキャッシュをクリアしまたは無効にする必要性を緩和する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−４００２９号公報
【特許文献２】特開平１１−２４９９２号公報
【０００５】
本発明はよりよく理解され、およびその多くの特徴および利点は、添付図面を参照することによって当業者に明らかになるであろう。
【０００６】
異なる図面中の同じ参照記号の使用は、同一または類似の項目を示す。
【０００７】
いくつかの実施例によれば、メモリ管理ユニットは、仮想アドレスを受け取り、対応する物理アドレスを提供する。メモリ管理ユニットは、仮想アドレスから物理アドレスへ生成された変換を格納する。仮想アドレスから物理アドレスへの変換が特定の仮想アドレスに対して利用可能な場合、メモリ管理ユニットは、対応する物理アドレスを取り出す。変換が利用可能でない場合、メモリ管理ユニットは、仮想アドレスから対応する物理アドレスを生成する。メモリ管理ユニットは、プロセス識別子を使用して、仮想アドレスを修正仮想アドレスに変換し、次に、その修正仮想アドレスを使用して、ページ・テーブル・ウォークを行ない、物理アドレスを生成する。
【０００８】
下記説明では、多くの特定の詳細事項が述べられる。しかしながら、本発明の実施例は、これらの特定の詳細事項がなくても実施できることを理解すべきである。他の実施例では、周知の方法、構造および技術は、この説明の理解を不明瞭にしないために詳細には示されていない。
【０００９】
「一実施例」、「実施例」、「実施の例」、「様々な実施例」などの表示は、本発明の実施例が特定の機能、構造または特性を含むが、あらゆる実施例がその特定の機能、構造または特性を必ず含むとは限らないことを示す。さらに、「ある実施例において」なる句の繰り返しの使用は必ずしも同じ実施例を参照するものではない。
【００１０】
ここに使用されるように、別段の定めがない限り、共通の対象を表わす「第１」、「第２」、「第３」などの順序を示す形容詞の使用は、類似の対象の異なる例が引用されていることを単に示すに過ぎず、その対象が一時的にも、空間的に、格付的にも、あるいは他の方法においても、与えられた順序でなければならないことを意図するものではない。
【００１１】
他に特に述べられない限り、次の議論から明らかなように、「処理する」、「演算する」、「計算する」などのような用語を利用する議論は、明細書全体にわたって、コンピュータ、コンピュータ・システムまたは類似の電子計算機装置の動作または処理に関連するものであり、それは電子、量子などの物理量として表わされるデータを物理量として同じように表わされる他のデータへ操作または変換することとして理解される。
【００１２】
同様に、「プロセッサ」なる用語は、任意の装置またはレジスタおよび／またはメモリからの電子データを処理し、その電子データをレジスタおよび／またはメモリに格納できる他の電子データに変形するあらゆる装置または装置の一部に関するものである。「計算機プラットフォーム」は、１またはそれ以上のプロセッサを含んでいてもよい。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施例に従う計算機システムの様々なロジック・ブロックを示す。
【図２】本発明の実施例に従うメモリ管理ユニットのブロック図を示す。
【図３】本発明の実施例に従う仮想アドレスから物理アドレスへの変換フローチャートを示す。
【図４】本発明の実施例に従うプロセス・スイッチング・フローを示す。
【発明を実施するための形態】
【００１４】
図１は、本発明の実施例による計算機システムの様々なロジック・ブロックを図示する。プロセッサ１００は、アドレス生成ユニット（ＡＧＵ）１０２およびメモリ管理ユニット（ＭＭＵ）１０４を含む。ＡＧＵ１０２は、例えばデータ・アドレスを生成する算術論理演算ユニット（ＡＬＵ）、または例えば命令アドレスを生成するインクリメンタ（増分器）である。ＡＧＵ１０２によって生成されたアドレスは、仮想アドレスである。ＭＭＵ１０４は、仮想アドレスを物理アドレスに変換する。これらの物理アドレスは例えば、ストレージ１０６の読み込みまたは書き込みのためにアクセスするために使用される。ストレージ１０６は、プロセッサ１００の内部にあってもまたは外部にあってもよい。
【００１５】
プロセッサ１００は、ＡＲＭ、ＣＩＳＣまたはＲＩＳＣタイプのアーキテクチャを含むあらゆるアーキテクチャ・タイプの中央処理装置を表わす。ストレージ１０６は、データを格納するための１またはそれ以上のメカニズムを表わす。例えば、ストレージ１０６は、リード・オンリ・メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、磁気ディスク格納媒体、光格納媒体および／またはフラッシュ・メモリ装置を含む。本発明が単一プロセッサの計算機システムで実施される一実施例が説明される一方、マルチプロセッサ計算機システム中で実施される本発明の実施例が説明される。
【００１６】
プロセッサ１００は、少し例を挙げれば、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナル・コンピュータ、ノートパッド、個人用デジタル情報処理端末、様々なワイヤレス通信装置を含む多くの計算機および通信システムのいずれかにあるが、しかしこれらに制限されることはなく、１またはそれ以上のアンテナ１０８および送受信機１１０および埋め込みシステムを含んでいてもよい。
【００１７】
図２は、本発明の実施例によるメモリ管理ユニット１０４のブロック図を示す。ＭＭＵ１０４は、仮想アドレスを受け取り、対応する物理アドレスを提供する。最初に、仮想アドレスのための変換が格納装置内、例えば変換索引バッファ（ＴＬＢ）２０２内に含まれているかどうかの判断がなされる。ＴＬＢ２０２は、仮想アドレスから物理アドレスへの１またはそれ以上の変換を含む。仮想アドレスのための変換がＴＬＢ２０２中にない場合、その変換は、ＴＬＢ失敗処理ユニット２０４によって生成される。ＴＬＢ失敗処理ユニット２０４は、変換ロジック２０６およびページ・テーブル・ウォーク・ユニット２０８を含む。変換ロジック２０６は、仮想アドレス（ＶＡ）を修正仮想アドレス（ＭＶＡ）に変換する。変換ロジック２０６は、例えば、仮想アドレスの１以上の上位ビット、例えば、７つの上位ビットＶＡ［３１：２５］が０に等しいかどうかを判断する判断ロジック２１０、および、修正仮想アドレス（ＭＶＡ）の上位ビットを選択するマルチプレクサ２１２を含む。例えば、マルチプレクサ２１２は、仮想アドレスのそれらのビットが０に等しい場合、仮想アドレスの上位７ビットを交換するプロセス識別子、ＰＩＤ［６：０］を選択する。そうでない場合、仮想アドレスの上位７ビットが選択される。
【００１８】
プロセス識別子（ＰＩＤ）は、プロセッサ１００上のレジスタに格納され、特定のプロセスに関連する。７ビットのＰＩＤに対して、仮想アドレスは、４Ｇバイトのアドレス空間中における１２８個の「スロット」の１つに再マップされる。このプロセス識別子の再マッピングは、同じ仮想アドレス空間にマップするオペレーティング・システムのプロセス管理に役立つ。これらのケースでは、実際にマップされたキャッシュは、例えば、ＰＩＤ値がロールオーバする時間またはＰＩＤ値が再使用されるまで、プロセス・スイッチ上で無効にすることを要求しないであろう。ＰＩＤ（「ＰＩＤｉｆｉｅｄ」）によってまだ修正されていないアドレスは、仮想アドレス（ＶＡ）と呼ばれる。変換ロジック２０６を経由したが、物理アドレスに変換されていないアドレスは、修正仮想アドレス（ＭＶＡ）と呼ばれる。
【００１９】
ページ・テーブル・ウォーク・ユニット２０８は、修正仮想アドレスを使用して、物理アドレスを生成する。メモリのアドレス方式は、仮想メモリを実行するためにページングをしばしば使用する。ページングを使用するとき、仮想アドレス空間は、ページと呼ばれる固定サイズのブロックに分割され、その各々は物理アドレスのいずれかの上にマップされる。例えば、ページ・テーブル・ウォーク・ユニット２０８は、ページング・アルゴリズムに従って、ページ・テーブルを使用して、物理アドレスへその仮想に対する現在のマッピングを決定し維持する。ページ・テーブルは、しばしばメイン・メモリにあり、それらへのアクセスは時間の消費である。ページ変換を促進するために、仮想アドレスから物理アドレスを生成する変換のうちのいくつかは、ＴＬＢ２０２に格納されている。
【００２０】
これらの変換されたメモリ・アドレスは、物理メモリ・アドレスと称される一方、他の実施例では、これらの変換されたメモリ・アドレスはあらゆる多くの目的に使用することができる。例えば、物理アドレスが達成される前に、これらの変換されたメモリ・アドレス上でさらに変換を行なうことができる。加えて、一実施例は、仮想メモリ・アドレス空間の変換に関して説明される一方、他の実施例は、あらゆるタイプのアドレス変換を支援するために本発明を使用することができるであろう。
【００２１】
仮想アドレスから物理アドレスへの変換のうちのいくつかまたはすべては、ＴＬＢ２０６に格納され、プロセス識別子が更新されると無効にされる。例えば、プロセスまたはコンテキストが切換えられると、プロセス識別子が更新される。ＴＬＢ２０２が上位ヌル・ビットを有し、したがって特定のプロセスに特化している仮想アドレスに対する変換を収容しているので、プロセスがスイッチされると、それらの変換は無効にされなければならない。ＴＬＢ２０２中の変換を無効にすることは、ソフトウェアによって行なわれる。代わりに、ハードウェアがその変更を検出し、自動的に無効を行なってもよい。
【００２２】
図３は、本発明の１つの実施例に従って、ＭＭＵ１０４への要求でプロセッサ１００によって仮想アドレスをその対応する物理アドレスへ変換するプロセスのフローチャートを図示する。
【００２３】
ＭＭＵ１０４は、プロセス・ブロック３０２で、仮想アドレスを受け取る。プロセス・ブロック３０４で、仮想アドレスのための変換が例えばＴＬＢ２０２に格納されたかどうかの判断がなされる。もしそうならば、プロセス・ブロック３０６で、物理アドレスが取り出される。もしそうでない場合、プロセス・ブロック３０８で、仮想アドレスの上位ビット、例えば上位７ビットがヌル、すなわち、０に等しいかどうかの判断が成される。もしそうならば、プロセス・ブロック３１０で、上位ビットはプロセス識別子（ＰＩＤ）と取り替えられる。次に、プロセス・ブロック３１２で、ＰＩＤｉｆｉｅｄ仮想アドレス、すなわち修正仮想アドレス（ＭＶＡ）を使用して、ページ・テーブル・ウォークが実行され、物理アドレスを生成する。ＴＬＢ２０２は、プロセス・ブロック３１４で、仮想アドレスから物理アドレスへの新しい変換で更新される。
【００２４】
図４は、本発明の実施例に従って、プロセス・スイッチング・フローを示す。プロセス・ブロック４０２で、プロセス識別子（ＰＩＤ）が更新されたかどうかの判断がなされる。ＰＩＤが更新されている場合、プロセス・ブロック４０４で、ＴＬＢのすべてまたは一部は無効にされる。全てのＴＬＢが無効にされてもよい。代わりに、仮想アドレスの上位ビットがヌルである変換だけが無効にされてもよい。
【００２５】
上述された技術は、本方法を実施する計算機システムを形成するためにコンピュータ読取り可能な媒体で具体化される。コンピュータ読取り可能な媒体は、システム１００または別のシステムに、永久に、移動可能に、または遠隔に結合されてもよい。コンピュータ読取り可能な媒体は、例えば、制限なしに、次の任意の数を含めることができる、すなわち、少し例を挙げれば、ディスクとテープ格納媒体を含む磁気格納媒；コンパクト・ディスク媒体（例えば、ＣＤ−ＲＯＭ、ＣＤ−Ｒなど）およびデジタル・ビデオ・ティスク格納媒体のような光格納媒体；ホログラム・メモリ；フラッシュ・メモリ、ＥＥＰＲＯＭ、ＥＰＲＯＭ、ＲＯＭのような半導体ベースのメモリ・ユニットを含む不揮発性メモリ格納媒体；強磁性デジタル・メモリ；レジスタ、バッファまたはキャッシュ、メイン・メモリ、ＲＡＭなどを含む揮発性格納媒体；および永久・断続的なコンピュータ・ネットワークを含むデータ伝送媒体、２地点間電気通信設備、搬送波伝送媒体、インターネットを含む。他の新しい様々なタイプのコンピュータ読取り可能な媒体が、ここに議論されたソフトウェア・モジュールを格納しおよび／または送信するために、使用されてもよい。計算機システムは、少し例を挙げれば、メインフレーム、ミニコンピュータ、サーバ、ワークステーション、パーソナル・コンピュータ、ノートパッド、個人用デジタル情報処理端末、様々なワイヤレス装置および埋め込みシステムを含み、これらに限定されない多くの形式でみられる。典型的な計算機システムは、少なくとも１つの演算処理装置、関連するメモリおよび複数の入出力（Ｉ／Ｏ）装置を含む。計算機システムは、プログラムに従って情報を処理し、Ｉ／Ｏデバイスを介して結果となる出力情報を生成する。
【００２６】
本発明に従う具体化は、特定の実施例の状況中で説明された。これらの実施例は、例示が目的で制限的ではない。多くの変更、修正、追加および改良が可能である。従って、複数の実施例が、単一の実施例してここに描かれたコンポーネントに対して提供される。様々なコンポーネント、動作およびデータ格納の間における境界は多少任意的であり、また、特定の動作は特定の例示となる構成という状況下で図示される。他の機能割当てを構想することもでき、次の請求項の範囲以内に入る。最後に、様々な構成中の個別のコンポーネントとして示された構造および機能は、結合した構造またはコンポーネントとしても実施できる。これらおよび他の変更、修正、追加および改良は、次の請求項で定義される本発明の範囲内に入るものである。
【符号の説明】
【００２７】
１００  プロセッサ
１０２  アドレス生成ユニット（ＡＧＵ）
１０４  メモリ管理ユニット（ＭＭＵ）
１０６  ストレージ
１０８  アンテナ
１１０  送受信機
２０２  変換索引バッファ（ＴＬＢ）
２０４  ＴＬＢ失敗処理ユニット
２０６  変換ロジック
２０８  ページ・テーブル・ウォーク・ユニット
２１０  判断ロジック
２１２  マルチプレクサ
【図１】
2010134956.tif 000003
【図２】
2010134956.tif 000004
【図３】
2010134956.tif 000005
【図４】
2010134956.tif 000006