JP4236485B2 - MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD - Google Patents
MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD Download PDFInfo
- Publication number
- JP4236485B2 JP4236485B2 JP2003060594A JP2003060594A JP4236485B2 JP 4236485 B2 JP4236485 B2 JP 4236485B2 JP 2003060594 A JP2003060594 A JP 2003060594A JP 2003060594 A JP2003060594 A JP 2003060594A JP 4236485 B2 JP4236485 B2 JP 4236485B2
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- flash memory
- state
- 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 - Lifetime
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
【0001】
【産業上の利用分野】
本発明は、メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法に関し、特に、フラッシュメモリに保存されているデータの信頼性を向上させることができるメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法に関する。
【0002】
【従来の技術】
近年、メモリカードやシリコンディスクなどに用いられる半導体メモリとして、フラッシュメモリが用いられることが多い。このフラッシュメモリは不揮発性メモリの一種であり、電源が投入されているか否かに関わらず、データが保持されるていることが要求される。
【0003】
ところで、上記のような装置に特に用いられることが多いNAND型フラッシュメモリは、メモリセルを消去状態(論理値=1)から書込状態(論理値=0)に変化させる場合には、メモリセル単位で行うことができるが、メモリセルを書込状態(0)から消去状態(1)に変化させる場合には、メモリセル単位で行うことができず、複数のメモリセルからなる所定の消去単位でしかこれを行うことができない。かかる一括消去動作は、一般的に「ブロック消去」と呼ばれている。
【0004】
上記のよう特性により、NAND型フラッシュメモリ用いた装置では、デ―タを書き込む際に、ブロック消去された領域を検索し、検出された空き領域に対して新たなデータを書込んでいる。
【0005】
従って、NAND型フラッシュメモリ用いた装置では、書込んだデータが電源切断後も長期間保持されることや、ブロック消去された領域が電源切断後も長期間消去状態で保持されることが要求される。
【0006】
【発明が解決しようとする課題】
しかしながら、あるメモリセルに対する読み出しや書き込みが実行された場合に、このメモリセルとビット線を共通にする他のメモリセルの状態が変化してしまうことがある。この現象はディスターブ現象と呼ばれ、メモリセルに対して書き込み動作・消去動作が繰り返されることにより発生率が高くなることが知られている。このディスターブ現象によってメモリセルの状態が変化すると、一旦書き込まれたデータが時間とともに変化してしまうばかりでなく、正常な書込動作を阻害する原因となる。
【0007】
又、ディスターブ現象とは別に、ブロック消去が実行されている途中で不意に電源が切断された場合、ブロック消去の対象であるメモリセルの消去状態が不完全となることがある。このような場合においても、上述と同様の理由により、正常な書込動作が阻害されてしまう。
【0008】
こような問題に対する対策として、特開2001−243122においては、実際にデータを書き込む前に消去済みブロックの状態を診断している。しかし、書込みの際に正常と判断されたブロックであっても、その後の使用による偶発的なエラーや、メモリセルの物理的な劣化等による不可逆的なエラー等が発生して書き込まれたデータが時間とともに変化してしまう場合がある。
【0009】
そこで、本発明においては、フラッシュメモリからデータを読出した際に、データに含まれる誤りを検出した場合は、そのデータが書込まれていたブロックのデータを別のブロックに移し、その後、データに含まれる誤りが検出されたブロックが正常なブロックであるか否かを判断することにより、フラッシュメモリに保存されているデータの信頼性の向上を図ることを特徴としたメモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法を提供することを目的とする。
【0010】
【課題を解決するための手段】
[本発明によるメモリコントローラ及びフラッシュメモリシステム]
本発明かかる目的は、フラッシュメモリから読み出したページのデータに含まれる誤りを検出するエラー検出機能と、
前記エラー検出機能によりデータに含まれる誤りを検出した場合に、誤りが検出されたページが含まれるブロックのデータを他のブロックに移す移行機能と、
前記移行機能によりブロック間をデータが移行した場合に、移行元のブロックを診断する診断機能を備えるメモリコントローラ及びフラッシュメモリシステムによって達成される。
【0011】
又、本発明によれば、前記エラー検出機能が、フラッシュメモリのページの冗長領域に書込まれるエラーコレクションコードに基づいてデータの誤りを検出訂正することにより、
効率良くエラーの検出、更には訂正を行なうことができる。
【0012】
又、本発明によれば、前記診断に、少なくとも書込状態から消去状態への正常遷移検査と、消去状態から書込状態への正常遷移検査が含まれることにより、
確実にブロックの診断を行なうことができる。
【0013】
ここで、書込状態から消去状態への正常遷移検査とは、ブロック消去により正常に書込まれていたデータが消去されたか否かの検査であり、消去状態から書込状態への正常遷移検査とは、消去済ブロックに正常にデータが書込めるか否かの検査である。
【0014】
又、本発明によれば、前記移行機能によりブロック間をデータが移行する時に、
メモリコントローラのバッファ又は、メモリコントローラとフラッシュメモリの双方のバッファを使用し、
少なくとも誤りが検出されたページについてはメモリコントローラのバッファを使用することにより、
効率的に訂正されたデータを別のブロックに移すことができる。
【0015】
[本発明によるフラッシュメモリの制御方法]
本発明かかる目的は、フラッシュメモリから読み出したページのデータに含まれる誤りを検出した場合に、
誤りが検出されたページが含まれるブロックのデータを他のブロックに移した後、
移行元のブロックを診断することを特徴とするフラッシュメモリの制御方法によって達成される。
【0016】
又、本発明によれば、前記読み出したページのデータに含まれる誤りを、フラッシュメモリのページの冗長領域に書込まれるエラーコレクションコードに基づいて検出訂正することにより、
効率良くエラーの検出、更には訂正を行なうことができる。
【0017】
又、本発明によれば、前記診断に、少なくとも書込状態から消去状態への正常遷移検査と、消去状態から書込状態への正常遷移検査が含まれることにより、
確実にブロックの診断を行なうことができる。
【0018】
ここで、書込状態から消去状態への正常遷移検査とは、ブロック消去により正常に書込まれていたデータが消去されたか否かの検査であり、消去状態から書込状態への正常遷移検査とは、消去済ブロックに正常にデータが書込めるか否かの検査である。
【0019】
又、本発明によれば、誤りが検出されたページが含まれるブロックのデータを他のブロックに移す時に、
メモリコントローラのバッファ又は、メモリコントローラとフラッシュメモリの双方のバッファを使用し、
少なくとも誤りが検出されたページについてはメモリコントローラのバッファを使用することにより、
効率的に訂正されたデータを別のブロックに移すことができる。
【0020】
[本発明による複数のページの読出し処理]
本発明によれば、ホストコンピュータからの外部コマンドに従って処理が開始されたフラッシュメモリからの読出し処理中に、
フラッシュメモリから読み出したページのデータに含まれる誤りを検出した場合に、
ホストコンピュータからの外部コマンドに従って行われる処理を中断し、
前記中断後に、誤りが検出されたページが含まれるブロックのデータを他のブロックに移す移行処理を開始し、
前記移行処理の完了後に、移行元のブロックを診断し、
前記診断完了後に、処理対象を移行元のブロックから移行先のブロックに変更して、中断していたホストコンピュータからの外部コマンドに従って行われる処理を再開することを特徴とするフラッシュメモリの制御方法により、
ホストコンピュータからの外部コマンドに従って行われる処理の効率の低下を抑えつつ、本発明かかる目的を達成することできる。
【0021】
ここで、外部コマンドとは、ホストコンピュータ5からフラッシュメモリシステム1に与えられるコマンドである。
【0022】
又、外部コマンドが複数ページの読み出し要求であれば、
ホストコンピュータからの外部コマンドに従って処理が開始されたフラッシュメモリからの複数ページ読出し処理中に、
フラッシュメモリから読み出したページのデータに含まれる誤りを検出した場合に、
前記複数ページ読出し処理を中断し、
前記中断後に、誤りが検出されたページが含まれるブロックのデータを他のブロックに移す移行処理を開始し、
前記移行処理の完了後に、移行元のブロックを診断し、
前記診断完了後に、処理対象を移行元のブロックから移行先のブロックに変更して、中断していた前記複数ページ読出し処理を再開することを特徴とするフラッシュメモリの制御方法により、
複数ページ読出し処理の効率の低下を抑えつつ、本発明かかる目的を達成することできる。
【0023】
【発明の実施の形態】
以下、図面に基づき、本発明の実施の形態について詳細に説明する。
[フラッシュメモリシステム1の説明:図1参照]
図1は、本発明にかかるフラッシュメモリシステム1を概略的に示すブロック図であり、このフラッシュメモリシステム1は一般的にはPCカードやコンパクトフラッシュ(サンディスク社の登録商標)等に収められている。又、同図に示したようにフラッシュメモリシステム1は、4個のフラッシュメモリチップ2−0〜2−3と、コントローラ3と、コネクタ4で構成されている。
【0024】
尚、上記PCカードはPCMCIA(Personal Computer Memory Card International Association)の規格に準拠しており、上記コンパクトフラッシュはCFA(Compact Flash Association)の規格に準拠している。又、本発明はSSFDC Forumの「SmartMedia((株)東芝の登録商標)」、MultiMedia Card Associationの提唱する「MMC(MultiMedia Card)」、ソニー株式会社が提唱する「メモリースティック(ソニー(株)の商標)」などに本発明を適用することも可能である。
【0025】
又、フラッシュメモリシステム1が収められたPCカードやコンパクトフラッシュは、通常ホストコンピュータ5に着脱可能に装着されて使用され、ホストコンピュータ5に対に対して一種の外部記憶装置として用いられる。ホストコンピュータ5としては、文字、音声、あるいは画像情報等の種々の情報を処理するパーソナルコンピュータやデジタルスチルカメラをはじめとする各種情報処理装置が挙げられる。
【0026】
図1に示したフラッシュメモリ2−0〜2−3は、ページ単位で読出し又は書込みを、ブロック単位で消去を実行できるデバイスであり、通常、1ブロックは32ページで構成され、1ページは512バイトのユーザ領域と16バイトの冗長領域で構成され、ホストコンピュータ5側から見た場合1ページは512バイトで構成されている。従って、例えばフラッシュメモリ2−0〜2−3が、128Mバイト(1Gビット)の記憶容量を有するフラッシュメモリである場合は、それぞれが256Kページの記憶領域を、合計で1Mページの記憶領域を構成する。
【0027】
ここで、1ページが512バイトであれば上記1Mページの記憶領域は、512Mバイト(4Gビット)のメモリを構成する。従って、ホストコンピュータ5から20ビットのアドレス情報を供給すれば、このメモリの全域をアクセスすることができる。以下、ホストコンピュータ5からフラッシュメモリシステム1に供給される20ビットのアドレス情報を「ホストアドレス」と呼ぶ。
【0028】
[コントローラ3の説明:図1参照]
図1のコントローラ3は、マイクロプロセッサ6と、ホストインターフェースブロック7と、SRAMワークエリア8と、バッファ9と、フラッシュメモリインターフェースブロック10と、ECC(エラー・コレクション・コード)ブロック11と、フラッシュシーケンサブロック12とから構成される。これら機能ブロックによって構成されるコントローラ3は、一つの半導体チップ上に集積されている。以下に各ブロックの機能を説明する。
【0029】
マイクロプロセッサ6は、コントローラ3を構成する各機能ブロック全体の動作を制御する機能ブロックである。
【0030】
ホストインターフェースブロック7は、コネクタ4を介してホストコンピュータ5に接続されており、マイクロプロセッサ6による制御のもと、ホストコンピュータ5とデータ、アドレス情報、ステータス情報及び外部コマンド情報の授受を行う機能ブロックである。
【0031】
すなわち、フラッシュメモリシステム1がホストコンピュータ5に装着されると、フラッシュメモリシステム1とホストコンピュータ5とは、バス13、コネクタ4及びとバス14を介して相互に接続され、かかる状態において、ホストコンピュ―タ5よりフラッシュメモリシステム1に供給されるデータ等は、ホストインタ―フェースブロック7を入口としてコントローラ3の内部に取り込まれ、フラッシュメモリシステム1からホストコンピュータ5に供給されるデータ等は、ホストインターフェースブロック7を出口としてホストコンピュータ5に供給される。
【0032】
さらに、ホストインターフェースブロック7は、ホストコンピュータ5より供給されるホストアドレス及び外部コマンドを一時的に格納するタスクファイルレジスタ(図示せず)及びエラーが発生した場合にセットされるエラーレジスタ等(図示せず)を有している。
【0033】
SRAMワークエリア8は、フラッシュメモリ2−0〜2−3の制御に必要なデータが一時的に格納される作業領域であり、複数のSRAMセルによって構成される機能ブロックである。
【0034】
バッファ9は、フラッシュメモリ2−0〜2−3から読み出されたデータ及びフラッシュメモリ2−0〜2−3に書き込むべきデータを一時的に蓄積する機能ブロックである。すなわち、フラッシュメモリ2−0〜2−3から読み出されたデータは、ホストコンピュータ5が受け取り可能な状態となるまでバッファ9に保持され、フラッシュメモリチップ2−0〜2−3に書き込むべきデータは、フラッシュメモリ2−0〜2−3が書き込み可能な状態となるまでバッファ9に保持される。
【0035】
フラッシュメモリインターフェースブロック10は、バス15を介して、フラッシュメモリ2−0〜2−3とデータ、アドレス情報、ステータス情報及び内部コマンド情報の授受を行うとともに、各フラッシュメモリ2−0〜2−3に対して対応する選択信号#0〜#3を供給する機能ブロックである。
【0036】
前記選択信号#0〜#3は、ホストコンピュータ5からデータの読み出しまたは書き込みが要求された場合、ホストコンピュータ5より供給されるホストアドレスの20ビットの上位2ビットに基づいて、フラッシュメモリ2−0〜2−3のいずれかを動作状態(データの読出し又は書き込みが可能な状態)にさせるための信号を出力する。具体的には、ホストアドレスの上位2ビットが「00」であれば選択信号#0がフラッシュメモリ2−0を動作状態にさせるための信号を出力し、「01」であれば選択信号#1がフラッシュメモリ2−1を動作状態にさせるための信号を出力し、「10」であれば選択信号#2がフラッシュメモリ2−2を動作状態にさせるための信号を出力し、「11」であれば選択信号#3がフラッシュメモリ2−3を動作状態にさせるための信号を出力する。
【0037】
尚、「内部コマンド」とは、コントローラ3からフラッシュメモリチップ2−0〜2−3に与えられるコマンドであり、ホストコンピュータ5からフラッシュメモリシステム1に与えられるコマンドである「外部コマンド」と区別される。
【0038】
ECCブロック11は、フラッシュメモリ2−0〜2−3に書き込むデ―タに付加すべきエラーコレクションコードを生成するとともに、読み出しデータにを付加されたエラーコレクションコードに基づいて、読み出したデータに含まれる誤りを検出・訂正する機能ブロックである。
【0039】
フラッシュシーケンサブロック12は、内部コマンドに基づくフラッシュメモリ2−0〜2−3の動作を制御する機能ブロックである。フラッシュシーケンサブロック12は、複数のレジスタ(図示せず)を備え、この複数のレジスタに内部コマンドの実行する際に
必要な情報が、マイクロプロセッサ6による制御のもとに設定される。この複数のレジスタに内部コマンドの実行する際に必要な情報が設定されると、その情報に基づいて内部コマンドが実行実行される。
[フラッシュメモリセル16の説明:図2、3参照]
次に、図2及び3参照して図1に示したフラッシュメモリ2−0〜2−3を構成するフラッシュメモリセル16の具体的な構造について説明する。
【0040】
図2は、フラッシュメモリ2−0〜2−3を構成する各フラッシュメモリセル16の構造を概略的に示す断面図である。同図に示したように、フラッシュメモリセル16は、P型半導体基板17に形成されたN型のソース拡散領域18及びドレイン拡散領域19と、ソース拡散領域18とドレイン拡散領域19との間のP型半導体基板17を覆って形成されたトンネル酸化膜20と、トンネル酸化膜20上に形成されたフローティングゲ―ト電極21と、フローティングゲート電極21上に形成された絶縁膜22と、絶縁膜22上に形成されたコントロールゲート電極23とから構成される。このような構成を有するフラッシュメモリセル16が、フラッシュメモリ2−0〜2−3内に複数個直列に接続されており、NAND型フラッシュメモリを構成している。
【0041】
フラッシュメモリセル16は、フローティングゲート電極21に電子が注入されているか否かによって、「消去状態(電子が蓄積されていない状態)」と「書込状態(電子が蓄積されている状態)」のいずれかの状態が示される。ここで、1つのフラッシュメモリセル16は1ビットのデータに対応し、フラッシュメモリセル16の「消去状態」が論理値の「1」のデータに対応し、フラッシュメモリセル16の「書込状態」が論理値の「0」のデータに対応する。
【0042】
「消去状態」においては、フローティングゲート電極21に電子が蓄積されていないため、コントロールゲート電極23に読み出し電圧が印加されていないときには、ソース拡散領域18とドレイン拡散領域19との間のP型半導体基板17の表面にチャネルが形成されず、ソース拡散領域18とドレイン拡散領域19は電気的に絶縁される。一方、コントロールゲート電極23に読み出し電圧が印加されると、ソース拡散領域18とドレイン拡散領域19との間のP型半導体基板17の表面にチャネル(図示せず)が形成され、ソース拡散領域18とドレイン拡散領域19は、このチャネルによって電気的に接続される。
【0043】
すなわち、「消去状態」においてはコントロールゲート電極23に読み出し電圧が印加されていない状態では、ソース拡散領域18とドレイン拡散領域19とは電気的に絶縁され、コントロールゲート電極23に読み出し電圧が印加された状態では、ソース拡散領域18とドレイン拡散領域19とは電気的に接続される。
【0044】
図3は、「書込状態」であるフラッシュメモリセル16を概略的に示す断面図である。同図に示したように、「書込状態」とは、フローティングゲート電極21に電子が蓄積されている状態を指す。フローティングゲート電極21はトンネル酸化膜20及び絶縁膜22に挟まれているため、一旦、フローティングゲート電極21に注入された電子は、きわめて長時間フローティングゲート電極21内にとどまる。この「書込状態」においては、フローティングゲート電極21に電子が蓄積されているので、コントロールゲート電極23に読み出し電圧が印加されているか否かに関わらず、ソース拡散領域18とドレイン拡散領域19との間のP型半導体基板17の表面にはチャネル24が形成される。したがって、「書込状態」においてはソース拡散領域18とドレイン拡散領域19とは、コントロールゲート電極23に読み出し電圧が印加されているか否かに関わらず、チャネル24によって常に電気的に接続状態となる。
【0045】
又、上記フラッシュメモリセル16が消去状態であるか書込状態であるかは、次のようにして読み出すことができる。上記フラッシュメモリセル16はフラッシュメモリ2−0〜2−3内で複数個直列に接続ていている。この直列体の中で選択されたフラッシュメモリセル16以外の全てのフラッシュメモリセル16のコントロールゲート電極23に読み出し電圧が印加し、この状態でフラッシュメモリセル16の直列体に電流が流れるか否かの検出が行われる。その結果、この直列体に電流が流れれば、選択されたフラッシュメモリセル16は書込状態であると判断され、電流が流れなければ、選択されたフラッシュメモリセル16は消去状態であると判断される。このようにして、直列体に含まれる任意のフラッシュメモリセル16に保持されたデータが「0」であるのか「1」であるのかを読み出すことができる。上述のようにしてデータを読み出しているため、NAND型フラッシュメモリにおいては、ひとつの直列体に含まれる2以上のフラッシュメモリセル16に保持されたデータを同時に読み出すことはできない。
【0046】
又、消去状態であるフラッシュメモリセル16を書込状態に変化させる場合は、コントロールゲート電極23に正の高電圧が印加し、トンネル酸化膜20を介してフローティングゲート電極21へ電子を注入する。この際、FN(ファウラーノルトハイム)トンネル電流が流れフロ―ティングゲート電極21に電子が注入される。一方、書込状態であるフラッシュメモリセル16を消去状態に変化させる場合は、コントロールゲート電極23に負の高電圧が印加し、トンネル酸化膜20を介してフローティングゲート電極21に蓄積された電子を排出する。
【0047】
[フラッシュメモリのメモリ構造の説明:図4参照]
次に、各フラッシュメモリ2−0〜2−3のメモリ構造を説明する。
図4は、フラッシュメモリチップ2−0のメモリ構造を概略的に示す図である。同図4に示したように、フラッシュメモリ2−0はデータの読み出し及び書き込みにおけるアクセス単位である「ページ」と、データの消去単位である「ブロック」で構成されている。
【0048】
上記「ページ」は512バイトのユーザ領域25と16バイトの冗長領域26によって構成される。ユーザ領域25は、ホストコンピュータ5より供給されるユーザデ―タが格納される領域であり、冗長領域26は、ECCブロック11によって生成されたエラーコレクションコード等の付加情報が格納される領域である。エラ―コレクションコードは、対応するユーザ領域25に格納されたデータに含まれる誤りを訂正するための付加情報であり、ユーザ領域25に格納されたデータに含まれる誤りが所定数以下であれば、これを訂正し、正しいデータとするために用いられる。
【0049】
上記冗長領域26には、エラーコレクションコードの他に、「消去フラグ」と「対応論理ブロックアドレス」が格納されている。「消去フラグ」は、そのブロックが消去済みブロックであるか否かを示すフラグであり、「対応論理ブロックアドレス」は、そのブロックにデータが格納されている場合に、そのブロックがどの論理ブロックアドレスに対応するかを示している。
【0050】
又、上記「ブロック」は32枚の「ページ」で構成されている。ここでフラッシュメモリはデータの上書きができないため、1枚の「ページ」のデータだけを書き変える場合であっても、その「ページ」が含まれる「ブロック」の32枚の「ページ」の全データを、全ての「ページ」のデータが消去されている「ブロック」に再度書込まなければならない。
【0051】
図4に示したフラッシュメモリ2−0は8192のブロックによって構成されている。図1に示した他のフラッシュメモリ2−1〜2−3についても、フラッシュメモリ2−0と同様の構成のものを用いれば、全体(4つのフラッシュメモリ)でブロック0〜ブロック32767からなる32768個のブロックとなり、1Mページ(32768ブロック×32ページ)のメモリを構成する。
【0052】
これら1Mページからなるメモリの特定の「ページ」をアクセスする場合、20ビットのホストアドレスのうち、上位15ビットは、「ブロック」(ブロック0〜ブロック32767)を特定するために用いられ、残りの下位5ビットは、特定された「ブロック」に含まれる「ページ」(ページ0〜ページ31)を特定するために用いられる。
【0053】
尚、後述するが、ホストアドレスの上位15ビットを用いたブロックの特定はホストアドレスによっては一義的に決まらない。すなわち、ホストアドレスの上位15ビットからなる15ビットを「論理ブロックアドレス」と呼び、実際にアクセスされるブロックのアドレスを「物理ブロックアドレス」と呼べば、「論理ブロックアドレス」と「物理ブロックアドレス」とは一致せず、「アドレス変換テーブル」により論理ブロックアドレスを物理ブロックアドレスに変換した後、物理ブロックアドレスに基づいて実際にアクセスすべきブロックが特定される。
【0054】
[論理ブロックアドレスと物理ブロックアドレスの説明]
上述のとおり、フラッシュメモリはデータの上書きができないため、既にデータの書き込まれた「ページ」に対し、これと異なる新しいデータを書き込むためには、一旦、既に書き込まれているデータを消去した後に新しいデータを書き込むという処理が必要となる。この際、消去はブロック単位で処理されるため、新しいデータを書き込む「ページ」のデータを消去しようとすると、その「ページ」が含まれる「ブロック」の全ての「ページ」のデータが消去されてしまう。 したがって、ある「ページ」に既に書き込まれているデータを書替える場合、書替える「ページ」が含まれる「ブロック」の他の全ページのデータについても、書替える「ページ」のデータを書込む他の消去済ブロックに移動させるという処理が必要となる。
【0055】
上記のようにデータを書替える場合、書替えの後のデータは書替え前の「ブロック」と異なる「ブロック」に書込まれるため、ホストアドレスに基づく論理ブロックアドレスと、この論理ブロックアドレスに対応するフラッシュメモリ2−0〜2−3内の物理ブロックアドレスとの対応関係は、データを書替える毎に動的に変化する。このため、論理ブロックアドレスと物理ブロックアドレスの対応関係が書込まれたアドレス変換テーブルが必要となる。
【0056】
上記「アドレス変換テーブル」は、「論理ブロックアドレス」と「物理ブロックアドレス」の対応関係を示したテーブルであり、図1に示したSRAMワークエリア8に格納されている。そして、この「アドレス変換テーブル」は、上述のような理由により、フラッシュメモリ2−0〜2−3に書込まれているデータが書替えられる毎に、その書替えに関わった部分の対応関係が更新される。
【0057】
[書き込みキューの説明:図5参照]
図5は、図1に示したSRAMワークエリア8に格納されている書き込みキュー28のデータ構造を示す概略図である。
図5に示したように、書き込みキュー28は、キュー0〜キュー7からなる8つのキューによって構成されており、各キューには15ビットの物理ブロックアドレスが格納されている。ここで、各キューには、それぞれ消去済みブロックの物理ブロックアドレスが格納される。したがって、書き込みキュー28は、最大8つの消去済みブロックの物理ブロックアドレスを保持することができる。この書き込みキュー28は、上記「消去フラグ」を参照して消去済みブロック検出し、検出したブロックの物理ブロックアドレスをキュー0〜キュー7に格納する。
【0058】
[初期設定動作]
図1に示したフラッシュメモリシステム1の初期設定動作について説明する。この初期設定動作は、フラッシュメモリシステム1がホストコンピュータ5に装着された時や、ホストコンピュータ5によりリセットが指示された際に実行される。
【0059】
この初期設定動作では、マイクロプロセッサ6による制御のもと、アドレス変換テーブル27や図5に示した書き込みキュー28の作成が開始され、その作成が完了すると初期設定動作は終了する。
【0060】
尚、フラッシュメモリシステム1の初期設定動作が行われている間は、コントローラ3はビジー状態となり、ホストコンピュータ5からのデータの読み出しや書き込みの指示は拒否される。かかるビジー状態は、フラッシュメモリシステム1の初期設定動作が終了すると解除される。
【0061】
[本発明に係る処理の説明:図6〜図7参照]
以下、本発明に係る処理のフローチャートを示す図6〜図7を参照しながら、その処理について説明する。
<読出し処理(F1)>
この処理では、図1に示したホストコンピュータ5より、バス14、コネクタ4及びバス13を介して、外部コマンドの一種である外部読出しコマンドとホストアドレスがフラッシュメモリシステム1に供給される。このホストアドレス及び外部読出しコマンドはコントローラ3に供給され、その後ホストインターフェ―スブロック7が有するタスクファイルレジスタ(図示せず)に一時的に格納される。
【0062】
次に、ホストインターフェ―スブロック7によって、タスクファイルレジスタ(図示せず)に格納されたホストアドレスが正しいアドレスであるか否か、すなわち、かかるホストアドレスが、本来存在しない物理アドレスや無効なアドレスを示していないかどうかが判定される。
【0063】
このアドレス判定の結果、タスクファイルレジスタ(図示せず)に格納されたホストアドレスが有効なアドレスであると判断されれば、マイクロプロセッサ6による制御のもと、フラッシュシーケンサブロック12が有するレジスタ(図示せず)に対する設定(読出し用シーケンサ)がなされる。
【0064】
この設定(読出し用シーケンサ)はマイクロプロセッサ6による制御のもと、以下の設定が行なわれる。
1)内部コマンドとして内部読出しコマンドがフラッシュシーケンサブロック12内の所定のレジスタ(図示せず)に設定される。
2)ホストアドレスから論理ブロックアドレスが抽出され、この論理ブロックアドレスが対応する物理ブロックアドレスに変換され、この物理ブロックアドレスにホストアドレスから抽出されたページアドレス部分が付加され、物理アドレスが生成される。この物理アドレスの上位2ビットと残りの下位ビットがフラッシュシ―ケンサブロック12内の所定のレジスタ(図示せず)に設定される。
【0065】
一方、上記アドレス判定の結果、異常なアドレスであると判断された場合は、ホストインターフェースブロック7が有するエラーレジスタ(図示せず)がセットされ、ホストコンピュータは、かかるレジスタの内容を参照することにより、エラーの発生を知ることができる。
【0066】
次に、フラッシュシーケンサブロック12が、上記設定(読出し用シーケンサ)に基づいて内部コマンドを実行する。この内部コマンドを実行すると、フラッシュメモリインターフェースブロック10から、選択信号#1〜#4及びバス15を介してフラッシュメモリ2−0〜2−3に内部コマンドを実行するための情報が供給される。その結果、物理アドレスの上位2ビットでフラッシュメモリ2−0〜2−3のいずれかが選択され、残りの下位ビットで選択されたフラッシュメモリ2−0〜2−3内のページが指定され、そのページのデータがバッファ9に読み出される。
【0067】
<ECCブロックでエラーを検出(F2)>
上記処理でフラッシュメモリ2−0〜2−3内のデータがバッファ9に読み出される際に、ECCブロック11は、このデータを解析してエラーコレクションコードを生成する。このエラーコレクションコードに基づいてECCブロック11は、読み出したデータに含まれる誤りを検出・訂正する。そして、読み出したデータに含まれる誤りを検出した場合には以下の処理が実行される。
【0068】
<データ移行処理(F3)>
上記読出しの際にECCブロック11で誤りが検出されたページが含まれるブロックのの全ページのデータを、最初のページから最後のページまで順次読出し、消去済みブロックに再書込みをする(以下、この処理を「移行処理」という)。ここで、上記消去済みブロックは、書き込みキュー28に設定されている消去済みブロックを使用する。
尚、移行処理については、バッファ9を使用する場合とフラッシュメモリ2−0〜2−3内のバッファを使用する場合がある。その詳細については、後述する。
【0069】
<移行元ブロックの判定処理(F4)>
図7に示した移行元ブロックの判定処理フロ―チャートにしたがって、その処理を説明する。尚、この処理により移行元ブロックの診断が行なわれる。
【0070】
ステップ1:
上記移行処理の完了後、マイクロプロセッサ6による制御のもと、フラッシュシーケンサブロック12が有するレジスタ(図示せず)に対して以下の設定(ブロック消去用シーケンサ)がなされる。
1)内部コマンドとして内部ブロック消去コマンドがフラッシュシーケンサブロック12内の所定のレジスタ(図示せず)に設定される。
2)上記移行元ブロックの物理ブロックアドレスの上位2ビットと残りの下位ビットがフラッシュシ―ケンサブロック12内の所定のレジスタ(図示せず)に設定される。
【0071】
次に、フラッシュシーケンサブロック12が、上記設定(ブロック消去用シーケンサ)に基づいて内部コマンドを実行する。この内部コマンドを実行すると、フラッシュメモリインターフェースブロック10から、選択信号#1〜#4及びバス15を介してフラッシュメモリ2−0〜2−3に内部コマンドを実行するための情報が供給される。その結果、物理アドレスの上位2ビットでフラッシュメモリ2−0〜2−3のいずれかが選択され、残りの下位ビットで選択されたフラッシュメモリ2−0〜2−3内のブロックに書込まれているデータが全て消去される。
【0072】
但し、ブロック消去の方法は上記の方法に限定されず、フラッシュメモリの仕様により他の方法でブロック消去が行なえるのであれば、他の方法であってもよい。又、ブロック消去ができれば、フラッシュメモリシステム1の回路構成及びフラッシュメモリの仕様については特に限定されない。
【0073】
ステップ2:
ブロック消去が完了後にフラッシュメモリ2−0〜2−3が発行するステータス情報の消去ステータスを参照して、ブロック消去動作が正常に行われた否かを判断する。この判定で正常なブロック消去動作が行われたと判断された場合はステップ3に、正常なブロック消去動作が行われなかったと判断された場合はステップ7に進む。
【0074】
但し、フラッシュメモリの消去動作が正常に行なわれたか否かを判断する方法は、消去ステータスに限定されず、フラッシュメモリの仕様により他の方法で消去動作が正常に行なわれたか否かを判断できれば、他の方法であってもよい。又、消去動作が正常に行なわれたか否かを判断できれば、フラッシュメモリシステム1の回路構成及びフラッシュメモリの仕様についても特に限定されない。
【0075】
ステップ3:
ステップ1でブロック消去を実行したブロックのページを順次読み出し、読み出されたデータが全て「1(消去状態)」であるか否かを判断する。その結果、読み出されたデータが全て「1(消去状態)」である場合はステップ4に、1ビットでも「0(書込状態)」のデータが存在する場合はステップ7に進む。通常、この処理をステップ3でブロック消去を実行したブロックの全てのページについて全て実行する。
【0076】
但し、上記消去状態の確認については、少なくとも読み出したデータに誤りが検出されたページについて消去状態を確認すれば、必ずしもブロック消去を実行したブロックの全ページに亘り実行する必要はない。又、消去状態の確認ができれば、フラッシュメモリシステム1の回路構成、フラッシュメモリの仕様及び消去状態の確認方法は特に限定されない。
【0077】
ステップ4:
ブロック消去をした移行元ブロックのページに全ビット「0(書込状態)」のデータを書込み、その際にフラッシュメモリ2−0〜2−3が発行するステータス情報の書き込みステータスを参照して、正常な書き込み動作が行われた否かを判断する。ここで、ブロック消去を実行した場合、全てのビットは「1(消去状態)」になるので、この処理では全メモリセルの状態を消去状態から書込状態に変化させている。
【0078】
この判定で正常な書き込み動作が行われたと判断された場合はステップ5に、正常な書き込み動作が行われなかったと判断された場合はステップ7に進む。通常、この処理をブロック消去された移行元ブロックの全てのページについて実行する。
【0079】
但し、上記書き込み動作の確認については、少なくとも読み出したデータに誤りが検出されたページについて書き込み動作を確認すれば、必ずしもブロック消去を実行したブロックの全ページに亘り実行する必要はない。又、フラッシュメモリの書き込み動作が正常に行なわれたか否かを判断する方法は、書き込みステータスに限定されず、フラッシュメモリの仕様により他の方法で書き込み動作が正常に行なわれたか否かを判断できれば、他の方法であってもよい。又、書き込み動作が正常に行なわれたか否かを判断できれば、フラッシュメモリシステム1の回路構成及びフラッシュメモリの仕様も特に限定されない。
【0080】
ステップ5:
ステップ4で全てのビットに「0(書込状態)」のデータを書込んだブロックのページを順次読出し、読み出されたデータが全て「0(書込状態)」であるか否かを判断する。その結果、読み出されたデータが全て「0(書込状態)」である場合はステップ6に、1ビットでも「1(消去状態)」のデータが存在する場合はステップ7に進む。この処理をステップ4で「0(書込状態)」のデータを書込んだページについて全て実行する。
【0081】
但し、データの書込状態の確認ができれば、フラッシュメモリシステム1の回路構成及びフラッシュメモリの仕様は特に限定されない。
【0082】
ステップ6:
書込状態から消去状態への正常遷移及び、消去状態から書込状態への正常遷移が確認されたので、ECCブロック11で検出されたデータに含まれる誤りは、偶発的に発生した可逆的なエラーであったと判断され、このブロックを正常ブロックとして取り扱う。従って、このブロックはブロック消去された後、通常の消去済みブロックと同様に取り扱われる。
【0083】
ステップ7:
不可逆的な後天性不良ブロックであると判断され、このブロックを使用禁止とするための、不良ブロック化処理が行われる。この不良ブロック化処理では、そのブロックの先頭ページ(ページ0)の冗長領域26に含まれるブロックステータスを、後天性不良ブロックであることを示す状態とする。これにより、かかるブロックは、以後、使用禁止となる。
但し、不良ブロック化処理の方法については特に限定されず、そのブロックが使用禁止になれば、他の方法であっても良い。又、不可逆的な後天性不良ブロックであると判断されたブロックを使用禁止状態にできれば、フラッシュメモリシステム1の回路構成及びフラッシュメモリの仕様も特に限定されない。
【0084】
尚、上記移行元ブロックの判定処理では、「0(書込状態)」のデータを書込んで消去状態から書込状態への正常遷移の判定を行なったが、「0(書込状態)」と「1(消去状態)」を混ぜたデータを書込んでその判定を行なっても良い。例えば、「0(書込状態)」と「1(消去状態)」を混ぜたデータの複数パターンで複数回データの書込みを実行して、消去状態から書込状態への正常遷移の判定を行なってもよい。
【0085】
[ブロック内の全ページを読み出す場合]
ブロック内の全ページを読み出す場合を、図9に示すフローチャートを参照して説明する。尚、図9に示した、「読出し処理(F1)」、「ECCブロックでエラーを検出(F2)」、「データ移行処理(F3)」及び「移行元ブロックの判定処理(F4)」の処理は上述の処理と同様である。又、「全ページのデータ読出し完了(F5)」は「読出し処理(F1)」で読み出したページが、そのブロックの最終ページであるか否かを判断する処理である。
【0086】
<ECCブロックでエラーを検出(F2):NOの場合>
「ECCブロックでエラーを検出(F2)」の処理で、読み出したデータに誤りがなかった場合の処理の流れについて説明する。
「読出し処理(F1)」でブロック内のページが読出され、「ECCブロックでエラーを検出(F2)」で読み出したデータに誤りがなかった場合、「全ページのデータ読出し完了(F5)」でそのページが最終ページでないと判断されれば、再び「読出し処理(F1)」に戻りブロック内の次のページが読出される。この処理の流れが、「全ページのデータ読出し完了(F5)」でそのページが最終ページであると判断されるまで繰返される。
【0087】
<ECCブロックでエラーを検出(F2):YESの場合>
「ECCブロックでエラーを検出(F2)」の処理で、読み出したデータに含まれる誤りが検出された場合の処理の流れについて説明する。
「読出し処理(F1)」でブロック内のページが読出され、「ECCブロックでエラーを検出(F2)」で読み出したデータに含まれる誤りが検出された場合、「データ移行処理(F3)」でそのブロックの全ページのデータが別ブロックに移行処理され、その後「移行元ブロックの判定処理(F4)」で移行元ブロックの診断が行なわれる。その後、「全ページのデータ読出し完了(F5)」でそのページが最終ページでないと判断されれば、再び「読出し処理(F1)」に戻り、その次のページが読み出される。尚、「全ページのデータ読出し完了(F5)」でそのページが最終ページであると判断されれば終了する。
【0088】
[移行処理の説明]
読出しの際にECCブロック11で誤りが検出されたページが含まれるブロック(移行元ブロック)から読出し、このデータを書き込みキュー28に設定されていた消去済みブロック(移行先ブロック)に書込みをする「移行処理」について説明する。尚、この処理では下記のような対応関係で、移行元ブロックの全ページのデータが最初のページ(ページ0)から順番に移行先ブロックに移される。
移行元ブロックのページ0 : 移行先ブロックのページ0
移行元ブロックのページ1 : 移行先ブロックのページ1
移行元ブロックのページ2 : 移行先ブロックのページ2
・
・
・
移行元ブロックのページ31 : 移行先ブロックのページ31
【0089】
尚、移行元ブロックから移行先ブロックにデータを移行する際にはバッファを経由する必要があり、そのバッファとして、コントローラ3のバッファ9を使用する場合と、フラッシュメモリ2−0〜2−3内のバッファ(図示せず)を使用する場合がある。但し、ECCブロック11で誤りが検出されたページについては、バッファ9を使用しなければデータが訂正されないため、フラッシュメモリ2−0〜2−3内のバッファ(図示せず)を使用する場合であっても、そのページだけはバッファ9を使用する。
【0090】
<コントローラ3のバッファ9を使用する場合>
まず、マイクロプロセッサ6による制御のもと、フラッシュシーケンサブロック12が有するレジスタ(図示せず)に対する設定(読出し用シーケンサ)がなされる。
【0091】
この設定(読出し用シーケンサ)はマイクロプロセッサ6による制御のもと、以下の設定が行なわれる。
1)内部コマンドとして内部読出しコマンドがフラッシュシーケンサブロック12内の所定のレジスタ(図示せず)に設定される。
2)移行元ブロックのページに対応する物理アドレスの上位2ビットと残りの下位ビットがフラッシュシ―ケンサブロック12内の所定のレジスタ(図示せず)に設定される。
【0092】
続いて、フラッシュシーケンサブロック12が、上記設定(読出し用シーケンサ)に基づいて内部コマンドを実行する。この内部コマンドを実行すると、フラッシュメモリインターフェースブロック10から、選択信号#1〜#4及びバス15を介してフラッシュメモリ2−0〜2−3に内部コマンドを実行するための情報が供給される。その結果、物理アドレスの上位2ビットでフラッシュメモリ2−0〜2−3のいずれかが選択され、残りの下位ビットで選択されたフラッシュメモリ2−0〜2−3内のページが指定され、そのページのデータがバッファ9に読み出される。
【0093】
次に、マイクロプロセッサ6による制御のもと、フラッシュシーケンサブロック12が有するレジスタ(図示せず)に対して以下の設定(書込み用シーケンサ)がなされる。
1)内部コマンドとして内部書込みコマンドがフラッシュシーケンサブロック12内の所定のレジスタ(図示せず)に設定される。
2)移行先ブロックのページに対応する物理アドレスの上位2ビットと残りの下位ビットがフラッシュシ―ケンサブロック12内の所定のレジスタ(図示せず)に設定される。ここで、移行先ブロックのページに対応する物理アドレスは、図6に示した書き込みキュー28から読み出した消去済みブロックの物理ブロックアドレスに、上記読出し処理で指定したページのページアドレス部分を付加して生成する。
【0094】
次に、フラッシュシーケンサブロック12が、上記設定(書込み用シーケンサ)に基づいて内部コマンドを実行する。この内部コマンドを実行すると、フラッシュメモリインターフェースブロック10から、選択信号#1〜#4及びバス15を介してフラッシュメモリ2−0〜2−3に内部コマンドを実行するための情報が供給される。その結果、物理アドレスの上位2ビットでフラッシュメモリ2−0〜2−3のいずれかが選択され、残りの下位ビットで選択されたフラッシュメモリ2−0〜2−3内のページが指定され、そのページにバッファ9のデータが書込まれる。
【0095】
以上のような処理を、最初のページ(ページ0)から順番に最後のページ(ページ31)まで順次実行する。但し、データが書込まれていないページがある場合は、データが書込まれているページだけを移行処理する。
【0096】
<フラッシュメモリ2−0〜2−3内のバッファを使用する場合>
フラッシュメモリ2−0〜2−3内のバッファを使用する場合は、まず、最初のページから「ECCブロック11で誤りが検出されたページ」の1つ前までのページをフラッシュメモリ2−0〜2−3内のバッファを使用して移し、次に、「ECCブロック11で誤りが検出されたページ」をコントローラ3のバッファ9を使用して移し、次に、「ECCブロック11で誤りが検出されたページ」の次のページから最後のページまでをフラッシュメモリ2−0〜2−3内のバッファを使用して移す。但し、データが書込まれていないページがある場合は、データが書込まれているページだけを移行処理する。
尚、フラッシュメモリ2−0〜2−3内のバッファを使用する移行処理は以下の方法で実行する。
【0097】
マイクロプロセッサ6による制御のもと、フラッシュシーケンサブロック12が有するレジスタ(図示せず)に対する設定(移行用シーケンサ)がなされる。
【0098】
この設定(移行用シーケンサ)はマイクロプロセッサ6による制御のもと、以下の設定が行なわれる。
1)内部コマンドとして内部移行コマンドがフラッシュシーケンサブロック12内の所定のレジスタ(図示せず)に設定される。
2)移行元ブロックの物理ブロックアドレス及び移行先ブロックの物理ブロックアドレスの上位2ビットと残りの下位ビットがフラッシュシ―ケンサブロック12内の所定のレジスタ(図示せず)に設定される。更に、移行するページの範囲がフラッシュシ―ケンサブロック12内の所定のレジスタ(図示せず)に設定される。
【0099】
続いて、フラッシュシーケンサブロック12が、上記設定(移行用シーケンサ)に基づいて内部コマンドを実行する。この内部コマンドを実行すると、フラッシュメモリインターフェースブロック10から、選択信号#1〜#4及びバス15を介してフラッシュメモリ2−0〜2−3に内部コマンドを実行するための情報が供給される。その結果、物理アドレスの上位2ビットでフラッシュメモリ2−0〜2−3のいずれかが選択され、残りの下位ビットで指定された移行元ブロックのページのデータが、フラッシュメモリ2−0〜2−3内のバッファを介して移行先ブロックのページに書込まれる。この際、上記ページの範囲で設定したページが移行処理の対象になる。
【0100】
尚、フラッシュメモリのブロック及びページの構成、並びに移行処理の方法については、使用するフラッシュメモリの仕様により異なるが、誤りが検出されたデータが書込まれていたブロックのデータを別のブロックに移すことができれば、ブロック及びページの構成や移行処理の方法は、他の構成や方法であっても良い。又、誤りが検出されたデータが書込まれていたブロックのデータを別のブロックに移すことができれば、フラッシュメモリシステム1の回路構成及びフラッシュメモリの仕様も特に限定されない。
【0101】
【発明の効果】
以上説明したように、本発明によれば、フラッシュメモリからデータを読出した際に、データに含まれる誤りを検出した場合に、そのデータが書込まれていたブロックのデータを別のブロックに移し、その後、データに含まれる誤りが検出されたブロックが正常なブロックであるか否かを判断することにより、保存されているデータの信頼性を向上させるだけでなく、効率良く不良ブロックを検出し、使用禁止にすることができる。
【図面の簡単な説明】
【図1】図1は、本発明の好ましい実施態様にかかるフラッシュメモリシステム1を概略的に示すブロック図である。
【図2】図2は、フラッシュメモリチップ2−0〜2−3を構成する各フラッシュメモリセル16の構造を概略的に示す断面図である。
【図3】図3は、書込状態であるフラッシュメモリセル16を概略的に示す断面図である。
【図4】図4は、フラッシュメモリチップ2−0のアドレス空間の構造を概略的に示す図である。
【図5】図5は、SRAMワークエリア8に格納される書き込みキュー28のデータ構造を示す概略図である。
【図6】図6は、本発明に係るフラッシュメモリシステム1の動作を示すフロ―チャートである。
【図7】図7は、本発明に係る移行元ブロックの判定処理を示すフロ―チャートである。
【図8】図8は、本発明に係るフラッシュメモリシステム1の動作を示すフロ―チャートである。
【符号の説明】
1 フラッシュメモリシステム
2−0〜2−3 フラッシュメモリ
3 コントローラ
4 コネクタ
5 ホストコンピュータ
6 マイクロプロセッサ
7 ホストインターフェースブロック
8 SRAMワークエリア
9 バッファ
10 フラッシュメモリインターフェースブロック
11 ECCブロック
12 フラッシュシーケンサブロック
13〜15 バス
16 フラッシュメモリセル
17 P型半導体基板
18 ソース拡散領域
19 ドレイン拡散領域
20 トンネル酸化膜
21 フローティングゲート電極
22 絶縁膜
23 コントロールゲート電極
24 チャネル
25 ユーザ領域
26 冗長領域
28 書き込みキュー[0001]
[Industrial application fields]
The present invention relates to a memory controller, a flash memory system including the memory controller, and a flash memory control method, and more particularly, to a memory controller and a memory controller capable of improving the reliability of data stored in the flash memory. The present invention relates to a flash memory system and a flash memory control method.
[0002]
[Prior art]
In recent years, a flash memory is often used as a semiconductor memory used for a memory card or a silicon disk. This flash memory is a kind of non-volatile memory, and is required to retain data regardless of whether power is turned on.
[0003]
By the way, a NAND flash memory that is often used in the above-described device is a memory cell when a memory cell is changed from an erased state (logic value = 1) to a written state (logic value = 0). However, when the memory cell is changed from the written state (0) to the erased state (1), it cannot be performed in units of the memory cell, and a predetermined erase unit composed of a plurality of memory cells. You can only do this. Such a batch erase operation is generally called “block erase”.
[0004]
Due to the characteristics described above, in a device using a NAND flash memory, when data is written, a block erased area is searched and new data is written in the detected empty area.
[0005]
Therefore, in a device using a NAND flash memory, it is required that the written data is retained for a long time even after the power is turned off, and the block erased area is retained in an erased state for a long time after the power is turned off. The
[0006]
[Problems to be solved by the invention]
However, when reading or writing to a certain memory cell is performed, the state of another memory cell that shares the bit line with this memory cell may change. This phenomenon is called a disturb phenomenon, and it is known that the occurrence rate is increased by repeating the write / erase operations on the memory cells. When the state of the memory cell changes due to the disturb phenomenon, the data once written not only changes with time, but also disturbs the normal writing operation.
[0007]
In addition to the disturb phenomenon, if the power supply is unexpectedly cut off during the block erase, the erase state of the memory cell to be erased may be incomplete. Even in such a case, a normal writing operation is hindered for the same reason as described above.
[0008]
As a countermeasure against such a problem, Japanese Patent Laid-Open No. 2001-243122 diagnoses the state of an erased block before actually writing data. However, even if the block is determined to be normal at the time of writing, data written due to an accidental error due to subsequent use or an irreversible error due to physical deterioration of the memory cell, etc. It may change over time.
[0009]
Therefore, in the present invention, when an error included in the data is detected when the data is read from the flash memory, the data of the block in which the data is written is moved to another block, and then the data There is provided a memory controller and a memory controller characterized by improving reliability of data stored in a flash memory by determining whether or not a block in which an error is detected is a normal block It is an object of the present invention to provide a flash memory system and a method for writing data to the flash memory.
[0010]
[Means for Solving the Problems]
[Memory Controller and Flash Memory System According to the Present Invention]
An object of the present invention is to provide an error detection function for detecting an error included in page data read from a flash memory,
When an error included in data is detected by the error detection function, a migration function that moves data of a block including a page in which an error is detected to another block; and
This is achieved by a memory controller and a flash memory system having a diagnostic function for diagnosing a migration source block when data is migrated between blocks by the migration function.
[0011]
According to the present invention, the error detection function detects and corrects an error in data based on an error correction code written in a redundant area of a page of the flash memory.
Error detection and correction can be performed efficiently.
[0012]
Further, according to the present invention, the diagnosis includes at least a normal transition inspection from the writing state to the erasing state and a normal transition inspection from the erasing state to the writing state.
Block diagnosis can be performed reliably.
[0013]
Here, the normal transition inspection from the writing state to the erasing state is an inspection whether or not the data normally written by the block erasing has been erased, and the normal transition inspection from the erasing state to the writing state. Is an inspection of whether or not data can be normally written in the erased block.
[0014]
According to the present invention, when data is transferred between blocks by the transfer function,
Use memory controller buffer or both memory controller and flash memory buffer,
By using the buffer of the memory controller at least for the page where the error is detected,
Efficiently corrected data can be transferred to another block.
[0015]
[Control Method of Flash Memory According to the Present Invention]
The object of the present invention is to detect an error included in the page data read from the flash memory.
After moving the data of the block containing the page where the error was detected to another block,
This is achieved by a flash memory control method characterized by diagnosing a migration source block.
[0016]
Further, according to the present invention, an error included in the read page data is detected and corrected based on an error correction code written in a redundant area of the page of the flash memory.
Error detection and correction can be performed efficiently.
[0017]
Further, according to the present invention, the diagnosis includes at least a normal transition inspection from the writing state to the erasing state and a normal transition inspection from the erasing state to the writing state.
Block diagnosis can be performed reliably.
[0018]
Here, the normal transition inspection from the writing state to the erasing state is an inspection whether or not the data normally written by the block erasing has been erased, and the normal transition inspection from the erasing state to the writing state. Is an inspection of whether or not data can be normally written in the erased block.
[0019]
Also, according to the present invention, when data of a block including a page in which an error is detected is transferred to another block,
Use memory controller buffer or both memory controller and flash memory buffer,
By using the buffer of the memory controller at least for the page where the error is detected,
Efficiently corrected data can be transferred to another block.
[0020]
[Reading multiple pages according to the present invention]
According to the present invention, during the reading process from the flash memory, the process is started according to the external command from the host computer.
When an error is detected in the page data read from the flash memory,
Suspend processing performed according to external commands from the host computer,
After the interruption, start the migration process to move the data of the block containing the page where the error is detected, to another block,
After completion of the migration process, diagnose the migration source block,
After completion of the diagnosis, the processing target is changed from the migration source block to the migration destination block, and the processing performed in accordance with the external command from the interrupted host computer is resumed. ,
The object of the present invention can be achieved while suppressing a decrease in the efficiency of processing performed in accordance with an external command from the host computer.
[0021]
Here, the external command is a command given from the
[0022]
If the external command is a multiple page read request,
During the multi-page read process from the flash memory where the process was started according to the external command from the host computer,
When an error is detected in the page data read from the flash memory,
Suspending the multi-page reading process,
After the interruption, start the migration process to move the data of the block containing the page where the error is detected, to another block,
After completion of the migration process, diagnose the migration source block,
After completion of the diagnosis, the processing target is changed from the migration source block to the migration destination block, and the interrupted multiple page reading process is resumed.
The object of the present invention can be achieved while suppressing a decrease in the efficiency of the multi-page reading process.
[0023]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[Description of flash memory system 1: see FIG. 1]
FIG. 1 is a block diagram schematically showing a
[0024]
The PC card conforms to the PCMCIA (Personal Computer Memory Card International Association) standard, and the compact flash conforms to the CFA (Compact Flash Association) standard. The present invention also includes "SmartMedia (registered trademark of Toshiba Corporation)" of SSFDC Forum, "MMC (MultiMedia Card)" proposed by MultiMedia Card Association, and "Memory Stick (trademark of Sony Corporation)" proposed by Sony Corporation. It is also possible to apply the present invention to "
[0025]
The PC card or compact flash in which the
[0026]
The flash memories 2-0 to 2-3 shown in FIG. 1 are devices that can execute reading or writing in units of pages and erasing in units of blocks. Usually, one block is composed of 32 pages, and one page is 512. When viewed from the
[0027]
Here, if one page is 512 bytes, the storage area of the 1M page constitutes a 512 Mbyte (4 Gbit) memory. Therefore, if 20-bit address information is supplied from the
[0028]
[Description of controller 3: see FIG. 1]
1 includes a
[0029]
The
[0030]
The
[0031]
That is, when the
[0032]
The
[0033]
The SRAM work area 8 is a work area in which data necessary for controlling the flash memories 2-0 to 2-3 is temporarily stored, and is a functional block composed of a plurality of SRAM cells.
[0034]
The
[0035]
The flash
[0036]
The selection signals # 0 to # 3 are generated based on the upper 2 bits of the 20 bits of the host address supplied from the
[0037]
The “internal command” is a command given from the
[0038]
The
[0039]
The
Necessary information is set under the control of the
[Description of Flash Memory Cell 16: See FIGS. 2 and 3]
Next, a specific structure of the
[0040]
FIG. 2 is a cross-sectional view schematically showing the structure of each
[0041]
The
[0042]
In the “erased state”, since electrons are not accumulated in the floating
[0043]
That is, in the “erased state”, when no read voltage is applied to the
[0044]
FIG. 3 is a cross-sectional view schematically showing the
[0045]
Whether the
[0046]
When changing the
[0047]
[Explanation of flash memory structure: See Fig. 4]
Next, the memory structure of each flash memory 2-0 to 2-3 will be described.
FIG. 4 schematically shows a memory structure of the flash memory chip 2-0. As shown in FIG. 4, the flash memory 2-0 includes “pages” that are access units for reading and writing data and “blocks” that are data erasing units.
[0048]
The “page” is composed of a 512-
[0049]
In the
[0050]
The “block” is composed of 32 “pages”. Here, since the flash memory cannot overwrite data, even when only the data of one “page” is rewritten, all the data of 32 “pages” of “block” including the “page” is written. Must be written again to the “block” where all the “page” data has been erased.
[0051]
The flash memory 2-0 shown in FIG. 4 is composed of 8192 blocks. As for the other flash memories 2-1 to 2-3 shown in FIG. 1, if one having the same configuration as the flash memory 2-0 is used, 32768 consisting of
[0052]
When accessing a specific “page” of memory consisting of these 1M pages, the upper 15 bits of the 20-bit host address are used to specify “block” (block 0 to block 32767), and the remaining The lower 5 bits are used to specify “pages” (
[0053]
As will be described later, the block specification using the upper 15 bits of the host address is not uniquely determined by the host address. That is, if the 15 bits consisting of the upper 15 bits of the host address are called “logical block address” and the address of the block that is actually accessed is called “physical block address”, “logical block address” and “physical block address” After the logical block address is converted into the physical block address by the “address conversion table”, the block to be actually accessed is specified based on the physical block address.
[0054]
[Description of logical block address and physical block address]
As described above, since the flash memory cannot overwrite data, in order to write new data different from this to a “page” in which data has already been written, once the already written data is erased, a new data is written. A process of writing data is required. At this time, since the erasure is processed in units of blocks, when trying to erase the data of the “page” to which new data is written, all the “page” data of the “block” including the “page” is erased. End up. Therefore, when rewriting data that has already been written to a certain "page", the data for all the other pages of the "block" that contains the "page" to be rewritten is also written to the "page" to be rewritten. It is necessary to move to the erased block.
[0055]
When rewriting data as described above, the data after rewriting is written in a “block” that is different from the “block” before rewriting, so the logical block address based on the host address and the flash corresponding to this logical block address The correspondence with the physical block addresses in the memories 2-0 to 2-3 dynamically changes every time data is rewritten. For this reason, an address conversion table in which the correspondence between the logical block address and the physical block address is written is required.
[0056]
The “address conversion table” is a table showing the correspondence between “logical block address” and “physical block address”, and is stored in the SRAM work area 8 shown in FIG. The "address conversion table" updates the correspondence relationship of the part involved in the rewriting whenever the data written in the flash memories 2-0 to 2-3 is rewritten for the reasons described above. Is done.
[0057]
[Description of write queue: See Fig. 5]
FIG. 5 is a schematic diagram showing the data structure of the
As shown in FIG. 5, the
[0058]
[Initial setting operation]
An initial setting operation of the
[0059]
In this initial setting operation, the creation of the address conversion table 27 and the
[0060]
Note that while the initial setting operation of the
[0061]
[Description of processing according to the present invention: see FIGS. 6 to 7]
Hereinafter, the processing will be described with reference to FIGS. 6 to 7 showing flowcharts of processing according to the present invention.
<Read process (F1)>
In this process, the
[0062]
Next, the
[0063]
As a result of this address determination, if it is determined that the host address stored in the task file register (not shown) is a valid address, the register (see FIG. (Not shown) is set (readout sequencer).
[0064]
This setting (readout sequencer) is set as follows under the control of the
1) An internal read command is set in a predetermined register (not shown) in the
2) A logical block address is extracted from the host address, the logical block address is converted into a corresponding physical block address, and a page address portion extracted from the host address is added to the physical block address to generate a physical address. . The upper 2 bits and the remaining lower bits of the physical address are set in a predetermined register (not shown) in the
[0065]
On the other hand, if it is determined that the address is abnormal as a result of the address determination, an error register (not shown) included in the
[0066]
Next, the
[0067]
<Error detected in ECC block (F2)>
When the data in the flash memories 2-0 to 2-3 is read to the
[0068]
<Data migration process (F3)>
Data of all pages of a block including a page in which an error is detected in the
As for the migration process, there are a case where the
[0069]
<Transfer Source Block Determination Process (F4)>
The processing will be described with reference to the migration source block determination processing flowchart shown in FIG. This process diagnoses the migration source block.
[0070]
Step 1:
After completion of the migration process, under the control of the
1) An internal block erase command is set in a predetermined register (not shown) in the
2) The upper 2 bits and the remaining lower bits of the physical block address of the migration source block are set in a predetermined register (not shown) in the
[0071]
Next, the
[0072]
However, the block erasing method is not limited to the above method, and other methods may be used as long as the block erasing can be performed by another method according to the specification of the flash memory. Further, as long as block erasing can be performed, the circuit configuration of the
[0073]
Step 2:
It is determined whether or not the block erase operation is normally performed with reference to the erase status of the status information issued by the flash memories 2-0 to 2-3 after the block erase is completed. If it is determined that a normal block erase operation has been performed, the process proceeds to step 3. If it is determined that a normal block erase operation has not been performed, the process proceeds to step 7.
[0074]
However, the method of determining whether or not the erase operation of the flash memory has been normally performed is not limited to the erase status, and if it can be determined whether or not the erase operation has been normally performed by another method according to the specification of the flash memory. Other methods may be used. Further, the circuit configuration of the
[0075]
Step 3:
The page of the block for which block erasure has been executed in
[0076]
However, the confirmation of the erase state does not necessarily have to be performed for all pages of the block in which block erase has been performed, as long as the erase state is confirmed for at least a page in which an error is detected in the read data. If the erase state can be confirmed, the circuit configuration of the
[0077]
Step 4:
Write the data of all the bits “0 (write state)” to the page of the migration source block that has been erased, referring to the write status status information issued by the flash memories 2-0 to 2-3 at that time, It is determined whether or not a normal write operation has been performed. Here, when the block erase is executed, all the bits are set to “1 (erased state)”. Therefore, in this process, the state of all the memory cells is changed from the erased state to the written state.
[0078]
If it is determined that a normal write operation has been performed, the process proceeds to step 5. If it is determined that a normal write operation has not been performed, the process proceeds to step 7. Normally, this processing is executed for all pages of the migration source block that has been block erased.
[0079]
However, the confirmation of the write operation does not necessarily have to be performed for all pages of the block for which block erase has been performed, as long as the write operation is confirmed for at least a page in which an error is detected in the read data. Further, the method for determining whether or not the flash memory write operation has been normally performed is not limited to the write status, and if the flash memory specification can determine whether or not the write operation has been performed normally by another method. Other methods may be used. Further, the circuit configuration of the
[0080]
Step 5:
[0081]
However, the circuit configuration of the
[0082]
Step 6:
Since the normal transition from the writing state to the erasing state and the normal transition from the erasing state to the writing state are confirmed, the error included in the data detected by the
[0083]
Step 7:
It is determined that the block is an irreversible acquired defective block, and defective block processing is performed to prohibit the use of this block. In this defective block processing, the block status included in the
However, the method of the defective block processing is not particularly limited, and other methods may be used as long as the block is prohibited from use. Further, the circuit configuration of the
[0084]
In the migration source block determination process, data of “0 (write state)” is written to determine the normal transition from the erased state to the written state, but “0 (written state)”. The determination may be made by writing data in which “1 (erase state)” is mixed. For example, data writing is executed a plurality of times with a plurality of data patterns in which “0 (writing state)” and “1 (erasing state)” are mixed, and the normal transition from the erasing state to the writing state is determined. May be.
[0085]
[When reading all pages in a block]
A case where all pages in a block are read will be described with reference to a flowchart shown in FIG. The processing of “read processing (F1)”, “error detection in ECC block (F2)”, “data migration processing (F3)”, and “migration source block determination processing (F4)” shown in FIG. Is similar to the process described above. “All page data read completion (F5)” is a process for determining whether or not the page read in the “read process (F1)” is the last page of the block.
[0086]
<Error detected in ECC block (F2): NO>
The flow of processing when there is no error in the read data in the processing of “detect error in ECC block (F2)” will be described.
If the page in the block is read by “read processing (F1)” and there is no error in the data read by “detect error in ECC block (F2)”, “data read completion for all pages (F5)” If it is determined that the page is not the last page, the process returns to “read processing (F1)” and the next page in the block is read. The flow of this process is repeated until it is determined that the page is the last page in “Reading data of all pages (F5)”.
[0087]
<Error detected in ECC block (F2): YES>
A process flow when an error included in the read data is detected in the process of “detect error in ECC block (F2)” will be described.
When a page in the block is read by “read processing (F1)” and an error included in the data read by “detect error in ECC block (F2)” is detected, “data migration processing (F3)” Data of all pages in the block is transferred to another block, and then the transfer source block is diagnosed in “transfer source block determination process (F4)”. Thereafter, if it is determined that the page is not the last page by “data reading completion for all pages (F5)”, the process returns to “reading process (F1)” and the next page is read. The process ends when it is determined that the page is the last page in “Reading data of all pages (F5)”.
[0088]
[Description of migration process]
Read from a block (migration source block) including a page in which an error is detected in the
・
・
・
[0089]
It should be noted that when data is transferred from the transfer source block to the transfer destination block, it is necessary to go through a buffer, and when the
[0090]
<When using the
First, under the control of the
[0091]
This setting (readout sequencer) is set as follows under the control of the
1) An internal read command is set in a predetermined register (not shown) in the
2) The upper 2 bits and the remaining lower bits of the physical address corresponding to the page of the migration source block are set in a predetermined register (not shown) in the
[0092]
Subsequently, the
[0093]
Next, under the control of the
1) An internal write command is set in a predetermined register (not shown) in the
2) The upper 2 bits and the remaining lower bits of the physical address corresponding to the page of the transfer destination block are set in a predetermined register (not shown) in the
[0094]
Next, the
[0095]
The above processing is sequentially executed from the first page (page 0) to the last page (page 31) in order. However, when there is a page in which data is not written, only the page in which data is written is subjected to migration processing.
[0096]
<When using buffers in flash memory 2-0 to 2-3>
When the buffers in the flash memories 2-0 to 2-3 are used, first, pages from the first page to the page immediately before the “page where an error is detected in the
The migration process using the buffers in the flash memories 2-0 to 2-3 is executed by the following method.
[0097]
Under the control of the
[0098]
This setting (transition sequencer) is set as follows under the control of the
1) An internal transfer command is set as an internal command in a predetermined register (not shown) in the
2) The upper 2 bits and the remaining lower bits of the physical block address of the migration source block and the physical block address of the migration destination block are set in a predetermined register (not shown) in the
[0099]
Subsequently, the
[0100]
The configuration of the flash memory block and page, and the migration processing method vary depending on the specifications of the flash memory to be used, but the data of the block in which the data in which the error was detected was written is transferred to another block. If possible, the configuration of blocks and pages and the migration processing method may be other configurations and methods. Further, the circuit configuration of the
[0101]
【The invention's effect】
As described above, according to the present invention, when an error included in data is detected when data is read from the flash memory, the data of the block in which the data has been written is transferred to another block. Then, by determining whether the block in which the error included in the data is detected is a normal block, not only improves the reliability of the stored data, but also efficiently detects the bad block. Can be banned.
[Brief description of the drawings]
FIG. 1 is a block diagram schematically showing a
FIG. 2 is a cross-sectional view schematically showing the structure of each
FIG. 3 is a cross-sectional view schematically showing a
FIG. 4 is a diagram schematically showing a structure of an address space of the flash memory chip 2-0.
FIG. 5 is a schematic diagram showing a data structure of a
FIG. 6 is a flowchart showing the operation of the
FIG. 7 is a flowchart showing determination processing of a migration source block according to the present invention.
FIG. 8 is a flowchart showing the operation of the
[Explanation of symbols]
1 Flash memory system
2-0 to 2-3 flash memory
3 Controller
4 Connector
5 Host computer
6 Microprocessor
7 Host interface block
8 SRAM work area
9 buffers
10 Flash memory interface block
11 ECC block
12 Flash sequencer block
13-15 Bus
16 Flash memory cell
17 P-type semiconductor substrate
18 Source diffusion region
19 Drain diffusion region
20 Tunnel oxide film
21 Floating gate electrode
22 Insulating film
23 Control gate electrode
24 channels
25 User area
26 Redundant area
28 Write queue
Claims (4)
フラッシュメモリから読み出されたデータに含まれる誤りを検出し、検出した誤りを訂正するエラー訂正機能と、
前記エラー訂正機能により前記フラッシュメモリから読み出されたデータに含まれる誤りが検出された場合に、誤りが検出されたデータが記憶されているページが含まれるブロックに記憶されている全てのデータを他のブロックに移す移行機能と、
前記移行機能によりブロック間でデータが移行された場合に、データの移行元のブロックを診断する診断機能と
を備え、
前記診断機能は、少なくとも書込状態から消去状態への正常遷移検査と、消去状態から書込状態への正常遷移検査とを含む診断を行う、
ことを特徴とするメモリコントローラ。A memory controller that controls the operation of a flash memory in which data is written or read in units of pages according to commands given from a host system, and data is erased in units of blocks including a plurality of pages.
An error correction function for detecting errors contained in the data read from the flash memory and correcting the detected errors;
When an error included in the data read from the flash memory is detected by the error correction function, all the data stored in the block including the page storing the data in which the error is detected is stored. Migration function to move to other blocks,
A diagnostic function for diagnosing the data migration source block when data is migrated between blocks by the migration function;
The diagnostic function performs a diagnosis including at least a normal transition test from a write state to an erase state and a normal transition test from an erase state to a write state.
A memory controller characterized by that.
前記メモリコントローラによって制御されるフラッシュメモリと
を備えるフラッシュメモリシステム。A memory controller according to claim 1;
And a flash memory system controlled by the memory controller.
前記フラッシュメモリから読み出されたデータに含まれる誤りを検出し、検出した誤りを訂正するエラー訂正ステップと、
前記エラー訂正ステップにおいて前記フラッシュメモリから読み出されたデータに含まれる誤りが検出された場合に、誤りが検出されたデータが記憶されているページが含まれるブロック内に記憶されている全てのデータを他のブロックに移す移行ステップと、
前記移行ステップにおいてブロック間でデータが移行された場合に、データの移行元のブロックを診断する診断ステップと
を備え、
前記診断ステップでは、少なくとも書込状態から消去状態への正常遷移検査と、消去状態から書込状態への正常遷移検査とを含む診断を行う、
ことを特徴とするフラッシュメモリの制御方法。A flash memory control method in which data is written or read in units of pages according to a command given from a host system, and data is erased in units of blocks including a plurality of pages.
An error correction step of detecting an error contained in the data read from the flash memory and correcting the detected error;
If an error included in the data read from the flash memory is detected in the error correction step, all the data stored in the block including the page storing the data in which the error is detected A transition step to move to another block,
A diagnostic step of diagnosing the block from which data is migrated when data is migrated between blocks in the migration step;
In the diagnosis step, a diagnosis including at least a normal transition inspection from a writing state to an erasing state and a normal transition inspection from an erasing state to a writing state is performed.
A method for controlling a flash memory.
前記外部コマンドに従って処理が開始されたフラッシュメモリからのデータの読み出し処理中に、前記フラッシュメモリから読み出されたデータに含まれる誤りが検出された場合に、
前記読み出し処理を中断し、
前記読み出し処理の中断後に、前記誤りが検出されたデータが記憶されているブロック内のデータを他のブロックに移す移行処理を開始し、
前記移行処理の完了後に、移行元のブロックを診断する診断処理を開始し、
前記診断処理の完了後に、前記読み出し処理の処理対象を移行元のブロックから移行先のブロックに変更して、前記読み出し処理を再開し、
前記診断処理には、少なくとも書込状態から消去状態への正常遷移検査と、消去状態から書込状態への正常遷移検査とが含まれる、
ことを特徴とするフラッシュメモリの制御方法。A flash memory control method in which data is erased in units of blocks in accordance with external commands given from a host system,
When an error included in the data read from the flash memory is detected during the process of reading data from the flash memory that has started processing according to the external command,
Interrupt the reading process,
After the reading process is interrupted, a transition process is started in which the data in the block in which the data in which the error is detected is stored is transferred to another block,
After completion of the migration process, start a diagnostic process for diagnosing the migration source block,
After completion of the diagnostic processing, the processing target of the read processing is changed from the migration source block to the migration destination block, and the readout processing is resumed.
The diagnostic process includes at least a normal transition inspection from a writing state to an erasing state and a normal transition inspection from an erasing state to a writing state.
A method for controlling a flash memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003060594A JP4236485B2 (en) | 2003-03-06 | 2003-03-06 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003060594A JP4236485B2 (en) | 2003-03-06 | 2003-03-06 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004272476A JP2004272476A (en) | 2004-09-30 |
JP4236485B2 true JP4236485B2 (en) | 2009-03-11 |
Family
ID=33123083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003060594A Expired - Lifetime JP4236485B2 (en) | 2003-03-06 | 2003-03-06 | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4236485B2 (en) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100543447B1 (en) * | 2003-04-03 | 2006-01-23 | 삼성전자주식회사 | Flash memory with error correction for page copy |
JP4256198B2 (en) | 2003-04-22 | 2009-04-22 | 株式会社東芝 | Data storage system |
JP4245585B2 (en) | 2005-06-13 | 2009-03-25 | Tdk株式会社 | Memory controller, flash memory system, and flash memory control method |
US8069296B2 (en) | 2006-01-23 | 2011-11-29 | Kabushiki Kaisha Toshiba | Semiconductor memory device including control means and memory system |
JP2007207397A (en) * | 2006-02-06 | 2007-08-16 | Toshiba Corp | Semiconductor storage device |
JP4908083B2 (en) * | 2006-06-30 | 2012-04-04 | 株式会社東芝 | Memory controller |
KR100802059B1 (en) * | 2006-09-06 | 2008-02-12 | 삼성전자주식회사 | Memory system capable of suppressing generation of bad blocks due to read disturbance and operating method thereof |
JP5720210B2 (en) | 2010-12-02 | 2015-05-20 | 富士通株式会社 | Access control device, error correction control method, and storage device |
WO2016030992A1 (en) * | 2014-08-27 | 2016-03-03 | 株式会社日立製作所 | Memory device and storage unit |
JP7177338B2 (en) * | 2018-09-06 | 2022-11-24 | 富士通株式会社 | MEMORY CONTROLLER DEVICE, MEMORY DEVICE HAVING MEMORY CONTROLLER DEVICE, AND MEMORY CONTROL METHOD |
-
2003
- 2003-03-06 JP JP2003060594A patent/JP4236485B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2004272476A (en) | 2004-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4165990B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND METHOD FOR WRITEING DATA TO FLASH MEMORY | |
JP3921174B2 (en) | Memory controller, flash memory system, and flash memory control method | |
US7020739B2 (en) | Memory controller, flash memory system having memory controller and method for controlling flash memory device | |
US7024514B2 (en) | Memory controller, flash memory system employing memory controller and method for controlling flash memory device | |
JPH06111589A (en) | Batched-erasure nonvolatile semiconductor memory device | |
JP4236485B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
US7606993B2 (en) | Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory | |
JP4233213B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4173410B2 (en) | Memory controller and flash memory system including the memory controller | |
JP2006338083A (en) | Memory controller | |
JP4316824B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4177292B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM, AND FLASH MEMORY CONTROL METHOD | |
JP4222879B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4419525B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP3999564B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4177301B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4183550B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4213053B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4561110B2 (en) | MEMORY CONTROLLER, FLASH MEMORY SYSTEM PROVIDED WITH MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD | |
JP4332108B2 (en) | Memory controller, flash memory system, and flash memory control method | |
JP4068594B2 (en) | Flash memory controller, flash memory system, and flash memory control method | |
JP2005107599A (en) | Memory controller, flash memory system equipped with memory controller, and control method of flash memory | |
JP4282401B2 (en) | Flash memory control circuit, and memory controller and flash memory system provided with the control circuit | |
JP4282410B2 (en) | Flash memory control circuit, and memory controller and flash memory system provided with the control circuit | |
JP4194473B2 (en) | Memory controller and flash memory system including the memory controller |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080325 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080526 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080526 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080924 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081020 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20081125 |
|
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: 20081216 |
|
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: 20081216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4236485 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111226 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111226 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121226 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121226 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131226 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |