(57)【要約】【課題】拡張ページを高速に初期化することを可能とするコンピュータ等を提供する。【解決手段】仮想記憶管理装置とを備えるコンピュータであって、拡張ページ１５０が、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれていると共に、ページディレクトリ５０に、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されており、仮想記憶管理装置１０が、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから物理アドレスを作成して出力するアドレス変換部１２を有する。【選択図】図２
2014048895.tif 000002
【特許請求の範囲】
【請求項１】
ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムであって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれていると共に、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されており、
前記仮想記憶管理装置が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値である場合に、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力するアドレス変換部を有することを特徴とする仮想記憶管理システム。
【請求項２】
前記仮想記憶管理装置の前記アドレス変換部が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みでないことを示す値であれば、前記メインプロセッサで動作するページフォールト処理機能に当該準拡張ページに対する初期化処理を行わせると共に前記ビットマップ上の当該ビットを初期化処理済みであることを示す値に変更させる機能を有することを特徴とする、請求項１に記載の仮想記憶管理システム。
【請求項３】
前記準拡張ページがさらに複数の基本ページによって構成され、
前記基本ページのうちのいずれかに、前記各基本ページが初期化処理済みであるか否かを示す値を記憶しているページテーブルが記憶されていると共に、
前記ページフォールト処理機能が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップのビットが全て初期化処理済みであることを示す値であれば、前記ページディレクトリエントリに含まれるページサイズモードを示す属性を拡張ページモードに変更することを特徴とする、請求項２に記載の仮想記憶管理システム。
【請求項４】
前記ページフォールト処理機能が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップが一つでも初期化処理済みでないことを示す値のビットを含んでいれば、当該ビットの位置を前記ビットマップに含まれるページテーブル配置先準拡張ページインデックスに格納し、前記ページディレクトリエントリの上位ビットで示される位置に新たに前記ページテーブルを記憶することを特徴とする、請求項３に記載の仮想記憶管理システム。
【請求項５】
ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサとを備えた仮想記憶管理システムにおいて、前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置であって、
前記拡張ページは、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであり、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されていると共に、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する判断機能と、
当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力するアドレス変換機能とを有することを特徴とする仮想記憶管理装置。
【請求項６】
ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶し、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを前記仮想記憶管理装置の判断機能が判断し、
当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記仮想記憶管理装置のアドレス変換機能が前記物理アドレスを作成して出力することを特徴とする仮想記憶初期化方法。
【請求項７】
ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、
前記仮想記憶管理装置が備えるプロセッサに、
前記ページディレクトリに各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶する手順、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する手順、
および当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力する手順
を実行させることを特徴とする仮想記憶初期化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラムに関し、特に拡張ページを高速に初期化することを可能とする仮想記憶管理システム等に関する。
【背景技術】
【０００２】
パーソナルコンピュータなどのコンピュータ装置は、処理性能が日々向上を続けており、かつ半導体メモリの高集積化もあいまって、一度に扱うべきデータの分量もますます巨大化している。そのため、パーソナルコンピュータの分野において事実上の標準とされている米国インテル・コーポレーション社製の３２ビットマイクロプロセッサのアーキテクチャ（ＩＡ−３２）では、アドレス空間を３２ビットから６４ビットに拡張するなどして、４ギガバイトを越える容量の主記憶装置（ＲＡＭ: Random Access Memory）を利用できるようになっている。
【０００３】
一方、このアーキテクチャに準拠するコンピュータ、あるいはそのコンピュータで動作するウィンドウズ（登録商標）などのような代表的なＯＳ（Operating System, 基本ソフト）では、プロセッサが指定するリニアアドレス（仮想アドレス）と、実際のＲＡＭの物理アドレスとの間を相互に変換して、プロセッサがそのＲＡＭにアクセスすることを可能とする仕組みを備えている。これを仮想記憶という。
【０００４】
この技術では、リニアアドレスを物理アドレスに変換するためのテーブルを、プロセッサが標準的に備えるＴＬＢ（Translation Lookaside Buffer）と呼ばれる一時記憶手段（キャッシュメモリ）に記憶することにより、プロセッサが主記憶装置にアクセスしようとして発行するリニアアドレスを、実際にそのデータが記憶されている物理アドレスに変換する。これにより、プロセッサは主記憶装置のその物理アドレスにアクセスして、データを読み書きすることが可能となる。
【０００５】
その際、発行したリニアアドレスに対応する物理アドレスがＴＬＢから得られない場合（ＴＬＢミス）、その物理アドレスを得るために複数のテーブルを辿る必要があるので、物理アドレスをＴＬＢから得られた場合（ＴＬＢヒット）と比べて処理効率が落ちることとなる。ＴＬＢヒットとなる確率、即ちリニアアドレスに対応する物理アドレスがＴＬＢから得られる確率をＴＬＢヒット率といい、これは処理効率と直結するので重要である。
【０００６】
前述のＩＡ−３２アーキテクチャに準拠したコンピュータにおいては、ＰＡＥ（Physical Address Extension, 物理アドレス拡張）やＰＳＥ（Page Size Extension, ページサイズ拡張）といった技術が、具体的に利用されている。以後、本明細書ではＰＳＥについて説明する。
【０００７】
ＰＳＥでは、アーキテクチャで通常用いられるサイズのページを基本ページといい、それよりも大きなサイズのページを拡張ページという。そして、リニアアドレスを物理アドレスに変換する際に、通常はページディレクトリ→ページテーブルと辿って目的の物理アドレスを得るところを、ページディレクトリから直接物理アドレスを得るようにページテーブルの段数を減らすことで、連続した物理アドレス空間上に配置される複数の基本ページを、単一のより大きなページとして扱うものである。
【０００８】
これによって、その拡張ページに所望のデータが含まれる可能性、即ちＴＬＢヒット率を向上させるという効果を得ることができる。特に近年は主記憶装置の容量がますます増大しているので、動作中無駄に割り当てられる記憶領域が多少あったとしても、拡張ページの容量の増大→ＴＬＢヒット率の向上によって得られる処理効率の向上が、コンピュータ装置の性能面では有利に働く。
【０００９】
これに関連して、次の各々の技術文献がある。その中でも特許文献１には、初期化済み領域の終端情報を利用して初期化処理を行う領域を決定するという仮想記憶デバイス管理装置が記載されている。特許文献２には、物理メモリと仮想メモリとの間の対応を示すマップを利用して、複数プロセス間でのデータの共有を可能とするという情報処理装置が記載されている。
【００１０】
特許文献３には、各世代の仮想メモリ空間のサイズを動的に調整可能にするというガベージコレクションプログラムが記載されている。特許文献４には、アプリケーションによって物理メモリの割り振りを制御可能とするという仮想記憶システムが記載されている。特許文献５には、情報処理装置で補助記憶装置にプログラム実行領域を割り当てる処理について記載されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００３−１５０３２１号公報
【特許文献２】特開２００３−３１６５８８号公報
【特許文献３】特開２００７−０２５９１４号公報
【特許文献４】特開２００８−２５１０３６号公報
【特許文献５】特開２００９−２１７７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
拡張ページを利用する場合、通常のリード／ライト処理においては、前述のように無駄に割り当てられる記憶領域が多少あったとしても無視することができる。しかしながら、ページングにより仮想記憶を管理するＯＳは、ページが要求された場合、主記憶装置上に新規に拡張ページが割り当ててその拡張ページ全体を初期化することになるので、ページ内の無駄な領域まで初期化してしまうことに伴う処理効率の低下を無視することができない。
【００１３】
より具体的には、ページの初期化には、新規に割り当てたページをゼロクリアする、ページに書き込みが発生した際にその内容を別ページにコピーする（コピーオンライト）、ファイルをメモリにマップしてメモリアクセスが発生した際にそのページの内容を読み込む（メモリマップドファイル）、といった処理がある。即ちこれらの処理には、メモリのデータ転送が必要であるので、ページサイズに比例して処理効率が低下することになる。
【００１４】
また、初期化された拡張ページは、全ての領域がプロセッサによってアクセスされるとは限らず、ごく一部の領域にしかアクセスされない場合もありうる。その場合は特に、処理効率の低下に見合う効果が得られていない、即ちその初期化処理自体が無駄なものとなってしまう。
【００１５】
拡張ページの中で、プロセッサによってアクセスされた領域のみをオンデマンドで初期化していくことができれば、初期化処理に伴って発生する無駄を削減することができる。しかしながら、拡張ページ内では必ずしも、連続した領域が順番に次々とアクセスされるものであるとは限らない。用途によっては拡張ページ内の連続しない領域が次々にアクセスされることが必要となる場合もある。
【００１６】
具体的には、時間的な遂次性が保証されずに到着する入力データを結合し直すＴＣＰ／ＩＰの受信バッファや、どの部分にプログラムの制御が移るかが不確定であるプログラムコードを記憶するメモリマップドファイルなどが、拡張ページの連続しない領域へのアクセスが頻繁に行われる用途の例である。
【００１７】
このため、拡張ページ中のアクセスされた領域のみをオンデマンドで初期化していく場合には、その拡張ページの初期化の動作を基本ページ単位で遅延評価するという方法が利用される。
【００１８】
図７は、拡張ページ中のアクセスされた領域のみをオンデマンドで初期化していく既存技術を適用した仮想記憶管理システム（コンピュータ９０１）の構成について示す説明図である。コンピュータ９０１は、主記憶装置９２１（ＲＡＭ）上に仮想メモリを構成し、その仮想メモリにメインプロセッサ９２０が実行中のプログラムや演算処理中のデータを記憶するためのアドレス管理を行うハードウェアである仮想記憶管理装置９１０を備える。
【００１９】
主記憶装置９２１上には、ページディレクトリ９５０と、一時的ページテーブル９６０とが作成される。この一時的ページテーブル９６０に、主記憶装置９２１上に確保された拡張ページ９８０の領域内の各基本ページを個別にマッピングしておき、ページフォールトを契機に基本ページ単位で初期化していく。そして、全ての基本ページの初期化が確認できたら、一時的ページテーブル９６０を解放し、ページディレクトリ９５０によって全領域を拡張ページ９８０としてマッピングし直す。
【００２０】
ただし、拡張ページのサイズは基本ページの数百〜数千倍程度であるので、拡張ページを基本ページの区画単位で初期化しようとするとページフォールトが多発し、これによって著しく処理効率を低下させてしまう場合がある。
【００２１】
この問題点を解決しうる技術は、前述の特許文献１〜５には記載されていない。特許文献１は、仮想記憶システムにおける初期化を高速に行うことを目的とする発明ではある。しかしながら、この文献には初期化処理を行う領域を決定する（余計な領域に対する初期化処理実行を抑制する）ということについて記載されているのみであり、その初期化処理自体を高速化するものではない。これに、残る特許文献２〜５に記載の技術を組み合わせても、その初期化処理自体が高速化されることにはならない。
【００２２】
本発明の目的は、拡張ページの初期化の処理に伴って発生するページフォールトの頻度を削減し、拡張ページでアクセスされた領域のみをオンデマンドで高速に初期化することを可能とする仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラムを提供することにある。
【課題を解決するための手段】
【００２３】
上記目的を達成するため、本発明に係る仮想記憶管理システムは、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムであって、拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれていると共に、ページディレクトリに、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されており、仮想記憶管理装置が、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値である場合に、リニアアドレスおよびページディレクトリエントリから物理アドレスを作成して出力するアドレス変換部を有することを特徴とする。
【００２４】
上記目的を達成するため、本発明に係る仮想記憶管理装置は、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサとを備えた仮想記憶管理システムにおいて、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置であって、拡張ページは、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであり、ページディレクトリに、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されていると共に、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する判断機能と、当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから物理アドレスを作成して出力するアドレス変換機能とを有することを特徴とする。
【００２５】
上記目的を達成するため、本発明に係る仮想記憶初期化方法は、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、ページディレクトリに、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶し、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを仮想記憶管理装置の判断機能が判断し、当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから仮想記憶管理装置のアドレス変換機能が物理アドレスを作成して出力することを特徴とする。
【００２６】
上記目的を達成するため、本発明に係る仮想記憶初期化プログラムは、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、仮想記憶管理装置が備えるプロセッサに、ページディレクトリに各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶する手順、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する手順、および当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから物理アドレスを作成して出力する手順を実行させることを特徴とする。
【発明の効果】
【００２７】
本発明は、上記したように、拡張ページを複数の準拡張ページに分け、それら各々の準拡張ページが初期化処理済みであるか否かを示すビットマップをページディレクトリエントリに含めて予め記憶している構成としたので、初期化に伴って発生するページフォールトの頻度が少なくなる。これによって、拡張ページでアクセスされた領域のみをオンデマンドで高速に初期化することが可能であるという、優れた特徴を持つ仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラムを提供することができる。
【図面の簡単な説明】
【００２８】
【図１】本発明の第１の実施形態に係るコンピュータの構成について示す説明図である。
【図２】図１に示したコンピュータで行われるアドレス変換および拡張ページ初期化の処理について示す説明図である。
【図３】図１〜２に示したコンピュータで行われる拡張ページ初期化の処理について示すフローチャートである。
【図４】本発明の第２の実施形態に係るコンピュータの構成について示す説明図である。
【図５】図４に示したコンピュータで行われるアドレス変換および拡張ページ初期化の処理について示す説明図である。
【図６】図４〜５に示したコンピュータで行われる拡張ページ初期化の処理について示すフローチャートである。
【図７】拡張ページ中のアクセスされた領域のみをオンデマンドで初期化していく既存技術を適用したコンピュータの構成について示す説明図である。
【発明を実施するための形態】
【００２９】
（第１の実施形態）
以下、本発明の第１の実施形態の構成について添付図１〜２に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る仮想記憶管理システム（コンピュータ１）は、ページディレクトリ５０および拡張ページ１５０が各々記憶領域として確保されている主記憶装置２１と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサ２０と、リニアアドレス１００に対応する主記憶装置の物理アドレス１２０を出力し、メインプロセッサ２０による主記憶装置２１へのアクセスを可能とする仮想記憶管理装置１０とを備えるコンピュータである。拡張ページ１５０は、各々の容量が基本ページの容量よりも大きい複数の準拡張ページ１５０ａ〜ｈに分かれている。ページディレクトリ５０に、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップ１１２を含むページディレクトリエントリ１１０が予め記憶されている。そして仮想記憶管理装置１０は、リニアアドレス１００に含まれる準拡張ページインデックス１０２に対応するビットマップ１１２上のビットが当該準拡張ページ１５０ａ〜ｈが初期化処理済みであることを示す値である場合に、リニアアドレス１００およびページディレクトリエントリ１１０から物理アドレス１２０を作成して出力するアドレス変換部１２を有する。
【００３０】
また、仮想記憶管理装置１０のアドレス変換部１２は、リニアアドレス１００に含まれる準拡張ページインデックス１０２に対応するビットマップ１１２上のビットが当該準拡張ページ１５０ａ〜ｈが初期化処理済みでないことを示す値であれば、メインプロセッサ２０で動作するページフォールト処理機能３０に当該準拡張ページに対する初期化処理を行わせると共にビットマップ１１２上の当該ビットを初期化処理済みであることを示す値に変更させる機能を有する。
【００３１】
以上の構成を備えることにより、仮想記憶管理システム（コンピュータ１）は、ページフォールトの頻度を削減して、拡張ページでアクセスされた領域のみをオンデマンドで高速に初期化することが可能となる。
以下、これをより詳細に説明する。
【００３２】
図１は、本発明の第１の実施形態に係るコンピュータ１の構成について示す説明図である。コンピュータ１は、米国インテル・コーポレーションのＩＡ−３２アーキテクチャに基づいた構成のコンピュータ装置であり、主記憶装置２１（ＲＡＭ）上にＰＳＥ（Page Size Extension, ページサイズ拡張）機能に基づく仮想メモリを構成し、その仮想メモリにメインプロセッサ２０が実行中のプログラムや演算処理中のデータを記憶するためのアドレス管理を行うハードウェアである仮想記憶管理装置１０を備える。この仮想記憶管理装置１０がメインプロセッサ２０に内蔵されている構成としてもよい。コンピュータには、これら以外にも多くの構成要素が必要であるが、本明細書では本願発明の概念を説明するために必要な要素についてのみ図示して説明することにする。
【００３３】
このＰＳＥ機能によるページングシステムは、アドレス幅が３２ビットである。メインプロセッサ２０にはＴＬＢ２０ａ（Translation Lookaside Buffer）が付属する。主記憶装置２１上の領域を基本ページモードでマップした際のページ容量は４キロバイト、同じく主記憶装置２１上の領域を拡張ページモードでマップした際のページ容量は４メガバイトである。そして、ページディレクトリ５０は基本ページ１個分（４キロバイト）の領域上に作成され、後述のページディレクトリエントリ１１０が最大１０２４個記憶される。
【００３４】
拡張ページ１５０は８つの準拡張ページ１５０ａ〜ｈに分かれる。１つの準拡張ページの容量は５１２キロバイトである。準拡張ページ１５０ａ〜ｈに対して、各々インデックス番号「＃０」〜「＃７」で呼ぶものとする。
【００３５】
仮想記憶管理装置１０は、ページディレクトリ５０の物理アドレスを格納するレジスタであるページディレクトリレジスタ１１と、メインプロセッサ２０から要求されるリニアアドレスを実際にそのデータが記憶されている物理アドレスに変換するアドレス変換部１２とを備える。ページディレクトリレジスタ１１のみをメインプロセッサ２０に内蔵する構成としてもよい。
【００３６】
アドレス変換部１２は、そのアドレス変換の際、基本ページを用いる際はページディレクトリとページテーブルという２段階のアドレス変換を行う。また、拡張ページを用いる際はページディレクトリのみによるアドレス変換を行う。これらの詳細についても後述する。
【００３７】
図２は、図１に示したコンピュータ１で行われるアドレス変換および拡張ページ初期化の処理について示す説明図である。ここで、この図２では、値が０であるか１であるかが特に重視されるものではないビットについては、その値を「ｘ」として図示している。
【００３８】
本発明に限定されない、ＰＳＥ機能による仮想メモリにおいては一般的に、基本ページを用いる場合は、入力値であるリニアアドレスの上位１０ビットがページディレクトリのインデックス、中位１０ビットがページテーブルのインデックス、下位１２ビットがページ内のオフセットを各々表す。一方、拡張ページを用いる場合は、入力値であるリニアアドレスの上位１０ビットがページディレクトリのインデックス、下位２２ビットがページ内のオフセットを各々表す。そして、各ページは、物理アドレス空間上にページサイズにアラインされて配置される。
【００３９】
本実施形態では、メインプロセッサ２０から要求されるリニアアドレス１００は、下位アドレスから順に、準拡張ページオフセット１０１と、準拡張ページインデックス１０２と、ページディレクトリインデックス１０３とを含む。このうち準拡張ページオフセット１０１は、アクセス先の物理アドレスの下位１９ビットの値を表す。
【００４０】
準拡張ページインデックス１０２は、アクセス先の物理アドレスの中位３ビットの値を表し、後述のビットマップ１１２から参照すべきビットを特定するインデックスとなる。前述のように準拡張ページ１５０ａ〜ｈには各々インデックス番号「＃０」〜「＃７」が割り当てられている。準拡張ページインデックス１０２の値は、このインデックス番号を２進数に直した値である。
【００４１】
ページディレクトリインデックス１０３は、ページディレクトリレジスタ１１に記憶された物理アドレスが指し示すページディレクトリ５０の中からページディレクトリエントリ（いずれも詳しくは後述）を特定するためのインデックスとなる１０ビットの値である。
【００４２】
一方、ページディレクトリ５０は、ページディレクトリインデックス１０３で示される配列要素にページディレクトリエントリ１１０を記憶している。ページディレクトリエントリ１１０は、下位アドレスから順に、属性情報領域１１１と、ビットマップ１１２と、拡張ページフレーム番号１１３とを含む。
【００４３】
このうち属性情報領域１１１は、様々なページの属性情報を格納する。属性情報の中には、拡張ページモードと基本ページモードを切り替えるためのページサイズ拡張フラグが含まれる。
【００４４】
ビットマップ１１２は、このページディレクトリエントリが指し示す拡張ページ１５０内で、どの準拡張ページ１５０ａ〜ｈが初期化されているかを示す領域である。既存のページングシステムでは、この領域は基本ページモードの場合にはページテーブルの物理アドレスの一部として利用されるが、拡張ページモードの場合には利用されない領域である。
【００４５】
ここで、本実施例では１０ビット中上位の２ビットを未使用としているため、残りの８ビットが拡張ページ１５０内の各５１２キロバイトの準拡張ページ１５０ａ〜ｈに対応する。図２に示した例ではビットマップ１１２＝「ｘｘ０１１００１０１」である。これは準拡張ページ１５０ａ〜ｈの各々に割り当てられたインデックス番号「＃０」〜「＃７」でいえば、ビットマップ１１２の下８ビットが各々、上から順番に「＃７」〜「＃０」の初期化の状態を示している。各ビットの値は、「１」が未初期化、「０」は初期化済を各々示す。
【００４６】
拡張ページフレーム番号１１３は、このページディレクトリエントリが指し示す拡張ページの物理アドレスの上位１０ビットの値である。
【００４７】
アドレス変換部１２は、以上のリニアアドレス１００を入力値として、ページディレクトリエントリ１１０を参照して、物理アドレス１２０を出力する。物理アドレス１２０は、下位アドレスから順に、準拡張ページオフセット１０１、準拡張ページインデックス１０２、および拡張ページフレーム番号１１３が結合されることによって生成される。
【００４８】
その際、アドレス変換部１２に含まれるビットマップ判定部１２ａは、準拡張ページインデックス１０２が示すビットマップ１１２内のビットを検査し、もし対象の準拡張ページが未初期化であればページフォールトを発生させる。メインプロセッサ２０にはＯＳの動作によって機能するページフォールト処理部３０が含まれており、このページフォールト発生を受けたページフォールト処理部３０は、当該準拡張ページを初期化する。その詳細な動作は以下に示す。
【００４９】
図３は、図１〜２に示したコンピュータ１で行われる拡張ページ初期化の処理について示すフローチャートである。この図３に示した動作は、アドレス変換部１２およびページフォールト処理部３０の動作のみを示している。これ以外は既存のＰＳＥ機能によるページングシステムと同一である。また、図３で説明する動作では、ビットマップ１１２の下位８ビットの値は、拡張ページ１５０を割り当ててページディレクトリエントリ１１０を初期化する段階で全て「１」（未初期化）に設定されている。
【００５０】
まず、メインプロセッサ２０からリニアアドレス１００で示されるメモリへのアクセスが要求されると（ステップＳ２００）、アドレス変換部１２は、主記憶装置２１のページディレクトリレジスタ１１から取得される物理アドレスで指し示されるページディレクトリ５０の中から、ページディレクトリインデックス１０３で示されるページディレクトリエントリ１１０を取得し、続いてビットマップ判定部１２ａは、準拡張ページインデックス１０２で示される値を、ビットマップ１１２の下位８ビット中でビットを特定するインデックスとして取得する（ステップＳ２０１）。
【００５１】
これに続いてビットマップ判定部１２ａは、ビットマップ１１２の下位８ビット中のステップＳ２０１で取得したビットの値を検査し、その値が０であるか１であるかを判断する（ステップＳ２０２）。このビットの値が０である場合には、これに対応する準拡張ページは既に初期化済みであるので、図２に示したように拡張ページフレーム番号１１３、準拡張ページインデックス１０２、および準拡張ページオフセット１０１の順に上位ビットから連結した値を物理アドレスとし、そのアドレスを出力して（ステップＳ２０３）処理を終了する。
【００５２】
ステップＳ２０２で、そのビットの値が１である場合には、これに対応する準拡張ページは未初期化である。このため、ビットマップ判定部１２ａは、ＯＳのページフォールト処理部３０に当該準拡張ページを初期化させるよう、ページフォールトを発生させる（ステップＳ２０４）。
【００５３】
これを受けたページフォールト処理部３０は、そのページフォールトの原因となった準拡張ページを初期化し（ステップＳ２０５）、その準拡張ページに対応するビットマップ１１２内のビットの値を１から０に変更して（ステップＳ２０６）ページフォールトから復帰する（ステップＳ２０７）。そしてステップＳ２００に処理を戻し、そのページフォールトを起こしたアドレスへのアクセスを再実行する。
【００５４】
図２に示した例では、準拡張ページインデックス１０２＝「００１」、即ち１０進数でいうところの「１」である。これは、インデックス番号「＃１」で示される準拡張ページ１５０ｂを指し示すものである。インデックス番号「＃１」に該当するビットマップ１１２の下から２ビット目の値は「０」、即ち「初期化済」を示している。そのため、ここではステップＳ２０２からステップＳ２０３の処理に進み、生成された物理アドレスを出力する。
【００５５】
（第１の実施形態の全体的な動作）
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係る仮想記憶初期化方法は、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備えるコンピュータにあって、拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、ページディレクトリに、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶し、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを仮想記憶管理装置の判断機能が判断し（図３・ステップＳ２０２）、当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから仮想記憶管理装置のアドレス変換機能が物理アドレスを作成して出力する（図３・ステップＳ２０３）。
【００５６】
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する仮想記憶管理装置のプロセッサに実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、ＤＶＤ、ＣＤ、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
【００５７】
本実施形態は、拡張ページの領域内ではアドレス空間がストレートマッピングされている、即ち物理アドレスとリニアアドレスに連続性があることを利用している。そのため、高機能なページテーブルの代わりに単純なビットマップを用い、各ビットを拡張ページ内の各小区画に対応させることによって、各区画の初期化の有無を管理することができる。そして、これらの各ビットが対応する各小区画を、準拡張ページという基本ページよりも大きなサイズの管理単位としているので、初期化に伴って発生するページフォールトの頻度を削減することが可能である。
【００５８】
また、既存のＰＳＥのアーキテクチャで拡張ページを用いる場合は、ページテーブルのページフレーム番号を格納する領域の下位ビット部分が未使用となる。従って、上記のようなビットマップを利用すれば、その未使用領域に当該ビットマップを格納することができる。これによって、一時的なページテーブルの別途割り当てが不要となる。
【００５９】
上記の実施形態は、ビットマップ判定部１２ａを仮想記憶管理装置１０内のハードウェアとして実現したが、これをマイクロプロセッサなどで実行されるプログラムとしてソフトウェア的に実現することももちろん可能である。
【００６０】
（第２の実施形態）
本発明の第２の実施形態に係るコンピュータ３０１は、第１の実施形態の構成に加えて、準拡張ページ４５０ａ〜ｄがさらに複数基本ページによって構成され、基本ページのうちのいずれかに、各基本ページが初期化処理済みであるか否かを示す値を記憶しているページテーブル４６０が記憶されていると共に、ページフォールト処理機能（ページフォールト処理部３３０）が、リニアアドレス４００に含まれる準拡張ページインデックス４０２に対応するビットマップ４１２のビットが全て初期化処理済みであることを示す値であれば、ページディレクトリエントリ４１０に含まれるページサイズモードを示す属性を拡張ページモードに変更するという構成とした。
【００６１】
また、ここでページフォールト処理機能（ページフォールト処理部３３０）が、リニアアドレス４００に含まれる準拡張ページインデックス４０２に対応するビットマップ４１２が一つでも初期化処理済みでないことを示す値のビットを含んでいれば、当該ビットの位置をビットマップに含まれるページテーブル配置先準拡張ページインデックス４１２ａに格納し、ページディレクトリエントリ４１０の上位ビットで示される位置に新たにページテーブル４６０を記憶するものとすることもできる。
【００６２】
この構成によって、ハードウェアによる処理を省略して、第１の実施形態と同一の効果が得ることが可能となる。
以下、これをより詳細に説明する。
【００６３】
図４は、本発明の第２の実施形態に係るコンピュータ３０１の構成について示す説明図である。コンピュータ３０１は、主記憶装置３２１（ＲＡＭ）上にＰＳＥ（Page Size Extension, ページサイズ拡張）機能に基づく仮想メモリを構成し、その仮想メモリにメインプロセッサ３２０が実行中のプログラムや演算処理中のデータを記憶するためのアドレス管理を行う仮想記憶管理装置３１０を備える。
【００６４】
しかしながら、第１の実施形態の仮想記憶管理装置１０では、新たなハードウェアであるアドレス変換部１２を必要とした。これに対して、本実施形態では新たなハードウェアを必要とせず、既存のメモリ管理ユニットのページング機能に変更を加えることなく、新規に割り当てた拡張ページを準拡張ページごとに初期化する処理をソフトウェアのみで実現する。
【００６５】
より具体的には、本実施形態では仮想記憶管理装置３１０は第１の実施形態と同様のページディレクトリレジスタ３１１は備えるが、ビットマップ判定部は備えない。この機能を、メインプロセッサ３２０で動作する、第１の実施形態と異なる新たなページフォールト処理部３３０によって担っている。かつ、ページテーブル４６０を主記憶装置３２１内の拡張ページの一部として記憶している。
【００６６】
そして、メインプロセッサ３２０にはＴＬＢ３２０ａが付属し、主記憶装置３２１には第１の実施形態と同様の拡張ページ４５０が確保され、拡張ページ４５０内には４つの準拡張ページ４５０ａ〜ｄが割り当てられている。準拡張ページ４５０ａ〜ｄに対して、各々インデックス番号「＃０」〜「＃３」で呼ぶものとする。各準拡張ページ４５０ａ〜ｄは、各々２５６個の基本ページからなる。
【００６７】
図５は、図４に示したコンピュータ３０１で行われるアドレス変換および拡張ページ初期化の処理について示す説明図である。本実施形態では、メインプロセッサ２０から要求されるリニアアドレス４００は、第１の実施形態と同様に、下位アドレスから順に、準拡張ページオフセット４０１と、準拡張ページインデックス４０２と、ページディレクトリインデックス４０３とを含む。このうち準拡張ページオフセット４０１は、アクセス先の物理アドレスの下位２０ビットの値を表す。
【００６８】
準拡張ページインデックス４０２は、アクセス先の物理アドレスの中位２ビットの値を表し、後述のビットマップ１１２から参照すべきビットを特定するインデックスとなる。準拡張ページインデックス４０２の値は、準拡張ページ４５０ａ〜ｄのインデックス番号「＃０」〜「＃３」を２進数に直した値である。ページディレクトリインデックス４０３は、第１の実施形態と同様である。
【００６９】
一方、ページディレクトリ３５０は、ページディレクトリインデックス４０３で示される配列要素にページディレクトリエントリ４１０を記憶している。ページディレクトリエントリ４１０は、下位アドレスから順に、属性情報領域４１１と、ビットマップ４１２と、拡張ページフレーム番号４１３とを含む。属性情報領域４１１は、第１の実施形態と同様である。
【００７０】
ビットマップ４１２は、さらにその上位２桁がページテーブル配置先準拡張ページインデックス４１２ａであり、これは未初期化である準拡張ページテーブルの番号を設定する。またビットマップ４１２の下位８桁のうち４桁のみを有効としている。
【００７１】
そして、ページテーブル４６０には、拡張ページ４５０に含まれる１０２４個の基本ページの各々の状態を管理する１０２４個のページテーブルエントリが記憶される。これらの各ページテーブルエントリは、準拡張ページインデックス４０２（２ビット）と準拡張ページオフセット４０１の上位８ビットとを含む１０桁の値によって決定される各基本ページが、未初期化の「１」か、初期化済の「０」かを示す。この値は、連続する２５６個の基本ページごと（即ち準拡張ページごと）に同一の初期化状態となる。
【００７２】
このページテーブル４６０は、拡張ページフレーム番号４１３およびビットマップ４１２で示されるアドレスの、拡張ページ４５０内の未初期化の準拡張ページ内に配置される。ページテーブル配置先準拡張ページインデックス４１２ａは、ページテーブル４６０が含まれる準拡張ページ４５０ａ〜ｄのインデックス番号「＃０」〜「＃３」を２進数に直した値である。図５に示した例ではインデックス番号「＃１」、即ち準拡張ページ４５０ｂ上にページテーブル４６０が存在する。
【００７３】
仮想記憶管理装置３１０で取り扱われるページサイズモードは基本ページモードであるので、ページディレクトリエントリ４１０の上位２０ビットがページテーブル４６０のフレーム番号として扱われる。ただし、ページテーブル４６０は、未初期化の準拡張ページ内に配置する必要があるため、２ビットからなるページテーブル配置先準拡張ページインデックス４１２ａに未初期化の準拡張ページテーブルの番号を設定することで、８ビットからなるビットマップ４１２の値によらず、ページテーブル４６０が未初期化の準拡張ページ内に配置されることを保証する。
【００７４】
本実施形態では、ビットマップ４１２は、８ビットのうち下位４ビットが有効であるとする。リニアアドレス４００に含まれる準拡張ページインデックス４０２、およびページテーブル配置先準拡張ページインデックス４１２ａに格納される十進数で０から３の範囲の値は、ビットマップ４１２の下位４ビットのビット位置と対応する。
【００７５】
図６は、図４〜５に示したコンピュータ３０１で行われる拡張ページ初期化の処理について示すフローチャートである。この図６に示した動作は、ページフォールト処理部３３０の動作のみを示している。これ以外は既存のＰＳＥ機能によるページングシステムと同一である。
【００７６】
また、図６で説明する動作では、ビットマップ４１２の下位４ビットの値は、拡張ページ４５０を割り当ててページディレクトリエントリ４１０を初期化する段階で全て「１」（未初期化）に設定されている。ビットマップ４１２の上位２ビットは、前述のページテーブル配置先準拡張ページインデックス４１２ａである。その間の上から３〜６ビット目は、前述の通り本実施形態では使用されない。
【００７７】
まず、メインプロセッサ３２０からリニアアドレス４００で示される基本ページへのアクセスが要求され、これが無効な基本ページへのアクセスとなってページフォールトが発生すると（ステップＳ５００）、ページフォールト処理部３３０が動作を開始し、まず準拡張ページインデックス４０２で示される準拡張ページの内容を初期化する（ステップＳ５０１）。そして、その準拡張ページに対応するビットマップ４１２内のビットをクリアする（ステップＳ５０２）。
【００７８】
続いてページフォールト処理部３３０は、ビットマップ４１２の下位４ビット中で値が１になっているビットがあるか否かについて判断する（ステップＳ５０３〜５０４）。４ビット中で値が１になっているビットが１つ以上あれば、そのビットの位置をページテーブル配置先準拡張ページインデックス４１２ａに格納して（ステップＳ５０５）、拡張ページ４５０でページディレクトリエントリ４１０の上位２０ビットで示される位置を新たにページテーブル４６０として初期化して（ステップＳ５０６）、処理を終了する。
【００７９】
このステップＳ５０６で初期化されるページテーブル４６０の内容は、図５に示す通りストレートマッピングであり、かつビットマップ４１２の内容に沿って各基本ページの有効または無効の状態を反映したものである。
【００８０】
一方、ステップＳ５０３〜５０４で、ビットマップ４１２の下位４ビットが全て０である場合には、拡張ページ４５０全体の初期化が完了しているので、ページディレクトリエントリ４１０の属性情報領域４１１に含まれるページサイズ拡張フラグをセットしてページサイズモードを拡張ページモードに変更して（ステップＳ５０７）処理を終了する。
【００８１】
（実施形態の拡張）
上記第１および第２の実施形態は、以上で説明した本発明の趣旨を改変しない範囲で、様々な拡張が可能である。以下、これについて説明する。
まず、ハードウェアとして実施形態で説明されていた内容は、これをマイクロプロセッサなどで実行されるプログラムとしてソフトウェア的に実現することももちろん可能である。
【００８２】
また、拡張ページを第１の実施形態では８つの、第２の実施形態では４つの準拡張ページに各々分けていたが、この準拡張ページの個数も任意に決定することができる。要は、ビットマップ１１２および４１２の各々が、各準拡張ページが初期化処理済みであるか否かを記録することができるビット数を持ち、かつ準拡張ページインデックス１０２また４０２でその準拡張ページのインデックス番号を表すことができれば、それでよいのである。もちろんその個数が「２の累乗」である必要もない。
【００８３】
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
【００８４】
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
【００８５】
（付記１）  ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムであって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれていると共に、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されており、
前記仮想記憶管理装置が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値である場合に、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力するアドレス変換部を有することを特徴とする仮想記憶管理システム。
【００８６】
（付記２）  前記仮想記憶管理装置の前記アドレス変換部が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みでないことを示す値であれば、前記メインプロセッサで動作するページフォールト処理機能に当該準拡張ページに対する初期化処理を行わせると共に前記ビットマップ上の当該ビットを初期化処理済みであることを示す値に変更させる機能を有することを特徴とする、付記１に記載の仮想記憶管理システム。
【００８７】
（付記３）  前記準拡張ページがさらに複数の基本ページによって構成され、
前記基本ページのうちのいずれかに、前記各基本ページが初期化処理済みであるか否かを示す値を記憶しているページテーブルが記憶されていると共に、
前記ページフォールト処理機能が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップのビットが全て初期化処理済みであることを示す値であれば、前記ページディレクトリエントリに含まれるページサイズモードを示す属性を拡張ページモードに変更することを特徴とする、付記２に記載の仮想記憶管理システム。
【００８８】
（付記４）  前記ページフォールト処理機能が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップが一つでも初期化処理済みでないことを示す値のビットを含んでいれば、当該ビットの位置を前記ビットマップに含まれるページテーブル配置先準拡張ページインデックスに格納し、前記ページディレクトリエントリの上位ビットで示される位置に新たに前記ページテーブルを記憶することを特徴とする、付記３に記載の仮想記憶管理システム。
【００８９】
（付記５）  ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサとを備えた仮想記憶管理システムにおいて、前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置であって、
前記拡張ページは、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであり、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されていると共に、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する判断機能と、
当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力するアドレス変換機能とを有することを特徴とする仮想記憶管理装置。
【００９０】
（付記６）  ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶し、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを前記仮想記憶管理装置の判断機能が判断し、
当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記仮想記憶管理装置のアドレス変換機能が前記物理アドレスを作成して出力することを特徴とする仮想記憶初期化方法。
【００９１】
（付記７）  ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、
前記仮想記憶管理装置が備えるプロセッサに、
前記ページディレクトリに各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶する手順、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する手順、
および当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力する手順
を実行させることを特徴とする仮想記憶初期化プログラム。
【産業上の利用可能性】
【００９２】
本発明は仮想記憶方式を利用するコンピュータ装置一般に対して適用することができる。特に、米国インテル・コーポレーションのＩＡ−３２アーキテクチャに基づいた構成のコンピュータ装置に適する。
【符号の説明】
【００９３】
１、３０１  コンピュータ
１０、３１０  仮想記憶管理装置
１１、３１１  ページディレクトリレジスタ
１２  アドレス変換部
１２ａ  ビットマップ判定部
２０、３２０  メインプロセッサ
２０ａ、３２０ａ  ＴＬＢ
２１、３２１  主記憶装置
３０、３３０  ページフォールト処理部
５０、３５０  ページディレクトリ
１００、４００  リニアアドレス
１０１、４０１  準拡張ページオフセット
１０２、４０２  準拡張ページインデックス
１０３、４０３  ページディレクトリインデックス
１１０、４１０  ページディレクトリエントリ
１１１、４１１  属性情報領域
１１２、４１２  ビットマップ
１１３、４１３  拡張ページフレーム番号
１２０  物理アドレス
１５０、４５０  拡張ページ
１５０ａ、１５０ｂ、１５０ｈ、４５０ａ、４５０ｂ、４５０ｄ  準拡張ページ
４１２ａ  ページテーブル配置先準拡張ページインデックス
４６０  ページテーブル
【図１】
2014048895.tif 000003
【図２】
2014048895.tif 000004
【図３】
2014048895.tif 000005
【図４】
2014048895.tif 000006
【図５】
2014048895.tif 000007
【図６】
2014048895.tif 000008
【図７】
2014048895.tif 000009