JP2008287398A - 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置 - Google Patents

主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置 Download PDF

Info

Publication number
JP2008287398A
JP2008287398A JP2007130345A JP2007130345A JP2008287398A JP 2008287398 A JP2008287398 A JP 2008287398A JP 2007130345 A JP2007130345 A JP 2007130345A JP 2007130345 A JP2007130345 A JP 2007130345A JP 2008287398 A JP2008287398 A JP 2008287398A
Authority
JP
Japan
Prior art keywords
data
flash memory
stored
memory
processor
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
JP2007130345A
Other languages
English (en)
Inventor
Toshio Shirokibara
敏雄 白木原
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007130345A priority Critical patent/JP2008287398A/ja
Publication of JP2008287398A publication Critical patent/JP2008287398A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】論理アドレスにより指定されるデータ量よりも、NAND型フラッシュメモリの記憶容量を大きくすることにより、主記憶装置として用いられるNAND型フラッシュメモリのブロックの消去回数が増大することを抑制することを可能にする。
【解決手段】本発明の主記憶装置30は、論理アドレスにより指定されるデータ量よりも記憶容量が大きく、データ、論理アドレス、およびバージョン番号とを関連付けて記憶するフラッシュメモリ200と、フラッシュメモリ200に記憶されるデータの論理アドレスと物理アドレスとを関連付けて記憶するマッピング記憶部121と、フラッシュメモリ200に書き込まれるデータが一時的に記憶されるバッファメモリ111と、バッファメモリ111に記憶されたデータをフラッシュメモリ200に書き込むメモリコントローラ100とを備えることを特徴とする。
【選択図】 図1

Description

本発明は、主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置に関するものである。
フラッシュメモリを用いて、主記憶装置を構成する方法が提案されている。このような主記憶装置では、電源を切っても記憶した情報が消失しないという特徴がある。しかし、主記憶装置を構成するフラッシュメモリは、ブロックと呼ばれるまとまった単位ごとにしかデータを消去できず、1回のブロック消去ごとに1回だけしかデータを書き込むことができない。また、フラッシュメモリは、データを消去するたびに素子が劣化するため、その消去回数が制限される。そのため、データの書き込みがフラッシュメモリの特定のブロックに集中した場合など、そのブロックのデータの消去回数が制限回数を超え、データを正常に記憶できなくなるという問題点がある。
このような問題を解決する手法として、プロセッサがアクセスするデータを指定するために用いられる論理アドレスを、フラッシュメモリ上の領域を指定する物理アドレスへ変換する際に、その対応関係を動的に変更するウェアレベリングという手法がある(例えば、非特許文献1。)。
上記の非特許文献1に記載される手法では、プロセッサから同一の論理アドレスに対して繰り返しデータの書き込み要求があった場合でも、データが書き込まれる物理アドレスは動的に変更される。そのため、フラッシュメモリの特定のブロックが、集中的にデータの書き込みおよび消去されることを抑制できる。
Algorithms and Data Structures for Flash Memories, ERAN GAL AND SIVAN TOLEDO, Tel−Aviv University, ACM Computing Surveys, Vol.37, No.2, June 2005, pp.138―163
しかしながら、フラッシュメモリを主記憶装置として用いると、プロセッサなどから小容量のデータの書き込みが頻発する。そのため、上記の非特許文献1に記載される手法によりフラッシュメモリに対する書き込みを平準化しても、フラッシュメモリのブロックの消去回数の増大を十分に抑制できないという問題があった。
本発明は、上記従来技術の問題点を解決するためになされたものであって、フラッシュメモリを主記憶装置として用いたとしても、そのフラッシュメモリのブロックの消去回数が増大することを抑制できる主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置を提供することを目的とする。
本発明の第1の実施形態に係る主記憶装置は、プロセッサによりアクセスされるデータを指定する論理アドレスを受信し、前記受信した論理アドレスと対応する物理アドレスによって指定されるデータを出力する主記憶装置であって、前記プロセッサが前記論理アドレスを用いてアクセスできるデータ量よりも記憶容量が大きいフラッシュメモリと、前記フラッシュメモリに記憶されるデータの論理アドレスの少なくとも一部と、当該データが記憶される前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて記憶する第1の記憶手段と、前記プロセッサによって書き込み処理が行われ、前記フラッシュメモリへ書き込まれるデータを一時的に記憶する第2の記憶手段と、前記第2の記憶手段に記憶されたデータを前記フラッシュメモリに書き込む際に、当該データの論理アドレスの少なくとも一部と当該データが書き込まれる前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて前記第1の記憶手段に書き込むメモリコントローラとを備えることを特徴とする。
本発明の第2の実施形態に係る情報処理装置は、論理アドレスを用いてアクセスするデータを指定するプロセッサと、前記プロセッサから受信する論理アドレスと対応する物理アドレスによって指定されるデータを出力する主記憶装置とを備える情報処理装置であって、前記主記憶装置が、前記プロセッサが前記論理アドレスを用いてアクセスできるデータ量よりも記憶容量が大きいフラッシュメモリと、前記フラッシュメモリに記憶されるデータの論理アドレスの少なくとも一部と、当該データが記憶される前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて記憶する第1の記憶手段と、前記プロセッサによって書き込み処理が行われ、前記フラッシュメモリへ書き込まれるデータを一時的に記憶する第2の記憶手段と、前記第2の記憶手段に記憶されたデータを前記フラッシュメモリに書き込む際に、当該データの論理アドレスの少なくとも一部と当該データが書き込まれる前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて前記第1の記憶手段に書き込むメモリコントローラとを備えることを特徴とする。
本発明の第3の実施形態に係る主記憶装置の制御方法は、プロセッサが論理アドレスを用いてアクセスできるデータ量よりも記憶容量が大きいフラッシュメモリと、前記フラッシュメモリに記憶されるデータの論理アドレスの少なくとも一部と当該データが記憶される前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて記憶する第1の記憶手段と、前記プロセッサによって書き込み処理が行われ、前記フラッシュメモリへ書き込まれるデータを一時的に記憶する第2の記憶手段とを備える主記憶装置の制御方法であって、前記プロセッサによって書き込み処理が行われたデータを前記第2の記憶手段に書き込み、前記第2の記憶手段に書き込まれたデータを前記フラッシュメモリに書き込む際に、当該データの論理アドレスの少なくとも一部と当該データが書き込まれる前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて前記第1の記憶手段に書き込むことを特徴とする。
本発明によれば、フラッシュメモリを主記憶装置として用いたとしても、フラッシュメモリのブロックの消去回数が増大することを抑制できる。
以下、本発明の一実施形態について説明する。なお、主記憶装置として用いられるフラッシュメモリがNAND型である実施形態について説明するが、NAND型に限られるものではない。
図1は、本発明の一実施形態に係る情報処理装置1を示すブロック図である。
この実施形態に係る情報処理装置1は、論理アドレスを用いてアクセスするデータを指定するプロセッサ10と、プロセッサ10によりアクセスされるデータを記憶する主記憶装置30とを備える。主記憶装置30は、物理アドレスにより記憶領域が指定されるNAND型フラッシュメモリ200を有する。なお、プロセッサ10と主記憶装置30とは、システムバス20で接続される。
プロセッサ10は、例えば、28ビットの論理アドレスを用いて主記憶装置30に記憶されたデータへアクセスし、演算処理を行う。各論理アドレスが主記憶装置30に記憶された1バイトのデータを指定するものとすると、プロセッサ10は、論理アドレスを用いて主記憶装置30上の256MBのデータを指定しアクセスすることができる。
図2は、論理アドレスの構成を示す図である。論理アドレスは28ビット幅であり、以下では、論理アドレスの上位17ビットを論理ページ番号、下位11ビットを論理ページ内オフセットと呼ぶ。
図1の説明に戻り、プロセッサ10は、主記憶装置30よりもデータ供給速度が大きいキャッシュメモリ11を内蔵する。このキャッシュメモリ11のキャッシュラインサイズを、例えば、32バイトとする。プロセッサ10が主記憶装置30からデータを読み出す、あるいはプロセッサ10が主記憶装置30に対してデータを書き込む場合、システムバス20を介して、例えば、32バイトごとにデータが送受信される。
主記憶装置30が備えるNAND型フラッシュメモリ200の記憶容量を、例えば、4GB(Giga Bytes)とし、その物理アドレスのビット幅を32ビットとする。ここで、各物理アドレスが主記憶装置30に記憶された1バイトのデータを指定するものとする。
図3は、NAND型フラッシュメモリ200の物理アドレスの構成を示す図である。
32ビット幅の物理アドレスは、15ビット幅のブロック番号、6ビット幅のブロック内のページ番号、および11ビット幅のページ内オフセットにより構成される。なお、本実施の形態では、例えば、NAND型フラッシュメモリ200のブロックサイズを128kBとし、ページサイズを2kBとした。なお、NAND型フラッシュメモリ200では、消去処理を行う最小単位をブロック、書き込みおよび読み出し処理を行う最小単位をページと呼ぶ。また、以下では、15ビットのブロック番号と6ビットのブロック内のページ番号とを連結した21ビットのビット列を物理ページ番号と呼ぶ。
NAND型フラッシュメモリ200は、215個のブロック領域を有する。各ブロック領域は2個のページ領域を有する。NAND型フラッシュメモリ200は、ブロック領域ごとに、そのブロックの消去回数を記憶する消去回数部201を備える。NAND型フラッシュメモリ200は、ページ領域ごとに、論理ページ番号部202、バージョン番号部203、およびデータ部204を備える。
データ部204には、書き込みおよび読み出し処理を行う最小単位(ページサイズ:2kB)と同じ大きさのデータが記憶される。論理ページ番号部202には、データ部204に記憶されたデータの論理ページ番号が記憶される。バージョン番号部203には、データ部204上のデータが更新されたタイミングを示すバージョン番号が記憶される。
バージョン番号は、初期値を“0”とし、論理ページ番号が同一のデータがNAND型フラッシュメモリ200に書き込まれるたびに、“1”が加算される“0”以上の数字である。NAND型フラッシュメモリ200に論理ページ番号が同一のデータが複数記憶されたとき、バージョン番号が最大であるデータが最新のデータである。
なお、バージョン番号は、論理ページ番号が同一のデータがNAND型フラッシュメモリ200に複数記憶された場合に、それらのデータが更新されたタイミングの前後関係を示す情報であればよい。例えば、バージョン番号は、データが更新されたタイミングのタイムスタンプを記憶するなどとしても良い。
図1の説明に戻り、主記憶装置30は、バッファメモリ111と、論理アドレス記憶部112と、バッファ制御部110と、マッピング記憶部121と、退避用メモリ122と、消去回数記憶部123と、マッピング制御部120と、チェックポイント制御部130とを備える。
なお、メモリコントローラ100はバッファ制御部110とマッピング制御部120とチェックポイント制御部130とにより構成され、システムバス20を介してプロセッサ10からのコマンドを受信する。また、バッファメモリ111、論理ページ番号記憶部112、マッピング記憶部121、退避用メモリ122、および消去回数記憶部123は、揮発性メモリで構成する。
バッファメモリ111は、プロセッサ10が主記憶装置30に書き込むデータを一時的に記憶する。バッファメモリ111は、データをNAND型フラッシュメモリ20のページサイズ(2kB)ごとに記憶する。バッファメモリ111の記憶容量を、例えば、256kBとすると、128ページ分のデータを記憶する。
図4は、論理ページ番号記憶部112の構成を示す図である。
論理ページ番号記憶部112は、バッファメモリ111にページ単位で記憶される128ページ分のデータの論理ページ番号を記憶する。図4の例では、バッファメモリ111の0ページ目に、論理ページ番号「0x0012A」のデータが記憶されていることを示す。また、バッファメモリ111の1ページ目には、データは記憶されていないことを示す。さらにまた、バッファメモリ111の2ページ目に、論理ページ番号「0x10311」のデータが記憶されていることを示す。
図1の説明に戻り、バッファ制御部110は、プロセッサ10から主記憶装置30へのデータ書き込みがなされた際に、そのデータをバッファメモリ111へ書き込む。また、バッファ制御部110は、バッファメモリ111に蓄積されたデータをNAND型フラッシュメモリ200へ書き込む。なお、バッファメモリ111へのデータ書き込みおよびデータ消去に伴い、バッファ制御部110は、論理ページ番号記憶部112を更新する。
図5は、マッピング記憶部121の構成を示す図である。
マッピング記憶部121は、NAND型フラッシュメモリ200に記憶されたデータの論理ページ番号およびバージョン番号とに関連付けて、そのデータが記憶されているNAND型フラッシュメモリ200のページ領域の物理ページ番号(論理・物理マッピングテーブル)を記憶する。なお、マッピング記憶部121は、NAND型フラッシュメモリ200に記憶されたデータのうちバージョン番号が最大のデータ、即ち最新のデータについての論理ページ番号と物理ページ番号との関係(論理・物理マッピングテーブル)を記憶するものとする。
図5の例では、論理ページ番号「0x101FF」、バージョン番号「1」のデータが、NAND型フラッシュメモリ200の物理ページ番号「0x10FF01」の領域に記憶されていることを示す。また、論理ページ番号「0x0A011」、バージョン番号「3」のデータが、NAND型フラッシュメモリ200の物理ページ番号「0x0A110F」の領域に記憶されていることを示す。さらにまた、論理ページ番号「0x10131」、バージョン番号「0」のデータが、NAND型フラッシュメモリ200の物理ページ番号「0x0A1001」の領域に記憶されていることを示す。
図1の説明に戻り、退避用メモリ122には、NAND型フラッシュメモリ200のブロック消去が行われる際に、そのブロック領域に記憶されるデータが複製される。退避用メモリ122の記憶容量は、例えば、NAND型フラッシュメモリ200のブロックサイズと同じ128kBとする。
消去回数記憶部123には、NAND型フラッシュメモリ200の各ブロック領域の消去回数が記憶される。なお、消去回数記憶部123には、主記憶装置30の初期化時に、NAND型フラッシュメモリ200の各ブロック領域の消去回数部201に記憶された消去回数が消去回数記憶部123に複製される。
マッピング制御部120は、NAND型フラッシュメモリ200へのデータ書き込みおよびデータ消去が行われる際に、マッピング記憶部121に記憶された論理・物理マッピングテーブルを更新する。即ち、マッピング制御部120は、マッピング記憶部121へアクセスし、NAND型フラッシュメモリ200に記憶されるデータの論理ページ番号と、そのデータのバージョン情報、およびそのデータが記憶されるNAND型フラッシュメモリ200のページ領域の物理ページ番号とを更新する。
次に図1および図6、7、8を用いて、本発明の一実施形態に係る情報処理装置1の動作について説明する。
図6は、プロセッサ10が主記憶装置30に対して送信した書き込みデータがバッファメモリ111に記憶される際の、情報処理装置1の動作を示すフローチャートである。
まず、バッファ制御部110は、プロセッサ10から主記憶装置30に対する書き込み要求と書き込みデータ(32バイト)とを受信する(ステップS101)。
次に、バッファ制御部110は、書き込みデータの論理ページ番号が論理ページ番号記憶部112に記憶されているか否かを判定する(ステップS102)。
書き込みデータの論理ページ番号が論理ページ番号記憶部112に記憶されていると判定された場合(ステップS102のはい)、プロセッサ10から受信した書き込みデータと同一の論理ページ番号に指定されるデータが、バッファメモリ111に既に記憶されていることになる。そこで、バッファ制御部110は、プロセッサ10から受信した書き込みデータを用いて、バッファメモリ111に記憶されている、書き込みデータの論理ページ番号に指定されるデータを更新する。
一方、書き込みデータの論理ページ番号が論理ページ番号記憶部112に記憶されていないと判定された場合(ステップS102のいいえ)、次に、バッファ制御部110は、論理ページ番号記憶部112に“空き”を示す情報が記憶されているか否かを判定する(ステップS103)。
論理ページ番号記憶部112に“空き”を示す情報が記憶されていると判定された場合(ステップS103のはい)、バッファメモリ111に空き領域はある。そこで、当該空き領域に、プロセッサ10から受信した書き込みデータを記憶する(ステップS105、S106)。
一方、論理ページ番号記憶部112に“空き”を示す情報が記憶されていないと判定された場合(ステップS103のいいえ)、バッファメモリ111に空き領域はない。そこで、バッファ制御部110は、バッファメモリ111に記憶されているデータを、すべて、あるいは適宜選択し、NAND型フラッシュメモリ200に書き込む(ステップS104)。そして、バッファ制御部110は、NAND型フラッシュメモリ200に書き込みを行ったデータを消去し、バッファメモリ111に空き領域を作成する。なお、バッファ制御部110がバッファメモリ111に記憶されているデータをNAND型フラッシュメモリ200に書き込む方法については後述する。
論理ページ番号記憶部112に“空き”を示す情報が記憶されているかが判定され(ステップS103)、論理ページ番号記憶部112に“空き”を示す情報が記憶されていないと判定された場合(ステップS103のいいえ)にバッファメモリ111に空き領域を作成した後(ステップS104)、次に、バッファ制御部110は、書き込みデータと同一の論理ページ番号のデータをNAND型フラッシュメモリ200からバッファメモリ111の空き領域へ複製する(ステップS105)。なお、バッファ制御部110は、データを複製したバッファメモリ111上の領域に対応する論理ページ番号記憶部112のエントリに書き込みデータの論理ページ番号を書き込む。
次に、バッファ制御部110は、プロセッサ10から受信した書き込みデータを用いて、バッファメモリ111に記憶されている、書き込みデータの論理ページ番号に指定されるデータを更新する(ステップS106)。以上の処理により、プロセッサ10から受信した書き込みデータは、バッファメモリ111に記憶される。
図7は、バッファメモリ111に記憶されたデータをNAND型フラッシュメモリ200に書き込む際の、情報処理装置1の動作を示すフローチャートである。
まず、バッファ制御部110は、NAND型フラッシュメモリ200へ書き込むデータの論理ページ番号を、論理ページ番号記憶部112から読み出し、マッピング制御部120に送信する(ステップS201)。なお、バッファメモリ111の空き容量がない場合(図6のステップS104)、バッファメモリ111に記憶されたデータのNAND型フラッシュメモリ200への書き込みを指示する要求をプロセッサ10から受信した場合、バッファメモリ111の空き容量が一定以下となった場合などに、バッファ制御部110は、バッファメモリ111に記憶されたデータをNAND型フラッシュメモリ200へ書き込む処理を開始する。
次に、マッピング制御部120は、NAND型フラッシュメモリ200へ書き込むデータの論理ページ番号を受信した後、NAND型フラッシュメモリ200に空きページが存在するかを判定する(ステップS202)。即ち、マッピング制御部120は、NAND型フラッシュメモリ200の論理ページ番号部202およびバージョン番号部203を参照し、双方に初期値が設定されているページの有無を判定する。
NAND型フラッシュメモリ200に空きページが存在すると判定された場合(ステップS202のはい)、バッファメモリ111のデータはその空きページに書き込まれる。
一方、NAND型フラッシュメモリ200に空きページが存在しないと判定された場合(ステップS202のいいえ)、マッピング制御部120はNAND型フラッシュメモリ200のブロックのうち、消去回数が最も少ないブロックを選択し、そのブロックを消去する(ステップS203)。即ち、マッピング制御部120は、消去回数記憶部123を参照し、最も消去回数が少ないブロックを選択する。マッピング制御部120は、そのブロックに記憶されているデータであって、最新のデータが記憶されているページを、退避用メモリ122に複製し、そのブロックを消去する。なお、退避用メモリ122に記憶されたデータは、ブロック消去処理が完了した後、ブロック消去前と同じ物理ページ番号に指定されるNAND型フラッシュメモリ200の領域に書き込まれる。
NAND型フラッシュメモリ200に空きページが存在するか判定され(ステップS202)、NAND型フラッシュメモリ200に空きページが存在しない場合(ステップS202のいいえ)にNAND型フラッシュメモリ200に空きページが作成された後(ステップS203)、次に、マッピング制御部120は、マッピング記憶部121を検索し、バッファ制御部110から受信した論理ページ番号を有するエントリのバージョン番号を読み出す(ステップS204)。
次に、マッピング制御部120は、バッファ制御部110に対して、NAND型フラッシュメモリ200の空き領域の物理ページ番号、およびバッファ制御部110から受信した論理ページ番号と関連付けられたバージョン番号に“1”を加えた結果を送信する(ステップS205)。
また、マッピング制御部120は、バッファ制御部110から受信した論理ページ番号と、バッファ制御部110に送信したバージョン番号と、バッファ制御部110に送信したNAND型フラッシュメモリ200の物理ページ番号とをマッピング記憶部121に書き込み、論理・物理マッピングテーブルを更新する(ステップS206)。
次に、バッファ制御部110は、マッピング制御部120から受信したNAND型フラッシュメモリ200の物理ページ番号とバージョン番号を用いて、バッファメモリ111に記憶されたデータを、NAND型フラッシュメモリ200へ書き込む(ステップS207)。即ち、バッファ制御部110は、受信した物理ページ番号に指定される領域に、バッファメモリ111に記憶された書き込みデータ、その書き込みデータの論理ページ番号、およびマッピング制御部120から受信したバージョン番号を書き込む。以上の処理により、バッファメモリ111に記憶されたプロセッサ10から受信した書き込みデータは、NAND型フラッシュメモリ200へ記憶される。
このように、NAND型フラッシュメモリ200の記憶容量(4GB)よりもプロセッサ10が使用可能な主記憶装置30の容量(256MB)を小さくし、かつ、NAND型フラッシュメモリ200へのデータの書込みを分散することにより、NAND型フラッシュメモリ200のブロック消去の回数の増大を抑制することができる。
NAND型フラッシュメモリ200の記憶容量(4GB)よりもプロセッサ10が使用できる主記憶装置30の容量(256MB)は小さい。そのため、NAND型フラッシュメモリ200に記憶されるデータの量は最大4GBであるが、最新のデータの量は最大256MBである。そのため、例えば、プロセッサ10からの小容量のデータ書込みが頻発した場合であっても、NAND型フラッシュメモリ200には常に十分な空き領域があり、ブロック消去が頻発するのを抑制することができる。
さらに、プロセッサ10から32バイトごとに送信される書込みデータを、揮発性メモリであるバッファメモリ111に蓄積し、一括してNAND型フラッシュメモリ200へ書き込むことにより、NAND型フラッシュメモリ200のブロック消去の回数の増大を抑制することができる。
図8は、主記憶装置30に記憶されたデータのチェックポイントを作成する際の、情報処理装置1の動作を示すフローチャートである。
チェックポイント制御部130は、プロセッサ10からチェックポイントの作成要求を受信した場合、あるいは前回チェックポイントを作成してから一定期間経過した場合などに、主記憶装置30に記憶されたデータのチェックポイントを作成するための処理を開始する。
まず、チェックポイント制御部130は、バッファ制御部110に対してバッファメモリ111に記憶されたデータをNAND型フラッシュメモリ200に書き込むことを指示する(ステップS301)。
次に、バッファ制御部110は、チェックポイント制御部130から上記指示を受け、バッファメモリ111に記憶されたすべてのデータをNAND型フラッシュメモリ200に書き込む(ステップS302)。バッファ制御部110が、バッファメモリ111上のデータをNAND型フラッシュメモリ200へ書き込む処理については上述の通りである。
次に、チェックポイント制御部130は、マッピング制御部120に対して、マッピング記憶部121に記憶されている論理・物理マッピングテーブルのNAND型フラッシュメモリ200へ書き込みを指示する(ステップS303)。
次に、マッピング制御部120は、チェックポイント制御部130からの上記指示に従い、マッピング記憶部121に記憶されている論理・物理マッピングテーブルと、NAND型フラッシュメモリ200の空き領域の物理ページ番号とを、バッファ制御部110に送信する(ステップS304)。なお、マッピング制御部120がNAND型フラッシュメモリ200の空き領域の物理ページ番号を取得する方法は、バッファメモリ111に記憶されたデータをNAND型フラッシュメモリ200へ書き込む際に行う動作と同様である。
ここで、論理・物理マッピングテーブルの論理ページ番号は、例えば、「−2」とされる。この論理・物理マッピングテーブルの論理ページ番号は、NAND型フラッシュメモリ200に書き込まれるデータの論理ページ番号のいずれとも異なるものであれば良い。
次に、バッファ制御部110は、チェックポイント制御部130から受信したNAND型フラッシュメモリ200の空き領域の物理ページ番号に指定される領域へ、論理・物理マッピングテーブルを書き込む(ステップS305)。
このように、主記憶装置30に記憶されたデータのチェックポイントを作成することにより、チェックポイント制御部130は、情報処理装置1の電源が突然オフ状態になり主記憶装置30に記憶されたデータが消失した場合でも、最新のチェックポイントを作成した時点の主記憶装置30に記憶されていたデータを復帰することができる。
即ち、チェックポイント制御部130は、プロセッサ10からチェックポイントによるデータ回復命令を受ける。チェックポイント制御部130は、バッファメモリ111および論理ページ番号記憶部112を初期化する。チェックポイント制御部130は、NAND型フラッシュメモリ200の論理ページ番号が「−2」であって、バージョン番号が最大のページ領域に記憶されている論理・物理マッピングテーブルを、マッピング記憶部121に複製する。このようにチェックポイントによるデータ回復処理を行うことにより、最新のチェックポイント作成時の主記憶装置30に記憶されていたデータを回復することができる。
このように、本実施形態に係る情報処理装置1によれば、論理アドレスにより指定されるデータ量よりも、NAND型フラッシュメモリ200の記憶容量を大きくすることにより、NAND型フラッシュメモリ200を主記憶装置30として用いても、NAND型フラッシュメモリ200のブロックの消去回数の増大を抑制することが可能となる。
さらに、本実施形態に係る主記憶装置30のチェックポイントを作成することにより、情報処理装置1の電源が突然オフ状態になり主記憶装置30の揮発性メモリに記憶されたデータが失われた場合でも、最新のチェックポイントを作成した時点の主記憶装置30に記憶されていたデータを復帰することができる。
本発明の一実施形態に係る情報処理装置の構成を示すブロック図。 本発明の一実施形態に係る主記憶装置の論理アドレスの構成を示す図。 本発明の一実施形態に係るNAND型フラッシュメモリの物理アドレスの構成を示す図。 本発明の一実施形態に係る論理アドレス記憶部の構成を示す図。 本発明の一実施形態に係るマッピング記憶部の構成を示す図。 本発明の一実施形態に係る情報処理装置の動作を示すフローチャート。 本発明の一実施形態に係る情報処理装置の動作を示すフローチャート。 本発明の一実施形態に係る情報処理装置の動作を示すフローチャート。
符号の説明
10・・・プロセッサ
11・・・キャッシュメモリ
20・・・システムバス
30・・・主記憶装置
100・・・メモリコントローラ
110・・・バッファ制御部
111・・・バッファメモリ
112・・・論理ページ番号記憶部
120・・・マッピング制御部
121・・・マッピング記憶部
122・・・退避用メモリ
123・・・消去回数記憶部
200・・・NAND型フラッシュメモリ
201・・・消去回数部
202・・・論理ページ番号部
203・・・バージョン番号部
204・・・データ部

Claims (5)

  1. プロセッサによりアクセスされるデータを指定する論理アドレスを受信し、前記受信した論理アドレスと対応する物理アドレスによって指定されるデータを出力する主記憶装置であって、
    前記プロセッサが前記論理アドレスを用いてアクセスできるデータ量よりも記憶容量が大きいフラッシュメモリと、
    前記フラッシュメモリに記憶されるデータの論理アドレスの少なくとも一部と、当該データが記憶される前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて記憶する第1の記憶手段と、
    前記プロセッサによって書き込み処理が行われ、前記フラッシュメモリへ書き込まれるデータを一時的に記憶する第2の記憶手段と、
    前記第2の記憶手段に記憶されたデータを前記フラッシュメモリに書き込む際に、当該データの論理アドレスの少なくとも一部と当該データが書き込まれる前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて前記第1の記憶手段に書き込むメモリコントローラと
    を備えることを特徴とする主記憶装置。
  2. 前記第2の記憶手段の空き容量が一定値以下となった場合に、前記メモリコントローラが、前記第2の記憶手段に記憶されたデータを前記フラッシュメモリに書き込むことを特徴とする請求項1に記載の主記憶装置。
  3. チェックポイントを作成するために前記第2の記憶手段に記憶されたデータが前記フラッシュメモリに書き込まれた後、
    前記メモリコントローラが、
    前記第1の記憶手段に記憶された、前記論理アドレスの少なくとも一部と前記物理アドレスの少なくとも一部との対応関係を、前記フラッシュメモリに書き込むことを特徴とする請求項1に記載の主記憶装置。
  4. 論理アドレスを用いてアクセスするデータを指定するプロセッサと、前記プロセッサから受信する論理アドレスと対応する物理アドレスによって指定されるデータを出力する主記憶装置とを備える情報処理装置であって、
    前記主記憶装置が、
    前記プロセッサが前記論理アドレスを用いてアクセスできるデータ量よりも記憶容量が大きいフラッシュメモリと、
    前記フラッシュメモリに記憶されるデータの論理アドレスの少なくとも一部と、当該データが記憶される前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて記憶する第1の記憶手段と、
    前記プロセッサによって書き込み処理が行われ、前記フラッシュメモリへ書き込まれるデータを一時的に記憶する第2の記憶手段と、
    前記第2の記憶手段に記憶されたデータを前記フラッシュメモリに書き込む際に、当該データの論理アドレスの少なくとも一部と当該データが書き込まれる前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて前記第1の記憶手段に書き込むメモリコントローラとを備えることを特徴とする情報処理装置。
  5. プロセッサが論理アドレスを用いてアクセスできるデータ量よりも記憶容量が大きいフラッシュメモリと、前記フラッシュメモリに記憶されるデータの論理アドレスの少なくとも一部と当該データが記憶される前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて記憶する第1の記憶手段と、前記プロセッサによって書き込み処理が行われ、前記フラッシュメモリへ書き込まれるデータを一時的に記憶する第2の記憶手段とを備える主記憶装置の制御方法であって、
    前記プロセッサによって書き込み処理が行われたデータを前記第2の記憶手段に書き込み、
    前記第2の記憶手段に書き込まれたデータを前記フラッシュメモリに書き込む際に、当該データの論理アドレスの少なくとも一部と当該データが書き込まれる前記フラッシュメモリの物理アドレスの少なくとも一部とを関連付けて前記第1の記憶手段に書き込むことを特徴とする主記憶装置の制御方法。
JP2007130345A 2007-05-16 2007-05-16 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置 Pending JP2008287398A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007130345A JP2008287398A (ja) 2007-05-16 2007-05-16 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007130345A JP2008287398A (ja) 2007-05-16 2007-05-16 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置

Publications (1)

Publication Number Publication Date
JP2008287398A true JP2008287398A (ja) 2008-11-27

Family

ID=40147075

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007130345A Pending JP2008287398A (ja) 2007-05-16 2007-05-16 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置

Country Status (1)

Country Link
JP (1) JP2008287398A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010116405A1 (ja) * 2009-04-06 2010-10-14 株式会社日立製作所 不揮発性の主記憶を備えた計算機システム
JP2011008589A (ja) * 2009-06-26 2011-01-13 Toshiba Corp 素材サーバおよび素材蓄積方法
JP2012155705A (ja) * 2011-01-27 2012-08-16 Micron Technology Inc トランザクションメモリ
JP2014006902A (ja) * 2012-06-22 2014-01-16 Freescale Semiconductor Inc フラッシュメモリ内に記憶されるデータのためのアドレスramを有するエミュレート電気的消去可能メモリ

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010116405A1 (ja) * 2009-04-06 2010-10-14 株式会社日立製作所 不揮発性の主記憶を備えた計算機システム
JP2011008589A (ja) * 2009-06-26 2011-01-13 Toshiba Corp 素材サーバおよび素材蓄積方法
JP2012155705A (ja) * 2011-01-27 2012-08-16 Micron Technology Inc トランザクションメモリ
US9104690B2 (en) 2011-01-27 2015-08-11 Micron Technology, Inc. Transactional memory
US10083122B2 (en) 2011-01-27 2018-09-25 Micron Technology, Inc. Transactional memory
JP2014006902A (ja) * 2012-06-22 2014-01-16 Freescale Semiconductor Inc フラッシュメモリ内に記憶されるデータのためのアドレスramを有するエミュレート電気的消去可能メモリ

Similar Documents

Publication Publication Date Title
US8407449B1 (en) Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table
US7844772B2 (en) Device driver including a flash memory file system and method thereof and a flash memory device and method thereof
JP6016137B2 (ja) ソリッドステートドライブおよびその動作方法
US9003099B2 (en) Disc device provided with primary and secondary caches
US10503653B2 (en) Memory system
US8438325B2 (en) Method and apparatus for improving small write performance in a non-volatile memory
US20080120488A1 (en) Apparatus and method of managing nonvolatile memory
JP2008192154A (ja) メモリマッピング方法およびメモリマッピングシステム
US9122586B2 (en) Physical-to-logical address map to speed up a recycle operation in a solid state drive
US10168940B2 (en) Data storage using SLC and TLC memory banks and data maintenance method thereof
JP2012203443A (ja) メモリシステムおよびメモリシステムの制御方法
TWI473100B (zh) Flash memory system and its operation method
JP2018101411A (ja) データストレージデバイスおよびその操作方法
US8892816B1 (en) System and method for writing data to a memory
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
JP5592478B2 (ja) 不揮発性記憶装置及びメモリコントローラ
JP2008287398A (ja) 主記憶装置、主記憶装置の制御方法、およびこの主記憶装置を用いた情報処理装置
JP5858081B2 (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP6072428B2 (ja) 制御装置、記憶装置、記憶制御方法
JP2008197981A (ja) 半導体記憶装置
JP6595654B2 (ja) 情報処理装置
JP2012068765A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2020017134A (ja) 記憶装置及び記憶制御方法
JP4558054B2 (ja) メモリシステム
WO2020039927A1 (ja) 不揮発性記憶装置、ホスト装置、及びデータ記憶システム