JP2013030081A - データ記憶装置、メモリ制御装置及びメモリ制御方法 - Google Patents

データ記憶装置、メモリ制御装置及びメモリ制御方法 Download PDF

Info

Publication number
JP2013030081A
JP2013030081A JP2011167041A JP2011167041A JP2013030081A JP 2013030081 A JP2013030081 A JP 2013030081A JP 2011167041 A JP2011167041 A JP 2011167041A JP 2011167041 A JP2011167041 A JP 2011167041A JP 2013030081 A JP2013030081 A JP 2013030081A
Authority
JP
Japan
Prior art keywords
block
compaction
threshold value
storage device
flash memory
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
JP2011167041A
Other languages
English (en)
Other versions
JP5579135B2 (ja
Inventor
Yoko Masuo
容子 増尾
Yoshimasa Aoyama
能正 青山
Hironobu Miyamoto
博暢 宮本
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 JP2011167041A priority Critical patent/JP5579135B2/ja
Priority to US13/560,486 priority patent/US8930614B2/en
Publication of JP2013030081A publication Critical patent/JP2013030081A/ja
Application granted granted Critical
Publication of JP5579135B2 publication Critical patent/JP5579135B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)

Abstract

【課題】有効なコンパクション対象ブロックの検索処理を実現することで、コンパクション処理の効率化を図ることができるデータ記憶装置を提供することにある。
【解決手段】実施形態によれば、データ記憶装置は、ブロックをデータ消去単位とするフラッシュメモリとコントローラとを具備する。前記コントローラは、前記コントローラは、前記フラッシュメモリに対するコンパクション処理を実行し、使用可能なブロック数及びブロック内の有効データ量に基づいてコンパクション処理対象範囲を動的に設定し、前記コンパクション処理対象範囲から前記コンパクション処理の対象ブロックとして相対的に有効データ量が少ないブロックを検索するコンパクションモジュールを有する。
【選択図】図1

Description

本発明の実施形態は、不揮発性メモリを使用するデータ記憶装置、メモリ制御装置及びメモリ制御方法に関する。
近年、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を使用するSSD(solid state drive)の開発が推進されている。
フラッシュメモリは、データの書き込みを行なう記憶領域に対して、その書き込みの前にデータの消去処理が必要である。また、フラッシュメモリは、書き込み単位(ページ単位)と消去処理の消去単位(ブロック単位)とが異なる。ここで、1ブロックは、例えば64ページに相当する記憶領域である。
SSDでは、フラッシュメモリに対するデータの書き換えが進むと、無効なデータ(最新でないデータ)により、ブロック内は有効データを格納できない記憶領域の割合が増大する。SSDは、ブロック内の記憶領域を有効活用するために、コンパクション(compaction)処理を実行する。コンパクション処理とは、有効データの記憶領域が低密度になったブロックから有効データを集めて、別のブロックに書き直す処理である。コンパクション対象ブロックは、書き直し処理後の消去処理により、有効活用できる記憶領域として再生することになる。
特開2009−211219号公報
コンパクション処理を効果的に行うためには、コンパクション対象ブロックとして、より低密度のブロックを検索することが重要である。コンパクション対象ブロックの検索処理は、コンパクション処理の性能に大きく影響する。従来、有効トラック数別に全ブロックIDを分類する管理テーブルを用いた検索方法が提案されているが、管理テーブルの専用メモリ領域が多く必要となるなど、必ずしも有効な検索処理ではない。
本発明の目的は、有効なコンパクション対象ブロックの検索処理を実現することで、コンパクション処理の効率化を図ることができるデータ記憶装置を提供することにある。
実施形態によれば、データ記憶装置は、ブロックをデータ消去単位とするフラッシュメモリとコントローラとを具備する。前記コントローラは、前記フラッシュメモリに対するコンパクション処理を実行し、使用可能なブロック数及びブロック内の有効データ量に基づいてコンパクション処理対象範囲を動的に設定し、前記コンパクション処理対象範囲から前記コンパクション処理の対象ブロックとして相対的に有効データ量が少ないブロックを検索するコンパクション処理手段を有する。
実施形態に関するSSDの構成を説明するためのブロック図。 実施形態に関するフラッシュメモリコントローラの構成を説明するためのブロック図。 実施形態に関する有効クラスタ数閾値テーブルを説明するための図。 実施形態に関する有効クラスタ数の閾値算出処理を説明するためのフローチャート。 実施形態に関するコンパクション対象ブロックの検索処理を説明するためのフローチャート。 実施形態に関するコンパクション処理を説明するためのフローチャート。
以下図面を参照して、実施形態を説明する。
[データ記憶装置の構成]
図1は、実施形態に係るデータ記憶装置の構成を示すブロック図である。
図1に示すように、データ記憶装置はSSD(solid state drive)であり、SSDコントローラ10と、不揮発性メモリのNAND型フラッシュメモリ(以下、フラッシュメモリ)11とを有する。フラッシュメモリ11はSSDのデータ記憶媒体であり、例えばチャネル単位またはパッケージ単位での外付け接続が可能である。
SSDコントローラ10は、フラッシュメモリコントローラ12と、ホストインターフェース(ホストI/F)13と、バッファ管理モジュール14と、バッファメモリ(DRAM)15と、マイクロプロセッサ(CPU)16とを有する。CPU16は、SSDコントローラ10の全体的制御を実行する。DRAM15は、バッファメモリとして動作し、論理/物理アドレスの変換テーブルやホストシステム1から転送されるデータなどを保持する。
ホストI/F13は、ホストシステム1とSSDコントローラ10との間で、データ、コマンド、アドレスの転送を制御する。ホストシステム1は、例えばSATA(Serial ATA)規格のインターフェースを含むコンピュータなどである。バッファ管理モジュール14はバッファメモリ(DRAM)15を制御し、ホストI/F13とバッファメモリ15間のデータ転送を制御する。また、バッファ管理モジュール14は、フラッシュメモリコントローラ12とバッファメモリ15間のデータ転送を制御する。
フラッシュメモリコントローラ12は、入出力インターフェース(単にインターフェース)20と、メモリアクセスコントローラ21とを含む。インターフェース20は、フラッシュメモリ11とメモリアクセスコントローラ21との間でのデータの入出力、及びフラッシュメモリ11とコンパクションモジュール24との間でのデータの入出力を行なう。メモリアクセスコントローラ21は、インターフェース20を介してフラッシュメモリ11に対するデータの読み出し動作及び書き込み動作を制御する。
メモリアクセスコントローラ21は、コントローラ22と、ブロック管理モジュール23と、コンパクションモジュール24とを含む。コントローラ22は、内部バスを介して接続されたブロック管理モジュール23及びコンパクションモジュール24などの各モジュールの動作を制御する。ブロック管理モジュール23は、各ブロックの有効クラスタを管理するテーブルや、フリーブロック(未使用の待機状態ブロック)などを管理する管理情報を有し、フラッシュメモリ11の各ブロックを管理する。
(コンパクションモジュール)
コンパクションモジュール24は、図2に示すように、ブロック検索モジュール30と、有効クラスタ数閾値算出モジュール(以下、閾値算出モジュールと略する場合がある)31と、コンパクションブロックリスト管理モジュール(以下、ブロックリスト管理モジュールと略する場合がある)32と、クラスタ検索モジュール33と、コマンドリスト生成モジュール34と、コマンドリスト投入モジュール35とを有する。
ブロック検索モジュール30は、有効データが記録されているアクティブブロック群から、コンパクション対象ブロックの候補を検索する。閾値算出モジュール31は、ブロック検索モジュール30が実行するブロック検索処理での条件として利用する有効クラスタ数の閾値(有効クラスタ数閾値と呼ぶ)を算出する。ブロックリスト管理モジュール32は、コンパクション対象ブロックの候補およびコンパクション処理中のブロックを、それぞれリスト構造により管理する。
クラスタ検索モジュール33は、ブロックリスト管理モジュール32により管理されているリスト内で、コンパクション処理中の各ブロックについてリード可能な最小単位であるクラスタ単位での有効データまたは無効データのいずれであるかを判定する。クラスタ検索モジュール33は、クラスタ単位での有効データである有効クラスタを検索する。
コマンドリスト生成モジュール34は、クラスタ検索モジュール33により検索された有効クラスタについて、コンパクション処理の要求コマンド(コンパクション要求コマンド)セットを生成する。コマンドリスト投入モジュール35は、コマンドリスト生成モジュール34から受け取ったコンパクション要求コマンドを、インタフェース20に投入する。これにより、フラッシュメモリ11に対するコンパクション処理が実行される。
[コンパクション処理]
以下、図3、及び図4から図6のフローチャートを参照して、本実施形態のコンパクション処理を説明する。
SSDは、後述するように、ブロック内の記憶領域を有効活用するためにコンパクション処理を実行する(図6を参照)。本実施形態のコンパクションモジュール24では、図2に示すように、各モジュール30〜35が連携して、コンパクション処理を高速かつ効率的に実行する。
まず、ブロック検索モジュール30は、図5のフローチャートに示すように、有効データが記録されているアクティブブロック群から、コンパクション対象ブロックの候補を検索する。この場合、コンパクション処理を効果的に行うためには、できるだけ有効クラスタ数の少ない低密度のブロックをコンパクション対象ブロックとして検索する必要がある。
ここで、クラスタ(cluster)は、フラッシュメモリ11からデータを読み出す場合の最小アクセス単位である。1クラスタは、例えば1物理ページの半分に対応するデータ量である。マルチチャネル構成のSSDの場合、チャネル数×プレーン(plane)数の物理ページから論理ページが構成される。従って、有効クラスタはクラスタ単位の有効データである。また、有効クラスタ数(CN)は、1ブロック内の有効データ量である。
ブロック検索モジュール30は、後述するように、コンパクション対象ブロックの候補を検索する場合の条件として、有効クラスタ数(CN)に係る閾値(有効クラスタ数閾値TH)を使用する。有効クラスタ数閾値THは、閾値算出モジュール31により算出される。以下、図4のフローチャートを参照して、閾値算出モジュール31の処理を説明する。
閾値算出モジュール31は、図3に示すように、有効クラスタ数閾値を管理する管理テーブル100を有する。管理テーブル100は、フラッシュメモリ11の記憶容量の余裕率(M)と有効クラスタ密度(CD)とが対応付けられている。余裕率(M)は、装置表記容量に対して実際に使用可能な記憶容量の割合である。
閾値算出モジュール31は、使用不可のブロック(BB:Bad Block)の発生したタイミングで、ブロック管理モジュール23からその発生通知を受け付ける(ブロック400)。閾値算出モジュール31は、その発生通知を受け付けると、記憶容量の余裕率(M)を算出(再計算)する(ブロック401)。ここで、余裕率(M)は、数式「M=MC÷TC×100(%)」により算出される。MCは余裕容量であり、ユーザデータの記憶に利用可能な全記憶容量からTCを差し引いた容量である。TCは、フラッシュメモリ11の装置表記容量である。
さらに、閾値算出モジュール31は、管理テーブル100を参照して、算出した余裕率(M)に対応する有効クラスタ密度(CD)を算出する(ブロック402)。ここで、1クラスタは、例えば1ページ(物理ページ)の半分に対応するデータ量である。また、1論理ページは例えば32物理ページから構成され、1ブロックは例えば64論理ページ分のデータ量である。これらの関係から、余裕率(M)と有効クラスタ密度(CD)とが対応付けられた情報が、管理テーブル100として予め作成されている。
次に、閾値算出モジュール31は、管理テーブル100から算出した有効クラスタ密度(CD)から有効クラスタ数閾値(TH)を算出する(ブロック403)。有効クラスタ数閾値(TH)は、数式「TH=TN×CD」により算出される。TNは、論理ブロックの総クラスタ数である。閾値算出モジュール31は、算出した有効クラスタ数閾値(TH)を内部メモリに記憶する。
閾値算出モジュール31は、内部メモリに記憶した前の有効クラスタ数閾値(TH)と、今回算出した現在値とを比較する(ブロック404)。閾値算出モジュール31は、閾値が変化している場合には、内部メモリの既存値を有効クラスタ数閾値(TH)の現在値(最新値)に更新する(ブロック405)。
要するに、閾値算出モジュール31は、フラッシュメモリ11の余裕率の変動に応じて管理テーブル100から対応する有効クラスタ密度(CD)を求めて、この有効クラスタ密度(CD)から最新の有効クラスタ数閾値(TH)を算出する。閾値算出モジュール31は、内部メモリの既存値を最新の有効クラスタ数閾値(TH)に更新する。なお、閾値算出モジュール31は、アクティブブロック群の平均有効クラスタ数を算出し、その平均値に基づいて最新の有効クラスタ数閾値(TH)を算出し、内部メモリに記憶してもよい。
次に、ブロック検索モジュール30は、図5のフローチャートに示すように、閾値算出モジュール31の内部メモリに格納されている最新の有効クラスタ数閾値(TH)を取得する(ブロック500)。さらに、ブロック検索モジュール30は、各アクティブブロック(有効データが記録されているブロック)から、有効クラスタ数(CN)を取得する(ブロック501)。この場合、ブロックモジュール30は、ブロック管理モジュール23から各アクティブブロック毎の有効クラスタ数(CN)を取得する。
ブロック検索モジュール30は、取得した有効クラスタ数(CN)が0であるブロックを検索すると、当該ブロックをフリーブロック(未使用の待機状態ブロック)として解放するための通知をブロック管理モジュール23に行なう(ブロック502のYES,505)。コントローラ21は、当該ブロックに対する消去処理を実行する。ブロック管理モジュール23は、消去処理後のブロックをフリーブロックとして登録する。
一方、ブロック検索モジュール30は、有効クラスタ数(CN)が0でないブロックの場合には、有効クラスタ数(CN)と有効クラスタ数閾値(TH)とを比較する(ブロック503)。ブロック検索モジュール30は、有効クラスタ数(CN)が閾値(TH)より少ない場合には、当該有効クラスタ数(CN)のブロックをコンパクション対象ブロックとして候補リストに登録する(ブロック504)。
ブロック検索モジュール30は、所定範囲のアクティブブロックに対する検索処理を繰り返し、閾値(TH)より少ない有効クラスタ数(CN)のブロックを候補リストに追加していく(ブロック506)。ここで、ブロック検索モジュール30は、有効クラスタ数(CN)が閾値(TH)より少ないブロックの中で、有効クラスタ数(CN)の少ない順に所定数のブロックをコンパクション対象ブロックとして選定してもよい。
ブロックリスト管理モジュール32は、コンパクション対象ブロックの候補およびコンパクション処理中のブロックを、それぞれリスト構造により管理する。具体的には、ブロックリスト管理モジュール32は、ブロック検索モジュール30により選出されたブロック群のブロックID(識別情報)をコンパクション対象ブロックの候補としてリスト構造で管理する。
なお、ブロックリスト管理モジュール32は、コンパクション対象ブロックの候補リストとしては、目的に応じて例えば3種類のリストを有し、コンパクション対象ブロックを管理する。1種類目のリストは、通常のコンパクション処理用で、選出されたブロックのブロックIDを管理するためのものである。即ち、通常のコンパクション処理では、コントローラ22は、ブロック管理モジュール23により管理しているフリーブロック数を確認し、それが規定数以下であればフリーブロックの枯渇状態を回避するために、ブロック検索モジュール30に対してコンパクション対象ブロックの検索処理を開始させる。
また、2種類目のリストは、エラー修復目的のコンパクション処理用である。例えば、コントローラ22は、定期的にリード確認を行い、エラービットが規定値以上多くなったブロックの場合に、退避の目的で当該ブロック内のデータを他のブロックに移動する処理に使用する。このようなコンパクション処理は、パトロールリフレッシュ処理と呼ばれることがある。3種類目のリストは、フラッシュメモリ11の延命のためのウェアレベリング(wear leveling)目的のコンパクション処理用である。フラッシュメモリ11の寿命は、ブロックの消去回数および消去時間間隔に依存するため、ブロックの疲弊度を平準化する必要がある。このコンパクション処理は、図示しないウェアレベリングモジュールにより、ウェアレベリングが必要と判定された場合に開始される。
ブロックリスト管理モジュール32は、コンパクション対象ブロックの候補リストから各目的に応じて優先順位をつけ、コンパクション処理中にコンパクション対象ブロックのリストを生成する。以下、図6のフローチャートを参照して、コンパクション処理を具体的に説明する。
クラスタ検索モジュール33は、ブロックリスト管理モジュール32により管理されているリスト内で、各コンパクション対象ブロックについてクラスタ単位での有効データまたは無効データのいずれであるかを判定し、有効データである有効クラスタを検索する(ブロック600)。
コマンドリスト生成モジュール34は、クラスタ検索モジュール33により検索された有効クラスタについて、コンパクション処理の要求コマンド(コンパクション要求コマンド)セットを生成する(ブロック601)。コマンドリスト投入モジュール35は、コマンドリスト生成モジュール34から受け取ったコンパクション要求コマンドを、インターフェース20に投入する(ブロック602,603)。これにより、フラッシュメモリ11に対するコンパクション処理が実行される(ブロック604)。
ここで、コンパクション要求コマンドとは、コンパクション対象ブロックから有効クラスタをリードし、別のブロックに書き直すためのコマンドである。本実施形態では、コマンドリスト生成モジュール34は、ライト可能な最小単位であるページ単位でまとめてコマンド発行を行うものとする。マルチチャネル構成のSSDの場合、例えば、「チャネル数−Parity用チャネル−移動先ブロックのNULLブロック数)×プレーン(plane)数×ページ当たりのクラスタ数」のクラスタ数個分のコマンドを1セットとして生成する。
コンパクション処理が完了すると、コントローラ21は、コンパクション対象ブロックに対する消去処理を実行する。ブロック管理モジュール23は、消去処理後のブロックをフリーブロックとして登録するためのリストを生成する(ブロック606)。
以上のように本実施形態によれば、コンパクション処理の実行時にコンパクション対象ブロックを検索する場合に、有効クラスタの少ない低密度ブロックを有効クラスタ数閾値に基づいて判定する。この有効クラスタ数閾値は、フラッシュメモリ11のメモリ容量の余裕率の変動に応じて最新の閾値として更新される。
このような本実施形態の検索方法であれば、コンパクション対象ブロックを高速かつ効率的に検索することが可能となり、結果としてコンパクション処理時間の短縮化を実現することができる。即ち、コンパクション対象ブロックを検索する場合に、できるだけ低密度のブロック検索を実現するためには、有効クラスタ数閾値が小さいことが望ましい。しかし一方で、フラッシュメモリ11の余裕率が減少すると、コンパクション対象ブロックの候補を検索することが困難となる。また逆に、余裕をもたせて有効クラスタ数閾値を予め大きめの値に設定した場合には、コンパクション処理の効率が低下する。
従って、本実施形態であれば、有効クラスタ数閾値を余裕率の変動に応じて更新することにより、コンパクション対象ブロックを高速かつ効率的に検索することが可能となる。また、コンパクション対象ブロックの検索処理に要する専用メモリ領域として、閾値算出モジュール31が有する有効クラスタ数閾値テーブル及び閾値を記憶するメモリ領域だけである。このため、専用メモリ領域を最小限にすることが可能である。要するに、本実施形態であれば、最小限の専用メモリ領域で、フラッシュメモリの使用状態(余裕率)に適した効果的なコンパクション対象ブロックの検索処理を実現できる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ホストシステム、10…SSDコントローラ、11…NAND型フラッシュメモリ、
12…フラッシュメモリコントローラ、
13…ホストインターフェース(ホストI/F)、
14…バッファ管理モジュール、15…バッファメモリ(DRAM)、
16…マイクロプロセッサ(CPU)、20…入出力インターフェース、
21…メモリアクセスコントローラ、22…コントローラ、
23…ブロック管理モジュール、24…コンパクションモジュール、
30…ブロック検索モジュール、31…有効クラスタ数閾値算出モジュール、
32…コンパクションブロックリスト管理モジュール、
33…クラスタ検索モジュール、34…コマンドリスト生成モジュール、
35…コマンドリスト投入モジュール。

Claims (11)

  1. ブロックをデータ消去単位とするフラッシュメモリと、
    前記フラッシュメモリに対するコンパクション処理を実行するコントローラとを具備し、
    前記コントローラは、
    使用可能なブロック数及びブロック内の有効データ量に基づいてコンパクション処理対象範囲を動的に設定し、前記コンパクション処理対象範囲から前記コンパクション処理の対象ブロックとして相対的に有効データ量が少ないブロックを検索するコンパクション処理手段を有するデータ記憶装置。
  2. 前記コンパクション処理手段は、
    前記コンパクション処理の対象ブロックを検索する条件としてブロック内の有効データ量の閾値を算出し、前記フラッシュメモリの使用可能なブロック数の変動に応じて前記閾値を更新した最新の閾値を算出する閾値算出手段と、
    前記閾値算出手段から取得した前記最新の閾値に基づいて相対的に有効データ量が少ないブロックを決定し、前記コンパクション処理の対象ブロックとして検索する検索手段とを含む請求項1に記載のデータ記憶装置。
  3. 前記閾値算出手段は、
    前記使用可能なブロック数の割合を示す余裕率と前記閾値を算出するための有効データ密度とを対応付けしたテーブル情報を有し、
    前記テーブル情報を参照し、前記余裕率の変動に応じた前記有効データ密度から前記最新の閾値を算出する請求項2に記載のデータ記憶装置。
  4. 前記閾値算出手段は、前記閾値を記憶するメモリ手段を有し、前記メモリ手段に記憶した閾値を前記余裕率の変動に応じて更新し、
    前記検索手段は、
    前記閾値算出手段から前記メモリ手段に記憶されている最新の閾値を取得し、前記最新の閾値に基づいて前記コンパクション処理の対象ブロックを検索する請求項3に記載のデータ記憶装置。
  5. 前記閾値算出手段は、
    前記フラッシュメモリの使用可能なブロック群の平均有効データ量を算出し、当該平均値に基づいて前記最新の閾値を算出する請求項2から請求項4のいずれか1項に記載のデータ記憶装置。
  6. 前記検索手段は、
    前記最新の閾値より小さい有効データ量の各ブロックの中で、前記有効データ量の小さい順に所定数のブロックを、前記コンパクション処理の対象ブロックとして選定する請求項2から請求項5のいずれか1項に記載のデータ記憶装置。
  7. 前記コントローラは、
    前記コンパクション処理手段により検索されたコンパクション処理の対象ブロックに対して前記コンパクション処理を実行するコンパクション処理実行手段を有し、
    前記コンパクション処理実行手段は、
    前記コンパクション処理の対象ブロックから有効データを検索し、
    前記有効データを他のブロックに書き直す請求項1から請求項6のいずれか1項に記載のデータ記憶装置。
  8. 前記コンパクション処理実行手段による前記コンパクション処理の完了後に、前記コンパクション処理の対象ブロックを消去処理する手段と、
    前記消去処理後の対象ブロックをフリーブロックとして管理するブロック管理手段を有する請求項7に記載のデータ記憶装置。
  9. ブロックをデータ消去単位とするフラッシュメモリを使用するデータ記憶装置に適用するメモリ制御装置であって、
    前記フラッシュメモリに対するコンパクション処理を実行するコントローラを具備し、
    前記コントローラは、
    使用可能なブロック数及びブロック内の有効データ量に基づいてコンパクション処理対象範囲を動的に設定し、前記コンパクション処理対象範囲から前記コンパクション処理の対象ブロックとして相対的に有効データ量が少ないブロックを検索するコンパクション処理手段を有するメモリ制御装置。
  10. 前記コンパクション処理手段は、
    前記コンパクション処理の対象ブロックを検索する条件としてブロック内の有効データ量の閾値を算出し、前記フラッシュメモリの使用可能なブロック数の変動に応じて前記閾値を更新した最新の閾値を算出する閾値算出手段と、
    前記閾値算出手段から取得した前記最新の閾値に基づいて相対的に有効データ量が少ないブロックを決定し、前記コンパクション処理の対象ブロックとして検索する検索手段とを含む請求項9に記載のメモリ制御装置。
  11. ブロックをデータ消去単位とするフラッシュメモリ及び前記フラッシュメモリに対するコンパクション処理を実行するコントローラを含むデータ記憶装置に適用するメモリ制御方法であって、
    前記コントローラは、
    使用可能なブロック数及びブロック内の有効データ量に基づいてコンパクション処理対象範囲を動的に設定し、
    前記コンパクション処理対象範囲から前記コンパクション処理の対象ブロックとして相対的に有効データ量が少ないブロックを検索するメモリ制御方法。
JP2011167041A 2011-07-29 2011-07-29 データ記憶装置、メモリ制御装置及びメモリ制御方法 Expired - Fee Related JP5579135B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011167041A JP5579135B2 (ja) 2011-07-29 2011-07-29 データ記憶装置、メモリ制御装置及びメモリ制御方法
US13/560,486 US8930614B2 (en) 2011-07-29 2012-07-27 Data storage apparatus and method for compaction processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011167041A JP5579135B2 (ja) 2011-07-29 2011-07-29 データ記憶装置、メモリ制御装置及びメモリ制御方法

Publications (2)

Publication Number Publication Date
JP2013030081A true JP2013030081A (ja) 2013-02-07
JP5579135B2 JP5579135B2 (ja) 2014-08-27

Family

ID=47787049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011167041A Expired - Fee Related JP5579135B2 (ja) 2011-07-29 2011-07-29 データ記憶装置、メモリ制御装置及びメモリ制御方法

Country Status (1)

Country Link
JP (1) JP5579135B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015001909A (ja) * 2013-06-17 2015-01-05 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
JP2017111476A (ja) * 2015-12-14 2017-06-22 株式会社東芝 メモリシステムおよび制御方法
KR20190094098A (ko) 2018-02-02 2019-08-12 후지쯔 가부시끼가이샤 스토리지 제어 장치 및 스토리지 제어 방법
US11899573B2 (en) 2021-09-21 2024-02-13 Kioxia Corporation Memory system

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160195A (ja) 2017-03-23 2018-10-11 東芝メモリ株式会社 メモリシステムおよび不揮発性メモリの制御方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235880A (ja) * 1994-09-30 1996-09-13 Alcatel Nv フラッシュメモリのメモリ管理方法
JP2010541107A (ja) * 2007-10-05 2010-12-24 ディスキーパー・コーポレイション ソリッドステートドライブオプティマイザ
JP2011519095A (ja) * 2008-04-25 2011-06-30 サンディスク コーポレイション マルチバンク記憶装置のためのストレージアドレス再マッピングのための方法およびシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08235880A (ja) * 1994-09-30 1996-09-13 Alcatel Nv フラッシュメモリのメモリ管理方法
JP2010541107A (ja) * 2007-10-05 2010-12-24 ディスキーパー・コーポレイション ソリッドステートドライブオプティマイザ
JP2011519095A (ja) * 2008-04-25 2011-06-30 サンディスク コーポレイション マルチバンク記憶装置のためのストレージアドレス再マッピングのための方法およびシステム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015001909A (ja) * 2013-06-17 2015-01-05 富士通株式会社 情報処理装置、制御回路、制御プログラム、および制御方法
JP2017111476A (ja) * 2015-12-14 2017-06-22 株式会社東芝 メモリシステムおよび制御方法
KR20190094098A (ko) 2018-02-02 2019-08-12 후지쯔 가부시끼가이샤 스토리지 제어 장치 및 스토리지 제어 방법
US11899573B2 (en) 2021-09-21 2024-02-13 Kioxia Corporation Memory system

Also Published As

Publication number Publication date
JP5579135B2 (ja) 2014-08-27

Similar Documents

Publication Publication Date Title
US8930614B2 (en) Data storage apparatus and method for compaction processing
US10761780B2 (en) Memory system
JP5405513B2 (ja) メモリシステム、不揮発性記憶装置、不揮発性記憶装置の制御方法、及びプログラム
US9298534B2 (en) Memory system and constructing method of logical block
US8966205B1 (en) System data management using garbage collection and hybrid self mapping
US10303371B2 (en) Data storage device that stabilizes write latency
JP2008015769A (ja) ストレージシステム及び書き込み分散方法
JP6139381B2 (ja) メモリシステムおよび方法
KR20150024323A (ko) 불량 블록 관리 메커니즘
CN110674056B (zh) 一种垃圾回收方法及装置
KR20200018999A (ko) 블록의 상태에 따라 사용 여부를 결정하는 메모리 시스템 및 메모리 시스템의 동작 방법
US9361201B2 (en) Memory system and memory controller
US20200034081A1 (en) Apparatus and method for processing data in memory system
JP5579135B2 (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
JP4666081B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
US11016889B1 (en) Storage device with enhanced time to ready performance
JP2013222435A (ja) 半導体記憶装置及びその制御方法
CN102298543A (zh) 一种存储器管理方法和装置
CN116737064B (zh) 一种固态硬盘的数据管理方法和系统
US8671257B2 (en) Memory system having multiple channels and method of generating read commands for compaction in memory system
US20150205538A1 (en) Storage apparatus and method for selecting storage area where data is written
TW201303584A (zh) 記憶體儲存裝置、其記憶體控制器與有效資料識別方法
US20190012260A1 (en) Flash memory package and storage system including flash memory package
US9304906B2 (en) Memory system, controller and control method of memory
JP2015053075A (ja) メモリシステム、情報処理装置および記憶装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130905

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140415

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140523

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: 20140610

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140708

R151 Written notification of patent or utility model registration

Ref document number: 5579135

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees