(57)【要約】【課題】中央処理装置（ＣＰＵ）内の既存のアドレス変換バッファーが同時にレガシーオペレーティングシステムソフトウェアとのコンパチビリティを保存しながら提供することができるものを越えて、ＣＰＵが仮想メモリに与えられる保護方式を拡張できるようにする装置および方法が提供される。【解決手段】この装置はアドレス変換バッファー（ＴＬＢ）および拡張保護論理を含んでいる。アドレス変換バッファー（ＴＬＢ）は複数のＴＬＢエントリを格納し、その各々がフラグフィールドおよび拡張フラグフィールドを有する。拡張保護論理はＴＬＢに接続されている。拡張保護論理はフラグフィールドに従ったレガシーアクセス制約を指定し、かつ拡張フラグフィールドと結合したフラグフィールドに従った拡張アクセス制約を指定する。レガシーアクセス制約の仕様はレガシー仮想ページアクセス保護プロトコルとのコンパチビリティを保存する。【選択図】図２
2008282417.tif 000002
【特許請求の範囲】
【請求項１】
仮想メモリページに対する拡張アクセス制約を規定する装置であって、前記装置は、
複数のアドレス変換バッファー（ＴＬＢ）エントリを格納するように構成されたアドレス変換バッファー（ＴＬＢ）であって、前記複数のＴＬＢエントリの各々がフラグフィールドおよび拡張フラグフィールドを有するアドレス変換バッファー（ＴＬＢ）と、
前記ＴＬＢに接続され、前記フラグフィールドに従ったレガシーアクセス制約を指定するように構成され、かつ前記拡張フラグフィールドと結合した前記フラグフィールドに従った拡張アクセス制約を指定するように構成された拡張保護論理であって、前記レガシーアクセス制約の仕様はレガシー仮想ページアクセスプロトコルとのコンパチビリティを保存する拡張保護論理と、
を含む装置。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は同じ日に出願された同一譲受人、同一発明者の出願中米国特許出願第                  号（ドケットＭＩＰＳ：0118.00US）,Mechanism for Extending Properties of Virtual Memory Pages by a TLB に関連している。
（発明の分野）
本発明は一般的にコンピューティングシステム内のメモリ管理の分野に関し、特に、既存のアドレス変換バッファー(translation lookaside buffer)アーキテクチュア内のページ保護機構により提供されるものを越えて仮想メモリページに対するアクセス保護の種類を拡張する装置および方法に関する。
【背景技術】
【０００２】
（関連技術の説明）
初期のコンピューティングシステムは特にこれらのシステム上で実行するように構成されたアプリケーションプログラムを実行した。プログラムは実行時にコンピューティングシステムのメモリ内にロードされた一連の命令からなっていた。実行するために命令がメモリからフェッチされる度に、コンピューティングシステム内のアドレス論理がメモリアドレスを発生した。コンピューティングシステム内のアクセス論理がメモリアドレスバス上にメモリアドレスを出し、メモリがコンピューティングシステムにより実行されるメモリアドレスに対応するメモリ場所のコンテンツを提供した。プログラム命令の他に、初期のコンピューティングシステムはアプリケーションプログラムにより使用されたデータを一時的に格納するためのメモリ場所を利用した。実行するプログラム命令の検索と同様に、プログラムデータの格納および検索はデータメモリ場所に対応するメモリアドレスの発生を伴った。
【０００３】
アドレス論理により発生されたメモリアドレスは初期のコンピューティングシステムのメモリバスに直接ルーティングされて対応するメモリ場所にアクセスした。したがって、メモリ内の場所１０５１３ＢＣ７ｈにアクセスするには、アドレス論理がアドレス１０５１３ＢＣ７ｈを発生してこのアドレスをメモリバスに発行する必要があった。しかしながら、言い換えると、アドレス論理がアドレス１０５１３ＢＣ７ｈを発生した時に、このアドレスが対応するメモリ場所はやはり場所１０５１３ＢＣ７ｈであったことも事実である。
【０００４】
初期のコンピューティングシステムで実行されるプログラムにより発生されたメモリアドレスとコンピューティングシステムのメモリ内の場所との間の直接、１対１対応は多くの観点からすぐさま不利と考えられたことに直観的に気が付く。第１に、広範な多様なアプリケーションプログラムを実行するために、初期のコンピューティングシステムは常にシステムの全アドレス範囲にまたがるメモリを提供する。第２に、このような対応によりコンピューティングシステムのアーキテクチュアはシステム上でプログラムを作り出して実行するのに使用されたツールに不要に接続された。例えば、異なるメモリ範囲および制約を示したコンピューティングシステム上でプログラムを実行できるようにするために、プログラムは著しい変更を必要とした。最後に、コンピュータが時分割（すなわち、マルチタスク）オペレーティングシステムを提供するポイントまで進歩すると、全てのメモリ管理および保護機能をオペレーティングシステムにより実施しなければならないため、性能劣化が観察された。
【０００５】
特に、前記した問題に取り組むために１９７０年代半ばに仮想メモリ管理技術が開発された。本質的に、コンピューティング処理装置（ＣＰＵ）内の仮想メモリ“マネジャー”がＣＰＵ内のアドレス発生論理とメモリ場所にアクセスするアクセス論理との間の媒介として働く。仮想メモリ管理方式の元で、アドレス論理により発生される“仮想アドレス”は予め定められた構成可能なマッピング戦略に従って、対応するメモリ場所にアクセスするためにメモリバス上に出される“物理的アドレス”に“変換される”。したがって、仮想メモリ管理により１対１対応の前記した限界が克服される。
【０００６】
仮想メモリ管理技術は、実行中にプログラムにメモリを割り当てプログラムにより必要とされなくなった時にメモリをメモリプールに戻すことができる手段を提供する他に、アプリケーションプログラムがどこでメモリからロードされ実行されるかをコンピューティングシステムのオペレーティングシステムが有効に制御できるようにする利点を提供し続ける。最も新しい仮想メモリ管理ユニットはシステムのアドレススペースをメモリページと呼ばれる等サイズチャンクに分割する。メモリページにアクセスするには仮想アドレスの上位ビットを変換する必要があり、仮想アドレスの下位ビットは変換されず単にページ内へのオフセットを表わす。
【０００７】
仮想メモリ管理はメモリに関連する場所だけでなく、これらの場所に関連する性質または属性にも適用される。例えば、ページ内の場所へのデータライトを排除できるように仮想ページをリードオンリーとして指示することができる。
【０００８】
仮想メモリページの属性を指定する情報と共に、仮想対物理的アドレスマッピング情報がページテーブルとして知られるメモリの指示されたエリア内に格納される。一般的に言えば、ページテーブルはＣＰＵのアドレススペース内に各仮想メモリページに対する１つのエントリを含んでいる。したがって、各メモリアクセスに対して、アクセスに関連するページテーブルエントリをページテーブルから検索して、仮想アドレスを物理的アドレスに変換することができアクセス特権を決定できるようにする必要がある。
【０００９】
頻繁に使用されるページテーブルエントリをＣＰＵ内に格納してアドレスが発生される度にメモリアクセスを必要とすることがないように、アドレス変換バッファー（ＴＬＢ）がＣＰＵ設計に内蔵されている。ＴＬＢはいくつかのページテーブルエントリに対する記憶装置を提供する非常に高速のメモリである。ＴＬＢは典型的にＣＰＵのクリティカルタイミングパス内にあるため、効率的かつ高速に設計される。したがって、アドレスの変換に不可欠なビットおよびメモリページ属性の仕様だけがＴＬＢ内のページテーブルエントリ内に与えられる。
【００１０】
ＴＬＢはアドレスの変換に対する高速アクセスをサポートするためにストリームラインされる。しかしながら、その結果、所与のＴＬＢの構造は完全にスタティックとなり、拡張の余地は殆どまたは全く生じない。したがって、メモリアクセス保護方式の新たに開発または拡張されたセットを内蔵するようにＣＰＵの設計を更新したい場合には、ＣＰＵのＴＬＢの設計は仮想ページレベルにおいてアクセス制約の表現を与えるように修正しなければならない見込みが高い。しかしながら、仮想メモリ管理タスクの相当な部分をオペレーティングシステムソフトウェアに移管しているＣＰＵにとって、既存のＴＬＢの構造を変更するとオペレーティングシステムソフトウェアとのインコンパチビリティを生じ−新しい/拡張されたアクセス制約に従ったメモリ管理を提供するためにオペレーティングシステムを更新しなければならない。
【００１１】
しかしながら、グレードアップされたＣＰＵがより古いオペレーティングシステムおよびそのアプリケーションプログラムともはやコンパチブルとはならないようであれば、重大な市場区分が失われる。ＣＰＵメーカは、少なくとも、ＣＰＵグレードアップがより古いソフトウェアとのコンパチビリティを保持することを望んでいる。しかしながら、ソフトウェア管理ＴＬＢアーキテクチュアの場合のコンパチビリティ保持はグレードアップされた設計において提供されるアクセス特権数が既存のＴＬＢ構造により制御されることを意味する。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
したがって、必要とされているのは、ＴＬＢの構造がレガシーアクセス保護プロトコルとのコンパチビリティを維持される、既存のＴＬＢ設計を介して拡張されたアクセス保護方式を提供することができる装置である。
【００１３】
さらに、必要とされているのは、既存のＴＬＢ構造を利用する仮想メモリページのアクセス制約を拡張する機構である。
【００１４】
さらに、必要とされているのは、より古いオペレーティングシステムソフトウェアとバックワードコンパチブルでもある、既存のＴＬＢ構造により与えられるものよりも多種の仮想メモリページアクセス特権を規定することができるＣＰＵ装置である。
【００１５】
さらに、必要とされているのは、レガシーレガシーアクセス保護プロトコルに従って解釈することができる状態にデフォルトする、既存のＴＬＢの仮想メモリページアクセス保護を拡張する方法である。
【課題を解決するための手段】
【００１６】
（発明の概要）
本発明は既存のアドレス変換バッファー（ＴＬＢ）により提供されるものを越えて仮想メモリページへ与えられるアクセス保護の種類を拡張する優れた技術を提供する。仮想メモリページのアクセス保護は本発明に従ってＴＬＢまたはその中の任意のエントリの構造になんら有害なインパクトを与えることなく拡張される。性質拡張は、本発明により、レガシーオペレーティングシステム内のＴＬＢ管理ソフトウェアとのバックワードコンパチビリティを許すようになされる。
【００１７】
一実施例では、仮想メモリページに対する拡張されたアクセス制約を規定する装置が提供される。この装置はアドレス変換バッファー（ＴＬＢ）および拡張された保護論理を含んでいる。ＴＬＢは複数のＴＬＢエントリを格納し、その各々がフラグフィールドおよび拡張フラグフィールドを有する。拡張保護論理がＴＬＢに接続されている。拡張保護論理はフラグフィールドに従ったレガシーアクセス制約を指定し、さらに、拡張フラグフィールドと結合したフラグフィールドに従った拡張アクセス制約を指定する。レガシーアクセス制約の仕様はレガシー仮想メモリページアクセスプロトコルとのコンパチビリティを保存する。
【００１８】
本発明の一つの側面はアドレス変換バッファー（ＴＬＢ）が仮想メモリページの保護方式を拡張できるようにするマイクロプロセッサ内の機構を特徴とする。この機構は仮想メモリページをアクセスするメモリ管理ユニットを有する。メモリ管理ユニットはＴＬＢエントリおよび拡張保護論理を含んでいる。ＴＬＢエントリは仮想メモリページの保護方式を規定し、各ＴＬＢエントリ内の拡張フラグフィールドは既存のフラグフィールドにより提供された保護方式表示を拡張する。拡張保護論理はＴＬＢエントリに接続される。拡張保護論理は既存のフラグフィールドに従ったレガシー保護方式または拡張フラグフィールドと結合した既存のフラグフィールドに従った拡張保護方式を規定する。レガシー保護方式はレガシー仮想メモリページアクセスプロトコルとバックワードコンパチブルである。
【００１９】
本発明のもう一つの側面はコンピューティングデバイスで使用するコンピュータプログラムプロダクトである。コンピュータプログラムプロダクトは、媒体内に具現されたコンピュータ読取可能プログラムコードを有する、コンピュータ使用可能媒体を含んでいる。コンピュータ読取可能プログラムコードはＣＰＵを記述されるようにし、ＣＰＵはレガシー保護方式および拡張保護方式に従って仮想メモリページをアクセスすることができる。コンピュータ読取可能プログラムコードは第１のプログラムコードおよび第２のプログラムコードを有する。第１のプログラムコードはアドレス変換バッファー（ＴＬＢ）を記述し、ＴＬＢはＴＬＢエントリを格納するように構成され、各エントリは既存のフラグフィールドおよび拡張フラグフィールドを有する。第２のプログラムコードは拡張保護論理を記述し、拡張保護論理は既存のフラグフィールドに従ったレガシー保護方式および拡張フラグフィールドと結合した既存のフラグフィールドに従った拡張保護方式を指定するように構成され、レガシー保護方式の仕様はレガシーアクセスプロトコルとのコンパチビリティを保存する。
【００２０】
本発明のさらにもう一つの側面により、伝送媒体内に具現されたコンピュータデータ信号が提供される。コンピュータデータ信号は第１のコンピュータ読取可能プログラムコード、第２のコンピュータ読取可能プログラムコード、および第３のコンピュータ読取可能プログラムコードを含んでいる。第１のコンピュータ読取可能プログラムコードはアドレス変換バッファー（ＴＬＢ）を記述し、ＴＬＢはＴＬＢエントリを格納するように構成され、各ＴＬＢエントリが既存のフラグフィールドおよび拡張フラグフィールドを有する。第２のコンピュータ読取可能プログラムコードは拡張保護論理を記述し、拡張保護論理は既存のフラグフィールドに従ったレガシー保護方式および拡張フラグフィールドと結合した既存のフラグフィールドに従った拡張保護方式を指定するように構成されている。第３のコンピュータ読取可能プログラムコードアクセス論理を記述し、アクセス論理は仮想メモリページをアクセスするように構成されており、レガシープロトコルアクセスが利用される場合には、仮想メモリページはレガシー保護方式に従ってアクセスされる。
【実施例】
【００２１】
（詳細な説明）
本発明のこれらおよびその他の目的、特徴、および利点は下記の説明および添付図に関してより良く理解することができる。
仮想メモリ管理に関連するタスクを迅速に処理するために今日のコンピューティングシステムにより利用される技術の前記した背景を考慮して、次に、図１に関して関連技術例について検討する。この例は現在の仮想メモリ管理技術の、特に、アドレス変換バッファー（ＴＬＢ）の構造に関する限界を強調している。今日のＴＬＢの実質的に全てのアーキテクチュアがせいぜい拡張のための余地をほとんど提供せず、レガシーオペレーティングシステムソフトウェアとのコンパチビリティを保存するために、与えられる任意の新しいアクセス制約はレガシーオペレーティングシステムともコンパチブルでなければならない。この検討に続いて、図２から図５に関して本発明の詳細な説明を行う。本発明は、コンピューティングシステムの既存のＴＬＢ構造やコンピューティングシステムのレガシーオペレーティングシステムとのコンパチビリティにインパクトを与えることなく、コンピューティングシステム内の拡張された仮想ページアクセス特権を規定する装置および方法を提供することにより、コンピューティングシステム内の仮想メモリページの保護方式を拡張する障害を克服する。
【００２２】
次に、図１に仮想メモリ１３０の管理を迅速に処理するためにアドレス変換バッファー１１５を利用する関連技術コンピューティングシステム１００の特徴を表わすブロック図を示す。コンピューティングシステム１００はアドレスバス１２２およびデータバス１２３を介してシステムメモリ１３０にアクセスする中央処理装置（ＣＰＵ）１１０を含んでいる。あるシステム１００では、２つのバス１２２，１２３は結合される。ＣＰＵ１１０、すなわちマイクロプロセッサ１１０、はメモリ管理論理１１４へ仮想アドレス１１２（すなわち、システム１００上で実行しているオペレーティングシステム１２５またはアプリケーションプログラムにより発生されたアドレス）を与えるアドレス論理１１１を有する。メモリ管理論理１１４、すなわちメモリマネジャー１１４、はアドレス変換を実施するアドレス変換バッファー１１５およびアドレスバス１２２およびデータバス１２３を介してシステムメモリ１３０にアクセスするアクセス論理１１８を有する。仮想メモリコンピューティングシステム１００内で、システムメモリ１３０は一連の等サイズメモリページ１３６へ分割され、今日最も一般的なサイズは４ＫＢ/ページである。したがって、４ＫＢメモリページ１３６へ分割された３２ビットアドレス範囲を有するＣＰＵ１１０はほぼ４百万ページ１３６のアクセスを管理する。メモリ１３０内のあるページ１３１は仮想アドレスの変換および各メモリページ１３６の他のアクセス特徴を規定する全情報を格納するように特別に指示されている。これらの特別に指示されたページ１３１はページテーブル１３１と呼ばれる。ページテーブル１３１は仮想メモリページ１３６の各々に対応するエントリ１３２を有する。
【００２３】
仮想メモリ管理の概念により、オペレーティングシステムソフトウェア１２５はアプリケーションプログラムがどこでどのようにシステムメモリ１３０内にロードされるか、また付加メモリ１３０がどこでどのようにプログラムに割り当てられるかを制御することができる。仮想メモリ管理技術はデマンドページング、アドレス範囲拡張、アクセス保護、プログラムリロケーション、メモリ割当て、および同じアプリケーションプログラムの多数のインスタンスを実行する能力等の多くの利点をコンピューティングシステム１００に提供する。一般的に、ＣＰＵ１１０はメモリ１３０内の命令およびデータにアクセスする仮想プログラムアドレス１１２を発生する。ＣＰＵ１１０の観点から、システムメモリ１３０はＣＰＵ１１０が発生することができる全てのアドレス場所を含んでいる。スペクトルの一端において、仮想メモリ管理はオペレーティングシステムソフトウェア１２５により利用されて、これらのプログラムの物理的場所を少数の物理的メモリページに制約しながら、ＣＰＵ１１０の全仮想アドレス範囲にわたるアプリケーションプログラムをＣＰＵ１１０上で実行することができる。これは多数の仮想メモリページ１３６を同じ物理的メモリ範囲へ変換して（すなわち、マッピングして）行われる。他端において、オペレーティングシステム１２５は仮想メモリ技術を使用して同じアプリケーションプログラムの多数のインスタンスをＣＰＵ１１０上で同時に実行することができ、各インスタンスは同じ仮想アドレスを発生し、しかもプログラムの各インスタンスはプログラムの他の全てのインスタンスとは異なる物理的メモリへマッピングされる。アドレス変換に加えて、仮想メモリ管理技術によりオペレーティングシステムはある仮想メモリページ１３６に対して行うことができるアクセスの種類を制御することができる。仮想ページ０１３６はＣＰＵのメモリキャッシュ（図示せず）内にロードすることができないリードオンリーページとして指示されることに注目されたい。同様に、仮想ページＮ１３６はリードおよびライトアクセスの両方に対して指示され、ページＮ１３６はＣＰＵのメモリキャッシュ内にロードすることができる。
【００２４】
動作において、ＣＰＵのオペレーティングシステム１２５はページテーブル１３１のコンテンツを規定する。システム１００内の各仮想メモリページ１３６に対して、ページテーブルエントリ１３２が確立される。アドレス論理１１１がメモリ１３０をアクセスする目的で仮想アドレス１１２を発生する時は、仮想アドレス１１２は要求されるアクセスのタイプ（例えば、データリード、データライト、実行リード、等）と共にメモリ管理ユニット１１４へ与えられる。その中で仮想アドレス１１２が見つかる仮想メモリページ１３６に対応するページテーブル１３１内のページテーブルエントリ１３２はメモリ管理ユニット１１４へ与えなければならない。典型的なページテーブルエントリ１３２は物理的フレーム番号（ＰＦＮ）フィールド１３４、フラグ（ＦＬ）フィールド１３５、およびスペアビット（ＳＰ）フィールド１３３を有する。ＰＦＮフィールド１３４は仮想アドレス１１２がマッピングされる物理的メモリページに対応する物理的アドレスの上位ビットを与える。ＦＬフィールド１３５はリード／ライトアクセス、キャッシュポリシー、データ有効/無効、等の仮想メモリページ１３６へのアクセスを制御するビットを含んでいる。ＦＬフィールド１３５内のビットにより禁止されるアクセスタイプが要求される場合には、メモリ管理ユニットはアドレス論理１１１へ例外を戻す。あるページテーブル設計では、アドレス成長を調整するためにＳＰフィールド１３３が与えられ、ＰＦＮフィールド１３４内のビット数を将来増加できるようにされる。
【００２５】
要約すれば、仮想メモリ管理は本質的にアプリケーションプログラムにより発生されたアドレスの上位アドレスビットを置換することを含んでいる。置換されるビットは仮想ページ番号と呼ばれる。置換ビットは物理的フレーム番号１３４と呼ばれる。下位アドレスビットは仮想または物理的ページ内のメモリ場所を指示するためページオフセットと呼ばれる。前記したような性質、または属性、または各仮想ページ１３６は仮想ページ１３６に対応するページテーブルエントリ１３２のＦＬフィールド１３５内のビットにより規定される。
【００２６】
ＴＬＢ１１５は、仮想アドレス１１２が発生される度にオペレーティングシステム１２５がページテーブル１３１にアクセスする必要がないように、ＣＰＵ１１０内の高速メモリ内にページテーブル１３１のサブセットを保持するキャッシュ構造である。変換を要する仮想アドレス１１２に対してＴＬＢ１１５内にエントリ１３２が存在しないことが判明する時は、最も使用頻度の低いエントリ１３２がＴＬＢ１１５からドロップされ新しいエントリ１３２がページテーブル１３１からフェッチされる。提出された仮想アドレス１１２に対してＴＬＢ１１５内に対応するエントリ１３２が存在しない状況はＴＬＢミスとして知られる。ページテーブル１３１からの対応する新しいエントリ１３２のフェッチングはＴＬＢフィルと呼ばれる。ＴＬＢ管理タスクをオペレーティングシステム１２５に割り当てるシステム１００では、典型的にＴＬＢミスによりＣＰＵ１１０は例外を発生するようにされ、それによりオペレーティングシステム１２５はこのミスを知らされる。したがって、オペレーティングシステム１２５はページテーブル１３１から適切なページテーブルエントリ１３２をフェッチしてＴＬＢエントリレジスタ１１９にエントリデータを書き込む。次に、オペレーティングシステムはＴＬＢレジスタ１１４のコンテンツをＴＬＢ１１５内に書き込ませる命令を実行する。
【００２７】
理想的なケースでは、ＴＬＢミスには遭遇せず、ＴＬＢフィルに関連する遅延は回避される。しかしながら、現実としてＴＬＢミスは頻繁に生じ、アドレス変換を実施するためにメモリ１３０にアクセスしなければならないために生じる遅延を最小限に抑えるために、今日のＴＬＢ１１５は典型的に非常に高速に設計される。ストリームラインＴＬＢ設計の一つの暗示はＴＬＢエントリ（図示せず）内のビット数が最小限に抑えられ、所与の仮想ページ１３６に関する重要な情報だけがＴＬＢ１１５内に格納されることである。当業者ならば、ソフトウェア管理ＴＬＢ環境内のページテーブルエントリ１３２の構造はＴＬＢ１１５内のＴＬＢエントリの構造と同等である必要はないことを理解できるが、性能の理由から、大概のオペレーティングシステム１２５はそれらのページテーブルエントリ１３２をＴＬＢの構造に対応するように設計する。あるエントリレジスタ１１９はスペアビットを与えるが、典型的にこれらのビットはＴＬＢフィル動作中に当然オペレーティングシステム１２５がメモリ１３０からフェッチするバイトすなわち語内の残留ビットである。
【００２８】
より近年になって、ＣＰＵ１１０のアーキテクチュアは次第に精巧かつ複雑になってきている。開発および生産エラーを排除するために、既存のマイクロプロセッサ設計のワーキング部が設計のグレードアップバージョンにおいて現在再使用されている。当業者ならば理解できるように、今日コンピュータシステム設計者が直面する最大の問題は、オペレーティングシステムコンパチビリティおよび既存のアプリケーションプログラムとのコンパチビリティの両方に関して、レガシーソフトウェアとのコンパチビリティを維持することである。したがって、ＣＰＵ１１０のグレードアップバージョンがフィールドされる時、それはより新しいオペレーティングシステムソフトウェアおよびＣＰＵ１１０に付加された特徴を利用するアプリケーションソフトウェアとコンパチブルであるだけでなく、ＣＰＵ１１０はより古い、レガシーオペレーティングシステムソフトウェアおよびアプリケーションソフトウェアともコンパチブルでなければならない。
【００２９】
本発明者は、ＴＬＢ１１５の管理に関連する多くの操作がオペレーティングシステムソフトウェアに割り当てられている時は、レガシーオペレーティングシステムソフトウェアコンパチビリティ要求条件がＣＰＵアーキテクチュア１１０に有害なインパクトを与えることに気付いた。これはＣＰＵグレードアップの目標が仮想メモリページ１３６に与えられる保護方式を拡張することである場合特にそうである。仮想メモリページ１３６のアクセス制約数（アクセス特権とも呼ばれる）は従来提供されていたものよりもハイレベルのアクセスセキュリティを必要とするアプリケーションの結果増大してきている。例えば、今日のアクセス制御は典型的にページ１３６をリードできるかあるいはリードおよびライトできるかを指定するユーザ特権レベル（カーネルレベル特権ではなく）を有するアプリケーションしか制約しない。しかしながら、今日のあるアプリケーションはさらにページ１３６へのアクセスを制約する要求条件を有する。実行オンリー、データリードオンリー、およびデータライトオンリーとして記述されるページアクセス特権を必要とするコンピューティングシステム１００に対するアプリケーションを見つけるのは今日珍しくはない。これらのページアクセス要求条件はデータの安全を確保し金融アプリケーションの安全を確保するのに非常にありふれたものとなっている。
【００３０】
したがって、設計者が仮想ページベースでコンピューティングシステム１００により提供されるアクセス特権数を増加したい場合、これらのポリシーに関する情報を各ページテーブルエントリ１３２内で表現し、ＴＬＢエントリレジスタ１１９へ書き込んでメモリ管理ユニット１１４により処理しなければならない。
【００３１】
しかしながら、どの拡張アクセス特権が仮想メモリページレベルで規定されるかに無関係に、所望の拡張された性質を表現するのに十分なスペアビット数がＴＬＢ１１５およびＴＬＢエントリレジスタ１１９内の既存のエントリ内になければ、設計者はＴＬＢ１１５およびエントリレジスタ１１９の設計を修正して、各仮想ページ１３６に対して所望の拡張されたアクセス制約の表現を与えるよう強制される。しかも、オペレーティングシステムソフトウェア１２５に頼って仮想メモリ管理タスクを実施するシステム１００に対しては、ＴＬＢ１１５の設計を変更するとシステム１００は即座にレガシーオペレーティングシステムソフトウェア１２５とインコンパチブルとなる。したがって、拡張仮想ページ属性を提供するために、今日利用されている最も一般的な方法はＴＬＢ１１５の属性容量を増加するようにメモリ管理ユニット１１４を設計し直し、一組の所望の拡張メモリ管理特徴を与えるためにレガシーオペレーティングシステム１２５とのコンパチビリティを犠牲にすることである。しかしながら、この方法はバックワードオペレーティングシステムコンパチビリティを強要する技術のセグメント内では全く受け入れられない。しかしながら、バックワードコンパチブルＣＰＵ１１０は現在およびレガシーオペレーティングシステムを使用するカストマーにサービスする二つ以上の別々のプロダクトを維持する代わりに作り出すことができるため、レガシーアクセス制約プロトコルを有するバックワードコンパチビリティは非常に重要な目標でもある。
【００３２】
本発明は、設計者がレガシーオペレーティングシステムコンパチビリティを犠牲にすることなく既存のＴＬＢ１１５により提供される仮想ページ保護方式数を増加することができる装置および方法を提供することにより前記した既存の設計の限界を克服するものである。次に、図２から図５について本発明をより詳細に説明する。
【００３３】
図２に、システム２００内の仮想メモリ２３０の属性を拡張する既存のアドレス変換バッファー設計２１５を利用する本発明に従ったコンピューティングシステム２００を図解するブロック図が示されている。コンピューティングシステム２００はアドレスバス２２２およびデータバス２２３、または結合されたアドレス/データバス２２２/２２３を介してシステムメモリ２３０に接続されたＣＰＵ２１０を有する。ＣＰＵ２１０は仮想アドレス２１２を発生するアドレス論理２１１を有する。仮想アドレス２１２はバス２１３を介して拡張保護メモリ管理ユニット２４０にルーティングされる。メモリ管理ユニット２４０は仮想対物理的アドレス変換を実施するアドレス変換バッファー２１５およびアドレス/データバス２２２/２２３を介してシステムメモリ２３０をアクセスするアクセス論理２１８を有する。ＴＬＢ２１５内のエントリはエントリレジスタ２１９を介してエントリをロードするオペレーティングシステムソフトウェア２２５により管理される。拡張保護メモリ管理ユニット２４０はＦＬバス２１６およびＥＸバス２２０を介してＴＬＢ２１５に接続される拡張保護論理２４１も有する。
【００３４】
システムメモリ２３０は等サイズの仮想メモリページ２３６へ分割される。一実施例では、ページ２３６は４ＫＢサイズである。別の実施例では、ページ２３６のサイズは４ＫＢ,１６ＫＢ,６４ＫＢ,２５６ＫＢ,１ＭＢ,４ＭＢ,１６ＭＢ,または６４ＭＢとして規定することができる。メモリ２３０は仮想メモリページ２３６の各々に対応する複数のページテーブルエントリ２５１を含むページテーブル２５０を有する。各ページテーブルエントリ２５１は物理的フレーム番号（ＰＦＮ）フィールド２５３、フラグ（ＦＬ）２５４、および拡張フラグフィールド２５２を有する。拡張フラグフィールド２５２は、図１のＴＬＢ１１５のような、レガシーＴＬＢ１１５内のエントリ内のスペアビットに対応するビット位置を利用する。
【００３５】
動作において、本発明に従ったコンピューティングシステム２００の要素は１００の桁を２で置換した図１のコンピューティングシステム１００の同番号要素と非常に類似した機能を果たす。本発明に従ったＴＬＢ２１５およびＴＬＢエントリレジスタ２１９のアーキテクチュアは図１に示すものと厳密に同じである。しかしながら、図１のコンピューティングシステム１００と本発明に従ったコンピューティングシステム２００との間の違いは、各ページテーブルエントリ２５１のＥＸフィールド２５２およびＦＬフィールド２５４がエントリレジスタにロードされ、メモリ管理ユニット２４０により処理され解釈される方法に集中される。ＥＸフィールド２５２は拡張特権オペレーティングシステムにより構成することができ、しかも立上げ、またはデフォルト、ＥＸフィールド２５２内のビットの状態は本発明に従ったＴＬＢエントリ２５１をレガシーオペレーティングシステムとも完全にコンパチブルとする。
【００３６】
レガシーメモリ管理プロトコルが存在する場合に、ＴＬＢ２１５により仮想アドレス２１２が変換されると、変換された物理的アドレスはバス２１７を介してアクセス論理２１８へ与えられ、ＥＸフィールド２５２およびＦＬフィールド２５４のコンテンツは拡張メモリ保護論理２４１へ与えられる。レガシーオペレーティングシステム２２５はレガシーメモリ管理プロトコル（典型的に、オール０またはオール１）に従ってＥＸフィールド２５２のビットを設定かつ解釈し、既存のフラグフィールド２５４のビットを利用してレガシーアクセス特権を表示し呼び出す。拡張保護論理２４１は両方のフィールド２５２,２５４のコンテンツを解釈かつ処理して所与のページ２３６に対するレガシーアクセス特権および拡張アクセス特権の同時表示を与えるが、レガシーオペレーティングシステム２２５はレガシー状態に従ってＥＸフィールド２５２を設定するため、ＴＬＢエントリレジスタ２１９の対応するビットはレガシープロトコルに従って設定される。したがって、拡張保護論理２４１はレガシーメモリ管理プロトコルに従ってアクセス制約を発行し、レガシー制約はアクセス論理２１８により利用される。拡張アクセス特権オペレーティングシステム２２５が存在する場合には、レガシー制約とそれらの拡張の両方が仮想メモリページ２３６へのアクセスを制御するのに利用される。レガシープロトコルの元で、ＦＬフィールド２５４のコンテンツが要求されたアクセスタイプは禁止されることを示す場合には、メモリ管理ユニット２４０は例外をアドレス論理２１１へ戻し、レガシープロトコルに従って要求されたアクセスタイプを排除する。拡張プロトコルの元で、ＦＬフィールド２５４およびＥＸフィールド２５２のコンテンツが要求されたアクセスタイプは禁止されることを示す場合には、メモリ管理ユニット２４０は例外をアドレス論理２１１へ戻し、拡張プロトコルに従って要求されたアクセスタイプを排除する。拡張保護論理２４１はＦＬフィールド２５４に従った一組のレガシー保護方式およびＦＬフィールド２５４と結合したＥＸフィールド２５２に従った一組の拡張された保護方式を処理する。ＥＸフィールド２５２内のビットの状態および意味は既存のＦＬフィールド２５４内のビットにより提供されるこれらの表示のさらなる制約またはさらなる定義を与えるように規定される。
【００３７】
既存のフラグフィールド２５４により与えられる表示を拡張する拡張フラグフィールド２５２を提供し、かつレガシーおよび拡張アクセス特権を同時に表示する拡張保護論理２４１を提供することにより、本発明に従ったＣＰＵ２１０はレガシーオペレーティングシステムとのコンパチビリティを保持しながら改善された仮想ページ管理性能の利点を享受することができる。例えば、図２のブロック図は本発明に従ってコンピュータメモリ保護を拡張する機構は図１とそれ同じＴＬＢアーキテクチュア１１５を利用して、関連技術コンピューティングシステム１００のページエントリ１３２が表現することができるものに対応する一組の仮想ページアクセス制約/特権を規定することができ、しかもこれらの拡張制約/特権の表現はレガシーアクセスプロトコルに従った制約/特権の表現とバックワードコンパチブルであることを示している。
【００３８】
次に、図３に本発明に従った典型的なＴＬＢエントリレジスタ３００を示す図が示されている。ＴＬＢエントリレジスタ３００はページマスクフィールド３０１、エントリハイフィールド２１０、エントリロー０フィールド３２０、およびエントリロー１フィールド３３０を有する。エントリハイフィールド３１０は仮想ページ番号（ＶＰＮ２）サブフィールド３１１、グローバル（Ｇ）サブフィールド３１２、およびアプリケーションスペース識別（ＡＳＩＤ）サブフィールド３１３を有する。エントリローフィールド３２０，３３０は対応する物理的フレーム番号（ＰＦＮ０，ＰＦＮ１）サブフィールド３２１，３３１、キャッシュポリシー（Ｃ０，Ｃ１）サブフィールド３２２，３３２，ダーティ（Ｄ０，Ｄ１）サブフィールド３２３，３３３，および有効（Ｖ０，Ｖ１）サブフィールド３２４，３３４を有する。ダーティおよび有効サブフィールド３２３，３３３，３２４，３３４はレガシーアクセスプロトコル設計に対応する既存のフラグを含んでいる。さらに、エントリローフィールド３２０，３３０は拡張アクセスサブフィールド、リードインヒビット（ＲＩ０，ＲＩ１）３２５，３３５および実行インヒビット（ＸＩ０，ＸＩ１）３２６，３３６を有する。リードインヒビットおよび実行インヒビットサブフィールド３２５，３２６，３３５，３３６はレガシーアクセスプロトコル設計に従ってスペアビットフィールド内に与えられる。図３に示す典型的なＴＬＢエントリレジスタ３００はＭＩＰＳ３２ＴＭアーキテクチュアに従ったページテーブルおよびＴＬＢの構造を反映しているが、当業者ならば前記した検討から実質的に任意の今日のマイクロプロセッサアーキテクチュアに対する拡張メモリ保護特徴を、本発明の範囲から著しく逸脱することなく、ここで検討された典型的なＴＬＢエントリレジスタ３００から引出すことができることを理解できる。
【００３９】
動作において、本発明に従ってアドレス論理により発生される仮想アドレスの下位ビットは仮想ページ内へのオフセットとして利用されＴＬＢには与えられない。典型的な実施例では、仮想アドレスは１２ビットオフセット（すなわち、４ＫＢページサイズ）および２０ビット仮想ページ番号を含む３２ビットアドレスである。したがって、メモリ内のページテーブルはＣＰＵによりアドレス可能な全仮想ページ番号に対するエントリを含んでいる。典型的な実施例では、ＣＰＵ上で実行する各アプリケーションには６ビットＡＳＩＤ、すなわちプロセスＩＤが割り当てられる。典型的な実施例に従って、各ページテーブルエントリ３００はアプリケーションのＡＳＩＤの２０ビット仮想ページ番号との連接を対応する２０ビット物理的フレーム番号、キャッシュポリシー、レガシー特権、および拡張特権へマッピングする。典型的なエントリ３００のＶＰＮ２サブフィールド３１１は最下位ビットを除く仮想ページ番号の全ビットを格納する。ＴＬＢ（図示せず）内の論理は最下位ビットを利用して２つのエントリローフィールド３２０，３３０の一方を選択する。最下位ビットが０であれば、エントリロー０ ３２０が選択され、最下位ビットが１であれば、エントリロー１ ３３０が選択される。グローバルサブフィールド３１２はアプリケーションのＡＳＩＤがその仮想ページ番号と共にアドレス変換に使用されるかどうかを指定する。アプリケーションのＡＳＩＤを利用する変換により、そのアプリケーションの多数のインスタンスを同じＣＰＵ上で同時に実行することができる。Ｇ３１２が表明されない場合には、アドレス変換中にＡＳＩＤサブフィールド３１３は無視される。同様に、ページマスクフィールド３０１のコンテンツを利用して変換中に仮想ページ番号の対応するビットが無視される（すなわち、マスクされる）。例えば、典型的なＴＬＢエントリレジスタ３００に従った３２ビット仮想アドレス実施例では、ページマスク３０１は３２ビットエントリである。ページマスク３０１がゼロに設定される場合には、４ＫＢ仮想メモリページが規定される。ページマスク３０１の１４-１３ビットが１に設定される場合には、１６ＫＢ仮想ページサイズが規定される。６４ＫＢページサイズは１６-１３ビットを１に設定することにより規定される。当業者ならば、ページマスク３０１のビットを設定することによりさまざまな他のページサイズも指定できることを理解できる。したがって、仮想ページ番号は対応するプロセスＩＤ（ＡＳＩＤ）と連接されＴＬＢへ提出される。次に、ＴＬＢはページマスクフィールド３０１、およびグローバル３１２およびＡＳＩＤサブフィールド３１３のコンテンツに従って仮想ページ番号の上位ビットをＶＰＮ２ ３１１と一致させる。仮想ページ番号の最下位ビットはエントリロー０ ３２０またはエントリロー１ ３３０を選択する。
【００４０】
エントリローフィールド３２０，３３０は物理的メモリへアクセスするためのオフセットに連接される物理的フレーム番号３２１，３３１を与える。対応する仮想ページに対するキャッシュポリシー（例えば、キャッシャブル、非キャッシャブル）はＣサブフィールド３２２，３３２により規定される。メモリアクセス制約はリードインヒビット、実行インヒビット、ダーティ、および有効サブフィールド３２５，３２６，３２３，３２４，３３５，３３６，３３３，３３４により規定される。レガシーまたは拡張アクセスオペレーティングシステムプロトコルの元で、有効サブフィールド３２４，３３４が表明されなければ、対応するエントリ３００内のデータは有効ではないため例外が表示される。この機構はＣＰＵによるアクセスに利用できないページをマークするのに利用される。レガシーおよび拡張プロトコルの両方の元で、ダーティサブフィールド３２３，３３３はページへのライトが許されるかどうかを示すように機能する。したがって、エントリ３００内のダーティサブフィールド３２３，３３３が表明されると、ライトがイネーブルされる。そうでなければ、このページへのライトはトラップしなければならない。レガシープロトコルの元では、実行とデータ特権との間に区別はない。したがって、有効サブフィールド３２４，３３４はデータアクセスと命令フェッチの両方に対してリードを許可/排除する。
【００４１】
拡張メモリアクセス方式は拡張アクセス特権オペレーティングシステムのある所でリードインヒビットおよび実行インヒビットサブフィールド３２５，３２６，３３５，３３６により対応する仮想メモリページに対してイネーブルされる。このケースでは、インヒビットサブフィールド３２５，３２６，３３５，３３６は、無許可アプリケーションが特定の仮想ページからの読出しを試みる時にデータリードおよび命令フェッチの両方により例外を生じることができるようにライトオンリーアクセスを区別する他に、さらに、データおよび命令（すなわち、実行）アクセス間の区別を行う。
【００４２】
次に、図４に本発明に従った仮想メモリ管理ユニット内の拡張保護論理４０１を示すブロック図４００が示されている。拡張保護論理４０１はレガシーアクセスプロセッサ４０１および拡張アクセスプロセッサ４０２を有する。本発明に従ったアクセス論理は要求されたアクセスタイプを信号４０７を介して両方のプロセッサ４０１，４０２へ与える。ＴＬＢエントリの既存のフラグフィールドのコンテンツは有効信号４０３およびダーティ信号４０４を介してレガシーアクセスプロセッサへ与えられる。レガシープロセッサ４０１はレガシー信号４０３，４０４をレガシー保護特権へ復号して要求されたアクセスタイプが許されるかどうかを決定する。レガシープロセッサ４０１はアクセスｏｋ信号を拡張アクセスプロセッサ４０２への入力として与えることにより、アクセスタイプが許されるかどうかを示す。拡張アクセスプロセッサ４０２はリードインヒビット信号４０５および実行インヒビット信号４０６を介してＴＬＢエントリの拡張フラグフィールドのコンテンツと共にアクセスｏｋ信号を受信する。拡張アクセスプロセッサ４０２はインヒビット信号４０５，４０６を利用してレガシー保護特権の意味をさらに定義する。要求されたアクセスタイプがレガシープロセッサ４０１により許されており、かつリードインヒビット４０５および実行インヒビット４０６の状態も要求されたアクセスタイプが許されることを示す場合には、拡張アクセスプロセッサ４０２は例外信号４０８の状態を設定する。
【００４３】
図５に本発明に従ったＴＬＢエントリによりＴＬＢエントリ内のビット状態の関数として規定されるアクセス保護を図解するテーブル５００が示されている。このテーブル５００は本発明に従ってＴＬＢエントリ、リードインヒビット（ＲＩ）、実行インヒビット（ＸＩ）、ダーティ（Ｄ）、および有効（Ｖ）内の下記のビット状態の関数として仮想メモリページに対して指定することができるアクセス保護を示している。
【００４４】
有効ビットを０に設定することにより仮想メモリページへのアクセスが排除される。一実施例では、レガシーオペレーティングシステムはスペアビットであるためにＲＩおよびＸＩビットを全エントリ内で０に設定する。したがって、レガシーアクセスプロトコルを使用して得られるアクセス制約だけが有する０に設定されたＲＩおよびＸＩでダーティビットの状態を設定することにより、リード/実行オンリーおよびリード/ライト/実行保護が規定される。
【００４５】
本発明に従ってＲＩおよびＸＩの状態を設定することにより、リード/実行オンリーおよびリード/ライト/実行特権がさらに向上される。ＲＩが１に設定され、Ｄは０にＶは１に設定されると、命令フェッチ（すなわち、実行オンリー）以外の操作に対してページは保護される。ＸＩが１に設定され、Ｄは０にＶは１に設定されると、データリード（すなわち、リードオンリー）以外の操作に対してページは保護される。ＲＩおよびＸＩが共に１に設定され、Ｄは０にＶは１に設定されると、データライト（すなわち、ライトオンリー）以外の操作に対してページは保護される。
【００４６】
図２から図５の例はコンピューティングシステムに対する仮想メモリページの保護方式は本発明に従って有効に拡張することができ、同時にコンピューティングシステムのオペレーティングシステムソフトウェアとのバックワードコンパチビリティを保存することを明確に表わしている。バックワードコンパチビリティがある所でのアクセス保護は、既存のアクセス保護ビットの意味を強化するように、既存のＴＬＢエントリ内のスペアビットを利用することにより提供される。スペアビットは既存のアクセス保護ビットの意味を強化するためにしか使用されないため、レガシーメモリ管理コードがある所では既存のアクセス保護ビットの意味は影響を受けない。
【００４７】
本発明の目的、特徴、および利点を詳細に説明してきたが、本発明には他の実施例も含まれる。ハードウェアを使用する実施例の他に、例えば、ソフトウェア（すなわち、コンピュータ読取可能プログラムコード）を格納するように構成されたコンピュータ使用可能（すなわち、読取可能）媒体内に配置されたソフトウェア内に本発明を具現することができる。プログラムコードによりここに開示された本発明の機能または製作、またはその両方、が可能とされる。例えば、これは一般的なプログラミング言語（例えば、Ｃ，Ｃ++，等）、Verilog ＨＤＬ，ＶＨＤＬ，ＡＨＤＬ(Altera Hardware Description Language)等を含むハードウェア記述言語（ＨＤＬ）、または当技術において入手できる他のプログラミングおよび/または回路（すなわち、回路図(schematic)）キャプチャーツールを使用して達成することができる。プログラムコードは半導体メモリ、磁気ディスク、光ディスク（例えば、ＣＤ-ＲＯＭ，ＤＶＤ-ＲＯＭ，等）を含む任意の既知のコンピュータ使用可能媒体内に、コンピュータ使用可能（例えば、読取可能）伝送媒体（例えば、デジタル、光またはアナログベース媒体を含むキャリア波または任意他の媒体）内に具現されるコンピュータデータ信号として配置することができる。このようにして、コードはインターネットおよびイントラネットを含む通信網を介して伝送することができる。前記した本発明により達成される機能および/または提供される構造はプログラムコード内に具現されるコア（例えば、マイクロプロセッサコア）内に表現することができ集積回路の生産の一部としてハードウェアに変換できることが理解される。また、本発明はハードウェアとソフトウェアの組合せとして具現することができる。
【００４８】
さらに、本発明は特に汎用ＣＰＵまたはマイクロプロセッサの点から特徴づけられている。この特徴は、ここでは、本発明の代表的実施例として提示されているが、このような説明は仮想メモリアクセス保護方式拡張の概念の応用を決して限定しようとするものではない。むしろ、本発明は通信プロセッサ、ビデオプロセッサ、セカンドティアメモリ管理ユニット、およびマイクロコントローラを含むあまり広く知られてはいないコンポーネントだけでなく、グラフィックプロセッサ、デジタル信号プロセッサ内でも具現することができる。
【００４９】
さらに、本発明はＭＩＰＳ Technologies, Inc.社から入手できるＭＩＰＳ３２ＴＭおよびＭＩＰＳ６４ＴＭアーキテクチュアにより提供されるある既知の仮想ページ保護特徴を実現することができるＣＰＵに関して特に紹介されている。これらの典型的な保護特徴は本発明を教示するための認識できる基礎を提供するためにここで利用されているが、本発明の応用はこれらのタイプまたはいくつかの保護特徴に制限されるものと解釈してはならない。むしろ、本発明はＭＩＰＳアーキテクチュアＴＬＢまたは任意他のアーキテクチュアまたはメーカのＴＬＢにより提供される任意の形式のページベースアクセス制御拡張をもくろんでいる。
【００５０】
さらに、ここで本発明は一つの仮想ページ番号を二つの物理的ページ番号にマッピングするエントリからなるアドレス変換バッファー（ＴＬＢ）実施例に従って説明されてきており、このようなマッピングは仮想ページ番号の最下位ビットにより制御される。これらのタイプのＴＬＢは当技術においてよく見かけるものではあるが、本発明は他のＴＬＢアーキテクチュアも包含する。例えば、本発明は単一仮想ページ番号を単一物理的ページ番号にマッピングするＴＬＢ構造にも応用することができる。
【００５１】
当業者ならば、本発明の同じ目的を実施する他の構造を設計または修正するための基礎として開示された概念および特定実施例を容易に使用することができ、添付特許請求の範囲に明記された本発明の精神および範囲を逸脱することなくさまざまな変更、置換および修正が可能であることを理解できる。
【図面の簡単な説明】
【００５２】
【図１】アドレス変換バッファーを利用してシステム内の仮想メモリの管理を迅速に処理する関連技術コンピューティングシステムを特徴づけるブロック図である。
【図２】既存のアドレス変換バッファー設計を利用してシステム内の仮想メモリのアクセス保護を拡張する本発明に従ったコンピューティングシステムを図解するブロック図である。
【図３】本発明に従ったＴＬＢエントリレジスタを示す図である。
【図４】本発明に従った仮想メモリ管理ユニット内の拡張保護論理を示すブロック図である。
【図５】本発明に従ったＴＬＢエントリによりその中のビット状態の関数として規定されるアクセス保護を図解するテーブルである。
【図１】
2008282417.tif 000003
【図２】
2008282417.tif 000004
【図３】
2008282417.tif 000005
【図４】
2008282417.tif 000006
【図５】
2008282417.tif 000007