説明

情報処理装置

【課題】高速なデータアクセスを行うことができるようにすること。
【解決手段】本発明の一つの実施形態によれば、情報処理装置は、不揮発性の第1メモリと、前記第1メモリよりも高速な不揮発性の第2メモリと、制御部とを備えている。前記制御部は、書き込み動作時に、書き込み対象ファイルのサイズと所定のしきい値を比較し、前記書き込み対象ファイルがサイズが前記所定のしきい値より大きい第1ファイルである場合には当該第1ファイルを前記第1メモリに格納し、書き込み対象ファイルがサイズが前記所定のしきい値より小さい第2ファイルである場合には当該第2ファイルを前記第2メモリに格納し、前記第1メモリに格納されている第1ファイルにアクセスする場合には、前記第1ファイルを前記第2メモリに複製して、前記第2メモリに複製された第2ファイルにアクセスする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【0002】
フラッシュ型EEPROMメモリと強誘電体メモリとを備えるメモリシステムにおいて、フラッシュ型EEPROMメモリ上にデータを記憶し、強誘電体メモリ上にルート情報、ディレクトリ情報等を記憶する技術が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−338370号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明の一つの実施形態は、高速なデータアクセスを行うことができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明の一つの実施形態によれば、情報処理装置は、不揮発性の第1メモリと、前記第1メモリよりも高速な不揮発性の第2メモリと、制御部とを備えている。前記制御部は、書き込み動作時に、書き込み対象ファイルのサイズと所定のしきい値を比較し、前記書き込み対象ファイルがサイズが前記所定のしきい値より大きい第1ファイルである場合には当該第1ファイルを前記第1メモリに格納し、書き込み対象ファイルがサイズが前記所定のしきい値より小さい第2ファイルである場合には当該第2ファイルを前記第2メモリに格納し、前記第1メモリに格納されている第1ファイルにアクセスする場合には、前記第1ファイルを前記第2メモリに複製して、前記第2メモリに複製された第2ファイルにアクセスする。
【図面の簡単な説明】
【0006】
【図1】図1は、本発明の第1の実施形態の情報処理装置の構成を説明する図である。
【図2】図2は、本発明の実施形態のメモリ管理の概念を説明する図である。
【図3】図3は、管理情報の構成を説明する図である。
【図4】図4は、ページテーブルのデータ構成例を説明する図である。
【図5−1】図5−1は、ディレクトリ構成の一例を示す図である。
【図5−2】図5−2は、ファイル管理テーブルのデータ構成例を示す図である。
【図6】図6は、第1の実施形態の情報処理装置のファイル書き込み時の動作を説明するフローチャートである。
【図7】図7は、第1の実施形態の情報処理装置のファイル読み出し時の動作を説明するフローチャートである。
【図8】図8は、ファイル読み出しを実行する場合のプログラム例を説明する図である。
【図9】図9は、第2の実施形態の情報処理装置のファイル書き込み時の動作を説明するフローチャートである。
【図10】図10は、書き込み領域生成処理を説明するフローチャートである。
【発明を実施するための形態】
【0007】
以下に添付図面を参照して、実施形態にかかる情報処理装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【0008】
(第1の実施形態)
図1は、本発明の第1の実施形態の情報処理装置の構成を説明する図である。図示するように、情報処理装置1は、CPU2、DMA(Direct Memory Access Controller)3、MRAM(Magnetoresistive Random Access Memory)4、NANDコントローラ5およびNANDメモリ6を備えている。本発明の第1の実施形態の情報処理装置1は、サーバ、コンピュータ端末、組み込み機器の別を問わずどのようなコンピュータであっても実現可能である。
【0009】
CPU2は、後述のOS(Operating System)プログラム45を実行することによって、本発明の実施形態の制御部として機能する。
【0010】
DMA3は、CPU2からの指令に基づいて、MRAM4とNANDコントローラ5との間のデータ転送を実行する。なお、以降、煩雑を避けるために、データ転送の動作主体はCPU2であるとして説明する。
【0011】
NANDコントローラ5は、NANDメモリ6を制御して、DMA3から受信した読み出し要求に対応してデータをNANDメモリ6から読み出したり、DMA3から受信した書き込み要求に対応してデータをNANDメモリ6に書き込んだりする。
【0012】
NANDメモリ6は、NAND型のメモリセルアレイからなるストレージ領域61を有しており、不揮発性の補助記憶装置として機能する。なお、本発明の実施形態の情報処理装置1の補助記憶装置として、NANDメモリ6のほかにハードディスクドライブ、NOR型のメモリセルアレイを有する半導体記憶装置など、他の不揮発性記憶装置を採用することができる。
【0013】
MRAM4は、NANDメモリ6よりもアクセススピードが高速な不揮発性の記憶装置である。MRAM4の記憶領域には、メインメモリ領域41と、ストレージ領域42と、システム領域44とが確保されている。なお、補助記憶装置よりも高速な不揮発性の記憶装置として、MRAM4のほかに、FeRAM(Ferroelectric Random Access Memory)など他の不揮発性記憶装置を採用することができる。
【0014】
本発明の実施形態においては、CPU2は、あるファイルを保存する際に、当該保存対象のファイルのサイズを所定のしきい値と比較して、しきい値よりも大きなファイルをNANDメモリ6が備えるストレージ領域に、しきい値よりも小さいファイルをMRAM4に確保されたストレージ領域に、振り分けて格納する。言い換えると、CPU2は、しきい値よりも大きいファイル(大データ62)をNANDメモリ6に保存し、しきい値よりも小さいファイル(小データ43)をMRAM4に保存する。本図は、ストレージ領域61には大データ62が、ストレージ領域42には小データ43が、夫々格納されていることを示している。なお、ファイルとは、ストレージ中で名前などの識別子によって区別される一塊のデータをいう。
【0015】
一般に、NANDメモリ6は、ページと呼ばれる単位サイズ毎に読み出し/書き込みが実行され、ページよりも大きいブロックと呼ばれる単位サイズ毎にデータの消去が実行される。また、NANDメモリ6に対するページ当たりのアクセス速度は、単一のページに対してアクセスされる場合よりも、アドレスが連続する複数のページに連続的にアクセス(シーケンシャルアクセス)されるほうが速い。即ち、ランダムアクセス時よりもシーケンシャルアクセス時のほうがアクセス速度が速い。したがって、ランダムアクセスの対象となるような小さいファイルをMRAM4に保存し、シーケンシャルアクセスの対象となるような大きいファイルをNANDメモリ6に保存するようにすることで、当該小さいファイルをNANDメモリのストレージ領域61に保存する場合に比べて、情報処理装置1の全体的なデータアクセス速度を向上させることができる。
【0016】
また、NANDメモリ6は、一般に、MRAM4に比して、書き換え可能な回数が少ない。また、小さいファイルほど高い頻度でアクセスされる傾向がある。したがって、小さいファイルをNANDメモリ6ではなくMRAM4に保存するようにすることによって、NANDメモリ6に対する書き換え頻度を低減することができ、結果として情報処理装置1の記憶データの信頼性を向上させることができるようになる。
【0017】
なお、ファイルをNANDメモリ6のストレージ領域61に保存するかMRAM4のストレージ領域42に保存するかを判断するためのしきい値は、例えばページサイズをしきい値とする。また、しきい値はページサイズの自然数分の1をしきい値とするようにしてもよい。また、ブロックサイズをしきい値とするようにしてもよいし、ブロックサイズの自然数分の1をしきい値とするようにしてもよい。以降の説明では、一例として、前記しきい値はページサイズに等しいものとする。
【0018】
また、ここではサイズが固定されたストレージ領域42が予め確保されているものとして説明するが、MRAM4の記憶領域のうちの何れの位置をストレージ領域42とするかをCPU2が動的に変化させることができるようにしてもよい。
【0019】
また、本発明の実施形態においては、CPU2は、NANDメモリ6に格納されているデータにアクセスする際には、アクセス対象のデータをメインメモリ領域41に複製して、メインメモリ領域41に複製されたデータに対してアクセスし、MRAM4のストレージ領域42に格納されているデータにアクセスする際には、当該ストレージ領域42に格納されているデータに直接的にアクセスする。
【0020】
図2は、本発明の実施形態のメモリ管理の概念を説明する図である。
ここでは、一例として、情報処理装置1は、単一レベル記憶(Single-Level Store;SLS)と呼ばれるメモリ管理技術が適用されているものとする。SLSとは、1つのコンピュータが使っている記憶装置の全てを1つの仮想アドレス空間で管理する技術である。SLSによれば、メインメモリとストレージとの区別を意識しないプログラミングが可能になる。
【0021】
また、MRAM4上のデータは、単位サイズ毎に管理され、当該管理の単位もページと呼ばれる。NANDメモリ6の読み出し/書き込みの単位を第1ページ、MRAM4の管理単位を第2ページと表記して区別する。第1ページと第2ページとは同一のサイズであってもよいし異なるサイズであってもよい。ここでは、第1ページは第2ページの2倍のサイズを有するものとする。
【0022】
図2に示すように、NANDメモリ6のストレージ領域61には、第1ページの2倍のサイズを有する大データ62が格納されている。そして、当該大データ62の複製が、MRAM4のメインメモリ領域41に、第2ページのサイズを夫々有するデータ201〜204に分割されて格納されている。大データ62には、格納時に自動的に固有の仮想アドレス(論理アドレス)が割り当てられる。本図では、大データ62は、第2ページのサイズを夫々有する仮想アドレス空間100上の領域101〜104に分割されて割り当てられている。CPU2が仮想アドレス空間100上の領域101〜104をアクセス先に指定すると、実際には、CPU2は、領域101〜104に対応付けられているデータ201〜204に対してアクセスを行うことができる。なお、アクセスによってデータ201〜204が更新された場合において、データ201〜204の更新箇所を大データ62に反映せしめる手法については、本実施の形態では特に限定しない。
【0023】
一方、MRAM4のストレージ領域42に格納されている第2ページのサイズを有する小データ43は、格納時に自動的に固有の仮想アドレスが割り当てられる。本図では、小データ43は、仮想アドレス空間100上の領域105に割り当てられている。CPU2が仮想アドレス空間100上の領域105をアクセス先に指定すると、CPU2は、小データ43に対してアクセスすることができる。
【0024】
なお、データ201〜204および小データ43が格納されている夫々の物理アドレスと仮想アドレスとの対応付けは、後述するページテーブル47により管理される。
【0025】
このように、MRAM4のストレージ領域42に格納されている小データ43に直接的にアクセスできるようにすることによって、MRAM4のストレージ領域42に格納されているデータをメインメモリ領域41に複製してからアクセスする場合に比べてアクセス速度を向上させることができる。
【0026】
図1に戻り、MRAM4に確保されているシステム領域44には、OSプログラム45および管理情報46が格納されている。
【0027】
OSプログラム45は、ユーザプログラム(図示せず)が情報処理装置1のハードウェアリソースを利用できるようにするためのソフトウェア環境を提供するコンピュータプログラムである。本実施形態では、CPU2は、OSプログラム45に基づき、メモリ管理を実行する制御部として機能する。
【0028】
管理情報46は、メモリ管理のために使用される一連の情報を集めたものである。
図3は、管理情報46の構成を説明する図である。図示するように、管理情報46は、ページテーブル47と、ファイル管理テーブル48とを含んでいる。
【0029】
図4は、ページテーブル47のデータ構成例を説明する図である。ページテーブル47が参照される際には、変換対象の仮想アドレスは、MSB(Most Significant Bit)から仮想ページアドレスとページ内オフセットとに分割される。ここでのページは第2ページである。ページテーブル47を構成する夫々のエントリには、MRAM4の物理ページアドレスが記述されており、仮想ページアドレスをインデックスとして配列されている。変換対象の仮想アドレスに含まれる仮想ページアドレスをインデックスとする物理ページアドレスにページ内オフセットをマージすると、前記変換対象の仮想アドレスに対応するMRAM4の物理アドレスが得られる。
【0030】
ファイル管理テーブル48は、ファイルの名称とファイルが格納されている仮想アドレスとを対応付ける情報である。
図5−1は、ディレクトリ構成の一例を示す図であり、図5−2は、図5−1に示すディレクトリ構成例に対応するファイル管理テーブル48のデータ構成例を示す図である。図5−1に示すディレクトリ構成によれば、ディレクトリ71の下にファイル72、ファイル73およびサブディレクトリ74が存在する。ディレクトリ71にかかるファイル管理テーブル48は、図5−2に示すように、メインテーブル481とディレクトリ71に属する要素(ファイル72、ファイル73、サブディレクトリ74)毎の属性情報を記述した属性情報テーブル482とを備えている。メインテーブル481は、アドレス(ここでは仮想アドレス)が記述されるフィールドと、MRAM/NANDビットが格納されるフィールドと、ファイルのサイズが格納されるフィールドと、最終アクセスが行われた時刻が格納されるフィールドと、属性情報テーブル482へのリンクが格納されるフィールドとを含むエントリがディレクトリ71に属する要素毎に登録されて構成されている。ここで、MRAM/NANDビットは、ファイルがMRAM4のストレージ領域42に格納されているかNANDメモリ6のストレージ領域61に格納されているかを示すビットである。ここでは、ファイルがMRAM4のストレージ領域42に格納されている場合にはMRAM/NANDビットに「1」がセットされ、NANDメモリ6に格納されている場合には「0」がセットされるものとしている。
【0031】
属性情報テーブル482には、属性を示すビットの配列がユーザ番号毎に設定されている。夫々の配列は、退避の要否を示すビットと、重要データであるか否かを示すビット(削除可否情報)と、アクセス頻度が高いか否かを示すビットと、リードのみ許可されているデータであるか否かを示すビットとをこの順番で含んでいる。なお、ビットの配列はこの順番でなくてもよい。また、属性を示すビットの配列として、これらのほかに、任意のビットを追加することが可能である。例えば、書き込みの許可/不許可を示すビットや、削除の許可/不許可を示すビットや、検索の許可/不許可を示すビットを追加するようにしてもよい。
【0032】
なお、CPU2は、ストレージ領域42に格納されている小データ43にアクセスする場合と同様に、システム領域44に保存されているデータ(OSプログラム45、管理情報46)に対し、メインメモリ領域41に複製を生成することなくアクセスを行うことができる。
【0033】
次に、本発明の第1の実施形態の情報処理装置1の動作を説明する。
【0034】
図6は、第1の実施形態の情報処理装置1のファイル書き込み時の動作を説明するフローチャートである。ファイルの書き込みは、例えば情報処理装置1の外部からインターネットなどを介してファイルをダウンロードした場合などに実行される。本図に示すように、制御部としてのCPU2は、まず、書き込み対象のファイルのサイズが第1ページのサイズを超えるか否かを判定する(ステップS1)。当該ファイルのサイズが第1ページのサイズを超える場合には(ステップS1、Yes)、CPU2は、NANDコントローラ5に書き込み要求を発行することによって、当該ファイルをNANDメモリ6が備えるストレージ領域61に書き込み(ステップS2)、ページテーブル47およびファイル管理テーブル48のセットを行う(ステップS3)。ここで、CPU2は、ファイル管理テーブル48におけるMRAM/NANDビットに「0」をセットする。ステップS3の処理の後、CPU2はファイル書き込みにかかる動作を終了する。
【0035】
書き込み対象のファイルのサイズが第1ページのサイズを超えない場合には(ステップS1、No)、CPU2は、MRAM4のストレージ領域42に当該ファイルを格納できる空き領域があるか否かを判定する(ステップS4)。空き領域がある場合には(ステップS4、Yes)、CPU2は、当該ファイルをMRAM4のストレージ領域42に書き込んで(ステップS5)、ステップS3の処理を実行する。ここで、CPU2は、ファイル管理テーブル48におけるMRAM/NANDビットに「1」をセットする。
【0036】
MRAM4のストレージ領域42に書き込み対象のファイルを格納できる空き領域が無い場合には(ステップS4、No)、CPU2は、容量オーバーの旨のメッセージを出力し(ステップS6)、動作を終了する。メッセージは、例えば表示装置(図示せず)に表示出力される。ユーザは、当該メッセージを確認すると、MRAM4のストレージ領域42から不要なデータを削除するなどして空き領域を作るなどの対応を行うことができる。
【0037】
図7は、第1の実施形態の情報処理装置1のファイル読み出し時の動作を説明するフローチャートである。ファイルの読み出しの際には、まず、読み出し対象のファイルの名称と、読み出した後に当該ファイルにどのようなアクセスを行うかを示すアクセスモードとが指定される。これらの指定は、CPU2がOSプログラム45またはユーザプログラムに基づいて実行する。アクセスモードとしては、例えば、リード、ライト、消去などを指定することができる。
【0038】
図7に示すように、まず、CPU2は、指定されたアクセスモードが妥当であるか否かを判定する(ステップS11)。ステップS11の処理は、属性情報テーブル482を参照して行われる。例えば、属性情報テーブル482にリードのみ許可されている旨の属性が設定されているファイルに対してアクセスモードとしてライトが指定された場合には、CPU2は、指定されたアクセスモードは妥当でないと判定する。
【0039】
指定されたアクセスモードが妥当でない場合には(ステップS11、No)、CPU2は、エラー処理を実行して(ステップS12)、動作を終了する。エラー処理は、特定の処理に限定されない。例えば、エラー処理として、ユーザに対して警告メッセージを表示出力したり、該当ファイルを読み出そうとしたユーザプログラムを強制終了したりすることができる。
【0040】
指定されたアクセスモードが妥当である場合には(ステップS11、Yes)、CPU2は、ファイル管理テーブル48のうちのメインテーブル481を参照して、読み出し対象のファイルに対応付けられている仮想アドレス(即ち読み出し対象のファイルの格納先の仮想アドレス)を取得する(ステップS13)。そして、CPU2は、前記取得した仮想アドレスにかかるエントリがページテーブル47に登録済みであるか否かを判定する(ステップS14)。
【0041】
前記エントリがページテーブル47に登録されていない場合には(ステップS14、No)、CPU2は、メインテーブル481に記述されているMRAM/NANDビットが「0」であるか否かをさらに判定する(ステップS15)。
【0042】
MRAM/NANDビットが「0」である場合には(ステップS15、Yes)、CPU2は、読み出し対象のファイルをNANDメモリ6のストレージ領域61からMRAM4のメインメモリ領域41に複製する(ステップS16)。そして、CPU2は、ページテーブル47をセットする(ステップS17)。即ち、CPU2は、読み出し対象のファイルの複製先のMRAM4の物理アドレスと当該読み出し対象のファイルに予め割り当てられている仮想アドレスとの対応付けを登録する。その後、CPU2は、読み出し対象のファイルに対応付けられた仮想アドレスをアクセス先に指定することによって、MRAM4のメインメモリ領域41に複製された読み出し対象のファイルに対する読み出しアクセスを実行することができる(ステップS18)。ステップS18の処理の後、CPU2は、ファイル読み出しにかかる動作を終了する。
【0043】
MRAM/NANDビットが「1」である場合には(ステップS15、No)、CPU2は、ページテーブル47をセットする(ステップS17)。即ち、CPU2は、読み出し対象のファイルの複製先のMRAM4の物理アドレスと当該読み出し対象のファイルに割り当てられている仮想アドレスとの対応付けを登録する。その後、CPU2は、読み出し対象のファイルに対応付けられた仮想アドレスをアクセス先に指定することによって、MRAM4のストレージ領域42に格納された読み出し対象のファイルに対する読み出しアクセスを実行することができる(ステップS18)。
【0044】
読み出し対象のファイルに対応付けられている仮想アドレスにかかるエントリがページテーブル47に登録されている場合には(ステップS14、Yes)、CPU2は、当該仮想アドレスをアクセス先に指定することによって、メインメモリ領域41に読み出し対象のファイルの複製が格納されている場合には当該複製に、ストレージ領域42に読み出し対象のファイルが格納されている場合には当該読み出し対象のファイルに、読み出しアクセスを実行することができる(ステップS18)。
【0045】
図8は、ファイル読み出しを実行する場合のプログラム例を説明する図である。このプログラム例49に含まれる「datas=initiate(“file1”,“r”)」という記述は、「file1」という名称のファイルを「r(リードアクセスのみ許可)」というアクセスモードでMRAM4に用意して、そのアドレスを構造「datas」のアドレスとして代入する処理を示す。CPU2は、このコードを実行することによって、ステップS11からステップS18の前までの処理を実行する。「a=*datas.data1」という記述は、構造「datas」の構成要素である「datas.data1」の内容を「a」に代入する処理を示す。この処理は、「datas.data1」をロードするロード命令を含んで構成される。即ち、CPU2は、このロード命令を実行することによって、ステップS18の処理を実行する。
【0046】
以上述べたように、本発明の第1の実施形態によれば、不揮発性の第1メモリとしてのNANDメモリ6と、NANDメモリ6よりも高速な不揮発性の第2メモリとしてのMRAM4と、所定のしきい値よりも大きい第1ファイル(大データ62)をNANDメモリ6に保存し、前記しきい値よりも小さい第2ファイル(小データ43)をMRAM4に保存し、前記第1ファイルにアクセスする際には、前記第1ファイルをMRAM4に複製して、MRAM4に複製した第1ファイルにアクセスする制御部としてのCPU2と、を備える、ように構成したので、第2ファイルを、NANDメモリ6に保存する場合に比べてNANDメモリ6に対するランダムアクセスの回数を低減することができるので、データアクセスを高速化することができるようになる。
【0047】
また、CPU2は、第2ファイルにアクセスする際には、MRAM4に保存されている第2ファイルを複製することなくMRAM4上の第2ファイルにアクセスする、ように構成したので、MRAM4上の第2ファイルを複製して、当該複製した第2ファイルにアクセスする場合に比べ、効率的に第2ファイルへのアクセスを行うことができるので、データアクセスをさらに高速化することができるようになる。
【0048】
また、CPU2は、新たに第2ファイルを保存する際にMRAM4に確保されているストレージ領域42に空き領域が無い場合に、空き領域がない旨のメッセージを出力する、ように構成したので、ユーザは、ストレージ領域42から不要なファイルを削除するなどして空き領域を生成することができる。
【0049】
また、MRAM4はシステム領域44を備え、CPU2は、ページテーブル47をシステム領域44に保存して、システム領域44上でページテーブル47を更新する、ように構成したので、ページテーブル47をメインメモリ領域41に複製してから当該複製を更新したり、ページテーブル47をNANDメモリ6に保存しておいて、MRAM4にページテーブル47を複製してから当該複製を更新したりする場合に比べてページテーブル47に対するアクセス速度が向上する。
【0050】
(第2の実施形態)
第1の実施形態では、情報処理装置が具備するCPUは、MRAMのストレージ領域に新たにファイルを書き込む空き領域が無い場合には、ユーザに対して容量オーバーである旨のメッセージを出力するようにした(ステップS6)。第2の実施形態では、CPUは、新たにファイルを書き込む空き領域が無い場合に、MRAMのストレージ領域に保存されている小データをファイル毎の属性情報に基づいて選択し、選択した小データを削除またはNANDメモリに退避して、空き領域を生成するようにした。
【0051】
第2の実施形態の情報処理装置は、その構成は第1の実施形態と同等であるので、以下の説明では図1を用いて説明した構成要素および符号を用いることとし、第2の実施形態の情報処理装置の構成にかかる説明を省略する。
【0052】
図9は、第2の実施形態の情報処理装置1のファイル書き込み時の動作を説明するフローチャートである。本図に示すように、制御部としてのCPU2は、まず、書き込み対象のファイルのサイズが第1ページのサイズを超えるか否かを判定する(ステップS21)。当該ファイルのサイズが第1ページのサイズを超える場合には(ステップS21、Yes)、CPU2は、ステップS2、ステップS3と同じ処理をステップS22、ステップS23において実行し、ファイル書き込みにかかる動作を終了する。
【0053】
書き込み対象のファイルのサイズが第1ページのサイズを超えない場合には(ステップS21、No)、CPU2は、MRAM4のストレージ領域42に当該ファイルを格納できる空き領域があるか否かを判定する(ステップS24)。
【0054】
空き領域が無い場合には(ステップS24、No)、CPU2は、書き込み領域生成処理を実行する(ステップS25)。
【0055】
図10は、書き込み領域生成処理を説明するフローチャートである。書き込み領域生成処理がスタートすると、CPU2は、ファイル管理テーブル48のうちの属性情報テーブル482に設定されている重要データであるか否かを示すビット(削除可否情報)を参照して、「重要でない」旨の属性情報を有するファイルがMRAM4のストレージ領域42にあるか否かを判定する(ステップS31)。「重要でない」旨の属性情報を有するファイルがある場合には(ステップS31、Yes)、CPU2は、「重要でない」旨の属性情報を有するファイルのうちから最も古いファイルを選択する(ステップS32)。そして、CPU2は、選択したファイルを削除することによって当該ファイルが格納されている領域を解放し(ステップS33)、書き込み領域生成処理を終了する。
【0056】
一方、「重要でない」旨の属性情報を有するファイルがない場合には(ステップS31、No)、CPU2は、属性情報テーブル482を参照して、「要退避」の旨の属性情報を有するファイルから最も古いファイルを選択する(ステップS34)。そして、CPU2は、選択したファイルをNANDメモリ6のストレージ領域61に転送する(ステップS35)。そして、CPU2は、前記選択したファイルをMRAM4のストレージ領域42から削除することによって当該ファイルが格納されている領域を解放し(ステップS36)、書き込み領域生成処理を終了する。
【0057】
なお、CPU2は、ステップS33やステップS36を実行する際には、ページテーブル47における対応するエントリを無効化するとともに、削除されたファイルに割り当てられていた仮想アドレス空間100上の領域を解放する。
【0058】
図9に戻り、CPU2は、書き込み領域生成処理を実行した後、当該書き込み領域生成領域によりMRAM4のストレージ領域42に生成された空き領域に書き込み対象のファイルを書き込み(ステップS26)、ステップS23の処理を実行する。
【0059】
MRAM4のストレージ領域42に空き領域がある場合には(ステップS24、Yes)、CPU2は、ステップS26に移行して、当該空き領域に書き込み対象のファイルを書き込む。
【0060】
近年、インターネットブラウザは、同じサイトを再度閲覧する際に当該サイトの内容を高速に表示できるように、一度閲覧した内容を記憶装置にキャッシュしておく仕組みを備えている。インターネットキャッシュは、個々のファイルのサイズが典型的なNANDメモリのページサイズ(第1ページサイズ)よりも小さい場合が多いため、MRAM4のストレージ領域42に格納される可能性が高い。また、インターネットキャッシュが削除されても、対応するサイトを開いたときの表示速度が遅くなるだけで、情報処理装置1の動作に致命的な影響が及ぶことがない。したがって、CPU2は、インターネットキャッシュを「重要でない」ファイルに設定してMRAM4のストレージ領域42に保存することができる。CPU2がインターネットキャッシュを「重要でない」ファイルに設定してMRAM4のストレージ領域42に保存することによって、情報処理装置1に致命的な影響を及ぼすことなくMRAM4のストレージ領域42を効率的に使用することができるようになる。
【0061】
このように、本発明の第2の実施形態によれば、CPU2は、MRAM4のストレージ領域42に新たにファイルを書き込む空き領域が無い場合に、MRAM4のストレージ領域42に保存されているファイルから属性情報テーブル482に記述されているファイル毎の属性情報に基づいて1以上のファイルを選択し、選択したファイルを削除またはNANDメモリ6に退避して空き領域を生成するようにしたので、MRAM4のストレージ領域42を有効に活用することができるようになる。
【0062】
また、属性情報テーブル482をシステム領域44に置くようにしたので、属性情報テーブル482をメインメモリ領域41に複製してから当該複製を更新したり、属性情報テーブル482をNANDメモリ6に保存しておいて、MRAM4に属性情報テーブル482を複製してから当該複製を更新したりする場合に比べて属性情報テーブル482に対するアクセス速度が向上する。
【0063】
なお、第1および第2の実施形態の情報処理装置1はSLSに基づくメモリ管理技術が適用されているとして説明したが、SLSに基づくメモリ管理技術を適用することは本発明の実施形態にとって必須ではない。例えば、ファイル管理テーブル48におけるアドレスが記述されるフィールドにMRAM4の物理アドレスを格納するようにしておくことで、CPU2は、物理アドレスを指定してMRAM4にアクセスすることができる。
【0064】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0065】
1 情報処理装置、2 CPU、4 MRAM、5 NANDコントローラ、6 NANDメモリ、41 メインメモリ領域、42 ストレージ領域、44 システム領域、45 OSプログラム、46 管理情報、47 ページテーブル、48 ファイル管理テーブル、49 プログラム例、61 ストレージ領域、481 メインテーブル、482 属性情報テーブル。

【特許請求の範囲】
【請求項1】
不揮発性の第1メモリと、
前記第1メモリよりも高速な不揮発性の第2メモリと、
書き込み動作時に、書き込み対象ファイルのサイズと所定のしきい値を比較し、前記書き込み対象ファイルがサイズが前記所定のしきい値より大きい第1ファイルである場合には当該第1ファイルを前記第1メモリに格納し、書き込み対象ファイルがサイズが前記所定のしきい値より小さい第2ファイルである場合には当該第2ファイルを前記第2メモリに格納し、前記第1メモリに格納されている第1ファイルにアクセスする場合には、前記第1ファイルを前記第2メモリに複製して、前記第2メモリに複製された第2ファイルにアクセスする制御部と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記制御部は、前記第2ファイルにアクセスする際には、前記第2メモリに保存されている第2ファイルを複製することなく前記第2メモリ上の第2ファイルにアクセスする、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第2メモリは、メインメモリ領域とストレージ領域とを備え、
前記制御部は、第2ファイルを前記ストレージ領域に格納し、前記第1メモリ上の第1ファイルから複製した前記第1ファイルを前記メインメモリ領域に格納する、
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記制御部は、新規の第2ファイルを前記ストレージ領域に格納する際に前記ストレージ領域に当該新規の第2ファイルを保存する空き領域がない場合、空き領域がない旨のメッセージを出力する、
ことを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記制御部は、新規の第2ファイルを前記ストレージ領域に格納する際に前記ストレージ領域に当該新規の第2ファイルを保存する空き領域がない場合、前記ストレージ領域に保存されている第2ファイルから第2ファイル毎の属性情報に基づいて第2ファイルを選択し、前記選択した第2ファイルを削除または前記第1メモリに退避することによって前記新規の第2ファイルを格納する空き領域を生成する、
ことを特徴とする請求項3に記載の情報処理装置。
【請求項6】
前記属性情報は、削除可能か否かを示す削除可否情報を含み、
前記制御部は、前記第2メモリに前記削除可否情報が削除可能であることを示す第2ファイルが格納されている場合には当該第2ファイルから削除対象の第2ファイルを選択し、前記第2メモリに前記削除可否情報が削除可能であることを示す第2ファイルが格納されていない場合には前記第2メモリに格納されている第2ファイルから退避対象の第2ファイルを選択する、
ことを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記第2メモリは、システム領域をさらに備え、
前記制御部は、前記ストレージ領域に格納されている第2ファイル毎の属性情報を前記システム領域に格納する、
ことを特徴とする請求項6に記載の情報処理装置。
【請求項8】
前記第2メモリは、システム領域を備え、
前記制御部は、前記第2メモリ上の第2ファイルおよび複製された第1ファイルを夫々指定する論理アドレスと前記夫々が格納されている前記第2メモリの物理アドレスとを対応付けるページテーブルを前記システム領域に格納して、前記ページテーブルを前記メインメモリ領域に複製することなく前記ページテーブルにアクセスする、
ことを特徴とする請求項3に記載の情報処理装置。
【請求項9】
前記第1メモリは、第1ファイルが格納されるNAND型のメモリセルアレイを備え、
前記しきい値は、前記メモリセルアレイに読み書き単位サイズまたは当該読み書き単位サイズの自然数分の1または前記メモリセルアレイの消去単位サイズまたは当該消去単位サイズの自然数分の1のサイズである、
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項10】
前記制御部は、前記しきい値よりも小さいインターネットキャッシュの書き込み動作時には、当該インターネットキャッシュの削除可否情報に削除可能を設定して当該インターネットキャッシュを前記ストレージ領域に格納する、
ことを特徴とする請求項6に記載の情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5−1】
image rotate

【図5−2】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−109404(P2013−109404A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−251815(P2011−251815)
【出願日】平成23年11月17日(2011.11.17)
【出願人】(000003078)株式会社東芝 (54,554)