(57)【要約】【課題】初期化動作を高速化する。【解決手段】ホスト機器１１に装着して使用される記憶装置１２であって、複数のブロックを含み、複数のブロックのそれぞれは、データ消去の単位であり且つ複数のページを含み、複数のページのそれぞれは、ホスト機器１１から入力される第１データが格納されるデータ部と少なくとも第１データを管理するための第２データが格納される冗長部とを含む不揮発性メモリ１６と、第２データの第１エラーを検出するための第１符号を生成し、且つ第１符号に基づいて第１エラーを検出する検出回路１８と、第１及び第２データの第２エラーを検出及び訂正するための第２符号を生成し、且つ第２符号に基づいて第２エラーを検出及び訂正する訂正回路１７とを含む。【選択図】      図１
2006331303.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に装着して使用される記憶装置であって、
複数のブロックを含み、前記複数のブロックのそれぞれは、データ消去の単位であり且つ複数のページを含み、前記複数のページのそれぞれは、前記ホスト機器から入力される第１データが格納されるデータ部と少なくとも前記第１データを管理するための第２データが格納される冗長部とを含む不揮発性メモリと、
前記第２データの第１エラーを検出するための第１符号を生成し、且つ前記第１符号に基づいて前記第１エラーを検出する検出回路と、
前記第１及び第２データの第２エラーを検出及び訂正するための第２符号を生成し、且つ前記第２符号に基づいて前記第２エラーを検出及び訂正する訂正回路と、
を具備することを特徴とする記憶装置。
【請求項２】
前記冗長部は、前記第２データ及び前記第１符号が格納される第１冗長部と、前記第２符号が格納される第２冗長部とを含むことを特徴とする請求項１記載の記憶装置。
【請求項３】
前記第１冗長部から前記第２データを読み出す読み出し回路をさらに具備し、
前記検出回路は、前記第１符号に基づいて前記読み出し回路により読み出された前記第２データの前記第１エラーを検出することを特徴とする請求項１又は２記載の記憶装置。
【請求項４】
前記読み出し回路は、前記第２データに前記第１エラーが検出された場合に、前記第１及び第２データを読み出し、
前記訂正回路は、前記第２符号に基づいて前記読み出し回路により読み出された前記第１及び第２データの前記第２エラーを検出及び訂正することを特徴とする請求項３記載の記憶装置。
【請求項５】
前記不揮発性メモリは、ビジー状態を示すビジー信号を出力し、
前記検出回路は、前記不揮発性メモリが前記ビジー状態であるビジー期間中に、前記第１エラーを検出することを特徴とする請求項１乃至４のいずれかに記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリを備えた記憶装置に係り、特にフラッシュメモリを備えたメモリカードに関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリを用いた記憶装置として、ＳＤTM（Secure Digital）メモリカードが知られている。このメモリカードは、デジタルカメラ等のホスト機器とコマンド線及びデータ線等を介して通信し、データの授受を行う。
【０００３】
ＮＡＮＤ型フラッシュメモリは、消去が可能な最小単位である複数のブロックから構成され、各ブロックは、最小の書き込み単位である複数のページから構成されている。また、１ページは、例えば５１２バイトのデータ部と１６バイトの冗長部とを備えている。この冗長部の利用方法は限定されないが、ＮＡＮＤ型フラッシュメモリではデータ化けを起こす可能性があるため、この領域にはＥＣＣコードの付加が推奨されている。
【０００４】
また、ＮＡＮＤ型フラッシュメモリでは、メモリセルの多値化や微細化の影響によりデータにエラーが発生する確率が高くなる。よって、強力なＥＣＣ回路が必要となり、冗長部に１０バイトのＥＣＣコードを付加することがある。この場合、６バイトが自由に使用することができる領域となり、この領域に論理ブロックアドレスやフラグ等を書き込んでおくことができる。
【０００５】
従来、ＥＣＣコードは、データ部及び冗長部のデータから生成していたため、このデータをすべて読み出して演算を行わないとエラー検出及び訂正ができない。すなわち、例えば冗長部に記憶された論理ブロックアドレスのみが必要な場合でも、ページ全体のデータを読み出して演算を行わなければならない。
【０００６】
したがって、冗長部の６バイトのデータを得るために、５２８バイト（５１２バイト＋１６バイト）のデータを読み出さなければならない。これにより、冗長部の６バイトのデータを読み出す場合に比べて、８８倍（５２８／６）の時間がかかってしまう。
【０００７】
以上のことから、メモリカードが起動してから、データの読み出し及び書き込みが可能となるまでの時間が、メモリカードの容量（ブロック数）とともに増大してしまう。
【０００８】
また、この種の関連技術として、不揮発性メモリの読み出し及び書き込みにかかる処理時間を短縮する技術が開示されている（特許文献１参照）。
【特許文献１】特開２００３−２８０８２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
本発明は、初期化動作の高速化が可能な記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一視点に係る記憶装置は、ホスト機器に装着して使用される記憶装置であって、複数のブロックを含み、前記複数のブロックのそれぞれは、データ消去の単位であり且つ複数のページを含み、前記複数のページのそれぞれは、前記ホスト機器から入力される第１データが格納されるデータ部と少なくとも前記第１データを管理するための第２データが格納される冗長部とを含む不揮発性メモリと、前記第２データの第１エラーを検出するための第１符号を生成し、且つ前記第１符号に基づいて前記第１エラーを検出する検出回路と、前記第１及び第２データの第２エラーを検出及び訂正するための第２符号を生成し、且つ前記第２符号に基づいて前記第２エラーを検出及び訂正する訂正回路とを含む。
【発明の効果】
【００１１】
本発明によれば、初期化動作の高速化が可能な記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１３】
（第１の実施形態）
図１は、本発明の第１の実施形態に係るメモリカード１２の構成を示すブロック図である。メモリカード１２は、例えばＳＤＴＭメモリカードから構成される。
【００１４】
このメモリカード１２は、画像、音楽及び他のデータなどの各種デジタルコンテンツを扱うためのものであり、例えばパーソナルコンピュータ（ＰＣ）などのホスト機器１１に装着して使用される。
【００１５】
ホスト機器１１は、装着されるメモリカード１２に対してデータの入出力等を行うためのハードウェア及びソフトウェアを備えている。
【００１６】
メモリカード１２は、ホストインターフェース回路１３、制御部１４、一時記憶回路（ＲＡＭ：Random Access Memory）１５、フラッシュメモリ１６、ＥＣＣ（Error Correcting Code）回路１７及びＣＲＣ（Cyclic Redundancy Check）回路１８を備えている。
【００１７】
ホストインターフェース回路１３は、所定のプロトコルに従って、ホスト機器１１との間でコマンド、アドレス及びデータ等の授受を行う。
【００１８】
フラッシュメモリ１６は、不揮発性半導体メモリであり、例えばＮＡＮＤ型フラッシュメモリにより構成される。フラッシュメモリ１６は、複数のＮＡＮＤ型のＥＥＰＲＯＭセルを備えており、１つのメモリセルは、１ビットの情報を記憶する２値メモリセルであってもよいし、或いは１ビットより多い情報（例えば、２ビット）を記憶する多値メモリセルであってもよい。
【００１９】
また、フラッシュメモリ１６は、最小の書き込み単位であるページを持ち、このページの記憶容量は例えば５１２バイト（byte）である。このページを３２ページ、２５６ページ或いは５１２ページ等にまとめた単位をブロックと定義する。
【００２０】
ページは書き込みが可能な最小単位で、ブロックは消去が可能な最小単位である。ＮＡＮＤ型フラッシュメモリはページ単位の書き換えはできず、ブロック全体を消去してから書き込みを行わなければならない。よって、ＮＡＮＤ型フラッシュメモリにデータを書き込む場合、消去済みのブロックを用意し、そこに書き換えたいページと、ブロック内で書き換えを行わないデータとをコピーする制御が発生する。すなわち、違うブロックへのデータのコピー処理が発生する。
【００２１】
このような制御が行われるため、ブロックの特定はホストが発行するブロックアドレスによっては一義的に決まらない。なお、ホストが発行し、且つホスト側で管理されているブロックアドレスを論理ブロックアドレスと称する。また、フラッシュメモリ１６側の実際のブロックアドレスを物理ブロックアドレスと称する。
【００２２】
このように、論理ブロックアドレスと物理ブロックアドレスとは一致せず、アドレス変換テーブル１５Ａにより論理ブロックアドレスを物理ブロックアドレスに変換した後、物理ブロックアドレスに基づいて実際にアクセスすべきブロックが特定される。
【００２３】
また、データを書き換える場合、書き換え後のデータは書き換え前のブロックと異なるブロックに書き込まれるため、論理ブロックアドレスと、この論理ブロックアドレスに対応する物理ブロックアドレスとの対応関係は、データを書き換える毎に動的に変化する。よって、アドレス変換テーブル１５Ａは、データが書き換えられる毎に、その書き換えに関わった部分の対応関係が更新される。
【００２４】
図２は、図１に示したフラッシュメモリ１６が備えるメモリセルアレイの構成を示す概略図である。フラッシュメモリ１６は、複数のブロック０〜ブロックｍを備えている。各ブロックは、複数のページ０〜ページｎにより構成されている。
【００２５】
図３は、図２に示したページの構成を示す概略図である。１つのページは、データを格納するデータ部（例えば、５１２バイト）と、冗長部（例えば、１６バイト）とから構成される。冗長部は、ホスト機器１１から入力されたデータを管理するための管理データ（management data）を格納する管理データ部（例えば、６バイト）と、ＥＣＣ回路１７が生成したＥＣＣコードを格納するＥＣＣコード部（例えば、１０バイト）とから構成される。
【００２６】
管理データ部は、論理ブロックアドレスが格納される論理ブロックアドレス部と、例えばデータ部に格納されるデータの種類或いは情報等を判別するためのフラグ等が格納されるフラグ部と、ＣＲＣ回路１８により管理データ（論理ブロックアドレス及びフラグ）に対して生成されたＣＲＣコードが格納されるＣＲＣコード部（例えば、１バイト）とから構成される。
【００２７】
このように、フラッシュメモリ１６は、ページ単位で読み出し或いは書き込みを、ブロック単位で消去を実行できるデバイスであり、１ページは５１２バイトのデータ部と１６バイトの冗長部とで構成され、ホスト機器１１側から見た場合の１ページは５１２バイトで構成されている。
【００２８】
制御部１４は、ホスト機器１１から入力されたデータをフラッシュメモリ１６に書き込み、或いはフラッシュメモリ１６から読み出したデータをホスト機器１１へ出力するために、各回路の制御を実行する。また、制御部１４は、ホスト機器１１から入力されたデータに対して管理データを生成する。この管理データは、フラッシュメモリ１６の管理データ部に書き込まれる。制御部１４の具体的な動作は、後述する。
【００２９】
ＲＡＭ１５は、制御部１４の作業用メモリであり、この作業用メモリの一部の領域はフラッシュメモリ１６との間で授受されるデータを一時的に保持するためのデータバッファとして用いられる。また、ＲＡＭ１５は、制御部１４により作成されたアドレス変換テーブル１５Ａを記憶する。制御部１４は、アドレス変換テーブル１５Ａを用いて、ホスト機器１１との間でデータの授受を制御する。
【００３０】
ＥＣＣ回路１７は、ホスト機器１１からデータが入力された場合に、このデータ及び制御部１４により生成された管理データのエラー検出及び訂正のために必要なＥＣＣコードを生成する。このＥＣＣコードは、データ及び管理データと共にフラッシュメモリ１６に書き込まれる。また、ＥＣＣ回路１７は、ＥＣＣコードに基づいて、フラッシュメモリ１６から読み出されたデータ及び管理データのエラー検出及び訂正を行う。
【００３１】
ＣＲＣ回路１８は、制御部１４により生成された管理データのエラー検出のために必要なＣＲＣコードを生成する。このＣＲＣコードは、管理データと共にフラッシュメモリ１６に書き込まれる。また、ＣＲＣ回路１８は、ＣＲＣコードに基づいて、フラッシュメモリ１６から読み出された管理データのエラー検出を行う。
【００３２】
ＥＣＣコード及びＣＲＣコードの大きさは、使用するエラー検出／訂正方式によって決定される。本実施形態では、ＣＲＣ回路１８が使用するエラー検出方式としてＣＲＣ７を用いた方法を一例として説明する。ＣＲＣ７は、データから７ビットのＣＲＣコードを生成する方式である。したがって、ＣＲＣコードを格納するＣＲＣコード部は、１バイトの記憶容量を必要とする。
【００３３】
図４は、図１に示した制御部１４の構成を示すブロック図である。制御部１４は、書き込み回路１４Ａ、読み出し回路１４Ｂ、テーブル生成回路１４Ｃ、コマンド生成回路１４Ｄ及びアドレス生成回路１４Ｅを備えている。
【００３４】
書き込み回路１４Ａは、ホスト機器１１から入力されたデータ及び管理データをフラッシュメモリ１６のページに書き込む処理を実行する。具体的には、書き込み回路１４Ａは、フラッシュメモリ１６が備えるライトイネーブル端子を制御して、フラッシュメモリ１６にデータを書き込む。
【００３５】
読み出し回路１４Ｂは、管理データ部に格納された管理データ（すなわち、論理ブロックアドレス、フラグ及びＣＲＣコード）の読み出し処理を実行する。また、読み出し回路１４Ｂは、各ページのデータの読み出し処理を実行する。具体的には、読み出し回路１４Ｂは、フラッシュメモリ１６が備えるリードイネーブル端子を制御して、フラッシュメモリ１６からデータを読み出す。
【００３６】
テーブル生成回路１４Ｃは、フラッシュメモリ１６から読み出された論理ブロックアドレスに基づいてアドレス変換テーブル１５Ａを生成する。そして、このアドレス変換テーブル１５ＡをＲＡＭ１５に一時的に記憶させる。
【００３７】
コマンド生成回路１４Ｄは、フラッシュメモリ１６を制御するためのコマンドを生成する。すなわち、コマンド生成回路１４Ｄは、フラッシュメモリ１６からデータを読み出すためのリードコマンド、或いはフラッシュメモリ１６へデータを書き込むためのライトコマンド等を生成する。コマンド生成回路１４Ｄにより生成されたコマンドは、データ線２８を介してフラッシュメモリ１６に供給される。
【００３８】
アドレス生成回路１４Ｅは、ホスト機器１１から供給されるアドレス及びアドレス変換テーブル１５Ａを用いて、フラッシュメモリ１６へ供給するアドレスを生成する。アドレス生成回路１４Ｅにより生成されたアドレスは、データ線２８を介してフラッシュメモリ１６に供給される。
【００３９】
ホスト機器１１は、メモリカード１２に対して、コマンド、アドレス及びデータを供給する。ホスト機器１１から入力されたコマンドは、コマンド線２１介してホストインターフェース回路１３に供給される。ホストインターフェース回路１３は、このコマンドを解釈する。解釈されたコマンド情報は、コマンド線２４を介して制御部１４に供給される。
【００４０】
ホスト機器１１から入力されたアドレスは、アドレス線２２を介してホストインターフェース回路１３に供給される。このアドレスは、アドレス線２５を介して制御部１４に供給される。
【００４１】
ホスト機器１１から入力されたデータは、データ線２３を介してホストインターフェース回路１３に供給される。このデータは、データ線２６を介して制御部１４に供給される。制御部１４は、データをデータ線２８を介してフラッシュメモリ１６に書き込む。
【００４２】
フラッシュメモリ１６から読み出されたデータは、データ線２８を介して制御部１４に供給される。このデータは、データ線２６を介してホストインターフェース回路１３に供給される。ホストインターフェース回路１３は、このデータをデータ線２３を介してホスト機器１１に出力する。
【００４３】
制御部１４は、データ線２７を介してＲＡＭ１５とデータの授受を行う。制御部１４は、データ線３０を介してＥＣＣ回路１７とデータの授受を行う。また、制御部１４は、データ線３１を介してＣＲＣ回路１８とデータの授受を行う。
【００４４】
さらに、制御部１４は、信号線２９を介してフラッシュメモリ１６に接続されている。フラッシュメモリ１６は、ビジー信号を信号線２９を介して制御部１４に供給する。このビジー信号は、フラッシュメモリ１６のレディー状態或いはビジー状態を表す信号である。
【００４５】
フラッシュメモリ１６からデータを読み出す場合、制御部１４はリードコマンドを発行した後、フラッシュメモリ１６がレディー（ビジー信号がハイレベル）になった時点でデータの読み出しが可能となる。一方、フラッシュメモリ１６へデータを書き込む場合、制御部１４はライトコマンドを発行した後、フラッシュメモリ１６がレディーになった時点で次のデータの書き込みが可能となる。
【００４６】
このように構成されたメモリカード１２の動作について説明する。先ず、フラッシュメモリ１６へのデータ書き込み動作について説明する。図５は、データ書き込み動作を示すフローチャートである。
【００４７】
先ず、書き込み回路１４Ａは、データ書き込みを行うページが、論理ブロックアドレスを格納するページであるか否かを判定する（ステップＳ５ａ）。本実施形態では、例えば０ページ目のみに論理ブロックアドレスを書き込むものとする。
【００４８】
メモリカードの初期化時に必要なパラメータは、これから書き込みを行う物理ブロックがどの論理ブロックのデータであるかを示す情報であるため、すべてのページに対して当該パラメータを格納する必要がない。よって、ブロックの最低１ページのみに論理ブロックアドレスを書き込んでおけばよい。０ページ目が訂正不可能な場合を考慮して初めの数ページに論理ブロックアドレスを書き込むようにしてもよい。
【００４９】
また、一般的にＣＲＣ回路１８は、ＣＲＣコードを生成するために、データの長さ分のクロックサイクルを必要とする。ブロック内のすべてのページに対して冗長部からＣＲＣコードを生成すると、無駄な処理時間と無駄な電力消費とが発生する。
【００５０】
管理データ部（６バイト）のうち１バイトをエラー検出符号（ＣＲＣコード）として使用し、残りの５バイトからＣＲＣコードを生成すると、最低で４０クロック（すなわち、５バイト×８＝４０ビット）程度が必要となる。メモリカード１２が１０ＭＨｚで動作しているとすると、クロックサイクルは、１００ｎｓｅｃとなる。よって、ＣＲＣコードを生成するのに４μｓｅｃの時間がかかる。
【００５１】
したがって、本実施形態では、初期化時に必要なパラメータを格納するページかどうかを判定し、初期化時に必要なパラメータを格納するページのライト時のみＣＲＣコードを生成する。これにより、ブロックにデータを書き込む時間を短縮させることができる。
【００５２】
ステップＳ５ａにおいて論理ブロックアドレスを格納するページであると判定された場合、ＣＲＣ回路１８は、管理データ（論理ブロックアドレス及びフラグ）からＣＲＣコードを生成する（ステップＳ５ｂ）。なお、ＣＲＣ回路１８は、論理ブロックアドレスのみからＣＲＣコードを生成するようにしてもよい。
【００５３】
次に、書き込み回路１４Ａは、論理ブロックアドレス及びＣＲＣコードを含む５２８バイトのデータの書き込み処理を実行する（ステップＳ５ｃ）。この書き込み処理には、ＥＣＣ回路１７によるＥＣＣコードの生成処理とＥＣＣコードの書き込み処理とが含まれる。
【００５４】
一方、ステップＳ５ａにおいて論理ブロックアドレスを格納するページでないと判定された場合、ＣＲＣ回路１８は、ＣＲＣコードを生成しない。この場合、書き込み回路１４Ａは、ＣＲＣコードを不定とした５２８バイトのデータの書き込み処理を実行する（ステップＳ５ｄ）。この書き込み処理には、ＥＣＣ回路１７によるＥＣＣコードの生成処理とＥＣＣコードの書き込み処理とが含まれる。
【００５５】
そして、書き込み回路１４Ａ及びＣＲＣ回路１８は、ブロック内の全てのページにデータを書き込むまで、上記制御を繰り返す（ステップＳ５ｅ）。このようにして、所定のページの冗長部に論理ブロックアドレス及びＣＲＣコードを書き込むことができる。
【００５６】
次に、メモリカード１２の初期化動作について説明する。ここで、初期化動作とは、メモリカード１２の起動時（或いは、電源投入時）に、論理ブロックアドレスと物理ブロックアドレスとの対応関係を表すアドレス変換テーブル１５Ａを生成する動作である。すなわち、メモリカード１２は、起動時に、各ブロックのページ０に記憶されている論理ブロックアドレスを読み出す処理を実行する。そして、得られた論理ブロックアドレスを用いて、メモリカード１２（具体的には、テーブル生成回路１４Ｃ）は、アドレス変換テーブル１５Ａを生成する。
【００５７】
次に、ＣＲＣコードの演算処理について説明する。本実施形態では、ＣＲＣコードの演算処理をフラッシュメモリ１６のビジー期間中に行うようにしている。図６は、ＣＲＣコードの演算処理動作を示すタイミングチャートである。
【００５８】
先ず、コマンド生成回路１４Ｄは、フラッシュメモリ１６からブロック０のページ０の管理データを読み出すために、リードコマンド（Ｒ−ＣＭＤ）を発行する。すると、フラッシュメモリ１６は、ビジー状態である旨のローレベルのビジー信号を制御部１４に出力する。
【００５９】
このビジー信号がローレベルの期間は、フラッシュメモリ１６が備える外部インターフェース回路（図示せず）に、フラッシュメモリ１６内のメモリセルからデータを出力するための準備期間である。また、ビジー信号は、フラッシュメモリ１６が備えるコントローラ（図示せず）が生成する。
【００６０】
フラッシュメモリ１６は、データ出力の準備が完了した際に、ビジーを解除（すなわち、ハイレベルのビジー信号を出力）する。すると、制御部１４（具体的には、読み出し回路１４Ｂ）は、フラッシュメモリ１６が備えるリードイネーブル端子を制御して、フラッシュメモリ１６からブロック０のページ０の管理データ及びＣＲＣコード（ＭＤＡＴ０）を読み出す。
【００６１】
次に、制御部１４は、ブロック１のページ０の管理データ及びＣＲＣコード（ＭＤＡＴ１）を読み出すために、リードコマンド（Ｒ−ＣＭＤ）を発行する。すると、フラッシュメモリ１６は、ビジー状態である旨のローレベルのビジー信号を制御部１４に出力する。このビジー期間中に、制御部１４は、読み出されたＭＤＡＴ０を用いてＣＲＣコードの計算（すなわち、エラー検出処理）を行う。他のブロックについても同様である。
【００６２】
ビジー出力開始からビジー解除までの時間は、現状のフラッシュメモリで、約数十μｓｅｃである。また、ＣＲＣコードの計算（すなわち、エラー検出処理）には、最低で４０クロックが必要である。メモリカード１２が１０ＭＨｚで動作しているとすると、ＣＲＣコードの計算には、４μｓｅｃの時間がかかる。
【００６３】
フラッシュメモリ１６からデータを読み出した直後にエラー検出処理を行う場合、各データ読み出し処理の時間にエラー検出処理のための４μｓｅｃが追加されることになる。この結果、読み出し速度が低下してしまう。
【００６４】
ところが、本実施形態では、図７に示すように、ＣＲＣ回路１８によるエラー検出処理をフラッシュメモリ１６のビジー期間中に行うようにしている。したがって、ビジー期間にエラー検出処理が隠れることになり、論理ブロックアドレスの読み出し動作を高速化することができる。
【００６５】
図７は、メモリカード１２の初期化時における論理ブロックアドレスの読み出し動作を示すフローチャートである。なお、データを読み出すためのアドレス制御については、説明を省略する。
【００６６】
先ず、コマンド生成回路１４Ｄは、フラッシュメモリ１６に対してリードコマンドを発行する（ステップＳ７ａ）。この時、フラッシュメモリ１６は、ビジー状態を示すローレベルのビジー信号を出力する。
【００６７】
次に、読み出し回路１４Ｂは、データ読み出しの対象となるブロックが最初のブロック（本実施形態では、ブロック０）であるか否かを判定する（ステップＳ７ｂ）。ステップＳ７ｂにおいて最初のブロックであると判定された場合には、まだ計算するＣＲＣコードが存在しない。よって、読み出し回路１４Ｂは、ビジーが解除されるのを監視する（ステップＳ７ｃ）。
【００６８】
ビジーが解除されると、読み出し回路１４Ｂは、当該ブロック０のページ０の管理データ及びＣＲＣコード（ＭＤＡＴ０）の読み出し処理を実行する（ステップＳ７ｄ）。そして、読み出し回路１４Ｂは、読み出されたＭＤＡＴ０をＲＡＭ１５に一時的に記憶させる（ステップＳ７ｅ）。
【００６９】
一方、ステップＳ７ｂにおいて最初のブロックでないと判定された場合には、メモリカード１２は、エラー検出処理を実行する。すなわち、ＣＲＣ回路１８は、ＲＡＭ１５に一時的に記憶されたデータからＣＲＣコードを計算する（ステップＳ７ｆ）。そして、ＣＲＣ回路１８は、論理ブロックアドレス及びフラグにエラーを検出したか否かを判定する（ステップＳ７ｇ）。なお、前述したように、論理ブロックアドレスのみからＣＲＣコードを生成した場合、ＣＲＣ回路１８は、論理ブロックアドレスのエラーを検出する。
【００７０】
ステップＳ７ｇにおいてエラーが検出されなかった場合、読み出し回路１４Ｂは、ＲＡＭ１５に一時的に記憶されたデータから論理ブロックアドレスを得る（ステップＳ７ｈ）。そして、読み出し回路１４Ｂは、ステップＳ７ｃに移行して、ビジーが解除されるのを監視する。
【００７１】
一方、ステップＳ７ｇにおいてエラーが検出された場合、制御部１４は、フラッシュメモリ１６からページ全体のデータ（データ部のデータ、論理ブロックアドレス、フラグ、ＣＲＣコード、及びＥＣＣコード）の読み出し処理を実行する（ステップＳ７ｉ）。すなわち、コマンド生成回路１４Ｄは、フラッシュメモリ１６からページのデータを読み出すために、リードコマンド（Ｒ−ＣＭＤ）を発行する。すると、フラッシュメモリ１６は、ビジー状態である旨のローレベルのビジー信号を制御部１４に出力する。そして、フラッシュメモリ１６は、データ出力の準備が完了すると、ビジーを解除（すなわち、ハイレベルのビジー信号を出力）する。次に、読み出し回路１４Ｂは、フラッシュメモリ１６が備えるリードイネーブル端子を制御して、フラッシュメモリ１６からページのデータを読み出す。
【００７２】
次に、ＥＣＣ回路１７は、ＥＣＣコードを用いて、ページのデータのエラー訂正を実行する（ステップＳ７ｊ）。次に、読み出し回路１４Ｂは、訂正されたデータから論理ブロックアドレスを得る（ステップＳ７ｋ）。そして、ステップＳ７ａに移行して、コマンド生成回路１４Ｄは、次のブロックのページ０の管理データ及びＣＲＣコードデータを読み出すためのリードコマンドを発行する。
【００７３】
その後、読み出し回路１４Ｂ、ＣＲＣ回路１８及びＥＣＣ回路１７は、全てのブロックに対して上記制御を繰り返す（ステップＳ７ｌ）。このようにして、各ブロックに記憶された論理ブロックアドレスを得ることができる。
【００７４】
その後、テーブル生成回路１４Ｃは、フラッシュメモリ１６から読み出された論理ブロックアドレスと、読み出し処理を行った物理ブロックアドレスとに基づいてアドレス変換テーブル１５Ａを生成する。これにより、メモリカード１２は、ホストが発行した論理ブロックアドレスに基づいて、物理ブロックアドレスを特定することができる。
【００７５】
例えば、ＣＲＣコードの計算をビジー期間中に行わなければ、ブロックサイズが１２８ｋＢのＮＡＮＤ型フラッシュメモリ用いて２ＧＢのメモリカードの初期化を行った場合、ブロック数は１６３８４個であるので、ＣＲＣコードの計算だけで６５ｍｓｅｃ（＝４μｓｅｃ×１６３８４）の時間が余分にかかることとなる。
【００７６】
ところが、本実施形態のように、ビジー期間中にＣＲＣコードの計算を行うようにすることで、効率良く初期化処理を行うことができる。
【００７７】
以上詳述したように本実施形態によれば、ページ全体のデータのうち管理データ部に格納されたデータ（管理データ及びＣＲＣコード）のみ読み出すことで、論理ブロックアドレスを得ることができる。これにより、初期化動作を高速化することができる。
【００７８】
また、アドレス変換テーブル１５Ａをフラッシュメモリ１６に記憶しておく必要がないため、フラッシュメモリ１６の記憶容量を増加させることができる。
【００７９】
また、ＣＲＣ回路１８によるエラー検出処理をフラッシュメモリ１６のビジー期間中に行うようにしている。この結果、ビジー期間にエラー検出処理が隠れることになり、論理ブロックアドレスの読み出し動作を高速化することができる。
【００８０】
なお、ＣＲＣ回路１８をＥＣＣ回路により構成するようにしてもよい。すなわち、読み出した論理ブロックアドレスに対してエラーの検出及び訂正を行うようにしてもよい。この場合、ＥＣＣ回路は、エラーが検出された場合、管理データ部に格納された管理データのエラー訂正を行う。よって、論理ブロックアドレスにエラーが発生した際、ページ全体の訂正処理を行う場合に比べて、初期化動作を高速化することができる。
【００８１】
（第２の実施形態）
第２の実施形態は、論理ブロックアドレスにエラーが存在した場合に、論理ブロックアドレスのみを訂正するようにしたものである。
【００８２】
図８は、本発明の第２の実施形態に係るメモリカード１２の初期化時における論理ブロックアドレスの読み出し動作を示すフローチャートである。なお、図８に示した複数のステップのうち、図７に示したステップと同じ動作については同一符号を付している。よって、図７と異なる動作のみ以下に説明する。
【００８３】
ステップＳ７ｉにおいてページ全体のデータが読み出された後、ＥＣＣ回路１７は、ＥＣＣコードを用いて論理ブロックアドレス部に格納された論理ブロックアドレスのみのエラーを検出する（ステップＳ８ａ）。次に、ＥＣＣ回路１７は、論理ブロックアドレスのみのエラーを訂正する（ステップＳ８ｂ）。そして、読み出し回路１４Ｂは、訂正された論理ブロックアドレスを得る（ステップＳ８ｃ）。その後、ステップＳ７ａに移行して、コマンド生成回路１４Ｄは、次のブロックのページ０の管理データ及びＣＲＣコードデータを読み出すためのリードコマンドを発行する。
【００８４】
以上詳述したように本実施形態では、ＣＲＣ回路１８により論理ブロックアドレスにエラーが検出された場合に、ＥＣＣ回路１７により論理ブロックアドレスのみエラー訂正を行うようにしている。
【００８５】
したがって本実施形態によれば、ＥＣＣ回路１７によるエラー訂正時間を短縮することができる。これにより、初期化動作を高速化することができる。
【００８６】
この発明は、上記実施形態に限定されるものではなく、その他、本発明の要旨を変更しない範囲において種々変形して実施可能である。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施形態に係るメモリカード１２の構成を示すブロック図。
【図２】図１に示したフラッシュメモリ１６が備えるメモリセルアレイの構成を示す概略図。
【図３】図２に示したページの構成を示す概略図。
【図４】図１に示した制御部１４の構成を示すブロック図。
【図５】フラッシュメモリ１６へのデータ書き込み動作を示すフローチャート。
【図６】ＣＲＣコードの演算処理動作を示すタイミングチャート。
【図７】メモリカード１２の初期化時における論理ブロックアドレスの読み出し動作を示すフローチャート。
【図８】本発明の第２の実施形態に係るメモリカード１２の初期化時における論理ブロックアドレスの読み出し動作を示すフローチャート。
【符号の説明】
【００８８】
１１…ホスト機器、１２…メモリカード、１３…ホストインターフェース回路、１４…制御部、１４Ａ…書き込み回路、１４Ｂ…読み出し回路、１４Ｃ…テーブル生成回路、１４Ｄ…コマンド生成回路、１４Ｅ…アドレス生成回路、１５…一時記憶回路（ＲＡＭ）、１５Ａ…アドレス変換テーブル、１６…フラッシュメモリ、１７…ＥＣＣ回路、１８…ＣＲＣ回路、２１，２４…コマンド線、２２，２５…アドレス線、２３，２６，２７，２８，３０，３１…データ線、２９…信号線。
【図１】
2006331303.tif 000003
【図２】
2006331303.tif 000004
【図３】
2006331303.tif 000005
【図４】
2006331303.tif 000006
【図５】
2006331303.tif 000007
【図６】
2006331303.tif 000008
【図７】
2006331303.tif 000009
【図８】
2006331303.tif 000010