(57)【特許請求の範囲】
【請求項１】
データを処理するための装置であって、
メモリ・アドレス空間内のメモリのページに関連したアクセス管理パラメータを指定するページ・テーブル・データを管理するように構成された処理回路を備え、
各メモリのページに対して、前記アクセス管理パラメータが、
書き込みアクセスが前記ページに対して許可されているか否かを示す書き込み許可フラグと、
前記書き込み許可フラグが書き込みアクセスが前記ページに対して許可されていないことを示す場合、前記ページに対する書き込みアクセスを許可し、且つ、書き込みアクセスが前記ページに対して許可されていることを示すように前記書き込み許可フラグを変更するために、前記書き込み許可フラグの動作を無効にすることが許可されるか否かを示す、ダーティ・ビット修飾フラグと、
を含む、前記装置。
【請求項２】
前記処理回路に結合されたハードウェア更新メモリ管理回路を備え、前記ハードウェア更新メモリ管理回路が、書き込みアクセスが前記ページに対して許可されていないことを示す書き込み許可フラグを有するページに対する前記処理回路による書き込みの発生に対して、前記書き込み許可フラグに関連した前記ダーティ・ビット修飾フラグを読み出し、且つ前記ダーティ・ビット修飾フラグが前記書き込み許可フラグの動作が無効にされることを許可されていることを示している場合に前記書き込みアクセスを許可し、且つハードウェア制御動作として前記書き込み許可フラグの前記変更を実行することにより、応答するように構成される、請求項１に記載の装置。
【請求項３】
前記ハードウェア更新メモリ管理回路が、前記ダーティ・ビット修飾フラグの前記読み出し及び前記書き込み許可フラグの変更をアトミック操作として実行するように構成される、請求項２に記載の装置。
【請求項４】
前記処理回路が、ハードウェア制御のページ・テーブル・データ管理を実行するように構成される、請求項２又は３に記載の装置。
【請求項５】
前記処理回路が、
ソフトウェア制御の下で処理動作を実行し、且つハードウェア制御のページ・テーブル・データ管理を実行するように構成された汎用目的プロセッサと、
ハードウェア制御のページ・テーブル・データ管理を実行するように構成されたグラフィック処理ユニットと、
ハードウェア制御のページ・テーブル・データ管理を実行するように構成されたダイレクト・メモリ・アクセス・ユニットと、
の内の１つである、請求項２から４までのいずれか一項に記載の装置。
【請求項６】
前記処理回路に結合されたソフトウェア更新メモリ管理回路を備え、前記ソフトウェア更新メモリ管理回路が、書き込みアクセスがページに対して許可されていないことを示す書き込み許可フラグを有する前記ページに対する前記処理回路による書き込みアクセスの発生に対して、ソフトウェア管理の例外処理を前記処理回路により起動することにより応答するように構成され、前記ソフトウェア管理の例外処理が前記書き込み許可フラグの前記変更を含む、請求項１から５までのいずれか一項に記載の装置。
【請求項７】
処理回路が、前記書き込み許可フラグ及びダーティ・ビット修飾フラグを含む前記ページ・テーブル・データを管理するオペレーティング・システム・プログラムを実行するように構成される、請求項６に記載の装置。
【請求項８】
前記処理回路が、ソフトウェア制御のページ・テーブル・データ管理を実行するように構成される、請求項６又は７に記載の装置。
【請求項９】
前記処理回路が、ソフトウェア制御のページ・テーブル・データ管理を含むソフトウェア制御の下で処理動作を実行するように構成された汎用目的プロセッサを備える、請求項６から８までのいずれか一項に記載の装置。
【請求項１０】
前記処理回路が、第１の処理回路及び第２の処理回路を備え、
前記第１の処理回路に結合されたソフトウェア更新メモリ管理回路であって、書き込みアクセスが前記ページに対して許可されていないことを示す書き込み許可フラグを有するページに対する前記処理回路による書き込みアクセスの発生に対して、前記書き込み許可フラグの前記変更を含む前記ソフトウェア管理の例外処理を前記処理回路により起動することにより応答するように構成されたソフトウェア更新メモリ管理回路と、
前記第２の処理回路に結合されたハードウェア更新メモリ管理回路であって、書き込みアクセスが前記ページに対して許可されていないことを示す書き込み許可フラグを有するページに対する前記処理回路による書き込みアクセスの発生に対して、前記書き込み許可フラグに関連した前記ダーティ・ビット修飾フラグを読み出し、且つ、前記ダーティ・ビット修飾子が前記書き込み許可フラグの動作が無効にされることを許可されていることを示す場合に前記書き込みアクセスを許可し、且つハードウェア制御動作として前記書き込み許可フラグの前記変更を実行することにより、応答するように構成されたハードウェア更新メモリ管理回路と、
を備える、請求項１から９までのいずれか一項に記載の装置。
【請求項１１】
前記第１の処理回路及び前記第２の処理回路により共有される共有メモリを備え、且つ、前記ページ・テーブル・データが前記共有メモリ内に格納される、請求項１０に記載の装置。
【請求項１２】
前記第１の処理回路が、前記共有メモリ内の前記ページ・テーブル・データを初期化するように構成される、請求項１１に記載の装置。
【請求項１３】
前記書き込み許可フラグの異なる値が、それぞれ、
読み取り専用アクセス許可が前記ページに対して許可されていることと、
読み取り及び書き込みアクセス許可が前記ページに対して許可されていることと、
の内の１つを示す、請求項１から１２までのいずれか一項に記載の装置。
【請求項１４】
前記ページ・テーブル・データが、１つ又は複数のオペレーティング・システムによるアクセスを管理するためのハイパーバイザー・ページ・テーブル・データ及び前記１つ又は複数のオペレーティング・システムのそれぞれのためのオペレーティング・システム・ページ・テーブル・データを含む、請求項１から１３までのいずれか一項に記載の装置。
【請求項１５】
前記ハイパーバイザー・ページ・テーブル・データが、ハイパーバイザー書き込み許可フラグを含み、前記ハイパーバイザー書き込み許可フラグの異なる値が、それぞれ、
書き込みアクセスが、読み取りアクセスが前記ページに対して許可されているか否かに関係なく前記ページに対して許可されていないことと、
書き込みアクセスが、読み取りアクセスが前記ページに対して許可されているか否かに関係なく前記ページに対して許可されていることと、
の内の１つを示す、請求項１４に記載の装置。
【請求項１６】
前記ページ・テーブル・データが、前記ページに対して仮想メモリ・アドレス空間内の前記ページの仮想アドレスと物理アドレス空間内の前記ページの物理アドレスとの間の対応付けを指定する、請求項１から１５までのいずれか一項に記載の装置。
【請求項１７】
共有仮想アドレス・メモリとして働くメモリ回路を備える、請求項１６に記載の装置。
【請求項１８】
データを処理するための装置であって、
メモリ・アドレス空間内のメモリのページに関連したアクセス管理パラメータを指定するページ・テーブル・データを管理するための処理手段を備え、
各メモリのページに対して、前記アクセス管理パラメータが、
書き込みアクセスが前記ページに対して許可されているか否かを示す書き込み許可フラグと、
前記書き込み許可フラグが書き込みアクセスが前記ページに対して許可されていないことを示す場合、前記ページに対する書き込みアクセスを許可し、且つ、書き込みアクセスが前記ページに対して許可されていることを示すように前記書き込み許可フラグを変更するために、前記書き込み許可フラグの動作を無効にすることが許可されるか否かを示すダーティ・ビット修飾フラグと、
を含む、前記装置。
【請求項１９】
データを処理する方法であって、
ページに関連したアクセス管理パラメータを指定するページ・テーブル・データを使用したメモリ・アドレス空間内のメモリの前記ページへのアクセスを管理するステップを含み、
各メモリのページに対して、前記アクセス管理パラメータが、
書き込みアクセスが前記ページに対して許可されているか否かを示す書き込み許可フラグと、
前記書き込み許可フラグが書き込みアクセスが前記ページに対して許可されていないことを示す場合、前記ページに対する書き込みアクセスを許可し、且つ、書き込みアクセスが前記ページに対して許可されていることを示すように前記書き込み許可フラグを変更するために、前記書き込み許可フラグの動作を無効にすることが許可されるか否かを示すダーティ・ビット修飾フラグと、
を含む、前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。より詳細には、本発明は、このようなデータ処理システム内のページ・テーブル・データの管理に関する。
【背景技術】
【０００２】
メモリの領域を管理するためにページ・テーブル・データをデータ処理システムに提供することが知られている。例えば、このようなページ・テーブル・データは、仮想アドレスと物理アドレス間の対応付け、データのページヘのアクセス権限、及びページがキャッシュ可能か否かなどといった、データのページについてのその他のプロパティを指定することができる。作業メモリ内に、例えばハードディスクなどの不揮発性記憶装置からコピーされた後にデータのページが変更されていることを示すダーティ・ビット情報をページ・テーブル・データ内に含むことが知られている。このようなダーティ・ビット情報は、データのページが作業用メモリから除去され、且つ不揮発性記憶装置へ返却される場合に、このページに対するダーティ・ビットが、ページが変更されていないことを示している場合、このデータのページを不揮発性記憶装置にコピーする必要がないので有益である。さらに、このようなダーティ・ビット情報は、データの新規ページのページイン（不揮発性記憶装置から作業用メモリへのコピー）が望まれる場合に、ページアウト（作業用メモリから不揮発性記憶装置へのコピーバック）されるべき有力な候補を特定するために使用され得る。
【０００３】
このようなダーティ・ビット情報を管理する１つの方法は、最初の書き込みアクセスがメモリのページ内のメモリ・アドレスに対してなされた時に、メモリのページに関するダーティ・ビット情報を更新する能力を備えたメモリ管理ユニット・ハードウェアを提供することである。このようなページ・テーブル・データ内のダーティ・ビット情報のハードウェア・ベースの更新は、速度面の利点を有するが、ハードウェアの複雑さを増加させる。
【０００４】
メモリ・アドレス空間内のメモリのページのダーティ状態の管理のための別の手法は、ソフトウェア・ベースの管理を使用することである。この技術では、ページインされるそれぞれの新規ページは、読み取り専用としてマークされる。このページに対して書き込みが行われようとすると、ソフトウェア例外が発生する。そこで、ソフトウェア例外処理プログラムは、このページが書き込みを許可されているか否かを決定することができる。書き込みが許可される場合、ページの状態は、書き込み許可に変更され、且つページは、ダーティとマークされる。このページへの書き込みが許可されていない場合、さらに、書き込み許可失敗例外が通常の方法で処理される。このようなソフトウェア・ベースの管理技術は、データのページへの最初の書き込みを捕捉し、ページにダーティとマークする働きをする。その後、ページは、例外を発生することなく書き込みを許可するようにマークされ、したがって、その後の書き込み動作が遅くなることはない。この手法に伴う問題は、例外を引き起こす書き込みを発生させる処理回路が、通常、ソフトウェア例外処理要求を実行する能力を備えている必要があるということである。例外処理コードの実行を回路自体が取り扱うこの能力を備えていない処理回路は、代わりとなって例外処理を実行することになる異なる処理回路に対する割り込みを引き起こすことになろう。しかしながら、この手法は低速である。
【０００５】
従来技術の更なる問題は、同一のページ・テーブル・データを共有するシステム、例えば、共有仮想メモリ・システム内に、ダーティ状態のハードウェア・ベースの管理とダーティ状態のソフトウェア・ベースの管理とを組み合わせることができないということである。ハードウェア・ベースの手法は、該当ページに対する最初の書き込み時に行われたダーティ状態へのハードウェア・ベースの更新によって、ページが最初から書き込みが許可されているものと適切にマークされていることに依存している。これに対して、ソフトウェア・ベースの手法は、ページが最初に作業用メモリに置かれた時、ページが、書き込みが許可されていないとマークされていることに依存し、この状態は、例外を引き起こし、且つ書き込みが許可されているとマークされているページに変更するために使用され、且つダーティ状態は、当該ページに最初にアクセスした時に設定される。このように、ページ・テーブル・データの使用は、これらの２つの手法間で互換性がない。
【発明の概要】
【課題を解決するための手段】
【０００６】
本発明は、ある態様から見ると、データを処理するための装置であって、
メモリ・アドレス空間内のメモリのページに関連したアクセス管理パラメータ指定するページ・テーブル・データを管理するように構成された処理回路を備え、
各メモリのページに対して、前記アクセス管理パラメータが、
書き込みアクセスが前記ページに対して許可されているか否かを示す書き込み許可フラグと、
前記書き込み許可フラグが書き込みアクセスが前記ページに対して許可されていないことを示す場合、前記ページに対する書き込みアクセスを許可し、且つ、書き込みアクセスが前記ページに対して許可されていることを示すように前記書き込み許可フラグを変更するために、前記書き込み許可フラグの動作を無効にすることが許可されるか否かを示すダーティ・ビット修飾フラグと、
を含む、装置を提供する。
【０００７】
本技術は、共有されたページ・テーブル・データ内のダーティ状態のソフトウェア・ベースの管理及び共有されたページ・テーブル・データ内のダーティ状態のハードウェア・ベースの管理の両者を用いる異種混合システムをサポートすることが可能であることが望ましいことを認識している。これらの手法の両者を同時にサポートするために、本技術は、書き込み許可フラグそれ自身は、書き込みアクセスが許可されていないことを示す場合、書き込み許可フラグの動作が書き込みアクセスを許可するために無効にされ得て、且つ、書き込みアクセスが許可されていることを示す書き込み許可フラグを変更することを示すダーティ・ビット修飾フラグを追加している。このように、ダーティ・ビット修飾フラグは、書き込み許可フラグを修飾し、書き込み許可が本当に許可されていないか否か、又はページヘの最初のアクセスを捕捉すること、したがって、ページのダーティ状態のソフトウェア・ベースの管理を許可する目的が許可されていないか否かを示す。
【０００８】
通常、ページのダーティ状態のハードウェア・ベースの管理を実行するメモリ管理ユニット、すなわちハードウェア更新メモリ管理回路は、ダーティ・ビット修飾フラグを利用するために修正が必要となる。具体的には、このようなハードウェア更新メモリ管理回路は、書き込み許可フラグに関連したダーティ・ビット修飾フラグを読み出し、且つダーティ・ビット修飾フラグが書き込み許可フラグの動作が無効にされ得ることを示す場合、実行されるべき書き込みアクセスを許可すること、及びハードウェア制御動作として（すなわち、何らのソフトウェアの実行も要求しない）書き込みアクセスが許可されることを示すように書き込み許可フラグを変更することにより、書き込みアクセスが許可されていないことを示す書き込み許可を持つページに対する書き込みアクセスの発生に応答するように形成される。
【０００９】
ページ・テーブル・データの整合性を保護するためには、ハードウェア更新メモリ管理ユニットが、ダーティ・ビット修飾子及び書き込み許可フラグを含むページ・テーブル・データの読み込み、及び変更された書き込み許可フラグを持つページ・テーブル・データをアトミック操作として書き込むことを実行する、すなわち、如何なるエージェントも読み込みと書き込みの間にページ・テーブル・データを修正することができないように２つの動作が同時に完了するように構成されることが望ましい。このようなアトミック操作は、例えば、書き込み許可フラグ及びダーティ・ビット修飾フラグを含むページ・テーブル・データを更新するためにリード・モディファイ・ライト操作を使用することにより強制される。
【００１０】
このようなハードウェア更新メモリ管理回路と関連付けられ得る処理回路は、多様な異なる形態を取り得ることが理解されるであろう。このような形態の処理回路の実例には、ソフトウェア制御のもとで処理操作を実行するように構成され、且つハードウェア更新管理回路を使用してハードウェア制御データ管理を実行するように構成される汎用プロセッサが含まれる。その他の実例には、それぞれハードウェア制御ページ・テーブル・データ管理を実行するように構成された、グラフィック処理ユニット及び／又はダイレクト・メモリ・アクセス・ユニットが含まれる。
【００１１】
他の実施例では、１つ又は複数のソフトウェア更新メモリ管理回路のインスタンスをハードウェア更新メモリ管理回路の替わりに、又は組み合わせて利用することができる。このようなソフトウェア更新メモリ管理回路は、ソフトウェア管理の例外処理が書き込み許可フラグの変更を含むソフトウェア管理の例外処理を起動することにより、書き込みアクセスが許可されていないことを示す書き込み許可フラグを有するページに対する書き込みアクセスに応答する。このようなソフトウェア管理の例外処理は、ソフトウェアが、書き込み許可フラグが変更されるべきであるか否かを示すその他の情報にアクセスすることができるので、書き込み許可フラグが変更されるべきであるか否かを決定するためにダーティ・ビット修飾フラグを読み込むことも、読み込まないこともできる。しかしながら、ダーティ・ビット修飾フラグの読み込みは、ソフトウェア更新メモリ管理回路が、書き込み許可フラグが変更され、且つ書き込みが許可されるべきであるか否かを決定するための高速な方法であろう。ソフトウェア更新メモリ管理回路は、書き込み許可フラグを修正し、且つ、それによってページのダーティ状態を捕捉することに関する限りは、少なくとも部分的には、ページ・テーブル・データの更新を管理するソフトウェアを実行する汎用目的プロセッサを含むことができる。
【００１２】
いくつかの実施例では、ページ・テーブル・データを管理する処理回路は、上記の技術に従って書き込み許可フラグ及びダーティ・ビット修飾フラグを管理する能力含むオペレーティング・システム・プログラムを実行することができる。このような処理回路は、ソフトウェア制御の基で処理操作を実行して、これらの処理操作がソフトウェア制御のページ・テーブル・データ管理を含むように構成された汎用目的プロセッサを備えることができる。
【００１３】
前述のように、本技術は、ハードウェア更新メモリ管理回路の１つ又は複数のインスタンス、ソフトウェア更新メモリ管理回路の１つ又は複数のインスタンス、或いはこれらの混在したものを含むシステム内で用いられ得るであろう。仮想アドレス空間を共有し、したがってページ・テーブル・データを共有することが望ましいその他の回路素子と混在され得る、様々な異なるシステム・オン・チップ集積回路内に展開され得る、単一設計の回路ブロック有することが望ましいので、システムが異種混合（すなわち、ハードウェア更新メモリ管理回路及びソフトウェア更新メモリ管理回路の混在したものを含むシステム）ではない場合にも本技術を利用する利点がある。さらに、均質なシステムでは、本技術は、異種混在システムとのソフトウェア互換性を改善することができる。
【００１４】
本技術の特有の利点は、同一のページ・テーブル・データを共有するソフトウェア更新メモリ管理回路及びハードウェア更新メモリ管理回路両者の組合せを利用する実施例において生起する。このような実施例では、ソフトウェア更新メモリ管理回路を用い、したがってプログラム命令を実行する能力を有する処理回路は、共有メモリ内のページ・テーブル・データを初期化する責任があって、この初期化が、一般に最も簡便に、初期ブート上といったソフトウェア・タスクとして実行されるということは、便利なことが多い。
【００１５】
書き込み許可フラグは、様々な異なる形態を取ることができ、フラグの意味に結び付けられた付加的な情報を有することができる。いくつかの実施例において、書き込み許可フラグは、ページヘの「読み取り専用」アクセス許可、又はページヘの「読み取り且つ書き込み」アクセス許可のいずれか１つを示すことができる。
【００１６】
本技術は、ページ・テーブル・データを使用してメモリ管理（変換）の所与の段階、例えば、オペレーティング・システム・プログラム及び等価的ハードウェア・ベースの制御を利用する段階に関連して使用され得る。本技術は、１つ又は複数のゲスト・オペレーティング・システムによるアクセスを管理するためのハイパーバイザー・ページ・テーブル・データ及びこれらの１つ又は複数のゲスト・オペレーティング・システムによる使用のためのオペレーティング・システム・ページ・テーブル・データ両者を含むシステム等の、複数段階のページ・テーブル・データを利用するシステム内で用いることができる。
【００１７】
ハイパーバイザー・ページ・テーブル・データを使用するシステムという文脈において、ハイパーバイザー・ページ・テーブル・データは、読み取りアクセスがページに対して許可されているか否かと独立にページヘの書き込みが許可されているか否かを示すために働くハイパーバイザー書き込み許可フラグを含むことができる。ハイパーバイザーという文脈において、ページヘの書き込みアクセスを提供するが、このページヘの読み取りアクセスは提供しないことが適切であり得る状況がある。
【００１８】
これまでに論じたように、ページ・テーブル・データは、管理されるべきデータのページに関する様々なその他の情報を提供する働きをすることができる。いくつかの実施例では、このページ・テーブル・データは、仮想メモリ・アドレス空間内のページの仮想アドレスと物理アドレス・ページ内のページの物理アドレスと間の対応付けをページに対して指定することができる。このことは、共有仮想アドレス・メモリとして、メモリ回路を支援する際に有用である。
【００１９】
本発明は、別の態様から見ると、データ処理のための装置であって、
メモリ・アドレス空間内のメモリのページに関連したアクセス管理パラメータを指定するページ・テーブル・データを管理するための手段を備え、
メモリの各ページに対して、前記アクセス管理パラメータが、
書き込みアクセスが前記ページに対して許可されているか否かを示す書き込み許可フラグと、
前記書き込み許可フラグが前記ページに対して書き込みアクセスが許可されていないことを示す場合に、前記ページに対する書き込みアクセスを許可し、且つ、書き込みアクセスが前記ページに対して許可されていることを示すように前記書き込み許可フラグを変更するために、前記書き込み許可フラグの動作を無効にすることが許可されているか否かを示すダーティ・ビット修飾フラグと、
を含む、装置を提供する。
【００２０】
本発明は、さらに別の態様から見ると、データを処理する方法であって、
ページに関連したアクセス管理パラメータを指定するページ・テーブル・データを使用してメモリ・アドレス空間内のメモリの前記ページへのアクセスを管理するステップを含み、
各メモリのページに対して、前記アクセス管理パラメータが、
書き込みアクセスが前記ページに対して許可されているか否かを示す書き込み許可フラグと、
前記書き込み許可フラグが前記ページに対して書き込みアクセスが許可されていないことを示す場合に、前記ページに対する書き込みアクセスを許可し、且つ、書き込みアクセスが前記ページに対して許可されていることを示すように前記書き込み許可フラグを変更するために、前記書き込み許可フラグの動作を無効にすることが許可されているか否かを示すダーティ・ビット修飾フラグと、
を含む、方法を提供する。
【００２１】
本発明は、添付の図面に説明される実施例を参照して、例としてのみ、さらに説明する。
【図面の簡単な説明】
【００２２】
【図１】共有ページ・テーブル・データを用いて仮想メモリ・アドレス空間を共有する処理回路の複数のインスタンスを含むデータ処理システムを示す図である。
【図２】ページ・テーブル・データのエントリを示す図である。
【図３】ハードウェア更新メモリ管理回路の複数のインスタンスを含むデータ処理システムを示す図である。
【図４】それぞれのページ・テーブル・データにより管理される複数段階の変換を用いるシステム内のハイパーバイザーとゲスト・オペレーティング・システムとアプリケーション・プログラムとの関係を示す図である。
【図５】ハイパーバイザー・ページ・テーブル・データの実例を示す図である。
【図６】ソフトウェア更新メモリ管理回路の動作を示す流れ図である。
【図７】ハードウェア更新メモリ管理回路の動作を示す流れ図である。
【図８】ページがダーティであるか否かを照会する場合に実行される処理を示す流れ図である。
【発明を実施するための形態】
【００２３】
図１は、汎用目的プロセッサ４、ダイレクト・メモリ・アクセス・ユニット６及びグラフィック処理ユニット８を備える複数インスタンスの処理回路を含むデータ処理システム２を示す図である。汎用目的プロセッサ４、ダイレクト・メモリ・アクセス・ユニット６及びグラフィック処理ユニット８は、汎用目的プロセッサ４、ダイレクト・メモリ・アクセス・ユニット６及びグラフィック処理ユニット８のそれぞれにより、共有のページ・テーブル・データ２４を使用して仮想的にアドレス付けされる作業用メモリ１０を共有する。
【００２４】
汎用目的プロセッサ４は、アプリケーション・プログラム１４、１６に代わってメモリ・アドレス空間のページへのアクセスを管理するオペレーティング・システム１２を走行させるためにソフトウェア・プログラム命令を実行する。汎用目的プロセッサ４は、ソフトウェア更新メモリ管理回路１８に供給される仮想メモリ・アドレス空間内の仮想アドレスを生成する。ソフトウェア更新メモリ管理回路１８は、仮想対物理アドレス変換並びに実行されるべきメモリ・アクセスに関係した権限の検査を実行する。これらの権限は、書き込みアクセスが許可されているか否かを含むことができる。ソフトウェア更新メモリ管理回路１８は、作業用メモリ１０の物理アドレス空間内の物理アドレスを生成し、且つキャッシュ２０へこのアドレスを引き渡す。メモリ・アクセスは、キャッシュ２０から提供され得る、又は通常の技術に従ってメモリ１０から提供され得る。作業用メモリ１０は、ハードディスク・ドライブなどの不揮発性記憶装置２２に結合されて、データのページは作業用メモリ１０にハードディスク・ドライブ２２からページイン及びページアウトされ得る。作業用メモリ１０は、処理回路４、６、８のインスタンスのそれぞれにより共有されるページ・テーブル・データ２４を格納する。
【００２５】
ダイレクト・メモリ・アクセス・ユニット６は、ハードウェア更新メモリ管理回路２６により物理アドレスに変換される仮想アドレスを生成する。グラフィック処理ユニット８は、ハードウェア更新メモリ管理回路２８により物理アドレスに変換されて、物理アドレスはキャッシュ・メモリ３０を介して作業用メモリ１０に引き渡される仮想アドレスを使用したメモリ・アクセスを生成する。書き込みアクセス要求に応答して、ハードウェア更新メモリ管理回路２６、２８のそれぞれは、以下に説明するように、書き込み許可フラグ及びダーティ・ビット修飾フラグに対してアトミック・ハードウェア更新操作を実行する。このようなアトミック操作は、操作の異なる部分が分割されない、例えば、ダーティ・ビット修飾子及び書き込み許可フラグを含むページ・テーブル・データの読み出し、並びに、変更された書き込み許可フラグを有するページ・テーブル・データの書き込みが、アトミック操作として実行される、すなわち、何らのエージェントも読み取り及び書き込みの間にページ・テーブル・データを修正できないように、２つの動作が同時に完了するというように、異なる部分の操作がすべて実行される、又は異なる部分の操作がすべて実行されないというものである。このようなアトミック操作の実装例は、リード・モディファイ・ライト操作である。ハードウェア更新メモリ管理回路２６、２８は、書き込み許可フラグ及びダーティ・ビット修飾フラグを読み出し、書き込み許可フラグを修正し、次いで書き込み許可フラグをページ・テーブル・データ２４に書き戻す。これらの処理は、読み出しと書き込みとの間のページ・テーブル・データ変更の可能性を避けるために自動的に取り扱われる必要がある。
【００２６】
ソフトウェア更新メモリ管理回路１８は、書き込みアクセスが実行されるべき場合、関係したデータのページに対する書き込み許可フラグを読み取る。この書き込み許可フラグを含むページ・テーブル・データは、作業用メモリ１０から読み出される、又は、ソフトウェア更新メモリ管理回路１８内に（例えば、トランスレーション・ルックアサイド・バッファ内に）キャッシュされ得る。書き込み許可フラグが、書き込みアクセスが許可されていないことを示している場合、ソフトウェア更新メモリ管理回路１８は、ソフトウェア管理の例外処理を実行するために汎用目的プロセッサ４を起動するソフトウェア例外を発生させる。ソフトウェア管理の例外処理が、書き込みアクセスが適切になされるべきものである、すなわち、書き込み許可フラグが、書き込みアクセスが最初の書き込みアクセスを捕捉し、且つダーティ状態を設定する目的のために許可されていなかったと判定した場合、ソフトウェア管理の例外処理は、自動的に書き込みアクセスがそれ以降許可されることを示すように書き込み許可フラグを更新し、且つ、関係した書き込みアクセスを進めることができる。要求された書き込みアクセスが、純粋に進行させるべきではないものである場合、このような状況に応答する通常の例外処理が続けられる。オペレーティング・システム１２は、このような例外処理を取り扱うことができる。ソフトウェア管理の例外処理は、書き込み許可フラグの動作が、書き込みアクセスを進めること許可し、且つ、書き込み許可フラグの更新を引き起こすように無効にされ得るか否かを判定するためにダーティ・ビット修飾フラグを利用することができる。或いは、ソフトウェア管理の例外処理は、書き込み許可フラグがその他のデータ又は機構を使用して無効にされ得るか否かを判定することができる。ダーティ・ビット修飾フラグは、必要に応じてこのような指示に対して迅速なアクセスを提供する。
【００２７】
ハードウェア更新メモリ管理回路２６、２８は、ダイレクト・アクセス・ユニット６及びグラフィック処理ユニット８のそれぞれ一方により、書き込みアクセスが求められているデータのページの書き込み許可フラグに関連したダーティ・ビット修飾フラグを読み取ることにより書き込みアクセスの発生に応答する。書き込み許可フラグが、書き込みアクセスが許可されていないことを示している場合、ダーティ・ビット修飾フラグに対して読み取られた値は、この書き込み許可フラグの動作が無効にされ得るか否かを示す。書き込み許可フラグの動作が無効にされるべきである場合、書き込みアクセスは許可され、且つハードウェア更新メモリ管理回路２６、２８は、将来のこのページに対する書き込みアクセスが許可されることを示すように書き込み許可フラグを変更する。このように、ダーティ・ビット修飾フラグは、ハードウェア更新メモリ管理回路２６、２８に対して、書き込み許可フラグが、ページヘの最初の書き込みアクセスを捕捉し、したがってページのダーティ状態を書き留める目的のために書き込みが許可されていないことを示すために設定されている、又は書き込みアクセスが、最初の書き込みの試み及びすべての後続の書き込みアクセスの試みの両者に対して書き込み許可フラグが変更されるまで当該ページに対して純粋に許可されるべきではないことから、そのように設定されているのか否かを示すように働く。
【００２８】
ページ・テーブル・データ内の書き込み許可フラグ及びダーティ・ビット修飾フラグの使用は、ソフトウェア更新メモリ管理回路１８及びハードウェア更新メモリ管理回路２６、２８両者が、データ処理システム２内に同時に存在し、且つページ・テーブル・データ４を共有することを可能とすると共に、書き込みアクセスがソフトウェア更新メモリ管理回路１８を介して、又はハードウェア更新メモリ管理回路２６、２８を介して発生するか否かに関わりなくページのダーティ状態を追跡し、且つ書き留める能力を維持することを許可する。
【００２９】
図２は、オペレーティング・システム１２により初期化されるページ・テーブル・データのエントリを示す。このページ・テーブル・データのエントリは、仮想対物理アドレスの対応付けデータ３２及びアクセス制御データ３４などのデータを含む。アクセス制御データは、書き込み許可フラグＡＰ［２］を含む。この書き込み許可フラグが「１」の値を有する場合、これはページに対する読み取り専用アクセスを示す。この書き込み許可フラグが「０」の値を有する場合、これは読み取り及び書き込みアクセスがページに対して許可されていることを示す。
【００３０】
また、アクセス制御データ３４は、ダーティ・ビット修飾フラグＤＢＭを含む。ダーティ・ビット修飾フラグが、「１」の値を有する場合、これは、書き込み許可フラグＡＰ［２］の動作が無効にされ、且つ、書き込み許可フラグＡＰ［２］の値が「１」であっても、書き込みアクセスが許可され得ることを示す。ダーティ・ビット修飾フラグの値が「０」である場合、書き込み許可フラグの動作の無効化は、許可されない。
【００３１】
図３は、各々がそれぞれハードウェア更新メモリ管理回路４２、４４を有し、これらによって通信が共有ページ・テーブル・データ４８を含む共有メモリ４６に対して行われる２つの汎用目的プロセッサ３８、４０を含むデータ処理システム３６を示す。この例示的な実施例では、メモリの各ページに対するページ・テーブル・データ４８は、これまでに説明したように、書き込み許可フラグ及びダーティ・ビット修飾フラグの両者を含む。書き込み許可フラグ及びダーティ・ビット修飾フラグの両者を含むページ・テーブル・データを利用することができるその他の形態のデータ処理システムは、ソフトウェア更新メモリ管理回路のみ、ハードウェア更新メモリ管理回路のみ、又は両者の混在を含むデータ処理システムを含む。
【００３２】
図４は、ハイパーバイザー５０と２つのゲスト・オペレーティング・システム５２、５４とそれぞれのアプリケーション・プログラム５６、５８、６０、６２、６４との間の関係を示す。ゲスト・オペレーティング・システム５２、５４は、ゲスト・オペレーティング・システムそれぞれのアプリケーション・プログラム５６から６４までの代わりにメモリのページへのアクセスを管理するためにオペレーティング・システムのページ・テーブル・データを使用する。このオペレーティング・システムのページ・テーブル・データは、仮想アドレスを物理アドレスに対応付けるデータ、並びにアクセス権限及びその他のメモリのページの特性を制御するデータを含む。
【００３３】
ハイパーバイザー５０は、それぞれのゲスト・オペレーティング・システム５２、５４のためのメモリのページへのアクセスを管理するためにハイパーバイザー・ページ・テーブル・データを使用することができる。このハイパーバイザー・ページ・テーブル・データは、図５に示されており、オペレーティング・システム物理アドレスをハイパーバイザー物理アドレスへ対応付けるマッピング・データ６６を含むことができる。ハイパーバイザー・ページ・テーブル・データ内のアクセス制御データ６８は、ハイパーバイザー書き込み許可フラグＨＡＰ［２］を含む。ハイパーバイザー書き込み許可フラグが「１」の値を有する場合、これは、書き込みが関係するページに対して許可されていることを示す。ハイパーバイザー書き込み許可フラグの値が「０」であれば、これは、書き込みが該当ページに対して許可されていないことを示す。ハイパーバイザー書き込み許可フラグＨＡＰ［２］の動作は、（別のフラグで示され得る）読み取りアクセスが該当ページに対して許可されているか否かと無関係である。ハイパーバイザー・ページ・テーブル・データはまた、ハイパーバイザー書き込み許可フラグに関連したダーティ・ビット修飾フラグＤＢＭを含む。ダーティ・ビット修飾フラグが「１」の値を有する場合、これは、ハイパーバイザー書き込み許可フラグの動作が無効にされ得ることを示す。同様に、ダーティ・ビット修飾フラグが「０」の値を有する場合、これは、ハイパーバイザー書き込み許可フラグの動作が無効にできないことを示す。
【００３４】
図６は、ソフトウェア更新メモリ管理回路１８の動作を示す流れ図である。ステップ７０において、処理は、ページヘの書き込みアクセスが受信されるまで待機する。次いで、ステップ７２は、関係するデータのページに対する書き込み許可フラグを読み取る。ステップ７４は、書き込み許可フラグが、書き込みが許可されていることを示しているか否かを判定する。書き込み許可フラグが、書き込みが許可されていることを示している場合、ステップ７６は、この書き込みを実行し、処理はステップ７０に戻る。書き込み許可フラグが、書き込みが許可されていないことを示している場合、ステップ７８は、ソフトウェア例外を起動し、図１の汎用目的プロセッサ４などの、関連した処理回路が、ソフトウェア例外処理を実行するために起動される。ステップ８０において、ソフトウェア例外処理は、任意選択で、ステップ７２で得た書き込み許可フラグと関連したダーティ・ビット修飾フラグを読み出す。ステップ８２は、書き込み許可フラグによって示された書き込み許可の無効化が許可されているか否かを判定する。無効にすることが許可されていない場合、ステップ８４は、標準的技術に従って許可エラーとして処理を続行する。ステップ８２が、無効にすることが許可されていることを示す場合、ステップ８６は、書き込みが許可されていることを示すように書き込み許可フラグを変更する働きをし、書き込みアクセスが実行されるステップ７６に進む。
【００３５】
図６の処理の全体的な動作は、ページ・テーブル・データが初期化された時、すべてのページに対する書き込み許可フラグが、読み出しアクセスのみが継続的にこれらのページに有効であることを意図しているか否かに関わりなく読み取り専用に設定されることである。最初の書き込みアクセスがページに対して発生した時、設定されたデフォルトの読み取り専用の許可は、呼び出されるべき図６のソフトウェア例外処理を起動する。このソフトウェア例外処理は、ダーティ・ビット修飾フラグ（又はその他のデータ）から、関係するメモリのページが、書き込み許可が真にブロックされるべきである、又は書き込み許可フラグが最初の書き込みアクセスを捕捉し、そこでページをダーティ（すなわち、ページが少なくとも１回の書き込みアクセスがそのページに対してなされた）として書き留める目的のために読み取り専用に設定されているものであるか否かを判定する。
【００３６】
図７は、ハードウェア更新メモリ管理回路２６、２８、４２、４４の動作を示す流れ図である。ステップ８８において、処理はページヘの書き込みアクセスがなされるまで待機する。ステップ９０において当該ページに対する書き込み許可フラグが読み取られる。ステップ９２は、書き込み許可フラグが、書き込みが当該ページに対して許可されていることを示しているか否かを判定する。書き込みが許可されている場合、ステップ９４は、書き込みを実行する。書き込みが、書き込み許可フラグにより示されるように許可されていない場合、ステップ９５は、ページに対する対応するダーティ・ビット修飾フラグを読み取る。次いで、ステップ９６は、ダーティ・ビット修飾フラグに基づいて、書き込み許可フラグの動作の無効化が許可されているか否かを判定する。無効にすることが許可されていない場合、ステップ９８において、このような真の許可エラーを処理することができる汎用目的プロセッサに対する割り込みを起動することによるといった、許可エラーを起動する。
【００３７】
ステップ９６における判定が、書き込み許可フラグの動作を無効にすることが許可されているということである場合、ステップ１００は、該当ページに対する書き込み許可フラグを、書き込みが許可されていることを示すようにアトミックに設定されるように働き、次いで、処理は書き込みが実行されるステップ９４に渡される。書き込みが許可されていることを示すための書き込み許可フラグのアトミック設定は、書き込み許可フラグの設定がダーティ・ビット修飾フラグの読み出し９４と別々に実行され得ないというような態様で実行される。ハードウェア更新メモリ管理回路の動作のアトミックな特質は、リード・モディファイ・ライト操作を使用することによって達成され得る。
【００３８】
図８は、ページのダーティ状態を判定することができる方法を示す流れ図である。ステップ１０２は、ページのダーティ状態を照会する要求が受信されるまで待機する。次いで、ステップ１０４は、該当ページに対する書き込み許可フラグの値を判定する。書き込み許可フラグが、ステップ１０６において判定されて、書き込みが許可されていないことを示す場合、ステップ１０８は、ページがクリーンであるという表示を返送する。書き込み許可フラグが、書き込みが許可されていないことを示す値に初期化されたデフォルトと同じである場合、書き込み許可フラグが、書き込みが許可されていないことを示したままであるいずれのページも、書き込みがなされたことがないものである。最初の書き込みがページに対して実行されるたびに、最初の書き込みは、書き込みが許可されていないことを示す値から書き込みが許可されていることを示す値に、書き込み許可フラグを変更させる。したがって、少なくとも１回の書き込みが発生したページはいずれも、書き込みが許可されていることを示す書き込み許可フラグを有することになり、このことは、ステップ１０６において判定され、且つステップ１１０において報告される。
【図１】
0006314212.tif 000002
【図２】
0006314212.tif 000003
【図３】
0006314212.tif 000004
【図４】
0006314212.tif 000005
【図５】
0006314212.tif 000006
【図６】
0006314212.tif 000007
【図７】
0006314212.tif 000008
【図８】
0006314212.tif 000009