(57)【要約】【課題】不揮発メモリの同じ領域を主記憶領域およびファイル領域の何れとしてもアクセスできるコンピュータシステムを提供する。【解決手段】メモリ化処理部１１１はファイルシステム上のファイルを仮想メモリ空間におけるデータとしてアクセスできるようにする処理を行う。物理アドレス算出部１１３によってファイルのブロック番号から算出された物理アドレスは、メモリ領域取得部１１４により取得された仮想アドレスと対応付けてページテーブル５００に登録される。これによりメモリとしてのアクセスが可能となる。一方、ファイル化処理部１１６は仮想メモリ空間上のデータをファイルとして保存する処理を行う。ブロック番号算出部１１８によってメモリ領域の物理アドレスから算出されたブロック番号は、ファイル管理テーブル４００に登録される。これによりファイルとしてのアクセスが可能となる。【選択図】      図８
2004362464.tif 000002
【特許請求の範囲】
【請求項１】
不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから前記ファイルのアクセス単位番号を読み出すファイル指定手段と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、
仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに前記物理アドレスが対応するようアドレス変換器に登録するメモリ領域取得手段と
を具備することを特徴とする処理装置。
【請求項２】
前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定して前記アドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段をさらに具備し、
前記メモリ領域指定手段により読み出された物理アドレスにより前記不揮発メモリにアクセスすることを特徴とする請求項１記載の処理装置。
【請求項３】
前記ファイル指定手段により読み出されたアクセス単位番号により前記不揮発メモリにアクセスすることを特徴とする請求項２記載の処理装置。
【請求項４】
前記ファイル指定手段は、前記指定したファイルのファイルエントリを前記ファイル管理テーブルから削除する
ことを特徴とする請求項１記載の処理装置。
【請求項５】
不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段と、
前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出するアクセス単位番号算出手段と、
ファイル管理テーブルにファイルエントリを生成してそのファイルエントリに前記アクセス単位番号を登録するファイル生成手段と
を具備することを特徴とする処理装置。
【請求項６】
前記不揮発メモリ上のファイルを指定して前記ファイル管理テーブルから前記ファイルのアクセス単位番号を読み出すファイル指定手段をさらに具備し、
前記ファイル指定手段により読み出されたアクセス単位番号により前記不揮発メモリにアクセスすることを特徴とする請求項５記載の処理装置。
【請求項７】
前記メモリ領域指定手段により読み出された物理アドレスにより前記不揮発メモリにアクセスすることを特徴とする請求項６記載の処理装置。
【請求項８】
前記メモリ領域指定手段は、前記指定した仮想アドレスが未使用状態になるよう前記アドレス変換器に登録する
ことを特徴とする請求項５記載の処理装置。
【請求項９】
不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、前記不揮発メモリ上のファイルを管理するファイル管理テーブルと、前記処理装置における仮想アドレスを前記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、
前記処理装置は、
前記不揮発メモリ上に存在するファイルを指定して前記ファイル管理テーブルから前記ファイルのアクセス単位番号を読み出すファイル指定手段と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、
仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに前記物理アドレスが対応するよう前記アドレス変換器に登録するメモリ領域取得手段と
を備えることを特徴とするコンピュータシステム。
【請求項１０】
不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、前記不揮発メモリ上のファイルを管理するファイル管理テーブルと、前記処理装置における仮想アドレスを前記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、
前記不揮発メモリは複数種類のページファイルを保持し、
前記処理装置は、
主記憶領域として使用すべきページファイルを前記複数種類のページファイルから選択して指定し、前記ファイル管理テーブルから前記指定したページファイルのアクセス単位番号を読み出すファイル指定手段と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、
仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに前記物理アドレスが対応するよう前記アドレス変換器に登録するメモリ領域取得手段と
を備えることを特徴とするコンピュータシステム。
【請求項１１】
不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、前記不揮発メモリ上のファイルを管理するファイル管理テーブルと、前記処理装置における仮想アドレスを前記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、
前記処理装置は、
前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定して前記アドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段と、
前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出するアクセス単位番号算出手段と、
前記ファイル管理テーブルにファイルエントリを生成してそのファイルエントリに前記アクセス単位番号を登録するファイル生成手段と
を備えることを特徴とするコンピュータシステム。
【請求項１２】
不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから前記ファイルのアクセス単位番号を読み出す手順と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する手順と、
仮想アドレス空間においてメモリ領域を取得する手順と、
前記取得されたメモリ領域の仮想アドレスに前記物理アドレスが対応するようアドレス変換器に登録する手順と
を具備することを特徴とする処理方法。
【請求項１３】
不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順と、
前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順と、
前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出する手順と、
前記ファイルエントリに前記アクセス単位番号を登録する手順と
を具備することを特徴とする処理方法。
【請求項１４】
不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから前記ファイルのアクセス単位番号を読み出す手順と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する手順と、
仮想アドレス空間においてメモリ領域を取得する手順と、
前記取得されたメモリ領域の仮想アドレスに前記物理アドレスが対応するようアドレス変換器に登録する手順と
をコンピュータに実行させることを特徴とするプログラム。
【請求項１５】
不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順と、
前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順と、
前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出する手順と、
前記ファイルエントリに前記アクセス単位番号を登録する手順と
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発メモリを利用したコンピュータシステムに関し、特に不揮発メモリ上に主記憶とファイルとが混在することを許容するコンピュータシステム、処理装置、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【０００２】
【従来の技術】
従来のコンピュータシステムにおいては、伝統的なメモリ階層構造の下、キャッシュメモリには小容量で高速なＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等が使用され、主記憶装置には中容量で中速なＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等が使用され、また、外部記憶装置には大容量で低速な磁気ディスク装置が用いられている。そして、プロセッサからメモリアドレスによりアクセスされる主記憶領域は主記憶装置に保持され、ファイルとしてアクセスされるファイル領域は磁気ディスク装置に保持される。
【０００３】
主記憶装置は、装置の電源が切断されると記憶していた内容を失ってしまうという揮発な性質を有するものであり、主記憶領域は電源切断のたびにクリアされる。一方、磁気ディスク装置は、装置の電源が切断されても記憶していた内容を失わないという不揮発な性質を有するものであり、磁気ディスク装置に保存されたファイルの内容は電源切断後も維持される。
【０００４】
これに対し、ファイルをメモリ上に配置することによりファイルへのアクセスを高速化するＲＡＭディスクが使用されるようになった。これは、主記憶装置における拡張メモリ領域にＲＡＭディスク用の領域を確保して、この領域をファイル領域として用いるものである。しかしながら、上述のように主記憶装置は揮発性メモリであるため、そのままでは電源切断の際にその内容が維持できず、ファイル内容を保護するためにＲＡＭディスク用領域をバッテリバックアップする等の手法が必要となった（例えば、特許文献１参照。）。
【０００５】
一方、近年、不揮発な性質を有するメモリとしてＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）の開発が進んでいる。このＭＲＡＭは、絶縁体を強磁性体で挟んだトンネル磁気抵抗（ＴＭＲ：Ｔｕｎｎｅｌ  Ｍａｇｎｅｔｏ  Ｒｅｓｉｓｔａｎｃｅ）素子におけるＴＭＲ効果を利用したものである。すなわち、ＴＭＲ素子では、強磁性体層のスピンの向きを平行にすると電気抵抗が小さくなり、強磁性体層のスピンの向きを反平行にすると電気抵抗が大きくなる。この電気抵抗を検出することによりＴＭＲ素子における状態を知ることができる。強磁性体層のスピンの向きは外部からの磁場によって変更でき、また、磁場がなくなってもその状態は保たれる。これにより、不揮発な記憶素子が実現される。
【０００６】
このＭＲＡＭは、構造が単純であることから記憶素子の高速化および高集積化を実現するものとして期待が高まっており、実用化に向けて消費電力等を改善する技術が提案されている（例えば、特許文献２参照。）。
【０００７】
【特許文献１】
特開平８−１４７２２５号公報（図１）
【特許文献２】
特開２００３−１３３５２８号公報（図１）
【０００８】
【発明が解決しようとする課題】
上述のように、ＭＲＡＭのように大容量かつ高速な不揮発メモリが主記憶装置に使用されるようになると、従来のＲＡＭディスクのように主記憶装置にファイル領域を設けることが容易になる。不揮発メモリであれば電源切断に影響を受けずファイルを保存でき、かつ、磁気ディスク装置よりも高速なアクセスが期待できるからである。
【０００９】
しかしながら、不揮発メモリに保存されたファイルはあくまでもファイルであり、ソフトウェアからはファイルとしてのみ認識されるだけである。従って、このファイルにアクセスするためには、ファイル名により指定された内容を一旦、主記憶領域上のバッファに転送して、そのバッファの内容にアクセスすることになる。一方、主記憶領域上のデータをファイルに保存する場合には、そのデータをファイル領域に転送して、主記憶領域上のデータとは別にファイルとして保存することになる。
【００１０】
このように、不揮発メモリに主記憶領域およびファイル領域を保持させようとする場合、従来の技術では主記憶領域上のデータとして扱うかファイルとして扱うかによって、主記憶領域とファイル領域との間でデータ転送を行う必要が生じ、それに要する転送時間が問題となる。
【００１１】
そこで、本発明は、不揮発メモリの同じ領域を主記憶領域およびファイル領域の何れとしてもアクセスできるコンピュータシステムを提供することを目的とする。
【００１２】
【課題を解決するための手段】
上記課題を解決するために本発明の請求項１記載の処理装置は、不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから上記ファイルのアクセス単位番号を読み出すファイル指定手段と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに上記物理アドレスが対応するようアドレス変換器に登録するメモリ領域取得手段とを具備する。これにより、メモリ領域取得手段により取得された仮想メモリを使用して、ファイル指定手段により指定されたファイルをアクセス可能にするという作用をもたらす。
【００１３】
また、本発明の請求項２記載の処理装置は、請求項１記載の処理装置において、上記不揮発メモリ上のメモリ領域を仮想アドレスにより指定して上記アドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段をさらに具備し、上記メモリ領域指定手段により読み出された物理アドレスにより上記不揮発メモリにアクセスするものである。これにより、メモリ領域指定手段により指定された仮想アドレスを使用して不揮発メモリ上に存在するファイルをアクセス可能にするという作用をもたらす。
【００１４】
また、本発明の請求項３記載の処理装置は、請求項２記載の処理装置において、上記ファイル指定手段により読み出されたアクセス単位番号により上記不揮発メモリにアクセスするものである。これにより、不揮発メモリ上に存在するファイルを仮想アドレスを使用してアクセス可能するとともにファイルとしてもアクセス可能にするという作用をもたらす。
【００１５】
また、本発明の請求項４記載の処理装置は、請求項１記載の処理装置において、上記ファイル指定手段が、上記指定したファイルのファイルエントリを上記ファイル管理テーブルから削除するものである。これにより、ファイルとしてのアクセスを禁止するという作用をもたらす。
【００１６】
また、本発明の請求項５記載の処理装置は、不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段と、上記物理アドレスに基づいて上記不揮発メモリ上のアクセス単位番号を算出するアクセス単位番号算出手段と、ファイル管理テーブルにファイルエントリを生成してそのファイルエントリに上記アクセス単位番号を登録するファイル生成手段とを具備する。これにより、メモリ領域指定手段により指定された不揮発メモリ上のメモリ領域をファイルとしてアクセスすることを可能にするという作用をもたらす。
【００１７】
また、本発明の請求項６記載の処理装置は、請求項５記載の処理装置において、上記不揮発メモリ上のファイルを指定して上記ファイル管理テーブルから上記ファイルのアクセス単位番号を読み出すファイル指定手段をさらに具備し、上記ファイル指定手段により読み出されたアクセス単位番号により上記不揮発メモリにアクセスするものである。これにより、ファイル指定手段により指定されたファイルとして不揮発メモリ上のメモリ領域をアクセスすることを可能にするという作用をもたらす。
【００１８】
また、本発明の請求項７記載の処理装置は、請求項６記載の処理装置において、上記メモリ領域指定手段により読み出された物理アドレスにより上記不揮発メモリにアクセスするものである。これにより、不揮発メモリ上のメモリ領域をファイルとしてアクセス可能するとともにデータとしてもアクセスすることを可能にするという作用をもたらす。
【００１９】
また、本発明の請求項８記載の処理装置は、請求項５記載の処理装置において、上記メモリ領域指定手段が、上記指定した仮想アドレスが未使用状態になるよう上記アドレス変換器に登録するものである。これにより、データとしてのアクセスを禁止するという作用をもたらす。
【００２０】
また、本発明の請求項９記載のコンピュータシステムは、不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、上記不揮発メモリ上のファイルを管理するファイル管理テーブルと、上記処理装置における仮想アドレスを上記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、上記処理装置が、上記不揮発メモリ上に存在するファイルを指定して上記ファイル管理テーブルから上記ファイルのアクセス単位番号を読み出すファイル指定手段と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに上記物理アドレスが対応するよう上記アドレス変換器に登録するメモリ領域取得手段とを備えるものである。これにより、メモリ領域取得手段により取得された仮想メモリを使用して、ファイル指定手段により指定されたファイルをアクセス可能にするという作用をもたらす。
【００２１】
また、本発明の請求項１０記載のコンピュータシステムは、不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、上記不揮発メモリ上のファイルを管理するファイル管理テーブルと、上記処理装置における仮想アドレスを上記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、上記不揮発メモリは複数種類のページファイルを保持し、上記処理装置が、主記憶領域として使用すべきページファイルを上記複数種類のページファイルから選択して指定し、上記ファイル管理テーブルから上記指定したページファイルのアクセス単位番号を読み出すファイル指定手段と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに上記物理アドレスが対応するよう上記アドレス変換器に登録するメモリ領域取得手段とを備えるものである。これにより、コンピュータシステムの実行環境として複数種類のページファイルを切り替えて使用することを可能にするという作用をもたらす。
【００２２】
また、本発明の請求項１１記載のコンピュータシステムは、不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、上記不揮発メモリ上のファイルを管理するファイル管理テーブルと、上記処理装置における仮想アドレスを上記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、上記処理装置が、上記不揮発メモリ上のメモリ領域を仮想アドレスにより指定して上記アドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段と、上記物理アドレスに基づいて上記不揮発メモリ上のアクセス単位番号を算出するアクセス単位番号算出手段と、上記ファイル管理テーブルにファイルエントリを生成してそのファイルエントリに上記アクセス単位番号を登録するファイル生成手段とを備えるものである。これにより、メモリ領域指定手段により指定された不揮発メモリ上のメモリ領域をファイルとしてアクセスすることを可能にするという作用をもたらす。
【００２３】
また、本発明の請求項１２記載の処理方法は、不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから上記ファイルのアクセス単位番号を読み出す手順と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する手順と、仮想アドレス空間においてメモリ領域を取得する手順と、上記取得されたメモリ領域の仮想アドレスに上記物理アドレスが対応するようアドレス変換器に登録する手順とを具備する。これにより、指定されたファイルをデータとして仮想アドレスによりアクセス可能にするという作用をもたらす。
【００２４】
また、本発明の請求項１３記載の処理方法は、不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順と、上記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順と、上記物理アドレスに基づいて上記不揮発メモリ上のアクセス単位番号を算出する手順と、上記ファイルエントリに上記アクセス単位番号を登録する手順とを具備する。これにより、指定された不揮発メモリ上のメモリ領域をファイルとしてアクセスすることを可能にするという作用をもたらす。
【００２５】
また、本発明の請求項１４記載のプログラムは、不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから上記ファイルのアクセス単位番号を読み出す手順と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する手順と、仮想アドレス空間においてメモリ領域を取得する手順と、上記取得されたメモリ領域の仮想アドレスに上記物理アドレスが対応するようアドレス変換器に登録する手順とをコンピュータに実行させるものである。これにより、指定されたファイルをデータとして仮想アドレスによりアクセス可能にするという作用をもたらす。
【００２６】
また、本発明の請求項１５記載のプログラムは、不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順と、上記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順と、上記物理アドレスに基づいて上記不揮発メモリ上のアクセス単位番号を算出する手順と、上記ファイルエントリに上記アクセス単位番号を登録する手順とをコンピュータに実行させるものである。これにより、指定された不揮発メモリ上のメモリ領域をファイルとしてアクセスすることを可能にするという作用をもたらす。
【００２７】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【００２８】
図１は、本発明の実施の形態におけるコンピュータシステムの全体構成の一例を示す図である。このコンピュータシステム１００では、プロセッサ１１０に命令キャッシュ１２０、命令メモリ管理ユニット１３０、データキャッシュ１４０、および、データメモリ管理ユニット１５０が接続されており、これら命令キャッシュ１２０、命令メモリ管理ユニット１３０、データキャッシュ１４０、および、データメモリ管理ユニット１５０の一方にはバスコントローラ１６０が接続される。そして、このバスコントローラ１６０と不揮発メモリ１８０とがメモリバス１７０により接続される。
【００２９】
この例では、プロセッサ１１０は、命令にアクセスするための端子とデータにアクセスするための端子とを別個に有するいわゆるハーバードアーキテクチャを採用している。但し、これは一例に過ぎず、命令とデータを共通の端子として構成しても構わない。プロセッサ１１０の命令側端子には命令入力線１２１により命令キャッシュ１２０が接続される。この命令キャッシュ１２０はプロセッサ１１０で実行される可能性のある命令を命令入力線１６２により不揮発メモリ１８０から読み出して予め保持しておくものであり、プロセッサ１１０からの書込みは禁止される。
【００３０】
プロセッサ１１０の命令側端子にはさらに命令アドレス線１２２が接続され、この命令アドレス線１２２から命令キャッシュ１２０および命令メモリ管理ユニット１３０に対して命令にアクセスするための仮想アドレスが供給される。命令メモリ管理ユニット１３０は、アドレス変換器を備え、プロセッサ１１０からの仮想アドレスを物理アドレスに変換して命令アドレス線１３６に出力する。
【００３１】
また、プロセッサ１１０のデータ側端子にはデータ入出力線１４１によりデータキャッシュ１４０が接続される。このデータキャッシュ１４０はプロセッサ１１０で使用される可能性のあるデータをデータ入力線１６４により不揮発メモリ１８０から読み出して予め保持しておくものであり、プロセッサ１１０から読み出されるとともに更新も許容される。データキャッシュ１４０において更新があった場合には、即座にもしくは所定のタイミングで不揮発メモリ１８０に反映される。なお、データ入出力線１４１は、ファイルシステムへのアクセスの際にブロック番号の指定やデータの授受を行うためにも利用される。
【００３２】
プロセッサ１１０のデータ側端子にはさらにデータアドレス線１４２が接続され、このデータアドレス線１４２からデータキャッシュ１４０およびデータメモリ管理ユニット１５０に対してデータにアクセスするための仮想アドレスが供給される。データメモリ管理ユニット１５０は、アドレス変換器を備え、プロセッサ１１０からの仮想アドレスを物理アドレスに変換してデータアドレス線１５６に出力する。
【００３３】
バスコントローラ１６０は、一方にメモリバス１７０を接続してメモリバス１７０へのアクセス制御を行うものであり、もう一方に命令アドレス線１３６、命令入力線１６２、データ入力線１６４、および、データアドレス線１５６が接続される。メモリバス１７０は、命令およびデータの物理アドレスと命令およびデータの内容を伝達する。
【００３４】
不揮発メモリ１８０は、不揮発な性質を有する記憶装置であり、例えばＭＲＡＭのような高速かつ高集積な記憶素子が想定される。この不揮発メモリ１８０は、主記憶領域を保持する主記憶装置として機能するだけでなく、ファイル領域を保持する外部記憶装置としても機能する。
【００３５】
図２は、本発明の実施の形態における仮想メモリ空間３００とファイルシステム２００との関係を示す図である。本発明の実施の形態においては、不揮発メモリ１８０に主記憶領域およびファイル領域の両者が保持される。すなわち、プロセッサ１１０から見れば、仮想メモリ空間３００上に主記憶領域３１０とファイル領域３２０とが共存し、ともに仮想アドレスによりアクセスすることができる。
【００３６】
一方、これをファイルシステムとして捉えると、ファイルシステム２００にはファイル領域３２０に対応するユーザファイル２２０以外に、主記憶領域３１０に対応するページファイル２１０が存在する。このページファイル２１０は、仮想記憶方式におけるスワップファイルに相当するものであり、主記憶領域の内容をファイルとして保持するものである。本発明の実施の形態では、不揮発メモリ１８０自身がスワップ先の外部記憶装置として機能するため、実際にはデータ転送は生じない。すなわち、ページファイル２１０は主記憶領域３１０の内容をファイルとして保持したものであり、必要であればファイルシステム２００上のファイルとしてアクセスすることができるものである。
【００３７】
ユーザファイル２２０も当然ながらファイルシステム２００上のファイルとしてアクセスすることができる。本発明の実施の形態では、このユーザファイル２２０も仮想メモリ空間３００上からアクセス可能であり、ファイル領域３２０においてメモリアドレスを指定することによって仮想メモリ空間３００上のメモリとしてアクセスすることができる。
【００３８】
すなわち、本発明の実施の形態では、不揮発メモリ１８０に主記憶領域およびファイル領域の両者が保持され、これらは仮想メモリ空間３００上のメモリとしてアクセスされることができるとともに、ファイルシステム２００上のファイルとしてもアクセスされることができる。
【００３９】
なお、この例では説明の都合上、主記憶領域３１０とファイル領域３２０とが別個独立したものとして表されているが、これら領域は仮想メモリ空間上に混在していても構わない。
【００４０】
図３は、本発明の実施の形態におけるファイルシステム２００を管理するための仕組みを示す図である。ファイルシステム２００は不揮発メモリ１８０において先頭アドレス（Ｂ）から始まる連続する物理アドレス上に確保される。このファイルシステム２００は、ブロックと呼ばれるアクセス単位で管理される。従って、ファイルシステム２００においてこのブロック番号（Ｎ）を指定することで、その記憶域を特定することができる。なお、このアクセス単位は、クラスタと呼ばれる場合もある。
【００４１】
ファイルシステム２００内に保持されるファイルを管理するためにファイル管理テーブル４００が設けられる。このファイル管理テーブル４００はファイルシステム２００のブロック番号＃０に格納されるものとする。このファイル管理テーブル４００は、ディレクトリ領域４１０とファイルアロケーションテーブル（ＦＡＴ）４２０とを備える。ディレクトリ領域４１０は、それぞれのファイルエントリにファイル名やそのファイルの先頭のブロック番号などを保持する。ファイルアロケーションテーブル４２０は、ファイルシステム２００におけるブロック毎に次のブロック番号を保持する。このファイル管理テーブル４００によりファイル名とファイルシステム２００上の記憶域とが関連付けられる。
【００４２】
ファイルシステム２００上の各ブロックは仮想メモリ空間３００上の仮想アドレスに割り当てられる。例えば、ファイルＡ（３２１）がファイルシステム２００上のブロック＃３、＃１、＃２、および、＃５の４つのブロックに保持されている場合、各ブロックは仮想アドレス上のページを単位としてアクセスできるように設定される。この設定は、後述するページテーブル５００により実現される。
【００４３】
ファイルシステム２００上のブロックと仮想メモリ空間３００上のページとの関係としては、両者のサイズが等しいか、もしくは、一方が他方の整数倍であることが望ましい。それ以外の場合には半端な部分に対して帳尻を合わせるために制御が複雑となる。一般に、ファイルシステム２００上のブロックは仮想メモリ空間３００上のページよりも大きいサイズが採られることが多い。
【００４４】
ここでは、例えば、ブロックサイズ（Ｓ）として４ＫＢを、ページサイズ（Ｐ）として２ＫＢをそれぞれ想定する。この場合、１ブロック当り２ページを備えることになるため、ファイルＡ（３２１）のブロック内ページ番号（Ｍ）としては＄０と＄１を繰り返すことになる。
【００４５】
図４は、本発明の実施の形態におけるファイル管理テーブル４００の構成例を示す図である。ファイル管理テーブル４００は、上述のように、各ファイルに関する情報を保持するディレクトリ領域４１０と各ファイルのブロック同士の関係を保持するファイルアロケーションテーブル４２０とを備える。
【００４６】
ディレクトリ領域４１０は、ファイルシステム２００上の各ファイルに対応するファイルエントリを保持する。各ファイルエントリは、ファイル名４１１と、更新日時４１２と、ファイルサイズ４１３と、先頭ブロック番号４１４とを保持する。ファイル名４１１は、ファイルを特定するための名称である。このファイル名の付与規則はオペレーティングシステムに依存する。更新日時４１２は、そのファイルが最終的に更新された日時を表す。ファイルサイズ４１３は、そのファイルの占める容量を表す。この例では、ファイルサイズ４１３はバイトを単位としている。先頭ブロック番号４１４は、そのファイルの先頭のブロック番号を表す。従って、そのファイルにアクセスする際には、この先頭ブロック番号４１４の指すブロックから順にアクセスすることになる。
【００４７】
ファイルアロケーションテーブル４２０は、ファイルシステム２００の各ブロックに対応して、そのブロックが最終ブロックであるか否か、最終ブロックでなければ次のブロックは何れであるかを示す。例えば、ディレクトリ領域４１０における最初のファイル「ＦｉｌｅＡ．ｔｘｔ」は、先頭ブロック番号４１４として「３」を示しており、このブロック番号「３」に対応するファイルアロケーションテーブル４２０は、次のブロック番号として「１」を示している。このブロック番号「１」に対応するファイルアロケーションテーブル４２０は、次のブロック番号として「２」を示している。また、このブロック番号「２」に対応するファイルアロケーションテーブル４２０は、次のブロック番号として「５」を示している。そして、このブロック番号「５」に対応するファイルアロケーションテーブル４２０は、そのブロックがファイルの最終ブロックであることを示している。すなわち、「ＦｉｌｅＡ．ｔｘｔ」は、ブロック番号「３」、「１」、「２」、「５」の順に４つのブロックに保持されていることになる。
【００４８】
このように、ファイル管理テーブル４００によれば、ファイル名からファイルシステム２００上の記憶域がブロック番号により特定される。プロセッサ１１０が不揮発メモリ１８０上に保存されているファイルにアクセスする際には、このブロック番号がデータ入出力線１４１に供給される。
【００４９】
図５は、本発明の実施の形態におけるページテーブル５００の構成例を示す図である。このページテーブル５００は、仮想ページアドレス３０１に対応してページエントリを保持している。この仮想ページアドレス３０１は、仮想メモリ空間３００における仮想アドレスのうちページを識別する上位アドレスであり、この仮想ページアドレス３０１とページ内アドレス３０２とにより仮想アドレスを構成する。
【００５０】
各ページエントリは、物理ページアドレス５０１と、保護情報５０２と、空きフラグ５０３とを保持する。物理ページアドレス５０１は、仮想ページアドレス３０１に対応する物理ページアドレス２０１を示す。この物理ページアドレス２０１は、不揮発メモリ１８０における物理アドレスのうちページを識別する上位アドレスであり、この物理ページアドレス２０１とページ内アドレス２０２とにより物理アドレスを構成する。すなわち、このページテーブル５００は、仮想アドレスを物理アドレスに変換するアドレス変換器として機能する。なお、ページ内アドレス３０２は変換されることなくページ内アドレス２０２として使用される。
【００５１】
保護情報５０２は、そのページに関する保護情報であり、特権モードや一般モードなどの各モードに対応してそのページの読出しおよび更新が許可されるべきか否を表す。空きフラグ５０３は、その仮想ページに物理ページが割り当てられているか否かを示す。この空きフラグ５０３が「物理ページが割り当てられている」旨を示しているときには物理ページアドレス５０１には有効な物理ページアドレスが割り当てられていることになる。一方、空きフラグ５０３が「物理ページが割り当てられていない」旨を示しているときには、その仮想ページは未使用であり、必要であれば他の物理ページに割り当てられることが可能であることになる。
【００５２】
このページテーブル５００は、実体としては不揮発メモリ１８０に保持される。但し、その内容の一部または全部は命令メモリ管理ユニット１３０およびデータメモリ管理ユニット１５０にも保持されるため、実質的に命令メモリ管理ユニット１３０およびデータメモリ管理ユニット１５０がアドレス変換器として機能することになる。
【００５３】
なお、このページテーブル５００の構成例では、全ての仮想ページについて対応する物理ページアドレスを保持しているが、例えば仮想ページアドレスと物理ページアドレスの対をページテーブルに保持するようにして必要なページエントリだけを保持するようにしてもよい。但し、この場合、仮想アドレスの空き領域を別のデータ構造により管理する必要がある。
【００５４】
次に、本発明の実施の形態におけるメモリ内容のファイル化およびファイル内容のメモリ化の処理について説明する。
【００５５】
図６は、本発明の実施の形態における仮想メモリ空間３００上のデータ３１１とファイルシステム２００上のデータファイル２１１との関係を示す図である。主記憶領域３１０にはプロセッサ１１０によってデータ３１１が生成されていく。このデータ３１１はページファイル２１０としてもアクセス可能であるが、これをファイルとして保存することができる。データ３１１をファイルとして保存するにあたっては、データ３１１をファイル領域にコピーしてユーザファイル２２０とすることも可能であるが、この場合にはデータ転送の時間を要することになる。
【００５６】
そこで、本発明の実施の形態においては、この主記憶領域３１０内のデータ３１１の実体をコピーすることなく、データファイル２１１として保存する。そのために、新たなファイルエントリがファイル管理テーブル４００のディレクトリ領域４１０（図４）に作成されて、データファイル２１１のブロック番号がファイル管理テーブル４００のファイルアロケーションテーブル４２０（図４）に登録される。
【００５７】
データ３１１をデータファイル２１１として捉えた場合のブロック番号は、以下のように取得することができる。図３のように、物理アドレスによるファイルシステム２００の先頭アドレスをＢ、ファイルシステム２００におけるブロックサイズをＳとすると、ある物理アドレスＡに対応するブロック番号Ｎは次式により得られる。
Ｎ＝ＦＬＯＯＲ（（Ａ−Ｂ）／Ｓ）    ［式１］
但し、上式において、ＦＬＯＯＲ（）は括弧内の値の小数点以下を切り捨てることを意味する。
【００５８】
このようにして得られたブロック番号をファイル管理テーブル４００のディレクトリ領域４１０およびファイルアロケーションテーブル４２０（図４）に登録することにより、データ転送を伴うことなく、仮想メモリ空間３００上のデータ３１１をファイルシステム２００におけるデータファイル２１１として保存することができる。
【００５９】
図７は、本発明の実施の形態において仮想メモリ空間３００上のデータ３１２をファイルとして保存する場合の境界条件を示す図である。仮想メモリ空間３００上のデータ３１２を不揮発メモリ１８０における物理アドレスに展開したとき、ファイルシステム２００におけるブロック２０９に区切ると、例えば、ブロック＃２、＃６、および、＃４の３つのブロックに跨るものとする。
【００６０】
この場合、データ３１２をファイルとして保存するためには、データ３１２がブロック＃２の先頭から始まっていることが条件となる。データ３１２がブロック＃２の途中から始まっていると、このデータ３１２をそのままファイルとした場合にはファイルの先頭に無意味なデータが含まれてしまうことになるからである。
【００６１】
一方、データ３１２がブロック＃４の途中で終了しても、データ３１２をファイルとして保存するにあたって問題はない。ファイルとして保存する際にはブロックを単位として保存されるが、ファイル内容の最終位置はディレクトリ領域４１０のファイルサイズ４１３（図４）から知ることができるため、不要な領域については無視することができるからである。
【００６２】
ここまでは、仮想メモリ空間３００上のデータ３１２をファイルとして保存する場合の処理について説明したが、ファイルシステム２００上のユーザファイル２２０を仮想メモリ空間３００におけるデータとしてアクセスする場合には、逆にユーザファイル２２０のブロック番号を物理アドレスに変換してページテーブル５００（図５）に登録しておくことにより、仮想メモリ空間３００からアクセスすることができるようになる。
【００６３】
ユーザファイル２２０のブロック番号に対応する物理アドレスは、以下のように取得することができる。図３のように、物理アドレスによるファイルシステム２００の先頭アドレスをＢ、ファイルシステム２００におけるブロックサイズをＳ、仮想メモリ空間３００におけるページサイズをＰ、ブロック内ページ番号をＭとすると、あるブロック番号Ｎに対応する物理アドレスＡは次式により得られる。
Ａ＝Ｂ＋Ｎ×Ｓ＋Ｐ×Ｍ    ［式２］
【００６４】
このようにして得られた物理アドレスをページテーブル５００（図５）に登録しておくことにより、データ転送を伴うことなく、ファイルシステム２００上のユーザファイル２２０を仮想メモリ空間３００におけるデータとしてアクセスすることができる。
【００６５】
図８は、本発明の実施の形態におけるメモリ化処理部１１１およびファイル化処理部１１６の機能構成例を示す図である。この図において、ファイル管理テーブル４００およびページテーブル５００は、メモリ化処理部１１１およびファイル化処理部１１６の両者からアクセスされる。これらファイル管理テーブル４００およびページテーブル５００は、上述のように不揮発メモリ１８０に保持されるものであり、それ以外の各部はプロセッサ１１０における処理として実現される。
【００６６】
メモリ化処理部１１１は、ファイルシステム２００上のファイルを仮想メモリ空間３００におけるデータとしてアクセスできるようにする処理を行うものであり、ファイル指定部１１２と、物理アドレス算出部１１３と、メモリ領域取得部１１４とを備える。
【００６７】
ファイル指定部１１２は、データとしてアクセスしようとするファイルシステム２００上のファイルを指定する。指定されたファイルはファイル管理テーブル４００のディレクトリ領域４１０において検索され、先頭ブロック番号４１４（図４）から順にファイルアロケーションテーブル４２０に示されるブロック番号が物理アドレス算出部１１３に供給される。
【００６８】
物理アドレス算出部１１３は、ファイル管理テーブル４００から供給されたファイルシステム２００上のブロック番号に基づいて不揮発メモリ１８０上の物理アドレスを算出する。具体的な算出式は、上述の式２に示したとおりである。この物理アドレス算出部１１３により算出された物理アドレスは、ページテーブル５００に供給され、対応するページエントリの物理ページアドレス５０１として登録される。
【００６９】
メモリ領域取得部１１４は、仮想メモリ空間３００における空き領域を検索してメモリ領域を取得する。ここで取得されるのはあくまでも仮想メモリ空間３００における仮想アドレスであって、不揮発メモリ１８０上の物理アドレスを新たに確保するわけではない。メモリ領域取得部１１４は、ページテーブル５００の空き領域フラグ５０３（図５）を参照して、未使用となっている仮想ページアドレスを検索し、未使用のページエントリの物理ページアドレス５０１に物理アドレス算出部１１３から供給された物理アドレスのページアドレスを登録する。その結果、物理アドレスに対して仮想アドレスが割り当てられる。
【００７０】
これにより、指定されたファイルは、ファイルとしてアクセスされるだけでなく、メモリ領域取得部１１４により割り当てられた仮想アドレスによって仮想メモリ空間３００上のデータとしてアクセスされることが可能となる。
【００７１】
なお、メモリ領域取得部１１４によって仮想アドレスが割り当てられた後は、ファイル指定部１１２によってファイル管理テーブル４００のディレクトリ領域４１０（図４）におけるファイルエントリを削除するようにしてもよい。この場合、削除されたファイルエントリに対応する領域はそれ以降ファイルとしてアクセスできなくなり、もっぱら仮想メモリ空間３００上のデータとしてアクセスされることになる。
【００７２】
一方、ファイル化処理部１１６は、仮想メモリ空間３００上のデータをファイルとして保存する処理を行うものであり、メモリ領域指定部１１７と、ブロック番号算出部１１８と、ファイル生成部１１９とを備える。
【００７３】
メモリ領域指定部１１７は、ファイルとしてアクセスしようとする仮想メモリ空間３００上のデータ（メモリ領域）の仮想アドレスを指定する。指定されたデータの仮想アドレスはページテーブル５００（図５）において検索され、対応する物理アドレスがブロック番号算出部１１８に供給される。
【００７４】
ブロック番号算出部１１８は、ページテーブル５００から供給された不揮発メモリ１８０上の物理アドレスに基づいてファイルシステム２００上のブロック番号を算出する。具体的な算出式は、上述の式１に示したとおりである。このブロック番号算出部１１８により算出されたブロック番号は、ファイル管理テーブル４００に供給され、対応するファイルのブロック番号として登録される。
【００７５】
ファイル生成部１１９は、ファイル管理テーブル４００のディレクトリ領域４１０（図４）において新たにファイルエントリを確保して、ブロック番号算出部１１８から供給されたブロック番号を登録していく。その結果、新たにファイルが生成されるが、対応するブロック番号により示される内容は元々仮想メモリ空間３００上に存在していたデータであり、不揮発メモリ１８０上の物理アドレスが新たに確保されるわけではない。
【００７６】
これにより、指定されたデータは、仮想メモリ空間３００上のデータとしてアクセスされるだけでなく、ファイル生成部１１９により生成されたファイルとしてアクセスされることが可能となる。
【００７７】
なお、ファイル生成部１１９によってファイルが生成された後は、メモリ領域指定部１１７によってページテーブル５００におけるページエントリを削除するようにしてもよい。この場合、削除されたページエントリに対応する領域はそれ以降データとしてアクセスできなくなり、もっぱらファイルシステム２００上のファイルとしてアクセスされることになる。
【００７８】
図９は、本発明の実施の形態のメモリ化処理部１１１における処理手順の一例を示す図である。まず、データとしてアクセスしようとするファイルシステム２００上のファイルがファイル指定部１１２によって指定されると、その指定されたファイルの先頭ブロック番号４１４（図４）がファイル管理テーブル４００のディレクトリ領域４１０から読み出される（ステップＳ９１１）。
【００７９】
先頭ブロック番号４１４が読み出されると、物理アドレス算出部１１３はその先頭ブロック番号４１４に対応する不揮発メモリ１８０上の物理アドレスを算出する（ステップＳ９１２）。具体的な算出式は、上述の式２に示したとおりである。この算出された物理アドレスはページテーブル５００に供給される。
【００８０】
メモリ領域取得部１１４は、仮想メモリ空間３００における空き領域を検索してメモリ領域を取得する（ステップＳ９１３）。この取得されたメモリ領域の仮想アドレスはページテーブル５００に供給される。
【００８１】
ステップＳ９１２において算出された物理アドレスの物理ページアドレスが、ステップＳ９１３において取得されたメモリ領域の仮想アドレスの仮想ページアドレスに対応する物理ページアドレス５０１（図５）としてページテーブル５００に登録される。
【００８２】
そして、指定されたファイルについてページテーブル５００への登録が行われていないブロックが存在する場合には（ステップＳ９１５）、ファイル管理テーブル４００のファイルアロケーションテーブル４２０（図４）において次のブロックのブロック番号が読み出され（ステップＳ９１１）、メモリ化処理は継続される。一方、指定されたファイルの全てのブロックに関してページテーブル５００への登録が完了した場合には（ステップＳ９１５）、メモリ化処理は終了する。
【００８３】
これにより、指定されたファイルは、ファイルとしてアクセスされるだけでなく、メモリ領域取得部１１４により割り当てられた仮想アドレスによって仮想メモリ空間３００上のデータとしてアクセスされることが可能となる。
【００８４】
図１０は、本発明の実施の形態のファイル化処理部１１６における処理手順の一例を示す図である。まず、ファイル生成部１１９によって、ファイル管理テーブル４００のディレクトリ領域４１０において新たにファイルエントリが確保される（ステップＳ９３１）。このとき、新規のファイル名を付与することができる。
【００８５】
ファイルとしてアクセスしようとする仮想メモリ空間３００上のデータの仮想アドレスがメモリ領域指定部１１７によって指定されると、その指定されたデータの先頭の仮想アドレスがページテーブル５００によって物理アドレスに変換されて出力される（ステップＳ９３２）。
【００８６】
変換された物理アドレスが出力されると、ブロック番号算出部１１８はこの物理アドレスに対応するファイルシステム２００上のブロック番号を「現在のブロック番号」として算出する（ステップＳ９３３）。具体的な算出式は、上述の式１に示したとおりである。この算出されたブロック番号は、ファイル管理テーブル４００のディレクトリ領域４１０の先頭ブロック番号４１４（図４）に登録される。
【００８７】
そして、指定されたデータが次のブロック境界を越える場合には（ステップＳ９３４）、次のブロック境界の先頭の仮想アドレスがページテーブル５００によって物理アドレスに変換されて出力される（ステップＳ９３５）。この物理アドレスはブロック番号算出部１１８に供給され、その結果、ファイルシステム２００上の「次のブロック番号」が算出される（ステップＳ９３６）。
【００８８】
この「次のブロック番号」は、ファイルアロケーションテーブル４２０における「現在のブロック番号」に設定される（ステップＳ９３７）。例えば、図４の例において、「ＦｉｌｅＡ．ｔｘｔ」の先頭ブロック番号４１４の「３」が「現在のブロック番号」であるとすると、ファイルアロケーションテーブル４２０の第３アドレス（上から４つ目のブロック）には「次のブロック番号」である「１」が設定される。そして、この「次のブロック番号」を新たな「現在のブロック番号」として（ステップＳ９３８）、次の処理（ステップＳ９３４）に進む。
【００８９】
一方、ステップＳ９３４において次のブロック境界を越えないと判断された場合には、ファイルアロケーションテーブル４２０における「現在のブロック番号」にファイルの最終値を示す値が設定される（ステップＳ９３９）。例えば、ファイルアロケーションテーブル４２０の各ブロックのビット幅が３２ビットであれば、最終値として「ＦＦＦＦＦＦＦＦ」（１６進表記）を採用することができる。
【００９０】
これにより、指定されたデータは、仮想メモリ空間３００上のデータとしてアクセスされるだけでなく、ファイル生成部１１９により生成されたファイルとしてアクセスされることが可能となる。
【００９１】
このように、本発明の実施の形態によれば、不揮発メモリ１８０に主記憶領域３１０とファイル領域３２０の両者を保持し、これらの内容を仮想メモリ空間３００上のデータとしてアクセス可能とするとともにファイルシステム２００上のファイルとしてもアクセス可能とすることができる。
【００９２】
また、本発明の実施の形態の応用として種々の用途が考えられる。例えば、図１１のように、ファイルシステム２００上にページファイルＡ２５０とページファイルＢ２６０の２種類のページファイルを保持しておき、コンピュータシステムの起動時にページファイルを切り替えることにより異なる環境を設定することができる。
【００９３】
ここで、ページファイルＡ２５０をオペレーティングシステムＡの実行環境、ページファイルＢ２６０をオペレーティングシステムＢの実行環境とすれば、外部記憶装置を使用することなくオペレーティングシステムＡおよびオペレーティングシステムＢの切り替えを実現することができる。ページファイルＡ２５０およびページファイルＢ２６０の内容はその都度メモリに転送する必要はなく、そのまま仮想メモリ空間３００上の主記憶領域３６０としてアクセスすることが可能である。
【００９４】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【００９５】
すなわち、請求項１において、ファイル指定手段は、例えばファイル指定部１１２に対応する。また、物理アドレス算出手段は、例えば物理アドレス算出部１１３に対応する。また、メモリ領域取得手段は、例えばメモリ領域取得部１１４に対応する。また、不揮発メモリは、例えば不揮発メモリ１８０に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル４００に対応する。また、アドレス変換器は、例えばページテーブル５００に対応する。また、アクセス単位番号は、例えばブロック番号やクラスタ番号に対応する。
【００９６】
また、請求項２において、メモリ領域指定手段は、例えばメモリ領域指定部１１７に対応する。
【００９７】
また、請求項５において、メモリ領域指定手段は、例えばメモリ領域指定部１１７に対応する。また、アクセス単位番号算出手段は、例えばブロック番号算出部１１８に対応する。また、ファイル生成手段は、例えばファイル生成部１１９に対応する。また、不揮発メモリは、例えば不揮発メモリ１８０に対応する。また、アドレス変換器は、例えばページテーブル５００に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル４００に対応する。
【００９８】
また、請求項６において、ファイル指定手段は、例えばファイル指定部１１２に対応する。また、アクセス単位番号は、例えばブロック番号やクラスタ番号に対応する。
【００９９】
また、請求項９において、不揮発メモリは、例えば不揮発メモリ１８０に対応する。また、処理装置は、例えばプロセッサ１１０に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル４００に対応する。また、アドレス変換器は、例えばページテーブル５００に対応する。また、コンピュータシステムは、例えばコンピュータシステム１００に対応する。また、ファイル指定手段は、例えばファイル指定部１１２に対応する。また、物理アドレス算出手段は、例えば物理アドレス算出部１１３に対応する。また、メモリ領域取得手段は、例えばメモリ領域取得部１１４に対応する。また、アクセス単位番号は、例えばブロック番号やクラスタ番号に対応する。
【０１００】
また、請求項１０において、不揮発メモリは、例えば不揮発メモリ１８０に対応する。また、処理装置は、例えばプロセッサ１１０に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル４００に対応する。また、アドレス変換器は、例えばページテーブル５００に対応する。また、コンピュータシステムは、例えばコンピュータシステム１００に対応する。また、ファイル指定手段は、例えばファイル指定部１１２に対応する。また、物理アドレス算出手段は、例えば物理アドレス算出部１１３に対応する。また、メモリ領域取得手段は、例えばメモリ領域取得部１１４に対応する。また、アクセス単位番号は、例えばブロック番号やクラスタ番号に対応する。また、複数種類のページファイルは、例えばページファイルＡ２５０およびページファイルＢ２６０に対応する。
【０１０１】
また、請求項１１において、不揮発メモリは、例えば不揮発メモリ１８０に対応する。また、処理装置は、例えばプロセッサ１１０に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル４００に対応する。また、アドレス変換器は、例えばページテーブル５００に対応する。また、コンピュータシステムは、例えばコンピュータシステム１００に対応する。
また、メモリ領域指定手段は、例えばメモリ領域指定部１１４に対応する。また、アクセス単位番号算出手段は、例えばブロック番号算出部１１８に対応する。また、ファイル生成手段は、例えばファイル生成部１１９に対応する。また、アクセス単位番号は、例えばブロック番号に対応する。
【０１０２】
また、請求項１２または１４において、不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから前記ファイルのアクセス単位番号を読み出す手順は、例えばステップＳ９１１に対応する。また、前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する手順は、例えばステップＳ９１２に対応する。また、仮想アドレス空間においてメモリ領域を取得する手順は、例えばステップＳ９１３に対応する。また、前記取得されたメモリ領域の仮想アドレスに前記物理アドレスが対応するようアドレス変換器に登録する手順は、例えばステップＳ９１４に対応する。
【０１０３】
また、請求項１３または１５において、不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順は、例えばステップＳ９３１に対応する。また、前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順は、例えばステップＳ９３２に対応する。また、前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出する手順は、例えばステップＳ９３３に対応する。また、前記ファイルエントリに前記アクセス単位番号を登録する手順は、例えばステップＳ９３７またはＳ９３９に対応する。
【０１０４】
なお、本発明の実施の形態におけるコンピュータシステムは本発明の適用の一例であり、本発明は撮像装置、パーソナルコンピュータ、ＰＤＡ，ＤＶＤプレーヤ、セットトップボックス、ルーター、ロボット、ホームサーバー、携帯端末、ゲーム機、ネットワーク端末などに広く適用することができる。
【０１０５】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。
【０１０６】
【発明の効果】
以上の説明で明らかなように、本発明によると、不揮発メモリの同じ領域を主記憶領域およびファイル領域の何れとしてもアクセスできるコンピュータシステムを提供するという効果が得られる。
【図面の簡単な説明】
【図１】本発明の実施の形態におけるコンピュータシステムの全体構成の一例を示す図である。
【図２】本発明の実施の形態における仮想メモリ空間３００とファイルシステム２００との関係を示す図である。
【図３】本発明の実施の形態におけるファイルシステム２００を管理するための仕組みを示す図である。
【図４】本発明の実施の形態におけるファイル管理テーブル４００の構成例を示す図である。
【図５】本発明の実施の形態におけるページテーブル５００の構成例を示す図である。
【図６】本発明の実施の形態における仮想メモリ空間３００上のデータ３１１とファイルシステム２００上のデータファイル２１１との関係を示す図である。
【図７】本発明の実施の形態において仮想メモリ空間３００上のデータ３１２をファイルとして保存する場合の境界条件を示す図である。
【図８】本発明の実施の形態におけるメモリ化処理部１１１およびファイル化処理部１１６の機能構成例を示す図である。
【図９】本発明の実施の形態のメモリ化処理部１１１における処理手順の一例を示す図である。
【図１０】本発明の実施の形態のファイル化処理部１１６における処理手順の一例を示す図である。
【図１１】本発明の実施の形態の応用として複数の実行環境をファイルシステム２００上に保持する例を示す図である。
【符号の説明】
１００  コンピュータシステム
１１０  プロセッサ
１１１  メモリ化処理部
１１２  ファイル指定部
１１３  物理アドレス算出部
１１４  メモリ領域取得部
１１６  ファイル化処理部
１１７  メモリ領域指定部
１１８  ブロック番号算出部
１１９  ファイル生成部
１２０  命令キャッシュ
１２１  命令入力線
１２２  命令アドレス線
１３０  命令メモリ管理ユニット
１３６  命令アドレス線
１４０  データキャッシュ
１４１  データ入出力線
１４２  データアドレス線
１５０  データメモリ管理ユニット
１５６  データアドレス線
１６０  バスコントローラ
１６２  命令入力線
１６４  データ入力線
１７０  メモリバス
１８０  不揮発メモリ
２００  ファイルシステム
３００  仮想メモリ空間
３１０  主記憶領域
３２０  ファイル領域
３６０  主記憶領域
４００  ファイル管理テーブル
４２０  ファイルアロケーションテーブル
５００  ページテーブル
【図１】
2004362464.tif 000003
【図２】
2004362464.tif 000004
【図３】
2004362464.tif 000005
【図４】
2004362464.tif 000006
【図５】
2004362464.tif 000007
【図６】
2004362464.tif 000008
【図７】
2004362464.tif 000009
【図８】
2004362464.tif 000010
【図９】
2004362464.tif 000011
【図１０】
2004362464.tif 000012
【図１１】
2004362464.tif 000013