(57)【特許請求の範囲】
【請求項１】
ファイルアクセス方法であって、前記方法はファイルシステムがメモリに基づいて設けられる記憶装置に適用され、前記メモリは不揮発性メモリNVMであり、前記方法は、
第1のアクセス要求を受け取るステップであって、前記第1のアクセス要求は第1のファイル識別子と前記第1のアクセス要求の開始アドレスとを搬送し、前記第1のファイル識別子はアクセスされるべき第1のターゲットファイルを指示するのに用いられる、ステップと、
前記第1のファイル識別子に従って前記第1のターゲットファイルのインデックスノードを獲得するステップであって、前記第1のターゲットファイルの前記インデックスノードは前記第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含み、前記第1の仮想空間は前記メモリ内の第1の物理空間に従って仮想化された連続したアドレス空間であり、前記第1の物理空間は前記第1のターゲットファイルを記憶するのに用いられ、前記第1の仮想空間は事前設定されたグローバル仮想空間の一部であり、前記グローバル仮想空間は前記メモリ内の第2の物理空間に従って仮想化された連続したアドレス空間であり、前記第2の物理空間は前記ファイルシステムにすべてのデータを記憶するのに用いられる、ステップと、
プロセスの前記第1の仮想空間と第2の仮想空間との間の第1のマッピング関係を確立するステップであって、前記第2の仮想空間は前記プロセスのユーザ空間における連続した仮想アドレス空間のセグメントである、ステップと、
配置された複数のレジスタの中から、前記第2の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定するステップであって、前記ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、前記グローバル・ファイル・ページ・テーブルは前記メモリ内の前記第1のターゲットファイルの物理アドレスを指し示すのに用いられる、ステップと、
前記第1のマッピング関係に従って前記第1のアクセス要求の前記開始アドレスを前記第1の仮想空間のアクセスアドレスに変換するステップであって、前記第1のアクセス要求の前記開始アドレスは前記プロセスの前記第2の仮想空間内のアドレスである、ステップと、
前記メモリ内の前記第1のターゲットファイルの前記物理アドレスを獲得するために、前記第1の仮想空間の前記アクセスアドレスに従って前記ファイル管理レジスタにアクセスするステップと、
を含む、ファイルアクセス方法。
【請求項２】
第2のアクセス要求を受け取るステップであって、前記第2のアクセス要求は第2のファイル識別子を搬送し、前記第2のファイル識別子はアクセスされるべき第2のターゲットファイルを指示するのに用いられる、ステップと、
前記第2のファイル識別子に従って、前記ファイルシステムには前記第2のターゲットファイルのインデックスノードが存在しないと判定するステップと、
前記ファイルシステムに前記第2のターゲットファイルのインデックスノードを作成するステップと、
前記第2のターゲットファイルに第3の仮想空間を割り振るステップであって、前記第3の仮想空間は前記メモリ内の第3の物理空間に従って仮想化された連続したアドレス空間であり、前記第3の物理空間は前記第2のターゲットファイルを記憶するのに用いられ、前記第3の仮想空間は前記事前設定されたグローバル仮想空間の一部であり、前記第3の仮想空間は前記第1の仮想空間とは異なり、前記第3の物理空間は前記第1の物理空間とは異なる、ステップと、
前記第2のターゲットファイルの前記インデックスノードに、前記第3の仮想空間に関する情報を記録するステップであって、前記第3の仮想空間は前記第2のターゲットファイルを管理するのに用いられる、ステップと、
をさらに含む、請求項1に記載のファイルアクセス方法。
【請求項３】
前記第1のアクセス要求は書込み要求であり、前記第1のアクセス要求は書き込まれるべきデータをさらに搬送し、
前記メモリ内の前記第1のターゲットファイルの前記物理アドレスを獲得するために、前記第1の仮想空間の前記アクセスアドレスに従って前記ファイル管理レジスタにアクセスする前記ステップは、
前記第1の仮想空間の前記アクセスアドレスが指し示す第4の物理アドレスを、前記グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定するステップであって、前記第4の物理アドレスは前記メモリ内の物理アドレスである、ステップと、
前記第1のターゲットファイルに物理ページを割り振るステップと、
前記第1のアクセス要求で搬送された前記書き込まれるべきデータを前記割り振られた物理ページに書き込むステップと、
を含む、請求項1または2に記載のファイルアクセス方法。
【請求項４】
前記第1のターゲットファイルに物理ページを割り振る前記ステップの後に、前記方法は、
前記グローバル・ファイル・ページ・テーブルに、前記割り振られた物理ページの物理アドレスを記録するステップ、
をさらに含む、請求項3に記載のファイルアクセス方法。
【請求項５】
前記第1の仮想空間に関する前記情報は前記第1の仮想空間の開始アドレスおよびサイズを含み、前記第1のアクセス要求は前記書き込まれるべきデータの量をさらに含み、前記第1のアクセス要求で搬送された前記書き込まれるべきデータを前記割り振られた物理ページに書き込む前記ステップの後に、前記方法は、
前記第1の仮想空間の前記アクセスアドレスと前記書き込まれるべきデータの前記量とに従って前記第1のアクセス要求の終了アドレスを計算するステップであって、前記第1のアクセス要求の前記終了アドレスは前記第1の仮想空間内のアドレスである、ステップと、
前記第1の仮想空間の前記開始アドレスと前記第1のアクセス要求の前記終了アドレスとに従って前記第1の仮想空間の更新されたサイズを獲得するステップと、
前記第1のターゲットファイルの前記インデックスノードに、前記第1の仮想空間の前記更新されたサイズを記録するステップと、
をさらに含む、請求項3または4に記載のファイルアクセス方法。
【請求項６】
記憶装置であって、
ファイルシステムおよびファイルを記憶するように構成されたメモリであって、前記メモリは不揮発性メモリNVMである、メモリと、
メモリバスを用いて前記メモリに接続されたプロセッサであって、前記プロセッサは、
第1のアクセス要求を受け取るように構成され、前記第1のアクセス要求は第1のファイル識別子と前記第1のアクセス要求の開始アドレスとを搬送し、前記第1のファイル識別子はアクセスされるべき第1のターゲットファイルを指示するのに用いられ、
前記プロセッサは、前記第1のファイル識別子に従って前記第1のターゲットファイルのインデックスノードを獲得するように構成され、前記第1のターゲットファイルの前記インデックスノードは前記第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含み、前記第1の仮想空間は前記メモリ内の第1の物理空間に従って仮想化された連続したアドレス空間であり、前記第1の物理空間は前記第1のターゲットファイルを記憶するのに用いられ、前記第1の仮想空間は事前設定されたグローバル仮想空間の一部であり、前記グローバル仮想空間は前記メモリ内の第2の物理空間に従って仮想化された連続したアドレス空間であり、前記第2の物理空間は前記ファイルシステムにすべてのデータを記憶するのに用いられ、
前記プロセッサは、プロセスの前記第1の仮想空間と第2の仮想空間との間の第1のマッピング関係を確立するように構成され、前記第2の仮想空間は前記プロセスのユーザ空間における連続した仮想アドレス空間のセグメントであり、
前記プロセッサは、配置された複数のレジスタの中から、前記第2の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定するように構成され、前記ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、前記グローバル・ファイル・ページ・テーブルは前記メモリ内の前記第1のターゲットファイルの物理アドレスを指し示すのに用いられ、
前記プロセッサは、前記第1のマッピング関係に従って前記第1のアクセス要求の前記開始アドレスを前記第1の仮想空間のアクセスアドレスに変換するように構成され、前記第1のアクセス要求の前記開始アドレスは前記プロセスの前記第2の仮想空間内のアドレスであり、
前記プロセッサは、前記メモリ内の前記第1のターゲットファイルの前記物理アドレスを獲得するために、前記第1の仮想空間の前記アクセスアドレスに従って前記ファイル管理レジスタにアクセスする
ように構成される、プロセッサと、
を含む、記憶装置。
【請求項７】
前記プロセッサは、
第2のアクセス要求を受け取るようにさらに構成され、前記第2のアクセス要求は第2のファイル識別子を搬送し、前記第2のファイル識別子はアクセスされるべき第2のターゲットファイルを指示するのに用いられ、
前記プロセッサは、前記第2のファイル識別子に従って、前記ファイルシステムには前記第2のターゲットファイルのインデックスノードが存在しないと判定し、
前記ファイルシステムに前記第2のターゲットファイルのインデックスノードを作成し、
前記第2のターゲットファイルに第3の仮想空間を割り振るようにさらに構成され、前記第3の仮想空間は前記メモリ内の第3の物理空間に従って仮想化された連続したアドレス空間であり、前記第3の物理空間は前記第2のターゲットファイルを記憶するのに用いられ、前記第3の仮想空間は前記事前設定されたグローバル仮想空間の一部であり、前記第3の仮想空間は前記第1の仮想空間とは異なり、前記第3の物理空間は前記第1の物理空間とは異なり、
前記プロセッサは、前記第2のターゲットファイルの前記インデックスノードに、前記第3の仮想空間に関する情報を記録するようにさらに構成され、前記第3の仮想空間は前記第2のターゲットファイルを管理するのに用いられる、
請求項6に記載の記憶装置。
【請求項８】
前記第1のアクセス要求が書込み要求である場合に、前記第1のアクセス要求は書き込まれるべきデータをさらに搬送し、前記プロセッサは、
前記第1の仮想空間の前記アクセスアドレスが指し示す第4の物理アドレスを、前記グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定し、前記第4の物理アドレスは前記メモリ内の物理アドレスであり、
前記第1のターゲットファイルに物理ページを割り振り、
前記第1のアクセス要求で搬送された前記書き込まれるべきデータを前記割り振られた物理ページに書き込む、
ように構成される、請求項6または7に記載の記憶装置。
【請求項９】
前記プロセッサは、
前記第1のターゲットファイルに前記物理ページを割り振った後で、前記グローバル・ファイル・ページ・テーブルに、前記割り振られた物理ページの物理アドレスを記録する、
ようにさらに構成される、請求項8に記載の記憶装置。
【請求項１０】
前記第1の仮想空間に関する前記情報は前記第1の仮想空間の開始アドレスおよびサイズを含み、前記第1のアクセス要求は前記書き込まれるべきデータの量をさらに含み、前記プロセッサは、
前記第1の仮想空間の前記アクセスアドレスと前記書き込まれるべきデータの前記量とに従って、前記第1のアクセス要求の終了アドレスを計算し、前記第1のアクセス要求の前記終了アドレスは前記第1の仮想空間内のアドレスであり、
前記第1の仮想空間の前記開始アドレスと前記第1のアクセス要求の前記終了アドレスとに従って前記第1の仮想空間の更新されたサイズを獲得し、
前記第1のターゲットファイルの前記インデックスノードに、前記第1の仮想空間の前記更新されたサイズを記録する、
ようにさらに構成される、請求項8または9に記載の記憶装置。
【請求項１１】
ファイルアクセス装置であって、前記装置は、メモリに基づいて設けられるファイルシステムにアクセスするように構成されており、前記メモリは不揮発性メモリNVMであり、前記ファイルアクセス装置は、
第1のアクセス要求を受け取るように構成された受取りモジュールであって、前記第1のアクセス要求は第1のファイル識別子と前記第1のアクセス要求の開始アドレスとを搬送し、前記第1のファイル識別子はアクセスされるべき第1のターゲットファイルを指示するのに用いられる、受取りモジュールと、
前記第1のファイル識別子に従って前記第1のターゲットファイルのインデックスノードを獲得するように構成された獲得モジュールであって、前記第1のターゲットファイルの前記インデックスノードは前記第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含み、前記第1の仮想空間は前記メモリ内の第1の物理空間に従って仮想化された連続したアドレス空間であり、前記第1の物理空間は前記第1のターゲットファイルを記憶するのに用いられ、前記第1の仮想空間は事前設定されたグローバル仮想空間の一部であり、前記グローバル仮想空間は前記メモリ内の第2の物理空間に従って仮想化された連続したアドレス空間であり、前記第2の物理空間は前記ファイルシステムにすべてのデータを記憶するのに用いられる、獲得モジュールと、
プロセスの前記第1の仮想空間と第2の仮想空間との間の第1のマッピング関係を確立するように構成されたマッピングモジュールであって、前記第2の仮想空間は前記プロセスのユーザ空間における連続した仮想アドレス空間のセグメントである、マッピングモジュールと、
配置された複数のレジスタの中から、前記第2の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定するように構成された決定モジュールであって、前記ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、前記グローバル・ファイル・ページ・テーブルは前記メモリ内の前記第1のターゲットファイルの物理アドレスを指し示すのに用いられる、決定モジュールと、
前記第1のマッピング関係に従って前記第1のアクセス要求の前記開始アドレスを前記第1の仮想空間のアクセスアドレスに変換するように構成された変換モジュールであって、前記第1のアクセス要求の前記開始アドレスは前記プロセスの前記第2の仮想空間内のアドレスである、変換モジュールと、
前記メモリ内の前記第1のターゲットファイルの前記物理アドレスを獲得するために、前記第1の仮想空間の前記アクセスアドレスに従って前記ファイル管理レジスタにアクセスするように構成されたアクセスモジュールと、
を含む、ファイルアクセス装置。
【請求項１２】
前記受取りモジュールは、第2のアクセス要求を受け取るようにさらに構成されており、前記第2のアクセス要求は第2のファイル識別子を搬送し、前記第2のファイル識別子はアクセスされるべき第2のターゲットファイルを指示するのに用いられ、
前記ファイルアクセス装置は、
前記第2のファイル識別子に従って、前記ファイルシステムには前記第2のターゲットファイルのインデックスノードが存在しないと判定するように構成された、判定モジュールと、
前記ファイルシステムに前記第2のターゲットファイルのインデックスノードを作成するように構成された、作成モジュールと、
前記第2のターゲットファイルに第3の仮想空間を割り振るように構成された割振りモジュールであって、前記第3の仮想空間は前記メモリ内の第3の物理空間に従って仮想化された連続したアドレス空間であり、前記第3の物理空間は前記第2のターゲットファイルを記憶するのに用いられ、前記第3の仮想空間は前記事前設定されたグローバル仮想空間の一部であり、前記第3の仮想空間は前記第1の仮想空間とは異なり、前記第3の物理空間は前記第1の物理空間とは異なる、前記割振りモジュールと、
前記第2のターゲットファイルの前記インデックスノードに、前記第3の仮想空間に関する情報を記録するように構成された記録モジュールであって、前記第3の仮想空間は前記第2のターゲットファイルを管理するのに用いられる、前記記録モジュールと、
をさらに含む、請求項11に記載のファイルアクセス装置。
【請求項１３】
前記第1のアクセス要求は書込み要求であり、前記第1のアクセス要求は書き込まれるべきデータをさらに搬送し、前記アクセスモジュールは、
前記第1の仮想空間の前記アクセスアドレスが指し示す第4の物理アドレスを、前記グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定し、前記第4の物理アドレスは前記メモリ内の物理アドレスであり、
前記第1のターゲットファイルに物理ページを割り振り、
前記第1のアクセス要求で搬送された前記書き込まれるべきデータを前記割り振られた物理ページに書き込む、
ように構成されている、請求項12に記載のファイルアクセス装置。
【請求項１４】
前記記録モジュールは、前記グローバル・ファイル・ページ・テーブルに、前記割り振られた物理ページの物理アドレスを記録するようにさらに構成されている、請求項13に記載のファイルアクセス装置。
【請求項１５】
前記第1の仮想空間に関する前記情報は前記第1の仮想空間の開始アドレスおよびサイズを含み、前記第1のアクセス要求は前記書き込まれるべきデータの量をさらに含み、前記ファイルアクセス装置は、
前記第1の仮想空間の前記アクセスアドレスと前記書き込まれるべきデータの前記量とに従って、前記第1のアクセス要求の終了アドレスを計算し、前記第1のアクセス要求の前記終了アドレスは前記第1の仮想空間内のアドレスであり、
前記第1の仮想空間の前記開始アドレスと前記第1のアクセス要求の前記終了アドレスとに従って前記第1の仮想空間の更新されたサイズを獲得し、
前記第1のターゲットファイルの前記インデックスノードに、前記第1の仮想空間の前記更新されたサイズを記録する、
ように構成された、更新モジュール、
をさらに含む、請求項13または14に記載のファイルアクセス装置。
【請求項１６】
1つまたは複数のコンピュータ実行可能命令を含むコンピュータプログラムであって、前記1つまたは複数のコンピュータ実行可能命令は、記憶システムのプロセッサ上で実行されると、前記記憶システムに、請求項1から5のいずれか一項に記載のファイルアクセス方法を行わせる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶技術の分野に関し、詳細には、ファイルアクセス方法およびファイルアクセス装置、ならびに記憶装置に関する。
【背景技術】
【０００２】
先行技術では、ファイルシステムが、通常、ディスクにおいて設けられる。アクセス速度を上げるために、ファイルシステムにアクセスするのに、通常、MMAP方式が用いられる。具体的には、ファイルをプロセスの仮想空間にマップすることができ、その場合、データはハードディスクからキャッシュに読み込まれ、キャッシュページからマッピングエントリが生成され、プロセス・ページ・テーブルに追加される。したがって、プロセスはプロセス・ページ・テーブルにアクセスすることによってファイルに直接アクセスすることができる。
【０００３】
相変化メモリ（Phase Change Memory、PCM）、抵抗ランダム・アクセス・メモリ（Resistive Random Access Memory、RRAM（登録商標））、磁気抵抗ランダム・アクセス・メモリ（Magnetic Random Access Memory、MRAM）、および強誘電体ランダム・アクセス・メモリ（Ferroelectric Random Access Memory、FRAM（登録商標））に代表される新規の不揮発性メモリ（Non−Volatile Memory、NVM）技術の発展に伴い、新規のNVMのアクセス速度が大幅に向上する。加えて、新規のNVMはバイト（Byte）単位でアドレス指定することができ、データはビット（bit）単位で不揮発性メモリに書き込まれる。したがって、新規のNVMをメモリとして用いることができ、NVM記憶媒体はページ単位で管理され、NVMはCPUによって直接アクセスされる。先行技術では、NVMベースのメモリ・ファイル・システムも提供されている。メモリがNVMであり、ファイルシステムが依然としてMMAP方式でアクセスされる場合には、アクセスプロセスは複雑であり、キャッシュされたページ・テーブル・エントリをプロセス・ページ・テーブルに追加する必要がある。したがって、プロセス・ページ・テーブルに対する負荷が増加する。
【発明の概要】
【０００４】
本発明の実施形態は、プロセス・ページ・テーブルに対する負荷を低減し、ファイルシステムのアクセス効率を改善することができる、ファイルアクセス方法およびファイルアクセス装置、ならびに記憶装置を提供する。
【課題を解決するための手段】
【０００５】
第1の態様によれば、本発明の一実施形態はファイルアクセス方法を提供し、本方法は、ファイルシステムがメモリに基づいて設けられる記憶装置に適用され、メモリは不揮発性メモリNVMであり、本方法は、
第1のアクセス要求を受け取るステップであって、第1のアクセス要求は第1のファイル識別子と第1のアクセス要求の開始アドレスとを搬送し、第1のファイル識別子はアクセスされるべき第1のターゲットファイルを指示するのに用いられる、ステップと、
第1のファイル識別子に従って第1のターゲットファイルのインデックスノードを獲得するステップであって、第1のターゲットファイルのインデックスノードは第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含み、第1の仮想空間はメモリ内の第1の物理空間に従って仮想化された連続したアドレス空間であり、第1の物理空間は第1のターゲットファイルを記憶するのに用いられ、第1の仮想空間は事前設定されたグローバル仮想空間の一部であり、グローバル仮想空間はメモリ内の第2の物理空間に従って仮想化された連続したアドレス空間であり、第2の物理空間はファイルシステムにすべてのデータを記憶するのに用いられる、ステップと、
プロセスの第1の仮想空間と第2の仮想空間との間の第1のマッピング関係を確立するステップであって、第2の仮想空間はプロセスのユーザ空間における連続した仮想アドレス空間のセグメントである、ステップと、
配置された複数のレジスタの中から、第2の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定するステップであって、ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、グローバル・ファイル・ページ・テーブルはメモリ内の第1のターゲットファイルの物理アドレスを指し示すのに用いられる、ステップと、
第1のマッピング関係に従って第1のアクセス要求の開始アドレスを第1の仮想空間のアクセスアドレスに変換するステップであって、第1のアクセス要求の開始アドレスはプロセスの第2の仮想空間内のアドレスである、ステップと、
メモリ内の第1のターゲットファイルの物理アドレスを獲得するために、第1の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスするステップと、
を含む。
【０００６】
第1の態様に関連して、第1の態様の第1の可能な実施態様において、本方法は、
第2のアクセス要求を受け取るステップであって、第2のアクセス要求は第2のファイル識別子を搬送し、第2のファイル識別子はアクセスされるべき第2のターゲットファイルを指示するのに用いられる、ステップと、
第2のファイル識別子に従って、ファイルシステムには第2のターゲットファイルのインデックスノードが存在しないと判定するステップと、
ファイルシステムに第2のターゲットファイルのインデックスノードを作成するステップと、
第2のターゲットファイルに第3の仮想空間を割り振るステップであって、第3の仮想空間はメモリ内の第3の物理空間に従って仮想化された連続したアドレス空間であり、第3の物理空間は第2のターゲットファイルを記憶するのに用いられ、第3の仮想空間は事前設定されたグローバル仮想空間の一部であり、第3の仮想空間は第1の仮想空間とは異なり、第3の物理空間は第1の物理空間とは異なる、ステップと、
第2のターゲットファイルのインデックスノードに、第3の仮想空間に関する情報を記録するステップであって、第3の仮想空間は第2のターゲットファイルを管理するのに用いられる、ステップと、
をさらに含む。
【０００７】
第1の態様または第1の態様の第1の可能な実施態様に関連して、第1の態様の第2の可能な実施態様において、第1のアクセス要求は書込み要求であり、第1のアクセス要求は書き込まれるべきデータをさらに搬送し、メモリ内の第1のターゲットファイルの物理アドレスを獲得するために、第1の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスするステップは、
第1の仮想空間のアクセスアドレスが指し示す第4の物理アドレスを、グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定するステップであって、第4の物理アドレスはメモリ内の物理アドレスである、ステップと、
第1のターゲットファイルに物理ページを割り振るステップと、
第1のアクセス要求で搬送された書き込まれるべきデータを割り振られた物理ページに書き込むステップと、
を含む。
【０００８】
第1の態様の第2の可能な実施態様に関連して、第1の態様の第3の可能な実施態様において、第1のターゲットファイルに物理ページを割り振るステップの後に、本方法は、グローバル・ファイル・ページ・テーブルに、割り振られた物理ページの物理アドレスを記録するステップ、をさらに含む。
【０００９】
第1の態様の第2または第3の可能な実施態様に関連して、第1の態様の第4の可能な実施態様において、第1の仮想空間に関する情報は第1の仮想空間の開始アドレスおよびサイズを含み、第1のアクセス要求は書き込まれるべきデータの量をさらに含み、第1のアクセス要求で搬送された書き込まれるべきデータを割り振られた物理ページに書き込むステップの後に、本方法は、
第1の仮想空間のアクセスアドレスと書き込まれるべきデータの量とに従って第1のアクセス要求の終了アドレスを計算するステップであって、第1のアクセス要求の終了アドレスは第1の仮想空間内のアドレスである、ステップと、
第1の仮想空間の開始アドレスと第1のアクセス要求の終了アドレスとに従って第1の仮想空間の更新されたサイズを獲得するステップと、
第1のターゲットファイルのインデックスノードに、第1の仮想空間の更新されたサイズを記録するステップと、
をさらに含む。
【００１０】
第2の態様によれば、本発明の一実施形態は記憶装置を提供し、本記憶装置は、
ファイルシステムおよびファイルを記憶するように構成されたメモリであって、メモリは不揮発性メモリNVMである、メモリと、
メモリバスを用いてメモリに接続されたプロセッサであって、プロセッサは、
第1のアクセス要求を受け取るように構成され、第1のアクセス要求は第1のファイル識別子と第1のアクセス要求の開始アドレスとを搬送し、第1のファイル識別子はアクセスされるべき第1のターゲットファイルを指示するのに用いられ、
プロセッサは、第1のファイル識別子に従って第1のターゲットファイルのインデックスノードを獲得するように構成され、第1のターゲットファイルのインデックスノードは第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含み、第1の仮想空間はメモリ内の第1の物理空間に従って仮想化された連続したアドレス空間であり、第1の物理空間は第1のターゲットファイルを記憶するのに用いられ、第1の仮想空間は事前設定されたグローバル仮想空間の一部であり、グローバル仮想空間はメモリ内の第2の物理空間に従って仮想化された連続したアドレス空間であり、第2の物理空間はファイルシステムにすべてのデータを記憶するのに用いられ、
プロセッサは、プロセスの第1の仮想空間と第2の仮想空間との間の第1のマッピング関係を確立するように構成され、第2の仮想空間はプロセスのユーザ空間における連続した仮想アドレス空間のセグメントであり、
プロセッサは、配置された複数のレジスタの中から、第2の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定するように構成され、ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、グローバル・ファイル・ページ・テーブルはメモリ内の第1のターゲットファイルの物理アドレスを指し示すのに用いられ、
プロセッサは、第1のマッピング関係に従って第1のアクセス要求の開始アドレスを第1の仮想空間のアクセスアドレスに変換するように構成され、第1のアクセス要求の開始アドレスはプロセスの第2の仮想空間内のアドレスであり、
プロセッサは、メモリ内の第1のターゲットファイルの物理アドレスを獲得するために、第1の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスする
ように構成される、プロセッサと、
を含む。
【００１１】
第2の態様に関連して、第2の態様の第1の可能な実施態様において、プロセッサは、
第2のアクセス要求を受け取るようにさらに構成され、第2のアクセス要求は第2のファイル識別子を搬送し、第2のファイル識別子はアクセスされるべき第2のターゲットファイルを指示するのに用いられ、
プロセッサは、第2のファイル識別子に従って、ファイルシステムには第2のターゲットファイルのインデックスノードが存在しないと判定し、
ファイルシステムに第2のターゲットファイルのインデックスノードを作成し、
第2のターゲットファイルに第3の仮想空間を割り振るようにさらに構成され、第3の仮想空間はメモリ内の第3の物理空間に従って仮想化された連続したアドレス空間であり、第3の物理空間は第2のターゲットファイルを記憶するのに用いられ、第3の仮想空間は事前設定されたグローバル仮想空間の一部であり、第3の仮想空間は第1の仮想空間とは異なり、第3の物理空間は第1の物理空間とは異なり、
プロセッサは、第2のターゲットファイルのインデックスノードに、第3の仮想空間に関する情報を記録するようにさらに構成され、第3の仮想空間は第2のターゲットファイルを管理するのに用いられる。
【００１２】
第2の態様または第2の態様の第1の可能な実施態様に関連して、第2の態様の第2の可能な実施態様において、第1のアクセス要求が書込み要求である場合に、第1のアクセス要求は書き込まれるべきデータをさらに搬送し、プロセッサは、
第1の仮想空間のアクセスアドレスが指し示す第4の物理アドレスを、グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定し、第4の物理アドレスはメモリ内の物理アドレスであり、
第1のターゲットファイルに物理ページを割り振り、
第1のアクセス要求で搬送された書き込まれるべきデータを割り振られた物理ページに書き込む、
ように構成される。
【００１３】
第2の態様の第2の可能な実施態様に関連して、第2の態様の第3の可能な実施態様において、プロセッサは、第1のターゲットファイルに物理ページを割り振った後で、グローバル・ファイル・ページ・テーブルに、割り振られた物理ページの物理アドレスを記録する、ようにさらに構成される。
【００１４】
第2の態様の第2または第3の可能な実施態様に関連して、第2の態様の第4の可能な実施態様において、第1の仮想空間に関する情報は第1の仮想空間の開始アドレスおよびサイズを含み、第1のアクセス要求は書き込まれるべきデータの量をさらに含み、プロセッサは、
第1の仮想空間のアクセスアドレスと書き込まれるべきデータの量とに従って、第1のアクセス要求の終了アドレスを計算し、第1のアクセス要求の終了アドレスは第1の仮想空間内のアドレスであり、
第1の仮想空間の開始アドレスと第1のアクセス要求の終了アドレスとに従って第1の仮想空間の更新されたサイズを獲得し、
第1のターゲットファイルのインデックスノードに、第1の仮想空間の更新されたサイズを記録する、
ようにさらに構成される。
【００１５】
第3の態様によれば、本発明の一実施形態はファイルアクセス装置を提供し、本装置は、メモリに基づいて設けられるファイルシステムにアクセスするように構成されており、メモリは不揮発性メモリNVMであり、本ファイルアクセス装置は、
第1のアクセス要求を受け取るように構成された受取りモジュールであって、第1のアクセス要求は第1のファイル識別子と第1のアクセス要求の開始アドレスとを搬送し、第1のファイル識別子はアクセスされるべき第1のターゲットファイルを指示するのに用いられる、受取りモジュールと、
第1のファイル識別子に従って第1のターゲットファイルのインデックスノードを獲得するように構成された獲得モジュールであって、第1のターゲットファイルのインデックスノードは第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含み、第1の仮想空間はメモリ内の第1の物理空間に従って仮想化された連続したアドレス空間であり、第1の物理空間は第1のターゲットファイルを記憶するのに用いられ、第1の仮想空間は事前設定されたグローバル仮想空間の一部であり、グローバル仮想空間はメモリ内の第2の物理空間に従って仮想化された連続したアドレス空間であり、第2の物理空間はファイルシステムにすべてのデータを記憶するのに用いられる、獲得モジュールと、
プロセスの第1の仮想空間と第2の仮想空間との間の第1のマッピング関係を確立するように構成されたマッピングモジュールであって、第2の仮想空間はプロセスのユーザ空間における連続した仮想アドレス空間のセグメントである、マッピングモジュールと、
配置された複数のレジスタの中から、第2の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定するように構成された決定モジュールであって、ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、グローバル・ファイル・ページ・テーブルはメモリ内の第1のターゲットファイルの物理アドレスを指し示すのに用いられる、決定モジュールと、
第1のマッピング関係に従って第1のアクセス要求の開始アドレスを第1の仮想空間のアクセスアドレスに変換するように構成された変換モジュールであって、第1のアクセス要求の開始アドレスはプロセスの第2の仮想空間内のアドレスである、変換モジュールと、
メモリ内の第1のターゲットファイルの物理アドレスを獲得するために、第1の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスするように構成されたアクセスモジュールと、
を含む。
【００１６】
第3の態様に関連して、第3の態様の第1の可能な実施態様において、受取りモジュールは第2のアクセス要求を受け取るようにさらに構成されており、第2のアクセス要求は第2のファイル識別子を搬送し、第2のファイル識別子はアクセスされるべき第2のターゲットファイルを指示するのに用いられ、本ファイルアクセス装置は、
第2のファイル識別子に従って、ファイルシステムには第2のターゲットファイルのインデックスノードが存在しないと判定するように構成された、判定モジュールと、
ファイルシステムに第2のターゲットファイルのインデックスノードを作成するように構成された、作成モジュールと、
第2のターゲットファイルに第3の仮想空間を割り振るように構成された割振りモジュールであって、第3の仮想空間はメモリ内の第3の物理空間に従って仮想化された連続したアドレス空間であり、第3の物理空間は第2のターゲットファイルを記憶するのに用いられ、第3の仮想空間は事前設定されたグローバル仮想空間の一部であり、第3の仮想空間は第1の仮想空間とは異なり、第3の物理空間は第1の物理空間とは異なる、割振りモジュールと、
第2のターゲットファイルのインデックスノードに、第3の仮想空間に関する情報を記録するように構成された記録モジュールであって、第3の仮想空間は第2のターゲットファイルを管理するのに用いられる、記録モジュールと、
をさらに含む。
【００１７】
第3の態様または第3の態様の第1の可能な実施態様に関連して、第3の態様の第2の可能な実施態様において、第1のアクセス要求が書込み要求である場合に、第1のアクセス要求は書き込まれるべきデータをさらに搬送し、アクセスモジュールは、
第1の仮想空間のアクセスアドレスが指し示す第4の物理アドレスを、グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定し、第4の物理アドレスはメモリ内の物理アドレスであり、
第1のターゲットファイルに物理ページを割り振り、
第1のアクセス要求で搬送された書き込まれるべきデータを割り振られた物理ページに書き込む、
ように構成されている。
【００１８】
第3の態様の第2の可能な実施態様に関連して、第3の態様の第3の可能な実施態様において、記録モジュールは、グローバル・ファイル・ページ・テーブルに、割り振られた物理ページの物理アドレスを記録するようにさらに構成されている。
【００１９】
第3の態様の第2または第3の可能な実施態様に関連して、第3の態様の第4の可能な実施態様において、第1の仮想空間に関する情報は第1の仮想空間の開始アドレスおよびサイズを含み、第1のアクセス要求は書き込まれるべきデータの量をさらに含み、本ファイルアクセス装置は、
第1の仮想空間のアクセスアドレスと書き込まれるべきデータの量とに従って、第1のアクセス要求の終了アドレスを計算し、第1のアクセス要求の終了アドレスは第1の仮想空間内のアドレスであり、
第1の仮想空間の開始アドレスと第1のアクセス要求の終了アドレスとに従って第1の仮想空間の更新されたサイズを獲得し、
第1のターゲットファイルのインデックスノードに、第1の仮想空間の更新されたサイズを記録する、
ように構成された、更新モジュール、
をさらに含む。
【００２０】
第4の態様によれば、本発明の一実施形態は、プログラムコードを記憶したコンピュータ可読記憶媒体を含むコンピュータプログラム製品を提供し、プログラムコードに含まれる命令は前述の第1の態様における方法を実行するのに用いられる。
【００２１】
本発明の各実施形態で提供するファイルアクセス方法は、ファイルシステムがメモリに基づいて設けられる記憶装置に適用することができる。本方法によれば、記憶装置は、仮想化されたグローバル仮想空間を用いてファイルシステム内のすべてのファイルを集中的に管理し、指定されたグローバル・ファイル・ページ・テーブルを用いてファイルシステムにアクセスすることができる。具体的なアクセス時に、記憶装置は、アクセスされるべき第1のターゲットファイルのファイル識別子に従って、メタデータ内の第1のターゲットファイルのインデックスノードを獲得することができ、第1のターゲットファイルのインデックスノードは、グローバル仮想空間における第1のターゲットファイルの第1の仮想空間に関する情報を記憶しており、記憶装置は、第1の仮想空間に関するものであり、インデックスノードに記録されている情報に従って、第1の仮想空間をプロセスの第2の仮想空間にマップし、追加されたファイル管理レジスタでアドレス指定を行うことができる。ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、したがって、第1のターゲットファイルには、第1の仮想空間の開始アドレスと、グローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスとに従ってアクセスすることができる。本発明の各実施形態では、新しく追加されたファイル管理レジスタを用いてグローバル・ファイル・ページ・テーブルでアドレス指定が行われる。したがって、ファイルのページ・テーブル・エントリをプロセス・ページ・テーブルに追加することも、リンクさせることも不要であり、それによって、システムオーバーヘッドが低減し、プロセス・ページ・テーブルに対する負荷が低減され、ファイルアクセス効率が向上する。加えて、第1の仮想空間は、連続した空間のセグメントである。したがって、本発明の各実施形態に記載する方法によれば、第1の仮想空間の開始アドレスおよびサイズに関する情報が第1のターゲットファイルのインデックスノードに記録されさえすればよく、記録された第1の仮想空間に関する情報を用いてメモリに記憶された第1のターゲットファイルに連続してアクセスすることができる。
【００２２】
本発明の実施形態における、または先行技術における技術的解決策をより明確に説明するために、以下で、各実施形態を説明するのに必要とされる添付の図面について簡単に記述する。明らかに、以下の説明における添付の図面は、単に本発明のいくつかの実施形態を示すにすぎない。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態による応用シナリオの概略図である。
【図２】本発明の一実施形態によるファイルアクセス方法の流れ図である。
【図３】本発明の一実施形態によるファイル管理空間マッピングの概略図である。
【図４】本発明の一実施形態によるページテーブルの概略図である。
【図５】本発明の一実施形態によるグローバル・ファイル・ページ・テーブルへのアクセスの概略図である。
【図６】本発明の一実施形態によるファイル書込み方法の流れ図である。
【図７】本発明の一実施形態による別のファイルアクセス方法の流れ図である。
【図８】本発明の一実施形態によるファイルアクセス装置の概略的構造図である。
【発明を実施するための形態】
【００２４】
本発明における技術的解決策を当業者によりよく理解させるために、以下で、本発明の実施形態における添付の図面を参照して、本発明の実施形態における技術的解決策を明確かつ十分に説明する。明らかに、説明する実施形態は本発明の実施形態の全部ではなく一部にすぎない。
【００２５】
図1は、本発明の一実施形態による新規の不揮発性メモリ（NVM）の応用シナリオの図である。図1に示す応用シナリオでは、NVM200がメモリとして用いられる。図1に示すように、ダイナミック・ランダム・アクセス・メモリ（Dynamic Random Access Memory、DRAM）300がメモリバスを用いて中央処理装置（CPU）100に接続されている。DRAM300には、アクセスが高速であるという利点がある。CPU100は、DRAM300に高速でアクセスし、DRAM300内の任意の記憶ユニットに対して読出し動作または書込み動作を行うことができる。したがって、DRAMは、通常、メインメモリとして用いられる。一般に、DRAM300は、オペレーティングシステムにおいて動作する様々なソフトウェア、入出力データ、外部記憶とやりとりされる情報などを記憶するのに用いられる。しかし、DRAM300は揮発性である。コンピュータの電源が切られた後で、DRAM300内の情報はもはや記憶されなくなる。
【００２６】
ディスク400は、データを記憶するための外部記憶として用いられてよい。当然ながら、外部記憶として用いられる記憶は、ディスク400であってもよく、ソリッド・ステート・ディスク（SSD）といった不揮発性メモリであってもよいことが理解されよう。一般に、外部記憶として用いられる記憶媒体は、不揮発性である必要がある。コンピュータの電源が切られた後で、外部記憶に記憶されたデータは依然として記憶されている。加えて、外部記憶は大記憶容量を有する。
【００２７】
DRAM300と同様に、新規の不揮発性メモリ（NVM）200は、メモリバスに直接接続されていてよい。中央処理装置（CPU）100は、メモリ管理部（memory management unit、MMU）104を用いてNVM200にアクセスし、NVM200にデータを迅速に記憶し、またはNVM200からデータを読み出すことができる。NVM200が、DRAM300のように、使用のためにメモリバスに直接接続されている場合には、データアクセス待ち時間（latency）を低減させることもできることが理解されよう。加えて、DRAM300と比較して、NVM200は不揮発性であり、したがって、データをより十分に記憶することができる。
【００２８】
本発明の本実施形態で説明する、メモリバスに接続することができる不揮発性メモリには、相変化メモリ（Phase Change Memory、PCM）、抵抗ランダム・アクセス・メモリ（Resistive Random Access Memory、RRAM）、磁気抵抗ランダム・アクセス・メモリ（Magnetic Random Access Memory、MRAM）、強誘電体ランダム・アクセス・メモリ（Ferroelectric Random Access Memory、FRAM）といった新規の不揮発性メモリが含まれうることに留意すべきである。これら新規のNVMはすべて、アクセスが高速であり、不揮発性である。加えて、これら新規のNVMはバイト（Byte）単位でアドレス指定することができ、データはビット（bit）単位で不揮発性メモリに書き込まれる。
【００２９】
本発明の本実施形態は、メモリベースのファイルシステムに関するものである。本発明の本実施形態では、NVM200は、ファイルシステムおよびファイルを記憶する。当業者には知られているように、ファイルシステムは、オペレーティングシステムにおいてファイル情報の管理および記憶を担うソフトウェア構造である。システムの観点からいうと、ファイルシステムは、ファイル記憶装置の空間を編成し、割り振り、ファイルの記憶および記憶されたファイルの保護および検索を担うシステムである。ファイルシステムは次の3つの部分、すなわち、ファイル・システム・インターフェースと、ファイルを制御し、管理するのに用いられるソフトウェアセットと、ファイルのデータおよび属性とを含む。ファイルシステムの中心概念には、スーパーブロック（superblock）、iノード（inode）、データブロック（data block）、ディレクトリブロック（directory block）、および間接ブロック（indirection block）が含まれる。スーパーブロックは、ファイルシステムの全般的な情報、例えば、ファイルシステムのサイズを含む。inodeは、ファイル名以外のファイルのすべての情報を含む。ファイル名およびinodeの数は、一緒にディレクトリブロックに記憶される。ディレクトリエントリは、ファイル名およびファイルのinodeの数を含む。iノードにはごく少数のデータブロックの空間しかない。もっと多くの空間が必要な場合には、データブロックを指し示すポインタ空間が動的に割り振られる。これら動的に割り振られたブロックが間接ブロックである。本発明の本実施形態では、NVM200は、ファイルのデータおよびメタデータをさらに記憶することができる。
【００３０】
中央処理装置（CPU）100にはオペレーティングシステムおよび別のソフトウェアプログラムがインストールされており、したがって中央処理装置（CPU）100は、DRAM300、ディスク400、NVM200にアクセスすることができる。CPU100は、CPU実行部102と、メモリ管理部MMU104とを含んでいてよい。CPU実行部102は、CPU100の実行構成要素であり、プログラムを実行するように特に構成されている。MMU104は、CPUのメモリアクセス要求の処理を担うコンピュータハードウェアである。MMU104は、CPU100内の、仮想メモリおよび物理メモリを管理するのに用いられる制御線であり、仮想アドレスおよび物理アドレスのマッピングと、ハードウェア機構に基づくメモリアクセス許可の提供とを担う。
【００３１】
本発明の本実施形態では、中央処理装置（CPU）100は単にプロセッサの一例であることが理解されよう。プロセッサは、中央処理装置（CPU）100であってもよく、別の特定用途向け集積回路ASIC（Application Specific Integrated Circuit）であってもよく、本発明の実施形態を実現する1つまたは複数の集積回路として構成されてもよい。
【００３２】
本発明の本実施形態をよりよく理解するために、以下で、MMUが仮想アドレスをメモリ内の物理アドレスにどのようにマップするかについて詳細に説明する。まず、仮想メモリ（virtual memory）の概念について簡単に説明する。当業者には知られているように、プログラムは動作させるためにメモリに配置する必要がある。しかし、プログラム規模は絶えず増加しており、プログラム全体をメモリに収容することは困難である。ゆえに、仮想メモリの概念が提案されている。仮想メモリの基本的な考え方とは、プログラム、データ、およびスタックの全体のサイズは物理メモリのサイズよりも大きくなる可能性があり、オペレーティングシステムは、メモリには、現在用いられているプログラム、データ、およびスタックの一部を記憶し、ディスクには、現在用いられていないプログラム、データ、およびスタックの別の部分を記憶するというものである。例えば、コンピュータにわずか4MBのメモリしかない場合に、コンピュータが16MBのプログラムを動作させる必要があるときに、オペレーティングシステムは、選択によって、4MBのプログラムコンテンツを動作させるためにメモリにバッファし、必要に応じてメモリとディスクとの間でプログラム断片をやりとりすることを決定する。このようにして、16MBのプログラムが、わずか4MBのメモリしかないコンピュータ上で動作することができる。
【００３３】
当業者には知られているように、コンピュータシステムにおいて、仮想アドレス空間とは、プロセスがアクセスすることのできる仮想アドレス範囲である。仮想アドレス空間のサイズは、一般に、コンピュータの命令セットアーキテクチャ（instruction set architecture）に従って決定される。例えば、32ビットCPUが提供する仮想アドレス空間の範囲は、0〜0xFFFFFFFF（4GB）である。仮想アドレス空間内のアドレスを仮想アドレスと呼ぶ。物理アドレス空間と物理アドレスとは、仮想アドレス空間と仮想アドレスとに対応している。物理アドレス空間はメモリの物理アドレス範囲を指す。物理アドレス空間内のアドレスを物理アドレスと呼ぶ。一般に、物理アドレス空間は仮想アドレス空間よりも小さく、物理アドレス空間は仮想アドレス空間にマップすることができる。例えば、256Mのメモリを有する32ビットx86ホストでは、ホストの仮想アドレス空間の範囲は0〜0xFFFFFFFF（4GB）であり、物理アドレス空間の範囲は0x000000000〜0x0FFFFFFF（256MB）である。
【００３４】
先行技術では、大部分のマシンが仮想メモリを用い、仮想アドレス（または線形アドレスと呼ばれる）はアドレス・バスに直接送られるのではなくMMU（Memory Management Unit、メモリ管理部）に送られ、MMUはその仮想アドレスを物理アドレスに変換する。すなわち、MMUは、プログラムの仮想アドレスをメモリ内の物理アドレスにマップするように構成されている。
【００３５】
プログラムの仮想アドレスからメモリ内の物理アドレスへのマッピングを実現するために、MMUにおいてページング（paging）機構が導入されている。具体的には、仮想アドレス空間はページ（page）単位で分割されており、仮想アドレス空間内のページを仮想ページと呼ぶことができる。これに対応して、物理アドレス空間もページ単位で分割されており、物理アドレス空間内のページを物理ページと呼ぶ（または物理ページフレームと呼ぶ）ことができる。仮想ページのサイズは物理ページのサイズと同じである。
【００３６】
ページの概念の導入に基づいて、MMUは仮想アドレスをマルチレベル・ページ・テーブル形式でメモリ内の物理アドレスにマップする。具体的には、第2レベルの管理モードでは、マッピング方式は、ページディレクトリの問合せおよびページテーブルの問合せを順次に含む。ページディレクトリには複数のページテーブルのベースアドレスが記憶されており、各ページテーブルには複数のページ・テーブル・エントリが記憶されている。ページ・テーブル・エントリには仮想アドレスに対応する物理ページの物理ベースアドレスが記録される。
【００３７】
当業者には知られているように、仮想アドレスは物理アドレスを見つけるのに用いられる情報を含む。仮想アドレスのサイズは4バイト（32bit）である。一般に、仮想アドレスは次の3つの部分に分割することができる。第22ビット〜第31ビット：これらの10ビット（最上位の10ビット）はページディレクトリのインデックスである。第12ビット〜第21ビットまで：これらの10ビットはページテーブルのインデックスである。第0ビット〜第11ビット：これらの12ビット（最下位の12ビット）はページ内オフセットである。
【００３８】
当業者には知られているように、各プロセスには、独自の専用仮想アドレス空間と、アドレス指定に用いられる専用ページディレクトリがあり、システム内のすべてのプロセスがカーネルの仮想アドレス空間とカーネルのページディレクトリとを共用し、各プロセスはシステムコールによってカーネルにトラップすることができる。CPUには、ページディレクトリのベースアドレスを記憶するのに用いられるレジスタCR3が存在する。プロセススケジューリング時に、レジスタCR3は、現在のプロセスのページディレクトリのベースアドレスを指し示す。プロセス切替え時に、レジスタCR3は、現在指し示しているページディレクトリのベースアドレスを切り替える。物理アドレスに変換されるべき仮想アドレスについて、CPUはまず、レジスタCR3内の値に従って、ページディレクトリが位置する物理ページを見つける。次いで、CPUは、仮想アドレスの第22ビットから第31ビットまでの10ビット（最上位10ビット）の値をインデックスとして用いて、対応するページ・ディレクトリ・エントリ（page directory entry、PDE）を見つけ、PDEには仮想アドレスに対応するページテーブルの物理アドレスが存在し、仮想アドレスの第12ビットから第21ビットまでの10ビットの値をインデックスとして用いて、ページテーブルの物理アドレスに従ってページテーブル内の対応するページ・テーブル・エントリ（page table entry、PTE）を見つける。ページ・テーブル・エントリには仮想アドレスに対応する物理ページの物理アドレスが存在する。最後に、CPUは、仮想アドレスの最下位12ビット、すなわちページ内オフセットと、物理ページの物理アドレスとを用いて、仮想アドレスに対応する物理アドレスを獲得する。
【００３９】
一般に、1つのページディレクトリは1024エントリを有し、仮想アドレスの最上位10bitは、ちょうど、1024エントリにインデックス付けするのに用いることができる（2の10乗は1024に等しい）。1つのページテーブルも1024エントリを有し、仮想アドレスの中間部分の10ビットは、ちょうど、1024のページ・テーブル・エントリにインデックス付けするのに用いることができる。ページ内オフセットとして用いられる仮想アドレスの最下位12bit（2の12乗は4096に等しい）は、ちょうど、4KBの物理ページに、すなわち、1物理ページ内の各バイトにインデックス付けするのに用いることができる。
【００４０】
当業者には知られているように、32bitポインタのアドレス指定範囲は0x00000000〜0xFFFFFFFF（4GB）である。すなわち、1つの32bitポインタを用いて、4GBアドレス空間全体の各バイトに対してアドレス指定することができる。1つのページ・テーブル・エントリは、仮想ページと物理メモリとの間のマッピングを担うことができる。1つのページテーブルは1024エントリを有し、1つのページテーブルは1024×4kB＝4MBのアドレス空間のマッピングを担うことができる。1つのページ・ディレクトリ・エントリは、1つのページテーブルに対応する。1つのページディレクトリは、1024のページテーブルに対応する1024エントリを有する。各ページテーブルは4MBアドレス空間のマッピングを担い、1024のページテーブルは1024×4MB＝4GBアドレス空間のマッピングを担う。1つのプロセスは1つのページディレクトリを有する。したがって、ページディレクトリおよびページテーブルは、ページ単位で、4Gアドレス空間内の各ページと物理メモリとの間のマッピングを保証することができる。
【００４１】
各プロセスは、独自の4GBアドレス空間、すなわち0x00000000〜0xFFFFFFFFを有する。各プロセスの仮想アドレスからメモリ内の物理アドレスへのマッピングは、プロセスのページディレクトリおよびページテーブルを用いて実現される。各プロセスは独自のページディレクトリおよびページテーブルを有し、したがって、各プロセスのアドレス空間にマップされる物理メモリは異なる。同じ仮想アドレスのところの2つのプロセスの値は（2つのプロセス両方の仮想アドレスにマップされた物理メモリがある場合には）通常異なり、というのは、異なるプロセスは、通常、異なる物理ページに対応するからである。
【００４２】
以上では、MMUがプログラムの仮想アドレスをメモリ内の物理アドレスにマップするプロセスについて詳細に説明した。本発明の本実施形態では、NVM200がメモリとして用いられ、NVM200はデータを永続的に記憶することができるので、ファイルシステムはNVM200に基づいて設けることができ、ファイルシステム内のメタデータおよびファイルデータがメモリNVM200に直接記憶される。MMU104は、NVM200において仮想アドレスと物理アドレスとをマップすることができ、したがって、CPU100は、NVM200内のファイルシステムに直接アクセスすることができる。
【００４３】
図1に示す応用シナリオは、ファイルシステムがメモリに基づいて設けられる記憶装置に適用されうることが理解されよう。本発明の本実施形態では、記憶装置は、コンピュータ、サーバ、ストレージアレイといった、ファイルシステムがメモリに基づいて設けられる装置を含んでいてよい。本発明の各実施形態の応用シナリオについては、本明細書では限定しない。以下で、図1に示す応用シナリオに関連して本発明の一実施形態のファイルアクセス方法について詳細に説明する。特に指定しない限り、本発明の本実施形態に記載するメモリはNVMであり、特に図1のNVM200を指すことに留意すべきである。
【００４４】
図2は、本発明の一実施形態によるファイルアクセス方法の流れ図である。本方法は、図1に示す応用シナリオに適用することができる。本方法は、記憶装置、コンピュータ、サーバといった、ファイルシステムがメモリに基づいて設けられる装置内のプロセッサによって実行されてよい。例えば、図1に示すCPU100によって実行される。以下で、図1を参照して図2の方法を説明する。図2に示すように、本方法は以下のステップを含むことができる。
【００４５】
ステップ201で、CPU100は第1のアクセス要求を受け取り、第1のアクセス要求は第1のファイル識別子と第1のアクセス要求の開始アドレスとを搬送し、第1のファイル識別子はアクセスされるべき第1のターゲットファイルを指示するのに用いられる。実際の応用では、ファイル識別子はファイル名、例えば、File＿1．docとすることができる。ファイル識別子は、ファイルシステム内のファイルを識別するための一意の識別子である。本発明の本実施形態で提供するファイルシステムは、バイト単位でアドレス指定できる新規のNVMに基づいて設けられるため、CPU100はメモリバスを用いてNVMに直接アクセスすることができる。第1のアクセス要求の開始アドレスは、アクセスされるべき第1のターゲットファイルのデータの開始位置を決定するのに用いられる。本発明の本実施形態では、第1のアクセス要求の開始アドレスは、プロセスの仮想アドレス空間内の仮想アドレスである。
【００４６】
ステップ205で、CPU100は、第1のファイル識別子に従って第1のターゲットファイルのインデックスノードを獲得し、第1のターゲットファイルのインデックスノードは、第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含む。第1の仮想空間はメモリ内の第1の物理空間に従って仮想化された連続したアドレス空間であり、第1の物理空間は第1のターゲットファイルを記憶するのに用いられる。第1の仮想空間は事前設定されたグローバル仮想空間の一部であり、グローバル仮想空間はメモリ内の第2の物理空間に従って仮想化された連続したアドレス空間であり、第2の物理空間はファイルシステムにすべてのデータを記憶するのに用いられる。
【００４７】
本発明の本実施形態では、ファイルシステム内のすべてのデータをNVM200に記憶することができる。CPU100は、メモリバスを用いてNVM200に直接アクセスすることができるので、NVM200の空間を物理ページの形式で管理することができる。ファイルシステムは複数のファイルを含む。したがって、説明を明確にするために、本発明の本実施形態では、ファイルシステム全体のデータを記憶するのに用いられるメモリ空間を第2の物理空間と呼び、第1のターゲットファイルを記憶するのに用いられるNVM200内の空間を第1の物理空間と呼ぶ。第1の物理的空間は、不連続な物理空間であってよいことが理解されよう。実際の応用では、第1の物理空間は複数の不連続な物理ページを含んでいてよく、第1のターゲットファイルのデータは複数の物理ページに記憶される。本発明の本実施形態では、ファイルアクセス効率を向上させるために、CPU100は、ファイルシステム全体を仮想化されたグローバル仮想空間に従って管理することができる。グローバル仮想空間は、第2の物理空間に従って仮想化された連続したアドレス空間である。したがって、ファイルを記憶するのに用いられるNVM200内の物理空間に、仮想化された連続したグローバル仮想空間を用いて連続してアクセスすることができる。具体的には、CPU100は、第1のファイル識別子に従って第1のターゲットファイルのインデックスノードを獲得するために、第1のファイル識別子に従ってファイルシステムのメタデータを探索することができる。当業者には知られているように、メタデータとはファイルデータを記述するのに用いられるデータをいう。例えば、メタデータは、ファイルの位置およびサイズを記述するのに用いられる情報を含む。本発明の本実施形態では、第1のターゲットファイルのインデックスノードは、第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含む。第1の仮想空間は、グローバル仮想空間の一部であり、第1のターゲットファイルを記憶するのに用いられるメモリ内の第1の物理空間に従って仮想化された連続したアドレス空間である。第1の仮想空間に関する情報は、具体的には、第1の仮想空間の開始アドレスと第1の仮想空間のサイズ（size）とを含むことが理解されよう。第1の仮想空間の開始アドレスは、グローバル仮想空間における第1のターゲットファイルの開始アドレスである。第1の仮想空間のサイズは、第1のターゲットファイルの仮想サイズであり、第1の仮想空間のサイズは、第1のターゲットファイルのサイズ以上であってよい。
【００４８】
解決策をより明確に説明するために、以下で、図3を参照して本発明の本実施形態における第1の仮想空間および第1の物理空間について詳細に説明する。図3は、本発明の一実施形態によるファイル管理空間マッピングの概略図である。図3に示すように、第1のターゲットファイルは、NVM200内の4つの不連続な物理ページ（図3に影の部分として示す4つの物理ページを指す）に記憶されており、説明を容易にするために、第1のターゲットファイルを記憶するのに用いられる4つの物理ページを第1の物理空間（図3には示されていない）と呼ぶ。第1の仮想空間は、第1の物理空間に従って仮想化された連続したアドレス空間のセグメントである。第1の仮想空間のサイズは、第1の物理空間のサイズ以上であることが理解されよう。第1の仮想空間は、グローバル仮想空間の一部である。グローバル仮想空間は、ファイルシステム内のすべてのファイルを管理するのに用いられる仮想空間を含む。例えば、グローバル仮想空間は、第1のターゲットファイル（File＿1）を管理するのに用いられる第1の仮想空間を含み、第2のターゲットファイル（File＿2）を管理するのに用いられる第3の仮想空間および他のファイルを管理するのに用いられる他の仮想空間（図3には示されていない）をさらに含む。説明を容易にするために、以下では説明例として第1の仮想空間を用いる。第1のターゲットファイル（File＿1）を管理するために、第1の仮想空間のサイズが第1の物理空間のサイズと等しい例を用いる。第1の仮想空間は、4つの仮想ページを含む。各仮想ページのサイズは、メモリ内の物理ページのサイズと同じである。例えば、仮想ページのサイズと物理ページのサイズはどちらも4Kとすることができる。第1の仮想空間の4つの仮想ページは、第1のターゲットファイルFile＿1のデータを記憶するのに用いられる4つの物理ページを仮想化するのにそれぞれ用いられ（例えば、File＿1−1、File＿1−2、File＿1−3、およびFile＿1−4）、メモリ内の4つの物理ページにそれぞれマップされる。本発明の本実施形態では、第1の仮想空間の仮想ページとメモリ内の物理ページとの間のマッピングは、グローバル・ファイル・ページ・テーブルを用いて実現することができる。
【００４９】
説明を容易にするために、本発明の本実施形態では、ファイルシステムのデータを記憶するのに用いられるメモリ内の空間を第2の物理空間と呼ぶ。ある事例では、メモリはファイルシステムのデータのみを記憶するのに用いられ、ファイルシステムに属さないデータには図1に示すDRAM300およびディスク400を用いてアクセスすることができることが理解されよう。この事例では、第2の物理空間は、NVM200の空間全体とすることができる。別の事例では、NVM200は、ファイルシステムのデータを記憶するのに用いられるだけでなく、ファイルシステムに属さないデータを記憶するのにも用いられてよい。この事例では、第2の物理空間に加えて、メモリは、ファイルシステムに属さないデータを記憶するのに用いられる物理空間をさらに含むことができる。したがって、ここでは制限が課されず、本発明の本実施形態では、ファイルシステムのデータを記憶するのに用いられる第2の物理空間のみを説明している。
【００５０】
ステップ210で、CPU100は、プロセスの第1の仮想空間と第2の仮想空間との間の第1のマッピング関係を確立する。当業者には知られているように、プロセスとはオペレーティングシステムの構造的基礎であり、プロセスは、独立した機能を有するプログラムのものであり、データセットに関するものである実行アクティビティであり、プログラムの1回の実行とみなすことができる。カーネルとはオペレーティングシステムの中核であり、オペレーティングシステムの最も基本的な機能を提供する。カーネルは、オペレーティングシステムの作業の基礎であり、システムのプロセスおよびメモリの管理を担う。各プロセスは独自の専用仮想アドレス空間と、アドレス指定に用いられる専用ページディレクトリとを有する。加えて、各プロセスはシステムコールによってカーネルにトラップすることができる。したがって、システム内のすべてのプロセスは、カーネルの仮想アドレス空間とカーネルのページディレクトリとを共用する。いずれかのプロセスがカーネルの仮想アドレス空間にアクセスする必要がある場合には、カーネルのページディレクトリ内のページテーブルのベースアドレスをプロセスのページディレクトリにコピーする必要がある。説明を容易にするために、本発明の本実施形態での説明例として1つのプロセスを用いる。
【００５１】
CPU100がメモリバスを用いてメモリ内の第1のターゲットファイルにアクセスし、オペレーティングシステムがファイルシステムにアクセスする際のシステムコールによりファイルアクセス効率が低下することを回避し、ユーザモードでファイルに連続してアクセスすることを可能にするために、本発明の本実施形態では、第1の仮想空間を、第1のターゲットファイルにアクセスするプロセスの第2の仮想空間にマップすることができる。第2の仮想空間は、プロセスのユーザ空間における連続した仮想アドレス空間のセグメントである。当業者には知られているように、オペレーティングシステムにおいて、仮想メモリは、一般に、ユーザ空間とカーネル空間の2つの部分に分割されている。カーネルやドライバといったコアソフトウェアはカーネル空間で動作し、通常のアプリケーションはユーザ空間で動作する。ユーザ空間は、すべてのプロセスがアクセス権を有する空間である。ユーザ空間で実行されるプログラムは低レベルの権限を有し、プログラムが使用を許されるいくつかのシステムリソースのみを見ることができる。カーネル空間で実行されるプログラムは高レベルの権限を有し、ハードウェアデバイスにアクセスするためのすべての権限を有する。
【００５２】
具体的には、図3に示すように、第1のターゲットファイルを管理するのに用いられる第1の仮想空間は、プロセスのユーザ空間において第2の仮想空間にマップすることができ、第2の仮想空間は第1の仮想空間以下の大きさである。説明を明確にするために、本発明の本実施形態では、第1の仮想空間と第2の仮想空間との間のマッピング関係を第1のマッピング関係と呼ぶ。マップ時に、ある事例では、第1の仮想空間は、第1の仮想空間の開始アドレスおよびサイズと、事前設定されたマッピングオフセットとに従って第2の仮想空間にマップされる。このマッピング方式では、第1の仮想空間のサイズは第2の仮想空間のサイズと同じであるが、第1の仮想空間の開始アドレスは第2の仮想空間の開始アドレスと異なり、開始アドレスの差がマッピングオフセットである。この事例では、第2の仮想空間の開始アドレスを、第1の仮想空間の開始アドレスと事前設定されたマッピングオフセットとに従って算出することができる。別の事例では、第1の仮想空間は、第1の仮想空間の開始アドレスおよびサイズに従って第2の仮想空間に直接マップされる。このマッピング方式では、第1の仮想空間の開始アドレスは第2の仮想空間の開始アドレスと同じであり、第1の仮想空間のサイズは第2の仮想空間のサイズと同じである。言い換えると、このマッピング方式では、マッピングオフセットは0であるとみなすことができる。実際の応用では、第1の仮想空間と第2の仮想空間との間の第1のマッピング関係が確立された後で、第2の仮想空間の開始アドレスを指し示すポインタをプロセスに戻すことができる。
【００５３】
ステップ215で、CPU100は、第2の仮想空間の開始アドレスに従って、配置された複数のレジスタの中から、アクセスされるべきファイル管理レジスタを決定し、ファイル管理レジスタは、グローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、グローバル・ファイル・ページ・テーブルはメモリ内の第1のターゲットファイルの物理アドレスを指し示すのに用いられる。上述のように、ユーザモードで動作しているプロセスがメモリにアクセスする必要がある場合、MMUを用いてプロセスのユーザ空間における仮想アドレスをメモリにおける物理アドレスに変換する必要がある。本発明の本実施形態では、プロセス・ページ・テーブルに対する負荷を低減し、システムコールによって生じるシステムに対する負荷を低減するために、CPU100に複数のレジスタが配置されている。既存のレジスタCR0〜レジスタCR3に加えて、CPU100は、ファイルシステムを管理するために特に用いられるレジスタをさらに含む。説明を容易にするために、本発明の本実施形態では、ファイルシステムを管理するために特に用いられるレジスタをファイル管理レジスタと呼ぶ。本発明の本実施形態では、レジスタCR3は、プロセス・ページ・テーブルのページディレクトリのベースアドレスを記憶している。ファイル管理レジスタは、グローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶している。プロセス・ページ・テーブルのページディレクトリのベースアドレスとは、プロセス・ページ・テーブルのページディレクトリの開始物理アドレスをいう。グローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスとは、グローバル・ファイル・ページ・テーブルのページディレクトリの開始物理アドレスをいう。グローバル・ファイル・ページ・テーブルは、ファイルシステム内のすべてのファイルのメモリ内の物理アドレスを指し示すのに用いられる。
【００５４】
本発明の本実施形態では、ファイルシステムにアクセスするすべてのプロセスは、NVM200内のファイルシステムにアクセスするのに、配置されたファイル管理レジスタを用いる必要がある。具体的には、ファイルシステムにアクセスするすべてのプロセスは、グローバル仮想空間内の仮想アドレスをNVM200の空間内の物理アドレスに変換するためにファイル管理レジスタにアクセスし、ファイルシステムにアクセスしないプロセスは、既存のレジスタCR3を用いて、ファイルシステムのデータを記憶するのに用いられる空間を除くDRAM300内またはNVM200内の他の空間へのアクセスを実現する必要がある。実際の応用では、アクセスされるべきレジスタは、アクセスされるべきユーザ空間の開始アドレスに従って決定されてよい。例えば、アクセスされるべきユーザ空間の開始アドレスが0x00000000から0xF0000000までの範囲内である場合、アクセスされるべきレジスタはレジスタCR3であると判定され、アクセスされるべきユーザ空間の開始アドレスが0xF0000000から0xFFFFFFFFまでの範囲内である場合、アクセスされるべきレジスタはファイル管理レジスタであると判定される。具体的には、このステップでは、CPU100内のメモリ管理部MMU104は、配置された複数のレジスタの中から、第2の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定することができる。ファイル管理レジスタは、グローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶している。したがって、このステップでは、グローバル・ファイル・ページ・テーブルは、NVM200内の第1のターゲットファイルの物理アドレスを指し示すことができる。
【００５５】
本発明の本実施形態をより明確に説明するために、以下で、図4を参照して本発明の本実施形態におけるグローバル・ファイル・ページ・テーブルについて説明する。図4は、本発明の一実施形態によるページテーブルの概略図である。図4に示すように、本発明の本実施形態では、少なくとも1つのレジスタCR3 1042とファイル管理レジスタ1044とがCPU100に配置されている。MMU104は、レジスタCR3 1042にアクセスすることによってプロセス・ページ・テーブル1046にアクセスすることができ、MMU104は、ファイル管理レジスタ1044にアクセスすることによってグローバル・ファイル・ページ・テーブル1048にアクセスすることができる。レジスタCR3 1042は、プロセス・ページ・テーブル1046のページディレクトリのベースアドレスを記憶しており、ファイル管理レジスタ1044は、グローバル・ファイル・ページ・テーブル1048のページディレクトリのベースアドレスを記憶している。プロセス・ページ・テーブル1046は、DRAMの空間1047内の物理ページの物理アドレスを指し示すのに用いられる。グローバル・ファイル・ページ・テーブル1048は、NVMの空間1049内の物理ページの物理アドレスを指し示すのに用いられる。プロセス・ページ・テーブル1046とグローバル・ファイル・ページ・テーブル1048とはどちらも、単一レベル・ページ・テーブルであっても、マルチレベル・ページ・テーブルであってもよい。例えば、図4に示すように、プロセス・ページ・テーブル1046は、ページディレクトリ、ページ・ミドル・ディレクトリ（page middle directory、PMD）、およびページテーブル（page table、PT）を含み、グローバル・ファイル・ページ・テーブル1048は、ページディレクトリ、ページ・アッパ・ディレクトリ（page upper directory、PUD）、ページ・ミドル・ディレクトリ（PMD）、およびページテーブルを含む。プロセス・ページ・テーブル1046のページテーブル（PT）内のページ・テーブル・エントリ（page table entry、PTE）は、DRAMの空間1047内の物理ページを指し示す物理アドレスを含み、グローバル・ファイル・ページ・テーブル1048のページテーブル（PT）のページ・テーブル・エントリは、NVMの空間1049内の物理ページを指し示す物理アドレスを含む。
【００５６】
ステップ220で、CPU100は、第1のマッピング関係に従って第1のアクセス要求の開始アドレスを第1の仮想空間のアクセスアドレスに変換する。上述のように、ファイルアクセス効率を向上させるために、本発明の本実施形態では、ファイルシステムのすべてのデータを記憶するのに用いられる第2の物理空間に従って仮想化されたグローバル仮想空間は連続したアドレス空間のセグメントであり、指定されたグローバル仮想空間を用いてファイルにアクセスすることによって、ファイルの複数の不連続な物理ページに対して連続したアクセス動作を行うことができる。具体的なアクセス時には、第1のターゲットファイルの第1の仮想空間のアドレスが、ファイル管理レジスタに従って、NVM200内の第1のターゲットファイルの第1の物理空間の物理アドレスに変換される。実際の応用では、プロセスの処理時に、プロセスの仮想アドレス空間に従ってアクセスされるべきレジスタを決定する必要があり、ファイル管理レジスタは、ファイルシステムのグローバル仮想空間の仮想アドレスを、NVM200内のファイルシステムの物理アドレスに変換する。したがって、このステップでは、第2の仮想空間のアドレスを第1の仮想空間のアドレスに変換する必要がある。特定の実装形態では、第1のアクセス要求の開始アドレスは、プロセスの仮想空間内のアドレスである。したがって、第1のアクセス要求の開始アドレスは、第2の仮想空間内のアドレスとすることができる。このステップでは、第1の仮想空間のアクセスアドレスは、第1のアクセス要求の開始アドレスおよび指定されたマッピングオフセットに従って決定されてよい。指定されたマッピングオフセットが0である場合、第1の仮想空間の開始アドレスは第2の仮想空間の開始アドレスと同じであることが理解されよう。
【００５７】
ステップ225で、CPU100は、メモリ内の第1のターゲットファイルの物理アドレスを獲得するために、第1の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスする。以下で、図5を参照してこのステップについて詳細に説明する。図5は、本発明の一実施形態によるグローバル・ファイル・ページ・テーブルへのアクセスの概略図である。具体的には、図5に示すように、CPU100内のMMU104は、ファイル管理レジスタ1044にアクセスすることによって、グローバル・ファイル・ページ・テーブル（例えば、図4に示すグローバル・ファイル・ページ・テーブル1048）にアクセスすることができる。説明を容易にするために、図5の説明に第1の仮想空間のアクセスアドレスが32ビット仮想アドレスである例を用いる。
【００５８】
図5に示す実施形態では、グローバル・ファイル・ページ・テーブルは、ページディレクトリ501およびページテーブル502を含むことができる。具体的なアクセス時に、MMU104は、ファイル管理レジスタにアクセスすることによってグローバル・ファイル・ページ・テーブルのページディレクトリ501のベースアドレスを獲得し、ページディレクトリ501のベースアドレスを開始アドレスとして用い、第1の仮想空間のアクセスアドレスの最上位10ビット（第22ビットから第31ビットまで）をオフセットとして用いることによって、ページディレクトリ501内のページ・ディレクトリ・エントリ5011を見つけることができる。ページ・ディレクトリ・エントリ5011は、ページテーブル502の開始物理アドレスを含み、ページ・テーブル・エントリ5021はページテーブル502において、第1の仮想空間のアクセスアドレスの中位10ビット（第12ビットから第21ビットまで）をオフセットとして用いて、ページテーブル502の開始物理アドレスに従って見つけられる。ページ・テーブル・エントリ5021は、メモリ内の第1のターゲットファイルの物理ページ503の開始物理アドレスを記憶している。アクセスされるべきライン（line）5031は、物理ページ503において、第1の仮想空間のアクセスアドレスの最下位12ビット（第0ビットから第11ビットまで）をオフセットとして用いて、物理ページ503の開始物理アドレスに従って見つけられる。ライン5031のアドレスは、メモリ内のアクセスされるべき第1のターゲットファイルの開始物理アドレスである。
【００５９】
メモリアクセス時には、ライン（line）を粒度として用いてデータ読出し／データ書込みを行うことができ、したがって、アクセスされるべきライン（line）5031が決定された後で、アクセスの開始位置の物理アドレスに従ってNVM200に対してアクセス動作を行うことができることが理解されよう。例えば、第1のアクセス要求が読出し要求である場合、物理ページ503内のライン5031の位置が読み出されるべきデータの開始位置として用いられ、第1のターゲットファイルに対して読出し動作を行うようメモリコントローラに命令するために、読み出されるべきデータの開始位置の物理アドレスに従ってメモリコントローラにデータ読出し命令が送られる。第1のアクセス要求が書込み要求である場合、ライン5031の位置を新しく書き込まれるデータの開始位置として用いることができ、第1のターゲットファイルに対して書込み動作を行うようメモリコントローラに命令するために、書き込まれるべき新しいデータの開始位置の物理アドレスに従ってメモリコントローラにデータ書込み命令が送られる。図5に示す本実施形態から分かるように、CPU100は、第1の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスすることによって、メモリ内の第1のターゲットファイルの物理アドレスを獲得することができ、それによって第1のターゲットファイルにアクセスするという目的が達成される。
【００６０】
実際の応用では、メモリ空間を柔軟に割り振るために、書込み動作中にメモリ内の物理ページを第1のターゲットファイルに動的に割り振ることができる。以下で、図2に示すステップ225で行われる書込み動作の具体的なプロセスについて、図6を参照して詳細に説明する。図6は、本発明の一実施形態によるファイル書込み方法の流れ図である。以下では、第1のアクセス要求が書込み要求である例を用いて図6を説明する。図6に示すように、本方法は以下のステップを含むことができる。
【００６１】
ステップ605で、CPU100は、第1の仮想空間のアクセスアドレスが指し示す、メモリ内の物理アドレスである第4の物理アドレスを、グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定する。実際の応用において、ある事例では、ファイルが展開されたときに、ファイルに割り振られた物理メモリ空間が不足し、ファイルを記憶するために新しいメモリ空間を提供することが必要になる。別の事例では、物理メモリ空間を柔軟に割り振り、空きメモリを節約し、システムのスループットを向上させるために、新しいファイルが作成されたときに、ファイルに物理メモリ空間を事前に割り振らず、代わりに、ファイルに書き込まれるべきデータがあるときに限り、書き込まれるべきデータの量に従ってファイルに物理メモリ空間が割り振られる。これら2つの事例では、第1のアクセス要求の開始アドレスが、第1のマッピング関係に従って第1の仮想空間のアクセスアドレスに変換された後で、第1のターゲットファイルが第1の仮想空間のアクセスアドレスに従ってアクセスされるときに、書き込まれるべきデータに物理ページが割り振られていない場合、グローバル・ファイル・ページ・テーブルには書き込まれるべきデータの物理ページの物理アドレスが記録されていない。このステップで、CPU100内のMMU104は、第1の仮想空間のアクセスアドレスおよびグローバル・ファイル・ページ・テーブルに従って、メモリ内の書き込まれるべきデータの物理ページの物理アドレスを獲得することができない。説明を明確にするために、本発明の本実施形態では、NVM200内の物理ページのものであり、第1の仮想空間のアクセスアドレスが指し示す物理アドレスを、第4の物理アドレスと呼ぶ。
【００６２】
ステップ610で、CPU100は、第1のターゲットファイルに物理ページを割り振る。具体的には、CPU100内のMMU104が、第1の仮想空間のアクセスアドレスが指し示す第4の物理アドレスを、グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定した場合に、MMU104は、ページフォールト要求をトリガして、CPU100上で動作するオペレーティングシステムのカーネルに、NVM200内の物理ページを第1のターゲットファイルにアクセスするプロセスに割り振るよう要求する。オペレーティングシステムのカーネルは、メモリ内のアイドル状態の物理ページから、ページフォールト要求に従って第1のターゲットファイルに物理ページを割り振ることができる。第1のアクセス要求が書込み要求である場合に、第1のアクセス要求は、第1のファイル識別子を搬送するだけでなく、書き込まれるべきデータの量も搬送することができ、物理ページを割り振るときに、オペレーティングシステムのカーネルは、書き込まれるべきデータの量に従って物理ページを割り振ることができることが理解できよう。
【００６３】
実際の応用では、物理ページを第1のターゲットファイルに割り振った後で、オペレーティングシステムのカーネルは、グローバル・ファイル・ページ・テーブルに、割り振られた物理ページの物理アドレスを記録する必要がある。具体的には、オペレーティングシステムのカーネルは、グローバル・ファイル・ページ・テーブルに、割り振られた物理ページの対応するページ・テーブル・エントリを設け、割り振られた物理ページの物理アドレスを設けられたページ・テーブル・エントリに記録して、続くアクセス動作時に、第1のアクセス要求の開始アドレスに従って、割り振られた物理ページの物理アドレスを見つけることができるようにする必要がある。
【００６４】
ステップ615で、CPU100は、第1のアクセス要求で搬送された書き込まれるべきデータを割り振られた物理ページに書き込む。第1のアクセス要求が書込み要求である場合、第1のアクセス要求は書き込まれるべきデータを搬送する必要があることが理解されよう。具体的には、物理ページが第1のターゲットファイルに割り振られた後で、MMU104は、割り振られた物理ページの物理アドレスをCPU100に戻すことができる。CPU100は、割り振られた物理ページに第1のアクセス要求で搬送された書き込まれるべきデータを書き込むよう命令するために、割り振られた物理ページの物理アドレスに従ってメモリコントローラにデータ書込みコマンドを送ることができる。
【００６５】
本発明の本実施形態では、新しく割り振られた物理ページに対する書込み動作が完了した後で、書込み動作の結果に従って第1のターゲットファイルのメタデータをさらに更新することができる。具体的な更新プロセスは、以下のステップを含むことができる。
【００６６】
ステップ620で、CPU100は、第1の仮想空間のアクセスアドレスと書き込まれるべきデータの量とに従って、第1の仮想空間内のアドレスである第1のアクセス要求の終了アドレスを計算する。実際の応用では、第1のアクセス要求で搬送された書き込まれるべきデータが割り振られた物理ページに書き込まれた後で、CPU100は、第1の仮想空間のアクセスアドレスと書き込まれるべきデータの量とに従って第1のアクセス要求の終了アドレスを計算することができる。第1の仮想空間のアクセスアドレスはグローバル仮想空間内の仮想アドレスであり、したがって、第1のアクセス要求の終了アドレスもグローバル仮想空間内の仮想アドレスであることが理解されよう。具体的には、第1のアクセス要求の終了アドレスは、第1の仮想空間内のアドレスである。例えば、第1のアクセス要求の開始アドレスが0x00000000であり、書き込まれるべきデータの量が8kである場合、第1のアクセス要求の終了アドレスは0x00002000である。
【００６７】
ステップ625で、CPU100は、第1の仮想空間の開始アドレスと第1のアクセス要求の終了アドレスとに従って第1の仮想空間の更新されたサイズを獲得する。データが第1のターゲットファイルに書き込まれた後で、第1の仮想空間の開始アドレスと、ステップ620で獲得した第1のアクセス要求の終了アドレスとに従って、第1のターゲットファイルの更新されたサイズを獲得できることが理解されよう。第1のターゲットファイルの更新されたサイズは、第1の仮想空間の更新されたサイズである。
【００６８】
ステップ630で、CPU100は、第1のターゲットファイルのインデックスノードに、第1の仮想空間の更新されたサイズを記録する。第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報は、第1のターゲットファイルのインデックスノードに記録される。したがって、第1のターゲットファイルに対して書込み動作が行われた後で、第1のターゲットファイルのメタデータ情報が書込み動作の結果に従って更新される必要がある。上述したように、第1の仮想空間に関する、第1のターゲットファイルのインデックスノードに記録された情報は、第1の仮想空間の開始アドレスおよびサイズを含み、第1のターゲットファイルのサイズは、第1の仮想空間の開始アドレスおよびサイズに従って獲得されてよい。ステップ625で第1の仮想空間の更新されたサイズが獲得された後、このステップで、第1のターゲットファイルのメタデータを更新するために、第1の仮想空間の更新されたサイズを第1のターゲットファイルのインデックスノードに記録することができる。
【００６９】
本発明の本実施形態で提供するファイルアクセス方法によれば、CPU100は、仮想化されたグローバル仮想空間を用いてファイルシステム内のすべてのファイルを集中的に管理し、指定されたグローバル・ファイル・ページ・テーブルを用いてファイルシステムにアクセスすることができる。具体的なアクセス時に、CPU100は、アクセスされるべき第1のターゲットファイルのファイル識別子に従って、メタデータ内の第1のターゲットファイルのインデックスノードを獲得することができ、第1のターゲットファイルのインデックスノードは、グローバル仮想空間における第1のターゲットファイルの第1の仮想空間に関する情報を記憶している。CPU100は、第1の仮想空間に関する、インデックスノードに記録された情報に従って、第1の仮想空間をプロセスの第2の仮想空間にマップし、CPU100内のMMU104を用いて追加されたファイル管理レジスタでアドレス指定を行うことができる。ファイル管理レジスタは、グローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、したがって、MMU104は、第1の仮想空間の開始アドレスとグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスとに従って第1のターゲットファイルにアクセスすることができる第1の仮想空間は、連続した空間のセグメントである。したがって、本発明の本実施形態に記載する方法によれば、第1の仮想空間の開始アドレスおよびサイズに関する情報が第1のターゲットファイルのインデックスノードに記録されさえすればよく、記録された第1の仮想空間に関する情報を用いてメモリに記憶された第1のターゲットファイルに連続してアクセスすることができる。加えて、本発明の本実施形態では、新しく追加されたファイル管理レジスタを用いてグローバル・ファイル・ページ・テーブルでアドレス指定が行われる。したがって、ファイルのページ・テーブル・エントリをプロセス・ページ・テーブルに追加することも、リンクさせることも不要であり、それによって、システムオーバーヘッドが低減し、プロセス・ページ・テーブルに対する負荷が低減され、ファイルアクセス効率が向上する。
【００７０】
図7は、本発明の一実施形態による別のファイルアクセス方法の流れ図である。本方法は、図1に示す応用シナリオに適用することができる。以下で、図1および図2を参照して図7の方法を説明する。図7に示すように、本方法は以下のステップを含むことができる。
【００７１】
ステップ701で、CPU100は、第2のアクセス要求を受け取り、第2のアクセス要求は第2のファイル識別子と、第2のアクセス要求の開始アドレスとを搬送し、第2のファイル識別子はアクセスされるべき第2のターゲットファイルを指示するのに用いられる。例えば、第2のファイル識別子はFile＿2．docとすることができる。第2のターゲットファイルと第1のターゲットファイルとは、ファイルシステム内の異なるファイルであることに留意すべきである。
【００７２】
ステップ705で、CPU100は、第2のファイル識別子に従って、第2のターゲットファイルのインデックスノードがファイルシステムに存在するかどうか判定する。第2のファイル識別子によると、第2のターゲットファイルのインデックスノードがファイルシステムに存在しない場合には、ステップ710を実行し、そうでない場合には、ステップ725を実行する。実際の応用では、CPU100は、第2のターゲットファイルのインデックスノードが存在するかどうか判定するために、第2のファイル識別子に従ってファイルシステムのメタデータを探索することができる。当業者には知られているように、第2のターゲットファイルのインデックスノードがメタデータに存在しない場合、それは、第2のターゲットファイルがファイルシステムに存在しないことを指示している。当業者には知られているように、第2のアクセス要求が読出し要求である場合、CPU100上で動作するオペレーティングシステムは、第2のターゲットファイルにアクセスするプロセスにアクセスエラー応答を返すことができ、そうではなく、第2のアクセス要求が書込み要求である場合、システムはステップ710を実行することができる。
【００７３】
ステップ710で、CPU100は、ファイルシステムに第2のターゲットファイルのインデックスノードを作成する。具体的には、第2のファイル識別子に従ってファイルシステムのメタデータに第2のターゲットファイルのインデックスノードを追加することができる。
【００７４】
ステップ715で、第2のターゲットファイルに第3の仮想空間が割り振られ、第3の仮想空間はメモリ内の第3の物理空間に従って仮想化された連続したアドレス空間である。第2のターゲットファイルのインデックスノードが作成された後で、第2のターゲットファイルの管理を容易にするために、事前設定されたグローバル仮想空間において第2のターゲットファイルに第3の仮想空間を割り振る必要がある。第3の仮想空間は、事前設定されたグローバル仮想空間の一部であり、第3の仮想空間は、連続した仮想空間のセグメントである。具体的には、第3の仮想空間は、メモリにおいて第3の物理空間を仮想化することによって獲得することができる。第3の物理空間は、第2のターゲットファイルを記憶するのに用いられるメモリにおける物理空間である。当然ながら、実際の応用では、第3の物理空間は、第2のターゲットファイルが作成されるときにメモリにおいて第2のターゲットファイルに事前に割り振られるわずかな物理空間を指すこともでき、また第3の仮想空間は、第2のターゲットファイルが空のファイルであるときにメモリにおいて占有される空間を指すこともできる。本発明の本実施形態では、第3の仮想空間は第1の仮想空間とは異なり、第3の物理空間は第1の物理空間とは異なることが理解されよう。
【００７５】
ステップ720で、CPU100は、第2のターゲットファイルのインデックスノードに、第3の仮想空間に関する情報を記録し、第3の仮想空間は第2のターゲットファイルを管理するのに用いられる。実際の応用では、第2のターゲットファイルのインデックスノードが作成され、第3の仮想空間が第2のターゲットファイルに割り振られた後で、第2のターゲットファイルの管理を容易にするために、第3の仮想空間に関する情報を第2のターゲットファイルのインデックスノードに記録する必要がある。第3の仮想空間に関する情報は、第3の仮想空間の開始アドレスおよびサイズを含む。ステップ710、ステップ715、およびステップ720が行われた後には、作成された第2のターゲットファイルのメタデータ情報に従って第2のターゲットファイルにアクセスすることができることが理解されよう。例えば、ステップ730からステップ745に記載する方法を用いて第2のターゲットファイルに対して書込み動作を行うことができる。
【００７６】
ステップ725で、CPU100は、第2のファイル識別子に従って第2のターゲットファイルのインデックスノードを獲得し、第2のターゲットファイルのインデックスノードは、第2のターゲットファイルを管理するのに用いられる第3の仮想空間に関する情報を含み、第3の仮想空間はメモリ内の第3の物理空間（図3には示されていない）に従って仮想化された連続したアドレス空間であり、第3の物理空間は第2のターゲットファイルを記憶するのに用いられ、第3の仮想空間は事前設定されたグローバル仮想空間の一部である。
【００７７】
ステップ730で、CPU100は、プロセスの第3の仮想空間と第4の仮想空間との間の第2のマッピング関係を確立し、第4の仮想空間は、プロセスのユーザ空間における連続した仮想アドレス空間のセグメントである。
【００７８】
ステップ735で、CPU100は、配置された複数のレジスタの中から、第4の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定し、ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、グローバル・ファイル・ページ・テーブルはメモリ内の第2のターゲットファイルの物理アドレスを指し示すのに用いられる。具体的には、グローバル・ファイル・ページ・テーブルは、メモリ内の第3の物理空間における第2のターゲットファイルの開始アドレスを指し示すのに用いることができる。
【００７９】
ステップ740で、CPU100は、第2のマッピング関係に従って第2のアクセス要求の開始アドレスを第3の仮想空間のアクセスアドレスに変換する。
【００８０】
ステップ745で、CPU100は、メモリ内の第2のターゲットファイルの物理アドレスを獲得するために、第3の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスする。具体的には、CPU100内のMMU104は、第2のターゲットファイルにアクセスするために、第3の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスすることにより、メモリ内の第3物理空間における第2ターゲットファイルの物理アドレスへのアドレス指定を行うことができる。
【００８１】
図7のステップ725からステップ745は、それぞれ、図2に記載されているステップ205からステップ225と同様であることに留意すべきである。詳細については、ステップ205〜ステップ225の説明を参照されたく、ここでは詳細を繰り返さない。
【００８２】
図8は、本発明の一実施形態によるファイルアクセス装置の概略的構造図である。本装置は、メモリに基づいて設けられたファイルシステムにアクセスするように構成することができ、メモリは不揮発性メモリNVMである。図8に示すように、ファイルアクセス装置80は、
第1のアクセス要求を受け取るように構成された受取りモジュール800であって、第1のアクセス要求は第1のファイル識別子と第1のアクセス要求の開始アドレスとを搬送し、第1のファイル識別子はアクセスされるべき第1のターゲットファイルを指示するのに用いられる、受取りモジュール800と、
第1のファイル識別子に従って第1のターゲットファイルのインデックスノードを獲得するように構成された獲得モジュール805であって、第1のターゲットファイルのインデックスノードは第1のターゲットファイルを管理するのに用いられる第1の仮想空間に関する情報を含み、第1の仮想空間はメモリ内の第1の物理空間に従って仮想化された連続したアドレス空間であり、第1の物理空間は第1のターゲットファイルを記憶するのに用いられ、第1の仮想空間は事前設定されたグローバル仮想空間の一部であり、グローバル仮想空間はメモリ内の第2の物理空間に従って仮想化された連続したアドレス空間であり、第2の物理空間はファイルシステムにすべてのデータを記憶するのに用いられる、獲得モジュール805と、
プロセスの第1の仮想空間と第2の仮想空間との間の第1のマッピング関係を確立するように構成されたマッピングモジュール810であって、第2の仮想空間はプロセスのユーザ空間における連続した仮想アドレス空間のセグメントである、マッピングモジュール810と、
配置された複数のレジスタの中から、第2の仮想空間の開始アドレスに従って、アクセスされるべきレジスタをファイル管理レジスタとして決定するように構成された決定モジュール815であって、ファイル管理レジスタはグローバル・ファイル・ページ・テーブルのページディレクトリのベースアドレスを記憶しており、グローバル・ファイル・ページ・テーブルはメモリ内の第1のターゲットファイルの物理アドレスを指し示すのに用いられる、決定モジュール815と、
第1のマッピング関係に従って第1のアクセス要求の開始アドレスを第1の仮想空間のアクセスアドレスに変換するように構成された変換モジュール820であって、第1のアクセス要求の開始アドレスはプロセスの第2の仮想空間内のアドレスである、変換モジュール820と、
メモリ内の第1のターゲットファイルの物理アドレスを獲得するために、第1の仮想空間のアクセスアドレスに従ってファイル管理レジスタにアクセスするように構成されたアクセスモジュール825と、
を含むことができる。
【００８３】
ある事例では、本発明の本実施形態で提供するファイルアクセス装置80の受取りモジュール800は、第2のアクセス要求を受信するようにさらに構成されており、第2のアクセス要求は第2のファイル識別子を搬送し、第2のファイル識別子はアクセスされるべき第2のターゲットファイルを指示するのに用いられる。本発明の本実施形態で提供するファイルアクセス装置80は、判定モジュール830と、作成モジュール835と、割振りモジュール840と、記録モジュール845とをさらに含むことができる。
【００８４】
判定モジュール830は、第2のファイル識別子に従って、第2のターゲットファイルのインデックスノードがファイルシステムに存在しないと判定するように構成されている。
【００８５】
作成モジュール835は、ファイルシステムに第2のターゲットファイルのインデックスノードを作成するように構成されている。
【００８６】
割振りモジュール840は、第2のターゲットファイルに第3の仮想空間を割り振るように構成されており、第3の仮想空間はメモリ内の第3の物理空間に従って仮想化された連続したアドレス空間であり、第3の物理空間は第2のターゲットファイルを記憶するのに用いられ、第3の仮想空間は事前設定されたグローバル仮想空間の一部であり、第3の仮想空間は第1の仮想空間とは異なり、第3の物理空間は第1の物理空間とは異なる。
【００８７】
記録モジュール845は、第2のターゲットファイルのインデックスノードに、第3の仮想空間に関する情報を記録するように構成されており、第3の仮想空間は第2のターゲットファイルを管理するのに用いられる。
【００８８】
実際の応用では、本発明の本実施形態で提供するファイルアクセス装置80において、第1の仮想空間に関する情報は、第1の仮想空間の開始アドレスおよびサイズを含むことができる。第1のアクセス要求が書込み要求である場合に、アクセスモジュール825は、第1の仮想空間のアクセスアドレスが指し示す、メモリ内の物理アドレスである第4の物理アドレスを、グローバル・ファイル・ページ・テーブルに従って獲得することができないと判定し、第1のターゲットファイルに物理ページを割り振り、第1のアクセス要求で搬送された書き込まれるべきデータを割り振られた物理ページに書き込む、ように特に構成されている。記録モジュール845は、グローバル・ファイル・ページ・テーブルに、割り振られた物理ページの物理アドレスを記録するようにさらに構成されている。
【００８９】
別の事例では、第1の仮想空間に関する情報は第1の仮想空間の開始アドレスおよびサイズを含み、第1のアクセス要求は書き込まれるべきデータの量をさらに含んでいてよく、ファイルアクセス装置80は、第1の仮想空間のアクセスアドレスと書き込まれるべきデータの量とに従って第1のアクセス要求の終了アドレスを計算し、第1の仮想空間の開始アドレスと第1のアクセス要求の終了アドレスとに従って第1の仮想空間の更新されたサイズを獲得し、第1のターゲットファイルのインデックスノードに、第1の仮想空間の更新されたサイズを記録する、ように構成された、更新モジュール850、をさらに含むことができる。第1のアクセス要求の終了アドレスは第1の仮想空間内のアドレスである。
【００９０】
本発明の本実施形態で提供するファイルアクセス装置80は、図2から図7の各実施形態に記載されるファイルアクセス方法を実行することができる。各モジュールの機能の詳細については、方法実施形態の説明を参照されたく、ここでは詳細を繰り返さない。
【００９１】
図8に示す実施形態は単なる例示にすぎないことが理解されよう。例えば、モジュール分割は単なる論理的機能分割にすぎず、実際の実装に際しては他の分割も可能である。例えば、複数のモジュールまたはコンポーネントを組み合わせ、または統合して別の装置にする場合もあり、いくつかの特徴を無視し、または実行しない場合もある。加えて、表示された、または論じられた相互結合または直接結合または通信接続を、いくつかの通信インターフェースを用いて実現することもできる。モジュール間の間接結合または通信接続は、電子的形態、機械的形態、または他の形態として実現することができる。
【００９２】
別々の部品として記述されたモジュールは物理的に分離している場合もそうでない場合もあり、モジュールとして表示された部品は、物理的ユニットである場合もそうでない場合もあり、一箇所に位置する場合もあり、複数のネットワークユニット上に分散される場合もある。モジュールの一部または全部を、各実施形態の解決策の目的を達成するための実際の必要に従って選択することもできる。
【００９３】
本発明の本実施形態で提供するファイルアクセス装置80によれば、仮想化されたグローバル仮想空間を用いてファイルシステム内のすべてのファイルを集中的に管理することができ、指定されたグローバル・ファイル・ページ・テーブルを用いてファイルシステムにアクセスすることができる。具体的なアクセス時には、新しく追加されたファイル管理レジスタを用いてグローバル・ファイル・ページ・テーブルでアドレス指定を行うことができる。したがって、ファイルのページ・テーブル・エントリをプロセス・ページ・テーブルにコピーしなくてもよく、それによって、プロセス・ページ・テーブルに対する負荷が低減され、ファイルアクセス効率が向上する。
【００９４】
本発明の一実施形態は、プログラムコードを記憶したコンピュータ可読記憶媒体を含む、データ処理のためのコンピュータプログラム製品をさらに提供し、プログラムコードに含まれる命令は、前述の方法実施形態のいずれか1つに記載される方法プロセスを実行するのに用いられる。当業者には理解されるように、前述の記憶媒体は、USBフラッシュドライブ、取り外し可能ハードディスク、磁気ディスク、光ディスク、ランダム・アクセス・メモリ（Random−Access Memory、RAM）、ソリッド・ステート・ディスク（Solid State Disk、SSD）、不揮発性メモリ（non−volatile memory）といった、プログラムコードを記憶することのできる任意の非一時的な（non−transitory）機械可読媒体を含む。
【００９５】
本出願で提供する実施形態は単なる例示にすぎないことに留意すべきである。当業者には明確に知られているように、説明の便宜を図り、簡潔を期すために、前述の実施形態において、各実施形態は異なる局面を強調しており、ある実施形態に詳細に記載されていない部分については、別の実施形態の関連する記述を参照することができる。本発明の各実施形態、特許請求の範囲、および添付の図面で開示した特徴は、独立して存在していてもよく、組み合わさって存在していてもよい。本発明の各実施形態においてハードウェア形態で記載されている特長は、ソフトウェアによって実行されてもよく、逆もまた同様であり、これについては本明細書では限定しない。
【符号の説明】
【００９６】
80  ファイルアクセス装置
100  中央処理装置（CPU）、プロセッサ
102  CPU実行部
104  メモリ管理部（MMU）
200  不揮発性メモリ（NVM）
300  ダイナミック・ランダム・アクセス・メモリ（DRAM）
400  ディスク
501  ページディレクトリ
502  ページテーブル
503  物理ページ
800  受取りモジュール
805  獲得モジュール
810  マッピングモジュール
815  決定モジュール
820  変換モジュール
825  アクセスモジュール
830  判定モジュール
835  作成モジュール
840  割振りモジュール
845  記録モジュール
850  更新モジュール
1042  CR3レジスタ
1044  ファイル管理レジスタ
1046  プロセス・ページ・テーブル
1047  DRAMの空間
1048  グローバル・ファイル・ページ・テーブル
1049  NVMの空間
5011  ページ・ディレクトリ・エントリ
5021  ページ・テーブル・エントリ
5031  ライン
【図１】
0006460497.tif 000002
【図２】
0006460497.tif 000003
【図３】
0006460497.tif 000004
【図４】
0006460497.tif 000005
【図５】
0006460497.tif 000006
【図６】
0006460497.tif 000007
【図７】
0006460497.tif 000008
【図８】
0006460497.tif 000009