JP4236485B2 - メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 - Google Patents

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

Info

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
Application number
JP2003060594A
Other languages
English (en)
Other versions
JP2004272476A (ja
Inventor
直樹 向田
幸夫 寺崎
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 JP2003060594A priority Critical patent/JP4236485B2/ja
Publication of JP2004272476A publication Critical patent/JP2004272476A/ja
Application granted granted Critical
Publication of JP4236485B2 publication Critical patent/JP4236485B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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 書き込みキュー

Claims (4)

  1. ホストシステムから与えられるコマンドに従って、ページ単位でデータの書き込み又は読み出しが行われ、複数個のページを含むブロック単位でデータの消去が行われるフラッシュメモリの動作を制御するメモリコントローラであって、
    フラッシュメモリから読み出されたデータに含まれる誤りを検出し、検出した誤りを訂正するエラー訂正機能と、
    前記エラー訂正機能により前記フラッシュメモリから読み出されたデータに含まれる誤りが検出された場合に、誤りが検出されたデータが記憶されているページが含まれるブロックに記憶されている全てのデータを他のブロックに移す移行機能と、
    前記移行機能によりブロック間でデータが移行された場合に、データの移行元のブロックを診断する診断機能と
    を備え、
    前記診断機能は、少なくとも書込状態から消去状態への正常遷移検査と、消去状態から書込状態への正常遷移検査とを含む診断を行う、
    ことを特徴とするメモリコントローラ。
  2. 請求項1記載のメモリコントローラと、
    前記メモリコントローラによって制御されるフラッシュメモリと
    を備えるフラッシュメモリシステム。
  3. ホストシステムから与えられるコマンドに従って、ページ単位でデータの書き込み又は読み出しが行われ、複数個のページを含むブロック単位でデータの消去が行われるフラッシュメモリの制御方法であって、
    前記フラッシュメモリから読み出されたデータに含まれる誤りを検出し、検出した誤りを訂正するエラー訂正ステップと、
    前記エラー訂正ステップにおいて前記フラッシュメモリから読み出されたデータに含まれる誤りが検出された場合に、誤りが検出されたデータが記憶されているページが含まれるブロック内に記憶されている全てのデータを他のブロックに移す移行ステップと、
    前記移行ステップにおいてブロック間でデータが移行された場合に、データの移行元のブロックを診断する診断ステップと
    を備え、
    前記診断ステップでは、少なくとも書込状態から消去状態への正常遷移検査と、消去状態から書込状態への正常遷移検査とを含む診断を行う、
    ことを特徴とするフラッシュメモリの制御方法。
  4. ホストシステムから与えられる外部コマンドに従って、ブロック単位でデータの消去が行われるフラッシュメモリの制御方法であって、
    前記外部コマンドに従って処理が開始されたフラッシュメモリからのデータの読み出し処理中に、前記フラッシュメモリから読み出されたデータに含まれる誤りが検出された場合に、
    前記読み出し処理を中断し、
    前記読み出し処理の中断後に、前記誤りが検出されたデータが記憶されているブロック内のデータを他のブロックに移す移行処理を開始し、
    前記移行処理の完了後に、移行元のブロックを診断する診断処理を開始し、
    前記診断処理の完了後に、前記読み出し処理の処理対象を移行元のブロックから移行先のブロックに変更して、前記読み出し処理を再開し、
    前記診断処理には、少なくとも書込状態から消去状態への正常遷移検査と、消去状態から書込状態への正常遷移検査とが含まれる、
    ことを特徴とするフラッシュメモリの制御方法。
JP2003060594A 2003-03-06 2003-03-06 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 Expired - Lifetime JP4236485B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003060594A JP4236485B2 (ja) 2003-03-06 2003-03-06 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003060594A JP4236485B2 (ja) 2003-03-06 2003-03-06 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Publications (2)

Publication Number Publication Date
JP2004272476A JP2004272476A (ja) 2004-09-30
JP4236485B2 true JP4236485B2 (ja) 2009-03-11

Family

ID=33123083

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003060594A Expired - Lifetime JP4236485B2 (ja) 2003-03-06 2003-03-06 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法

Country Status (1)

Country Link
JP (1) JP4236485B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100543447B1 (ko) * 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
JP4256198B2 (ja) 2003-04-22 2009-04-22 株式会社東芝 データ記憶システム
JP4245585B2 (ja) 2005-06-13 2009-03-25 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
US8069296B2 (en) 2006-01-23 2011-11-29 Kabushiki Kaisha Toshiba Semiconductor memory device including control means and memory system
JP2007207397A (ja) * 2006-02-06 2007-08-16 Toshiba Corp 半導体記憶装置
JP4908083B2 (ja) * 2006-06-30 2012-04-04 株式会社東芝 メモリコントローラ
KR100802059B1 (ko) * 2006-09-06 2008-02-12 삼성전자주식회사 읽기 디스터브로 인한 배드 블록의 생성을 억제할 수 있는메모리 시스템 및 그것의 동작 방법
JP5720210B2 (ja) 2010-12-02 2015-05-20 富士通株式会社 アクセス制御装置、誤り訂正制御方法およびストレージ装置
WO2016030992A1 (ja) * 2014-08-27 2016-03-03 株式会社日立製作所 記憶デバイスおよびストレージ装置
JP7177338B2 (ja) * 2018-09-06 2022-11-24 富士通株式会社 メモリコントローラ装置、メモリコントローラ装置を有するメモリ装置及びメモリコントロール方法

Also Published As

Publication number Publication date
JP2004272476A (ja) 2004-09-30

Similar Documents

Publication Publication Date Title
JP4165990B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリへのデータの書き込み方法
JP3921174B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
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 (ja) 一括消去型不揮発性半導体記憶装置
JP4236485B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
US7606993B2 (en) Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory
JP4233213B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4173410B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム
JP2006338083A (ja) メモリコントローラ
JP4316824B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177292B2 (ja) メモリンコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4222879B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4419525B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP3999564B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4177301B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4183550B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4213053B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4561110B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4332108B2 (ja) メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP4068594B2 (ja) フラッシュメモリコントローラ、フラッシュメモリシステム、及びフラッシュメモリの制御方法
JP2005107599A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法
JP4282401B2 (ja) フラッシュメモリの制御回路、並びに、この制御回路を備えるメモリコントローラ及びフラッシュメモリシステム
JP4282410B2 (ja) フラッシュメモリの制御回路、並びに、この制御回路を備えるメモリコントローラ及びフラッシュメモリシステム
JP4194473B2 (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム

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