(57)【要約】【課題】記憶されたデータについて高い信頼性を確保可能とする記憶装置、及びその記憶装置を装着して使用される電子機器を提供すること。【解決手段】電子機器２０に装着して使用される記憶装置であるＳＤメモリカード１０であって、不揮発性メモリであるＮＡＮＤ型フラッシュメモリ１５と、誤り訂正回路であるＥＣＣ回路１６と、を有し、誤り訂正回路は、電子機器２０により発行された信頼性チェック要求に応じて、不揮発性メモリから読み出されたデータのエラーを検出し、不揮発性メモリの第１のブロックから読み出されたデータについて、閾値以上、或いは閾値より大きい数のエラーを誤り訂正回路が検出した場合に、誤り訂正回路による訂正を経た第１のブロックのデータを不揮発性メモリの第２のブロックへ移すとともに、アドレス変換テーブルに保持されている第１のブロックの物理アドレスを第２のブロックの物理アドレスへ変更する。【選択図】      図１
2010079371.tif 000002
【特許請求の範囲】
【請求項１】
電子機器に装着して使用される記憶装置であって、
データを記憶する不揮発性メモリと、
前記不揮発性メモリへ書き込まれるデータの誤り訂正符号を生成し、前記不揮発性メモリから読み出されたデータのエラーを前記誤り訂正符号に基づいて検出及び訂正する誤り訂正回路と、を有し、
前記誤り訂正回路は、前記電子機器により発行された信頼性チェック要求に応じて、前記不揮発性メモリから読み出されたデータのエラーを検出し、
前記不揮発性メモリの第１のブロックから読み出されたデータについて、閾値以上、或いは閾値より大きい数のエラーを前記誤り訂正回路が検出した場合に、前記誤り訂正回路による訂正を経た前記第１のブロックのデータを前記不揮発性メモリの第２のブロックへ移すとともに、論理アドレス及び物理アドレスを対応付けるアドレス変換テーブルに保持されている前記第１のブロックの物理アドレスを前記第２のブロックの物理アドレスへ変更することを特徴とする記憶装置。
【請求項２】
信頼性チェックの対象となる論理アドレス範囲が前記信頼性チェック要求により指定可能であることを特徴とする請求項１に記載の記憶装置。
【請求項３】
請求項１又は２に記載の記憶装置を装着して使用され、前記記憶装置へ前記信頼性チェック要求を発行することを特徴とする電子機器。
【請求項４】
信頼性チェックの対象として、前記記憶装置のファイルシステムが使用するデータの論理アドレス範囲を前記信頼性チェック要求により指定可能であって、前記電子機器の電源が投入されるごとに前記信頼性チェック要求を発行することを特徴とする請求項３に記載の電子機器。
【請求項５】
前記記憶装置に保存された識別情報を、前記記憶装置が前記電子機器へ装着されるごとに読み出し、前記電子機器による前記記憶装置への最後のアクセスがあったときからの経過時間に応じて前記信頼性チェック要求を発行することを特徴とする請求項３又は４に記載の電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置及び電子機器、特に、ＮＡＮＤ型フラッシュメモリ等のフラッシュメモリを有する記憶装置の技術に関する。
【背景技術】
【０００２】
従来、メモリカード等の記憶装置に、ＮＡＮＤ型フラッシュメモリが使用されている。ＮＡＮＤ型フラッシュメモリは、データの書き換えを繰り返すことによってセル（記憶素子）が劣化する場合がある。セルが劣化すると、書き込まれたデータと読み出されたデータとが一致しなくなる現象（エラー）が生じ易くなり、記憶されているデータの信頼性を低下させることになる。これに対して、従来、フラッシュメモリにおけるエラーの発生状況や書き換え回数を管理することにより、データの信頼性の向上を図る技術が提案されている。例えば、特許文献１には、エラーが発生したページを含むブロックをスペアブロックに代替させる技術が提案されている。特許文献２には、訂正可能なエラーの発生回数、訂正不可能なエラーの発生回数の少なくとも一方が閾値を超えた場合にメモリ素子が劣化したものと判断し、劣化が検出されたメモリ素子へのアクセスを制限する技術が提案されている。
【０００３】
検出されたエラーが訂正不可能なものである場合、その時点において書き込まれているデータは消失したものとして扱われる。データの信頼性を向上させるには、訂正不可能なエラーが生じるより前に、書き込まれているデータを消失させないための措置を取り得ることが望ましい。また、データのエラーは、セルの劣化の他、データを書き込んでからの時間が経過することによっても生じる場合がある。従来の技術のように、書き込み及び読み出しのためのアクセスにてエラーをチェックする場合、アクセスが無い限りエラーのチェックがなされないこととなるため、アクセスが少ない領域については書き込みからの時間の経過によるエラーが生じる可能性が高くなる。さらに、従来の技術では、書き込みからの時間の経過によって生じるエラーもセル自体の劣化によって生じるエラーと同様に扱われることとなるため、データを入れ替えれば正常に使用可能なブロックであってもそれ以降使用されなくなる場合があるという問題も生じる。
【０００４】
【特許文献１】特開平８−２３５０２８号公報
【特許文献２】特開平１１−５３２６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、記憶されたデータについて高い信頼性を確保可能とする記憶装置、及びその記憶装置を装着して使用される電子機器を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願発明の一態様によれば、電子機器に装着して使用される記憶装置であって、データを記憶する不揮発性メモリと、不揮発性メモリへ書き込まれるデータの誤り訂正符号を生成し、不揮発性メモリから読み出されたデータのエラーを誤り訂正符号に基づいて検出及び訂正する誤り訂正回路と、を有し、誤り訂正回路は、電子機器により発行された信頼性チェック要求に応じて、不揮発性メモリから読み出されたデータのエラーを検出し、不揮発性メモリの第１のブロックから読み出されたデータについて、閾値以上、又は閾値より大きい数のエラーを誤り訂正回路が検出した場合に、誤り訂正回路による訂正を経た第１のブロックのデータを不揮発性メモリの第２のブロックへ移すとともに、論理アドレス及び物理アドレスを対応付けるアドレス変換テーブルに保持されている第１のブロックの物理アドレスを第２のブロックの物理アドレスへ変更することを特徴とする記憶装置が提供される。
【発明の効果】
【０００７】
本発明によれば、記憶装置に記憶されたデータについて高い信頼性を確保できるという効果を奏する。
【発明を実施するための最良の形態】
【０００８】
以下に添付図面を参照して、この発明に係る記憶装置及び電子機器の最良な実施の形態を詳細に説明する。
【０００９】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係る記憶装置であるＳＤメモリカード１０、及び電子機器２０の構成を示すブロック図である。ＳＤメモリカード１０は、ホスト機器である電子機器２０に装着して使用される。電子機器２０は、例えばデジタルカメラである。なお、ＳＤメモリカード１０及び電子機器２０は、本発明が属する分野の技術者によって、以下の説明要綱に基づき、適宜変形可能である。従って、以下の説明は、当該分野に対して開示される内容として広く理解されるべきであり、本発明を限定するものではない。
【００１０】
ＳＤメモリカード１０は、ホストインターフェース１１、マイクロプロセッサ１２、ＲＡＭ１３、ＮＡＮＤ型フラッシュメモリインターフェース１４、ＮＡＮＤ型フラッシュメモリ１５、ＥＣＣ（Error  Correction  Code）回路１６を備える。また、ＳＤメモリカード１０は、電子機器２０から入力されたデータ、及び電子機器２０へ出力するためＮＡＮＤ型フラッシュメモリ１５から取り出されたデータを一時的に保存する不図示のデータバッファを備える。電子機器２０は、装着されるＳＤメモリカード１０に対してデータの入出力等を行うためのハードウェア及びソフトウェアを備えている。電子機器２０は、ＳＤメモリカード１０のホストインターフェース１１と電気的に接続されている。
【００１１】
ホストインターフェース１１は、所定のプロトコルに従って、電子機器２０との間でコマンド、アドレス及びデータ等の授受を行う。ＮＡＮＤ型フラッシュメモリ１５は、データや管理データを記憶する不揮発性メモリである。ＮＡＮＤ型フラッシュメモリインターフェース１４は、ＮＡＮＤ型フラッシュメモリ１５を制御するとともに、データバッファに保存されたデータをＮＡＮＤ型フラッシュメモリ１５に保存させる。また、電子機器２０からのデータの読み出し要求に対して、ＮＡＮＤ型フラッシュメモリインターフェース１４は、ＮＡＮＤ型フラッシュメモリ１５からデータを読み出し、データバッファに保存させる。
【００１２】
マイクロプロセッサ１２は、ホストインターフェース１１、ＮＡＮＤ型フラッシュメモリインターフェース１４、ＲＡＭ１３、データバッファを制御する。ＲＡＭ１３は、論理アドレス及び物理アドレスを対応付けるアドレス変換テーブルを保持する。ここで、論理アドレスは、電子機器２０が発行し、かつ電子機器２０側で管理されているアドレスとする。物理アドレスは、ＮＡＮＤ型フラッシュメモリ１５における実際のアドレスとする。
【００１３】
ＥＣＣ回路１６は、ＮＡＮＤ型フラッシュメモリ１５へ書き込まれるデータの誤り訂正符号を生成し、ＮＡＮＤ型フラッシュメモリ１５から読み出されたデータのエラーを誤り訂正符号に基づいて検出及び訂正する誤り訂正回路として機能する。誤り訂正符号は、例えばリードソロモン（Read  Solomon）符号である。リードソロモン符号を用いることにより、ＥＣＣ回路１６は、検出したエラーの数を取得することが可能である。ＥＣＣ回路１６は、取得したエラー数をマイクロプロセッサ１２に通知する。
【００１４】
図２は、データの信頼性チェックにおけるＳＤメモリカード１０の動作を説明するフローチャートである。ＳＤメモリカード１０は、電子機器２０から発行されたコマンドをホストインターフェース１１において受信する（ステップＳ１）。ホストインターフェース１１は、コマンドを受信したことをマイクロプロセッサ１２に通知する。マイクロプロセッサ１２は、受信したコマンドが信頼性チェックコマンド（信頼性チェック要求）か否かを判断する（ステップＳ２）。受信したコマンドが信頼性チェックコマンドでなかった場合、ＳＤメモリカード１０は、信頼性チェックを行わず、受信したコマンドに応じた処理を適宜実行する。
【００１５】
受信したコマンドが信頼性チェックコマンドであった場合、エラーをチェックするチェックアドレスを、チェックを開始するアドレスに初期化する（ステップＳ３）。ここで、信頼性チェックの対象となる論理アドレス範囲は、信頼性チェックコマンドのパラメータにより指定可能であるものとする。次に、ＮＡＮＤ型フラッシュメモリ１５へのアクセスにより、チェックアドレスのデータを読み出す（ステップＳ４）。データの読み出しは、ＮＡＮＤ型フラッシュメモリ１５のデータを読み出す指示を、マイクロプロセッサ１２からＮＡＮＤ型フラッシュメモリインターフェース１４へ与えることにより行う。ＮＡＮＤ型フラッシュメモリ１５から読み出されるデータサイズは、ＥＣＣ回路１６が処理可能なデータサイズとする。ＥＣＣ回路１６は、ＮＡＮＤ型フラッシュメモリ１５から読み出されたデータのエラーを検出し、エラー数をマイクロプロセッサ１２へ通知する（ステップＳ５）。
【００１６】
マイクロプロセッサ１２は、ＥＣＣ回路１６から通知されたエラー数が予め設定された閾値以下であるか否かを判断する（ステップＳ６）。ＥＣＣ回路１６から通知されたエラー数が閾値より大きい値であった場合、チェックアドレスのデータが含まれる元のブロック（第１のブロック）のデータを読み出す。読み出された第１のブロックのデータは、ＥＣＣ回路１６による訂正を経て、用意された新規のブロック（第２のブロック）へ移される（ステップＳ９）。さらに、アドレス変換テーブルに保持されている第１のブロックの物理アドレスを第２のブロックの物理アドレスへ変更することにより、アドレス変換テーブルを更新する（ステップＳ１０）。これにより、第２のブロックに格納されたデータが有効なデータとして扱われる。
【００１７】
ステップＳ６においてエラー数が閾値以下であった場合、及びステップＳ１０においてアドレス変換テーブルを更新した場合、次に、信頼性チェックコマンドにより指定された論理アドレス範囲のチェックが完了したか否かを判断する（ステップＳ７）。指定された論理アドレス範囲のチェックが完了していない場合、チェックアドレスをインクリメントする（ステップＳ１１）。そして、インクリメントされたチェックアドレスのデータを読み出し（ステップＳ４）、上述の手順を繰り返す。ステップＳ７において、指定された論理アドレス範囲のチェックが完了した場合、ＳＤメモリカード１０は、信頼性チェックの結果を電子機器２０へ通知し（ステップＳ８）、信頼性チェックの処理を終了する。
【００１８】
エラー数の閾値は、ユーザによって適宜設定可能とすることにより、ユーザが要請する信頼性の程度に応じた信頼性チェックが可能となる。エラー数の閾値としては、ＳＤメモリカード１０が持つデフォルト値を使用することとしても良い。なお、第１のブロックのデータを第２のブロックへ移し、アドレス変換テーブルを更新するのは、第１のブロックから読み出されたデータについて閾値より大きい数のエラーを検出した場合である他、閾値以上の数のエラーを検出した場合であっても良い。
【００１９】
ステップＳ８では、例えば、エラー数が閾値を超えたことによるデータの移動があったか否か、指定された論理アドレス範囲において検出したエラー数などを、信頼性チェックの結果として通知する。例えば、信頼性チェックのたびに多くのエラーが継続して検出される場合や、書き込みからの経過時間が短いデータであってもエラーが検出されるような場合に、ユーザは、ＳＤメモリカード１０の寿命が近い等の判断が可能となる。本実施の形態のＳＤメモリカード１０は、読み出しエラーが検出されたブロックを劣化したものとして使用を制限するわけではないため、データを入れ替えれば正常に使用可能なブロックであっても以後使用されなくなるということを回避できる。
【００２０】
電子機器２０からの信頼性チェックコマンドに応じて信頼性チェックを行うことにより、読み出されたデータが訂正不可能なエラーとなるより前に、エラーがあったブロックのデータを他のブロックへ移す。エラーが訂正可能であるうちにデータを移すことにより、書き込まれているデータの消失を低減させ、データの信頼性を向上させることが可能となる。また、信頼性チェックコマンドの受信により信頼性チェックを行うことで、データを書き込み及び読み出す通常のアクセスの多少に関係無くエラーをチェックできる。以上により、記憶されたデータについて高い信頼性を確保できるという効果を奏する。
【００２１】
ＳＤメモリカード１０が持つメモリ空間の全てを信頼性チェックの対象とする場合、チェックには、ある程度の時間が必要となる。例えば、ＮＡＮＤ型フラッシュメモリ１５からの読み出し速度が２０ＭＢ／秒であるとすると、容量が８ＧＢのＳＤメモリカード１０の全てのメモリをチェックする場合、７分程度の時間が必要となる。信頼性チェックコマンドにおいて信頼性チェックの対象となる論理アドレス範囲を指定可能とすることにより、ＳＤメモリカード１０に記憶されているデータの信頼性を選択的にチェックすることが可能となる。
【００２２】
例えば、ＳＤメモリカード１０のファイルシステムが使用する重要なデータ（ＭＢＲ（Master  Boot  Record）、ＰＢＲ（Partition  Boot  Record）、ＦＡＴ（File  Allocation  Tables）、Root  Directory  Entry、Sub‐Directory  Entry等）は、メモリの全容量と比較して容量が小さいため、短時間で信頼性をチェック可能である。ＳＤメモリカード１０を起動する上で重要となるデータについて論理アドレスを指定することにより、短時間の信頼性チェックにより、ＳＤメモリカード１０の作動に関して高い信頼性が確保可能となる。なお、信頼性チェックは論理アドレス範囲を指定して行う場合に限られず、論理アドレス範囲を指定せずにＳＤメモリカード１０のメモリ空間の全てを信頼性チェックの対象としても良い。
【００２３】
（第２の実施の形態）
図３は、本発明の第２の実施の形態における電子機器２０の動作を説明するフローチャートである。本実施の形態は、ユーザの指示に応じて信頼性チェックを実行することを特徴とする。まず、電子機器２０にＳＤメモリカード１０が装着された状態において、電子機器２０は、メニューを提示する（ステップＳ２１）。提示されるメニューには、信頼性チェックを実行する旨の項目が含まれている。ステップＳ２２においてユーザが信頼性チェックの実行を選択しなかった場合、電子機器２０は、ユーザが選択したメニューに応じた処理等を適宜実行する。ステップＳ２２においてユーザが信頼性チェックの実行を選択した場合、電子機器２０は、ＳＤメモリカード１０へ信頼性チェックコマンドを発行する（ステップＳ２３）。
【００２４】
信頼性チェックコマンドを発行してから、電子機器２０は、ＳＤメモリカード１０からの信頼性チェックの結果を受信するまで待機する（ステップＳ２４及びステップＳ２５）。ステップＳ２５において信頼性チェックの結果を受信すると、電子機器２０は、表示手段等を用いて信頼性チェックの結果を出力し（ステップＳ２６）、信頼性チェックのための動作を終了する。信頼性チェックの実行をユーザが指示可能とすることにより、ユーザの要望、例えば、ＳＤメモリカード１０に記憶させるデータの重要度等に応じてデータの信頼性向上を図れる。
【００２５】
（第３の実施の形態）
図４は、本発明の第３の実施の形態における電子機器２０の動作を説明するフローチャートである。本実施の形態は、電子機器２０の電源が投入されるごとに信頼性チェックを実行することを特徴とする。まず、電子機器２０の電源を投入し（ステップＳ３１）、ＳＤメモリカード１０が装着されていることを認識すると、電子機器２０は、ＳＤメモリカード１０のファイルシステムをチェックすることにより、ファイルシステムが使用するアドレス範囲及びクラスタを検知する（ステップＳ３２）。
【００２６】
電子機器２０は、ＳＤメモリカード１０に対して信頼性チェックコマンドを発行する。信頼性チェックコマンドでは、ファイルシステムが使用する論理アドレス範囲をパラメータにより指定する（ステップＳ３３）。信頼性チェックコマンドを発行してから、電子機器２０は、ＳＤメモリカード１０からの信頼性チェックの結果を受信するまで待機する（ステップＳ３４及びステップＳ３５）。ステップＳ３５において信頼性チェックの結果を受信すると、電子機器２０は、表示手段等を用いて信頼性チェックの結果を出力し（ステップＳ３６）、信頼性チェックのための動作を終了する。
【００２７】
第１の実施の形態で説明するように、ＳＤメモリカード１０のファイルシステムが使用するＭＢＲ等の重要なデータは、短時間で信頼性をチェック可能である。本実施の形態では、ＳＤメモリカード１０を起動する上で重要となるデータについて、電子機器２０の電源を投入するごとの短時間の信頼性チェックにより、高い信頼性を確保可能となる。
【００２８】
（第４の実施の形態）
図５は、本発明の第４の実施の形態における電子機器２０の動作を説明するフローチャートである。本実施の形態は、電子機器２０がＳＤメモリカード１０へ最後にアクセスしてからの経過時間に応じて信頼性チェックを実行することを特徴とする。まず、電子機器２０にＳＤメモリカード１０を装着する（ステップＳ４１）と、電子機器２０は、ＳＤメモリカード１０の識別番号を読み出す（ステップＳ４２）。識別番号は、ＳＤメモリカード１０に対して個別に設定された番号であって、ＳＤメモリカード１０を識別するための識別情報である。識別番号としては、例えば、カード識別データ（Card  Identification  Date；ＣＩＤ）レジスタの情報を用いる。識別番号の読み出しは、ＳＤメモリカード１０が装着されるごとに行う。
【００２９】
電子機器２０は、ＳＤメモリカード１０へ最後にアクセスした日時を記憶している。電子機器２０は、ステップＳ４２で読み出された識別番号のＳＤメモリカード１０について最後にアクセスがあった日時からの経過時間を算出する（ステップＳ４３）。電子機器２０には、信頼性チェックを行うか否かの閾値となる経過時間が予め設定されている。電子機器２０は、かかる設定時間と算出した経過時間とを比較し、ＳＤメモリカード１０への最後のアクセスから所定の設定時間以上が経過したか否かを判断する（ステップＳ４４）。
【００３０】
ステップＳ４４において設定時間以上の時間が経過していないと判断した場合、信頼性チェックのための動作を終了する。ステップＳ４４において設定時間以上の時間が経過したと判断した場合、電子機器２０は、ＳＤメモリカード１０に対して信頼性チェックコマンドを発行する（ステップＳ４５）。信頼性チェックコマンドを発行してから、電子機器２０は、ＳＤメモリカード１０からの信頼性チェックの結果を受信するまで待機する（ステップＳ４６及びステップＳ４７）。ステップＳ４７において信頼性チェックの結果を受信すると、電子機器２０は、表示手段等を用いて信頼性チェックの結果を出力し、（ステップＳ４８）、信頼性チェックのための動作を終了する。
【００３１】
ＳＤメモリカード１０への最後のアクセスからの経過時間に応じて信頼性チェックを実行することにより、書き込みからの時間の経過によるエラーの発生が想定される場合において信頼性向上を図れる。ステップＳ４４における設定時間は、ユーザが適宜変更可能としても良い。設定時間を適宜設定可能とすることにより、ユーザの要望に応じてデータの信頼性向上を図れる。
【００３２】
本発明に係る記憶装置は、ＳＤメモリカード１０に限られず、例えば他のメモリカードや他の記憶媒体であっても良い。電子機器２０は、デジタルカメラに限られず、記憶装置に記憶された画像、動画、音声、ゲーム等の情報を扱う機器、例えば、パーソナルコンピュータ、デジタルビデオカメラや、ＭＰ３等の音楽機器、携帯電話等であっても良い。
【図面の簡単な説明】
【００３３】
【図１】第１の実施の形態に係る記憶装置及び電子機器の構成を示すブロック図。
【図２】データの信頼性チェックにおけるＳＤメモリカードの動作を説明するフローチャート。
【図３】第２の実施の形態における電子機器の動作を説明するフローチャート。
【図４】第３の実施の形態における電子機器の動作を説明するフローチャート。
【図５】第４の実施の形態における電子機器の動作を説明するフローチャート。
【符号の説明】
【００３４】
１０  ＳＤメモリカード、１５  ＮＡＮＤ型フラッシュメモリ、１６  ＥＣＣ回路、２０  電子機器。
【図１】
2010079371.tif 000003
【図２】
2010079371.tif 000004
【図３】
2010079371.tif 000005
【図４】
2010079371.tif 000006
【図５】
2010079371.tif 000007