[go: up one dir, main page]

JP2012113476A - Data storage device, memory control device, and memory control method - Google Patents

Data storage device, memory control device, and memory control method Download PDF

Info

Publication number
JP2012113476A
JP2012113476A JP2010261174A JP2010261174A JP2012113476A JP 2012113476 A JP2012113476 A JP 2012113476A JP 2010261174 A JP2010261174 A JP 2010261174A JP 2010261174 A JP2010261174 A JP 2010261174A JP 2012113476 A JP2012113476 A JP 2012113476A
Authority
JP
Japan
Prior art keywords
data
channel
error correction
control means
write
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
JP2010261174A
Other languages
Japanese (ja)
Inventor
Takami Sugita
隆実 杉田
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 JP2010261174A priority Critical patent/JP2012113476A/en
Publication of JP2012113476A publication Critical patent/JP2012113476A/en
Withdrawn legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】有効なデータが準備できないチャネルがある場合でも、ライト処理効率の低下を招くことなく、確実に誤り訂正符号データを生成できるデータ記憶装置を提供することにある。
【解決手段】実施形態によれば、データ記憶装置は、ライトコントローラと、誤り訂正コントローラと、データコントローラとを具備する。ライトコントローラは、複数チャネルの各不揮発性メモリにデータを並列に書き込む。誤り訂正コントローラは、前記ライトコントローラによる書き込み動作の前に、前記各チャネル毎に準備されるデータを使用して誤り訂正符号データを生成する。データコントローラは、不揮発性メモリの書き込み対象のデータが準備されないチャネルに対して、当該不揮発性メモリの初期値データを前記誤り訂正コントローラの生成処理に使用するデータとして準備する。
【選択図】図1
An object of the present invention is to provide a data storage device that can reliably generate error correction code data without deteriorating write processing efficiency even when there is a channel for which valid data cannot be prepared.
According to an embodiment, a data storage device includes a write controller, an error correction controller, and a data controller. The write controller writes data in parallel to each of the non-volatile memories of a plurality of channels. The error correction controller generates error correction code data using data prepared for each channel before the write operation by the write controller. The data controller prepares the initial value data of the non-volatile memory as data to be used for the generation process of the error correction controller for a channel for which data to be written to the non-volatile memory is not prepared.
[Selection] Figure 1

Description

本発明の実施形態は、不揮発性メモリを記憶媒体とするデータ記憶装置に関する。   Embodiments described herein relate generally to a data storage device using a nonvolatile memory as a storage medium.

近年、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を記憶媒体とするSSD(solid state drive)の開発が推進されている。   In recent years, development of an SSD (solid state drive) using a NAND-type flash memory (hereinafter sometimes simply referred to as a flash memory) as a data storage device as a storage medium has been promoted. .

一般的に、SSDでは、複数のチャネル単位に設けられる各フラッシュメモリに対して、データを並列に書き込むマルチチャネル方式のライト動作が行なわれる。このライト動作時に、各チャネルに書き込むデータ(ユーザデータ)を使用して、チャネル間で誤り訂正処理(ECC:error checking and correcting)が可能な誤り訂正符号データ(またはパリティデータ)が生成される。この誤り訂正符号データは、複数チャネルの中から設定されたECC用チャネルのフラッシュメモリに格納される。   In general, in SSD, a multi-channel write operation for writing data in parallel to each flash memory provided in a plurality of channels is performed. During this write operation, error correction code data (or parity data) that can be subjected to error checking and correction (ECC) between channels is generated using data (user data) written to each channel. This error correction code data is stored in the flash memory of the ECC channel set from among a plurality of channels.

特開2002−163243号公報JP 2002-163243 A

従来のSSDにおいて、マルチチャネル方式のライト動作時に、全チャネルの中で書き込み対象として有効なデータが準備できないチャネルがある場合に、誤り訂正符号データを生成するために、一種の補間データを準備する必要がある。この場合、マルチチャネル方式のライト動作により、補間データは、当該チャネルのフラッシュメモリに書き込まれることになる。この補間データを書き込むライト動作は、ライトアクセス速度に関係するライト処理時間の増大や、フラッシュメモリの寿命に関係するライト回数の増大を招き、ライト処理効率の低下の要因となる。   In a conventional SSD, when there is a channel that cannot prepare effective data as a write target among all channels during a multi-channel write operation, a kind of interpolation data is prepared to generate error correction code data. There is a need. In this case, the interpolation data is written to the flash memory of the channel by the multi-channel write operation. This write operation for writing interpolated data causes an increase in write processing time related to the write access speed and an increase in the number of writes related to the life of the flash memory, which causes a decrease in write processing efficiency.

そこで、本発明の目的は、有効なデータが準備できないチャネルがある場合でも、ライト処理効率の低下を招くことなく、確実に誤り訂正符号データを生成できるデータ記憶装置を提供することにある。   Therefore, an object of the present invention is to provide a data storage device that can reliably generate error correction code data without deteriorating write processing efficiency even when there is a channel in which valid data cannot be prepared.

実施形態によれば、データ記憶装置は、ライト制御手段と、誤り訂正制御手段と、データ制御手段とを具備する。ライト制御手段は、複数チャネルの各不揮発性メモリにデータを並列に書き込む。誤り訂正制御手段は、前記ライト制御手段による書き込み動作の前に、前記各チャネル毎に準備されるデータを使用して誤り訂正符号データを生成する。データ制御手段は、不揮発性メモリの書き込み対象のデータが準備されないチャネルに対して、当該不揮発性メモリの初期値データを前記誤り訂正制御手段の生成処理に使用するデータとして準備する。   According to the embodiment, the data storage device includes a write control unit, an error correction control unit, and a data control unit. The write control means writes data in parallel to each of the non-volatile memories of a plurality of channels. The error correction control means generates error correction code data using data prepared for each channel before the write operation by the write control means. The data control means prepares the initial value data of the nonvolatile memory as data to be used for the generation process of the error correction control means for a channel for which data to be written to the nonvolatile memory is not prepared.

実施形態に関するデータ記憶装置の構成を説明するためのブロック図。The block diagram for demonstrating the structure of the data storage apparatus regarding embodiment. 実施形態に関するフラッシュメモリコントローラの構成を説明するためのブロック図。1 is a block diagram for explaining a configuration of a flash memory controller according to an embodiment. FIG. 実施形態に関するライト動作を説明するための概念図。The conceptual diagram for demonstrating the write operation regarding embodiment. 実施形態に関するライト動作を説明するためのフローチャート。6 is a flowchart for explaining a write operation according to the embodiment.

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

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

図1に示すように、実施形態のデータ記憶装置はSSD(solid state drive)であり、SSDコントローラ10と、NAND型フラッシュメモリ(フラッシュメモリ)20と、DRAM(dynamic random access memory)からなるバッファメモリ21とを有する。   As shown in FIG. 1, the data storage device of the embodiment is an SSD (solid state drive), and is a buffer memory comprising an SSD controller 10, a NAND flash memory (flash memory) 20, and a DRAM (dynamic random access memory). 21.

フラッシュメモリ20は、SSDのデータ記憶媒体であり、複数のフラッシュメモリチップから構成されている。本実施形態のSSDは、便宜的に4チャネルCH0〜CH3のマルチチャネル方式であり、各チャネルCH0〜CH3のそれぞれに対応するフラッシュメモリ201〜204を有する。   The flash memory 20 is an SSD data storage medium, and includes a plurality of flash memory chips. The SSD of this embodiment is a multi-channel system of 4 channels CH0 to CH3 for convenience, and has flash memories 201 to 204 corresponding to the channels CH0 to CH3, respectively.

SSDコントローラ10は、フラッシュメモリコントローラ11と、バッファマネージャモジュール12と、ホストインターフェースコントローラ13と、サブシステムモジュール14とを有する。   The SSD controller 10 includes a flash memory controller 11, a buffer manager module 12, a host interface controller 13, and a subsystem module 14.

フラッシュメモリコントローラ11は、チャネルCH0〜CH3毎にフラッシュメモリ201〜204のリード/ライト動作の制御及びデータ転送制御を実行する(図2を参照)。バッファマネージャモジュール12は、バッファメモリ21を制御し、バッファメモリとのデータ転送を制御する。ホストインターフェースコントローラ13は、ホストインターフェース15を介して、ホストシステム30とSSDとのデータやコマンドの転送を制御する。ホストシステム30は、例えばパーソナルコンピュータや各種のデジタル機器のCPU等である。   The flash memory controller 11 executes read / write operation control and data transfer control of the flash memories 201 to 204 for each of the channels CH0 to CH3 (see FIG. 2). The buffer manager module 12 controls the buffer memory 21 and controls data transfer with the buffer memory. The host interface controller 13 controls the transfer of data and commands between the host system 30 and the SSD via the host interface 15. The host system 30 is, for example, a CPU of a personal computer or various digital devices.

サブシステムモジュール14は、マイクロプロセッサ(MPU)から構成されており、SSDコントローラ10の全体的制御を実行する。サブシステムモジュール14は、例えばホストシステム30からのコマンドに応じて、データのライト動作及びリード動作に必要なコマンドをフラッシュメモリコントローラ11に出力する。   The subsystem module 14 is composed of a microprocessor (MPU) and executes the overall control of the SSD controller 10. The subsystem module 14 outputs, for example, commands necessary for data write operation and read operation to the flash memory controller 11 in accordance with commands from the host system 30.

(フラッシュメモリコントローラの構成)
図2に示すように、フラッシュメモリコントローラ11は、データ転送コントローラ(IOPSアクセラレーション・エンジン・モジュールとも呼ばれる)100と、チャネルCH0〜CH3毎のメモリコントローラ(以下、便宜的にNANDコントローラと表記する)101〜104と、チャネル間パリティコントローラ(以下、ECCコントローラと表記する)110とを含む。
(Configuration of flash memory controller)
As shown in FIG. 2, the flash memory controller 11 includes a data transfer controller (also referred to as an IOPS acceleration engine module) 100 and a memory controller for each of the channels CH0 to CH3 (hereinafter referred to as a NAND controller for convenience). 101 to 104 and an inter-channel parity controller (hereinafter referred to as an ECC controller) 110.

データ転送コントローラ100は、NANDコントローラ101〜104及びECCコントローラ110に対するデータ転送制御及び動作制御を実行する。NANDコントローラ101〜104はそれぞれ、チャネルCH0〜CH3毎のフラッシュメモリ201〜204に対するリード/ライトアクセス制御及びデータ転送制御を実行する。   The data transfer controller 100 executes data transfer control and operation control for the NAND controllers 101 to 104 and the ECC controller 110. The NAND controllers 101 to 104 execute read / write access control and data transfer control for the flash memories 201 to 204 for the channels CH0 to CH3, respectively.

ECCコントローラ110は、後述するように、チャネル間で誤り訂正処理(ECC:error checking and correcting)が可能な誤り訂正符号(error correcting code)データを生成する。誤り訂正符号データ(以下、ECCデータ)は、例えばパリティデータであり、ECCコントローラ110によるチャネル間の誤り訂正処理に使用される。   As will be described later, the ECC controller 110 generates error correcting code data that can be subjected to error correction and correction (ECC) between channels. Error correction code data (hereinafter referred to as ECC data) is, for example, parity data, and is used for error correction processing between channels by the ECC controller 110.

[フラッシュメモリコントローラの動作]
まず、マルチチャネル方式のSSDにおける通常のライト動作を説明する。
[Operation of flash memory controller]
First, a normal write operation in a multi-channel SSD will be described.

マルチチャネル方式のSSDでは、SSDコントローラ10は、ホストシステム30から発行されるライトコマンドに応じて、バッファメモリ21に格納される書き込み対象のデータをフラッシュメモリコントローラ11に転送する。   In the multi-channel SSD, the SSD controller 10 transfers data to be written stored in the buffer memory 21 to the flash memory controller 11 in response to a write command issued from the host system 30.

フラッシュメモリコントローラ11では、図2に示すように、データ転送コントローラ100は、チャネルCH0〜CH3毎に書き込み対象として有効なデータが準備されると、NANDコントローラ101〜104に対してデータ転送制御信号120を出力し、ライト動作のためのデータ転送を指示する。NANDコントローラ101〜104は、準備されたデータをフラッシュメモリ201〜204に転送する。これにより、チャネルCH0〜CH3毎のフラッシュメモリ201〜204に対して、準備されたデータが並列に書き込まれる。   In the flash memory controller 11, as shown in FIG. 2, when valid data is prepared as a write target for each of the channels CH <b> 0 to CH <b> 3, the data transfer controller 100 sends a data transfer control signal 120 to the NAND controllers 101 to 104. To instruct data transfer for a write operation. The NAND controllers 101-104 transfer the prepared data to the flash memories 201-204. Thereby, the prepared data is written in parallel to the flash memories 201 to 204 for the channels CH0 to CH3.

ここで、本実施形態では、チャネルCH0〜CH2のNANDコントローラ101〜103には、バッファマネージャモジュール12から転送されるデータが有効なデータとして準備される。このデータは、ホストシステム30から転送されて、バッファメモリ21に格納されるユーザデータである。   In this embodiment, the data transferred from the buffer manager module 12 is prepared as valid data in the NAND controllers 101 to 103 of the channels CH0 to CH2. This data is user data transferred from the host system 30 and stored in the buffer memory 21.

一方、チャネルCH3のNANDコントローラ104には、有効なデータとして、ECCコントローラ110により生成されたECCデータ(パリティデータ)が準備される。従って、他のフラッシュメモリ201〜203にデータが並列に書き込まれるときに、チャネルCH3のフラッシュメモリ204にはECCデータが書き込まれる。   On the other hand, ECC data (parity data) generated by the ECC controller 110 is prepared as valid data in the NAND controller 104 of the channel CH3. Accordingly, when data is written in parallel to the other flash memories 201 to 203, ECC data is written to the flash memory 204 of the channel CH3.

ECCコントローラ110は、チャネルCH0〜CH2のNANDコントローラ101〜103に準備された各ユーザデータを使用して、チャネル間の誤り訂正処理に使用されるECCデータを生成し、チャネルCH3のNANDコントローラ104に転送する。   The ECC controller 110 uses each user data prepared in the NAND controllers 101 to 103 of the channels CH0 to CH2 to generate ECC data used for error correction processing between channels, and sends it to the NAND controller 104 of the channel CH3. Forward.

次に、図3及び図4のフローチャートを参照して、本実施形態のライト動作及びECCデータ生成処理を説明する。   Next, the write operation and ECC data generation processing of this embodiment will be described with reference to the flowcharts of FIGS.

本実施形態では、フラッシュコマンドの発行時におけるライト動作の場合について説明する。なお、図4に示すように、通常のライトコマンドの発行時には、前述の通常のライト動作が実行される(ブロック405)。   In the present embodiment, a case of a write operation when a flash command is issued will be described. As shown in FIG. 4, when a normal write command is issued, the above-described normal write operation is executed (block 405).

フラッシュコマンドは、例えば電源オフ時に、フラッシュメモリ201〜204に書き込まれていないデータを保護するために、サブシステムモジュール14のMPUから発行される(ブロック400のYES)。フラッシュメモリコントローラ11は、フラッシュコマンドが発行されると、書き込み対象として有効なデータが準備されていないチャネルが存在する場合でも、強制的に各チャネルに対してライト動作を実行させる。   The flash command is issued from the MPU of the subsystem module 14 to protect data that has not been written in the flash memories 201 to 204, for example, when the power is turned off (YES in block 400). When a flash command is issued, the flash memory controller 11 forcibly causes each channel to execute a write operation even when there is a channel for which valid data is not prepared as a write target.

フラッシュメモリコントローラ11では、データ転送コントローラ100は、チャネルCH0〜CH2の中で、書き込み対象として有効なデータが準備されていないチャネル(ここではCH2とする)を検出する(ブロック401)。なお、前述したように、チャネルCH3は、有効なデータとしてECCデータが割り当てられるチャネルである。   In the flash memory controller 11, the data transfer controller 100 detects a channel (here, CH2) in which valid data is not prepared as a write target among the channels CH0 to CH2 (block 401). As described above, the channel CH3 is a channel to which ECC data is assigned as valid data.

ここで、図3は、フラッシュコマンドの発行時におけるライト動作をステップ(STEP1,STEP2,STEP3)毎に示す概念図である。即ち、ステップSTEP1において、チャネルCH0,CH1のNANDコントローラ101,102には、有効なデータとしてユーザデータ301,302がそれぞれ準備されている。一方、チャネルCH2のNANDコントローラ103には、ユーザデータが準備されておらず、書き込み対象として有効なデータがない状態である。   FIG. 3 is a conceptual diagram showing the write operation for each step (STEP1, STEP2, STEP3) when the flash command is issued. That is, in step STEP1, user data 301 and 302 are prepared as valid data in the NAND controllers 101 and 102 of the channels CH0 and CH1, respectively. On the other hand, in the NAND controller 103 of the channel CH2, user data is not prepared, and there is no valid data to be written.

ECCコントローラ110は、フラッシュコマンドの発行に応じて、ECCデータを生成し、チャネルCH3のNANDコントローラ104に転送する処理を実行する(ステップSTEP2)。このとき、ECCコントローラ110は、データ転送コントローラ100からチャネルCH0〜CH2のデータの準備が完了されたことを通知される。これにより、ECCコントローラ110は、フラッシュメモリ201〜204に対するライト動作が行なわれる前に、ECCデータを生成してチャネルCH3のNANDコントローラ104に転送できる。   The ECC controller 110 generates ECC data in response to the issuance of the flash command, and executes a process of transferring it to the NAND controller 104 of the channel CH3 (step STEP2). At this time, the ECC controller 110 is notified from the data transfer controller 100 that the preparation of data of the channels CH0 to CH2 has been completed. Thus, the ECC controller 110 can generate ECC data and transfer it to the NAND controller 104 of the channel CH3 before the write operation to the flash memories 201 to 204 is performed.

データ転送コントローラ100は、ユーザデータが準備されないチャネルCH2のNANDコントローラ103に対して、初期値データを準備する(ブロック402)。この初期値データとは、消去処理直後のフラッシュメモリの記憶状態であり、通常ではオール1の記憶値である。SSDでは、フラッシュメモリにデータを書き込む前に、消去処理が実行される。従って、ライト動作の直前では、フラッシュメモリは初期値(オール1)が記憶されている状態となる。   The data transfer controller 100 prepares initial value data for the NAND controller 103 of the channel CH2 for which user data is not prepared (block 402). This initial value data is the storage state of the flash memory immediately after the erasing process, and is normally all 1 stored value. In the SSD, an erasure process is executed before writing data to the flash memory. Therefore, immediately before the write operation, the flash memory is in a state where the initial value (all 1) is stored.

ECCコントローラ110は、チャネルCH0〜CH2において、書き込み対象のユーザデータ及び初期値データの準備が完了すると、これらのデータを使用してECCデータを生成する(ブロック403)。即ち、図3に示すように、ECCコントローラ110は、チャネルCH0,CH1の有効なデータであるユーザデータ301,302及び初期値データ303を使用して、ECCデータを生成してチャネルCH3のNANDコントローラ104に転送する(ステップSTEP2)。   When the preparation of user data to be written and initial value data is completed in the channels CH0 to CH2, the ECC controller 110 generates ECC data using these data (block 403). That is, as shown in FIG. 3, the ECC controller 110 generates ECC data using user data 301, 302 and initial value data 303, which are valid data of the channels CH0 and CH1, and generates a NAND controller of the channel CH3. It transfers to 104 (step STEP2).

データ転送コントローラ100は、チャネルCH0,CH1,CH3のNANDコントローラ101,102,104に対してデータ転送制御信号120を出力し、ライト動作のためのデータ転送を指示する(ブロック404)。   The data transfer controller 100 outputs a data transfer control signal 120 to the NAND controllers 101, 102, and 104 of the channels CH0, CH1, and CH3 to instruct data transfer for a write operation (block 404).

即ち、図3に示すように、NANDコントローラ101,102,104は、準備されたデータ301,302及びECCデータをフラッシュメモリ201,202,204に転送する(ステップSTEP3)。これにより、チャネルCH0,CH1,CH3のフラッシュメモリ201,202,204に対して、準備されたデータ301,302及びECCデータが並列に書き込まれる。   That is, as shown in FIG. 3, the NAND controllers 101, 102, 104 transfer the prepared data 301, 302 and ECC data to the flash memories 201, 202, 204 (step STEP3). As a result, the prepared data 301, 302 and ECC data are written in parallel to the flash memories 201, 202, 204 of the channels CH0, CH1, CH3.

ここで、図3に示すように、チャネルCH2には書き込み対象として有効なデータは準備されていないため、当該チャネルCH2のフラッシュメモリ203には、ライト動作は実行されない。即ち、チャネルCH2のフラッシュメモリ203は、消去処理直後の記憶状態、即ち初期値データが記憶されている状態である。   Here, as shown in FIG. 3, since no valid data is prepared as a write target in the channel CH2, the write operation is not executed in the flash memory 203 of the channel CH2. That is, the flash memory 203 of the channel CH2 is in a storage state immediately after the erasing process, that is, a state in which initial value data is stored.

ECCコントローラ110は、リード動作によりチャネルCH0〜CH3のフラッシュメモリ201〜204からデータが読み出されたときに、チャネルCH3のフラッシュメモリ204に格納されているECCデータを使用してチャネル間の誤り訂正処理を実行することができる。   The ECC controller 110 corrects errors between channels using ECC data stored in the flash memory 204 of the channel CH3 when data is read from the flash memories 201 to 204 of the channels CH0 to CH3 by the read operation. Processing can be executed.

以上のように本実施形態によれば、マルチチャネル方式のSSDにおいて、例えばフラッシュコマンドの発行時に、書き込み対象の有効なデータ(ユーザデータ)が準備されていないチャネルが存在する場合でも、当該チャネルに対していわば補間データとして初期値データを準備する。これにより、ECCコントローラ110は、各チャネルで準備された有効なデータと初期値データを使用して、チャネル間の誤り訂正処理に有効なECCデータを生成することができる。   As described above, according to the present embodiment, in a multi-channel SSD, for example, even when there is a channel for which valid data (user data) to be written is not prepared when a flash command is issued, In contrast, initial value data is prepared as interpolation data. Thereby, the ECC controller 110 can generate ECC data effective for error correction processing between channels using the effective data and initial value data prepared in each channel.

更に、本実施形態では、各チャネルのフラッシュメモリにデータを並列に書き込む場合に、書き込み対象の有効なデータが準備されていないチャネル(CH2)に対してはライト動作を実行する必要がない。即ち、当該チャネル(CH2)に準備されているデータは初期値データであるため、フラッシュメモリ(203)に対するライトアクセスは不要となる。従って、マルチチャネル方式のライト動作において、当該チャネル(CH2)のライト動作を省略できるため、結果としてライト動作の速度を高速化を実現することができる。また、フラッシュメモリに対するライト回数を削減できるため、フラッシュメモリの寿命も延命できる効果もある。   Furthermore, in this embodiment, when data is written in parallel to the flash memory of each channel, it is not necessary to perform a write operation for a channel (CH2) for which valid data to be written is not prepared. That is, since the data prepared for the channel (CH2) is the initial value data, the write access to the flash memory (203) becomes unnecessary. Accordingly, the write operation of the channel (CH2) can be omitted in the multi-channel write operation, and as a result, the speed of the write operation can be increased. In addition, since the number of writes to the flash memory can be reduced, there is an effect that the life of the flash memory can be extended.

即ち、補間データとして初期値データ以外の任意のデータを準備した場合、チャネル間の誤り訂正処理に有効なECCデータを生成するには、当該任意のデータをチャネル(CH2)のフラッシュメモリ(203)に書き込むことが必要となる。本実施形態では、補間データとして、フラッシュメモリ(203)に書き込む必要がない初期値データを使用するため、ライト動作を省略できる。換言すれば、初期値データは、ライト動作を実行せずに、そのフラッシュメモリから読み出すことができるデータである。   That is, when arbitrary data other than the initial value data is prepared as interpolation data, in order to generate ECC data effective for error correction processing between channels, the arbitrary data is stored in the flash memory (203) of the channel (CH2). It is necessary to write to. In the present embodiment, initial value data that does not need to be written to the flash memory (203) is used as the interpolation data, so that the write operation can be omitted. In other words, the initial value data is data that can be read from the flash memory without executing the write operation.

要するに、補間データとして初期値データを使用することにより、ライトアクセス速度に関係するライト処理時間を削減し、かつフラッシュメモリの寿命に関係するライト回数の削減を実現できるため、SSDのライト処理効率の向上を図ることができる。   In short, by using the initial value data as the interpolation data, the write processing time related to the write access speed can be reduced and the number of writes related to the life of the flash memory can be reduced. Improvements can be made.

なお、本実施形態において、初期値データは、データ転送コントローラ100により準備されるが、ECCコントローラ110により予め固定データとして用意されている構成でも良い。この場合には、ECCコントローラ110は、データ転送コントローラ100からデータが準備されていないチャネル(CH2)の通知に応じて、当該チャネル(CH2)の補間データとして予め用意された初期値データを使用してECCデータを生成する。   In the present embodiment, the initial value data is prepared by the data transfer controller 100, but a configuration prepared by the ECC controller 110 as fixed data in advance may be used. In this case, the ECC controller 110 uses the initial value data prepared in advance as the interpolation data of the channel (CH2) in response to the notification of the channel (CH2) for which data is not prepared from the data transfer controller 100. ECC data is generated.

本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。   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…SSDコントローラ、11…フラッシュメモリコントローラ、
12…バッファマネージャモジュール、13…ホストインターフェースコントローラ、
14…サブシステムモジュール、15…ホストインターフェース、
20,201〜204…NAND型フラッシュメモリ、21…バッファメモリ(DRAM)、
30…ホストシステム、100…データ転送コントローラ、
101〜104…メモリコントローラ(NANDコントローラ)、
110…チャネル間パリティコントローラ(ECCコントローラ)。
10 ... SSD controller, 11 ... Flash memory controller,
12 ... Buffer manager module, 13 ... Host interface controller,
14 ... subsystem module, 15 ... host interface,
20, 201-204 ... NAND type flash memory, 21 ... buffer memory (DRAM),
30 ... Host system, 100 ... Data transfer controller,
101-104 ... Memory controller (NAND controller),
110: Inter-channel parity controller (ECC controller).

Claims (10)

複数チャネルの各不揮発性メモリにデータを並列に書き込むライト制御手段と、
前記ライト制御手段による書き込み動作の前に、前記各チャネル毎に準備されるデータを使用して誤り訂正符号データを生成する誤り訂正制御手段と、
不揮発性メモリの書き込み対象のデータが準備されないチャネルに対して、当該不揮発性メモリの初期値データを前記誤り訂正制御手段の生成処理に使用するデータとして準備するデータ制御手段と
を具備するデータ記憶装置。
Write control means for writing data in parallel to each of the non-volatile memories of a plurality of channels;
Error correction control means for generating error correction code data using data prepared for each channel before the write operation by the write control means;
A data storage device comprising data control means for preparing initial value data of the nonvolatile memory as data to be used for generation processing of the error correction control means for a channel for which data to be written to the nonvolatile memory is not prepared .
前記データ制御手段は、
前記初期値データとして、前記不揮発性メモリに対する消去処理後の記憶値データを使用する請求項1に記載のデータ記憶装置。
The data control means includes
The data storage device according to claim 1, wherein stored value data after erasure processing on the nonvolatile memory is used as the initial value data.
前記複数チャネルの中で前記誤り訂正符号データが書き込まれる不揮発性メモリのチャネルが設定されており、
前記ライト制御手段は、
前記書き込み対象のデータが準備されないチャネルを除く各チャネルの不揮発性メモリに対して、前記書き込み対象のデータ及び前記誤り訂正符号データを並列に書き込むように構成されている請求項1または請求項2のいずれか1項に記載のデータ記憶装置。
A non-volatile memory channel in which the error correction code data is written among the plurality of channels is set,
The light control means includes
The data to be written and the error correction code data are written in parallel to a nonvolatile memory of each channel except for a channel in which the data to be written is not prepared. The data storage device according to any one of the above.
前記データ制御手段は、
前記ライト制御手段がフラッシュコマンドに応じたライト制御を実行するときに、前記初期値データを準備する処理を実行する請求項1から請求項3のいずれか1項に記載のデータ記憶装置。
The data control means includes
4. The data storage device according to claim 1, wherein when the write control unit executes a write control according to a flash command, a process for preparing the initial value data is executed. 5.
前記データ制御手段は、
前記誤り訂正制御手段に対して、前記誤り訂正符号データの生成に必要なデータとして前記書き込み対象のデータ及び前記初期値データの準備が完了したことを通知する手段を含む請求項1から請求項4のいずれか1項に記載のデータ記憶装置。
The data control means includes
5. The apparatus according to claim 1, further comprising means for notifying the error correction control means that preparation of the data to be written and the initial value data has been completed as data necessary for generating the error correction code data. The data storage device according to any one of the above.
複数チャネルの不揮発性メモリを有するデータ記憶装置に適用するメモリ制御装置であって、
前記複数チャネルの各不揮発性メモリにデータを並列に書き込むライト制御手段と、
前記ライト制御手段による書き込み動作の前に、前記各チャネル毎に準備されるデータを使用して誤り訂正符号データを生成する誤り訂正制御手段と、
前記ライト制御手段に対して不揮発性メモリの書き込み対象のデータをチャネル毎に準備し、当該書き込み対象のデータを準備できないチャネルに対して不揮発性メモリの初期値データを準備するデータ制御手段と
を具備するメモリ制御装置。
A memory control device applied to a data storage device having a non-volatile memory of a plurality of channels,
Write control means for writing data in parallel to the nonvolatile memories of the plurality of channels;
Error correction control means for generating error correction code data using data prepared for each channel before the write operation by the write control means;
Data control means for preparing data to be written in the nonvolatile memory for each channel with respect to the write control means and preparing initial value data in the nonvolatile memory for a channel in which the data to be written cannot be prepared. Memory control device.
前記データ制御手段は、
前記初期値データとして、前記不揮発性メモリに対する消去処理後の記憶値データを使用する請求項6に記載のメモリ制御装置。
The data control means includes
The memory control device according to claim 6, wherein stored value data after erasure processing for the nonvolatile memory is used as the initial value data.
前記複数チャネルの中で前記誤り訂正符号データが書き込まれる不揮発性メモリのチャネルが設定されており、
前記ライト制御手段は、
前記書き込み対象のデータが準備されないチャネルを除く各チャネルの不揮発性メモリに対して、前記書き込み対象のデータ及び前記誤り訂正符号データを並列に書き込むように構成されている請求項6または請求項7のいずれか1項に記載のメモリ制御装置。
A non-volatile memory channel in which the error correction code data is written among the plurality of channels is set,
The light control means includes
The data of the write target and the error correction code data are written in parallel to a nonvolatile memory of each channel except a channel where the data of the write target is not prepared. The memory control device according to any one of the above.
前記データ制御手段は、
前記ライト制御手段がフラッシュコマンドに応じたライト制御を実行するときに、前記初期値データを準備する処理を実行する請求項6から請求項8のいずれか1項に記載のメモリ制御装置。
The data control means includes
9. The memory control device according to claim 6, wherein when the write control unit executes a write control according to a flash command, a process for preparing the initial value data is executed. 10.
複数チャネルの不揮発性メモリを有するデータ記憶装置に適用するメモリ制御方法であって、
複数チャネルの各不揮発性メモリにデータを並列に書き込むために、前記各チャネル毎に書き込み対象のデータを準備し、
前記書き込み対象のデータが準備されないチャネルに対して、当該不揮発性メモリの初期値データを準備し、
前記各チャネル毎に準備される書き込み対象のデータ及び前記初期値データを使用して誤り訂正符号データを生成するメモリ制御方法。
A memory control method applied to a data storage device having a non-volatile memory of a plurality of channels,
In order to write data to each nonvolatile memory of a plurality of channels in parallel, prepare data to be written for each channel,
For the channel for which the data to be written is not prepared, prepare initial value data of the nonvolatile memory,
A memory control method for generating error correction code data using write target data and the initial value data prepared for each channel.
JP2010261174A 2010-11-24 2010-11-24 Data storage device, memory control device, and memory control method Withdrawn JP2012113476A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010261174A JP2012113476A (en) 2010-11-24 2010-11-24 Data storage device, memory control device, and memory control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010261174A JP2012113476A (en) 2010-11-24 2010-11-24 Data storage device, memory control device, and memory control method

Publications (1)

Publication Number Publication Date
JP2012113476A true JP2012113476A (en) 2012-06-14

Family

ID=46497635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010261174A Withdrawn JP2012113476A (en) 2010-11-24 2010-11-24 Data storage device, memory control device, and memory control method

Country Status (1)

Country Link
JP (1) JP2012113476A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118784A (en) * 2010-12-01 2012-06-21 Toshiba Corp Data storage device, memory control device and memory control method
WO2014039297A3 (en) * 2012-09-06 2014-06-19 Advanced Micro Devices, Inc. Channel rotating error correction code
CN110457160A (en) * 2019-07-02 2019-11-15 深圳市金泰克半导体有限公司 A kind of error correction method and device

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012118784A (en) * 2010-12-01 2012-06-21 Toshiba Corp Data storage device, memory control device and memory control method
US8914592B2 (en) 2010-12-01 2014-12-16 Kabushiki Kaisha Toshiba Data storage apparatus with nonvolatile memories and method for controlling nonvolatile memories
WO2014039297A3 (en) * 2012-09-06 2014-06-19 Advanced Micro Devices, Inc. Channel rotating error correction code
KR20150042221A (en) * 2012-09-06 2015-04-20 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Channel rotating error correction code
US9069698B2 (en) 2012-09-06 2015-06-30 Advanced Micro Devices, Inc. Channel rotating error correction code
KR101668400B1 (en) 2012-09-06 2016-10-21 어드밴스드 마이크로 디바이시즈, 인코포레이티드 Channel rotating error correction code
CN110457160A (en) * 2019-07-02 2019-11-15 深圳市金泰克半导体有限公司 A kind of error correction method and device
CN110457160B (en) * 2019-07-02 2023-11-17 深圳市金泰克半导体有限公司 Error correction method and device

Similar Documents

Publication Publication Date Title
JP5032027B2 (en) Semiconductor disk control device
EP3069348B1 (en) Data management with modular erase in a data storage system
US20120166911A1 (en) Data storage apparatus and apparatus and method for controlling nonvolatile memories
JP5367686B2 (en) Data storage device, memory control device, and memory control method
JP2011253251A (en) Data storage device and data writing method
US11119693B2 (en) Method of operating storage device for improving QOS latency and storage device performing the same
JP2010009548A (en) Storage device, control device, storage system, and storage method
JP6142860B2 (en) Disk array device, disk control device, solid state drive, disk control method, and program therefor
JP2015018451A (en) Memory controller, storage device, and memory control method
US11861223B2 (en) Memory controller and storage device for scheduling addresses
US8848448B2 (en) Semiconductor memory device and operating method thereof
US11017865B2 (en) Memory controller determining optimal read voltage and operating method thereof
US20160027518A1 (en) Memory device and method for controlling the same
US20150220394A1 (en) Memory system and method of controlling memory system
US20130019054A1 (en) Flash memory device and method performing erase operation using over program
JP2012155541A (en) Data storage device, memory control device, and memory control method
JP2012248110A (en) Memory unit having multiple channels and writing control method including error correction channel determination therein
JP2009301194A (en) System for controlling semiconductor memory device
KR20160074025A (en) Operating method for data storage device
US20160011937A1 (en) Semiconductor memory device, memory controller, and control method of memory controller
JP4922442B2 (en) Buffer management device, storage device including the same, and buffer management method
TWI393146B (en) Flash memory controller having configuring unit of error correction code (ecc) capability and method thereof
JP2012113476A (en) Data storage device, memory control device, and memory control method
JP4861497B2 (en) Data storage device and memory adjustment method
US9886399B2 (en) Storage control device, storage device, information processing system, and storage control method therefor

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20140204