JP4332132B2 - メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 - Google Patents
メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 Download PDFInfo
- Publication number
- JP4332132B2 JP4332132B2 JP2005138944A JP2005138944A JP4332132B2 JP 4332132 B2 JP4332132 B2 JP 4332132B2 JP 2005138944 A JP2005138944 A JP 2005138944A JP 2005138944 A JP2005138944 A JP 2005138944A JP 4332132 B2 JP4332132 B2 JP 4332132B2
- Authority
- JP
- Japan
- Prior art keywords
- flash memory
- data
- checksum
- writing
- error
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Description
なお、本発明において、ホストシステムとは、フラッシュメモリを記録媒体として利用する装置を指すものとする。
図1は、本発明に係るフラッシュメモリシステム1を概略的に示すブロック図である。図1に示すように、フラッシュメモリシステム1は、フラッシュメモリ2と、それを制御するコントローラ3で構成されている。
なお、本実施の形態のフラッシュメモリシステム1における、内部バス14は、16ビットのビット幅を有するものとする。
次に、フラッシュメモリ2について説明する。図2は、フラッシュメモリ2のメモリ構造を概略的に示す図である。図2に示したように、フラッシュメモリ2はデータの読出し及び書込みにおける処理単位であるページと、データの消去単位であるブロックで構成されている。
フラッシュメモリ2はデータの上書きができないため、データの書替えを行なう場合には、ブロック消去されている消去済ブロックに新たなデータ(書替後のデータ)を書込み、古いデータ(書替前のデータ)が書込まれていたブロックを消去するという2段階の処理を行なわなければならない。このとき、消去はブロック単位で処理されるため、古いデータ(書替前のデータ)が書込まれていたページが含まれるブロックの、全ページのデータが消去されてしまう。従って、データの書替えを行なう場合、書替えるページが含まれるブロックの、他のページのデータについても、消去済ブロックに移動させる処理が必要となる。
次に、フラッシュメモリ2内の複数のブロックで構成したゾーンを、論理ブロックアドレスの空間に割当てるゾーン管理について図面を参照して説明する。図3は、512のブロックでゾーンを構成した例を示している。図3に示した例では、ゾーンは、512のブロックB0000〜B0511(物理ブロックアドレスの0000〜0511)で構成され、各ブロックは、読出し及び書込処理の単位である32のページP00〜P31で構成されている。ここで、ブロックは消去処理の単位であり、ページは読出し及び書込処理の単位である。
なお、本実施の形態のフラッシュメモリシステム1においては、図4に示したように、512ブロックで構成されたゾーンを、496ブロック分の論理ブロックアドレスの空間に割当てるものとする。
次に、アドレス変換テーブルについて、説明する。アドレス変換テーブルは、論理ブロックアドレスと物理ブロックアドレスの対応関係を管理する。
図5は、図4に示したゾーン0に対するアドレス変換テーブルの一例を示したものであり、各論理ブロックアドレスに対応するデータが格納されているフラッシュメモリ2内での物理ブロックアドレスが、論理ブロックアドレス順に記述されている。また、フラッシュメモリ2にデータが格納されていない論理ブロックアドレスについては、アドレス変換テーブルのその論理ブロックアドレスに対応した部分に、物理ブロックアドレスではなく、データが格納されていないことを示すフラグ(以下、対応するデータが格納されていないことを示すフラグを未格納フラグと言う)が設定される。
次に、消去済ブロック検索用テーブルについて、図面を参照して説明する。消去済ブロック検索用テーブルは、データの書込み先とすることができる消去済ブロックを検索するためのテーブルである。
次に、ホストシステム4からのコマンドに応答して実行される書込処理について、図8に示すタイムチャートを参照して説明する。この書込処理では、フラッシュメモリ2へのデータ書き込みとともに、チェックサムの期待値の算出が行われ、書き込みがされた後にチェックサム値の算出と照合とがなされる。
ホストシステム4からの書込処理の実行を要求するコマンドは、ホストインターフェースブロック7のコマンドレジスタに書き込まれる。また、データの書き込み先の論理ブロックアドレスと、書き込むデータのサイズとは、それぞれホストインターフェースブロック7のLBAレジスタと、セクタ数レジスタとに書き込まれる。
なお、第1のレジスタ16の保持値は、書込処理の開始時に0にリセットされるものとする。また、データの加算を繰り返すことにより、いわゆる桁溢れが生じた場合、溢れた桁は無視し、内部バス14のビット幅(すなわち加算値の下位16ビット)の値にのみ着目してチェックサムの期待値を求めるものとする。
また、データの加算を繰り返すことにより、いわゆる桁溢れが生じた場合、溢れた桁は無視し、内部バス14のビット幅(すなわち加算値の下位16ビット)の値にのみ着目してチェックサム値を求めるものとする。
読出処理は、ホストシステム4からのコマンドに応答して実行される。
ホストシステム4からの読出処理の実行を要求するコマンドは、ホストインターフェースブロック7のコマンドレジスタに書き込まれる。また、読み出すデータの論理ブロックアドレスは、ホストインターフェースブロック7のLBAレジスタに書き込まれる。
2 フラッシュメモリ
3 コントローラ
4 ホストシステム
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 ワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 ROM
13 外部バス
14 内部バス
15 第1の加算器
16 第1のレジスタ
17 第2の加算器
18 第2のレジスタ
25 ユーザ領域
26 冗長領域
Claims (7)
- フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して、フラッシュメモリにデータを書き込む書込手段と、
前記フラッシュメモリに書き込まれるデータのエラーコレクションコードを生成するエラーコレクションコード生成手段と、
前記エラーコレクションコードを前記フラッシュメモリに書き込むエラーコレクションコード書込手段と、
前記書込手段が前記フラッシュメモリにデータを書き込むのと平行して、前記フラッシュメモリに書き込まれるデータのチェックサムの期待値を算出する期待値算出手段と、
前記フラッシュメモリに書き込まれているデータを読み出す読出手段と、
前記フラッシュメモリに書き込まれている前記エラーコレクションコードを読み出すエラーコレクションコード読出手段と、
前記フラッシュメモリから読み出されたデータに含まれる誤りを、前記フラッシュメモリから読み出された前記エラーコレクションコードに基づいて訂正する訂正手段と、
前記書込手段が前記フラッシュメモリにデータを書き込んだ後に、前記フラッシュメモリから当該書き込んだデータを読み出し、読み出したデータのチェックサム値を算出するチェックサム算出手段と、
前記期待値算出手段が算出したチェックサムの期待値と前記チェックサム算出手段が算出したチェックサム値とを照合して、前記フラッシュメモリにデータが正しく書き込まれたか否かを判定する判定手段とを備え、
前記チェックサム算出手段は、前記フラッシュメモリから読み出したデータに誤りが含まれていた場合、前記前記訂正手段により誤りが訂正されたデータのチェックサム値を算出することを特徴とするメモリコントローラ。 - 前記期待値算出手段は、ハードウェアによる加算器から構成される、
ことを特徴とする請求項1に記載のメモリコントローラ。 - 前記チェックサム算出手段は、ハードウェアによる加算器から構成される、
ことを特徴とする請求項1又は2に記載のメモリコントローラ。 - 前記期待値算出手段及び前記チェックサム算出手段は、前記ホストシステムからの要求に応じて、算出する期待値及びチェックサム値のビット数を変更する、
ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。 - 前記期待値算出手段及び前記チェックサム算出手段は、算出する期待値及びチェックサム値のビット数を、当該メモリコントローラと前記フラッシュメモリとを接続するバスのビット幅と等しいビット数とする、
ことを特徴とする請求項1乃至3のいずれか1項に記載のメモリコントローラ。 - 請求項1乃至5のいずれか1項に記載のメモリコントローラと、フラッシュメモリとを備えることを特徴とするフラッシュメモリシステム。
- フラッシュメモリを記憶媒体として利用するホストシステムからの命令に応答して、フラッシュメモリにデータを書き込む書込ステップと、
前記フラッシュメモリに書き込まれるデータのエラーコレクションコードを生成するエラーコレクションコード生成ステップと、
前記エラーコレクションコードを前記フラッシュメモリに書き込むエラーコレクションコード書込ステップと、
書込ステップにより前記フラッシュメモリにデータが書き込まれるのと平行して、前記フラッシュメモリに書き込まれるデータのチェックサムの期待値を算出する期待値算出ステップと、
前記書込ステップにより書き込まれたデータを前記フラッシュメモリから読み出す読出ステップと、
前記書込ステップにより書き込まれたデータの前記エラーコレクションコードを前記フラッシュメモリから読み出すエラーコレクションコード読出ステップと、
前記読出ステップにより読み出されたデータに含まれる誤りを、前記エラーコレクションコード読出ステップにより読み出された前記エラーコレクションコードに基づいて訂正する訂正ステップと、
前記読出ステップにより読み出されたデータのチェックサム値を算出するチェックサム算出ステップと、
前記期待値算出ステップにより算出されたチェックサムの期待値と、前記チェックサム算出ステップにより算出されたチェックサム値とを照合し、データが正しく書き込まれたか否かを判定する判定ステップとを備え、
前記読出ステップにより読み出されたデータに誤りが含まれていた場合、前記チェックサム算出ステップでは、前記訂正ステップにより誤りが訂正されたデータのチェックサム値を算出することを特徴とするフラッシュメモリの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005138944A JP4332132B2 (ja) | 2005-05-11 | 2005-05-11 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005138944A JP4332132B2 (ja) | 2005-05-11 | 2005-05-11 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006318132A JP2006318132A (ja) | 2006-11-24 |
JP4332132B2 true JP4332132B2 (ja) | 2009-09-16 |
Family
ID=37538776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005138944A Expired - Fee Related JP4332132B2 (ja) | 2005-05-11 | 2005-05-11 | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4332132B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8291297B2 (en) | 2008-12-18 | 2012-10-16 | Intel Corporation | Data error recovery in non-volatile memory |
JP2015141666A (ja) * | 2014-01-30 | 2015-08-03 | 日本精機株式会社 | 不揮発メモリ検査方法およびその装置 |
JP6363044B2 (ja) * | 2015-03-31 | 2018-07-25 | 日立オートモティブシステムズ株式会社 | 制御装置 |
-
2005
- 2005-05-11 JP JP2005138944A patent/JP4332132B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006318132A (ja) | 2006-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7877562B2 (en) | Memory controller, flash memory system, and control method of flash memory | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
JP4828816B2 (ja) | メモリカード、半導体装置、及びメモリカードの制御方法 | |
US8200891B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
JP5364807B2 (ja) | メモリコントローラ及び不揮発性記憶装置 | |
US8694748B2 (en) | Data merging method for non-volatile memory module, and memory controller and memory storage device using the same | |
US8200892B2 (en) | Memory controller, memory system with memory controller, and method of controlling flash memory | |
JP4513786B2 (ja) | メモリコントローラ、メモリシステム及びメモリ制御方法 | |
JP4153535B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4661191B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4332132B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4433792B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP4655034B2 (ja) | メモリコントローラ及びフラッシュメモリシステム並びにフラッシュメモリの制御方法 | |
JP4332134B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4818453B1 (ja) | 電子機器およびデータ読み出し方法 | |
JP4692843B2 (ja) | メモリコントローラ及びフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP3670151B2 (ja) | フラッシュメモリのアクセス方法、フラッシュメモリへアクセスするドライバを備えるシステム、および、フラッシュメモリ | |
JP4177301B2 (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP2006221334A (ja) | メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4569554B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
JP3934659B1 (ja) | メモリコントローラ及びフラッシュメモリシステム | |
JP2012037971A (ja) | メモリコントローラ及びメモリコントローラを備える不揮発性メモリシステム、並びに不揮発性メモリの制御方法 | |
JP4235595B2 (ja) | メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法 | |
JP4068594B2 (ja) | フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法 | |
JP2007199846A (ja) | メモリ制御装置およびメモリ制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081001 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081007 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090609 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090619 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120626 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130626 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |