JP2004355187A - 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置 - Google Patents
仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置 Download PDFInfo
- Publication number
- JP2004355187A JP2004355187A JP2003150317A JP2003150317A JP2004355187A JP 2004355187 A JP2004355187 A JP 2004355187A JP 2003150317 A JP2003150317 A JP 2003150317A JP 2003150317 A JP2003150317 A JP 2003150317A JP 2004355187 A JP2004355187 A JP 2004355187A
- Authority
- JP
- Japan
- Prior art keywords
- address
- page
- memory
- page table
- virtual
- 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.)
- Pending
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】ページ・テーブルのために物理メモリを余計に消費することのない仮想メモリ方式を提供する。
【解決手段】アドレス変換テーブル生成器13は、システム・バス15に接続されており、TLBミス発生時に、CPU11によってアクセスされる。そして、アクセスを受ける度に、あらかじめ設定された規則に従って該当するページ・テーブル・エントリを生成する。アドレス変換テーブル生成器13にアクセスすることで、メモリ12内の領域を使用せず済む。アドレス変換テーブル生成器13におけるページ・テーブルの生成規則は、CPU11から設定可能とする。
【選択図】 図1
【解決手段】アドレス変換テーブル生成器13は、システム・バス15に接続されており、TLBミス発生時に、CPU11によってアクセスされる。そして、アクセスを受ける度に、あらかじめ設定された規則に従って該当するページ・テーブル・エントリを生成する。アドレス変換テーブル生成器13にアクセスすることで、メモリ12内の領域を使用せず済む。アドレス変換テーブル生成器13におけるページ・テーブルの生成規則は、CPU11から設定可能とする。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、ハード・ディスクなどの外部記憶装置に対して論理的なアドレスを割り振り、見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式に係り、特に、所定のページ単位で仮想アドレス空間を管理する仮想メモリ方式に関する。
【0002】
さらに詳しくは、本発明は、ページ・テーブルを用いて論理アドレスと物理アドレスの関係を掌握する仮想メモリ方式に係り、特に、ページ・テーブルのために物理メモリを余計に消費することのない仮想メモリ方式に関する。
【0003】
【従来の技術】
昨今、コンピュータを始めとして、PDA(Personal Digital Assistants)や携帯電話機などの情報機器、さらには情報家電など、さまざまな形態の計算機システムが広く普及している。
【0004】
これら計算機システムは、一般に、プロセッサがメモリに展開されたプログラム・コードやデータを用いて各種の演算動作を実行することができる。ここで、物理メモリはDRAM(Dynamic RAM)などの半導体記憶装置で構成され、記憶容量に限界があることや、揮発的である。このため、計算機システムは、プログラムやデータなど膨大なファイルを補助的に格納するために、大容量で且つ容量当たりの単価が低いハード・ディスク装置(HDD:Hard Disc Drive)などの外部記憶装置を備えている。
【0005】
また、例えば計算機システムが複数のタスクを同時並行して実行するマルチタスク機能を備えている場合、タスク毎にメモリの内容を持つ必要があるが、すべてのタスクの空間に相当する物理メモリを実装することは困難である。このため、ハード・ディスクなどの外部記憶装置に対して論理的なアドレス(「論理アドレス」又は「仮想アドレス」と呼ぶ)を割り振り、これらが見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式が採用されている。仮想メモリによれば、少ない物理メモリ容量で論理的には大きなアドレス空間を実現することができる。
【0006】
図3には、仮想メモリ・システムの構成を模式的に示している。物理メモリの容量は例えば数十〜数百メガバイト程度であるのに対し、仮想メモリは、例えば32ビット・アーキテクチャであれば4ギガバイト(=232)程度の広大なアドレス空間である。当然、仮想アドレスのごく一部しか物理メモリ上に存在せず、その他はハード・ディスク上に退避されている。
【0007】
仮想メモリ・システムを実現する際、タスク切り替えの度にタスクに関するメモリのすべての内容をハード・ディスクに退避したりハード・ディスクから回復したりするのでは効率的でない。そこで、仮想アドレス空間を「ページ」と呼ばれる単位で細かく分割し、ページ単位で論理アドレス空間と物理アドレス空間のマッピングが行なわれる。ページ単位で管理することにより、物理メモリ上には常に複数のタスクのページが配置された状態となり、タスク切り替え時にハード・ディスクへのページの退避(ページ・アウト)や復元(ページ・イン)が頻繁に起こることはなくなる。
【0008】
仮想メモリへのアクセスは、仮想アドレス空間上のページ・アドレスの参照という形態で行なわれる。仮想メモリ・システムでは、論理アドレスと物理アドレスの関係をページ単位で掌握するために、ページ・テーブルを用意する。図4には、ページ・テーブルの構成例を模式的に示している。
【0009】
同図において、1つの仮想アドレスは、32ビットで形成されるが、上位10ビットはディレクトリ・オフセットを、次の10ビットはページ・テーブル・オフセットを、残りの12ビットはページ・オフセットを、それぞれ格納するためのフィールドである。ディレクトリ・オフセットはページ・ディレクトリの先頭アドレスに対するオフセット値であり、ページ・ディレクトリ中の該当するレコードには対応するページ・テーブルの先頭アドレスが記録されている。ページ・テーブル・オフセットは、ページ・テーブルの先頭アドレスに対するオフセット値であり、ページ・テーブル中の該当するレコードには対応するページ・フレームの先頭アドレスと、該ページ・フレームの属性情報とが記録されている。ここで、属性情報とは、ページ・フレームへのアクセス頻度(LRU)や、ページ・フレームがページャブルかノン・ページャブルか、などといった情報である。ページ・オフセットは、ページ・フレームの先頭アドレスに対するオフセット値であり、物理アドレスの下位ビットそのものである。つまり、(ページ・フレームの先頭アドレス)+(ページ・オフセット)が現実の物理アドレスを表す訳である。ページ・フレームは、物理アドレス上のページそのものであり、その内容は実際のコードやデータである。
【0010】
図示の仮想メモリ・システムは32ビット・アーキテクチャである。ディレクトリ・オフセットには10ビットが割り当てられているので、1024(=1010)個のページ・テーブルをアドレス可能であり、また、ページ・テーブルには10ビットが割り当てられているので、1024(=1010)個のページ・フレームをアドレス可能である。また、1個のページ・フレームは、4キロバイトのサイズを持っている。したがって、仮想メモリ空間は、全体として4ギガバイト(=1010×1010×4キロバイト)のサイズを持つ訳である。
【0011】
ページ・テーブルは、一般に、物理メモリ上に配置され、仮想アドレスへのアクセスが必要になったときに、適宜プロセッサから読み出される。ところが、アドレス空間の増大とともに、ページ数が増大し、ページ・テーブルのエントリ数も増加してしまう。この結果、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。
【0012】
例えば、ページ・サイズを大きくすることによって、アドレス空間全体のページ数を抑制することも考えられるが、システム・アーキテクチャによってはページ・サイズが固定的であることもあり、有効な方法ではない。
【0013】
【発明が解決しようとする課題】
本発明の目的は、ページ・テーブルを用いて所定のページ単位で仮想アドレス空間を好適に管理することができる、優れた仮想メモリ方式を提供することにある。
【0014】
本発明のさらなる目的は、ページ・テーブルのために物理メモリを余計に消費することのない、優れた仮想メモリ方式を提供することにある。
【0015】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、所定のページ単位で仮想アドレス空間を管理する仮想メモリ・システムであって、
タスクを実行するプロセッサと、
物理アドレス並びに仮想アドレスが割り振られたメモリと、
仮想アドレスが割り振られた外部記憶装置と、
前記プロセッサにおけるタスクの実行に応じて、前記メモリの内容をページ単位で前記外部記憶装置に退避し、及び/又は、前記メモリの内容を前記外部記憶装置から復元するページング手段と、
前記ページング手段により前記メモリの内容を退避又は復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成するアドレス変換テーブル生成手段と、
を具備することを特徴とする仮想メモリ・システムである。
【0016】
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【0017】
計算機システムでは、一般に、プロセッサがメモリに展開されたプログラム・コードやデータを用いて各種の演算動作を実行することができる。ここで、すべてのタスクの空間に相当する物理メモリを実装するのは困難であることから、ハード・ディスクなどの外部記憶装置に対して論理アドレスを割り振り、見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式が広く採用されている。
【0018】
仮想アドレス空間は、一般に、ページ単位で管理され、ページ・テーブルに論理アドレスと物理アドレスの関係が記述される。ところが、アドレス空間の拡張に伴い、ページ数が増大し、ページ・テーブルのエントリ数も増加し、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。
【0019】
本発明によれば、すべてのページ・テーブルをメモリ12上に展開して利用する代わりに、アドレス変換テーブル生成手段が該当するページ・テーブル・エントリを逐次的に生成するので、メモリ資源を余計に消耗しなくて済む。
【0020】
前記アドレス変換テーブル生成手段は、ページ・テーブルの生成規則を保持する。そして、前記プロセッサからのページ・テーブルのアドレス値へのアクセス要求に応答して、該当するページ・テーブル・エントリを前記生成規則に基づいて生成する。
【0021】
ここで、前記プロセッサは、前記アドレス変換テーブル生成手段にページ・テーブルの生成規則を設定するようにしてもよい。
【0022】
また、前記プロセッサは、内部のメモリ管理ユニットにおいて、論理アドレスと物理アドレスの早見表TLBを備えていてもよい。このような場合、タスクの実行中に応じてTLBミスが発生したことに応答して、前記アドレス変換テーブル生成手段に対してページ・テーブル・エントリの生成を要求するようにすればよい。
【0023】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0024】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0025】
図1には、本発明の実施に供される計算機システム10のハードウェア構成を模式的に示している。
【0026】
メイン・コントローラであるCPU(Central Processing Unit)11は、オペレーティング・システム(OS)の制御下で、各種プログラムを実行するようになっている。
【0027】
オペレーティング・システムは、システム10のハードウェア及びソフトウェアの動作を総合的に管理し、プログラムの実行環境を提供する。オペレーティング・システムは、システム10のメモリ空間を管理するメモリ・マネージャや、ハード・ディスク装置14などのファイル空間を管理するファイル・マネージャなどのサブシステムを備えている。本実施形態では、オペレーティング・システムは仮想メモリ機能やマルチタスク機能をサポートしている。
【0028】
CPU11は、システム・バス15を経由して他の装置と相互接続されている。システム・バス15は、アドレス信号線、コマンド信号線、データ信号船などからなる共通信号伝送路である。
【0029】
メモリ12は、DRAMなどの半導体記憶装置で構成され、CPU11において実行されるプログラム・コードを実行したり、実行プログラムの作業データなどを一時的に格納したりするために用いられる。
【0030】
ハード・ディスク装置14は、磁気記録方式の補助記憶装置である。ドライブ・ユニット内には記録媒体である数枚の磁気メディアが収容されており、スピンドル・モータによって高速に回転させ、磁気ヘッドを回転するメディア表面上で半径方向にスキャンさせることによって、メディア上にデータに相当する磁化を生じさせて書き込みを行ない、あるいはデータを読み出すことができる。
【0031】
本実施形態に係る計算機システム10では、比較的小容量のメモリ12を用いて論理的には大きなアドレス空間を実現するために、仮想メモリ方式が採用されている。
【0032】
メモリ12の容量は例えば数十〜数百メガバイト程度であるのに対し、仮想メモリは、例えば32ビット・アーキテクチャであれば4ギガバイト(=232)程度の広大なアドレス空間である。当然、仮想アドレスのごく一部しか物理メモリ上に存在せず、その他はハード・ディスク13上に退避されている。
【0033】
仮想アドレス空間はページ単位で管理されており、ページ・テーブルに従って論理アドレス空間と物理アドレス空間のマッピングが行なわれる。そして、仮想メモリへのアクセスは、仮想アドレス空間上のページ・アドレスの参照という形態で行なわれる。
【0034】
CPU11内のMMU(Memory Management Unit:メモリ管理ユニット)11Aは、仮想アドレス空間と物理アドレス空間のアドレス変換を行なう。
【0035】
MMU11Aは、仮想アドレスを物理アドレスに変換する際に、目的のページがメモリ12上にあるかどうかをチェックする。そして、目的のページがメモリ12上にない場合には、MMU11AはCPU11に対してページ・フォルト割り込みを発生する。この割り込みに応答して、オペレーティング・システムに制御が移行し、メモリ12上の不要なページのハード・ディスク14への退避(ページ・アウト)と、目的のページのハード・ディスク14からメモリ12への読み込み(ページ・イン)が行なわれる。
【0036】
また、MMU11Aは、アドレス変換の効率化のため、ページ・テーブルの一部をテーブル早見表(TLB)11Bとして格納している。アドレス変換時にはまずTLBを参照する。そして、TLBがヒットすれば該当エントリの記載に基づいてアドレス変換が行なわれる。一方、TLBミスが発生したときには、TLBリフィルすなわちページ・テーブル上の該当エントリのTLBへの書き込み動作がCPU11で起動する。
【0037】
従来、ページ・テーブルは物理メモリ上に配置されていた(前述)。このような場合、CPU11からのTLBリフィル要求に応答して、要求されたページ・アドレスにヒットするページ・テーブル・エントリがメモリ12内のページ・テーブルから読み出され、CPU11に返されることになる。
【0038】
ところが、アドレス空間の増大とともに、ページ数が増大し、ページ・テーブルのエントリ数も増加してしまうので、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。そこで、本実施形態では、すべてのページ・テーブルをメモリ12上に展開して利用する代わりに、TLBリフィル要求に応答して該当するページ・テーブル・エントリを逐次的に生成するアドレス変換テーブル生成器13を配設した。
【0039】
アドレス変換テーブル生成器13は、システム・バス15に接続されており、TLBミス発生時に、CPU11によってアクセスされる。そして、アクセスを受ける度に、あらかじめ設定された規則に従って該当するページ・テーブル・エントリを生成する。アドレス変換テーブル生成器13にアクセスすることで、メモリ12内の領域を使用せず済む。アドレス変換テーブル生成器13におけるページ・テーブルの生成規則は、CPU11から設定可能とする。
【0040】
図2には、アドレス変換テーブル生成器13の内部構成を模式的に示している。
【0041】
I/Oバッファ21経由でシステム・バス15から受信されたデータ、コマンド、アドレスはそれぞれデータ・デコーダ22、コマンド・デコーダ23、アドレス・デコーダ24によって解釈される。
【0042】
CPU11からページ・テーブルの生成規則が届いた場合には、ページ・テーブル生成規則格納部25に格納される。
【0043】
CPU11からTLBリフィル要求が届いた場合には、ページ・テーブル・エントリ生成部26は、ページ・テーブル生成規則格納部25に格納されている生成規則を参照し、CPU11からアクセスされたときのページ・テーブルのアドレス値に応じて、該当するページ・テーブル・エントリを自動生成し、これをI/Oバッファ21経由でCPU11に返す。
【0044】
本実施形態に係るページ・テーブルの生成処理の手順を以下に記しておく。
【0045】
ステップ1:
アドレス変換テーブル生成器13内のレジスタ(ページ・テーブル生成規則格納部21)に、CPU11から生成規則をあらかじめ書き込んでおく。
【0046】
ステップ2:
CPU11においてTLBミスが発生し、TLBリフィルの動作がCPU11上で開始される。
【0047】
ステップ3:
TLBリフィルに必要なページ・テーブルのエントリ・データを得るために、CPU11はアドレス変換テーブル生成器13にアクセスする。
【0048】
ステップ4:
アドレス変換テーブル生成器13は、アクセスされたときのページ・テーブルのアドレス値に応じて、上記ステップ1で設定された内容に従ってページ・テーブルの該当エントリのデータを自動生成し、CPU11に対してレスポンスデータとして返す。
【0049】
ステップ5:
CPU11は、TLBリフィルに必要なページ・テーブルのエントリ・データを受け取ると、TLB11Bにその内容を書き込み、TLBリフィル動作を完了する。
【0050】
なお、計算機システム10を構成するためには、図1に示した以外にも多くの回路コンポーネントが必要である。但し、これらは当業者には周知であり、また、本発明の要旨を構成するものではないので、本明細書中では省略している。また、図面の錯綜を回避するため、図中の各ハードウェア・ブロック間の接続も一部しか図示していない点を了承されたい。
【0051】
[追補]
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0052】
本発明は、一般的なコンピュータ・システム以外でも、仮想メモリ方式を採用する装置、例えばファクシミリ機器、携帯電話機、電子手帳、デジタル・カメラなどの情報機器に対しても適用することができる。
【0053】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0054】
【発明の効果】
以上詳記したように、本発明によれば、ページ・テーブルを用いて所定のページ単位で仮想アドレス空間を好適に管理することができる、優れた仮想メモリ方式を提供することができる。
【0055】
また、本発明によれば、ページ・テーブルのために物理メモリを余計に消費することのない、優れた仮想メモリ方式を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施に供される計算機システム10のハードウェア構成を模式的に示した図である。
【図2】アドレス変換テーブル生成器13の内部構成を模式的に示した図である。
【図3】仮想メモリ・システムの構成を模式的に示した図である。
【図4】ページ・テーブルの構成例を模式的に示した図である。
【符号の説明】
10…計算機システム
11…CPU
11A…MMU
11B…TLB
12…メモリ
13…アドレス変換テーブル生成器
14…ハード・ディスク装置
15…システム・バス
21…I/Oバッファ
22…データ・デコーダ
23…コマンド・デコーダ
24…アドレス・デコーダ
25…ページ・テーブル生成規則格納部
26…ページ・テーブル・エントリ生成部
【発明の属する技術分野】
本発明は、ハード・ディスクなどの外部記憶装置に対して論理的なアドレスを割り振り、見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式に係り、特に、所定のページ単位で仮想アドレス空間を管理する仮想メモリ方式に関する。
【0002】
さらに詳しくは、本発明は、ページ・テーブルを用いて論理アドレスと物理アドレスの関係を掌握する仮想メモリ方式に係り、特に、ページ・テーブルのために物理メモリを余計に消費することのない仮想メモリ方式に関する。
【0003】
【従来の技術】
昨今、コンピュータを始めとして、PDA(Personal Digital Assistants)や携帯電話機などの情報機器、さらには情報家電など、さまざまな形態の計算機システムが広く普及している。
【0004】
これら計算機システムは、一般に、プロセッサがメモリに展開されたプログラム・コードやデータを用いて各種の演算動作を実行することができる。ここで、物理メモリはDRAM(Dynamic RAM)などの半導体記憶装置で構成され、記憶容量に限界があることや、揮発的である。このため、計算機システムは、プログラムやデータなど膨大なファイルを補助的に格納するために、大容量で且つ容量当たりの単価が低いハード・ディスク装置(HDD:Hard Disc Drive)などの外部記憶装置を備えている。
【0005】
また、例えば計算機システムが複数のタスクを同時並行して実行するマルチタスク機能を備えている場合、タスク毎にメモリの内容を持つ必要があるが、すべてのタスクの空間に相当する物理メモリを実装することは困難である。このため、ハード・ディスクなどの外部記憶装置に対して論理的なアドレス(「論理アドレス」又は「仮想アドレス」と呼ぶ)を割り振り、これらが見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式が採用されている。仮想メモリによれば、少ない物理メモリ容量で論理的には大きなアドレス空間を実現することができる。
【0006】
図3には、仮想メモリ・システムの構成を模式的に示している。物理メモリの容量は例えば数十〜数百メガバイト程度であるのに対し、仮想メモリは、例えば32ビット・アーキテクチャであれば4ギガバイト(=232)程度の広大なアドレス空間である。当然、仮想アドレスのごく一部しか物理メモリ上に存在せず、その他はハード・ディスク上に退避されている。
【0007】
仮想メモリ・システムを実現する際、タスク切り替えの度にタスクに関するメモリのすべての内容をハード・ディスクに退避したりハード・ディスクから回復したりするのでは効率的でない。そこで、仮想アドレス空間を「ページ」と呼ばれる単位で細かく分割し、ページ単位で論理アドレス空間と物理アドレス空間のマッピングが行なわれる。ページ単位で管理することにより、物理メモリ上には常に複数のタスクのページが配置された状態となり、タスク切り替え時にハード・ディスクへのページの退避(ページ・アウト)や復元(ページ・イン)が頻繁に起こることはなくなる。
【0008】
仮想メモリへのアクセスは、仮想アドレス空間上のページ・アドレスの参照という形態で行なわれる。仮想メモリ・システムでは、論理アドレスと物理アドレスの関係をページ単位で掌握するために、ページ・テーブルを用意する。図4には、ページ・テーブルの構成例を模式的に示している。
【0009】
同図において、1つの仮想アドレスは、32ビットで形成されるが、上位10ビットはディレクトリ・オフセットを、次の10ビットはページ・テーブル・オフセットを、残りの12ビットはページ・オフセットを、それぞれ格納するためのフィールドである。ディレクトリ・オフセットはページ・ディレクトリの先頭アドレスに対するオフセット値であり、ページ・ディレクトリ中の該当するレコードには対応するページ・テーブルの先頭アドレスが記録されている。ページ・テーブル・オフセットは、ページ・テーブルの先頭アドレスに対するオフセット値であり、ページ・テーブル中の該当するレコードには対応するページ・フレームの先頭アドレスと、該ページ・フレームの属性情報とが記録されている。ここで、属性情報とは、ページ・フレームへのアクセス頻度(LRU)や、ページ・フレームがページャブルかノン・ページャブルか、などといった情報である。ページ・オフセットは、ページ・フレームの先頭アドレスに対するオフセット値であり、物理アドレスの下位ビットそのものである。つまり、(ページ・フレームの先頭アドレス)+(ページ・オフセット)が現実の物理アドレスを表す訳である。ページ・フレームは、物理アドレス上のページそのものであり、その内容は実際のコードやデータである。
【0010】
図示の仮想メモリ・システムは32ビット・アーキテクチャである。ディレクトリ・オフセットには10ビットが割り当てられているので、1024(=1010)個のページ・テーブルをアドレス可能であり、また、ページ・テーブルには10ビットが割り当てられているので、1024(=1010)個のページ・フレームをアドレス可能である。また、1個のページ・フレームは、4キロバイトのサイズを持っている。したがって、仮想メモリ空間は、全体として4ギガバイト(=1010×1010×4キロバイト)のサイズを持つ訳である。
【0011】
ページ・テーブルは、一般に、物理メモリ上に配置され、仮想アドレスへのアクセスが必要になったときに、適宜プロセッサから読み出される。ところが、アドレス空間の増大とともに、ページ数が増大し、ページ・テーブルのエントリ数も増加してしまう。この結果、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。
【0012】
例えば、ページ・サイズを大きくすることによって、アドレス空間全体のページ数を抑制することも考えられるが、システム・アーキテクチャによってはページ・サイズが固定的であることもあり、有効な方法ではない。
【0013】
【発明が解決しようとする課題】
本発明の目的は、ページ・テーブルを用いて所定のページ単位で仮想アドレス空間を好適に管理することができる、優れた仮想メモリ方式を提供することにある。
【0014】
本発明のさらなる目的は、ページ・テーブルのために物理メモリを余計に消費することのない、優れた仮想メモリ方式を提供することにある。
【0015】
【課題を解決するための手段及び作用】
本発明は、上記課題を参酌してなされたものであり、その第1の側面は、所定のページ単位で仮想アドレス空間を管理する仮想メモリ・システムであって、
タスクを実行するプロセッサと、
物理アドレス並びに仮想アドレスが割り振られたメモリと、
仮想アドレスが割り振られた外部記憶装置と、
前記プロセッサにおけるタスクの実行に応じて、前記メモリの内容をページ単位で前記外部記憶装置に退避し、及び/又は、前記メモリの内容を前記外部記憶装置から復元するページング手段と、
前記ページング手段により前記メモリの内容を退避又は復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成するアドレス変換テーブル生成手段と、
を具備することを特徴とする仮想メモリ・システムである。
【0016】
但し、ここで言う「システム」とは、複数の装置(又は特定の機能を実現する機能モジュール)が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【0017】
計算機システムでは、一般に、プロセッサがメモリに展開されたプログラム・コードやデータを用いて各種の演算動作を実行することができる。ここで、すべてのタスクの空間に相当する物理メモリを実装するのは困難であることから、ハード・ディスクなどの外部記憶装置に対して論理アドレスを割り振り、見かけ上は物理メモリ空間の一部であるかのように扱う仮想メモリ方式が広く採用されている。
【0018】
仮想アドレス空間は、一般に、ページ単位で管理され、ページ・テーブルに論理アドレスと物理アドレスの関係が記述される。ところが、アドレス空間の拡張に伴い、ページ数が増大し、ページ・テーブルのエントリ数も増加し、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。
【0019】
本発明によれば、すべてのページ・テーブルをメモリ12上に展開して利用する代わりに、アドレス変換テーブル生成手段が該当するページ・テーブル・エントリを逐次的に生成するので、メモリ資源を余計に消耗しなくて済む。
【0020】
前記アドレス変換テーブル生成手段は、ページ・テーブルの生成規則を保持する。そして、前記プロセッサからのページ・テーブルのアドレス値へのアクセス要求に応答して、該当するページ・テーブル・エントリを前記生成規則に基づいて生成する。
【0021】
ここで、前記プロセッサは、前記アドレス変換テーブル生成手段にページ・テーブルの生成規則を設定するようにしてもよい。
【0022】
また、前記プロセッサは、内部のメモリ管理ユニットにおいて、論理アドレスと物理アドレスの早見表TLBを備えていてもよい。このような場合、タスクの実行中に応じてTLBミスが発生したことに応答して、前記アドレス変換テーブル生成手段に対してページ・テーブル・エントリの生成を要求するようにすればよい。
【0023】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【0024】
【発明の実施の形態】
以下、図面を参照しながら本発明の実施形態について詳解する。
【0025】
図1には、本発明の実施に供される計算機システム10のハードウェア構成を模式的に示している。
【0026】
メイン・コントローラであるCPU(Central Processing Unit)11は、オペレーティング・システム(OS)の制御下で、各種プログラムを実行するようになっている。
【0027】
オペレーティング・システムは、システム10のハードウェア及びソフトウェアの動作を総合的に管理し、プログラムの実行環境を提供する。オペレーティング・システムは、システム10のメモリ空間を管理するメモリ・マネージャや、ハード・ディスク装置14などのファイル空間を管理するファイル・マネージャなどのサブシステムを備えている。本実施形態では、オペレーティング・システムは仮想メモリ機能やマルチタスク機能をサポートしている。
【0028】
CPU11は、システム・バス15を経由して他の装置と相互接続されている。システム・バス15は、アドレス信号線、コマンド信号線、データ信号船などからなる共通信号伝送路である。
【0029】
メモリ12は、DRAMなどの半導体記憶装置で構成され、CPU11において実行されるプログラム・コードを実行したり、実行プログラムの作業データなどを一時的に格納したりするために用いられる。
【0030】
ハード・ディスク装置14は、磁気記録方式の補助記憶装置である。ドライブ・ユニット内には記録媒体である数枚の磁気メディアが収容されており、スピンドル・モータによって高速に回転させ、磁気ヘッドを回転するメディア表面上で半径方向にスキャンさせることによって、メディア上にデータに相当する磁化を生じさせて書き込みを行ない、あるいはデータを読み出すことができる。
【0031】
本実施形態に係る計算機システム10では、比較的小容量のメモリ12を用いて論理的には大きなアドレス空間を実現するために、仮想メモリ方式が採用されている。
【0032】
メモリ12の容量は例えば数十〜数百メガバイト程度であるのに対し、仮想メモリは、例えば32ビット・アーキテクチャであれば4ギガバイト(=232)程度の広大なアドレス空間である。当然、仮想アドレスのごく一部しか物理メモリ上に存在せず、その他はハード・ディスク13上に退避されている。
【0033】
仮想アドレス空間はページ単位で管理されており、ページ・テーブルに従って論理アドレス空間と物理アドレス空間のマッピングが行なわれる。そして、仮想メモリへのアクセスは、仮想アドレス空間上のページ・アドレスの参照という形態で行なわれる。
【0034】
CPU11内のMMU(Memory Management Unit:メモリ管理ユニット)11Aは、仮想アドレス空間と物理アドレス空間のアドレス変換を行なう。
【0035】
MMU11Aは、仮想アドレスを物理アドレスに変換する際に、目的のページがメモリ12上にあるかどうかをチェックする。そして、目的のページがメモリ12上にない場合には、MMU11AはCPU11に対してページ・フォルト割り込みを発生する。この割り込みに応答して、オペレーティング・システムに制御が移行し、メモリ12上の不要なページのハード・ディスク14への退避(ページ・アウト)と、目的のページのハード・ディスク14からメモリ12への読み込み(ページ・イン)が行なわれる。
【0036】
また、MMU11Aは、アドレス変換の効率化のため、ページ・テーブルの一部をテーブル早見表(TLB)11Bとして格納している。アドレス変換時にはまずTLBを参照する。そして、TLBがヒットすれば該当エントリの記載に基づいてアドレス変換が行なわれる。一方、TLBミスが発生したときには、TLBリフィルすなわちページ・テーブル上の該当エントリのTLBへの書き込み動作がCPU11で起動する。
【0037】
従来、ページ・テーブルは物理メモリ上に配置されていた(前述)。このような場合、CPU11からのTLBリフィル要求に応答して、要求されたページ・アドレスにヒットするページ・テーブル・エントリがメモリ12内のページ・テーブルから読み出され、CPU11に返されることになる。
【0038】
ところが、アドレス空間の増大とともに、ページ数が増大し、ページ・テーブルのエントリ数も増加してしまうので、ページ・テーブルがメモリ資源を消耗してしまうという問題がある。そこで、本実施形態では、すべてのページ・テーブルをメモリ12上に展開して利用する代わりに、TLBリフィル要求に応答して該当するページ・テーブル・エントリを逐次的に生成するアドレス変換テーブル生成器13を配設した。
【0039】
アドレス変換テーブル生成器13は、システム・バス15に接続されており、TLBミス発生時に、CPU11によってアクセスされる。そして、アクセスを受ける度に、あらかじめ設定された規則に従って該当するページ・テーブル・エントリを生成する。アドレス変換テーブル生成器13にアクセスすることで、メモリ12内の領域を使用せず済む。アドレス変換テーブル生成器13におけるページ・テーブルの生成規則は、CPU11から設定可能とする。
【0040】
図2には、アドレス変換テーブル生成器13の内部構成を模式的に示している。
【0041】
I/Oバッファ21経由でシステム・バス15から受信されたデータ、コマンド、アドレスはそれぞれデータ・デコーダ22、コマンド・デコーダ23、アドレス・デコーダ24によって解釈される。
【0042】
CPU11からページ・テーブルの生成規則が届いた場合には、ページ・テーブル生成規則格納部25に格納される。
【0043】
CPU11からTLBリフィル要求が届いた場合には、ページ・テーブル・エントリ生成部26は、ページ・テーブル生成規則格納部25に格納されている生成規則を参照し、CPU11からアクセスされたときのページ・テーブルのアドレス値に応じて、該当するページ・テーブル・エントリを自動生成し、これをI/Oバッファ21経由でCPU11に返す。
【0044】
本実施形態に係るページ・テーブルの生成処理の手順を以下に記しておく。
【0045】
ステップ1:
アドレス変換テーブル生成器13内のレジスタ(ページ・テーブル生成規則格納部21)に、CPU11から生成規則をあらかじめ書き込んでおく。
【0046】
ステップ2:
CPU11においてTLBミスが発生し、TLBリフィルの動作がCPU11上で開始される。
【0047】
ステップ3:
TLBリフィルに必要なページ・テーブルのエントリ・データを得るために、CPU11はアドレス変換テーブル生成器13にアクセスする。
【0048】
ステップ4:
アドレス変換テーブル生成器13は、アクセスされたときのページ・テーブルのアドレス値に応じて、上記ステップ1で設定された内容に従ってページ・テーブルの該当エントリのデータを自動生成し、CPU11に対してレスポンスデータとして返す。
【0049】
ステップ5:
CPU11は、TLBリフィルに必要なページ・テーブルのエントリ・データを受け取ると、TLB11Bにその内容を書き込み、TLBリフィル動作を完了する。
【0050】
なお、計算機システム10を構成するためには、図1に示した以外にも多くの回路コンポーネントが必要である。但し、これらは当業者には周知であり、また、本発明の要旨を構成するものではないので、本明細書中では省略している。また、図面の錯綜を回避するため、図中の各ハードウェア・ブロック間の接続も一部しか図示していない点を了承されたい。
【0051】
[追補]
以上、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【0052】
本発明は、一般的なコンピュータ・システム以外でも、仮想メモリ方式を採用する装置、例えばファクシミリ機器、携帯電話機、電子手帳、デジタル・カメラなどの情報機器に対しても適用することができる。
【0053】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0054】
【発明の効果】
以上詳記したように、本発明によれば、ページ・テーブルを用いて所定のページ単位で仮想アドレス空間を好適に管理することができる、優れた仮想メモリ方式を提供することができる。
【0055】
また、本発明によれば、ページ・テーブルのために物理メモリを余計に消費することのない、優れた仮想メモリ方式を提供することができる。
【図面の簡単な説明】
【図1】本発明の実施に供される計算機システム10のハードウェア構成を模式的に示した図である。
【図2】アドレス変換テーブル生成器13の内部構成を模式的に示した図である。
【図3】仮想メモリ・システムの構成を模式的に示した図である。
【図4】ページ・テーブルの構成例を模式的に示した図である。
【符号の説明】
10…計算機システム
11…CPU
11A…MMU
11B…TLB
12…メモリ
13…アドレス変換テーブル生成器
14…ハード・ディスク装置
15…システム・バス
21…I/Oバッファ
22…データ・デコーダ
23…コマンド・デコーダ
24…アドレス・デコーダ
25…ページ・テーブル生成規則格納部
26…ページ・テーブル・エントリ生成部
Claims (10)
- 所定のページ単位で仮想アドレス空間を管理する仮想メモリ・システムであって、
タスクを実行するプロセッサと、
物理アドレス並びに仮想アドレスが割り振られたメモリと、
仮想アドレスが割り振られた外部記憶装置と、
前記プロセッサにおけるタスクの実行に応じて、前記メモリの内容をページ単位で前記外部記憶装置に退避し、及び/又は、前記メモリの内容を前記外部記憶装置から復元するページング手段と、
前記ページング手段により前記メモリの内容を退避又は復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成するアドレス変換テーブル生成手段と、
を具備することを特徴とする仮想メモリ・システム。 - 前記アドレス変換テーブル生成手段は、ページ・テーブルの生成規則を保持し、前記プロセッサからのページ・テーブルのアドレス値へのアクセス要求に応答して、該当するページ・テーブル・エントリを前記生成規則に基づいて生成する、
ことを特徴とする請求項1に記載の仮想メモリ・システム。 - 前記プロセッサは、前記アドレス変換テーブル生成手段にページ・テーブルの生成規則を設定する、
ことを特徴とする請求項2に記載の仮想メモリ・システム。 - 前記プロセッサは、論理アドレスと物理アドレスの早見表TLBを備え、タスクの実行中に応じてTLBミスが発生したことに応答して、前記アドレス変換テーブル生成手段に対してページ・テーブル・エントリの生成を要求する、
ことを特徴とする請求項1に記載の仮想メモリ・システム。 - 所定のページ単位で仮想アドレス空間を管理する仮想メモリのアドレス管理方法であって、
プロセッサにおけるタスクの実行に応じて、メモリの内容をページ単位で外部記憶装置に退避し、及び/又は、メモリの内容を外部記憶装置から復元するページング・ステップと、
前記ページング・ステップにおいて前記メモリの内容を退避又は復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成するアドレス変換テーブル生成ステップと、
を具備することを特徴とする仮想メモリのアドレス管理方法。 - 所定のページ単位で管理される仮想メモリにおける論理アドレスと物理アドレスの対応関係を記述したページ・テーブルを動的に生成する、
ことを特徴とするアドレス変換テーブル生成装置。 - プロセッサにおけるタスクの実行に応じて、メモリの内容をページ単位で外部記憶装置に退避し、及び/又は、前記メモリの内容を外部記憶装置から復元する際に、論理アドレスと物理アドレスの対応関係を記述したページ・テーブル上の必要なエントリを生成する、
ことを特徴とする請求項6に記載のアドレス変換テーブル生成装置。 - ページ・テーブルの生成規則を保持し、プロセッサからのページ・テーブルのアドレス値へのアクセス要求に応答して、該当するページ・テーブル・エントリを前記生成規則に基づいて生成する、
ことを特徴とする請求項6に記載のアドレス変換テーブル生成装置。 - 前記プロセッサによりページ・テーブルの生成規則が設定される、
ことを特徴とする請求項8に記載のアドレス変換テーブル生成装置。 - 前記プロセッサは、論理アドレスと物理アドレスの早見表TLBを備え、
タスクの実行中に応じて前記プロセッサにおいてTLBミスが発生したことに応答して、ページ・テーブル・エントリを生成する、
ことを特徴とする請求項8に記載のアドレス変換テーブル生成装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003150317A JP2004355187A (ja) | 2003-05-28 | 2003-05-28 | 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003150317A JP2004355187A (ja) | 2003-05-28 | 2003-05-28 | 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004355187A true JP2004355187A (ja) | 2004-12-16 |
Family
ID=34046153
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003150317A Pending JP2004355187A (ja) | 2003-05-28 | 2003-05-28 | 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004355187A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007207123A (ja) * | 2006-02-03 | 2007-08-16 | Sharp Corp | アドレス変換用データ生成装置およびその制御方法、情報処理装置、アドレス変換用データ生成装置制御プログラム、ならびに該プログラムを記録した記録媒体 |
US8473691B2 (en) | 2009-02-27 | 2013-06-25 | Ryosuke Ohgishi | Memory management device, image forming apparatus, and image forming method |
US9348764B2 (en) | 2013-01-07 | 2016-05-24 | Samsung Electronics Co., Ltd. | System on chip including memory management unit and memory address translation method thereof |
-
2003
- 2003-05-28 JP JP2003150317A patent/JP2004355187A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007207123A (ja) * | 2006-02-03 | 2007-08-16 | Sharp Corp | アドレス変換用データ生成装置およびその制御方法、情報処理装置、アドレス変換用データ生成装置制御プログラム、ならびに該プログラムを記録した記録媒体 |
US8473691B2 (en) | 2009-02-27 | 2013-06-25 | Ryosuke Ohgishi | Memory management device, image forming apparatus, and image forming method |
US9348764B2 (en) | 2013-01-07 | 2016-05-24 | Samsung Electronics Co., Ltd. | System on chip including memory management unit and memory address translation method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9910602B2 (en) | Device and memory system for storing and recovering page table data upon power loss | |
CN108804350B (zh) | 一种内存访问方法及计算机系统 | |
JP5255348B2 (ja) | クラッシュダンプ用のメモリアロケーション | |
US8938601B2 (en) | Hybrid memory system having a volatile memory with cache and method of managing the same | |
JP5664347B2 (ja) | 仮想メモリシステム、仮想メモリの制御方法、およびプログラム | |
US6968424B1 (en) | Method and system for transparent compressed memory paging in a computer system | |
CN107818052B (zh) | 内存访问方法及装置 | |
US20100312955A1 (en) | Memory system and method of managing the same | |
JP2017138852A (ja) | 情報処理装置、記憶装置およびプログラム | |
US10430346B2 (en) | DDR storage adapter | |
KR101392062B1 (ko) | 고속 컴퓨터 시스템 파워 온 및 파워 오프 방법 | |
JP2016085677A (ja) | メモリ管理方法、メモリ管理プログラム及び情報処理装置 | |
JP2004355187A (ja) | 仮想メモリ・システム、仮想メモリのアドレス管理方法、並びにアドレス変換テーブル生成装置 | |
Mogul | Big memories on the desktop | |
CN113448722A (zh) | 进程内存的映射方法和基于无服务器架构的实例处理方法 | |
JP2010026969A (ja) | データ処理装置 | |
JP4792065B2 (ja) | データ記憶方法 | |
JP5627754B2 (ja) | 仮想記憶管理装置及び記憶管理装置 | |
JP5795418B2 (ja) | キャッシュ装置、及び記憶システム | |
US11409665B1 (en) | Partial logical-to-physical (L2P) address translation table for multiple namespaces | |
KR101744401B1 (ko) | 컴퓨팅 장치의 시스템 상태 저장, 복원방법 및 이를 위한 컴퓨팅 장치 | |
JP7118827B2 (ja) | 情報処理装置、メモリ制御方法およびプログラム | |
JP3204098B2 (ja) | 動的アドレスデコードキャッシュ制御方式 | |
CN115185906A (zh) | 一种针对NandFlash的轻量级文件管理方法及系统 | |
CN116541156A (zh) | 一种内存管理方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060421 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080826 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081021 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20081111 |