JP2006018373A - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents

メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Download PDF

Info

Publication number
JP2006018373A
JP2006018373A JP2004192888A JP2004192888A JP2006018373A JP 2006018373 A JP2006018373 A JP 2006018373A JP 2004192888 A JP2004192888 A JP 2004192888A JP 2004192888 A JP2004192888 A JP 2004192888A JP 2006018373 A JP2006018373 A JP 2006018373A
Authority
JP
Japan
Prior art keywords
data
block
flash memory
blocks
parity data
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
JP2004192888A
Other languages
English (en)
Inventor
Rikiya Kawada
力也 川田
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.)
TDK Corp
Original Assignee
TDK 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 TDK Corp filed Critical TDK Corp
Priority to JP2004192888A priority Critical patent/JP2006018373A/ja
Publication of JP2006018373A publication Critical patent/JP2006018373A/ja
Withdrawn legal-status Critical Current

Links

Images

Abstract

【課題】 フラッシュメモリシステムにおけるエラー検出及び訂正の能力を高める。
【解決手段】 複数のチップで構成されたフラッシュメモリ2に対し、コントローラ3は、互いに異なるチップ内のブロックを関連付け、関連付けられた複数のブロックを共通のグループとして取扱い、そのグループ内の1ブロックを、他のブロックに書込まれたユーザデータのパリティーデータを書込むパリティーデータ用ブロックに割当て、ユーザデータとパリティーデータとを書込む。そして、パリティーデータに基づいてユーザデータのエラー検出及びその訂正を行う。
【選択図】 図1

Description

本発明は、メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法に関する。
近年、メモリーカードやシリコンディスク等の形態でメモリシステムに使用される半導体メモリとして、フラッシュメモリが広く採用されている。フラッシュメモリでは、電力の供給が停止された状態でもデータが保持されていることが要求される。
NAND型フラッシュメモリは、上記のメモリシステムで特に多く用いられるフラッシュメモリである。
NAND型フラッシュメモリに含まれている複数のメモリセルのそれぞれは、消去状態のときに論理値“1”を示し、書込み状態の時に“0”を示す。そして、複数のメモリセルは、他のメモリセルとは独立して消去状態から書込状態へと変化することができる。
これとは対照的に、書込状態から消去状態へと変化させるときには、各メモリセルは他のメモリセルと独立して変化させることができない。この書込状態から消去状態に変化させるときには、ブロックと称される予め定められた所定数のメモリセルを全て同時に消去状態にする。この一括消去動作は、一般的に、「ブロック消去」と称されている。NAND型フラッシュメモリに対する書込処理若しくは読出処理は、ページと称される予め定められた数のメモリセル単位に処理が行われる。消去処理の単位であるブロックは複数のページで構成されている。
上記フラッシュメモリでは、書込処理の際にビットエラーが発生することがあり、その頻度は書込み回数が一定回数以上になると増加する。このため、通常のフラッシュメモリシステムでは、ECC(Error Correction Code)を用いて、ビットエラーの検出と訂正を行っている。
ECCを用いたフラッシュメモリシステムでは、フラッシュメモリシステムに書込まれるユーザデータに基づいて生成したECCを、フラッシュメモリの冗長領域に書込んでおき、フラッシュメモリからユーザデータを読出したときに、読出したユーザデータに基づいて生成したECCと、冗長領域に書込まれているECCとを比較する。その結果、ビットエラーが検出された場合は、その比較結果に基づいてエラー訂正が行われる。
但し、このエラー訂正では、1ページのユーザデータに対して、1ビット若しくは2ビットのエラー訂正は可能であるが、それ以上のエラーが発生した場合には、正常なエラー訂正を行うことができない。
下記、特許文献1には、この問題を改善するための技術が開示されている。この技術では、各ページに書込まれるユーザデータを複数に分割し、分割した単位毎にECCを生成するようにしたので、分割した単位でエラー訂正を行うことができる。
特開2000−20409号公報
特許文献1に開示された技術により、各ページに書込まれるユーザデータに対する訂正可能なビット数は増加するが、更にエラー訂正能力を向上させたい場合がある。
本発明は、フラッシュメモリを用いたフラッシュメモリシステムで発生するビットエラーのエラー訂正能力を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法を提供することを目的とする。
上記目的を達成するために、本発明の第1の観点に係るメモリコントローラは、ページ単位でデータの書込み及び読出が可能で、複数ページからなるブロック単位でデータの消去が可能であると共に複数チップで構成されたフラッシュメモリに接続され、該各チップにアクセスするアクセス手段と、
前記フラッシュメモリの互いに異なるチップ内のブロックを関連付け、該関連付けられた複数のブロックを共通のグループとして取扱い、該グループ内の1ブロックを、該グループ内の他のブロックに書込まれたユーザデータのパリティーデータを書込むパリティーデータ用ブロックに割当てるグループ管理手段と、
前記パリティーデータ用ブロックにパリティーデータを設定するパリティーデータ設定手段と、
前記パリティーデータに基づいて前記グループ内の他のブロックに書込まれたユーザデータのエラー検出及びその訂正を行うデータ矯正手段と、
を備えたことを特徴とする。
このような構成を採用したことにより、パリティーデータに基づいて、ユーザデータの誤り検出とその訂正が可能になり、書き込み回数が増加すると誤りの多くなるフラッシュメモリにおけるデータの信頼性を向上できる。
尚、前記データ矯正手段は、前記ユーザデータが前記ページ単位で書込まれる際に生成されたエラー訂正用コードを用いてユーザデータのエラー検出及びその訂正を試み、エラー検出及び訂正ができない場合に前記パリティーデータに基づいて該ユーザデータのエラー検出及びその訂正を行ってもよい。
このように、エラー訂正用コードを用いたエラー検出及びデータの訂正を併用する場合には、エラー訂正用コードを用いてエラー検出と訂正を行い、エラー訂正用コードによるエラー検出及びデータの訂正ができない場合に、パリティーデータを用いたエラー検出及びデータの訂正を行うことにより、エラー検出及びデータの訂正の精度が向上する。
ここで、前記フラッシュメモリのいずれのチップに対しても前記パリティーデータ用ブロックを割当ててもよい。
又、同一の前記グループに属するブロックの冗長領域に、同一の符号を設定することにより、各ブロックを関連付けてもよい。
又、前記パリティーデータが設定されているブロックの冗長領域に、該ブロックが前記パリティーデータ用ブロックであることを示す情報を設定してもよい。
前記目的を達成するために、本発明の第2の観点に係るフラッシュメモリシステムは、上記メモリコントローラと、ページ単位でデータの書込み及び読出が可能で、複数ページからなるブロック単位でデータの消去が可能であると共に複数チップで構成されたフラッシュメモリとを備えることを特徴とする。
前記目的を達成するために、本発明の第3の観点に係るフラッシュメモリの制御方法は、ページ単位でデータの書込み及び読出が可能で、複数ページからなるブロック単位でデータの消去が可能であると共に複数チップで構成されたフラッシュメモリの互いに異なるチップ内のブロックを関連付け、該関連付けられた複数のブロックを共通のグループとして取扱い、該グループ内の1ブロックを、該グループ内の他のブロックに書込まれたデータのパリティーデータを書込むパリティーデータ用ブロックに割当て、該パリティーデータ用ブロックを除くブロックに、ホストシステムから与えられるユーザデータを書込む書込処理と、
前記パリティーデータ用ブロックに前記ユーザデータに基づいて生成したパリティーデータを書込むパリティーデータ設定処理と、
前記パリティーデータに基づいて前記グループ内の他のブロックに書込まれたユーザデータのエラー検出及びその訂正を行うデータ矯正処理と、を含むことを特徴とする。
尚、前記データ矯正処理は、前記ユーザデータが前記ページ単位で書込まれる際に生成されたエラー訂正用コードを用いてユーザデータのエラー検出及びその訂正を試み、エラー検出及び訂正ができない場合に前記パリティーデータに基づいて該ユーザデータのエラー検出及びその訂正を行ってもよい。
又、前記フラッシュメモリのいずれのチップに対しても前記パリティーデータ用ブロックが割当てられてもよい。
又、同一の前記グループに属するブロックの冗長領域に、同一の符号を設定することにより、各ブロックを関連付けてもよい。
又、パリティーデータが設定されているブロックの冗長領域に、該ブロックが前記パリティーデータ用ブロックであることを示す情報を設定してもよい。
本発明によれば、複数チップで構成されたフラッシュメモリに発生するデータの書き込み誤りをパリティーデータを用いて検出し、そのデータを訂正できる。また、不具合等により、1つのチップを交換するような場合には、交換したチップに書込まれていたデータを、他のチップに書込まれているデータに基づいて再生成することができる。
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施形態に係るフラッシュメモリシステム1を概略的に示すブロック図である。
図1に示したようにフラッシュメモリシステム1は、複数チップで構成されたフラッシュメモリ2と、それを制御するコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常ホストシステム4に着脱可能に装着されて使用され、ホストシステム4に対して一種の外部記憶装置として用いられる。
尚、ホストシステム4としては、文字、音声、或いは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
フラッシュメモリ2は、NAND型フラッシュメモリであり、ページ単位で読出し又は書込みを、ブロック単位で消去を実行するデバイスであり、例えば、1ブロックは32ページで構成され、1ページは512バイトのユーザ領域と16バイトの冗長領域で構成されている。
NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行うことができず、書込みと読出しはページ単位で、消去はブロック単位で行われる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行われる。
NAND型フラッシュメモリは、このような特徴を有するため、通常、データの書替を行う場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという処理を行っている。
このようなデータの書替を行った場合、書替後のデータは書替前と異なるブロックに書込まれるため、ホストシステム4側から与えられるアドレスに基づく論理ブロックアドレスと、フラッシュメモリ2内でのブロックアドレスである物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。この論理ブロックアドレスと物理ブロックアドレスとの対応関係は、通常、その対応関係を示したアドレス変換テーブルによって管理されており、アドレス変換テーブルは、後述する対応論理ブロックアドレスに基づいて作成される。
図2(a),(b)は、ブロックとページの関係を示す説明図である。
上記ブロックとページの構成は、フラッシュメモリ2の仕様によって異なるが、一般的なフラッシュメモリでは、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザ領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが、2048バイトのユーザ領域と64バイトの冗長領域とで構成されているものも提供されている。
ユーザ領域とは、主に、ホストシステム4から供給されるデ―タが記憶される領域であり、冗長領域とは、エラー訂正用コードであるエラーコレクションコード(ECC)、対応論理ブロックアドレス及びブロックステータス等の付加データが記憶される領域である。
エラ―コレクションコードは、ユーザ領域に記憶されているデータに含まれる誤りを検出、訂正するための付加データであり、コントローラ3によって生成される。対応論理ブロックアドレスは、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。
尚、そのブロックにデータが格納されていない場合は、対応論理ブロックアドレスも格納されていないので、対応論理ブロックアドレスが格納されているか否かで、そのブロックが消去済ブロックであるか否かを判断することもできる。つまり、対応論理ブロックアドレスが格納されていない場合は、消去済ブロックであると判断される。
ブロックステータスは、そのブロックが不良ブロック(正常にデータの書込み等を行うことができないブロック)であるか否かを示すフラグであり、そのブロックが不良ブロックであると判断された場合には、不良ブロックであることを示すフラグが設定される。
ここで、NAND型フラッシュメモリの回路構成について説明する。
一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によってメモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行われる。
メモリセルアレイを構成する各メモリセルは、2つのゲートを備えたMOSトランジスタで構成されている。ここで、上側のゲートはコントロールゲートと呼ばれ、下側のゲートはフローティングゲートと呼ばれており、フローティングゲートに電荷(電子)を注入若しくはフローティングゲートから電荷(電子)を排出することによって、データの書込み若しくはデータの消去を行っている。
そのフローティングゲートは、周囲を絶縁体で囲まれているので、注入された電子は長期間にわたって保持される。尚、フローティングゲートに電子を注入するときは、コントロールゲートが高電位側となる高電圧を印加して電子を注入し、フローティングゲートから電子を排出するときは、コントロールゲートが低電位側となる高電圧を印加して電子を排出する。
フローティングゲートに電子が注入されている状態(書込状態)が、論理値の「0」のデータに対応し、フローティングゲートから電子が排出されている状態(消去状態)が、論理値の「1」のデータに対応する。
フラッシュメモリ2を制御するメモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラーコレクションコード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。
これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
マイクロプロセッサ6は、コントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。
ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を制御する機能ブロックである。ここで、ホストインターフェース制御ブロック5は、ホストインターフェースブロック7の動作を設定する動作設定レジスタ(図示せず)を備えており、この動作設定レジスタに基づき、ホストインターフェースブロック7は動作する。
ホストインターフェースブロック7は、ホストシステム4との間でデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行う機能ブロックである。すなわち、フラッシュメモリシステム1がホストシステム4に装着されると、フラッシュメモリシステム1とホストシステム4とは、外部バス13を介して相互に接続され、かかる状態において、ホストシステム4よりフラッシュメモリシステム1に供給されるデータ等は、ホストインターフェースブロック7を入口としてコントローラ3の内部に取り込まれる。又、フラッシュメモリシステム1からホストシステム4に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストシステム4に供給される。
さらに、ホストインターフェースブロック7は、ホストシステム4より供給されるホストアドレス及び外部コマンドを一時的に格納するタスクファイルレジスタ(図示せず)及びエラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
ワークエリア8は、フラッシュメモリ2の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAM(Static Random Access Memory)セルによって構成される機能ブロックである。
バッファ9は、フラッシュメモリ2から読出したデータ及びフラッシュメモリ2に書込むデータを一時的に保持する機能ブロックである。すなわち、フラッシュメモリ2から読出したデータは、ホストシステム4の受取準備ができるまでバッファ9に保持され、フラッシュメモリ2に書込むデータは、フラッシュメモリ2の書込準備ができるまでバッファ9に保持される。
フラッシュメモリシーケンサブロック12は、内部コマンドに基づきフラッシュメモリ2の動作を制御する機能ブロックである。フラッシュメモリシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドを実行する際に必要な情報が設定される。この複数のレジスタに内部コマンドを実行する際に必要な情報が設定されると、フラッシュメモリシーケンサブロック12は、その情報に基づいて処理を実行する。ここで、「内部コマンド」とは、コントローラ3からフラッシュメモリ2に与えられるコマンドであり、ホストシステム4からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。
フラッシュメモリインターフェースブロック10は、内部バス14を介して、フラッシュメモリ2とデータ、アドレス情報、ステータス情報、内部コマンド情報及びデバイスID情報等の授受を行う機能ブロックである。
ECCブロック11は、フラッシュメモリ2に書込むデ―タに付加されるエラーコレクションコードを生成するとともに、読出データに付加されたエラーコレクションコードに基づいて、読出したデータに含まれる誤りを検出・訂正する機能ブロックである。
次に、コントローラ3によるフラッシュメモリ2の制御方法を説明する。
本発明に係るフラッシュメモリシステム1では、互いに異なるチップ内のフラッシュメモリ2のブロックを関連付け、関連付けられたブロックのうちの1つに、パリティーデータを記憶させる。以下の説明で、互いに関連付けられたブロックの集合体を、グループと言う。
図3は、フラッシュメモリ2の構成例を示す図である。
図3のように、4つのチップ0〜3でフラッシュメモリ2を構成すると、各チップ0〜3内では、1024個のブロックを1つのゾーンとして取扱い、フラッシュメモリ2内の記憶領域をゾーン単位でホストシステム4のアドレス空間に割当てている。不良ブロックの発生等を考慮して、各チップ0〜3の持つ記憶領域のゾーン0,1,2,…に、それぞれ最大で1000ブロック分のデータが記憶されるように設定すれば、フラッシュメモリ2内のチップ0の記憶領域のゾーン0、チップ1の記憶領域のゾーン0、チップ2の記憶領域のゾーン0、及びチップ3の記憶領域のゾーン0には、総計で4000ブロック分のデータが記憶される。
図3に示したように、4つのチップでフラッシュメモリ2を構成した場合、ユーザデータを記憶させる3つのブロックと、パリティーデータを記憶させる1つのブロックが関連付けられる。
チップ0の記憶領域のゾーン0、チップ1の記憶領域のゾーン0、チップ2の記憶領域のゾーン0、及びチップ3の記憶領域のゾーン0には、3000ブロック分のユーザデータと1000ブロック分のパリティーデータが記憶される。従って、チップ0〜3の記憶領域のゾーン0に対して、ホストシステムの3000ブロック分のアドレス空間が割当てられる。同様に、チップ0〜3のフラッシュメモリ2内のゾーン1に対しても、ホストシステムの3000ブロック分のアドレス空間が割当てられる。
次に、ユーザデータを記憶させるブロックと、パリティーデータを記憶させるブロックの割当てについて説明する。
図3に示したように4つのチップでフラッシュメモリ2を構成した場合、ユーザデータを記憶させる3つのブロックと、パリティーデータを記憶させる1つブロックとが、1つのグループとして関連付けられる。
1つのグループには、ホストシステム4のアドレス空間における3ブロック分のユーザデータが記憶される。尚、各グループに対するホストシステム4のアドレス空間の割当ては、ブロック単位でホストシステム4のアドレス空間に割当てても良いが、グループ単位で割当てることが好ましい。各グループに対してホストシステム4のアドレス空間を、グループ単位で割当てた場合、1つのグループには、グループ内のブロックに記憶されるユーザデータのデータ容量分の連続したアドレス空間が割当てられる。各グループには、3ブロック分のアドレス空間が割当てられる。
ここで、ホストシステム4のアドレス空間を、1つのグループに割当てられるブロック単位で分割し、分割したアドレス空間に通番を付ければ、1つのグループに対して1つの通番を割当てることができる。以下、1つのグループに割当てられるブロック毎に付けた上記通番を論理通番と言う。
図3に示した3000ブロック分のアドレス空間を、各グループに割当てられる3ブロック単位に分割し、3ブロック毎に論理通番を付与すれば、この3000ブロック分のアドレス空間には、0〜999の論理通番が付与される。この論理通番を、この論理通番に対応するユーザデータが書込まれるグループのブロックの冗長領域に書込めば、冗長領域に書込まれる論理通番に基づいて、各グループとホストシステム4のアドレス空間との対応関係を判別することができる。又、冗長領域に書込まれる論理通番に基づいて、同一のグループに属するブロックを判別することができる。
図4は、ユーザデータを記憶させるブロックと、パリティーデータを記憶させるブロックの割当てを示している。以下、ユーザデータを記憶させるブロックをユーザデータブロックと言い、パリティーデータを記憶させるブロックをパリティーデータブロックと言う。
図4に示した例では、ユーザデータブロックUBとパリティーデータブロックPBを、チップ1〜4の各フラッシュメモリに均等に割当てている。論理通番0に対応するグループでは、チップ0のブロックに、パリティーデータブロックPBを割当て、論理通番1に対応するグループでは、チップ1のブロックに、パリティーデータブロックPBを割当て、論理通番2に対応するグループでは、チップ2のブロックに、パリティーデータブロックPBを割当て、論理通番3に対応するグループでは、チップ3のブロックにパリティーデータブロックPBを割当てている。以下同様にして、各チップのフラッシュメモリ2に、パリティーデータブロックPBを順次割当てている。
各グループにおいてパリティーデータブロックPBに割当てられなかった他の3ブロックは、ユーザデータブロックUBに割当てられる。尚、パリティーデータブロックPBは、チップ1〜4の各フラッシュメモリに均等に割当てることが好ましいが、必ずしも均等に割当てる必要はない。
次に、グループ内の各ブロックに、ページ単位で書込まれるユーザデータとパリティーデータについて説明する。
図5は、同一のグループに属するブロックの各ページに書込まれるデータを示す図である。
図5に示した例では、ホストシステム4から与えられる3ブロック分のユーザデータが、チップ1〜3のブロックに書込まれ、このユーザデータに対応するパリティーデータPDが、チップ0のブロックに書込まれる。ここで、ホストシステム4の3ブロック分のアドレス空間に対応するユーザデータをページ単位で分割し、分割した96ページ分のユーザデータを先頭から順番にUD0〜UD95とすれば、チップ1内のブロックのページ0(P0)にユーザデータUD0が書込まれ、チップ2内のブロックのページ0(P0)にユーザデータUD1が書込まれ、チップ3内のブロックのページ0(P0)にユーザデータUD2が書込まれ、チップ0内のブロックのページ0(P0)にユーザデータUD0〜UD2に対応するパリティーデータPDが書込まれる。
以下同様にして、チップ1、チップ2、チップ3の順番で、ユーザデータUD3以降のデータが順次書込まれ、チップ0内のブロックの各ページには、チップ1〜3の同じページ番号のページに書込まれたユーザデータに対するパリティーデータPDが書込まれる。
次に、チップ0〜4のフラッシュメモリの冗長領域に書込まれている論理通番に基づいた、グループの判別と、記憶されているデータがユーザデータであるか、若しくはパリティーデータPDであるかの判別について説明する。
図6は、グループ判別及びデータ判別の説明図である。
フラッシュメモリ2を構成するチップ0の記憶領域のゾーン2a、チップ1の記憶領域のゾーン2b、チップ2の記憶領域のゾーン2c及びチップ3の記憶領域のゾーン2dは、それぞれ1024のブロックで構成されている。各ゾーン2a〜2d内のブロックに物理ブロックアドレス(フラッシュメモリ2内のブロックアドレス)の順番で0〜1023の通番が付けられる。以下、物理ブロックアドレスの順番で付けた通番を物理通番と言う。
図6には、各ゾーン内の各ブロックに書込まれているデータの種別(ユーザデータU、パリティーデータP、データが書込まれていない状態E)と、冗長領域に書込まれている論理通番が示されている。
図6に示した例で、ゾーン2aの物理通番0のブロック、ゾーン2bの物理通番2のブロック、ゾーン2cの物理通番5のブロック及びゾーン2dの物理通番2のブロックには、同一の論理通番0000 0001b(2進数)が書込まれているので、ゾーン2aの物理通番0のブロック、ゾーン2bの物理通番2のブロック、ゾーン2cの物理通番5のブロック及びゾーン2dの物理通番2のブロックは、同一のグループに属していることが分かる。更に、図4に示した規則に従ってユーザデータUとパリティーデータPが書込まれていれば、冗長領域に書込まれている論理通番に基づいて、チップ0、チップ2、チップ3にユーザデータが書込まれ、チップ1にパリティーデータが書込まれていることが分かる。
尚、各ブロックの冗長領域に、記憶されているデータがユーザデータUであるか、若しくはパリティーデータPであるかを示す情報を設定してもよい。例えば、特定のビットを、データの種別を示すビットに割当て、このビットの論理値でユーザデータUであるか、若しくはパリティーデータPであるかを示してもよい。
次に、ユーザデータに基づいて設定されるパリティーデータPDについて説明する。
図7は、パリティーデータPDの説明図であり、各チップ0〜3の記憶領域のブロックにそれぞれ書込まれる連続した1バイト分のユーザデータUD0〜UD2とそれに対応するパリティーデータPDとを示している。
各データUD0〜UD2,PDは、b0が最下位ビットで、b7が最上位ビットになっている。つまり、ユーザデータUD0は、0101 0110b(2進数)に対応し、ユーザデータUD1は、0001 0100b(2進数)に対応し、ユーザデータUD2は、0000 1110b(2進数)に対応する。
パリティーデータPDの値は、ユーザデータUD0、ユーザデータUD1、ユーザデータUD2及びパリティーデータPDの対応するビットの論理値"1"の総数が、偶数若しくは奇数になるように設定される。ここでは、論理値"1"の総数が、偶数になるようにパリティーデータPDの値を設定している。ユーザデータUD0〜UD2のb0は、"0"、"0"、"0"であり、論理値"1"の総数が0個なので、パリティーデータPDのb0の論理値は、"0"に設定される。ユーザデータUD0〜2のb1は、"1"、"0"、"1"であり、論理値"1"の総数が2個なので、パリティーデータPDのb1の論理値は、"0"に設定される。
ユーザデータUD0〜2のb2は、"1"、"1"、"1"であり、論理値"1"の総数が3個なので、パリティーデータPDのb2の論理値は、"1"に設定される。ユーザデータUD0〜2のb3は、"0"、"0"、"1"であり、論理値"1"の総数が1個なので、パリティーデータPDのb3の論理値は、"1"に設定される。ユーザデータUD0〜2のb4は、"1"、"1"、"0"であり、論理値"1"の総数が2個なので、パリティーデータPDのb4の論理値は、"0"に設定される。
ユーザデータUD0〜2のb5は、"0"、"0"、"0"であり、論理値"1"の総数が0個なので、パリティーデータPDのb5の論理値は、"0"に設定される。ユーザデータUD0〜2のb6は、"1"、"0"、"0"であり、論理値"1"の総数が1個なので、パリティーデータPDのb6の論理値は、"1"に設定される。ユーザデータUD0〜2のb7は、"0"、"0"、"0"であり、論理値"1"の総数が0個なので、パリティーデータPDのb7の論理値は、"0"に設定される。
従って、ユーザデータUD0〜2に対応するパリティーデータPDは、0100 1100b(2進数)になる。
設定されたパリティーデータPDは、ECC(Error Correction Code)を用いて、ビットエラーが検出され、そのエラーがECCに基づいて訂正することができる許容範囲を超えている場合に使用される。例えば、ユーザデータUD0を読出したときに、マイクロプロセッサ6が、ECCに基づいてビットエラーを検出し、そのエラーがECCに基づいて訂正することができる許容範囲を超えていた場合は、ユーザデータUD1、ユーザデータUD2及びパリティーデータPDに基づいて、論理値"1"の総数が偶数になるようにユーザデータUD0の各ビットの値を訂正する。
ECCを用いたエラー検出及び訂正では、ページのユーザデータに対して、1ビット或いは2ビットしか検出及び訂正の能力がなかったが、本実施形態のように、パリティーデータを用いたエラーの検出と訂正を実施することにより、ユーザデータUD0の全てのビットのエラー検出とその訂正が可能になり、精度及び能力が向上する。
本発明の実施形態に係るフラッシュメモリシステムを概略的に示すブロック図である。 ブロックとページの関係を示す説明図である。 フラッシュメモリの構成例を示す図である。 ユーザデータを記憶させるブロックとパリティーデータを記憶させるブロックの割当てを示す図である。 同一のグループに属するブロックの各ページに書込まれるデータを示す図である。 グループ判別及びデータ判別の説明図である。 パリティーデータの説明図である。
符号の説明
1 フラッシュメモリシステム
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス

Claims (11)

  1. ページ単位でデータの書込み及び読出しが可能で、複数ページからなるブロック単位でデータの消去が可能であると共に複数チップで構成されたフラッシュメモリに接続され、該各チップにアクセスするアクセス手段と、
    前記フラッシュメモリの互いに異なるチップ内のブロックを関連付け、該関連付けられた複数のブロックを共通のグループとして取扱い、該グループ内の1ブロックを、該グループ内の他のブロックに書込まれたユーザデータのパリティーデータを書込むパリティーデータ用ブロックに割当てるグループ管理手段と、
    前記パリティーデータ用ブロックにパリティーデータを設定するパリティーデータ設定手段と、
    前記パリティーデータに基づいて前記グループ内の他のブロックに書込まれたユーザデータのエラー検出及びその訂正を行うデータ矯正手段と、
    を備えたことを特徴とするメモリコントローラ。
  2. 前記データ矯正手段は、前記ユーザデータが前記ページ単位で書込まれる際に生成されたエラー訂正用コードを用いてユーザデータのエラー検出及びその訂正を試み、エラー検出及び訂正ができない場合に前記パリティーデータに基づいて該ユーザデータのエラー検出及びその訂正を行うことを特徴とする請求項1に記載のメモリコントローラ。
  3. 前記フラッシュメモリのいずれのチップに対しても前記パリティーデータ用ブロックが割当てられることを特徴とする請求項1又は2に記載のメモリコントローラ。
  4. 同一の前記グループに属するブロックの冗長領域に、同一の符号を設定することにより、各ブロックを関連付けることを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。
  5. 前記パリティーデータが設定されているブロックの冗長領域に、該ブロックが前記パリティーデータ用ブロックであることを示す情報を設定することを特徴とする請求項1乃至4のいずれか1項に記載のメモリコントローラ。
  6. 請求項1乃至5のいずれか1項に記載のメモリコントローラと、
    ページ単位でデータの書込み及び読出しが可能で、複数ページからなるブロック単位でデータの消去が可能であると共に複数チップで構成されたフラッシュメモリと、
    を備えることを特徴とするフラッシュメモリシステム。
  7. ページ単位でデータの書込み及び読出しが可能で、複数ページからなるブロック単位でデータの消去が可能であると共に複数チップで構成されたフラッシュメモリの互いに異なるチップ内のブロックを関連付け、該関連付けられた複数のブロックを共通のグループとして取扱い、該グループ内の1ブロックを、該グループ内の他のブロックに書込まれたデータのパリティーデータを書込むパリティーデータ用ブロックに割当て、該パリティーデータ用ブロックを除くブロックに、ホストシステムから与えられるユーザデータを書込む書込処理と、
    前記パリティーデータ用ブロックに前記ユーザデータに基づいて生成したパリティーデータを書込むパリティーデータ設定処理と、
    前記パリティーデータに基づいて前記グループ内の他のブロックに書込まれたユーザデータのエラー検出及びその訂正を行うデータ矯正処理と、
    を含むことを特徴とするフラッシュメモリの制御方法。
  8. 前記データ矯正処理は、前記ユーザデータが前記ページ単位で書込まれる際に生成されたエラー訂正用コードを用いてユーザデータのエラー検出及びその訂正を試み、エラー検出及び訂正ができない場合に前記パリティーデータに基づいて該ユーザデータのエラー検出及びその訂正を行うことを特徴とする請求項7に記載のフラッシュメモリの制御方法。
  9. 前記フラッシュメモリのいずれのチップに対しても前記パリティーデータ用ブロックが割当てられることを特徴とする請求項7又は8に記載のフラッシュメモリの制御方法。
  10. 同一の前記グループに属するブロックの冗長領域に、同一の符号を設定することにより、各ブロックを関連付けることを特徴とする請求項7乃至9のいずれか1項に記載の記載のフラッシュメモリの制御方法。
  11. パリティーデータが設定されているブロックの冗長領域に、該ブロックが前記パリティーデータ用ブロックであることを示す情報を設定することを特徴とする請求項7乃至10のいずれか1項に記載のフラッシュメモリの制御方法。
JP2004192888A 2004-06-30 2004-06-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Withdrawn JP2006018373A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004192888A JP2006018373A (ja) 2004-06-30 2004-06-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004192888A JP2006018373A (ja) 2004-06-30 2004-06-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Publications (1)

Publication Number Publication Date
JP2006018373A true JP2006018373A (ja) 2006-01-19

Family

ID=35792626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004192888A Withdrawn JP2006018373A (ja) 2004-06-30 2004-06-30 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP2006018373A (ja)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011060217A (ja) * 2009-09-14 2011-03-24 Toshiba Corp データ蓄積装置及びデータ書込み/読出し方法
JP2011081754A (ja) * 2009-10-09 2011-04-21 Chiba Univ 記録装置
JP2011521397A (ja) * 2008-05-16 2011-07-21 フュージョン−アイオー・インコーポレーテッド 故障したデータ記憶機構を検出し、置き換えるための装置、システム及び方法
JP2013016149A (ja) * 2011-06-08 2013-01-24 Panasonic Corp メモリコントローラ及び不揮発性記憶装置
US8397127B2 (en) 2009-11-25 2013-03-12 Panasonic Corporation Semiconductor recording device and semiconductor recording device control method
US8429494B2 (en) 2009-08-06 2013-04-23 Sony Corporation Nonvolatile random access memory and nonvolatile memory system
US8495460B2 (en) 2009-05-18 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for reconfiguring an array of storage elements
US8539300B2 (en) 2010-07-13 2013-09-17 Panasonic Corporation Information recording and reproducing apparatus for writing user data received from an external device to a recording medium using generated parity data corresponding to the user data
US8650463B2 (en) 2010-02-01 2014-02-11 Samsung Electronics Co., Ltd. Solid state drive and method of controlling an error thereof
JP2014029737A (ja) * 2013-11-13 2014-02-13 Chiba Univ 記録装置
US8762810B2 (en) 2009-12-28 2014-06-24 Panasonic Corporation Semiconductor recording device, control method of semiconductor recording device, and semiconductor recording system
US8775902B2 (en) 2011-10-07 2014-07-08 Panasonic Corporation Memory controller and storage device
US8832528B2 (en) 2009-05-18 2014-09-09 Fusion-Io, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US9158622B2 (en) 2012-06-01 2015-10-13 Samsung Electronics Co. Ltd. Storage device including non-volatile memory device and repair method
US10102071B2 (en) 2016-09-26 2018-10-16 Toshiba Memory Corporation Storage device that restores data lost during a subsequent data write
JP2018169688A (ja) * 2017-03-29 2018-11-01 ラピスセミコンダクタ株式会社 メモリシステム及びメモリの管理方法
US10248560B2 (en) 2016-09-26 2019-04-02 Toshiba Memory Corporation Storage device that restores data lost during a subsequent data write
JP2020064350A (ja) * 2018-10-15 2020-04-23 ハギワラソリューションズ株式会社 フラッシュメモリの管理方法
CN113342577A (zh) * 2021-06-24 2021-09-03 长江存储科技有限责任公司 存储设备及其数据恢复方法
US11410741B2 (en) 2020-02-07 2022-08-09 Tdk Corporation Memory controller and flash memory system
JP7302497B2 (ja) 2020-02-07 2023-07-04 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム

Cited By (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011521397A (ja) * 2008-05-16 2011-07-21 フュージョン−アイオー・インコーポレーテッド 故障したデータ記憶機構を検出し、置き換えるための装置、システム及び方法
US8738991B2 (en) 2009-05-18 2014-05-27 Fusion-Io, Inc. Apparatus, system, and method for reconfiguring an array of storage elements
US8832528B2 (en) 2009-05-18 2014-09-09 Fusion-Io, Inc. Apparatus, system, and method to increase data integrity in a redundant storage system
US8495460B2 (en) 2009-05-18 2013-07-23 Fusion-Io, Inc. Apparatus, system, and method for reconfiguring an array of storage elements
US9306599B2 (en) 2009-05-18 2016-04-05 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for reconfiguring an array of storage elements
US8429494B2 (en) 2009-08-06 2013-04-23 Sony Corporation Nonvolatile random access memory and nonvolatile memory system
JP2011060217A (ja) * 2009-09-14 2011-03-24 Toshiba Corp データ蓄積装置及びデータ書込み/読出し方法
JP2011081754A (ja) * 2009-10-09 2011-04-21 Chiba Univ 記録装置
US8397127B2 (en) 2009-11-25 2013-03-12 Panasonic Corporation Semiconductor recording device and semiconductor recording device control method
US8762810B2 (en) 2009-12-28 2014-06-24 Panasonic Corporation Semiconductor recording device, control method of semiconductor recording device, and semiconductor recording system
KR101623119B1 (ko) 2010-02-01 2016-05-20 삼성전자주식회사 솔리드 스테이트 드라이브의 에러 제어 방법
US8650463B2 (en) 2010-02-01 2014-02-11 Samsung Electronics Co., Ltd. Solid state drive and method of controlling an error thereof
US8539300B2 (en) 2010-07-13 2013-09-17 Panasonic Corporation Information recording and reproducing apparatus for writing user data received from an external device to a recording medium using generated parity data corresponding to the user data
JP2013016149A (ja) * 2011-06-08 2013-01-24 Panasonic Corp メモリコントローラ及び不揮発性記憶装置
US8775902B2 (en) 2011-10-07 2014-07-08 Panasonic Corporation Memory controller and storage device
US9158622B2 (en) 2012-06-01 2015-10-13 Samsung Electronics Co. Ltd. Storage device including non-volatile memory device and repair method
JP2014029737A (ja) * 2013-11-13 2014-02-13 Chiba Univ 記録装置
US10102071B2 (en) 2016-09-26 2018-10-16 Toshiba Memory Corporation Storage device that restores data lost during a subsequent data write
US10248560B2 (en) 2016-09-26 2019-04-02 Toshiba Memory Corporation Storage device that restores data lost during a subsequent data write
US10725906B2 (en) 2016-09-26 2020-07-28 Toshiba Memory Corporation Storage device that restores data lost during a subsequent data write
JP2018169688A (ja) * 2017-03-29 2018-11-01 ラピスセミコンダクタ株式会社 メモリシステム及びメモリの管理方法
JP2020064350A (ja) * 2018-10-15 2020-04-23 ハギワラソリューションズ株式会社 フラッシュメモリの管理方法
JP7017495B2 (ja) 2018-10-15 2022-02-08 ハギワラソリューションズ株式会社 フラッシュメモリの管理方法
US11410741B2 (en) 2020-02-07 2022-08-09 Tdk Corporation Memory controller and flash memory system
JP7302497B2 (ja) 2020-02-07 2023-07-04 Tdk株式会社 メモリコントローラ及びフラッシュメモリシステム
CN113342577A (zh) * 2021-06-24 2021-09-03 长江存储科技有限责任公司 存储设备及其数据恢复方法
CN113342577B (zh) * 2021-06-24 2023-11-03 长江存储科技有限责任公司 存储设备及其数据恢复方法

Similar Documents

Publication Publication Date Title
JP2006018373A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US8694748B2 (en) Data merging method for non-volatile memory module, and memory controller and memory storage device using the same
US9383929B2 (en) Data storing method and memory controller and memory storage device using the same
JP2006221334A (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4636005B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4661191B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4153535B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4241741B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4609406B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4433792B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US9830077B2 (en) Data writing method, memory control circuit unit and memory storage apparatus
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4000124B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP2005292925A (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP3934659B1 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4194518B2 (ja) メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4254933B2 (ja) メモリコントローラ及びフラッシュメモリシステム
JP4235595B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4068594B2 (ja) フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法
JP4254930B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2005293177A (ja) メモリコントローラ及びフラッシュメモリシステム
US20120311243A1 (en) Method for increasing reliability of data accessing for a multi-level cell type non-volatile memory
JP4366283B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム

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