JP5958195B2 - 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム - Google Patents

仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム Download PDF

Info

Publication number
JP5958195B2
JP5958195B2 JP2012191304A JP2012191304A JP5958195B2 JP 5958195 B2 JP5958195 B2 JP 5958195B2 JP 2012191304 A JP2012191304 A JP 2012191304A JP 2012191304 A JP2012191304 A JP 2012191304A JP 5958195 B2 JP5958195 B2 JP 5958195B2
Authority
JP
Japan
Prior art keywords
page
semi
extended
address
initialized
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012191304A
Other languages
English (en)
Other versions
JP2014048895A (ja
Inventor
忍 後藤
忍 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012191304A priority Critical patent/JP5958195B2/ja
Publication of JP2014048895A publication Critical patent/JP2014048895A/ja
Application granted granted Critical
Publication of JP5958195B2 publication Critical patent/JP5958195B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラムに関し、特に拡張ページを高速に初期化することを可能とする仮想記憶管理システム等に関する。
パーソナルコンピュータなどのコンピュータ装置は、処理性能が日々向上を続けており、かつ半導体メモリの高集積化もあいまって、一度に扱うべきデータの分量もますます巨大化している。そのため、パーソナルコンピュータの分野において事実上の標準とされている米国インテル・コーポレーション社製の32ビットマイクロプロセッサのアーキテクチャ(IA−32)では、アドレス空間を32ビットから64ビットに拡張するなどして、4ギガバイトを越える容量の主記憶装置(RAM: Random Access Memory)を利用できるようになっている。
一方、このアーキテクチャに準拠するコンピュータ、あるいはそのコンピュータで動作するウィンドウズ(登録商標)などのような代表的なOS(Operating System, 基本ソフト)では、プロセッサが指定するリニアアドレス(仮想アドレス)と、実際のRAMの物理アドレスとの間を相互に変換して、プロセッサがそのRAMにアクセスすることを可能とする仕組みを備えている。これを仮想記憶という。
この技術では、リニアアドレスを物理アドレスに変換するためのテーブルを、プロセッサが標準的に備えるTLB(Translation Lookaside Buffer)と呼ばれる一時記憶手段(キャッシュメモリ)に記憶することにより、プロセッサが主記憶装置にアクセスしようとして発行するリニアアドレスを、実際にそのデータが記憶されている物理アドレスに変換する。これにより、プロセッサは主記憶装置のその物理アドレスにアクセスして、データを読み書きすることが可能となる。
その際、発行したリニアアドレスに対応する物理アドレスがTLBから得られない場合(TLBミス)、その物理アドレスを得るために複数のテーブルを辿る必要があるので、物理アドレスをTLBから得られた場合(TLBヒット)と比べて処理効率が落ちることとなる。TLBヒットとなる確率、即ちリニアアドレスに対応する物理アドレスがTLBから得られる確率をTLBヒット率といい、これは処理効率と直結するので重要である。
前述のIA−32アーキテクチャに準拠したコンピュータにおいては、PAE(Physical Address Extension, 物理アドレス拡張)やPSE(Page Size Extension, ページサイズ拡張)といった技術が、具体的に利用されている。以後、本明細書ではPSEについて説明する。
PSEでは、アーキテクチャで通常用いられるサイズのページを基本ページといい、それよりも大きなサイズのページを拡張ページという。そして、リニアアドレスを物理アドレスに変換する際に、通常はページディレクトリ→ページテーブルと辿って目的の物理アドレスを得るところを、ページディレクトリから直接物理アドレスを得るようにページテーブルの段数を減らすことで、連続した物理アドレス空間上に配置される複数の基本ページを、単一のより大きなページとして扱うものである。
これによって、その拡張ページに所望のデータが含まれる可能性、即ちTLBヒット率を向上させるという効果を得ることができる。特に近年は主記憶装置の容量がますます増大しているので、動作中無駄に割り当てられる記憶領域が多少あったとしても、拡張ページの容量の増大→TLBヒット率の向上によって得られる処理効率の向上が、コンピュータ装置の性能面では有利に働く。
これに関連して、次の各々の技術文献がある。その中でも特許文献1には、初期化済み領域の終端情報を利用して初期化処理を行う領域を決定するという仮想記憶デバイス管理装置が記載されている。特許文献2には、物理メモリと仮想メモリとの間の対応を示すマップを利用して、複数プロセス間でのデータの共有を可能とするという情報処理装置が記載されている。
特許文献3には、各世代の仮想メモリ空間のサイズを動的に調整可能にするというガベージコレクションプログラムが記載されている。特許文献4には、アプリケーションによって物理メモリの割り振りを制御可能とするという仮想記憶システムが記載されている。特許文献5には、情報処理装置で補助記憶装置にプログラム実行領域を割り当てる処理について記載されている。
特開2003−150321号公報 特開2003−316588号公報 特開2007−025914号公報 特開2008−251036号公報 特開2009−217705号公報
拡張ページを利用する場合、通常のリード/ライト処理においては、前述のように無駄に割り当てられる記憶領域が多少あったとしても無視することができる。しかしながら、ページングにより仮想記憶を管理するOSは、ページが要求された場合、主記憶装置上に新規に拡張ページが割り当ててその拡張ページ全体を初期化することになるので、ページ内の無駄な領域まで初期化してしまうことに伴う処理効率の低下を無視することができない。
より具体的には、ページの初期化には、新規に割り当てたページをゼロクリアする、ページに書き込みが発生した際にその内容を別ページにコピーする(コピーオンライト)、ファイルをメモリにマップしてメモリアクセスが発生した際にそのページの内容を読み込む(メモリマップドファイル)、といった処理がある。即ちこれらの処理には、メモリのデータ転送が必要であるので、ページサイズに比例して処理効率が低下することになる。
また、初期化された拡張ページは、全ての領域がプロセッサによってアクセスされるとは限らず、ごく一部の領域にしかアクセスされない場合もありうる。その場合は特に、処理効率の低下に見合う効果が得られていない、即ちその初期化処理自体が無駄なものとなってしまう。
拡張ページの中で、プロセッサによってアクセスされた領域のみをオンデマンドで初期化していくことができれば、初期化処理に伴って発生する無駄を削減することができる。しかしながら、拡張ページ内では必ずしも、連続した領域が順番に次々とアクセスされるものであるとは限らない。用途によっては拡張ページ内の連続しない領域が次々にアクセスされることが必要となる場合もある。
具体的には、時間的な遂次性が保証されずに到着する入力データを結合し直すTCP/IPの受信バッファや、どの部分にプログラムの制御が移るかが不確定であるプログラムコードを記憶するメモリマップドファイルなどが、拡張ページの連続しない領域へのアクセスが頻繁に行われる用途の例である。
このため、拡張ページ中のアクセスされた領域のみをオンデマンドで初期化していく場合には、その拡張ページの初期化の動作を基本ページ単位で遅延評価するという方法が利用される。
図7は、拡張ページ中のアクセスされた領域のみをオンデマンドで初期化していく既存技術を適用した仮想記憶管理システム(コンピュータ901)の構成について示す説明図である。コンピュータ901は、主記憶装置921(RAM)上に仮想メモリを構成し、その仮想メモリにメインプロセッサ920が実行中のプログラムや演算処理中のデータを記憶するためのアドレス管理を行うハードウェアである仮想記憶管理装置910を備える。
主記憶装置921上には、ページディレクトリ950と、一時的ページテーブル960とが作成される。この一時的ページテーブル960に、主記憶装置921上に確保された拡張ページ980の領域内の各基本ページを個別にマッピングしておき、ページフォールトを契機に基本ページ単位で初期化していく。そして、全ての基本ページの初期化が確認できたら、一時的ページテーブル960を解放し、ページディレクトリ950によって全領域を拡張ページ980としてマッピングし直す。
ただし、拡張ページのサイズは基本ページの数百〜数千倍程度であるので、拡張ページを基本ページの区画単位で初期化しようとするとページフォールトが多発し、これによって著しく処理効率を低下させてしまう場合がある。
この問題点を解決しうる技術は、前述の特許文献1〜5には記載されていない。特許文献1は、仮想記憶システムにおける初期化を高速に行うことを目的とする発明ではある。しかしながら、この文献には初期化処理を行う領域を決定する(余計な領域に対する初期化処理実行を抑制する)ということについて記載されているのみであり、その初期化処理自体を高速化するものではない。これに、残る特許文献2〜5に記載の技術を組み合わせても、その初期化処理自体が高速化されることにはならない。
本発明の目的は、拡張ページの初期化の処理に伴って発生するページフォールトの頻度を削減し、拡張ページでアクセスされた領域のみをオンデマンドで高速に初期化することを可能とする仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラムを提供することにある。
上記目的を達成するため、本発明に係る仮想記憶管理システムは、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムであって、拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれていると共に、ページディレクトリに、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されており、仮想記憶管理装置が、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値である場合に、リニアアドレスおよびページディレクトリエントリから物理アドレスを作成して出力するアドレス変換部を有することを特徴とする。
上記目的を達成するため、本発明に係る仮想記憶管理装置は、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサとを備えた仮想記憶管理システムにおいて、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置であって、拡張ページは、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであり、ページディレクトリに、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されていると共に、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する判断機能と、当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから物理アドレスを作成して出力するアドレス変換機能とを有することを特徴とする。
上記目的を達成するため、本発明に係る仮想記憶初期化方法は、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、ページディレクトリに、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶し、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを仮想記憶管理装置の判断機能が判断し、当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから仮想記憶管理装置のアドレス変換機能が物理アドレスを作成して出力することを特徴とする。
上記目的を達成するため、本発明に係る仮想記憶初期化プログラムは、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、仮想記憶管理装置が備えるプロセッサに、ページディレクトリに各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶する手順、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する手順、および当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから物理アドレスを作成して出力する手順を実行させることを特徴とする。
本発明は、上記したように、拡張ページを複数の準拡張ページに分け、それら各々の準拡張ページが初期化処理済みであるか否かを示すビットマップをページディレクトリエントリに含めて予め記憶している構成としたので、初期化に伴って発生するページフォールトの頻度が少なくなる。これによって、拡張ページでアクセスされた領域のみをオンデマンドで高速に初期化することが可能であるという、優れた特徴を持つ仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラムを提供することができる。
本発明の第1の実施形態に係るコンピュータの構成について示す説明図である。 図1に示したコンピュータで行われるアドレス変換および拡張ページ初期化の処理について示す説明図である。 図1〜2に示したコンピュータで行われる拡張ページ初期化の処理について示すフローチャートである。 本発明の第2の実施形態に係るコンピュータの構成について示す説明図である。 図4に示したコンピュータで行われるアドレス変換および拡張ページ初期化の処理について示す説明図である。 図4〜5に示したコンピュータで行われる拡張ページ初期化の処理について示すフローチャートである。 拡張ページ中のアクセスされた領域のみをオンデマンドで初期化していく既存技術を適用したコンピュータの構成について示す説明図である。
(第1の実施形態)
以下、本発明の第1の実施形態の構成について添付図1〜2に基づいて説明する。
最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
本実施形態に係る仮想記憶管理システム(コンピュータ1)は、ページディレクトリ50および拡張ページ150が各々記憶領域として確保されている主記憶装置21と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサ20と、リニアアドレス100に対応する主記憶装置の物理アドレス120を出力し、メインプロセッサ20による主記憶装置21へのアクセスを可能とする仮想記憶管理装置10とを備えるコンピュータである。拡張ページ150は、各々の容量が基本ページの容量よりも大きい複数の準拡張ページ150a〜hに分かれている。ページディレクトリ50に、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップ112を含むページディレクトリエントリ110が予め記憶されている。そして仮想記憶管理装置10は、リニアアドレス100に含まれる準拡張ページインデックス102に対応するビットマップ112上のビットが当該準拡張ページ150a〜hが初期化処理済みであることを示す値である場合に、リニアアドレス100およびページディレクトリエントリ110から物理アドレス120を作成して出力するアドレス変換部12を有する。
また、仮想記憶管理装置10のアドレス変換部12は、リニアアドレス100に含まれる準拡張ページインデックス102に対応するビットマップ112上のビットが当該準拡張ページ150a〜hが初期化処理済みでないことを示す値であれば、メインプロセッサ20で動作するページフォールト処理機能30に当該準拡張ページに対する初期化処理を行わせると共にビットマップ112上の当該ビットを初期化処理済みであることを示す値に変更させる機能を有する。
以上の構成を備えることにより、仮想記憶管理システム(コンピュータ1)は、ページフォールトの頻度を削減して、拡張ページでアクセスされた領域のみをオンデマンドで高速に初期化することが可能となる。
以下、これをより詳細に説明する。
図1は、本発明の第1の実施形態に係るコンピュータ1の構成について示す説明図である。コンピュータ1は、米国インテル・コーポレーションのIA−32アーキテクチャに基づいた構成のコンピュータ装置であり、主記憶装置21(RAM)上にPSE(Page Size Extension, ページサイズ拡張)機能に基づく仮想メモリを構成し、その仮想メモリにメインプロセッサ20が実行中のプログラムや演算処理中のデータを記憶するためのアドレス管理を行うハードウェアである仮想記憶管理装置10を備える。この仮想記憶管理装置10がメインプロセッサ20に内蔵されている構成としてもよい。コンピュータには、これら以外にも多くの構成要素が必要であるが、本明細書では本願発明の概念を説明するために必要な要素についてのみ図示して説明することにする。
このPSE機能によるページングシステムは、アドレス幅が32ビットである。メインプロセッサ20にはTLB20a(Translation Lookaside Buffer)が付属する。主記憶装置21上の領域を基本ページモードでマップした際のページ容量は4キロバイト、同じく主記憶装置21上の領域を拡張ページモードでマップした際のページ容量は4メガバイトである。そして、ページディレクトリ50は基本ページ1個分(4キロバイト)の領域上に作成され、後述のページディレクトリエントリ110が最大1024個記憶される。
拡張ページ150は8つの準拡張ページ150a〜hに分かれる。1つの準拡張ページの容量は512キロバイトである。準拡張ページ150a〜hに対して、各々インデックス番号「#0」〜「#7」で呼ぶものとする。
仮想記憶管理装置10は、ページディレクトリ50の物理アドレスを格納するレジスタであるページディレクトリレジスタ11と、メインプロセッサ20から要求されるリニアアドレスを実際にそのデータが記憶されている物理アドレスに変換するアドレス変換部12とを備える。ページディレクトリレジスタ11のみをメインプロセッサ20に内蔵する構成としてもよい。
アドレス変換部12は、そのアドレス変換の際、基本ページを用いる際はページディレクトリとページテーブルという2段階のアドレス変換を行う。また、拡張ページを用いる際はページディレクトリのみによるアドレス変換を行う。これらの詳細についても後述する。
図2は、図1に示したコンピュータ1で行われるアドレス変換および拡張ページ初期化の処理について示す説明図である。ここで、この図2では、値が0であるか1であるかが特に重視されるものではないビットについては、その値を「x」として図示している。
本発明に限定されない、PSE機能による仮想メモリにおいては一般的に、基本ページを用いる場合は、入力値であるリニアアドレスの上位10ビットがページディレクトリのインデックス、中位10ビットがページテーブルのインデックス、下位12ビットがページ内のオフセットを各々表す。一方、拡張ページを用いる場合は、入力値であるリニアアドレスの上位10ビットがページディレクトリのインデックス、下位22ビットがページ内のオフセットを各々表す。そして、各ページは、物理アドレス空間上にページサイズにアラインされて配置される。
本実施形態では、メインプロセッサ20から要求されるリニアアドレス100は、下位アドレスから順に、準拡張ページオフセット101と、準拡張ページインデックス102と、ページディレクトリインデックス103とを含む。このうち準拡張ページオフセット101は、アクセス先の物理アドレスの下位19ビットの値を表す。
準拡張ページインデックス102は、アクセス先の物理アドレスの中位3ビットの値を表し、後述のビットマップ112から参照すべきビットを特定するインデックスとなる。前述のように準拡張ページ150a〜hには各々インデックス番号「#0」〜「#7」が割り当てられている。準拡張ページインデックス102の値は、このインデックス番号を2進数に直した値である。
ページディレクトリインデックス103は、ページディレクトリレジスタ11に記憶された物理アドレスが指し示すページディレクトリ50の中からページディレクトリエントリ(いずれも詳しくは後述)を特定するためのインデックスとなる10ビットの値である。
一方、ページディレクトリ50は、ページディレクトリインデックス103で示される配列要素にページディレクトリエントリ110を記憶している。ページディレクトリエントリ110は、下位アドレスから順に、属性情報領域111と、ビットマップ112と、拡張ページフレーム番号113とを含む。
このうち属性情報領域111は、様々なページの属性情報を格納する。属性情報の中には、拡張ページモードと基本ページモードを切り替えるためのページサイズ拡張フラグが含まれる。
ビットマップ112は、このページディレクトリエントリが指し示す拡張ページ150内で、どの準拡張ページ150a〜hが初期化されているかを示す領域である。既存のページングシステムでは、この領域は基本ページモードの場合にはページテーブルの物理アドレスの一部として利用されるが、拡張ページモードの場合には利用されない領域である。
ここで、本実施例では10ビット中上位の2ビットを未使用としているため、残りの8ビットが拡張ページ150内の各512キロバイトの準拡張ページ150a〜hに対応する。図2に示した例ではビットマップ112=「xx01100101」である。これは準拡張ページ150a〜hの各々に割り当てられたインデックス番号「#0」〜「#7」でいえば、ビットマップ112の下8ビットが各々、上から順番に「#7」〜「#0」の初期化の状態を示している。各ビットの値は、「1」が未初期化、「0」は初期化済を各々示す。
拡張ページフレーム番号113は、このページディレクトリエントリが指し示す拡張ページの物理アドレスの上位10ビットの値である。
アドレス変換部12は、以上のリニアアドレス100を入力値として、ページディレクトリエントリ110を参照して、物理アドレス120を出力する。物理アドレス120は、下位アドレスから順に、準拡張ページオフセット101、準拡張ページインデックス102、および拡張ページフレーム番号113が結合されることによって生成される。
その際、アドレス変換部12に含まれるビットマップ判定部12aは、準拡張ページインデックス102が示すビットマップ112内のビットを検査し、もし対象の準拡張ページが未初期化であればページフォールトを発生させる。メインプロセッサ20にはOSの動作によって機能するページフォールト処理部30が含まれており、このページフォールト発生を受けたページフォールト処理部30は、当該準拡張ページを初期化する。その詳細な動作は以下に示す。
図3は、図1〜2に示したコンピュータ1で行われる拡張ページ初期化の処理について示すフローチャートである。この図3に示した動作は、アドレス変換部12およびページフォールト処理部30の動作のみを示している。これ以外は既存のPSE機能によるページングシステムと同一である。また、図3で説明する動作では、ビットマップ112の下位8ビットの値は、拡張ページ150を割り当ててページディレクトリエントリ110を初期化する段階で全て「1」(未初期化)に設定されている。
まず、メインプロセッサ20からリニアアドレス100で示されるメモリへのアクセスが要求されると(ステップS200)、アドレス変換部12は、主記憶装置21のページディレクトリレジスタ11から取得される物理アドレスで指し示されるページディレクトリ50の中から、ページディレクトリインデックス103で示されるページディレクトリエントリ110を取得し、続いてビットマップ判定部12aは、準拡張ページインデックス102で示される値を、ビットマップ112の下位8ビット中でビットを特定するインデックスとして取得する(ステップS201)。
これに続いてビットマップ判定部12aは、ビットマップ112の下位8ビット中のステップS201で取得したビットの値を検査し、その値が0であるか1であるかを判断する(ステップS202)。このビットの値が0である場合には、これに対応する準拡張ページは既に初期化済みであるので、図2に示したように拡張ページフレーム番号113、準拡張ページインデックス102、および準拡張ページオフセット101の順に上位ビットから連結した値を物理アドレスとし、そのアドレスを出力して(ステップS203)処理を終了する。
ステップS202で、そのビットの値が1である場合には、これに対応する準拡張ページは未初期化である。このため、ビットマップ判定部12aは、OSのページフォールト処理部30に当該準拡張ページを初期化させるよう、ページフォールトを発生させる(ステップS204)。
これを受けたページフォールト処理部30は、そのページフォールトの原因となった準拡張ページを初期化し(ステップS205)、その準拡張ページに対応するビットマップ112内のビットの値を1から0に変更して(ステップS206)ページフォールトから復帰する(ステップS207)。そしてステップS200に処理を戻し、そのページフォールトを起こしたアドレスへのアクセスを再実行する。
図2に示した例では、準拡張ページインデックス102=「001」、即ち10進数でいうところの「1」である。これは、インデックス番号「#1」で示される準拡張ページ150bを指し示すものである。インデックス番号「#1」に該当するビットマップ112の下から2ビット目の値は「0」、即ち「初期化済」を示している。そのため、ここではステップS202からステップS203の処理に進み、生成された物理アドレスを出力する。
(第1の実施形態の全体的な動作)
次に、上記の実施形態の全体的な動作について説明する。
本実施形態に係る仮想記憶初期化方法は、ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、リニアアドレスに対応する主記憶装置の物理アドレスを出力し、メインプロセッサによる主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備えるコンピュータにあって、拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、ページディレクトリに、各々のビットが各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶し、リニアアドレスに含まれる準拡張ページインデックスに対応するビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを仮想記憶管理装置の判断機能が判断し(図3・ステップS202)、当該準拡張ページが初期化処理済みであることを示す値であれば、リニアアドレスおよびページディレクトリエントリから仮想記憶管理装置のアドレス変換機能が物理アドレスを作成して出力する(図3・ステップS203)。
ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行する仮想記憶管理装置のプロセッサに実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
この動作により、本実施形態は以下のような効果を奏する。
本実施形態は、拡張ページの領域内ではアドレス空間がストレートマッピングされている、即ち物理アドレスとリニアアドレスに連続性があることを利用している。そのため、高機能なページテーブルの代わりに単純なビットマップを用い、各ビットを拡張ページ内の各小区画に対応させることによって、各区画の初期化の有無を管理することができる。そして、これらの各ビットが対応する各小区画を、準拡張ページという基本ページよりも大きなサイズの管理単位としているので、初期化に伴って発生するページフォールトの頻度を削減することが可能である。
また、既存のPSEのアーキテクチャで拡張ページを用いる場合は、ページテーブルのページフレーム番号を格納する領域の下位ビット部分が未使用となる。従って、上記のようなビットマップを利用すれば、その未使用領域に当該ビットマップを格納することができる。これによって、一時的なページテーブルの別途割り当てが不要となる。
上記の実施形態は、ビットマップ判定部12aを仮想記憶管理装置10内のハードウェアとして実現したが、これをマイクロプロセッサなどで実行されるプログラムとしてソフトウェア的に実現することももちろん可能である。
(第2の実施形態)
本発明の第2の実施形態に係るコンピュータ301は、第1の実施形態の構成に加えて、準拡張ページ450a〜dがさらに複数基本ページによって構成され、基本ページのうちのいずれかに、各基本ページが初期化処理済みであるか否かを示す値を記憶しているページテーブル460が記憶されていると共に、ページフォールト処理機能(ページフォールト処理部330)が、リニアアドレス400に含まれる準拡張ページインデックス402に対応するビットマップ412のビットが全て初期化処理済みであることを示す値であれば、ページディレクトリエントリ410に含まれるページサイズモードを示す属性を拡張ページモードに変更するという構成とした。
また、ここでページフォールト処理機能(ページフォールト処理部330)が、リニアアドレス400に含まれる準拡張ページインデックス402に対応するビットマップ412が一つでも初期化処理済みでないことを示す値のビットを含んでいれば、当該ビットの位置をビットマップに含まれるページテーブル配置先準拡張ページインデックス412aに格納し、ページディレクトリエントリ410の上位ビットで示される位置に新たにページテーブル460を記憶するものとすることもできる。
この構成によって、ハードウェアによる処理を省略して、第1の実施形態と同一の効果が得ることが可能となる。
以下、これをより詳細に説明する。
図4は、本発明の第2の実施形態に係るコンピュータ301の構成について示す説明図である。コンピュータ301は、主記憶装置321(RAM)上にPSE(Page Size Extension, ページサイズ拡張)機能に基づく仮想メモリを構成し、その仮想メモリにメインプロセッサ320が実行中のプログラムや演算処理中のデータを記憶するためのアドレス管理を行う仮想記憶管理装置310を備える。
しかしながら、第1の実施形態の仮想記憶管理装置10では、新たなハードウェアであるアドレス変換部12を必要とした。これに対して、本実施形態では新たなハードウェアを必要とせず、既存のメモリ管理ユニットのページング機能に変更を加えることなく、新規に割り当てた拡張ページを準拡張ページごとに初期化する処理をソフトウェアのみで実現する。
より具体的には、本実施形態では仮想記憶管理装置310は第1の実施形態と同様のページディレクトリレジスタ311は備えるが、ビットマップ判定部は備えない。この機能を、メインプロセッサ320で動作する、第1の実施形態と異なる新たなページフォールト処理部330によって担っている。かつ、ページテーブル460を主記憶装置321内の拡張ページの一部として記憶している。
そして、メインプロセッサ320にはTLB320aが付属し、主記憶装置321には第1の実施形態と同様の拡張ページ450が確保され、拡張ページ450内には4つの準拡張ページ450a〜dが割り当てられている。準拡張ページ450a〜dに対して、各々インデックス番号「#0」〜「#3」で呼ぶものとする。各準拡張ページ450a〜dは、各々256個の基本ページからなる。
図5は、図4に示したコンピュータ301で行われるアドレス変換および拡張ページ初期化の処理について示す説明図である。本実施形態では、メインプロセッサ20から要求されるリニアアドレス400は、第1の実施形態と同様に、下位アドレスから順に、準拡張ページオフセット401と、準拡張ページインデックス402と、ページディレクトリインデックス403とを含む。このうち準拡張ページオフセット401は、アクセス先の物理アドレスの下位20ビットの値を表す。
準拡張ページインデックス402は、アクセス先の物理アドレスの中位2ビットの値を表し、後述のビットマップ112から参照すべきビットを特定するインデックスとなる。準拡張ページインデックス402の値は、準拡張ページ450a〜dのインデックス番号「#0」〜「#3」を2進数に直した値である。ページディレクトリインデックス403は、第1の実施形態と同様である。
一方、ページディレクトリ350は、ページディレクトリインデックス403で示される配列要素にページディレクトリエントリ410を記憶している。ページディレクトリエントリ410は、下位アドレスから順に、属性情報領域411と、ビットマップ412と、拡張ページフレーム番号413とを含む。属性情報領域411は、第1の実施形態と同様である。
ビットマップ412は、さらにその上位2桁がページテーブル配置先準拡張ページインデックス412aであり、これは未初期化である準拡張ページテーブルの番号を設定する。またビットマップ412の下位8桁のうち4桁のみを有効としている。
そして、ページテーブル460には、拡張ページ450に含まれる1024個の基本ページの各々の状態を管理する1024個のページテーブルエントリが記憶される。これらの各ページテーブルエントリは、準拡張ページインデックス402(2ビット)と準拡張ページオフセット401の上位8ビットとを含む10桁の値によって決定される各基本ページが、未初期化の「1」か、初期化済の「0」かを示す。この値は、連続する256個の基本ページごと(即ち準拡張ページごと)に同一の初期化状態となる。
このページテーブル460は、拡張ページフレーム番号413およびビットマップ412で示されるアドレスの、拡張ページ450内の未初期化の準拡張ページ内に配置される。ページテーブル配置先準拡張ページインデックス412aは、ページテーブル460が含まれる準拡張ページ450a〜dのインデックス番号「#0」〜「#3」を2進数に直した値である。図5に示した例ではインデックス番号「#1」、即ち準拡張ページ450b上にページテーブル460が存在する。
仮想記憶管理装置310で取り扱われるページサイズモードは基本ページモードであるので、ページディレクトリエントリ410の上位20ビットがページテーブル460のフレーム番号として扱われる。ただし、ページテーブル460は、未初期化の準拡張ページ内に配置する必要があるため、2ビットからなるページテーブル配置先準拡張ページインデックス412aに未初期化の準拡張ページテーブルの番号を設定することで、8ビットからなるビットマップ412の値によらず、ページテーブル460が未初期化の準拡張ページ内に配置されることを保証する。
本実施形態では、ビットマップ412は、8ビットのうち下位4ビットが有効であるとする。リニアアドレス400に含まれる準拡張ページインデックス402、およびページテーブル配置先準拡張ページインデックス412aに格納される十進数で0から3の範囲の値は、ビットマップ412の下位4ビットのビット位置と対応する。
図6は、図4〜5に示したコンピュータ301で行われる拡張ページ初期化の処理について示すフローチャートである。この図6に示した動作は、ページフォールト処理部330の動作のみを示している。これ以外は既存のPSE機能によるページングシステムと同一である。
また、図6で説明する動作では、ビットマップ412の下位4ビットの値は、拡張ページ450を割り当ててページディレクトリエントリ410を初期化する段階で全て「1」(未初期化)に設定されている。ビットマップ412の上位2ビットは、前述のページテーブル配置先準拡張ページインデックス412aである。その間の上から3〜6ビット目は、前述の通り本実施形態では使用されない。
まず、メインプロセッサ320からリニアアドレス400で示される基本ページへのアクセスが要求され、これが無効な基本ページへのアクセスとなってページフォールトが発生すると(ステップS500)、ページフォールト処理部330が動作を開始し、まず準拡張ページインデックス402で示される準拡張ページの内容を初期化する(ステップS501)。そして、その準拡張ページに対応するビットマップ412内のビットをクリアする(ステップS502)。
続いてページフォールト処理部330は、ビットマップ412の下位4ビット中で値が1になっているビットがあるか否かについて判断する(ステップS503〜504)。4ビット中で値が1になっているビットが1つ以上あれば、そのビットの位置をページテーブル配置先準拡張ページインデックス412aに格納して(ステップS505)、拡張ページ450でページディレクトリエントリ410の上位20ビットで示される位置を新たにページテーブル460として初期化して(ステップS506)、処理を終了する。
このステップS506で初期化されるページテーブル460の内容は、図5に示す通りストレートマッピングであり、かつビットマップ412の内容に沿って各基本ページの有効または無効の状態を反映したものである。
一方、ステップS503〜504で、ビットマップ412の下位4ビットが全て0である場合には、拡張ページ450全体の初期化が完了しているので、ページディレクトリエントリ410の属性情報領域411に含まれるページサイズ拡張フラグをセットしてページサイズモードを拡張ページモードに変更して(ステップS507)処理を終了する。
(実施形態の拡張)
上記第1および第2の実施形態は、以上で説明した本発明の趣旨を改変しない範囲で、様々な拡張が可能である。以下、これについて説明する。
まず、ハードウェアとして実施形態で説明されていた内容は、これをマイクロプロセッサなどで実行されるプログラムとしてソフトウェア的に実現することももちろん可能である。
また、拡張ページを第1の実施形態では8つの、第2の実施形態では4つの準拡張ページに各々分けていたが、この準拡張ページの個数も任意に決定することができる。要は、ビットマップ112および412の各々が、各準拡張ページが初期化処理済みであるか否かを記録することができるビット数を持ち、かつ準拡張ページインデックス102また402でその準拡張ページのインデックス番号を表すことができれば、それでよいのである。もちろんその個数が「2の累乗」である必要もない。
これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1) ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムであって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれていると共に、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されており、
前記仮想記憶管理装置が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値である場合に、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力するアドレス変換部を有することを特徴とする仮想記憶管理システム。
(付記2) 前記仮想記憶管理装置の前記アドレス変換部が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みでないことを示す値であれば、前記メインプロセッサで動作するページフォールト処理機能に当該準拡張ページに対する初期化処理を行わせると共に前記ビットマップ上の当該ビットを初期化処理済みであることを示す値に変更させる機能を有することを特徴とする、付記1に記載の仮想記憶管理システム。
(付記3) 前記準拡張ページがさらに複数の基本ページによって構成され、
前記基本ページのうちのいずれかに、前記各基本ページが初期化処理済みであるか否かを示す値を記憶しているページテーブルが記憶されていると共に、
前記ページフォールト処理機能が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップのビットが全て初期化処理済みであることを示す値であれば、前記ページディレクトリエントリに含まれるページサイズモードを示す属性を拡張ページモードに変更することを特徴とする、付記2に記載の仮想記憶管理システム。
(付記4) 前記ページフォールト処理機能が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップが一つでも初期化処理済みでないことを示す値のビットを含んでいれば、当該ビットの位置を前記ビットマップに含まれるページテーブル配置先準拡張ページインデックスに格納し、前記ページディレクトリエントリの上位ビットで示される位置に新たに前記ページテーブルを記憶することを特徴とする、付記3に記載の仮想記憶管理システム。
(付記5) ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサとを備えた仮想記憶管理システムにおいて、前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置であって、
前記拡張ページは、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであり、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されていると共に、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する判断機能と、
当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力するアドレス変換機能とを有することを特徴とする仮想記憶管理装置。
(付記6) ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、
前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶し、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを前記仮想記憶管理装置の判断機能が判断し、
当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記仮想記憶管理装置のアドレス変換機能が前記物理アドレスを作成して出力することを特徴とする仮想記憶初期化方法。
(付記7) ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、
前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、
前記仮想記憶管理装置が備えるプロセッサに、
前記ページディレクトリに各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶する手順、
前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する手順、
および当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力する手順
を実行させることを特徴とする仮想記憶初期化プログラム。
本発明は仮想記憶方式を利用するコンピュータ装置一般に対して適用することができる。特に、米国インテル・コーポレーションのIA−32アーキテクチャに基づいた構成のコンピュータ装置に適する。
1、301 コンピュータ
10、310 仮想記憶管理装置
11、311 ページディレクトリレジスタ
12 アドレス変換部
12a ビットマップ判定部
20、320 メインプロセッサ
20a、320a TLB
21、321 主記憶装置
30、330 ページフォールト処理部
50、350 ページディレクトリ
100、400 リニアアドレス
101、401 準拡張ページオフセット
102、402 準拡張ページインデックス
103、403 ページディレクトリインデックス
110、410 ページディレクトリエントリ
111、411 属性情報領域
112、412 ビットマップ
113、413 拡張ページフレーム番号
120 物理アドレス
150、450 拡張ページ
150a、150b、150h、450a、450b、450d 準拡張ページ
412a ページテーブル配置先準拡張ページインデックス
460 ページテーブル

Claims (7)

  1. ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
    前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
    前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムであって、
    前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれていると共に、
    前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されており、
    前記仮想記憶管理装置が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値である場合に、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力するアドレス変換部を有することを特徴とする仮想記憶管理システム。
  2. 前記仮想記憶管理装置の前記アドレス変換部が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みでないことを示す値であれば、前記メインプロセッサで動作するページフォールト処理機能に当該準拡張ページに対する初期化処理を行わせると共に前記ビットマップ上の当該ビットを初期化処理済みであることを示す値に変更させる機能を有することを特徴とする、請求項1に記載の仮想記憶管理システム。
  3. 前記準拡張ページがさらに複数の基本ページによって構成され、
    前記基本ページのうちのいずれかに、前記各基本ページが初期化処理済みであるか否かを示す値を記憶しているページテーブルが記憶されていると共に、
    前記ページフォールト処理機能が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップのビットが全て初期化処理済みであることを示す値であれば、前記ページディレクトリエントリに含まれるページサイズモードを示す属性を拡張ページモードに変更することを特徴とする、請求項2に記載の仮想記憶管理システム。
  4. 前記ページフォールト処理機能が、前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップが一つでも初期化処理済みでないことを示す値のビットを含んでいれば、当該ビットの位置を前記ビットマップに含まれるページテーブル配置先準拡張ページインデックスに格納し、前記ページディレクトリエントリの上位ビットで示される位置に新たに前記ページテーブルを記憶することを特徴とする、請求項3に記載の仮想記憶管理システム。
  5. ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサとを備えた仮想記憶管理システムにおいて、前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置であって、
    前記拡張ページは、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであり、
    前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリが予め記憶されていると共に、
    前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する判断機能と、
    当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力するアドレス変換機能とを有することを特徴とする仮想記憶管理装置。
  6. ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
    前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
    前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、
    前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、
    前記ページディレクトリに、各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶し、
    前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを前記仮想記憶管理装置の判断機能が判断し、
    当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記仮想記憶管理装置のアドレス変換機能が前記物理アドレスを作成して出力することを特徴とする仮想記憶初期化方法。
  7. ページディレクトリおよび拡張ページが各々記憶領域として確保されている主記憶装置と、
    前記主記憶装置のリニアアドレスに対してアクセス要求するメインプロセッサと、
    前記リニアアドレスに対応する主記憶装置の物理アドレスを出力し、前記メインプロセッサによる前記主記憶装置へのアクセスを可能とする仮想記憶管理装置とを備える仮想記憶管理システムにあって、
    前記拡張ページが、各々の容量が基本ページの容量よりも大きい複数の準拡張ページに分かれているものであると共に、
    前記仮想記憶管理装置が備えるプロセッサに、
    前記ページディレクトリに各々のビットが前記各準拡張ページが初期化処理済みであるか否かを示すビットマップを含むページディレクトリエントリを予め記憶する手順、
    前記リニアアドレスに含まれる準拡張ページインデックスに対応する前記ビットマップ上のビットが当該準拡張ページが初期化処理済みであることを示す値であるか否かを判断する手順、
    および当該準拡張ページが初期化処理済みであることを示す値であれば、前記リニアアドレスおよび前記ページディレクトリエントリから前記物理アドレスを作成して出力する手順
    を実行させることを特徴とする仮想記憶初期化プログラム。
JP2012191304A 2012-08-31 2012-08-31 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム Expired - Fee Related JP5958195B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012191304A JP5958195B2 (ja) 2012-08-31 2012-08-31 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012191304A JP5958195B2 (ja) 2012-08-31 2012-08-31 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム

Publications (2)

Publication Number Publication Date
JP2014048895A JP2014048895A (ja) 2014-03-17
JP5958195B2 true JP5958195B2 (ja) 2016-07-27

Family

ID=50608506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012191304A Expired - Fee Related JP5958195B2 (ja) 2012-08-31 2012-08-31 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム

Country Status (1)

Country Link
JP (1) JP5958195B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101866681B1 (ko) * 2017-01-25 2018-06-11 이화여자대학교 산학협력단 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치
CN112596670B (zh) * 2020-12-04 2024-06-07 北京自动化控制设备研究所 一种大容量Flash存储器读写操作的设计方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388244A (en) * 1992-09-17 1995-02-07 International Business Machines Corporation Controls for initial diversion of page-frame logical content as part of dynamic virtual-to-real translation of a virtual page address
JP2003150321A (ja) * 2001-11-09 2003-05-23 Matsushita Electric Ind Co Ltd 仮想記憶デバイス管理装置、仮想記憶デバイス管理方法、仮想記憶デバイス管理プログラム及び仮想記憶デバイスが記録されたコンピュータ読み取り可能な記録媒体
US8799620B2 (en) * 2007-06-01 2014-08-05 Intel Corporation Linear to physical address translation with support for page attributes
US8195917B2 (en) * 2009-07-01 2012-06-05 Advanced Micro Devices, Inc. Extended page size using aggregated small pages

Also Published As

Publication number Publication date
JP2014048895A (ja) 2014-03-17

Similar Documents

Publication Publication Date Title
US11513683B2 (en) Namespace re-sizing
JP6785205B2 (ja) メモリシステムおよび制御方法
CN108804350B (zh) 一种内存访问方法及计算机系统
JP6505132B2 (ja) メモリ容量圧縮を利用するメモリコントローラならびに関連するプロセッサベースのシステムおよび方法
EP2510444B1 (en) Hierarchical translation tables control
JP6982468B2 (ja) メモリシステムおよび制御方法
KR101844521B1 (ko) 크로스-페이지 프리페칭 방법, 장치, 및 시스템
JP6785204B2 (ja) メモリシステムおよび制御方法
US11409663B2 (en) Methods and systems for optimized translation of a virtual address having multiple virtual address portions using multiple translation lookaside buffer (TLB) arrays for variable page sizes
JP2019020788A (ja) メモリシステムおよび制御方法
US10255195B2 (en) Apparatus and method for performing address translation
KR102661020B1 (ko) 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
CN108595349B (zh) 大容量存储设备的地址转换方法与装置
JPH1091525A (ja) 変換索引バッファ及びメモリ管理システム
US9892034B2 (en) Semiconductor device and operating method thereof
EP2884395A2 (en) Storage system having data storage lines with different data storage line sizes
CN111414248A (zh) 内存管理方法、装置及计算设备
JP2014170360A (ja) 計算機及びメモリ管理方法
US9824043B2 (en) System with solid state drive and control method thereof
KR20150142583A (ko) 플래시 저장 장치의 어드레스 매핑 테이블 정리 방법
US20150154119A1 (en) Memory allocation and page address translation system and method
JP5958195B2 (ja) 仮想記憶管理システム、仮想記憶管理装置、仮想記憶初期化方法および仮想記憶初期化プログラム
KR20210144656A (ko) 비연접 백업 물리적 서브페이지에 가상 페이지를 할당하는 방법
CN110362509B (zh) 统一地址转换方法与统一地址空间
JP7204020B2 (ja) 制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160606

R150 Certificate of patent or registration of utility model

Ref document number: 5958195

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees