(57)【要約】【課題】  エラー訂正回路が搭載されたメモリカードにおいて、ホスト機器によりエラー訂正処理を行うことが可能なメモリカード、カードコントローラおよびメモリカードの制御方法を提供することを目的とする。【解決手段】  転送データをホスト機器２から受信するインタフェース部１４と、転送データに基づいて第１のコードデータを生成するコードデータ生成部２１と、転送データと第１のコードデータとを格納する不揮発性半導体メモリと１１、不揮発性半導体メモリ１１との間で、転送データと第１のコードデータとの送受信を行うメモリ制御部２２と、不揮発性半導体メモリ１１から読み出された転送データと当該転送データに対応する第１のコードデータとに基づいて、転送データに含まれるエラービットを訂正することが可能なエラー訂正部２３とを具備し、インタフェース部１４は、エラービットを含む転送データをホスト機器２に送信することを特徴としている。【選択図】  図７
2006155408.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に装着され、前記ホスト機器からアクセスされるメモリカードにおいて、
転送データを前記ホスト機器から受信するインタフェース部と、
前記インタフェース部が受信した前記転送データに基づいて、第１のコードデータを生成するコードデータ生成部と、
前記転送データと前記第１のコードデータとを格納する不揮発性半導体メモリと、
前記不揮発性半導体メモリとの間で、前記転送データと前記第１のコードデータとの送受信を行うメモリ制御部と、
前記不揮発性半導体メモリから読み出された前記転送データと当該転送データに対応する前記第１のコードデータとに基づいて、前記転送データに含まれるエラービットを訂正することが可能なエラー訂正部とを具備し、
前記インタフェース部は、前記エラービットを含む前記転送データを前記ホスト機器に送信することを特徴とするメモリカード。
【請求項２】
前記転送データは、当該転送データに含まれるエラービットを前記ホスト機器が訂正可能なデータであることを特徴とする請求項１に記載のメモリカード。
【請求項３】
前記インタフェース部は、第１の動作モードにおいて、前記エラービットを含む前記転送データを前記ホスト機器に送信し、前記第１の動作モードと異なる第２の動作モードにおいて、前記エラー訂正部がエラービットを訂正できる場合に、前記エラービットを訂正した前記転送データを前記ホスト機器に送信し、前記エラー訂正部がエラービットを訂正できない場合に、前記エラービットを含む前記転送データを前記ホスト機器に送信しないことを特徴とする請求項１または請求項２に記載のメモリカード。
【請求項４】
前記ホスト機器から受信したコマンドに基づいて、前記第１の動作モードと前記第２の動作モードとのいずれかに動作モードを設定するモード制御部を更に具備することを特徴とする請求項３に記載のメモリカード。
【請求項５】
ホスト機器に装着されて使用するメモリカードに搭載されるカードコントローラにおいて、
転送データを前記ホスト機器から受信するインタフェース部と、
前記インタフェース部が受信した前記転送データに基づいて、第１のコードデータを生成するコードデータ生成部と、
不揮発性半導体メモリとの間で、前記転送データと前記第１のコードデータとの送受信を行うメモリ制御部と、
前記不揮発性半導体メモリから読み出された前記転送データと当該転送データに対応する前記第１のコードデータとに基づいて、前記転送データに含まれるエラービットを訂正することが可能なエラー訂正部とを具備し、
前記インタフェース部は、前記エラービットを含む前記転送データを前記ホスト機器に送信することを特徴とすることを特徴とするカードコントローラ。
【請求項６】
ホスト機器に装着され、前記ホスト機器から受信した転送データに基づいて第１のコードデータを生成し、前記転送データを前記ホスト機器に送信する際に、前記転送データと前記第１のコードデータとに基づいて前記転送データのエラー訂正処理を行うメモリカードの制御方法において、
前記ホスト機器がデータに基づいて第２のコードデータを生成する第１のステップと、
前記データと当該データに対応する前記第２のコードデータとを含む転送データを前記メモリカードに送信する第２のステップと、
前記データと当該データに対応する前記第２のコードデータとを含む転送データを前記メモリカードから受信する第３のステップと、
前記転送データに含まれる前記第２のコードデータに基づいて、前記転送データに含まれるエラービットを訂正する第４のステップとを具備することを特徴とするメモリカードの制御方法。
【請求項７】
前記エラービットを含む前記転送データを前記ホスト機器に送信する第１の動作モードと、前記第１のコードデータに基づいて前記エラービットを訂正できない場合に、前記エラービットを含む前記転送データを前記ホスト機器に送信しない第２の動作モードとのいずれかに、前記メモリカードの動作モードを設定する第５のステップを更に具備することを特徴とする請求項６に記載のメモリカードの制御方法。
【請求項８】
前記第２のコードデータに基づくエラー訂正能力が、前記第１のコードデータに基づくエラー訂正能力よりも高い場合に、前記第５のステップを実行することを特徴とする請求項７に記載のメモリカードの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリカードに関し、特に、不揮発性半導体メモリが搭載されたメモリカードに関するものである。また、本発明は、上記メモリカードに搭載れるカードコントローラおよびメモリカードの制御方法に関するものである。
【背景技術】
【０００２】
例えば、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカードなどのメモリカードは、パーソナルコンピュータなどのホスト機器の記憶媒体として使用されている。これらのメモリカードには、エラー訂正回路（ＥＣＣ回路）が搭載されているものがある（例えば、特許文献１参照）。
【０００３】
エラー訂正回路は、データ書き込み時に、書き込み対象のデータに基づいてエラー訂正コードであるコードデータを生成する。また、エラー訂正回路は、データ読み出し時に、読み出し対象のデータとともに当該データに対応するコードデータを読み出す。そして、エラー訂正回路は、この読み出されたコードデータに基づいて読み出し対象のデータに対してエラー訂正処理を行う。このように、従来のメモリカードは、エラー訂正回路を搭載することにより、記憶データの信頼性を向上させている。
【特許文献１】特開２０００−１７３２８９号公報（第４頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ホスト機器に搭載されたエラー訂正回路が、メモリカードに搭載されたエラー訂正回路よりも高度なエラー訂正能力を有する場合がある。このような場合、ホスト機器内のエラー訂正回路でエラー訂正処理を行う方が、メモリカード内のエラー訂正回路でエラー訂正処理を行う場合よりも、より多くのエラービットを訂正することができる。
【０００５】
しかしながら、従来のメモリカードは、データ読み出し時に、メモリカード内のエラー訂正回路で訂正不可能なデータ誤りを検出すると、そのデータを出力しなかった。このため、ホスト機器内のエラー訂正回路により訂正可能な場合であっても、メモリカード内のエラー訂正回路で訂正不可能な場合は、エラーを訂正することができなかった。
【０００６】
本発明は、以上のことを鑑みてなされたものであり、エラー訂正回路が搭載されたメモリカードにおいて、ホスト機器によりエラー訂正処理を行うことが可能なメモリカード、カードコントローラおよびメモリカードの制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明に係るメモリカードは、ホスト機器に装着され、前記ホスト機器からアクセスされるメモリカードにおいて、転送データを前記ホスト機器から受信するインタフェース部と、前記インタフェース部が受信した前記転送データに基づいて、第１のコードデータを生成するコードデータ生成部と、前記転送データと前記第１のコードデータとを格納する不揮発性半導体メモリと、前記不揮発性半導体メモリとの間で、前記転送データと前記第１のコードデータとの送受信を行うメモリ制御部と、前記不揮発性半導体メモリから読み出された前記転送データと当該転送データに対応する前記第１のコードデータとに基づいて、前記転送データに含まれるエラービットを訂正することが可能なエラー訂正部とを具備し、前記インタフェース部は、前記エラービットを含む前記転送データを前記ホスト機器に送信することを特徴としている。
【０００８】
また、本発明に係るカードコントローラは、ホスト機器に装着されて使用するメモリカードに搭載されるカードコントローラにおいて、転送データを前記ホスト機器から受信するインタフェース部と、前記インタフェース部が受信した前記転送データに基づいて、第１のコードデータを生成するコードデータ生成部と、不揮発性半導体メモリとの間で、前記転送データと前記第１のコードデータとの送受信を行うメモリ制御部と、前記不揮発性半導体メモリから読み出された前記転送データと当該転送データに対応する前記第１のコードデータとに基づいて、前記転送データに含まれるエラービットを訂正することが可能なエラー訂正部とを具備し、前記インタフェース部は、前記エラービットを含む前記転送データを前記ホスト機器に送信することを特徴とすることを特徴としている。
【０００９】
更に、本発明に係るメモリカードの制御方法は、ホスト機器に装着され、前記ホスト機器から受信した転送データに基づいて第１のコードデータを生成し、前記転送データを前記ホスト機器に送信する際に、前記転送データと前記第１のコードデータとに基づいて前記転送データのエラー訂正処理を行うメモリカードの制御方法において、前記ホスト機器がデータに基づいて第２のコードデータを生成する第１のステップと、前記データと当該データに対応する前記第２のコードデータとを含む転送データを前記メモリカードに送信する第２のステップと、前記データと当該データに対応する前記第２のコードデータとを含む転送データを前記メモリカードから受信する第３のステップと、前記転送データに含まれる前記第２のコードデータに基づいて、前記転送データに含まれるエラービットを訂正する第４のステップとを具備することを特徴としている。
【発明の効果】
【００１０】
本発明によれば、エラー訂正回路が搭載されたメモリカードにおいて、ホスト機器によりエラー訂正処理を行うことが可能なメモリカード、カードコントローラおよびメモリカードの制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明に係るメモリカード、カードコントローラおよびメモリカードの制御方法についての実施例を図１乃至１５を参照して説明する。なお、ここでは、メモリカードがＳＤメモリカードである場合を例に説明する。また、この実施例における図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００１２】
図１は、ＳＤメモリカード１の基本構成を示すものである。ＳＤメモリカード１は、パーソナルコンピュータなどのホスト機器のカードスロットに装着されることにより電源の供給を受けて動作し、ホスト機器からのアクセスに応じた処理を行う。すなわち、ＳＤメモリカード１は、回路基板上に実装された、ＮＡＮＤ型フラッシュメモリ１１およびコントローラ１２を有している。
【００１３】
ＮＡＮＤ型フラッシュメモリ１１は、例えば、通常の消去がブロック（複数ページ）単位で行われる不揮発性の半導体メモリである。また、このＮＡＮＤ型フラッシュメモリ１１は、例えば、ページと称する単位で、データの書き込みおよび読み出しが行われるようになっている。このＮＡＮＤ型フラッシュメモリ１１は、例えば０．０９μｍプロセス技術を用いて製作される。即ち、ＮＡＮＤ型フラッシュメモリ１１のデザインルールは、０．１μｍ未満となっている。なお、ＮＡＮＤ型フラッシュメモリ１１としては、一つのメモリセルに１ビットの情報を記憶する２値メモリであってもよいし、一つのメモリセルに２ビット以上の情報を記憶する多値メモリであってもよい。また、ＳＤメモリカード１を実用上有効な製品とするためには、ＮＡＮＤ型フラッシュメモリ１１の記憶容量は１Ｇバイト以上であることが望ましい。
【００１４】
コントローラ１２は、ＮＡＮＤ型フラッシュメモリ１１内の物理状態を管理するものとして構築されている。例えば、論理ブロックアドレスと物理ブロックアドレスとの対応を示す論物変換テーブルや各物理ブロックが既にある論理ブロックに割り当てられているかを示すテーブルを保持する。
【００１５】
信号ピン１３は、メモリカードがカードスロットに挿入されたときにホスト機器のコネクタピンと電気的に接続される。この信号ピン１３に対する信号の割り当てを図２に示す。データ信号（ＤＡＴ０〜ＤＡＴ３）は、ピンＰ１，Ｐ７，Ｐ８，Ｐ９に割り当てられている。また、ピンＰ１はカード検出信号に対しても割り当てられている。ピンＰ２はコマンド（ＣＭＤ）に、ピン５はクロックに割り当てられている。ピンＰ３，Ｐ６には接地電位（Ｖｓｓ）が供給され、ピンＰ４には電源電位（Ｖｄｄ）が供給される。
【００１６】
このような構成において、ＳＤメモリカード１は、ホスト機器のカードスロットに装着されることにより、信号ピン１３を介して、ホスト機器との間の通信を行う。例えば、ＳＤメモリカード１のＮＡＮＤ型フラッシュメモリ１１にデータを書き込む場合、コントローラ１２は、ホスト機器からピンＰ５に与えられるクロック信号に同期させて、ピンＰ２に与えられる書き込みコマンドをシリアルな信号として取り込む。
【００１７】
図３は、本実施例のＳＤメモリカードのハード構成を示すブロック図である。ホスト機器２は、バスインタフェース３を介して接続されるＳＤメモリカード１に対しアクセスを行うためのハードウェアおよびソフトウェアを備えている。
【００１８】
ＳＤメモリカード１は、前述したように、ＮＡＮＤ型フラッシュメモリ１１およびカードコントローラ１２を含む。ＮＡＮＤ型フラッシュメモリ１１は、消去時の消去ブロックサイズ（消去単位のブロックサイズ）が所定サイズ（例えば、２５６kByte（ここで、kは１０２４））に定められている。また、このＮＡＮＤ型フラッシュメモリ１１は、ページと称する単位（例えば、２kByte）でデータの書き込みおよび読み出しが行われるようになっている。カードコントローラ１２は、ホストインタフェース部１４、ＭＰＵ（Micro processing unit）１５、フラッシュコントローラ１６（メモリ制御部）、ＲＯＭ（Read-only memory）１７、ＲＡＭ（Random access memory）１８、およびバッファ１９を有している。
【００１９】
ホストインタフェース部１４は、カードコントローラ１２とホスト機器２との間のインタフェース処理を行うものであり、レジスタ部２０を含む。図４に、レジスタ部２０の詳細な構成を示す。レジスタ部２０は、カードステータスレジスタ、およびＣＩＤ、ＲＣＡ、ＤＳＲ、ＣＳＤ、ＳＣＲ、ＯＣＲの各種レジスタを有する。
【００２０】
これらレジスタは、以下のように定義されている。カードステータスレジスタは、通常動作において使用され、例えばエラー情報が記憶される。ＣＩＤ、ＲＣＡ、ＤＳＲ、ＣＳＤ、ＳＣＲ、およびＯＣＲは、主にＳＤメモリカードの初期化時に使用される。ＣＩＤ（Card identification number）には、ＳＤメモリカードの個体番号が記憶される。ＲＣＡ（Relative card address）には、相対カードアドレス（初期化時にホスト機器が動的に決める）が記憶される。ＤＳＲ（Driver stage register）には、ＳＤメモリカードのバス駆動力等が記憶される。ＣＳＤ（Card specific data）には、ＳＤメモリカードの特性パラメータ値が記憶される。ＳＣＲ（SD configuration data register）には、ＳＤメモリカードのデータ配置が記憶される。さらに、ＯＣＲ（Operation condition resister）には、動作範囲電圧に制限のあるＳＤメモリカードの場合の動作電圧が記憶される。
【００２１】
ＭＰＵ１５は、ＳＤメモリカード１全体の動作を制御するものである。ＭＰＵ１５は、例えばＳＤメモリカード１が電源供給を受けたときに、ＲＯＭ１７に格納されているファームウェア（制御プログラム）に基づいて所定の処理を実行することにより、各種のテーブルをＲＡＭ１８上に作成する。ＭＰＵ１５は、またホスト機器２から書き込みコマンド、読み出しコマンド、消去コマンドを受け取り、ＮＡＮＤ型フラッシュメモリ１１に対して所定の処理を実行したり、バッファ１９を通じたデータ転送処理を制御したりする。
【００２２】
ＲＯＭ１７は、ＭＰＵ１５により制御される制御プログラムなどを格納するメモリである。ＲＡＭ１８は、ＭＰＵ１５の作業エリアとして使用され、制御プログラムや各種のテーブルを記憶するメモリである。さらに、フラッシュコントローラ１６は、カードコントローラ１２とＮＡＮＤ型フラッシュメモリ１１との間のインタフェース処理を行うものである。
【００２３】
バッファ１９は、ホスト機器２から送られてくるデータをＮＡＮＤ型フラッシュメモリ１１へ書き込む際に、一定量のデータ（例えば、１ページ分）を一時的に記憶したり、ＮＡＮＤ型フラッシュメモリ１１から読み出されるデータをホスト機器２へ送り出す際に、一定量のデータを一時的に記憶したりするものである。
【００２４】
図５は、ＳＤメモリカード内のＮＡＮＤ型フラッシュメモリ１１におけるデータ配置を示している。ＮＡＮＤ型フラッシュメモリ１１の各ページは、２１１２Byte（（５１２Byte分のデータ記憶部＋１６Byte分の冗長部）×４）を有しており、１２８ページ分が１つの消去単位（２５６kByte＋８kByte）となる。なお、以下の説明においては、便宜上、このＮＡＮＤ型フラッシュメモリ１１の消去単位を２５６kByteと呼ぶ。
【００２５】
また、ＮＡＮＤ型フラッシュメモリ１１は、フラッシュメモリへのデータ入出力を行うためのページバッファ１１Ａを備えている。このページバッファ１１Ａの記憶容量は、２１１２Byte（２０４８Byte＋６４Byte）である。データ書き込みなどの際には、ページバッファ１１Ａは、フラッシュメモリに対するデータ入出力処理を自身の記憶容量に相当する１ページ分の単位で実行する。
【００２６】
ＮＡＮＤ型フラッシュメモリ１１の記憶容量が例えば１Ｇビットである場合、２５６kByteブロック（消去単位）の数は、５１２個となる。
【００２７】
また、図５においては消去単位が２５６kByteブロックである場合を例示しているが、消去単位が例えば１６kByteブロックとなるように構築することも実用上有効である。この場合、各ページは５２８Byte（５１２Byte分のデータ記憶部＋１６Byte分の冗長部）を有しており、３２ページ分が１つの消去単位（１６kByte＋０．５kByte（ここで、kは１０２４））となる。
【００２８】
ＮＡＮＤ型フラッシュメモリ１１のデータが書き込まれる領域（データ記憶領域）は、図３に示すように、保存されるデータに応じて複数の領域に区分けされている。ＮＡＮＤ型フラッシュメモリ１１は、データ記憶領域として、ユーザデータを格納するユーザデータ領域３４と、主にＳＤメモリカードに関する管理情報を格納するための管理データ領域３１と、機密データを格納する機密データ領域３２と、重要なデータを格納するための保護データ領域３３とを備えている。
【００２９】
ユーザデータ領域３４は、ＳＤメモリカード１を使用するユーザが自由にアクセスおよび使用することが可能な領域である。保護データ領域３３は、ＳＤメモリカード１に接続されたホスト機器２との相互認証によりホスト機器２の正当性が証明された場合にのみアクセスが可能となる領域である。
【００３０】
管理データ領域３１は、ＳＤメモリカード１のセキュリティ情報やメディアＩＤなどのカード情報が格納されている領域である。機密データ領域３２は、暗号化に用いる鍵情報や認証時に使用する機密データが保存されており、ホスト機器２からはアクセス不可能な領域である。
【００３１】
図６に、ＳＤ４ｂｉｔモード、ＳＤ１ｂｉｔモード、およびＳＰＩモードにおける信号ピンに対する信号割り当てを示す。ＳＤメモリカードの動作モードは、ＳＤモードとＳＰＩモードに大別される。ＳＤモードにおいては、ＳＤメモリカードはホスト機器からのバス幅変更コマンドによって、ＳＤ４ｂｉｔモードまたはＳＤ１ｂｉｔモードに設定される。
【００３２】
ここで、４つのデータ信号用のピンＰ１（ＤＡＴ３），Ｐ７（ＤＡＴ０），Ｐ８（ＤＡＴ１），Ｐ９（ＤＡＴ２）に着目すると、４ビット幅単位でデータ転送を行うＳＤ４ｂｉｔモードでは、４つのデータ信号用のピンＰ１，Ｐ７，Ｐ８，Ｐ９のすべてがデータ転送に用いられる。一方、１ビット幅単位でデータ転送を行うＳＤ１ｂｉｔモードでは、データ信号用のピンＰ７のみがデータ転送に使用される。データ信号用のピンＰ８，Ｐ９についてはまったく使用されない。
【００３３】
ＳＰＩモードでは、データ信号用のピンＰ７が、ＳＤメモリカード１からホスト機器へのデータ信号線（ＤＡＴＡ  ＯＵＴ）として用いられる。コマンド（ＣＭＤ）用のピンＰ２は、ホスト機器からＳＤメモリカード１へのデータ信号線（ＤＡＴＡ  ＩＮ）として用いられる。データ信号用のピンＰ８，Ｐ９については、まったく使用されない。また、ＳＰＩモードでは、データ３ピン（ＤＡＴ３）は、ホスト機器からＳＤメモリカードへのチップセレクト信号ＣＳの送信に用いられる。
【００３４】
次に、本実施例のＳＤメモリカードの動作について説明する。図７は、本実施例のＳＤメモリカードの構成を示す機能ブロック図である。
【００３５】
ＳＤメモリカード１は、バスインタフェース３を介してホスト機器２からアクセスされ、書き込みおよび読み出しなどの動作を行う。ＳＤメモリカード１は、ホストインタフェース部１４、コードデータ生成部２１、リード／ライト制御部２２、エラー訂正部２３、およびモード制御部２４を有している。
【００３６】
ホスト機器２がＮＡＮＤ型フラッシュメモリ１１にアクセスする場合、ホスト機器２は、バスインタフェース３を介してアクセスコマンドおよび転送データをホストインタフェース部１４へ送信する。ホストインタフェース部１４は、ホスト機器２からアクセスコマンドおよび転送データを受信する。また、ホストインタフェース部１４は、アクセスコマンドをデコードし、リード／ライト制御部２２内のＭＰＵ１５に、ＮＡＮＤ型フラッシュメモリ１１へのアクセス処理を行うように指示を出す。
【００３７】
また、ＭＰＵ１５は、コードデータ生成部２１を有する。コードデータ生成部２１は、ホストインタフェース部１４がライトコマンドを受信した際に、当該ライトコマンドとともにホストインタフェース部１４が受信した転送データに基づいて、エラー訂正コードである第１のコードデータを生成する。ＭＰＵ１５は、リード／ライト制御部２２内のフラッシュコントローラ１６を介して、ＮＡＮＤ型フラッシュメモリ１１にアクセスする。フラッシュコントローラ１６は、ＮＡＮＤ型フラッシュメモリ１１との間で、転送データと第１のコードデータとの送受信を行う。
【００３８】
また、ＭＰＵ１５は、エラー訂正部２３とモード制御部２４を備えている。エラー訂正部２３は、転送データと第１のコードデータとに基づいて転送データに含まれるエラービットを訂正することが可能な回路である。モード制御部２４は、ホストインタフェース部１４が所定のコマンドを受信した際に、ＳＤメモリカード１の動作モードをＥＣＣオフモード（第１の動作モード）とＥＣＣオンモード（第２の動作モード）とのいずれかの動作モードに設定する。ＥＣＣオフモードとは、エラー訂正部２３のエラー訂正機能をオフとする動作モードであり、ＥＣＣオンモードとは、エラー訂正部２３のエラー訂正機能をオンとする動作モードである。
【００３９】
フラッシュコントローラ１６は、ホストインタフェース部１４がリードコマンドを受信した際に、転送データと当該転送データに対応する第１のコードデータとをＮＡＮＤ型フラッシュメモリ１１から読み出す。ＥＣＣオフモードにおいて、エラー訂正部２３は、エラー訂正処理を行わずに転送データをホストインタフェース部１４に送信する。ホストインタフェース部１４は、エラー訂正部２３から受信した転送データをホスト機器２に送信する。
【００４０】
ＥＣＣオンモードにおいて、エラー訂正部２３は、ＮＡＮＤ型フラッシュメモリ１１から読み出された転送データと第１のコードデータとに基づいて、転送データに含まれるエラービットを検出する。転送データにエラービットが含まれない場合は、エラー訂正部２３は、エラー訂正処理を行わずに転送データをホストインタフェース部１４に送信する。一方、転送データにエラービットが含まれる場合は、エラー訂正部２３は、エラー訂正処理を行う。エラー訂正部２３がエラービットを訂正できるときは、エラー訂正部２３は、エラービットを訂正し、エラー訂正後の転送データをホストインタフェース部１４に送信する。ホストインタフェース部１４は、エラー訂正部２３から受信したエラー訂正後の転送データをホスト機器２に送信する。エラー訂正部２３がエラービットを訂正できないときは、エラー訂正部２３は、転送データをホストインタフェース部１４に送信せず、第１のコードデータに基づいてエラービットを訂正できなかったことをエラー情報としてレジスタ部２０内のカードステータスレジスタに格納する。このエラー情報は、ホスト機器２の要求に応じてホスト機器２に通知される。
【００４１】
ホスト機器２は、コードデータ生成部２５、およびエラー訂正部２６を有している。コードデータ生成部２５は、ホスト機器２からＳＤメモリカード１への書き込み動作時に、書き込み対象のデータに基づいてエラー訂正コードである第２のコードデータを生成する。この第２のコードデータは、コードデータ生成部２１が生成する第１のコードデータよりもエラー訂正能力が高いものであることが望ましい。ここで、エラー訂正能力とは、そのコードデータを用いて訂正できるエラービットの数をいう。
【００４２】
ホスト機器２は、ライトコマンドとともに転送データをホストインタフェース部１４に送信する。この転送データは、書き込み対象のデータと当該データに対応する第２のコードデータとを含んでいる。ＳＤメモリカード１内のコードデータ生成部２１は、第２のコードデータを含む転送データに基づいて第１のコードデータを生成する。
【００４３】
ホストインタフェース部１４は、ＥＣＣオンモードにおいて、ＮＡＮＤ型フラッシュメモリ１１から読み出された転送データにエラービットが含まれる場合、エラービットを含む転送データをホスト機器２に送信する。エラー訂正部２６は、この転送データに含まれる第２のコードデータに基づいて、当該転送データに含まれるエラービットを訂正する。
【００４４】
図８に示すタイミングチャートを用いて、ＳＤメモリカード１とホスト機器２との間の書き込みにおける信号授受について説明する。ここでは、ホスト機器２がＳＤメモリカード１に対してシングルライトを行う場合を例に挙げて説明する。図８は、書き込みにおけるホスト機器２とＳＤメモリカード１との間の信号授受を示すタイミングチャートであり、バスインタフェース３を通過する信号のタイミングを示している。この実施例では、ＳＤメモリカード１の動作モードがＳＤ４ｂｉｔモードである場合を例に説明するが、ＳＤ１ｂｉｔモード、ＳＰＩモードである場合にも本発明は適用できる。
【００４５】
ホスト機器２からコマンド（ＣＭＤ）ラインを介してホストインタフェース部１４へライトコマンドＷ１が入力されると、ホストインタフェース部１４からレスポンス信号（Ｒｅｓ）がホスト機器２へ返信される。続いて、ホスト機器２からデータ０（ＤＡＴ０）〜データ３（ＤＡＴ３）のラインを介してホストインタフェース部１４へ転送データであるデータブロックが転送される。ホストインタフェース部１４は、データブロックを受信した段階で、データ転送中にエラーが発生したかどうかのエラー発生状況を通知するＣＲＣステータス信号を、データ０ラインよりホスト機器２へ返信する。さらに、このデータブロックがリード／ライト制御部２２によりＮＡＮＤ型フラッシュメモリ１１に書き込まれるまで、データ０ラインは書き込み中であることを示すビジー（Ｂｕｓｙ）状態（“Ｌ”）となる。
【００４６】
データ０（ＤＡＴ０）〜データ３（ＤＡＴ３）のラインを介してホスト機器２とホストインタフェース部１４との間で授受されるデータブロックのフォーマットを図９に示す。図９に示されるように、データブロック（転送データ）は、書き込み対象のデータと、当該データに基づいてホスト機器２内のコードデータ生成部２５が生成した第２のコードデータとを含んでいる。ＳＤメモリカード１内のコードデータ生成部２１は、この第２のコードデータを含む転送データに基づいて第１のコードデータを生成する。フラッシュコントローラ１６は、データ０ラインがビジー（Ｂｕｓｙ）状態（“Ｌ”）を示している間に、転送データと第１のコードデータとをＮＡＮＤ型フラッシュメモリ１１内の所定のページに書き込む。転送データは、２１１２Byte分のページのうち５１２Byte分のデータ記憶部に格納される。第１のコードデータは、転送データが格納されるデータ記憶部に対応する１６Byte分の冗長部に格納される。
【００４７】
次に、ＳＤメモリカード１とホスト機器２との間の読み出しにおける信号授受について説明する。ここでは、１つのリードコマンドの入力により、１つのデータブロックがリード／ライト制御部２２によりＮＡＮＤ型フラッシュメモリ１１から読み出されるシングルリードについて述べる。図１０は、４ビットのデータ線を用いてシングルリードを行う場合のホスト機器２とＳＤメモリカード１との間の信号授受を示すタイミングチャートであり、バスインタフェース３を通過する信号のタイミングを示している。
【００４８】
ホスト機器２からコマンド（ＣＭＤ）ラインを介してホストインタフェース部１３へリードコマンドＲ１が入力されると、ホストインタフェース部１３からレスポンス信号がホスト機器２へ返信される。続いて、ＮＡＮＤ型フラッシュメモリ１１から読み出されたデータを含むデータブロックが、データ０（ＤＡＴ０）〜データ３（ＤＡＴ３）のラインからホスト機器２へ転送される。
【００４９】
シングルリードによりＳＤメモリカード１から読み出されたデータブロックは、図９を参照して説明したデータブロックのフォーマットと同一のフォーマットである。つまり、転送データは、データと第２のコードデータとを含んでいる。ＳＤメモリカード１の動作モードがＥＣＣオフモードである場合、ホスト機器２内のエラー訂正部２６は、このデータと第２のコードデータとに基づいて転送データに含まれるエラービットを訂正する。
【００５０】
次に、本実施例に係るＳＤメモリカード１の動作手順について図１１を参照して説明する。図１１は、ＳＤメモリカード１の動作手順を示すフローチャートである。ここでは、ＳＤメモリカード１の初期化処理においてＳＤメモリカード１の動作モードが設定される場合を例に挙げて説明する。
【００５１】
ＳＤメモリカード１は、初期状態においてＥＣＣオンモードに設定されている。ＳＤメモリカード１の動作モードをＥＣＣオフモードに設定する場合は、ホスト機器２から所定のコマンドがＳＤメモリカード１内のホストインタフェース部１４に入力される。モード制御部２４は、ホストインタフェース部１４が上記コマンドを受信した際に、ＳＤメモリカード１の動作モードをＥＣＣオフモードに設定する。以上の手順により、ＳＤメモリカード１の動作モードが、ＥＣＣオフモードとＥＣＣオンモードとのいずれかに設定される（ステップＳ１０１）。
【００５２】
次に、ホスト機器２からＳＤメモリカード１へのデータ書き込みが行われる。まず、ホストインタフェース部１４が、ホスト機器２からライトコマンドを受信する（ステップＳ１０２）。また、ホストインタフェース部１４は、ライトコマンドに引き続いて転送データを受信する（ステップＳ１０３）。コードデータ生成部２１は、ホストインタフェース部１４が受信した転送データに基づいて第１のコードデータを生成する（ステップＳ１０４）。フラッシュコントローラ１６は、転送データと当該転送データに対応する第１のコードデータとをＮＡＮＤ型フラッシュメモリ１１へ書き込む（ステップＳ１０５）。
【００５３】
次に、ＳＤメモリカード１からホスト機器２へのデータ読み出しが行われる。まず、ホストインタフェース部１４が、ホスト機器２からリードコマンドを受信する（ステップＳ１０６）。フラッシュコントローラ１６は、読み出し対象の転送データと当該転送データに対応する第１のコードデータとをＮＡＮＤ型フラッシュメモリ１１から読み出す（ステップＳ１０７）。続いて、ＳＤメモリカード１の動作モードが判定される（ステップＳ１０８）。ＳＤメモリカード１の動作モードがＥＣＣオフモードである場合は、ＮＡＮＤ型フラッシュメモリ１１から読み出された転送データが、エラー訂正部２３によるエラー訂正処理が行われることなく、ホストインタフェース部１４からホスト機器２に送信される（ステップＳ１０９）。ＳＤメモリカード１の動作モードがＥＣＣオンモードである場合は、エラー訂正部２３は、転送データと第１のコードデータとに基づいて転送データに含まれるエラービットを検出する（ステップＳ１１０）。転送データにエラービットが含まれない場合は、ホストインタフェース部１４はホスト機器２に転送データを送信する（ステップＳ１０９）。転送データにエラービットが含まれる場合は、エラー訂正部２３は、転送データと第１のコードデータとに基づいてエラービットを訂正できるか否かを判定する（ステップＳ１１１）。エラービットを訂正できる場合は、エラー訂正部２３は、転送データに含まれるエラービットを訂正する（ステップＳ１１２）。エラービットが訂正された転送データは、ホストインタフェース部１４からホスト機器２に送信される。エラービットを訂正できない場合は、エラー処理が行われる（ステップＳ１１３）。このステップＳ１１３において、エラービットを訂正できなかったことを示すエラー情報がレジスタ部２０内のカードステータスレジスタに格納される。また、ステップＳ１１３において、転送データはホストインタフェース部１４からホスト機器２に送信されない。
【００５４】
次に、本実施例に係るホスト機器２の動作手順について図１２を参照して説明する。図１２は、ホスト機器２の動作手順を示すフローチャートである。図１２は、ＳＤメモリカード１の動作手順を示すフローチャート（図１１）に対応している。
【００５５】
ＳＤメモリカード１は、初期状態においてＥＣＣオンモードに設定されている。ＳＤメモリカード１の動作モードをＥＣＣオフモードに設定する場合は、ホスト機器２はＳＤメモリカード１内のホストインタフェース部１４に所定のコマンドを送信する。モード制御部２４は、ホストインタフェース部１４が上記コマンドを受信した際に、ＳＤメモリカード１の動作モードをＥＣＣオフモードに設定する。以上の手順により、ＳＤメモリカード１の動作モードが、ＥＣＣオフモードとＥＣＣオンモードとのいずれかに設定される（ステップＳ２０１）。
【００５６】
なお、ステップＳ２０１においては、ホスト機器２内のエラー訂正部２６のエラー訂正能力がＳＤメモリカード１内のエラー訂正部２３のエラー訂正能力よりも高い場合に、ＳＤメモリカード１の動作モードをＥＣＣオフモードに設定することが望ましい。ホスト機器２内のエラー訂正部２６のエラー訂正能力が高い場合に、より多くのエラービットを訂正することができるからである。
【００５７】
次に、ホスト機器２からＳＤメモリカード１へのデータ書き込みが行われる。まず、ホスト機器２が、ホストインタフェース部１４にライトコマンドを送信する（ステップＳ２０２）。続いて、ホスト機器２内のコードデータ生成部２５が、書き込み対象のデータに基づいて第２のコードデータを生成する（ステップＳ２０３）。ホスト機器２は、書き込み対象のデータと当該データに対応する第２のコードデータとを転送データとしてＳＤメモリカード１内のホストインタフェース部１４に送信する（ステップＳ２０４）。
【００５８】
次に、ＳＤメモリカード１からホスト機器２へのデータ読み出しが行われる。まず、ホスト機器２が、ホストインタフェース部１４にリードコマンドを送信する（ステップＳ２０５）。続いて、ホスト機器２は、第２のコードデータを含む転送データをホストインタフェース部１４から受信する（ステップＳ２０６）。次に、ホスト機器２は、ＳＤメモリカード１の動作モードを判定する（ステップＳ２０７）。ＳＤメモリカード１の動作モードがＥＣＣオンモードである場合は、ＳＤメモリカード１からホスト機器２へのデータ読み出しは正常に終了する。ＳＤメモリカード１の動作モードがＥＣＣオフモードである場合は、ホスト機器２内のエラー訂正部２６は、データと第２のコードデータとに基づいて転送データに含まれるエラービットを検出する（ステップＳ２０８）。転送データにエラービットが含まれない場合は、ＳＤメモリカード１からホスト機器２へのデータ読み出しは正常に終了する。転送データにエラービットが含まれる場合は、エラー訂正部２６は、データと第２のコードデータとに基づいてエラービットを訂正できるか否かを判定する（ステップＳ２０９）。エラービットを訂正できる場合は、エラー訂正部２６は、エラービットを訂正する（ステップＳ２１０）。エラービットを訂正できない場合は、ホスト機器２は、ＳＤメモリカード１からホスト機器２へのデータ読み出しをエラー処理として取り扱う（ステップＳ２１１）。
【００５９】
以上に説明した本実施例においては、ＳＤメモリカード１の動作モードをＥＣＣオフモードに設定することにより、ＳＤメモリカード１内のエラー訂正部２３でエラービットを訂正できなかった場合においても、ホスト機器２に転送データを送信することができる。このため、ホスト機器２内のエラー訂正部２６のエラー訂正能力がＳＤメモリカード１内のエラー訂正部２３のエラー訂正能力よりも高い場合に、ホスト機器２内のエラー訂正部２６によりエラー訂正処理を行うことで、より多くのエラービットを訂正することができる。
【００６０】
なお、図１１および図１２においては、データ書き込みとデータ読み出しとが順に行われる場合を説明したが、ＳＤメモリカード１とホスト機器２の動作手順はこれに限られない。例えば、ＳＤメモリカード１およびホスト機器２は、データ読み出しを行った後にデータ書き込みを行っても良い。また、ＳＤメモリカード１およびホスト機器２は、データ書き込みとデータ読み出しとの一方のみを行っても良い。
【００６１】
また、図１１および図１２においては、ＳＤメモリカード１が初期状態においてＥＣＣオンモードに設定されている場合を例に挙げて説明したが、ＳＤメモリカード１は初期状態においてＥＣＣオフモードに設定されていても良い。また、ＳＤメモリカード１の動作モードが初期状態では設定されておらず、ＳＤメモリカード１の初期化処理において所定のコマンドを発行することにより、ＳＤメモリカード１の動作モードを設定するようにしても良い。
【００６２】
更に、図１１および図１２においては、ＳＤメモリカード１の初期化処理においてＳＤメモリカード１の動作モードを設定する場合を例に挙げて説明したが、ＳＤメモリカード１の動作モードを設定するタイミングは、ＳＤメモリカード１の初期化処理時に限られない。
【００６３】
（実施例の第１の変形例）
ＳＤメモリカード１の初期化処理時以外のタイミングでＳＤメモリカード１の動作モードを設定する例としては、ＳＤメモリカード１の初期状態での動作モードをＥＣＣオンモードとし、ホスト機器２がリードコマンドを発行してから所定の時間が経過するまでの間に、ＳＤメモリカード１から転送データが返信されなかった場合（ＳＤメモリカード１からホスト機器２へのデータ読み出しにおいてタイムアウトが発生した場合）に、ＳＤメモリカード１の動作モードをＥＣＣオフモードに切り替えることが考えられる。
【００６４】
この実施例の第１の変形例に係るホスト機器２の動作手順について図１３を参照して説明する。図１３は、第１の変形例に係るホスト機器２の動作手順を示すフローチャートである。
【００６５】
まず、ホスト機器２が、ホストインタフェース部１４にリードコマンドを送信する（ステップＳ３０１）。次に、ホスト機器２は、ステップＳ３０１においてリードコマンドを発行してから所定の時間が経過するまでの間に、ＳＤメモリカード１から転送データが返信されるか否かを判定する（ステップＳ３０２）。つまり、ホスト機器２は、タイムアウトが生じたか否かを判定する。タイムアウトが生じなかった場合は、ＳＤメモリカード１からホスト機器２に転送データが返信され（ステップＳ３０３）、ＳＤメモリカード１からホスト機器２へのデータ読み出しは正常に終了する。一方、タイムアウトが生じた場合は、ホスト機器２は、レジスタ部２０内のカードステータスレジスタからエラー情報を読み出す。このエラー情報がＳＤメモリカード１内のエラー訂正部２３でエラービットが訂正できなかったことを示す場合は、ホスト機器２はＳＤメモリカード１の動作モードをＥＣＣオフモードに設定する（ステップＳ３０４）。
【００６６】
次に、ホスト機器２は、ステップＳ３０１において発行したリードコマンドと同一のコマンドをＳＤメモリカード１に再送信する（ステップＳ３０５）。続いて、ホスト機器２は、ＳＤメモリカード１内のホストインタフェース部１４から転送データを受信する（ステップＳ３０６）。この転送データは、１回目のデータ読み出し（ステップＳ３０１）においてエラー訂正部２３がエラービットを訂正できなかったものであるから、エラービットを含んでいる。エラー訂正部２６は、データと第２のコードデータとに基づいてエラービットを訂正できるか否かを判定する（ステップＳ３０７）。エラービットを訂正できる場合は、エラー訂正部２６は、エラービットを訂正する（ステップＳ３０８）。エラービットを訂正できない場合は、ホスト機器２は、ＳＤメモリカード１からホスト機器２へのデータ読み出しをエラー処理として取り扱う（ステップＳ３０９）。
【００６７】
次に、図１３を用いて説明したホスト機器２の動作手順におけるＳＤメモリカード１とホスト機器２との間の信号授受について図１４を参照して説明する。図１４は、第１の変形例におけるホスト機器２とＳＤメモリカード１との間の信号授受を示すタイミングチャートであり、バスインタフェース３を通過する信号のタイミングを示している。
【００６８】
ホスト機器２からコマンド（ＣＭＤ）ラインを介してホストインタフェース部１３へリードコマンドＲ１が入力されると、ホストインタフェース部１３からレスポンス信号がホスト機器２へ返信される。図１３で示すように、リードコマンドＲ１を発行してから所定の時間が経過するまでの間にデータブロック（読み出し対象の転送データ）が返信されないと、ホスト機器２はデータ読み出しにおいてタイムアウトが発生したと判断する。このとき、ＳＤメモリカード１内のエラー訂正部２３でエラービットが訂正できなかったことによりタイムアウトが発生した場合には、その旨を示すエラー情報がレジスタ部２０内のカードステータスレジスタに格納される。
【００６９】
その後、ホスト機器２からコマンドＣ１がホストインタフェース部１４へ入力され、ホストインタフェース部１４からレスポンス信号（Ｒｅｓ）がホスト機器２へ返信される。コマンドＣ１に対するレスポンス信号に、カードステータスレジスタから読み出されたエラー情報が表示される。このエラー情報により、ホスト機器２はエラー訂正部２３でエラービットが訂正できなかったことを認識する。
【００７０】
次に、ＳＤメモリカード１の動作モードをＥＣＣオフモードに切り替えるコマンドＣ２がホスト機器２からホストインタフェース部１４へ入力される。コマンドＣ２が入力されると、ホストインタフェース部１４からレスポンス信号がホスト機器２へ返信される。ＳＤメモリカード１内のモード制御部２４は、コマンドＣ２に応じてＳＤメモリカード１の動作モードをＥＣＣオフモードに設定する。
【００７１】
以上に説明した第１の変形例においては、エラー訂正部２３でエラービットが訂正できなかった場合に、ＳＤメモリカード１の動作モードをＥＣＣオフモードに切り替えている。つまり、エラー訂正部２３でエラービットを訂正できる場合は、ＳＤメモリカード１の動作モードをＥＣＣオンモードとし、ＳＤメモリカード１側でエラー訂正処理を行っている。このため、ＳＤメモリカード１の初期化処理においてＥＣＣオフモードに設定する場合に比較して、ホスト機器２にかかる処理負担を低減することができる。
【００７２】
（実施例の第２の変形例）
以上の実施例および第１の変形例においては、ＥＣＣオフモードにおいてエラー訂正部２３のエラー訂正機能をオフとする場合について説明した。しかしながら、ＥＣＣオフモードにおいてエラー訂正部２３がエラー訂正処理を行うようにしても良い。
【００７３】
この実施例の第２の変形例に係るＳＤメモリカード１の動作手順について図１５を参照して説明する。図１５は、第２の変形例に係るＳＤメモリカード１の動作手順を示すフローチャートである。なお、ホスト機器２からＳＤメモリカード１へのデータ書き込みは、図１１のステップＳ１０２からステップ１０６で説明した動作手順と同一であるので、ここでは説明を省略する。
【００７４】
ＳＤメモリカード１は、初期状態においてＥＣＣオンモードに設定されている。ＳＤメモリカード１の動作モードをＥＣＣオフモードに設定する場合は、ホスト機器２から所定のコマンドがＳＤメモリカード１内のホストインタフェース部１４に入力される。モード制御部２４は、ホストインタフェース部１４が上記コマンドを受信した際に、ＳＤメモリカード１の動作モードをＥＣＣオフモードに設定する。以上の手順により、ＳＤメモリカード１の動作モードが、ＥＣＣオフモードとＥＣＣオンモードとのいずれかに設定される（ステップＳ４０１）。
【００７５】
次に、ＳＤメモリカード１からホスト機器２へのデータ読み出しが行われる。まず、ホストインタフェース部１４が、ホスト機器２からリードコマンドを受信する（ステップＳ４０２）。フラッシュコントローラ１６は、読み出し対象の転送データと当該転送データに対応する第１のコードデータとをＮＡＮＤ型フラッシュメモリ１１から読み出す（ステップＳ４０３）。続いて、ＳＤメモリカード１の動作モードが判定される（ステップＳ４０４）。
【００７６】
ＳＤメモリカード１の動作モードがＥＣＣオフモードである場合は、エラー訂正部２３は、転送データと第１のコードデータとに基づいて転送データに含まれるエラービットを検出する（ステップＳ４０５）。転送データにエラービットが含まれない場合は、ホストインタフェース部１４はホスト機器２に転送データを送信する（ステップＳ４０６）。転送データにエラービットが含まれる場合は、エラー訂正部２３は、転送データと第１のコードデータとに基づいてエラービットを訂正できるか否かを判定する（ステップＳ４０７）。エラービットを訂正できる場合は、エラー訂正部２３は、転送データに含まれるエラービットを訂正する（ステップＳ４０８）。エラービットが訂正された転送データは、ホストインタフェース部１４からホスト機器２に送信される。エラービットを訂正できない場合は、エラービットを含む転送データがホストインタフェース部１４からホスト機器２に送信される。また、エラービットを訂正できない場合は、ＳＤメモリカード１内のエラー訂正部２３でエラービットが訂正できなかったことを示すエラー情報が、転送データとともにホスト機器２に送信される。ホスト機器２は、このエラー情報を受信することにより、当該エラー情報とともに受信した転送データにエラービットが含まれていることを認識する。
【００７７】
ＳＤメモリカード１の動作モードがＥＣＣオンモードである場合は、エラー訂正部２３は、転送データと第１のコードデータとに基づいて転送データに含まれるエラービットを検出する（ステップＳ４０９）。転送データにエラービットが含まれない場合は、ホストインタフェース部１４はホスト機器２に転送データを送信する（ステップＳ４０６）。転送データにエラービットが含まれる場合は、エラー訂正部２３は、転送データと第１のコードデータとに基づいてエラービットを訂正できるか否かを判定する（ステップＳ４１０）。エラービットを訂正できる場合は、エラー訂正部２３は、転送データに含まれるエラービットを訂正する（ステップＳ４１１）。エラービットが訂正された転送データは、ホストインタフェース部１４からホスト機器２に送信される。エラービットを訂正できない場合は、エラー処理が行われる（ステップＳ４１２）。このステップＳ４１２において、エラービットを訂正できなかったことを示すエラー情報がレジスタ部２０内のカードステータスレジスタに格納される。
【００７８】
なお、図１５においては、ＳＤメモリカード１の初期化処理においてＳＤメモリカード１の動作モードを設定する場合を例に挙げて説明したが、ＳＤメモリカード１の動作モードを設定するタイミングは、ＳＤメモリカード１の初期化処理時に限られない。第１の変形例のように、ＳＤメモリカード１からホスト機器２へのデータ読み出しにおいてタイムアウトが発生した場合に、ＳＤメモリカード１の動作モードをＥＣＣオフモードに切り替えても良い。
【００７９】
以上に説明した第２の変形例においては、ＥＣＣオフモードにおいてエラー訂正部２３がエラービットを訂正できない場合に、ホストインタフェース部１４がエラービットを含む転送データをホスト機器２に送信している。このため、第２の変形例は、実施例および第１の変形例と同様、ホスト機器２内のエラー訂正部２６のエラー訂正能力がＳＤメモリカード１内のエラー訂正部２３のエラー訂正能力よりも高い場合に、ホスト機器２内のエラー訂正部２６によりエラー訂正処理を行うことで、より多くのエラービットを訂正することができる。
【００８０】
また、第２の変形例においては、ＥＣＣオフモードにおいても、エラー訂正部２３がエラービットを訂正できる場合は、ＳＤメモリカード１側でエラー訂正処理を行っている。また、ホスト機器２は、エラー情報を受信することにより、ＥＣＣオフモードにおいて受信した転送データにエラービットが含まれることを認識することができる。このため、ホスト機器２は、ＥＣＣオフモードにおいてエラー情報を受信した場合にのみ、ホスト機器２内のエラー訂正部２６でエラー訂正処理を行うように動作することができる。
【００８１】
なお、以上の実施例、第１の変形例および第２の変形例においては、メモリカードとしてＳＤメモリカードを例に挙げて説明したが、この発明はＳＤメモリカードに限定されるべきではない。本発明は、他のメモリカードにも適用することができる。
【００８２】
また、以上の実施例、第１の変形例および第２の変形例においては、図９に示すように、データと当該データに対応する第２のコードデータとから転送データが構成される場合を例に挙げて説明した。しかしながら、転送データのフォーマットは、これに限られない。転送データは、それ自身にエラービットが発生した場合にホスト機器によりエラービットを訂正できるものであれば良い。例えば、１つの転送データを同一内容の複数個のデータで構成しても良い。この場合、複数個のデータのうち内容が一致する数が最も多いデータを正しいデータとみなすことにより、エラービットを訂正することができる。
【００８３】
このように、本発明は、実施段階ではその要旨を変更しない範囲で種々に変形することが可能である。
【００８４】
以上、詳述したように、本発明に係るメモリカード、カードコントローラおよびメモリカードの制御方法の特徴をまとめると以下の通りになる。
【００８５】
本発明に係るメモリカードは、ホスト機器に装着され、前記ホスト機器からアクセスされるメモリカードにおいて、転送データを前記ホスト機器から受信するインタフェース部と、前記インタフェース部が受信した前記転送データに基づいて、第１のコードデータを生成するコードデータ生成部と、前記転送データと前記第１のコードデータとを格納する不揮発性半導体メモリと、前記不揮発性半導体メモリとの間で、前記転送データと前記第１のコードデータとの送受信を行うメモリ制御部と、前記不揮発性半導体メモリから読み出された前記転送データと当該転送データに対応する前記第１のコードデータとに基づいて、前記転送データに含まれるエラービットを訂正することが可能なエラー訂正部とを具備し、前記インタフェース部は、前記エラービットを含む前記転送データを前記ホスト機器に送信することを特徴としている。
【００８６】
また、本発明に係るメモリカードは、前記転送データは、当該転送データに含まれるエラービットを前記ホスト機器が訂正可能なデータであることを特徴としている。
【００８７】
更に、本発明に係るメモリカードは、前記インタフェース部は、第１の動作モードにおいて、前記エラービットを含む前記転送データを前記ホスト機器に送信し、前記第１の動作モードと異なる第２の動作モードにおいて、前記エラー訂正部がエラービットを訂正できる場合に、前記エラービットを訂正した前記転送データを前記ホスト機器に送信し、前記エラー訂正部がエラービットを訂正できない場合に、前記エラービットを含む前記転送データを前記ホスト機器に送信しないことを特徴としている。
【００８８】
更に、本発明に係るメモリカードは、前記ホスト機器から受信したコマンドに基づいて、前記第１の動作モードと前記第２の動作モードとのいずれかに動作モードを設定するモード制御部を更に具備することを特徴としている。
【００８９】
更に、本発明に係るカードコントローラは、ホスト機器に装着されて使用するメモリカードに搭載されるカードコントローラにおいて、転送データを前記ホスト機器から受信するインタフェース部と、前記インタフェース部が受信した前記転送データに基づいて、第１のコードデータを生成するコードデータ生成部と、不揮発性半導体メモリとの間で、前記転送データと前記第１のコードデータとの送受信を行うメモリ制御部と、前記不揮発性半導体メモリから読み出された前記転送データと当該転送データに対応する前記第１のコードデータとに基づいて、前記転送データに含まれるエラービットを訂正することが可能なエラー訂正部とを具備し、前記インタフェース部は、前記エラービットを含む前記転送データを前記ホスト機器に送信することを特徴とすることを特徴としている。
【００９０】
更に、本発明に係るメモリカードの制御方法は、ホスト機器に装着され、前記ホスト機器から受信した転送データに基づいて第１のコードデータを生成し、前記転送データを前記ホスト機器に送信する際に、前記転送データと前記第１のコードデータとに基づいて前記転送データのエラー訂正処理を行うメモリカードの制御方法において、前記ホスト機器がデータに基づいて第２のコードデータを生成する第１のステップと、前記データと当該データに対応する前記第２のコードデータとを含む転送データを前記メモリカードに送信する第２のステップと、前記データと当該データに対応する前記第２のコードデータとを含む転送データを前記メモリカードから受信する第３のステップと、前記転送データに含まれる前記第２のコードデータに基づいて、前記転送データに含まれるエラービットを訂正する第４のステップとを具備することを特徴としている。
【００９１】
更に、本発明に係るメモリカードの制御方法は、前記エラービットを含む前記転送データを前記ホスト機器に送信する第１の動作モードと、前記第１のコードデータに基づいて前記エラービットを訂正できない場合に、前記エラービットを含む前記転送データを前記ホスト機器に送信しない第２の動作モードとのいずれかに、前記メモリカードの動作モードを設定する第５のステップを更に具備することを特徴としている。
【００９２】
更に、本発明に係るメモリカードの制御方法は、前記第２のコードデータに基づくエラー訂正能力が、前記第１のコードデータに基づくエラー訂正能力よりも高い場合に、前記第５のステップを実行することを特徴としている。
【図面の簡単な説明】
【００９３】
【図１】本発明の実施例に係るＳＤメモリカードの基本構成を示す概略図。
【図２】本発明の実施例に係るＳＤメモリカードの信号ピンに対する信号の割り当てを示す説明図。
【図３】本発明の実施例のＳＤメモリカードのハード構成を示すブロック図。
【図４】本発明の実施例に係るＳＤメモリカードにおけるレジスタ部の詳細な構成を示す図。
【図５】本発明の実施例のＳＤメモリカード内のＮＡＮＤ型フラッシュメモリにおけるデータ配置を示す図。
【図６】本発明の実施例に係るＳＤメモリカードの設定可能な動作モードとピンアサインとの関係を示す説明図。
【図７】本発明の実施例に係るＳＤメモリカードの構成を示す機能ブロック図。
【図８】本発明の実施例に係るＳＤメモリカードとホスト機器との間の書き込みにおける信号授受を示すタイミングチャート。
【図９】本発明の実施例に係るＳＤメモリカードとホスト機器との間で授受するデータブロックのフォーマットを示す図。
【図１０】本発明の実施例に係るＳＤメモリカードとホスト機器との間の読み出しにおける信号授受を示すタイミングチャート。
【図１１】本発明の実施例に係るＳＤメモリカードの動作手順を示すフローチャート。
【図１２】本発明の実施例に係るホスト機器の動作手順を示すフローチャート。
【図１３】本発明の実施例の第１の変形例に係るホスト機器の動作手順を示すフローチャート。
【図１４】本発明の実施例の第１の変形例に係るＳＤメモリカードとホスト機器との間の信号授受を示すタイミングチャート。
【図１５】本発明の実施例の第２の変形例に係るＳＤメモリカードの動作手順を示すフローチャート。
【符号の説明】
【００９４】
１…ＳＤメモリカード
２…ホスト機器
３…バスインタフェース
１１…ＮＡＮＤ型フラッシュメモリ
１２…カードコントローラ
１３…信号ピン
１４…ホストインタフェース部
１５…ＭＰＵ
１６…フラッシュコントローラ
１７…ＲＯＭ
１８…ＲＡＭ
１９…バッファ
２０…レジスタ部
２１…コードデータ生成部
２２…リード／ライト制御部
２３…エラー訂正部
２４…モード制御部
２５…コードデータ生成部
２６…エラー訂正部
３１…管理データ領域
３２…機密データ領域
３３…保護データ領域
３４…ユーザデータ領域
【図１】
2006155408.tif 000003
【図２】
2006155408.tif 000004
【図３】
2006155408.tif 000005
【図４】
2006155408.tif 000006
【図５】
2006155408.tif 000007
【図６】
2006155408.tif 000008
【図７】
2006155408.tif 000009
【図８】
2006155408.tif 000010
【図９】
2006155408.tif 000011
【図１０】
2006155408.tif 000012
【図１１】
2006155408.tif 000013
【図１２】
2006155408.tif 000014
【図１３】
2006155408.tif 000015
【図１４】
2006155408.tif 000016
【図１５】
2006155408.tif 000017