JP2011209963A - メモリ制御装置及びメモリ制御方法 - Google Patents

メモリ制御装置及びメモリ制御方法 Download PDF

Info

Publication number
JP2011209963A
JP2011209963A JP2010076287A JP2010076287A JP2011209963A JP 2011209963 A JP2011209963 A JP 2011209963A JP 2010076287 A JP2010076287 A JP 2010076287A JP 2010076287 A JP2010076287 A JP 2010076287A JP 2011209963 A JP2011209963 A JP 2011209963A
Authority
JP
Japan
Prior art keywords
garbage collection
file
flash memory
sector
memory control
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.)
Granted
Application number
JP2010076287A
Other languages
English (en)
Other versions
JP5183662B2 (ja
Inventor
Koji Yoshikawa
幸司 吉川
Shigenori Nakada
成憲 中田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2010076287A priority Critical patent/JP5183662B2/ja
Publication of JP2011209963A publication Critical patent/JP2011209963A/ja
Application granted granted Critical
Publication of JP5183662B2 publication Critical patent/JP5183662B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】ガベージコレクションの実行において、ファイル処理への影響を極力低減することが可能なメモリ制御装置を提供する。
【解決手段】セクタ利用状況検出部121は、フラッシュメモリを構成する各セクタの利用状況をチェックして、空きセクタ数を検出する。ファイル情報管理部122は、フラッシュメモリに格納されている1又は複数のファイルの処理状態を検出し、検出した処理状態を、各ファイル毎に生成したファイル情報に格納して管理する。ガベージコレクション判定部123は、セクタ利用状況検出部121が検出した空きセクタ数と、ファイル情報管理部122が検出した各ファイルの処理状態と、に基づいて、フラッシュメモリに対するガベージコレクションの実行の要否を判定する。
【選択図】図3

Description

本発明は、フラッシュメモリを制御する技術に関し、特に、ガベージコレクションの実行タイミングを制御する技術に関する。
近年、不揮発性の記録媒体であるフラッシュメモリは、パーソナルコンピュータ等の情報処理装置、携帯電話やデジタルカメラ等、様々な電子機器で使用されている。フラッシュメモリでは、上書き動作が行えないため、更新データは、空いている(未使用)の別のセクタに書き込まれると共に、元(更新前)のデータが格納されていたセクタの状態(フラグ)は、“削除”に更新される。また、フラッシュメモリでは、データの消去は、ブロック単位で行なわれる。したがって、“削除”セクタの多いブロック内のライト(使用中)セクタを他のブロックに移動させ、未使用ブロックとする処理(ガベージコレクション)を定期的に実行する必要がある。
これに関し、特許文献1では、フラッシュメモリをファイルシステムに適応させることが可能な管理方式において、各消去単位毎の消去回数のばらつきを減少させることを目的とした技術が開示されている。
特開平9−97218号公報
しかしながら、上記特許文献1の開示技術では、ガベージコレクションは、ファイルシステムを利用するアプリケーションとは独立に動作するため、データの書き込みあるいは読み出し中に、ガベージコレクションが発生することによって、ファイル処理の速度に支障を来す可能性があるという問題があった。
本発明では、ファイル処理の状況等を加味して、フラッシュメモリにおけるガベージコレクションの実行を制御することで、ファイル処理への影響を極力低減することが可能なメモリ制御装置及びメモリ制御方法を提供することを目的とする。
上記目的を達成するため、本発明に係るメモリ制御装置は、
フラッシュメモリに対するガベージコレクションの実行を制御するメモリ制御装置であって、
前記フラッシュメモリを構成する各セクタの利用状況をチェックして、空きセクタ数を検出するセクタ利用状況検出手段と、
前記フラッシュメモリに格納されている1又は複数のファイルの処理状態を検出し、検出した処理状態を、各ファイル毎に生成したファイル情報に格納して管理するファイル情報管理手段と、
前記セクタ利用状況検出手段が検出した前記空きセクタ数と、前記ファイル情報管理手段が検出した前記各ファイルの処理状態と、に基づいて、前記フラッシュメモリに対するガベージコレクションの実行の要否を判定するガベージコレクション判定手段と、を備える、ことを特徴とする。
本発明によれば、ファイル処理への影響を極力低減しつつ、フラッシュメモリの空き容量を確保することが可能となる。
本発明の実施形態1に係るメモリ制御装置を備える電子機器の構成を示すブロック図である。 図1のフラッシュメモリのメモリ構造を概略的に示す図である。 図1のCPU(メモリ制御装置)の機能構成を示すブロック図である。 実施形態1のファイル情報の構成を示す図である。 実施形態1のガベージコレクション実行処理の手順を示すフローチャートである。 実施形態2のファイル情報の構成を示す図である。 実施形態2のガベージコレクション実行処理の手順を示すフローチャートである。 他の実施形態において使用されるコピー元情報の構成を示す図である。
以下、本発明の実施形態に係るメモリ制御装置について図面を参照して詳細に説明する。
(実施形態1)
図1は、実施形態1に係るメモリ制御装置を備える電子機器1の構成を示すブロック図である。この電子機器1は、例えば、パーソナルコンピュータ等の情報処理装置である。電子機器1は、CPU(Central Processing Unit)11(メモリ制御装置)と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、フラッシュメモリ14と、入力部15と、表示部16と、を備える。
CPU11は、バス17を介して、ROM12、RAM13、フラッシュメモリ14、入力部15及び表示部16を制御し、それに付随して、これらとの間でデータの授受を行う。
ROM12には、CPU11が実行する各種の動作プログラム等が格納されている。RAM13は、動作プログラムやデータ等が一時的に保存される作業用メモリ等として使用される。
入力部15は、キーボードやマウス等の入力デバイスから構成され、ユーザからの操作入力(例えば、ファイル操作に係る入力)を受け付け、受け付けた信号(操作信号)をCPU11に送出する。表示部16は、CRTや液晶モニタ等の表示デバイスにより構成され、CPU11から供給される文字や画像等のデータを表示する。
フラッシュメモリ14は、不揮発性メモリであり、レジスタと、メモリセルアレイと、から構成される。フラッシュメモリ14は、レジスタとメモリセルとの間でデータの複写を行って、データの書き込み又は読み出しを行う。
メモリセルアレイは、複数のメモリセル群と、ワード線と、を備える。各メモリセル群は、複数のメモリセルが直列に接続されたものである。ワード線は、メモリセル群の特定のメモリセルを選択するためのものである。このワード線を介して選択されたメモリセルとレジスタとの間で、データの複写、即ち、レジスタから選択されたメモリセルへの複写又は選択されたメモリセルからレジスタへのデータの複写が行われる。
メモリセルアレイを構成するメモリセルは、2つのゲートを備えたMOSトランジスタによって構成される。この2つのゲートは、それぞれ、制御(コントロール)ゲート、浮遊(フローティング)ゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書き込み若しくはデータの消去が行われる。
このフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。なお、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となるように電圧を印加する。また、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となるよう電圧を印加する。
ここで、フローティングゲートに電子が注入されている状態が書き込み状態であり、論理値「0」に対応する。また、フローティングゲートから電子が排出されている状態が消去状態であり、論理値「1」に対応する。
このようなフラッシュメモリ14のメモリ構造を図2に示す。フラッシュメモリ14のメモリ領域は、“ページ”と“ブロック”に分割されて管理されている。
ページは、フラッシュメモリ14にて行われるデータ読み出し動作及びデータ書き込み動作における処理単位である。ブロックは、フラッシュメモリ14にて行われるデータ消去動作における処理単位である。
図2に示したフラッシュメモリでは、1つのページは、1セクタ(512バイト)のデータ領域と、16バイトの冗長領域とを含んでいる。尚、1つのページが4セクタのデータ領域と64バイトの冗長領域で構成されているフラッシュメモリもある。データ領域は、ファイル処理等の際に、CPU11から供給されたデータを格納する。なお、図2は、フラッシュメモリ14のメモリ構造を概略的に示すものであり、図示はしないが、各ブロックは、所定サイズのヘッダ領域を備えている。
冗長領域は、エラーコレクションコード、対応論理ブロックアドレス、ページの利用状況を示す情報(利用フラグ)等の付加データを記録するための領域である。
エラーコレクションコードは、データ領域に記憶されているデータに含まれる誤りを検出し、訂正するためのデータである。
対応論理ブロックアドレスは、1つのブロック内の少なくとも1つのデータ領域に有効なデータが格納されているとき、そのブロックが対応付けられている論理ブロックのアドレスを示す。
論理ブロックアドレスは、CPU11から与えられるアドレスに基づいて決定されるブロックのアドレスである。一方、フラッシュメモリ14内における実際のブロックのアドレスは、物理ブロックアドレスと称される。
1つのブロック内の何れのデータ領域にも有効なデータが格納されていない場合には、そのブロックに含まれている冗長領域に、対応論理ブロックアドレスは格納されていないことになる。
したがって、冗長領域に対応論理ブロックアドレスが格納されているか否かを判定することにより、その冗長領域が含まれているブロックのデータが消去されているか否かを判定することができる。冗長領域に対応論理ブロックアドレスが格納されていないとき、そのブロックは、データが消去された状態となっている。
利用フラグは、各セクタの利用状況を示す。例えば、「未使用」、「移動中」、「使用中」、「削除」等を示す。例えば、ブロックが消去された直後は全てのセクタにおいて、利用フラグは「未使用」を示す。
ブロックは、フラッシュメモリ14の消去の単位である。フラッシュメモリ14にデータを新規に書き込む場合には、データのサイズに対応する複数の消去された(即ち、「未使用」の)セクタを確保し、データの書き込みを行う。また、データの上書きの際には、「未使用」のセクタに当該データを書き込み、そして、元のデータが格納されているセクタの冗長領域を更新する。これにより、元のデータが格納されているセクタの利用フラグは、「削除」に更新される。
フラッシュメモリ14に対して、上記の方法によりデータの書き込みを続けていると、実際に利用しているセクタ(利用フラグが「使用中」のセクタ)が、たとえ増えなくとも、利用フラグが「削除」を示すセクタが増えることになる。そこで、CPU11は、利用フラグが「削除」を示すセクタを「未使用」に戻し、空き容量を増加させる処理(ガベージコレクション)を適宜実行する必要がある。
CPU11は、機能的には、図3に示すように、アプリケーション実行部110と、ファイルシステム制御部120と、を備える。アプリケーション実行部110は、ROM12に格納されている所定のアプリケーションプログラム(例えば、文書作成ソフトウェア等)を実行する。アプリケーション実行部110は、当該アプリケーションプログラムの実行の際、例えば、ファイルのオープン、データの読み出し・書き込み、ファイルの削除等の実行をファイルシステム制御部120に要求する。
ファイルシステム制御部120は、フラッシュメモリ14に記録されているファイルの制御を行う。具体的には、ファイルシステム制御部120は、フラッシュメモリ14へのファイルの作成、読み出し・書き込み、ファイルの削除等を行う。また、ファイルシステム制御部120は、所定の条件の下、ガベージコレクションを実行する。
ファイルシステム制御部120は、より詳細には、図3に示すように、セクタ利用状況検出部121と、ファイル情報管理部122と、ガベージコレクション判定部123と、メモリ制御部124と、を備える。
セクタ利用状況検出部121は、所定時間毎に、フラッシュメモリ14における各セクタの利用状況をチェックして、空き(即ち、「未使用」の)セクタ数を検出し、これをRAM13上に展開した変数に格納する。
ファイル情報管理部122は、作成したファイルについての情報(ファイル情報)を管理する。具体的には、ファイル情報管理部122は、図4に示すように、ファイル名と、処理状態と、から構成されるファイル情報がエントリされたファイル情報テーブル(RAM13上に展開される)を管理する。ファイル情報管理部122は、新たなファイルが作成されると、当該ファイルのファイル情報をファイル情報テーブルにエントリする。ここで、「処理状態」とは、当該ファイルの現在の状況(例えば、“オープン”、“クローズ”等)を示す情報であり、ファイル情報管理部122は、当該ファイルの処理状態が変化する(例えば、“オープン”→“クローズ”)度に、この「処理状態」を更新する。ファイル情報管理部122は、あるファイルがフラッシュメモリ14から削除されると、対応するファイル情報をファイル情報テーブルから削除する。
ガベージコレクション判定部123は、所定時間毎に、ガベージコレクション実行の要否、即ち、ガベージコレクションを実行する必要があるか否かについて判定する。その際、ガベージコレクション判定部123は、セクタ利用状況検出部121が検出した空きセクタ数と、ファイル情報管理部122が管理するファイル情報テーブルを参照して、ガベージコレクション実行の要否を判定する。
本実施形態では、空きセクタ数が、予め定めた下限値(例えば、ブロック内のセクタ数(本実施形態では、32))以下の場合、ガベージコレクション判定部123は、ガベージコレクションの実行が必要であると判定する。また、空きセクタ数が下限値より大きく、予め定めた許容値(例えば、ブロック内のセクタ数×2(本実施形態では、64))以下の場合は、オープンしているファイルが存在しない場合に限り、ガベージコレクションの実行が必要であると判定する。ガベージコレクションの実行が必要であると判定すると、ガベージコレクション判定部123は、ガベージコレクションの実行をメモリ制御部124に要求する
ガベージコレクション判定部123は、以上の条件が何れも成立しない場合、ガベージコレクションの実行が必要でないと判定する。
メモリ制御部124は、アプリケーションプログラム実行部110からの要求に従ってフラッシュメモリ14にアクセスし、ファイルの作成、ファイルのオープン、データの読み出し・書き込み、ファイルの削除等を実行する。また、メモリ制御部124は、ガベージコレクション判定部123からの要求に従って、ガベージコレクションを実行する。
図5は、CPU11が実行するガベージコレクション実行処理の手順を示すフローチャートである。このガベージコレクション実行処理は、ユーザにより電子機器1の電源がONされ、CPU11が起動することで開始され、電子機器1の電源がOFFされるまで、周期的に以下の処理を繰り返し行う。
先ず、ガベージコレクション判定部123は、セクタ利用状況検出部121が検出した空きセクタ数が、上述した許容値を超えている否かを判定する(ステップS101)。その結果、空きセクタ数が許容値を超えている場合(ステップS101;YES)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要でないと判定する。その結果、当該処理ループでガベージコレクションは実行されず、所定時間のウエイト(ステップS105)後、ガベージコレクション判定部123は、上述したステップS101の処理を再度実行する。
一方、空きセクタ数が許容値を超えていない、即ち、空きセクタ数が許容値以下の場合(ステップS101;NO)、ガベージコレクション判定部123は、空きセクタ数が、上述した下限値を超えている否かを判定する(ステップS102)。その結果、空きセクタ数が下限値を超えていない、即ち、空きセクタ数が下限値以下の場合(ステップS102;NO)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要であると判定し、ガベージコレクションの実行をメモリ制御部124に要求する。
メモリ制御部124は、ガベージコレクションの実行要求をガベージコレクション判定部123から受けると、ガベージコレクションを実行する(ステップS104)。具体的には、メモリ制御部124は、利用フラグが「削除」を示すセクタを最も多く含むブロックをフラッシュメモリ14全体から検索し、該当するブロックを消去対象ブロックとして決定する。そして、消去対象ブロック中の利用フラグが「使用中」を示す全セクタについて、その内容(データ領域及び冗長領域の内容)を他のブロックの空きセクタにコピーする。
次に、メモリ制御部124は、消去対象ブロックに格納されている全データを消去し、消去対象ブロックの全てのセクタの利用フラグを「未使用」に設定する。以上によりガベージコレクションが終了する。なお、消去対象ブロックが複数存在する場合には、当該ガベージコレクションで、全ての消去対象ブロックについて、上記の処理を行う。このように、複数の消去対象ブロックを消去できるようにすると、1回のガベージコレクションの実行で、より多くの空き容量を確保することが可能になる。
ガベージコレクションが終了すると、所定時間のウエイト(ステップS105)後、ガベージコレクション判定部123は、上述したステップS101の処理を再度実行する。
ステップS102の判定の結果、空きセクタ数が下限値を超えている場合(ステップS102;YES)、ガベージコレクション判定部123は、ファイル情報テーブルを参照して、現在オープン中のファイルが存在するか否かを判定する(ステップS103)。その結果、オープン中のファイルが存在する場合(ステップS103;YES)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要でないと判定し、所定時間のウエイト(ステップS105)後、上述したステップS101の処理を再度実行する。
一方、オープン中のファイルが存在しない場合(ステップS103;NO)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要である判定し、その結果、メモリ制御部124により上述したガベージコレクションが実行される(ステップS104)。そして、ガベージコレクションが終了すると、所定時間のウエイト(ステップS105)後、ガベージコレクション判定部123は、上述したステップS101の処理を再度実行する。
以上説明したように、本実施形態に係るメモリ制御装置(CPU11)は、単に定期的にガベージコレクションを実行するのではなく、空きセクタの数やファイル処理の状況に基づく所定の条件が成立する場合に、ガベージコレクションを実行する。即ち、空き容量が十分確保できている場合(許容値を超えている場合)には、ガベージコレクションを実行せず、また、空き容量が十分とはいえないまでも下限値(限界値)を超えている場合は、ファイルがオープン中でない場合に限り、ガベージコレクションを実行する。これにより、ファイル処理への影響を極力低減しつつ、フラッシュメモリの空き容量を確保することが可能となる。
(実施形態2)
次に、本発明の実施形態2に係るメモリ制御装置について説明する。実施形態1のメモリ制御装置(CPU11)では、空き容量が下限値から許容値の間で、何れかのファイルがオープンしている場合、ガベージコレクションを実行しなかった。しかし、本実施形態のメモリ制御装置は、このような場合、さらに、予めファイル毎に付与した優先度も加味して、ガベージコレクションの実行の要否を判定する。なお、本実施形態のメモリ制御装置の構成は、実施形態1のメモリ制御装置(CPU11)の構成(図3参照)と同様であり、本実施形態のメモリ制御装置を備える電子機器の構成も実施形態1の電子機器1の構成(図1参照)と同様である。
本実施形態のファイル情報管理部122は、図6に示すように、ファイル名と、処理状態と、優先度と、から構成されるファイル情報がエントリされたファイル情報テーブル(RAM13上に展開される)を管理する。ここで、「処理状態」の意味については、上述した通りである。「優先度」は、例えば、数値で示され、空き容量が下限値から許容値の間で当該ファイルがオープンしている場合、ガベージコレクションの実行の要否を判定する指標となる。「優先度」は、新規ファイルが作成される度に、ユーザが入力部15を介して入力操作することで、当該新規作成ファイルに付与されるようにしてもよいし、あるいは、新規作成されるファイルの種別に応じて、ファイルシステム制御部120が自動的に当該新規作成ファイルに付与してもよい。
図7は、本実施形態のCPU11が実行するガベージコレクション実行処理の手順を示すフローチャートである。このガベージコレクション実行処理は、実施形態1と同様、ユーザにより電子機器1の電源がONされ、CPU11が起動することで開始され、電子機器1の電源がOFFされるまで、周期的に以下の処理を繰り返し行う。
先ず、ガベージコレクション判定部123は、セクタ利用状況検出部121が検出した空きセクタ数が、予め定めた許容値(例えば、ブロック内のセクタ数×2(本実施形態では、64))を超えている否かを判定する(ステップS201)。その結果、空きセクタ数が許容値を超えている場合(ステップS201;YES)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要でないと判定し、所定時間のウエイト(ステップS206)後、ステップS201の処理を再度実行する。
一方、空きセクタ数が許容値を超えていない場合(ステップS201;NO)、ガベージコレクション判定部123は、空きセクタ数が、予め定めた下限値(例えば、ブロック内のセクタ数(本実施形態では、32))を超えている否かを判定する(ステップS202)。その結果、空きセクタ数が下限値を超えていない場合(ステップS202;NO)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要であると判定し、その結果、メモリ制御部124によりガベージガベージコレクションが実行される(ステップS204)。
一方、空きセクタ数が下限値を超えている場合(ステップS202;YES)、ガベージコレクション判定部123は、ファイル情報テーブルを参照して、現在オープン中のファイルが存在するか否かを判定する(ステップS203)。その結果、オープン中のファイルが存在しない場合(ステップS203;NO)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要であると判定し、その結果、メモリ制御部124によりガベージガベージコレクションが実行される(ステップS204)。
一方、オープン中のファイルが存在する場合(ステップS203;YES)、ガベージコレクション判定部123は、ファイル情報テーブルを参照して、当該オープン中のファイルの優先度を取得し、これが、予め定めた基準値より小さいか否かを判定する(ステップS205)。その結果、当該ファイルの優先度が基準値より小さい場合(ステップS205;YES)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要であると判定し、その結果、メモリ制御部124によりガベージガベージコレクションが実行される(ステップS204)。
一方、当該ファイルの優先度が基準値より小さくない、即ち、基準値以上の場合(ステップS205;NO)、ガベージコレクション判定部123は、ガベージコレクションの実行が必要でないと判定し、所定時間のウエイト(ステップS206)後、ステップS201の処理を再度実行する。
また、上記ステップS204の処理が終了すると、所定時間のウエイト(ステップS206)後、ガベージコレクション判定部123は、上述したステップS201の処理を再度実行する。
以上のように、本実施形態に係るメモリ制御装置(CPU11)は、オープン中のファイルの優先度も加味して、ガベージコレクションの実行の要否を判定する。したがって、実施形態1のメモリ制御装置と同様の効果を奏する上、ユーザにとってより都合のよいタイミングでガベージコレクションを実行させることが可能になる。
なお、本発明は、上記の各実施形態に限定されず、本発明の要旨を逸脱しない範囲での種々の変更は勿論可能である。
例えば、ガベージコレクションの実行の要否を判定する条件は、上記実施形態に限定されず、ユーザは、ファイル処理への影響を極力低減できるようにするための任意の条件を設定することができる。例えば、ファイルシステム制御部120において、ファイル情報管理部122により管理されるファイル情報に、図4又は図6で示す構成に加え、当該ファイルのデータが格納されているセクタの情報が含まれていてもよい。この場合、実施形態2のガベージコレクション実行処理(図7参照)において、ガベージコレクション判定部123は、例えば、優先度の低いファイルがオープン中であっても(ステップS205;YES)、消去対象ブロックに当該ファイルのデータが格納されている場合には、ガベージコレクションの実行が必要でないと判定してもよい。
また、消去対象ブロックが複数存在する場合、1回のガベージコレクションで、全ての消去対象ブロックを消去するのではなく、1つずつ消去する仕様にしてもよい。このようにすると、ファイル処理の速度低下をより抑えることができる。
また、不意の電源断等により、ガベージコレクションが中断された場合の対策機能を上記実施形態のメモリ制御装置に追加してもよい。この機能では、フラッシュメモリ14の各ブロックのヘッダ領域における所定領域を、図8に示すコピー元情報を格納するための領域として使用する。コピー元情報は、ガベージコレクションの実行時において、コピー元のセクタ(消去対象ブロックにおけるセクタ)の情報を格納するために使用される。図8に示すように、コピー元情報の格納領域は、ブロック内のセクタ数分(本実施形態では、32)確保され、当該領域の先頭から順に、セクタ0に対応するコピー元情報の格納領域、セクタ1に対応するコピー元情報の格納領域、・・・、セクタ31に対応するコピー元情報の格納領域となる。
コピー元情報は、コピー元ブロック番号と、コピー元セクタ番号と、コピー状態と、から構成され、それぞれ、例えば、4バイトの領域が確保されている。「コピー元ブロック番号」には、コピー元のブロック番号、即ち、ガベージコレクション時における消去対象ブロックのブロック番号が格納される。「コピー元セクタ番号」には、コピー元のセクタ番号が格納される。「コピー状態」には、ガベージコレクション時において、当該セクタ(コピー先のセクタ)へのコピーが完了したか否かの情報が格納される。
メモリ制御部124は、ガベージコレクションの実行時において、コピー先のセクタを決定すると、当該コピー先のセクタに対応するコピー元情報の「コピー元ブロック番号」、「コピー元セクタ番号」及び「コピー状態」に、それぞれ、当該消去対象ブロックのブロック番号、コピー元のセクタ番号及びコピーが完了していないことを示す情報(以下、“未完”という)を格納する。そして、メモリ制御部124は、コピー元のセクタの内容をコピー先のセクタに書き込むと、当該コピー先のセクタに対応するコピー元情報の「コピー状態」に、コピーが完了したことを示す情報(以下、“完”という)を格納する。
例えば、何らかの理由により、電子機器1の電源がOFFにされ、ガベージコレクションの実行が中断したとする。この場合、再起動すると、空きセクタ数が少ないため、メモリ制御部124によって、ガベージコレクションが再度実行されることになる。この例におけるメモリ制御部124は、ガベージコレクションを開始する際、先ず、コピー元情報の「コピー状態」に“未完”が格納されているブロックを検索する。その結果、該当するブロックがあれば、そのブロックの当該コピー元情報に対応するセクタへのコピー中に、ガベージコレクションが中断したことが判る。
したがって、この場合、メモリ制御部124は、当該コピー元情報に対応するセクタの利用フラグを「削除」に更新すると共に、新たな空きセクタを探し、その空きセクタに当該コピー元のセクタの内容をコピーする。
以上のように、各ブロック毎にコピー元情報を格納するための領域を確保し、これをガベージコレクションの実行時に使用することで、例えば、不意の電源断により、ガベージコレクションが中断された場合であっても、再起動後に、ガベージコレクションを支障なく再開することができる。
本発明は、パーソナルコンピュータ等の情報処理装置、携帯電話やデジタルカメラ等、フラッシュメモリを利用する様々な電子機器に好適に採用され得る。
1 電子機器
11 CPU(メモリ制御装置)
110 アプリケーション実行部
120 ファイルシステム制御部
121 セクタ利用状況検出部
122 ファイル情報管理部
123 ガベージコレクション判定部
124 メモリ制御部
12 ROM
13 RAM
14 フラッシュメモリ
15 入力部
16 表示部
17 バス

Claims (5)

  1. フラッシュメモリに対するガベージコレクションの実行を制御するメモリ制御装置であって、
    前記フラッシュメモリを構成する各セクタの利用状況をチェックして、空きセクタ数を検出するセクタ利用状況検出手段と、
    前記フラッシュメモリに格納されている1又は複数のファイルの処理状態を検出し、検出した処理状態を、各ファイル毎に生成したファイル情報に格納して管理するファイル情報管理手段と、
    前記セクタ利用状況検出手段が検出した前記空きセクタ数と、前記ファイル情報管理手段が検出した前記各ファイルの処理状態と、に基づいて、前記フラッシュメモリに対するガベージコレクションの実行の要否を判定するガベージコレクション判定手段と、を備える、
    ことを特徴とするメモリ制御装置。
  2. 前記ファイル情報管理手段は、前記フラッシュメモリに格納されている1又は複数のファイルのそれぞれについて、現在オープン中であるか否かを検出し、
    前記ガベージコレクション判定手段は、前記セクタ利用状況検出手段が検出した前記空きセクタ数が、予め定めた下限値と該下限値より大きい許容値との間にあり、現在オープン中のファイルが存在しない場合には、前記ガベージコレクションの実行が必要であると判定する、
    ことを特徴とする請求項1に記載のメモリ制御装置。
  3. 前記ファイル情報管理手段が管理するファイル情報には、各ファイル毎に付与された優先度が含まれ、
    前記ガベージコレクション判定手段は、前記セクタ利用状況検出手段が検出した前記空きセクタ数の値が、予め定めた下限値と該下限値より大きい許容値との間にあり、現在オープン中のファイルが存在する場合には、当該ファイルに付与された前記優先度に基づいて、前記ガベージコレクションの実行の要否を判定する、
    ことを特徴とする請求項1に記載のメモリ制御装置。
  4. 前記下限値は、前記フラッシュメモリを構成するブロックのセクタ総数である、
    ことを特徴とする請求項2又は3に記載のメモリ制御装置。
  5. フラッシュメモリに対するガベージコレクションの実行を制御するメモリ制御方法であって、
    前記フラッシュメモリを構成する各セクタの利用状況をチェックして、空きセクタ数を検出するセクタ利用状況検出ステップと、
    前記フラッシュメモリに格納されている1又は複数のファイルの処理状態を検出し、検出した処理状態を、各ファイル毎に生成したファイル情報に格納して管理するファイル情報管理ステップと、
    前記セクタ利用状況検出ステップで検出された前記空きセクタ数と、前記ファイル情報管理ステップで検出された前記各ファイルの処理状態と、に基づいて、前記フラッシュメモリに対するガベージコレクションの実行の要否を判定するガベージコレクション判定ステップと、を有する、
    ことを特徴とするメモリ制御方法。
JP2010076287A 2010-03-29 2010-03-29 メモリ制御装置及びメモリ制御方法 Active JP5183662B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010076287A JP5183662B2 (ja) 2010-03-29 2010-03-29 メモリ制御装置及びメモリ制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010076287A JP5183662B2 (ja) 2010-03-29 2010-03-29 メモリ制御装置及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2011209963A true JP2011209963A (ja) 2011-10-20
JP5183662B2 JP5183662B2 (ja) 2013-04-17

Family

ID=44940958

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010076287A Active JP5183662B2 (ja) 2010-03-29 2010-03-29 メモリ制御装置及びメモリ制御方法

Country Status (1)

Country Link
JP (1) JP5183662B2 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101549569B1 (ko) * 2014-02-14 2015-09-03 고려대학교 산학협력단 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
JP2019079463A (ja) * 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2022019787A (ja) * 2017-10-27 2022-01-27 キオクシア株式会社 メモリシステムおよび制御方法
JP2022036263A (ja) * 2020-10-23 2022-03-04 キオクシア株式会社 制御方法
CN114398008A (zh) * 2021-12-31 2022-04-26 珠海妙存科技有限公司 数据回收方法、控制器和计算机可读存储介质
JP2022179798A (ja) * 2021-11-17 2022-12-02 キオクシア株式会社 メモリシステムおよび制御方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023108843A (ja) 2022-01-26 2023-08-07 キオクシア株式会社 メモリシステム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004178417A (ja) * 2002-11-28 2004-06-24 Hitachi Ltd 不揮発性メモリ手段を備える処理装置および不揮発性メモリ制御方法
JP2005025727A (ja) * 2003-06-09 2005-01-27 Mitsubishi Electric Corp 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム
JP2006351004A (ja) * 2005-06-13 2006-12-28 Lg Electronics Inc 携帯端末機のメモリ管理方法
JP2010003150A (ja) * 2008-06-20 2010-01-07 Nec Personal Products Co Ltd メモリコントローラおよびフラッシュメモリのデータ管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004178417A (ja) * 2002-11-28 2004-06-24 Hitachi Ltd 不揮発性メモリ手段を備える処理装置および不揮発性メモリ制御方法
JP2005025727A (ja) * 2003-06-09 2005-01-27 Mitsubishi Electric Corp 情報記憶制御装置及び情報記憶制御方法及び情報記憶制御プログラム
JP2006351004A (ja) * 2005-06-13 2006-12-28 Lg Electronics Inc 携帯端末機のメモリ管理方法
JP2010003150A (ja) * 2008-06-20 2010-01-07 Nec Personal Products Co Ltd メモリコントローラおよびフラッシュメモリのデータ管理方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101549569B1 (ko) * 2014-02-14 2015-09-03 고려대학교 산학협력단 가비지 컬렉션 수행 방법 및 그 방법을 이용한 플래시 메모리 장치
JP2019079463A (ja) * 2017-10-27 2019-05-23 東芝メモリ株式会社 メモリシステムおよび制御方法
JP2022019787A (ja) * 2017-10-27 2022-01-27 キオクシア株式会社 メモリシステムおよび制御方法
JP7167295B2 (ja) 2017-10-27 2022-11-08 キオクシア株式会社 メモリシステムおよび制御方法
JP2022036263A (ja) * 2020-10-23 2022-03-04 キオクシア株式会社 制御方法
JP7204020B2 (ja) 2020-10-23 2023-01-13 キオクシア株式会社 制御方法
JP2022179798A (ja) * 2021-11-17 2022-12-02 キオクシア株式会社 メモリシステムおよび制御方法
JP7366222B2 (ja) 2021-11-17 2023-10-20 キオクシア株式会社 メモリシステムおよび制御方法
CN114398008A (zh) * 2021-12-31 2022-04-26 珠海妙存科技有限公司 数据回收方法、控制器和计算机可读存储介质

Also Published As

Publication number Publication date
JP5183662B2 (ja) 2013-04-17

Similar Documents

Publication Publication Date Title
JP5413572B2 (ja) メモリストレージ装置及びその制御方法
US7774390B2 (en) Apparatus for collecting garbage block of nonvolatile memory according to power state and method of collecting the same
JP5183662B2 (ja) メモリ制御装置及びメモリ制御方法
KR101176702B1 (ko) 판독 실패 관리 방법 및 시스템
JP4713867B2 (ja) メモリコントローラ,メモリ装置及びメモリコントローラの制御方法
US20100011154A1 (en) Data accessing method for flash memory and storage system and controller using the same
US10168940B2 (en) Data storage using SLC and TLC memory banks and data maintenance method thereof
WO2009096180A1 (ja) メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
JP2006243780A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4843222B2 (ja) 半導体記憶装置の制御方法、メモリカード、及びホスト機器
JP5874525B2 (ja) 制御装置、記憶装置、記憶制御方法
US20170285953A1 (en) Data Storage Device and Data Maintenance Method thereof
JP2004326165A (ja) メモリ制御装置およびメモリ制御方法
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP4661369B2 (ja) メモリコントローラ
JP5452735B2 (ja) メモリコントローラ及びメモリアクセス方法
CN103389943A (zh) 控制装置、存储装置及存储控制方法
JP2008009614A (ja) メモリコントローラ、メモリシステム及びメモリ制御方法
JP5253471B2 (ja) メモリコントローラ
JP2012128900A (ja) 半導体記憶装置、及び記憶媒体
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP2013109404A (ja) 情報処理装置
JP2008097339A (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2014115927A (ja) プログラム更新装置、方法、プログラム、及び記憶媒体
JP2005174468A (ja) フラッシュメモリのアクセス制御方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121002

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130115

R150 Certificate of patent or registration of utility model

Ref document number: 5183662

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250