(57)【要約】【課題】ページ・テーブルのために物理メモリを余計に消費することのない仮想メモリ方式を提供する。【解決手段】アドレス変換テーブル生成器１３は、システム・バス１５に接続されており、ＴＬＢミス発生時に、ＣＰＵ１１によってアクセスされる。そして、アクセスを受ける度に、あらかじめ設定された規則に従って該当するページ・テーブル・エントリを生成する。アドレス変換テーブル生成器１３にアクセスすることで、メモリ１２内の領域を使用せず済む。アドレス変換テーブル生成器１３におけるページ・テーブルの生成規則は、ＣＰＵ１１から設定可能とする。【選択図】  図１
2004355187.tif 000002
【特許請求の範囲】
【請求項１】
所定のページ単位で仮想アドレス空間を管理する仮想メモリ・システムであって、
タスクを実行するプロセッサと、
物理アドレス並びに仮想アドレスが割り振られたメモリと、
仮想アドレスが割り振られた外部記憶装置と、
前記プロセッサにおけるタスクの実行に応じて、前記メモリの内容をページ単位で前記外部記憶装置に退避し、及び／又は、前記メモリの内容を前記外部記憶装置から復元するページング手段と、
前記ページング手段により前記メモリの内容を退避又は復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成するアドレス変換テーブル生成手段と、
を具備することを特徴とする仮想メモリ・システム。
【請求項２】
前記アドレス変換テーブル生成手段は、ページ・テーブルの生成規則を保持し、前記プロセッサからのページ・テーブルのアドレス値へのアクセス要求に応答して、該当するページ・テーブル・エントリを前記生成規則に基づいて生成する、
ことを特徴とする請求項１に記載の仮想メモリ・システム。
【請求項３】
前記プロセッサは、前記アドレス変換テーブル生成手段にページ・テーブルの生成規則を設定する、
ことを特徴とする請求項２に記載の仮想メモリ・システム。
【請求項４】
前記プロセッサは、論理アドレスと物理アドレスの早見表ＴＬＢを備え、タスクの実行中に応じてＴＬＢミスが発生したことに応答して、前記アドレス変換テーブル生成手段に対してページ・テーブル・エントリの生成を要求する、
ことを特徴とする請求項１に記載の仮想メモリ・システム。
【請求項５】
所定のページ単位で仮想アドレス空間を管理する仮想メモリのアドレス管理方法であって、
プロセッサにおけるタスクの実行に応じて、メモリの内容をページ単位で外部記憶装置に退避し、及び／又は、メモリの内容を外部記憶装置から復元するページング・ステップと、
前記ページング・ステップにおいて前記メモリの内容を退避又は復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成するアドレス変換テーブル生成ステップと、
を具備することを特徴とする仮想メモリのアドレス管理方法。
【請求項６】
所定のページ単位で管理される仮想メモリにおける論理アドレスと物理アドレスの対応関係を記述したページ・テーブルを動的に生成する、
ことを特徴とするアドレス変換テーブル生成装置。
【請求項７】
プロセッサにおけるタスクの実行に応じて、メモリの内容をページ単位で外部記憶装置に退避し、及び／又は、前記メモリの内容を外部記憶装置から復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成する、
ことを特徴とする請求項６に記載のアドレス変換テーブル生成装置。
【請求項８】
ページ・テーブルの生成規則を保持し、プロセッサからのページ・テーブルのアドレス値へのアクセス要求に応答して、該当するページ・テーブル・エントリを前記生成規則に基づいて生成する、
ことを特徴とする請求項６に記載のアドレス変換テーブル生成装置。
【請求項９】
前記プロセッサによりページ・テーブルの生成規則が設定される、
ことを特徴とする請求項８に記載のアドレス変換テーブル生成装置。
【請求項１０】
前記プロセッサは、論理アドレスと物理アドレスの早見表ＴＬＢを備え、
タスクの実行中に応じて前記プロセッサにおいてＴＬＢミスが発生したことに応答して、ページ・テーブル・エントリを生成する、
ことを特徴とする請求項８に記載のアドレス変換テーブル生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハード・ディスクなどの外部記憶装置に対して論理的なアドレスを割り振り、見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式に係り、特に、所定のページ単位で仮想アドレス空間を管理する仮想メモリ方式に関する。
【０００２】
さらに詳しくは、本発明は、ページ・テーブルを用いて論理アドレスと物理アドレスの関係を掌握する仮想メモリ方式に係り、特に、ページ・テーブルのために物理メモリを余計に消費することのない仮想メモリ方式に関する。
【０００３】
【従来の技術】
昨今、コンピュータを始めとして、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）や携帯電話機などの情報機器、さらには情報家電など、さまざまな形態の計算機システムが広く普及している。
【０００４】
これら計算機システムは、一般に、プロセッサがメモリに展開されたプログラム・コードやデータを用いて各種の演算動作を実行することができる。ここで、物理メモリはＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などの半導体記憶装置で構成され、記憶容量に限界があることや、揮発的である。このため、計算機システムは、プログラムやデータなど膨大なファイルを補助的に格納するために、大容量で且つ容量当たりの単価が低いハード・ディスク装置（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｃ  Ｄｒｉｖｅ）などの外部記憶装置を備えている。
【０００５】
また、例えば計算機システムが複数のタスクを同時並行して実行するマルチタスク機能を備えている場合、タスク毎にメモリの内容を持つ必要があるが、すべてのタスクの空間に相当する物理メモリを実装することは困難である。このため、ハード・ディスクなどの外部記憶装置に対して論理的なアドレス（「論理アドレス」又は「仮想アドレス」と呼ぶ）を割り振り、これらが見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式が採用されている。仮想メモリによれば、少ない物理メモリ容量で論理的には大きなアドレス空間を実現することができる。
【０００６】
図３には、仮想メモリ・システムの構成を模式的に示している。物理メモリの容量は例えば数十〜数百メガバイト程度であるのに対し、仮想メモリは、例えば３２ビット・アーキテクチャであれば４ギガバイト（＝２３２）程度の広大なアドレス空間である。当然、仮想アドレスのごく一部しか物理メモリ上に存在せず、その他はハード・ディスク上に退避されている。
【０００７】
仮想メモリ・システムを実現する際、タスク切り替えの度にタスクに関するメモリのすべての内容をハード・ディスクに退避したりハード・ディスクから回復したりするのでは効率的でない。そこで、仮想アドレス空間を「ページ」と呼ばれる単位で細かく分割し、ページ単位で論理アドレス空間と物理アドレス空間のマッピングが行なわれる。ページ単位で管理することにより、物理メモリ上には常に複数のタスクのページが配置された状態となり、タスク切り替え時にハード・ディスクへのページの退避（ページ・アウト）や復元（ページ・イン）が頻繁に起こることはなくなる。
【０００８】
仮想メモリへのアクセスは、仮想アドレス空間上のページ・アドレスの参照という形態で行なわれる。仮想メモリ・システムでは、論理アドレスと物理アドレスの関係をページ単位で掌握するために、ページ・テーブルを用意する。図４には、ページ・テーブルの構成例を模式的に示している。
【０００９】
同図において、１つの仮想アドレスは、３２ビットで形成されるが、上位１０ビットはディレクトリ・オフセットを、次の１０ビットはページ・テーブル・オフセットを、残りの１２ビットはページ・オフセットを、それぞれ格納するためのフィールドである。ディレクトリ・オフセットはページ・ディレクトリの先頭アドレスに対するオフセット値であり、ページ・ディレクトリ中の該当するレコードには対応するページ・テーブルの先頭アドレスが記録されている。ページ・テーブル・オフセットは、ページ・テーブルの先頭アドレスに対するオフセット値であり、ページ・テーブル中の該当するレコードには対応するページ・フレームの先頭アドレスと、該ページ・フレームの属性情報とが記録されている。ここで、属性情報とは、ページ・フレームへのアクセス頻度（ＬＲＵ）や、ページ・フレームがページャブルかノン・ページャブルか、などといった情報である。ページ・オフセットは、ページ・フレームの先頭アドレスに対するオフセット値であり、物理アドレスの下位ビットそのものである。つまり、（ページ・フレームの先頭アドレス）＋（ページ・オフセット）が現実の物理アドレスを表す訳である。ページ・フレームは、物理アドレス上のページそのものであり、その内容は実際のコードやデータである。
【００１０】
図示の仮想メモリ・システムは３２ビット・アーキテクチャである。ディレクトリ・オフセットには１０ビットが割り当てられているので、１０２４（＝１０１０）個のページ・テーブルをアドレス可能であり、また、ページ・テーブルには１０ビットが割り当てられているので、１０２４（＝１０１０）個のページ・フレームをアドレス可能である。また、１個のページ・フレームは、４キロバイトのサイズを持っている。したがって、仮想メモリ空間は、全体として４ギガバイト（＝１０１０×１０１０×４キロバイト）のサイズを持つ訳である。
【００１１】
ページ・テーブルは、一般に、物理メモリ上に配置され、仮想アドレスへのアクセスが必要になったときに、適宜プロセッサから読み出される。ところが、アドレス空間の増大とともに、ページ数が増大し、ページ・テーブルのエントリ数も増加してしまう。この結果、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。
【００１２】
例えば、ページ・サイズを大きくすることによって、アドレス空間全体のページ数を抑制することも考えられるが、システム・アーキテクチャによってはページ・サイズが固定的であることもあり、有効な方法ではない。
【００１３】
【発明が解決しようとする課題】
本発明の目的は、ページ・テーブルを用いて所定のページ単位で仮想アドレス空間を好適に管理することができる、優れた仮想メモリ方式を提供することにある。
【００１４】
本発明のさらなる目的は、ページ・テーブルのために物理メモリを余計に消費することのない、優れた仮想メモリ方式を提供することにある。
【００１５】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、所定のページ単位で仮想アドレス空間を管理する仮想メモリ・システムであって、
タスクを実行するプロセッサと、
物理アドレス並びに仮想アドレスが割り振られたメモリと、
仮想アドレスが割り振られた外部記憶装置と、
前記プロセッサにおけるタスクの実行に応じて、前記メモリの内容をページ単位で前記外部記憶装置に退避し、及び／又は、前記メモリの内容を前記外部記憶装置から復元するページング手段と、
前記ページング手段により前記メモリの内容を退避又は復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成するアドレス変換テーブル生成手段と、
を具備することを特徴とする仮想メモリ・システムである。
【００１６】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００１７】
計算機システムでは、一般に、プロセッサがメモリに展開されたプログラム・コードやデータを用いて各種の演算動作を実行することができる。ここで、すべてのタスクの空間に相当する物理メモリを実装するのは困難であることから、ハード・ディスクなどの外部記憶装置に対して論理アドレスを割り振り、見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式が広く採用されている。
【００１８】
仮想アドレス空間は、一般に、ページ単位で管理され、ページ・テーブルに論理アドレスと物理アドレスの関係が記述される。ところが、アドレス空間の拡張に伴い、ページ数が増大し、ページ・テーブルのエントリ数も増加し、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。
【００１９】
本発明によれば、すべてのページ・テーブルをメモリ１２上に展開して利用する代わりに、アドレス変換テーブル生成手段が該当するページ・テーブル・エントリを逐次的に生成するので、メモリ資源を余計に消耗しなくて済む。
【００２０】
前記アドレス変換テーブル生成手段は、ページ・テーブルの生成規則を保持する。そして、前記プロセッサからのページ・テーブルのアドレス値へのアクセス要求に応答して、該当するページ・テーブル・エントリを前記生成規則に基づいて生成する。
【００２１】
ここで、前記プロセッサは、前記アドレス変換テーブル生成手段にページ・テーブルの生成規則を設定するようにしてもよい。
【００２２】
また、前記プロセッサは、内部のメモリ管理ユニットにおいて、論理アドレスと物理アドレスの早見表ＴＬＢを備えていてもよい。このような場合、タスクの実行中に応じてＴＬＢミスが発生したことに応答して、前記アドレス変換テーブル生成手段に対してページ・テーブル・エントリの生成を要求するようにすればよい。
【００２３】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【００２４】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００２５】
図１には、本発明の実施に供される計算機システム１０のハードウェア構成を模式的に示している。
【００２６】
メイン・コントローラであるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１は、オペレーティング・システム（ＯＳ）の制御下で、各種プログラムを実行するようになっている。
【００２７】
オペレーティング・システムは、システム１０のハードウェア及びソフトウェアの動作を総合的に管理し、プログラムの実行環境を提供する。オペレーティング・システムは、システム１０のメモリ空間を管理するメモリ・マネージャや、ハード・ディスク装置１４などのファイル空間を管理するファイル・マネージャなどのサブシステムを備えている。本実施形態では、オペレーティング・システムは仮想メモリ機能やマルチタスク機能をサポートしている。
【００２８】
ＣＰＵ１１は、システム・バス１５を経由して他の装置と相互接続されている。システム・バス１５は、アドレス信号線、コマンド信号線、データ信号船などからなる共通信号伝送路である。
【００２９】
メモリ１２は、ＤＲＡＭなどの半導体記憶装置で構成され、ＣＰＵ１１において実行されるプログラム・コードを実行したり、実行プログラムの作業データなどを一時的に格納したりするために用いられる。
【００３０】
ハード・ディスク装置１４は、磁気記録方式の補助記憶装置である。ドライブ・ユニット内には記録媒体である数枚の磁気メディアが収容されており、スピンドル・モータによって高速に回転させ、磁気ヘッドを回転するメディア表面上で半径方向にスキャンさせることによって、メディア上にデータに相当する磁化を生じさせて書き込みを行ない、あるいはデータを読み出すことができる。
【００３１】
本実施形態に係る計算機システム１０では、比較的小容量のメモリ１２を用いて論理的には大きなアドレス空間を実現するために、仮想メモリ方式が採用されている。
【００３２】
メモリ１２の容量は例えば数十〜数百メガバイト程度であるのに対し、仮想メモリは、例えば３２ビット・アーキテクチャであれば４ギガバイト（＝２３２）程度の広大なアドレス空間である。当然、仮想アドレスのごく一部しか物理メモリ上に存在せず、その他はハード・ディスク１３上に退避されている。
【００３３】
仮想アドレス空間はページ単位で管理されており、ページ・テーブルに従って論理アドレス空間と物理アドレス空間のマッピングが行なわれる。そして、仮想メモリへのアクセスは、仮想アドレス空間上のページ・アドレスの参照という形態で行なわれる。
【００３４】
ＣＰＵ１１内のＭＭＵ（Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ：メモリ管理ユニット）１１Ａは、仮想アドレス空間と物理アドレス空間のアドレス変換を行なう。
【００３５】
ＭＭＵ１１Ａは、仮想アドレスを物理アドレスに変換する際に、目的のページがメモリ１２上にあるかどうかをチェックする。そして、目的のページがメモリ１２上にない場合には、ＭＭＵ１１ＡはＣＰＵ１１に対してページ・フォルト割り込みを発生する。この割り込みに応答して、オペレーティング・システムに制御が移行し、メモリ１２上の不要なページのハード・ディスク１４への退避（ページ・アウト）と、目的のページのハード・ディスク１４からメモリ１２への読み込み（ページ・イン）が行なわれる。
【００３６】
また、ＭＭＵ１１Ａは、アドレス変換の効率化のため、ページ・テーブルの一部をテーブル早見表（ＴＬＢ）１１Ｂとして格納している。アドレス変換時にはまずＴＬＢを参照する。そして、ＴＬＢがヒットすれば該当エントリの記載に基づいてアドレス変換が行なわれる。一方、ＴＬＢミスが発生したときには、ＴＬＢリフィルすなわちページ・テーブル上の該当エントリのＴＬＢへの書き込み動作がＣＰＵ１１で起動する。
【００３７】
従来、ページ・テーブルは物理メモリ上に配置されていた（前述）。このような場合、ＣＰＵ１１からのＴＬＢリフィル要求に応答して、要求されたページ・アドレスにヒットするページ・テーブル・エントリがメモリ１２内のページ・テーブルから読み出され、ＣＰＵ１１に返されることになる。
【００３８】
ところが、アドレス空間の増大とともに、ページ数が増大し、ページ・テーブルのエントリ数も増加してしまうので、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。そこで、本実施形態では、すべてのページ・テーブルをメモリ１２上に展開して利用する代わりに、ＴＬＢリフィル要求に応答して該当するページ・テーブル・エントリを逐次的に生成するアドレス変換テーブル生成器１３を配設した。
【００３９】
アドレス変換テーブル生成器１３は、システム・バス１５に接続されており、ＴＬＢミス発生時に、ＣＰＵ１１によってアクセスされる。そして、アクセスを受ける度に、あらかじめ設定された規則に従って該当するページ・テーブル・エントリを生成する。アドレス変換テーブル生成器１３にアクセスすることで、メモリ１２内の領域を使用せず済む。アドレス変換テーブル生成器１３におけるページ・テーブルの生成規則は、ＣＰＵ１１から設定可能とする。
【００４０】
図２には、アドレス変換テーブル生成器１３の内部構成を模式的に示している。
【００４１】
Ｉ／Ｏバッファ２１経由でシステム・バス１５から受信されたデータ、コマンド、アドレスはそれぞれデータ・デコーダ２２、コマンド・デコーダ２３、アドレス・デコーダ２４によって解釈される。
【００４２】
ＣＰＵ１１からページ・テーブルの生成規則が届いた場合には、ページ・テーブル生成規則格納部２５に格納される。
【００４３】
ＣＰＵ１１からＴＬＢリフィル要求が届いた場合には、ページ・テーブル・エントリ生成部２６は、ページ・テーブル生成規則格納部２５に格納されている生成規則を参照し、ＣＰＵ１１からアクセスされたときのページ・テーブルのアドレス値に応じて、該当するページ・テーブル・エントリを自動生成し、これをＩ／Ｏバッファ２１経由でＣＰＵ１１に返す。
【００４４】
本実施形態に係るページ・テーブルの生成処理の手順を以下に記しておく。
【００４５】
ステップ１：
アドレス変換テーブル生成器１３内のレジスタ（ページ・テーブル生成規則格納部２１）に、ＣＰＵ１１から生成規則をあらかじめ書き込んでおく。
【００４６】
ステップ２：
ＣＰＵ１１においてＴＬＢミスが発生し、ＴＬＢリフィルの動作がＣＰＵ１１上で開始される。
【００４７】
ステップ３：
ＴＬＢリフィルに必要なページ・テーブルのエントリ・データを得るために、ＣＰＵ１１はアドレス変換テーブル生成器１３にアクセスする。
【００４８】
ステップ４：
アドレス変換テーブル生成器１３は、アクセスされたときのページ・テーブルのアドレス値に応じて、上記ステップ１で設定された内容に従ってページ・テーブルの該当エントリのデータを自動生成し、ＣＰＵ１１に対してレスポンスデータとして返す。
【００４９】
ステップ５：
ＣＰＵ１１は、ＴＬＢリフィルに必要なページ・テーブルのエントリ・データを受け取ると、ＴＬＢ１１Ｂにその内容を書き込み、ＴＬＢリフィル動作を完了する。
【００５０】
なお、計算機システム１０を構成するためには、図１に示した以外にも多くの回路コンポーネントが必要である。但し、これらは当業者には周知であり、また、本発明の要旨を構成するものではないので、本明細書中では省略している。また、図面の錯綜を回避するため、図中の各ハードウェア・ブロック間の接続も一部しか図示していない点を了承されたい。
【００５１】
［追補］
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【００５２】
本発明は、一般的なコンピュータ・システム以外でも、仮想メモリ方式を採用する装置、例えばファクシミリ機器、携帯電話機、電子手帳、デジタル・カメラなどの情報機器に対しても適用することができる。
【００５３】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【００５４】
【発明の効果】
以上詳記したように、本発明によれば、ページ・テーブルを用いて所定のページ単位で仮想アドレス空間を好適に管理することができる、優れた仮想メモリ方式を提供することができる。
【００５５】
また、本発明によれば、ページ・テーブルのために物理メモリを余計に消費することのない、優れた仮想メモリ方式を提供することができる。
【図面の簡単な説明】
【図１】本発明の実施に供される計算機システム１０のハードウェア構成を模式的に示した図である。
【図２】アドレス変換テーブル生成器１３の内部構成を模式的に示した図である。
【図３】仮想メモリ・システムの構成を模式的に示した図である。
【図４】ページ・テーブルの構成例を模式的に示した図である。
【符号の説明】
１０…計算機システム
１１…ＣＰＵ
１１Ａ…ＭＭＵ
１１Ｂ…ＴＬＢ
１２…メモリ
１３…アドレス変換テーブル生成器
１４…ハード・ディスク装置
１５…システム・バス
２１…Ｉ／Ｏバッファ
２２…データ・デコーダ
２３…コマンド・デコーダ
２４…アドレス・デコーダ
２５…ページ・テーブル生成規則格納部
２６…ページ・テーブル・エントリ生成部
【図１】
2004355187.tif 000003
【図２】
2004355187.tif 000004
【図３】
2004355187.tif 000005
【図４】
2004355187.tif 000006