JP2009301264A - Nand型フラッシュメモリアクセス装置及びnand型フラッシュメモリアクセスプログラム及び記録媒体 - Google Patents
Nand型フラッシュメモリアクセス装置及びnand型フラッシュメモリアクセスプログラム及び記録媒体 Download PDFInfo
- Publication number
- JP2009301264A JP2009301264A JP2008153981A JP2008153981A JP2009301264A JP 2009301264 A JP2009301264 A JP 2009301264A JP 2008153981 A JP2008153981 A JP 2008153981A JP 2008153981 A JP2008153981 A JP 2008153981A JP 2009301264 A JP2009301264 A JP 2009301264A
- Authority
- JP
- Japan
- Prior art keywords
- block
- data
- read
- nand flash
- replacement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】NAND型FlashROMにおいてRead Disturbによる読出しエラーが発生した場合でも、書き込みエラーが発生した場合と同様に代替ブロックを利用し、Read Disturbによるデータブロック内の復旧困難なデータ破壊を防止する。
【解決手段】Read処理部301は、データブロックから書込データの読み出しを実行すると共に読み出し実行時に書込データに1ビット反転不良があるかを判定し、あると判定すると書込データを修正し読み出す。リードエラー処理部1000は代替ブロックを管理すると共にRead処理部301により1ビット反転不良と判定されると代替ブロックの中から空き代替ブロックを取得し、空き代替ブロックに修正された書込データをWrite処理部302を用いて書き込みし、1ビット反転不良が発生したデータブロックを消去し、消去したデータブロックを新たな代替ブロックとして管理する。
【選択図】図3
【解決手段】Read処理部301は、データブロックから書込データの読み出しを実行すると共に読み出し実行時に書込データに1ビット反転不良があるかを判定し、あると判定すると書込データを修正し読み出す。リードエラー処理部1000は代替ブロックを管理すると共にRead処理部301により1ビット反転不良と判定されると代替ブロックの中から空き代替ブロックを取得し、空き代替ブロックに修正された書込データをWrite処理部302を用いて書き込みし、1ビット反転不良が発生したデータブロックを消去し、消去したデータブロックを新たな代替ブロックとして管理する。
【選択図】図3
Description
この発明は、NAND型FlashROMのブロック代替方式(NAND型フラッシュメモリアクセス装置)に関するもので、Read不良が発生した場合に、不良発生ブロックを代替ブロックとして再利用する方式に関する。
図9に一般的なNAND型FlashROMの構成例を示す。図において、NAND型FlashROM101はNAND型FlashROMそのものを示しており、内部は複数のブロック102(データブロック)から構成される。またブロック102は複数のセクタ103で構成される。NAND型FlashROMへのアクセスは、回路規模の抑制と利用者への利便性を鑑みて、一般的に、読み込み,書き込みはセクタの単位で行い、消去はブロックの単位で行なえるようになっている。更にNAND型FlashROMは、その内部を論理的にデータブロック領域、代替ブロック領域、管理ブロック領域に分けていることが通常である。しかしながら、NAND型FlashROMは、他のFlashROMと同様に、ブロックの消去(全ビットの値を0→1に変化させる処理)回数に限界があることが良く知られており、消去後のデータ書き込みでこの不良が検出され、書込みエラーが発生する。代替ブロックは、この書込みエラーによるデータ消滅を防止するために用意されるもので、エラーが発生したブロックに書き込むべきデータを代替ブロックに格納するようになっている。管理ブロックは、どのブロックで書き込みエラーが発生し、どの代替ブロックへ書き込むべきデータを格納したかを記録、管理する代替ブロック管理情報201を格納する領域である。
書き込みエラーによるブロックの代替処理が複数回行われると、NAND型FlashROM内の有効なデータが存在するブロックは、データブロック領域と代替ブロック領域を跨って、飛び飛びの状態になる。そのため、ソフトウェアからの利用を容易にするために、ソフトウェアからは常に連続した仮想セクタ番号でアクセスできるようにし、実際にNAND型FlashROMにアクセスする際には、仮想ブロック番号に対応する物理ブロック番号/物理セクタ番号に変換してアクセスされるようにするための、論理物理変換テーブル202を持ち、このテーブル情報も管理ブロック内に記録,管理されている。
図10に管理ブロックに記録される2つの情報、代替ブロック管理情報201と論理物理変換テーブル202の構造例を示す。代替ブロック管理情報201は、代替したデータブロック領域のブロック番号のみを保持し、代替ブロックのブロック番号はテーブルのインデックスとして使用される。また、代替したデータブロック領域のブロック番号で「−1」の値は、まだ代替として使用されていないことを示している。論理物理変換テーブル202は、論理セクタ番号に対応した物理ブロック番号と物理セクタ番号の対で構成され、論理セクタ番号はテーブルのインデックスとして使用される。
図11は、NAND型FlashROMを操作するためのシステム構成例で、NAND型FlashROM101は、メディアとしてのNAND型FlashROMそのものである。Read処理部301は、利用者からの読み出し要求を処理する。Write処理部302は、利用者からの書き込み要求を処理する。論理・物理変換部303は、論理物理変換テーブルにより利用者が指定した論理セクタ番号を物理ブロック番号/物理セクタ番号に変換する。代替ブロック管理部304は、代替ブロック管理情報により代替ブロックを使用する必要が生じた場合に空きの代替ブロックの探索・割当てや、ブロックの代替による論理物理の対応情報の変更を論理・物理変換部303へ指示する。
次に図12、図13を用いて、書込みエラーが発生した場合の、ブロック代替の動作を説明する。以下の説明および図12、図13では、説明を簡単にするために、1つのブロックには高々1つのセクタしか存在していないと仮定し、セクタを省いて説明する。図12は書き込みエラーが発生した場合のWrite処理部302,代替ブロック管理部304,論理・物理変換部303の処理フローを示し、図13はブロックの代替前後の代替ブロック管理情報201と論理物理変換テーブル202の内容の例を示したものである。
図12を用いて説明する。
(1)利用者より書き込みを要求されると、Write処理部302が動き、ステップ401で、論理・物理変換部303は、要求されたブロック番号を論理ブロック番号から物理ブロック番号へ変換する。図13の例では論理ブロック番号「2」への書き込みが要求されたため、論理・物理変換テーブル202−1により物理ブロック番号「2」へ変換される。
(2)次にステップ402により、Write処理部302は物理ブロック「2」へデータを書き込み、
(3)ステップ403にて、書き込みが正常に完了したかどうかを確認する。通常この書き込み正常の確認は、ECC(Error Correcting Code)データの整合性をチェックすることで行われる。物理ブロック「2」への書き込みでエラーが発生した場合、
(4)ステップ404にて、代替ブロック管理部304が代替ブロックの空きをチェックする。図13の例では代替ブロック管理情報201−1の状態であるため、空きの代替ブロックとして、物理ブロック「7」が選定される。
(5)次にステップ405にて、Write処理部302は、ステップ404で代替ブロック管理部304により取得された代替ブロックへ再度データを書き込む。図13の例では空きの代替ブロックとして物理ブロック「7」を得たため、物理ブロック「2」へ書き込んだデータを再度物理ブロック「7」へ書き込む。
(6)最後にステップ406にて、代替ブロック管理部304は代替ブロック管理情報の内容を更新すると共に、論理・物理変換部303に指示を出して論理・物理変換テーブルを更新させ、書込みエラーからの復旧を完了する。
(1)利用者より書き込みを要求されると、Write処理部302が動き、ステップ401で、論理・物理変換部303は、要求されたブロック番号を論理ブロック番号から物理ブロック番号へ変換する。図13の例では論理ブロック番号「2」への書き込みが要求されたため、論理・物理変換テーブル202−1により物理ブロック番号「2」へ変換される。
(2)次にステップ402により、Write処理部302は物理ブロック「2」へデータを書き込み、
(3)ステップ403にて、書き込みが正常に完了したかどうかを確認する。通常この書き込み正常の確認は、ECC(Error Correcting Code)データの整合性をチェックすることで行われる。物理ブロック「2」への書き込みでエラーが発生した場合、
(4)ステップ404にて、代替ブロック管理部304が代替ブロックの空きをチェックする。図13の例では代替ブロック管理情報201−1の状態であるため、空きの代替ブロックとして、物理ブロック「7」が選定される。
(5)次にステップ405にて、Write処理部302は、ステップ404で代替ブロック管理部304により取得された代替ブロックへ再度データを書き込む。図13の例では空きの代替ブロックとして物理ブロック「7」を得たため、物理ブロック「2」へ書き込んだデータを再度物理ブロック「7」へ書き込む。
(6)最後にステップ406にて、代替ブロック管理部304は代替ブロック管理情報の内容を更新すると共に、論理・物理変換部303に指示を出して論理・物理変換テーブルを更新させ、書込みエラーからの復旧を完了する。
図13の例では、代替ブロック管理情報201は物理ブロック「7」が物理ブロック「2」の代替として使用されたため、代替ブロック管理情報201は、代替ブロック管理情報201−1の状態から代替ブロック管理情報201−2の状態へ変わり、論理・物理変換テーブル202は、論理ブロック「2」に対応するデータ格納先が物理ブロック「2」から物理ブロック「7」へ変わったため、論理・物理変換テーブル202−1の状態から論理・物理変換テーブル202−2の状態へ更新される。なお、図13において物理ブロック「5」は、上記フロー説明以前の書き込み操作にてエラーが発生したため、代替ブロックで既に代替されていることを示している。
また、エラーの発生したブロックを代替ブロックで代用する方法を改良したものとして、特開2002−182989号公報、特開2003−058432号公報で具体的に示されている。また、書き込みエラーが発生したブロックを再検査し、正常ブロックと確認できたブロックを代替ブロックとして再利用する方法が、特開2005−284700号公報に示されている。
しかし、前記のブロック代替方法及び従来技術は、データの書き込みでエラーが発生した場合にのみ対応しており、NAND型FlashROMの特性であるRead Disturbによるデータ読み出し時のエラーは考慮されていない。NAND型FlashROMは、同一のブロックから繰り返しデータを読み出すと、そのブロック内の任意のビット値が1→0変化してしまうRead Disturbと呼ばれる特性がある。このRead Disturbは、NAND型FlashROMのメモリセルにかかっている電圧がRead動作により低下していき、0/1値と判断する電圧値を下回ってしまうことに起因する。このように、Read Disturbはメモリセルの電圧降下により発生するため、ブロックの消去やRead Disturbの発生したメモリセルへの書き込みを行うと、メモリセルへの電荷の再供給が行われ、電圧降下の状態が解消されるという特性も持つ。NAND型FlashROMでは、その大容量化を達成するために、多数のセクタでブロックが構成されているため、ある特定のセクタへの読み出しにより、実際には読み出し操作が行なわれていない同一ブロック内の他のセクタのデータでもビット値の変化が発生してしまうが、ビット値の変化有無は、当該セクタへの読み出し操作が行なわれた時に初めて検出可能という課題を抱えている。なお、NAND型FlashROMは、通常ECC(Error Checking Correcting)コードにより、呼出しデータに対して1ビットのエラー訂正が可能となっていため、Read Disturbにより1ビットのビット反転が発生しても、正しい読出しデータを得ることができるようになっている。しかしRead Disturbによるデータ読出し時のエラーは考慮されていないという課題がある。また、Read Disturbは、ブロック消去により容易に復旧させることができるが、前記の従来技術では、この点も考慮されていないため、エラーが発生したブロックの再利用が効率的でなく、ECCで訂正困難な同一ブロック内での2ビット反転を引き起こす可能性があるという課題もある。
特開2002−182989号公報
特開2003−058432号公報
特開2005−284700号公報
この発明は、Read Disturbによる読出しエラーが発生した場合でも、書き込みエラーが発生した場合と同様に代替ブロックを利用し、Read Disturbによるデータブロック内の復旧困難なデータの破壊防止を目的とする。
この発明のNAND型フラッシュメモリアクセス装置は、
データが書き込まれる複数のデータブロックから構成されるデータブロック領域と、前記データブロックの代替に使用される複数の代替ブロックから構成される代替ブロック領域とを含むNAND型フラッシュメモリと、
前記データブロックに書き込まれている書込データの読み出しを実行すると共に、前記書込データの読み出し実行時に前記書込データに修正が可能な所定の読み出し不良が発生しているかどうかを判定し、発生していると判定すると前記書込データを修正する読出実行部と、
データを前記NAND型フラッシュメモリに書き込む書込処理部と、
前記代替ブロックを管理すると共に、前記読出実行部により前記所定の読み出し不良の発生と判定されると管理している前記代替ブロックの中からデータの書き込まれていない空き代替ブロックを取得し、取得した前記空き代替ブロックに前記読出実行部により修正された前記書込データを前記書込処理部を用いて書き込みし、前記所定の読み出し不良が発生した前記データブロックを消去し、消去した前記データブロックを新たな代替ブロックとして管理する一連の処理を、CPU(Central Processing Unit)を用いて実行するリードエラー処理部と
を備えたことを特徴とする。
データが書き込まれる複数のデータブロックから構成されるデータブロック領域と、前記データブロックの代替に使用される複数の代替ブロックから構成される代替ブロック領域とを含むNAND型フラッシュメモリと、
前記データブロックに書き込まれている書込データの読み出しを実行すると共に、前記書込データの読み出し実行時に前記書込データに修正が可能な所定の読み出し不良が発生しているかどうかを判定し、発生していると判定すると前記書込データを修正する読出実行部と、
データを前記NAND型フラッシュメモリに書き込む書込処理部と、
前記代替ブロックを管理すると共に、前記読出実行部により前記所定の読み出し不良の発生と判定されると管理している前記代替ブロックの中からデータの書き込まれていない空き代替ブロックを取得し、取得した前記空き代替ブロックに前記読出実行部により修正された前記書込データを前記書込処理部を用いて書き込みし、前記所定の読み出し不良が発生した前記データブロックを消去し、消去した前記データブロックを新たな代替ブロックとして管理する一連の処理を、CPU(Central Processing Unit)を用いて実行するリードエラー処理部と
を備えたことを特徴とする。
この発明により、Read Disturbによる読出しエラーが発生した場合でも、書き込みエラーが発生した場合と同様に代替ブロックを利用し、Read Disturbによるデータブロック内の復旧困難なデータの破壊を防止できる。
実施の形態1.
図1は、コンピュータで実現される実施の形態1のNAND型フラッシュメモリアクセス装置100の外観の一例を示す図である。図1は、携帯電話の例を示している。携帯電話の他、NAND型フラッシュメモリアクセス装置100は、例えば、携帯型のPC(Personal Computer)、組み込み機器などとして実現される。
図1は、コンピュータで実現される実施の形態1のNAND型フラッシュメモリアクセス装置100の外観の一例を示す図である。図1は、携帯電話の例を示している。携帯電話の他、NAND型フラッシュメモリアクセス装置100は、例えば、携帯型のPC(Personal Computer)、組み込み機器などとして実現される。
図2は、コンピュータで実現されるNAND型フラッシュメモリアクセス装置100のハードウェア資源の一例を示す図である。図2において、NAND型フラッシュメモリアクセス装置100は、プログラムを実行するCPU810(Central Processing Unit:中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU810は、バス825を介してRAM(Random Access Memory)811(プログラム展開用)、表示装置813、操作キー814、通信回路816、NAND型フラッシュROM820と接続され、これらのハードウェアデバイスを制御する。
NAND型フラッシュROM820には、オペレーティングシステム821(OS)、ウィンドウシステム822、プログラム群823、ファイル群824が記憶されている。プログラム群823のプログラムは、CPU810、オペレーティングシステム821、ウィンドウシステム822により実行される。
上記プログラム群823には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、CPU810により読み出されて実行される。
ファイル群824には、以下に述べる実施の形態の説明において、「代替ブロック管理情報」、「論理物理変換テーブル」などとして説明する情報や、「〜の判定結果」、「〜の算出結果」、「〜の抽出結果」、「〜の生成結果」、「〜の処理結果」として説明する情報や、データや信号値や変数値やパラメータなどが、「〜ファイル」や「〜データベース」の各項目として記憶されている。
また、以下に述べる実施の形態の説明においては、データや信号値は、RAM811、NAND型フラッシュROM820のメモリに記録される。また、データや信号は、バス825や信号線やケーブルその他の伝送媒体により伝送される。
また、以下に述べる実施の形態の説明において、「〜部」として説明するものは、「手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。プログラムはCPU810により読み出され、CPU810により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
図3は、実施の形態1のNAND型フラッシュメモリアクセス装置100の構成を示す図である。背景技術ではWriteエラーについて示したが、以下の実施の形態1は、リードエラー(読み出し不良ともいう)に関する処理である。図3は、図11と同等あるいは類似の機能の要素には同一の名称、符号を付しており、図11に対してReadエラー復旧部1010及び不揮発RAM1030を追加した構成である。NAND型FlashROM101(NAND型フラッシュメモリともいう)、Read処理部301(読出実行部)、Write処理部302(書込処理部)、論理・物理変換部303、及び代替ブロック管理部304は、図11と同様である。図11との違いは、代替ブロック管理部304がReadエラー復旧部1010を備えた点にある。Readエラー復旧部1010は、Read処理部301で検出したReadエラーを代替ブロックを用いて普及させる機能を持ち、代替ブロック管理部304と協働して機能し、代替ブロック管理部304と密接なつながりを持つ。代替ブロック管理部304とReadエラー復旧部1010とは、リードエラー処理部1000を構成する。以下に説明するNAND型フラッシュメモリアクセス装置100の動作における図11、図12との相違は、このリードエラー処理部1000の機能による。
図4は、Readエラーを発生したデータブロックを消去後に代替ブロックとして再利用するための代替ブロック管理情報1020と、論理・物理変換テーブル202の構成を示す。論理・物理変換テーブル202は図10と同じであるが、代替ブロック管理情報1020は図10とは異なりテーブル情報の中に代替ブロック番号も保持する形となっている。
次に図5,図6を用いて、従来例で書込みエラー時の代替処理を説明した場合と同じ状況で読み出しエラーが発生した場合の動作フローを説明する。図6は図13と同じく説明を簡単にするために、5つのデータブロック、3つの代替ブロック、1つの管理ブロックから構成されたNAND型FlashROM101において、論理ブロック「2」への読み出し要求でReadエラーが発生し、代替処理が行なわれた前後での論理・物理変換テーブル202および代替ブロック管理情報1020の変化を示している。論理・物理変換テーブル202の変化前後を「論理・物理変換テーブル202−1、202−2」とし、代替ブロック管理情報1020の変化前後を「代替ブロック管理情報1020−1、1020−2」としている。なお、図6の代替ブロック管理情報1020−1に示すように、物理ブロック「5」は既に書き込みエラーにて代替ブロック6に代替されていることを表している。すなわち、代替ブロック管理情報1020−1の1行目のレコードは、物理ブロック「6」(代替ブロック番号)は、物理ブロック「5」(代替先番号)の代替であることを示している。
次に図5のフローと図6とに沿って、「読み出しエラー発生時」の代替ブロック管理部304の動作を、Readエラー復旧部1010の動作フローと合わせて説明する。
(S801:論理・物理変換)
まず利用者によりブロックの読み出し要求が出されるとステップ801にて、論理・物理変換部303は、Read処理部301の指示を受け、論理・物理変換テーブル202−1を参照して論理・物理ブロック番号の変換を行なう。図6では論理ブロック「2」への読み出し要求が行なわれたため、論理・物理変換テーブル201−1により、物理ブロック「2」に変換される。
まず利用者によりブロックの読み出し要求が出されるとステップ801にて、論理・物理変換部303は、Read処理部301の指示を受け、論理・物理変換テーブル202−1を参照して論理・物理ブロック番号の変換を行なう。図6では論理ブロック「2」への読み出し要求が行なわれたため、論理・物理変換テーブル201−1により、物理ブロック「2」に変換される。
(S802,S803:データ読み出し)
次にステップ802にて、Read処理部301(読出実行部の一例)は、物理ブロックのデータを読み出し、ステップ803にて、Read処理部301は、Read処理が正常に終了したかをチェックする。Read処理の正常終了判断は、データブロック内にあるECC情報の整合を計算することで確認できるとともに、読み出したデータの中の1bitが反転してしまっている場合には、正常なデータへ復元させることもできる。この例では、1bitが反転が発生している場合は、NAND型FlashROM101に組み込まれている復元機能(プログラムでもよいしハードウェアである回路でも構わない)により復元してもよいし、Read処理部301に復元機能を持たせてもよい。いずれの場合でも、最終的には、Read処理部301は、復元された正しいデータを読み込む。すなわち読出実行部は、データブロックに書き込まれているデータ(書込データ)の読み出しを実行すると共に、書込データの読み出し実行時に書込データに修正が可能な1bビット反転不良(所定の読み出し不良)が発生しているかどうかを判定し、発生していると判定すると書込データを修正し、修正後の書込データを読み出すが、復元機能は、Read処理部301が持ってもよいし、NAND型FlashROM101が持ってもよいし、あるいは、他の記憶部に格納されたプログラムにより実行されても構わない。ステップ803では1bit反転の復元前のデータで判断し、正常な場合は(S803のYES)、そのデータを利用者へ戻して処理を終了させる。読み出したデータが正常でないと判断した場合はステップ804へ進む。
次にステップ802にて、Read処理部301(読出実行部の一例)は、物理ブロックのデータを読み出し、ステップ803にて、Read処理部301は、Read処理が正常に終了したかをチェックする。Read処理の正常終了判断は、データブロック内にあるECC情報の整合を計算することで確認できるとともに、読み出したデータの中の1bitが反転してしまっている場合には、正常なデータへ復元させることもできる。この例では、1bitが反転が発生している場合は、NAND型FlashROM101に組み込まれている復元機能(プログラムでもよいしハードウェアである回路でも構わない)により復元してもよいし、Read処理部301に復元機能を持たせてもよい。いずれの場合でも、最終的には、Read処理部301は、復元された正しいデータを読み込む。すなわち読出実行部は、データブロックに書き込まれているデータ(書込データ)の読み出しを実行すると共に、書込データの読み出し実行時に書込データに修正が可能な1bビット反転不良(所定の読み出し不良)が発生しているかどうかを判定し、発生していると判定すると書込データを修正し、修正後の書込データを読み出すが、復元機能は、Read処理部301が持ってもよいし、NAND型FlashROM101が持ってもよいし、あるいは、他の記憶部に格納されたプログラムにより実行されても構わない。ステップ803では1bit反転の復元前のデータで判断し、正常な場合は(S803のYES)、そのデータを利用者へ戻して処理を終了させる。読み出したデータが正常でないと判断した場合はステップ804へ進む。
(S804:空き代替ブロックの取得)
ステップ804において、Readエラー復旧部1010(リードエラー処理部)は、空き代替ブロックを取得する。図6では、Readエラー復旧部1010は代替ブロック管理情報1020−1を参照して、代替ブロックとして物理ブロック「7」を選定する。
ステップ804において、Readエラー復旧部1010(リードエラー処理部)は、空き代替ブロックを取得する。図6では、Readエラー復旧部1010は代替ブロック管理情報1020−1を参照して、代替ブロックとして物理ブロック「7」を選定する。
(S805:データ移動)
次にステップ805にて、Write処理部302は、Readエラー復旧部1010(リードエラー処理部)の指示を受け、ステップ804で取得した代替ブロック「7」へ、1bit反転を復元した修正後のデータを書き込む。
次にステップ805にて、Write処理部302は、Readエラー復旧部1010(リードエラー処理部)の指示を受け、ステップ804で取得した代替ブロック「7」へ、1bit反転を復元した修正後のデータを書き込む。
(S806:論理・物理変換テーブル202の更新)
ステップ806にて、論理・物理変換部303は、Readエラー復旧部1010(リードエラー処理部)の指示を受け、論理・物理変換テーブル202−1を論理・物理変換テーブル202−2の内容(値)に更新する。
ステップ806にて、論理・物理変換部303は、Readエラー復旧部1010(リードエラー処理部)の指示を受け、論理・物理変換テーブル202−1を論理・物理変換テーブル202−2の内容(値)に更新する。
(S807:エラーブロックの消去)
次にステップ807では、Readエラー復旧部1010(リードエラー処理部)は、Readエラーが発生し、物理ブロック「7」で代替されたブロック(図6の物理ブロック「2」)を消去する。すなわち、物理ブロック「2」の全ビットを1にする。Read DisturbによるReadエラーは、この消去により解消され、ブロックは再利用が可能である。このため、処理はステップ808に進む。
次にステップ807では、Readエラー復旧部1010(リードエラー処理部)は、Readエラーが発生し、物理ブロック「7」で代替されたブロック(図6の物理ブロック「2」)を消去する。すなわち、物理ブロック「2」の全ビットを1にする。Read DisturbによるReadエラーは、この消去により解消され、ブロックは再利用が可能である。このため、処理はステップ808に進む。
(S808:エラーブロックの再利用)
ステップ808にて、Readエラー復旧部1010(リードエラー処理部)は、代替ブロック管理情報1020−1を代替ブロック管理情報1020−2の内容に更新して、消去した物理ブロック「2」を代替ブロックとして再利用可能とする。図6では、代替ブロック管理情報1020−1から代替ブロック管理情報1020−2の内容(値)へ更新することで、ステップ807で消去した物理ブロック「2」が代替ブロックとして再利用可能な状態となっている。すなわち、代替ブロック管理情報1020−2では、物理ブロック「2」が新たな代替ブロックとして登録されている。
ステップ808にて、Readエラー復旧部1010(リードエラー処理部)は、代替ブロック管理情報1020−1を代替ブロック管理情報1020−2の内容に更新して、消去した物理ブロック「2」を代替ブロックとして再利用可能とする。図6では、代替ブロック管理情報1020−1から代替ブロック管理情報1020−2の内容(値)へ更新することで、ステップ807で消去した物理ブロック「2」が代替ブロックとして再利用可能な状態となっている。すなわち、代替ブロック管理情報1020−2では、物理ブロック「2」が新たな代替ブロックとして登録されている。
(代替ブロック情報のリストによる管理)
次に図7を参照して、代替ブロック管理情報1020をリスト構造で管理する場合を説明する。図7に示すように、代替ブロック管理情報1020をリスト構造で管理する「代替ブロック管理リスト1002」を設ける。これにより、多数の代替ブロックが存在する場合において「Readエラーが発生したブロック」の消去後の代替ブロック管理情報1020の更新処理を簡素化する。図7はリスト構造にした代替ブロック管理情報1020について、図6のケースにおける代替ブロック管理情報1020の更新前後の状態(代替ブロック管理リスト1002−1,1002−2)を示している。図7において、代替ブロック管理情報1020のNextが次の空き代替ブロック番号格納位置を示しており、「−1」はリストの最後尾を示している。代替ブロック管理情報1020を代替ブロック管理リスト1002で管理することにより、新たな代替ブロックを代替ブロック管理情報1020に追加(登録)する場合に、迅速に追加位置を取得することができ、代替ブロック管理情報1020の更新処理を簡素化できる。図7では、書き込みエラーによる代替は再利用できないため、リスト管理の対象外としても問題はないので記載していない。また、図7ではリストを単方向として管理しているが、双方向リストとして管理しても、なんら差し支えない。双方向リストの場合は、リストへの挿入,リストからの削除が更に容易となるため、より望ましいとも言える。
次に図7を参照して、代替ブロック管理情報1020をリスト構造で管理する場合を説明する。図7に示すように、代替ブロック管理情報1020をリスト構造で管理する「代替ブロック管理リスト1002」を設ける。これにより、多数の代替ブロックが存在する場合において「Readエラーが発生したブロック」の消去後の代替ブロック管理情報1020の更新処理を簡素化する。図7はリスト構造にした代替ブロック管理情報1020について、図6のケースにおける代替ブロック管理情報1020の更新前後の状態(代替ブロック管理リスト1002−1,1002−2)を示している。図7において、代替ブロック管理情報1020のNextが次の空き代替ブロック番号格納位置を示しており、「−1」はリストの最後尾を示している。代替ブロック管理情報1020を代替ブロック管理リスト1002で管理することにより、新たな代替ブロックを代替ブロック管理情報1020に追加(登録)する場合に、迅速に追加位置を取得することができ、代替ブロック管理情報1020の更新処理を簡素化できる。図7では、書き込みエラーによる代替は再利用できないため、リスト管理の対象外としても問題はないので記載していない。また、図7ではリストを単方向として管理しているが、双方向リストとして管理しても、なんら差し支えない。双方向リストの場合は、リストへの挿入,リストからの削除が更に容易となるため、より望ましいとも言える。
図8は、代替ブロック管理リスト1002に、リストの先頭と最後尾を示す情報を追加し、「Readエラーが発生したブロック」の消去後の代替ブロック管理情報1020の更新において、リストの最後尾に消去ブロックを追加する。これにより、消去を繰り返すとRead Disturbの発生確率が上昇してしまうという、NAND型FlashROMの特性によるReadエラー発生をできるだけ抑えることができるようにしている。すなわち、Readエラー復旧部1010(リードエラー処理部)は、新たな代替ブロックを代替ブロック管理情報1020に登録した場合には、新たな代替ブロックの情報を代替ブロック管理リスト1002の最後尾に接続する。そして、Readエラー復旧部1010は修正後のデータを書き込むための空き代替ブロックを取得する際には、代替ブロック管理リスト1002の先頭から最後尾に向かって検索し、ヒットした空き代替ブロックに修正後のデータをWrite処理部302を用いて書き込む。これにより、同じブロックが頻繁に代替ブロックとして使用(すなわち頻繁にブロック消去)される状況を回避し、代替ブロックに関するRead Disturbの発生確率を低減することができる。図8は、図7と同じケースにおける、代替ブロック管理情報1002の更新前後の状態(代替ブロック管理リスト1002−1,1002−2)を示している。図8において、Headが空き代替ブロック番号の格納領域を管理するリストの先頭を指し、Tailがリストの最後尾を指している。また、図8の代替ブロック管理リスト1002−2では、代替ブロック管理リスト1002−2からリストの先頭を代替ブロックとして取り出し、リストの最後尾に消去したブロックを挿入した結果を示している。
(CPUのアイドル時における処理)
Readエラー復旧部1010(リードエラー処理部)は、CPUがアイドル状態のときに、書き込み不良が発生したデータブロックの消去と、新たな代替ブロックの代替ブロック管理情報1020への登録とを実行することで、CPUを有効利用する。すなわち、Readエラー復旧部1010は、Readエラーが発生したブロックの物理ブロック番号を管理ブロック内に記録しておき、エラーが発生したブロックの消去と、代替ブロック管理情報1020の更新処理とを、CPUがアイドル状態となるまで遅延させる。これにより、CPUの有効利用及びReadエラーが発生した場合のRead処理の完了を高速にすることができる。具体的には図5におけるステップ807,808の処理を遅延させる。
Readエラー復旧部1010(リードエラー処理部)は、CPUがアイドル状態のときに、書き込み不良が発生したデータブロックの消去と、新たな代替ブロックの代替ブロック管理情報1020への登録とを実行することで、CPUを有効利用する。すなわち、Readエラー復旧部1010は、Readエラーが発生したブロックの物理ブロック番号を管理ブロック内に記録しておき、エラーが発生したブロックの消去と、代替ブロック管理情報1020の更新処理とを、CPUがアイドル状態となるまで遅延させる。これにより、CPUの有効利用及びReadエラーが発生した場合のRead処理の完了を高速にすることができる。具体的には図5におけるステップ807,808の処理を遅延させる。
また、Readエラー復旧部1010は、上記に加えて、修正後のデータの移動処理もCPUのアイドル時に実行してもよい。すなわち、Readエラー復旧部1010は、Readエラーが発生したブロックの物理ブロック番号および取得した空き代替ブロック番号を管理ブロック内に記録しておき、エラーが発生したブロックから代替ブロックへのデータ移動、エラーが発生したブロックの消去、代替ブロック管理情報更新の処理を、CPUがアイドル状態となるまで処理を遅延させる。これにより、CPUの有効利用及びReadエラーが発生した場合のRead処理の完了を高速にすることができる。具体的には図5におけるステップ805〜808の処理を遅延させる。
(代替ブロック管理リスト1002の格納場所)
さらにNAND型フラッシュメモリアクセス装置100では、代替ブロック管理リスト1002をNAND型FlashROM101の管理ブロック内に保持するようにすることで、システムの再起動により代替ブロック管理情報から代替ブロック管理リストを生成することを省くことができ、システムの起動を高速化させることができる。
さらにNAND型フラッシュメモリアクセス装置100では、代替ブロック管理リスト1002をNAND型FlashROM101の管理ブロック内に保持するようにすることで、システムの再起動により代替ブロック管理情報から代替ブロック管理リストを生成することを省くことができ、システムの起動を高速化させることができる。
(不揮発RAM)
あるいは、図3に示すように、NAND型フラッシュメモリアクセス装置100では、NAND型FlashROM101内に不揮発RAM1030を追加し、代替ブロック管理リスト1002をこの不揮発RAM1030に保持することで、代替ブロック管理リスト1002の更新及び更新結果のNAND型FlashROM101への保持を高速化させることができる。なお、不揮発RAMとしては、MRAM(Magnestic Ramdom Access Memory)、FRAM(Ferroelectric Random Access Memory)、PRAM(Phase change Ramdom Access Memory)など、フラッシュROMよりも高速アクセスが可能であれば、いずれでも良い。
あるいは、図3に示すように、NAND型フラッシュメモリアクセス装置100では、NAND型FlashROM101内に不揮発RAM1030を追加し、代替ブロック管理リスト1002をこの不揮発RAM1030に保持することで、代替ブロック管理リスト1002の更新及び更新結果のNAND型FlashROM101への保持を高速化させることができる。なお、不揮発RAMとしては、MRAM(Magnestic Ramdom Access Memory)、FRAM(Ferroelectric Random Access Memory)、PRAM(Phase change Ramdom Access Memory)など、フラッシュROMよりも高速アクセスが可能であれば、いずれでも良い。
以上のように、NAND型フラッシュメモリアクセス装置100では、NAND型FlashROMからのRead処理部にてReadDisturbによる読み出しエラーを検出した場合には代替ブロック管理部304を呼び出すようにするととともに、代替ブロック管理部304にReadエラー復旧部1010を設けることにより、Read Disturbによる読出しエラーが発生した場合でも、書き込みエラーが発生した場合と同様に代替ブロックを利用し、Read Disturbによるデータブロック内の復旧困難なデータ破壊を防止することができる。
なお、図3に「〜部」として示した各構成要素の一連の動作は互いに関連しており、これら一連の動作は、コンピュータに実施させるプログラムによる処理に置き換えることができる。各構成要素の動作をプログラムによる処理に置き換えることにより、「NAND型フラッシュメモリアクセスプログラム」の実施形態として把握できる。また、「NAND型フラッシュメモリアクセスプログラム」コンピュータ読み取り可能な記録媒体に記録させることで、プログラムを記録したコンピュータ読み取り可能な記録媒体の実施形態とすることができる。
以上の実施の形態では、Read不良発生ブロックのデータを代替ブロックに移し、Read不良発生ブロックを消去後代替ブロックとして再利用するNAND型FlasshROMのブロック代替方式を説明した。
以上の実施の形態では、代替ブロックをリスト管理するNAND型FlasshROMのブロック代替方式を説明した。
以上の実施の形態では、Read不良発生ブロックを代替ブロックとして再利用する場合は、代替ブロック管理リストの最後尾に接続するNAND型FlasshROMのブロック代替方式を説明した。
以上の実施の形態では、管理ブロックへRead不良発生ブロックを記憶しておい、Read不良発生ブロックの消去,代替ブロックとしての再利用をCPUの空き時間を利用して行うNAND型FlasshROMのブロック代替方式を説明した。
以上の実施の形態では、管理ブロックへRead不良発生ブロックを記憶しておき、Read不良発生ブロックのデータ移動,消去,代替ブロックとしての再利用をCPUの空き時間を利用して行うNAND型FlasshROMのブロック代替方式を説明した。ことを特徴とする。(
以上の実施の形態では、代替ブロック管理リストを管理ブロック領域に保持するNAND型FlasshROMのブロック代替方式を説明した。
以上の実施の形態では、代替ブロック管理リストを、不揮発RAMに保持するNAND型FlasshROMのブロック代替方式を説明した。
100 NAND型フラッシュメモリアクセス装置、101 NAND型FlashROM、1000 リードエラー処理部、1002 代替ブロック管理リスト、1010 Readエラー復旧部、1020 代替ブロック管理情報、1030 不揮発RAM、201 代替ブロック管理情報、202 論理・物理変換テーブル、301 Read処理部、302 Write処理部、303 論理・物理変換部、304 代替ブロック管理部。
Claims (9)
- データが書き込まれる複数のデータブロックから構成されるデータブロック領域と、前記データブロックの代替に使用される複数の代替ブロックから構成される代替ブロック領域とを含むNAND型フラッシュメモリと、
前記データブロックに書き込まれている書込データの読み出しを実行すると共に、前記書込データの読み出し実行時に前記書込データに修正が可能な所定の読み出し不良が発生しているかどうかを判定し、発生していると判定すると前記書込データを修正する読出実行部と、
データを前記NAND型フラッシュメモリに書き込む書込処理部と、
前記代替ブロックを管理すると共に、前記読出実行部により前記所定の読み出し不良の発生と判定されると管理している前記代替ブロックの中からデータの書き込まれていない空き代替ブロックを取得し、取得した前記空き代替ブロックに前記読出実行部により修正された前記書込データを前記書込処理部を用いて書き込みし、前記所定の読み出し不良が発生した前記データブロックを消去し、消去した前記データブロックを新たな代替ブロックとして管理する一連の処理を、CPU(Central Processing Unit)を用いて実行するリードエラー処理部と
を備えたことを特徴とするNAND型フラッシュメモリアクセス装置。 - 前記複数のデータブロックの各データブロックは、
複数ビットからなるデータが書き込まれ、
修正可能な前記所定の読み出し不良は、
前記書込データのいずれかの1ビットが反転する1ビット反転不良であり、
前記リードエラー処理部は、
前記読出処理部により前記1ビット反転不良と判定されると管理している前記代替ブロックの中からデータの書き込まれていない空き代替ブロックを取得し、取得した前記空き代替ブロックに前記読出実行部によりビットが修正された前記書込データを前記書き込み処理部を用いて書き込みし、前記1ビット反転不良が発生している前記データブロックを消去し、消去した前記データブロックを新たな代替ブロックとして管理することを特徴とする請求項1記載のNAND型フラッシュメモリアクセス装置。 - 前記リードエラー処理部は、
前記代替ブロックへの書込み状況が記録された代替ブロック管理情報に基づいて前記代替ブロックを管理すると共に、消去した前記データブロックを新たな代替ブロックとして管理する場合には、前記新たな代替ブロックを前記代替ブロック管理情報に登録することを特徴とする請求項1または2のいずれかに記載のNAND型フラッシュメモリアクセス装置。 - 前記リードエラー処理部は、
前記代替ブロック管理情報をリストを用いて管理することを特徴とする請求項3記載のNAND型フラッシュメモリアクセス装置。 - 前記リードエラー処理部は、
前記新たな代替ブロックを前記代替ブロック管理情報に登録した場合には、前記新たな代替ブロックの情報を前記リストの最後尾に接続することを特徴とする請求項4記載のNAND型フラッシュメモリアクセス装置。 - 前記NAND型フラッシュメモリは、
前記リストを格納する不揮発RAM(Random Access Memory)を備えたことを特徴とする請求項4または5のいずれかに記載のNAND型フラッシュメモリアクセス装置。 - 前記リードエラー処理部は、
前記CPUがアイドル状態のときに、前記所定の書き込み不良が発生した前記データブロックの消去と、前記新たな代替ブロックの前記代替ブロック管理情報への登録とを実行することを特徴とする請求項1〜6のいずれかに記載のNAND型フラッシュメモリアクセス装置。 - データが書き込まれる複数のデータブロックから構成されるデータブロック領域と、前記データブロックの代替に使用される複数の代替ブロックから構成される代替ブロック領域とを含むNAND型フラッシュメモリに対して、データの書き込みと読み出しとのアクセスを実行するNAND型フラッシュメモリアクセスプログラムにおいて、
(1)前記データブロックに書き込まれている書込データの読み出しを実行すると共に、前記書込データの読み出し実行時に前記書込データに修正が可能な所定の読み出し不良が発生しているかどうかを判定し、発生していると判定すると前記書込データを修正する処理、
(2)前記代替ブロックを管理すると共に、前記所定の読み出し不良の発生と判定されると管理している前記代替ブロックの中からデータの書き込まれていない空き代替ブロックを取得する処理
(3)前記空き代替ブロックが取得されると、前記修正後の書込データを前記空き代替ブロックに書き込む処理
(4)前記所定の読み出し不良が発生した前記データブロックを消去し、消去した前記データブロックを新たな代替ブロックとして管理する処理
をコンピュータに実行させるためのNAND型フラッシュメモリアクセスプログラム。 - 請求項9記載のNAND型フラッシュメモリアクセスプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008153981A JP2009301264A (ja) | 2008-06-12 | 2008-06-12 | Nand型フラッシュメモリアクセス装置及びnand型フラッシュメモリアクセスプログラム及び記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008153981A JP2009301264A (ja) | 2008-06-12 | 2008-06-12 | Nand型フラッシュメモリアクセス装置及びnand型フラッシュメモリアクセスプログラム及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009301264A true JP2009301264A (ja) | 2009-12-24 |
Family
ID=41548096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008153981A Pending JP2009301264A (ja) | 2008-06-12 | 2008-06-12 | Nand型フラッシュメモリアクセス装置及びnand型フラッシュメモリアクセスプログラム及び記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009301264A (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577121A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件存取方法 |
WO2015040658A1 (ja) * | 2013-09-20 | 2015-03-26 | 富士通株式会社 | 情報処理方法、情報処理装置、メモリコントローラ及びメモリ |
US9195591B2 (en) | 2013-06-10 | 2015-11-24 | Kabushiki Kaisha Toshiba | Memory system |
US9235470B2 (en) | 2013-10-03 | 2016-01-12 | SanDisk Technologies, Inc. | Adaptive EPWR (enhanced post write read) scheduling |
US9355701B2 (en) | 2013-03-15 | 2016-05-31 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and data write method |
US9685206B2 (en) | 2012-07-23 | 2017-06-20 | Samsung Electronics Co., Ltd. | Memory device, memory system, and method of controlling read voltage of the memory device |
US9804922B2 (en) | 2014-07-21 | 2017-10-31 | Sandisk Technologies Llc | Partial bad block detection and re-use using EPWR for block based architectures |
JP2018183306A (ja) * | 2017-04-25 | 2018-11-22 | 株式会社三共 | 遊技機 |
JP2018191688A (ja) * | 2017-05-12 | 2018-12-06 | 株式会社三共 | 遊技機 |
-
2008
- 2008-06-12 JP JP2008153981A patent/JP2009301264A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9685206B2 (en) | 2012-07-23 | 2017-06-20 | Samsung Electronics Co., Ltd. | Memory device, memory system, and method of controlling read voltage of the memory device |
US9355701B2 (en) | 2013-03-15 | 2016-05-31 | Samsung Electronics Co., Ltd. | Nonvolatile memory device and data write method |
US9195591B2 (en) | 2013-06-10 | 2015-11-24 | Kabushiki Kaisha Toshiba | Memory system |
WO2015040658A1 (ja) * | 2013-09-20 | 2015-03-26 | 富士通株式会社 | 情報処理方法、情報処理装置、メモリコントローラ及びメモリ |
JP6075456B2 (ja) * | 2013-09-20 | 2017-02-08 | 富士通株式会社 | 情報処理方法、情報処理装置、メモリコントローラ及びメモリ |
US9235470B2 (en) | 2013-10-03 | 2016-01-12 | SanDisk Technologies, Inc. | Adaptive EPWR (enhanced post write read) scheduling |
CN103577121A (zh) * | 2013-11-05 | 2014-02-12 | 中船重工(武汉)凌久电子有限责任公司 | 一种基于nand flash的高可靠线性文件存取方法 |
US9804922B2 (en) | 2014-07-21 | 2017-10-31 | Sandisk Technologies Llc | Partial bad block detection and re-use using EPWR for block based architectures |
JP2018183306A (ja) * | 2017-04-25 | 2018-11-22 | 株式会社三共 | 遊技機 |
JP2018191688A (ja) * | 2017-05-12 | 2018-12-06 | 株式会社三共 | 遊技機 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2009301264A (ja) | Nand型フラッシュメモリアクセス装置及びnand型フラッシュメモリアクセスプログラム及び記録媒体 | |
KR100843543B1 (ko) | 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법 | |
JP6568947B2 (ja) | 車載制御装置、プログラム更新システム、及び、プログラム更新ソフトウェア | |
US7322029B2 (en) | Method and system for recovering program code in a computer system | |
US10503606B2 (en) | Data backup method, data recovery method and storage controller | |
JP5603997B2 (ja) | ストレージ装置及びデータ制御方法 | |
TWI423026B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI569139B (zh) | 有效資料合併方法、記憶體控制器與記憶體儲存裝置 | |
US20150186224A1 (en) | Data storage device and flash memory control method | |
TWI479313B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
TWI506429B (zh) | 用於非依電性容錯寫入作業之方法、運算系統及相關電腦程式產品 | |
CN104572489A (zh) | 磨损均衡方法及装置 | |
JP2001209543A (ja) | フラッシュ・マイコンにおけるプログラム書き換え方法 | |
TWI421683B (zh) | 資料管理方法、記憶體控制器與記憶體儲存裝置 | |
US20110119430A1 (en) | Methods for measuring usable lifespan and replacing an in-system programming code of a memory device, and data storage sysem using the same | |
CN108108261B (zh) | 数据存储装置及其操作方法 | |
TWI459198B (zh) | 記憶體儲存裝置、其記憶體控制器與有效資料識別方法 | |
CN109690465B (zh) | 一种存储设备管理方法及用户终端 | |
TW201321974A (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
KR20080066381A (ko) | 소프트웨어의 업그레이드 방법 | |
KR20060080266A (ko) | 이동통신 단말기의 파일 업데이트 시스템과, efs 영역헤더 손실로 인한 치명적인 에러를 방지하는 이동통신단말기의 부팅 관리 시스템과, 이동통신 단말기의 파일업데이트 방법 및 efs 영역 헤더 손실로 인한 치명적인에러를 방지하는 이동통신 단말기의 부팅 방법 | |
TW201525693A (zh) | 資料儲存方法、記憶體控制電路單元與記憶體儲存裝置 | |
KR100654344B1 (ko) | 플래시 메모리를 이용한 기억장치 및 그 에러 복구 방법 | |
TWI436209B (zh) | 記憶體管理表處理方法、記憶體控制器與記憶體儲存裝置 | |
JP2013250603A (ja) | メモリ管理装置および方法、並びにプログラム |