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

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

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

Info

Publication number
JP2012155541A
JP2012155541A JP2011014178A JP2011014178A JP2012155541A JP 2012155541 A JP2012155541 A JP 2012155541A JP 2011014178 A JP2011014178 A JP 2011014178A JP 2011014178 A JP2011014178 A JP 2011014178A JP 2012155541 A JP2012155541 A JP 2012155541A
Authority
JP
Japan
Prior art keywords
channel
correction
error
data
error correction
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
JP2011014178A
Other languages
English (en)
Inventor
Kiyotaka Iwasaki
清隆 岩崎
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 JP2011014178A priority Critical patent/JP2012155541A/ja
Priority to US13/301,335 priority patent/US8713410B2/en
Publication of JP2012155541A publication Critical patent/JP2012155541A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】チャネル間誤り訂正処理の効率化を実現し、リード動作の効率を向上できるデータ記憶装置を提供することにある。
【解決手段】実施形態によれば、データ記憶装置は、チャネルコントローラと、誤り訂正コントローラと、追加訂正モジュールとを具備する。チャネルコントローラは、複数チャネルの各不揮発性メモリに対してデータの書き込み、読み出しを制御する。誤り訂正コントローラは、リード動作時に、前記チャネルコントローラにより読み出されるデータの中で指定の訂正対象に対して、チャネル間誤り訂正符号データを使用してチャネル間誤り訂正処理を実行する。追加訂正モジュールは、前記チャネルコントローラにより前記チャネル間誤り訂正処理に必要なデータを読み出す訂正読み出し動作中に、前記チャネルコントローラによるエラー検出に基づいて追加訂正対象を指定し、当該追加訂正対象を前記誤り訂正コントローラに通知する。
【選択図】図2

Description

本発明の実施形態は、不揮発性メモリを記憶媒体とするデータ記憶装置に関する。
近年、データ記憶装置として、書き換え可能な不揮発性メモリであるNAND型フラッシュメモリ(以下、単にフラッシュメモリと表記する場合がある)を記憶媒体とするSSD(solid state drive)の開発が推進されている。
SSDでは、複数のフラッシュメモリがチャネル単位に管理されて、各チャネルに対してデータを並列に書き込むマルチチャネル方式が一般的である。このようなマルチチャネル方式では、各チャネルに書き込むデータ(ユーザデータ)を使用して、チャネル間誤り訂正符号(ICP: Inter Channel Parity)データが生成される。SSDは、リード動作時に、セクタ単位のエラー訂正が不能な場合に、チャネル間誤り訂正符号を使用するチャネル間誤り訂正処理を実行する。
特開2006−190346号公報
従来のSSDでは、チャネル間誤り訂正符号を生成して保存することにより、チャネル間誤り訂正処理を行なうことが可能である。このチャネル間誤り訂正処理では、読み出し要求の論理ページ内の訂正対象が指定されることにより、当該訂正対象に対する復号処理(データ修復処理)が実行される。
ところで、チャネル間誤り訂正処理では、復号処理に必要なデータの全てを各チャネルから読み出す訂正読み出し動作が実行される。この訂正読み出し動作中に、指定された訂正対象以外でエラー検出された追加訂正対象が発生すると、この追加訂正対象に基づいた再度の復号処理を行なう必要がある。このため、チャネル間誤り訂正処理の処理時間が増大することにより、リード動作の効率低下を招く可能性がある。
本発明の目的は、チャネル間誤り訂正処理の効率化を実現し、リード動作の効率を向上できるデータ記憶装置を提供することにある。
実施形態によれば、データ記憶装置は、チャネル制御手段と、誤り訂正制御手段と、追加訂正処理手段とを具備する。チャネル制御手段は、複数チャネルの各不揮発性メモリに対してデータの書き込み、読み出しを制御する。誤り訂正制御手段は、リード動作時に、前記チャネル制御手段により読み出されるデータの中で指定の訂正対象に対して、チャネル間誤り訂正符号データを使用してチャネル間誤り訂正処理を実行する。追加訂正処理手段は、前記チャネル制御手段により前記チャネル間誤り訂正処理に必要なデータを読み出す訂正読み出し動作中に、前記チャネル制御手段によるエラー検出に基づいて追加訂正対象を指定し、当該追加訂正対象を前記誤り訂正制御手段に通知する。
実施形態に関するデータ記憶装置の構成を説明するためのブロック図。 実施形態に関するフラッシュメモリコントローラの構成を説明するためのブロック図。 実施形態に関する各チャネルのブロック構成を説明するための図。 実施形態に関する論理ブロックの概念を説明するための図。 実施形態に関する論理ページの概念を説明するための図。 実施形態に関する論理ページの概念を説明するための図。 実施形態に関する論理ページの概念を説明するための図。 実施形態に関する訂正対象の一例を示す図。 実施形態に関する追加訂正対象の一例を示す図。 実施形態に関する訂正読み出し動作の手順を説明するためのタイミングチャート。 実施形態に関するパイプライン処理を説明するためのタイミングチャート。 実施形態に関するリード動作の手順を説明するためのフローチャート。 実施形態に関する訂正読み出し動作の手順を説明するためのフローチャート。
以下図面を参照して、実施形態を説明する。
[データ記憶装置の構成]
図1は、実施形態のデータ記憶装置の構成を示すブロック図である。
図1に示すように、実施形態のデータ記憶装置は、SSD(solid state drive)10である。SSD10は、NAND型フラッシュメモリ(フラッシュメモリ)11と、DRAM(dynamic random access memory)からなるバッファメモリ12と、SSDコントローラ20とを有する。
フラッシュメモリ11は、SSD10のデータ記憶媒体である。本実施形態のSSD10はマルチチャネル方式であり、後述するように、各チャネルCH0〜CHnのそれぞれに対応するフラッシュメモリチップから構成されているフラッシュメモリ11を有する。
SSDコントローラ20は、ホストインターフェースコントローラ21と、DRAMコントローラ22と、マイクロプロセッサ(CPU)23と、フラッシュメモリコントローラ24と、バス25とを有する。
ホストインターフェースコントローラ21は、SSD10とホストシステム30との間で通信する機能を有し、データやコマンドの入出力(データ転送)を制御する。ホストシステム30は、例えばパーソナルコンピュータである。DRAMコントローラ22は、バッファメモリ12を制御し、バッファメモリ12に対する入出力(データ転送)を制御する。バッファメモリ12は、ホストシステム30から受信したデータ(ライトデータ)またはフラッシュメモリ11から読み出されたデータ(リードデータ)を一時的に保存する。なお、バッファメモリ12は、フラッシュメモリ11のアクセス回数の統計情報や、フラッシュメモリ11に記憶するデータを管理するためのアドレス変換情報なども格納する。
マイクロプロセッサ(CPU)23は、バス25を介してホストインターフェースコントローラ21、DRAMコントローラ22及びフラッシュメモリコントローラ24を制御する。CPU23は、ホストシステム30からのコマンドに応じて、データのライト動作またはリード動作に必要なコマンド処理を実行する。
また、CPU23は、チャネル間誤り訂正処理を制御する。チャネル間誤り訂正処理は、チャネル間誤り訂正符号(ICP: Inter Channel Parity)を使用する処理であり、ICP処理と表記する場合がある。なお、チャネル間誤り訂正符号は、ICパリティデータと表記する場合がある。また、CPU23は、ハードウェア(HW)であるフラッシュメモリコントローラ24に対して、ファームウェア(firmware)を意味するFWと表記する場合がある。
フラッシュメモリコントローラ(以下、フラッシュコントローラと表記する場合がある)24は、複数チャネルCH0〜CHnのフラッシュメモリチップから構成されているフラッシュメモリ11のリード、ライト動作の制御及びデータ転送制御を実行する(図2を参照)。SSD10は、ホスト側とフラッシュメモリ側のデータ転送レートが異なるため、ホストシステム30から受信したデータを一時的に保存するバッファメモリ12を有する。フラッシュコントローラ24は、バス25を介してバッファメモリ12からフラッシュメモリ11へのデータ転送要求の形態に変換して、内部のコマンドキューに格納する構成である。
(フラッシュコントローラの構成)
図2に示すように、フラッシュコントローラ24は、バスインターフェース40と、チャネルコントローラ41と、レジスタ42と、追加訂正モジュール43と、チャネル間同期コントローラ44と、チャネル間誤り訂正符号コントローラ(以下、ICPコントローラと表記する場合がある)45とを有する。
バスインターフェース40は、SSDコントローラ20のバス25に接続し、データ転送を制御する。チャネルコントローラ41は、チャネルCH0〜CHn毎に、フラッシュメモリ11-CH0〜11-CHnに対する入出力(アクセス)を制御するコントローラ(以下、NANDコントローラと表記する)41-CH0〜41-CHnからなる。
チャネル間同期コントローラ44は、後述する訂正読み出し動作時に、ICPコントローラ45に対して各チャネルCH0〜CHnからのデータを転送するときの同期を取る。具体的には、チャネル間同期コントローラ44は、復号処理に必要なデータの順番を揃えてICPコントローラ45に転送するデータ転送制御を実行する。
ICPコントローラ45は、チャネル間誤り訂正符号(ICパリティデータ)を生成するエンコーダ46、及び当該ICパリティデータを使用して復号処理(データ修復処理)を実行するデコーダ47を有する。さらに、本実施形態のフラッシュコントローラ24は、追加訂正モジュール(add correction module)43を有する。追加訂正モジュール43は、訂正読み出し動作中に、FW23により指定される訂正対象以外でのデータのエラー検出に基づいて、追加訂正対象を指定してICPコントローラ45に通知する。
ここで、本実施形態では、フラッシュコントローラ24は、リード動作時に、ICP処理が必要なエラー検出がされた場合に、データの修復処理(復号処理)に必要なデータをフラッシュメモリ11から読み出す動作を訂正読み出し動作と定義する。即ち、フラッシュコントローラ24は、訂正読み出し動作の中に、ICPコントローラ45により復号処理で使用するデータを全て読み出すフェーズを有する。追加訂正モジュール43は、当該フェーズで、エラー検出に基づいて追加訂正対象としてICPコントローラ45に通知する。
[訂正読み出し動作]
以下、本実施形態のフラッシュコントローラ24による訂正読み出し動作を説明する。
本実施形態のSSD10では、フラッシュコントローラ24は、論理ページ単位でライト動作を実行する。即ち、フラッシュメモリ11には、1回のライト動作で論理ページ単位のデータが書き込まれる。この場合、フラッシュコントローラ24は、各チャネルCH0〜CHnのフラッシュメモリ11-CH0〜11-CHnに対して、論理ページ単位のデータを並列に書き込む。
さらに、本実施形態のSSD10では、ICPコントローラ45は、ライト動作により書き込む各チャネルCH0〜CHnのデータを使用して、エンコーダ46によりチャネル間誤り訂正符号(ICパリティデータ)を論理ページ単位で生成する。フラッシュコントローラ24は、生成されたICパリティデータを、指定のチャネルCHnのフラッシュメモリ11-CHnに書き込む。ICパリティデータは、例えばリードソロモン(Reed-Solomon)符号データである。
以下、図3〜7を参照して、論理ブロック及び論理ページの概念を説明する。
SSD10では、フラッシュメモリ11内でデータを1回の消去動作(erase)で消去する単位としてブロック(Block)が用いられる。図3は、各チャネルCH0〜CHnのフラッシュメモリ11-CH0〜11-CHnの内部を、ブロック(Block)構成として示す図である。ここで、論理ブロックとは、各チャネルCH0〜CHnのフラッシュメモリ11-CH0〜11-CHnから1ブロックずつを選択し、一纏めにして処理できる単位である。
図4(A)〜(C)は、本実施形態の論理ブロックの構成として、論理ブロック0(LB0)〜2(LB2)の具体例を示す。即ち、図3及び図4(A)に示すように、論理ブロック0(LB0)は、チャネル0のブロック0、チャネル1のブロック3、チャネル2のブロック7、及びチャネルnのブロック3を一纏めにした構成である。論理ブロック1(LB1)は、図3及び図4(B)に示すように、チャネル0のブロック2、チャネル1のブロック1、チャネル2のブロック4、及びチャネルnのブロック7を一纏めにした構成である。さらに、論理ブロック2(LB2)は、図3及び図4(C)に示すように、チャネル0のブロック6、チャネル1のブロック0、チャネル2のブロック1、及びチャネルnのブロック1を一纏めにした構成である。
次に、図5〜7を参照して、論理ページの概念を説明する。
前述のように、論理ブロック500は、各チャネル毎のブロック(Block)から構成されている。1つのブロック(Block)501は、ブロックより容量的に小さい単位のページ(Page)から構成されている。1つのページ(Page)502は、さらに容量的に小さい単位のプレーン600(plane0),601(plane1)から構成される。
図6は、論理ページmとして、各チャネル毎のページ(Page m)を一纏めにした構成を示す。図5及び図6に示す概念から、論理ページ700の概念は、図7に示すような構成として表現できる。
ここで、SSD10では、フラッシュコントローラ24は、クラスタ(cluster)単位でフラッシュメモリ11からデータを読み出すリード動作を実行する。1クラスタは、例えば8セクタである。また、1プレーン(plane0またはplane1)は、例えば2クラスタ分に相当する。従って、1論理ページ700は、1チャネル分が4クラスタ(32セクタ)で、32セクタにチャネル数を掛けた容量となる。
次に、図12のフローチャートを参照して、リード動作を説明する。
図12に示すように、フラッシュコントローラ24は、FW23からのコマンドに応じて、各チャネルCH0〜CHnのフラッシュメモリ11-CH0〜11-CHnをアクセスし、読み出し要求のデータを読み出すリード動作を実行する(ブロック1201)。フラッシュコントローラ24は、NANDコントローラ41-CH0〜41-CHnがそれぞれ、チャネルCH0〜CHn毎のフラッシュメモリ11-CH0〜11-CHnからデータを読み出す場合に、セクタ単位のエラー検出を実行する(ブロック1202)。
ここで、フラッシュメモリ11に記憶されるデータのフォーマットでは、セクタ毎又はクラスタ毎に誤り訂正符号(error correcting code、以下ECCデータと表記する)が付加されている。NANDコントローラ41-CH0〜41-CHnは、このECCデータを使用して、エラー訂正を行なってデータ修復を実行する(ブロック1202のYES,1203のYES)。フラッシュコントローラ24は、エラー検出されないデータ又はデータ修復されたデータをバス25を介してDRAMコントローラ22に転送する(ブロック1205)。
一方、フラッシュコントローラ24は、リード動作時に、セクタ単位又はクラスタ単位でのエラー訂正が不能である場合には、ICP処理が必要であることをFW23に通知する(ブロック1204)。ICPコントローラ45は、ライト動作時に生成されたICパリティデータを使用するICP処理を実行して、データ修復を実行する。フラッシュコントローラ24は、FW23からのコマンドに応じて、ICP処理を含む訂正読み出し動作を実行する(ブロック1300)。
次に、図10のタイミングチャート及び図13のフローチャートを参照して、訂正読み出し動作の手順を説明する。
本実施形態では、ライト動作時に、ICPコントローラ45は、2プレーン分のエラー訂正可能なICパリティデータを生成する。この生成されたICパリティデータは、指定のチャネルCHnのフラッシュメモリ11-CHnに書き込まれる。ここで、1論理ページ内でエラー訂正可能なプレーン(plane)数の最大値は、符号方式に依存するが、例えばリードソロモン符号の場合には2チャネル分のICパリティデータで、2プレーンである。この場合、1論理ページは、例えばチャネル数が16で計32プレーン(16×2)のデータである。このデータに対して付加されるICパリティデータは、符号長が32Byte相当のリードソロモン符号である。
FW23は、フラッシュコントローラ24からの通知に基づいて、リード動作で読み出される論理ページ内でエラー訂正する訂正対象を指定する(ブロック1001)。具体的には、FW23は、バス25を介してフラッシュコントローラ24のレジスタ42に、訂正対象であるプレーンを設定する。このレジスタ42を介して、訂正対象プレーンは、ICPコントローラ45に通知される(ブロック1001A)。また、訂正対象プレーンは、追加訂正モジュール43にも通知される(ブロック1001B)。
本実施形態では、ICPコントローラ45は、フラッシュメモリ11の故障モードの一つにあるプレーン(plane0またはplane1)の消失に対するデータ修復も行なう。このため、FW23は、プレーン単位(plane0またはplane1)で訂正対象を設定する。
図8(A)〜(D)は、FW23が設定可能な訂正対象パターンの一例を示す図である。即ち、図8(A)は、1論理ページ701内で、1プレーン801(例えばチャネルCH1のplane0)が訂正対象として設定された場合を示す図である。図8(B)は、2プレーン802A,802Bが訂正対象として設定された場合を示す図である。この場合、2プレーン802A,802Bは、同一チャネル(例えばCH2)のplane0とplane1である。また、図8(C)は、訂正対象の2プレーン803A,803Bが、異なるチャネル(例えばCHn,CH2)のplane0とplane1の場合である。図8(D)は、訂正対象の2プレーン804A,804Bが、異なるチャネル(例えばCH1,CH3)のplane0側のみの場合である。さらに、ICパリティデータが書き込まれたプレーンについても、訂正対象として設定が可能である。
FW23は、訂正対象を指定した後に、訂正読み出し動作を指示するコマンドを発行する(ブロック1002)。このコマンドは、バス25を介してフラッシュコントローラ24のレジスタ42に設定される。NANDコントローラ41-CH0〜41-CHnは、レジスタ42に設定されたコマンドに基づいて、指定の論理ページに対するリード要求を認識する(ブロック1003)。この訂正読み出し動作では、NANDコントローラ41-CH0〜41-CHnが、ICPコントローラ45により復号処理で使用する全データを読み出すフェーズが含まれる。
NANDコントローラ41-CH0〜41-CHnは、各チャネルCH0〜CHnのフラッシュメモリ11-CH0〜11-CHnに対してリードコマンドを発行する(ブロック1004)。NANDコントローラ41-CH0〜41-CHnは、フラッシュメモリ11-CH0〜11-CHnから1セクタ分のデータのリードが完了すると、各セクタデータに付加されているECCデータを使用したエラー検出を実行する。NANDコントローラ41-CH0〜41-CHnは、エラー発生がなければ、チャネル間同期コントローラ44に全てのセクタデータが準備されたことを通知する(ブロック1005のYES)。
チャネル間同期コントローラ44は、チャネル間の同期を取りながら、NANDコントローラ41-CH0〜41-CHnからICPコントローラ45にデータを転送することを指示する(ブロック1006)。この転送要求に応じて、NANDコントローラ41-CH0〜41-CHnはそれぞれ、内部バッファに保持されているセクタデータをICPコントローラ45に転送する(ブロック1007)。ここで、NANDコントローラ41-CH0〜41-CHn及びチャネル間同期コントローラ44は、フラッシュメモリ11-CH0〜11-CHnから1論理ページ分のデータ(例えば32セクタ×チャネル数)が読み出されるまで、前述の処理を繰り返す(ブロック1009)。
ICPコントローラ45は、各チャネルCH0〜CHnからの全てのセクタデータ(ICパリティデータを含む)及び通知された訂正対象プレーン(エラー訂正位置の情報)に基づいて復号処理を実行し、データ修復処理を開始する(ブロック1010)。
ここで、NANDコントローラ41-CH0〜41-CHnは、フラッシュメモリ11-CH0〜11-CHnからデータをリード中に、各セクタデータのECCデータを使用したエラー訂正が不可能なエラーを検出すると、チャネル間同期コントローラ44及び追加訂正モジュール43に対してエラー検出を通知する(ブロック1008,1013)。追加訂正モジュール43は、エラー通知によるデータの位置とFW23から指定された訂正対象プレーンに基づいて、今回のエラー検出がなされたデータも同時に訂正可能か否かを判定する(ブロック1014)。即ち、追加訂正モジュール43は、ICPコントローラ45によるICP処理での所定の訂正可能数(例えば2プレーン分)と比較して、訂正対象として追加可能か否かを判定する。
追加訂正モジュール43は、訂正対象として追加可能であると判定すると、エラー検出されたセクタデータを追加訂正対象としてICPコントローラ45に通知する(ブロック1017)。一方、追加訂正モジュール43は、エラー検出がなされたデータ数が所定の訂正可能数内に収まらない場合には、訂正不能と判断して訂正読み出し動作を中断させる(ブロック1014のNO)。
ここで、図9は、1論理ページ700において、FW23が指定した訂正対象プレーン900と、エラー検出された追加訂正対象901〜904を含む訂正対象パターンの一例を示す。図9に示す訂正対象パターンの場合、訂正対象がプレーン単位のみのICP処理では、訂正可能数が5プレーンのICP方式でなければ対応できない。本実施形態の方式であれば、セクタ単位での最大訂正数を例えば2とすると、訂正可能数が2プレーンのICP処理で実現できる。このため、訂正能力を向上させることが可能となる。
また、追加訂正モジュール43は、NANDコントローラ41-CH0〜41-CHnから通知されるエラーの種類がタイムアウトの場合には、エラー訂正対象としてセクタ単位ではなく、プレーン全体を追加訂正対象としてICPコントローラ45に通知する(ブロック1015,1016)。即ち、NANDコントローラ41-CH0〜41-CHnは、リードコマンドを発行したときに、フラッシュメモリ11-CH0〜11-CHnから応答がない場合には、タイムアウトエラーとして認識する。フラッシュメモリの特性上、そのエラーはプレーンの先頭にあるセクタで検出されて、そのプレーンは全てタイムアウトエラーとなる。従って、追加訂正モジュール43は、エラーの存在するプレーン全体を追加訂正対象としてICPコントローラ45に通知する。
ICPコントローラ45は、訂正対象の追加が完了すると、チャネル間同期コントローラ44に追加完了通知を行なう(ブロック1018)。チャネル間同期コントローラ44は、データ転送要求を再開する。即ち、チャネル間同期コントローラ44は、チャネル間の同期を取りながら、NANDコントローラ41-CH0〜41-CHnからICPコントローラ45にデータを転送することを指示する(ブロック1019)。この転送要求に応じて、NANDコントローラ41-CH0〜41-CHnはそれぞれ、内部バッファに保持されているセクタデータをICPコントローラ45に転送する(ブロック1020)。
ICPコントローラ45は、各チャネルCH0〜CHnからの全てのセクタデータ(ICパリティデータを含む)及び通知された追加訂正対象(エラー訂正位置の情報)に基づいて復号処理を実行し、データ修復処理を完了するまで実行する(ブロック1010)。ICPコントローラ45は、データ修復処理により訂正したデータをバス25を介してDRAMコントローラ22に転送する(ブロック1011)。この後に、ICPコントローラ45は、FW23に対して訂正読み出し動作の完了を通知する(ブロック1012)。
なお、DRAMコントローラ22は、リード動作により正常に読み出されたデータと共に、ICPコントローラ45により修復されたデータをバッファメモリ12に格納する。ホストインターフェースコントローラ21は、DRAMコントローラ22を介して、バッファメモリ12に格納されたリードデータ(修復されたデータを含む)をホストシステム30に転送する。
以上のようにして本実施形態によれば、フラッシュコントローラ24は、リード動作時に、セクタ単位又はクラスタ単位でのエラー訂正が不能であるデータを、ICPコントローラ45により修復させて読み出す訂正読み出し動作を実行する。本実施形態のフラッシュコントローラ24は、訂正読み出し動作中にFW23により指定された訂正対象(プレーン)以外の追加訂正対象が発生した場合、その追加訂正対象を含む訂正読み出し動作を継続させる。従って、実行中の訂正読み出し動作の完了を待って、追加訂正対象に基づいた訂正読み出し動作を再実行する(やり直す)プロセスを無くすことが可能となる。
換言すれば、本実施形態のフラッシュコントローラ24は、図11に示すように、NANDコントローラ41-CH0〜41-CHnの処理により1141、追加訂正モジュール43の処理1143、及びICPコントローラ45の処理1145を並列に実行することで、訂正読み出し動作をパイプライン処理により実現している。即ち、NANDコントローラ41-CH0〜41-CHnは、フラッシュメモリ11-CH0〜11-CHnから復号処理用の全データを読み出す処理1141を実行する。追加訂正モジュール43は、セクタエラーの検出に基づいて追加訂正対象をICPコントローラ45に通知する。ICPコントローラ45は、指定された訂正対象及び追加訂正対象に対する復号処理を実行し、データ修復を実現している。
従って、チャネル間誤り訂正処理の効率化を実現することが可能となり、結果的にリード動作の効率を向上できることになる。
また、本実施形態のICPコントローラ45は、プレーン単位の訂正対象に対するICP処理だけでなく、セクタ単位又はクラスタ単位での訂正対象を追加したICP処理を実行できる。従って、チャネル間誤り訂正処理の性能を向上することができる。さらに、訂正読み出し動作中に発生するエラーの種類、即ちタイムアウトエラーまたはセクタ単位のエラー訂正不能なエラーに応じて、追加訂正対象範囲を変更することができる。このため、FW23の処理負担を軽減できる効果がある。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…SSD(solid state drive)、11…NAND型フラッシュメモリ、
12…バッファメモリ(DRAM)、20…SSDコントローラ、
21…ホストインターフェースコントローラ、22…DRAMコントローラ、
23…マイクロプロセッサ(CPUまたはFW)、
24…フラッシュメモリコントローラ、25…バス、
40…バスインターフェース、41…チャネルコントローラ、
41-CH0〜41-CHn…NANDコントローラ、42…レジスタ、
43…追加訂正モジュール、44…チャネル間同期コントローラ、
45…チャネル間誤り訂正符号コントローラ(ICPコントローラ)。

Claims (11)

  1. 複数チャネルの各不揮発性メモリに対してデータの書き込み、読み出しを制御するチャネル制御手段と、
    リード動作時に、前記チャネル制御手段により読み出されるデータの中で指定の訂正対象に対して、チャネル間誤り訂正符号データを使用してチャネル間誤り訂正処理を実行する誤り訂正制御手段と、
    前記チャネル制御手段により前記チャネル間誤り訂正処理に必要なデータを読み出す訂正読み出し動作中に、前記チャネル制御手段によるエラー検出に基づいて追加訂正対象を指定し、当該追加訂正対象を前記誤り訂正制御手段に通知する追加訂正処理手段と
    を具備するデータ記憶装置。
  2. 前記チャネル制御手段、前記誤り訂正制御手段及び前記追加訂正処理手段の各処理をパイプライン処理で実行するように制御するコントローラを有する請求項1に記載のデータ記憶装置。
  3. 前記チャネル制御手段は、チャネル毎の各不揮発性メモリから読み出すデータのエラーを検出し、当該エラー訂正を実行する手段を含み、
    前記誤り訂正制御手段は、
    前記チャネル制御手段からエラー訂正不能の場合の通知に基づいて、前記チャネル間誤り訂正処理を実行するように構成されている請求項1または請求項2のいずれか1項に記載のデータ記憶装置。
  4. 前記追加訂正処理手段は、
    前記訂正読み出し動作中に、前記チャネル制御手段により検出されるエラーの種類に基づいて、前記追加訂正対象の範囲を設定するように構成されている請求項1から請求項3のいずれか1項に記載のデータ記憶装置。
  5. 前記追加訂正処理手段は、
    前記エラーの種類がセクタ単位のエラー訂正不能の場合には、前記追加訂正対象の範囲としてセクタ単位の範囲を設定し、
    前記エラーの種類がタイムアウトエラーの場合には、前記追加訂正対象の範囲としてプレーン単位の範囲を設定する請求項4に記載のデータ記憶装置。
  6. 複数チャネルの各不揮発性メモリを有するデータ記憶装置に適用するメモリ制御装置であって、
    複数チャネルの各不揮発性メモリに対してデータの書き込み、読み出しを制御するチャネル制御手段と、
    リード動作時に、前記チャネル制御手段により読み出されるデータの中で指定の訂正対象に対して、チャネル間誤り訂正符号データを使用してチャネル間誤り訂正処理を実行する誤り訂正制御手段と、
    前記チャネル制御手段により前記チャネル間誤り訂正処理に必要なデータを読み出す訂正読み出し動作中に、前記チャネル制御手段によるエラー検出に基づいて追加訂正対象を指定し、当該追加訂正対象を前記誤り訂正制御手段に通知する追加訂正処理手段と
    を具備するメモリ制御装置。
  7. 前記チャネル制御手段、前記誤り訂正制御手段及び前記追加訂正処理手段の各処理をパイプライン処理で実行するように制御するコントローラを有する請求項6に記載のメモリ制御装置。
  8. 前記チャネル制御手段は、チャネル毎の各不揮発性メモリから読み出すデータのエラーを検出し、当該エラー訂正を実行する手段を含み、
    前記誤り訂正制御手段は、
    前記チャネル制御手段からエラー訂正不能の場合の通知に基づいて、前記チャネル間誤り訂正処理を実行するように構成されている請求項6または請求項7のいずれか1項に記載のメモリ制御装置。
  9. 前記追加訂正処理手段は、
    前記訂正読み出し動作中に、前記チャネル制御手段により検出されるエラーの種類に基づいて、前記追加訂正対象の範囲を設定するように構成されている請求項6から請求項8のいずれか1項に記載のメモリ制御装置。
  10. 前記追加訂正処理手段は、
    前記エラーの種類がセクタ単位のエラー訂正不能の場合には、前記追加訂正対象の範囲としてセクタ単位の範囲を設定し、
    前記エラーの種類がタイムアウトエラーの場合には、前記追加訂正対象の範囲としてプレーン単位の範囲を設定する請求項9に記載のメモリ制御装置。
  11. 複数チャネルの各不揮発性メモリを有するデータ記憶装置に適用するメモリ制御方法であって、
    複数チャネルの各不揮発性メモリに対してデータの書き込み、読み出しを制御し、
    リード動作時に、前記チャネル制御手段により読み出されるデータの中で指定の訂正対象に対して、チャネル間誤り訂正符号データを使用してチャネル間誤り訂正処理を実行し、
    前記チャネル間誤り訂正処理に必要なデータを読み出す訂正読み出し動作中のエラー検出に基づいて追加訂正対象を指定し、当該追加訂正対象を通知するメモリ制御方法。
JP2011014178A 2011-01-26 2011-01-26 データ記憶装置、メモリ制御装置及びメモリ制御方法 Pending JP2012155541A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011014178A JP2012155541A (ja) 2011-01-26 2011-01-26 データ記憶装置、メモリ制御装置及びメモリ制御方法
US13/301,335 US8713410B2 (en) 2011-01-26 2011-11-21 Data storage apparatus, memory control apparatus and method for controlling flash memories

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011014178A JP2012155541A (ja) 2011-01-26 2011-01-26 データ記憶装置、メモリ制御装置及びメモリ制御方法

Publications (1)

Publication Number Publication Date
JP2012155541A true JP2012155541A (ja) 2012-08-16

Family

ID=46545069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011014178A Pending JP2012155541A (ja) 2011-01-26 2011-01-26 データ記憶装置、メモリ制御装置及びメモリ制御方法

Country Status (2)

Country Link
US (1) US8713410B2 (ja)
JP (1) JP2012155541A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012128660A (ja) * 2010-12-15 2012-07-05 Toshiba Corp 半導体記憶装置
CN103034603B (zh) * 2012-12-07 2014-06-18 天津瑞发科半导体技术有限公司 多通道闪存卡控制装置及其控制方法
US9478271B2 (en) * 2013-03-14 2016-10-25 Seagate Technology Llc Nonvolatile memory data recovery after power failure
WO2015070110A2 (en) * 2013-11-07 2015-05-14 Netlist, Inc. Hybrid memory module and system and method of operating the same
US9880952B2 (en) * 2015-01-15 2018-01-30 Toshiba Memory Corporation Bus access controller, hardware engine, controller, and memory system
JP2017033501A (ja) * 2015-08-06 2017-02-09 株式会社東芝 記憶装置および制御方法
TWI740187B (zh) * 2019-02-20 2021-09-21 慧榮科技股份有限公司 存取方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09218754A (ja) * 1996-02-13 1997-08-19 Ekushingu:Kk データ記憶システム
JP2008299855A (ja) * 2007-06-04 2008-12-11 Samsung Electronics Co Ltd エンベデッドメモリを利用したマルチチャンネルエラー訂正コーダを備えたメモリシステム及びその方法
JP2009054159A (ja) * 2007-08-28 2009-03-12 Samsung Electronics Co Ltd 面積効率が高いエラー訂正デコーダ構造を含むマルチチャンネルメモリシステム
JP2011165063A (ja) * 2010-02-12 2011-08-25 Toshiba Corp 半導体記憶装置
JP2011180831A (ja) * 2010-03-01 2011-09-15 Toshiba Corp 半導体記憶装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000070459A1 (en) 1999-05-18 2000-11-23 Advanced Micro Devices, Inc. Error correction circuit and method for a memory device
JP4711531B2 (ja) 2001-03-23 2011-06-29 ルネサスエレクトロニクス株式会社 半導体記憶装置
JP4504138B2 (ja) 2004-09-03 2010-07-14 株式会社東芝 記憶システム及びそのデータコピー方法
JP2006190346A (ja) 2004-12-28 2006-07-20 Toshiba Corp エラー訂正処理装置及びエラー訂正処理方法
GB2428496A (en) 2005-07-15 2007-01-31 Global Silicon Ltd Error correction for flash memory
US20110041039A1 (en) * 2009-08-11 2011-02-17 Eliyahou Harari Controller and Method for Interfacing Between a Host Controller in a Host and a Flash Memory Device
US8510631B2 (en) * 2009-11-24 2013-08-13 Mediatek Inc. Multi-channel memory apparatus and method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09218754A (ja) * 1996-02-13 1997-08-19 Ekushingu:Kk データ記憶システム
JP2008299855A (ja) * 2007-06-04 2008-12-11 Samsung Electronics Co Ltd エンベデッドメモリを利用したマルチチャンネルエラー訂正コーダを備えたメモリシステム及びその方法
JP2009054159A (ja) * 2007-08-28 2009-03-12 Samsung Electronics Co Ltd 面積効率が高いエラー訂正デコーダ構造を含むマルチチャンネルメモリシステム
JP2011165063A (ja) * 2010-02-12 2011-08-25 Toshiba Corp 半導体記憶装置
JP2011180831A (ja) * 2010-03-01 2011-09-15 Toshiba Corp 半導体記憶装置

Also Published As

Publication number Publication date
US8713410B2 (en) 2014-04-29
US20120192032A1 (en) 2012-07-26

Similar Documents

Publication Publication Date Title
US8707134B2 (en) Data storage apparatus and apparatus and method for controlling nonvolatile memories
JP5032027B2 (ja) 半導体ディスク制御装置
US7984325B2 (en) Storage control device, data recovery device, and storage system
US8694865B2 (en) Data storage device configured to reduce buffer traffic and related method of operation
JP4901968B2 (ja) 半導体記憶装置
JP2012155541A (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
EP2811392B1 (en) Method and device for reducing read delay
US20140380092A1 (en) Efficient raid technique for reliable ssd
JP5367686B2 (ja) データ記憶装置、メモリ制御装置及びメモリ制御方法
US20130179646A1 (en) Storage control device, storage device, and control method for controlling storage control device
TWI467574B (zh) 記憶體儲存裝置、記憶體控制器與其資料傳輸方法
JP2009129070A (ja) フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
JP6142860B2 (ja) ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム
TWI554886B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
US9754682B2 (en) Implementing enhanced performance with read before write to phase change memory
WO2015035536A1 (zh) 在基于闪存的存储系统中构建raid的方法及系统
JP2009301194A (ja) 半導体記憶装置の制御システム
US20150220394A1 (en) Memory system and method of controlling memory system
US8788752B2 (en) Storage apparatus, patrolling method and storage system
US20100293418A1 (en) Memory device, data transfer control device, data transfer method, and computer program product
US20160011937A1 (en) Semiconductor memory device, memory controller, and control method of memory controller
JP4922442B2 (ja) バッファ管理装置、同装置を備えた記憶装置、及びバッファ管理方法
JP5259755B2 (ja) マルチチャネルを有するメモリ装置及び同装置におけるメモリアクセス方法
JP2012173933A (ja) データ記憶装置及び誤り検出訂正方法
JP5363460B2 (ja) 誤り訂正機能付きコントローラ、誤り訂正機能付き記憶装置、及び誤り訂正機能付きシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130225

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20130305

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20130321

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130917