[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2013196646A - Memory control device, data storage device, and memory control method - Google Patents

Memory control device, data storage device, and memory control method Download PDF

Info

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
Application number
JP2012066239A
Other languages
Japanese (ja)
Inventor
Yoko Masuo
容子 増尾
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 JP2012066239A priority Critical patent/JP2013196646A/en
Priority to US13/560,486 priority patent/US8930614B2/en
Publication of JP2013196646A publication Critical patent/JP2013196646A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a memory control device capable of shortening time until completion of compaction processing so as to assure a write latency to a host.SOLUTION: A compaction controller 43 controls compaction processing to a flash memory, and includes a retrieval part, a retrieval suspension determination part, a compaction read processing part, and a compaction write processing part. The retrieval part retrieves effective data from a compaction origin block, which is an object from which effective data is read out by means of a read/write controller. The retrieval suspension determination part suspends retrieval processing by the retrieval part when a retrieval processing amount by the retrieval part exceeds an upper limit. The compaction read processing part reads the effective data retrieved by the retrieval part by means of the read/write controller out of the compaction origin block. The compaction write processing part writes effective data read out by the compaction read processing part in a compaction destination block by a unit of predetermined data amount.

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.

特開2009−211219号公報JP 2009-211119 A

コンパクション処理においては、コンパクション元ブロックおよびその有効データ(例えばクラスタ単位)を検索する検索処理時間が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.

実施形態に関するSSDの構成を説明するためのブロック図。The block diagram for demonstrating the structure of SSD regarding embodiment. 実施形態に関するコンパクション処理の概要を説明するための図。The figure for demonstrating the outline | summary of the compaction process regarding embodiment. 実施形態に関するコンパクション処理を説明するためのフローチャート。The flowchart for demonstrating the compaction process regarding embodiment. 実施形態に関するコンパクション処理の進行比率を説明するための図。The figure for demonstrating the progress ratio of the compaction process regarding embodiment. 実施形態に関するコンパクション処理を説明するためのフローチャート。The flowchart for demonstrating the compaction process regarding embodiment. 実施形態の変形例に関するコンパクション処理を説明するためのフローチャート。The flowchart for demonstrating the compaction process regarding the modification of embodiment.

以下図面を参照して、実施形態を説明する。   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 memory chips 100 to 131 are grouped in a matrix configuration called channels ch0 to ch7 and banks 0 to 3. Further, each of the memory chips 100 to 131 is composed of a plurality of physical blocks. The physical block is the smallest physical storage area unit that can be independently erased in the flash memory 6. The SSD 1 manages a plurality of physical blocks as logical blocks within the SSD 1. A logical block is a data erase unit of SSD1. In the present embodiment, the logical block is simply referred to as “block”.

SSD1は、フラッシュメモリ6を制御するSSDコントローラ10を含む。SSDコントローラ10は、ホストインターフェース部2と、データバッファ3と、メイン制御部4と、メモリコントローラ5とを有する。   The SSD 1 includes an SSD controller 10 that controls the flash memory 6. The SSD controller 10 includes a host interface unit 2, a data buffer 3, a main control unit 4, and a memory controller 5.

ホストインターフェース部2は、ホストとSSD1との間で、データ、コマンド、アドレスの転送を制御する。ここで、ホストは、例えばSATA(Serial ATA)規格のインターフェースを含むコンピュータなどである。データバッファ3は、例えばDRAM(Dynamic Random Access Memory)、又はSRAM(Static Random Access Memory)からなるバッファメモリである。ホストインターフェース部2は、ホストから転送されるデータをデータバッファ3に格納する。また、ホストインターフェース部2は、ホストから転送されるコマンドやアドレスをメイン制御部4に転送する。   The host interface unit 2 controls transfer of data, commands, and addresses between the host and the SSD 1. Here, the host is, for example, a computer including an interface of SATA (Serial ATA) standard. The data buffer 3 is a buffer memory made of, for example, a DRAM (Dynamic Random Access Memory) or an SRAM (Static Random Access Memory). The host interface unit 2 stores data transferred from the host in the data buffer 3. The host interface unit 2 transfers commands and addresses transferred from the host to the main control unit 4.

データバッファ3は、書き込みバッファ領域(WB領域)31とコンパクションバッファ領域(CB領域)32とを有する。WB領域31は、ホストから転送される書き込みデータ(ユーザデータ)を格納する。CB領域32は、後述するコンパクション処理時の書き込みデータ(有効データ)を格納する。なお、データバッファ3は、論理/物理アドレスの変換テーブルを格納する領域を含む場合もある。   The data buffer 3 has a write buffer area (WB area) 31 and a compaction buffer area (CB area) 32. The WB area 31 stores write data (user data) transferred from the host. The CB area 32 stores write data (valid data) at the time of compaction processing described later. The data buffer 3 may include an area for storing a logical / physical address conversion table.

メイン制御部4は、例えばマイクロプロセッサ(MPU)からなり、SSDコントローラ10の全体的制御を実行する。メイン制御部4は、書き込み/読み出しコントローラ41と、ブロック管理部42と、コンパクションコントローラ43とを含む。   The main control unit 4 is composed of, for example, a microprocessor (MPU) and executes overall control of the SSD controller 10. The main control unit 4 includes a write / read controller 41, a block management unit 42, and a compaction controller 43.

書き込み/読み出しコントローラ41は、ホストインターフェース部2からホストからのリード・ライトコマンドに応じて、読み出し処理と書き込み処理の制御を実行する。また、書き込み/読み出しコントローラ41は、コンパクションコントローラ43からのコンパクション処理用のライトコマンドに応じて、フラッシュメモリ6に対して書き込み順序などの書き込み処理の制御を実行する。ブロック管理部42は、フラッシュメモリ6の各ブロック(ここでは論理ブロック)の有効クラスタを管理するテーブルやフリーブロック(未使用の待機状態ブロック)を管理する管理情報などを有する。   The write / read controller 41 controls the read process and the write process in response to a read / write command from the host interface unit 2 from the host. Further, the write / read controller 41 controls the write processing such as the write order for the flash memory 6 in accordance with the write command for compaction processing from the compaction controller 43. The block management unit 42 includes a table for managing the effective cluster of each block (here, a logical block) of the flash memory 6 and management information for managing a free block (an unused standby state block).

コンパクションコントローラ43は、後述するコンパクション処理を制御する制御部であり、コンパクション元ブロックの検索処理、ブロック内の有効クラスタの検索処理、有効クラスタ検索カウント処理、有効クラスタ検索処理の中止判定処理及びコンパクションコマンドのリストを生成するなどの処理を実行する。コンパクションコントローラ43は、有効クラスタ検索処理カウンタ431と有効クラスタ打ち切り判定部432を備える。コンパクションコマンドは、後述するように、コンパクションリード処理を実行するためのリードコマンド及びコンパクションライト処理をするためのライトコマンドである。   The compaction controller 43 is a control unit that controls compaction processing, which will be described later. The compaction source block search processing, the valid cluster search processing in the block, the valid cluster search count processing, the valid cluster search processing stop determination processing, and the compaction command Processing such as generating a list of. The compaction controller 43 includes a valid cluster search processing counter 431 and a valid cluster abort determination unit 432. The compaction command is a read command for executing a compaction read process and a write command for performing a compaction write process, as will be described later.

メモリコントローラ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 NAND controllers 50 to 57 for each of the channels ch0 to ch7, and executes a read process or a write process on the flash memory 6 in accordance with a command from the write / read controller 41. Each of the NAND controllers 50 to 57 executes a read process or a write process in parallel on the memory chips 100 to 131 for each of the channels ch0 to ch7. In the present embodiment, the memory controller 5 performs a read process (compact read process) or a write process (compact write process) during the compaction process for the flash memory 6 according to a command from the write / read controller 41 that cooperates with the compaction controller 43. ).

[コンパクション処理]
先ず、図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 compaction controller 43 performs a compaction source block search process for searching the compaction source blocks 20A and 20B (for convenience, two logical blocks) from the flash memory 6. The compaction source block is a compaction processing target block in which the storage area of valid data (latest data) is reduced in density among the active blocks in which valid data is recorded.

コンパクションコントローラ43は、ブロック管理部42からアクティブブロックのリスト情報および各ブロックの有効クラスタを管理するテーブルから、コンパクション元ブロックの候補を設定するための情報を取得する。この場合、コンパクション処理を効果的に行うためには、できるだけ有効クラスタ数の少ない低密度のブロックをコンパクション元ブロックとして検索することが望ましい。   The compaction controller 43 acquires information for setting candidates for the compaction source block from the block management unit 42 from the list information of the active blocks and the table for managing the effective cluster of each block. In this case, in order to effectively perform the compaction process, it is desirable to search a low-density block with as few effective clusters as possible as a compaction source block.

ここで、クラスタ(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 block 20A, 20B consists of a plurality of logical pages (P0 to P2). Each logical page is composed of a plurality of clusters. A valid cluster is valid data in units of clusters. The effective cluster number (CN) is the effective data amount in one block.

図2に示すように、コンパクションコントローラ43は有効クラスタを管理するテーブルを参照して、検索されたコンパクション元ブロック20A、20Bから有効クラスタ21A,21Bを検索する検索処理を実行する。当該テーブルには、有効クラスタと無効データからなる無効クラスタとを識別するためのログ情報が設定されている。   As shown in FIG. 2, the compaction controller 43 refers to a table for managing effective clusters, and executes search processing for searching for effective clusters 21A and 21B from the searched compaction source blocks 20A and 20B. In this table, log information for identifying valid clusters and invalid clusters composed of invalid data is set.

メモリコントローラ5は、コンパクションコントローラ43と連携する書き込み/読み出しコントローラ41からのコマンドに応じて、各コンパクション元ブロック20A、20Bから有効クラスタ21A,21Bを読み出すコンパクションリード処理を実行する。さらに、メモリコントローラ5は、各コンパクション元ブロック20A、20Bから読み出した有効クラスタ21A,21Bを、コンパクション先ブロック20Cに書き込むコンパクションライト処理を実行する。   In response to a command from the write / read controller 41 that cooperates with the compaction controller 43, the memory controller 5 executes a compaction read process for reading the valid clusters 21A and 21B from the compaction source blocks 20A and 20B. Further, the memory controller 5 executes a compaction write process for writing the effective clusters 21A and 21B read from the compaction source blocks 20A and 20B to the compaction destination block 20C.

コンパクション先ブロック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 block management unit 42. Through the compaction process as described above, valid clusters (valid data for each cluster) 21A and 21B are collected from the compaction source blocks 20A and 20B, and rewritten in the compaction destination block 20C. After the rewriting process, the compaction source blocks 20A and 20B can be reused as free blocks by executing an erasing process on the compaction source blocks 20A and 20B.

次に、図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 SSD 1 secures a free block when a sparse block whose effective data storage area becomes low density increases as user data is written to the flash memory 6. Perform compaction processing.

この場合、コンパクションコントローラ43は、適切なタイミングでコンパクション処理を開始し、コンパクションライト処理を完了する必要がある。書き込み/読み出しコントローラ41はコンパクションコントローラ43と連携し、ホストからのライトコマンドによるユーザデータの書き込み処理(以下、ホスト書き込み処理と称す)の合間にコンパクションライト処理を実行する。   In this case, the compaction controller 43 needs to start the compaction process at an appropriate timing and complete the compaction light process. The write / read controller 41 cooperates with the compaction controller 43 to execute compaction write processing between user data write processing (hereinafter referred to as host write processing) by a write command from the host.

この場合、コンパクションコントローラ43は書き込み/読み出しコントローラ41に対して、コンパクション処理の進行比率に基づいてコンパクションコマンドを発行する。書き込み/読み出しコントローラ41は、コンパクションコントローラ43からのコンパクションコマンドに応じて、ホストからのライトコマンドとスケジューリングした上でコンパクションライト処理を実行するためのライトコマンドを発行し、メモリコントローラ5に出力する。コンパクション処理の進行比率は、ホスト書き込み処理とコンパクションライト処理をペアとした場合に、それらの処理対象の論理ページ数の比率(ギア比:gear rate)である。   In this case, the compaction controller 43 issues a compaction command to the write / read controller 41 based on the progress rate of compaction processing. The write / read controller 41 issues a write command for executing the compaction write process after scheduling with the write command from the host in accordance with the compaction command from the compaction controller 43, and outputs it to the memory controller 5. The progress rate of the compaction process is the ratio (gear ratio) of the number of logical pages to be processed when the host write process and the compaction write process are paired.

具体的には、論理ページ数(論理ページアドレス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 free block 40A shown in FIG. 4 (A) and FIG. 4 (B). The ratio is the number of logical pages (N pages, here N = 2) in the compaction write process for the free block 40B shown in FIG. In accordance with the compaction command, the write / read controller 41 controls the write order of both the flash memory 6 so that the ratio of the number of logical pages of the host write process and the compaction write process is, for example, 1: 2.

図5に示すように、コンパクションコントローラ43は、コンパクション元ブロック50A、50B(便宜的に2個の論理ブロックとする)を検索するコンパクション元ブロックの検索処理を実行する。この場合、前述したように、コンパクションコントローラ43は、ブロック管理部42からアクティブブロックのリスト情報および各ブロックの有効クラスタを管理するテーブルから、コンパクション元ブロックの候補を設定するための情報を取得する。   As shown in FIG. 5, the compaction controller 43 executes a compaction source block search process for searching the compaction source blocks 50A and 50B (for convenience, two logical blocks). In this case, as described above, the compaction controller 43 acquires information for setting candidates for the compaction source block from the block management unit 42 from the list information of the active blocks and the table for managing the effective cluster of each block.

次に、図3に示すように、コンパクションコントローラ43は有効クラスタを管理するテーブルを参照して、検索されたコンパクション元ブロック50A、50Bから有効クラスタ51A,51Bを検索する検索処理を開始する(ブロック300)。   Next, as shown in FIG. 3, the compaction controller 43 refers to a table for managing effective clusters, and starts a search process for searching for effective clusters 51A and 51B from the searched compaction source blocks 50A and 50B (block). 300).

検索処理の開始時に、コンパクションコントローラ43は、有効クラスタの検索処理用カウンタである有効クラスタ検索処理カウンタ431を初期化する。この有効クラスタ検索処理カウンタ431は、コンパクションコマンドの発行単位で、有効クラスタ検索処理の検索処理量を測定する。具体的には、検索処理量は、コンパクション元ブロック数、論理ページ数または検索処理時間のいずれかである。この場合、論理ページ数の検索処理量とは、有効クラスタを検索する際の有効クラスタ数を論理ページ数に換算した量である。1論理ページは、例えば2クラスタ分に相当する。ここで、前述したように、コンパクションコマンドの発行は、コンパクション処理の進行比率に基づいて行なわれる。   At the start of search processing, the compaction controller 43 initializes a valid cluster search processing counter 431 that is a valid cluster search processing counter. The valid cluster search processing counter 431 measures the search processing amount of the valid cluster search process in units of issuing compaction commands. Specifically, the search processing amount is one of the number of compaction source blocks, the number of logical pages, or the search processing time. In this case, the search processing amount for the number of logical pages is an amount obtained by converting the number of valid clusters when searching for valid clusters into the number of logical pages. One logical page corresponds to, for example, two clusters. Here, as described above, the compaction command is issued based on the progress rate of the compaction process.

コンパクションコントローラ43の有効クラスタ打ち切り判定部432は、測定された検索処理量(カウンタ値)と予め設定された上限値とを比較して、検索処理量が上限値を超えているか否かを判定する(ブロック301)。ここで、上限値は、例えばホストに対するコマンド応答の上限時間要求(ライトレイテンシ)に基づいて設定される値である。このコマンド応答の上限時間は、前述したようなコンパクション処理の進行比率を前提として設定されている。コンパクションコントローラ43は、有効クラスタ打ち切り判定部432の判定結果が上限値を超えていない場合には、通常のコンパクション処理に移行する(ブロック301のNO)。   The effective cluster abort determination unit 432 of the compaction controller 43 compares the measured search processing amount (counter value) with a preset upper limit value, and determines whether the search processing amount exceeds the upper limit value. (Block 301). Here, the upper limit value is a value set based on, for example, an upper limit time request (write latency) of a command response to the host. The upper limit time for this command response is set on the assumption of the progress rate of the compaction process as described above. When the determination result of the valid cluster abort determination unit 432 does not exceed the upper limit value, the compaction controller 43 proceeds to normal compaction processing (NO in block 301).

図5に示すように、コンパクションコントローラ43は、有効クラスタを管理するテーブルを参照して、検索されたコンパクション元ブロック50A、50Bから有効クラスタ51A,51Bを検索する(ブロック302)。前述したように、当該テーブルには、有効クラスタと無効データからなる無効クラスタとを識別するためのログ情報が設定されている。コンパクションコントローラ43の有効クラスタ検索処理カウンタ431は、検索した有効クラスタ数(CN)をカウントし、カウント値(CN)を例えば内部レジスタに保持する(ブロック303のYES、304)。   As shown in FIG. 5, the compaction controller 43 refers to a table for managing valid clusters, and retrieves valid clusters 51A and 51B from the retrieved compaction source blocks 50A and 50B (block 302). As described above, log information for identifying valid clusters and invalid clusters composed of invalid data is set in the table. The valid cluster search processing counter 431 of the compaction controller 43 counts the number of searched valid clusters (CN) and holds the count value (CN) in, for example, an internal register (YES in block 303, 304).

次に、コンパクションコントローラ43は、検出された有効クラスタ51A,51Bをコンパクション元ブロック50A、50Bから読み出すコンパクションリード処理を実行する(ブロック305)。具体的には、コンパクションコントローラ43は、検出された有効クラスタ51A,51Bについて、コンパクションリード処理を要求するコンパクションコマンドを生成する。書き込み/読み出しコントローラ41は、当該コンパクションコマンドからリードコマンドを発行し、メモリコントローラ5に出力する。これにより、メモリコントローラ5は、各コンパクション元ブロック50A、50Bから有効クラスタ51A,51Bを読み出して、データバッファ3のCB領域32に格納する。   Next, the compaction controller 43 performs a compaction read process for reading the detected valid clusters 51A and 51B from the compaction source blocks 50A and 50B (block 305). Specifically, the compaction controller 43 generates a compaction command for requesting compaction read processing for the detected valid clusters 51A and 51B. The write / read controller 41 issues a read command from the compaction command and outputs it to the memory controller 5. As a result, the memory controller 5 reads the valid clusters 51A and 51B from the compaction source blocks 50A and 50B and stores them in the CB area 32 of the data buffer 3.

コンパクションコントローラ43は、コンパクションリード処理により読み出される有効クラスタの有効クラスタ数(CN)がコンパクション処理の論理ページ単位(PN)分になるまで(CN=PN)、コンパクションリード処理までの処理を繰り返す(ブロック306のNO)。コンパクションコントローラ43は、CB領域32に論理ページに含まれる全クラスタの有効クラスタが格納されると、コンパクションライト処理を要求するコンパクションコマンドを生成する(ブロック306のYES)。   The compaction controller 43 repeats the process up to the compaction read process until the number of valid clusters (CN) of the valid cluster read by the compaction read process is equal to the logical page unit (PN) of the compaction process (CN = PN) (block) 306 NO). When the valid clusters of all the clusters included in the logical page are stored in the CB area 32, the compaction controller 43 generates a compaction command for requesting compaction write processing (YES in block 306).

書き込み/読み出しコントローラ41は、当該コンパクションコマンドから論理ページ単位でライトコマンドを発行し、メモリコントローラ5に出力する。これにより、メモリコントローラ5は、データバッファ3のCB領域32から読み出した論理ページに含まれる全クラスタの有効クラスタを、コンパクション先ブロック50Cに書き込むコンパクションライト処理を実行する(ブロック307)。具体的には、図5に示すように、例えばCB領域32内から論理ページに含まれる全クラスタ(論理ページアドレスP1)の有効クラスタをコンパクション先ブロック50Cに書き込む。   The write / read controller 41 issues a write command for each logical page from the compaction command and outputs it to the memory controller 5. As a result, the memory controller 5 executes a compaction write process in which valid clusters of all the clusters included in the logical page read from the CB area 32 of the data buffer 3 are written in the compaction destination block 50C (block 307). Specifically, as shown in FIG. 5, for example, valid clusters of all clusters (logical page address P1) included in the logical page are written in the compaction destination block 50C from within the CB area 32.

一方、コンパクションコントローラ43は、有効クラスタ打ち切り判定部432の判定結果によりコンパクションリード処理を含む一連の有効クラスタ検索処理の検索処理量が上限値を超えている場合、当該検索処理を中止する(ブロックブロック301のYES、308)。ここで、前述したように、検索処理量は、例えばコンパクション元ブロック数、論理ページ数または検索処理時間である。   On the other hand, the compaction controller 43 stops the search process when the search processing amount of a series of valid cluster search processes including the compaction read process exceeds the upper limit according to the determination result of the valid cluster abort determination unit 432 (block block) 301 YES, 308). Here, as described above, the search processing amount is, for example, the number of compaction source blocks, the number of logical pages, or the search processing time.

コンパクションコントローラ43は、検索処理を中止すると、検出された有効クラスタ数が論理ページに含まれる全クラスタに満たない場合は、ダミーデータ(例えばオール0)DDを書き込む(NULL Padding)ためのコンパクションコマンドを生成する(ブロック310)。書き込み/読み出しコントローラ41は、当該コンパクションコマンドに応じて、図5に示すように、論理ページに含まれる全クラスタに満たないCB領域32の領域53(論理ページアドレスP0)にダミーデータDDを書き込む。この後、書き込み/読み出しコントローラ41は、論理ページ単位でライトコマンドを発行し、メモリコントローラ5に出力する。   When the compaction controller 43 stops the search process, if the number of detected effective clusters is less than all the clusters included in the logical page, a compaction command for writing dummy data (for example, all 0) DD (NULL Padding) is issued. Generate (block 310). In response to the compaction command, the write / read controller 41 writes the dummy data DD in the area 53 (logical page address P0) of the CB area 32 that is less than all the clusters included in the logical page, as shown in FIG. Thereafter, the write / read controller 41 issues a write command in units of logical pages and outputs it to the memory controller 5.

メモリコントローラ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 CB area 32 of the data buffer 3 are written in the compaction destination block 50C (block 307). Specifically, as shown in FIG. 5, for example, valid clusters and dummy data DD of all clusters (logical page address P0) included in the logical page are written from the CB area 32 to the compaction destination block 50C. The compaction controller 43 repeats a series of processing until processing for the number of logical pages to be compacted is completed (block 309).

以上のようにして本実施形態によれば、コンパクション元ブロックから有効クラスタを収集して、コンパクション先ブロックに書き直すコンパクション処理を実行することができる。このため、コンパクション元ブロックを消去することにより、書き込み可能なフリーブロックを増加することができる。   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 SSD 1 is the same as that shown in FIG.

本変形例は、検索処理を中止した場合に、ダミーデータ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 CB area 32 of the data buffer 3. Hereinafter, a specific description will be given with reference to the flowchart of FIG.

先ず、ブロック600〜605までの処理は、図3に示す300〜305までの処理と同様である。即ち、コンパクションコントローラ43は、検索されたコンパクション元ブロックから有効クラスタを検索する検索処理を開始する(ブロック600)。コンパクションコントローラ43は、測定された検索処理量(カウンタ値)と予め設定された上限値とを比較して、検索処理量が上限値を超えているか否かを判定する(ブロック601)。コンパクションコントローラ43は、判定結果が上限値を超えていない場合には、通常のコンパクション処理に移行する(ブロック601のNO)。   First, the processing from blocks 600 to 605 is the same as the processing from 300 to 305 shown in FIG. That is, the compaction controller 43 starts a search process for searching for a valid cluster from the searched compaction source block (block 600). The compaction controller 43 compares the measured search processing amount (counter value) with a preset upper limit value, and determines whether or not the search processing amount exceeds the upper limit value (block 601). If the determination result does not exceed the upper limit value, the compaction controller 43 proceeds to normal compaction processing (NO in block 601).

コンパクションコントローラ43は、検索されたコンパクション元ブロックから有効クラスタを検索する(ブロック602)。コンパクションコントローラ43は、検索した有効クラスタ数(CN)をカウントし、カウント値(CN)を例えば内部レジスタに保持する(ブロック603のYES、604)。次に、コンパクションコントローラ43は、検出された有効クラスタをコンパクション元ブロックから読み出すコンパクションリード処理を実行する(ブロック605)。   The compaction controller 43 retrieves a valid cluster from the retrieved compaction source block (block 602). The compaction controller 43 counts the number of retrieved effective clusters (CN) and holds the count value (CN) in, for example, an internal register (YES in block 603, 604). Next, the compaction controller 43 performs a compaction read process for reading the detected valid cluster from the compaction source block (block 605).

即ち、メモリコントローラ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 CB area 32 of the data buffer 3 (block 606). The compaction controller 43 repeats the process up to the compaction read process until the number of valid clusters (CN) of the valid cluster read by the compaction read process is equal to the logical page unit (PN) of the compaction process (CN = PN) (block) 607 NO). When the valid clusters of all the clusters included in the logical page are stored in the CB area 32, the compaction controller 43 generates a compaction command for requesting compaction write processing (YES in block 607). The memory controller 5 executes a compaction write process in which valid clusters of all clusters included in the logical page read from the CB area 32 of the data buffer 3 are written in the compaction destination block 50C (block 307).

一方、コンパクションコントローラ43は、有効クラスタ検索処理の検索処理量が上限値を超えている場合、当該検索処理を中止する(ブロックブロック601のYES、609)。ここで、コンパクションコントローラ43は、検索処理を中止すると、コンパクションライト処理を実行しない。この場合、SSDコントローラ10は、ホスト書き込み処理を先行して実行する。これにより、SSD1のデータ書き込み性能を保証することが可能である。コンパクションコントローラ43は、コンパクション処理対象の論理ページ数分の処理が完了するまで、一連の処理を繰り返す(ブロック610)。   On the other hand, the compaction controller 43 stops the search processing when the search processing amount of the valid cluster search processing exceeds the upper limit (YES in block block 601 609). Here, the compaction controller 43 does not execute the compaction write process when the search process is stopped. In this case, the SSD controller 10 executes the host write process in advance. Thereby, it is possible to guarantee the data writing performance of the SSD 1. The compaction controller 43 repeats a series of processing until the processing for the number of logical pages to be compacted is completed (block 610).

この場合、コンパクションリード処理により、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 CB area 32 by the compaction read process (block 606). When the valid clusters of all the clusters included in the logical page are stored in the CB area 32, the compaction controller 43 generates a compaction command for requesting compaction write processing (YES in block 607). As a result, the memory controller 5 executes a compaction write process in which valid clusters of all the clusters included in the logical page read from the CB area 32 of the data buffer 3 are written to the compaction destination block. Therefore, when the search process is canceled, the compaction process rewriting to the compaction destination block is surely completed by waiting until all the clusters included in the logical page are stored in the CB area 32 by the compaction read process. be able to.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   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 SYMBOLS 1 ... SSD (solid state drive), 2 ... Host interface part 3 ... Data buffer, 4 ... Main control part, 5 ... Memory controller 6 ... NAND type flash memory (flash memory)
31: Write buffer area (WB area)
32 ... Compaction buffer area (CB area)
41 ... Write / read controller 42 ... Block management unit, 43 ... Compaction controller

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から4のいずれか1項に記載のメモリ制御装置。   The search processing amount is any one of the number of compaction source blocks to be searched, the number of logical pages corresponding to the data amount unit of the effective data to be searched, or the search processing time. The memory control device according to the item. 前記コンパクションコントローラは、
前記フラッシュメモリに対してホストからの書き込み要求に応じてデータ書き込むホスト書き込み処理と前記コンパクションライト処理とをペアとする処理の進行比率に基づいて前記コンパクション処理を実行する請求項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.
JP2012066239A 2011-07-29 2012-03-22 Memory control device, data storage device, and memory control method Pending JP2013196646A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (5)

* Cited by examiner, † Cited by third party
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