JP2012248110A - マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法 - Google Patents

マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法 Download PDF

Info

Publication number
JP2012248110A
JP2012248110A JP2011120934A JP2011120934A JP2012248110A JP 2012248110 A JP2012248110 A JP 2012248110A JP 2011120934 A JP2011120934 A JP 2011120934A JP 2011120934 A JP2011120934 A JP 2011120934A JP 2012248110 A JP2012248110 A JP 2012248110A
Authority
JP
Japan
Prior art keywords
channel
error correction
channels
logical
memory
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
JP2011120934A
Other languages
English (en)
Inventor
Yoko Masuo
容子 増尾
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 JP2011120934A priority Critical patent/JP2012248110A/ja
Priority to US13/421,538 priority patent/US8589768B2/en
Publication of JP2012248110A publication Critical patent/JP2012248110A/ja
Withdrawn 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution

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)
  • Detection And Correction Of Errors (AREA)
  • Memory System (AREA)

Abstract

【課題】誤り訂正チャネルを適用していながら、データ読み出しの並列度を向上できるようにする。
【解決手段】実施形態によれば、誤り訂正チャネル決定手段は、論理ブロックを構成する複数の論理ページがページ単位に複数のチャネルを介してメモリに書き込まれる際に、複数のチャネルのそれぞれに誤り訂正チャネルが割り当てられる論理ページの数が均等になるように、ページ単位に誤り訂正チャネルが割り当てられるチャネルを決定する。コマンドリスト生成手段は、誤り訂正チャネルが割り当てられるチャネルの決定に基づいて、複数のチャネルのうちの誤り訂正チャネルを除くチャネル群を介して、対応する論理ページを並列に書き込むためのライトコマンド群のリストを生成する。コマンドリスト投入手段は、ライトコマンド群のリストをメモリインタフェースに投入する。
【選択図】 図1

Description

本発明の実施形態は、マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法に関する。
従来から、記憶装置の信頼性向上のために、複数種類(例えば2種類)の誤り訂正を適用することが知られている。
また近年は、NANDフラッシュメモリに代表されるメモリを備え、複数のアクセスコマンドを並列に実行するマルチチャネルを有するメモリ装置も知られている。このようなメモリ装置では、一般に、論理ブロック内の論理ページ毎に、複数のチャネルを介して並列にアクセスすることが可能である。
特開平1−292541号公報
そこで、マルチチャネルを有するメモリ装置において、複数種類の誤り訂正を適用することが考えられる。例えば、エラー訂正符号(ECC)で訂正不能なエラーが発生した場合に、エラー箇所をチャネル間のデータに基づいて訂正することが考えられる。このような訂正(以下、チャネル間誤り訂正と称する)を可能とするためには、複数のチャネルのうちの1チャネル(以下、誤り訂正チャネルと称する)を、チャネル間誤り訂正のための誤り訂正データの格納に割り当てればよい。この場合、誤り訂正チャネルの適用が、データ読み出しの並列度に悪影響を及ぼさないことが要求される。
本発明の目的は、誤り訂正チャネルを適用していながら、データ読み出しの並列度を向上できるマルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法を提供することである。
実施形態によれば、メモリ装置は、メモリと、メモリインタフェースと、チャネル間誤り訂正手段と、誤り訂正チャネル決定手段と、コマンドリスト生成手段と、コマンドリスト投入手段とを具備する。前記メモリは、複数のチャネルを介してアクセスされる。前記メモリインタフェースは、複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並列にアクセスする。前記チャネル間誤り訂正手段は、前記メモリインタフェースによるアクセスで、エラー訂正符号で訂正不能なエラーが発生したチャネルが存在する場合に、前記複数のチャネルのうち前記エラーが発生したチャネルを除く、誤り訂正チャネルを含むチャネル群のデータに基づいて、前記エラーが発生したチャネルのデータを訂正する。前記誤り訂正チャネル決定手段は、論理ブロックを構成する複数の論理ページがページ単位に順次前記複数のチャネルを介して前記メモリに書き込まれる際に、前記複数のチャネルのそれぞれに前記誤り訂正チャネルが割り当てられる論理ページの数が均等になるように、ページ単位に前記誤り訂正チャネルが割り当てられるチャネルを決定する。前記コマンドリスト生成手段は、前記誤り訂正チャネルが割り当てられるチャネルの決定に基づいて、前記複数のチャネルのうちの前記誤り訂正チャネルを除くチャネル群を介して、対応する論理ページを並列に書き込むためのライトコマンド群のリストを生成する。前記コマンドリスト投入手段は、前記ライトコマンド群のリストを前記メモリインタフェースに投入する。
実施形態に係るマルチチャネルを有するメモリ装置の典型的な構成を示すブロック図。 同実施形態で適用されるパリティチャネル決定を含む書き込み制御の典型的な手順を説明するためのフローチャート。 同実施形態で適用される論理ブロックの構成とパリティチャネルとの関係の一例を示す図。 同実施形態で適用される論理アドレス及び物理アドレスのフォーマットの例を示す図。
以下、実施の形態につき図面を参照して説明する。
図1は実施形態に係るマルチチャネルを有するメモリ装置の典型的な構成を示すブロック図である。本実施形態において、図1に示すメモリ装置10は、例えばホスト(図示せず)と接続されている。ホストは、メモリ装置10を当該ホストの記憶装置として利用する。
メモリ装置10は、NANDフラッシュメモリ11とNANDコントローラ12とを備えている。本実施形態においてメモリ装置10は、NANDフラッシュメモリ11を利用したソリッドステートドライブ(SSD)であるものとする。NANDフラッシュメモリ11は、ユーザデータを記憶するための記憶媒体である。NANDフラッシュメモリ11は、複数のNANDフラッシュメモリチップを備えており、複数のアクセスコマンドに応じてNANDコントローラ12によって複数のチャネル(つまりマルチチャネル)を介して並列にアクセス可能なように構成されている。
なお、メモリ装置10がSSDである必要はない。また、論理ブロック単位で且つ論理ページ単位に、複数のチャネルを介して並列にアクセス可能であれば、NANDフラッシュメモリ11に代えて、NANDフラッシュメモリ以外のメモリを用いても構わない。
NANDコントローラ12は、ホストからの要求に応じてNANDフラッシュメモリ11にアクセスする。NANDコントローラ12はまた、例えば後述するコンパクションのような、ブロック単位でのメモリアクセス処理のために、NANDフラッシュメモリ11にアクセスする。
NANDコントローラー12は、NANDインタフェース21と、制御部22と、書き込み制御部23と、読み出し制御部(図示せず)と、ブロック管理部24とを備えている。制御部22、書き込み制御部23(より詳細には、書き込み制御部23内の並列書き込み検出部231、パリティチャネル管理部232、パリティチャネル決定部233、コマンドリスト生成部234及びコマンドリスト投入部235)、読み出し制御部及びブロック管理部24は、内部バス25を介して相互接続されている。
NANDインタフェース21は、NANDフラッシュメモリ11と、制御部22、書き込み制御部23(特に書き込み制御部23内のコマンドリスト投入部235)及び読み出し制御部との間で情報を授受する。本実施形態においてNANDインタフェース21は、16のチャネル0,1,…,15を有しているものとする。チャネル0,1,…,15のチャネル番号は、それぞれ、0,1,…,15(10進数表現)である。NANDインタフェース21からNANDフラッシュメモリ11へのデータの書き込み及びデータの読み出しは、いずれも16チャネル並列に実行可能である。特にデータの書き込みは、ページ単位に実行可能である。
1論理ブロックは64のページ(論理ページ)0,1,…,63で構成されるものとする。チャネル0,1,…,15の各々は、2つのプレーン0,1に接続されている。本実施形態では、1論理ブロックに32の物理ブロックが割り当てられる。32の物理ブロックは、16のチャネル0,1,…,15のそれぞれプレーン0,1に対応する。各物理ブロックは、1ページ当たり2クラスタから構成される。
NANDインタフェース21は、エラー訂正符号(ECC)で訂正不能なエラーが発生した場合に、エラー箇所(エラー箇所を含むチャネルのデータ)をチャネル間のデータに基づいて訂正する。この訂正を、チャネル間誤り訂正(ICP訂正)と呼ぶ。
本実施形態では、論理ブロック内の論理ページ毎に対応するページのICP訂正を可能とするために、16チャネルのうちの1チャネルに、ICP訂正のための誤り訂正データが格納される誤り訂正チャネルを割り当てている。この誤り訂正チャネルの割り当ては、論理ブロック単位で且つ論理ページ単位の書き込みにおいて、論理ページ毎に行われる。誤り訂正チャネルが割り当てられるチャネルは、書き込み制御部23内の後述するパリティチャネル決定部233によって所定の規則に基づいて決定される。
ICP訂正のための誤り訂正データは、論理ページ毎に、誤り訂正チャネル以外の15チャネルに格納されるデータに基づいて生成される。この誤り訂正データは、例えばパリティデータ(チャネル間パリティデータ)である。そこで以下の説明では、チャネル間パリティデータが格納される誤り訂正チャネルをパリティチャネルと称する。
NANDインタフェース21はチャネル間誤り訂正機構(以下、ICP訂正機構と称する)210を備えている。ICP訂正機構210は、パリティチャネルに格納されているパリティデータを用いてICP訂正を行う。つまりICP訂正機構210は、論理ページ内のECC訂正不能なエラー箇所を含むチャネルのデータを、当該論理ページのパリティチャネルに基づいて修復する。
制御部22は、内部バス25に接続された、書き込み制御部23及びブロック管理部24のようなモジュール群を制御する。
書き込み制御部23は、ホストからの要求、更には制御部22からの要求に応じて、NANDフラッシュメモリ11へのデータの書き込みを制御する。本実施形態では、NANDフラッシュメモリ11への書き込みはページ単位で行われる。特にメモリ装置10において自律的に行われるデータの書き込みは、ブロック(論理ブロック)単位で且つページ(論理ページ)単位に行われる。ページ単位の書き込みは、前述したように、16チャネルを介して並列に行われる。但し、16チャネルのうちの1チャネルには、前述したようにパリティチャネルが割り当てられ、当該パリティチャネルにはチャネル間パリティデータが書き込まれる。このようなブロック単位で且つページ単位の書き込みは、ホストからのユーザデータ書き込み要求に基づくデータの書き込み(つまり通常のユーザデータ書き込み)でも発生する。
メモリ装置10において自律的に行われる書き込みは、ホストによって要求されたアクセス処理に対するバックグラウンド処理として行われる。本実施形態のような、SSDに代表されるメモリ装置10では、信頼性向上のために、ブロック間のデータ移動を伴うバックグラウンド処理が多く存在する。例えば、コンパクション、パトロールリフレッシュ、及びウェアレべリングの各処理が、バックグラウンド処理に該当する。
コンパクションとは、NANDフラッシュメモリ11のメモリ領域の効率利用のために、隙間ができた複数のブロック(つまり穴あき状態の複数のブロック)から別ブロックに有効データをまとめて移動する処理である。NANDコントローラ12は、コンパクションを実行するコンパクション部(図示せず)を備えている。
パトロールリフレッシュは、NANDフラッシュメモリ11に格納されたデータが長時間放置されることに起因するデータ化け(ビット化け)を検査するために、NANDフラッシュメモリ11から論理ブロック単位にデータを定期的に読む処理を含む。パトロールリフレッシュは更に、データ化けが一定数を超えた論理ブロックを書き直す処理を含む。つまりパトロールリフレッシュは、NANDフラッシュメモリ11のデータ保持力(data retention)が比較的弱いことに起因するデータ化け対策のために実行される。NANDコントローラ12は、パトロールリフレッシュを実行するパトロールリフレッシュ部(図示せず)を備えている。
ウェアレべリングとは、メモリ装置10の延命のために、全ブロックの疲弊度(消去回数)を平準化するようにブロック間のデータ移動を行う処理である。
書き込み制御部23は、並列書き込み検出部231と、パリティチャネル管理部232と、パリティチャネル決定部233と、コマンドリスト生成部234と、コマンドリスト投入部235とから構成される。
ブロック管理部24は、論理ブロック毎に、当該論理ブロックに割り当てられている物理ブロック群を管理する。
以下、書き込み制御部23による、論理ブロック単位で且つ論理ページ単位で行われる、パリティチャネル決定を含む書き込みの制御の典型的な手順について、図2のフローチャートを参照して説明する。
並列書き込み検出部231は、コンパクション部、或いはパトロールリフレッシュ部等から、論理ブロック内の論理ページをパリティチャネルを含む16チャネル並列に書き込むことを指示する並列書き込みコマンドの発行を検出する。つまり並列書き込み検出部231は、論理ブロック単位の書き込みにおける論理ページ単位の書き込みを検出する(ステップ201)。並列書き込み検出部231は、並列書き込みコマンドの発行(論理ページ単位の書き込み)を検出した場合、その旨をパリティチャネル決定部233に通知する。
パリティチャネル管理部232は、論理ブロック毎に、当該論理ブロックの既に実行済みのページ単位の書き込みにおけるパリティチャネル決定(設定)の状況(つまり、過去のパリティチャネル決定の状況)を管理する。本実施形態では、論理ブロック毎の過去のパリティチャネル決定の状況として、前回当該論理ブロックのページ(より詳細には、チャネル間パリティデータを含むページのデータ)が16チャネルを介して並列に書き込まれる際に決定されたパリティチャネル番号が用いられる。論理ブロック毎のパリティチャネル番号は、当該論理ブロックに対応付けて、パリティチャネル管理部232(より詳細には、DRAMのようなメモリ内の、パリティチャネル管理部232に割り当てられている領域)に保持される。
そこでパリティチャネル決定部233は、並列書き込み検出部231からの通知を受けて、パリティチャネル管理部232より、並列書き込みコマンドで指定された論理ページ(つまり書き込まれるべき論理ページ)pを含む論理ブロックに対応付けられている前回のパリティチャネル番号(過去のパリティチャネル決定状況)を取得する(ステップ202)。前回のパリティチャネル番号は、論理ページpに先行する論理ページp−1を書き込む際に決定されたパリティチャネルを示す。
パリティチャネル決定部233は、取得されたパリティチャネル番号及び所定の規則(パリティチャネル決定手法)に基づいて、新たに設定されるべきパリティチャネル番号を決定する(ステップ203)。但し、論理ページpが論理ページ0(p=0)の場合、パリティチャネル番号は予め定められた初期パリティチャネル番号、例えば0に決定されるものとする。
パリティチャネル決定部233によるパリティチャネル番号の決定について、図3を参照して説明する。図3は、本実施形態で適用される論理ブロックの構成とパリティチャネルとの関係の一例を示す図である。
本実施形態で適用される論理ブロックは、図3に示すように、ページ0〜63の64ページ(論理ページ)から構成される。各ページは、16チャネルから構成される。本実施形態では、論理ブロックのページ毎に、16チャネルのうちの1チャネルがパリティチャネル(図3においてハッチングが施されているチャネル)に割り当てられる。ここで、64ページのうち、チャネル0,1,…,15がそれぞれパリティチャネルに割り当てられるページの数は、いずれも4である。つまり本実施形態では、1論理ブロックを構成する64ページに、パリティチャネルが特定のチャネルに偏ることなく均等に割り当てられる。このような、1論理ブロックを構成する64ページにページ単位でパリティチャネルを均等に割り当てるための手法は、種々適用可能である。なお、図3では省略されているが、各ページは、64クラスタから構成される。本実施形態では、NANDフラッシュメモリ11に対して、1チャネルを介して4クラスタを同時に書き込むことが可能である。
以下、1論理ブロックを構成する64ページにページ単位でパリティチャネルを均等に割り当てるための幾つかの手法について説明する。
第1は、論理ブロックの書き込みがページ単位で行われる場合に、図3の例のように、当該論理ブロックを構成する64ページに先頭ページ(ページ0)から順に全チャネルを通してラウンドロビン方式でパリティチャネルを割り当てる手法である。第1の手法によれば、ページp−1(p−1=0,1,…,62)のチャネルc(c=0,1,…,15)にパリティチャネルが割り当てられた場合、次のページp(p=1,2,…,63)では、チャネルcの次のチャネルc’(c’=1,…,15,0)にパリティチャネルが割り当てられる。ここで、チャネルcのチャネル番号が0,1,…または14の場合、次のチャネルc’のチャネル番号はそれぞれ1,2,…または15である。また、チャネルcが15(16進表現でF)の場合、次のチャネルc’のチャネル番号は0である。本実施形態では、この第1の手法が適用される。
第2は、連続する2ページ、或いは4ページ毎に、パリティチャネルを順次ずらす手法である。
第3は、64ページのそれぞれに、ランダムにパリティチャネルを割り当てる手法である。ここで、対応する論理ブロックの前述した過去のパリティチャネル決定(設定)の状況に基づいて、ランダムにパリティチャネルを割り当てるとよい。このようにすると、ランダムな割り当てでありながら、64ページのうち、チャネル0,1,…,15にそれぞれパリティチャネルが割り当てられるページの数を、いずれも4とすることができる。
パリティチャネル決定部233によって決定されたパリティチャネル番号は、パリティチャネル管理部232に通知される。パリティチャネル管理部232は、並列書き込みコマンドで指定された論理ブロックに対応付けて現在保持しているパリティチャネル番号を、通知されたパリティチャネル番号に更新する(ステップ204)。
このように本実施形態では、パリティチャネル決定部233によって決定されたパリティチャネル番号が、パリティチャネル管理部232によって、論理ブロック毎に保持・管理される。これにより、次のような効果を得ることができる。
第1の論理ブロックの書き込みが、メモリ装置10において自律的に行われているものとする。つまり第1の論理ブロックの書き込みが、バックグラウンド処理で行われているものとする。そして、第1の論理ブロックのページpの書き込みの途中で、ホストからメモリ装置10のNANDコントローラ12に第2の論理ブロックの書き込み(ユーザデータ書き込み)が要求されたものとする。
するとNANDコントローラ12は、第1の論理ブロックの書き込みが未完了であっても、ページpの書き込みが完了した時点で、第2の論理ブロックの書き込みに切り替える。NANDコントローラ12は、第2の論理ブロックの書き込みが完了した後に、第1の論理ブロックの書き込みをページp+1から再開する。このときパリティチャネル管理部232は、第1の論理ブロックに対応した過去のパリティチャネル決定の状況として、第1の論理ブロックに対応付けられたパリティチャネル番号を保持している。第1の論理ブロックに対応付けられたパリティチャネル番号は、第1の論理ブロックの書き込みが中断される直前のページpの書き込みに時に決定されたものである。このように、論理ブロック別にパリティチャネルを管理する機構を更に具備することにより、パリティチャネル決定部233は、再開された第1の論理ブロックのページp+1の書き込みに際し、当該ページp+1のパリティチャネルを、先行するページpのパリティチャネルのパリティチャネル番号に基づいて決定することができる。
パリティチャネル決定部233によって決定されたパリティチャネル番号は、ブロック管理部24にも通知される。ブロック管理部24は、論理ブロック毎に、当該論理ブロックに割り当てられている物理ブロック群(32の物理ブロック)を、ブロック管理テーブル(図示せず)により管理する。ブロック管理テーブルは、ブロック管理部24(より詳細には、DRAMのようなメモリ内の、ブロック管理部24に割り当てられている領域)に保持される。本実施形態では、ブロック管理部24は、物理ブロックに対応するページ(論理ページ)0〜63のチャネル毎に、パリティチャネルであるかを、ブロック管理テーブルにより管理する。
コマンドリスト生成部234は、パリティチャネル決定部233によって決定されたパリティチャネル番号を持つパリティチャネルを除く15チャネルを介して並列に対応する論理ページを書き込むことを指示するためのライトコマンド群のリスト(コマンドリスト)を生成する(ステップ205)。コマンドリスト生成部234は、生成されたコマンドリストをコマンドリスト投入部235に渡す。
コマンドリスト生成部234によって生成されたコマンドリスト中のライトコマンド群の各々は、書き込まれるべきクラスタを指定する物理アドレスを含む。このライトコマンド群の生成のために、コマンドリスト生成部33は、書き込まれるべきクラスタを指定する論理アドレスを物理アドレスに変換する。
図4は、本実施形態で適用される論理アドレス及び物理アドレスのフォーマットの例を示す。論理アドレスは、対応するクラスタが属する論理ブロックの論理ブロックIDと、ページ番号、プレーン番号、チャネル番号及びクラスタ番号とから構成される。論理アドレスは、メモリ装置10にNANDフラッシュメモリ11が用いられている本実施形態では、論理NANDクラスタアドレスとも呼ばれる。物理アドレスは、対応するクラスタが属する物理ブロックを識別するための物理ブロックIDと、プレーン番号、ページ番号、クラスタ番号及びセクタ番号とから構成される。この物理アドレスは、物理NANDクラスタアドレスとも呼ばれる。論理アドレスから物理アドレスへの変換には、周知の論理−物理アドレス変換テーブル(以下、論物変換テーブルと称する)が用いられる。論物変換テーブルは、図示せぬテーブル管理部によって保持・管理されている。
コマンドリスト投入部235は、コマンドリスト生成部234によって生成されたコマンドリストを受け取ると、当該コマンドリスト中のライトコマンド群を同時にNANDインタフェース21に投入する。NANDインタフェース21に投入されたライトコマンド群は、当該NANDインタフェース21内のコマンドキュー(図示せず)に格納される。
NANDインタフェース21は、コマンドキューから、1論理ページ(パリティチャネルを除く15チャネル)に対応するライトコマンド群を取り出す。NANDインタフェース21は、取り出されたライトコマンド群の示す各チャネルの書き込みデータに基づいて、パリティチャネルに書かれるべきチャネル間パリティデータを生成する。NANDインタフェース21は、取り出されたライトコマンド群と生成されたチャネル間パリティデータとに基づいて、当該チャネル間パリティデータを含む書き込みデータを16チャネル並列にNANDフラッシュメモリ11に書き込む。
さて、コマンドリスト投入部235によって1論理ページに対応するライトコマンド群がNANDインタフェース21に投入されると(ステップ206)、並列書き込み検出部231は再びステップ201を実行する。このようにして、ステップ201〜206が1論理ブロックの全ページ0〜63について繰り返されることにより、当該全ページ0〜63がNANDフラッシュメモリ11に書き込まれる。このページ0〜63の書き込みでは、ページ0から順に全チャネルを通してラウンドロビン方式でパリティチャネルが割り当てられる。これにより図3に示したように、論理ブロックのページ0〜63に、パリティチャネルが特定のチャネルに偏ることなく均等に割り当てられる。
このため本実施形態においては、パリティチャネルが均等に割り当てられた論理ブロックからのデータの読み出し(例えば、コンパクション、或いはパトロールリフレッシュのためのデータの読み出し)における並列度を向上することができる。これによりメモリ装置10の読み出し性能も向上する。
さて、NANDインタフェース21がNANDフラッシュメモリ11から論理ページ内のデータを読み出した際に、ECC訂正不能なエラーが発生したものとする。この場合、NANDインタフェース21のICP訂正機構210は、エラー箇所を含むチャネル(エラーチャネル)のデータを、エラーチャネルを除く15チャネル(パリティチャネルを含む15チャネル)のデータに基づいて訂正する。
以上説明した少なくとも1つの実施形態によれば、誤り訂正チャネル(パリティチャネル)を適用していながら、データ読み出しの並列度を向上できるマルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法を提供することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
10…メモリ装置、11…NANDフラッシュメモリ(メモリ)、12…NANDコントローラ、21…NANDインタフェース(メモリインタフェース)、22…制御部、23…書き込み制御部、24…ブロック管理部、25…内部バス、210…ICP訂正機構、231…並列書き込み検出部、232…パリティチャネル管理部、233…パリティチャネル決定部、234…コマンドリスト生成部、235…コマンドリスト投入部。

Claims (6)

  1. 複数のチャネルを介してアクセスされるメモリと、
    複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並列にアクセスするメモリインタフェースと、
    前記メモリインタフェースによるアクセスで、エラー訂正符号で訂正不能なエラーが発生したチャネルが存在する場合に、前記複数のチャネルのうち前記エラーが発生したチャネルを除く、誤り訂正チャネルを含むチャネル群のデータに基づいて、前記エラーが発生したチャネルのデータを訂正するチャネル間誤り訂正手段と、
    論理ブロックを構成する複数の論理ページがページ単位に順次前記複数のチャネルを介して前記メモリに書き込まれる際に、前記複数のチャネルのそれぞれに前記誤り訂正チャネルが割り当てられる論理ページの数が均等になるように、ページ単位に前記誤り訂正チャネルが割り当てられるチャネルを決定する誤り訂正チャネル決定手段と、
    前記誤り訂正チャネルが割り当てられるチャネルの決定に基づいて、前記複数のチャネルのうちの前記誤り訂正チャネルを除くチャネル群を介して、対応する論理ページを並列に書き込むためのライトコマンド群のリストを生成するコマンドリスト生成手段と、
    前記ライトコマンド群のリストを前記メモリインタフェースに投入するコマンドリスト投入手段と
    を具備するメモリ装置。
  2. 前記誤り訂正チャネルに割り当てられるチャネルが決定された誤り訂正チャネル決定状況を論理ブロック毎に管理する誤り訂正チャネル管理手段を更に具備し、
    前記誤り訂正チャネル決定手段は、前記誤り訂正チャネル決定状況に基づいて、前記論理ブロック内の次の論理ページにおいて前記誤り訂正チャネルが割り当てられるチャネルを決定する
    請求項1記載のメモリ装置。
  3. 前記誤り訂正チャネル管理手段は、前記誤り訂正チャネル決定状況を、前記論理ブロック内の前回の論理ページの書き込みに際して決定されたチャネルのチャネル番号に基づいて管理し、
    前記誤り訂正チャネル決定手段は、前記前回のチャネル番号に基づいて、前記次の論理ページにおいて前記誤り訂正チャネルが割り当てられるチャネルを決定する
    請求項2記載のメモリ装置。
  4. 前記誤り訂正チャネル決定手段は、ラウンドロビン方式に基づき、前記複数のチャネル内で前記前回のチャネル番号の次のチャネルを、前記誤り訂正チャネルが割り当てられるチャネルとして決定する請求項3記載のメモリ装置。
  5. 前記誤り訂正チャネル決定手段は、前記誤り訂正チャネル決定状況に基づいて、前記論理ブロック内の次の論理ページにおいて前記誤り訂正チャネルが割り当てられるチャネルをランダムに決定する請求項2記載のメモリ装置。
  6. 複数のチャネルを介してアクセスされるメモリと、複数のアクセスコマンドに従って前記メモリに前記複数のチャネルを介して並列にアクセスするメモリインタフェースと、前記メモリインタフェースによるアクセスで、エラー訂正符号で訂正不能なエラーが発生したチャネルが存在する場合に、前記複数のチャネルのうち前記エラーが発生したチャネルを除く、誤り訂正チャネルを含むチャネル群のデータに基づいて、前記エラーが発生したチャネルのデータを訂正するチャネル間誤り訂正手段とを備えたメモリ装置における書き込み制御方法であって、
    論理ブロックを構成する複数の論理ページがページ単位に順次前記複数のチャネルを介して前記メモリに書き込まれる際に、前記複数のチャネルのそれぞれに前記誤り訂正チャネルが割り当てられる論理ページの数が均等になるように、ページ単位に前記誤り訂正チャネルが割り当てられるチャネルを決定し、
    前記誤り訂正チャネルが割り当てられるチャネルの決定に基づいて、前記複数のチャネルのうちの前記誤り訂正チャネルを除くチャネル群を介して、対応する論理ページを並列に書き込むためのライトコマンド群のリストを生成し、
    前記ライトコマンド群のリストを前記メモリインタフェースに投入する
    書き込み制御方法。
JP2011120934A 2011-05-30 2011-05-30 マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法 Withdrawn JP2012248110A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011120934A JP2012248110A (ja) 2011-05-30 2011-05-30 マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法
US13/421,538 US8589768B2 (en) 2011-05-30 2012-03-15 Memory system having multiple channels and write control method including determination of error correction channel in memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011120934A JP2012248110A (ja) 2011-05-30 2011-05-30 マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法

Publications (1)

Publication Number Publication Date
JP2012248110A true JP2012248110A (ja) 2012-12-13

Family

ID=47262648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011120934A Withdrawn JP2012248110A (ja) 2011-05-30 2011-05-30 マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法

Country Status (2)

Country Link
US (1) US8589768B2 (ja)
JP (1) JP2012248110A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023084729A1 (ja) * 2021-11-12 2023-05-19 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9195401B2 (en) 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
CN104090847B (zh) * 2014-06-25 2017-01-11 华中科技大学 一种固态存储设备的地址分配方法
US10331515B2 (en) * 2014-12-10 2019-06-25 Cnex Labs, Inc. Computing system with shift data protection mechanism and method of operation thereof
US9904607B2 (en) 2015-11-13 2018-02-27 International Business Machines Corporation Logical to physical table restoration from stored journal entries
US10705912B2 (en) 2017-06-07 2020-07-07 Rambus Inc. Energy efficient storage of error-correction-detection information
JP2019057340A (ja) * 2017-09-20 2019-04-11 東芝メモリ株式会社 メモリシステム及びメモリ制御方法
US10991409B2 (en) * 2019-07-19 2021-04-27 SK Hynix Inc. Encoder for memory system and method thereof
KR20220021992A (ko) 2020-08-14 2022-02-23 삼성전자주식회사 비휘발성 메모리 장치, 그것의 동작 방법, 그것을 제어하는 제어기, 및 그것을 포함하는 저장 장치

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4201976A (en) 1977-12-23 1980-05-06 International Business Machines Corporation Plural channel error correcting methods and means using adaptive reallocation of redundant channels among groups of channels
US4205324A (en) 1977-12-23 1980-05-27 International Business Machines Corporation Methods and means for simultaneously correcting several channels in error in a parallel multi channel data system using continuously modifiable syndromes and selective generation of internal channel pointers
JPS6343833A (ja) 1986-08-11 1988-02-24 Diesel Kiki Co Ltd 定速走行制御装置
JP2612029B2 (ja) 1988-05-20 1997-05-21 株式会社日立製作所 誤り訂正制御方式
JP4413091B2 (ja) 2004-06-29 2010-02-10 株式会社ルネサステクノロジ 半導体装置
US7539842B2 (en) * 2006-08-15 2009-05-26 International Business Machines Corporation Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US8433980B2 (en) * 2008-06-23 2013-04-30 Sandisk Il Ltd. Fast, low-power reading of data in a flash memory
US8433845B2 (en) * 2009-04-08 2013-04-30 Google Inc. Data storage device which serializes memory device ready/busy signals

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023084729A1 (ja) * 2021-11-12 2023-05-19 Tdk株式会社 メモリコントローラおよびフラッシュメモリシステム

Also Published As

Publication number Publication date
US8589768B2 (en) 2013-11-19
US20120311394A1 (en) 2012-12-06

Similar Documents

Publication Publication Date Title
CN111149083B (zh) 支持低延时操作的ssd架构
JP2012248110A (ja) マルチチャネルを有するメモリ装置及び同装置における誤り訂正チャネル決定を含む書き込み制御方法
US9378093B2 (en) Controlling data storage in an array of storage devices
US8707134B2 (en) Data storage apparatus and apparatus and method for controlling nonvolatile memories
US8275933B2 (en) Apparatus, system, and method for managing physical regions in a solid-state storage device
US9298534B2 (en) Memory system and constructing method of logical block
US11366616B2 (en) Method for performing storage control in a storage server, associated memory device and memory controller thereof, and associated storage server
US11868652B2 (en) Utilization based dynamic shared buffer in data storage system
US10254981B2 (en) Adaptive health grading for a non-volatile memory
US20150160999A1 (en) Solid state drive controller, solid state drive, data processing method of solid state drive, multi-channel solid state drive, raid controller and computer-readable recording medium having recorded therein computer program for providing sequence information to solid state drive
JP2010015516A (ja) データ制御装置、ストレージシステムおよびプログラム
JP6515752B2 (ja) ストレージ制御装置、制御方法、および制御プログラム
KR102347841B1 (ko) 메모리제어장치 및 메모리제어장치의 동작 방법
US11954364B2 (en) Memory system and method of writing data to storage areas constituting group
US11150825B2 (en) Adaptive spare block usage in solid state drives
WO2021080774A1 (en) Construction of a block device
TWI786288B (zh) 儲存裝置、儲存裝置的控制方法及記錄媒體
JP2012248109A (ja) マルチチャネルを有するメモリ装置及び同装置におけるコンパクションのためのリードコマンド群生成方法
WO2021080785A1 (en) Construction of a block device
JP2008198221A5 (ja)
JP2019057340A (ja) メモリシステム及びメモリ制御方法
US11797183B1 (en) Host assisted application grouping for efficient utilization of device resources
US20240296121A1 (en) Validity distribution for performance uniformity
KR20100056685A (ko) Ssd 관리 장치 및 방법
JP2009080549A (ja) ディスクアレイ制御装置およびデータ配置方法

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: 20140805