JP2008090554A - 情報処理装置、制御装置およびメモリ管理方法 - Google Patents
情報処理装置、制御装置およびメモリ管理方法 Download PDFInfo
- Publication number
- JP2008090554A JP2008090554A JP2006269856A JP2006269856A JP2008090554A JP 2008090554 A JP2008090554 A JP 2008090554A JP 2006269856 A JP2006269856 A JP 2006269856A JP 2006269856 A JP2006269856 A JP 2006269856A JP 2008090554 A JP2008090554 A JP 2008090554A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- page
- speed memory
- management method
- information processing
- 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
【課題】アクセス頻度の高いデータのみを高速メモリにコピーして効率よくデータを参照することができる情報処理装置、制御装置およびメモリ管理方法を提供する。
【解決手段】低速メモリ17の各ページを仮想アドレスに割り当て、低速メモリ17の各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを高速メモリ24のページにコピーし、このページを仮想アドレスに割り当てる。
【選択図】 図2
【解決手段】低速メモリ17の各ページを仮想アドレスに割り当て、低速メモリ17の各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを高速メモリ24のページにコピーし、このページを仮想アドレスに割り当てる。
【選択図】 図2
Description
本発明は、仮想メモリ管理技術に係り、特に高速メモリと低速メモリの2つのメモリを備えた情報処理装置、制御装置およびメモリ管理方法に関する。
一般的に、高速メモリと低速メモリの2つのメモリを備えた仮想メモリ管理技術としては、例えば特許文献1に開示されているように、データの更新をデータ処理の実行状況に応じて行い、データの有用性判定の誤りによる余分なデータ転送を防止し、各メモリに最適なデータを記憶させる制御技術がある)。
特開平5−341912号公報
しかし、上述した技術では、低速メモリの内容を必ず高速メモリにコピーした後に高速メモリのデータを参照するので、コピー時間のロスが発生する。
本発明の目的は、アクセス頻度の高いデータのみを高速メモリにコピーして効率よくデータを参照することができる情報処理装置、制御装置およびメモリ管理方法を提供することである。
上記目的を達成するために、本発明の一態様によれば、第1のメモリと、前記第1のメモリよりも読み書きの速度が遅い第2のメモリと、前記第2のメモリの各ページを仮想アドレスに割り当て、前記第2のメモリの各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを前記第1のメモリの所定のページにコピーし、前記第1のメモリの所定のページを前記仮想アドレスに割り当てる割り当て手段と、を具備することを特徴とする情報処理装置が提供される。
本発明を用いることにより、アクセス頻度の高いデータのみを高速メモリにコピーして効率よくデータを参照することができる。
以下図面を参照して、本発明の実施形態について説明する。
図1には、本発明の一実施形態に係る情報処理装置の斜視図が示されている。この情報処理装置は、バッテリ駆動可能なノートブック型コンピュータ10として実現されている。なお、本発明は、高速メモリと低速メモリの2つのメモリを備え、仮想メモリ管理を行う場合に、低速メモリに直接仮想アドレスを割り当て、アクセス頻度の高いファイルは、高速メモリにコピーし、高速メモリ仮想アドレスを割り当てるものである。
図1に示すように、コンピュータ10は、本体16と、ディスプレイ11とから構成されている。ディスプレイ11にはLCD(Liquid Crystal Display)からなる表示装置が組み込まれており、そのLCDの表示画面12はディスプレイ11のほぼ中央に位置されている。
ディスプレイ11は、コンピュータ10に対して解放位置と閉塞位置との間を開閉自在に取り付けられている。コンピュータ10の本体側は薄い箱形の筐体を有しており、その上面には、キーボード13、パームレスト上にはタッチパッド14、および左右2つのボタン14a、14b、メール等の各種ショートカットボタン、電源ボタン、音量制御ボタン18、スピーカ29等が配置されている。また、本体16の側面には、光学ドライブ15等が設けられている。
図2は、本発明の一実施形態に係る情報処理装置の要部構成を示すブロック図である。
コンピュータ10は、CPU(Central Processing Unit)20、Root Complex21、主メモリ24、グラフィックスコントローラ(End Point)23、Root Complex(チップセット)21とグラフィックスコントローラ23とを接続するPCI Express Link22、ディスプレイ(LCD)である表示装置11、主メモリ(高速メモリ:第1のメモリ)24、エンベデッドコントローラ/キーボードコントローラIC(EC/KBC)27、ハードディスクドライブ(HDD)25、BIOS−ROM26、メモリ(低速メモリ:第2のメモリ)17、キーボード13、タッチパッド14、AC電源19、スピーカ29などを備えている。なお、主メモリ24は、RAM、DDR SD−RAM等のメモリを用い、メモリ17は、バス上に接続されている主メモリ24よりも低速なSD−RAM等を用いる。
Root Complex21、グラフィックスコントローラ23等は、PCI EXPRESS規格に準拠したデバイスである。Root Complex21とグラフィックスコントローラ23との間の通信は、Root Complex21とグラフィックスコントローラ23との間に配設されたPCI Express Link22を介して実行される。
CPU20は、本コンピュータ10の動作を制御するプロセッサであり、HDD25から主メモリ24にロードされる各種プログラム(オペレーティングシステム、後術するメモリ管理プログラム等のアプリケーションプログラム)を実行する。また、CPU20は、BIOS−ROM26に格納されたBIOS(Basic Input Output System)も実行する。BIOSはハードウェアを制御するためのプログラムである。
Root Complex21は、CPU20のローカルバスとグラフィックスコントローラ23との間を接続するブリッジデバイスである。また、Root Complex21は、PCI Express Link22を介してグラフィックスコントローラ23との通信を実行する機能も有している。
グラフィックスコントローラ23は、本コンピュータのディスプレイモニタとして使用されるディスプレイである表示装置11を制御する表示コントローラである。
EC/KBC27は、電力管理のためのエンベデッドコントローラと、キーボード13、タッチパッド14、バッテリ28、AC電源19等を制御するためのキーボードコントローラとが集積された1チップマイクロコンピュータである。このEC/KBC27は、ユーザによる電源ボタンの操作に応じて、電源コントローラと共同して、本コンピュータ10をパワーオン/パワーオフする機能等を有している。
次に、仮想メモリ管理を行う場合の仮想メモリ管理オペレーティングシステムの構成と動作を説明する。
仮想メモリ管理オペレーティングシステムは、オペレーティングシステムの構成要素であるメモリマネージメントとファイルシステムにより、その上で動作するアプリケーションの仮想アドレス空間を提供する。例えば、低速メモリ17上にあるファイルシステムのファイルAおよび、ファイルBを、所定のアプリケーションからアクセスする場合、ファイルシステムはオペレーティングシステムが管理する仮想アドレス空間に、ファイルのマッピングを行う。
図3は、仮想メモリ管理オペレーティングシステム上で動作するアプリケーションの仮想アドレス空間を示した模式図である。オペレーティングシステムは、アプリケーションに対して、仮想アドレス空間を提供するが、その仮想アドレス空間は、ページと呼ばれる決められたサイズの単位の集合として管理されている。本実施形態では、アクセス頻度(参照頻度)が高いページは、高速メモリ24に記憶し、高速メモリ24を直接参照する。また、アクセス頻度が低いページは、低速メモリ17に記憶し、低速メモリ17を直接参照する。高速メモリ24に割り当てられたページが更新(書き込み)された場合は、対応する低速メモリ17への書き込みは都度行わず、高速メモリ24から低速メモリ17へ割り当を変更する際に書き込みを行う。
仮想メモリ管理をコンピュータ等で行う場合、上述のような仮想アドレス空間を設定し、それぞれの仮想アドレス1〜6に対応するメモリを割り当てる。割り当てるメモリは、例えば、高速メモリ(主メモリ)24と低速メモリ(メモリ)17の2つのメモリに対して行う。低速メモリ17は、所定のファイルを記憶する。この低速メモリ17に記憶されたファイルの中でアクセス頻度の高いファイルを高速メモリ24にコピーする。最初の段階では、アクセス頻度のカウントを行っていないので、例えば、高速メモリ24の記憶領域は、例えばアドレス1〜4の4つであるので、低速メモリ17のアドレス2、4、5を高速メモリ24のアドレス4、2,1にコピーする(高速メモリ24のアドレス3はこのとき未使用)。そして、仮想アドレス空間のアドレス3、1、4を高速メモリ24のアドレス1、2、4に割り当てる。
次に、図4は、本発明の一実施形態である情報処理装置および制御装置を適用したメモリ管理方法について説明したフローチャートである。
コンピュータ10のCPU20は、HDD25からメモリ管理プログラムを読み込む(ステップS101)。読み出されたメモリ管理プログラムは、例えば高速メモリ24上で動作し、以後、CPU20によって制御される。メモリ管理プログラムは、ページテーブルを作成する。例えば、上述したように、図3に示すように、ページテーブルを作成し、仮想アドレス空間に高速メモリ24および低速メモリ17のアドレスを割り当てる。なお、ページテーブルは、例えば、図5に示すようなテーブルである。
次に、高速メモリ24および低速メモリ17に記憶されたファイルへのアクセスが開始され(ステップS103)、同時に、高速メモリ24および低速メモリ17の各アドレス毎のアクセスカウント(以後、参照カウントとも称する)を開始する(ステップS104)。このとき、高速メモリ24に割り当てられたページが更新(書き込み)された場合は、対応する低速メモリ17への書き込みは都度行わず、高速メモリ24にDirty(D)のフラグを付与し、高速メモリ24から低速メモリ17へ割り当を変更する際に書き込みを行う(書き込み後は、フラグを(C)に戻す)。なお、フラグは、Dのフラグを付与される前は、clean(C)のフラグが付与されている。このフラグによって、高速メモリ24のと対応する低速メモリ17の内容が同じ「フラグ:(C)」か、異なるか「フラグ:(D)」を判別することができる。
上述したテーブルは、図5に示すように、仮想アドレスをインデックスとし、高速メモリ24と対応する低速メモリ17の内容が同じフラグ:(C)か、異なるフラグ(D)かを示すフラグ、実メモリアドレス、参照カウントによって構成される。実メモリアドレスは、高速メモリ24の場合は、対応する低速メモリ17のアドレスは、括弧内に記載している。
ステップS104での参照カウントの更新は、メモリ管理プログラムによって、所定の一定時間監視されている。例えば、数百msから数秒ぐらいの一定時間が経過すると(ステップS105)、低速メモリ17の参照カウントが高速メモリ24の参照カウントよりも大きいか否かを判別する(ステップS106)。ステップS106では、メモリ管理プログラムによって参照カウントをすべてソートし、降順に並べる。そして、メモリ管理プログラムによって、高速メモリ24のページ数だけ、すなわち4つを上位から選択する。例えば、図5に示したテーブルでは、参照カウント15(高速メモリのアドレス1:低速メモリのアドレス5)、参照カウント11(低速メモリのアドレス3)、参照カウント8(高速メモリのアドレス2:低速メモリのアドレス4)、参照カウント3(高速メモリのアドレス4:低速メモリのアドレス2)の4つが選択される。このうち、低速メモリ17の参照カウントが高速メモリ24の参照カウントよりも大きいものがあるかをメモリ管理プログラムによって判別する。参照カウント11(低速メモリのアドレス3)は、参照カウント3(高速メモリのアドレス4:低速メモリのアドレス2)および参照カウント8(高速メモリのアドレス2:低速メモリのアドレス4)よりも大きいと判別される(ステップS106のYES)。このとき、参照カウント3(高速メモリのアドレス4:低速メモリのアドレス2)と参照カウント8(高速メモリのアドレス2:低速メモリのアドレス4)とでは、参照カウント3(高速メモリのアドレス4:低速メモリのアドレス2)の方が参照カウントが少ないので、この高速メモリ24のアドレス4は、フラグ(D)のDirtyであれば(ステップS107)、高速メモリのアドレス4の内容を低速メモリのアドレス2にコピーし(ステップS108)、高速メモリのアドレス4に割り当てられている仮想アドレスを低速メモリのアドレス2に割り当てるように変更し、高速メモリのアドレス4をFreeとして解放する(ステップS109)。メモリ管理プログラムは、低速メモリのアドレス3をFreeとなった高速メモリのアドレス4にコピーし、仮想アドレス2(図6参照)の割り当てを、低速メモリのアドレス3から高速メモリのアドレス4に変更し(ステップS110)、参照カウントをクリアし、初期値の0とする。また、フラグは、(D)から(C)に変更する。以上のように割り当てを変更したテーブルが図6に示すテーブルとなる。
以上、詳述したように、本実施形態を用いることにより、アクセス頻度が高いページに対しては、高速なメインメモリにコピーすることで、高速なアクセスを提供し、アクセス頻度が低いページに対しては、低速なファイルシステムの実体のあるメモリを直接参照することで、メモリ使用量の削減を行うことができる。すなわち、アクセス頻度の高いデータのみを高速メモリにコピーして効率よくデータを参照することができる。
上述したメモリ管理方法は、1つのマイクロチップの制御装置として実現することもでき、また、プログラムとしてソフトウェア的に実現することもできる。
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
10…コンピュータ、11…LCD、12…表示画面、13…キーボード、14…タッチパッド、14a.14b…ボタン、15…光学ドライブ、16…本体、17…メモリ、18…電源ボタン、19…AC電源、20…CPU、23…グラフィックスコントローラ、24…主メモリ、25…HDD、26…BIOS−ROM、27…EC/KBC、28…バッテリ
Claims (9)
- 第1のメモリと、
前記第1のメモリよりも読み書きの速度が遅い第2のメモリと、
前記第2のメモリの各ページを仮想アドレスに割り当て、前記第2のメモリの各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを前記第1のメモリの所定のページにコピーし、前記第1のメモリの所定のページを前記仮想アドレスに割り当てる割り当て手段と、
を具備することを特徴とする情報処理装置。 - 請求項1に記載の情報処理装置において、
前記割り当て手段は、前記仮想アドレス毎にアクセスカウントを取り、アクセスカウントが大きいものから前記第1のメモリの仮想アドレスの数だけ選び、選ばれた仮想アドレスがすべて前記第1のメモリに割り当てられるようにすることを特徴とする情報処理装置。 - 請求項2に記載の情報処理装置において、
前記ファイルの置き換え後に、前記アクセスカウントをクリアし、初期値にすることを特徴とする情報処理装置。 - 請求項2に記載の情報処理装置において、
前記割り当て手段は、第1のメモリに割り当てられたページが更新された場合は、第1のメモリから対応する第2のメモリへ割り当を変更する際に、第1のメモリから対応する第2のメモリへの書き込みを行うことを特徴とする情報処理装置。 - 第1のメモリと、前記第1のメモリよりも読み書きの速度が遅い第2のメモリとを制御する制御装置であって、
前記第2のメモリの各ページを仮想アドレスに割り当て、前記第2のメモリの各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを前記第1のメモリの所定のページにコピーし、前記第1のメモリの所定のページを前記仮想アドレスに割り当てることを特徴とする制御装置。 - 第1のメモリと、前記第1のメモリよりも読み書きの速度が遅い第2のメモリとを備えた情報処理装置で用いるメモリ管理方法であって、
前記第2のメモリの各ページを仮想アドレスに割り当て、前記第2のメモリの各ページに記憶された複数のファイルのうち、アクセス頻度が高いファイルを前記第1のメモリの所定のページにコピーし、前記第1のメモリの所定のページを前記仮想アドレスに割り当てることを特徴とするメモリ管理方法。 - 請求項6に記載のメモリ管理方法において、
前記仮想アドレス毎にアクセスカウントを取り、アクセスカウントが大きいものから前記第1のメモリの仮想アドレスの数だけ選び、選ばれた仮想アドレスがすべて前記第1のメモリに割り当てられるようにすることを特徴とするメモリ管理方法。 - 請求項7に記載のメモリ管理方法において、
前記ファイルの置き換え後に、前記アクセスカウントをクリアし、初期値にすることを特徴とするメモリ管理方法。 - 請求項7に記載のメモリ管理方法において、
前記第1のメモリに割り当てられたページが更新された場合は、第1のメモリから対応する第2のメモリへ割り当を変更する際に、第1のメモリから対応する第2のメモリへの書き込みを行うことを特徴とするメモリ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006269856A JP2008090554A (ja) | 2006-09-29 | 2006-09-29 | 情報処理装置、制御装置およびメモリ管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006269856A JP2008090554A (ja) | 2006-09-29 | 2006-09-29 | 情報処理装置、制御装置およびメモリ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008090554A true JP2008090554A (ja) | 2008-04-17 |
Family
ID=39374635
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006269856A Pending JP2008090554A (ja) | 2006-09-29 | 2006-09-29 | 情報処理装置、制御装置およびメモリ管理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008090554A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010186411A (ja) * | 2009-02-13 | 2010-08-26 | Toshiba Corp | プログラム実行装置、プログラム実行方法、及びプログラム |
JP2012033001A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | 情報処理装置および情報処理方法 |
JP2015522886A (ja) * | 2012-07-18 | 2015-08-06 | マイクロン テクノロジー, インク. | 階層メモリシステムのためのメモリ管理 |
JP2015201050A (ja) * | 2014-04-08 | 2015-11-12 | 富士通株式会社 | キャッシュ保存プログラム、情報処理装置およびキャッシュ保存方法 |
US10387329B2 (en) | 2016-02-10 | 2019-08-20 | Google Llc | Profiling cache replacement |
-
2006
- 2006-09-29 JP JP2006269856A patent/JP2008090554A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010186411A (ja) * | 2009-02-13 | 2010-08-26 | Toshiba Corp | プログラム実行装置、プログラム実行方法、及びプログラム |
JP2012033001A (ja) * | 2010-07-30 | 2012-02-16 | Toshiba Corp | 情報処理装置および情報処理方法 |
JP2015522886A (ja) * | 2012-07-18 | 2015-08-06 | マイクロン テクノロジー, インク. | 階層メモリシステムのためのメモリ管理 |
US10089242B2 (en) | 2012-07-18 | 2018-10-02 | Micron Technology, Inc. | Memory management for a hierarchical memory system |
US10831672B2 (en) | 2012-07-18 | 2020-11-10 | Micron Technology, Inc | Memory management for a hierarchical memory system |
JP2015201050A (ja) * | 2014-04-08 | 2015-11-12 | 富士通株式会社 | キャッシュ保存プログラム、情報処理装置およびキャッシュ保存方法 |
US10387329B2 (en) | 2016-02-10 | 2019-08-20 | Google Llc | Profiling cache replacement |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5085180B2 (ja) | 情報処理装置およびアクセス制御方法 | |
EP3382557B1 (en) | Method and apparatus for persistently caching storage data in a page cache | |
JP4399021B1 (ja) | ディスクアレイ制御装置および記憶装置 | |
JP5149912B2 (ja) | 複数の異種のソリッドステート・ストレージ・ロケーションの選択的利用 | |
JP2010525453A (ja) | ソリッドステートドライブ最適化用リムーブオンデリート技術 | |
JP4886866B2 (ja) | 主記憶装置へのアクセスを高速化する方法および記憶装置システム | |
US20120246390A1 (en) | Information processing apparatus, program product, and data writing method | |
JP2008192061A (ja) | ストレージシステム及び記憶管理方法 | |
JP2006018839A (ja) | 漸進的マージ方法及びそれを利用したメモリシステム | |
JP2011128998A (ja) | 半導体記憶装置 | |
JP2008070935A (ja) | ストレージシステムの論理ボリューム管理方法、論理ボリューム管理プログラム、及びストレージシステム | |
JP2011134293A (ja) | データ制御装置及びプログラム | |
JP2006079628A (ja) | ユーザデータをパーティションファイルに記憶する、又はユーザデータを含むパーティションファイルを使用するシステム及び方法 | |
US8583890B2 (en) | Disposition instructions for extended access commands | |
JP2013174975A (ja) | メモリシステムとそのデータ書き込み方法 | |
JP2008090554A (ja) | 情報処理装置、制御装置およびメモリ管理方法 | |
JP4308152B2 (ja) | メモリを予約するための方法、システム、および製品 | |
CN113805791A (zh) | 由存储设备向主机传送数据重定位信息以提高***性能 | |
JP2011090460A (ja) | データ記憶装置およびデータ記憶装置における制御方法 | |
KR101996641B1 (ko) | 메모리 오버레이 장치 및 방법 | |
JP2004078398A (ja) | 仮想ボリューム管理方式 | |
JP2009032305A (ja) | 情報記録装置及びその制御方法 | |
JP2020071632A (ja) | 情報処理装置、制御方法、及びプログラム | |
JP5334048B2 (ja) | メモリ装置および計算機 | |
JP2008071189A (ja) | ディスクアレイ装置、raidコントローラおよびディスクアレイ装置のディスクアレイ構築方法 |