JP2007122640A - 記憶装置 - Google Patents
記憶装置 Download PDFInfo
- Publication number
- JP2007122640A JP2007122640A JP2005317370A JP2005317370A JP2007122640A JP 2007122640 A JP2007122640 A JP 2007122640A JP 2005317370 A JP2005317370 A JP 2005317370A JP 2005317370 A JP2005317370 A JP 2005317370A JP 2007122640 A JP2007122640 A JP 2007122640A
- Authority
- JP
- Japan
- Prior art keywords
- physical address
- error
- program
- address area
- information
- 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.)
- Withdrawn
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】書換え処理中に電源遮断が発生しても、正常な記憶情報が全て破損されるような事態を回避する。
【解決手段】メモリカード(1)は、フラッシュメモリ(2)と、フラッシュメモリに対する制御及び外部とのインタフェース制御を行うカードコントローラ(3)とを有する。フラッシュメモリは、カードコントローラのための制御プログラムであるファームデータを格納するファームデータ領域を有する。サブブロック(23〜25)には、多重化されデータ記憶領域に分散されたファームデータ領域と、ユーザーデータ領域とが混在している。カードコントローラは、電源投入時に、ECC回路(14)により、複数のファームデータ領域が保有する情報に対するエラー検出及び必要な訂正処理を行う。さらに、カードコントローラは、エラーが検出されなかった又はエラーが訂正された情報を用いて、少なくともエラー訂正不能なファームデータ領域に対する書換えを行う。
【選択図】図1
【解決手段】メモリカード(1)は、フラッシュメモリ(2)と、フラッシュメモリに対する制御及び外部とのインタフェース制御を行うカードコントローラ(3)とを有する。フラッシュメモリは、カードコントローラのための制御プログラムであるファームデータを格納するファームデータ領域を有する。サブブロック(23〜25)には、多重化されデータ記憶領域に分散されたファームデータ領域と、ユーザーデータ領域とが混在している。カードコントローラは、電源投入時に、ECC回路(14)により、複数のファームデータ領域が保有する情報に対するエラー検出及び必要な訂正処理を行う。さらに、カードコントローラは、エラーが検出されなかった又はエラーが訂正された情報を用いて、少なくともエラー訂正不能なファームデータ領域に対する書換えを行う。
【選択図】図1
Description
本発明は、電気的に書換え可能な不揮発性メモリとコントローラを有する記憶装置に関し、例えばメモリカードに適用して有効な技術に関する。
メモリカードは、フラッシュメモリと共にカードコントローラを搭載している。カードコントローラは、メモリカードのホスト装置とのインタフェース制御及びフラッシュメモリに対するアクセス制御を行う。カードコントローラがこれらの制御を行うための制御プログラムは、カードコントローラ内のマスクROMだけでなく、例えば機能変更や機能拡張がされた部分がフラッシュメモリに格納される場合がある。この場合には、ファイルメモリとして機能するフラッシュメモリの一部の領域は、この制御プログラムの格納領域(以下、プログラム領域とも記す)に割り当てられる。
フラッシュメモリは、高電圧印加による消去や書込み動作によって、その閾値電圧を変更することにより、記憶情報の書換えを行うことができる。消去や書込み動作時にワード線などに印加される高電圧は、選択ワード線や選択データ線につながる非選択メモリセルにも影響を与える。この影響により、非選択メモリセルの閾値電圧が経年変化して、不揮発性メモリセルの閾値電圧が不所望に変動する虞がある。このような現象は、ディスターブと称される。
プログラム領域は、例えばユーザーデータのように頻繁に書換えられることもなく、さらに、物理アドレスが固定であれば、選択ワード線などにつながる書換え対象の不揮発性メモリセルに印加される高電圧の影響を強く受けることが懸念される。要するに、プログラム領域に格納された制御プログラムは、ディスターブの影響を強く受けることが予想される。また、制御プログラムに限らず、救済や制御用のパラメータデータも同様の影響があると考えられる。特許文献1は、メモリカードにおけるデータ保持の信頼性を向上させるために、電源投入時の所定タイミングで、記憶情報のエラー検出・訂正を行う技術を開示している。
本発明者は、メモリカード等のフラッシュメモリに格納された制御プログラムに対する情報保持性能について検討した。その結果、特許文献1の技術では、確かにエラーに対する自己修復機能は実現されているものの、自己修復のための処理時間の短縮や、修復時における電源遮断等に対する考慮はされていない。
本発明の目的は、書換え処理中に電源遮断が発生しても、正常な記憶情報が全て破損されるような事態を回避できる記憶装置を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係る記憶装置は、電気的に書換え可能な不揮発性メモリ(2)と、前記不揮発性メモリに対する制御及び外部とのインタフェース制御を行うコントローラ(3)とを有する。前記不揮発性メモリは、複数の不揮発性物理アドレス領域の一部として、前記コントローラの動作プログラムを多重化して保有するためにプログラム格納用物理アドレス領域(26,27,28)を複数個有する。前記コントローラは、所定のタイミングで前記プログラム格納用物理アドレス領域が保有する情報を再生するための再生制御を行う。前記再生制御として、前記プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行い、エラーが検出されなかった又はエラーが訂正された情報を用いて、少なくともエラー訂正不能な前記プログラム格納用物理アドレス領域に対する書換えを行う。
上記より、複数のプログラム格納用物理アドレス領域は、動作プログラムを多重化して記憶し、多重化された動作プログラムを保持するプログラム格納用物理アドレス領域に対してエラー検出及び必要な訂正処理を行った後に、正常データ、即ち、エラーが訂正された又はもともとエラーがないプログラム格納用物理アドレス領域のデータに基づいて、エラー訂正不能なデータを書換えることができる。従って、書換え処理中に電源遮断があっても、既に正常データがプログラム格納用物理アドレス領域に残っているから、全てのプログラム格納用物理アドレス領域の情報が破壊されるような事態の発生を未然に防止できる。また、少なくとももともと壊れている領域、即ち、エラー検出がされたプログラム格納用物理アドレス領域を修復するから、書換え処理中に不所望な電源遮断があっても、正常データが破壊されることを防止できる。
本発明の具体的な一つの形態として、前記再生制御として、前記プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行う。再生制御として、エラーが検出されなかった又はエラーが訂正された情報を用いて、エラー訂正不能な前記プログラム格納用物理アドレス領域、エラーが訂正された前記プログラム格納用物理アドレス領域の順に、前記プログラム格納用物理アドレス領域に対する書換えを行う。上記より、修復の必要性が高いプログラム格納用物理アドレス領域から順に書換えを行うから、プログラム格納用物理アドレス領域の信頼性をより高めることができる。
本発明の具体的な一つの形態として、前記再生制御として、残りの前記プログラム格納用物理アドレス領域に対する書換えを行う。上記より、もともとエラーがないプログラム格納用物理アドレス領域についても書換えを行うから、全てのプログラム格納用物理アドレス領域に対する信頼性を高めることができる。
本発明の具体的な一つの形態として、前記再生制御として、電源投入時に、前記プログラム格納用物理アドレス領域を順次検索し、検索された当該プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行う。再生制御として、エラーが訂正された前記プログラム格納用物理アドレス領域と、エラー訂正不能な前記プログラム格納用物理アドレス領域とのアドレス情報を登録し、少なくともエラーが検出されなかったプログラム格納用物理アドレス領域が2個ある場合に、前記検索を中断する。もともとエラーがないプログラム格納用物理アドレス領域が少なくとも2個あれば、それらが一度に破壊されることもないと考えられるので、検索を中断し、これによって、検索に伴う時間を短縮することができる。
本発明の具体的な一つの形態として、前記再生制御として、コマンド応答時に、前記アドレス情報で特定される前記プログラム格納用物理アドレス領域に、前記エラーが検出されなかった又はエラーが訂正されたプログラム格納用物理アドレス領域の情報を用いて書換えを行い、さらに、残りの前記プログラム格納用物理アドレス領域に対する書換えを行う。上記より、アドレス情報で特定されるプログラム格納用物理アドレス領域は、ディスターブの影響が大きい領域であることが予想されるから、残りのプログラム格納用物理アドレス領域よりも先に書換えを行うことにより、プログラム格納用物理アドレス領域に対する全体としての情報記憶の信頼性を高めるのに資することができる。
本発明の具体的な一つの形態として、前記再生制御として、エラーが検出されなかった又はエラーが訂正された前記プログラム格納用物理アドレス領域が少なくとも1つなければ、失敗を示すステータス情報を外部に出力する。上記より、全てのプログラム格納用物理アドレス領域がエラー訂正不能であったときや、プログラム格納用物理アドレス領域が存在しなかったときに、再生制御が失敗したことを外部に認識させることができる。
本発明の具体的な一つの形態として、前記コントローラは、前記再生制御を行うための再生制御プログラムが格納されたROM(15)を有する。外部より、再生制御プログラムをロードすることを要しない。
本発明の具体的な一つの形態として、前記不揮発性メモリは、複数の不揮発性メモリセル(20)の選択端子にワード線が接続され、データ端子にサブビット線が接続されたメモリブロック(23,24,25)を複数有する。不揮発性メモリは、前記複数のメモリブロックのサブビット線が、ストリングスイッチ(22)を介してメインビット線に共通接続されたメモリアレイ(21)を有する。前記不揮発性物理アドレス領域は、同一ワード線に接続された複数の不揮発性メモリセルに対応する記憶領域とされる。前記プログラム格納用物理アドレス領域は、前記複数のメモリブロックに割り当てられている。上記より、ストリングスイッチで分離可能な一つのメモリブロックに、プログラム格納用物理アドレス領域を全て集約し、それ以外の用途に用いないという構成を採用しない。ストリングスイッチで分離可能な一つのメモリブロックには、通常256又は512個の多くの不揮発性物理アドレス領域が配置されることを考慮すると、ユーザーデータ等に開放可能な不揮発性物理アドレス領域が無駄に制限される事態を極力排除することができる。従って、一つのメモリブロックには、プログラム格納用物理アドレス領域と、書換え可能なユーザーデータ等に開放された不揮発性物理アドレス領域とが混在されることになる。
〔2〕本発明に係る記憶装置は、電気的に書換え可能な不揮発性メモリと、前記不揮発性メモリに対する制御及び外部とのインタフェース制御を行うコントローラとを有する。前記不揮発性メモリは、複数の不揮発性物理アドレス領域の一部として、前記コントローラの動作プログラムを多重化して保有するためにプログラム格納用物理アドレス領域を複数個有する。前記コントローラは、所定のタイミングで前記プログラム格納用物理アドレス領域が保有する情報を再生するための再生制御を行う。前記プログラム格納用物理アドレス領域は、世代情報(30)を格納する領域を有する。前記再生制御として、前記世代情報の古い方を優先して、前記プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行い、エラーが検出されなかった又はエラーが訂正された情報を用いて、少なくともエラー訂正不能なプログラム格納用物理アドレス領域に対する書換えを行うと共に、当該プログラム格納用物理アドレス領域の世代情報を更新する。
上記より、複数のプログラム格納用物理アドレス領域は、動作プログラムを多重化して記憶し、多重化された動作プログラムを保持するプログラム格納用物理アドレス領域に対してエラー検出及び必要な訂正処理を行った後に、正常データ、即ち、エラーが訂正された又はもともとエラーがないプログラム格納用物理アドレス領域のデータに基づいて、エラー訂正不能なデータを書換えることができる。従って、書換え処理中に電源遮断があっても、既に正常データが所定の物理アドレス領域に残っているから、全てのプログラム格納用物理アドレス領域の情報が破壊されるような事態の発生を未然に防止できる。また、少なくとももともと壊れている領域、即ち、エラー検出がされたプログラム格納用物理アドレス領域を修復するから、書換え処理中に不所望な電源遮断があっても、正常データが破壊されることを防止できる。さらに、エラー検出及び必要な訂正処理は、複数のプログラム格納用物理アドレス領域に対して常に同じ順で行われるのではなく、更新される前の世代情報が古い方のプログラム格納用物理アドレス領域を優先して処理対象とするから、プログラム格納用物理アドレス領域の全てに対して片寄りなく書換えを行うことが可能になる。
本発明の具体的な一つの形態として、前記再生制御として、前記プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行う。再生制御として、エラーが検出されなかった又はエラーが訂正された情報を用いて、エラー訂正不能な前記プログラム格納用物理アドレス領域、エラーが訂正された前記プログラム格納用物理アドレス領域の順に、前記プログラム格納用物理アドレス領域に対する書換えを行う。上記より、修復の必要性が高いプログラム格納用物理アドレス領域から順に書換えを行うから、プログラム格納用物理アドレス領域の信頼性をより高めることができる。
本発明の具体的な一つの形態として、前記再生制御として、電源投入時に、前記プログラム格納用物理アドレス領域を検索し、検索された当該プログラム格納用物理アドレス領域の前記世代情報を登録する。再生制御として、前記世代情報の古い方を優先して順次プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行う。再生制御として、エラーが訂正された前記プログラム格納用物理アドレス領域と、エラー訂正不能な前記プログラム格納用物理アドレス領域とのアドレス情報を登録し、少なくともエラーが検出されなかったプログラム格納用物理アドレス領域が2個ある場合に、前記検索を中断する。もともとエラーがないプログラム格納用物理アドレス領域が少なくとも2個あれば、それらが一度に破壊されることもないと考えられるので、検索を中断し、これによって、検索に伴う時間を短縮することができる。
本発明の具体的な一つの形態として、前記再生制御として、コマンド応答時に、前記アドレス情報で特定される前記プログラム格納用物理アドレス領域に、前記エラーが検出されなかった又はエラーが訂正されたプログラム格納用物理アドレス領域の情報を用いて書換えを行う。上記より、アドレス情報で特定されるプログラム格納用物理アドレス領域は、ディスターブの影響が大きい領域であることが予想されるから、このプログラム格納用物理アドレス領域を正常データによって書換えを行うことにより、当該プログラム格納用物理アドレス領域に対する情報記憶の信頼性を高めるのに資することができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
即ち、書換え処理中に電源遮断が発生しても、正常な記憶情報が全て破損されるような事態を回避できる。
《メモリカードの全体構成》
図1には、本発明を適用したメモリカードの一例が示される。メモリカード1は、カード基板に、電気的に書換え可能な不揮発性メモリであるフラッシュメモリ2と共に、カードコントローラ3を搭載している。カードコントローラ3は、メモリカード1のホスト装置(HOST)4との間のインタフェース制御及びフラッシュメモリ2に対するアクセス制御を行う。
図1には、本発明を適用したメモリカードの一例が示される。メモリカード1は、カード基板に、電気的に書換え可能な不揮発性メモリであるフラッシュメモリ2と共に、カードコントローラ3を搭載している。カードコントローラ3は、メモリカード1のホスト装置(HOST)4との間のインタフェース制御及びフラッシュメモリ2に対するアクセス制御を行う。
カードコントローラ3は、フラッシュメモリインタフェース回路(FIF)5を介してフラッシュメモリ2に接続され、ホストインタフェース回路(HIF)6を介してホスト装置4に接続される。
ホストインタフェース回路6は、当該メモリカード1のカード仕様に準拠したインタフェース機能を備える。ホスト装置4からメモリカードコマンドがホストインタフェース回路6に与えられると、ホストインタフェース回路6は、そのメモリカードコマンドを解読し、解読結果に応じた処理を例えば割り込みによってCPU7に与える。CPU7は、その割り込み要求に応答する割り込み処理プログラムを実行することによって、カードコントローラ3の内部を制御する。カードコントローラ3は、RAM(Random Access Memory)によって構成されるデータ格納領域として、ワークRAM(WRAM)8、インストラクションRAM(IRAM)9、リードバッファRAM(RBRAM)10、及びライトバッファRAM(WBRAM)11を備える。これらのRAMは、RAMセレクタ(RSEL)12によってホストインタフェース回路6、CPU7及びDMAC(Direct Memory Access Controller)13に接続される。
DMAC13は、ホストインタフェース回路6からWBRAM11への書込みデータのデータ転送制御、フラッシュメモリインタフェース回路5からRBRAM10への読出しデータのデータ転送制御等に利用される。WRAM8は、CPU7の作業領域である。また、エラーチェックアンドコレクト(ECC)による情報記憶の信頼性を向上させるときは、ECC回路14を用いて、エラー検出及び必要な訂正を行う。ECC回路14は、例えば書込みデータに基づいてECCコードを生成し、また、読出しデータに付随するECCコードを用いて読み出しデータに対するエラー検出と必要な訂正を行う。
メモリカード1は、ハードディスク互換のファイルメモリとして機能されるものである。また、メモリカード1は、所定の入出力プロトコルに基づきデータの入出力を行うことができるものであれば、挿抜可能とされるもの、又はプリント基板(PCB)に半田により固着されるものであってもよい。CPU7は、ファイルのセクタを規定する論理アドレスとフラッシュメモリ2の物理アドレスとを対応させる論理アドレス・物理アドレス変換テーブル(論物変換テーブル)を用いて、フラッシュメモリ2に対するアクセス制御を行う。フラッシュメモリ2に対するデータの読出しや書込みに際して、CPU7は、フラッシュアクセスコマンドを発行してその動作を制御する。フラッシュメモリ2は、一括消去単位の記憶領域(物理セクタ)毎に物理アドレスが割り当てられている。この物理セクタが物理アドレス領域とされる。
CPU7の動作プログラムは、マスクROM15が保有する。その他に、機能の拡張又は変更に応じた一部の動作プログラムがフラッシュメモリ2に格納される。マスクROM15を修正するには、そのマスクパターンを変更しなければならなくなり、カードコントローラ3を再度製造し直す必要があるからである。フラッシュメモリ2に格納されるCPU7の動作プログラムを、以下単にファームデータとも称する。ファームデータを格納するプログラム格納用物理アドレス領域(ファームデータ領域)は、メモリカード1の製造段階若しくは当該メモリカード1用のフラッシュメモリ2の製造段階で固定的に決定される。上記したファームデータ領域は、複数の物理セクタに多重化され、フラッシュメモリ2の不揮発性記憶領域(データ記憶領域)中に分散されている。それ故に、ファームデータ領域は、ビット線を共有する他の物理セクタに対する消去動作や書込み動作において、ディスターブの影響を受けることになる。カードコントローラ3は、そのようなディスターブによるファームデータの不所望な変化を抑制するためにファームデータに対するリフレッシュ動作を行う。
図2には、フラッシュメモリ2のメモリアレイが例示される。フラッシュメモリ2は、2値又は多値で情報記憶が可能であり、特に制限されないが、単結晶シリコン等の1個の半導体基板に、相補型MOS集積回路製造技術によって形成されている。
このフラッシュメモリ2は、多数の不揮発性メモリセル20をマトリクス状に配置したメモリアレイ(MARY)21を有する。不揮発性メモリセル20は、特に制限されないが、2層ゲート構造の絶縁ゲート型のnチャンネル電界効果トランジスタにより構成されている。この不揮発性メモリセル20は、例えばP型シリコン基板上に設けたP型ウエル領域PWと、P型ウエル領域PWに形成されたソースSC及びドレインDRと、フローティングゲートFGと、コントロールゲートCGとを有する。フローティングゲートFGは、ソースSCとドレインDR間のチャネル形成領域の上に、トンネル絶縁膜としての薄いゲート酸化膜を介して配置されている。コントロールゲートCGは、フローティングゲートFGの上に、絶縁膜を介して配置されている。
不揮発性メモリセル20のドレインDRは、データ端子であって、列毎にサブビット線(SBL)に接続される。サブビット線は、ストリングスイッチ22を介してメインビット線(MBL)に共通接続されている。また、不揮発性メモリセル20のコントロールゲートCGは、選択端子であって、行単位でワード線(WL)に接続される。さらに、不揮発性メモリセル20のソースSCは、共通のソース線(SL)に接続される。
次に、この不揮発性メモリセル20に対する情報のプログラム動作(書込み動作)、消去動作及び読出し動作について説明する。書込み動作は、特に制限されないが、ドレインDRからソースSCに電流を流し、ソースSC端のシリコン基板表面でホットエレクトロンを発生させ、これをコントロールゲートCGとフローティングゲートFGの高電圧による電界でフローティングゲートFGに注入することで閾値電圧を高くする動作とされる。尚、書込み動作は、フローティングゲートFGとP型ウェル領域PW間に高電圧を印加し、FNトンネル現象により電子を注入するのであってもよい。
一方、消去動作は、特に制限されないが、ソースSC、ドレインDR及びP型ウエル領域PWに回路の接地電圧を印加し、コントロールゲートCGとフローティングゲートFGに負の高電圧を印加して、FNトンネル現象によりフローティングゲートFGの電子を放出させる方向に移動させることで閾値電圧を低くする動作とされる。尚、消去動作は、シリコン基板表面で発生させたホットホールをフローティングゲートFGに注入することで、フローティングゲートFG内の電子を中和し、閾値電圧を低くするのであってもよい。
また、読出し動作は、ビット線を予めプリチャージしておき、所定の読出し判定レベルをワード線選択レベルとして不揮発性メモリセル20を選択して、ビット線に流れる電流変化若しくはビット線に現れる電圧レベル変化によって記憶情報を検出可能にする動作とされる。
また、読出し動作は、ビット線を予めプリチャージしておき、所定の読出し判定レベルをワード線選択レベルとして不揮発性メモリセル20を選択して、ビット線に流れる電流変化若しくはビット線に現れる電圧レベル変化によって記憶情報を検出可能にする動作とされる。
メモリアレイ21は、複数の不揮発性メモリセル20とストリングスイッチ22からなるサブブロックを複数有する。同図では3つのサブブロック23,24,25を示しているが、実際にはメモリアレイ21の規模に応じて多数配置可能である。これらのサブブロック23,24,25は、図示のように、ストリングスイッチ22で分離可能なメモリブロックとされる。また、フラッシュメモリ2のデータ記憶領域において、物理アドレスが割り当てられた物理セクタは、同一ワード線に接続された複数の不揮発性メモリセル20に対応する記憶領域とされる。要するに、それぞれのサブブロックは、サブブロック内に配置されたワード線の数、即ち行数分の物理セクタを有している。
次に、メモリアレイ21におけるディスターブについて説明する。書込み動作において書込み選択される不揮発性メモリセル20には、メインビット線から選択されたストリングスイッチ22を介してサブビット線にドレイン電流が流れる。このときのメインビット線電圧は、オフ状態のストリングスイッチ22に接続するサブビット線には印加されない。従って、相違するワード線に接続されていても、同一サブブロックに含まれる不揮発性メモリセル20は、書込み非選択であっても、ドレイン電圧を受けることによってディスターブを受ける。このことから、明らかなように、殆ど書換えを行う必要のないプログラムや定数データを、1つのサブブロックに集めて格納すれば、頻繁に書換えられるユーザーデータ等の書換え動作によるディスターブを殆ど受けなくてよい。
図3には、フラッシュメモリ2による物理セクタのブロック配置が例示される。それぞれの物理セクタは、その記憶領域の一部に管理領域(ADMFD)が割り当てられている。図中、点線で囲んだ領域がそれぞれサブブロック23,24,25に対応しており、サブブロック23,24,25内の実線で囲んだ領域が物理セクタに対応する。サブブロック23,24,25は、その物理セクタを、ファームデータ領域と、例えば頻繁に書換えを行うユーザーデータ等に開放された領域(以下、ユーザーデータ領域とも記す)とに割り当てている。このファームデータ領域は、同図では、オリジナルのファームデータを格納した物理セクタ26と、例えばミラーリングによる同一ファームデータを格納した物理セクタ27,28とに、多重化されている。言換えると、ファームデータ領域は、フラッシュメモリ2のデータ記憶領域中に分散されている。従って、それぞれのサブブロック23,24,25には、ファームデータ領域とユーザーデータ領域とが混在されることになる。
このようなブロック配置によれば、ストリングスイッチ22で分離可能なサブブロック23,24,25には、通常256又は512個の多くの物理セクタが配置されることを考慮すると、ユーザーデータ等に開放可能な物理セクタが無駄に制限される事態を極力排除することができる。但し、このブロック配置では、前述のディスターブを受けることになる。
図4には、比較例としての物理セクタのブロック配置が例示される。同図に示すサブブロック23A,24A,25Aは、それぞれの物理セクタを特定の用途だけに用いるような割り当てとなっている。具体的には、サブブロック23Aの物理セクタは、ユーザーデータには開放されず、ファームデータ領域と、システムデータを格納する領域とに割り当てている。また、サブブロック24A,25Aは、その物理セクタをユーザーデータ領域だけに割り当てている。
このブロック配置によれば、ファームデータ領域とユーザーデータ領域を、ストリングスイッチ22により分離可能なサブブロックに分けて配置できるから、ディスターブの影響を低減できる。しかしながら、同図に示すブロック配置では、サブブロック23Aには使用されていない物理セクタが存在するにもかかわらず、この物理セクタをユーザーデータに開放できない。従って、ファームデータが、ユーザーデータに比べて容量が極めて小さい場合には、ファームデータのためだけに1つのサブブロックの物理セクタを開放してしまうと、本来であれば活用できる多数の物理セクタを無駄にしてしまうことになり、フラッシュメモリ2に記憶可能なユーザーデータの容量が小さくなってしまう。
図5には、カードコントローラ3の全体的な制御シーケンスが例示される。メモリカード1に動作電源が投入されると、CPU7は、内部の初期化処理を行った後、ファームロード処理S1を行う。ファームロード処理S1は、フラッシュメモリ2のファームデータ領域に予め格納されているファームデータをIRAM9にロードする処理であるが、ロードする際には、ECC回路14を用いてファームデータのエラー検出と必要な訂正を行う。さらに、ファームロード処理S1は、エラー訂正が行われたファームデータ領域のセクタアドレスと、エラー訂正不能なファームデータ領域のセクタアドレスとを区別可能にして登録する処理等を行う。このファームロード処理S1は、3重に多重化されたファームデータのうち、全てのファームデータ領域のファームデータがエラー訂正不能でなければ、その一つをIRAM9にロードすることになる。
ファームロード処理S1に対しては、ファームロードに失敗があったかを判別する(S2)。失敗とは、全てのファームデータ領域がECC回路14によるエラー訂正が不能な場合である。結果として、正常なファームデータをIRAM9にロードすることができないので、その旨をホスト装置4に通知する(S3)。ファームロード処理S1が失敗でないときとは、ECC回路14により検出されたエラーが訂正され、或いは全くエラーがなかったときである。ここでは、最初にエラーが訂正され、或いはエラーがないと判定されたファームデータをIRAM9にロードする。
ファームロード処理S1に失敗しなかったときは、テーブル作成処理S4を行う。テーブル作成処理S4は、フラッシュメモリ2の各セクタ領域から管理データを取得し、そこに含まれるデータ領域の物理アドレス情報と論理アドレス情報から前述した論物変換テーブルを作成する処理を基本とする。ここでは更に、ファームロード処理S1において検索されたファームデータ領域の物理アドレスと、その物理アドレス領域がECC回路14によるエラー訂正されたものか、或いはエラー訂正不能なものであるかを区別する情報とを含む、ファームデータのアドレステーブルを作成する。
テーブル作成処理S4を終了すると、CPU7がスタンバイ状態になり(S5)、メモリカードコマンドの投入を待つ。メモリカードコマンドが投入されると(S6)、そのコマンドの指示に従った処理を行うことになる。ファームリフレッシュコマンドが投入されたときは、ファームリフレッシュ処理S7が行われる。ファームリフレッシュ処理S7は、ファームロード処理S1でIRAM9にロードされたファームデータを用いて、ファームデータ領域を書換える処理(以下、リフレッシュとも記す)とされる。リフレッシュ対象は、上記したファームデータのアドレステーブルを用いて特定し、リフレッシュは所定の順序で行われる。
《ファームロード処理》
図6には、ファームロード処理S1のフローチャートが例示されている。まず、フラッシュメモリ2のファームデータの数(以下、Nとする)をカウントする図示を省略するカウンタがリセットされ、N=0とされる(S11)。次に、図示を省略するアドレスカウンタがリセットされ、カウント値がA=0に初期化される(S12)。そして、カウント値A=0に応じる物理セクタが検索され、その管理領域の情報から当該物理セクタがファームデータ領域であるか否かが判定される(S13)。ファームデータ領域でなければ、カウント値Aが最終値MAXよりも小さいときは、そのカウント値Aが+1インクリメントされ(S22)、前記ステップS13の処理が繰り返される。ステップS13において、ファームデータ領域であることが判別されると、次に、当該ファームデータ領域の管理情報にセット状態の消去・書込みフラグが残っているかが判定される(S14)。消去・書込みフラグは、消去・書込み動作の開始によってセットされ、その動作の完了によってクリアされるから、動作電源の供給が停止される等によって消去・書込み動作が停止されたときは消去・書込みフラグがセット状態のままでパワーオンされることになる。
図6には、ファームロード処理S1のフローチャートが例示されている。まず、フラッシュメモリ2のファームデータの数(以下、Nとする)をカウントする図示を省略するカウンタがリセットされ、N=0とされる(S11)。次に、図示を省略するアドレスカウンタがリセットされ、カウント値がA=0に初期化される(S12)。そして、カウント値A=0に応じる物理セクタが検索され、その管理領域の情報から当該物理セクタがファームデータ領域であるか否かが判定される(S13)。ファームデータ領域でなければ、カウント値Aが最終値MAXよりも小さいときは、そのカウント値Aが+1インクリメントされ(S22)、前記ステップS13の処理が繰り返される。ステップS13において、ファームデータ領域であることが判別されると、次に、当該ファームデータ領域の管理情報にセット状態の消去・書込みフラグが残っているかが判定される(S14)。消去・書込みフラグは、消去・書込み動作の開始によってセットされ、その動作の完了によってクリアされるから、動作電源の供給が停止される等によって消去・書込み動作が停止されたときは消去・書込みフラグがセット状態のままでパワーオンされることになる。
ステップS14においてフラグがセット状態であれば、電源遮断によって当該ファームデータ領域のデータが破壊されている可能性が高い。この場合には、ファームリフレッシュ登録を行う(S19)。ファームリフレッシュ登録は、登録すべきファームデータ領域の物理セクタアドレスと登録要因を登録する処理である。ステップS14の処理において、消去・書込み途中で電源遮断がなかったことが判定されると、そのファームデータ領域のファームデータに対してECC回路14でエラー検出及び必要な訂正を行う。ECC回路14による訂正を必要としなかったとき又はECC回路14によって必要な訂正が行われたとき、何れかの正常データをIRAM9に格納する(S15)。
次に、ECC回路14によるエラー訂正が不能であったか否かが判別され(S16)、エラー訂正不能であったときは、そのファームデータの物理セクタアドレスとエラー訂正不能という要因の登録が行われる(S19)。ステップS16において、エラー訂正不能でなければ、Nが+1インクリメントされる(S17)。更に、前記ECC回路14によるエラー訂正が行われたかが判別され(S18)、エラー訂正が行われていれば、そのファームデータの物理セクタアドレスとエラー訂正という要因の登録が行われる(S19)。また、ステップS18でエラー訂正が行われていないと判別された後、また、ステップS19の処理の後、Nが1よりも大きいかが判別される(S20)。Nが1以下であれば、ステップS22によりA=MAXになるまで前記ステップS13の処理に戻って上記した処理が繰り返される。前述のようにその途中のステップS20においてNが1よりも大きければ、ファームデータの正常性と言う意味で、ファームロード処理を成功として終了する(S21)。即ち、ファームデータがもともと正常であり、ECC回路14によるエラー訂正を必要としない場合、或いはエラーはあってもECC回路14によるエラー訂正によって正常になったとき、前記Nは+1インクリメントされる。従って、少なくとも2個の物理セクタ上で、ECC回路14によるエラー訂正不能でないファームデータがあれば、N>1となる。つまり、少なくとも2個の物理セクタ上に、ECC回路14によるエラー訂正不能でないファームデータがあれば、当該2個のファームデータが一緒に破壊される虞は皆無と考えられるので、成功として、それ以上の処理を行わない。
ステップS22において、A=MAXまで処理をした後、N=0であるかが判定される(S23)。A=MAXまで処理をした結果、N=0のままであれば、3重に割り当てたファームデータの全てが破壊されていることになるので、失敗として、ファームロード処理を終了する(S24)。また、A=MAXまで処理をした結果、N=1であれば、1個のファームデータ領域には、ECC回路14によりエラー訂正可能なファームデータ又はエラーのないファームデータが存在することになり、半分成功として、ファームロード処理を終了する(S25)。
《ファームリフレッシュ処理》
図7には、ファームリフレッシュ処理S7のフローチャートが例示されている。前述したステップS19によるファームリフレッシュ登録がされたファームデータ領域があるかが判定される(S31)。該当するファームデータ領域がないときは、全てのファームデータがもともとエラーのない正常データであることを意味しているから、リフレッシュを行う必要がなく、ファームリフレッシュ処理は正常終了とされる。
図7には、ファームリフレッシュ処理S7のフローチャートが例示されている。前述したステップS19によるファームリフレッシュ登録がされたファームデータ領域があるかが判定される(S31)。該当するファームデータ領域がないときは、全てのファームデータがもともとエラーのない正常データであることを意味しているから、リフレッシュを行う必要がなく、ファームリフレッシュ処理は正常終了とされる。
一方、該当するファームデータ領域があるときには、前述のテーブル作成処理S4で作成された論物変換テーブルとファームデータのアドレステーブルが参照され、リフレッシュ対象とされるファームデータ領域に対して消去用高電圧が印加され、ファームデータが消去される(S32)。次に、前述のファームロード処理S1においてIRAM9に格納された正常データを用いて、ステップS32でファームデータが消去されたファームデータ領域に書込み用高電圧が印加され、正常データが書込まれる(S33)。このステップS32、S33によるリフレッシュでは、ファームデータのアドレステーブルに登録されたアドレス情報と登録された要因とが参照され、この要因に基づく優先順位に従って行われる。この要因は、消去・書込みフラグがセット状態のままであったか、エラー訂正されたか、エラー訂正不能であったかを区別する情報である。このリフレッシュを行う優先順位は、高い方から順に、エラー訂正不能なファームデータ、エラーが訂正されたファームデータとされる。これは、エラー訂正不能なファームデータは、ECC回路14でも訂正不能であるからである。また、消去・書込みフラグがセット状態であるファームデータの優先順位は、エラー訂正されたファームデータの前であれば、適宜順位を変更してもよい。
次に、リフレッシュ対象となる全てのファームデータ領域に対するリフレッシュが完了されたかが判定され(S34)、完了していなければ、再びステップS32に戻り、上記した優先順位に従い、前記ステップS32〜S34の処理が繰り返される。次に、ステップS34でリフレッシュが完了されると、ファームリフレッシュ登録されていないファームデータ領域があるかが判定される(S35)。
リフレッシュ登録されていないファームデータ領域があれば、このファームデータ領域のファームデータは、ステップS32と同様に消去され(S36)、さらに、ステップS33と同様に正常データが書込まれる(S37)。次に、ファームリフレッシュ登録されていない全てのファームデータ領域のリフレッシュが完了されたかが判定され(S38)、完了していなければ、再びステップS36に戻り、上記ステップS36〜S38の処理が繰り返され、完了すると正常終了とされる。
このように、ファームリフレッシュ処理では、ステップS32〜S34においてファームリフレッシュ登録されたファームデータ領域に対してリフレッシュを行った後に、残りのファームデータ領域に対してリフレッシュを行っている。これは、ファームリフレッシュ登録されたファームデータ領域があるということは、残りのファームデータ領域にもディスターブの影響があると考えられるからである。即ち、残りのファームデータ領域は、現時点でECC回路14によるエラー検出が行われていなくても、経年変化によりエラーが生じ易い状態になっている可能性がある。そこで、残りのファームデータ領域に対してもリフレッシュを行うことにより、ファームデータ領域に対する全体としての情報記憶の信頼性が高まることになる。
《世代情報を用いたファームロード処理》
図8には、世代情報を用いたファームロード処理S1のフローチャートが例示されている。まず、図示を省略するアドレスカウンタがリセットされ、カウント値がA=0に初期化される(S41)。そして、カウント値A=0に応じる物理セクタが検索され、その管理領域の情報から当該物理セクタがファームデータ領域であるか否かが判定される(S42)。ファームデータ領域でなければ、カウント値Aが最終値MAXよりも小さいときは、そのカウント値Aが+1インクリメントされ(S46)、前記ステップS42の処理が繰り返される。ステップS42において、ファームデータ領域であることが判別されると、次に、当該ファームデータ領域の管理情報にセット状態の前述の消去・書込みフラグが残っているかが判定される(S43)。ステップS43においてフラグがセット状態であれば、電源遮断によって当該ファームデータ領域のデータが破壊されている可能性が高いから、ファームリフレッシュ登録を行う(S44)。このファームリフレッシュ登録により、登録すべきファームデータ領域の物理セクタアドレスと、登録要因、即ち、フラグがセット状態であることが登録される。
図8には、世代情報を用いたファームロード処理S1のフローチャートが例示されている。まず、図示を省略するアドレスカウンタがリセットされ、カウント値がA=0に初期化される(S41)。そして、カウント値A=0に応じる物理セクタが検索され、その管理領域の情報から当該物理セクタがファームデータ領域であるか否かが判定される(S42)。ファームデータ領域でなければ、カウント値Aが最終値MAXよりも小さいときは、そのカウント値Aが+1インクリメントされ(S46)、前記ステップS42の処理が繰り返される。ステップS42において、ファームデータ領域であることが判別されると、次に、当該ファームデータ領域の管理情報にセット状態の前述の消去・書込みフラグが残っているかが判定される(S43)。ステップS43においてフラグがセット状態であれば、電源遮断によって当該ファームデータ領域のデータが破壊されている可能性が高いから、ファームリフレッシュ登録を行う(S44)。このファームリフレッシュ登録により、登録すべきファームデータ領域の物理セクタアドレスと、登録要因、即ち、フラグがセット状態であることが登録される。
ステップS43の処理において、消去・書込み途中で電源遮断がなかったことが判定されると、そのファームデータ領域の世代情報とアドレス情報とが例えばWRAM8に登録される(S45)。世代情報は、ファームデータ領域の管理領域に格納されており、ファームデータ領域に対する書換えの世代を示し、世代が進む程、初期値0から値が大きくなる。その後、前記ステップS46により、カウント値=MAXとなるまで、ステップS42〜46の処理が繰り返される。そして、フラッシュメモリ2のファームデータの数(N)をカウントする図示を省略するカウンタがリセットされ、N=0とされる(S47)。
次に、前記ステップS45で登録したファームデータ領域のアドレスとその世代情報を参照し、世代情報の古いファームデータ領域を検索する。同一世代のファームデータ領域が複数ある場合には、ステップS45での登録順に検索すればよい。検索したファームデータは、ECC回路14に供給され、エラー検出と必要な訂正が行われ、何れかの正常データがIRAM9に格納される(S48)。これにより、多重化されたファームデータ領域に対する検索の順番は、世代情報の値に応じて可変になる。
次に、ECC回路14によるエラー訂正が不能であったか否かが判別され(S49)、エラー訂正不能であったときは、そのファームデータの物理セクタアドレスとエラー訂正不能という要因の登録が行われる(S51)。ステップS49において、エラー訂正不能でなければ、Nが+1インクリメントされ、前記ECC回路14によるエラー訂正が行われたかが判別される(S50)。エラー訂正が行われていれば、そのファームデータの物理セクタアドレスとエラー訂正という要因の登録が行われる(S51)。ステップS50においてエラー訂正が行われていないと判別された後、また、ステップS51の処理が行われた後に、Nが1よりも大きいかが判別される(S52)。
Nが1以下であれば、ステップS54により全ファームデータ領域を読み出すまで前記ステップS48の処理に戻って上記したステップS48〜54の処理が繰り返される。前述のようにその途中のステップS52においてNが1よりも大きければ、ファームデータの正常性と言う意味で、ファームロード処理を成功として終了する(S53)。つまり、前述のステップS21と同様に、少なくとも2個の物理セクタ上に、ECC回路14によるエラー訂正不能でないファームデータがあれば、当該2個のファームデータが一緒に破壊される虞は皆無と考えられるので、成功として、それ以上の処理を行わない。
ステップS54において、全ファームデータ領域を読み出す処理をした後、N=0であるかが判定される(S55)。全ファームデータ領域を読み出した結果、N=0のままであれば、3重に割り当てたファームデータの全てが破壊されていることになるので、失敗として、ファームロード処理を終了する(S56)。また、全ファームデータ領域を読み出した結果、N=1であれば、1個のファームデータ領域には、ECC回路14によりエラー訂正可能なファームデータ又はエラーのないファームデータが存在することになり、半分成功として、ファームロード処理を終了する(S57)。
《世代情報を用いたファームリフレッシュ処理》
図9には、世代情報を用いたファームリフレッシュ処理S7のフローチャートが例示されている。まず、ファームリフレッシュ登録されたファームデータ領域があるかが判定される(S61)。該当するファームデータ領域がないときは、リフレッシュを行う必要がなく、ファームリフレッシュ処理が正常終了とされる。
図9には、世代情報を用いたファームリフレッシュ処理S7のフローチャートが例示されている。まず、ファームリフレッシュ登録されたファームデータ領域があるかが判定される(S61)。該当するファームデータ領域がないときは、リフレッシュを行う必要がなく、ファームリフレッシュ処理が正常終了とされる。
該当するファームデータ領域があるときには、前述のテーブル作成処理S4で作成された論物変換テーブルとファームデータのアドレステーブルが参照され、リフレッシュ対象とされるファームデータ領域に対して消去動作が行われる(S62)。次に、前述のステップS48においてIRAM9に格納された正常データを用いて、消去動作が行われたファームデータ領域に対する書込み動作が行われる(S63)。このステップS62、S63によるリフレッシュでは、ファームデータのアドレステーブルに登録されたアドレス情報と登録された要因とが参照され、この要因に基づく優先順位に従って行われる。この優先順位については前述の図7に示したステップS32、S33と同様である。また、ステップS63の書込み動作では、ファームデータ領域の世代情報が更新されて、当該ファームデータ領域の世代が一つ進められる。ステップS48による検索は、古い世代を優先させるから、次のファームロード処理では、今回世代が更新されたファームデータとは別のファームデータ領域のファームデータが最初に検索されて、ECC回路14による処理対象にされる確率が高くなる。これにより、ECC回路14によるエラー検出及び必要な訂正は、常に同じ順番で行われないことになる。このようにすれば、特定のファームデータ領域に対してエラー検出及び必要な訂正が長期間行われないといった事態が回避され、全てのファームデータ領域に対して片寄りなくエラー検出及び必要な訂正が行われることになる。その結果として、リフレッシュ対象とされるファームデータ領域も片寄らないから、ファームリフレッシュ登録されたファームデータ領域に対する情報記憶の信頼性をさらに高めるのに資することができる。
その後、リフレッシュ対象となる全てのファームデータ領域に対するリフレッシュが完了されたかが判定され(S64)、完了していなければ、再びステップS62に戻り、上記したステップS62〜S64の処理が繰り返される。ステップS64で全てのリフレッシュ対象へのリフレッシュが完了されると、ファームリフレッシュ処理が正常終了とされる。ここで、今回、リフレッシュされたファームデータ領域は世代が進むことになるから、リフレッシュ対象とされず世代情報が更新されていない残りのファームデータ領域が次回のリフレッシュ対象とされる確率が高くなる。また、今回、残りのファームデータ領域に対してリフレッシュを行わないことにより、ファームリフレッシュ処理に要する時間が短縮されることになる。
図10には、世代情報を用いたファームロード処理及びファームリフレッシュ処理が概略的に例示される。ここでは一例として、世代情報を格納する管理領域を有するファームデータ領域を、図3に示したファームデータが格納された物理セクタ26,27,28に対応させている。まず、物理セクタ26,27,28の世代情報30が全て同じ値0である状態を、初期状態とする。この初期状態では、世代情報が全て同じであるから、例えばステップS45での登録順に従い、物理セクタ26,27のファームデータに対して、前述のファームロード処理S1におけるステップS48のECC回路14によるエラー検出及び必要な訂正等を行う。ここでは、物理セクタ26のファームデータがエラー訂正されたものとされる。よって、ステップS51では、物理セクタ26がファームリフレッシュ登録されている。
次に、ファームリフレッシュ登録された物理セクタ26のファームデータに対してリフレッシュが行われる。このとき、物理セクタ26の世代情報は、その値が+1インクリメントされ、値1となる。この後、再び、パワーオンされたときは、ステップS48でのECC回路14によるエラー訂正及び必要な訂正については、世代情報の古い方、即ち値0の物理セクタ27,28が優先されることになる。
以上、本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、上記した制御シーケンスは、電源投入時に開始されるようにしたが、これに限られず、ホスト装置4やCPU7から所定コマンドが投入されたとき等、所定のタイミングで行うようにしてもよい。また、カードコントローラ3は、フラッシュメモリ2に格納されたファームデータをリフレッシュ対象とするようにしたが、これに限られず、ファームデータと同様にディスターブの影響を受けると考えられる救済や制御用のパラメータデータをリフレッシュ対象とするようにしてもよい。
さらに、図9に示したファームリフレッシュ処理では、必要に応じて、残りのファームデータ領域に対してもリフレッシュを行うようにしてもよい。また、本発明は、メモリカードに限らず、同一パッケージ内に不揮発性メモリとコントローラを搭載したマルチチップモジュールのような半導体記憶装置にも適用できる。また、それ以外にセキュリティ用のSRAM、SDRAM等が別チップとして搭載されていてもよい。
1 メモリカード
2 フラッシュメモリ(FLASH)
3 カードコントローラ
4 ホスト装置(HOST)
5 フラッシュメモリインタフェース回路(FIF)
6 ホストインタフェース回路(HIF)
7 CPU
8 ワークRAM(WRAM)
9 インストラクションRAM(IRAM)
10 リードバッファRAM(RBRAM)
11 ライトバッファRAM(WBRAM)
12 RAMセレクタ(RSEL)
13 DMAC
14 ECC回路
15 ROM
20 不揮発性メモリセル
21 メモリアレイ
22 ストリングスイッチ
23〜25 サブブロック
26〜28 物理セクタ
30 世代情報
2 フラッシュメモリ(FLASH)
3 カードコントローラ
4 ホスト装置(HOST)
5 フラッシュメモリインタフェース回路(FIF)
6 ホストインタフェース回路(HIF)
7 CPU
8 ワークRAM(WRAM)
9 インストラクションRAM(IRAM)
10 リードバッファRAM(RBRAM)
11 ライトバッファRAM(WBRAM)
12 RAMセレクタ(RSEL)
13 DMAC
14 ECC回路
15 ROM
20 不揮発性メモリセル
21 メモリアレイ
22 ストリングスイッチ
23〜25 サブブロック
26〜28 物理セクタ
30 世代情報
Claims (13)
- 電気的に書換え可能な不揮発性メモリと、前記不揮発性メモリに対する制御及び外部とのインタフェース制御を行うコントローラとを有し、
前記不揮発性メモリは、複数の不揮発性物理アドレス領域の一部として、前記コントローラの動作プログラムを多重化して保有するためにプログラム格納用物理アドレス領域を複数個有し、
前記コントローラは、所定のタイミングで前記プログラム格納用物理アドレス領域が保有する情報を再生するための再生制御を行い、
前記再生制御として、前記プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行い、エラーが検出されなかった又はエラーが訂正された情報を用いて、少なくともエラー訂正不能な前記プログラム格納用物理アドレス領域に対する書換えを行う記憶装置。 - 前記再生制御として、前記プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行い、エラーが検出されなかった又はエラーが訂正された情報を用いて、エラー訂正不能な前記プログラム格納用物理アドレス領域、エラーが訂正された前記プログラム格納用物理アドレス領域の順に、前記プログラム格納用物理アドレス領域に対する書換えを行う請求項1記載の記憶装置。
- 前記再生制御として、残りの前記プログラム格納用物理アドレス領域に対する書換えを行う請求項2記載の記憶装置。
- 前記再生制御として、電源投入時に、前記プログラム格納用物理アドレス領域を順次検索し、検索された当該プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行い、
エラーが訂正された前記プログラム格納用物理アドレス領域と、エラー訂正不能な前記プログラム格納用物理アドレス領域とのアドレス情報を登録し、少なくともエラーが検出されなかったプログラム格納用物理アドレス領域が2個ある場合に、前記検索を中断する請求項3記載の記憶装置。 - 前記再生制御として、コマンド応答時に、前記アドレス情報で特定される前記プログラム格納用物理アドレス領域に、前記エラーが検出されなかった又はエラーが訂正されたプログラム格納用物理アドレス領域の情報を用いて書換えを行い、さらに、残りの前記プログラム格納用物理アドレス領域に対する書換えを行う請求項4記載の記憶装置。
- 前記再生制御として、エラーが検出されなかった又はエラーが訂正された前記プログラム格納用物理アドレス領域が少なくとも1つなければ、失敗を示すステータス情報を外部に出力する請求項5記載の記憶装置。
- 前記コントローラは、前記再生制御を行うための再生制御プログラムが格納されたROMを有する請求項1記載の記憶装置。
- 前記不揮発性メモリは、複数の不揮発性メモリセルの選択端子にワード線が接続され、データ端子にサブビット線が接続されたメモリブロックを複数有し、前記複数のメモリブロックのサブビット線が、ストリングスイッチを介してメインビット線に共通接続されたメモリアレイを有し、
前記不揮発性物理アドレス領域は、同一ワード線に接続された複数の不揮発性メモリセルに対応する記憶領域とされ、
前記プログラム格納用物理アドレス領域は、前記複数のメモリブロックに割り当てられている請求項1記載の記憶装置。 - 前記複数のプログラム格納用物理アドレス領域以外の他の不揮発性物理アドレス領域は、書換え可能なデータ領域である請求項1記載の記憶装置。
- 電気的に書換え可能な不揮発性メモリと、前記不揮発性メモリに対する制御及び外部とのインタフェース制御を行うコントローラとを有し、
前記不揮発性メモリは、複数の不揮発性物理アドレス領域の一部として、前記コントローラの動作プログラムを多重化して保有するためにプログラム格納用物理アドレス領域を複数個有し、
前記コントローラは、所定のタイミングで前記プログラム格納用物理アドレス領域が保有する情報を再生するための再生制御を行い、
前記プログラム格納用物理アドレス領域は、世代情報を格納する領域を有し、
前記再生制御として、前記世代情報の古い方を優先して、前記プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行い、エラーが検出されなかった又はエラーが訂正された情報を用いて、少なくともエラー訂正不能なプログラム格納用物理アドレス領域に対する書換えを行うと共に、当該プログラム格納用物理アドレス領域の世代情報を更新する記憶装置。 - 前記再生制御として、前記プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行い、エラーが検出されなかった又はエラーが訂正された情報を用いて、エラー訂正不能な前記プログラム格納用物理アドレス領域、エラーが訂正された前記プログラム格納用物理アドレス領域の順に、前記プログラム格納用物理アドレス領域に対する書換えを行う請求項10記載の記憶装置。
- 前記再生制御として、電源投入時に、前記プログラム格納用物理アドレス領域を検索し、検索された当該プログラム格納用物理アドレス領域の前記世代情報を登録し、
前記世代情報の古い方を優先して順次プログラム格納用物理アドレス領域が保有する情報に対するエラー検出及び必要な訂正処理を行い、
エラーが訂正された前記プログラム格納用物理アドレス領域と、エラー訂正不能な前記プログラム格納用物理アドレス領域とのアドレス情報を登録し、少なくともエラーが検出されなかったプログラム格納用物理アドレス領域が2個ある場合に、前記検索を中断する請求項10記載の記憶装置。 - 前記再生制御として、コマンド応答時に、前記アドレス情報で特定される前記プログラム格納用物理アドレス領域に、前記エラーが検出されなかった又はエラーが訂正されたプログラム格納用物理アドレス領域の情報を用いて書換えを行う請求項12記載の記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005317370A JP2007122640A (ja) | 2005-10-31 | 2005-10-31 | 記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005317370A JP2007122640A (ja) | 2005-10-31 | 2005-10-31 | 記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007122640A true JP2007122640A (ja) | 2007-05-17 |
Family
ID=38146378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005317370A Withdrawn JP2007122640A (ja) | 2005-10-31 | 2005-10-31 | 記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007122640A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015046088A (ja) * | 2013-08-29 | 2015-03-12 | 京セラドキュメントソリューションズ株式会社 | 半導体装置 |
WO2016002380A1 (ja) * | 2014-06-30 | 2016-01-07 | ソニー株式会社 | 記憶装置、情報処理システムおよび記憶装置の制御方法 |
JP2017097909A (ja) * | 2017-01-25 | 2017-06-01 | ラピスセミコンダクタ株式会社 | 半導体メモリの制御装置及び制御方法 |
JP2019057156A (ja) * | 2017-09-21 | 2019-04-11 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
-
2005
- 2005-10-31 JP JP2005317370A patent/JP2007122640A/ja not_active Withdrawn
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015046088A (ja) * | 2013-08-29 | 2015-03-12 | 京セラドキュメントソリューションズ株式会社 | 半導体装置 |
WO2016002380A1 (ja) * | 2014-06-30 | 2016-01-07 | ソニー株式会社 | 記憶装置、情報処理システムおよび記憶装置の制御方法 |
JP2017097909A (ja) * | 2017-01-25 | 2017-06-01 | ラピスセミコンダクタ株式会社 | 半導体メモリの制御装置及び制御方法 |
JP2019057156A (ja) * | 2017-09-21 | 2019-04-11 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
JP7065578B2 (ja) | 2017-09-21 | 2022-05-12 | キヤノン株式会社 | 情報処理装置、その制御方法、及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6553510B1 (en) | Memory device including redundancy routine for correcting random errors | |
US8914702B2 (en) | Bit error repair method and information processing apparatus | |
JP4901348B2 (ja) | 半導体記憶装置およびその制御方法 | |
JP5361158B2 (ja) | フラッシュメモリ装置及びメモリシステム | |
JP4648006B2 (ja) | サイクルカウント値を記憶する広い消去ブロックを備える不揮発性半導体メモリ | |
US8125825B2 (en) | Memory system protected from errors due to read disturbance and reading method thereof | |
US20100161881A1 (en) | Memory system | |
JP2009087509A (ja) | 半導体記憶装置 | |
JP2006114078A (ja) | 不揮発性半導体記憶装置及びその動作方法 | |
KR20120120214A (ko) | 비휘발성 메모리 및 원자 프로그램 순서와 기입 중단 검출을 가진 방법 | |
JP2006085895A (ja) | 高い信頼度を有する不揮発性メモリ装置のプログラム方法 | |
JP2007012180A (ja) | 半導体記憶装置 | |
JP2010218637A (ja) | 半導体記憶装置およびその制御方法 | |
CN108877863B (zh) | 快闪存储器存储装置及其操作方法 | |
US7543104B2 (en) | Non-volatile semiconductor device for use in memory card and memory system | |
JP2015176616A (ja) | 半導体記憶装置 | |
JP2009054275A (ja) | マルチビット及びシングルビット方式でデータを格納するフラッシュメモリ装置及びそのプログラム方法とこれを用いたメモリシステム | |
JP2007094921A (ja) | メモリカードとその制御方法 | |
US7653863B2 (en) | Data storing method for a non-volatile memory cell array having an error correction code | |
JP2012128769A (ja) | メモリシステム | |
US10176876B2 (en) | Memory control method and apparatus for programming and erasing areas | |
JP2008299918A (ja) | 不揮発性半導体記憶装置及びその不良ブロック置き換え方法 | |
JP2007122640A (ja) | 記憶装置 | |
JP5494086B2 (ja) | 不揮発性記憶装置および不揮発性メモリコントローラ | |
CN109254723B (zh) | 非易失性存储器中的存储器扇区注销的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090106 |