(57)【要約】【課題】高速なデータアクセスを行うことができるようにすること。【解決手段】本発明の一つの実施形態によれば、情報処理装置は、不揮発性の第１メモリと、前記第１メモリよりも高速な不揮発性の第２メモリと、制御部とを備えている。前記制御部は、書き込み動作時に、書き込み対象ファイルのサイズと所定のしきい値を比較し、前記書き込み対象ファイルがサイズが前記所定のしきい値より大きい第１ファイルである場合には当該第１ファイルを前記第１メモリに格納し、書き込み対象ファイルがサイズが前記所定のしきい値より小さい第２ファイルである場合には当該第２ファイルを前記第２メモリに格納し、前記第１メモリに格納されている第１ファイルにアクセスする場合には、前記第１ファイルを前記第２メモリに複製して、前記第２メモリに複製された第２ファイルにアクセスする。【選択図】図１
2013109404.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性の第１メモリと、
前記第１メモリよりも高速な不揮発性の第２メモリと、
書き込み動作時に、書き込み対象ファイルのサイズと所定のしきい値を比較し、前記書き込み対象ファイルがサイズが前記所定のしきい値より大きい第１ファイルである場合には当該第１ファイルを前記第１メモリに格納し、書き込み対象ファイルがサイズが前記所定のしきい値より小さい第２ファイルである場合には当該第２ファイルを前記第２メモリに格納し、前記第１メモリに格納されている第１ファイルにアクセスする場合には、前記第１ファイルを前記第２メモリに複製して、前記第２メモリに複製された第２ファイルにアクセスする制御部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記制御部は、前記第２ファイルにアクセスする際には、前記第２メモリに保存されている第２ファイルを複製することなく前記第２メモリ上の第２ファイルにアクセスする、
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２メモリは、メインメモリ領域とストレージ領域とを備え、
前記制御部は、第２ファイルを前記ストレージ領域に格納し、前記第１メモリ上の第１ファイルから複製した前記第１ファイルを前記メインメモリ領域に格納する、
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御部は、新規の第２ファイルを前記ストレージ領域に格納する際に前記ストレージ領域に当該新規の第２ファイルを保存する空き領域がない場合、空き領域がない旨のメッセージを出力する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記制御部は、新規の第２ファイルを前記ストレージ領域に格納する際に前記ストレージ領域に当該新規の第２ファイルを保存する空き領域がない場合、前記ストレージ領域に保存されている第２ファイルから第２ファイル毎の属性情報に基づいて第２ファイルを選択し、前記選択した第２ファイルを削除または前記第１メモリに退避することによって前記新規の第２ファイルを格納する空き領域を生成する、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記属性情報は、削除可能か否かを示す削除可否情報を含み、
前記制御部は、前記第２メモリに前記削除可否情報が削除可能であることを示す第２ファイルが格納されている場合には当該第２ファイルから削除対象の第２ファイルを選択し、前記第２メモリに前記削除可否情報が削除可能であることを示す第２ファイルが格納されていない場合には前記第２メモリに格納されている第２ファイルから退避対象の第２ファイルを選択する、
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記第２メモリは、システム領域をさらに備え、
前記制御部は、前記ストレージ領域に格納されている第２ファイル毎の属性情報を前記システム領域に格納する、
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記第２メモリは、システム領域を備え、
前記制御部は、前記第２メモリ上の第２ファイルおよび複製された第１ファイルを夫々指定する論理アドレスと前記夫々が格納されている前記第２メモリの物理アドレスとを対応付けるページテーブルを前記システム領域に格納して、前記ページテーブルを前記メインメモリ領域に複製することなく前記ページテーブルにアクセスする、
ことを特徴とする請求項３に記載の情報処理装置。
【請求項９】
前記第１メモリは、第１ファイルが格納されるＮＡＮＤ型のメモリセルアレイを備え、
前記しきい値は、前記メモリセルアレイに読み書き単位サイズまたは当該読み書き単位サイズの自然数分の１または前記メモリセルアレイの消去単位サイズまたは当該消去単位サイズの自然数分の１のサイズである、
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項１０】
前記制御部は、前記しきい値よりも小さいインターネットキャッシュの書き込み動作時には、当該インターネットキャッシュの削除可否情報に削除可能を設定して当該インターネットキャッシュを前記ストレージ領域に格納する、
ことを特徴とする請求項６に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【０００２】
フラッシュ型ＥＥＰＲＯＭメモリと強誘電体メモリとを備えるメモリシステムにおいて、フラッシュ型ＥＥＰＲＯＭメモリ上にデータを記憶し、強誘電体メモリ上にルート情報、ディレクトリ情報等を記憶する技術が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３３８３７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の一つの実施形態は、高速なデータアクセスを行うことができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一つの実施形態によれば、情報処理装置は、不揮発性の第１メモリと、前記第１メモリよりも高速な不揮発性の第２メモリと、制御部とを備えている。前記制御部は、書き込み動作時に、書き込み対象ファイルのサイズと所定のしきい値を比較し、前記書き込み対象ファイルがサイズが前記所定のしきい値より大きい第１ファイルである場合には当該第１ファイルを前記第１メモリに格納し、書き込み対象ファイルがサイズが前記所定のしきい値より小さい第２ファイルである場合には当該第２ファイルを前記第２メモリに格納し、前記第１メモリに格納されている第１ファイルにアクセスする場合には、前記第１ファイルを前記第２メモリに複製して、前記第２メモリに複製された第２ファイルにアクセスする。
【図面の簡単な説明】
【０００６】
【図１】図１は、本発明の第１の実施形態の情報処理装置の構成を説明する図である。
【図２】図２は、本発明の実施形態のメモリ管理の概念を説明する図である。
【図３】図３は、管理情報の構成を説明する図である。
【図４】図４は、ページテーブルのデータ構成例を説明する図である。
【図５−１】図５−１は、ディレクトリ構成の一例を示す図である。
【図５−２】図５−２は、ファイル管理テーブルのデータ構成例を示す図である。
【図６】図６は、第１の実施形態の情報処理装置のファイル書き込み時の動作を説明するフローチャートである。
【図７】図７は、第１の実施形態の情報処理装置のファイル読み出し時の動作を説明するフローチャートである。
【図８】図８は、ファイル読み出しを実行する場合のプログラム例を説明する図である。
【図９】図９は、第２の実施形態の情報処理装置のファイル書き込み時の動作を説明するフローチャートである。
【図１０】図１０は、書き込み領域生成処理を説明するフローチャートである。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかる情報処理装置を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
図１は、本発明の第１の実施形態の情報処理装置の構成を説明する図である。図示するように、情報処理装置１は、ＣＰＵ２、ＤＭＡ（Direct  Memory  Access  Controller）３、ＭＲＡＭ（Magnetoresistive  Random  Access  Memory）４、ＮＡＮＤコントローラ５およびＮＡＮＤメモリ６を備えている。本発明の第１の実施形態の情報処理装置１は、サーバ、コンピュータ端末、組み込み機器の別を問わずどのようなコンピュータであっても実現可能である。
【０００９】
ＣＰＵ２は、後述のＯＳ（Operating  System）プログラム４５を実行することによって、本発明の実施形態の制御部として機能する。
【００１０】
ＤＭＡ３は、ＣＰＵ２からの指令に基づいて、ＭＲＡＭ４とＮＡＮＤコントローラ５との間のデータ転送を実行する。なお、以降、煩雑を避けるために、データ転送の動作主体はＣＰＵ２であるとして説明する。
【００１１】
ＮＡＮＤコントローラ５は、ＮＡＮＤメモリ６を制御して、ＤＭＡ３から受信した読み出し要求に対応してデータをＮＡＮＤメモリ６から読み出したり、ＤＭＡ３から受信した書き込み要求に対応してデータをＮＡＮＤメモリ６に書き込んだりする。
【００１２】
ＮＡＮＤメモリ６は、ＮＡＮＤ型のメモリセルアレイからなるストレージ領域６１を有しており、不揮発性の補助記憶装置として機能する。なお、本発明の実施形態の情報処理装置１の補助記憶装置として、ＮＡＮＤメモリ６のほかにハードディスクドライブ、ＮＯＲ型のメモリセルアレイを有する半導体記憶装置など、他の不揮発性記憶装置を採用することができる。
【００１３】
ＭＲＡＭ４は、ＮＡＮＤメモリ６よりもアクセススピードが高速な不揮発性の記憶装置である。ＭＲＡＭ４の記憶領域には、メインメモリ領域４１と、ストレージ領域４２と、システム領域４４とが確保されている。なお、補助記憶装置よりも高速な不揮発性の記憶装置として、ＭＲＡＭ４のほかに、ＦｅＲＡＭ（Ferroelectric  Random  Access  Memory）など他の不揮発性記憶装置を採用することができる。
【００１４】
本発明の実施形態においては、ＣＰＵ２は、あるファイルを保存する際に、当該保存対象のファイルのサイズを所定のしきい値と比較して、しきい値よりも大きなファイルをＮＡＮＤメモリ６が備えるストレージ領域に、しきい値よりも小さいファイルをＭＲＡＭ４に確保されたストレージ領域に、振り分けて格納する。言い換えると、ＣＰＵ２は、しきい値よりも大きいファイル（大データ６２）をＮＡＮＤメモリ６に保存し、しきい値よりも小さいファイル（小データ４３）をＭＲＡＭ４に保存する。本図は、ストレージ領域６１には大データ６２が、ストレージ領域４２には小データ４３が、夫々格納されていることを示している。なお、ファイルとは、ストレージ中で名前などの識別子によって区別される一塊のデータをいう。
【００１５】
一般に、ＮＡＮＤメモリ６は、ページと呼ばれる単位サイズ毎に読み出し／書き込みが実行され、ページよりも大きいブロックと呼ばれる単位サイズ毎にデータの消去が実行される。また、ＮＡＮＤメモリ６に対するページ当たりのアクセス速度は、単一のページに対してアクセスされる場合よりも、アドレスが連続する複数のページに連続的にアクセス（シーケンシャルアクセス）されるほうが速い。即ち、ランダムアクセス時よりもシーケンシャルアクセス時のほうがアクセス速度が速い。したがって、ランダムアクセスの対象となるような小さいファイルをＭＲＡＭ４に保存し、シーケンシャルアクセスの対象となるような大きいファイルをＮＡＮＤメモリ６に保存するようにすることで、当該小さいファイルをＮＡＮＤメモリのストレージ領域６１に保存する場合に比べて、情報処理装置１の全体的なデータアクセス速度を向上させることができる。
【００１６】
また、ＮＡＮＤメモリ６は、一般に、ＭＲＡＭ４に比して、書き換え可能な回数が少ない。また、小さいファイルほど高い頻度でアクセスされる傾向がある。したがって、小さいファイルをＮＡＮＤメモリ６ではなくＭＲＡＭ４に保存するようにすることによって、ＮＡＮＤメモリ６に対する書き換え頻度を低減することができ、結果として情報処理装置１の記憶データの信頼性を向上させることができるようになる。
【００１７】
なお、ファイルをＮＡＮＤメモリ６のストレージ領域６１に保存するかＭＲＡＭ４のストレージ領域４２に保存するかを判断するためのしきい値は、例えばページサイズをしきい値とする。また、しきい値はページサイズの自然数分の１をしきい値とするようにしてもよい。また、ブロックサイズをしきい値とするようにしてもよいし、ブロックサイズの自然数分の１をしきい値とするようにしてもよい。以降の説明では、一例として、前記しきい値はページサイズに等しいものとする。
【００１８】
また、ここではサイズが固定されたストレージ領域４２が予め確保されているものとして説明するが、ＭＲＡＭ４の記憶領域のうちの何れの位置をストレージ領域４２とするかをＣＰＵ２が動的に変化させることができるようにしてもよい。
【００１９】
また、本発明の実施形態においては、ＣＰＵ２は、ＮＡＮＤメモリ６に格納されているデータにアクセスする際には、アクセス対象のデータをメインメモリ領域４１に複製して、メインメモリ領域４１に複製されたデータに対してアクセスし、ＭＲＡＭ４のストレージ領域４２に格納されているデータにアクセスする際には、当該ストレージ領域４２に格納されているデータに直接的にアクセスする。
【００２０】
図２は、本発明の実施形態のメモリ管理の概念を説明する図である。
ここでは、一例として、情報処理装置１は、単一レベル記憶（Single-Level  Store；ＳＬＳ）と呼ばれるメモリ管理技術が適用されているものとする。ＳＬＳとは、１つのコンピュータが使っている記憶装置の全てを１つの仮想アドレス空間で管理する技術である。ＳＬＳによれば、メインメモリとストレージとの区別を意識しないプログラミングが可能になる。
【００２１】
また、ＭＲＡＭ４上のデータは、単位サイズ毎に管理され、当該管理の単位もページと呼ばれる。ＮＡＮＤメモリ６の読み出し／書き込みの単位を第１ページ、ＭＲＡＭ４の管理単位を第２ページと表記して区別する。第１ページと第２ページとは同一のサイズであってもよいし異なるサイズであってもよい。ここでは、第１ページは第２ページの２倍のサイズを有するものとする。
【００２２】
図２に示すように、ＮＡＮＤメモリ６のストレージ領域６１には、第１ページの２倍のサイズを有する大データ６２が格納されている。そして、当該大データ６２の複製が、ＭＲＡＭ４のメインメモリ領域４１に、第２ページのサイズを夫々有するデータ２０１〜２０４に分割されて格納されている。大データ６２には、格納時に自動的に固有の仮想アドレス（論理アドレス）が割り当てられる。本図では、大データ６２は、第２ページのサイズを夫々有する仮想アドレス空間１００上の領域１０１〜１０４に分割されて割り当てられている。ＣＰＵ２が仮想アドレス空間１００上の領域１０１〜１０４をアクセス先に指定すると、実際には、ＣＰＵ２は、領域１０１〜１０４に対応付けられているデータ２０１〜２０４に対してアクセスを行うことができる。なお、アクセスによってデータ２０１〜２０４が更新された場合において、データ２０１〜２０４の更新箇所を大データ６２に反映せしめる手法については、本実施の形態では特に限定しない。
【００２３】
一方、ＭＲＡＭ４のストレージ領域４２に格納されている第２ページのサイズを有する小データ４３は、格納時に自動的に固有の仮想アドレスが割り当てられる。本図では、小データ４３は、仮想アドレス空間１００上の領域１０５に割り当てられている。ＣＰＵ２が仮想アドレス空間１００上の領域１０５をアクセス先に指定すると、ＣＰＵ２は、小データ４３に対してアクセスすることができる。
【００２４】
なお、データ２０１〜２０４および小データ４３が格納されている夫々の物理アドレスと仮想アドレスとの対応付けは、後述するページテーブル４７により管理される。
【００２５】
このように、ＭＲＡＭ４のストレージ領域４２に格納されている小データ４３に直接的にアクセスできるようにすることによって、ＭＲＡＭ４のストレージ領域４２に格納されているデータをメインメモリ領域４１に複製してからアクセスする場合に比べてアクセス速度を向上させることができる。
【００２６】
図１に戻り、ＭＲＡＭ４に確保されているシステム領域４４には、ＯＳプログラム４５および管理情報４６が格納されている。
【００２７】
ＯＳプログラム４５は、ユーザプログラム（図示せず）が情報処理装置１のハードウェアリソースを利用できるようにするためのソフトウェア環境を提供するコンピュータプログラムである。本実施形態では、ＣＰＵ２は、ＯＳプログラム４５に基づき、メモリ管理を実行する制御部として機能する。
【００２８】
管理情報４６は、メモリ管理のために使用される一連の情報を集めたものである。
図３は、管理情報４６の構成を説明する図である。図示するように、管理情報４６は、ページテーブル４７と、ファイル管理テーブル４８とを含んでいる。
【００２９】
図４は、ページテーブル４７のデータ構成例を説明する図である。ページテーブル４７が参照される際には、変換対象の仮想アドレスは、ＭＳＢ（Most  Significant  Bit）から仮想ページアドレスとページ内オフセットとに分割される。ここでのページは第２ページである。ページテーブル４７を構成する夫々のエントリには、ＭＲＡＭ４の物理ページアドレスが記述されており、仮想ページアドレスをインデックスとして配列されている。変換対象の仮想アドレスに含まれる仮想ページアドレスをインデックスとする物理ページアドレスにページ内オフセットをマージすると、前記変換対象の仮想アドレスに対応するＭＲＡＭ４の物理アドレスが得られる。
【００３０】
ファイル管理テーブル４８は、ファイルの名称とファイルが格納されている仮想アドレスとを対応付ける情報である。
図５−１は、ディレクトリ構成の一例を示す図であり、図５−２は、図５−１に示すディレクトリ構成例に対応するファイル管理テーブル４８のデータ構成例を示す図である。図５−１に示すディレクトリ構成によれば、ディレクトリ７１の下にファイル７２、ファイル７３およびサブディレクトリ７４が存在する。ディレクトリ７１にかかるファイル管理テーブル４８は、図５−２に示すように、メインテーブル４８１とディレクトリ７１に属する要素（ファイル７２、ファイル７３、サブディレクトリ７４）毎の属性情報を記述した属性情報テーブル４８２とを備えている。メインテーブル４８１は、アドレス（ここでは仮想アドレス）が記述されるフィールドと、ＭＲＡＭ／ＮＡＮＤビットが格納されるフィールドと、ファイルのサイズが格納されるフィールドと、最終アクセスが行われた時刻が格納されるフィールドと、属性情報テーブル４８２へのリンクが格納されるフィールドとを含むエントリがディレクトリ７１に属する要素毎に登録されて構成されている。ここで、ＭＲＡＭ／ＮＡＮＤビットは、ファイルがＭＲＡＭ４のストレージ領域４２に格納されているかＮＡＮＤメモリ６のストレージ領域６１に格納されているかを示すビットである。ここでは、ファイルがＭＲＡＭ４のストレージ領域４２に格納されている場合にはＭＲＡＭ／ＮＡＮＤビットに「１」がセットされ、ＮＡＮＤメモリ６に格納されている場合には「０」がセットされるものとしている。
【００３１】
属性情報テーブル４８２には、属性を示すビットの配列がユーザ番号毎に設定されている。夫々の配列は、退避の要否を示すビットと、重要データであるか否かを示すビット（削除可否情報）と、アクセス頻度が高いか否かを示すビットと、リードのみ許可されているデータであるか否かを示すビットとをこの順番で含んでいる。なお、ビットの配列はこの順番でなくてもよい。また、属性を示すビットの配列として、これらのほかに、任意のビットを追加することが可能である。例えば、書き込みの許可／不許可を示すビットや、削除の許可／不許可を示すビットや、検索の許可／不許可を示すビットを追加するようにしてもよい。
【００３２】
なお、ＣＰＵ２は、ストレージ領域４２に格納されている小データ４３にアクセスする場合と同様に、システム領域４４に保存されているデータ（ＯＳプログラム４５、管理情報４６）に対し、メインメモリ領域４１に複製を生成することなくアクセスを行うことができる。
【００３３】
次に、本発明の第１の実施形態の情報処理装置１の動作を説明する。
【００３４】
図６は、第１の実施形態の情報処理装置１のファイル書き込み時の動作を説明するフローチャートである。ファイルの書き込みは、例えば情報処理装置１の外部からインターネットなどを介してファイルをダウンロードした場合などに実行される。本図に示すように、制御部としてのＣＰＵ２は、まず、書き込み対象のファイルのサイズが第１ページのサイズを超えるか否かを判定する（ステップＳ１）。当該ファイルのサイズが第１ページのサイズを超える場合には（ステップＳ１、Ｙｅｓ）、ＣＰＵ２は、ＮＡＮＤコントローラ５に書き込み要求を発行することによって、当該ファイルをＮＡＮＤメモリ６が備えるストレージ領域６１に書き込み（ステップＳ２）、ページテーブル４７およびファイル管理テーブル４８のセットを行う（ステップＳ３）。ここで、ＣＰＵ２は、ファイル管理テーブル４８におけるＭＲＡＭ／ＮＡＮＤビットに「０」をセットする。ステップＳ３の処理の後、ＣＰＵ２はファイル書き込みにかかる動作を終了する。
【００３５】
書き込み対象のファイルのサイズが第１ページのサイズを超えない場合には（ステップＳ１、Ｎｏ）、ＣＰＵ２は、ＭＲＡＭ４のストレージ領域４２に当該ファイルを格納できる空き領域があるか否かを判定する（ステップＳ４）。空き領域がある場合には（ステップＳ４、Ｙｅｓ）、ＣＰＵ２は、当該ファイルをＭＲＡＭ４のストレージ領域４２に書き込んで（ステップＳ５）、ステップＳ３の処理を実行する。ここで、ＣＰＵ２は、ファイル管理テーブル４８におけるＭＲＡＭ／ＮＡＮＤビットに「１」をセットする。
【００３６】
ＭＲＡＭ４のストレージ領域４２に書き込み対象のファイルを格納できる空き領域が無い場合には（ステップＳ４、Ｎｏ）、ＣＰＵ２は、容量オーバーの旨のメッセージを出力し（ステップＳ６）、動作を終了する。メッセージは、例えば表示装置（図示せず）に表示出力される。ユーザは、当該メッセージを確認すると、ＭＲＡＭ４のストレージ領域４２から不要なデータを削除するなどして空き領域を作るなどの対応を行うことができる。
【００３７】
図７は、第１の実施形態の情報処理装置１のファイル読み出し時の動作を説明するフローチャートである。ファイルの読み出しの際には、まず、読み出し対象のファイルの名称と、読み出した後に当該ファイルにどのようなアクセスを行うかを示すアクセスモードとが指定される。これらの指定は、ＣＰＵ２がＯＳプログラム４５またはユーザプログラムに基づいて実行する。アクセスモードとしては、例えば、リード、ライト、消去などを指定することができる。
【００３８】
図７に示すように、まず、ＣＰＵ２は、指定されたアクセスモードが妥当であるか否かを判定する（ステップＳ１１）。ステップＳ１１の処理は、属性情報テーブル４８２を参照して行われる。例えば、属性情報テーブル４８２にリードのみ許可されている旨の属性が設定されているファイルに対してアクセスモードとしてライトが指定された場合には、ＣＰＵ２は、指定されたアクセスモードは妥当でないと判定する。
【００３９】
指定されたアクセスモードが妥当でない場合には（ステップＳ１１、Ｎｏ）、ＣＰＵ２は、エラー処理を実行して（ステップＳ１２）、動作を終了する。エラー処理は、特定の処理に限定されない。例えば、エラー処理として、ユーザに対して警告メッセージを表示出力したり、該当ファイルを読み出そうとしたユーザプログラムを強制終了したりすることができる。
【００４０】
指定されたアクセスモードが妥当である場合には（ステップＳ１１、Ｙｅｓ）、ＣＰＵ２は、ファイル管理テーブル４８のうちのメインテーブル４８１を参照して、読み出し対象のファイルに対応付けられている仮想アドレス（即ち読み出し対象のファイルの格納先の仮想アドレス）を取得する（ステップＳ１３）。そして、ＣＰＵ２は、前記取得した仮想アドレスにかかるエントリがページテーブル４７に登録済みであるか否かを判定する（ステップＳ１４）。
【００４１】
前記エントリがページテーブル４７に登録されていない場合には（ステップＳ１４、Ｎｏ）、ＣＰＵ２は、メインテーブル４８１に記述されているＭＲＡＭ／ＮＡＮＤビットが「０」であるか否かをさらに判定する（ステップＳ１５）。
【００４２】
ＭＲＡＭ／ＮＡＮＤビットが「０」である場合には（ステップＳ１５、Ｙｅｓ）、ＣＰＵ２は、読み出し対象のファイルをＮＡＮＤメモリ６のストレージ領域６１からＭＲＡＭ４のメインメモリ領域４１に複製する（ステップＳ１６）。そして、ＣＰＵ２は、ページテーブル４７をセットする（ステップＳ１７）。即ち、ＣＰＵ２は、読み出し対象のファイルの複製先のＭＲＡＭ４の物理アドレスと当該読み出し対象のファイルに予め割り当てられている仮想アドレスとの対応付けを登録する。その後、ＣＰＵ２は、読み出し対象のファイルに対応付けられた仮想アドレスをアクセス先に指定することによって、ＭＲＡＭ４のメインメモリ領域４１に複製された読み出し対象のファイルに対する読み出しアクセスを実行することができる（ステップＳ１８）。ステップＳ１８の処理の後、ＣＰＵ２は、ファイル読み出しにかかる動作を終了する。
【００４３】
ＭＲＡＭ／ＮＡＮＤビットが「１」である場合には（ステップＳ１５、Ｎｏ）、ＣＰＵ２は、ページテーブル４７をセットする（ステップＳ１７）。即ち、ＣＰＵ２は、読み出し対象のファイルの複製先のＭＲＡＭ４の物理アドレスと当該読み出し対象のファイルに割り当てられている仮想アドレスとの対応付けを登録する。その後、ＣＰＵ２は、読み出し対象のファイルに対応付けられた仮想アドレスをアクセス先に指定することによって、ＭＲＡＭ４のストレージ領域４２に格納された読み出し対象のファイルに対する読み出しアクセスを実行することができる（ステップＳ１８）。
【００４４】
読み出し対象のファイルに対応付けられている仮想アドレスにかかるエントリがページテーブル４７に登録されている場合には（ステップＳ１４、Ｙｅｓ）、ＣＰＵ２は、当該仮想アドレスをアクセス先に指定することによって、メインメモリ領域４１に読み出し対象のファイルの複製が格納されている場合には当該複製に、ストレージ領域４２に読み出し対象のファイルが格納されている場合には当該読み出し対象のファイルに、読み出しアクセスを実行することができる（ステップＳ１８）。
【００４５】
図８は、ファイル読み出しを実行する場合のプログラム例を説明する図である。このプログラム例４９に含まれる「datas=initiate(“file1”,“r”)」という記述は、「file1」という名称のファイルを「r（リードアクセスのみ許可）」というアクセスモードでＭＲＡＭ４に用意して、そのアドレスを構造「datas」のアドレスとして代入する処理を示す。ＣＰＵ２は、このコードを実行することによって、ステップＳ１１からステップＳ１８の前までの処理を実行する。「a=*datas.data1」という記述は、構造「datas」の構成要素である「datas.data1」の内容を「a」に代入する処理を示す。この処理は、「datas.data1」をロードするロード命令を含んで構成される。即ち、ＣＰＵ２は、このロード命令を実行することによって、ステップＳ１８の処理を実行する。
【００４６】
以上述べたように、本発明の第１の実施形態によれば、不揮発性の第１メモリとしてのＮＡＮＤメモリ６と、ＮＡＮＤメモリ６よりも高速な不揮発性の第２メモリとしてのＭＲＡＭ４と、所定のしきい値よりも大きい第１ファイル（大データ６２）をＮＡＮＤメモリ６に保存し、前記しきい値よりも小さい第２ファイル（小データ４３）をＭＲＡＭ４に保存し、前記第１ファイルにアクセスする際には、前記第１ファイルをＭＲＡＭ４に複製して、ＭＲＡＭ４に複製した第１ファイルにアクセスする制御部としてのＣＰＵ２と、を備える、ように構成したので、第２ファイルを、ＮＡＮＤメモリ６に保存する場合に比べてＮＡＮＤメモリ６に対するランダムアクセスの回数を低減することができるので、データアクセスを高速化することができるようになる。
【００４７】
また、ＣＰＵ２は、第２ファイルにアクセスする際には、ＭＲＡＭ４に保存されている第２ファイルを複製することなくＭＲＡＭ４上の第２ファイルにアクセスする、ように構成したので、ＭＲＡＭ４上の第２ファイルを複製して、当該複製した第２ファイルにアクセスする場合に比べ、効率的に第２ファイルへのアクセスを行うことができるので、データアクセスをさらに高速化することができるようになる。
【００４８】
また、ＣＰＵ２は、新たに第２ファイルを保存する際にＭＲＡＭ４に確保されているストレージ領域４２に空き領域が無い場合に、空き領域がない旨のメッセージを出力する、ように構成したので、ユーザは、ストレージ領域４２から不要なファイルを削除するなどして空き領域を生成することができる。
【００４９】
また、ＭＲＡＭ４はシステム領域４４を備え、ＣＰＵ２は、ページテーブル４７をシステム領域４４に保存して、システム領域４４上でページテーブル４７を更新する、ように構成したので、ページテーブル４７をメインメモリ領域４１に複製してから当該複製を更新したり、ページテーブル４７をＮＡＮＤメモリ６に保存しておいて、ＭＲＡＭ４にページテーブル４７を複製してから当該複製を更新したりする場合に比べてページテーブル４７に対するアクセス速度が向上する。
【００５０】
（第２の実施形態）
第１の実施形態では、情報処理装置が具備するＣＰＵは、ＭＲＡＭのストレージ領域に新たにファイルを書き込む空き領域が無い場合には、ユーザに対して容量オーバーである旨のメッセージを出力するようにした（ステップＳ６）。第２の実施形態では、ＣＰＵは、新たにファイルを書き込む空き領域が無い場合に、ＭＲＡＭのストレージ領域に保存されている小データをファイル毎の属性情報に基づいて選択し、選択した小データを削除またはＮＡＮＤメモリに退避して、空き領域を生成するようにした。
【００５１】
第２の実施形態の情報処理装置は、その構成は第１の実施形態と同等であるので、以下の説明では図１を用いて説明した構成要素および符号を用いることとし、第２の実施形態の情報処理装置の構成にかかる説明を省略する。
【００５２】
図９は、第２の実施形態の情報処理装置１のファイル書き込み時の動作を説明するフローチャートである。本図に示すように、制御部としてのＣＰＵ２は、まず、書き込み対象のファイルのサイズが第１ページのサイズを超えるか否かを判定する（ステップＳ２１）。当該ファイルのサイズが第１ページのサイズを超える場合には（ステップＳ２１、Ｙｅｓ）、ＣＰＵ２は、ステップＳ２、ステップＳ３と同じ処理をステップＳ２２、ステップＳ２３において実行し、ファイル書き込みにかかる動作を終了する。
【００５３】
書き込み対象のファイルのサイズが第１ページのサイズを超えない場合には（ステップＳ２１、Ｎｏ）、ＣＰＵ２は、ＭＲＡＭ４のストレージ領域４２に当該ファイルを格納できる空き領域があるか否かを判定する（ステップＳ２４）。
【００５４】
空き領域が無い場合には（ステップＳ２４、Ｎｏ）、ＣＰＵ２は、書き込み領域生成処理を実行する（ステップＳ２５）。
【００５５】
図１０は、書き込み領域生成処理を説明するフローチャートである。書き込み領域生成処理がスタートすると、ＣＰＵ２は、ファイル管理テーブル４８のうちの属性情報テーブル４８２に設定されている重要データであるか否かを示すビット（削除可否情報）を参照して、「重要でない」旨の属性情報を有するファイルがＭＲＡＭ４のストレージ領域４２にあるか否かを判定する（ステップＳ３１）。「重要でない」旨の属性情報を有するファイルがある場合には（ステップＳ３１、Ｙｅｓ）、ＣＰＵ２は、「重要でない」旨の属性情報を有するファイルのうちから最も古いファイルを選択する（ステップＳ３２）。そして、ＣＰＵ２は、選択したファイルを削除することによって当該ファイルが格納されている領域を解放し（ステップＳ３３）、書き込み領域生成処理を終了する。
【００５６】
一方、「重要でない」旨の属性情報を有するファイルがない場合には（ステップＳ３１、Ｎｏ）、ＣＰＵ２は、属性情報テーブル４８２を参照して、「要退避」の旨の属性情報を有するファイルから最も古いファイルを選択する（ステップＳ３４）。そして、ＣＰＵ２は、選択したファイルをＮＡＮＤメモリ６のストレージ領域６１に転送する（ステップＳ３５）。そして、ＣＰＵ２は、前記選択したファイルをＭＲＡＭ４のストレージ領域４２から削除することによって当該ファイルが格納されている領域を解放し（ステップＳ３６）、書き込み領域生成処理を終了する。
【００５７】
なお、ＣＰＵ２は、ステップＳ３３やステップＳ３６を実行する際には、ページテーブル４７における対応するエントリを無効化するとともに、削除されたファイルに割り当てられていた仮想アドレス空間１００上の領域を解放する。
【００５８】
図９に戻り、ＣＰＵ２は、書き込み領域生成処理を実行した後、当該書き込み領域生成領域によりＭＲＡＭ４のストレージ領域４２に生成された空き領域に書き込み対象のファイルを書き込み（ステップＳ２６）、ステップＳ２３の処理を実行する。
【００５９】
ＭＲＡＭ４のストレージ領域４２に空き領域がある場合には（ステップＳ２４、Ｙｅｓ）、ＣＰＵ２は、ステップＳ２６に移行して、当該空き領域に書き込み対象のファイルを書き込む。
【００６０】
近年、インターネットブラウザは、同じサイトを再度閲覧する際に当該サイトの内容を高速に表示できるように、一度閲覧した内容を記憶装置にキャッシュしておく仕組みを備えている。インターネットキャッシュは、個々のファイルのサイズが典型的なＮＡＮＤメモリのページサイズ（第１ページサイズ）よりも小さい場合が多いため、ＭＲＡＭ４のストレージ領域４２に格納される可能性が高い。また、インターネットキャッシュが削除されても、対応するサイトを開いたときの表示速度が遅くなるだけで、情報処理装置１の動作に致命的な影響が及ぶことがない。したがって、ＣＰＵ２は、インターネットキャッシュを「重要でない」ファイルに設定してＭＲＡＭ４のストレージ領域４２に保存することができる。ＣＰＵ２がインターネットキャッシュを「重要でない」ファイルに設定してＭＲＡＭ４のストレージ領域４２に保存することによって、情報処理装置１に致命的な影響を及ぼすことなくＭＲＡＭ４のストレージ領域４２を効率的に使用することができるようになる。
【００６１】
このように、本発明の第２の実施形態によれば、ＣＰＵ２は、ＭＲＡＭ４のストレージ領域４２に新たにファイルを書き込む空き領域が無い場合に、ＭＲＡＭ４のストレージ領域４２に保存されているファイルから属性情報テーブル４８２に記述されているファイル毎の属性情報に基づいて１以上のファイルを選択し、選択したファイルを削除またはＮＡＮＤメモリ６に退避して空き領域を生成するようにしたので、ＭＲＡＭ４のストレージ領域４２を有効に活用することができるようになる。
【００６２】
また、属性情報テーブル４８２をシステム領域４４に置くようにしたので、属性情報テーブル４８２をメインメモリ領域４１に複製してから当該複製を更新したり、属性情報テーブル４８２をＮＡＮＤメモリ６に保存しておいて、ＭＲＡＭ４に属性情報テーブル４８２を複製してから当該複製を更新したりする場合に比べて属性情報テーブル４８２に対するアクセス速度が向上する。
【００６３】
なお、第１および第２の実施形態の情報処理装置１はＳＬＳに基づくメモリ管理技術が適用されているとして説明したが、ＳＬＳに基づくメモリ管理技術を適用することは本発明の実施形態にとって必須ではない。例えば、ファイル管理テーブル４８におけるアドレスが記述されるフィールドにＭＲＡＭ４の物理アドレスを格納するようにしておくことで、ＣＰＵ２は、物理アドレスを指定してＭＲＡＭ４にアクセスすることができる。
【００６４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６５】
１  情報処理装置、２  ＣＰＵ、４  ＭＲＡＭ、５  ＮＡＮＤコントローラ、６  ＮＡＮＤメモリ、４１  メインメモリ領域、４２  ストレージ領域、４４  システム領域、４５  ＯＳプログラム、４６  管理情報、４７  ページテーブル、４８  ファイル管理テーブル、４９  プログラム例、６１  ストレージ領域、４８１  メインテーブル、４８２  属性情報テーブル。
【図１】
2013109404.tif 000003
【図２】
2013109404.tif 000004
【図３】
2013109404.tif 000005
【図４】
2013109404.tif 000006
【図５−１】
2013109404.tif 000007
【図５−２】
2013109404.tif 000008
【図６】
2013109404.tif 000009
【図７】
2013109404.tif 000010
【図８】
2013109404.tif 000011
【図９】
2013109404.tif 000012
【図１０】
2013109404.tif 000013