JP2013196646A - Memory control device, data storage device, and memory control method - Google Patents
Memory control device, data storage device, and memory control method Download PDFInfo
- Publication number
- JP2013196646A JP2013196646A JP2012066239A JP2012066239A JP2013196646A JP 2013196646 A JP2013196646 A JP 2013196646A JP 2012066239 A JP2012066239 A JP 2012066239A JP 2012066239 A JP2012066239 A JP 2012066239A JP 2013196646 A JP2013196646 A JP 2013196646A
- Authority
- JP
- Japan
- Prior art keywords
- compaction
- data
- unit
- processing
- read
- 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
Links
Images
Abstract
Description
本発明の実施形態は、不揮発性メモリのメモリ制御装置、データ記憶装置、及びメモリ制御方法に関する。 Embodiments described herein relate generally to a memory control device, a data storage device, and a memory control method for a nonvolatile memory.
近年、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を使用するSSD(solid state drive)の開発が推進されている。フラッシュメモリは、データの書き込み単位がページ単位であるのに対して、データの消去単位がブロック単位である。また、書き換え対象の記憶領域に対しては、書き換え前に消去処理が必要となる。 2. Description of the Related Art In recent years, development of an SSD (solid state drive) using a NAND flash memory (hereinafter sometimes simply referred to as a flash memory), which is a rewritable nonvolatile memory, has been promoted as a data storage device. In the flash memory, the data writing unit is a page unit, whereas the data erasing unit is a block unit. In addition, an erasure process is required before rewriting the storage area to be rewritten.
このようなフラッシュメモリの特性から、SSDでは、フラッシュメモリに対するデータの書き換えが進むと、無効なデータ(最新でないデータ)によりブロック内は有効データを格納できない記憶領域の割合が増大する。このため、SSDは、ブロック内の記憶領域を有効活用するために、コンパクション(compaction)処理を実行する。 Due to such characteristics of the flash memory, in the SSD, when data rewriting with respect to the flash memory proceeds, the proportion of the storage area in which valid data cannot be stored in the block due to invalid data (data that is not the latest) increases. Therefore, the SSD executes a compaction process in order to effectively use the storage area in the block.
コンパクション処理においては、コンパクション元ブロックおよびその有効データ(例えばクラスタ単位)を検索する検索処理時間がSSDの動作性能に大きく影響する。このため、当該検索処理時間を短縮化するための種々の技術が提案されている。 In the compaction processing, the search processing time for searching the compaction source block and its valid data (for example, in cluster units) greatly affects the operation performance of the SSD. For this reason, various techniques for shortening the search processing time have been proposed.
しかしながら、コンパクション元ブロックの中には、有効データが極端に少ない状態(疎密度の状態)のブロックが発生することが起こり得る。このような場合、検索処理時間を短縮化することは困難であり、コンパクション処理の完了までの時間が増大する可能性が高くなる。このため、SSDは、ホストに対するコマンド応答の上限時間要求(ライトレイテンシ:write latency)を保証できなくなるという課題がある。 However, in the compaction source block, there may occur a block in which the valid data is extremely small (sparse density state). In such a case, it is difficult to shorten the search processing time, and there is a high possibility that the time until completion of the compaction processing will increase. For this reason, there is a problem that the SSD cannot guarantee the request response upper limit time (write latency) to the host.
本発明の目的は、コンパクション処理の完了までの時間を短縮化し、ホストに対するライトレイテンシを保証できるメモリ制御装置を提供することにある。 An object of the present invention is to provide a memory control device capable of shortening the time until completion of compaction processing and guaranteeing the write latency for a host.
実施形態によれば、メモリ制御装置は、リード・ライトコントローラと、コンパクションコントローラとを具備する。リード・ライトコントローラは、ブロックを消去単位とするフラッシュメモリに対するデータの読み出し、書き込みを実行する。コンパクションコントローラは、フラッシュメモリに対するコンパクション処理を制御し、検索部と、検索中止判断部と、コンパクションリード処理部と、コンパクションライト処理部とを含む。検索部は、リード・ライトコントローラにより有効データを読み出す対象であるコンパクション元ブロックから有効データを検索する。検索中止判断部は、検索部による検索処理量が上限値を超える場合に前記検索部の検索処理を中止する。コンパクションリード処理部は、リード・ライトコントローラを介して検索部により検索された有効データをコンパクション元ブロックから読み出す。コンパクションライト処理部は、コンパクションリード処理部により読み出された有効データを所定のデータ量単位でコンパクション先ブロックに書き込む。 According to the embodiment, the memory control device includes a read / write controller and a compaction controller. The read / write controller reads / writes data from / to the flash memory using a block as an erasing unit. The compaction controller controls compaction processing for the flash memory, and includes a search unit, a search stop determination unit, a compaction read processing unit, and a compaction write processing unit. The retrieval unit retrieves valid data from the compaction source block from which valid data is read by the read / write controller. The search cancellation determination unit stops the search processing of the search unit when the amount of search processing by the search unit exceeds the upper limit value. The compaction read processing unit reads the valid data retrieved by the retrieval unit via the read / write controller from the compaction source block. The compaction write processing unit writes the valid data read by the compaction read processing unit to the compaction destination block in a predetermined data amount unit.
以下図面を参照して、実施形態を説明する。 Embodiments will be described below with reference to the drawings.
[データ記憶装置の構成]
図1に示すように、実施形態に係るデータ記憶装置は、SSD(solid state drive)1であり、データ記憶媒体として不揮発性メモリのNAND型フラッシュメモリ(以下、フラッシュメモリ)6を有する。フラッシュメモリ6は、複数のメモリチップ100〜131がチャネルch0〜ch7とバンク(Bank)0〜3と呼ぶ行列構成でグループ化されている。さらに、各メモリチップ100〜131はそれぞれ、複数の物理ブロックから構成されている。物理ブロックは、フラッシュメモリ6内で独立して消去可能な最小の物理的記憶領域単位である。SSD1は、SSD1の内部で複数の物理ブロックを論理ブロックとして管理する。論理ブロックはSSD1のデータ消去単位である。本実施形態では、論理ブロックを、単に「ブロック」と称する。
[Configuration of data storage device]
As shown in FIG. 1, the data storage device according to the embodiment is an SSD (solid state drive) 1 and includes a NAND flash memory (hereinafter referred to as a flash memory) 6 which is a nonvolatile memory as a data storage medium. In the flash memory 6, a plurality of
SSD1は、フラッシュメモリ6を制御するSSDコントローラ10を含む。SSDコントローラ10は、ホストインターフェース部2と、データバッファ3と、メイン制御部4と、メモリコントローラ5とを有する。
The SSD 1 includes an
ホストインターフェース部2は、ホストとSSD1との間で、データ、コマンド、アドレスの転送を制御する。ここで、ホストは、例えばSATA(Serial ATA)規格のインターフェースを含むコンピュータなどである。データバッファ3は、例えばDRAM(Dynamic Random Access Memory)、又はSRAM(Static Random Access Memory)からなるバッファメモリである。ホストインターフェース部2は、ホストから転送されるデータをデータバッファ3に格納する。また、ホストインターフェース部2は、ホストから転送されるコマンドやアドレスをメイン制御部4に転送する。
The
データバッファ3は、書き込みバッファ領域(WB領域)31とコンパクションバッファ領域(CB領域)32とを有する。WB領域31は、ホストから転送される書き込みデータ(ユーザデータ)を格納する。CB領域32は、後述するコンパクション処理時の書き込みデータ(有効データ)を格納する。なお、データバッファ3は、論理/物理アドレスの変換テーブルを格納する領域を含む場合もある。
The
メイン制御部4は、例えばマイクロプロセッサ(MPU)からなり、SSDコントローラ10の全体的制御を実行する。メイン制御部4は、書き込み/読み出しコントローラ41と、ブロック管理部42と、コンパクションコントローラ43とを含む。
The
書き込み/読み出しコントローラ41は、ホストインターフェース部2からホストからのリード・ライトコマンドに応じて、読み出し処理と書き込み処理の制御を実行する。また、書き込み/読み出しコントローラ41は、コンパクションコントローラ43からのコンパクション処理用のライトコマンドに応じて、フラッシュメモリ6に対して書き込み順序などの書き込み処理の制御を実行する。ブロック管理部42は、フラッシュメモリ6の各ブロック(ここでは論理ブロック)の有効クラスタを管理するテーブルやフリーブロック(未使用の待機状態ブロック)を管理する管理情報などを有する。
The write /
コンパクションコントローラ43は、後述するコンパクション処理を制御する制御部であり、コンパクション元ブロックの検索処理、ブロック内の有効クラスタの検索処理、有効クラスタ検索カウント処理、有効クラスタ検索処理の中止判定処理及びコンパクションコマンドのリストを生成するなどの処理を実行する。コンパクションコントローラ43は、有効クラスタ検索処理カウンタ431と有効クラスタ打ち切り判定部432を備える。コンパクションコマンドは、後述するように、コンパクションリード処理を実行するためのリードコマンド及びコンパクションライト処理をするためのライトコマンドである。
The
メモリコントローラ5は、チャネルch0〜ch7毎の複数のNANDコントローラ50〜57を有し、書き込み/読み出しコントローラ41からのコマンドに応じてフラッシュメモリ6に対する読み出し処理または書き込み処理を実行する。NANDコントローラ50〜57はそれぞれ、チャネルch0〜ch7毎のメモリチップ100〜131に対して並列に読み出し処理または書き込み処理を実行する。本実施形態では、メモリコントローラ5は、コンパクションコントローラ43と連携する書き込み/読み出しコントローラ41からのコマンドに応じて、フラッシュメモリ6に対するコンパクション処理時の読み出し処理(コンパクションリード処理)または書き込み処理(コンパクションライト処理)を実行する。
The memory controller 5 includes a plurality of
[コンパクション処理]
先ず、図2を参照してコンパクション処理の基本的概要を説明する。
[Compact processing]
First, a basic outline of the compaction process will be described with reference to FIG.
前述したように、SSD1は、フラッシュメモリ6の各ブロックにおいて、有効データの記憶領域が低密度になったブロック内の記憶領域を有効活用するために、コンパクション処理を実行する。 As described above, the SSD 1 performs the compaction process in order to effectively use the storage area in the block in which the storage area of the effective data is low in each block of the flash memory 6.
図2に示すように、コンパクションコントローラ43は、フラッシュメモリ6からコンパクション元ブロック20A、20B(便宜的に2個の論理ブロックとする)を検索するコンパクション元ブロックの検索処理を実行する。コンパクション元ブロックとは、有効データが記録されているアクティブブロックの中で、有効データ(最新データ)の記憶領域が低密度になったコンパクション処理対象ブロックである。
As shown in FIG. 2, the
コンパクションコントローラ43は、ブロック管理部42からアクティブブロックのリスト情報および各ブロックの有効クラスタを管理するテーブルから、コンパクション元ブロックの候補を設定するための情報を取得する。この場合、コンパクション処理を効果的に行うためには、できるだけ有効クラスタ数の少ない低密度のブロックをコンパクション元ブロックとして検索することが望ましい。
The
ここで、クラスタ(cluster)は、フラッシュメモリ6からデータを読み出す場合の最小アクセス単位である。各ブロック20A、20Bは、複数の論理ページ(P0〜P2)からなる。各論理ページは複数のクラスタから構成される。有効クラスタはクラスタ単位の有効データである。また、有効クラスタ数(CN)は、1ブロック内の有効データ量である。
Here, the cluster is a minimum access unit when data is read from the flash memory 6. Each
図2に示すように、コンパクションコントローラ43は有効クラスタを管理するテーブルを参照して、検索されたコンパクション元ブロック20A、20Bから有効クラスタ21A,21Bを検索する検索処理を実行する。当該テーブルには、有効クラスタと無効データからなる無効クラスタとを識別するためのログ情報が設定されている。
As shown in FIG. 2, the
メモリコントローラ5は、コンパクションコントローラ43と連携する書き込み/読み出しコントローラ41からのコマンドに応じて、各コンパクション元ブロック20A、20Bから有効クラスタ21A,21Bを読み出すコンパクションリード処理を実行する。さらに、メモリコントローラ5は、各コンパクション元ブロック20A、20Bから読み出した有効クラスタ21A,21Bを、コンパクション先ブロック20Cに書き込むコンパクションライト処理を実行する。
In response to a command from the write /
コンパクション先ブロック20Cは、ブロック管理部42で管理されているフリーブロック(書き込み可能な空きブロック)のリストから選出される。以上のようなコンパクション処理により、コンパクション元ブロック20A、20Bから有効クラスタ(クラスタ単位の有効データ)21A,21Bを収集して、コンパクション先ブロック20Cに書き直すことになる。この書き直し処理後に、コンパクション元ブロック20A、20Bに対する消去処理を実行することにより、コンパクション元ブロック20A、20Bをフリーブロックとして再利用できる。
The compaction destination block 20C is selected from a list of free blocks (writable free blocks) managed by the
次に、図3のフローチャート、図4及び図5を参照して、本実施形態のコンパクション処理を具体的に説明する。 Next, the compaction process of the present embodiment will be specifically described with reference to the flowchart of FIG. 3 and FIGS. 4 and 5.
先ず、SSD1は、ホストからの書き込み要求に応じてフラッシュメモリ6に対するユーザデータの書き込みに伴って、有効データの記憶領域が低密度となる疎密度なブロックが増加すると、フリーブロックを確保するためにコンパクション処理を実行する。
First, in response to a write request from the host, the
この場合、コンパクションコントローラ43は、適切なタイミングでコンパクション処理を開始し、コンパクションライト処理を完了する必要がある。書き込み/読み出しコントローラ41はコンパクションコントローラ43と連携し、ホストからのライトコマンドによるユーザデータの書き込み処理(以下、ホスト書き込み処理と称す)の合間にコンパクションライト処理を実行する。
In this case, the
この場合、コンパクションコントローラ43は書き込み/読み出しコントローラ41に対して、コンパクション処理の進行比率に基づいてコンパクションコマンドを発行する。書き込み/読み出しコントローラ41は、コンパクションコントローラ43からのコンパクションコマンドに応じて、ホストからのライトコマンドとスケジューリングした上でコンパクションライト処理を実行するためのライトコマンドを発行し、メモリコントローラ5に出力する。コンパクション処理の進行比率は、ホスト書き込み処理とコンパクションライト処理をペアとした場合に、それらの処理対象の論理ページ数の比率(ギア比:gear rate)である。
In this case, the
具体的には、論理ページ数(論理ページアドレスP0〜P2)の比率とは、図4(A)に示すフリーブロック40Aに対するホスト書き込み処理の論理ページ数(1ページ)と、図4(B)に示すフリーブロック40Bに対するコンパクションライト処理の論理ページ数(Nページ、ここではN=2)との比率である。書き込み/読み出しコントローラ41はコンパクションコマンドに応じて、ホスト書き込み処理とコンパクションライト処理の各論理ページ数の比率が例えば1:2になるように、両者のフラッシュメモリ6に対する書込み順序を制御する。
Specifically, the ratio of the number of logical pages (logical page addresses P0 to P2) is the number of logical pages (1 page) of host write processing for the
図5に示すように、コンパクションコントローラ43は、コンパクション元ブロック50A、50B(便宜的に2個の論理ブロックとする)を検索するコンパクション元ブロックの検索処理を実行する。この場合、前述したように、コンパクションコントローラ43は、ブロック管理部42からアクティブブロックのリスト情報および各ブロックの有効クラスタを管理するテーブルから、コンパクション元ブロックの候補を設定するための情報を取得する。
As shown in FIG. 5, the
次に、図3に示すように、コンパクションコントローラ43は有効クラスタを管理するテーブルを参照して、検索されたコンパクション元ブロック50A、50Bから有効クラスタ51A,51Bを検索する検索処理を開始する(ブロック300)。
Next, as shown in FIG. 3, the
検索処理の開始時に、コンパクションコントローラ43は、有効クラスタの検索処理用カウンタである有効クラスタ検索処理カウンタ431を初期化する。この有効クラスタ検索処理カウンタ431は、コンパクションコマンドの発行単位で、有効クラスタ検索処理の検索処理量を測定する。具体的には、検索処理量は、コンパクション元ブロック数、論理ページ数または検索処理時間のいずれかである。この場合、論理ページ数の検索処理量とは、有効クラスタを検索する際の有効クラスタ数を論理ページ数に換算した量である。1論理ページは、例えば2クラスタ分に相当する。ここで、前述したように、コンパクションコマンドの発行は、コンパクション処理の進行比率に基づいて行なわれる。
At the start of search processing, the
コンパクションコントローラ43の有効クラスタ打ち切り判定部432は、測定された検索処理量(カウンタ値)と予め設定された上限値とを比較して、検索処理量が上限値を超えているか否かを判定する(ブロック301)。ここで、上限値は、例えばホストに対するコマンド応答の上限時間要求(ライトレイテンシ)に基づいて設定される値である。このコマンド応答の上限時間は、前述したようなコンパクション処理の進行比率を前提として設定されている。コンパクションコントローラ43は、有効クラスタ打ち切り判定部432の判定結果が上限値を超えていない場合には、通常のコンパクション処理に移行する(ブロック301のNO)。
The effective cluster
図5に示すように、コンパクションコントローラ43は、有効クラスタを管理するテーブルを参照して、検索されたコンパクション元ブロック50A、50Bから有効クラスタ51A,51Bを検索する(ブロック302)。前述したように、当該テーブルには、有効クラスタと無効データからなる無効クラスタとを識別するためのログ情報が設定されている。コンパクションコントローラ43の有効クラスタ検索処理カウンタ431は、検索した有効クラスタ数(CN)をカウントし、カウント値(CN)を例えば内部レジスタに保持する(ブロック303のYES、304)。
As shown in FIG. 5, the
次に、コンパクションコントローラ43は、検出された有効クラスタ51A,51Bをコンパクション元ブロック50A、50Bから読み出すコンパクションリード処理を実行する(ブロック305)。具体的には、コンパクションコントローラ43は、検出された有効クラスタ51A,51Bについて、コンパクションリード処理を要求するコンパクションコマンドを生成する。書き込み/読み出しコントローラ41は、当該コンパクションコマンドからリードコマンドを発行し、メモリコントローラ5に出力する。これにより、メモリコントローラ5は、各コンパクション元ブロック50A、50Bから有効クラスタ51A,51Bを読み出して、データバッファ3のCB領域32に格納する。
Next, the
コンパクションコントローラ43は、コンパクションリード処理により読み出される有効クラスタの有効クラスタ数(CN)がコンパクション処理の論理ページ単位(PN)分になるまで(CN=PN)、コンパクションリード処理までの処理を繰り返す(ブロック306のNO)。コンパクションコントローラ43は、CB領域32に論理ページに含まれる全クラスタの有効クラスタが格納されると、コンパクションライト処理を要求するコンパクションコマンドを生成する(ブロック306のYES)。
The
書き込み/読み出しコントローラ41は、当該コンパクションコマンドから論理ページ単位でライトコマンドを発行し、メモリコントローラ5に出力する。これにより、メモリコントローラ5は、データバッファ3のCB領域32から読み出した論理ページに含まれる全クラスタの有効クラスタを、コンパクション先ブロック50Cに書き込むコンパクションライト処理を実行する(ブロック307)。具体的には、図5に示すように、例えばCB領域32内から論理ページに含まれる全クラスタ(論理ページアドレスP1)の有効クラスタをコンパクション先ブロック50Cに書き込む。
The write /
一方、コンパクションコントローラ43は、有効クラスタ打ち切り判定部432の判定結果によりコンパクションリード処理を含む一連の有効クラスタ検索処理の検索処理量が上限値を超えている場合、当該検索処理を中止する(ブロックブロック301のYES、308)。ここで、前述したように、検索処理量は、例えばコンパクション元ブロック数、論理ページ数または検索処理時間である。
On the other hand, the
コンパクションコントローラ43は、検索処理を中止すると、検出された有効クラスタ数が論理ページに含まれる全クラスタに満たない場合は、ダミーデータ(例えばオール0)DDを書き込む(NULL Padding)ためのコンパクションコマンドを生成する(ブロック310)。書き込み/読み出しコントローラ41は、当該コンパクションコマンドに応じて、図5に示すように、論理ページに含まれる全クラスタに満たないCB領域32の領域53(論理ページアドレスP0)にダミーデータDDを書き込む。この後、書き込み/読み出しコントローラ41は、論理ページ単位でライトコマンドを発行し、メモリコントローラ5に出力する。
When the
メモリコントローラ5は、データバッファ3のCB領域32から読み出した論理ページに含まれる全クラスタの有効クラスタを、コンパクション先ブロック50Cに書き込むコンパクションライト処理を実行する(ブロック307)。具体的には、図5に示すように、例えばCB領域32内から論理ページに含まれる全クラスタ(論理ページアドレスP0)の有効クラスタ及びダミーデータDDをコンパクション先ブロック50Cに書き込む。コンパクションコントローラ43は、コンパクション処理対象の論理ページ数分の処理が完了するまで、一連の処理を繰り返す(ブロック309)。
The memory controller 5 executes a compaction write process in which valid clusters of all clusters included in the logical page read from the
以上のようにして本実施形態によれば、コンパクション元ブロックから有効クラスタを収集して、コンパクション先ブロックに書き直すコンパクション処理を実行することができる。このため、コンパクション元ブロックを消去することにより、書き込み可能なフリーブロックを増加することができる。 As described above, according to the present embodiment, it is possible to execute a compaction process in which valid clusters are collected from a compaction source block and rewritten in a compaction destination block. For this reason, the writable free blocks can be increased by erasing the compaction source block.
さらに、本実施形態のコンパクション処理であれば、有効クラスタ検索処理を実行している場合に、例えば検索処理時間が上限値を超えると、当該検索処理を中止する。上限値はホストに対するコマンド応答上限時間に基づいて設定されるため、検索処理時間を制限することにより、その要求(ライトレイテンシ)を保証できることになる。この場合、検索処理を中止すると、コンパクションリード処理により読み出された有効クラスタ数が論理ページに含まれる全クラスタに満たない状態が発生することがある。本実施形態では、論理ページに含まれる全クラスタに満たない容量だけダミーデータDDを書き込む(NULL Padding)ことにより、コンパクション先ブロックに書き直すコンパクション処理を確実に完了することができる。 Furthermore, in the case of the compaction process of the present embodiment, when the valid cluster search process is being executed, for example, if the search process time exceeds the upper limit value, the search process is stopped. Since the upper limit value is set based on the command response upper limit time for the host, the request (write latency) can be guaranteed by limiting the search processing time. In this case, when the search process is stopped, a state may occur in which the number of valid clusters read by the compaction read process is less than all the clusters included in the logical page. In the present embodiment, by writing dummy data DD in a capacity less than all the clusters included in the logical page (NULL Padding), the compaction process to be rewritten in the compaction destination block can be reliably completed.
なお、本実施形態において、コンパクション元ブロックから有効データを検索する場合、有効クラスタ単位での検索処理が行われるが、これに限ることなく、例えば論理ページ単位でもよい。 In this embodiment, when valid data is retrieved from the compaction source block, retrieval processing is performed in units of valid clusters. However, the present invention is not limited to this, and may be in units of logical pages, for example.
[変形例]
図6は、本実施形態の変形例に関するコンパクション処理を説明するためのフローチャートである。本変形例においても、SSD1の構成は図1に示すものと同様であるため、詳細な説明を省略する。
[Modification]
FIG. 6 is a flowchart for explaining the compaction process according to the modification of the present embodiment. Also in this modification, the configuration of the
本変形例は、検索処理を中止した場合に、ダミーデータDDを書き込む処理を含むコンパクションライト処理を実行せずに、コンパクションリード処理により読み出された有効クラスタ数が論理ページに含まれる全クラスタまでデータバッファ3のCB領域32に格納するまで待機する処理方法である。以下、図6のフローチャートを参照して具体的に説明する。
In this modification, when the search process is stopped, the compaction write process including the process of writing the dummy data DD is not executed, and the number of valid clusters read out by the compaction read process is included in all the clusters included in the logical page. This is a processing method for waiting until data is stored in the
先ず、ブロック600〜605までの処理は、図3に示す300〜305までの処理と同様である。即ち、コンパクションコントローラ43は、検索されたコンパクション元ブロックから有効クラスタを検索する検索処理を開始する(ブロック600)。コンパクションコントローラ43は、測定された検索処理量(カウンタ値)と予め設定された上限値とを比較して、検索処理量が上限値を超えているか否かを判定する(ブロック601)。コンパクションコントローラ43は、判定結果が上限値を超えていない場合には、通常のコンパクション処理に移行する(ブロック601のNO)。
First, the processing from
コンパクションコントローラ43は、検索されたコンパクション元ブロックから有効クラスタを検索する(ブロック602)。コンパクションコントローラ43は、検索した有効クラスタ数(CN)をカウントし、カウント値(CN)を例えば内部レジスタに保持する(ブロック603のYES、604)。次に、コンパクションコントローラ43は、検出された有効クラスタをコンパクション元ブロックから読み出すコンパクションリード処理を実行する(ブロック605)。
The
即ち、メモリコントローラ5は、各コンパクション元ブロックから有効クラスタを読み出して、データバッファ3のCB領域32に格納する(ブロック606)。コンパクションコントローラ43は、コンパクションリード処理により読み出される有効クラスタの有効クラスタ数(CN)がコンパクション処理の論理ページ単位(PN)分になるまで(CN=PN)、コンパクションリード処理までの処理を繰り返す(ブロック607のNO)。コンパクションコントローラ43は、CB領域32に論理ページに含まれる全クラスタの有効クラスタが格納されると、コンパクションライト処理を要求するコンパクションコマンドを生成する(ブロック607のYES)。メモリコントローラ5は、データバッファ3のCB領域32から読み出した論理ページに含まれる全クラスタの有効クラスタを、コンパクション先ブロック50Cに書き込むコンパクションライト処理を実行する(ブロック307)。
That is, the memory controller 5 reads the valid cluster from each compaction source block and stores it in the
一方、コンパクションコントローラ43は、有効クラスタ検索処理の検索処理量が上限値を超えている場合、当該検索処理を中止する(ブロックブロック601のYES、609)。ここで、コンパクションコントローラ43は、検索処理を中止すると、コンパクションライト処理を実行しない。この場合、SSDコントローラ10は、ホスト書き込み処理を先行して実行する。これにより、SSD1のデータ書き込み性能を保証することが可能である。コンパクションコントローラ43は、コンパクション処理対象の論理ページ数分の処理が完了するまで、一連の処理を繰り返す(ブロック610)。
On the other hand, the
この場合、コンパクションリード処理により、CB領域32には読み出された有効クラスタが蓄積される(ブロック606)。コンパクションコントローラ43は、CB領域32に論理ページに含まれる全クラスタの有効クラスタが格納されると、コンパクションライト処理を要求するコンパクションコマンドを生成する(ブロック607のYES)。これにより、メモリコントローラ5は、データバッファ3のCB領域32から読み出した論理ページに含まれる全クラスタの有効クラスタを、コンパクション先ブロックに書き込むコンパクションライト処理を実行する。従って、検索処理を中止した場合に、コンパクションリード処理により有効クラスタが論理ページに含まれる全クラスタまでCB領域32に格納されるまで待機することにより、コンパクション先ブロックに書き直すコンパクション処理を確実に完了することができる。
In this case, the read effective cluster is accumulated in the
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 Although several embodiments of the present invention have been described, these embodiments are presented by way of example and are not intended to limit the scope of the invention. These novel embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made without departing from the scope of the invention. These embodiments and modifications thereof are included in the scope and gist of the invention, and are included in the invention described in the claims and the equivalents thereof.
1…SSD(solid state drive)、2…ホストインターフェース部
3…データバッファ、4…メイン制御部、5…メモリコントローラ
6…NAND型フラッシュメモリ(フラッシュメモリ)
31…書き込みバッファ領域(WB領域)
32…コンパクションバッファ領域(CB領域)
41…書き込み/読み出しコントローラ
42…ブロック管理部、43…コンパクションコントローラ
DESCRIPTION OF
31: Write buffer area (WB area)
32 ... Compaction buffer area (CB area)
41 ... Write /
Claims (13)
前記フラッシュメモリに対するコンパクション処理を制御するコンパクションコントローラとを具備し、
前記コンパクションコントローラは、
コンパクション処理対象であるコンパクション元ブロックから有効データを検索する検索部と、
前記検索部による検索処理量が上限値を超える場合に、前記検索部の検索処理を中止する検索中止判断部と、
前記リード・ライトコントローラを介して、前記検索部により検索された前記有効データを前記コンパクション元ブロックから読み出すコンパクションリード処理部と、
前記コンパクションリード処理部により読み出された有効データを所定のデータ量単位でコンパクション先ブロックに書き込むコンパクションライト処理部と
を有するメモリ制御装置。 A read / write controller that controls the reading and writing of data to the flash memory;
A compaction controller for controlling compaction processing for the flash memory,
The compaction controller is
A search unit for searching valid data from a compaction source block to be compacted,
A search cancellation determination unit for canceling the search process of the search unit when a search processing amount by the search unit exceeds an upper limit;
A compaction read processing unit that reads the valid data retrieved by the retrieval unit from the compaction source block via the read / write controller;
A memory control device comprising: a compaction write processing unit that writes valid data read by the compaction read processing unit to a compaction destination block in a predetermined data amount unit.
前記検索中止判断部により前記検索処理が中止されて、前記コンパクション先ブロックに書き込む有効データが前記データ量単位を満たさない場合に、前記データ量単位を満たすようにデータ制御処理を実行するデータ制御処理部を含む請求項1に記載のメモリ制御装置。 The compaction controller is
Data control processing for executing data control processing so as to satisfy the data amount unit when the search processing is canceled by the search stop determination unit and valid data to be written to the compaction destination block does not satisfy the data amount unit The memory control device according to claim 1, further comprising a unit.
前記コンパクション元ブロックから読み出された有効データと共に前記データ量単位を満たすだけのダミーデータを追加する請求項2に記載のメモリ制御装置。 The data control processing unit
The memory control device according to claim 2, wherein dummy data sufficient to satisfy the data amount unit is added together with valid data read from the compaction source block.
前記検索中止判断部により前記検索処理が中止されたときに、前記コンパクション先ブロックに書き込むコンパクションライト処理を中断し、
前記コンパクション元ブロックから読み出される有効データが前記データ量単位を満たすまで有効データをバッファメモリに蓄積する請求項2に記載のメモリ制御装置。 The data control processing unit
When the search processing is stopped by the search stop determination unit, the compaction write processing to be written to the compaction destination block is interrupted,
The memory control device according to claim 2, wherein valid data is stored in a buffer memory until valid data read from the compaction source block satisfies the data amount unit.
前記フラッシュメモリに対してホストからの書き込み要求に応じてデータ書き込むホスト書き込み処理と前記コンパクションライト処理とをペアとする処理の進行比率に基づいて前記コンパクション処理を実行する請求項1から5のいずれか1項に記載のメモリ制御装置。 The compaction controller is
6. The compaction process according to claim 1, wherein the compaction process is executed based on a progress ratio of a process of pairing the host write process for writing data to the flash memory in response to a write request from a host and the compaction write process. 2. The memory control device according to item 1.
前記進行比率に基づいたホストからの書き込み要求に対する応答上限時間に基づいて設定される値である請求項6に記載のメモリ制御装置。 The upper limit is
The memory control device according to claim 6, wherein the memory control device is a value set based on a response upper limit time for a write request from a host based on the progress ratio.
前記データ量単位は論理ページ単位である請求項1から4のいずれか1項に記載のメモリ制御装置。 The valid data is a valid cluster unit,
5. The memory control device according to claim 1, wherein the data amount unit is a logical page unit.
前記フラッシュメモリに対するデータの読み出し、書き込みを実行するリード・ライトコントローラと、
前記フラッシュメモリに対するコンパクション処理を制御するコンパクションコントローラとを具備し、
前記コンパクションコントローラは、
コンパクション処理対象であるコンパクション元ブロックから有効データを検索する検索部と、
前記検索部による検索処理量が上限値を超える場合に、前記検索部の検索処理を中止する検索中止判断部と、
前記リード・ライトコントローラを介して、前記検索部により検索された前記有効データを前記コンパクション元ブロックから読み出すコンパクションリード処理部と、
前記コンパクションリード処理部により読み出された有効データを所定のデータ量単位でコンパクション先ブロックに書き込むコンパクションライト処理部と
を有するデータ記憶装置。 Flash memory with blocks as erase units,
A read / write controller for reading and writing data to the flash memory;
A compaction controller for controlling compaction processing for the flash memory,
The compaction controller is
A search unit for searching valid data from a compaction source block to be compacted,
A search cancellation determination unit for canceling the search process of the search unit when a search processing amount by the search unit exceeds an upper limit;
A compaction read processing unit that reads the valid data retrieved by the retrieval unit from the compaction source block via the read / write controller;
A data storage device comprising: a compaction write processing unit that writes valid data read by the compaction read processing unit to a compaction destination block in a predetermined data amount unit.
前記検索中止判断部により前記検索処理が中止されて、前記コンパクション先ブロックに書き込む有効データが前記データ量単位を満たさない場合に、前記データ量単位を満たすようにデータ制御処理を実行するデータ制御処理部を含む請求項9に記載のデータ記憶装置。 The compaction controller is
Data control processing for executing data control processing so as to satisfy the data amount unit when the search processing is canceled by the search stop determination unit and valid data to be written to the compaction destination block does not satisfy the data amount unit The data storage device according to claim 9, further comprising a section.
前記コンパクション元ブロックから読み出された有効データと共に前記データ量単位を満たすだけのダミーデータを追加する請求項10に記載のデータ記憶装置。 The data control processing unit
The data storage device according to claim 10, wherein dummy data sufficient to satisfy the data amount unit is added together with valid data read from the compaction source block.
前記検索中止判断部により前記検索処理が中止されたときに、前記コンパクション先ブロックに書き込むコンパクションライト処理を中断し、
前記コンパクション元ブロックから読み出される有効データが前記データ量単位を満たすまで有効データをバッファメモリに蓄積する請求項10に記載のデータ記憶装置。 The data control processing unit
When the search processing is stopped by the search stop determination unit, the compaction write processing to be written to the compaction destination block is interrupted,
The data storage device according to claim 10, wherein valid data is accumulated in a buffer memory until valid data read from the compaction source block satisfies the data amount unit.
前記フラッシュメモリに対するコンパクション処理を制御する場合に、コンパクション処理対象であるコンパクション元ブロックから有効データを検索する処理と、
前記検索処理の検索処理量が上限値を超える場合に、前記検索処理を中止する処理と、
前記検索処理により検索された前記有効データを前記コンパクション元ブロックから読み出すコンパクションリード処理と、
前記コンパクションリード処理により読み出された有効データを所定のデータ量単位でコンパクション先ブロックに書き込むコンパクションライト処理と
を実行するメモリ制御方法。 A memory control method applied to a data storage device having a flash memory with a block as an erasing unit,
When controlling compaction processing for the flash memory, processing for retrieving valid data from a compaction source block that is a compaction processing target;
When the search processing amount of the search process exceeds an upper limit value, a process of stopping the search process;
A compaction read process for reading out the valid data retrieved by the retrieval process from the compaction source block;
A memory control method for executing a compaction write process in which valid data read by the compaction read process is written in a compaction destination block in a predetermined data amount unit.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012066239A JP2013196646A (en) | 2012-03-22 | 2012-03-22 | Memory control device, data storage device, and memory control method |
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 |
---|---|---|---|
JP2012066239A JP2013196646A (en) | 2012-03-22 | 2012-03-22 | Memory control device, data storage device, and memory control method |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2013196646A true JP2013196646A (en) | 2013-09-30 |
Family
ID=49395442
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012066239A Pending JP2013196646A (en) | 2011-07-29 | 2012-03-22 | Memory control device, data storage device, and memory control method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2013196646A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017502376A (en) * | 2013-12-26 | 2017-01-19 | インテル・コーポレーション | Management of transfer buffer for non-volatile memory |
CN109697170A (en) * | 2017-10-20 | 2019-04-30 | 慧荣科技股份有限公司 | The method of access flash memory module and relevant flash controller and electronic device |
KR20220162963A (en) * | 2021-06-02 | 2022-12-09 | 네이버 주식회사 | Method, computer device, and computer program to provide individual data retrieval service |
-
2012
- 2012-03-22 JP JP2012066239A patent/JP2013196646A/en active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017502376A (en) * | 2013-12-26 | 2017-01-19 | インテル・コーポレーション | Management of transfer buffer for non-volatile memory |
CN109697170A (en) * | 2017-10-20 | 2019-04-30 | 慧荣科技股份有限公司 | The method of access flash memory module and relevant flash controller and electronic device |
CN109697170B (en) * | 2017-10-20 | 2022-09-20 | 慧荣科技股份有限公司 | Method for accessing flash memory module, related flash memory controller and electronic device |
KR20220162963A (en) * | 2021-06-02 | 2022-12-09 | 네이버 주식회사 | Method, computer device, and computer program to provide individual data retrieval service |
KR102592785B1 (en) | 2021-06-02 | 2023-10-23 | 네이버 주식회사 | Method, computer device, and computer program to provide individual data retrieval service |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10761780B2 (en) | Memory system | |
US8930614B2 (en) | Data storage apparatus and method for compaction processing | |
US20140032820A1 (en) | Data storage apparatus, memory control method and electronic device with data storage apparatus | |
JP4829365B1 (en) | Data storage device and data writing method | |
US9507719B2 (en) | Garbage collection in hybrid memory system | |
US8850105B2 (en) | Method for controlling memory system, information processing apparatus, and storage medium | |
TWI744677B (en) | Memory system | |
US10599345B2 (en) | Memory device that writes data into a block based on time passage since erasure of data from the block | |
US20180275921A1 (en) | Storage device | |
US20100030948A1 (en) | Solid state storage system with data attribute wear leveling and method of controlling the solid state storage system | |
US10324833B2 (en) | Memory controller, data storage device, and memory control method | |
CN104461397A (en) | Solid-state drive and read-write method thereof | |
JP2013222435A (en) | Semiconductor storage device and method of controlling the same | |
SG193114A1 (en) | Data storage device and method of managing a cache in a data storage device | |
CN109388333A (en) | Reduce the method and apparatus of read command processing delay | |
JP2015135603A (en) | Storage device and method of selecting storage area to which data is written | |
US20150339069A1 (en) | Memory system and method | |
JP2019160364A (en) | Memory system and memory control method | |
JP5579135B2 (en) | Data storage device, memory control device, and memory control method | |
JP2012248109A (en) | Memory unit having multiple channels and read command group generating method for compaction in the memory unit | |
JP2013196646A (en) | Memory control device, data storage device, and memory control method | |
CN107203341A (en) | Date storage method, device and flash chip based on flash memory | |
US9384124B2 (en) | Data storage device, memory control method, and electronic device with data storage device | |
US9304906B2 (en) | Memory system, controller and control method of memory | |
US9047959B1 (en) | Data storage device, memory control method, and electronic device with data storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 |