JP2006127441A - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents
メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Download PDFInfo
- Publication number
- JP2006127441A JP2006127441A JP2004345597A JP2004345597A JP2006127441A JP 2006127441 A JP2006127441 A JP 2006127441A JP 2004345597 A JP2004345597 A JP 2004345597A JP 2004345597 A JP2004345597 A JP 2004345597A JP 2006127441 A JP2006127441 A JP 2006127441A
- Authority
- JP
- Japan
- Prior art keywords
- error correction
- correction code
- data
- flash memory
- conversion process
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【解決手段】 ユーザー領域に書込まれるユーザーデータに基づいて生成された誤り訂正符号に対してマスク回路25が第1の変換処理を施し、第1の変換処理が施された誤り訂正符号をフラッシュメモリ2の冗長領域に書込む。この第1の変換処理では、ユーザーデータのビットデータが、全て消去状態(論理値の"1")のときに、変換処理後の誤り訂正符号のビットデータが、全て消去状態(論理値の"1")になるような変換が行われる。読み出したユーザーデータに含まれる誤りを検出、訂正する場合には、第1の変換処理を施す前の誤り訂正符号に戻す第2の変換処理を施すことにより得られた誤り訂正符号が使用される。
【選択図】図3
Description
データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリにアクセスするメモリコントローラであって、
前記フラッシュメモリの各ページのユーザー領域にデータを書込むデータ書込み手段と、
前記ユーザー領域に書込まれるデータに対する誤り訂正符号を生成する誤り訂正符号生成手段と、
前記誤り訂正符号に対して、第1の変換処理を施す第1の変換処理手段と
前記第1の変換処理が施された前記誤り訂正符号を、前記ユーザー領域と対応する冗長領域に書込む訂正符号書込み手段とを備え、
前記第1の変換処理手段の行う前記第1の変換処理は、前記ユーザー領域に書込まれるデータの全てのビットデータが前記フラッシュメモリにおける消去状態と一致するときに、当該第1の変換処理が施された後の前記誤り訂正符号の全てのビットデータを、前記フラッシュメモリにおける消去状態に一致させることを特徴とする。
前記冗長領域に書込まれている前記第1の変換処理が施された誤り訂正符号を読み出す誤り訂正符号読出し手段と、
前記誤り訂正符号読出し手段が読出した前記第1の変換処理が施された誤り訂正符号に対して、第2の変換処理を施す第2の変換処理手段と、
前記第2の変換処理が施された前記誤り訂正符号に基づいて前記ユーザー領域から読み出したデータに含まれる誤りを検出、訂正する誤り検出訂正手段とを備え、
前記第2の変換処理手段の行う前記第2の変換処理は、前記第1の変換処理が施された前記誤り訂正符号を、前記第1の変換処理を施す前の前記誤り訂正符号にしてもよい。
データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記フラッシュメモリの各ページのユーザー領域にデータを書込む処理と、
前記ユーザー領域に書込まれるデータに対する誤り訂正符号を生成する処理と、
前記誤り訂正符号に対して第1の変換処理を施す処理と
前記第1の変換処理が施された前記誤り訂正符号を、前記ユーザー領域と対応する冗長領域に書込む処理とを含み、
前記第1の変換処理では、前記ユーザー領域に書込まれるデータの全てのビットデータが前記フラッシュメモリにおける消去状態と一致するときに、当該第1の変換処理が施された後の前記誤り訂正符号の全てのビットデータを、前記フラッシュメモリにおける消去状態に一致させることを特徴とする。
前記冗長領域に書込まれている前記第1の変換処理が施された誤り訂正符号を読み出す処理と、
前記冗長領域から読み出した前記第1の変換処理が施された誤り訂正符号に対して、第2の変換処理を施す処理と、
前記第2の変換処理が施された前記誤り訂正符号に基づいて前記ユーザー領域から読み出したデータに含まれる誤りを検出、訂正する処理とを含み、
前記第2の変換処理では、前記第1の変換処理が施された前記誤り訂正符号を、前記第1の変換処理を施す前の前記誤り訂正符号に戻してもよい。
図1は、フラッシュメモリシステム1を、概略的に示すブロック図である。
図1に示したように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するメモリコントローラ3で構成されている。又、フラッシュメモリシステム1は、通常、ホストシステム4に着脱可能に装着され、ホストシステム4に対して、一種の外部記憶装置として用いられる。
以下に、フラッシュメモリ2及びメモリコントローラ3の詳細を説明する。
このフラッシュメモリシステム1において、データが記憶されるフラッシュメモリ2は、NAND型フラッシュメモリで構成されている。NAND型フラッシュメモリは、ストレージデバイスへの用途として(ハードディスクの代わりになるものとして)開発された不揮発性メモリである。このNAND型フラッシュメモリは、ランダムアクセスを行なうことができず、書込みと読出しはページ単位で、消去はブロック単位で行なわれる。又、データの上書きができないので、データを書込むときは、消去されている領域にデータの書込みが行なわれる。
上記ブロックとページの構成は、フラッシュメモリ2の仕様によって異なるが、一般的なフラッシュメモリ2では、図2(a)に示したように、1ブロックが32ページ(P0〜P31)で構成され、各ページが512バイトのユーザー領域と16バイトの冗長領域で構成されている。又、記憶容量の増加に伴い、図2(b)に示したように、1ブロックが64ページ(P0〜P63)で構成され、各ページが2048バイトのユーザー領域と64バイトの冗長領域で構成されているものも提供されている。
一般的なNAND型フラッシュメモリは、書込みデータ若しくは読出しデータを保持するためのレジスタと、データを記憶するメモリセルアレイによって構成されている。メモリセルアレイは、複数のメモリセルが直列に接続されたメモリセル群を複数備えており、ワード線によって、メモリセル群の特定のメモリセルが選択される。このワード線によって選択されたメモリセルとレジスタの間で、データの複写(レジスタからメモリセルへの複写、若しくはメモリセルからレジスタへの複写)が行なわれる。
メモリコントローラ3は、ホストインターフェース制御ブロック5と、マイクロプロセッサ6と、ホストインターフェースブロック7と、ワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュメモリシーケンサブロック12とから構成される。
マイクロプロセッサ6は、メモリコントローラ3を構成する各機能ブロック全体の、動作を制御する機能ブロックである。
ホストインターフェースブロック7は、ホストシステム4より供給される論理アドレス、セクタ数及び外部コマンドを保持するレジスタや、エラーが発生した場合にセットされるエラーレジスタ(図示せず)等を有している。
図3は、書込み処理におけるECCブロックの動作を説明するための説明図である。
図4及び図5は、読出し処理におけるECCブロックの動作を説明するための図面である。
ECCレジスタ22は、フラッシュメモリ2の冗長領域から読み出した誤り訂正符号を一時的に保持する。管理データレジスタ23は、フラッシュメモリ2の冗長領域に書込む管理データ、又はフラッシュメモリ2の冗長領域から読み出した管理データを一時的に保持する。誤り訂正符号・復号器24は、書込み処理のときに、書込みデータに基づいて誤り訂正符号を生成し、読出し処理のときに、誤り訂正符号に基づいて読出しデータの誤りを検出、訂正する。マスク回路25は、入力された誤り訂正符号に対して予め設定されている第1の変換処理及び第2の変換処理を施す。フラッシュメモリ2には、ユーザーデータ、管理データ(MNG)及び誤り訂正符号(ECC−M)が書込まれる。
以下に、10ビットを1シンボルとし、4シンボルの誤り訂正、5シンボルの誤り検出能力を持つリードソロモン符号を例にとり、ECCブロック11の動作を説明する。
ホストシステム4から供給された512バイト(4096ビット)の書込みデータ(ユーザーデータ)は、バッファ9に一時的に保持された後、フラッシュメモリ2及び誤り訂正符号・復号器24に転送される。フラッシュメモリ2に転送された512バイト(4096ビット)の書込みデータは、フラッシュメモリ2のユーザー領域に書込まれる。
フラッシュメモリ2のユーザー領域から読み出されたユーザーデータは、バッファ9に保持されると共に、誤り訂正符号・復号器24にも入力される。誤り訂正符号・復号器24に入力される4096ビットのビットデータには、書込み処理の場合と同様に4ビットのダミーデータが付加される。一方、冗長領域から読み出された誤り訂正符号(ECC−M)は、マスク回路25で、第2の変換処理が施された後、ECCレジスタ22に保持されると共に、誤り訂正符号・復号器24にも入力される。第2の変換処理では、冗長領域から読み出された誤り訂正符号を、第1の変換処理を施す前の誤り訂正符号に戻すような変換処理が行われる。つまり、書込み処理のときに、誤り訂正符号・復号器24で生成された誤り訂正符号と同じ誤り訂正符号(第1の変換処理を施す前の誤り訂正符号)が、読み出した4096ビットのユーザーデータと4ビットのダミーデータに続いて、誤り訂正符号・復号器24に入力される。
この場合、ユーザー領域から読み出されたユーザーデータと、マスク回路25で第2の変換処理がされた誤り訂正符号は、誤り訂正符号・復号器24だけに入力され、誤り訂正符号・復号器24内のデータ保持手段に保持される。
図6は、第1の変換処理の概要を示す説明図である。
図7は、第2の変換処理の概要を示す説明図である。
マスク回路25は、マスクデータを出力するマスクデータ出力回路25aと、排他的論理和を出力する論理回路25bとで構成されている。
第1の変換処理の場合(図6参照)、誤り訂正符号・復号器24から出力された誤り訂正符号(ECC)が、論理回路25bに入力され、論理回路25bで誤り訂正符号とマスクデータとの排他的論理和の演算処理が行われる。論理回路25bから出力された演算処理後の誤り訂正符号(ECC−M)は、フラッシュメモリ2の冗長領域に書込まれる。
図8は、ECCシンボルとマスクデータの対応関係を示す図である。
418シンボルに対して、5シンボルの誤り検出と、4シンボルの誤り訂正が可能なリードソロモン符号を使用した場合のマスクデータと演算処理前後の誤り訂正符号は、図8のようになる。ここで、誤り訂正符号はシンボル毎に示されており、マスクデータもこれに合わせて10ビット毎に示している。例示されている8シンボルの誤り訂正符号は、ユーザーデータとして与えられる4096ビットのビットデータが、全て消去状態(論理値の"1")のときの誤り訂正符号であり、4ビットのダミーデータは、全て論理値の"0"に設定されている。
ECC0のシンボル094h(16進数表示)、ECC0に割当てられたマスクデータ36Bh(16進数表示)、及びこれらの演算処理後のシンボル(ECC−M)を2進数で示すと、図9のようになる。排他的論理和の演算処理では、誤り訂正符号のシンボルとマスクデータが、ビット毎に比較され、論理値が等しいときは、論理値の"0"が出力され、論理値が異なるときは、論理値の"1"が出力される。
第2の変換処理、つまり、ECC0に割当てられたマスクデータ36Bh(16進数表示)と演算処理後のシンボル(ECC−M)3FFh(16進数表示)との排他的論理和の演算処理を行った場合、ECC0のシンボル094h(16進数表示)が得られる。つまり、演算処理後のシンボル(ECC−M)とマスクデータとの排他的論理和の演算処理を行った場合には、演算処理前のシンボル(ECC)が得られる。
2 フラッシュメモリ
3 メモリコントローラ
4 ホストシステム
5 ホストインターフェース制御ブロック
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュメモリシーケンサブロック
13 外部バス
14 内部バス
22 ECCレジスタ
23 管理データレジスタ
24 誤り訂正符号・復号器
25 マスク回路
25a マスクデータ出力回路
25b 論理回路
Claims (11)
- データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリにアクセスするメモリコントローラであって、
前記フラッシュメモリの各ページのユーザー領域にデータを書込むデータ書込み手段と、
前記ユーザー領域に書込まれるデータに対する誤り訂正符号を生成する誤り訂正符号生成手段と、
前記誤り訂正符号に対して、第1の変換処理を施す第1の変換処理手段と
前記第1の変換処理が施された前記誤り訂正符号を、前記ユーザー領域と対応する冗長領域に書込む訂正符号書込み手段とを備え、
前記第1の変換処理手段の行う前記第1の変換処理は、前記ユーザー領域に書込まれるデータの全てのビットデータが前記フラッシュメモリにおける消去状態と一致するときに、当該第1の変換処理が施された後の前記誤り訂正符号の全てのビットデータを、前記フラッシュメモリにおける消去状態に一致させることを特徴とするメモリコントローラ。 - 前記第1の変換処理手段は、前記誤り訂正符号生成手段が生成した誤り訂正符号と予め設定されたマスクデータとの排他的論理和をとる手段を備えることを特徴とする請求項1に記載のメモリコントローラ。
- 前記ユーザー領域に書込まれているデータを読み出すデータ読出し手段と、
前記冗長領域に書込まれている前記第1の変換処理が施された誤り訂正符号を読み出す誤り訂正符号読出し手段と、
前記誤り訂正符号読出し手段が読出した前記第1の変換処理が施された誤り訂正符号に対して、第2の変換処理を施す第2の変換処理手段と、
前記第2の変換処理が施された前記誤り訂正符号に基づいて前記ユーザー領域から読み出したデータに含まれる誤りを検出、訂正する誤り検出訂正手段とを備え、
前記第2の変換処理手段の行う前記第2の変換処理は、前記第1の変換処理が施された前記誤り訂正符号を、前記第1の変換処理を施す前の前記誤り訂正符号に戻すことを特徴とする請求項1又は2に記載のメモリコントローラ。 - 前記第2の変換処理手段は、前記誤り訂正符号読出し手段が読出した前記第1の変換処理が施された誤り訂正符号と予め設定されたマスクデータとの排他的論理和をとる手段を備えることを特徴とする請求項3に記載のメモリコントローラ。
- 前記誤り訂正符号が、リードソロモン符号であることを特徴とする請求項1乃至4のいずれか1項に記載のメモリコントローラ。
- 請求項1乃至5のいずれか1項に記載のメモリコントローラと、データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリとを備えることを特徴とするフラッシュメモリシステム。
- データの書込み及び読み出しがページ単位で行われ、データの消去が複数ページからなるブロック単位で行われるフラッシュメモリに対するアクセスを制御するフラッシュメモリの制御方法であって、
前記フラッシュメモリの各ページのユーザー領域にデータを書込む処理と、
前記ユーザー領域に書込まれるデータに対する誤り訂正符号を生成する処理と、
前記誤り訂正符号に対して第1の変換処理を施す処理と
前記第1の変換処理が施された前記誤り訂正符号を、前記ユーザー領域と対応する冗長領域に書込む処理とを含み、
前記第1の変換処理では、前記ユーザー領域に書込まれるデータの全てのビットデータが前記フラッシュメモリにおける消去状態と一致するときに、当該第1の変換処理が施された後の前記誤り訂正符号の全てのビットデータを、前記フラッシュメモリにおける消去状態に一致させることを特徴とするフラッシュメモリの制御方法。 - 前記第1の変換処理は、前記生成された誤り訂正符号と予め設定されたマスクデータとの排他的論理和をとることを特徴とする請求項7に記載のフラッシュメモリの制御方法。
- 前記ユーザー領域に書込まれているデータを読み出す処理と、
前記冗長領域に書込まれている前記第1の変換処理が施された誤り訂正符号を読み出す処理と、
前記冗長領域から読み出した前記第1の変換処理が施された誤り訂正符号に対して、第2の変換処理を施す処理と、
前記第2の変換処理が施された前記誤り訂正符号に基づいて前記ユーザー領域から読み出したデータに含まれる誤りを検出、訂正する処理とを含み、
前記第2の変換処理では、前記第1の変換処理が施された前記誤り訂正符号を、前記第1の変換処理を施す前の前記誤り訂正符号に戻すことを特徴とする請求項7または8に記載のフラッシュメモリの制御方法。 - 前記第2の変換処理手段は、前記読出された前記第1の変換処理が施された誤り訂正符号と予め設定されたマスクデータとの排他的論理和をとることを特徴とする請求項9に記載のフラッシュメモリの制御方法。
- 前記誤り訂正符号が、リードソロモン符号であることを特徴とする請求項7乃至10のいずれか1項に記載のフラッシュメモリの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004345597A JP2006127441A (ja) | 2004-09-30 | 2004-11-30 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004286476 | 2004-09-30 | ||
JP2004345597A JP2006127441A (ja) | 2004-09-30 | 2004-11-30 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006127441A true JP2006127441A (ja) | 2006-05-18 |
Family
ID=36722100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004345597A Pending JP2006127441A (ja) | 2004-09-30 | 2004-11-30 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006127441A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8381085B2 (en) | 2009-09-04 | 2013-02-19 | Samsung Electronics Co., Ltd. | Semiconductor memory device and data processing method thereof |
US8429494B2 (en) | 2009-08-06 | 2013-04-23 | Sony Corporation | Nonvolatile random access memory and nonvolatile memory system |
-
2004
- 2004-11-30 JP JP2004345597A patent/JP2006127441A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8429494B2 (en) | 2009-08-06 | 2013-04-23 | Sony Corporation | Nonvolatile random access memory and nonvolatile memory system |
US8381085B2 (en) | 2009-09-04 | 2013-02-19 | Samsung Electronics Co., Ltd. | Semiconductor memory device and data processing method thereof |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8756398B2 (en) | Partitioning pages of an electronic memory | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
JP2012137994A (ja) | メモリシステムおよびその制御方法 | |
US11467758B2 (en) | Data writing method using different programming modes based on the number of available physical erasing units, memory control circuit unit and memory storage device | |
US9383929B2 (en) | Data storing method and memory controller and memory storage device using the same | |
JP2006018373A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2006221334A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2007094639A (ja) | メモリコントローラ及びフラッシュメモリシステム | |
US20070047308A1 (en) | Memory controller, flash memory system and control method for flash memory | |
US8046529B2 (en) | Updating control information in non-volatile memory to control selection of content | |
JP2021163352A (ja) | 半導体記憶装置および読出し方法 | |
JP4582078B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2012068765A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP4655034B2 (ja) | メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法 | |
JP4692843B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP2006155335A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
US11704055B2 (en) | Storage device, controller and method for operating thereof | |
JP2006127441A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2005292925A (ja) | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4194518B2 (ja) | メモリコントローラ、フラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4000124B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4697146B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
TWI753814B (zh) | 半導體儲存裝置以及錯誤檢測糾正相關資訊的讀出方法 | |
JP4177301B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4304167B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060313 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20060927 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20061010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061017 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061218 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070123 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20070222 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070510 |