JP2011018371A - メモリ記憶装置 - Google Patents

メモリ記憶装置 Download PDF

Info

Publication number
JP2011018371A
JP2011018371A JP2010228378A JP2010228378A JP2011018371A JP 2011018371 A JP2011018371 A JP 2011018371A JP 2010228378 A JP2010228378 A JP 2010228378A JP 2010228378 A JP2010228378 A JP 2010228378A JP 2011018371 A JP2011018371 A JP 2011018371A
Authority
JP
Japan
Prior art keywords
memory
data
error
interface circuit
sector
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
Application number
JP2010228378A
Other languages
English (en)
Inventor
Takayuki Tamura
隆之 田村
Hirofumi Shibuya
洋文 渋谷
Hiroyuki Goto
啓之 後藤
Shigemasa Shioda
茂雅 塩田
Yasuhiro Nakamura
靖宏 中村
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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2010228378A priority Critical patent/JP2011018371A/ja
Publication of JP2011018371A publication Critical patent/JP2011018371A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ホスト装置が不揮発性メモリから記憶情報を読出さずに不揮発性メモリのデータ保持に対する信頼性を向上させる。
【解決手段】本発明に係るメモリ記憶装置は不揮発性メモリ(2)とメモリコントローラを有する。メモリコントローラは、ホストインタフェース回路(10)、メモリインタフェース回路(12)及び制御回路(11,13,14)を有する。制御回路は第1〜3処理を制御可能である。第1処理は書込みデータにエラー訂正コードを付加したデータをメモリインタフェース回路から書込み制御情報と共に出力する。第2処理は読出し制御情報に従いエラー検出・訂正したデータをホストインタフェース回路から出力する。第3処理は読出し制御情報に従いエラー検出・訂正したデータを書込み制御情報と共に出力する。メモリコントローラは、第3処理において、エラー発生回数が所定回数を超えたときエラー訂正された読出しデータの記憶領域を変更する。
【選択図】図1

Description

本発明は、不揮発性メモリを搭載したメモリカード、不揮発性のメモリカードに適用されるメモリコントローラに関し、例えばハードディスク互換のフラッシュメモリ搭載メモリカードに適用してその記憶情報の信頼性向上に有効な技術に関する。
フラッシュメモリ等の電気的に消去及び書き込み可能な不揮発性メモリを用いたメモリカードでは、メモリコントローラにECC回路を搭載し、不揮発性メモリへのデータ書き込みに際してエラー訂正コードを生成し、不揮発性メモリからのデータ読み出しに際してエラー訂正コードを用いたエラー検出・訂正が行われる。このように、従来のフラッシュメモリを用いた記憶装置では、ホストコンピュータがフラッシュメモリに書き込んだデータに対するデータエラー発生の検証は、ホストコンピュータがそのデータを読み出すときに行われるだけである。
このため、従来のメモリカードでは,フラッシュメモリのリテンション等によるデータエラーに対して、ホストコンピュータがデータを読み出すまで、エラー訂正を行うことができない。フラッシュメモリなどの不揮発性メモリセルはトランジスタの閾値電圧の相異として情報を記憶する。この不揮発性メモリセルの特性は経時的に劣化し、紫外線等の外的要因によって劣化する虞もある。したがって、ホストコンピュータがフラッシュメモリからデータを読み出したときは最早訂正可能なビット数を超えてデータエラーが進行している場合もある。本発明者は、フラッシュメモリに格納された全データに対する検証を能動的に行い、訂正データの書き戻しを有効に行うことが、記憶情報の信頼性向上の為に望ましいことを見出した。
本発明の目的は、ホスト装置がメモリカードの不揮発性メモリから記憶情報を読み出さなくても不揮発性メモリのデータ保持に対する信頼性を向上させることができるメモリカードを提供することにある。
本発明の別の目的は、メモリカードにおける不揮発性メモリのデータ保持に対する信頼性向上をホスト装置に負担をかけずに実現できるメモリコントローラを提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係るメモリカードは、不揮発性メモリ(2)と、前記不揮発性メモリの動作を制御するメモリコントローラ(4)とを有する。前記メモリコントローラは、所定のプロトコルに従って外部とインタフェース可能であり、外部からのアクセス指示に応答するメモリ制御に際して外部から前記不揮発性メモリへ書込むデータにエラー訂正コードを付加する処理又は前記不揮発性メモリから外部へ読み出すデータに対し前記エラー訂正コードを用いてエラー検出・訂正を行う処理を制御し、また、前記外部からのアクセス指示に応答する処理とは別に前記不揮発性メモリの記憶情報に対し前記エラー訂正コードを用いてエラー検出・訂正を行う処理を制御する。要するに、メモリコントローラは、外部からのアクセス要求に従って記憶情報を外部に読み出すのとは別に、記憶情報のエラー検出・訂正を行う。したがって、ホスト装置がメモリカードの不揮発性メモリから記憶情報を読み出さなくても不揮発性メモリのデータ保持に対する信頼性を向上させることができる。
前記外部からのアクセス指示に応答する処理とは別のエラー検出・訂正の処理については、メモリコントローラの演算制御手段が所定時間毎に、或はメモリカードへの電源投入に応答して実行させてよい。前者は演算制御手段のタイマ・カウンタ手段などを用いて行えばよい。後者は電源投入時の初期化動作の一環として行えばよい。
上記エラー検出・訂正処理において訂正回数すなわちエラー発生回数が多ければ何れ訂正不能なエラー発生の虞が強くなる。訂正不能になる前に対処するには、前記エラー検出・訂正の処理において、エラー発生回数が所定回数を超えたとき、エラー訂正された記憶情報の記憶領域を変更する演算制御手段を採用すればよい。同様の観点より、演算制御手段には、エラー発生ビット数が所定ビット数を超えたとき、エラー訂正された記憶情報の記憶領域を変更させてもよい。
前記不揮発性メモリは、ハードディスク互換のファイルメモリシステム等に利用され、例えば、情報記憶領域として、データ領域、前記データ領域の不良部分を代替する代替領域、前記データ領域と代替領域との関係を対応付ける代替管理領域、及びパラメータ領域を有する。このとき、前記演算制御手段は前記所定回数の情報又は所定ビット数の情報を前記不揮発性メモリのパラメータ領域から取得する。要するに、エラー検出・訂正処理に利用する前記所定回数の情報等をパラメータ領域に不揮発的に保持し、電源遮断によってもその情報が失われないようになる。
また、前記演算制御手段は、エラー検出・訂正処理で発生したエラー発生回数を前記不揮発性メモリの対応するデータ領域に記録しておけば、セクタ単位のような所定記憶領域毎のエラー発生回数の情報管理を容易化できる。
前記演算制御手段は、プログラム制御されるデータプロセッサ等により構成するのが簡単である。
〔2〕本発明に係るメモリコントローラは、所定のプロトコルにしたがって入出力動作可能なホストインタフェース回路(10)と、不揮発性メモリ(2)に接続可能なメモリインタフェース回路(12)と、前記ホストインタフェース回路及びメモリインタフェース回路に接続された制御回路(11,13,14)とを有する。前記制御回路は、前記ホストインタフェース回路から入力される書込みデータにエラー訂正コードを付加したデータをメモリインタフェース回路から書き込み制御情報と共に出力する第1処理と、メモリインタフェース回路から出力される読み出し制御情報に従ってメモリインタフェース回路に入力される読み出しデータのエラー検出・訂正を行ったデータを前記ホストインタフェース回路から出力する第2処理と、メモリインタフェース回路から出力される読み出し制御情報に従ってメモリインタフェース回路に入力される読み出しデータに対してエラー検出・訂正を行ったデータをメモリインタフェース回路から書き込み制御情報と共に出力する第3処理とを制御可能である。このメモリコントローラはメモリインタフェース回路に不揮発性メモリが接続されて回路基板に実装され、ホストインタフェース回路を介してホスト装置に接続される。このメモリコントローラによれば、ホストインタフェース回路からのアクセス要求に従ってメモリインタフェース回路から読み込んだ記憶情報をホストインタフェースに出力する読み出し制御動作とは別に、不揮発性メモリの記憶情報に対するエラー検出・訂正を行うことができる。したがって、ホスト装置が不揮発性メモリから記憶情報を読み出さなくても不揮発性メモリのデータ保持に対する信頼性を向上させることが可能になる。
前記第3処理については、前記制御回路に演算制御手段(11)が所定時間毎に、或はメモリコントローラへの電源投入に応答して、実行させてよい。
前記演算制御手段は、前記第3処理において、エラー発生回数が所定回数を超えたとき、エラー訂正された読み出しデータの記憶領域を変更する書き込み制御情報を出力させればよい。同様の観点より、エラー発生ビット数が所定ビット数を超えたとき、エラー訂正された読み出しデータの記憶領域を変更する書き込み制御情報を出力させてもよい。
前記演算制御手段は、前記メモリインタフェース回路が読み出しデータを入力するとき前記所定回数の情報をメモリインタフェース回路から入力すればよい。同様に、前記演算制御手段は、前記メモリインタフェース回路が読み出しデータを入力するとき前記所定ビット数の情報をメモリインタフェース回路から入力してよい。エラー検出・訂正に利用される前記所定回数の情報などはメモリインタフェース回路に接続される不揮発性メモリに格納されることになるから、メモリコントローラの電源遮断によってもその所定回数の情報などは失われない。また、前記演算制御手段は、前記第2処理及び第3処理におけるエラー検出・訂正で発生したエラー発生回数を前記メモリインタフェース回路から前記書き込み制御情報と共に出力させればよい。エラー検出・訂正処理で発生したエラー発生回数は前記不揮発性メモリの対応するデータ領域に記録されることになるから、セクタ単位のような所定記憶領域毎のエラー発生回数の情報管理を容易化できる。
前記制御回路は、前記エラー訂正コードの生成とエラー検出・訂正に利用されるECC回路(14)を有してよい。
〔3〕本発明の更に具体的な態様によると、メモリカードは、不揮発性メモリ例えば複数のフラッシュメモリと、ホストコンピュータとのインタフェース回路と、フラッシュメモリのインタフェース回路と、ホストコンピュータとフラッシュメモリ間のデータ転送の制御やエラー検出・訂正の制御を行うコントローラと、データ転送に使用されるデータバッファとを有する。コントローラは,ホストコンピュータがフラッシュメモリに対してアクセスを行っていない時間(アイドル時間)を計測し、ある特定時間を超えたときに、フラッシュメモリに格納されている全データをセクタ(所定バイト数のデータ領域)単位にデータバッファに読み出し、エラーチェックを行う。また、電源投入時やホストコンピュータがコマンドによりデータの検証を行うように指示した場合にも、同様にフラッシュメモリ内のデータに対してエラーチェックを行う。読み出したデータにエラーが発生した場合には、エラー訂正を行い、フラッシュメモリに書き戻す。このとき,フラッシュメモリへ書き戻す態様として、以下の態様がある。(a)以前に発生したエラー回数をカウントしておき、ある特定の回数以下の場合には同一の場所に、ある特定の回数を超えた場合には別の場所に書き戻す。(b)発生したエラーの度合いによって、同一場所か別の場所に書き戻す(エラーの発生した個所が3箇所以上なら別の場所に書き戻す、など)。(c)常に同一の場所に書き戻す。(d)常に別の場所に書き戻す。以上の4種類の書き戻し態様は、それぞれ単独または組み合わせて処理可能である。
フラッシュメモリ内に格納されているデータ検証を(ホストコンピュータの動作と係わりなく)行うことで、時間的経過によって発生するフラッシュメモリ内のデータ変化(リテンションエラーなど)を検出し、そのエラーを訂正してフラッシュメモリに書き戻すことで、データの信頼性を保持することができる。また、このデータ検証を定期的に行うことで、時間的経過により発生するデータ変化を常に正常なデータに保つことが可能なので、データ信頼性の確保が可能である。時間的経過によるデータ変化が著しいフラッシュメモリを用いた場合でも、定期的にフラッシュメモリのデータを検証することで、データの信頼性を確保することができる。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、不揮発性メモリ内に格納されているデータ検証を(ホストコンピュータの動作と係わりなく)行うことで、時間的経過によって発生する不揮発性メモリ内のデータ変化を検出し、そのエラーを訂正して不揮発性メモリに書き戻すことで、データの信頼性を保持することができる。また、このデータ検証を定期的に行うことで、時間的経過により発生するデータ変化を常に正常なデータに保つことが可能なので、データ信頼性の確保が可能である。時間的経過によるデータ変化が著しい不揮発性メモリを用いた場合でも、定期的に不揮発性メモリのデータを検証することで、データの信頼性を確保することができる。
ホスト装置がメモリカードの不揮発性メモリから記憶情報を読み出さなくても不揮発性メモリのデータ保持に対する信頼性を向上させることができる。
メモリカードにおける不揮発性メモリのデータ保持に対する信頼性向上をホスト装置に負担をかけずに実現することができる。
本発明に係るメモリカードの一例を示すブロック図である。 フラッシュメモリの記憶領域を例示する説明図である。 記憶情報検証処理の起動手順を例示するフローチャートである。 記憶情報検証処理の別の起動手順を例示するフローチャートである。 記憶情報検証処理を例示するフローチャートである。 書き戻し処理の一例としてエラー発生回数によって書き戻し場所を切換える場合のフローチャートである。 書き戻し処理の別の例としてエラービット数に応じて書き戻し場所を切換える場合のフローチャートである。 書き戻し処理の更に別の例として常に読み出しセクタと同じセクタに書き戻す場合のフローチャートである。 書き戻し処理の更に別の例として常に読み出しセクタとは異なる代替セクタに書き戻す場合のフローチャートである。 書き戻し処理の更に別の例としてエラー発生回数及びエラー発生ビット数の双方に基づいて書き戻し場所を切換える場合のフローチャートである。
図1には本発明に係るメモリカードの一例が示される。メモリカード1は不揮発性メモリ例えばフラッシュメモリ2と、DRAM(Dynamic Random Access memory)又はSRAM(Static Random Access Memory)等から成るデータバッファ3と、前記フラッシュメモリ2及びデータバッファ3のメモリ動作を制御するメモリコントローラ(フラッシュメモリコントローラとも記す)4とを、実装基板に備えて成る。フラッシュメモリ2は例えばメモリカードに必要な記憶容量に従って複数個のフラッシュメモリチップとして用意される。
前記フラッシュメモリ2は、電気的に消去及び書き込み可能な不揮発性のメモリセルトランジスタを多数有する。メモリセルトランジスタ(フラッシュメモリセルとも記す)は、特に制限されないが、半導体基板若しくはウェル内に形成されたソース及びドレイン、前記ソースとドレインとの間のチャンネル領域にトンネル酸化膜を介して形成されたフローティングゲート、そしてフローティングゲートに層間絶縁膜を介して重ねられたコントロールゲートによって構成される。コントロールゲートはワード線に、ドレインはビット線に、ソースはソース線に接続される。前記メモリセルトランジスタは、前記フローティングゲートに電子が注入されると閾値電圧が上昇し、また、前記フローティングゲートから電子を引き抜くと閾値電圧が低下する。前記メモリセルトランジスタは、データ読み出しのためのワード線電圧(コントロールゲート印加電圧)に対する閾値電圧の高低に応じた情報を記憶することになる。特に制限されないが、本明細書においてメモリセルトランジスタの閾値電圧が低い状態を消去状態、高い状態を書き込み状態と称する。書き込みや消去を行なうときはベリファイ動作を行ない、閾値電圧が消去状態又は書き込み状態に到達したか否かの検証を行なう。上記消去状態、書き込み状態は、前記ワード線、ソース線、ビット線、基板への電圧印加状態によって制御される。その制御手法は公知であるから詳細な説明は省略する。
フラッシュメモリコントローラ4は、例えばIDEディスクインタフェース仕様などに従ってフラッシュメモリ2をアクセスするアクセス制御機能を有する。このアクセス制御機能にしたがってフラッシュメモリ2をアクセスするときECC機能によりライトデータに対してエラーコードの付加、リードデータに対してエラー検出・訂正を行なう。アクセス制御機能にしたがってフラッシュメモリ2へデータ書き込みを行なうとき、書き込みベリファイ動作で書き込み不良が発生した場合には、当該不良領域を代替領域に代替させる代替制御機能を備える。更に、フラッシュメモリコントローラ4は、アクセス制御機能によるリード時とは別にフラッシュメモリ2の記憶情報に対してエラー検出・訂正処理を行なって記憶情報の信頼性を向上させる記憶情報検証機能を備える。この記憶情報検証機能は、ディスク領域に対してコンピュータのOS(Operating System)が行なうディスクスキャンによるエラー訂正機能をメモリカード1自体で実現可能にする機能として位置付けることができる。
前記フラッシュメモリコントローラ4は、ホストインタフェース回路10、演算制御手段としてのマイクロプロセッサ(MPU)11、メモリインタフェース回路としてのフラッシュインタフェース回路12、バッファコントローラ13、及びECC回路14を備える。前記MPU11、バッファコントローラ13、及びECC回路14はフラッシュメモリコントローラ4の制御回路を構成する。
MPU11は、CPU(Central Processing Unit)27、モードレジスタ25、タイマ26及び図示を省略するプログラムメモリなどを有し、フラッシュメモリコントローラ4を全体的に制御する。プログラムメモリはCPU27の動作プログラムなどを保有する。
前記ホストインタフェース回路10は、ATA(ATAttachment)、IDE(Integrated Device Electronics)、SCSI(Small Computer System Interface)等の所定のプロトコルに従って、パーソナルコンピュータ又はワークステーションなどのホストコンピュータ16とインタフェースを行う回路である。ホストインタフェース動作の制御はアクセスバス20を介してMPU11が行う。上記プロトコルは公知であるから詳細な説明を省略する。
前記バッファコントローラ13はアクセスバス21を介してMPU11から与えられるアクセス指示に従って、データバッファ3のメモリアクセス動作を制御する。データバッファ3にはホストコンピュータ16からホストインタフェース回路10に入力されたデータ、又はホストインタフェース回路10からホストコンピュータ16に出力するデータが一時的に保持される。また、データバッファ3には、フラッシュメモリ2から読み出されたデータ又はフラッシュメモリ2に書き込まれるデータが一時的に保持される。
フラッシュインタフェース回路12はアクセスバス22を介してMPU11から与えられるアクセス指示に従って、フラッシュメモリ2に対する、読み出し動作、消去動作及び書き込み動作を制御する。フラッシュインタフェース回路12は、読み出し動作において読み出しコマンドコードや読み出しアドレス情報等の読み出し制御情報をフラッシュメモリ2に出力し、書き込み動作において書き込みコマンドコード及び書き込みアドレス情報などの書き込み制御情報をフラッシュメモリ2に出力し、消去動作において消去コマンド等の消去制御情報をフラッシュメモリ2に出力する。
ECC回路14は、前記アクセス制御機能の一環として、アクセスバス23を介してMPU11から与えられる指示に従って、フラッシュメモリ2に書き込むデータに対してエラー訂正符号(エラー訂正コード)を生成して、書き込みデータに付加するために、フラッシュインタフェース回路12に出力する。また、フラッシュメモリ2から読み出された読み出しデータを当該読み出しデータに付加されているエラー訂正符号を用いてエラー検出・訂正処理を行い、そのエラー訂正能力範囲のエラー発生に対してエラー訂正を行う。更にECC回路14は、記憶情報検証機能の一環として、ホストコンピュータ16からのアクセス指示に応答する処理とは別に、フラッシュメモリから読み出したデータに対してエラー検出・訂正処理を行い、エラー訂正されたデータをフラッシュメモリ2に書き戻すときのエラー訂正コードを生成する。書き戻しに際しては、前記代替制御機能と同様に、代替領域を用いることも可能とされる。以下、前記記憶情報検証機能について詳細に説明する。
図2にはフラッシュメモリ2の記憶領域が例示される。フラッシュメモリ2の記憶領域は、データ領域30、代替領域31、パラメータ領域としてのパラメータセクタ32、代替管理領域としての代替領域管理テーブル33に大別される。各領域30〜33は、特に制限されないが、512バイトのセクタデータSn、セクタデータSnに対する複数バイトのECCコード(エラー訂正符号)、当該セクタの管理情報Mn、及び管理情報Mnに対するECCコードを有するフォーマットの領域を単位領域BLKとして有する。尚、各単位領域BLKに対してはフラッシュメモリ2のデバイスプロセス段階で発生する欠陥救済のための冗長の一部とされる冗長救済用の記憶領域が設けてあり、冗長救済が行なわれた場合には救済されるべきアドレスにマッピングされ、救済に用いなければアドレスマッピングは行なわれない。
前記データ領域30は例えばユーザに開放されるデータ領域とされる。経時的にデータ領域30等で書込みエラーを生じたとき、エラーを生じたデータ領域30等の単位領域BLKを代替するのに前記代替領域31が用いられる。代替の単位は単位領域BLKを最小単位とする。
前記管理情報Mnは、当該セクタアドレスが不良であるかを示す不良フラグ、ECCによるエラー発生回数を示すデータ(エラー発生回数データ)、及びホストが指定する論理アドレスとの対応情報などが格納される。
代替領域管理テーブル33は、特に制限されないが、データ領域の単位領域BLKに対応する不良登録データを有し、ここの不良登録データは代替先の単位領域のアドレスを特定する代替先アドレス情報とされ、代替領域先頭アドレスからのオフセットアドレスとして与えられている。不良登録データと単位領域BLKとの対応は一対一対応とされる。したがって、単位領域BLKの物理アドレスに基づいてアドレス演算を行うことにより、対応する不良登録データを得ることができる。例えばセクタアドレス“k”が不良のとき、不良アドレス“k”の代替先がセクタアドレス“x”であるとすれば、当該セクタアドレス“k”に対応される不良登録データとして、代替セクタ“x”のオフセットアドレスが設定される。
パラメータセクタ32には記憶情報検証機能で用いるパラメータデータを保持する。パラメータデータは、特に制限されないが、電源投入時に記憶情報検証処理を実行するか否かを指示する第1イネーブルビット、一定時間毎に記憶情報検証処理を実行するかか否かを指示する第2イネーブルビット、上記一定時間(記憶情報検証処理間隔)を規定する時間データ、記憶情報検証処理におけるエラー発生時の書き戻し処理で同一セクタアドレスへの書き戻しを許容する最大のエラー発生回数を規定するエラー回数データ、記憶情報検証処理におけるエラー発生時の書き戻し処理で同一セクタアドレスへの書き戻しを許容する最大エラービット数を示すビット数データとされる。パラメータセクタ32に保持されたパラメータデータはフラッシュメモリコントローラ4のパワーオンリセット時などにおける初期化動作に呼応してMPU11のモードレジスタ25にイニシャルロードされる。
図1に基づいて前記記憶情報検証処理動作について全体的に説明する。記憶情報検証処理動作の開始が指示されると、MPU11は、フラッシュインタフェース回路12を介してフラッシュメモリ2に読み出し制御情報を供給させ、フラッシュメモリ2から所定の単位領域BLKのセクタデータSnと管理情報Mnをリードしてデータバッファ3へ格納する。これと共に、MPU11はECC回路14に、前記リードしたセクタデータMnに対して、対応するECCコードに基づくエラーチェックを実行させる(図1の経路(1)参照)。
次にMPU11は、ECC回路14からエラーチェック結果を読み取る(図1の経路(2)参照)。ECC回路14でエラーが検出された場合には、MPU11はリードしたセクタデータに対応する管理情報Mnに含まれるエラー発生回数を基に今回までに発生したエラー回数が、モードレジスタ25が保有する所定回数を超えたか否かを判定する。所定回数とは、例えば前記パラメータ領域32が保持する回数データが示す回数であって、その回数データはフラッシュメモリコントローラ4の初期化動作でモードレジスタ25にイニシャルロードされる。或はMPU11は、ECC回路14で検出したエラービット数がモードレジスタ25が保有する所定ビット数を超えたか否かを判定する。所定ビット数とは、例えば前記パラメータ領域32が保持するビット数データが示す数であって、そのビット数データはフラッシュメモリコントローラ4の初期化動作でモードレジスタ25にイニシャルロードされる。当然、このビット数データが示すエラービット数はECC回路14で訂正可能なエラービット数の最大値以下である。MPU11が、データバッファ3に格納されているデータに対し、エラー訂正を行った後、エラー発生回数又はエラービット数がモードレジスタのイニシャルロード値以下の場合には同一場所に書き戻す(図1の経路(3))。エラー発生回数またはエラービット数がモードレジスタのイニシャルロード値を超えた場合には代替先へ書き戻す(図1の経路(4))。データの書き戻しに際してフラッシュインタフェース回路12は書き込み制御情報をフラッシュメモリ2に与える。
図3には前記記憶情報検証処理の起動手順を例示する。電源投入時、フラッシュメモリコントローラ4が初期化される(S1)。初期化動作では、例えば、フラッシュメモリ2のパラメータセクタ32に保持されているパラメータが前記モードレジスタ25にイニシャルロードされる。次に電源投入時に記憶情報検証処理を行なう否かを前記モードレジスタ25の第1イネーブルビットの値に基づいて判定する(S2)。
電源投入時に記憶情報検証処理を行なわない場合には、ホストコンピュータからメモリカードアクセスの為のホストコマンドが発行されているか否かを判定し(S3)、発行されていればそのコマンドを処理して(S4)、再びステップS3に戻る。
ステップS3においてホストコマンド発行されていなければ、一定時間毎に記憶情報検証処理を行なうか否かを第2イネーブルビットの値に基づいて判定する(S5)。一定時間毎に記憶情報検証処理を行なう場合には、アイドル時間に累計を計測する(S6)。即ち、MPU11のタイマ26を用いて、MPU11がホストコマンドを実行していない時間を計測する。累積したアイドル時間が設定時間、即ちモードレジスタ25にイニシャルロードされた時間情報が示す時間を超えたか否かを判定し(S7)、超えたとき、タイマで累積されたアイドル時間をクリアした後(S8)、記憶情報検証処理を行なう(S9)。前記ステップS2で第1イネーブルビットがイネーブルのときは、先ず最初に記憶情報検証処理が行われる(S9)。
図4には前記記憶情報検証処理の別の起動手順が例示される。図3との相違点は、記憶情報検証処理の指示をホストコンピュータからのコマンドによっても開始可能になっていることである。即ち、ステップS3の次に、ステップS10で記憶情報開始コマンドの発行を検出する。これを検出すると、記憶情報検証処理(S9)を行なう。
図5には前記記憶情報検証処理S9のフローチャートが例示される。先ず、例えばCPU27の一つの汎用レジスタをフラッシュメモリのセクタアドレスカウンタSAとし、これを初期化する(S11)。フラッシュメモリのセクタアドレスは、フラッシュメモリに格納されているデータを示すアドレス(物理アドレス)である。このセクタアドレスはホストコンピュータが指定する論理アドレスと対応している。次に、セクタアドレスカウンタSAの値に基づいて対応するセクタデータをデータバッファ3にリードする。同時にそのセクタデータに応ずるECCコードを用いてECC回路14にセクタデータに対するエラー検出を実行させる(12)。CPU27はその結果に対してエラーの有無を判定し、エラーが発生していれば、ECC回路14にエラー訂正を実行させ(S14)、訂正されたデータをフラッシュメモリに書き戻す処理を実行させる(S15)。エラー訂正処理はBCH(Bose-Chaudhuri-Hocqenghen)符号、リードソロモン符号などの符号に対する公知の訂正方法を利用すればよい。セクタアドレスカウンタSAの値が最大値になっていなければ(S16)、セクタアドレスカウンタSAの値を+1とし(S17)、ホストコマンド発行の有無を調べ(S18)、なければステップS12に戻って同様の処理を繰返す。ホストコマンドの発行があれば、それが記憶情報検証コマンドならステップS12に戻って同様の処理を繰返し、その他のコマンドなら当該その他のコマンド処理を許容して(S20)、記憶情報検証処理中にホストコンピュータがコマンドを発行したとき、そのコマンドの処理を優先するようになっている。前記ステップS16でセクタアドレスカウンタSAの値が最後まで(最大値)に到達したときは、フラッシュメモリ2に対して記憶情報検証処理を一巡できたことになるから、記憶情報検証処理S9を終了する。
図6には前記書き戻し処理S15のフローチャートが例示される。同図に例示される処理はエラー発生回数によって書き戻し場所を切換える例である。先ずデータバッファ3に格納されているセクタデータのエラー個所を訂正する(S21)。このとき、今回のエラー発生により当該セクタのエラー発生回数がモードレジスタの最大値(例えば4回)以上になっているかを判定する(S22)。3回以下であれば、エラー発生回数を+1して(S23)、エラー訂正を行なったセクタデータをセクタアドレスカウンタSAのセクタに書き戻す(S24)。当該セクタ対応の管理情報のエラー発生回数も更新される。エラー発生回数が4回以上であれば、代替セクタアドレスを算出し(S25)、エラー訂正を行なったセクタデータを代替セクタアドレスに書き戻す(S26)。このとき、当該代替セクタの管理情報のエラー発生回数はゼロにされる。代替セクタアドレスの算出は、代替領域の空きセクタを検出し、最初に見つかった空きセクタを代替先とする。
図7には前記書き戻し処理S15の別のフローチャートが例示される。同図に例示される処理はエラービット数に応じて書き戻し場所を切換える例である。先ずデータバッファ3に格納されているセクタデータのエラー個所を訂正する(S31)。このとき、今回のエラー発生により当該セクタのエラー発生ビット数がモードレジスタの最大値(例えば2ビット)以上になっているかを判定する(S32)。1ビット以下であれば、エラー訂正を行なったセクタデータをセクタアドレスカウンタSAのセクタに書き戻す(S33)。エラー発生ビット数が2ビット以上であれば、代替セクタアドレスを算出し(S34)、エラー訂正を行なったセクタデータを代替セクタアドレスに書き戻す(S35)。代替セクタアドレスの算出は、代替領域の空きセクタを検出し、最初に見つかった空きセクタを代替先とする。
図8には前記書き戻し処理S15の更に別のフローチャートが例示される。同図に例示される処理は常に読み出しセクタと同じセクタに書き戻す例である。データバッファ3に格納されているセクタデータのエラー個所を訂正する(S41)。その後エラー訂正を行なったセクタデータをセクタアドレスカウンタSAのセクタに書き戻す(S42)。
図9には前記書き戻し処理S15の更に別のフローチャートが例示される。同図に例示される処理は常に読み出しセクタとは異なる代替セクタに書き戻す例である。データバッファ3に格納されているセクタデータのエラー個所を訂正する(S43)。次に代替セクタアドレスを算出し(S44)、エラー訂正を行なったセクタデータを代替セクタアドレスに書き戻す(S45)。
図10には前記書き戻し処理S15の更に別のフローチャートが例示される。同図に例示される処理はエラー発生回数及びエラー発生ビット数の双方に基づいて書き戻し場所を切換える例である。先ずデータバッファ3に格納されているセクタデータのエラー個所を訂正する(S51)。このとき、今回のエラー発生により当該セクタのエラー発生回数がモードレジスタの最大値(例えば4回)以上になっているかを判定する(S52)。3回以下であれば、今度は、今回のエラー発生により当該セクタのエラー発生ビット数がモードレジスタの最大値(例えば2ビット)以上になっているかを判定する(S53)。1ビット以下であれば、エラー発生回数を+1して(S54)、エラー訂正を行なったセクタデータをセクタアドレスカウンタSAのセクタに書き戻す(S55)。当該セクタ対応の管理情報のエラー発生回数も更新される。エラー発生ビット数が2ビット以上であれば、代替セクタアドレスを算出し(S56)、エラー訂正を行なったセクタデータを代替セクタアドレスに書き戻す(S57)。このとき、当該代替セクタの管理情報のエラー発生回数はゼロにされる。
以上より、フラッシュメモリコントローラ4は、外部からのアクセス要求に従って記憶情報を外部に読み出すのとは別に、記憶情報のエラー検出・訂正を行う。したがって、ホストコンピュータ16がメモリカード1のフラッシュメモリ2から記憶情報を読み出さなくてもフラッシュメモリ2のデータ保持に対する信頼性を向上させることができる。このデータ検証を定期的に行うことで、時間的経過により発生するデータ変化を常に正常なデータに保つことが可能なので、データ信頼性の確保が可能である。時間的経過によるデータ変化が著しいフラッシュメモリ2を用いた場合でも、定期的にフラッシュメモリ2のデータを検証することで、データの信頼性を確保することができる。
上記エラー検出・訂正処理において訂正回数すなわちエラー発生回数が多ければ何れ訂正不能なエラー発生の虞が強くなる。エラー発生回数やエラービット数がある程度進んだところで、エラー訂正されたセクタデータを書き戻すセクタを代替領域のセクタに変更するから、訂正不能になる前に対処することができる。
エラー検出・訂正処理に利用する前記所定回数の情報等のパラメータをパラメータセクタに不揮発的に保持するころにより、電源遮断によってもその情報が失われないようになる。
また、前記MPU11は、エラー検出・訂正処理で発生したエラー発生回数を前記フラッシュメモリ2の対応するデータ領域に記録していおけば、セクタ単位のような所定記憶領域毎のエラー発生回数の情報管理を容易化できる。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、フラッシュメモリの単位領域BLK中のセクタデータは1セクタ分に限定されず、4セクタ分等のように適宜のサイズとすることが可能である。不揮発性メモリはフラッシュメモリに限定されず強誘電体メモリなどであってもよい。また、フラッシュメモリコントローラは1チップであってもマルチチップであってもよい。エラー検出・訂正処理はMPUとは別のECC回路で行なう場合に限定されない。CPUとそのソフトウェア(動作プログラム)で実行させてもよい。また、記憶情報検証処理の開始は、電源投入時、一定期間毎、及びホストコマンドの指示毎の組み合わせに限定されず、その他の適宜の組み合わせとし、或は何れか一つとし、また別の事象を開始のトリガとすることも可能である。
1 メモリカード
2 フラッシュメモリ(不揮発性メモリ)
3 データバッファ
4 フラッシュメモリコントローラ(メモリコントローラ)
10 ホストインタフェース回路
11 マイクロプロセッサ
12 フラッシュインタフェース回路(メモリインタフェース回路)
13 バッファコントローラ
14 ECC回路
16 ホストコンピュータ
25 モードレジスタ
26 タイマ
27 CPU
30 データ領域
Sn セクタデータ
Mn 管理情報
31 代替領域
32 パラメータセクタ
33 代替領域管理テーブル

Claims (4)

  1. 不揮発性メモリと、前記不揮発性メモリの動作を制御するメモリコントローラとを有するメモリ記憶装置であって、
    前記メモリコントローラは、所定のプロトコルにしたがって入出力動作可能なホストインタフェース回路と、不揮発性メモリに接続可能なメモリインタフェース回路と、前記ホストインタフェース回路及びメモリインタフェース回路に接続された制御回路とを有し、
    前記制御回路は、前記ホストインタフェース回路から入力される書込みデータにエラー訂正コードを付加したデータをメモリインタフェース回路から書き込み制御情報と共に出力する第1処理と、
    メモリインタフェース回路から出力される読み出し制御情報に従ってメモリインタフェース回路に入力される読み出しデータのエラー検出・訂正を行ったデータを前記ホストインタフェース回路から出力する第2処理と、
    メモリインタフェース回路から出力される読み出し制御情報に従ってメモリインタフェース回路に入力される読み出しデータに対してエラー検出・訂正を行ったデータをメモリインタフェース回路から書き込み制御情報と共に出力する第3処理とを制御可能であって、
    さらに、前記メモリコントローラは、前記第3処理において、エラー発生回数が所定回数を超えたとき、エラー訂正された読み出しデータの記憶領域を変更することを特徴とするメモリ記憶装置。
  2. 前記メモリコントローラは、前記第3処理において、エラー発生ビット数が所定ビット数を超えたとき、エラー訂正された読み出しデータの記憶領域を変更することを特徴とする請求項1記載のメモリ記憶装置。
  3. 前記制御回路は、前記第3処理をメモリコントローラへの電源投入に応答して実行させる演算制御手段を有することを特徴とする請求項1又は2記載のメモリ記憶装置。
  4. 前記制御回路は、前記第3処理を所定時間毎に実行させる演算制御手段を有することを特徴とする請求項1乃至3の何れか1項に記載のメモリ記憶装置。
JP2010228378A 2010-10-08 2010-10-08 メモリ記憶装置 Pending JP2011018371A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010228378A JP2011018371A (ja) 2010-10-08 2010-10-08 メモリ記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010228378A JP2011018371A (ja) 2010-10-08 2010-10-08 メモリ記憶装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007227388A Division JP4775969B2 (ja) 2007-09-03 2007-09-03 不揮発性記憶装置

Publications (1)

Publication Number Publication Date
JP2011018371A true JP2011018371A (ja) 2011-01-27

Family

ID=43596046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010228378A Pending JP2011018371A (ja) 2010-10-08 2010-10-08 メモリ記憶装置

Country Status (1)

Country Link
JP (1) JP2011018371A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013058107A1 (ja) * 2011-10-17 2013-04-25 日立オートモティブシステムズ株式会社 電子制御装置
JP2015135577A (ja) * 2014-01-16 2015-07-27 富士通株式会社 記憶装置、記憶方法及び制御装置
KR101843918B1 (ko) 2011-04-25 2018-04-02 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0283645A (ja) * 1988-09-20 1990-03-23 Hitachi Ltd 情報カード制御装置
JPH09204367A (ja) * 1996-01-25 1997-08-05 Mitsubishi Electric Corp フラッシュディスクカードにおけるフラッシュメモリデータのリフレッシュ方法
WO2001022232A1 (fr) * 1999-09-17 2001-03-29 Hitachi, Ltd. Memoire dans laquelle le nombre de corrections d'erreurs est enregistre

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0283645A (ja) * 1988-09-20 1990-03-23 Hitachi Ltd 情報カード制御装置
JPH09204367A (ja) * 1996-01-25 1997-08-05 Mitsubishi Electric Corp フラッシュディスクカードにおけるフラッシュメモリデータのリフレッシュ方法
WO2001022232A1 (fr) * 1999-09-17 2001-03-29 Hitachi, Ltd. Memoire dans laquelle le nombre de corrections d'erreurs est enregistre

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101843918B1 (ko) 2011-04-25 2018-04-02 삼성전자주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 그 동작 방법
WO2013058107A1 (ja) * 2011-10-17 2013-04-25 日立オートモティブシステムズ株式会社 電子制御装置
JP2013088978A (ja) * 2011-10-17 2013-05-13 Hitachi Automotive Systems Ltd 電子制御装置
CN103890739A (zh) * 2011-10-17 2014-06-25 日立汽车系统株式会社 电子控制装置
CN103890739B (zh) * 2011-10-17 2016-05-25 日立汽车系统株式会社 电子控制装置
JP2015135577A (ja) * 2014-01-16 2015-07-27 富士通株式会社 記憶装置、記憶方法及び制御装置

Similar Documents

Publication Publication Date Title
JP4059472B2 (ja) メモリカード及びメモリコントローラ
JP5283845B2 (ja) ビットエラーの予防方法、情報処理装置
JP4775969B2 (ja) 不揮発性記憶装置
JP4129381B2 (ja) 不揮発性半導体記憶装置
US8914702B2 (en) Bit error repair method and information processing apparatus
KR101655306B1 (ko) 메모리 시스템 및 그것의 액세스 방법
EP1918939B1 (en) Semiconductor memory system for flash memory
US9229851B2 (en) Memory controller, semiconductor memory device and control method thereof
US8732553B2 (en) Memory system and control method thereof
JP2008287404A (ja) 読み出しによる非アクセスメモリセルのデータ破壊を検出及び回復する装置、及びその方法
US20090319825A1 (en) Monitoring memory
JP2010015197A (ja) ストレージ制御装置、データ復元装置およびストレージシステム
JP2009129070A (ja) フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
TWI554886B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
TWI633428B (zh) 資料儲存裝置與記憶體裝置之資料處理方法
TWI591482B (zh) 資料保護方法、記憶體控制電路單元及記憶體儲存裝置
US10782920B2 (en) Data access method, memory storage apparatus and memory control circuit unit
US11042310B2 (en) Reading of start-up information from different memory regions of a memory system
TWI393146B (zh) 具有錯誤修正碼容量設定單元之快閃記憶體控制器及其方法
TWI798680B (zh) 主機記憶體緩衝區管理方法、記憶體儲存裝置與記憶體控制電路單元
TWI467364B (zh) 記憶體儲存裝置、記憶體控制器與資料寫入方法
US10735030B2 (en) Re-encoding data associated with failed memory devices
JP2011018371A (ja) メモリ記憶装置
TWI550625B (zh) 記憶體管理方法、記憶體儲存裝置及記憶體控制電路單元
JP2008251154A (ja) 不揮発性半導体記憶装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120920

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130321