JP2013061814A - Data storage, memory controller and method - Google Patents

Data storage, memory controller and method Download PDF

Info

Publication number
JP2013061814A
JP2013061814A JP2011200018A JP2011200018A JP2013061814A JP 2013061814 A JP2013061814 A JP 2013061814A JP 2011200018 A JP2011200018 A JP 2011200018A JP 2011200018 A JP2011200018 A JP 2011200018A JP 2013061814 A JP2013061814 A JP 2013061814A
Authority
JP
Japan
Prior art keywords
data
write data
buffer memory
hole filling
predetermined size
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.)
Withdrawn
Application number
JP2011200018A
Other languages
Japanese (ja)
Inventor
Takahiro Nango
隆裕 南郷
Ryo Yamashiro
遼 山城
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 JP2011200018A priority Critical patent/JP2013061814A/en
Publication of JP2013061814A publication Critical patent/JP2013061814A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a data storage capable of increasing the data writing efficiency on a flash memory.SOLUTION: When the size of a piece of write data from a host unit 23 is smaller than a predetermined size, a write data processing module 13 reads a piece of data of a predetermined size, which is managed under an address identical to that of the write data, from a flash memory 22 to perform merging processing for setting a piece of data of a predetermined size, which includes the write data, in a buffer memory. Further, when beginning or terminating the reading of the data from the flash memory 22, if a new piece of write data managed under an address identical to that of an old write data is found in the buffer memory, the write data processing module 13 performs the merging processing in the buffer memory using the new write data as a piece of merging target data.

Description

本発明の実施形態は、不揮発性メモリを使用するデータ記憶装置、メモリ制御装置及び方法に関する。   Embodiments described herein relate generally to a data storage device, a memory control device, and a method using a nonvolatile memory.

従来から、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を記憶媒体とするSSD(solid state drive)が開発されている。   2. Description of the Related Art Conventionally, an SSD (solid state drive) using a NAND-type flash memory (hereinafter sometimes simply referred to as a flash memory), which is a rewritable nonvolatile memory, as a storage medium has been developed as a data storage device.

SSDでは、フラッシュメモリに対して、クラスタ(cluster)と呼ぶ論理的なアクセス単位でデータの書き込み、読み出し動作が実行される。即ち、クラスタは、フラッシュメモリに一度にアクセスできるデータサイズの単位である。通常では、1クラスタは、物理的なアクセス単位であるセクタを複数セクタ分まとめたものであり、例えば8セクタ分から構成される。以下、クラスタ単位のデータをクラスタデータと呼び、セクタ単位のデータをセクタデータと呼ぶことがある。   In the SSD, data write and read operations are performed on a flash memory in a logical access unit called a cluster. That is, the cluster is a unit of data size that can access the flash memory at one time. Normally, one cluster is a collection of a plurality of sectors, which are physical access units, and is composed of, for example, eight sectors. Hereinafter, cluster unit data may be referred to as cluster data, and sector unit data may be referred to as sector data.

一方、ホストからは、クラスタ未満サイズのデータが書き込み要求として転送されることがある。なお、ホストからはセクタ単位のデータが転送されて、SSDのバッファメモリに格納される。SSDは、セクタデータをクラスタデータにまとめてフラッシュメモリに書き込む。   On the other hand, data smaller than the cluster size may be transferred as a write request from the host. Note that sector-by-sector data is transferred from the host and stored in the SSD buffer memory. The SSD collects sector data into cluster data and writes it to the flash memory.

特開2004−62328号公報JP 2004-62328 A

ホストからの書き込み要求としてクラスタ未満サイズのデータがある場合に、当該データの論理アドレスが既存の記録データ(フラッシュメモリに書き込まれたデータ)と重複するような場合がある(WAW:Write After Write)。即ち、フラッシュメモリに書き込まれたクラスタデータの一部を書き換える動作である。この場合、いわゆるRMW(read modify write)動作と呼ぶ処理が必要となる。このため、フラッシュメモリからデータを読み出す処理、クラスタデータにまとめる処理、及びフラッシュメモリに書き込む処理などの一連の処理プロセスが発生し、フラッシュメモリに書き込み要求のデータを書き込むための処理効率の向上が課題である。   When there is data of a size less than a cluster as a write request from the host, the logical address of the data may overlap with existing recording data (data written to the flash memory) (WAW: Write After Write) . That is, it is an operation of rewriting a part of the cluster data written in the flash memory. In this case, a so-called RMW (read modify write) operation is required. For this reason, a series of processing processes such as a process of reading data from the flash memory, a process of collecting the data into the cluster data, and a process of writing to the flash memory occur, and it is an issue to improve the processing efficiency for writing the write request data to the flash memory. It is.

本発明の目的は、フラッシュメモリに書き込み要求のデータを書き込むための処理効率を向上できるデータ記憶装置を提供することにある。   An object of the present invention is to provide a data storage device capable of improving the processing efficiency for writing write request data to a flash memory.

実施形態によれば、データ記憶装置は、所定サイズのデータを書き込み単位とするフラッシュメモリと、バッファメモリと、コントローラと、書き込みデータ処理手段とを具備する。バッファメモリは、ホスト装置からの書き込みデータを順次格納する。コントローラは、前記バッファメモリに格納された前記所定サイズのデータを前記フラッシュメモリに書き込む。書き込みデータ処理手段は、ホスト装置からの書き込みデータが前記所定サイズ未満の場合に、前記フラッシュメモリから前記書き込みデータと同一のアドレスで管理されている前記所定サイズのデータを読み出し、前記バッファメモリ内で前記書き込みデータを含む前記所定サイズのデータをセットするためのマージ処理を実行する。さらに、書き込みデータ処理手段は、前記フラッシュメモリからのデータの読み出し時または読み出し完了時に、前記バッファメモリ内での旧書き込みデータと同一のアドレスで管理される新書き込みデータが存在した場合に、前記新書き込みデータをマージ対象データとして前記バッファメモリ内でのマージ処理を実行する。   According to the embodiment, the data storage device includes a flash memory that uses data of a predetermined size as a write unit, a buffer memory, a controller, and write data processing means. The buffer memory sequentially stores write data from the host device. The controller writes the predetermined size data stored in the buffer memory to the flash memory. The write data processing means reads the data of the predetermined size managed at the same address as the write data from the flash memory when the write data from the host device is less than the predetermined size, and stores the data in the buffer memory A merge process for setting the predetermined size data including the write data is executed. Further, the write data processing means may read the new data when there is new write data managed at the same address as the old write data in the buffer memory at the time of reading or completing the data from the flash memory. Merge processing in the buffer memory is executed with write data as data to be merged.

実施形態に関するデータ記憶装置の構成を説明するためのブロック図。The block diagram for demonstrating the structure of the data storage apparatus regarding embodiment. 実施形態に関するライトデータ処理モジュールの構成を説明するためのブロック図。The block diagram for demonstrating the structure of the write data processing module regarding embodiment. 実施形態に関するWBEバッファの格納情報を示す図。The figure which shows the storage information of the WBE buffer regarding embodiment. 実施形態に関するWBEコントローラによるプロセスを説明するための図。The figure for demonstrating the process by the WBE controller regarding embodiment. 実施形態に関する穴埋めリード用バッファにクラスタデータ転送中のマージ処理を説明するための図。The figure for demonstrating the merge process during cluster data transfer to the hole-filling read buffer regarding embodiment. 実施形態に関するクラスタデータの転送中のマージ処理を説明するためのフローチャート。6 is a flowchart for explaining merge processing during transfer of cluster data according to the embodiment. 実施形態に関する穴埋めリード用バッファにクラスタデータ転送完了時のマージ処理を説明するための図。The figure for demonstrating the merge process at the time of completion of cluster data transfer to the hole-filling read buffer regarding embodiment. 図5の実施形態に関する穴埋めリード処理とマージ処理との第1の関連を説明するための図。The figure for demonstrating the 1st relationship of the hole-filling lead process and merge process regarding embodiment of FIG. 図5の実施形態に関する穴埋めリード処理とマージ処理との第2の関連を説明するための図。The figure for demonstrating the 2nd relationship of the hole-filling lead process and merge process regarding embodiment of FIG.

以下図面を参照して、実施形態を説明する。   Embodiments will be described below with reference to the drawings.

[データ記憶装置の構成]
図1は、実施形態のデータ記憶装置の要部を示すブロック図である。
[Configuration of data storage device]
FIG. 1 is a block diagram illustrating a main part of the data storage device according to the embodiment.

実施形態のデータ記憶装置は、NAND型フラッシュメモリ(フラッシュメモリ)を記憶媒体として使用するSSD(solid state drive)である。図1に示すように、SSDは大別して、フラッシュメモリコントローラ10と、マイクロプロセッサ(CPU)19と、メモリ(DRAM:dynamic random access memory)20と、ブート用ROM(read only memory)21と、フラッシュメモリ22とを有する。   The data storage device of the embodiment is an SSD (solid state drive) that uses a NAND flash memory (flash memory) as a storage medium. As shown in FIG. 1, the SSD is roughly divided into a flash memory controller 10, a microprocessor (CPU) 19, a memory (DRAM: dynamic random access memory) 20, a boot ROM (read only memory) 21, and a flash. And a memory 22.

ブート用ROM21はSSDに対して外部のホストデバイス23からのアクセスを可能とするための起動用プログラムが格納されている。フラッシュメモリコントローラ10は、CPU19からの命令に応じて、フラッシュメモリ22とホストデバイス23間のデータ転送を制御する。システム電源の投入後に、ブート用ROM21からのプログラムがCPU19の内部メモリに転送されると、フラッシュメモリコントローラ10はソフトウエア(CPU19)からの制御が可能となる。   The boot ROM 21 stores a boot program for enabling access from the external host device 23 to the SSD. The flash memory controller 10 controls data transfer between the flash memory 22 and the host device 23 in accordance with an instruction from the CPU 19. When the program from the boot ROM 21 is transferred to the internal memory of the CPU 19 after the system power is turned on, the flash memory controller 10 can be controlled from the software (CPU 19).

フラッシュメモリコントローラ10は、コントロールバス11と、ホストインターフェースコントローラ(ホストI/Fコントローラ)12と、ライトデータ処理モジュール13と、リードデータ処理モジュール14と、アドレス管理モジュール15と、ECC処理及びログ生成モジュール16と、NANDコントローラ(以下単にコントローラ)17と、データバス18とを有する。   The flash memory controller 10 includes a control bus 11, a host interface controller (host I / F controller) 12, a write data processing module 13, a read data processing module 14, an address management module 15, an ECC processing and log generation module. 16, a NAND controller (hereinafter simply referred to as controller) 17, and a data bus 18.

ホストI/Fコントローラ12は、ホストデバイス23との間でデータ又はコマンドの転送を制御する。ホストデバイス23は、例えばパーソナルコンピュータとSSDとを接続するインターフェース(例えば、SATA(Serial ATA)規格のインターフェース)である。ライトデータ処理モジュール13は、後述するように、ホストI/Fコントローラ12から転送されるデータ(ライトデータ)をフラッシュメモリ22に書き込むための処理を実行する。リードデータ処理モジュール14は、フラッシュメモリ22から読み出されるデータ(リードデータ)をホストI/Fコントローラ12に転送するための処理を実行する。   The host I / F controller 12 controls data or command transfer with the host device 23. The host device 23 is, for example, an interface (for example, an SATA (Serial ATA) standard interface) that connects a personal computer and an SSD. As will be described later, the write data processing module 13 executes processing for writing data (write data) transferred from the host I / F controller 12 to the flash memory 22. The read data processing module 14 executes processing for transferring data (read data) read from the flash memory 22 to the host I / F controller 12.

アドレス管理モジュール15は、論理アドレスと物理アドレス間を変換するアドレス変換テーブル(またはLUT:look up table)を有し、フラッシュメモリ22に対する物理的な書き込み先(アドレス)を管理している。ECC処理及びログ生成モジュール16は、フラッシュメモリ22からの読み出し時には、データのエラー検出訂正(ECC:error checking and correcting)処理を実行する。また、ECC処理及びログ生成モジュール16は、フラッシュメモリ22への書き込み時には、エラー訂正符号をクラスタデータに付加する。また、モジュール16は、クラスタデータに付加する属性情報などのログを生成する。コントローラ17は、フラッシュメモリ22に対してクラスタデータの書き込み、または読み出しを実行する。   The address management module 15 has an address conversion table (or LUT: lookup table) for converting between a logical address and a physical address, and manages a physical write destination (address) to the flash memory 22. The ECC processing and log generation module 16 executes data error detection and correction (ECC) processing when reading from the flash memory 22. The ECC processing and log generation module 16 adds an error correction code to the cluster data when writing to the flash memory 22. Further, the module 16 generates a log such as attribute information added to the cluster data. The controller 17 writes or reads cluster data to or from the flash memory 22.

図2は、ライトデータ処理モジュール13の要部を示すブロック図である。   FIG. 2 is a block diagram showing a main part of the write data processing module 13.

図2に示すように、ライトデータ処理モジュール13は、ライトバッファメモリ(ライトバッファと表記する場合がある)30と、WBE管理情報バッファメモリ(WBEバッファと表記する場合がある)31と、WBEステート遷移コントローラ(WBEコントローラと表記する場合がある)32と、キュー(Queue)管理モジュール33と、穴埋めリード完了待ちキュー(Queue)モジュール34と、穴埋めリード用バッファメモリ(穴埋めリード用バッファと表記する場合がある)35とを有する。   As shown in FIG. 2, the write data processing module 13 includes a write buffer memory (sometimes referred to as a write buffer) 30, a WBE management information buffer memory (sometimes referred to as a WBE buffer) 31, and a WBE state. Transition controller (may be referred to as a WBE controller) 32, queue management module 33, hole-filling read completion queue (Queue) module 34, hole-filling read buffer memory (case of hole-filling read buffer) 35).

ライトバッファ30は、ホストI/Fコントローラ12で受信したデータ(セクタ単位)を格納する。WBEバッファ31は、CPU19の指定により、そのデータの格納先アドレス(WBA)をWBE(write buffer entry)管理情報(以下、単にWBEと表記する場合がある)で管理する。WBEコントローラ32は、後述するように、WBEのステート遷移を制御する。   The write buffer 30 stores the data (sector unit) received by the host I / F controller 12. The WBE buffer 31 manages the storage destination address (WBA) of the data with WBE (write buffer entry) management information (hereinafter sometimes simply referred to as WBE) as specified by the CPU 19. The WBE controller 32 controls the WBE state transition, as will be described later.

キュー(Queue)管理モジュール33、穴埋めリード完了待ちキュー(Queue)モジュール34、及び穴埋めリード用バッファ35はそれぞれ、後述するように、セクタ単位のデータをクラスタ単位のデータ(クラスタデータ)にまとめる併合処理(マージ処理)を行なうための構成である。   As will be described later, the queue management module 33, the hole filling read completion queue (Queue) module 34, and the hole filling read buffer 35 each combine data for each sector into cluster data (cluster data). This is a configuration for performing (merge processing).

[データ書き込み処理]
以下、本実施形態のフラッシュメモリコントローラ10において、主としてライトデータ処理モジュール13の動作によるデータ書き込み処理を説明する。
[Data writing process]
Hereinafter, in the flash memory controller 10 of the present embodiment, data write processing mainly by the operation of the write data processing module 13 will be described.

まず、ホストデバイス23から転送される書き込み要求のデータ(ライトデータ)は、ホストI/Fコントローラ12で受信されて、ライトデータ処理モジュール13に送られる。ホストデバイス23は、論理ブロックアドレス(LBA)によりアクセスし、セクタ単位のライトデータを転送する。なお、1クラスタを8セクタ構成とした場合に、LBAを8で割った商がLCAとなる。   First, write request data (write data) transferred from the host device 23 is received by the host I / F controller 12 and sent to the write data processing module 13. The host device 23 is accessed by a logical block address (LBA) and transfers write data in units of sectors. When one cluster has an 8-sector configuration, the quotient obtained by dividing LBA by 8 is LCA.

ライトデータ処理モジュール13は、要するに、当該セクタ単位のライトデータを他のセクタ単位のデータと併合(マージ)して、クラスタ単位のデータ(クラスタデータ)にセットし(まとめ直し)、ECC処理及びログ生成モジュール16及びコントローラ17に転送する。コントローラ17は、フラッシュメモリ22に対して、1回のアクセスでクラスタデータを書き込む制御を実行する。   In short, the write data processing module 13 merges (merges) the write data of the sector unit with the data of other sector units, and sets (regroups) the data in the cluster unit (cluster data), ECC processing and log Transfer to the generation module 16 and the controller 17. The controller 17 executes control for writing cluster data to the flash memory 22 by one access.

ここで、アドレス管理モジュール15は、論理と物理のアドレス変換テーブル(LUT)を有し、フラッシュメモリ22に対する物理的な書き込み先(物理アドレス)を管理している。書き込み対象のクラスタデータは、論理アドレスとしては、論理クラスタアドレス(LCA:Logical Cluster Address)により管理されている。ライトデータ処理モジュール13は、受信したセクタデータ(ライトデータ)のLCAを認識した時点で、アドレス管理モジュール15に対してアドレス解決処理を要求する。   Here, the address management module 15 has a logical and physical address conversion table (LUT), and manages a physical write destination (physical address) to the flash memory 22. The cluster data to be written is managed as a logical address by a logical cluster address (LCA). When the write data processing module 13 recognizes the LCA of the received sector data (write data), it requests the address management module 15 for address resolution processing.

アドレス解決処理とは、クラスタデータにまとめる(セットする)ためのマージ元データ(併合元データ)の位置(アドレス)を求める処理である。具体的には、アドレス管理モジュール15は、当該ライトデータに対応するLCAの最新位置(端的には1世代前のクラスタデータ)がフラッシュメモリ22上に存在する場合に、その最新位置(物理アドレス)をライトデータ処理モジュール13に返信する(解決処理結果1)。この最新位置は、図3に示すWBEバッファ31に最新位置情報42としてセットされる。また、アドレス管理モジュール15は、当該ライトデータに対応するLCAと同一のLCAを有する別のエントリを示すWBEが示された場合、後述するように、WBE内でライトバッファ30のアドレス(WBA)のアドレス付け替え処理を行う(解決処理結果2)。なお、アドレス付け替え後に、未書き込み部が残った場合には、ライトデータ処理モジュール13は、後述する解決処理結果3に応じた処理を行う。   The address resolution process is a process for obtaining the position (address) of merge source data (merger source data) to be collected (set) into cluster data. Specifically, the address management module 15 determines the latest position (physical address) of the LCA corresponding to the write data when the latest position of the LCA (in short, cluster data one generation before) exists on the flash memory 22. Is returned to the write data processing module 13 (solution processing result 1). This latest position is set as the latest position information 42 in the WBE buffer 31 shown in FIG. Further, when a WBE indicating another entry having the same LCA as the LCA corresponding to the write data is indicated, the address management module 15 stores the address (WBA) of the write buffer 30 in the WBE as will be described later. Address reassignment processing is performed (resolution processing result 2). If an unwritten portion remains after the address change, the write data processing module 13 performs a process according to the solution processing result 3 described later.

ここで、ライトデータ処理モジュール13は、書き込み要求のライトデータが未書き込みLCAに対応する場合には、それを示すコードをアドレス管理モジュール15から受信する(解決処理結果3)。この場合には、クラスタデータにまとめるためのマージ元データは存在しない。このため、ライトデータ処理モジュール13は、ユーザ定義のデータ(ダミーデータ、例えばオール0)をマージ元データとして使用し、クラスタ単位の空き領域を埋める処理を行なう。また、ホストデバイス23は、書き戻し処理により、当該ダミーデータを埋める処理を行なう方法でもよい。なお、本実施形態では、書き込み要求のライトデータが未書き込みLCAに対応する場合の説明は省略する。   Here, when the write data of the write request corresponds to the unwritten LCA, the write data processing module 13 receives a code indicating it from the address management module 15 (resolution processing result 3). In this case, there is no merge source data to be collected into cluster data. For this reason, the write data processing module 13 uses user-defined data (dummy data, for example, all 0) as merge source data, and performs a process of filling empty areas in cluster units. Further, the host device 23 may be a method of performing a process of filling the dummy data by a write back process. In the present embodiment, the description when the write data of the write request corresponds to the unwritten LCA is omitted.

以下、図3と図4を参照して、本実施形態のライトデータ処理モジュール13の処理を説明する。   Hereinafter, the processing of the write data processing module 13 of this embodiment will be described with reference to FIGS.

ホストデバイス23から転送される書き込み要求のライトデータが、クラスタサイズ未満の場合には、ライトデータ処理モジュール13は、前述したように、アドレス管理モジュール15からのアドレス解決処理結果に応じて、マージ処理を実行してクラスタデータにセットするための処理を行う。即ち、ライトデータ処理モジュール13は、当該ライトデータに対応するLCAの1世代前のクラスタデータがフラッシュメモリ22上に存在する場合に、フラッシュメモリ22から当該クラスタデータを読み出す。ライトデータ処理モジュール13は、読み出したクラスタデータをライトバッファ30に格納する。   When the write data of the write request transferred from the host device 23 is less than the cluster size, the write data processing module 13 performs the merge process according to the address resolution processing result from the address management module 15 as described above. To execute the process to set the cluster data. That is, the write data processing module 13 reads the cluster data from the flash memory 22 when cluster data one generation before the LCA corresponding to the write data exists on the flash memory 22. The write data processing module 13 stores the read cluster data in the write buffer 30.

ライトバッファ30での格納先アドレス(WBA:Write Buffer Address)は、WBEバッファ31で管理される。図3は、WBEバッファ31の格納情報を示す。図3に示すように、WBEバッファ31は、WBE番号(WBE#X、WBE#Y)毎に、LCA領域40、セクタ情報領域41、最新位置情報42、セクタバリッドフラグ(SECT-VF)とWBEステータス(WBE-Status)の領域43、セクタ管理情報領域44、予備管理領域(Fw管理)45を有する。   A storage address (WBA: Write Buffer Address) in the write buffer 30 is managed by the WBE buffer 31. FIG. 3 shows information stored in the WBE buffer 31. As shown in FIG. 3, the WBE buffer 31 has an LCA area 40, a sector information area 41, a latest position information 42, a sector valid flag (SECT-VF), and a WBE for each WBE number (WBE # X, WBE # Y). It has a status (WBE-Status) area 43, a sector management information area 44, and a spare management area (Fw management) 45.

LCA領域40は、LCA(LBAの48ビットを右に3ビットシフトした下位32ビットで示す)を格納する。セクタ情報領域41は、セクタデータのWBAを示す。SECT-VFは、8セクタの中で有効なセクタデータのWBAを示す。即ち、ホストデバイス23から転送されるライトデータは、最終セクタアドレスによりセクタ数が認識される。このセクタ数に対応する有効なWBAは、セクタバリッドフラグ(SECT-VF)により指示される。WBE-Statusは、図4で示す状態50〜55示す。セクタ管理情報領域44は、リードコマンドやライトコマンドの種類を示す。   The LCA area 40 stores LCA (indicated by lower 32 bits obtained by shifting 48 bits of LBA to the right by 3 bits). The sector information area 41 indicates the WBA of sector data. SECT-VF indicates the WBA of valid sector data among the 8 sectors. That is, the number of sectors of the write data transferred from the host device 23 is recognized by the last sector address. An effective WBA corresponding to this number of sectors is indicated by a sector valid flag (SECT-VF). WBE-Status indicates the states 50 to 55 shown in FIG. The sector management information area 44 indicates the type of read command or write command.

図4は、WBEコントローラ32によるデータ処理のステート遷移の様子を示す。   FIG. 4 shows a state transition state of data processing by the WBE controller 32.

図4に示すように、ホストI/Fコントローラ12により、ホストデバイス23からのデータ受信処理が開始されると、WBEコントローラ32は、キュー管理モジュール33のWBE invalid Queueから新規のWBEを選択する。WBEコントローラ32は、新規のWBEにあるライトバッファ30の格納先アドレスに格納していく。WBEコントローラ32は並行して、invalidのステートにあった状態を、データ受信中のエントリ状態50(current)に遷移させる。WBEコントローラ32は、エントリ状態50(current)に遷移したWBEを、キュー管理モジュール33のWBE Valid Queueにセットする。WBEコントローラ32は、前述したように、アドレス管理モジュール15に対してアドレス解決処理を要求し、当該アドレス解決処理結果(3は除く1、2)を受け付ける。   As shown in FIG. 4, when data reception processing from the host device 23 is started by the host I / F controller 12, the WBE controller 32 selects a new WBE from the WBE invalid queue of the queue management module 33. The WBE controller 32 stores in the storage destination address of the write buffer 30 in the new WBE. In parallel, the WBE controller 32 makes a transition from the invalid state to the entry state 50 (current) during data reception. The WBE controller 32 sets the WBE transitioned to the entry state 50 (current) in the WBE Valid Queue of the queue management module 33. As described above, the WBE controller 32 requests the address management module 15 for address resolution processing, and accepts the address resolution processing result (1, 2 excluding 3).

WBEコントローラ32は、LCAが変化するまで、エントリ状態50(current)に滞留し、LCAが変化したときにデータ受信完了後のエントリ状態51(fresh)に遷移する。WBEコントローラ32は、エントリ状態51(fresh)に遷移した時点で、そのWBEのセクタデータの受信状態を、WBEバッファ31のセクタバリッドフラグ(SECT-VF)で確認する。   The WBE controller 32 stays in the entry state 50 (current) until the LCA changes, and transitions to the entry state 51 (fresh) after completion of data reception when the LCA changes. When the WBE controller 32 transits to the entry state 51 (fresh), the WBE sector data reception state is confirmed by the sector valid flag (SECT-VF) of the WBE buffer 31.

WBEコントローラ32は、セクタデータ(ライトデータ)の受信状態に応じて、ライトバッファ30に格納されたデータがクラスタサイズに満たない場合には、エントリ状態53(read)に遷移する。WBEコントローラ32は、エントリ状態53(read)に遷移するとき、穴埋め処理(マージ処理)のためのクラスタデータのリードコマンド(穴埋めリードコマンド)を発行する。これにより、穴埋めリード用バッファ35に格納されたデータをマージする。   The WBE controller 32 transitions to the entry state 53 (read) when the data stored in the write buffer 30 is less than the cluster size in accordance with the reception state of the sector data (write data). When the WBE controller 32 transits to the entry state 53 (read), it issues a cluster data read command (fill-fill read command) for fill-in processing (merge processing). Thereby, the data stored in the hole filling read buffer 35 are merged.

一方、セクタデータの受信状態がクラスタサイズの場合には、クラスタデータがセットされた状態54(ready)に遷移する。この状態54(ready)のWBEのクラスタデータは、ECC処理及びログ生成モジュール16及びコントローラ17に転送される。コントローラ17は、フラッシュメモリ22に対して、1回のアクセスで当該クラスタデータを書き込む。   On the other hand, when the reception state of the sector data is the cluster size, the state transits to a state 54 (ready) in which the cluster data is set. The WBE cluster data in this state 54 (ready) is transferred to the ECC processing and log generation module 16 and the controller 17. The controller 17 writes the cluster data to the flash memory 22 with one access.

フラッシュメモリ22にクラスタデータが書き込まれた後に、当該WBEの無効化が可能になると、アドレス管理モジュール15からライトデータ処理モジュール13に通知される。これにより、当該WBEは、キュー管理モジュール33のWBE invalid Queueにセットされて(状態55)、新たなWBEとして再利用される。   When the WBE can be invalidated after the cluster data is written in the flash memory 22, the address management module 15 notifies the write data processing module 13. As a result, the WBE is set in the WBE invalid Queue of the queue management module 33 (state 55), and is reused as a new WBE.

次に、図5から図9を参照して、エントリ状態53(read)において、バッファメモリ30内でのマージ処理(併合処理)を説明する。ここで、マージ元エントリ(古いエントリ)をWBE#Xとし、マージ対象エントリ(新しいエントリ)をWBE#Yとする。   Next, a merge process (merge process) in the buffer memory 30 in the entry state 53 (read) will be described with reference to FIGS. Here, the merge source entry (old entry) is set to WBE # X, and the merge target entry (new entry) is set to WBE # Y.

本実施形態は、同一LCAの1世代前のクラスタデータの穴埋めリード処理を実行しているときに、当該ライトデータに対応するLCAと同一のLCAを有する新たなエントリを示すWBEが示された場合のマージ処理を実行する。この場合、バッファメモリ30内において、古いエントリWBE#Xを新しいエントリWBE#Yに更新し、アドレス(WBA)のアドレス付け替え処理を行う。   In the present embodiment, when a hole filling read process for cluster data one generation before the same LCA is executed, a WBE indicating a new entry having the same LCA as the LCA corresponding to the write data is indicated Execute the merge process. In this case, in the buffer memory 30, the old entry WBE # X is updated to the new entry WBE # Y, and address reassignment processing of the address (WBA) is performed.

ライトバッファ30内でのマージ処理は、マージ対象エントリ(新しいエントリ)の有効でないセクタデータについて、マージ元エントリ(古いエントリ)のセクタデータのバッファアドレス(WBA)の付け替えを行うことで、エントリ(WBE)に関連付けされたデータを論理的に入れ替える処理である。   The merge process in the write buffer 30 is performed by changing the buffer address (WBA) of the sector data of the merge source entry (old entry) for the invalid sector data of the entry to be merged (new entry). ) Is a process of logically replacing the data associated with ().

図8及び図9は、図2に示す穴埋めリード完了待ちキュー(Queue)34と、図5に示すマージ処理との関連を示す。   FIGS. 8 and 9 show the relationship between the hole filling read completion queue 34 shown in FIG. 2 and the merge processing shown in FIG.

図8及び図9に示すように、穴埋めリード処理は、フラッシュメモリ22からクラスタ単位のデータ(クラスタデータ)を穴埋めリード用バッファ35に格納し、アドレスの付け替え処理によりライトバッファ30のエントリ(WBE)に関連付けることで完了する。   As shown in FIG. 8 and FIG. 9, in the hole filling read process, cluster unit data (cluster data) is stored in the hole filling read buffer 35 from the flash memory 22, and the entry (WBE) in the write buffer 30 is processed by the address reassignment process. Complete by associating with.

図8に示すように、アドレスの付け替え処理を実行する場合、WBEコントローラ32は、マージ元のエントリ(古いエントリWBE#15とする)に対して穴埋めリード処理によりクラスタデータの転送が終了しているか否かをチェックする(処理901)。ここでは、同じLCA(100)のマージ対象エントリ(新しいエントリ)をWBE#20として、古いエントリWBE#15に対するアドレスの付け替え処理(処理902)を実行する場合である。即ち、処理902は、LCA(100)を重複して受け取り、WBE#20はWBE#15がマージ元であることを認識していることを意味します。   As shown in FIG. 8, when the address reassigning process is executed, the WBE controller 32 has completed the transfer of cluster data by the hole filling read process for the merge source entry (assumed to be the old entry WBE # 15). It is checked whether or not (process 901). In this case, the merge target entry (new entry) of the same LCA (100) is set as WBE # 20, and the address reassigning process (process 902) for the old entry WBE # 15 is executed. In other words, processing 902 means that LCA (100) is received in duplicate, and WBE # 20 recognizes that WBE # 15 is the merge source.

WBEコントローラ32は、穴埋めリード完了待ちキュー34を参照して、穴埋めリードコマンドの発行または完了のチェックを実行する。この場合、当該穴埋めリードTagIDおよびそれに対応するWBE#を消去する。穴埋めリード完了待ちキュー34は、穴埋めリードコマンドの発行順に、穴埋めリード処理の完了を待つエントリ番号(WBE#)を記録する。WBEコントローラ32は、クラスタデータの転送が完了したら、穴埋めリード完了待ちキュー34の当該穴埋めリードコマンドを消去する。   The WBE controller 32 refers to the hole filling read completion waiting queue 34 and checks whether the hole filling read command is issued or completed. In this case, the hole filling lead TagID and the corresponding WBE # are erased. The hole filling read completion waiting queue 34 records entry numbers (WBE #) waiting for completion of hole filling read processing in the order of issuing hole filling read commands. When the transfer of the cluster data is completed, the WBE controller 32 deletes the hole filling read command in the hole filling read completion waiting queue 34.

図8に示すように、WBEコントローラ32は、古いエントリWBE#15に対するクラスタデータの転送が未終了であるため、先行してライトバッファ30内でのマージ処理を実行する。但し、新しいエントリWBE#20の有効でないセクタデータについて、古いエントリWBE#15のセクタデータのバッファアドレス(WBA)の付け替えを行うアドレスの付け替え処理(処理902)は、穴埋めリード用バッファ35と古いエントリWBE#15間でのアドレス付け替え処理を同時には実行できない。   As shown in FIG. 8, the WBE controller 32 executes the merge process in the write buffer 30 in advance because the transfer of the cluster data to the old entry WBE # 15 has not been completed. However, the address reassignment process (process 902) for reassigning the buffer address (WBA) of the sector data of the old entry WBE # 15 for the invalid sector data of the new entry WBE # 20 is the same as that of the hole filling read buffer 35 and the old entry. Address reassignment processing between WBE # 15 cannot be executed simultaneously.

次に、図9に示すように、WBEコントローラ32は、穴埋めリード完了待ちキュー34の古いエントリWBE#15を、新しいエントリWBE#20に更新し、エントリ状態53(read)に遷移する。即ち、WBEコントローラ32は、穴埋めリードコマンドを発行し、新しいエントリWBE#20に対するライトバッファ30内でのマージ処理を実行する(処理904)。一方、WBEコントローラ32は、古いエントリWBE#15をキュー管理モジュール33のWBE invalid Queueにセットし、新たなWBEとして再利用する(処理903)。   Next, as shown in FIG. 9, the WBE controller 32 updates the old entry WBE # 15 in the hole-filling read completion waiting queue 34 to the new entry WBE # 20, and transitions to the entry state 53 (read). That is, the WBE controller 32 issues a hole filling read command and executes a merge process in the write buffer 30 for the new entry WBE # 20 (process 904). On the other hand, the WBE controller 32 sets the old entry WBE # 15 in the WBE invalid Queue of the queue management module 33 and reuses it as a new WBE (process 903).

さらに図5から図7を参照して、穴埋めリード処理によるクラスタデータの転送中と転送完了時とに分けて、ライトバッファ30内でのマージ処理を説明する。   Further, with reference to FIG. 5 to FIG. 7, the merge process in the write buffer 30 will be described separately during the transfer of cluster data by the hole filling read process and when the transfer is completed.

図5と図6は、穴埋めリード処理によりクラスタデータの転送中でのマージ処理を示す図である。ここで、図5は、図6に示すブロック104〜111の処理に対応します。   5 and 6 are diagrams showing merge processing during transfer of cluster data by hole filling read processing. Here, FIG. 5 corresponds to the processing of blocks 104 to 111 shown in FIG.

まず、WBEコントローラ32は、古いエントリWBE#Xのデータ受信状態がクラスタサイズの場合には、図4に示すように、クラスタデータがセットされた状態(ready)に遷移する(ブロック101のNO)。この場合、コントローラ17は、フラッシュメモリ22に対して1回のアクセスで当該クラスタデータを書き込む。   First, when the data reception state of the old entry WBE # X is a cluster size, the WBE controller 32 transitions to a state in which cluster data is set (ready) as shown in FIG. 4 (NO in block 101). . In this case, the controller 17 writes the cluster data to the flash memory 22 with one access.

WBEコントローラ32は、クラスタサイズに満たない場合には、穴埋め処理(マージ処理)のための穴埋めリードコマンドを発行し、図5に示すread状態60に遷移する(ブロック102)。ここで、古いエントリWBE#X及び新しいエントリWBE#Yは、同一のLCA(X0)である。コントローラ17は、フラッシュメモリ22からLCA(X0)のクラスタデータを読み出し(状態61)、穴埋めリード用バッファ35に格納する。   If it is less than the cluster size, the WBE controller 32 issues a hole filling read command for hole filling processing (merge processing), and transitions to the read state 60 shown in FIG. 5 (block 102). Here, the old entry WBE # X and the new entry WBE # Y are the same LCA (X0). The controller 17 reads the cluster data of the LCA (X0) from the flash memory 22 (state 61) and stores it in the hole filling read buffer 35.

WBEコントローラ32は、穴埋めリード完了待ちキュー34を参照し、マージ元のエントリ番号WBE#Xのリードコマンドが存在すれば、当該クラスタデータが転送中と判定する(ブロック103のNO)。この時点で、同一のLCA(X0)の新しいエントリWBE#Yのデータを受信すると(状態70)、WBEコントローラ32は、穴埋めリード完了待ちキュー34を参照し、古いエントリWBE#Xの存在を確認する(ブロック104のYES)。   The WBE controller 32 refers to the hole filling read completion waiting queue 34 and determines that the cluster data is being transferred if there is a read command of the entry number WBE # X of the merge source (NO in block 103). At this time, when the data of the new entry WBE # Y of the same LCA (X0) is received (state 70), the WBE controller 32 refers to the hole filling read completion waiting queue 34 and confirms the existence of the old entry WBE # X. (YES in block 104).

WBEコントローラ32は、古いエントリWBE#X及び新しいエントリWBE#Yのアドレス付け替え処理を実行する(ブロック105)。これにより、穴埋めリード完了待ちキュー34の古いエントリWBE#Xは、新しいエントリWBE#Yに更新される(ブロック106)。即ち、ライトバッファ30内では、新しいエントリWBE#Yに対するライトバッファ30内でのマージ処理が実行される(状態63)。但し、この間,クラスタデータの転送が完了しても、穴埋め完了処理を実行しない。   The WBE controller 32 executes an address reassigning process for the old entry WBE # X and the new entry WBE # Y (block 105). As a result, the old entry WBE # X in the hole filling read completion waiting queue 34 is updated to a new entry WBE # Y (block 106). That is, in the write buffer 30, merge processing in the write buffer 30 for the new entry WBE # Y is executed (state 63). However, during this time, even if the transfer of the cluster data is completed, the hole filling completion process is not executed.

WBEコントローラ32は、マージ処理完了後に、新しいエントリWBE#Yをエントリ状態63(read)に遷移し、古いエントリWBE#Xをキュー管理モジュール33のWBE invalid Queueにセットする(ブロック107、状態64)。   After the merge process is completed, the WBE controller 32 transitions the new entry WBE # Y to the entry state 63 (read), and sets the old entry WBE # X to the WBE invalid queue of the queue management module 33 (block 107, state 64). .

次に、WBEコントローラ32は、穴埋めリード完了待ちキュー34を参照し、エントリ番号WBE#Yのクラスタデータが転送完了であるか否かを判定する(ブロック108)。クラスタデータの転送完了後であれば、WBEコントローラ32は、穴埋めリード完了待ちキュー34を更新し、WBE#Yを消去する(ブロック109)。   Next, the WBE controller 32 refers to the hole filling read completion waiting queue 34 and determines whether or not the cluster data of the entry number WBE # Y has been transferred (block 108). If the transfer of cluster data has been completed, the WBE controller 32 updates the hole filling read completion waiting queue 34 and deletes WBE # Y (block 109).

WBEコントローラ32は、古いエントリWBE#Xの穴埋め処理を完了し、アドレス付け替え処理を実行する(ブロック110)。WBEコントローラ32は、マージ処理完了後に、新しいエントリWBE#Yをクラスタデータがセットされた状態(ready)に遷移する(ブロック111)。   The WBE controller 32 completes the hole filling process of the old entry WBE # X and executes the address reassigning process (block 110). After completing the merge process, the WBE controller 32 transitions the new entry WBE # Y to a state in which cluster data is set (ready) (block 111).

次に、図6と図7を参照して、穴埋めリード処理によるクラスタデータの転送完了時でのマージ処理を説明する。ここで、図7は、図6に示すブロック112〜116の処理に対応します。なお、処理117はWAW処理が発生しない場合である。   Next, with reference to FIG. 6 and FIG. 7, a merge process when the transfer of cluster data by the hole filling read process is completed will be described. Here, FIG. 7 corresponds to the processing of blocks 112 to 116 shown in FIG. The process 117 is a case where no WAW process occurs.

WBEコントローラ32は、クラスタデータ転送完了を待って、穴埋めリード完了待ちキュー34を更新し、エントリWBE#Xを消去する(ブロック112)。WBEコントローラ32は、エントリWBE#Xの穴埋め処理を完了し、アドレス付け替え処理を実行する(ブロック113)。この時点で、同一のLCA(X0)の新しいエントリWBE#Yのデータを受信すると(状態70)、WBEコントローラ32は、古いエントリWBE#X及び新しいエントリWBE#Yのアドレス付け替え処理を実行する(ブロック114のYES,115)。   The WBE controller 32 waits for the completion of the cluster data transfer, updates the hole filling read completion queue 34, and deletes the entry WBE # X (block 112). The WBE controller 32 completes the hole filling process for the entry WBE # X and executes the address reassignment process (block 113). At this time, when data of a new entry WBE # Y of the same LCA (X0) is received (state 70), the WBE controller 32 executes an address reassigning process of the old entry WBE # X and the new entry WBE # Y ( YES in block 114, 115).

WBEコントローラ32は、マージ処理完了後に、新しいエントリWBE#Yをクラスタデータがセットされた状態(ready)に遷移し、古いエントリWBE#Xをキュー管理モジュール33のWBE invalid Queueにセットする(ブロック116)。また、WBEコントローラ32は、エントリWBE#Yのデータを受信しない場合、エントリWBE#Xをクラスタデータがセットされた状態(ready)に遷移する(ブロック117)。   After the merge process is completed, the WBE controller 32 transitions the new entry WBE # Y to a state in which cluster data is set (ready), and sets the old entry WBE # X in the WBE invalid Queue of the queue management module 33 (block 116). ). If the WBE controller 32 does not receive the data of the entry WBE # Y, the WBE controller 32 transitions the entry WBE # X to a state in which cluster data is set (ready) (block 117).

以上のように本実施形態によれば、ホストデバイス23から転送される書き込み要求のライトデータがクラスタサイズ未満の場合には、ライトデータ処理モジュール13は穴埋めリード処理により、クラスタ単位のデータにセットする。このため、フラッシュメモリ22に対して1回のアクセスで書き込むことが可能である。ここで、ホストデバイス23からLCAが重複する古いエントリWBE#Xと新しいエントリWBE#Yのライトデータが転送された場合でも、穴埋めリード処理とフラッシュメモリ22に対する書き込み処理をそれぞれ1回で行なうことができる。従って、必要最小限のフラッシュメモリ22に対するアクセスでクラスタデータをセットし、効率的なフラッシュメモリに対する書き込み動作を実現できる。   As described above, according to the present embodiment, when the write data of the write request transferred from the host device 23 is smaller than the cluster size, the write data processing module 13 sets the data in cluster units by the hole filling read process. . Therefore, it is possible to write to the flash memory 22 with one access. Here, even when the write data of the old entry WBE # X and the new entry WBE # Y with overlapping LCAs is transferred from the host device 23, the hole filling read process and the write process to the flash memory 22 can be performed once. it can. Therefore, cluster data can be set by accessing the minimum necessary flash memory 22 and an efficient write operation to the flash memory can be realized.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   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.

10…フラッシュメモリコントローラ、
12…ホストインターフェースコントローラ(ホストI/Fコントローラ)、
13…ライトデータ処理モジュール、14…リードデータ処理モジュール、
15…アドレス管理モジュール、16…ECC処理及びログ生成モジュール、
17…NANDコントローラ、19…マイクロプロセッサ(CPU)、
22…フラッシュメモリ、30…ライトバッファメモリ、
31…WBE管理情報バッファメモリ、32…WBEステート遷移コントローラ、
33…キュー(Queue)管理モジュール、
34…穴埋めリード完了待ちキュー(Queue)モジュール、
35…穴埋めリード用バッファメモリ。
10: Flash memory controller,
12: Host interface controller (host I / F controller),
13 ... Write data processing module, 14 ... Read data processing module,
15 ... Address management module, 16 ... ECC processing and log generation module,
17 ... NAND controller, 19 ... Microprocessor (CPU),
22: Flash memory, 30: Write buffer memory,
31 ... WBE management information buffer memory, 32 ... WBE state transition controller,
33 ... Queue management module,
34 ... Queue module for filling hole completion,
35 ... Buffer memory for filling holes.

Claims (10)

所定サイズのデータを書き込み単位とするフラッシュメモリと、
ホスト装置からの書き込みデータを順次格納するバッファメモリと、
前記バッファメモリに格納された前記所定サイズのデータを前記フラッシュメモリに書き込むコントローラと、
ホスト装置からの書き込みデータが前記所定サイズ未満の場合に、前記フラッシュメモリから前記書き込みデータと同一のアドレスで管理されている前記所定サイズのデータを読み出し、前記バッファメモリ内で前記書き込みデータを含む前記所定サイズのデータをセットするためのマージ処理を実行する書き込みデータ処理手段とを有し、
前記書き込みデータ処理手段は、
前記フラッシュメモリからのデータの読み出し時または読み出し完了時に、前記バッファメモリ内での旧書き込みデータと同一のアドレスで管理される新書き込みデータが存在した場合に、前記新書き込みデータをマージ対象データとして前記バッファメモリ内でのマージ処理を実行するデータ記憶装置。
A flash memory having a predetermined size of data as a writing unit;
A buffer memory for sequentially storing write data from the host device;
A controller that writes the data of the predetermined size stored in the buffer memory to the flash memory;
When the write data from the host device is less than the predetermined size, the data of the predetermined size managed at the same address as the write data is read from the flash memory, and the write data is included in the buffer memory. Write data processing means for executing merge processing for setting data of a predetermined size,
The write data processing means includes
When there is new write data managed at the same address as the old write data in the buffer memory when reading data from the flash memory or when reading is completed, the new write data is used as merge target data. A data storage device that performs merge processing in a buffer memory.
前記書き込みデータ処理手段は、
前記フラッシュメモリから前記所定サイズのデータを穴埋め用データとして読み出す穴埋めリード処理手段と、
前記穴埋めリード処理手段の穴埋めリード処理の完了を判定する手段と、
前記穴埋めリード処理の完了前に、前記新書き込みデータ前記バッファメモリ内に格納された場合に、前記穴埋め用データを前記バッファメモリに転送する前に前記バッファメモリ内でのマージ処理を先行して実行する手段と
を含む請求項1に記載のデータ記憶装置。
The write data processing means includes
Hole filling read processing means for reading out data of the predetermined size from the flash memory as hole filling data;
Means for determining completion of the hole filling lead processing of the hole filling lead processing means;
When the new write data is stored in the buffer memory before completion of the hole filling read processing, the merge processing in the buffer memory is executed in advance before transferring the hole filling data to the buffer memory. The data storage device according to claim 1, further comprising:
前記書き込みデータ処理手段は、
前記フラッシュメモリから前記所定サイズのデータを穴埋め用データとして読み出す穴埋めリード処理手段と、
前記穴埋めリード処理手段の穴埋めリード処理の完了を判定する手段と、
前記穴埋めリード処理の完了後に、前記新書き込みデータが前記バッファメモリ内に格納された場合に、前記穴埋め用データを前記バッファメモリに転送した後に前記バッファメモリ内でのマージ処理を実行する手段と
を含む請求項1に記載のデータ記憶装置。
The write data processing means includes
Hole filling read processing means for reading out data of the predetermined size from the flash memory as hole filling data;
Means for determining completion of the hole filling lead processing of the hole filling lead processing means;
Means for executing merge processing in the buffer memory after transferring the hole filling data to the buffer memory when the new write data is stored in the buffer memory after completion of the hole filling read processing; The data storage device according to claim 1, comprising:
前記書き込みデータ処理手段は、
前記ホスト装置からの書き込みデータが前記所定サイズとしてクラスタサイズのクラスタデータであるか否かを判定し、
前記書き込みデータが前記クラスタサイズ未満の場合に、前記フラッシュメモリから前記旧書き込みデータと同一のアドレスで管理されている前記クラスタデータを読み出し、前記バッファメモリに前記穴埋め用データを転送する請求項1に記載のデータ記憶装置。
The write data processing means includes
Determine whether the write data from the host device is cluster data of the cluster size as the predetermined size,
2. The cluster data managed by the same address as the old write data is read from the flash memory when the write data is smaller than the cluster size, and the hole filling data is transferred to the buffer memory. The data storage device described.
前記書き込みデータ処理手段は、
前記書き込みデータを順次格納するバッファメモリのアドレスをエントリ番号で管理するバッファエントリ管理手段を含み、
前記新書き込みデータと前記旧書き込みデータのアドレス付け替え処理を実行して前記バッファメモリ内でのマージ処理を実行する請求項1から請求項4のいずれか1項に記載のデータ記憶装置。
The write data processing means includes
Buffer entry management means for managing an address of a buffer memory for sequentially storing the write data by an entry number;
5. The data storage device according to claim 1, wherein an address reassigning process of the new write data and the old write data is executed to execute a merge process in the buffer memory. 6.
所定サイズのデータを書き込み単位とするフラッシュメモリを有するデータ記憶装置のメモリ制御装置において、
ホスト装置からの書き込みデータを順次格納するバッファメモリと、
前記バッファメモリに格納された前記所定サイズのデータを前記フラッシュメモリに書き込むコントローラと、
ホスト装置からの書き込みデータが前記所定サイズ未満の場合に、前記フラッシュメモリから前記書き込みデータと同一のアドレスで管理されている前記所定サイズのデータを読み出し、前記バッファメモリ内で前記書き込みデータを含む前記所定サイズのデータをセットするためのマージ処理を実行する書き込みデータ処理手段とを有し、
前記書き込みデータ処理手段は、
前記フラッシュメモリからのデータの読み出し時または読み出し完了時に、前記バッファメモリ内での旧書き込みデータと同一のアドレスで管理される新書き込みデータが存在した場合に、前記新書き込みデータをマージ対象データとして前記バッファメモリ内でのマージ処理を実行するメモリ制御装置。
In a memory control device of a data storage device having a flash memory in which data of a predetermined size is used as a writing unit,
A buffer memory for sequentially storing write data from the host device;
A controller that writes the data of the predetermined size stored in the buffer memory to the flash memory;
When the write data from the host device is less than the predetermined size, the data of the predetermined size managed at the same address as the write data is read from the flash memory, and the write data is included in the buffer memory. Write data processing means for executing merge processing for setting data of a predetermined size,
The write data processing means includes
When there is new write data managed at the same address as the old write data in the buffer memory when reading data from the flash memory or when reading is completed, the new write data is used as merge target data. A memory control device that performs merge processing in a buffer memory.
前記書き込みデータ処理手段は、
前記フラッシュメモリから前記所定サイズのデータを穴埋め用データとして読み出す穴埋めリード処理手段と、
前記穴埋めリード処理手段の穴埋めリード処理の完了を判定する手段と、
前記穴埋めリード処理の完了前に、前記新書き込みデータ前記バッファメモリ内に格納された場合に、前記穴埋め用データを前記バッファメモリに転送する前に前記バッファメモリ内でのマージ処理を先行して実行する手段と
を含む請求項6に記載のメモリ制御装置。
The write data processing means includes
Hole filling read processing means for reading out data of the predetermined size from the flash memory as hole filling data;
Means for determining completion of the hole filling lead processing of the hole filling lead processing means;
When the new write data is stored in the buffer memory before completion of the hole filling read processing, the merge processing in the buffer memory is executed in advance before transferring the hole filling data to the buffer memory. The memory control device according to claim 6, further comprising:
前記書き込みデータ処理手段は、
前記フラッシュメモリから前記所定サイズのデータを穴埋め用データとして読み出す穴埋めリード処理手段と、
前記穴埋めリード処理手段の穴埋めリード処理の完了を判定する手段と、
前記穴埋めリード処理の完了後に、前記新書き込みデータ前記バッファメモリ内に格納された場合に、前記穴埋め用データを前記バッファメモリに転送した後に前記バッファメモリ内でのマージ処理を実行する手段と
を含む請求項6に記載のメモリ制御装置。
The write data processing means includes
Hole filling read processing means for reading out data of the predetermined size from the flash memory as hole filling data;
Means for determining completion of the hole filling lead processing of the hole filling lead processing means;
Means for executing merge processing in the buffer memory after transferring the hole filling data to the buffer memory when the new write data is stored in the buffer memory after completion of the hole filling read processing. The memory control device according to claim 6.
前記書き込みデータ処理手段は、
前記書き込みデータを順次格納するバッファメモリのアドレスをエントリ番号で管理するバッファエントリ管理手段を含み、
前記新書き込みデータと前記旧書き込みデータのアドレス付け替え処理を実行して前記バッファメモリ内でのマージ処理を実行する請求項6から請求項8のいずれか1項に記載のメモリ制御装置。
The write data processing means includes
Buffer entry management means for managing an address of a buffer memory for sequentially storing the write data by an entry number;
9. The memory control device according to claim 6, wherein an address reassigning process of the new write data and the old write data is executed to execute a merge process in the buffer memory. 10.
所定サイズのデータを書き込み単位とするフラッシュメモリを有するデータ記憶装置に適用するメモリ制御方法であって、
ホスト装置からの書き込みデータをバッファメモリに順次格納し、
前記バッファメモリに格納された前記所定サイズのデータを前記フラッシュメモリに書き込み、
ホスト装置からの書き込みデータが前記所定サイズ未満の場合に、前記フラッシュメモリから前記書き込みデータと同一のアドレスで管理されている前記所定サイズのデータを読み出し、
前記バッファメモリ内で前記書き込みデータを含む前記所定サイズのデータをセットするためのマージ処理を実行し、
前記マージ処理は、
前記フラッシュメモリからのデータの読み出し時または読み出し完了時に、前記バッファメモリ内での旧書き込みデータと同一のアドレスで管理される新書き込みデータが存在した場合に、前記新書き込みデータをマージ対象データとして前記バッファメモリ内でのマージ処理を実行するメモリ制御方法。
A memory control method applied to a data storage device having a flash memory having a predetermined size of data as a writing unit,
Write data from the host device is sequentially stored in the buffer memory,
Writing the predetermined size data stored in the buffer memory to the flash memory;
When the write data from the host device is less than the predetermined size, the data of the predetermined size managed by the same address as the write data is read from the flash memory,
Performing a merge process for setting the data of the predetermined size including the write data in the buffer memory;
The merge process
When there is new write data managed at the same address as the old write data in the buffer memory when reading data from the flash memory or when reading is completed, the new write data is used as merge target data. A memory control method for performing merge processing in a buffer memory.
JP2011200018A 2011-09-13 2011-09-13 Data storage, memory controller and method Withdrawn JP2013061814A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011200018A JP2013061814A (en) 2011-09-13 2011-09-13 Data storage, memory controller and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011200018A JP2013061814A (en) 2011-09-13 2011-09-13 Data storage, memory controller and method

Publications (1)

Publication Number Publication Date
JP2013061814A true JP2013061814A (en) 2013-04-04

Family

ID=48186430

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011200018A Withdrawn JP2013061814A (en) 2011-09-13 2011-09-13 Data storage, memory controller and method

Country Status (1)

Country Link
JP (1) JP2013061814A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016224708A (en) * 2015-05-29 2016-12-28 株式会社東芝 Memory system
CN117854553A (en) * 2024-03-06 2024-04-09 北京云豹创芯智能科技有限公司 Data shaping circuit, method and chip

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016224708A (en) * 2015-05-29 2016-12-28 株式会社東芝 Memory system
CN117854553A (en) * 2024-03-06 2024-04-09 北京云豹创芯智能科技有限公司 Data shaping circuit, method and chip

Similar Documents

Publication Publication Date Title
US8996791B2 (en) Flash memory device, memory control device, memory control method, and storage system
JP4829365B1 (en) Data storage device and data writing method
KR101086857B1 (en) Control Method of Solid State Storage System for Data Merging
US9268687B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US20140289451A1 (en) Method of recording mapping information, and memory controller and memory storage apparatus using the same
US9280460B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
US8510502B2 (en) Data writing method, and memory controller and memory storage apparatus using the same
US8589619B2 (en) Data writing method, memory controller, and memory storage apparatus
US9176865B2 (en) Data writing method, memory controller, and memory storage device
US10310764B2 (en) Semiconductor memory device and storage apparatus comprising semiconductor memory device
US8966157B2 (en) Data management method, memory controller and memory storage apparatus
US9977626B2 (en) Implementing scattered atomic I/O writes
CN110674056B (en) Garbage recovery method and device
US8667348B2 (en) Data writing method for non-volatile memory module and memory controller and memory storage apparatus using the same
US9721669B2 (en) Data protection method, memory control circuit unit and memory storage apparatus
TWI421870B (en) Data writing method for a flash memory, and controller and storage system using the same
TWI459198B (en) Memory storage device, memory controller thereof, and method for identifying valid data
US8812772B2 (en) Data merging method for non-volatile memory and controller and storage apparatus using the same
JP2011090496A (en) Semiconductor storage device and control method
US20150205538A1 (en) Storage apparatus and method for selecting storage area where data is written
US20140089566A1 (en) Data storing method, and memory controller and memory storage apparatus using the same
JP2012248109A (en) Memory unit having multiple channels and read command group generating method for compaction in the memory unit
US8762685B2 (en) Data writing method, memory controller and memory storage apparatus
US9312011B1 (en) Data writing method, memory storage device and memory control circuit unit
US9304906B2 (en) Memory system, controller and control method of memory

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

A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141202