JP2004362464A - Computer system using nonvolatile memory - Google Patents

Computer system using nonvolatile memory Download PDF

Info

Publication number
JP2004362464A
JP2004362464A JP2003162798A JP2003162798A JP2004362464A JP 2004362464 A JP2004362464 A JP 2004362464A JP 2003162798 A JP2003162798 A JP 2003162798A JP 2003162798 A JP2003162798 A JP 2003162798A JP 2004362464 A JP2004362464 A JP 2004362464A
Authority
JP
Japan
Prior art keywords
file
memory
address
physical address
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003162798A
Other languages
Japanese (ja)
Inventor
Koji Ozaki
浩治 尾崎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2003162798A priority Critical patent/JP2004362464A/en
Publication of JP2004362464A publication Critical patent/JP2004362464A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a computer system that can access the identical area of a nonvolatile memory as either of a main storage area and a file area. <P>SOLUTION: A memory mode processing part 111 provides processing for enabling a file on a file system to be accessed as data in a virtual memory space. A physical address calculated by a physical address calculation part 113 from a block number of a file is registered in a page table 500 in association with a virtual address acquired by a memory area acquisition part 114. Memory mode access is thus enabled. A file mode processing part 116 provides processing for saving data on a virtual memory space as a file. A block number calculated by a block number calculation part 118 from a physical address of a memory area is registered in a file management table 400. File mode access is thus enabled. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

【0001】
【発明の属する技術分野】
本発明は、不揮発メモリを利用したコンピュータシステムに関し、特に不揮発メモリ上に主記憶とファイルとが混在することを許容するコンピュータシステム、処理装置、および、これらにおける処理方法ならびに当該方法をコンピュータに実行させるプログラムに関する。
【0002】
【従来の技術】
従来のコンピュータシステムにおいては、伝統的なメモリ階層構造の下、キャッシュメモリには小容量で高速なSRAM(Static Random Access Memory)等が使用され、主記憶装置には中容量で中速なDRAM(Dynamic Random Access Memory)等が使用され、また、外部記憶装置には大容量で低速な磁気ディスク装置が用いられている。そして、プロセッサからメモリアドレスによりアクセスされる主記憶領域は主記憶装置に保持され、ファイルとしてアクセスされるファイル領域は磁気ディスク装置に保持される。
【0003】
主記憶装置は、装置の電源が切断されると記憶していた内容を失ってしまうという揮発な性質を有するものであり、主記憶領域は電源切断のたびにクリアされる。一方、磁気ディスク装置は、装置の電源が切断されても記憶していた内容を失わないという不揮発な性質を有するものであり、磁気ディスク装置に保存されたファイルの内容は電源切断後も維持される。
【0004】
これに対し、ファイルをメモリ上に配置することによりファイルへのアクセスを高速化するRAMディスクが使用されるようになった。これは、主記憶装置における拡張メモリ領域にRAMディスク用の領域を確保して、この領域をファイル領域として用いるものである。しかしながら、上述のように主記憶装置は揮発性メモリであるため、そのままでは電源切断の際にその内容が維持できず、ファイル内容を保護するためにRAMディスク用領域をバッテリバックアップする等の手法が必要となった(例えば、特許文献1参照。)。
【0005】
一方、近年、不揮発な性質を有するメモリとしてMRAM(Magnetic Random Access Memory)の開発が進んでいる。このMRAMは、絶縁体を強磁性体で挟んだトンネル磁気抵抗(TMR:Tunnel Magneto Resistance)素子におけるTMR効果を利用したものである。すなわち、TMR素子では、強磁性体層のスピンの向きを平行にすると電気抵抗が小さくなり、強磁性体層のスピンの向きを反平行にすると電気抵抗が大きくなる。この電気抵抗を検出することによりTMR素子における状態を知ることができる。強磁性体層のスピンの向きは外部からの磁場によって変更でき、また、磁場がなくなってもその状態は保たれる。これにより、不揮発な記憶素子が実現される。
【0006】
このMRAMは、構造が単純であることから記憶素子の高速化および高集積化を実現するものとして期待が高まっており、実用化に向けて消費電力等を改善する技術が提案されている(例えば、特許文献2参照。)。
【0007】
【特許文献1】
特開平8−147225号公報(図1)
【特許文献2】
特開2003−133528号公報(図1)
【0008】
【発明が解決しようとする課題】
上述のように、MRAMのように大容量かつ高速な不揮発メモリが主記憶装置に使用されるようになると、従来のRAMディスクのように主記憶装置にファイル領域を設けることが容易になる。不揮発メモリであれば電源切断に影響を受けずファイルを保存でき、かつ、磁気ディスク装置よりも高速なアクセスが期待できるからである。
【0009】
しかしながら、不揮発メモリに保存されたファイルはあくまでもファイルであり、ソフトウェアからはファイルとしてのみ認識されるだけである。従って、このファイルにアクセスするためには、ファイル名により指定された内容を一旦、主記憶領域上のバッファに転送して、そのバッファの内容にアクセスすることになる。一方、主記憶領域上のデータをファイルに保存する場合には、そのデータをファイル領域に転送して、主記憶領域上のデータとは別にファイルとして保存することになる。
【0010】
このように、不揮発メモリに主記憶領域およびファイル領域を保持させようとする場合、従来の技術では主記憶領域上のデータとして扱うかファイルとして扱うかによって、主記憶領域とファイル領域との間でデータ転送を行う必要が生じ、それに要する転送時間が問題となる。
【0011】
そこで、本発明は、不揮発メモリの同じ領域を主記憶領域およびファイル領域の何れとしてもアクセスできるコンピュータシステムを提供することを目的とする。
【0012】
【課題を解決するための手段】
上記課題を解決するために本発明の請求項1記載の処理装置は、不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから上記ファイルのアクセス単位番号を読み出すファイル指定手段と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに上記物理アドレスが対応するようアドレス変換器に登録するメモリ領域取得手段とを具備する。これにより、メモリ領域取得手段により取得された仮想メモリを使用して、ファイル指定手段により指定されたファイルをアクセス可能にするという作用をもたらす。
【0013】
また、本発明の請求項2記載の処理装置は、請求項1記載の処理装置において、上記不揮発メモリ上のメモリ領域を仮想アドレスにより指定して上記アドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段をさらに具備し、上記メモリ領域指定手段により読み出された物理アドレスにより上記不揮発メモリにアクセスするものである。これにより、メモリ領域指定手段により指定された仮想アドレスを使用して不揮発メモリ上に存在するファイルをアクセス可能にするという作用をもたらす。
【0014】
また、本発明の請求項3記載の処理装置は、請求項2記載の処理装置において、上記ファイル指定手段により読み出されたアクセス単位番号により上記不揮発メモリにアクセスするものである。これにより、不揮発メモリ上に存在するファイルを仮想アドレスを使用してアクセス可能するとともにファイルとしてもアクセス可能にするという作用をもたらす。
【0015】
また、本発明の請求項4記載の処理装置は、請求項1記載の処理装置において、上記ファイル指定手段が、上記指定したファイルのファイルエントリを上記ファイル管理テーブルから削除するものである。これにより、ファイルとしてのアクセスを禁止するという作用をもたらす。
【0016】
また、本発明の請求項5記載の処理装置は、不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段と、上記物理アドレスに基づいて上記不揮発メモリ上のアクセス単位番号を算出するアクセス単位番号算出手段と、ファイル管理テーブルにファイルエントリを生成してそのファイルエントリに上記アクセス単位番号を登録するファイル生成手段とを具備する。これにより、メモリ領域指定手段により指定された不揮発メモリ上のメモリ領域をファイルとしてアクセスすることを可能にするという作用をもたらす。
【0017】
また、本発明の請求項6記載の処理装置は、請求項5記載の処理装置において、上記不揮発メモリ上のファイルを指定して上記ファイル管理テーブルから上記ファイルのアクセス単位番号を読み出すファイル指定手段をさらに具備し、上記ファイル指定手段により読み出されたアクセス単位番号により上記不揮発メモリにアクセスするものである。これにより、ファイル指定手段により指定されたファイルとして不揮発メモリ上のメモリ領域をアクセスすることを可能にするという作用をもたらす。
【0018】
また、本発明の請求項7記載の処理装置は、請求項6記載の処理装置において、上記メモリ領域指定手段により読み出された物理アドレスにより上記不揮発メモリにアクセスするものである。これにより、不揮発メモリ上のメモリ領域をファイルとしてアクセス可能するとともにデータとしてもアクセスすることを可能にするという作用をもたらす。
【0019】
また、本発明の請求項8記載の処理装置は、請求項5記載の処理装置において、上記メモリ領域指定手段が、上記指定した仮想アドレスが未使用状態になるよう上記アドレス変換器に登録するものである。これにより、データとしてのアクセスを禁止するという作用をもたらす。
【0020】
また、本発明の請求項9記載のコンピュータシステムは、不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、上記不揮発メモリ上のファイルを管理するファイル管理テーブルと、上記処理装置における仮想アドレスを上記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、上記処理装置が、上記不揮発メモリ上に存在するファイルを指定して上記ファイル管理テーブルから上記ファイルのアクセス単位番号を読み出すファイル指定手段と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに上記物理アドレスが対応するよう上記アドレス変換器に登録するメモリ領域取得手段とを備えるものである。これにより、メモリ領域取得手段により取得された仮想メモリを使用して、ファイル指定手段により指定されたファイルをアクセス可能にするという作用をもたらす。
【0021】
また、本発明の請求項10記載のコンピュータシステムは、不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、上記不揮発メモリ上のファイルを管理するファイル管理テーブルと、上記処理装置における仮想アドレスを上記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、上記不揮発メモリは複数種類のページファイルを保持し、上記処理装置が、主記憶領域として使用すべきページファイルを上記複数種類のページファイルから選択して指定し、上記ファイル管理テーブルから上記指定したページファイルのアクセス単位番号を読み出すファイル指定手段と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに上記物理アドレスが対応するよう上記アドレス変換器に登録するメモリ領域取得手段とを備えるものである。これにより、コンピュータシステムの実行環境として複数種類のページファイルを切り替えて使用することを可能にするという作用をもたらす。
【0022】
また、本発明の請求項11記載のコンピュータシステムは、不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、上記不揮発メモリ上のファイルを管理するファイル管理テーブルと、上記処理装置における仮想アドレスを上記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、上記処理装置が、上記不揮発メモリ上のメモリ領域を仮想アドレスにより指定して上記アドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段と、上記物理アドレスに基づいて上記不揮発メモリ上のアクセス単位番号を算出するアクセス単位番号算出手段と、上記ファイル管理テーブルにファイルエントリを生成してそのファイルエントリに上記アクセス単位番号を登録するファイル生成手段とを備えるものである。これにより、メモリ領域指定手段により指定された不揮発メモリ上のメモリ領域をファイルとしてアクセスすることを可能にするという作用をもたらす。
【0023】
また、本発明の請求項12記載の処理方法は、不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから上記ファイルのアクセス単位番号を読み出す手順と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する手順と、仮想アドレス空間においてメモリ領域を取得する手順と、上記取得されたメモリ領域の仮想アドレスに上記物理アドレスが対応するようアドレス変換器に登録する手順とを具備する。これにより、指定されたファイルをデータとして仮想アドレスによりアクセス可能にするという作用をもたらす。
【0024】
また、本発明の請求項13記載の処理方法は、不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順と、上記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順と、上記物理アドレスに基づいて上記不揮発メモリ上のアクセス単位番号を算出する手順と、上記ファイルエントリに上記アクセス単位番号を登録する手順とを具備する。これにより、指定された不揮発メモリ上のメモリ領域をファイルとしてアクセスすることを可能にするという作用をもたらす。
【0025】
また、本発明の請求項14記載のプログラムは、不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから上記ファイルのアクセス単位番号を読み出す手順と、上記アクセス単位番号に基づいて上記不揮発メモリ上の物理アドレスを算出する手順と、仮想アドレス空間においてメモリ領域を取得する手順と、上記取得されたメモリ領域の仮想アドレスに上記物理アドレスが対応するようアドレス変換器に登録する手順とをコンピュータに実行させるものである。これにより、指定されたファイルをデータとして仮想アドレスによりアクセス可能にするという作用をもたらす。
【0026】
また、本発明の請求項15記載のプログラムは、不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順と、上記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順と、上記物理アドレスに基づいて上記不揮発メモリ上のアクセス単位番号を算出する手順と、上記ファイルエントリに上記アクセス単位番号を登録する手順とをコンピュータに実行させるものである。これにより、指定された不揮発メモリ上のメモリ領域をファイルとしてアクセスすることを可能にするという作用をもたらす。
【0027】
【発明の実施の形態】
次に本発明の実施の形態について図面を参照して詳細に説明する。
【0028】
図1は、本発明の実施の形態におけるコンピュータシステムの全体構成の一例を示す図である。このコンピュータシステム100では、プロセッサ110に命令キャッシュ120、命令メモリ管理ユニット130、データキャッシュ140、および、データメモリ管理ユニット150が接続されており、これら命令キャッシュ120、命令メモリ管理ユニット130、データキャッシュ140、および、データメモリ管理ユニット150の一方にはバスコントローラ160が接続される。そして、このバスコントローラ160と不揮発メモリ180とがメモリバス170により接続される。
【0029】
この例では、プロセッサ110は、命令にアクセスするための端子とデータにアクセスするための端子とを別個に有するいわゆるハーバードアーキテクチャを採用している。但し、これは一例に過ぎず、命令とデータを共通の端子として構成しても構わない。プロセッサ110の命令側端子には命令入力線121により命令キャッシュ120が接続される。この命令キャッシュ120はプロセッサ110で実行される可能性のある命令を命令入力線162により不揮発メモリ180から読み出して予め保持しておくものであり、プロセッサ110からの書込みは禁止される。
【0030】
プロセッサ110の命令側端子にはさらに命令アドレス線122が接続され、この命令アドレス線122から命令キャッシュ120および命令メモリ管理ユニット130に対して命令にアクセスするための仮想アドレスが供給される。命令メモリ管理ユニット130は、アドレス変換器を備え、プロセッサ110からの仮想アドレスを物理アドレスに変換して命令アドレス線136に出力する。
【0031】
また、プロセッサ110のデータ側端子にはデータ入出力線141によりデータキャッシュ140が接続される。このデータキャッシュ140はプロセッサ110で使用される可能性のあるデータをデータ入力線164により不揮発メモリ180から読み出して予め保持しておくものであり、プロセッサ110から読み出されるとともに更新も許容される。データキャッシュ140において更新があった場合には、即座にもしくは所定のタイミングで不揮発メモリ180に反映される。なお、データ入出力線141は、ファイルシステムへのアクセスの際にブロック番号の指定やデータの授受を行うためにも利用される。
【0032】
プロセッサ110のデータ側端子にはさらにデータアドレス線142が接続され、このデータアドレス線142からデータキャッシュ140およびデータメモリ管理ユニット150に対してデータにアクセスするための仮想アドレスが供給される。データメモリ管理ユニット150は、アドレス変換器を備え、プロセッサ110からの仮想アドレスを物理アドレスに変換してデータアドレス線156に出力する。
【0033】
バスコントローラ160は、一方にメモリバス170を接続してメモリバス170へのアクセス制御を行うものであり、もう一方に命令アドレス線136、命令入力線162、データ入力線164、および、データアドレス線156が接続される。メモリバス170は、命令およびデータの物理アドレスと命令およびデータの内容を伝達する。
【0034】
不揮発メモリ180は、不揮発な性質を有する記憶装置であり、例えばMRAMのような高速かつ高集積な記憶素子が想定される。この不揮発メモリ180は、主記憶領域を保持する主記憶装置として機能するだけでなく、ファイル領域を保持する外部記憶装置としても機能する。
【0035】
図2は、本発明の実施の形態における仮想メモリ空間300とファイルシステム200との関係を示す図である。本発明の実施の形態においては、不揮発メモリ180に主記憶領域およびファイル領域の両者が保持される。すなわち、プロセッサ110から見れば、仮想メモリ空間300上に主記憶領域310とファイル領域320とが共存し、ともに仮想アドレスによりアクセスすることができる。
【0036】
一方、これをファイルシステムとして捉えると、ファイルシステム200にはファイル領域320に対応するユーザファイル220以外に、主記憶領域310に対応するページファイル210が存在する。このページファイル210は、仮想記憶方式におけるスワップファイルに相当するものであり、主記憶領域の内容をファイルとして保持するものである。本発明の実施の形態では、不揮発メモリ180自身がスワップ先の外部記憶装置として機能するため、実際にはデータ転送は生じない。すなわち、ページファイル210は主記憶領域310の内容をファイルとして保持したものであり、必要であればファイルシステム200上のファイルとしてアクセスすることができるものである。
【0037】
ユーザファイル220も当然ながらファイルシステム200上のファイルとしてアクセスすることができる。本発明の実施の形態では、このユーザファイル220も仮想メモリ空間300上からアクセス可能であり、ファイル領域320においてメモリアドレスを指定することによって仮想メモリ空間300上のメモリとしてアクセスすることができる。
【0038】
すなわち、本発明の実施の形態では、不揮発メモリ180に主記憶領域およびファイル領域の両者が保持され、これらは仮想メモリ空間300上のメモリとしてアクセスされることができるとともに、ファイルシステム200上のファイルとしてもアクセスされることができる。
【0039】
なお、この例では説明の都合上、主記憶領域310とファイル領域320とが別個独立したものとして表されているが、これら領域は仮想メモリ空間上に混在していても構わない。
【0040】
図3は、本発明の実施の形態におけるファイルシステム200を管理するための仕組みを示す図である。ファイルシステム200は不揮発メモリ180において先頭アドレス(B)から始まる連続する物理アドレス上に確保される。このファイルシステム200は、ブロックと呼ばれるアクセス単位で管理される。従って、ファイルシステム200においてこのブロック番号(N)を指定することで、その記憶域を特定することができる。なお、このアクセス単位は、クラスタと呼ばれる場合もある。
【0041】
ファイルシステム200内に保持されるファイルを管理するためにファイル管理テーブル400が設けられる。このファイル管理テーブル400はファイルシステム200のブロック番号#0に格納されるものとする。このファイル管理テーブル400は、ディレクトリ領域410とファイルアロケーションテーブル(FAT)420とを備える。ディレクトリ領域410は、それぞれのファイルエントリにファイル名やそのファイルの先頭のブロック番号などを保持する。ファイルアロケーションテーブル420は、ファイルシステム200におけるブロック毎に次のブロック番号を保持する。このファイル管理テーブル400によりファイル名とファイルシステム200上の記憶域とが関連付けられる。
【0042】
ファイルシステム200上の各ブロックは仮想メモリ空間300上の仮想アドレスに割り当てられる。例えば、ファイルA(321)がファイルシステム200上のブロック#3、#1、#2、および、#5の4つのブロックに保持されている場合、各ブロックは仮想アドレス上のページを単位としてアクセスできるように設定される。この設定は、後述するページテーブル500により実現される。
【0043】
ファイルシステム200上のブロックと仮想メモリ空間300上のページとの関係としては、両者のサイズが等しいか、もしくは、一方が他方の整数倍であることが望ましい。それ以外の場合には半端な部分に対して帳尻を合わせるために制御が複雑となる。一般に、ファイルシステム200上のブロックは仮想メモリ空間300上のページよりも大きいサイズが採られることが多い。
【0044】
ここでは、例えば、ブロックサイズ(S)として4KBを、ページサイズ(P)として2KBをそれぞれ想定する。この場合、1ブロック当り2ページを備えることになるため、ファイルA(321)のブロック内ページ番号(M)としては$0と$1を繰り返すことになる。
【0045】
図4は、本発明の実施の形態におけるファイル管理テーブル400の構成例を示す図である。ファイル管理テーブル400は、上述のように、各ファイルに関する情報を保持するディレクトリ領域410と各ファイルのブロック同士の関係を保持するファイルアロケーションテーブル420とを備える。
【0046】
ディレクトリ領域410は、ファイルシステム200上の各ファイルに対応するファイルエントリを保持する。各ファイルエントリは、ファイル名411と、更新日時412と、ファイルサイズ413と、先頭ブロック番号414とを保持する。ファイル名411は、ファイルを特定するための名称である。このファイル名の付与規則はオペレーティングシステムに依存する。更新日時412は、そのファイルが最終的に更新された日時を表す。ファイルサイズ413は、そのファイルの占める容量を表す。この例では、ファイルサイズ413はバイトを単位としている。先頭ブロック番号414は、そのファイルの先頭のブロック番号を表す。従って、そのファイルにアクセスする際には、この先頭ブロック番号414の指すブロックから順にアクセスすることになる。
【0047】
ファイルアロケーションテーブル420は、ファイルシステム200の各ブロックに対応して、そのブロックが最終ブロックであるか否か、最終ブロックでなければ次のブロックは何れであるかを示す。例えば、ディレクトリ領域410における最初のファイル「FileA.txt」は、先頭ブロック番号414として「3」を示しており、このブロック番号「3」に対応するファイルアロケーションテーブル420は、次のブロック番号として「1」を示している。このブロック番号「1」に対応するファイルアロケーションテーブル420は、次のブロック番号として「2」を示している。また、このブロック番号「2」に対応するファイルアロケーションテーブル420は、次のブロック番号として「5」を示している。そして、このブロック番号「5」に対応するファイルアロケーションテーブル420は、そのブロックがファイルの最終ブロックであることを示している。すなわち、「FileA.txt」は、ブロック番号「3」、「1」、「2」、「5」の順に4つのブロックに保持されていることになる。
【0048】
このように、ファイル管理テーブル400によれば、ファイル名からファイルシステム200上の記憶域がブロック番号により特定される。プロセッサ110が不揮発メモリ180上に保存されているファイルにアクセスする際には、このブロック番号がデータ入出力線141に供給される。
【0049】
図5は、本発明の実施の形態におけるページテーブル500の構成例を示す図である。このページテーブル500は、仮想ページアドレス301に対応してページエントリを保持している。この仮想ページアドレス301は、仮想メモリ空間300における仮想アドレスのうちページを識別する上位アドレスであり、この仮想ページアドレス301とページ内アドレス302とにより仮想アドレスを構成する。
【0050】
各ページエントリは、物理ページアドレス501と、保護情報502と、空きフラグ503とを保持する。物理ページアドレス501は、仮想ページアドレス301に対応する物理ページアドレス201を示す。この物理ページアドレス201は、不揮発メモリ180における物理アドレスのうちページを識別する上位アドレスであり、この物理ページアドレス201とページ内アドレス202とにより物理アドレスを構成する。すなわち、このページテーブル500は、仮想アドレスを物理アドレスに変換するアドレス変換器として機能する。なお、ページ内アドレス302は変換されることなくページ内アドレス202として使用される。
【0051】
保護情報502は、そのページに関する保護情報であり、特権モードや一般モードなどの各モードに対応してそのページの読出しおよび更新が許可されるべきか否を表す。空きフラグ503は、その仮想ページに物理ページが割り当てられているか否かを示す。この空きフラグ503が「物理ページが割り当てられている」旨を示しているときには物理ページアドレス501には有効な物理ページアドレスが割り当てられていることになる。一方、空きフラグ503が「物理ページが割り当てられていない」旨を示しているときには、その仮想ページは未使用であり、必要であれば他の物理ページに割り当てられることが可能であることになる。
【0052】
このページテーブル500は、実体としては不揮発メモリ180に保持される。但し、その内容の一部または全部は命令メモリ管理ユニット130およびデータメモリ管理ユニット150にも保持されるため、実質的に命令メモリ管理ユニット130およびデータメモリ管理ユニット150がアドレス変換器として機能することになる。
【0053】
なお、このページテーブル500の構成例では、全ての仮想ページについて対応する物理ページアドレスを保持しているが、例えば仮想ページアドレスと物理ページアドレスの対をページテーブルに保持するようにして必要なページエントリだけを保持するようにしてもよい。但し、この場合、仮想アドレスの空き領域を別のデータ構造により管理する必要がある。
【0054】
次に、本発明の実施の形態におけるメモリ内容のファイル化およびファイル内容のメモリ化の処理について説明する。
【0055】
図6は、本発明の実施の形態における仮想メモリ空間300上のデータ311とファイルシステム200上のデータファイル211との関係を示す図である。主記憶領域310にはプロセッサ110によってデータ311が生成されていく。このデータ311はページファイル210としてもアクセス可能であるが、これをファイルとして保存することができる。データ311をファイルとして保存するにあたっては、データ311をファイル領域にコピーしてユーザファイル220とすることも可能であるが、この場合にはデータ転送の時間を要することになる。
【0056】
そこで、本発明の実施の形態においては、この主記憶領域310内のデータ311の実体をコピーすることなく、データファイル211として保存する。そのために、新たなファイルエントリがファイル管理テーブル400のディレクトリ領域410(図4)に作成されて、データファイル211のブロック番号がファイル管理テーブル400のファイルアロケーションテーブル420(図4)に登録される。
【0057】
データ311をデータファイル211として捉えた場合のブロック番号は、以下のように取得することができる。図3のように、物理アドレスによるファイルシステム200の先頭アドレスをB、ファイルシステム200におけるブロックサイズをSとすると、ある物理アドレスAに対応するブロック番号Nは次式により得られる。
N=FLOOR((A−B)/S) [式1]
但し、上式において、FLOOR()は括弧内の値の小数点以下を切り捨てることを意味する。
【0058】
このようにして得られたブロック番号をファイル管理テーブル400のディレクトリ領域410およびファイルアロケーションテーブル420(図4)に登録することにより、データ転送を伴うことなく、仮想メモリ空間300上のデータ311をファイルシステム200におけるデータファイル211として保存することができる。
【0059】
図7は、本発明の実施の形態において仮想メモリ空間300上のデータ312をファイルとして保存する場合の境界条件を示す図である。仮想メモリ空間300上のデータ312を不揮発メモリ180における物理アドレスに展開したとき、ファイルシステム200におけるブロック209に区切ると、例えば、ブロック#2、#6、および、#4の3つのブロックに跨るものとする。
【0060】
この場合、データ312をファイルとして保存するためには、データ312がブロック#2の先頭から始まっていることが条件となる。データ312がブロック#2の途中から始まっていると、このデータ312をそのままファイルとした場合にはファイルの先頭に無意味なデータが含まれてしまうことになるからである。
【0061】
一方、データ312がブロック#4の途中で終了しても、データ312をファイルとして保存するにあたって問題はない。ファイルとして保存する際にはブロックを単位として保存されるが、ファイル内容の最終位置はディレクトリ領域410のファイルサイズ413(図4)から知ることができるため、不要な領域については無視することができるからである。
【0062】
ここまでは、仮想メモリ空間300上のデータ312をファイルとして保存する場合の処理について説明したが、ファイルシステム200上のユーザファイル220を仮想メモリ空間300におけるデータとしてアクセスする場合には、逆にユーザファイル220のブロック番号を物理アドレスに変換してページテーブル500(図5)に登録しておくことにより、仮想メモリ空間300からアクセスすることができるようになる。
【0063】
ユーザファイル220のブロック番号に対応する物理アドレスは、以下のように取得することができる。図3のように、物理アドレスによるファイルシステム200の先頭アドレスをB、ファイルシステム200におけるブロックサイズをS、仮想メモリ空間300におけるページサイズをP、ブロック内ページ番号をMとすると、あるブロック番号Nに対応する物理アドレスAは次式により得られる。
A=B+N×S+P×M [式2]
【0064】
このようにして得られた物理アドレスをページテーブル500(図5)に登録しておくことにより、データ転送を伴うことなく、ファイルシステム200上のユーザファイル220を仮想メモリ空間300におけるデータとしてアクセスすることができる。
【0065】
図8は、本発明の実施の形態におけるメモリ化処理部111およびファイル化処理部116の機能構成例を示す図である。この図において、ファイル管理テーブル400およびページテーブル500は、メモリ化処理部111およびファイル化処理部116の両者からアクセスされる。これらファイル管理テーブル400およびページテーブル500は、上述のように不揮発メモリ180に保持されるものであり、それ以外の各部はプロセッサ110における処理として実現される。
【0066】
メモリ化処理部111は、ファイルシステム200上のファイルを仮想メモリ空間300におけるデータとしてアクセスできるようにする処理を行うものであり、ファイル指定部112と、物理アドレス算出部113と、メモリ領域取得部114とを備える。
【0067】
ファイル指定部112は、データとしてアクセスしようとするファイルシステム200上のファイルを指定する。指定されたファイルはファイル管理テーブル400のディレクトリ領域410において検索され、先頭ブロック番号414(図4)から順にファイルアロケーションテーブル420に示されるブロック番号が物理アドレス算出部113に供給される。
【0068】
物理アドレス算出部113は、ファイル管理テーブル400から供給されたファイルシステム200上のブロック番号に基づいて不揮発メモリ180上の物理アドレスを算出する。具体的な算出式は、上述の式2に示したとおりである。この物理アドレス算出部113により算出された物理アドレスは、ページテーブル500に供給され、対応するページエントリの物理ページアドレス501として登録される。
【0069】
メモリ領域取得部114は、仮想メモリ空間300における空き領域を検索してメモリ領域を取得する。ここで取得されるのはあくまでも仮想メモリ空間300における仮想アドレスであって、不揮発メモリ180上の物理アドレスを新たに確保するわけではない。メモリ領域取得部114は、ページテーブル500の空き領域フラグ503(図5)を参照して、未使用となっている仮想ページアドレスを検索し、未使用のページエントリの物理ページアドレス501に物理アドレス算出部113から供給された物理アドレスのページアドレスを登録する。その結果、物理アドレスに対して仮想アドレスが割り当てられる。
【0070】
これにより、指定されたファイルは、ファイルとしてアクセスされるだけでなく、メモリ領域取得部114により割り当てられた仮想アドレスによって仮想メモリ空間300上のデータとしてアクセスされることが可能となる。
【0071】
なお、メモリ領域取得部114によって仮想アドレスが割り当てられた後は、ファイル指定部112によってファイル管理テーブル400のディレクトリ領域410(図4)におけるファイルエントリを削除するようにしてもよい。この場合、削除されたファイルエントリに対応する領域はそれ以降ファイルとしてアクセスできなくなり、もっぱら仮想メモリ空間300上のデータとしてアクセスされることになる。
【0072】
一方、ファイル化処理部116は、仮想メモリ空間300上のデータをファイルとして保存する処理を行うものであり、メモリ領域指定部117と、ブロック番号算出部118と、ファイル生成部119とを備える。
【0073】
メモリ領域指定部117は、ファイルとしてアクセスしようとする仮想メモリ空間300上のデータ(メモリ領域)の仮想アドレスを指定する。指定されたデータの仮想アドレスはページテーブル500(図5)において検索され、対応する物理アドレスがブロック番号算出部118に供給される。
【0074】
ブロック番号算出部118は、ページテーブル500から供給された不揮発メモリ180上の物理アドレスに基づいてファイルシステム200上のブロック番号を算出する。具体的な算出式は、上述の式1に示したとおりである。このブロック番号算出部118により算出されたブロック番号は、ファイル管理テーブル400に供給され、対応するファイルのブロック番号として登録される。
【0075】
ファイル生成部119は、ファイル管理テーブル400のディレクトリ領域410(図4)において新たにファイルエントリを確保して、ブロック番号算出部118から供給されたブロック番号を登録していく。その結果、新たにファイルが生成されるが、対応するブロック番号により示される内容は元々仮想メモリ空間300上に存在していたデータであり、不揮発メモリ180上の物理アドレスが新たに確保されるわけではない。
【0076】
これにより、指定されたデータは、仮想メモリ空間300上のデータとしてアクセスされるだけでなく、ファイル生成部119により生成されたファイルとしてアクセスされることが可能となる。
【0077】
なお、ファイル生成部119によってファイルが生成された後は、メモリ領域指定部117によってページテーブル500におけるページエントリを削除するようにしてもよい。この場合、削除されたページエントリに対応する領域はそれ以降データとしてアクセスできなくなり、もっぱらファイルシステム200上のファイルとしてアクセスされることになる。
【0078】
図9は、本発明の実施の形態のメモリ化処理部111における処理手順の一例を示す図である。まず、データとしてアクセスしようとするファイルシステム200上のファイルがファイル指定部112によって指定されると、その指定されたファイルの先頭ブロック番号414(図4)がファイル管理テーブル400のディレクトリ領域410から読み出される(ステップS911)。
【0079】
先頭ブロック番号414が読み出されると、物理アドレス算出部113はその先頭ブロック番号414に対応する不揮発メモリ180上の物理アドレスを算出する(ステップS912)。具体的な算出式は、上述の式2に示したとおりである。この算出された物理アドレスはページテーブル500に供給される。
【0080】
メモリ領域取得部114は、仮想メモリ空間300における空き領域を検索してメモリ領域を取得する(ステップS913)。この取得されたメモリ領域の仮想アドレスはページテーブル500に供給される。
【0081】
ステップS912において算出された物理アドレスの物理ページアドレスが、ステップS913において取得されたメモリ領域の仮想アドレスの仮想ページアドレスに対応する物理ページアドレス501(図5)としてページテーブル500に登録される。
【0082】
そして、指定されたファイルについてページテーブル500への登録が行われていないブロックが存在する場合には(ステップS915)、ファイル管理テーブル400のファイルアロケーションテーブル420(図4)において次のブロックのブロック番号が読み出され(ステップS911)、メモリ化処理は継続される。一方、指定されたファイルの全てのブロックに関してページテーブル500への登録が完了した場合には(ステップS915)、メモリ化処理は終了する。
【0083】
これにより、指定されたファイルは、ファイルとしてアクセスされるだけでなく、メモリ領域取得部114により割り当てられた仮想アドレスによって仮想メモリ空間300上のデータとしてアクセスされることが可能となる。
【0084】
図10は、本発明の実施の形態のファイル化処理部116における処理手順の一例を示す図である。まず、ファイル生成部119によって、ファイル管理テーブル400のディレクトリ領域410において新たにファイルエントリが確保される(ステップS931)。このとき、新規のファイル名を付与することができる。
【0085】
ファイルとしてアクセスしようとする仮想メモリ空間300上のデータの仮想アドレスがメモリ領域指定部117によって指定されると、その指定されたデータの先頭の仮想アドレスがページテーブル500によって物理アドレスに変換されて出力される(ステップS932)。
【0086】
変換された物理アドレスが出力されると、ブロック番号算出部118はこの物理アドレスに対応するファイルシステム200上のブロック番号を「現在のブロック番号」として算出する(ステップS933)。具体的な算出式は、上述の式1に示したとおりである。この算出されたブロック番号は、ファイル管理テーブル400のディレクトリ領域410の先頭ブロック番号414(図4)に登録される。
【0087】
そして、指定されたデータが次のブロック境界を越える場合には(ステップS934)、次のブロック境界の先頭の仮想アドレスがページテーブル500によって物理アドレスに変換されて出力される(ステップS935)。この物理アドレスはブロック番号算出部118に供給され、その結果、ファイルシステム200上の「次のブロック番号」が算出される(ステップS936)。
【0088】
この「次のブロック番号」は、ファイルアロケーションテーブル420における「現在のブロック番号」に設定される(ステップS937)。例えば、図4の例において、「FileA.txt」の先頭ブロック番号414の「3」が「現在のブロック番号」であるとすると、ファイルアロケーションテーブル420の第3アドレス(上から4つ目のブロック)には「次のブロック番号」である「1」が設定される。そして、この「次のブロック番号」を新たな「現在のブロック番号」として(ステップS938)、次の処理(ステップS934)に進む。
【0089】
一方、ステップS934において次のブロック境界を越えないと判断された場合には、ファイルアロケーションテーブル420における「現在のブロック番号」にファイルの最終値を示す値が設定される(ステップS939)。例えば、ファイルアロケーションテーブル420の各ブロックのビット幅が32ビットであれば、最終値として「FFFFFFFF」(16進表記)を採用することができる。
【0090】
これにより、指定されたデータは、仮想メモリ空間300上のデータとしてアクセスされるだけでなく、ファイル生成部119により生成されたファイルとしてアクセスされることが可能となる。
【0091】
このように、本発明の実施の形態によれば、不揮発メモリ180に主記憶領域310とファイル領域320の両者を保持し、これらの内容を仮想メモリ空間300上のデータとしてアクセス可能とするとともにファイルシステム200上のファイルとしてもアクセス可能とすることができる。
【0092】
また、本発明の実施の形態の応用として種々の用途が考えられる。例えば、図11のように、ファイルシステム200上にページファイルA250とページファイルB260の2種類のページファイルを保持しておき、コンピュータシステムの起動時にページファイルを切り替えることにより異なる環境を設定することができる。
【0093】
ここで、ページファイルA250をオペレーティングシステムAの実行環境、ページファイルB260をオペレーティングシステムBの実行環境とすれば、外部記憶装置を使用することなくオペレーティングシステムAおよびオペレーティングシステムBの切り替えを実現することができる。ページファイルA250およびページファイルB260の内容はその都度メモリに転送する必要はなく、そのまま仮想メモリ空間300上の主記憶領域360としてアクセスすることが可能である。
【0094】
なお、本発明の実施の形態は本発明を具現化するための一例を示したものであり、以下に示すように特許請求の範囲における発明特定事項とそれぞれ対応関係を有するが、これに限定されるものではなく本発明の要旨を逸脱しない範囲において種々の変形を施すことができる。
【0095】
すなわち、請求項1において、ファイル指定手段は、例えばファイル指定部112に対応する。また、物理アドレス算出手段は、例えば物理アドレス算出部113に対応する。また、メモリ領域取得手段は、例えばメモリ領域取得部114に対応する。また、不揮発メモリは、例えば不揮発メモリ180に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル400に対応する。また、アドレス変換器は、例えばページテーブル500に対応する。また、アクセス単位番号は、例えばブロック番号やクラスタ番号に対応する。
【0096】
また、請求項2において、メモリ領域指定手段は、例えばメモリ領域指定部117に対応する。
【0097】
また、請求項5において、メモリ領域指定手段は、例えばメモリ領域指定部117に対応する。また、アクセス単位番号算出手段は、例えばブロック番号算出部118に対応する。また、ファイル生成手段は、例えばファイル生成部119に対応する。また、不揮発メモリは、例えば不揮発メモリ180に対応する。また、アドレス変換器は、例えばページテーブル500に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル400に対応する。
【0098】
また、請求項6において、ファイル指定手段は、例えばファイル指定部112に対応する。また、アクセス単位番号は、例えばブロック番号やクラスタ番号に対応する。
【0099】
また、請求項9において、不揮発メモリは、例えば不揮発メモリ180に対応する。また、処理装置は、例えばプロセッサ110に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル400に対応する。また、アドレス変換器は、例えばページテーブル500に対応する。また、コンピュータシステムは、例えばコンピュータシステム100に対応する。また、ファイル指定手段は、例えばファイル指定部112に対応する。また、物理アドレス算出手段は、例えば物理アドレス算出部113に対応する。また、メモリ領域取得手段は、例えばメモリ領域取得部114に対応する。また、アクセス単位番号は、例えばブロック番号やクラスタ番号に対応する。
【0100】
また、請求項10において、不揮発メモリは、例えば不揮発メモリ180に対応する。また、処理装置は、例えばプロセッサ110に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル400に対応する。また、アドレス変換器は、例えばページテーブル500に対応する。また、コンピュータシステムは、例えばコンピュータシステム100に対応する。また、ファイル指定手段は、例えばファイル指定部112に対応する。また、物理アドレス算出手段は、例えば物理アドレス算出部113に対応する。また、メモリ領域取得手段は、例えばメモリ領域取得部114に対応する。また、アクセス単位番号は、例えばブロック番号やクラスタ番号に対応する。また、複数種類のページファイルは、例えばページファイルA250およびページファイルB260に対応する。
【0101】
また、請求項11において、不揮発メモリは、例えば不揮発メモリ180に対応する。また、処理装置は、例えばプロセッサ110に対応する。また、ファイル管理テーブルは、例えばファイル管理テーブル400に対応する。また、アドレス変換器は、例えばページテーブル500に対応する。また、コンピュータシステムは、例えばコンピュータシステム100に対応する。
また、メモリ領域指定手段は、例えばメモリ領域指定部114に対応する。また、アクセス単位番号算出手段は、例えばブロック番号算出部118に対応する。また、ファイル生成手段は、例えばファイル生成部119に対応する。また、アクセス単位番号は、例えばブロック番号に対応する。
【0102】
また、請求項12または14において、不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから前記ファイルのアクセス単位番号を読み出す手順は、例えばステップS911に対応する。また、前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する手順は、例えばステップS912に対応する。また、仮想アドレス空間においてメモリ領域を取得する手順は、例えばステップS913に対応する。また、前記取得されたメモリ領域の仮想アドレスに前記物理アドレスが対応するようアドレス変換器に登録する手順は、例えばステップS914に対応する。
【0103】
また、請求項13または15において、不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順は、例えばステップS931に対応する。また、前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順は、例えばステップS932に対応する。また、前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出する手順は、例えばステップS933に対応する。また、前記ファイルエントリに前記アクセス単位番号を登録する手順は、例えばステップS937またはS939に対応する。
【0104】
なお、本発明の実施の形態におけるコンピュータシステムは本発明の適用の一例であり、本発明は撮像装置、パーソナルコンピュータ、PDA,DVDプレーヤ、セットトップボックス、ルーター、ロボット、ホームサーバー、携帯端末、ゲーム機、ネットワーク端末などに広く適用することができる。
【0105】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えてもよく、また、これら一連の手順をコンピュータに実行させるためのプログラム乃至そのプログラムを記憶する記録媒体として捉えてもよい。
【0106】
【発明の効果】
以上の説明で明らかなように、本発明によると、不揮発メモリの同じ領域を主記憶領域およびファイル領域の何れとしてもアクセスできるコンピュータシステムを提供するという効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態におけるコンピュータシステムの全体構成の一例を示す図である。
【図2】本発明の実施の形態における仮想メモリ空間300とファイルシステム200との関係を示す図である。
【図3】本発明の実施の形態におけるファイルシステム200を管理するための仕組みを示す図である。
【図4】本発明の実施の形態におけるファイル管理テーブル400の構成例を示す図である。
【図5】本発明の実施の形態におけるページテーブル500の構成例を示す図である。
【図6】本発明の実施の形態における仮想メモリ空間300上のデータ311とファイルシステム200上のデータファイル211との関係を示す図である。
【図7】本発明の実施の形態において仮想メモリ空間300上のデータ312をファイルとして保存する場合の境界条件を示す図である。
【図8】本発明の実施の形態におけるメモリ化処理部111およびファイル化処理部116の機能構成例を示す図である。
【図9】本発明の実施の形態のメモリ化処理部111における処理手順の一例を示す図である。
【図10】本発明の実施の形態のファイル化処理部116における処理手順の一例を示す図である。
【図11】本発明の実施の形態の応用として複数の実行環境をファイルシステム200上に保持する例を示す図である。
【符号の説明】
100 コンピュータシステム
110 プロセッサ
111 メモリ化処理部
112 ファイル指定部
113 物理アドレス算出部
114 メモリ領域取得部
116 ファイル化処理部
117 メモリ領域指定部
118 ブロック番号算出部
119 ファイル生成部
120 命令キャッシュ
121 命令入力線
122 命令アドレス線
130 命令メモリ管理ユニット
136 命令アドレス線
140 データキャッシュ
141 データ入出力線
142 データアドレス線
150 データメモリ管理ユニット
156 データアドレス線
160 バスコントローラ
162 命令入力線
164 データ入力線
170 メモリバス
180 不揮発メモリ
200 ファイルシステム
300 仮想メモリ空間
310 主記憶領域
320 ファイル領域
360 主記憶領域
400 ファイル管理テーブル
420 ファイルアロケーションテーブル
500 ページテーブル
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a computer system using a non-volatile memory, and more particularly to a computer system and a processing apparatus that allow a main memory and a file to coexist on a non-volatile memory, a processing method in these, and a method for causing a computer to execute the method. About the program.
[0002]
[Prior art]
In a conventional computer system, a small-capacity, high-speed SRAM (Static Random Access Memory) or the like is used as a cache memory under a traditional memory hierarchical structure, and a medium-capacity, medium-speed DRAM ( Dynamic Random Access Memory) is used, and a large-capacity, low-speed magnetic disk device is used as an external storage device. The main storage area accessed by the memory address from the processor is held in the main storage device, and the file area accessed as a file is held in the magnetic disk device.
[0003]
The main storage device has a volatile property that the stored contents are lost when the power of the device is turned off, and the main storage area is cleared every time the power is turned off. On the other hand, the magnetic disk device has a nonvolatile property that the stored contents are not lost even when the power of the device is turned off, and the contents of the file stored in the magnetic disk device are maintained even after the power is turned off. You.
[0004]
On the other hand, a RAM disk has been used in which the access to the file is accelerated by arranging the file on the memory. This is to secure an area for a RAM disk in an extended memory area in the main storage device and use this area as a file area. However, since the main storage device is a volatile memory as described above, its contents cannot be maintained when the power is turned off as it is, and a method such as battery backup of the RAM disk area to protect the file contents has been adopted. It became necessary (for example, refer to Patent Document 1).
[0005]
On the other hand, in recent years, the development of an MRAM (Magnetic Random Access Memory) as a memory having a nonvolatile property has been advanced. This MRAM utilizes the TMR effect in a tunnel magnetoresistive (TMR) element in which an insulator is sandwiched between ferromagnetic substances. That is, in the TMR element, the electric resistance decreases when the spin directions of the ferromagnetic layers are parallel, and the electric resistance increases when the spin directions of the ferromagnetic layers are antiparallel. The state of the TMR element can be known by detecting the electric resistance. The spin direction of the ferromagnetic layer can be changed by an external magnetic field, and the state is maintained even when the magnetic field disappears. Thereby, a nonvolatile storage element is realized.
[0006]
Since this MRAM has a simple structure, it is expected to realize high-speed and high-integration of a storage element, and a technique for improving power consumption and the like has been proposed for practical use (for example, And Patent Document 2.).
[0007]
[Patent Document 1]
JP-A-8-147225 (FIG. 1)
[Patent Document 2]
JP-A-2003-133528 (FIG. 1)
[0008]
[Problems to be solved by the invention]
As described above, when a large-capacity and high-speed nonvolatile memory such as an MRAM is used for the main storage device, it becomes easy to provide a file area in the main storage device like a conventional RAM disk. This is because a non-volatile memory can store a file without being affected by power-off, and can be expected to access at a higher speed than a magnetic disk device.
[0009]
However, the file stored in the nonvolatile memory is a file to the last, and is recognized only as a file by software. Therefore, in order to access this file, the contents specified by the file name are temporarily transferred to a buffer in the main storage area, and the contents of the buffer are accessed. On the other hand, when the data in the main storage area is stored in a file, the data is transferred to the file area and stored as a file separately from the data in the main storage area.
[0010]
As described above, in a case where the main storage area and the file area are to be held in the non-volatile memory, the conventional technique determines whether the main storage area and the file area are handled as data or a file in the main storage area. It is necessary to perform data transfer, and the transfer time required for the data transfer becomes a problem.
[0011]
Therefore, an object of the present invention is to provide a computer system that can access the same area of a nonvolatile memory as both a main storage area and a file area.
[0012]
[Means for Solving the Problems]
In order to solve the above-mentioned problem, a processing apparatus according to claim 1 of the present invention comprises: a file specifying unit that specifies a file existing in a nonvolatile memory and reads an access unit number of the file from a file management table; A physical address calculating means for calculating a physical address on the non-volatile memory based on the number, a memory area in a virtual address space, and registering in the address converter such that the physical address corresponds to the virtual address of the memory area Memory area acquisition means. This brings about an effect that the file specified by the file specifying unit can be accessed using the virtual memory obtained by the memory area obtaining unit.
[0013]
According to a second aspect of the present invention, there is provided the processing apparatus according to the first aspect, wherein a memory area on the nonvolatile memory is specified by a virtual address and a corresponding physical address is obtained from the address converter. The apparatus further comprises an area designating means for accessing the non-volatile memory by the physical address read by the memory area designating means. This brings about an effect that a file existing in the nonvolatile memory can be accessed using the virtual address specified by the memory area specifying means.
[0014]
According to a third aspect of the present invention, in the processing apparatus according to the second aspect, the non-volatile memory is accessed by the access unit number read by the file designating means. This brings about an effect that a file existing on the nonvolatile memory can be accessed using the virtual address and also accessible as a file.
[0015]
According to a fourth aspect of the present invention, in the processing apparatus of the first aspect, the file designating means deletes a file entry of the specified file from the file management table. This brings about an effect that access as a file is prohibited.
[0016]
Further, the processing device according to claim 5 of the present invention is configured to specify a memory area on a non-volatile memory by a virtual address and obtain a corresponding physical address from an address translator, based on the physical address. An access unit number calculating means for calculating an access unit number on the nonvolatile memory, and a file generating means for generating a file entry in a file management table and registering the access unit number in the file entry. This brings about the effect that the memory area on the non-volatile memory specified by the memory area specifying means can be accessed as a file.
[0017]
According to a sixth aspect of the present invention, in the processing apparatus according to the fifth aspect, a file designating means for designating a file on the nonvolatile memory and reading an access unit number of the file from the file management table. In addition, the non-volatile memory is accessed by the access unit number read by the file designating means. This brings about an effect that it is possible to access the memory area on the nonvolatile memory as the file specified by the file specifying means.
[0018]
According to a seventh aspect of the present invention, in the processing apparatus according to the sixth aspect, the non-volatile memory is accessed by a physical address read by the memory area designating means. This brings about the effect that the memory area on the non-volatile memory can be accessed as a file and also as data.
[0019]
Also, in the processing device according to claim 8 of the present invention, in the processing device according to claim 5, the memory area designating means registers the designated virtual address in the address converter such that the designated virtual address becomes an unused state. It is. This brings about an effect of prohibiting access as data.
[0020]
According to a ninth aspect of the present invention, there is provided a computer system, comprising: a non-volatile memory; a processing device using the non-volatile memory as a main storage area and a file area; a file management table for managing files on the non-volatile memory; An address converter for converting a virtual address in the device to a physical address on the non-volatile memory, wherein the processing device specifies a file existing on the non-volatile memory and outputs the file from the file management table. File designating means for reading the access unit number of the file, physical address calculating means for calculating a physical address on the nonvolatile memory based on the access unit number, acquiring a memory area in a virtual address space, and Add the above physical address to the virtual address. There are those comprising a memory area obtaining means for registering in the address converter as corresponding. This brings about an effect that the file specified by the file specifying unit can be accessed using the virtual memory obtained by the memory area obtaining unit.
[0021]
According to another aspect of the present invention, there is provided a computer system comprising: a non-volatile memory; a processing device using the non-volatile memory as a main storage area and a file area; a file management table for managing files on the non-volatile memory; An address converter for converting a virtual address in the device to a physical address on the non-volatile memory, wherein the non-volatile memory holds a plurality of types of page files, and the processing device is used as a main storage area. File specifying means for selecting and specifying a page file to be used from the plurality of types of page files and reading an access unit number of the specified page file from the file management table; and a nonvolatile memory based on the access unit number Calculate the above physical address A physical address computing unit, in which and a memory area obtaining means for registering in the address converter to the physical address to a virtual address of the memory area to retrieve the memory area corresponds in the virtual address space. This brings about an effect that it is possible to switch and use a plurality of types of page files as the execution environment of the computer system.
[0022]
A computer system according to an eleventh aspect of the present invention includes a non-volatile memory, a processing device using the non-volatile memory as a main storage area and a file area, a file management table for managing files on the non-volatile memory, An address converter for converting a virtual address in the device into a physical address on the non-volatile memory, wherein the processing device specifies the memory area on the non-volatile memory by a virtual address and performs the address conversion. Memory area specifying means for obtaining a corresponding physical address from a device, access unit number calculating means for calculating an access unit number in the nonvolatile memory based on the physical address, and generating a file entry in the file management table. Access the file entry It is intended and a file generation means for registering a unit number. This brings about the effect that the memory area on the non-volatile memory specified by the memory area specifying means can be accessed as a file.
[0023]
The processing method according to claim 12 of the present invention further comprises a step of designating a file existing in a nonvolatile memory and reading an access unit number of the file from a file management table, and a step of reading the nonvolatile memory based on the access unit number. A step of calculating the above physical address, a step of acquiring a memory area in the virtual address space, and a step of registering in the address translator such that the physical address corresponds to the virtual address of the acquired memory area. . This brings about an effect that the designated file can be accessed as data by the virtual address.
[0024]
According to a thirteenth aspect of the present invention, there is provided a processing method for generating a file entry on a file management table for managing a file on a non-volatile memory, and specifying a memory area on the non-volatile memory by a virtual address. A step of obtaining a corresponding physical address from the converter; a step of calculating an access unit number in the nonvolatile memory based on the physical address; and a step of registering the access unit number in the file entry. This brings about the effect that the specified memory area on the nonvolatile memory can be accessed as a file.
[0025]
A program according to a fourteenth aspect of the present invention is a program for designating a file existing in a non-volatile memory and reading an access unit number of the file from a file management table. Calculating a physical address of the memory area in the virtual address space, and registering the physical address in the address converter so that the physical address corresponds to the virtual address of the obtained memory area. It is to let. This brings about an effect that the designated file can be accessed as data by the virtual address.
[0026]
According to another aspect of the present invention, there is provided a program for generating a file entry on a file management table for managing a file on a nonvolatile memory, and performing address conversion by designating a memory area on the nonvolatile memory by a virtual address. Causing the computer to execute a procedure of obtaining a corresponding physical address from a device, a procedure of calculating an access unit number in the nonvolatile memory based on the physical address, and a procedure of registering the access unit number in the file entry. Things. This brings about the effect that the specified memory area on the nonvolatile memory can be accessed as a file.
[0027]
BEST MODE FOR CARRYING OUT THE INVENTION
Next, embodiments of the present invention will be described in detail with reference to the drawings.
[0028]
FIG. 1 is a diagram illustrating an example of an overall configuration of a computer system according to an embodiment of the present invention. In the computer system 100, an instruction cache 120, an instruction memory management unit 130, a data cache 140, and a data memory management unit 150 are connected to the processor 110, and these instruction cache 120, instruction memory management unit 130, data cache 140 , And a bus controller 160 is connected to one of the data memory management units 150. The bus controller 160 and the nonvolatile memory 180 are connected by the memory bus 170.
[0029]
In this example, the processor 110 employs a so-called Harvard architecture having separate terminals for accessing instructions and terminals for accessing data. However, this is only an example, and the command and the data may be configured as a common terminal. An instruction cache 120 is connected to an instruction terminal of the processor 110 by an instruction input line 121. The instruction cache 120 reads an instruction that may be executed by the processor 110 from the nonvolatile memory 180 via an instruction input line 162 and holds the instruction in advance. Writing from the processor 110 is prohibited.
[0030]
An instruction address line 122 is further connected to the instruction side terminal of the processor 110, and a virtual address for accessing the instruction to the instruction cache 120 and the instruction memory management unit 130 is supplied from the instruction address line 122. The instruction memory management unit 130 includes an address translator, converts a virtual address from the processor 110 into a physical address, and outputs the physical address to the instruction address line 136.
[0031]
A data cache 140 is connected to a data side terminal of the processor 110 by a data input / output line 141. The data cache 140 is for reading data that may be used by the processor 110 from the nonvolatile memory 180 via the data input line 164 and holding the data in advance. The data cache 140 is read from the processor 110 and is allowed to be updated. When there is an update in the data cache 140, it is reflected in the nonvolatile memory 180 immediately or at a predetermined timing. The data input / output line 141 is also used to specify a block number and to transfer data when accessing the file system.
[0032]
A data address line 142 is further connected to the data side terminal of the processor 110, and a virtual address for accessing data to the data cache 140 and the data memory management unit 150 is supplied from the data address line 142. The data memory management unit 150 includes an address converter, converts a virtual address from the processor 110 into a physical address, and outputs the physical address to the data address line 156.
[0033]
The bus controller 160 controls the access to the memory bus 170 by connecting the memory bus 170 to one side, and the instruction address line 136, the instruction input line 162, the data input line 164, and the data address line to the other side. 156 are connected. The memory bus 170 transmits the physical address of the instruction and the data and the content of the instruction and the data.
[0034]
The non-volatile memory 180 is a storage device having a non-volatile property, and a high-speed and highly integrated storage element such as an MRAM is assumed. This non-volatile memory 180 functions not only as a main storage device that holds a main storage area, but also as an external storage device that holds a file area.
[0035]
FIG. 2 is a diagram showing a relationship between the virtual memory space 300 and the file system 200 according to the embodiment of the present invention. In the embodiment of the present invention, both the main storage area and the file area are held in nonvolatile memory 180. That is, from the viewpoint of the processor 110, the main storage area 310 and the file area 320 coexist on the virtual memory space 300, and both can be accessed by a virtual address.
[0036]
On the other hand, when this is regarded as a file system, the file system 200 includes a page file 210 corresponding to the main storage area 310 in addition to the user file 220 corresponding to the file area 320. The page file 210 is equivalent to a swap file in the virtual storage system, and holds the contents of the main storage area as a file. In the embodiment of the present invention, since the nonvolatile memory 180 itself functions as an external storage device at the swap destination, data transfer does not actually occur. That is, the page file 210 holds the contents of the main storage area 310 as a file, and can be accessed as a file on the file system 200 if necessary.
[0037]
Of course, the user file 220 can also be accessed as a file on the file system 200. In the embodiment of the present invention, this user file 220 can also be accessed from the virtual memory space 300, and can be accessed as a memory in the virtual memory space 300 by specifying a memory address in the file area 320.
[0038]
That is, in the embodiment of the present invention, both the main storage area and the file area are held in the non-volatile memory 180, and these can be accessed as memories in the virtual memory space 300, and Can also be accessed as
[0039]
In this example, for convenience of explanation, the main storage area 310 and the file area 320 are shown as being independent and independent, but these areas may be mixed in the virtual memory space.
[0040]
FIG. 3 is a diagram showing a mechanism for managing the file system 200 according to the embodiment of the present invention. The file system 200 is secured on continuous physical addresses starting from the head address (B) in the nonvolatile memory 180. The file system 200 is managed in an access unit called a block. Therefore, by specifying the block number (N) in the file system 200, the storage area can be specified. This access unit may be called a cluster.
[0041]
A file management table 400 is provided to manage files held in the file system 200. This file management table 400 is stored in the block number # 0 of the file system 200. The file management table 400 includes a directory area 410 and a file allocation table (FAT) 420. The directory area 410 holds a file name, a leading block number of the file, and the like in each file entry. The file allocation table 420 holds the next block number for each block in the file system 200. The file management table 400 associates a file name with a storage area on the file system 200.
[0042]
Each block in the file system 200 is assigned to a virtual address in the virtual memory space 300. For example, if the file A (321) is held in four blocks # 3, # 1, # 2, and # 5 on the file system 200, each block is accessed in units of pages on a virtual address. It is set to be able to. This setting is realized by a page table 500 described later.
[0043]
As for the relationship between the block on the file system 200 and the page on the virtual memory space 300, it is desirable that both have the same size or one is an integral multiple of the other. In other cases, the control is complicated because the tail is adjusted to the odd part. Generally, a block on the file system 200 often has a size larger than a page on the virtual memory space 300.
[0044]
Here, for example, 4 KB is assumed as the block size (S) and 2 KB is assumed as the page size (P). In this case, since two blocks are provided per block, $ 0 and $ 1 are repeated as the page number (M) in the block of the file A (321).
[0045]
FIG. 4 is a diagram showing a configuration example of the file management table 400 according to the embodiment of the present invention. As described above, the file management table 400 includes the directory area 410 holding information on each file and the file allocation table 420 holding the relationship between blocks of each file.
[0046]
The directory area 410 holds file entries corresponding to each file on the file system 200. Each file entry holds a file name 411, an update date and time 412, a file size 413, and a head block number 414. The file name 411 is a name for specifying a file. The rules for assigning the file name depend on the operating system. The update date and time 412 indicates the date and time when the file was finally updated. The file size 413 indicates the capacity occupied by the file. In this example, the file size 413 is in units of bytes. The head block number 414 indicates the head block number of the file. Therefore, when accessing the file, the file is accessed sequentially from the block indicated by the head block number 414.
[0047]
The file allocation table 420 indicates, for each block in the file system 200, whether or not the block is the last block, and if the block is not the last block, which is the next block. For example, the first file “FileA.txt” in the directory area 410 indicates “3” as the first block number 414, and the file allocation table 420 corresponding to this block number “3” indicates “3” as the next block number. 1 ". The file allocation table 420 corresponding to the block number “1” indicates “2” as the next block number. Further, the file allocation table 420 corresponding to the block number “2” indicates “5” as the next block number. The file allocation table 420 corresponding to the block number “5” indicates that the block is the last block of the file. That is, "FileA.txt" is held in four blocks in the order of block numbers "3", "1", "2", and "5".
[0048]
Thus, according to the file management table 400, the storage area on the file system 200 is specified by the block number from the file name. When the processor 110 accesses a file stored in the nonvolatile memory 180, the block number is supplied to the data input / output line 141.
[0049]
FIG. 5 is a diagram illustrating a configuration example of the page table 500 according to the embodiment of the present invention. The page table 500 holds a page entry corresponding to the virtual page address 301. The virtual page address 301 is an upper address for identifying a page among the virtual addresses in the virtual memory space 300. The virtual page address 301 and the in-page address 302 constitute a virtual address.
[0050]
Each page entry holds a physical page address 501, protection information 502, and an empty flag 503. The physical page address 501 indicates the physical page address 201 corresponding to the virtual page address 301. The physical page address 201 is an upper address for identifying a page among the physical addresses in the nonvolatile memory 180, and the physical page address 201 and the in-page address 202 constitute a physical address. That is, the page table 500 functions as an address converter that converts a virtual address into a physical address. The intra-page address 302 is used as the intra-page address 202 without being converted.
[0051]
The protection information 502 is protection information related to the page, and indicates whether reading and updating of the page should be permitted according to each mode such as the privilege mode and the general mode. The empty flag 503 indicates whether a physical page is allocated to the virtual page. When the empty flag 503 indicates that "a physical page is allocated", it means that a valid physical page address is allocated to the physical page address 501. On the other hand, when the empty flag 503 indicates that “physical page is not allocated”, the virtual page is unused and can be allocated to another physical page if necessary. .
[0052]
This page table 500 is held in the nonvolatile memory 180 as an entity. However, since part or all of the contents are also held in the instruction memory management unit 130 and the data memory management unit 150, the instruction memory management unit 130 and the data memory management unit 150 substantially function as an address translator. become.
[0053]
In the configuration example of the page table 500, the corresponding physical page addresses are held for all the virtual pages. However, for example, a necessary page is stored by holding a pair of the virtual page address and the physical page address in the page table. Only the entries may be held. However, in this case, it is necessary to manage the free area of the virtual address by another data structure.
[0054]
Next, a description will be given of a process of converting memory contents into a file and storing the file contents into a memory according to the embodiment of the present invention.
[0055]
FIG. 6 is a diagram illustrating a relationship between data 311 in the virtual memory space 300 and a data file 211 in the file system 200 according to the embodiment of the present invention. Data 311 is generated in the main storage area 310 by the processor 110. The data 311 can be accessed as the page file 210, but can be stored as a file. When saving the data 311 as a file, it is possible to copy the data 311 to a file area and use it as the user file 220, but in this case, a time for data transfer is required.
[0056]
Therefore, in the embodiment of the present invention, the entity of the data 311 in the main storage area 310 is saved as a data file 211 without being copied. For that purpose, a new file entry is created in the directory area 410 (FIG. 4) of the file management table 400, and the block number of the data file 211 is registered in the file allocation table 420 (FIG. 4) of the file management table 400.
[0057]
The block number when the data 311 is captured as the data file 211 can be obtained as follows. As shown in FIG. 3, assuming that the head address of the file system 200 based on the physical address is B and the block size in the file system 200 is S, the block number N corresponding to a certain physical address A is obtained by the following equation.
N = FLOOR ((AB) / S) [Equation 1]
However, in the above equation, FLOOR () means that the value in parentheses is rounded down to the decimal point.
[0058]
By registering the block number thus obtained in the directory area 410 and the file allocation table 420 (FIG. 4) of the file management table 400, the data 311 in the virtual memory space 300 can be stored in the file without data transfer. It can be stored as a data file 211 in the system 200.
[0059]
FIG. 7 is a diagram showing boundary conditions when data 312 in virtual memory space 300 is stored as a file in the embodiment of the present invention. When the data 312 in the virtual memory space 300 is expanded into physical addresses in the nonvolatile memory 180, if the data 312 is divided into blocks 209 in the file system 200, for example, the data spans three blocks # 2, # 6, and # 4. And
[0060]
In this case, in order to store the data 312 as a file, the condition is that the data 312 starts from the head of the block # 2. This is because if the data 312 starts in the middle of the block # 2, if the data 312 is used as it is as a file, meaningless data will be included at the beginning of the file.
[0061]
On the other hand, even if the data 312 ends in the middle of the block # 4, there is no problem in saving the data 312 as a file. When saving as a file, the file is saved in units of blocks, but since the final position of the file contents can be known from the file size 413 (FIG. 4) of the directory area 410, unnecessary areas can be ignored. Because.
[0062]
Up to this point, the processing when the data 312 in the virtual memory space 300 is stored as a file has been described. However, when the user file 220 on the file system 200 is accessed as data in the virtual memory space 300, By converting the block number of the file 220 into a physical address and registering it in the page table 500 (FIG. 5), the file can be accessed from the virtual memory space 300.
[0063]
The physical address corresponding to the block number of the user file 220 can be obtained as follows. As shown in FIG. 3, assuming that B is the start address of the file system 200 by physical address, S is the block size in the file system 200, P is the page size in the virtual memory space 300, and M is the page number in the block, a certain block number N Is obtained by the following equation.
A = B + N × S + P × M [Equation 2]
[0064]
By registering the physical address thus obtained in the page table 500 (FIG. 5), the user file 220 on the file system 200 is accessed as data in the virtual memory space 300 without data transfer. be able to.
[0065]
FIG. 8 is a diagram illustrating a functional configuration example of the memory processing unit 111 and the file processing unit 116 according to the embodiment of the present invention. In this figure, the file management table 400 and the page table 500 are accessed from both the memory processing unit 111 and the file processing unit 116. The file management table 400 and the page table 500 are held in the non-volatile memory 180 as described above, and the other units are realized as processes in the processor 110.
[0066]
The memory processing unit 111 performs a process of enabling a file on the file system 200 to be accessed as data in the virtual memory space 300, and includes a file designation unit 112, a physical address calculation unit 113, a memory area acquisition unit 114.
[0067]
The file specification unit 112 specifies a file on the file system 200 to be accessed as data. The specified file is searched in the directory area 410 of the file management table 400, and the block numbers shown in the file allocation table 420 are supplied to the physical address calculation unit 113 in order from the first block number 414 (FIG. 4).
[0068]
The physical address calculation unit 113 calculates a physical address on the nonvolatile memory 180 based on the block number on the file system 200 supplied from the file management table 400. The specific calculation formula is as shown in the above formula 2. The physical address calculated by the physical address calculator 113 is supplied to the page table 500 and registered as the physical page address 501 of the corresponding page entry.
[0069]
The memory area acquiring unit 114 acquires a memory area by searching for a free area in the virtual memory space 300. What is acquired here is only a virtual address in the virtual memory space 300, and does not necessarily secure a new physical address in the nonvolatile memory 180. The memory area acquisition unit 114 searches for an unused virtual page address with reference to the free area flag 503 (FIG. 5) of the page table 500, and assigns a physical address to the physical page address 501 of the unused page entry. The page address of the physical address supplied from the calculation unit 113 is registered. As a result, a virtual address is assigned to the physical address.
[0070]
As a result, the specified file can be accessed not only as a file but also as data in the virtual memory space 300 by the virtual address assigned by the memory area acquisition unit 114.
[0071]
After the virtual address is allocated by the memory area acquisition unit 114, the file entry in the directory area 410 (FIG. 4) of the file management table 400 may be deleted by the file specification unit 112. In this case, the area corresponding to the deleted file entry can no longer be accessed as a file, and is exclusively accessed as data in the virtual memory space 300.
[0072]
On the other hand, the filing processing unit 116 performs a process of saving data in the virtual memory space 300 as a file, and includes a memory area specifying unit 117, a block number calculating unit 118, and a file generating unit 119.
[0073]
The memory area specifying unit 117 specifies a virtual address of data (memory area) in the virtual memory space 300 to be accessed as a file. The virtual address of the specified data is searched in the page table 500 (FIG. 5), and the corresponding physical address is supplied to the block number calculation unit 118.
[0074]
The block number calculation unit 118 calculates a block number on the file system 200 based on the physical address on the nonvolatile memory 180 supplied from the page table 500. The specific calculation formula is as shown in the above formula 1. The block number calculated by the block number calculation unit 118 is supplied to the file management table 400 and registered as the block number of the corresponding file.
[0075]
The file generation unit 119 secures a new file entry in the directory area 410 (FIG. 4) of the file management table 400, and registers the block number supplied from the block number calculation unit 118. As a result, a new file is generated. However, the content indicated by the corresponding block number is data that originally existed in the virtual memory space 300, and the physical address in the nonvolatile memory 180 is newly secured. is not.
[0076]
As a result, the designated data can be accessed not only as data in the virtual memory space 300 but also as a file generated by the file generation unit 119.
[0077]
After a file is generated by the file generating unit 119, the page entry in the page table 500 may be deleted by the memory area specifying unit 117. In this case, the area corresponding to the deleted page entry is no longer accessible as data, and is exclusively accessed as a file on the file system 200.
[0078]
FIG. 9 is a diagram showing an example of a processing procedure in the memory processing unit 111 according to the embodiment of the present invention. First, when a file on the file system 200 to be accessed as data is specified by the file specifying unit 112, the head block number 414 (FIG. 4) of the specified file is read from the directory area 410 of the file management table 400. (Step S911).
[0079]
When the head block number 414 is read, the physical address calculation unit 113 calculates a physical address on the nonvolatile memory 180 corresponding to the head block number 414 (step S912). The specific calculation formula is as shown in the above formula 2. The calculated physical address is supplied to the page table 500.
[0080]
The memory area acquisition unit 114 acquires a memory area by searching for a free area in the virtual memory space 300 (Step S913). The obtained virtual address of the memory area is supplied to the page table 500.
[0081]
The physical page address of the physical address calculated in step S912 is registered in the page table 500 as the physical page address 501 (FIG. 5) corresponding to the virtual page address of the virtual address of the memory area acquired in step S913.
[0082]
If there is a block that has not been registered in the page table 500 for the specified file (step S915), the block number of the next block in the file allocation table 420 of the file management table 400 (FIG. 4) Is read out (step S911), and the memory conversion process is continued. On the other hand, when registration of all blocks of the specified file in the page table 500 is completed (step S915), the memory conversion process ends.
[0083]
As a result, the specified file can be accessed not only as a file but also as data in the virtual memory space 300 by the virtual address assigned by the memory area acquisition unit 114.
[0084]
FIG. 10 is a diagram illustrating an example of a processing procedure in the filing processing unit 116 according to the embodiment of this invention. First, a new file entry is secured in the directory area 410 of the file management table 400 by the file generation unit 119 (step S931). At this time, a new file name can be given.
[0085]
When the virtual address of the data in the virtual memory space 300 to be accessed as a file is specified by the memory area specifying unit 117, the head virtual address of the specified data is converted into a physical address by the page table 500 and output. Is performed (step S932).
[0086]
When the converted physical address is output, the block number calculation unit 118 calculates the block number on the file system 200 corresponding to this physical address as “current block number” (step S933). The specific calculation formula is as shown in the above formula 1. The calculated block number is registered in the head block number 414 (FIG. 4) of the directory area 410 of the file management table 400.
[0087]
If the specified data exceeds the next block boundary (step S934), the virtual address at the head of the next block boundary is converted into a physical address by the page table 500 and output (step S935). This physical address is supplied to the block number calculation unit 118, and as a result, the “next block number” on the file system 200 is calculated (step S936).
[0088]
This “next block number” is set to “current block number” in the file allocation table 420 (step S937). For example, in the example of FIG. 4, if “3” of the first block number 414 of “FileA.txt” is “current block number”, the third address (the fourth block from the top) of the file allocation table 420 is assumed. ) Is set to “1” which is the “next block number”. Then, the “next block number” is set as a new “current block number” (step S938), and the process proceeds to the next processing (step S934).
[0089]
On the other hand, if it is determined in step S934 that the current block number does not exceed the next block boundary, a value indicating the final value of the file is set in “current block number” in the file allocation table 420 (step S939). For example, if the bit width of each block in the file allocation table 420 is 32 bits, “FFFFFFFF” (hexadecimal notation) can be adopted as the final value.
[0090]
As a result, the designated data can be accessed not only as data in the virtual memory space 300 but also as a file generated by the file generation unit 119.
[0091]
As described above, according to the embodiment of the present invention, both the main storage area 310 and the file area 320 are held in the non-volatile memory 180, and the contents thereof can be accessed as data in the virtual memory space 300 and the file The file may be accessible as a file on the system 200.
[0092]
Further, various applications can be considered as applications of the embodiment of the present invention. For example, as shown in FIG. 11, two types of page files, a page file A250 and a page file B260, are stored in the file system 200, and different environments are set by switching the page files when the computer system is started. it can.
[0093]
Here, if the page file A 250 is the execution environment of the operating system A and the page file B 260 is the execution environment of the operating system B, switching between the operating system A and the operating system B can be realized without using an external storage device. it can. It is not necessary to transfer the contents of the page file A 250 and the page file B 260 to the memory each time, and the contents can be directly accessed as the main storage area 360 in the virtual memory space 300.
[0094]
The embodiment of the present invention is an example for embodying the present invention, and has a corresponding relationship with the invention specifying items in the claims as described below, but is not limited thereto. Various modifications can be made without departing from the spirit of the present invention.
[0095]
That is, in claim 1, the file designating unit corresponds to, for example, the file designating unit 112. The physical address calculation means corresponds to, for example, the physical address calculation unit 113. Further, the memory area acquisition unit corresponds to, for example, the memory area acquisition unit 114. The nonvolatile memory corresponds to, for example, the nonvolatile memory 180. The file management table corresponds to, for example, the file management table 400. The address converter corresponds to, for example, the page table 500. The access unit number corresponds to, for example, a block number or a cluster number.
[0096]
Further, in claim 2, the memory area specifying means corresponds to, for example, the memory area specifying section 117.
[0097]
In claim 5, the memory area designating means corresponds to, for example, the memory area designating unit 117. The access unit number calculation means corresponds to, for example, the block number calculation unit 118. The file generation unit corresponds to, for example, the file generation unit 119. The nonvolatile memory corresponds to, for example, the nonvolatile memory 180. The address converter corresponds to, for example, the page table 500. The file management table corresponds to, for example, the file management table 400.
[0098]
In claim 6, the file designating means corresponds to, for example, the file designating unit 112. The access unit number corresponds to, for example, a block number or a cluster number.
[0099]
Further, in claim 9, the nonvolatile memory corresponds to, for example, the nonvolatile memory 180. The processing device corresponds to, for example, the processor 110. The file management table corresponds to, for example, the file management table 400. The address converter corresponds to, for example, the page table 500. The computer system corresponds to, for example, the computer system 100. The file designating unit corresponds to, for example, the file designating unit 112. The physical address calculation means corresponds to, for example, the physical address calculation unit 113. Further, the memory area acquisition unit corresponds to, for example, the memory area acquisition unit 114. The access unit number corresponds to, for example, a block number or a cluster number.
[0100]
Further, in claim 10, the non-volatile memory corresponds to, for example, the non-volatile memory 180. The processing device corresponds to, for example, the processor 110. The file management table corresponds to, for example, the file management table 400. The address converter corresponds to, for example, the page table 500. The computer system corresponds to, for example, the computer system 100. The file specification unit corresponds to, for example, the file specification unit 112. The physical address calculation means corresponds to, for example, the physical address calculation unit 113. Further, the memory area acquisition unit corresponds to, for example, the memory area acquisition unit 114. The access unit number corresponds to, for example, a block number or a cluster number. The plurality of types of page files correspond to, for example, page file A250 and page file B260.
[0101]
Further, in claim 11, the non-volatile memory corresponds to, for example, the non-volatile memory 180. The processing device corresponds to, for example, the processor 110. The file management table corresponds to, for example, the file management table 400. The address converter corresponds to, for example, the page table 500. The computer system corresponds to, for example, the computer system 100.
The memory area designating unit corresponds to, for example, the memory area designating unit 114. The access unit number calculation means corresponds to, for example, the block number calculation unit 118. The file generation unit corresponds to, for example, the file generation unit 119. The access unit number corresponds to, for example, a block number.
[0102]
Further, the procedure of designating a file existing in the nonvolatile memory and reading the access unit number of the file from the file management table in claim 12 or 14 corresponds to, for example, step S911. The procedure for calculating the physical address on the nonvolatile memory based on the access unit number corresponds to, for example, step S912. The procedure for acquiring the memory area in the virtual address space corresponds to, for example, step S913. The procedure of registering the physical address in the address converter so as to correspond to the acquired virtual address of the memory area corresponds to, for example, step S914.
[0103]
A procedure for generating a file entry on a file management table for managing files on a nonvolatile memory according to claim 13 or 15 corresponds to, for example, step S931. The procedure of specifying a memory area on the non-volatile memory by a virtual address and obtaining a corresponding physical address from the address converter corresponds to, for example, step S932. The procedure for calculating the access unit number on the nonvolatile memory based on the physical address corresponds to, for example, step S933. The procedure for registering the access unit number in the file entry corresponds to, for example, step S937 or S939.
[0104]
Note that the computer system according to the embodiment of the present invention is an example of application of the present invention, and the present invention relates to an imaging device, a personal computer, a PDA, a DVD player, a set-top box, a router, a robot, a home server, a portable terminal, and a game. Machine, network terminal, etc.
[0105]
Further, the processing procedure described in the embodiment of the present invention may be regarded as a method having these series of procedures, and a program for causing a computer to execute these series of procedures or a recording medium storing the program It may be considered as.
[0106]
【The invention's effect】
As apparent from the above description, according to the present invention, an effect is provided that a computer system that can access the same area of the nonvolatile memory as both the main storage area and the file area is provided.
[Brief description of the drawings]
FIG. 1 is a diagram illustrating an example of an overall configuration of a computer system according to an embodiment of the present invention.
FIG. 2 is a diagram showing a relationship between a virtual memory space 300 and a file system 200 according to the embodiment of the present invention.
FIG. 3 is a diagram showing a mechanism for managing the file system 200 according to the embodiment of the present invention.
FIG. 4 is a diagram showing a configuration example of a file management table 400 according to the embodiment of the present invention.
FIG. 5 is a diagram showing a configuration example of a page table 500 according to the embodiment of the present invention.
FIG. 6 is a diagram showing a relationship between data 311 on a virtual memory space 300 and a data file 211 on a file system 200 according to the embodiment of the present invention.
FIG. 7 is a diagram showing boundary conditions when data 312 in the virtual memory space 300 is stored as a file in the embodiment of the present invention.
FIG. 8 is a diagram illustrating a functional configuration example of a memory processing unit 111 and a file processing unit 116 according to the embodiment of the present invention.
FIG. 9 is a diagram illustrating an example of a processing procedure in the memory conversion processing unit 111 according to the embodiment of the present invention.
FIG. 10 is a diagram illustrating an example of a processing procedure in the filing processing unit according to the embodiment of this invention.
FIG. 11 is a diagram showing an example in which a plurality of execution environments are stored in a file system 200 as an application of the embodiment of the present invention.
[Explanation of symbols]
100 computer system
110 processor
111 Memory conversion processing unit
112 File specification section
113 Physical Address Calculation Unit
114 Memory area acquisition unit
116 File Processing Unit
117 Memory area specification section
118 Block number calculation unit
119 File Generation Unit
120 instruction cache
121 Command input line
122 Instruction address line
130 Instruction memory management unit
136 instruction address line
140 data cache
141 data input / output line
142 data address line
150 Data memory management unit
156 data address line
160 bus controller
162 Command input line
164 data input line
170 memory bus
180 Non-volatile memory
200 file system
300 virtual memory space
310 Main storage area
320 File area
360 main storage area
400 File management table
420 File Allocation Table
500 page table

Claims (15)

不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから前記ファイルのアクセス単位番号を読み出すファイル指定手段と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、
仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに前記物理アドレスが対応するようアドレス変換器に登録するメモリ領域取得手段と
を具備することを特徴とする処理装置。
File designating means for designating a file existing on the nonvolatile memory and reading an access unit number of the file from a file management table;
Physical address calculating means for calculating a physical address on the nonvolatile memory based on the access unit number;
A processing apparatus comprising: a memory area acquiring unit that acquires a memory area in a virtual address space and registers the memory area in an address converter so that the physical address corresponds to a virtual address of the memory area.
前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定して前記アドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段をさらに具備し、
前記メモリ領域指定手段により読み出された物理アドレスにより前記不揮発メモリにアクセスすることを特徴とする請求項1記載の処理装置。
Further comprising a memory area specifying means for specifying a memory area on the non-volatile memory by a virtual address and obtaining a corresponding physical address from the address converter,
2. The processing device according to claim 1, wherein the non-volatile memory is accessed by a physical address read by the memory area specifying unit.
前記ファイル指定手段により読み出されたアクセス単位番号により前記不揮発メモリにアクセスすることを特徴とする請求項2記載の処理装置。3. The processing apparatus according to claim 2, wherein the non-volatile memory is accessed by an access unit number read by the file designating unit. 前記ファイル指定手段は、前記指定したファイルのファイルエントリを前記ファイル管理テーブルから削除する
ことを特徴とする請求項1記載の処理装置。
2. The processing device according to claim 1, wherein the file specification unit deletes a file entry of the specified file from the file management table.
不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段と、
前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出するアクセス単位番号算出手段と、
ファイル管理テーブルにファイルエントリを生成してそのファイルエントリに前記アクセス単位番号を登録するファイル生成手段と
を具備することを特徴とする処理装置。
Memory area specifying means for specifying a memory area on the non-volatile memory by a virtual address and obtaining a corresponding physical address from the address converter;
Access unit number calculating means for calculating an access unit number on the nonvolatile memory based on the physical address;
A processing apparatus comprising: a file generation unit that generates a file entry in a file management table and registers the access unit number in the file entry.
前記不揮発メモリ上のファイルを指定して前記ファイル管理テーブルから前記ファイルのアクセス単位番号を読み出すファイル指定手段をさらに具備し、
前記ファイル指定手段により読み出されたアクセス単位番号により前記不揮発メモリにアクセスすることを特徴とする請求項5記載の処理装置。
Further comprising a file designation unit for designating a file on the nonvolatile memory and reading an access unit number of the file from the file management table,
6. The processing device according to claim 5, wherein the non-volatile memory is accessed by an access unit number read by the file designating unit.
前記メモリ領域指定手段により読み出された物理アドレスにより前記不揮発メモリにアクセスすることを特徴とする請求項6記載の処理装置。7. The processing apparatus according to claim 6, wherein the non-volatile memory is accessed by a physical address read by the memory area specifying unit. 前記メモリ領域指定手段は、前記指定した仮想アドレスが未使用状態になるよう前記アドレス変換器に登録する
ことを特徴とする請求項5記載の処理装置。
6. The processing apparatus according to claim 5, wherein the memory area designating unit registers the designated virtual address in the address translator such that the designated virtual address becomes unused.
不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、前記不揮発メモリ上のファイルを管理するファイル管理テーブルと、前記処理装置における仮想アドレスを前記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、
前記処理装置は、
前記不揮発メモリ上に存在するファイルを指定して前記ファイル管理テーブルから前記ファイルのアクセス単位番号を読み出すファイル指定手段と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、
仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに前記物理アドレスが対応するよう前記アドレス変換器に登録するメモリ領域取得手段と
を備えることを特徴とするコンピュータシステム。
A non-volatile memory, a processing device using the non-volatile memory as a main storage area and a file area, a file management table for managing files on the non-volatile memory, and converting a virtual address in the processing device into a physical address on the non-volatile memory A computer system comprising:
The processing device includes:
File designating means for designating a file existing on the nonvolatile memory and reading an access unit number of the file from the file management table;
Physical address calculating means for calculating a physical address on the nonvolatile memory based on the access unit number;
A computer system comprising: a memory area acquisition unit that acquires a memory area in a virtual address space and registers the memory area in the address converter so that the physical address corresponds to the virtual address of the memory area.
不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、前記不揮発メモリ上のファイルを管理するファイル管理テーブルと、前記処理装置における仮想アドレスを前記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、
前記不揮発メモリは複数種類のページファイルを保持し、
前記処理装置は、
主記憶領域として使用すべきページファイルを前記複数種類のページファイルから選択して指定し、前記ファイル管理テーブルから前記指定したページファイルのアクセス単位番号を読み出すファイル指定手段と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する物理アドレス算出手段と、
仮想アドレス空間においてメモリ領域を取得してそのメモリ領域の仮想アドレスに前記物理アドレスが対応するよう前記アドレス変換器に登録するメモリ領域取得手段と
を備えることを特徴とするコンピュータシステム。
A non-volatile memory, a processing device using the non-volatile memory as a main storage area and a file area, a file management table for managing files on the non-volatile memory, and converting a virtual address in the processing device into a physical address on the non-volatile memory A computer system comprising:
The nonvolatile memory holds a plurality of types of page files,
The processing device includes:
File specifying means for selecting and specifying a page file to be used as a main storage area from the plurality of types of page files, and reading an access unit number of the specified page file from the file management table;
Physical address calculating means for calculating a physical address on the nonvolatile memory based on the access unit number;
A computer system comprising: a memory area acquisition unit that acquires a memory area in a virtual address space and registers the memory area in the address converter so that the physical address corresponds to the virtual address of the memory area.
不揮発メモリと、この不揮発メモリを主記憶領域およびファイル領域として用いる処理装置と、前記不揮発メモリ上のファイルを管理するファイル管理テーブルと、前記処理装置における仮想アドレスを前記不揮発メモリ上の物理アドレスに変換するアドレス変換器とを具備するコンピュータシステムであって、
前記処理装置は、
前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定して前記アドレス変換器から対応する物理アドレスを取得するメモリ領域指定手段と、
前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出するアクセス単位番号算出手段と、
前記ファイル管理テーブルにファイルエントリを生成してそのファイルエントリに前記アクセス単位番号を登録するファイル生成手段と
を備えることを特徴とするコンピュータシステム。
A non-volatile memory, a processing device using the non-volatile memory as a main storage area and a file area, a file management table for managing files on the non-volatile memory, and converting a virtual address in the processing device into a physical address on the non-volatile memory A computer system comprising:
The processing device includes:
A memory area specifying means for specifying a memory area on the non-volatile memory by a virtual address and obtaining a corresponding physical address from the address converter;
Access unit number calculating means for calculating an access unit number on the nonvolatile memory based on the physical address;
A computer system comprising: a file generation unit that generates a file entry in the file management table and registers the access unit number in the file entry.
不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから前記ファイルのアクセス単位番号を読み出す手順と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する手順と、
仮想アドレス空間においてメモリ領域を取得する手順と、
前記取得されたメモリ領域の仮想アドレスに前記物理アドレスが対応するようアドレス変換器に登録する手順と
を具備することを特徴とする処理方法。
Reading a file access unit number from the file management table by specifying a file existing on the nonvolatile memory;
Calculating a physical address on the nonvolatile memory based on the access unit number;
Obtaining a memory area in the virtual address space;
Registering the physical address in the address converter so as to correspond to the virtual address of the acquired memory area.
不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順と、
前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順と、
前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出する手順と、
前記ファイルエントリに前記アクセス単位番号を登録する手順と
を具備することを特徴とする処理方法。
A procedure for generating a file entry on a file management table for managing files on the nonvolatile memory;
A procedure of specifying a memory area on the nonvolatile memory by a virtual address and obtaining a corresponding physical address from an address converter,
Calculating an access unit number on the nonvolatile memory based on the physical address;
Registering the access unit number in the file entry.
不揮発メモリ上に存在するファイルを指定してファイル管理テーブルから前記ファイルのアクセス単位番号を読み出す手順と、
前記アクセス単位番号に基づいて前記不揮発メモリ上の物理アドレスを算出する手順と、
仮想アドレス空間においてメモリ領域を取得する手順と、
前記取得されたメモリ領域の仮想アドレスに前記物理アドレスが対応するようアドレス変換器に登録する手順と
をコンピュータに実行させることを特徴とするプログラム。
Reading a file access unit number from the file management table by specifying a file existing on the nonvolatile memory;
Calculating a physical address on the nonvolatile memory based on the access unit number;
Obtaining a memory area in the virtual address space;
Registering the acquired physical address of the memory area in the address translator so that the physical address corresponds to the virtual address of the acquired memory area.
不揮発メモリ上のファイルを管理するファイル管理テーブル上にファイルエントリを生成する手順と、
前記不揮発メモリ上のメモリ領域を仮想アドレスにより指定してアドレス変換器から対応する物理アドレスを取得する手順と、
前記物理アドレスに基づいて前記不揮発メモリ上のアクセス単位番号を算出する手順と、
前記ファイルエントリに前記アクセス単位番号を登録する手順と
をコンピュータに実行させることを特徴とするプログラム。
A procedure for generating a file entry on a file management table for managing files on the nonvolatile memory;
A procedure of specifying a memory area on the nonvolatile memory by a virtual address and obtaining a corresponding physical address from an address converter,
Calculating an access unit number on the nonvolatile memory based on the physical address;
Registering the access unit number in the file entry.
JP2003162798A 2003-06-06 2003-06-06 Computer system using nonvolatile memory Pending JP2004362464A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003162798A JP2004362464A (en) 2003-06-06 2003-06-06 Computer system using nonvolatile memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003162798A JP2004362464A (en) 2003-06-06 2003-06-06 Computer system using nonvolatile memory

Publications (1)

Publication Number Publication Date
JP2004362464A true JP2004362464A (en) 2004-12-24

Family

ID=34054843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003162798A Pending JP2004362464A (en) 2003-06-06 2003-06-06 Computer system using nonvolatile memory

Country Status (1)

Country Link
JP (1) JP2004362464A (en)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185609A (en) * 2011-03-04 2012-09-27 Sony Corp Virtual memory system, control method of virtual memory, and program
JP2014063358A (en) * 2012-09-21 2014-04-10 Fixstars Corp Information processor, information processing method, and program
JP2014149758A (en) * 2013-02-04 2014-08-21 Fixstars Corp Information processing device, information processing method, and program
JP2014182449A (en) * 2013-03-18 2014-09-29 Toshiba Corp Memory controller
WO2014171223A1 (en) * 2013-04-15 2014-10-23 株式会社フィックスターズ Information processing device, information processing method, and program
WO2015033767A1 (en) * 2013-09-04 2015-03-12 株式会社フィックスターズ File management device, program and file management method
JP2016524228A (en) * 2013-05-29 2016-08-12 マイクロソフト テクノロジー ライセンシング,エルエルシー Storage system and alias memory
FR3073959A1 (en) * 2017-11-23 2019-05-24 Bull Sas COMPUTER SYSTEM, METHOD FOR ACCESSING A COMPUTER FILE, AND CORRESPONDING COMPUTER PROGRAM

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012185609A (en) * 2011-03-04 2012-09-27 Sony Corp Virtual memory system, control method of virtual memory, and program
JP2014063358A (en) * 2012-09-21 2014-04-10 Fixstars Corp Information processor, information processing method, and program
JP2014149758A (en) * 2013-02-04 2014-08-21 Fixstars Corp Information processing device, information processing method, and program
US10503702B2 (en) 2013-02-04 2019-12-10 Fixstars Corporatioon Information processing device, information processing method, and program
JP2014182449A (en) * 2013-03-18 2014-09-29 Toshiba Corp Memory controller
WO2014171223A1 (en) * 2013-04-15 2014-10-23 株式会社フィックスターズ Information processing device, information processing method, and program
JP2014206884A (en) * 2013-04-15 2014-10-30 株式会社フィックスターズ Information processor, information processing method, and program
US10216437B2 (en) 2013-05-29 2019-02-26 Microsoft Technology Licensing, Llc Storage systems and aliased memory
JP2016524228A (en) * 2013-05-29 2016-08-12 マイクロソフト テクノロジー ライセンシング,エルエルシー Storage system and alias memory
WO2015033767A1 (en) * 2013-09-04 2015-03-12 株式会社フィックスターズ File management device, program and file management method
US9904483B2 (en) 2013-09-04 2018-02-27 Fixstars Corporation File management device, program and file management method
JPWO2015033767A1 (en) * 2013-09-04 2017-03-02 株式会社フィックスターズ File management apparatus, program, and file management method
FR3073959A1 (en) * 2017-11-23 2019-05-24 Bull Sas COMPUTER SYSTEM, METHOD FOR ACCESSING A COMPUTER FILE, AND CORRESPONDING COMPUTER PROGRAM

Similar Documents

Publication Publication Date Title
JP6460497B2 (en) File access method, file access device, and storage device
KR101729503B1 (en) Hierarchical translation tables control
WO2016082191A1 (en) File access method and apparatus
CN102754086B (en) The virtual memory system that page size is variable
US5864876A (en) DMA device with local page table
TW200828014A (en) Flash memory management method with low RAM utilization
KR20170112952A (en) Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application
US20100312955A1 (en) Memory system and method of managing the same
CN111414248B (en) Memory management method and device and computing equipment
KR20090026941A (en) Method for address mapping in virtual file system embodied in storage device having a plurality of non-volatile data storage and apparatus thereof
JP2007048296A (en) Method, apparatus and system for invalidating multiple address cache entries
JP2004362464A (en) Computer system using nonvolatile memory
TW201017407A (en) Nonvolatile data storage system and method thereof
WO2015032214A1 (en) High-speed routing lookup method and device simultaneously supporting ipv4 and ipv6
CN104516826A (en) Method and device for correspondence of large virtual pages and large physical pages
JPH1063551A (en) Information processor
JP2007304747A (en) Computer system and memory access method
JPH06139149A (en) Multiple virtual space control device
JP2000276405A (en) Address conversion device and computer system having this device
JP2008217208A (en) Storage device, computer system and management method for storage device
JP2010026969A (en) Data processor
WO2016049893A1 (en) File page management unit, processing device and file page management method
TWI270778B (en) Apparatus and method for reducing tag RAM accesses
Li et al. A Novel Persistent In-memory Filesystem for the Fusion of Memory and Storage
JP2010244165A (en) Semiconductor integrated circuit and method for controlling the same