(57)【要約】【課題】アクセス頻度の高いデータのみを高速メモリにコピーして効率よくデータを参照することができる情報処理装置、制御装置およびメモリ管理方法を提供する。【解決手段】低速メモリ１７の各ページを仮想アドレスに割り当て、低速メモリ１７の各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを高速メモリ２４のページにコピーし、このページを仮想アドレスに割り当てる。【選択図】      図２
2008090554.tif 000002
【特許請求の範囲】
【請求項１】
第１のメモリと、
前記第１のメモリよりも読み書きの速度が遅い第２のメモリと、
前記第２のメモリの各ページを仮想アドレスに割り当て、前記第２のメモリの各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを前記第１のメモリの所定のページにコピーし、前記第１のメモリの所定のページを前記仮想アドレスに割り当てる割り当て手段と、
を具備することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、
前記割り当て手段は、前記仮想アドレス毎にアクセスカウントを取り、アクセスカウントが大きいものから前記第１のメモリの仮想アドレスの数だけ選び、選ばれた仮想アドレスがすべて前記第１のメモリに割り当てられるようにすることを特徴とする情報処理装置。
【請求項３】
請求項２に記載の情報処理装置において、
前記ファイルの置き換え後に、前記アクセスカウントをクリアし、初期値にすることを特徴とする情報処理装置。
【請求項４】
請求項２に記載の情報処理装置において、
前記割り当て手段は、第１のメモリに割り当てられたページが更新された場合は、第１のメモリから対応する第２のメモリへ割り当を変更する際に、第１のメモリから対応する第２のメモリへの書き込みを行うことを特徴とする情報処理装置。
【請求項５】
第１のメモリと、前記第１のメモリよりも読み書きの速度が遅い第２のメモリとを制御する制御装置であって、
前記第２のメモリの各ページを仮想アドレスに割り当て、前記第２のメモリの各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを前記第１のメモリの所定のページにコピーし、前記第１のメモリの所定のページを前記仮想アドレスに割り当てることを特徴とする制御装置。
【請求項６】
第１のメモリと、前記第１のメモリよりも読み書きの速度が遅い第２のメモリとを備えた情報処理装置で用いるメモリ管理方法であって、
前記第２のメモリの各ページを仮想アドレスに割り当て、前記第２のメモリの各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを前記第１のメモリの所定のページにコピーし、前記第１のメモリの所定のページを前記仮想アドレスに割り当てることを特徴とするメモリ管理方法。
【請求項７】
請求項６に記載のメモリ管理方法において、
前記仮想アドレス毎にアクセスカウントを取り、アクセスカウントが大きいものから前記第１のメモリの仮想アドレスの数だけ選び、選ばれた仮想アドレスがすべて前記第１のメモリに割り当てられるようにすることを特徴とするメモリ管理方法。
【請求項８】
請求項７に記載のメモリ管理方法において、
前記ファイルの置き換え後に、前記アクセスカウントをクリアし、初期値にすることを特徴とするメモリ管理方法。
【請求項９】
請求項７に記載のメモリ管理方法において、
前記第１のメモリに割り当てられたページが更新された場合は、第１のメモリから対応する第２のメモリへ割り当を変更する際に、第１のメモリから対応する第２のメモリへの書き込みを行うことを特徴とするメモリ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想メモリ管理技術に係り、特に高速メモリと低速メモリの２つのメモリを備えた情報処理装置、制御装置およびメモリ管理方法に関する。
【背景技術】
【０００２】
一般的に、高速メモリと低速メモリの２つのメモリを備えた仮想メモリ管理技術としては、例えば特許文献１に開示されているように、データの更新をデータ処理の実行状況に応じて行い、データの有用性判定の誤りによる余分なデータ転送を防止し、各メモリに最適なデータを記憶させる制御技術がある）。
【特許文献１】特開平５−３４１９１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上述した技術では、低速メモリの内容を必ず高速メモリにコピーした後に高速メモリのデータを参照するので、コピー時間のロスが発生する。
【０００４】
本発明の目的は、アクセス頻度の高いデータのみを高速メモリにコピーして効率よくデータを参照することができる情報処理装置、制御装置およびメモリ管理方法を提供することである。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明の一態様によれば、第１のメモリと、前記第１のメモリよりも読み書きの速度が遅い第２のメモリと、前記第２のメモリの各ページを仮想アドレスに割り当て、前記第２のメモリの各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを前記第１のメモリの所定のページにコピーし、前記第１のメモリの所定のページを前記仮想アドレスに割り当てる割り当て手段と、を具備することを特徴とする情報処理装置が提供される。
【発明の効果】
【０００６】
本発明を用いることにより、アクセス頻度の高いデータのみを高速メモリにコピーして効率よくデータを参照することができる。
【発明を実施するための最良の形態】
【０００７】
以下図面を参照して、本発明の実施形態について説明する。
【０００８】
図１には、本発明の一実施形態に係る情報処理装置の斜視図が示されている。この情報処理装置は、バッテリ駆動可能なノートブック型コンピュータ１０として実現されている。なお、本発明は、高速メモリと低速メモリの２つのメモリを備え、仮想メモリ管理を行う場合に、低速メモリに直接仮想アドレスを割り当て、アクセス頻度の高いファイルは、高速メモリにコピーし、高速メモリ仮想アドレスを割り当てるものである。
【０００９】
図１に示すように、コンピュータ１０は、本体１６と、ディスプレイ１１とから構成されている。ディスプレイ１１にはＬＣＤ（Liquid Crystal Display）からなる表示装置が組み込まれており、そのＬＣＤの表示画面１２はディスプレイ１１のほぼ中央に位置されている。
【００１０】
ディスプレイ１１は、コンピュータ１０に対して解放位置と閉塞位置との間を開閉自在に取り付けられている。コンピュータ１０の本体側は薄い箱形の筐体を有しており、その上面には、キーボード１３、パームレスト上にはタッチパッド１４、および左右２つのボタン１４ａ、１４ｂ、メール等の各種ショートカットボタン、電源ボタン、音量制御ボタン１８、スピーカ２９等が配置されている。また、本体１６の側面には、光学ドライブ１５等が設けられている。
【００１１】
図２は、本発明の一実施形態に係る情報処理装置の要部構成を示すブロック図である。
【００１２】
コンピュータ１０は、ＣＰＵ（Central Processing Unit）２０、Root Complex２１、主メモリ２４、グラフィックスコントローラ(End Point)２３、Root Complex（チップセット）２１とグラフィックスコントローラ２３とを接続するPCI Express Link２２、ディスプレイ（ＬＣＤ）である表示装置１１、主メモリ（高速メモリ：第１のメモリ）２４、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）２７、ハードディスクドライブ（ＨＤＤ）２５、ＢＩＯＳ−ＲＯＭ２６、メモリ（低速メモリ：第２のメモリ）１７、キーボード１３、タッチパッド１４、ＡＣ電源１９、スピーカ２９などを備えている。なお、主メモリ２４は、ＲＡＭ、ＤＤＲ  ＳＤ−ＲＡＭ等のメモリを用い、メモリ１７は、バス上に接続されている主メモリ２４よりも低速なＳＤ−ＲＡＭ等を用いる。
【００１３】
Root Complex２１、グラフィックスコントローラ２３等は、PCI EXPRESS規格に準拠したデバイスである。Root Complex２１とグラフィックスコントローラ２３との間の通信は、Root Complex２１とグラフィックスコントローラ２３との間に配設されたPCI Express Link２２を介して実行される。
【００１４】
ＣＰＵ２０は、本コンピュータ１０の動作を制御するプロセッサであり、ＨＤＤ２５から主メモリ２４にロードされる各種プログラム（オペレーティングシステム、後術するメモリ管理プログラム等のアプリケーションプログラム）を実行する。また、ＣＰＵ２０は、ＢＩＯＳ−ＲＯＭ２６に格納されたＢＩＯＳ（Basic Input Output System）も実行する。ＢＩＯＳはハードウェアを制御するためのプログラムである。
【００１５】
Root Complex２１は、ＣＰＵ２０のローカルバスとグラフィックスコントローラ２３との間を接続するブリッジデバイスである。また、Root Complex２１は、PCI Express Link２２を介してグラフィックスコントローラ２３との通信を実行する機能も有している。
【００１６】
グラフィックスコントローラ２３は、本コンピュータのディスプレイモニタとして使用されるディスプレイである表示装置１１を制御する表示コントローラである。
【００１７】
ＥＣ／ＫＢＣ２７は、電力管理のためのエンベデッドコントローラと、キーボード１３、タッチパッド１４、バッテリ２８、ＡＣ電源１９等を制御するためのキーボードコントローラとが集積された１チップマイクロコンピュータである。このＥＣ／ＫＢＣ２７は、ユーザによる電源ボタンの操作に応じて、電源コントローラと共同して、本コンピュータ１０をパワーオン／パワーオフする機能等を有している。
【００１８】
次に、仮想メモリ管理を行う場合の仮想メモリ管理オペレーティングシステムの構成と動作を説明する。
【００１９】
仮想メモリ管理オペレーティングシステムは、オペレーティングシステムの構成要素であるメモリマネージメントとファイルシステムにより、その上で動作するアプリケーションの仮想アドレス空間を提供する。例えば、低速メモリ１７上にあるファイルシステムのファイルＡおよび、ファイルＢを、所定のアプリケーションからアクセスする場合、ファイルシステムはオペレーティングシステムが管理する仮想アドレス空間に、ファイルのマッピングを行う。
【００２０】
図３は、仮想メモリ管理オペレーティングシステム上で動作するアプリケーションの仮想アドレス空間を示した模式図である。オペレーティングシステムは、アプリケーションに対して、仮想アドレス空間を提供するが、その仮想アドレス空間は、ページと呼ばれる決められたサイズの単位の集合として管理されている。本実施形態では、アクセス頻度（参照頻度）が高いページは、高速メモリ２４に記憶し、高速メモリ２４を直接参照する。また、アクセス頻度が低いページは、低速メモリ１７に記憶し、低速メモリ１７を直接参照する。高速メモリ２４に割り当てられたページが更新（書き込み）された場合は、対応する低速メモリ１７への書き込みは都度行わず、高速メモリ２４から低速メモリ１７へ割り当を変更する際に書き込みを行う。
【００２１】
仮想メモリ管理をコンピュータ等で行う場合、上述のような仮想アドレス空間を設定し、それぞれの仮想アドレス１〜６に対応するメモリを割り当てる。割り当てるメモリは、例えば、高速メモリ（主メモリ）２４と低速メモリ（メモリ）１７の２つのメモリに対して行う。低速メモリ１７は、所定のファイルを記憶する。この低速メモリ１７に記憶されたファイルの中でアクセス頻度の高いファイルを高速メモリ２４にコピーする。最初の段階では、アクセス頻度のカウントを行っていないので、例えば、高速メモリ２４の記憶領域は、例えばアドレス１〜４の４つであるので、低速メモリ１７のアドレス２、４、５を高速メモリ２４のアドレス４、２，１にコピーする（高速メモリ２４のアドレス３はこのとき未使用）。そして、仮想アドレス空間のアドレス３、１、４を高速メモリ２４のアドレス１、２、４に割り当てる。
【００２２】
次に、図４は、本発明の一実施形態である情報処理装置および制御装置を適用したメモリ管理方法について説明したフローチャートである。
【００２３】
コンピュータ１０のＣＰＵ２０は、ＨＤＤ２５からメモリ管理プログラムを読み込む（ステップＳ１０１）。読み出されたメモリ管理プログラムは、例えば高速メモリ２４上で動作し、以後、ＣＰＵ２０によって制御される。メモリ管理プログラムは、ページテーブルを作成する。例えば、上述したように、図３に示すように、ページテーブルを作成し、仮想アドレス空間に高速メモリ２４および低速メモリ１７のアドレスを割り当てる。なお、ページテーブルは、例えば、図５に示すようなテーブルである。
【００２４】
次に、高速メモリ２４および低速メモリ１７に記憶されたファイルへのアクセスが開始され（ステップＳ１０３）、同時に、高速メモリ２４および低速メモリ１７の各アドレス毎のアクセスカウント（以後、参照カウントとも称する）を開始する（ステップＳ１０４）。このとき、高速メモリ２４に割り当てられたページが更新（書き込み）された場合は、対応する低速メモリ１７への書き込みは都度行わず、高速メモリ２４にDirty（Ｄ）のフラグを付与し、高速メモリ２４から低速メモリ１７へ割り当を変更する際に書き込みを行う（書き込み後は、フラグを（Ｃ）に戻す）。なお、フラグは、Ｄのフラグを付与される前は、clean（Ｃ）のフラグが付与されている。このフラグによって、高速メモリ２４のと対応する低速メモリ１７の内容が同じ「フラグ：（Ｃ）」か、異なるか「フラグ：（Ｄ）」を判別することができる。
【００２５】
上述したテーブルは、図５に示すように、仮想アドレスをインデックスとし、高速メモリ２４と対応する低速メモリ１７の内容が同じフラグ：（Ｃ）か、異なるフラグ（Ｄ）かを示すフラグ、実メモリアドレス、参照カウントによって構成される。実メモリアドレスは、高速メモリ２４の場合は、対応する低速メモリ１７のアドレスは、括弧内に記載している。
【００２６】
ステップＳ１０４での参照カウントの更新は、メモリ管理プログラムによって、所定の一定時間監視されている。例えば、数百ｍｓから数秒ぐらいの一定時間が経過すると（ステップＳ１０５）、低速メモリ１７の参照カウントが高速メモリ２４の参照カウントよりも大きいか否かを判別する（ステップＳ１０６）。ステップＳ１０６では、メモリ管理プログラムによって参照カウントをすべてソートし、降順に並べる。そして、メモリ管理プログラムによって、高速メモリ２４のページ数だけ、すなわち４つを上位から選択する。例えば、図５に示したテーブルでは、参照カウント１５（高速メモリのアドレス１：低速メモリのアドレス５）、参照カウント１１（低速メモリのアドレス３）、参照カウント８（高速メモリのアドレス２：低速メモリのアドレス４）、参照カウント３（高速メモリのアドレス４：低速メモリのアドレス２）の４つが選択される。このうち、低速メモリ１７の参照カウントが高速メモリ２４の参照カウントよりも大きいものがあるかをメモリ管理プログラムによって判別する。参照カウント１１（低速メモリのアドレス３）は、参照カウント３（高速メモリのアドレス４：低速メモリのアドレス２）および参照カウント８（高速メモリのアドレス２：低速メモリのアドレス４）よりも大きいと判別される（ステップＳ１０６のＹＥＳ）。このとき、参照カウント３（高速メモリのアドレス４：低速メモリのアドレス２）と参照カウント８（高速メモリのアドレス２：低速メモリのアドレス４）とでは、参照カウント３（高速メモリのアドレス４：低速メモリのアドレス２）の方が参照カウントが少ないので、この高速メモリ２４のアドレス４は、フラグ（Ｄ）のDirtyであれば（ステップＳ１０７）、高速メモリのアドレス４の内容を低速メモリのアドレス２にコピーし（ステップＳ１０８）、高速メモリのアドレス４に割り当てられている仮想アドレスを低速メモリのアドレス２に割り当てるように変更し、高速メモリのアドレス４をＦｒｅｅとして解放する（ステップＳ１０９）。メモリ管理プログラムは、低速メモリのアドレス３をＦｒｅｅとなった高速メモリのアドレス４にコピーし、仮想アドレス２（図６参照）の割り当てを、低速メモリのアドレス３から高速メモリのアドレス４に変更し（ステップＳ１１０）、参照カウントをクリアし、初期値の０とする。また、フラグは、（Ｄ）から（Ｃ）に変更する。以上のように割り当てを変更したテーブルが図６に示すテーブルとなる。
【００２７】
以上、詳述したように、本実施形態を用いることにより、アクセス頻度が高いページに対しては、高速なメインメモリにコピーすることで、高速なアクセスを提供し、アクセス頻度が低いページに対しては、低速なファイルシステムの実体のあるメモリを直接参照することで、メモリ使用量の削減を行うことができる。すなわち、アクセス頻度の高いデータのみを高速メモリにコピーして効率よくデータを参照することができる。
【００２８】
上述したメモリ管理方法は、１つのマイクロチップの制御装置として実現することもでき、また、プログラムとしてソフトウェア的に実現することもできる。
【００２９】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００３０】
【図１】本発明の一実施形態に係る情報処理装置の外観を示した斜視図。
【図２】本発明の一実施形態に係る情報処理装置の要部構成を示すブロック図。
【図３】仮想メモリ管理オペレーティングシステム上で動作するアプリケーションの仮想アドレス空間を示した模式図。
【図４】本発明の一実施形態である情報処理装置および制御装置を適用したメモリ管理方法について説明したフローチャート。
【図５】ページテーブルの一例を示した模式図。
【図６】仮想アドレスの割り当ての入れ替え後のページテーブルの一例を示した模式図。
【符号の説明】
【００３１】
１０…コンピュータ、１１…ＬＣＤ、１２…表示画面、１３…キーボード、１４…タッチパッド、１４ａ．１４ｂ…ボタン、１５…光学ドライブ、１６…本体、１７…メモリ、１８…電源ボタン、１９…ＡＣ電源、２０…ＣＰＵ、２３…グラフィックスコントローラ、２４…主メモリ、２５…ＨＤＤ、２６…ＢＩＯＳ−ＲＯＭ、２７…ＥＣ／ＫＢＣ、２８…バッテリ
【図１】
2008090554.tif 000003
【図２】
2008090554.tif 000004
【図３】
2008090554.tif 000005
【図４】
2008090554.tif 000006
【図５】
2008090554.tif 000007
【図６】
2008090554.tif 000008