(57)【要約】【課題】ホスト装置の電源供給能力に応じて最適な動作を行う。【解決手段】消費電流及びアクセス性能に応じた複数の動作モードを有するメモリシステム１であって、動作モードの遷移履歴を格納する不揮発性メモリ１１と、不揮発性メモリ１１との間で、同一動作モードにて一定量のデータをアクセスするごとに前記遷移履歴に当該動作モードを追加し、かつ前記遷移履歴を用いて現在の動作モードを決定するコントローラ１２とを含む。【選択図】      図３
2009122909.tif 000002
【特許請求の範囲】
【請求項１】
消費電流及びアクセス性能に応じた複数の動作モードを有するメモリシステムであって、
動作モードの遷移履歴を格納する不揮発性メモリと、
前記不揮発性メモリとの間で、同一動作モードにて一定量のデータをアクセスするごとに前記遷移履歴に当該動作モードを追加し、かつ前記遷移履歴を用いて現在の動作モードを決定するコントローラと
を具備することを特徴とするメモリシステム。
【請求項２】
前記コントローラは、消費電流の増加に起因する異常電源遮断が検出された場合に、前記異常電源遮断時の動作モードよりも消費電流が小さい動作モードを実行することを特徴とする請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、同一動作モードにて一定量のデータをアクセスするごとに、アクセス性能が高い動作モードに移行することを特徴とする請求項１又は２に記載のメモリシステム。
【請求項４】
前記不揮発性メモリは、データ消去単位である複数のブロックを含み、各ブロックは、データ書き込み単位である複数のページを含み、
前記コントローラは、前回の電源供給時において最後にデータの書き込みが行われたページのエラーの数が所定数以上である場合に、異常電源遮断が発生したと判断することを特徴とする請求項２に記載のメモリシステム。
【請求項５】
各ページを構成する複数のデータ部分ごとにエラー訂正符号を生成し、かつこのエラー訂正符号を用いて各データ部分のエラーを訂正するＥＣＣ回路をさらに具備し、
前記コントローラは、前記ＥＣＣ回路によるエラー訂正結果に基づいて、前記エラーの数を判定することを特徴とする請求項４に記載のメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリシステムに係り、例えば、ＮＡＮＤ型フラッシュメモリ等の不揮発性メモリを備えたメモリシステムに関する。
【背景技術】
【０００２】
不揮発性半導体メモリとこのメモリを制御するコントローラとを有するメモリシステム（例えば、メモリカード）が知られている。メモリカードは、ホスト装置に接続されて、ホスト装置からの要求に従って、データを記憶したり、記憶されたデータを出力したりする。また、メモリカードは、ホスト装置からの電源供給を受けて動作する。ホスト装置からの電源は、メモリカードのコントローラ及びメモリに供給される。
【０００３】
ホスト装置として、ユーザの利便性に供するために様々の形態及び特徴を有する装置が存在し、例えば、デジタルカメラ、プリンタ、ＵＳＢ（universal serial bus）メモリ、ＰＣ（personal computer）カードリーダ／ライタ等があげられる。このような様々な形態のホスト装置が、様々なメーカーによって製造されている。
【０００４】
ところで、メモリカードの動作（データの書き込み、読み出し等）の高速化に対するユーザからの要求は常に高まっている。この高速化要求を満たすために、様々な技術が提案、実用化されている。これら技術は、概して通常の動作よりも大きな電流を消費する。なお、どの程度の電流が消費されるかは、高速化技術によって異なる。このように、メモリカードの消費電流は上昇傾向にある。
【０００５】
ホスト装置は、メモリカードに対して、規格により定められた電圧を印加できることが要請されている。しかしながら、メモリカードが大きな電流を消費すると、一部のホスト装置は、その電源供給回路の設計等に起因して、規定の電圧を供給することができない。供給電圧が規定値を下回ると、メモリカードは誤動作を起こし得る。ホスト装置の電源の消費電流に対する強度は、ホスト装置によって異なるため、ある消費電流に対して、一部のホスト装置は規定の電圧を供給することができるが、別のホスト装置では規定の電圧を供給できない、という事態が発生する。
【０００６】
強度の弱い電源を有するホスト装置をもサポートするためには、メモリカードの消費電流を一律に抑制することが考えられる。しかし、この手法では、メモリカードが有し得る性能が発揮できない。また、この手法では、高い電源供給能力を有し且つメモリカードに対して高速のアクセスを行い得るホスト装置の性能も抑制されてしまう。
【０００７】
また、この種の関連技術として、複数のプレーンを備えた半導体記憶装置において、書き込み速度の低下を防ぐための技術が開示されている（特許文献１参照）。
【特許文献１】特開２００７−１９９９０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、ホスト装置の電源供給能力に応じて最適な動作を行うことが可能なメモリシステムを提供する。
【課題を解決するための手段】
【０００９】
本発明の一視点に係るメモリシステムは、消費電流及びアクセス性能に応じた複数の動作モードを有するメモリシステムであって、動作モードの遷移履歴を格納する不揮発性メモリと、前記不揮発性メモリとの間で、同一動作モードにて一定量のデータをアクセスするごとに前記遷移履歴に当該動作モードを追加し、かつ前記遷移履歴を用いて現在の動作モードを決定するコントローラとを具備する。
【発明の効果】
【００１０】
本発明によれば、ホスト装置の電源供給能力に応じて最適な動作を行うことが可能なメモリシステムを提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照して説明する。なお、以下の説明において、同一の機能及び構成を有する要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１２】
本実施形態では、メモリシステムとしてメモリカードを一例に説明する。メモリカードは、例えば、ホスト装置に対して着脱可能なように構成される。しかし、本発明はメモリカードに限定されるものではなく、メモリシステム及びホスト装置を１つのＬＳＩ（Large-Scale Integrated Circuit）として構成してもよい。すなわち、ホスト装置が実装されたプリント基板上に、メモリシステムを構成するコントローラ及び不揮発性半導体メモリが実装されるようにしてもよい。
【００１３】
図１は、本発明の一実施形態に係るメモリシステム（メモリカード）１の構成を示すブロック図である。メモリカード１は、ホスト装置２に接続された時に電源供給を受けて動作し、ホスト装置２からの要求に応じたアクセス処理を行う。ホスト装置２は、バスインターフェース１４を介して接続されるメモリカード１に対しアクセスを行うためのハードウェア及びソフトウェアを備えている。また、ホスト装置２は、メモリカード１に電源を供給するための電源回路２Ａを備えている。
【００１４】
メモリカード１は、ホスト装置２との間でバスインターフェース１４を介してデータの授受を行う。メモリカード１は、不揮発性メモリの一種であるＮＡＮＤ型フラッシュメモリ１１、ＮＡＮＤ型フラッシュメモリ１１を制御するコントローラ１２、及び信号ピン群（第１ピン乃至第９ピン）１３を備えている。なお、不揮発性メモリとしては、ＮＡＮＤ型フラッシュメモリ１１に限定されず、様々な種類の不揮発性メモリを使用することが可能である。
【００１５】
信号ピン群１３は、コントローラ１２と電気的に接続されている。信号ピン群１３に含まれる第１ピン乃至第９ピンに対する信号の割り当ては、例えば図２に示すようになっている。図２は、信号ピン群１３に含まれる第１ピン乃至第９ピンと、それらに割り当てられた信号との関係を示す図である。
【００１６】
データ０乃至データ３は、第７ピン、第８ピン、第９ピン、及び第１ピンにそれぞれ割り当てられている。第１ピンは、また、カード検出信号に対しても割り当てられている。第２ピンはコマンドＣＭＤに割り当てられ、第３ピン及び第６ピンは接地電圧Ｖｓｓに、第４ピンは電源電圧Ｖｄｄに、第５ピンはクロック信号ＣＬＫに割り当てられている。電源電圧Ｖｄｄ及び接地電圧Ｖｓｓは、ホスト装置２の電源回路２Ａから供給される。
【００１７】
メモリカード１は、ホスト装置２に設けられたスロットに対して挿抜可能なように構成されている。ホスト装置２に設けられたホストコントローラ（図示せず）は、これら第１ピン乃至第９ピンを介してメモリカード１内のコントローラ１２と各種信号及びデータを通信する。
【００１８】
例えば、メモリカード１にデータが書き込まれる際には、ホストコントローラは、書き込みコマンドを、第２ピンを介してコントローラ１２にシリアルな信号として送る。このとき、コントローラ１２は、第５ピンに供給されるクロック信号ＣＬＫを用いて、第２ピンに与えられる書き込みコマンドを取り込む。その後、ホストコントローラは、第７ピン、第８ピン、第９ピン、及び第１ピンを介して書き込みデータをコントローラ１２に送る。このように、信号ピン群１３とそれに対するバスインターフェース１４とは、ホスト装置２内のホストコントローラとメモリカード１とが通信するのに使用される。
【００１９】
これに対し、ＮＡＮＤ型フラッシュメモリ１１とコントローラ１２との間の通信は、ＮＡＮＤ型フラッシュメモリ用のインターフェースによって行われる。従って、ここでは図示しないが、ＮＡＮＤ型フラッシュメモリ１１とコントローラ１２とは例えば８ビットの入出力（Ｉ／Ｏ）線により接続されている。
【００２０】
例えば、コントローラ１２がＮＡＮＤ型フラッシュメモリ１１にデータを書き込む際には、コントローラ１２は、これらＩ／Ｏ線を介してデータ入力コマンド８０Ｈ、カラムアドレス、ページアドレス、データ、及びプログラムコマンド１０ＨをＮＡＮＤ型フラッシュメモリ１１に順次入力する。ここで、コマンド８０Ｈの“Ｈ”は１６進数を示すものであり、実際には“１０００００００”という８ビットの信号が、８ビットのＩ／Ｏ線にパラレルに与えられる。つまり、このＮＡＮＤ型フラッシュメモリ用のインターフェースでは、複数ビットのコマンドがパラレルに与えられる。
【００２１】
また、ＮＡＮＤ型フラッシュメモリ用のインターフェースでは、ＮＡＮＤ型フラッシュメモリ１１に対するコマンドとデータとが同じＩ／Ｏ線を共用して通信されている。このように、ホスト装置２内のホストコントローラとメモリカード１とが通信するインターフェースと、ＮＡＮＤ型フラッシュメモリ１１とコントローラ１２とが通信するインターフェースとは異なる。
【００２２】
次に、図１に示すメモリカード１が備えるコントローラ１２の内部構成について説明する。図３は、コントローラ１２の構成を示すブロック図である。
【００２３】
コントローラ１２は、ＮＡＮＤ型フラッシュメモリ１１内部の物理状態（例えば、何処の物理ブロックアドレスに、何番目の論理セクタアドレスのデータが含まれているか、或いは、何処のブロックが消去状態であるか）を管理する。コントローラ１２は、ホストインターフェース回路（ホストＩ／Ｆ）２１、メモリインターフェース回路（メモリＩ／Ｆ）２２、ＭＰＵ（Micro processing unit）２３、ＲＯＭ（Read-only memory）２４、ＲＡＭ（Random access memory）２５、バッファ２６、及びＥＣＣ（Error Check and Correct）回路２７を備えている。
【００２４】
ホストインターフェース回路２１は、コントローラ１２とホスト装置２との間のインターフェース処理を行う。
【００２５】
ＭＰＵ２３は、メモリカード１全体の動作を制御する。ＭＰＵ２３は、例えばメモリカード１が電源供給を受けたときに、ＲＯＭ２４に格納されているファームウェア（制御プログラム）をＲＡＭ２５上に読み出して所定の処理を実行することにより、各種のテーブルをＲＡＭ２５上に作成する。また、ＭＰＵ２３は、ホスト装置２から書き込みコマンド、読み出しコマンド、消去コマンド等を受け取り、ＮＡＮＤ型フラッシュメモリ１１に対して所定の処理を実行したり、バッファ２６を通じたデータ転送処理を制御したりする。
【００２６】
ＲＯＭ２４は、ＭＰＵ２３により制御される制御プログラム等を格納する。ＲＡＭ２５は、ＭＰＵ２３の作業エリアとして使用され、ＲＯＭ２４からロードされた制御プログラムや各種のテーブル（表）を記憶する。メモリインターフェース回路２２は、コントローラ１２とＮＡＮＤ型フラッシュメモリ１１との間のインターフェース処理を行う。
【００２７】
バッファ２６は、ホスト装置２から送られてくるデータをＮＡＮＤ型フラッシュメモリ１１に書き込む際に、ホストインターフェースに基づく一定量のデータを一時的に記憶したり、ＮＡＮＤ型フラッシュメモリ１１から読み出されるデータをホスト装置２へ送り出す際に、一定量のデータを一時的に記憶したりする。
【００２８】
ＥＣＣ回路２７は、ホスト装置２から送られる書き込みデータに対しては、所定のビット数からなるデータ部分ごとにエラー訂正符号を生成する。各エラー訂正符号は、これに対応するデータ部分とともにＮＡＮＤ型フラッシュメモリ１１に格納される。また、ＥＣＣ回路２７は、ＮＡＮＤ型フラッシュメモリ１１から送られる読み出しデータに対しては、エラー訂正符号を用いて、データ部分ごとにエラーの検出及び訂正を行う。エラーの訂正を行った後、ＥＣＣ回路２７は、エラー訂正符号を取り除いた状態でデータをバッファ２６に送る。従って、ホスト装置２には、エラー訂正符号を含まない読み出しデータがメモリカード１から送られる。
【００２９】
メモリカード１は、複数のＮＡＮＤ型フラッシュメモリ１１（本実施形態では、一例として２個のＮＡＮＤ型フラッシュメモリ１１−１及び１１−２）を備えている。なお、ＮＡＮＤ型フラッシュメモリ１１の数は、３個以上であってもよいことは勿論である。以下、各ＮＡＮＤ型フラッシュメモリを区別する必要がない場合は、包括的にＮＡＮＤ型フラッシュメモリ１１と記載する。
【００３０】
各ＮＡＮＤ型フラッシュメモリ１１は、高速アクセスを可能とするために、複数のプレーン（本実施形態では、一例として２個のプレーンＰ１及びＰ２）により構成されている。図４は、ＮＡＮＤ型フラッシュメモリ１１−１の構成を示すブロック図である。ＮＡＮＤ型フラッシュメモリ１１−２も同様の構成である。
【００３１】
各プレーンＰは、メモリセルアレイとしてのメモリ領域３０と、メモリインターフェース回路２２との間でデータを授受するデータキャッシュ３２と、メモリ領域３０或いはデータキャッシュ３２からのデータを保持するページバッファ３１とにより構成されている。また、メモリ領域３０は、データ消去単位である複数のブロックから構成され、各ブロックは、データ書き込み単位（或いは、データ読み出し単位）である複数のページから構成される。
【００３２】
各プレーンＰは、データキャッシュ３２とページバッファ３１との２個のバッファを使用することにより、コントローラ１２がデータキャッシュ３２からデータを読み出している間に、ＮＡＮＤ型フラッシュメモリ１１が書き込み動作を行うことができるように構成されている。
【００３３】
各ブロックは、行方向に沿って順に配列された複数のＮＡＮＤストリングを備えている。各ＮＡＮＤストリングは、２個の選択トランジスタと、これらの間に直列に接続された複数個のメモリセルトランジスタから構成されている。
【００３４】
各メモリセルトランジスタは、半導体基板上に形成された積層ゲート構造を備えたＭＯＳＦＥＴ（metal oxide semiconductor field effect transistor）から構成される。積層ゲート構造は、半導体基板上にゲート絶縁膜を介在して形成された電荷蓄積層（浮遊ゲート電極）、及び電荷蓄積層上にゲート間絶縁膜を介在して形成された制御ゲート電極を含んでいる。各メモリセルトランジスタは、浮遊ゲート電極に蓄えられる電子の数に応じて閾値電圧が変化し、この閾値電圧の違いに応じてデータを記憶する。
【００３５】
各ブロックにおいて同一行に配列された複数のメモリセルトランジスタの制御ゲート電極は、同一のワード線に接続される。この同一のワード線に接続される複数のメモリセルトランジスタは１ページとして取り扱われ、このページごとにデータの書き込み及びデータの読み出しが行われる。また、複数のページから構成されるブロック単位でデータの消去が行われる。
【００３６】
図５は、ＮＡＮＤ型フラッシュメモリ１１のメモリ領域３０の構成を示す図である。前述したように、メモリ領域３０は、それぞれが複数のページを含む複数のブロックから構成されている。
【００３７】
各ページは、例えば２１１２バイト（Ｂ）（５１２Ｂ分のデータ領域×４＋１０Ｂ分のＥＣＣ領域×４＋２４Ｂ分の管理データ領域）を有しており、例えば１２８ページ分がデータ消去単位であるブロック（２５６ｋＢ＋８ｋＢ（ここで、ｋは１０２４））を構成している。従って、本実施形態では、ページバッファ３１の記憶容量は、２１１２Ｂ（２０４８Ｂ＋６４Ｂ）である。
【００３８】
ここで、ＮＡＮＤ型フラッシュメモリ１１は、データブロック及び集中管理ブロックを備えている。データブロックは、ＮＡＮＤ型フラッシュメモリ１１内に複数個存在し、ユーザデータ（ユーザが読み書きすることが可能な文書、静止画、動画などのデータ）を格納するために使用される。図６は、ＮＡＮＤ型フラッシュメモリ１１に含まれる１個のデータブロックの構成を示す概略図である。
【００３９】
各データブロックは、１２８個のデータページ０〜１２７から構成される。各データページは、５１２バイトデータを格納するデータ領域を４個分含むとともに、４個のデータ領域にそれぞれ対応する４個のエラー訂正符号（ＥＣＣ０〜ＥＣＣ３）を格納しかつそれぞれが１０バイトの４個のＥＣＣ領域を含んでいる。また、データページ中の最後のデータ領域（４番目のデータ領域）の後には、２４バイトの管理データ領域が設けられている。このため、データページ中の最後のＥＣＣ領域（４番目のＥＣＣ領域）は、４番目のデータ領域及び管理データ領域の両方に対応する構成となっている。管理データ領域には、論理ブロックアドレスや物理ブロックアドレス等を含む管理データが格納される。
【００４０】
図７は、ＮＡＮＤ型フラッシュメモリ１１に含まれる集中管理ブロックの構成を示す概略図である。集中管理ブロックは、ＮＡＮＤ型フラッシュメモリ１１内に１個のみ（すなわち、ＮＡＮＤ型フラッシュメモリ１１−１及び１１−２のいずれか一方に）設けられる。
【００４１】
集中管理ブロックは、１つのＣＩＳ（Card Information Structure）ページ、及び複数の管理ページ（管理ページ０，１，２，３，…）から構成される。この集中管理ブロックは、ＮＡＮＤ型フラッシュメモリ１１に関する種々な管理情報（基本的にはユーザが自由に読み書きすることができず、ＮＡＮＤ型フラッシュメモリ１１の起動時等にホスト装置２やコントローラ１２が使用する情報）を一括して記憶する特別なブロックである。
【００４２】
集中管理ブロック中のＣＩＳページは、例えばＮＡＮＤ型フラッシュメモリ１１が所定のメモリカードの物理フォーマット仕様に沿ってフォーマットされているか否かを見分けるために使用されるページである。
【００４３】
集中管理ブロック中の各管理ページは、各々のデータブロックに対して、エラーを有するデータブロック（バッドブロック）であるか否か、空きブロックであるか否か、書かれているデータの論理ブロックアドレス、といった管理情報を格納する。さらに、管理ページは、後述する動作モードの遷移履歴３３、及びデータの書き込みを開始する消去済みデータブロックの物理アドレスを格納する。
【００４４】
各管理ページは、５１２バイト管理データを格納するデータ領域を４個分含むとともに、４個のデータ領域にそれぞれ対応する４個のエラー訂正符号（ＥＣＣ０〜ＥＣＣ３）を格納しかつそれぞれが１０バイトの４個のＥＣＣ領域を含んでいる。また、１バイトのＩＤ領域は、当該管理ページに書かれているデータの種類及びバッドブロック属性を記憶する領域である。領域「１９Ｂ」及び「４Ｂ」は、空き領域（未使用領域）である。このため、管理ページ中の最後のＥＣＣ領域（４番目のＥＣＣ領域）は、４番目のデータ領域及びＩＤ領域の両方に対応する構成となっている。
【００４５】
ところで、コントローラ１２（ＭＰＵ２３）は、メモリカード１での高速なアクセス処理（すなわち、高速なデータ転送レート）を実現するために、ＮＡＮＤ型フラッシュメモリ１１へ様々なアクセス（データの書き込み、及びデータの読み出し）方法を実現できるように構成されている。
【００４６】
コントローラ１２のＮＡＮＤ型フラッシュメモリ１１へのアクセス方法には、様々なものが現在存在し、また将来作り出されることが予想される。従って、本明細書で全てに触れることは不可能であるので、以下に幾つかを例示する。しかしながら、本発明の範囲は、アクセス方法そのものに限定されず、将来提案されるであろうアクセス方法が用いられる場合も含んでいる。本実施形態では、一例として、以下の３つの動作モードＭ１〜Ｍ３を定義する。
【００４７】
動作モードＭ１は、２個のＮＡＮＤ型フラッシュメモリ（チップ）１１−１及び１１−２に同時にアクセスすることができる、いわゆる「２チップ同時アクセスあり」の動作モードである。すなわち、動作モードＭ１では、２個のＮＡＮＤ型フラッシュメモリ１１−１及び１１−２に、データの書き込み、或いはデータの読み出しを同時に行う。
【００４８】
動作モードＭ２は、２個のＮＡＮＤ型フラッシュメモリ１１−１及び１１−２の一方のみにアクセスし、かつ２個のプレーンＰ１及びＰ２に同時にアクセスすることができる、いわゆる「２チップ同時アクセスなし、２プレーン同時アクセスあり」の動作モードである。すなわち、動作モードＭ２では、１個のＮＡＮＤ型フラッシュメモリ１１に含まれる２個のプレーンＰ１及びＰ２に、データの書き込み、或いはデータの読み出しを同時に行う。
【００４９】
動作モードＭ３は、２個のＮＡＮＤ型フラッシュメモリ１１−１及び１１−２の一方のみにアクセスし、かつ２個のプレーンＰ１及びＰ２の一方のみにアクセスする、「２チップ同時アクセスなし、２プレーン同時アクセスなし」である。すなわち、動作モードＭ３では、１個のＮＡＮＤ型フラッシュメモリ１１に含まれる１個のプレーンにのみ、データの書き込み、或いはデータの読み出しを行う。
【００５０】
動作モードＭ１は、アクセス性能が最も高く（データ転送レートが最も高く）、動作モードＭ２、Ｍ３の順に、アクセス性能が下がっていく。また、アクセス性能に比例して、動作モードＭ１は、消費電流が最も大きく、動作モードＭ２、Ｍ３の順に、消費電流が下がっていく。
【００５１】
このように構成されたメモリカード１の動作について説明する。  
初期状態（工場出荷状態）では、メモリカード１は、最も消費電流が少ない（最もアクセス性能が低い）動作モードＭ３に設定されているものとする。すなわち、初期状態では、ＮＡＮＤ型フラッシュメモリ１１内の集中管理ブロックに含まれる遷移履歴３３に、動作モードとしてＭ３が書き込まれている。
【００５２】
また、コントローラ１２は、ＮＡＮＤ型フラッシュメモリ１１の消去済みデータブロックにデータの書き込みを開始する際に、当該データブロックの物理アドレスを集中管理ブロックに書き込んでおく。これにより、メモリカード１の起動時に、コントローラ１２は、集中管理ブロックの管理情報を確認することで、最後に書き込みを行ったデータブロックを検索することが可能となる。
【００５３】
図８及び図９は、メモリカード１の動作を示すフローチャートである。まず、ホスト装置２からメモリカード１への電源供給が開始されることで（ステップＳ１０１）、メモリカード１が起動する。この電源供給を受けて、コントローラ１２は、集中管理ブロックに含まれる、動作モードの遷移履歴３３をＮＡＮＤ型フラッシュメモリ１１から読み出す（ステップＳ１０２）。
【００５４】
続いて、コントローラ１２は、遷移履歴３３に含まれる、最後に追加された動作モード（最終動作モード）を、現在の動作モードに設定する（ステップＳ１０３）。続いて、コントローラ１２は、最後に書き込みを行ったデータブロック（最終データブロック）の物理アドレスを集中管理ブロックから取得し、この物理アドレスを用いて、最終データブロックの全データをＮＡＮＤ型フラッシュメモリ１１から読み出す（ステップＳ１０４）。
【００５５】
続いて、コントローラ１２は、最終データブロックに含まれる複数のデータページのうち、最後に書き込みを行ったデータページ（最終データページ）を検出する。続いて、コントローラ１２の制御のもと、ＥＣＣ回路２７は、最終データページ内のエラーを検出する（ステップＳ１０５）。そして、ＥＣＣ回路２７は、最終データページ内のエラーの数が所定数以上であるか否かを判定する（ステップＳ１０６）。
【００５６】
ステップＳ１０６においてエラーの数が所定数以上であると判定された場合、コントローラ１２は、前回の起動時に異常電源遮断が発生した（例えば、データ書き込み中に電源遮断が発生した）と判断する（ステップＳ１０７）。異常電源遮断が発生する原因としては、メモリカード１の消費電流が大きくなったためにホスト装置２の電源回路２Ａがこの消費電流を供給することができなくなった場合や、メモリカード１の消費電流が大きくなったために規格により定められた電圧を大きく下回った場合等が該当する。
【００５７】
なお、ＥＣＣ回路２７は、５１２バイトデータを単位として１個のエラー訂正符号を生成する。すなわち、ＥＣＣ回路２７の計算単位が５１２バイト（一部分は５３６バイト）であり、１個のデータページ内には４個の計算単位が存在する。従って、上記エラーの数の上限は４個となり、この４個のうち所定数以上がエラーである場合（すなわち、エラー訂正不可能である場合）に、コントローラ１２は、前回の起動時に異常電源遮断が発生した判断する。この所定数は、単なるビット不良のケースと、異常電源遮断であるケースとを切り分けるために用いられるものであり、ＥＣＣの訂正能力等によって変わってくるため任意に設定可能である。本実施形態では、例えば４個ともエラー訂正不可能である場合（所定数が４である場合）に、コントローラ１２は異常電源遮断が発生したと判断する。
【００５８】
一方、ステップＳ１０６においてエラーが所定数未満である判定された場合、コントローラ１２は、前回の電源遮断が正常電源遮断であると判断する。そして、コントローラ１２は、ステップ１０９に移行して、通常のアクセス動作（データの書き込み動作、読み出し動作等）を実行する。なお、正常電源遮断とは、例えばユーザの指示によりホスト装置２が正常なステップで電源遮断を行った場合であり、この場合はメモリカード１に対して正常なプログラム終了処理が実行される。
【００５９】
続いて、コントローラ１２は、遷移履歴３３に含まれる最終動作モードが最下位の動作モード（本実施形態では、動作モードＭ３）であるか否かを判定する（ステップＳ１０８）。ステップ１０８において最下位の動作モードであると判定された場合、コントローラ１２は、通常のアクセス動作を実行する（ステップＳ１０９）。そして、コントローラ１２は、一定量のアクセスが行われるまで、通常のアクセス動作を実行する（ステップＳ１１０）。
【００６０】
なお、一定量のアクセスとは、コントローラ１２がＮＡＮＤ型フラッシュメモリ１１に対して、一定量のデータの書き込み動作、或いは一定量のデータの読み出し動作を行うことを示している。また、一定量のデータの書き込み動作とは、複数のコマンドに対応する複数回（本実施形態では、例えば２回）のデータの書き込み動作を示している。同様に、一定量のデータの読み出し動作とは、複数のコマンドに対応する複数回のデータの読み出し動作を示している。以下の一定量のアクセスも、上記同様の動作を示すものとする。
【００６１】
ステップＳ１１０において一定量のアクセスが行われたと判定された場合、コントローラ１２は、現在の動作モードを遷移履歴３３に追加する（ステップＳ１１１）。例えば、現在、動作モードＭ３でアクセス動作を行っているのであれば、「Ｍ３→Ｍ３」のように動作モードＭ３を遷移履歴３３に追加する。
【００６２】
続いて、コントローラ１２は、同一動作モードで一定量のアクセスが行われるまで、通常のアクセス動作を実行する（ステップＳ１１２）。ステップＳ１１２において一定量のアクセスが行われたと判定された場合、コントローラ１２は、後述するステップＳ１１８によって設定される動作モードの上限に達しているか否かを判定する（ステップＳ１１３）。ステップＳ１１３において動作モードの上限に達していると判定された場合、コントローラ１２は、ステップＳ１０９に移行して、通常のアクセス動作を実行する。
【００６３】
一方、ステップＳ１１３において動作モードの上限に達していないと判定された場合、コントローラ１２は、現在の動作モードを１つ上げる（ステップＳ１１４）。そして、コントローラ１２は、現在の動作モードを遷移履歴３３に追加する（ステップＳ１１５）。その後、コントローラ１２は、ステップＳ１０９に移行して、通常のアクセス動作を実行する。例えば、同一動作モードで２回のアクセス動作が行われた場合に動作モードを１つ上げるのであれば、「Ｍ３→Ｍ３→Ｍ２」のように動作モードＭ２を遷移履歴３３に追加し、以後、動作モードＭ２でアクセス動作を行う。
【００６４】
ステップＳ１０８において最下位の動作モードでないと判定された場合、コントローラ１２は、現在の動作モードを最終動作モードより１つ下げる（ステップＳ１１６）。すなわち、遷移履歴３３が「Ｍ１→Ｍ１」となっている状態で異常電源遮断を検出した場合は、以後、動作モードＭ２でアクセス動作を行うこととする。
【００６５】
続いて、コントローラ１２は、最終動作モードにおいて一定量のアクセスが行われたか否かを判定する（ステップＳ１１７）。ステップＳ１１７において一定量のアクセスが行われた場合、コントローラ１２は、ステップＳ１０９に移行して、通常のアクセス動作を実行し、さらに動作モードを上げるためのステップＳ１１０〜Ｓ１１５を実行する。
【００６６】
一方、ステップＳ１１７において最終動作モードにおいて一定量のアクセスが行われていない場合、コントローラ１２は、現在の動作モードを動作モードの上限に設定する（ステップＳ１１８）。すなわち、現在接続されているホスト装置２に対しては、上限に設定された動作モードに固定される。これにより、以後、このホスト装置２に対しては、異常電源遮断が発生するのを防ぐことができる。その後、コントローラ１２は、ステップＳ１０９に移行して、通常のアクセス動作を実行し、さらに、電源が遮断（異常電源遮断及び正常電源遮断を含む）されるまで、この通常のアクセス動作を繰り返す。
【００６７】
このように、遷移履歴３３を更新していき、動作モードを１つ上げた直後に異常電源遮断が検出された場合は、当該動作モードの１つ下の動作モードを上限とする。例えば、電源供給が開始されて異常電源遮断が検出され、この時の遷移履歴３３が「Ｍ３→Ｍ３→Ｍ２」となっていた場合、動作モードＭ３からＭ２に上げた直後に異常電源遮断が発生したことが確認できる。このため、動作モードの上限をＭ３に設定し、以後、当該ホスト装置２に対しては動作モードをＭ３より上げないようにする。
【００６８】
以上詳述したように本実施形態では、消費電流及びアクセス性能に応じた複数の動作モードを有するメモリカード１において、動作モードの遷移履歴３３をＮＡＮＤ型フラッシュメモリ１１（具体的には、集中管理ブロック）に格納する。そして、前回の起動時に異常電源遮断が発生した場合に、コントローラ１２は、動作モードの遷移履歴３３を用いて動作モードの切り替えを行うようにしている。
【００６９】
従って本実施形態によれば、ホスト装置２ごとに最適な動作モード（すなわち、異常電源遮断の発生を防ぐことができる動作モード）を選択することが可能となる。この結果、異常電源遮断を防ぐことができつつ、アクセスの高速化が可能となる。
【００７０】
また、異常電源遮断の発生を検出するために、ＥＣＣ回路２７を用いることで、最後に書き込みを行ったページのエラーの数の大小を判断材料に用いている。これにより、単なるビット不良のケースと、異常電源遮断であるケースとを識別することが可能となる。
【００７１】
また、偶発的な理由により意図しない電源遮断が発生した場合に、動作モードを上げるための処理（ステップＳ１１７）を行うようにしている。これにより、偶発的な理由により意図しない電源遮断が発生した場合に、低速な動作モードで固定されるのを防ぐことができる。
【００７２】
なお、本実施形態では、メモリカード１が複数のＮＡＮＤ型フラッシュメモリを備える場合を例に説明したが、メモリカード１が１個のみＮＡＮＤ型フラッシュメモリを備える場合にも本実施形態を適用可能であることは勿論である。すなわち、１個のＮＡＮＤ型フラッシュメモリに対して消費電流及びアクセス性能が異なる複数の動作モードを有するようなメモリカードにおいても、本実施形態を適用することで、ホスト装置２ごとに最適な動作モードを選択することが可能となる。
【００７３】
本発明は、上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲内で、構成要素を変形して具体化できる。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を構成することができる。例えば、実施形態に開示される全構成要素から幾つかの構成要素を削除してもよいし、異なる実施形態の構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７４】
【図１】本発明の一実施形態に係るメモリカード１の構成を示すブロック図。
【図２】信号ピン群１３に割り当てられた信号を示す図。
【図３】コントローラ１２の構成を示すブロック図。
【図４】ＮＡＮＤ型フラッシュメモリ１１−１の構成を示すブロック図。
【図５】ＮＡＮＤ型フラッシュメモリ１１のメモリ領域３０の構成を示す図。
【図６】ＮＡＮＤ型フラッシュメモリ１１に含まれる１個のデータブロックの構成を示す概略図。
【図７】ＮＡＮＤ型フラッシュメモリ１１に含まれる集中管理ブロックの構成を示す概略図。
【図８】メモリカード１の動作を示すフローチャート。
【図９】図８に続くメモリカード１の動作を示すフローチャート。
【符号の説明】
【００７５】
１…メモリカード、２…ホスト装置、２Ａ…電源回路、１１…ＮＡＮＤ型フラッシュメモリ、１２…コントローラ、１３…信号ピン群、１４…バスインターフェース、２１…ホストインターフェース回路、２２…メモリインターフェース回路、２３…ＭＰＵ、２４…ＲＯＭ、２５…ＲＡＭ、２６…バッファ、２７…ＥＣＣ回路、３０…メモリ領域、３１…ページバッファ、３２…データキャッシュ、３３…遷移履歴。
【図１】
2009122909.tif 000003
【図２】
2009122909.tif 000004
【図３】
2009122909.tif 000005
【図４】
2009122909.tif 000006
【図５】
2009122909.tif 000007
【図６】
2009122909.tif 000008
【図７】
2009122909.tif 000009
【図８】
2009122909.tif 000010
【図９】
2009122909.tif 000011